Drupal: практические примеры

Как использовать возможности Drupal на практике? Рассмотрим несколько приме­ров, для сборки которых требуются только существующие модули Drupal и не требуется знания языков программирования. Многие приведенные в примере задачи (и соответст­венно решения) можно рассматривать как типовые, так что они могут пригодиться для сайтов самого разного типа.

Полнофункциональные, настроенные и готовые к работе версии сайтов, речь о ко­торых идет в этом разделе, можно найти на компакт-диске, прилагаемом к журналу PC Magazine/RE 12/2008 (вместе с системными модулями пакета Denwer), а также в Интер­нете по адресам http://2start.ru и http://shvabrashvabr.ru. Примеры идут в комплекте с паке­том Denwer, поэтому вам не нужно заботиться об установке и настройке Web-сервера, СУБД и PHP, достаточно запустить инсталлятор и следовать инструкциям. После инстал­ляции и запуска Denwer (мы бы рекомендовали экспериментировать на виртуальной ма­шине) станут доступны два сайта, сборка которых описана в этой статье, — http://shvabrashvabr.lc и http://intranet.lc. Имя пользователя/пароль администратора каждого из сайтов — admin/1111.

Ссылки на другие части этой статьи:

· Часть 1. Введение

· Часть 2. Архитектура Друпала

· Часть 3. Модули Drupal

· Часть 4. Интранет-сайт на Друпале

· Часть 5. Социальная сеть на Друпале

· Часть 6. Оптимизация Друпал

Одним из модулей-столпов на которых зиждется Drupal, наравне с Views, является модуль CCK (Content Construction Kit). Он позволяет создавать произвольные типы документов, а так же добавлять к ним новые поля. Скачать модуль можно тут.

В пакет модулей CCK входят следующие модули:

Content— Основной модуль, без него ничего работать не будет. Позволяет созда­вать новые типы документов (Content types).
Content Copy — позволяет импортировать/экспортировать определение полей.
Content Permissions — позволяет устанавливать права доступа на уровне полей.
Fieldgroup — с помощью него можно группировать поля.
Node Reference — добавляет к документу ссылку на другой документ.
Number— добавляет численное поле.
Option Widgets — добавляет дополнительные типы выбора для текстовых и чи­словых полей.
Text— добавляет текстовые поля.
User Reference— позволяет добавлять поле с ссылкой на пользователя.

Зайдем в меню «Administer › Site building › Modules» и включим их все.

В меню «Administer › Content management › Content types» добавим новый тип до­кумента.

Необходимо заполнить 2 поля: Name (Имя для пользователя) и Type(имя для машины).

Сохраняем новый тип данных, сейчас он практически ничем не отличается от типа Story, давайте его разнообразим. Жмем «Edit».

Следом нажимаем «Manage fields».

После включения модуля CCK тут добавилась вкладка Add

где можно добавить новое поле, и новую группу полей. Для добавления нового поля нужно ввести:

Label— заголовок поля который увидят пользователи.
Name — машинное имя.
Type of data to store — тип поля (у нас их 6, но на drupal org можно скачать множество дополнительных модулей).
Form element to edit the data — Элемент формы для редактирования поля. Если по-русски, то тут мы выбираем как будем вводить данные в это поле если на­пример у поля типа «Text» выбрать «Text field», то будет одно строчное поле для ввода текста, а если выбрать «Text area», то получим много строчное поле. У раз­ных типов полей разные варианты элементов формы.

Добавим поле с заголовком «Text», именем «text», типом «Text», элементом формы «text field», и нажмем «Save».

Здесь можно настроить только что добавленное поле.
Size of textfield— размер поля.
Default value — значение по умолчанию.
Required — если галочка установлена, то при добавлении материала данное поле будет обязательно для заполения.
Number of values— количество значений которое может ввести пользователь.

Я оставил все значения без изменений, и сохранил. Только что созданное поле отобразилось в списке, его можно перетащить мышкой, тем самым выбрав его ме­сторасположение.

Для того что бы изменить то, как поле будет отображаться, нужно зайти во вкладку «Display fields».

Здесь выводится список полей. Мы можем изменить:
Label — заголовок. Above — отображается выше содержимого поля. Inline — ото­бражается на одной линии с содержимым. - не показывать заголовок.
Teaser— как отобразать поле в превью. Default — по умолчанию. Plain text — обычный текст. Trimmed — обрезанный. - не показывать поле в превью.
Exclude — исключить поле из превью.
Full node— значения аналогичны Teaser, но распространяются не на превью, а на полный документ.
Exclude — исключить поле из документа.

Таким же образом в тип документа можно добавить и другие поля. Для CCK дос­тупно более 300 дополнительных модулей, и если вам нужно добавить какое либо поле не входящее в стандартную поставку, ищите модуль на drupal org.

Одним из самых полезных модулей Drupal для создания сайта, явля­ется модуль Views

Суть модуля проста, - он выводит данные в нужном нам виде, вывод можно на­страивать по многим параметрам, и всячески преображать. Для начала модуль нужно скачать, и установить . Активировать нужно 2 модуля (они идут в 1 архиве Views) Views и Views UI, первый выводит списки из базы так как вы задали, второй — это визуальная оболочка, с помощью которой создаются Views. После активации в меню «Administer → Site building» (Управление → Конструкция сайта) появится вкладка Views. Зайдем.

Здесь мы видим виды которые уже созданы по умолчанию, их может быть и больше в зависимости от установленных модулей. Эти виды неактивны, их можно включить с помощью ссылки «Enable», и использовать в своих целях. Но, !!МЫ!! попробуем сделать свой (пусть он и будет маленький, не­казистый и неработающий). Кликаем по кнопке «Add».
Появляется первое меню создания вида.

Тут 2 обязательных поля: заголовок (название вида., вводить английские буквы в нижнем регистре), и тип вида (View type — это то откуда мы будем брать инфор­мацию для вывода). Напишем в заголовке first (ведь это наш первенец, не так ли?), а тип вида поставим «Материал» (Node), будем выводить материалы. На­жимаем «Next», и попадаем на страницу где мы будем задавать параметры вы­вода, первоначально она выглядит ужасно, но это только в первый раз.

тут можно создать несколько display (видов вывода, наиболее используемые это блок, и страница). Один display уже есть — default, если вы хотите создать не­сколько схожих дисплеев, то можно задать основные настройки в default, созда­ваемые display наследуют эти настройки. Если вы хотите что бы настройки у дис­плея отличались от настроек Default, их нужно переназначить, для этого служит кнопка Override.

Давайте добавим блок.

Рассмотрим блок Fields, он является одним из основных, так как в нем мы выби­раем какие поля (Fields) будет отображать в нашем виде.

На блоке вы видите 2 кнопки, первая служит для добавления поля, вторая для вы­ставления полей в порядке нужном вам.
При нажатии на кнопку добавления поля, внизу отобразятся поля которые можно добавить, и выпадающий список сортировки. Если мы хотим добавить в вывод за­головки материалом, нам нужно выбрать Node: title, и нажать Add.

6 шагов к тому, чтобы заставить Drupal работать быстрее

1. В списке модулей выключите все модули, которые не используются, также стоит по­жертвовать модулями статистики;

2. Кэширование в Drupal снижает нагрузку на базу и значительно увеличивает ско­рость. Хотя кэш существенен только для анонимных посетителей, на сайтах их как правило большинство, кэш в любом случае рекомендуется включить;

3. Выключите использование mod_rewrite в .htaccess. URL'ы станут не такими краси­выми и короткими, но ведь многие CMS не используют коротких URL;

4. Модуль locale сильно сказывается на ухудшение скорости работы сайта, но локализа­ция обычно нужна, значит либо адаптируем к работе с gettext и смотрим, стало ли быстрей (в большинстве случаев должно), либо на крайний случай вы­ключаем локализацию интерфейса (крайняя мера);

5. Темы c XML-шаблонами обычно медленнее тем использующих только PHP, посмот­рите, какая тема используется по умолчанию: если это что-то вроде xtemplate или подобное, с шаблоном на XML - смените на тему использующую только php (например, chameleon);

6. Важной частью увеличения скорости работы Drupal является информация о количе­стве обращений к базе данных. Ставим модуль devel, включаем отображе­ние запросов и смотрим время их исполнения. Какие-то дополнительные модули могут быть криво написаны, и давать значительные задержки (например, неопти­мальные SQL-запросы), в стандартных модулях с этим обычно все в порядке. Про­буйте отключать различные модули (даже стандартные) и смотрите на время гене­рации страниц. К этому же совету: уменьшаем количество нодов выводимых по умолчанию на главную страницу (это если для главной страницы используется мо­дуль node). Проверяем наличие индексов у таблиц в базе. Также делаем тотальный optimize всех таблиц (и можно делать его регулярно).

Вопрсы настройки

7. работать следует не с папкой С:\WebServes, а с локальным диском Z или как Вы выбрали L (Диск Z - это виртуальный хостинг Ден­вера):

8. Копируем библиотеку php_mbstring.dll в папку Z:\usr\local\php5\ext (скачать соответствующий PHP и из него ско­пировать эту библиотеку и только так, иначе библиотека может не соответствовать установленному PHP);

9. Меняем кодировку базы в файле Z/usr/local/mysql5/cnf вме­сто ср1251 устанавливаем utf8 в строках 28, 40, 41, а в phpMyAdmin устанавливаем ru-utf8 и utf8_general.ci;

10. Z:/usr/local/php5/php.ini

11. В строке 255 увеличить время работы скрипта с 30 до 300 max_execution_time = 300 (чтобы не было зависаний, при ра­боте тяжелых модулей);

12. Проверяем строки, которые необходимо раскомментиро­вать: extension=php_mbstring.dll - работа с уникодом - раскоммен­тируем стр 608
extension=msql.dll раскомментируем строку 578
extension=php_gd2.dll - графическая библиотека стр 601 уже рас­комментирована в Денвере3;

13. Добавляем в файл .HTACCESS в корневой папке (на Денвере это папка www) в са­мом верху четыре строки:
php_value error_reporting 7
php_value memory_limit 32M //но лучше 96М
RewriteCond %{HTTP_REFERER} ^http://www\.google\.com/$
RewriteRule .* - [F] где первая строка - отвечает за отображение и сглаживание от­дельных ошибок, не влияющих на работу сайта; вторая-за необходимый мин. объем памяти для нормальной работы всех модулей Друпала, во избежание "белого экрана смерти" (без этой строчки можно обойтись, если в файле php.ini есть строка memory_limit=32 или в settings.php прописана строка ini_set(‘memory_limit’,’32M’); третья и четвертая строки-необходимы для нормальной работы поисковых серве­ров;

14. Создаем папку translations в папке www/profiles/default, а именно www/profiles/default/translations, в которую размещаем пе­ревод. Эта папка желательна, но не обязательна, можно хранить перевод и на жестком диске компьютера;

вопросы, на которые должен отвечать каждый Drupal-разработ­чик:

Модули

· Из чего состоит модуль?[1]

· Что такое .info файлы?

· Как добавлять стили и JS-код в модуль?

· Что такое хуки?

· Как добавить свою страницу в систему меню Дру­пала?

· Как переопределить вывод на существующей стра­нице сайта?

· Что такое Forms API?

· Как изменить произвольную форму созданную дру­гим модулем?

· Как добавить к этой форме свою проверку и свой обработчик?

· Как добавить на сайт свой блок из модуля?

· Как сделать чтобы у этого блока были собственные настройки?

· Как выполнять дополнительные действия при со­хранении ноды?

· Как отображать свои данные на страницах нод?

Темизация

· Как работает регистр темизации?

· Как переопределить стандартный шаблон в теме?

· Как темизировать вывод в модулях?

· Как вводить новые шаблоны?

· Как работают базовые темы?

· Код

· Какие правила кодирования используются при разработке Друпал-проектов?

· Как работать с SVN и CVS?

· Как создавать и применять патчи?

· Какие проблемы существуют при выкладывании проектов на живой сервер?

· Какой код можно считать безопасным и какие есть методы обеспечения безопасно­сти в Друпале?

· Как реализовывать unit-тесты в Друпале?

Денвер и Drupal

Шаг 1. Денвер

Для того, чтобы запустить Drupal на домашнем компьютере, понадобиться отдельная программа, которая позволит это делать. Одна из таких программ — Денвер. Денвер — это программый комплекс, позволяющий превратить ваш локальный компьютер в сервер. Название расшифровывается как «джентльменский набор веб-разработчика». Скачайте с сайта Денвера его дистрибутив и запустите. Откроется окно браузера, а после его закрытия появиться следующее окно:

Шаг 2. Папка

После установки Денвера, нужно сделать папку в которой будут храниться файлы сайта. Для этого зайдите в папку, в которой установлен Денвер, если вы её не меняли, то это C:\WebServers. Она выглядит следующим образом:

Далее перейдите в папку home и сделайте в ней папку для файлов сайта. В этом примере была сделана папка drupal.site:

Войдите в папку drupal.site и сделайте в ней папку с названием www:

И уже в папку www распакуйте файлы Drupal:

Если всё это делаете в первый раз, то чтобы не ошибиться что в какой папке делать, обращайте внимание на адресную строку на картинках — в ней можно увидеть текущее местонахождение.

Шаг 3. База данных

По умолчанию, Drupal работает с базой данных MySQL. Эта база данных входит в комплект Денвера и для работы с ней нужно запустить Денвер. Найдите ярлыки которые Денвер создал на Рабочем столе и запустите Start servers. На экране появятся и исчезнут два окошка, после этого запустите браузер и наберите в адресной строке:

localhost

и используйте манипулятор типа мышь, чтобы нажать им на кнопку Перейти в браузере. Открывшуюся страницу нужно прокрутить до раздела Утилиты, в котором перейдите по ссылке Заведение новых БД и пользователей MySQL.

После перехода по ссылке, заполните окрывшуюся страницу следующим образом:

Пароль администратора MySQL:

Имя базы данных: drupalsite

Логин пользователя: drupalsite

Пароль: drupalsite

…еще раз: drupalsite

После ввода этих данных, нажмите кнопку Создать БД и пользователя.

Страница перезагрузится и после заголовка появится надпись: База данных и новый пользователь заведены:

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

Шаг 4. Установка Drupal

Поледний шаг — это установка самого Drupal. Здесь будет описана установка Drupal с включённым в дистрибутив русским языком. Наберите в адресной строке браузера:

drupal.site

нажмите кнопку перехода и вы увидите страницу с предложением выбрать язык на котором и будет проходить дальнейшая установка. Выберите Russian (Русский) и нажмите кнопку Select language.

На следующей странице Drupal попросит создать файл settings.php в папке /sites/default. Этот файл нужно создать из файла default.settings.php. Нужно именно создать новый файл, а не переименовать существующий. После этого в этой папке у вас должно быть два файла: default.settings.php и settings.php. Нажмите ссылку обновите страницу в последней строке.

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

Откроется и вскоре исчезнет страница Установка Drupal, во время которой Drupal внесёт изменения в файл settings.php.

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

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

На следующей странице будет проведена установка языка.

На последней странице установки Drupal сообщит о её завершении и предложит войти в аккаунт. Нажмите ссылку войти в свой аккаунт.

Вы окажетесь в аккаунте администратора. На странице будет находиться сообщение, которое выводится на первую страницу сайта в том случае, когда нет не одного документа выведенного на первую страницу. Теперь сделайте то, что обычно не делают: прочитайте эту страницу.

Отметьте:

после установки удалять файл install.php нет необходимости, т.к. в install.php есть Verify existing settings.php и установка запуститься только в том случае, если файл settings.php содержит записи совпадающие с default.settings.php.

однако если хотите, вы можете удалить как install.php, так и все файлы с расширением txt: CHANGELOG.txt, COPYRIGHT.txt, INSTALL.txt, INSTALL.mysql.txt, INSTALL.pgsql.txt, LICENSE.txt, MAINTAINERS.txt, UPGRADE.txt.

Комментарии

Нажмите кнопку «Да». После этого появиться окно с процессом распаковки файлов. Когда файлы будут распакованы, то следующее окно будет таким:

Денвер проверит наличие необходимых компонентов, убедится что всё на месте и предложит нажать Enter для продолжения. Нажимаете Enter и появляется следующее окно:

На этом шаге предлагается выбрать папку в которую будет установлен Денвер. Можете выбрать то название, которое вам больше нравиться. Если устраивает C:\WebServer, то нажимаете Enter. Здесь нужно подтвердить свой выбор. Нужно ввести y и нажать Enter.

Денвер предупредит о создании виртуального диска. После нажатия Enter появится следующее окно:

Здесь нужно ввести букву виртуального диска. По умолчанию Денвер предлагает ввести Z и если у вас нет причин выбирать другую букву, то введите z и нажмите Enter.

Денвер сделает на диске указанную папку и предупредит о начале копирования файлов. После нажатия Enter, в окне пробежит строка копирующихся файлов:

Затем будет выведено следующее сообщение:

На этом шаге потребуется выбрать режим запуска Денвера. Прочитайте пояснения к режимам и выберите удобный для вас 1 или 2. После выбора режима запуска, Денвер спросит нужно ли создавать на Рабочем столе ярлыки, введите y и нажмите Enter. Окно установки закроется, а в браузере откроется информационная страница. На этом процедура установки Денвера закончена.

WordPress

WordPress — CMS с открытым исходным кодом, распространяемая под GNU GPL. Написан на PHP, в качестве базы данных использует MySQL. Сфера применения — от блогов до достаточно сложных новостных ресурсов и даже интернет-магазинов. Встроенная система «тем» и «плагинов» вместе с удачной архитектурой позволяет конструировать практически любые проекты.

На 2007 год WordPress — самая популярная система для ведения автономных блогов.

­ возможность публикации с помощью сторонних программ и сервисов;

­ простота установки, настройки;

­ поддержка RSS, Atom, trackback, pingback;

­ подключаемые модули (плагины) с уникальной простой системой их взаимодействия с кодом;

­ поддержка так называемых «тем», позволяющих легко менять как внешний вид, так и способы вывода данных;

­ «темы» реализованы как наборы файлов-шаблонов на PHP, что положительно сказывается на скорости и гибкости;

­ громадные библиотеки «тем» и «плагинов»;

­ заложенный потенциал архитектуры позволяет легко реализовывать сложные решения;

­ человеко-понятный URL;

Joomla

Joomla! (произносится джу́мла) — система управления содержимым, написанная на языках PHP и JavaScript, использующая в качестве хранилища базу данных MySQL. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL.

В настоящее время актуальна версия 1.5. В разработке находится версия 1.6. К лету 2008 года по числу ежедневных скачиваний Joomla! заняла второе место после WordPress со значительным отрывом от других подобных систем.[3]

CMS Joomla! включает в себя различные инструменты для изготовления веб-сайта. Важной особенностью системы является минимальный набор инструментов при начальной установке, который дополняется по мере необходимости. Это снижает загромождение административной панели ненужными элементами, а также снижает нагрузку на сервер и экономит место на хостинге.

Joomla! позволяет отображать интерфейс фронтальной и административной части на любом языке. Каталог расширений содержит множество языковых пакетов

Основные возможности

Функциональность можно расширять с помощью дополнительных модулей (расширений, плагинов).

Модуль безопасности для многоуровневой аутентификации пользователей и администраторов.

Система шаблонов позволяет легко изменять внешний вид сайта.

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

К преимуществам системы можно отнести то, что все модули, компоненты, плагины, шаблоны можно написать самому, разместить их в структурированном каталоге расширений или отредактировать существующее расширение по своему усмотрению.

Возможности администрирования

Для каждой динамической страницы можно создать своё описание и ключевые слова в целях повышения рейтинга в поисковых системах;

Начало и окончание публикации любых материалов можно запрограммировать по календарю;

Возможность ограничить доступ к определённым разделам сайта только для зарегистрированных пользователей;

Настраиваемые схемы расположения элементов по областям шаблона

Различные модули (последние новости, счётчик посещений, подробная статистика посещений, гостевая книга, форум и другие);

Возможность создания не одной, а нескольких форм обратной связи для каждого контакта;

Модуль приёма от удалённых авторов новостей, статей и ссылок;

Иерархия объектов;

Менеджер рассылки новостей. Поддержка более чем 360 служб рассылки новостей по всему миру;

Встроенный визуальный редактор TinyMCE;

ЧПУ — «человекопонятный URL»;

Минимальные системные требования

Для работы Joomla требуются:

Apache 1.3.x или новее.

Для версии 1.6 будут требоваться, как минимум, PHP 5.2 и MySQL 5.0.4.[7]

Литература

Томас Захреддин Drupal 6 = Das Drupal 6 Praxisbuch. — М.: «Эксмо», 2008. — С. 432. — ISBN 978-5-699-36219-6

Джон Вандюк, Мэтт Вестгейт «CMS Drupal: руководство по разработке системы управления сайтом», 400 стр., с ил.; ISBN 978-5-8459-1356-2, ISBN 978-1-5905-9755-2

Джон Вандюк (2-е издание) «CMS Drupal 6: руководство по разработке системы управления сайтом», 576 стр., с ил.; ISBN 978-5-8459-1513-9, ISBN 978-1-43-020989-8

Дэвид Мерсер Drupal 6. Создание надежных и полнофункциональных веб-сайтов, блогов, форумов, порталов и сайтов-сообществ = Building powerful and robust websites with Drupal 6: Build your own professional blog, forum, portal or community website with Drupal 6. — М.: «Вильямс», 2009. — С. 272. — ISBN 978-5-8459-1556-6

Джон Вандюк CMS Drupal 6: система для создания сайтов и управления ими = Pro Drupal Development. — 2-е. — М.: «Вильямс», 2009. — С. 576. — ISBN 978-5-8459-1513-9

В.Ромашов, М. Рысевец CMS Drupal: система управления содержимым сайта. — «Питер», 2009. — С. 288. — ISBN 978-5-49807-241-8

Robert T. Douglass, Mike Little, Jared W. Smith «Building Online Communities with Drupal, phpBB, and WordPress». Apress, ISBN 1-59059-562-9

David Mercer «Drupal: Creating Blogs, Forums, Portals, and Community Websites», ISBN 1-904811-80-9

John K. VanDyk, Matt Westgate «Pro Drupal Development», ISBN 9781590597552

Matt Butcher «Learning Drupal 6 Module Development», ISBN 978-1-847194-44-2

Колисниченко Денис Николаевич Joomla! 1.5. Руководство пользователя. — М.: «Диалектика», 2009. — С. 224. — ISBN 978-5-8459-1509-2

Хаген Граф Создание веб-сайтов с помощью Joomla! 1.5 = Building Websites with Joomla! 1.5. — М.: «Вильямс», 2009. — С. 304. — ISBN 978-5-8459-1506-1

Бэрри Норт Joomla! Практическое руководство = Building a Cuccessful Joomla! Powered Website. — М.: «Символ-Плюс, 2008. — С. 448. — ISBN 978-5-93286-117-2

Дэн Рамел Joomla! Самоучитель = Beginning Joomla! From Novice to Professional. — Санкт-Петербург: «БХВ-Петербург, 2008. — С. 448. — ISBN 978-5-9775-0285-6

Joomla! (англ.). Open Source Matters, Inc.. — Официальный сайт Joomla. Joomla в DMOZ

Joomla! CMS по-русски (рус.). Joomlaportal.ru. — Официальный сайт Joomla Russian Translation Community.


9156574465425287.html
9156688847618993.html
    PR.RU™