Статьи и руководства / Drupal: руководство по пользованию

Оригинал: http://www.jino.ru/support/manuals/drupal.html

Содержание

Введение
Администрирование
Восстановление пароля администратора
Установка модуля
Создание шаблона в Drupal
Создание индивидуальных шаблонов
Движок шаблонирования XTemplate
Создание нового шаблона
Основы создания шаблона
Ограничение доступа к файлу cron.php
Большой размер таблиц cache, sessions, watchdog, accesslog
Неправильно определяется версия библиотеки GD в модуле image
6 шагов к тому, чтобы заставить Drupal работать быстрее
Перенос сайта с локальной машины (localhost) на хостинг «Джино»
Если не доступен Cron
Популярные модули Drupal
Описание и назначения некоторых дополнительных модулей для Drupal
Переход на версию Drupal 5
Проблема с отображением аватар в темах на сайте
Удаление блока с формой входа на сайт
Включение блока для отображение
Удаление ссылки "Далее" в отображение статьи

Введение

Drupal — мощная система управления контентом, созданная группой энтузиастов со всего мира. С ее помощью вы можете создать сайт практически любой сложности — от небольшого личного блога до огромного портала. Благодаря мощному API, большому количеству подключаемых модулей и тем оформления, Drupal может удовлетворить любые ваши потребности.

Проект начат в 2000 году, программистом Драйесом Байтаертом.

Название Drupal является английским произношением голландского слова "druppel" ("капля"). Так что название этой CMS, в отличие от CMS Joomla, не несёт никакого смысла.

Администрирование

Чтобы перейти в панель управления системой Drupal, сначала авторизируйтесь в правой панели сайта, в блоке "Пользовательский логин". После перейдите по ссылке "Управление" всё в том же правом блоке. Теперь вы находитесь в панели управления системы Drupal.

Восстановление пароля администратора

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

Есть второй способ. Второй способ восстановления пароля заключается в том, чтобы войти в базу данных, и средствами phpmyadmin изменить уже имеющийся пароль администратора. Помните, что пароли в базе данных Drupal, хранятся в зашифрованном виде, в таблице users. Расшифровать нынешний пароль дело не лёгкое и бесполезное. Достаточно просто сгенерировать MD5-хэш нового пароля с помощью утилиты md5sum:

echo "new pass" | md5sum

После этого, с помощью phpmyadmin выполнить запрос:

UPDATE {префикс_user} SET pass = '$PASSWORD' WHERE uid = 1

{ префикс_user } - надо заменить на название с префиксом, которое у вас используется для таблицы users, а $ PASSWORD - на MD5 значение нового пароля, сделанного в программе md5sum.

Установка модуля

Установка модулей в Drupal очень простая и не вызывает затруднений:

  1. Распаковываем папку с модулем;
  2. Загружаем распакованный модуль в директорию Drupal в папку /modules/;
  3. После того, как вы загрузите модуль, его надо включить в разделе "Управление" -> "Модули" панели управления системой Drupal;
  4. Модуль установлен.

Создание шаблона в Drupal

Система шаблонов Drupal очень гибкая. Нынешняя структура позволяет легко соединять компоненты вместе для создания вашей темы: движки для создания шаблонов тем, шаблоны, стилевые страницы и PHP.

Вот как устроены некоторые из существующих тем:

Теперь тема – это абстрактная вещь, которая может быть сформирована несколькими путями:

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

themes/engines/xtemplate/xtemplate.engine
themes/engines/phptemplate/phptemplate.engine
themes/pushbutton/xtemplate.tmpl
themes/pushbutton/style.css
themes/box_grey/page.tpl.php
themes/box_grey/style.css
themes/box_grey/box_cleanslate/style.css
themes/bluebeach/page.tpl.php
themes/bluebeach/style.css
themes/chameleon/chameleon.theme
themes/chameleon/style.css
themes/chameleon/marvin/style.css

Темы и шаблоны размещены в их собственной поддиректории, в директории папке themes. Движки шаблонов проверят каждую поддиректорию на присутствие файлов шаблонов. Если в папке присутствует файл style.css он также будет использован.

Вы можете делать темы, основанные только на CSS, создав поддиректорию в директории любой темы, и поместив в ней новый файл style.css. Drupal объединит новую стилевую таблицу с шаблоном к которому она привязана и сделает его доступным как новую тему. Так работают темы Marvin и Box Cleanslate.

Наконец, если в директории темы есть файл screenshot.png, Drupal отобразит его в экране администрирования темы.

Создание индивидуальных шаблонов

Если вы хотите создать индивидуальную тему, вы можете модифицировать существующую тему или начать с нуля. Чтобы модифицировать существующую тему, просто скопируйте ее в новую директорию в папку themes. Затем измените тему настолько насколько вам нужно. В зависимости от того, чем является тема шаблоном или основанной на файле .theme, вы можете использовать PHP или XHTML/CSS для его изменения. Как пояснялось выше, если вы хотите всего лишь поменять CSS темы, тогда просто поместите новый файл style.css в поддиректорию темы: он появится как новая тема в Drupal.

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

Темы Drupal обычно кодированы прямо в PHP. Этот метод все еще доступен, но сложнее в использовании и применении тем основанных на шаблонах.

Движок шаблонирования XTemplate

Система шаблонирования XTemplate использует шаблоны для верстки и стилизации веб-страниц. Она разделяет логическое (PHP), структурное (XHTML/HTML) и стилистическое (CSS) изготовление, для дизайнеров проще создавать и модифицировать шаблоны, работая на XHTML/HTML и CSS без забот о кодировании чего-либо в PHP.

Шаблоны XTemplate это директории, которые содержат все XHTML/HTML, CSS, изображения и файлы JavaScript которые использует шаблон. Шаблоны размещены в директории тем установки Drupal /themes/.

Как шаблон появляется в директории тем, XTemplate автоматически определяет его и делает его доступным для выбора администраторов "Администрирование" -> "Темы".

Drupal распространяется с включенными шаблонами XTemplate - Bluemarine и Pushbutton.

Создание нового шаблона

Чтобы создать новый шаблон XTemplate, создайте новую директорию в установки Drupal по адресу: /themes/.

Как вы назовете новую директорию, такой название и будет иметь ваш новый шаблон. Допустим: /themes/jino/.

Как только вы создадите шаблон в этой директории, он сразу появится на странице выбора шаблона под именем "jino".

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

Единственный файл, который нужен в директории - это xtemplate.xtmpl, который является обычным файлом HTML или XHTML, содержащим некоторые тэги XTemplate, которые Drupal заменяет содержимым, когда страница обслуживается. Файл xtemplate.xtmpl можно редактировать в DreamWeaver, GoLive, BBEdit или любом другом приложении, которое вы используете для работы над HTML/XHTML.

Все остальные файлы в шаблоне являются выборочными, и присоединяются из файла xtemplate.xtmpl. Он может содержать CSS, изображение или файлы JavaScript и должны быть включены в директорию шаблона, чтобы сделать администрирование и обслуживание, и перемещение между установками Drupal проще.

Заметьте, если вы дадите таблице стилей имя style.css, она будет автоматически подключена Drupal и вам не нужно явно добавлять для этого @import или . Если вы делаете поддиректорию внутри шаблона, содержащего другой файл style.css, тогда поддиректория станет новой темой, использующей XHTML из первой темы, но с другой стилевой таблицей stylesheet.

Основы создания шаблона

xTemplate создает веб-страницы, замещая теги заполнители в шаблоне, файла xtemplate.xtmpl, содержимым из базы данных.

Есть два типа тэгов заполнителей в шаблоне, теги раздела и теги элемента.

Ограничение доступа к файлу cron.php

Скрипт cron.php регулярно исполняющий сервисные функции сайта по расписанию по умолчанию доступен извне. В принципе его вызов не несёт неприятных последствий для сайта, если cron.php уже исполняется, то его повторное исполнение в это время будет блокировано. Поэтому организовать таким способом DOS атаку на сайт не удастся. Тем не менее, частый вызов скрипта даже с интервалом в секунды или десятки секунд вряд ли имеет смысл, поэтому можно на всякий случай ограничить доступ к cron.php только обращением из скрипта в crontab (т.е. с текущего сервера).

Для этого можно использовать директивы allow from в файле .htaccess:

<Files cron.php>
order deny,allow
allow ваш IP
allow 123.456.78.90
</Files>

Мы запрещаем доступ отовсюду кроме хостов указанных директивами allow.

Большой размер таблиц cache, sessions, watchdog, accesslog

Следите за размером таблиц в базе. Таблицы для хранения логов, такие как accesslog или watchdog при нормальном функционировании сайта регулярно очищаются от старых записей. Это происходит по расписанию, поэтому важно чтобы на сайте корректно исполнялся cron.php.

Совет для MySQL. Некоторые таблицы с часто обновляемым содержимым - cache, session - могут время от времени "распухать" в размере за счёт пустого места, остающегося в файлах после удаления записей. Хотя реальный размер данных может быть небольшим, таблица при этом может занимать много места. Имеет смысл время от времени (раз в сутки, например) проводить оптимизацию таблиц. Для этого используйте такой скрипт (поместите в корневой каталог сайта и установите в Cron, таким же способом как Сron.php):

include_once "includes/common.inc";
db_query("OPTIMIZE TABLE {cache}");
db_query("OPTIMIZE TABLE {sessions}");
db_query("OPTIMIZE TABLE {watchdog}");

Неправильно определяется версия библиотеки GD в модуле image

Часто бывает такое, что у вас установлено GD1, а в установках image module присутствуют только image magick и GD2. Чтобы поправить положение, надо замените в image module строки:

if (function_exists("imageCreateTrueColor")) {
$libraries = array("imagemagick" => "imagemagick", "gd2" => "gd2");
}
else if (function_exists("imageCreate")) {
$libraries = array("imagemagick" => "imagemagick", "gd1" => "gd1");
}

На:

$libraries = array ( "imagemagick" => "imagemagick", "gd1" => "gd1", "gd2" => "gd2" );

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 всех таблиц (и можно делать его регулярно).

Перенос сайта с локальной машины (localhost) на хостинг «Джино»

  1. На локальной машине, надо сделать экспорт таблиц базы с локального сервера с помощью, например, phpMyAdmin в файл типа .sql;
  2. На хостинге «Джино» через phpMyAdmin расположенный в контрольной панели надо импортировать таблицы из полученного sql файла на локальной машине;
  3. Перенесите файлы с локального компьютера на хостинг;
  4. Отредактируйте файл конфигурации settings.php в директории sites/default. Найдите в этом файле строку: $db_url = "mysql://username:password@localhost/databasename

    Поменяйте на следующие данные:

    • username - Имя доступа к Mysql (по умолчанию ваш логин от контрольной панели «Джино»);
    • password - Пароль доступа к Mysql (по умолчанию ваш пароль от контрольной панели «Джино»);
    • localhost - localhost;
    • databasename - Имя базы (по умолчанию ваш логин от контрольной панели «Джино»).
    .
  5. Установите права доступа на директорию с файлами (files) 777;
  6. Установите права доступа на директорию с временными файлами (tmp) 777. Уберите косую черту перед tmp в admin/settings;
  7. Поменяйте все абсолютные пути типа http://ваш.сайт/ на новый домен;
  8. После выше проделанной операции по переносу сайта с локальной машины на хостинг «Джино», ваш сайт должен быть доступен посетителям.

Eсли не доступен Cron

В Drupal активно используется исполнение заданий по расписанию - индексирование текстов для поиска, отправка писем и т.п. Реализовано это периодическим вызовом cron.php. Если вызов нельзя по каким-то причинам прописать в crontab, то можно:

  1. Попросить кого-нибудь имеющего доступ к cron периодически запускать у себя скрипт обращающийся к вашему cron.php;
  2. Поставить модуль poormanscron, реализующий обычную для многих CMS схему отработки периодических заданий во время обращения посетителей к сайту - не самый лучший способ, но лучше чем ничего.

Популярные модули Drupal

Описание и назначения некоторых дополнительных модулей для Drupal

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

На этом мы заканчиваем рассматривать и изучать самые популярные дополнительные модули для Drupla, которые не входят в стандартный дистрибутив Drupal.

Выше рассмотренные модули можно скачать с официального английского сайта Drupal — drupal.org

Переход на версию Drupal 5

  1. На хостинге "Джино" через phpMyAdmin расположенный в контрольной панели надо сделать копию нынешней базы данных;
  2. После того, как вы сохраните копию базы данных, надо сделать копию файлов сайта;
  3. В панели управления системой Drupal выключаем сайт;
  4. Отключаем сторонние модули и включаем шаблон по умолчанию;
  5. Загружаем дистрибутив новой версии Drupal поверх файлов нынешней версии Drupal;
  6. Запускаем файл update.php в строке браузера и следуем инструкциям;
  7. На этом переход на Drupal 5 закончен.

Проблема с отображением аватар в темах на сайте

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

Удаление блока с формой входа на сайт

Чтобы убрать данный модуль, надо просто отключить блок "Пользовательский логин". После этого, доступ для авторизации будет доступа по следующей ссылке: http://ваш.ru/?q=user .

  1. Включаем модуль "statistics" (administer/modules) входящий в стандартный дистрибутив Drupal;
  2. В настройках модуля (administer/setting/statistics) включаем счетчик показа статей;
  3. В administer/blocks включаем появившийся блок "Popular content". Не забудьте настроить его (configure);
  4. "Number of day's top views to display" - количество самых популярных статей за день, "All time" - за все время, "Most recent views" - самые последние просмотры. По умолчанию стоит "Disbale".

Удаление ссылки "Далее" в отображение статьи

Необходимо вставить тег <!--break--> в самом конце статьи. Только учтите, после него не должно быть пробелов.