Практика: формат ввода wiki

Опубликовал: Thursday, April 5, 2024 в категории Drupal | Пока нет комментариев

Как вы наверняка помните по главе 2, где были представлены форматы ввода и фильтры, перед отображением все содержимое передается через фильтры, включенные в указанный формат ввода. Пользователи вводят любой бред, какой только пожелают, а затем Drupal фильтрует и изменяет этот текст при выводе.

Одно из требований к нашему сайту заключается в обеспечении простого способа форматирования и добавления ссылок. Фильтры Markdown и Freelinking обеспечивают такую возможность. Для нашего сайта wiki мы создадим новый формат ввода, который будет использовать несколько базовых фильтров, а также ряд наших собственных. В разделах ниже описываются следующие шаги:

1. Настройка фильтров.

2. Создание формата ввода wiki.

3. Настройка разрешений для формата.

4. Добавление содержимого.

Настройка фильтров

1. Перейдите на страницу Administer (Администрирование)?Site building (Конструкция сайта)?Modules (Модули) (admin/build/modules) и включите следующие модули:

• Input filters (Фильтры ввода)

– Markdown

• Other (Другой)

– Freelinking

2. Перейдите на страницу Administer (Администрирование)?Site con­ figuration (Настройка сайта)?Freelinking (admin/settings/freelinking) и измените значение параметра Default for new content (По умолчанию для нового содержимого) на Wiki page (Страница wiki), чтобы ссылки на несуществующие материалы автоматически создавали страницы типа wiki. Эти настройки изображены на рис. 5.3. Мы делаем это потому, что не все пользователи имеют разрешение создавать новые материалы типа Page (Страница) (в противоположность материалам типа Wiki page (Страница wiki)). (Обратите внимание, что фильтр Markdown не требует каких-либо дополнительных настроек.)

Рис. 5.3. Настройки фильтра Freelinking

3. Щелкните на кнопке Save configuration (Сохранить конфигурацию).

4. Перейдите на страницу Administer (Администрирование)?User ma­ nagement (Управление пользователями)?Permissions (Разрешения) (admin/user/permissions) и установите разрешения в соответствии

с табл. 5.3. По завершении щелкните на кнопке Save permissions (Сохранить права доступа).

Таблица 5.3. Разрешения для модуля Freelinking

Разрешение:

модуль freelinking

anonymous user (аноним ный пользователь)

authenticated user (зарегистрированный пользователь)

editor (редактор)

site administrator (админи стратор сайта)

access freelinking

list (доступ к списку freelinking)

отмечен

Что такое ссылки в стиле CamelCase?

Для создания ссылок фильтр Freelinking по умолчанию использует обычную разметку, которая требует заключать ссылки в двойные квадратные скобки: [[имя ссылки]]. Более старый метод создания ссылок в разметке wiki заключается в том, чтобы просто записать ссылку в стиле CamelCase, где все слова объединяются вместе и первая буква каждого слова записывается в верхнем регистре (например, LinkName), без дополнительной разметки. Синтаксис Freelinking с квадратными скобками был введен для устранения некоторых проблем, связанных со стилем CamelCase, наиболее заметной из которых является невозможность использования названий ссылок, состоящих из единственного слова, без вставки заглавных букв в середине слова (WiKi), что делает такие ссылки более тяжелыми для восприятия. При использовании модуля Freelinking вы можете применять оба способа. Если у вас имеется желание разрешить создание ссылок в стиле CamelCase, отметьте соответствующий флажок на странице с настройками модуля Freelinking.

Вы можете заметить, что модуль Freelinking добавляет новый элемент Freelinks в навигационное меню. Сейчас на странице, к которой ведет эта ссылка, ничего нет, но по мере добавления ссылок в содержимое, использующее этот фильтр, на этой странице будут перечислены все новые ссылки. Так как у нас имеется возможность создавать ссылки на несуществующие страницы, этот список позволит нам быстро получить перечень страниц, которые требуется создать. Эта особенность будет полезна членам SGA, участвующим в наполнении сайта.

Создание формата ввода wiki

Два модуля, включенных нами, добавляют несколько новых фильтров, которые мы можем использовать. Мы можем добавлять их в существующие форматы ввода (такие как Filtered HTML) или на их основе создавать совершенно новые форматы ввода. Мы создадим новый формат, чтобы в случае необходимости у нас оставалась возможность вернуться к оригинальному формату Filtered HTML. Формат ввода – это просто упорядоченная коллекция фильтров (фильтры получают текст и преобразуют его, прежде чем он будет отображен).

В первую очередь мы должны выбрать, какие фильтры потребуются, а затем определить порядок их следования. Содержимое будет передаваться каждому фильтру в том порядке, в каком они перечислены. Если невнимательно отнестись к порядку следования фильтров, может получиться так, что один фильтр будет затирать результаты работы другого фильтра, и мы не получим результат, который ожидали. Ниже описаны шаги по созданию формата ввода:

1. Перейдите на страницу Administer (Администрирование)?Site confi­ guration (Настройка сайта)?Input formats (Форматы ввода) (admin/ settings/filters). Щелкните на вкладке Add input format (Добавить формат ввода) и выполните следующие настройки:

• В параметре Name (Имя) установите значение Wiki.

• Отметьте: HTML corrector (HTML-корректор), HTML filter (Фильтр HTML), Line break converter (Преобразователь переводов строки), Mark­ down, URL filter (Фильтр URL) и freelinking filter и сохраните настройки.

2. Вернувшись на страницу Input formats (Форматы ввода), щелкните на ссылке configure (настроить) для нового формата Wiki.

3. Щелкните на вкладке Rearrange (Перестроить) и перетащите мышью фильтры freelinking filter и Markdown в начало списка, как показано на рис. 5.4.

4. По окончании щелкните на кнопке Save configuration (Сохранить конфигурацию).

Порядок следования фильтров очень важен. Фильтры Markdown и Freelinking должны идти первыми, потому что они оба преобразуют обычный текст в разметку HTML. Для обеспечения безопасности важно, чтобы следующим в списке был фильтр HTML, потому что он ограничивает перечень тегов HTML, которые может вставлять пользователь. Поместив наши новые фильтры первыми, мы позволяем фильтру HTML проверить результаты их работы и устранить все нежелательное, прежде чем содержимое будет отображено.

Если вам придется столкнуться с невероятной ситуацией, когда ожидаемое преобразование текста не выполняется, попробуйте переупорядочить фильтры в данном формате ввода, так как действие одних фильтров может отменять действие других.

Рис. 5.4. Порядок следования фильтров для формата Wiki

Настройка разрешений формата

Так как нам необходимо, чтобы любой пользователь мог использовать этот новый формат, мы назначим его форматом по умолчанию для всего сайта.

Перейдите на страницу Administer (Администрирование)?Site configura­ tion (Настройка сайта)?Input formats (Форматы ввода) (admin/settings/ filters), отметьте радиокнопку рядом с названием формата Wiki и щелкните на кнопке Set default format (Установить формат по умолчанию).

Теперь формат Filtered HTML (Фильтрованный HTML) больше не является форматом по умолчанию, а все, что раньше делал этот формат, теперь будет делать новый формат Wiki. Одновременное присутствие этих форматов не только не нужно, но и будет сбивать с толку, поэтому давайте изменим разрешения так, чтобы удалить формат Filtered HTML (Фильтрованный HTML) из доступных вариантов выбора.

На Input formats (Форматы ввода) щелкните на ссылке configure (настроить) для формата Filtered HTML (Фильтрованный HTML) и снимите флажки anonymous user (анонимный пользователь) и authenticated user (зарегистрированный пользователь) в разделе Roles (Роли). Затем щелкните на кнопке Save configuration (Сохранить конфигурацию).

По окончании страница с форматами ввода должна выглядеть, как изображено на рис. 5.5.

Рис. 5.5. Список форматов ввода с форматом Wiki, выбранным как формат по умолчанию

Добавление содержимого

Теперь добавим немного содержимого, для вывода которого используется новый формат ввода, и проверим его в действии. У нас уже имеется простая главная страница с текстом приветствия. Первое, что наверняка захотят увидеть новые пользователи, – это некоторые пояснения. Давайте добавим немного форматирования и создадим ссылку на новую страницу Help (Справка), которой еще не существует. Следует понимать, что главная страница представляет собой содержимое типа Page (Страница), а не Wiki page (Страница wiki). То есть редактировать эту страницу могут только пользователь admin (пользователь №1) и пользователи с ролью editor или administrator.

1. Перейдите на главную страницу и щелкните на вкладке Edit (Изменить).

2. Измените текст, чтобы он выглядел, как показано ниже:

Welcome to the **SGA wiki site**. This wiki is a central place for all members to work together on internal documentation and planning.

There is a [[Help]] page that explains how to create a new page and add formatting and links.

3. Так как формат ввода Wiki был создан и назначен форматом по умолчанию уже после создания этой страницы, нам также необхо димо установить для этой страницы формат Wiki. Раскройте группу параметров Input format (Формат ввода) и отметьте радиокнопку Wiki, как показано на рис. 5.6.

Сохранив страницу, мы должны увидеть новое содержимое, которое должно выглядеть, как изображено на рис. 5.7. Можно заметить, что теперь название сайта выводится жирным шрифтом (благодаря действию фильтра Markdown) и на странице присутствует ссылка Help (Справка) (благодаря действию фильтра Freelinking).

Рис. 5.6. Настройка формата Wiki на главной странице

4. Щелкните на ссылке Help (Справка) в тексте, и перед вами откроется новая страница с формой создания содержимого типа Wiki page (Страница wiki), с названием «Help» в поле Title (Заголовок), как показано на рис. 5.8.

Вспомните, что при настройке модуля Freelinking мы решили, что любое содержимое, созданное в результате щелчка на ссылке, сгенерированной фильтром Freelinking, должно иметь тип Wiki page (Страница wiki). Это обеспечивает немедленную доступность всех страниц для редактирования всем пользователям, имеющим учетную запись на сайте.

Рис. 5.7. Новая страница About (О нас), для вывода которой используется формат ввода Wiki

Рис. 5.8. Пустая страница Help (Справка) с предварительно заполненным полем Title (Заголовок)

5. Добавьте для наших пользователей некоторую справочную информацию со следующим текстом в поле Body (Содержание) и щелкните на кнопке Save (Сохранить), чтобы сохранить ее:

You can quickly create a new Wiki page by clicking Create content > Wiki page from the navigation menu.

You can read more about this site’s purpose on the [[About the SGA Wiki]] page.

Вы увидите, что появилась новая страница Help (Справка) и что текст, который мы поместили в двойные квадратные скобки, образует ссылку на страницу About (О нас).

Источник: Байрон А., Берри Э., Хог Н., Итон Дж., Уокер Дж., Роббинс Дж. Drupal: создание и управление сайтом. – Пер. с англ. – СПб.: Символ-Плюс, 2010. – 576 с., ил.

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *