• Panels Views – используется для вывода представлений, созданных модулем Views внутри регионов, созданных модулем Panels;

• Mini panels – позволяет выводить панели внутри стандартных блоков Drupal;

• Понадобятся также модули Blog, Forum, Locale, Path, Pathauto, все модули из групп LDAP Integration, FCKeditor, IMCE, Token.

Итак, отмечаем галочками все вышеперечисленные модули и сохраняем изменения.

Распределяем права доступа к содержимому и функциям сайта

Настройка. Создадим новые типы материалов, которые станут основой для нашего проекта. Для этого нужно перейти в меню Administer – Content types (/admin/content/types) и нажать кнопку Add content type. Указываем человекопонятное имя типа материала «Отдел», машинно-понятное (латиницей) имя department и сохраняем изменения. Затем такие же действия проделываем еще раз, но в качестве имен указываем «Сотрудник» и worker.

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

Чтобы добавить дополнительные поля, нужно в списке типов материалов перейти по ссылке manage fields возле нужного типа. Сначала для материала типа Отдел создадим поле-ссылку на поле Начальник отдела, зададим тип поля Node Reference, человеко– и машинно-понятные имена «Начальник отдела» и boss, соответственно. Затем добавим поле-картинку – тип Image, имена – «Изображение» и department_image, а также поле-список телефонов – тип Text – Text area, названия – «Телефоны» и department_phones. Для каждого из полей можно задать ряд дополнительных настроек, – например, для картинок можно указать максимальные размеры файла и разрешения изображения, а для поля-ссылки на документ можно выбрать метод, позволяющий отображать список документов, на которые можно поставить ссылки, обычный комбобокс или текстовое поле с автозаполнением.

На странице отдела будем выводить автоматически сформированный список сотрудников этого отдела. Для этого списка понадобится уменьшенная фотография сотрудника. Автоматическая обработка изображений выполняется модулем ImageCache, в котором (в нашем примере) нужно создать два набора настроек: с помощью первого изображения будут уменьшаться до квадрата 100?100 пиксел, во втором – до квадрата со стороной 20 пиксел. Чтобы создать эти наборы настроек, необходимо перейти в меню Administer – ImageCache (/admin/build/imagecache) и нажать кнопку Add new preset. При помощи модуля ImageCache изображения можно масштабировать, поворачивать на 90°, менять цветовую схему и т. д. А если установить модуль ImageCache Actions, то дополнительно появятся возможности накладывать на изображения водяные знаки, добавлять фон, поворачивать их на любые углы и т. д. В нашем случае следует воспользоваться или операцией Crop, вырезав из указанного в настройках участка изображения прямоугольник заданных размеров, или действием Scale, пропорционально уменьшающим изображение до заданного размера. Недостаток второго варианта в том, что если исходное изображение имеет неквадратную форму, то и результирующее будет неквадратным, а в большом списке изображения, имеющие разные размеры, могут смотреться некрасиво. С помощью действия Crop из картинки можно вырезать квадратный фрагмент.

Сейчас займемся распределением прав доступа к материалам. У нас будет две группы (роли) пользователей: одна группа имеет полный доступ к карточкам всех отделов и сотрудников (редакторы), у пользователей второй группы будет разрешение на просмотр всех материалов, но редактировать они смогут лишь некоторые поля своей карточки. Кроме того, пользователи обеих групп смогут общаться на форуме и вести свой дневник. По умолчанию в Drupal созданы две роли – анонимные и авторизованные пользователи. Нам понадобится третья группа – группа редакторов. Чтобы ее добавить, необходимо в соответствующей форме в меню Administer – Roles (/admin/user/roles) указать имя создаваемой роли, например Редактор.

После того как роли созданы в меню Administer – Permissions (/admin/user/permissions), укажем права доступа для каждой. В группе прав blog нашим двум ролям выдадим права create blog entries и edit own blog entries, позволяющие создавать и редактировать свои записи в дневниках. Аналогичные галочки нужно расставить и в группе прав forum. В группе прав comment установим галочки access comments, post comments и post comments without approval, разрешающие просматривать и размещать комментарии без предварительной проверки модератором. В группе прав content_permissions для роли Редактор установим все галочки, а для роли authenticated user только галочки, разрешающие просмотр полей (они начинаются со слова view), и галочку, позволяющую редактирование фотографии в материале типа Сотрудник. Далее в группе прав node дадим редакторам полный доступ к материалам типа Отдел и Сотрудник (галочки create, edit, delete для каждого типа), а обычным пользователям разрешим только операции access content и edit own worker content.

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

Осталось расставить еще несколько галочек: view all panes и access all panel-pages для просмотра документов, созданных модулем Panels, access all views – для просмотра представлений, view imagefield uploads – для просмотра закачанных картинок.

Настраиваем и подключаем службу каталога (LDAP)

Все создаваемые материалы по умолчанию будут иметь адрес вида node/AAA, где AAA – id (номер) документа. Это нас не устраивает по двум причинам. Во-первых, такой URL не передает пользователю информацию о том, что за документ находится по этому адресу, удобнее иметь адреса вида /article/name или news/2008/10/28/title. Во вторых, такой URL сложно использовать в служебных целях. Если, например, в адресе страницы содержится информация о типе материала, можно настроить вывод на экран определенных блоков. В нашем случае блок со списком сотрудников должен выводиться только на странице отдела. Это решается настройкой модуля Pathauto, который занимается автоматическим созданием человеко-понятных ссылок на основе заданных администратором правил. Настройки модуля задаются в меню Administer – URL Aliases – Automated alias settings (/admin/build/path/pathauto). Здесь в блоке настроек Node path settings для типа контента Отдел укажем маску department/[nid], а для типа контента Сотрудник маску worker/[nid]. Теперь по адресу документа легко определить его тип. Модуль Pathauto позволяет использовать в адресах различные шаблоны, в том числе и транслитерированные названия. Для работы транслитерации в папке с модулем Pathauto необходимо найти файл i18n-ascii.example.txt и переименовать его в i18n-ascii.txt, после этого в настройках модуля установить галочку Transliterate prior to creating alias.

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

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату