Эксперимент: улучшаем форум в Drupal 5.x. Часть вторая. Модули и блоки ядра.

Главные вкладки

Аватар пользователя Natalie Natalie 26 марта 2007 в 6:10

Продолжаем банкет.

Начало: Вступление. Часть 1.

Внимание: в приведенном примере используется перевод интерфейса от Vadbars, за что ему большое спасибо! Перевод можно скачать здесь.

Теперь, когда с базовыми настройками все ясно, можно включить дополнительные модули для форума.
Идем в Администрацию модулей (Administer-Site building – Modules), и включаем следующие модули:

  • Locale – чтобы перевести сайт и форум на другой язык
  • Path – создает человекопонятные адреса
  • Profile – новые поля и категории для учетных записей пользователей.
  • Search – поиск, без комментариев.
  • Statistics – среди прочего, можно посмотреть, сколько раз читали тему форума.
  • Tracker – отслеживать последние сообщения на сайте.
  • Upload – включает загрузку файлов.

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

Локализация
Скачайте локализацию (перевод) (с официального сайта или drupal.ru), зайдите в конфигурацию локализации (Administer-Site Configuration – Localization) и добавьте новый язык (Add language). Включите новый язык и можете сделать его языком по умолчанию (Default). Затем в Import загрузите файл в выбранный язык.

Вариант проще (спасибо Vadbars): сразу нажать Import, указать язык "Русский" и выбрать нужный файл для закачки. После импорта автоматически появится новый язык.

Если все прошло нормально, язык вашего сайта должен поменяться и страница переводов выглядеть примерно так:

После этого можно проверить перевод интерфейса форума и административной секции. Итак, заходим на главную страницу форумов и видим, что заголовок остался на английском (Forums), хотя пункт меню и ссылка в администрации поменялась.

Как выяснилось, заголовок берется из названия словаря, а оно даже после локализации осталось английским. Перейдите в Administer-Categories (Управление сайтом – Категории) и поменяйте название словаря форумов. После этого индекс форумов будет щеголять заголовком на родном языке:

Пути (Path)
С помощью этого модуля можно создать альтернативы стандартным путям Drupal’a типа “node/x” на какие-нибудь более понятные человеку. Надо сказать, большинство форумов без этого обходятся – при большом количестве сообщений создавать alias для каждого может быть накладно с точки зрения ресурсов сервера. Тем не менее, администраторы форумов, озабоченные вопросами SEO, возможно, захотят создать «синонимы» хотя бы для контейнеров и форумов.

Зайдите на страницу форумов и запомните путь у форума или контейнера, который вы хотите поменять. После этого зайдите в Administer-Site building-URL aliases (Управление сайтом-Конструкция-Синонимы) и выберите вкладку «Добавить синоним» (Add alias). Введите существующий системный путь и его синоним, который будет показываться пользователю. Создайте синоним.

Теперь форум, которому мы дали синоним, будет сразу же показывать новый путь (старый также будет работать). Забегая вперед, добавлю, что автоматическое создание синонимов как терминов (форумов), так и нод, обеспечивает очень полезный модуль pathauto. На этапе тестирования, я думаю, нас вполне устроят стандартные системные пути типа “forum/x”.

Настройка учетных записей (Profiles)

О собеседниках часто хочется узнать побольше. В этом вам поможет модуль profile, позволяющий гибкую настройку учетных записей пользователей. Зайдем на страницу Administer-User management-Profiles (Управление сайтом-Пользователи-Поля профилей). Здесь вы можете создать новые поля для учетных записей пользователей. Например, создадим поле для места жительства.
Выберем текстовое поле, введем название категории (Например, «Личная информация»), заголовок поля («Откуда») и служебное название поле по-английски, без пробелов и специальных символов (profile_place).

Можно добавить объяснение, которое будет показываться пользователю при заполнении поля («Например, укажите ваше место жительства»), вес поля (чем выше, тем раньше будет показываться поле в этой категории) и видимость (третья опция, показ поля на странице учетной записи, но не в списке пользователей). В заголовок страницы можно ввести «Жители места %value», если мы хотим, чтобы можно было просматривать список пользователей с одинаковым значением этого поля. Мы не хотим делать это поле обязательным, но хотим, чтобы оно появилось в форме регистрации пользователя.

Сохраните поле и зайдите на страницу своей учетной записи, а потом выберите «Изменить» (Edit). Категория «Личная информация» теперь стала отдельной вкладкой, под которой находится новое поле. Заполним его и сохраним.

Теперь на странице нашей учетной записи появилась категория «Личная информация» и заполненная информация нового поля, представленная в виде ссылки. Перейдя по ссылке, можно видеть всех пользователей с одинаковым значением этого поля (на данный момент только один).


Создадим еще одно поле в этой категории, например, для вебсайта. Выберите поле URL, заполните категорию. В Drupal’e существует автоматическое заполнение категорий профилей с помощью технологии Ajax. Если категория уже существует, можно набрать первую пару букв и подождать, пока она появится в списке. Это удобно, если вы хотите избежать опечаток и убедиться, что категория одна и та же.

Дальше заполните Заголовок, название формы, выберите более тяжелое значение веса, чем у поля «Откуда», третью опцию видимости, и не выбирайте никаких чекбоксов. Обратите внимание, что для поля типа URL отсутствует возможность просмотра поля с одинаковым значением и соответственно, выбора заголовка для него (что, в принципе, логично). После сохранения можно создать новые категории и посмотреть, как работают другие типы полей.

Отметим на будущее, какую информацию из учетных записей мы хотим видеть в сообщении пользователей (обычно это место жительства, ссылка на какой-нибудь IM, и т.д.)

Поиск (модуль search).

Для поиска по сайту нужна индексация, а для индексации нужен работающий cron (его можно запустить вручную на странице Отчет о состоянии (Status report).

Настроить поиск можно в настройках поиска в Administer-Site configuration-Search settings (Управление сайтом – Настройка – Настройки поиска) .

Статистика

После включения модуля, зайдем в Administer-Logs-Access Logs Settings (Управление сайтом – Системные журналы – Настройки журнала доступа) и включим Count Content views (Счетчик просмотра содержимого).

Теперь при выводе темы мы можем видеть, сколько раз ее прочитали (это распространяется и на все другие типы материалов).

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

Список последних обновлений

Модуль tracker создает список всех последний обновлений сайта по адресу вашсайт/tracker. К сожалению, в нем нельзя отсортировать результаты по типу материала, скажем, нельзя посмотреть только темы форума. Тем не менее, многие посетители сайтов на Drupal’e привыкли им пользоваться, так что нет ничего плохого в том, чтобы включить его хотя бы на первых порах. Никаких дополнительных настроек после включения модуля нет. (hint: свой трекер можно сделать с помощью модуля views).

Загрузка файлов и изображений

Модуль upload позволяет прикреплять файлы к материалам, включая изображения. После включения модуля в форме создания/редактирования материала появляется опция File attachments (Прикрепленные файлы).

Если поставить галочку под List (Показать список), то файл будет показываться в низу сообщения.

Вы можете настроить параметры загрузки в Administer-Site Configuration-File Uploads (Управление сайтом – Настройка – Загрузки файлов).

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

Настройка блоков.

Зачастую на форумах отсутствуют боковые блоки, но могут присутствовать списки последних или самых популярных сообщений. Drupal предоставляет блоки «Новые темы форума» и «Активные темы форума». Зайдем в Administer-Site-Building Blocks. Вначале укажем, что все активные правые и левые блоки должны показываться на всех страницах, кроме forum и forum/*.

Потом включим блоки новых тем форума и активных тем форума, указав, что они должны показываться в регионе content (в низу содержимого).

По желанию можно указать, что они должны показывать только на главной странице и по адресу forum и forum/*.

Это, разумеется, примерные настройки. Отключать все левые и правые блоки для форумов вовсе не обязательно, также как показывать блоки форума после контента.

Программа на следующий раз:

  • Пользователи и их права
  • Действия с темами форума и комментариями
  • Подведение итогов встроенных возможностей Drupal'a.

Комментарии

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 26 марта 2007 в 11:46

Ну что я могу сказать, особенно после благодарностей в мой адрес... Smile Ответное аллаверды? Конечно! Замечательная работа, Natalie.
Я уже иногда думаю, что пора писать русскую книгу по Drupal. Готовые главы для нее уже имеются. Пишем? Smile

Несколько замечаний и примечаний:
1) "Скачайте локализацию (перевод) (с официального сайта или drupal.ru), зайдите в конфигурацию локализации (Administer-Site Configuration – Localization) и добавьте новый язык (Add language). Включите новый язык и можете сделать его языком по умолчанию (Default). Затем в Import загрузите файл в выбранный язык."
Тут есть вариант проще: сразу нажать Import, указать язык "Русский" и выбрать нужный файл для закачки. После импорта автоматически появится новый язык.
2) В параграфе про перевод Forums обе картинки, "до" и "после" - одинаковые (т.е. нет картинки с переведенным "Форумы").
3) очепятки: "с одинаковом значением", "категория уже сущетствует", "подолжать, пока", "свой трекер можно (сделать)" И на картинке show_except_forums.jpg опечатка - forum/8 вместо forum/* Smile

Спасибо!


Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы? Smile Полный русский перевод Drupal 5.x и еще некоторых модулей.

Аватар пользователя SerHeg SerHeg 26 марта 2007 в 12:34

спасибо, все супер. все же интересно как сделать модераторов для форума и одновременно для блогов (на всякий случай).

Аватар пользователя oleum oleum 26 марта 2007 в 17:59

Natalie, огромное спасибо за такую нужную работу!
С Друпалом познакомился недавно, хочу сейчас перетащить под него phpbb-форум, так что Ваша работа очень кстати. Снимаю шляпу и с нетерпением жду продолжения!

Аватар пользователя Natalie Natalie 26 марта 2007 в 20:38

Спасибо за замечания, постараюсь все поправить, как только доберусь до домашнего компа!

PVasili, моде на что? Ах да, я же трачу кучу времени исключительно ради того, что "покрасоваться". Действительно, чем еще, нам, женщинам, заниматься...
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя KCEOH KCEOH 27 марта 2007 в 1:26

А можно как-нибудь в профиле создать поле, в котором было бы несколько слов (для поиска).

Например, поле интересы:
Музыка, походы, машины.

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

Аватар пользователя Natalie Natalie 27 марта 2007 в 3:19

Нет, потому что каждая категория - вкладка в профиле.
Но можно сделать профили нодами (модуль node profile, кажется), и тогда можно использовать таксономию.
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя Urfin Urfin 7 ноября 2007 в 17:55

Вот интересно? А можно ли использовать Drupal как движок для форума? К примеру на главной странице отображать последние посты (и) или активные темы. Вообще интересно. Нужно поэксперементировать.
И вообще какие есть модули для расширения функцианала стандартного форума? Или какие модули можно использовать для привлекательности стандартного форума?