[float=right][/float]
Хочу поделиться некоторыми мыслями по поводу построения сайтов на основе CMS Drupal.
Не вдаваясь в подробности построения архитектуры системы и наполнения ресурса, просто несколько правил и пояснений к ним.
Во первых надо четко понимать, то что мы можем получить, используя Друпал, делиться на две части:
1. Что выводить (какая информация попадает в контент сайта)
2. Как выводить (как эта информация представлена в конечном виде)
Если за первое (и частично за второе *) отвечает ядро системы и расширение функционала за счет системы модулей Друпала и «сниппетов»**, то за второе почти полностью отвечает система темизации принятая в Друпал.
*Почему модули отвечают, в том числе и за представление информации – дело в том, что почти каждый модуль, как входящий в ядро, так и сторонний, имеет некоторый функционал по выводу содержимого «по умолчанию».
** Сниппет – обычно, PHP-код, формирующий небольшой фрагмент контента.
Правило № 1. Никогда не следует пытаться исправить выводимую информацию и/или представление этой информации за счет изменения модулей ядра (или сторонних), единственное исключение это когда в модуле встречается явная ошибка, но и в этом случае правильнее или написать баг-репорт автору или создать патч и опять же отправить его автору модуля. Все что вы можете (или должны) изменять для управлением представления контента находится в каталоге sites/[all|ваша-сайт]/themes, и для управления самой информацией sites/[all|ваша-сайт]/modules/написанные-вами-модули (добавлю что кое-что еще можно (а иногда и нужно) изменять в файлике settings.php)
Для примера, допустим вы хотите, что бы фон комментария в превью у вас был не бледно-желтого цвета как задано по умолчанию в файле modules/comment/comment.css, а допустим голубым. Так вот, не надо исправлять файл modules/comment/comment.css, вполне достаточно прописать в файле стилей используемой вами темы строчку
.preview .comment { background-color: #e0efff;}, это будет работать и главное это концептуально правильно.
Другой пример, вы хотите, что бы в комментариях у вас не показывался заголовок, наверняка первое, что вам придет в голову это исправить файл (убрав там вывод переменной $title) modules/comment/comment.tpl.php , так вот опять же – не делайте этого. Тот же самый результат вы получите, скопировав указанный файл в каталог своей темы, и уже там исправив (т.е. убрав строку <h3><?php print $title ?></h3>
).
Правило № 2. Любые изменения в теме (кроме, пожалуй, файлов css и то при условии, что они у вас не закэшированы), требуют очистки кэша, иначе вы не увидите ваших изменений, и будете долго пытается понять, почему ваши изменения не работают. Да тут имеется в виду кэш Друпала а не кэш браузера. Очистить кэш в шестой версии можно через admin/settings/performance – там внизу кнопка «Очистить кэш данных», в пятерке кэш тем, можно очистить, зайдя на страницу управления темами (admin/build/themes) и «засубмитив» данную страничку. Кроме того, очистить кэш можно почистив таблицы базы, начинающиеся с cache* (Делается это sql командой DELETE FROM имя-таблицы, тут важно не перепутать имя таблицы иначе возможен крах вашего сайта).
Правило №3. Это правило касается PHP-сниппетов, перед их публикацией обязательно проверяйте их работоспособность, иначе вы можете попасть на долгий и нудный геморрой. Как это сделать ? Проще всего создать файлик в корне вашего сайта, допустим test.php, с содержимым вашего сниппета и добавив в него дополнительно две строчки перед сниппетом
<?php
include_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
//тут код вашего проверяемого сниппета
?>
Да добавлю, что ваш сниппет должен выводить какой то контент, иначе блок с данным сниппетом не будет показан на странице. После проверки сниппета не забывайте удалять этот файлик.
Проверка запускается через ваш-сайт/test.php.
Правило №4. А по значимости, наверное, первое. После установки Друпала (если вы впервые с ним работаете), пройдитесь по всем настройкам системы, и постарайтесь понять как те или иные настройки влияют на содержание и на представление контента вашего сайта.
Данным материалом, я ни в коем случае не претендую на истину в последней инстанции, и наверняка существует еще масса правил и исключений из них
Материал взят с сайта http://www.hotel-prog.ru
Комментарии
Полезно. Всегда думал что http://www.hotel-prog.ru, это что-то связанное с гостиничным бизнесом
Я бы добавил ко второму правилу, что стандартные темы менять тоже нельзя. Это чревато тем же гемором, что и в первом пункте. Хочешь измененный гарланд - будь добр создать рядом тему garland2 и меняй там что угодно, переключив тему в админке.
Очень полезное это Правило №3. Отличное решение! Спасибо.
Решение было сохранено на сайте DrupalCookBook.ru:
Проверить работоспособность сниппета.
Авторы, предложившие решения, также указаны в сохранённой статье.
По третьему пункту не соглашусь, куда проще вставить сниппет в поле для комментария, выбрать режим пхп и нажать "превью" комментарий.
Можно и так, при условии что комментарии на сайте разрешены и доступен php filter
Закрепить бы....
вот наглые то пошли