Drupal
Ниже представлена подборка известных сайтов, сделанных на Drupal. Первостепенной задачей было не показать возможности Drupal, а продемонстрировать популярность использования этой CMS для создания порталов крупных компаний и государственных сайтов. Поэтому ссылки собраны в основном на официальные сайты организаций, правительственные сайты, визитки знаменитостей и т.д.
Государство
-
whitehouse.gov
Официальный сайт Белого Дома -
gouvernement.fr
Правительство Франции -
nysenate.gov
Сенат Нью-Йорка -
monarchie.be
Официальный сайт короля Бельгии -
premier.be
Сайт премьер-министра Бельгии -
pm.gov.au
Сайт премьер-министра Австралии -
opm.gov.jm
Сайт премьер-министра Ямайки -
beehive.govt.nz
Правительство Новой Зеландии -
london.gov.uk
Официальный сайт Лондона -
cityofathens.gr
Официальный портал Афин -
jacksonville.com
Джэксонвилл, крупнейший город Флориды
Организации
-
greenpeace.org.uk
Гринпис -
wfp.org
World Food Programme -
hrw.org
Human Rights Watch -
kofiannanfoundation.org
Фонд Кофи Аннана -
mensa.org
Менса -
grammy.com
Премия Грэмми -
emmys.com
Премия Эмми -
universalmusic.com
Universal Music -
warnerbrosrecords.com
Warner Bros -
gmexpo2010.com
Презентационный сайт Дженерал Моторс -
cnngo.com
Проект CNN -
mattel.com
Официальный сайт крупнейшего в мире производителя игрушек -
motogp.com
MotoGP
Образование
-
suggest.mars.asu.edu
Исследование Марса -
pdx.edu
Университет Портленда
Журналы, ТВ
-
look.co.uk
LOOK -
linuxjournal.com
Журнал про Линукс -
slate.fr
Французская версия журнала State -
femina.ch
Журнал Фемина
Официальные сайты музыкантов и музыкальных групп
-
ledzeppelin.com
Лед Зеппелин -
moby.com
Моби -
bobdylan.com
Боб Дилан -
robbiewilliams.com
Робби Уильямс -
ozzy.com
Оззи Осборн -
michaeljackson.com
Майкл Джексон -
ericclapton.com
Эрик Клэптон -
beyonceonline.com
Бейонсе Ноулз -
pinkspage.com
Пинк -
britney.com
Бритни Спирс -
home.avrillavigne.com
Аврил Лавин -
jenniferlopez.com
Дженнифер Лопес
IT
Список сайтов составлен по материалам блога основателя Drupal Дриса Байтаерта.
- 3 комментария
Решил в отдельном посте собрать каталог ссылок на сайты про Drupal. Пост постараюсь постоянно держать актуальным, буду добавлять новые ресурсы и удалять заброшенные. Сразу оговорись – это не сборник всех сайтов про Drupal, а только тех, которые являются содержательными по моему субъективному мнению.
Русскоязычные сайты
Официальные сайты
-
drupal.ru
Сайт русскоязычного сообщества Drupal. Интерес представляет форум, наиболее полезные топики которого систематизированы и собраны в разделе «Документация». Сообщество форума дружелюбно, отсутствует свойственная многим форумам градация на «новичков» и «старожилов», отношение ко всем одинаковое. Нет флуда, общение только по существу. Вероятность получить квалифицированный совет велика (не разжеванный, изначально предполагается хорошее знание Drupal спрашивающего, поэтому ответы в виде кода или ссылки на англоязычную документацию не редки), однако вопросы по нестандартным решениям (коих в друпале превеликое множество) могут остаться без ответа, разбираться за вас никто не будет.
Сайты про Drupal
-
content-management-systems.info
Бывший setegnom.com, сейчас с него стоит редирект. Качественный сайт со статьями и уроками по Drupal, от установки системы до разработки своих собственных шаблонов и модулей. -
drupaler.ru
Сервис, где вы всегда можете получить файлы перевода(*.po) для русификации своего сайта. Файлы переводов представлены для Drupal с пятой версии по седьмую, скачать можно одним файлом для всего сайта либо с разбивкой по модулям. -
drupalcookbook.ru
Рецепты создания сайтов на Drupal, несколько сотен статей. -
drupaldance.com
Танцы около Друпала. Уроки, рекомендации, руководства. Материалов не так много, но имеющиеся в большинстве своем очень качественные. -
drupal.bz
Здесь вы сможете скачать книгу-учебник по CMS/CMF Drupal «DRUPAL HANDBOOK» (pdf, в последней редакции содержит 134 страницы). -
buytaert.ru
Частичный перевод материалов блога Дриса Байтаерта (buytaert.net), основателя и руководителя проекта Drupal. -
shvabrashvabr.ru
Советы и рекомендации по созданию коллективного блога на Drupal. -
drupalogy.ru
Каталог русскоязычных сайтов на Drupal, всего более 300 сайтов. Можно встретить действительно качественные работы и интересные решения.
Разделы сайтов про Drupal
-
habrahabr.ru/blogs/drupal
Блог «Drupal» на хабре. Более сотни постов, среди которыx есть весьма интересные. -
ibm.com/developerworks/ru
Цикл статей для разработчиков на imb.com «Использование ПО с открытым исходным кодом для создания Web-сайта». В первой статье рассматривается процесс создания и быстрого запуска относительно сложных Web-сайтов с использованием программного обеспечения с открытыми исходными кодами, по итогам сравнения нескольких CMS выбор остановлен на Drupal.
Статьи про Drupal
-
ru.wikipedia.org
Статья в википедии. Прочитать для ознакомления стоит. К слову, в рунете очень популярно неправильное произношение Drupal с ударением на последний слог, правильно делать ударение на первый. -
pcmag.ru
Статья в PC magazine про Друпал (статья большая, внизу есть содержание и кнопка «далее» перехода к следующим разделам публикации). -
dserg.com
Статья «Сравнение Drupal, Joomla и WordPress». Не смотря на то, что опубликована в 2007 году, остается все также актуальной.
Блоги
- romka.eu
- xandeadx.ru
- remage.su
- shaman.asiadata.ru
- drupaldeveloper.ru
- hotel-prog.ru
- vikeng.info
- blog.lexa.ru
- drupal4u.ru
Англоязычные сайты
(стоит заметить, что изучение Drupal без знания английского становится если и не невозможной задачей, то как минимум проблематичной)
Официальные сайты
-
drupal.org
Официальный сайт сообщества Drupal. Рано или поздно, но именно он станет для вас основным источником информации, как ни крутись, а деться от чтения документации никуда не получится.
Сайты про Drupal
-
drupalcodesearch.com
Сервис поиска по коду Drupal. Очень удобно, вводите название какой-нибудь переменной или даже часть кода, и вам выдается список файлов Drupal, где встречается введенный код вплоть до номера строки. Совет – указывайте при поиске язык "php" только если файлы, в которых вы ищите код, имеют расширение php или inc, если же ищете в файлах, имеющие другие расширения (например, *.module), то указывайте язык "All". -
drupalsites.net
Каталог сайтов на Drupal, более 4к ссылок. К сожалению, особой модерации там нет, в каталог может попасть любой сайт, лишь бы был на Drupal, поэтому встречается много простых и ничем не выдающихся сайтов.
Блоги
-
buytaert.net
Блог Дриса Байтаерта, основателя и руководителя проекта Drupal. -
mydrupal.com
Помощь разработчикам, ответы на вопросы, советы и рецепты.
Если вы решили остановить свой выбор именно на CMS Drupal, то настоятельно рекомендую ознакомиться со всеми материалами всех представленных сайтов. Да, это занимает время, но зато при возникновении какой-то проблемы мы будет знать, где искать решение. Да и самих проблем как таковых будет на порядок меньше после прочтения такого количества статей. И еще один немаловажный аспект – читая про реализацию разных сайтов, про модули, которые вы еще не используете, и т.д., вы расширяете свой кругозор, таким образом не ограничивая себя в разработке сайта только уже имеющимися базовыми знаниями.
При создании сайта часто стоит задача в реализации возможности присоединения изображений к создаваемым заметкам, причем чтобы изображения можно было загружать через веб-интерфейс во время написания или редактирования статьи.
В WordPress нужный функционал уже включен в дистрибутив (блоговый движок же, возможность присоединения картинок к постам просто обязательна), в Joomla тоже все решается стандартной комплектацией движка, пусть и криво (загрузка файла через «Медиа-менеджер» с последующим копированием адреса загруженной картинки и вставки его в статью через визуальный редактор), хотя Joomla использовал только версии 1.0.x, может в 1.5.x ситуация лучше обстоит, не знаю, не проверял.
Дистрибутив же Drupal не предусматривает никаких стандартных средств присоединения картинок к нодам, но, однако, не только не исключает саму возможность, но и предоставляет вебмастеру целый ряд различных способов реализации аттача изображений.
Решение «в лоб» и не требующее работы над движком: ручная заливка картинок по фтп на сайт и последующая вставка html кода в тело статьи. Собственно, большинство этим и пользуется (как, впрочем, и я сам раньше).
Можно реализовать загрузку файла (в том числе и изображения) активировав входящий в стандартную поставку модуль Upload, а для отображения загруженной картинки в теле ноды скачать и установить модуль Inline.
Или же скачать и активировать модули Content Construction Kit (CCK), File Field и Image Field, после чего создать в нужном нам типе ноды дополнительное поле специально для присоединения изображения.
Два выше приведенных способа имеют ряд недостатков. Во-первых, вы не можете настроить атрибуты тэга img, поэтому текст будет идти после картинки, а не обтекать ее. Впрочем, это просто решается средствами CSS, достаточно только добавить пару строчек в файл со стилями:
- img.class {
- float: left; /*где "class" – это класс тега <img>, в случае использования модуля inline, классом <img> является класс "inline", а при использовании модуля ImageField соответственно "imagefield"*/
- }
И следующий существенный недостаток – изображение можно вставить только в определенное место ноды, например, до текста.
Но ведь хочется иметь возможность присоединять произвольное количество изображений и вставлять их в любое место статьи с любым позиционированием. Поэтому наиболее правильным вариантом будет использование WYSIWIG (What You See Is What You Get) редактора с возможностью загрузки изображений на сервер через веб интерфейс.
Чтобы не мелочиться, рассмотрим сразу три популярных визуальных редактора – BUEditor, CKEditor и TinyMCE. В качестве загрузчика изображений будем использовать модуль IMCE.
Визуальный редактор BUEditor с возможностью загрузки изображений
BUEditor не является визуальном редактором в чистом виде, т.к. оперировать приходится все равно html кодом. Я это недостатком не считаю, мне даже удобнее видеть не графическое представление, а сам исходник. Несравненным плюсом этого редактора, ставящим его выше всех остальных редакторов, является возможность изменения любых кнопок и создание своих собственных.
Итак, нам понадобится:
Качаем модули, заливаем на хостинг в папку modules, активируем в Управление/Конструкция сайта/Модули (admin/build/modules).
Теперь BUEditor автоматически будет использоваться при создании новой ноды, также автоматически произошла и привязка IMCE к BUEditor. Кликнув на кнопку визуального редактора «Insert/edit image» (пиктограмма в виде фотографии заката), вы увидите функцию «Browse», с помощью которой сможете загрузить изображение с локального компьютера.
К слову, человеку непривычному будет трудно сходу разобраться в интерфейсе IMCE, так что внизу представлен принтскрин с пояснениями. Аналогичный интерфейс будет и при использовании других визуальных редакторов.

Все практически идеально, за исключением того, что вставляемая картинка не имеет атрибута align, и поэтому текст не обтекает ее. Добавим помимо полей адреса картинки, размеров и альтернативного текста, поле для ввода значения атрибута align, причем так, чтобы значение по умолчанию было «left», как самое часто используемое.
Идем в настройку BUEditor Управление/Настройка сайта/BUEditor (admin/settings/bueditor) и кликаем на «Изменить» напротив Editor name – Default. Мы попали в раздел создания новых кнопок или перепрограммирования имеющихся, чем и займемся. Ищем поле «Insert/edit image» и добавляем к коду следующее:
- js:
- var form = [
- {name: 'src', title: 'Image URL', required: true, suffix: E.imce.button('attr_src')},
- {name: 'width', title: 'Width x Height', suffix: ' x ', getnext: true, attributes: {size: 3}},
- {name: 'height', attributes: {size: 3}},
- {name: 'alt', title: 'Alternative text', required: true}, /*ставим запятую и добавляем следующую строчку*/
- {name: 'align', title: 'align', value: 'left'}
- ];
- E.tagDialog('img', form, {title: 'Insert/edit image'});
Таким образом создаются и атрибуты горизонтального/вертикального отступов, рамки и прочие.
Стоит заметить, что модуль IMCE умный, и если вы загрузите несколько картинок с одинаковыми расширениями и именами, они не перезапишутся, просто к именам будут добавлены индексы «_1», «_2» и т.д.
Настройки максимального веса картинок, максимального разрешения, допустимые для загрузки расширения доступны в настройках модуля IMCE Управление/Настройка сайта/IMCE (admin/settings/imce). Данные настройки не зависят от используемого визуального редактора.
И не забываем при создании ноды сменить фильтр ввода с «Filtered HTML» на «Full HTML», иначе все теги порежутся.
Визуальный редактор CKEditor с возможностью загрузки изображений
Красивый и довольно популярный визуальный редактор. Ранее известный как FCKeditor, но начиная с третье версии выпускающийся под названием CKEditor. FCK – это инициалы создателя редактора и по совместительству сокращение от английского нецензурного слова, о чем автор (бразилец) изначально как-то не подумал, в результате редактор пришлось переименовать.
Нам понадобится:
Скачиваем, устанавливаем и активируем два модуля для Drupal – CKEditor и IMCE, после чего скачиваем дистрибутив самого CKEditor и распаковываем его в папку ckeditor модуля CKEditor. Получится три вложенных папки ckeditor/ckeditor/ckeditor, где первая папка – папка модуля, вторая папка – вложенная папка модуля и третья папка – папка самого визуального редактора.
Теперь необходимо настроить права доступа. Идем Управление/Управление пользователями/Разрешения (admin/user/permissions), ставим галочку напротив «Зарегистрированный пользователь» в графе «модуль ckeditor/access ckeditor», сохраняем.
Переходим к настройкам модуля CKEditor Управление/Настройка сайта/CKEditor (admin/settings/ckeditor). Кликаем на «Изменить» напротив Профиль/Advanced и в выпадающем списке «File browser type (Image dialog)» выбираем IMCE.
Все, теперь к каждому полю для ввода текста автоматически добавляется визуальный редактор CKEditor. Хотя это иногда может быть и не желательно, например когда надо вводить заведомо не отформатированный текст. Запрет привязки CKEditor к полям определенных страниц прописывается в разделе «CKEditor Global Profile» настроек модуля (выпадающий список Visibility settings, где надо перечислить адреса или маски адресов).
Если у вас не отображается визуальный редактор, проверьте файл вашей темы page.tpl.php, перед закрывающим тегом body должна быть такая строчка:
- <?php print $closure ?>
- </body>
Или же можете протестировать на теме Garland, если в ней все работает нормально, то проблему стоит искать в файлах шаблона.
Для закачки изображения кликните на кнопку с пиктограммой в виде картинки с домиком, появится диалоговое окно, где вы сможете закачать файл с компьютера, прописать альтернативный текст, установить толщину рамки, размер горизонтального и вертикального отступов, выравнивание. Справа картинка будет отображаться в тексте, визуально показывая вносимые вами изменения.
Визуальный редактор TinyMCE с возможностью загрузки изображений
Как по мне, так один из самый красивых и удобных визуальных редакторов, причем очень популярен, встретить его можно на многих сайтах, блогах и форумах. Лично я в выборе визуальных редакторов, когда не требуются специфичные особенности BUEditor, отдаю предпочтение чаще всего именно ему.
Нам потребуется:
- модуль Wysiwyg (API, позволяющее интегрировать визуальные редакторы в Drupal);
- модуль IMCE Wysiwyg bridge («мост», соединяющий Wysiwyg с IMCE);
- модуль IMCE (модуль для загрузки изображений на сервер с локального компьютера);
- визуальный редактор TinyMCE (Main package).
Качаем, заливаем на сервер и активируем модули Wysiwyg, IMCE Wysiwyg bridge и IMCE. Затем качаем дистрибутив TinyMCE и распаковываем его в папку sites/all/libraries/. Если папки libraries не существует, то создаем ее.
Переходим к настройке Wysiwyg Управление/Настройка сайта/Wysiwyg (admin/settings/wysiwyg) и привязываем формат ввода «Full HTML» к редактору TinyMCE. После привязки, напротив формата ввода «Full HTML» появится кнопка «Изменить», кликаем по ней, переходя в раздел подключения кнопок и модулей.
Разворачиваем выпадающий список «Buttons and plugins» и отмечаем как минимум пункты «Image» и «IMCE». Можно сразу выбрать и другие кнопки, которые будут отображаться в визуальном редакторе, например «Bold», «Italic», «Underline». Сохраняем.
Теперь при создании ноды при выборе формата ввода «Full HTML» будет отображаться визуальный редактор TinyMCE. Для загрузки картинки с компьютера на сервер кликните на пиктограмму с деревом, появится диалоговое окошко для загрузки изображения, где вы также можете указать альтернативный текст, позиционирование относительно текста, вертикальный и горизонтальный отступы и размер рамки.
И проверьте в файле page.tpl.php вашей темы наличие строчки <?php print $closure ?> до закрывающего тега </body>. В противном случае визуальный редактор не будет отображаться.
PS
Выбор директории для сохранения файлов указывается в настройках модуля IMCE, но только в пределах папки, определенной по умолчанию в Drupal (sites/default/files/). Изменить ее можно в Управление/Настройка сайта/Файловая система (admin/settings/file-system). Я иногда для хранения файлов создаю отдельную папку files в корне сайта, но это уже личное дело каждого.
Обновление Drupal не такая уж и сложная задача, в большинстве случаев можно уложиться за час, а то и меньше, причем никаких особых знаний не требуется.
Лично я не зациклен на постоянном обновлении Drupal в пределах одной ветки, если поставил Drupal 6.14 или 6.15, то так и буду держать на нем сайт, несмотря на то, что сейчас актуальной версией является 6.16. Конечно, если в новой версии фиксится какой-то значительный баг, то обновиться стоит, а так обновление ради обновления, ИМХО, не имеет особого смысла. Какие баги пофиксились в последней версии, можно посмотреть на официальном сайте Drupal.
Также не советую и использовать пока для сайтов семерку, на то она и альфа версия. Хотя поиграться на локалхосте стоит. Сам, признаюсь, еще не ставил, но уже то, что дистрибутив семерки весит больше шестерки аж в два раза, говорит о многом.
Если же вы сидите на 5.xx, то настоятельно рекомендую обновиться до шестой версии, несмотря на то, что пятерка тоже постоянно обновляется (на текущий момент последней стабильной версией является 5.22, релиз был с месяц назад).
Инструкция по обновлению с Drupal 5.xx до Drupal 6.xx.
- Сделайте бэкап сайта и протестируйте его, например, развернув сайт на локалхосте. Понимаю, этот пункт многие пропускают, сам раньше пропускал. Но задайте себе вопрос – готовы ли вы потерять сайт или потратить несколько дней на его восстановление? Конечно, вероятность того, что что-то пойдет не так и, к примеру, накроется база, крайне мала, но все-таки имеется. Есть и еще один немаловажный плюс – при обновлении придется заново подключать модули, что-то настраивать, а как все было изначально не всегда удается вспомнить, поэтому очень удобно иметь на локалхосте работающий «слепок» сайта до обновления, всегда можно посмотреть, где и какие стоят настройки.
-
Переведите сайт в режим обслуживания. Это удобно, если посещаемость отлична от нуля, тогда пользователи не будут видеть системные сообщения и прочее, всем, за исключением администратора, будет выводиться заглушка «Сайт на техническом обслуживании».
-
Установите тему по умолчанию Garland. Также не забывайте, что тема, созданная под Drupal 5.xx, не будет работать под Drupal 6.xx. Заранее убедитесь в наличии версии нужного шаблона под шестую версию или, если тема уникальная, готовьтесь натягивать ее на Друпал по новой.
- Выключите все модули, не входящие в обязательный состав ядра. Модули из группы «Ядро – дополнительные», в принципе, можно оставить, но я их тоже отключаю.
-
Скачайте последнюю стабильную версию Drupal и файл перевода к нему.
- Скачайте новые версии под шестую версию Drupal всех установленных на сайте дополнительных модулей. Если у вас стоит какой-то модуль, версии которого нет для шестерки, то это да, проблема. В этом случае либо стоит отказаться от обновления, либо искать альтернативы.
-
Почитайте документацию к модулям, возможно для каких-то из них предусмотрено специфическое обновление. Вся нужная информация обычно содержится в файлах readme.txt или upgrade.txt в папке модуля. Я же обычно не уделяю этому внимание, а иду читать инструкции только когда что-то начинает работать не так. Подход неправильный, стараюсь исправляться)
-
Сохраните файлы из старых модулей, которые вы модифицировали, в папку с новой версией модуля. Обычно это только файлик i18n-ascii.txt модуля pathauto.
-
Сохраните файлы .htaccess и robots.txt, если конечно вы вносили в них изменения.
-
Сохраните папки files и sites. К слову, папки files в корне может и не быть, т.к. вообще стандартная папка в Drupal для хранения файлов это sites/default/files. Хотя я советую не копировать всю папку sites целиком, а сохранить только необходимые из нее файлы и папки. Это, как уже говорилось выше, папка files (если она содержит какие-то нужные файлы, а не создана автоматически и не является пустой) и файл настроек settings.php, т.к. в случае если сайт является старым, вы экспериментировали с различными модулями и т.д., папка sites может быть забита различным ненужным мусором, который вряд ли когда-то понадобится. Также не забудьте сохранить все созданные вручную папки и не являющиеся системными (например, папку с вашими шаблонами оформления).
-
Удалите с хостинга все системные папки и файлы Drupal. Т.е. по сути надо удалить все, включая файл index.php.
-
Залейте на хостинг новые системные файлы Drupal из скаченного дистрибутива. Скопируйте обратно на хостинг ранее сохраненные папки и файлы (файл settings.php обязательно).
-
Запустите файл update.php, для этого наберите в адресной строке http://site.ru/update.php. При этом вы должны быть все еще залогинены как администратор (хотя все файлы сайта удалялись и заливались новые, сессия админа все еще действительна). Следуйте инструкциям (в большинстве случаев надо нажимать только «далее»). В выпадающих списках с цифрами выбирайте наибольшую (номер обновления).
-
Залейте в папку modules ранее скаченные дополнительные модули, активируйте их и снова запустите файл update.php.
- Импортируйте новый файл перевода.
-
Проверьте все настройки (настройки модулей, права доступа и т.д.) и отображение сайта, сравните с настройками старой версии сайта (который в идеале должен быть у вас запущен параллельно на локалхосте).
- Снимите сайт с обслуживания.
Мда, как-то длинновато получилось. Ладно, если в сжатом виде, то:
- Сохраните на компьютер все пользовательские папки с файлами и конфигурационный файл settings.php.
- Установите тему Garland и отключите все дополнительные модули.
- Удалите все системные папки и файлы и залейте на их место новые.
- Скопируйте обратно файл settings.php и сохраненные папки.
- Запустите файл update.php и следуйте инструкциям.
- Удалите старые модули, залейте новые, запустите update.php.
PS
Добавил еще одну рубрику на блоге, “Drupal”. При создании сайтов чаще всего отдаю предпочтение именно этой CMS, следовательно и посты про Drupal будут появляться регулярно, и правильнее было бы выделить их в отдельную рубрику.
Стандартная форма комментирования в CMS Drupal настолько далека от идеала, что без некоторых доработок ее использование крайне нецелесообразно. Ниже распишу по пунктам, как с помощью дополнительных модулей и небольших изменений в коде привести ее в человеческий вид. Актуально для Drupal 6.x /в 5.x свои грабли, а 7.x стабильной версии пока еще нет/.
1. Разрешаем комментировать анонимным пользователям.
Управление пользователями/Разрешения/модуль comment
Здесь настраиваем права доступа для анонимусов.
2. По дефолту в форме комментирования есть всего два поля – тема комментария и сам комментарий. Добавляем поля имя, e-mail, url и убираем поле «тема»
Содержание/Типы материалов
Нажимаем «изменить» у интересующего нас типа и переходим на «Установки комментариев», где выставляем нужные опции.
Я обычно ставлю:
- Режим показа по умолчанию:
Плоский список – развёрнутый
- Порядок сортировки по умолчанию:
По дате - сначала старые
-Управление комментариями:
Не показывать
-Анонимные комментарии:
Анонимные пользователи должны указывать контактную информацию
-Поле темы комментария:
Отключено
-Просмотр комментария перед отправкой:
Необязательно
-Расположение формы отправки комментария:
Показывать ниже сообщения или комментариев
3. Капча
Встроенной капчи нет, поэтому устанавливаем модуль. Я предпочитаю математическую капчу, за нее отвечает модуль captcha. Качаем, ставим, настраиваем, переводим интерфейс/все делается в админке/.
4. Кнопка «ответить» в комментариях
Какой бы вид отображения мы бы не выбрали, плоский или древовидный, под каждым комментарием будет оставаться кнопка ответить. Чтобы ее убрать, качаем модуль flatcomments. После установки идем в Содержание/Типы материалов, переходим по «изменить» напротив интересующего нас типа материала и ставим галку напротив Do not show a reply link on comments.
5. Возвращаемся к полю «тема комментария». Хоть мы и убрали это поле, при публикации коммента она будет отображаться в виде первых слов комментария. Чтобы это исправить, открываем файл comment.tpl.php в папке с нашей темой и удаляем или закомментируем следующие строки:
<?php if ($title) echo $title; ?>
6. Для анонимусов под формой комментария будет дан выбор, какой фильтр ввода использовать, и приведена ссылка «Подробнее о форматировании».
Если первое решается через ограничение прав доступа анонимусов к изменению форматов ввода, то чтобы убрать ссылку на ф.а.к. по форматированию, придется лезть в код.
Открываем файл template.php в корне нашей темы и добавляем внизу пару строк:
- function phptemplate_filter_tips() { return ''; }
- function phptemplate_filter_tips_more_info() { return ''; }
7. После публикации комментария сразу за именем анонимуса всегда пишется (не проверено), даже если премодерация отключена. Чтобы эту надпись убрать, снова открываем template.php и вниз кода вставляем следующее:
- function phptemplate_username($object) {
- if ($object->uid && $object->name) {
- // Shorten the name when it is too long or it will break many tables.
- if (drupal_strlen($object->name) > 20) {
- $name = drupal_substr($object->name, 0, 15) .'...';
- }
- else {
- $name = $object->name;
- }
- if (user_access('access user profiles')) {
- $output = l($name, 'user/'. $object->uid, array('title' => t('View user profile.')));
- }
- else {
- $output = check_plain($name);
- }
- }
- else if ($object->name) {
- // Sometimes modules display content composed by people who are
- // not registered members of the site (e.g. mailing list or news
- // aggregator modules). This clause enables modules to display
- // the true author of the content.
- if ($object->homepage) {
- $output = l($object->name, $object->homepage);
- }
- else {
- $output = check_plain($object->name);
- }
- //$output .= ' ('. t('not verified') .')';
- }
- else {
- $output = variable_get('anonymous', t('Anonymous'));
- }
- return $output;
- }
8. Теперь вид информации о комментирующем приобрел такой вид «Опубликовано Гость в Вс, 2009-07-12 21:48». Красиво конечно, но хочется «Гость - 12/07/2009 в 21:48».
Для этого сначала открываем файл comment.tpl.php и заменяем <?php echo $submitted; ?> на <?php echo "$author - $date"; ?>.
Потом идем в Настройка сайта/Дата и время, выбираем Средний формат даты: Пользовательский формат и прописываем шаблон даты d/m/Y в H:i.
Вот и все. Теперь у нас человеческая форма комментирования.
PS
1. У шестого друпала очень агрессивное кэширование, поэтому чаще всего сделанные изменения вы не увидите без чистки кэша - Настройка сайта/Производительность/Очистить кеш данных.
2. Иногда вместо имени функции «phptemplate» надо вставить название шаблона/имя папки с шаблоном/. Так что если после вставки кода сайт не открывается или код не работает – заменяем phptemplate на название нашего шаблона.
3. Описанная реализация наиболее правильная, т.к. не приходится редактировать ядро и все изменения проводятся только в файлах шаблона.
При написании предыдущего поста мне понадобилась функция подсветки синтаксиса php кода, по дефолту этого нет, поэтому пришлось немного покопаться.
Ниже приведена инструкция по прикрутке подсветки синтаксиса кода в Drupal /в Друпале чаще всего все можно реализовать несколькими способами, так что описанный ниже вариант далеко не единственный для решения поставленной задачи/.
1. Качаем модуль GeSHi Filter, распаковываем, заливаем на сайт в директорию modules/, в админке сайта идем в Управление сайтом/Конструкция/Модули, ставим галку напротив GeSHi Filter, сохраняем. Активировать GeSHi node не обязательно – он создает дополнительный тип нодов исключительно для кода, что нам не требуется.
2. Теперь надо скачать библиотеки. Идем по ссылке, переходим в раздел Downloads, качаем geshi последней версии. Почему-то вчера был запрещен доступ по российский ip, в таком случае можно воспользоваться анонимайзером, что я и сделал. Далее разархивируем и заливаем папку geshi на сервер в корневую директорию установленного ранее модуля modules/geshifilter/.
3. Все установлено, можно переходить к настройке. Первым делом разрешим применение фильтров к вводимому тексту, для этого идем в раздел Управление сайтом/Настройка/Форматы ввода и жмем «настроить» напротив Full HTML где и разрешаем применение GeSHi filter.
Затем идем в настройки модуля GeSHi Filter Управление сайтом/Настройка/GeSHi Filter и, собственно, настраиваем. Поиграться здесь есть с чем, к примеру задать индивидуальные теги для применение разных стилей оформления в зависимости от того, на каком языке написаны исходники. Ниже приведу те настройки, которые сделал я.
- Снял все галки, установленный по дефолту.
- В качестве “Default highlighting mode” выбрал стиль C++, он используется для подсветки php кода на большинстве сайтов, поэтому будет попривычней, чем php-стиль.
- Значение “Default line numbering” установил в позицию “normal line numbers”, таким образом слева от кода идет нумерация строчек, можно еще выбрать, чтобы каждое 5, 10 или 20 число выделялось жирным, но это актуально лишь при цитировании больших исходников.
- Для “CSS mode for syntax highlighting” установил значение “Inline CSS style attributes”, для “Code container” значение “Use no container”. При выборе других пунктов отображение нумерации строк работать не будет.
Вот и все. Теперь при создании заметки с выбором формата ввода Full HTML весь код, заключенный в тег <code>, будет подсвечен.
PS
Также советую установить BUEditor - простой редактор текста, хорош тем, что можно самому программировать и добавлять нужные кнопки.
