Осваиваем Drupal 5

В настоящее время существует три основных способа создания собственных сайтов, впрочем как, и сайтов различных организаций.

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

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

Большинство CMS (систем управления сайтом или содержимым сайта) являются платными. Из бесплатных наиболее распростанены и известны PostNuke, PHPNuke и другие Nuke.

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

На этих страницах я попробую поделиться собственным опытом по использованию данной системы управления сайтом CMS Drupal.

СОДЕРЖАНИЕ:

Введение или О структуре CMS, глядя на Drupal.

Тот, кто впервые задумал создать сайт в Интернет, то чаще всего думает о персональных или домашних страницах. Редко кто замахивается сразу на создание большого портала или популярного сервиса. Не хватает знаний, нет опыта. Вот и хочется просто попробовать.

Как правило, любая CMS обещает простоту управления абсолютно всем, что находиться на сайте. Не надо думать, как создать перемещение по сайту (навигацию), куда и как поместить публикуемый материал – всё это сделает CMS. Достаточно просто добавлять публикации (наполнять контентом) и определиться с внешним видом. Во всяком случае, так обещают большинство CMS. Да и глядя на работающие проекты, кажется всё просто и легко, пока эта самая CMS не будет установлена Вами. Но как только Вы её установите, так возникает куча вопросов и проблем, о которых почему-то раньше никто не говорил и не предупреждал.

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

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

Все CMS как раз и являются такими «огромными и пустыми помещениями», которые предназначены для создания больших и посещаемых ресурсов Интернет. Нужно только правильно организовать работу и сайт на основе CMS будет радовать своего создателя (заказчика) и посетителей.

Чтобы правильно организовать работу CMS надо немного хотя бы представлять, как она работает или из чего складывается работа CMS. Правильная работа сайта на основе CMS – это правильная организация взаимодействия составных частей этой CMS. Для организации взаимодействия составных частей нужно иметь представление о том, как работают эти, составляющие CMS, части и как они взаимодействуют. На базе CMS можно создавать сайты разной сложности. Это могут быть персональные страницы, могут быть корпоративные сайты или сайты общения (блоги, форумы), но в любом случае необходима настройка взаимодействия частей CMS. Это как с автомобилем, если хотите ехать – нужно чтобы машина была в рабочем состоянии, и совершенно не важно на какое расстояние Вы хотите уехать, 100 метров или 100 километров. Если в машине всё правильно работает - Вы уедете, не работает – не уедете.

Конструкция сайта (Site building)

Информацию на сайте (часто называют контентом) надо ещё как-то представить посетителям. Оформлением занимается дизайн сайта, обычно это один из шаблонов. Эти шаблоны почти для всех сайтов одинаковы, отличаются цветовым оформлением и различными рюшечками. Цветовое оформление и рюшечки ещё называют темами оформления (Themes). Обычно CMS имеют в своём составе несколько тем оформлений, и вид сайта достаточно легко меняется выбором одной из них.

Согласно шаблону (темы), страница сайта условно делится на несколько частей. Это верхняя часть или заголовок (Header), левая часть или левая колонка (Left sidebar), центральная часть или содержимое (Content), правая часть или правая колонка (Right sidebar), нижняя часть или подвал (Footer). Шаблоны (темы) позволяют комбинировать оформление, состав и местоположение этих частей.

Вид страницы

Вся работа сайта определяется набором модулей – скриптов (Modules). Каждый такой модуль - это программа, которая отвечает за выполнение определённых функций. Один модуль отвечает за авторизацию пользователей, другой – за добавление и отображение информации (контента) и так далее. То есть функциональность сайта определяется теми модулями, которые подключены к системе управления сайтом. Делается это в настройках.

В процессе своей работы некоторые модули могут выводить информацию. Эта информация группируется в блок (Block). Блок новостей, блок навигации (меню), блок активных сообщений форума, блок авторизации на сайте, блок формы поиска и так далее. Обычно эти блоки располагаются в левой и/или в правой колонках. Блоки также могут располагаться в Заголовке, Подвале или центральной части страницы. Состав блоков и их порядок отображения определяются настройками.

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

Немного особняком стоят блоки навигации по сайту - Меню (Menus). Содержимым этих блоков являются ссылки, обеспечивающие навигацию по сайту. Для управления составом и порядком этих ссылок навигационного меню вашего сайта существует отдельный модуль, который надо подключить.

Содержание сайта (Content management).

В первую очередь любой сайт служит для обеспечения обмена информацией (информация – сведения об окружающем мире и протекающих в нём процессах, воспринимаемые человеком или специальным устройством). Кто-то информацию размещает на сайте, кто-то эту информацию получает. Идёт обмен. Информация может быть представлена в различном виде. Это может быть статья, просто объявление, новость, описание чего - либо, обсуждение какой - либо темы (форум), рисунок, график и так далее. Каждому виду представления информации присущи свои особенности или характерные черты. Эти характерные черты/особенности можно выделить и создать шаблон для представления данного вида информации. Например, статья состоит из заголовка и самой статьи. Эти два элемента, заголовок и тело статьи, являются шаблоном для вида представления информации – «Статья». Можно добавить в шаблон «Статья» новый элемент – «Автор». Тогда шаблон «Статья» будет состоять уже из трёх элементов – «Заголовок», «Автор», «Тело статьи». Если Вы присмотритесь, как выглядит описание программы в одном из известных каталогов программ, то увидите, что описания программ сделаны по шаблону. В шаблоне описания программы наверняка будут элементы – «Название программы», «Автор», «Сайт разработчика», «Краткое описание» и так далее. Данный шаблон или вид представления информации о программе можно назвать как «Описание программы» или «Программа».

В Drupal существует несколько таких шаблонов. Это Page – Страница, Story – Статья, Blog – Запись в блоге, Forum – Обсуждение на форуме, Poll – Опрос, Book – Страница подшивки. Эти шаблоны в Drupal называются типами материалов или типами содержимого (Content types). Но чтобы эти типы материалов можно было использовать, нужно в настройках разрешить их использование. Это необходимое условие.

Информацию можно группировать не только по виду представления (типу материала), но и по другим признакам. Ничто Вам не мешает группировать информацию/материалы по отношению к живой и неживой природе или принадлежности к какой либо области знаний – математика, электроника, компьютеры, медицина и так далее. Для этого в CMS создаётся система классификации информации/материалов.

В CMS Drupal создание систем классификации носит название таксономия. Информация делится по категориям (categories), которые носят название словари и термины. Определяется, о чём будет речь и даётся этому название – это словарь, затем идет более подробное деление информации – это термины. Термины входят в состав словаря.

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

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

Термин – слово или словосочетание — название определённого понятия какой – нибудь специальной области науки, техники, искусства. Технические термины. Термины математики. Словарь музыкальных терминов.

В некоторых CMS Вы не сможете добавить новую информацию без создания системы классификации. Нужно сначала создать систему, а потом уже добавлять новую информацию. В CMS Drupal это не обязательно. Можно добавлять новую информацию, не создавая словари и термины, хотя это наверно не правильно. Некоторые модули используют словари и термины в своей работе, поэтому лучше создать хоть один словарь с одним термином и все новые материалы помещать туда. По аналогии с магазином – сначала надо определиться, куда размещать товар, затем уже этот товар туда раскладывать. Хотя в Друпал можно свалить всё в одну кучу, только разгребать то всё равно придётся.

Если Вы затрудняетесь сразу создать рабочую классификацию (словари и термины), то в CMS Drupal это не страшно. Можно создать приблизительную классификацию, а затем просто переименовывать, по необходимости, термины и словари так, как Вам надо. Можно добавлять словари и термины, можно удалять, но перед удалением желательно весь материал переместить в другую ветвь классификации (термин или словарь). Потери информации не будет, она сохранится. Если какой-то материал (информация) оказался не там, то можно этот материал перенести в другой словарь-термин не опасаясь его потерять. Это замечательная особенность CMS Drupal.

Выводы: Создание классификации является в некоторых CMS необходимым условием, в CMS Drupal необходим выбор типов материалов (информации), создание классификации очень рекомендуется, но обязательным не является.

Начало создания сайта на движке CMS Друпал (Drupal).

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

При первом знакомстве с платформой по созданию сайтов CMS Drupal (Друпал) я также "давил" на кнопочки-ссылочки и пытался разобраться как из этого конструктора по созданию различных сайтов собрать то, что мне нужно. Со временем пришло понимание последовательности действий, определяемых особенностями CMS Друпал:

Это наверно основные моменты для начала работы с CMS Drupal.

Март 2006
http://www.firsthand.ru/

Установка CMS Drupal локально на Windows-машине.

Для устаноки CMS Drupal на своём компьютере потребуется сервер, РНР и другое необходимое. Самым популярным в интернете в настоящее время является Apache HTTP server.

Существует несколько способов сделать возможным исследовать интернетовские идеи на своём компьютере. Но самый простой, на мой взгляд, это установить Denwer - Джентльменский набор Web-разработчика («Д.н.w.р», читается «Денвер» — почти как название города) — набор дистрибутивов, используемый Web-разработчиками (программистами и дизайнерами) для отладки сайтов на «домашней» (локальной) Windows-машине без необходимости выхода в Интернет..

Денвер включает в себя всё необходимое для отладки сайтов. Устанавливается легко. Фактически не требует настройки и если Вы не пожелаете потом синхронизировать локальный сайт с сайтом в Интернет, то проблем не наблюдалось.

Последнюю версию дистрибутива Денвера можно всегда скачать по следующему адресу:
http://www.denwer.ru/dis/latest. Помимо базового пакета понадобиться пакет расширения РНР4. Он содержит некоторые модули, которые не входят в состав базового пакета, но нужны будут для нормальной работы Drupal 5.0. Все пакеты расширений для Денвера можно скачать со страницы http://www.denwer.ru/dis/ . Все пакеты расширений устанавливаются только после установки базового пакета.

После скачивания этих двух файлов, надо запустить на выполнение файл базового пакета, затем файл пакета расширения. В процессе установки будут выводиться сообщения и вопросы. Если читать сообщения и отвечать осмысленно на вопросы, то проблем не должно быть. Практически на все вопросы можно отвечать нажатием на клавишу Enter.

После того как Denwer установлен нужно его запустить через созданный на рабочем столе ярлык Start servers, запустить Internet Explorer и в строке адреса набрать http://localhost/. Если появиться страница с надписью Ура, заработало!, то Денвер работает. Если не работает, то обращайтесь на сайт http://www.denwer.ru/base.html для поиска причины.

На момент написания этого материала у меня установлено:
Базовый пакет: Base_2006-10-04_a1.3.33_p4.4.3_m4.1.16_pma2.6.1.exe
Пакет расширения: PHP4_2006-10-04_4.4.4.exe

Затем скачиваем с официального сайта http://drupal.org/ архив дистрибутива Drupal. Это архив .tar в архиве .gz, который понимает большинство архиваторов и поэтому с распаковкой проблем не должно быть. При помощи архиватора распаковываем содержимое архива Drupal в папку Z:\home\figures.ru\www. Здесь Z:\home уже созданная Денвером папка, а figures.ru и в ней www нужно создать самим. figures.ru - название тестового сайта, а www - папка, где будут храниться файлы сайта. Более подробно о том как добавлять проекты в Denwer, хорошо написано на сайте Денвера.

После распаковки должно получиться что-то вроде этого

Каталог сайта

Следующим шагом будет создание базы данных. Все данные в Друпал хранятся в базе данных MySQL, но прежде чем что-то в ней хранить надо её сначало создать. Используем для этого возможность, предоставляемую Денвером. На главной странице Денвера, это где "Ура, заработало!", в первой строке щёлкаем по ссылке "Утилиты", а затем по "Заведение новых БД и пользователей MySQL". Заполняем поля:

Пароль администратора MySQL: оставляем пустым
Имя базы данных: figures
Логин пользователя: figures
Пароль: pass
...еще раз: pass

И нажимаем на "Создать БД и пользователя".

Второй строкой должна появиться надпись "База данных и новый пользователь заведены".

Для того чтобы Drupal работал на сайте figures.ru и с нужной базой, надо внести изменения в файл настройки settings.php необходимые изменения. Этот файл расположен в Z:\home\figures.ru\www\sites\default\. Открываем файл настройки в любом текстовом редакторе, ищем строки и делаем необходимые изменения.

* Database URL format:
* $db_url = 'mysql://username:password@localhost/databasename';
* $db_url = 'mysqli://username:password@localhost/databasename';
* $db_url = 'pgsql://username:password@localhost/databasename';
*/
$db_url = 'mysql://figures:pass@localhost/figures';
$db_prefix = '';

/**
* Base URL:
*
* The URL to your Drupal installation. It is not allowed
* to have a trailing slash; Drupal will add it for you.
*
* Examples:
* $base_url = 'http://www.example.com';
* $base_url = 'http://www.example.com:8888';
* $base_url = 'http://www.example.com/drupal';
* $base_url = 'https://www.example.com:8888/drupal';
*/
# $base_url = 'http://www.example.com'; // NO trailing slash!
$base_url = 'http://figures.ru';

Сохраняем изменения и перезапускаем Денвер - Restart server.

Теперь в Internet Explorer в адресной строке набираем http://figures.ru/install.php
Если всё сделано правильно, то Друпал создаст необходимые таблицы базы данных и в браузере появиться страничка с сообщением из нескольких строк, что установка завершена и что Вы можете посетить Ваш новый сайт.

Drupal installation complete
All necessary changes to ./sites/default/settings.php have been made. It has been set to read-only for security.
Congratulations, Drupal has been successfully installed.

Please review the messages above before continuing on to your new site.

Щелкаем по ссылке your new site в последней строке и попадаем на первую страницу Вашего нового сайта, построенного на основе CMS Drupal 5.0.

Для дальнейшей работы с Друпал необходимо зарегистрировать первого пользователя. Это будет пользователь номер один или самый главный администратор. Самое интересное, что большинство почему то выбирают в качестве логина для главного пользователя ADMIN. Главному администратору сайта или портала не обязательно иметь логин admin, можно любой другой. И другой, с точки зрения безопасности, даже лучше. Ну а если Вам хочется иметь логин Admin, то Вы можете создать группу администраторов и зарегистрировать в этой группе этот логин на себя. Но это потом, а сейчас на главной странице находим ссылку create the first account и жмем на неё.

В поле Username: вводим Admin (не будем нарушать стереотип), в поле E-mail address: вводим к примеру admin@figures.ru и жмём на кнопку Сreate new account тем самым создавая первого пользователя. Почтовый адрес указывать лучше реальный. Это нужно на случай Вашей плохой памяти. Дело в том что Денвер позволяет просматривать все письма, которые отправляются из под него. Ему не важен Ваш почтовый адрес (http://localhost/Test/sendmail/index.php -- Проверка отладочной заглушки для sendmail ). А вот если Вы вздумаете закачать базу данных в Интернет, то реальный почтовый адрес может очень пригодиться для восcтановления пароля, если Вы вдруг его забудете.

После регистрации, можно записать пароль, который выдал Друпал или лучше установить свой собственный. Для чего в двух окошках под Password: и Confirm password: набираем новый пароль, например ''pass'' или ''asdfghjkl'' и нажимаем на кнопку Submit внизу страницы.

Если Вы вдруг забудете пароль, то можете смело его востанавливать (Request new password), а письмо отосланное Вам можно посмотреть по ссылке http://localhost/Test/sendmail/index.php -- Проверка отладочной заглушки для sendmail, которая расположена на главной странице Денвера в таблице тестирования работы Денвера. В этом письме будет строка типа
http://figures.ru/?q=user/reset/1/1169362702/e188bf7e50d028724c451204f50c78b7
её надо скопировать и вставить в адрес Internet Explorer. Перейти по этой ссылке и нажать на кнопочку Log in. Попадаете на страницу своей учетной записи, где нужно определить новый пароль.

Если для Вас английский язык не является проблемой, то нет проблем, а если Вам хочется что бы Друпал заговорил по русски, то надо провести локализацию. Drupal имеет модульную структуру и по умолчанию в Drupal включены модули самые основные и необходимые для работы. Остальные модули включаются по усмотрению администратора или пользователя, если у него есть такие права. Возможность локализации, по умолчанию, в Drupal отключена.
Как включить и что надо для руссификации смотрите Локализация или многоязычность Drupal. Руссификация..

Вот вроде и всё. Сайт на Drupal создан и теперь можно изучать возможности и проводить эксперименты.

Январь 2007
http://www.firsthand.ru/

Локализация (перевод) или многоязычность Drupal. Русификация.

Если для Вас английский язык не является проблемой, то нет проблем и Вы можете пользоваться Drupal в том виде в котором он есть, с английским интерфейсом. И если Вы будете делать сайт на Drupal для англоязычных или англоязыкопонимающих пользователей, то вообще проблем никаких. Если же язык Ваших предполагаемых посетителей отличается от английского и Вам самим более удобен другой, то у Drupal есть возможность перевода языка интерфейса с английского на нужный Вам. Эта возможность в Drupal называется Localization - локализацией. И эту возможность обеспечивает модуль Locale - Enables the translation of the user interface to languages other than English, который при начальной установке Drupal отключен, то есть не работает и чтобы он заработал - его надо включить (или подключить).

Для включения модуля локализации жмем на Administer, затем на Site building, затем на Modules. Появляется список, в котором ставим галочку напротив Locale (Enables the translation of the user interface to languages other than English) и внизу страницы жмем на кнопочку Save configuration.

После того как Вы подключили модуль, в разделе меню Administer - Site configuration должен появиться пункт Localization. Щелкаем по нему и щелкаем на появившейся странице на закладке Add language. В окошке под Language name: выбираем из списка Russian (Русский) и жмем на кнопку Add language.

В списке из English и Russian ставим галочку и точку напротив Russian и жмем на кнопку Save configuration. Теперь Drupal готов принять русский язык и самое простое что можно теперь сделать, это скачать руссификаторы с официального сайта в разделе http://drupal.org/project/Translations и произвести импорт (Import) перевода на свой сайт. Правда там не всегда есть перевод на свежие версии и поэтому можно попробовать использовать переводы от младших версий Drupal, например Drupal 4.7. Перевод конечно будет не полный, но основные термины скорее всего переведены будут.

Для версии Drupal 5.0 есть перевод на http://drupal5.ru/ Перевод сообщений ядра и некоторых модулей. Этот же перевод Вы можете скачать и с этой страницы. Но он от 5 декабря 2006 года, а на http://drupal5.ru/ может быть и более свежий.

Так же есть Полный русский перевод Drupal 5.0 на http://drupal.ru/. Там же можно найти переводы для некоторых модулей: Переводы модулей для Drupal 5.0. Этот перевод используется на этом сайте.

Все руссификаторы или файлы локализации на другие языки обычно заархивированы. Перед тем как делать импорт, эти файлы нужно разархивировать. Сами файлы являются текстовыми, но имеют они расширение .po . Например, ru-2006-12-05.po.

Делаем импорт руссификатора. Для этого на странице Localization щелкаем по закладке Import, выбираем в строке Language file: файл руссификации (ru-2006-12-05.po), который вы скачали и распаковали (разархивировали) и жмем на кнопку Import . О том что перевод произошел Вы сразу увидите по русским пунктам меню.

Переводы для CMS Друпал (Drupal) можно также поискать на следующих сайтах:
http://drupal.ru/
http://drupal.htdogs.ru/
http://drupal.kiev1.org/

ВложениеРазмер
ru-2006-12-05.zip254.83 кб
ru-2006-12-05.rar76.22 кб

Drupal, Denwer, phpMyAdmin и кодировки cp1251, utf8.

Если Вы задумаете обмениваться базами данных между своими Друпал (Drupal) сайтами, например сайтом на Вашем компьютере и сайтом в сети Интернет, то может возникнуть проблема с отображением текста Ваших страничек. Это связано с тем, что Друпал работает с кодировкой utf8, а Денвер работает с кодировкой cp1251.

По незнанию, я устанавливал Друпал по умолчанию, то есть установил Денвер и тут же установил Друпал. У меня работало вроде всё нормально, но потом было замечено что не работает поиск по русским буквам. Поиски по Интернету дали только то, что Друпал нормально работает с utf8.

Потом появились проблемы при использовании импорта/экспорта базы данных. В интернет базы MySQL работают в основном с кодировкой utf8. В другую кодировку текст преобразовывается сервером при передачи текста в браузер. Денвер преобразовывает текст в кодировку cp1251.

При экспорте базы MySQL данные сохраняются в cp1251 и при импорте в другую базу они также идут в кодировке cp1251, но приемная база считает что это utf8 и при выдаче в браузер происходит ещё одна перекодировка, ненужная, и получается непонятно что.

Что бы этого избежать, мною были внесены некоторые изменения в настройки базы MySQL и phpMyAdmin.

Кодовая таблица для базы данных MySQL определяется в файле my.cnf, его можно открыть для редактирования из любого текстового редактора. Только надо сначала открыть редактор, а потом в редакторе открыть этот файл. Если установка Денвера происходила по умолчанию или по рекомендациям, то этот файл будет расположен в Z:\usr\local\mysql4\my.cnf

Делаем замены, устанавливающие кодовую таблицу utf8 вместо cp1251

[client]
port = 3306
socket = /tmp/mysql.sock
# ==============================================================
# === БЫЛО === default-character-set = cp1251
# ==============================================================
default-character-set = utf8
character-sets-dir = /usr/local/mysql4/share/charsets

#
# Параметры MySQL-сервера.
#
[mysqld]
# Использовать режим совместимости с клиентами MySQL 3.x и MySQL 4.0.
old-passwords

# Кодировка баз данных по умолчанию.
default-character-set = utf8 # было cp1251
init-connect = "set names utf8" # было cp1251


Перезапускаем Апач ( Restart server )

На момент написания этого материала у меня установлено:
Базовый пакет: Base_2006-10-04_a1.3.33_p4.4.3_m4.1.16_pma2.6.1.exe
Пакет расширения: PHP4_2006-10-04_4.4.4.exe
Если у Вас установлены другие версии, то возможно отличие, но принцип остаётся - надо ср1251 заменить на utf8 .

Так как в основном для импорта/экспорта используется phpMyAdmin, то нужно и там сделать некоторые изменения. Справа на главной странице http://localhost/Tools/phpmyadmin/index.php выбираем
Language -> Russian (ru-utf-8),
Сопоставление соединения с MySQL -> utf8_general_ci
должно быть: MySQL-кодировка: UTF-8 Unicode (utf8)

В самом низу страницы возможно возникнет сообщение:

Ваш конфигурационный файл содержит настройки (пользователь root без пароля), которые относятся к привилегированному пользователю MySQL (по умолчанию). Ваш MySQL сервер запущен с этими настройками по умолчанию, открытый для вторжений, поэтому Вам настоятельно рекомендуется устранить эту дыру в безопасности.
The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.

Сообщение на английском говорит о том, что для нормальной работы phpMyAdmin с кодировкой utf8 необходим модуль расширения mbstring для PHP. Данный модуль есть в расширении для PHP для Денвера, Скачиваем это расширение и устанавливаем если Вы его ещё не установили.

Далее ищем файл Z:\usr\local\php\php.ini и в нем убираем ";" в начале строки

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Динамически загружаемые расширения ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Убираем ; перед двумя следующими строками
extension=php_gd2.dll -- графическая библиотека
extension=php_mbstring.dll -- работа с уникодом.

перезапускаем Денвер и проверяем обновлением страницы http://localhost/Tools/phpmyadmin/index.php

Если надпись

The mbstring PHP extension was not found and you seem to be using multibyte charset. Without mbstring extension phpMyAdmin is unable to split strings correctly and it may result in unexpected results.

изчезла, то проблемы решены и всё должно работать нормально. Во всяком случае у меня все работает и поиск и импорт/экспорт.

Таксономия или как разделить одну кучу на более мелкие.

Для тех, кто впервые знакомится с системой Друпал (CMS Drupal), понятие таксономия (taxonomy) является непривычной и непонятной. Однако термин таксономия встречается часто, и не разобравшись с ним, трудно будет эффективно использовать возможности Друпал.

В Большой энциклопедии Кирилла и Мефодия о таксономии можно прочитать:

«ТАКСОНОМИЯ (от греч. taxis — расположение, строй, порядок и nomos — закон), теория классификации и систематизации сложноорганизованных областей действительности, имеющих обычно иерархическое строение (органический мир, объекты географии, геологии, языкознания, этнографии и т. д.). Термин (предложен в 1813 швейцарским ботаником О. Декандолем) длительное время употреблялся как синоним систематики. В 60-70-х гг. 20 в. возникла тенденция определять таксономию как раздел систематики, как учение о системе таксономических категорий, обозначающих соподчиненные группы объектов — таксоны.»

Если сформулировать это покороче, то получится что ТАКСОНОМИЯ - это теория классификации и систематизации.

В той же энциклопедии смотрим что такое теория.

"ТЕОРИЯ (от греч. theoria — рассмотрение, исследование), система основных идей в той или иной отрасли знания; форма научного знания, дающая целостное представление о закономерностях и существенных связях действительности."

Опять же если покороче, то ТЕОРИЯ - это форма научного знания.

"КЛАССИФИКАЦИЯ (от лат. classis — разряд, класс и ...фикация), в логике — система соподчиненных понятий (классов объектов) какой-либо области знания или деятельности человека, используемая как средство для установления связей между этими понятиями или классами объектов. Научная классификация выражает систему законов, присущих отображенной в ней области действительности. Различают естественные классификации, основания которых — существенные признаки объектов (напр., периодическая система химических элементов), и искусственные классификации, в которых используются несущественные признаки; к искусственным классификациям относятся т. н. вспомогательные классификации (алфавитно-предметные указатели, именные каталоги в библиотеках)."

То есть КЛАССИФИКАЦИЯ — это система понятий какой-либо области знания или деятельности человека.

Теперь получаем что ТАКСОНОМИЯ - это знания системы понятий и их систематизации.

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

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

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

Таксономия - процесс создания систем классификации.

Так как Друпал предназначен для Интернет, а в Интернет в основном находится информация, то и таксономию в данном случае есть смысл рассматривать в отношении к информации. То есть, деление информации, по каким либо признакам, в Друпал называется таксономией.

То есть определение о чем будет сайт, какая информация будет представлена на сайте, какие темы эта информация будет освещать и как определить куда, в какие темы, будет добавляться новый материал и есть таксономия.

Допустим наш сайт о геометрических фигурах. Будем описывать геометрические фигуры. Что бы как то упорядочить информацию о фигурах будем её группировать по характерным чертам этих фигур (понятиям): размер, форма, цвет и так далее. Вот этот процесс определения как делить информацию о фигурах по их характеристикам и есть таксономия в данном конкретном случае.

Таксономия на практике или всё по полочкам.

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

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

Как это выглядит на практике?

Представим, что мы собираем или изготавливаем фигурки определенных размеров, цветов и формы (хобби такое). Чтобы не хранить всё это в куче, попробуем их сгруппировать по каким либо признакам. Первое что пришло мне в голову, это разложить их по размерам на разные полочки

Фигуры на полочках по размеру

Как видим, ничего здесь сложного нет. Все легко и понятно, пока фигурок немного. Но представим, что фигурок становится все больше и больше и если нам понадобятся все красные фигурки среднего размера, то нам придется перебрать всю верхнюю полку, с её огромным количеством фигурок. Появляется естественное желание перегруппировать, разделить большое количество на более мелкое, еще по какому-нибудь признаку, например - цвету. И тогда на стеллажах со средними, маленькими и большими фигурками появляются дополнительные полочки, на которых фигурки располагаются по цвету.

Фигуры на полочках по размеру и цвету

Все хорошо, коллекция пополняется, радость увеличивается с увеличением количества. И вот захотелось поиграть с маленькими зелеными треугольниками, но пока выбирали их среди маленьких зеленых фигурок, всё желание пропало. Появилась необходимость дальнейшей пересортировки своей коллекции. В этот раз по форме.

В результате получили что то вроде этого:

Фигуры на полочках по размеру, цвету и форме

Если представить всё это в словесной форме, то получим линейную, иерархическую классификацию наших фигурок.

Фигурки:

  1. Средние
    1. Красные
      1. Круглые
      2. Пентагон
    2. Синие
      1. Круглые
      2. Треугольные
    3. Зеленые
      1. Круглые
  2. Маленькие
    1. Красные
      1. Круглые
      2. Пентагон
      3. Треугольные
    2. Синие
      1. Круглые
      2. Пентагон
      3. Треугольные
    3. Зелёные
      1. Круглые
      2. Пентагон
      3. Треугольные
  3. Большие
    1. Красные
      1. Треугольные
    2. Синие
      1. Пентагон
    3. Зеленые
      1. Круглые
      2. Треугольные

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

Такое деление или такая система предлагается в качестве примера в Друпал, когда вопрос заходит о таксономии. В качестве словаря, в данном случае, определяется «Фигурки:». Размер, цвет, форма – это термины в этом словаре.

Данная линейная, иерархическая классификация вроде удовлетворяет нашим потребностям. Фигурки раскладывать удобно. Но если нам понадобятся все круглые фигурки, то придется просматривать все полки, так как нет однозначного местоположения круглых фигурок среди полок. Например, среди больших - круглые только зеленые, среди маленьких - круглые есть всех цветов. Это неудобно. Неудобно ещё и то, что если захочется собирать фигурки какого-нибудь ещё размера, например – огромного, то помимо добавления этого пункта нужно в нём создавать цветовые подпункты, а в них подпункты формы.

Таксономия на практике или всё по ящичкам.

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

Попробуем создать систему классификации немного другого плана. Такую систему, которая бы позволила однозначно определять местоположение фигур. Для начала выделим два признака присущих всем фигуркам. Пусть это будет размер и цвет. Эти два признака не должны являться составной частью друг друга, как в иерархической системе. Они полностью должны быть самостоятельны. Графически это можно представить так.

Фигуры по ящечкам по размеру и цвету

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

Фигуры по ящечкам по размеру и цвету

Теперь чтобы добавить к данной системе ещё один размер, достаточно добавить ещё один горизонтальный ряд коробочек. Если захочется фигур другого цвета, то достаточно добавить ещё один вертикальный ряд коробочек. Не надо думать о том, каких цветов будут фигуры малюсеньких размеров. Просто добавляется горизонтальный ряд для малюсеньких размеров, а разделение по цвету в этом ряду, происходит автоматически.

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

Но вернемся к нашим фигурам и попробуем выделить ещё один признак, с тем же требованием – он не должен быть составной частью, он должен быть самостоятелен. Этот признак – форма. Чтобы осуществить такое разделение необходимо добавить для каждого вида формы набор коробочек для фигур разного размера и цвета. Получается такая слоёная система. В верхнем слое расположены круглые фигуры, в среднем слое расположены треугольные фигуры и в нижнем слое расположены фигуры пентагон или пятиугольники.

Фигуры по ящечкам по размеру, цвету и форме

Теперь, если нам нужны фигуры красного цвета, то берем их в коробочках, расположенных в левой вертикальной плоскости, то есть в левом вертикальном ряду каждого слоя. Если нужны фигуры среднего размера, то берем их в коробочках, расположенных в верхней горизонтальной плоскости, то есть в верхнем горизонтальном ряду каждого слоя. Если нужны фигуры формы треугольника, то берем их в коробочках расположенных в среднем слое. Если нужны фигуры определенного цвета, размера и формы, то ищем их на пересечениях вертикальных, горизонтальных плоскостях и слоях. Например, нужны синие большие треугольники. Фигуры синего цвета расположены в средней вертикальной плоскости, большие фигуры расположены в нижней горизонтальной плоскости, на их пересечении получился такой столбик ящичков с синими большими фигурами. Но нужны треугольной формы, а они в среднем слое, и там ничего нет, потому что в данной коллекции их нет, но место для них уже зарезервировано.

В Друпал данная система реализуется при помощи создания трех словарей и терминов в этих словарях.

Цвет:

  1. Красный
  2. Синий
  3. Зеленый

Размер:

  1. Средний
  2. Маленький
  3. Большой

Форма:

  1. Круглые
  2. Треугольные
  3. Пятиугольные

Категории, словари, термины и таксономия.

Таксономия - это наука, область знаний, учение, такое же как математика, биология, литература, химия. Математика занимается цифрами, биология - организмами, литература - словами, а таксономия занимается тем, как группировать, классифицировать, систематизировать окружающую действительность.

В Drupal таксономия упоминается в том смысле, что CMS (CMP) Друпал позволяет легко изменять систему классификации материалов, которые уже опубликованы или когда-нибудь будут опубликованы на сайте. Вы можете как угодно экспериментировать и самыми различными способами группировать свою информацию, причём, например, одна и таже статья может принадлежать разным группам (Таксономия на практике или всё по ящечкам.), а в группах - разным подгруппам (Таксономия на практике или всё по полочкам.).

Как и в других науках, в таксономии есть свои правила, особенности, как и в других науках в таксономии используется своя терминология. В Друпал таксономия использует в качестве терминологии такие понятия как - категории, словари и термины.

Словари и категории в Друпал означают одно и тоже. В Друпал - это синонимы и не понятно почему в одном месте используется категории, а в другом - словари.

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

Например, Вы решили группировать статьи, материалы в три группы - по количеству слов (а почему бы и нет?).
1 = меньше 1000 слов;
2 = больше 1000 - меньше 2000;
3 = больше 2000.
Но в какой то момент Вы понимаете что эта классификация удобна только вам и больше никому. Тогда Вы просто добавляете другие системы классификации и "переносите" статьи, материалы во вновь созданные словари. Или можно оставить старую систему, и вместе с ней использовать новую.

Словари и термины - это картотека документов сайта и когда Вы указываете что этот документ принадлежит этому термину в том словаре, то фактически, вы заводите карточку на документ и уже эту карточку помещаете в этот термин в том словаре. Вы можете "переносить" карточки на документ из группы (термина) в группу (термин), можно размножать карточки и помещать в различные термины, - на сам документ это никак не скажется (Node - завяжем всё в узлы.).

Словари (категории) создаются на странице "Словари"
Управление » Управление публикациями >> Добавить словарь
Administer >> Content management >> Categories
Здесь нужно ввести название словаря, описание, справочный текст и типы материалов, которые будут принадлежать этому словарю.

Для того что бы создать термин (название группы)надо в словаре выбрать "редактировать термины (edit terms)" далее "добавить термин" и ввести название, описание и синонимы (если захотите).

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

Все глобальные изменения в Друпал может делать человек у которого есть такие права. Поэтому войдем на сайт под первым пользователем.

Категории, словари и термины создаются на странице "Словари". Для этого последовательно переходим по пунктам меню - Administer >> Content management >> Categories , затем на закладку Добавить словарь (Add vocabulary) . Так как термин входит в состав словаря, то конечно, сначала надо создать словарь или словари, а потом термины, которые будут входить в этот словарь или словари. Причём термины можно добавлять в любой последовательности, в любом, уже существующем, словаре.

Создаём словарь "Фигуры". В поле "Название словаря" вводим "Фигуры", в поле "Описание" - Геометрические фигуры, в поле "Справочный текст" - Если речь о геометрических фигурах. Выбираем типы, на которые будет распостраняться данный словарь или просто ставим галочку напротив страница. Иерархия - множественная, остальное не трогаем и нажимаем на кнопку Отправить . Словарь создан.

В списке словарей появляется словарь и в этой же строке "изменить термин". Термин - это название группы ("полочки"), в которую Вы будете сладывать карточки на ваши документы (node) сайта.

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

Далее добавим сначала оставшиеся словари - это размер, цвет, форма. Для разделения этих двух систем классификации выбираем тип, на который будут распостраняться данные словари - страница. Или просто ставим галочку напротив страница для каждого вновь созданного словаря.

а затем в каждый словарь добавим соответствующие термины.

Теперь есть готовые системы классификации и можно добавлять материалы-документы и тем самым приумножать информационное богатство сайта.

Март 2006
http://www.firsthand.ru/

Node - завяжем всё в узлы.

Node - узел. Любой документ попадающий в Друпал становиться узлом. Этому узлу присваивается свой уникальный номер. В Друпал нет двух документов с одинаковыми номерами. Вы можете изменить содержимое документа, его заголовок, но номер документа в Друпал неизменяем.

Узел обычно связывает что-то между собой. Node связывает между собой всё что относится как то к нему. Это и размещение документа в Вашей системе классификации, и представление документа читающему, это и оформление документа.

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

Словари и термины - это своего рода картотека Вашего сайта. Эту картотеку или картотеки можно представить по разному, например в виде ящечков (Таксономия на практике или всё по ящечкам.) или полочек (Таксономия на практике или всё по полочкам.) и когда Вы указываете какому термину и словарю принадлежит документ, Вы фактически "кладёте" на полочку или в ящичек карточку с именем вашего документа у которого есть свой уникальный номер. Гибкость систем классификации в Друпал как раз этим и обеспечивается. Вы можете создать сколь угодно много словарей и терминов (картотек сайта) и затем как угодно раскладывать карточки, указывающие на документ. Сам документ остаётся на своем месте.

На компьютере можно создать что-то аналогичное, если все документы разместить в одной папке и эту папку назвать "node". В этой папке не будет двух документов с одинаковыми названиями, то есть, по названиям каждый документ будет уникален. Теперь, для того чтобы было легче искать документы в этой папке, создадим другую папку и дадим ей название "Фигуры" (Таксономия на практике или всё по полочкам.). Эта папка будет аналогом словаря в Друпал. Затем в этой папке создаём папки "Средние", "Маленькие" и "Большие". Эти папки будут аналогами терминов словаря в Друпал. А в эти папки мы помещаем ЯРЛЫКИ (ССЫЛКИ) на документы, описывающие средние, маленькие и большие фигуры соответственно.
То есть, получается что классификацию документов мы произвели при помощи ЯРЛЫКОВ (ССЫЛОК), сами документы не перемещаются и остаются на том же месте. Мы можем перемещать ЯРЛЫКИ (ССЫЛКИ) из папки в папку или создавать копии этих ссылок в других папках и тем самым как бы добавлять документы в различные группы документов. Мы можем по разному классифицировать документы не перемещая их, и не переименовывая. То есть все ярлыки (ссылки) на документ будут как бы привязаны к этому документу, а сам документ является узлом, к которому тянуться все ниточки.

Февраль 2006
http://www.firsthand.ru/

Добавляем материал или наполняем сайт контентом.

Ценность любого сайта определяется информацией, которая расположена на нём. Причём ценность информации определяется посетителем сайта. Кто-то не обратит внимания, а кто-то тут же сохранит на диск, да ещё распечатает вдобавок.

Для удобства представления информации, её по разному оформляют. Её можно оформить в виде графиков, рисунков, рассказов (статей), обсуждений (форумы), результатов мнений (опросы) и так далее. Всё зависит от того, что и как Вы хотите сказать своему гостю. Уже по оформлению посетитель может определять вид информации - читает ли он статью или находится на форуме или знакомиться с опросом по какому-либо вопросу. Хотя в последнее время мне попадались сайты сделанные на основе форумных движков. Честно скажу, не сразу понимал что у меня перед глазами. А с другой стороны почему бы и нет, на то и интернет.

В CMS Друпал (CMS Drupal) доступно различное представление информации. Без учёта дополнительных модулей это: запись в дневник, опрос, статья, страница, страница книги, тема форума и комментарии.

Добавление материала происходит на странице "добавить материал". Этот пункт в меню появляется если у вас имеется право на добавление материала.

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

Напомню что в качестве примера группировались фигуры:

  1. большая-красная-треугольная
  2. большая-синяя-пентагон
  3. большая-зелёная-треугольная
  4. большая-зелёная-круглая
  5. средняя-красная-круглая
  6. средняя-красная-пентагон
  7. средняя-синяя-треугольная
  8. средняя-синяя-круглая
  9. средняя-зелёная-круглая
  10. маленькая-красная-круглая
  11. маленькая-красная-треугольная
  12. маленькая-красная-пентагон
  13. маленькая-синяя-круглая
  14. маленькая-синяя-треугольная
  15. маленькая-синяя-пентагон
  16. маленькая-зелёная-круглая
  17. маленькая-зелёная-треугольная
  18. маленькая-зелёная-пентагон

Добавляем в "по полочкам". Для этого переходим на страницу добавления материалов и выбираем "страница" - добавить материал >> страница .

В заголовке, для первой фигуры, пишем - "Полочка-Большая-красная-треугольная". В категориях выбираем соответственно то же самое и в содержимое добавляем тоже заголовок. В конце страницы не забываем нажать на кнопку "Отправить".

Остальные добавляются аналогично.

Добавляем в "по ящечкам". Для этого переходим на страницу добавления материалов и выбираем "статья" - добавить материал >> статья .

В заголовке, для первой фигуры, пишем - "Ящичек-Большая.Красная.Треугольная". В категориях выбираем соответственно то же самое и в содержимое добавляем тоже заголовок. В конце страницы не забываем нажать на кнопку "Отправить".

Остальные добавляются аналогично.

При добавлении в "по полочкам" при выборе категории появляется довольно длинный список из названий групп.

При добавлении в "по ящечкам" данные категории выглядят намного компактнее.

Март 2006
http://www.firsthand.ru/

Создаём меню или как добраться до контента.

Какой бы ценной информация не была на вашем сайте, если до неё трудно добраться, то скорее всего о ценности вашей информации будете знать только Вы.

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

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

Если Вы не создавали категории-словари и в них термины (названия групп материалов), то единственным, наверно, способом сделать навигацию по вашему сайту будет создание страниц с перечнем ваших материалов и в опциях на публикацию установить "Прикрепить наверху списка". Причем можно создать несколько таких навигационных страниц для каждой темы и одну, с перечнем этих страниц.

Если Вы заранее думали над тем как будут сгруппированы материалы и создавали категории-словари и термины, то у вас есть возможность создать навигацию, основанную на категориях-словарях и терминах. Для этого можно создать новое меню или добавить новые пункты в уже существующее. Делается это на странице администрировать>>меню. Далее выбирается либо добавить меню а затем добавить пункт меню или сразу добавить пункт меню. Если добавляется меню, то оно появиться внизу страницы администрировать>>меню, но чтобы оно появилось на ваших страничках сайта необходимо включить его отображение. Для этого нужно перейти на страницу администрировать >>блоки, найти в списке "Отключено" название Вашего меню, поставить галочку в графе "включено", выбрать место где оно должно отображаться и нажать на кнопку "Сохранить блоки" внизу страницы. Если в меню нет пунктов, то оно не появиться. Поэтому переходим на страницу администрировать>>меню и добавляем пункты меню.

При добавлении пунктов меню небходимо будет ввести название пункта (заголовок), описание данного пункта, путь к материалам данного пункта меню, выбрать какому меню или пункту меню будет принадлежать и вес.

Добавить пункт меню

С названием (заголовком) пункта меню и описанием названия (заголовка) пункта меню ничего сложного нет. Что касается пути, то здесь можно указывать не только путь к конкретному материалу, но и использовать пути-ссылки, которые присваиваются терминам при создании системы классификации в словарях-категориях. Чтобы узнать эти пути достаточно перейти на страницу >>администрировать>>категории выбрать необходимый словарь и нажать на ссылку "изменить термины". Появиться список всех терминов данного словаря. Теперь если навести мышь на термин, то в строке статуса браузера ИЕ можно увидеть путь, принадлежащий данному термину. Можно также просто скопировать ярлык и вставить куда надо. Эти пути-ссылки имеют вид

http://вашсайт.ру/taxonomy/term/1

При создании навигации, основанной на категориях-словарях и терминах используется только часть полного пути, а конкретнее пути вида taxonomy/term/1. Друпал также позволяет использовать такие комбинации как:

taxonomy/term/1+2 - будут выводиться все материалы, принадлежащие терминам, имеющим пути-ссылки taxonomy/term/1 и taxonomy/term/2 (суммирование)

taxonomy/term/1,2 - будут выводиться только те материалы, которые принадлежат и термину, имеющему путь-ссылку taxonomy/term/1 и термину, имеющему путь-ссылку taxonomy/term/2 (пересечение).

taxonomy/term/1/1 - будут выводиться все материалы, принадлежащие термину, имеющему путь-ссылку taxonomy/term/1 и материалы на один уровень ниже. Если есть категория и у неё подкатегории, которые также имеют подкатегории, то выводиться будут материалы категории и материалы подкатегорий первого уровня. Материалы подкатегорий второго и следующих уровней выводиться не будут.

taxonomy/term/1/all - будут выводиться все материалы, принадлежащие термину, имеющему путь-ссылку taxonomy/term/1 и материалы, принадлежащие всем подкатегориям данного термина.

Эти комбинации и используются для создания основной навигации.

Допустим нужно создать навигацию, основанную на ранее рассмотренной иерархической системе (Таксономия на практике или всё по полочкам). Сначала добавляем меню "Фигуры", включаем отображение этого меню, затем добавляем пункты меню, причем для размера и цвета, чтобы отображались все материалы данной категории и подкатегорий, в конец пути добавляем all. То есть нужно будет ввести нижеприведённые данные:

Большие = "taxonomy/term/1/all"
--Зелёные = "taxonomy/term/6/all"
----Круглые = "taxonomy/term/29"
----Треугольные = "taxonomy/term/30"
--Красные = "taxonomy/term/4/all"
----Треугольные = "taxonomy/term/28"
--Синие = "taxonomy/term/5/all"
----Пентагон = "taxonomy/term/27"

Маленькие = "taxonomy/term/3/all"
--Зелёные = "taxonomy/term/9/all"
----Круглые = "taxonomy/term/24"
----Пентагон = "taxonomy/term/26"
----Треугольные = "taxonomy/term/25"
--Красные = "taxonomy/term/7/all"
----Круглые = "taxonomy/term/21"
----Пентагон = "taxonomy/term/23"
----Треугольные = "taxonomy/term/22"
--Синие = "taxonomy/term/8/all"
----Круглые = "taxonomy/term/18"
----Пентагон = "taxonomy/term/20"
----Треугольные = "taxonomy/term/19"

Средние = "taxonomy/term/2/all"
--Зелёные = "taxonomy/term/12/all"
----Круглые = "taxonomy/term/17"
--Красные = "taxonomy/term/10/all"
----Круглые = "taxonomy/term/13"
----Пентагон = "taxonomy/term/14"
--Синие = "taxonomy/term/11/all"
----Круглые = "taxonomy/term/15"
----Треугольные = "taxonomy/term/16"

После добавления всех пунктов меню получаем вполне работоспособную навигацию.

Март 2006
http://www.firsthand.ru/

ВложениеРазмер
14-1.png13.64 кб

Учебная база данных CMS Drupal с информацией о фигурах.

При написании материалов по освоению CMS Drupal мною был фактически создан сайт о фигурах. У него есть навигация, основанная на иерархической системе классификации и на матричной системе классификации. Есть примитивный набор материалов, распределённый согласно систем классификации и позволяющий проводить некоторые эксперименты с созданием новых систем классификации и навигации. Так же можно проверять работу новых модулей, которые не идут вместе с дистрибутивом Друпал, но которые можно скачать с официального сайта CMS Drupal, со страницы модулей http://drupal.org/project/Modules/.

Эту базу можно установить вместо базы, поставляемой с Друпал.
На ней хорошо проверять работу модулей, обеспечивающих навигацию по сайту и создающих карту сайта. Всё видно наглядно.

В принципе её можно использовать и как шаблон для вашего сайта. Для этого достаточно убрать лишние или добавить недостающие словари-категории и термины, переименовать их и привести в соответствие меню-навигацию. Простенький, но вполне работоспособный, сайт готов. Осталось придумать только название.

Скачать учебную базу данных "Фигуры" для CMS Drupal 5.0 - figures.sql.zip - часть 1
Скачать учебную базу данных "Фигуры" для CMS Drupal 5.0 - figures.sql.zip - часть 2

Для входа используйте
Логин: Admin
Пароль: pass

Хотя в Денвере любой пароль можно получить через режим восстановления пароля. Достаточно знать логин, а пароль придёт письмом, которое можно посмотреть через http://localhost/Test/sendmail/index.php - Проверка отладочной заглушки для sendmail.

Если у Вас с вашим сайтом - порталом что-то не получается или запортили, то в Denwer это легко исправить. Надо перейти в phpMyAdmin 2.6.1 - администрирование СУБД MySQL на странице Утилит (http://localhost/Tools/), выбрать вашу базу данных, выделить все таблицы и удалить (уничтожить) их из базы. Затем снова произвести импорт этой учебной базы и можно работать и портить её снова.

Желаю удачи тем, кто воспользуется этим предложением.

Март 2006
http://www.firsthand.ru/

2006-04-26
--------------------------------
+ добавлены страницы для проверки создания многоаспектной (матричной) системы навигации

2006-04-25
--------------------------------
+ Определены дополнительные роли-группы пользователей сайта
+ Добавлены правила доступа для их проверки
+ Добавлен словарь-категория "Тесты" для тестовых статей-страниц. Для проверки работы разных модулей-фильтров и других пришедших в голову идей.
* Изменено отображение блоков навигации на страницах
* И ещё что-то, чего уже не помню

ВложениеРазмер
figures5-2007-01-24-1.sql_.zip203.9 кб
figures5-2007-01-24-2.sql_.zip121.13 кб

Первые итоги или проблемы освоения CMS Друпал (Drupal) и один из путей преодоления этих проблем.

Для пользователя, а тем более начинающего, освоение Друпал легким не назовёшь. Во-первых нигде нет четкого указания последовательности действий при настройке Друпал (Drupal). Пока придёт понимание последовательности действий может не хватить терпения, и так и не узнать насколько гибкой и мощной системой является эта система управления содержимым сайта CMS Drupal.

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

Представьте, что Вы установили программу и при запуске на панели управления нет ни одной кнопки. Все кнопки Вы должны установить и настроить сами, зная только что это возможно и возможности программы в настройке очень широки. Есть только отдельные краткие указания.

Для того чтобы упростить освоение программы, разработчики поставляют её с наиболее востребованными настройками. Вы устанавливаете программу, запускаете её и она открывается со всеми необходимыми, для выполнения основных функций, кнопочками и командами. Иногда у программы и функций то не так уж много, а кнопочки, да ещё красивые - присутствуют.

Если присмотреться к коммерческим CMS, то почти все они имеют начальные настройки, позволяющие почти сразу создавать рабочие сайты. Многие из этих CMS имеют большое количество шаблонов и настройки сайта сводятся к выбору наиболее близкого к вашим потребностям шаблона. Достаточно только переименовать пункты навигации и, возможно, что-то убрать или добавить.

В CMS Drupal (Друпал) содержимое и оформление независимы друг от друга. То есть можно добавлять материалы на сайт и не боятся что при изменении оформления сайта это содержимое куда-то исчезнет или потеряется. Причём оформление сайта можно менять буквально несколькими кликами мышью по ссылкам. Для этого достаточно скачать разные темы с официального сайта и скопировать их в папку themes и затем на странице администрировать>>темы (www.site.ru/admin/themes) поставить галочку и точку напротив того оформления сайта, которое больше всего Вам нравиться. То есть Друпал имеет шаблоны оформления сайта. Их не так много, но можно значительно увеличить их количество, меняя цветовое оформление или, если Вы знакомы с PHP, создавать свои темы. Но вот шаблонов с навигацией и системами классификаций материалов нет.

Друпал имеет уникальную возможность создавать системы классификации материалов сайта, изменять эти системы как вам хочется в любое время и при этом без ущерба материалу. Используя эту возможность Друпал, можно создать наиболее востребованную структуру классификации и использовать её в качестве шаблона при создании новых сайтов-порталов. Этот шаблон позволит не только ускорить создание сайта, но и даст более быстрое понимание организации CMS Друпал (Drupal) и создания систем классификации.

Когда я пытался разобраться как создавать категории-словари и термины и как их использовать на практике, мной было создано две системы классификации, для сравнения. Эти системы описаны в Таксономия или как разделить одну кучу на более мелкие., Таксономия на практике или всё по полочкам., Таксономия на практике или всё по ящечкам., Категории, словари, термины и таксономия. Были добавлены материалы в каждую категорию для наглядности. База данных с этими данными доступна на странице Учебная база данных CMS Drupal с информацией о фигурах. Предлагаю в качестве шаблона для начинающих использовать эту учебную базу. Достаточно её скачать и установить вместо базы CMS Друпал.

Эта база не даст Вам полноценный сайт, но упростит, я надеюсь, освоение CMS Drupal.

Апрель 2006
http://www.firsthand.ru/

Управление доступом или система обеспечения информационной безопасности.

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

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

Доступ к учётным записям и возможность их редактирования случайными посетителями может привести к потере паролей, логинов и, возможно другой личной информации зарегистрированных пользователей. И даже может получиться ситуация когда кто-нибудь, в том числе и Вы, не сможет попасть на ваш сайт.

Изменение темы офомления вашего сайта не так критично, но и это изменение, если оно происходит незапланированно, тоже может быть нежелательно. Так же нежелательно изменение публикаций случайными посетителями сайта без согласия автора.

Чтобы избежать этих неприятностей необходима система контроля за доступом к настройкам CMS Drupal (Друпал) и система, которая определяла бы что можно делать пользователям сайта, а что нельзя.

В CMS Drupal это обеспечивается обьединением пользователей в группы и разрешением пользователям определённых групп выполнять те или иные, разрешённые для данной группы, действия на сайте. То есть принадлежность к той или иной группе определяет возможное и разрешённое поведение пользователя на сайте. Можно сказать что пользователь выступает в какой-то роли: в роли автора, в роли редактора, в роли администратора и так далее. Где авторы, редакторы, администраторы - это названия ролей-групп. Наверно поэтому в Друпал группы пользователей называются ролями (roles). Одна группа - это роль (role), несколько групп - роли (roles).

Роли (группы пользователей) и их права (что разрешено делать пользователям этой группы-роли) определяются на странице http://вашсайт/admin/access >>администрировать>>управление доступом>> (>>administer>>access control>>).

На этой странице три закладки: права доступа (permissions), роли (roles), правила доступа (access rules).

Права доступа (permissions).
Здесь определяются те действия которые будут разрешены посетителям-пользователям сайта, входящим в роли-группы, перечисленные в заголовке таблицы. Первоначально существуют две роли - это гость или анонимный пользователь (anonymous user) и зарегистрированный пользователь (authenticated user). Есть ещё "Пользователь №1", для которого ограничений нет и он здесь не присутствует. Права доступа сгруппированы по модулям, подключенным к Друпал (>>администрировать>>модули>>) и если Вы подключали новые модули и что-то не работает, то стоит посмотреть на этой страничке есть ли права доступа к подключенному модулю. Если Вы не уверены стоит ли давать то или иное право, или не знаете как это отразиться на безопасности сайта и безопасности данных пользователей, то лучше не давать.

Роли (roles).
Здесь определяются роли-группы, а точнее названия ролей-групп. Эти названия могут быть любыми, например - уровень безопасности-1, уровень безопасности-2 или безопасность-1, безопасность-2 или группы пользователей-1, группы пользователей-2 и так далее как фантазии хватит. Но желательно чтобы как-то название роли-группы отражало суть этой группы. Например могут быть группы:

  1. гости или анонимные пользователи - посетители сайта, не зарегистрированные на сайте или зарегистрированные, но не вошедшие под своим логином. Таким посетителям разрешаем просматривать материалы сайта , комментарии и форумы. Эта роль-группа пользователей присутствует по умолчанию, для пользователей этой роли нужно только определить их права доступа на закладке "Роли".
  2. зарегистрированные пользователи - посетители сайта, зарегистрированные на сайте. Таким посетителям разрешаем всё, что разрешили гостям и вдобавок разрешаем оставлять комментарии, добавлять обсуждения-темы на форуме и оставлять записи в своём дневнике. Эта роль-группа пользователей тоже присутствует по умолчанию и для пользователей этой роли-группы только нужно определить их права доступа на закладке "Роли".
  3. авторы - зарегистрированные пользователи со всеми правами зарегистрированных пользователей и вдобавок имеющие право на публикацию и редактирование своих статей, страниц и других материалов.
  4. редакторы - тоже что и авторы и вдобавок имеющие право на редактирование материалов других авторов, в общем редакторы.
  5. администраторы - пользователи со всеми правами настройки и использования сайта или с полным доступом к системе безопасности вашего сайта и его содержимого.

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

Права доступа группы-1 = +++++
Права доступа группы-2 = ++++++++++
Права доступа группы-3 = +++++++++++++++
Права доступа группы-4 = ++++++++++++++++++++

Если необходимо изменить права доступа пользователя сайта, то он просто "переноситься" из одной роли-группы в другую. Делается это на странице учетной записи. Одна галочка убирается, другая ставится.

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

Если необходимо изменить права доступа пользователя сайта, то к его основному уровню добавляется ещё один или несколько. На странице учётной записи, в данном случае, галочки добавляются.

Права доступа группы-1 = +++++
Права доступа группы-2 =      +++++
Права доступа группы-3 =           +++++
Права доступа группы-4 =                +++++

Помимо учётных записей роли-группы используются в настройках форматов ввода. В форматах ввода настраивается какие фильтры могут использоваться ролями-группами.

Правила доступа (access rules).
На этой странице можно запретить или разрешить доступ к сайту по имени пользователя (логину), адресу электронной почты (e-mail), имени или IP-адресу хоста. Разрешение преобладает по приоритету.

Апрель 2006
http://www.firsthand.ru/

Вставляем изображение

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

Главная » администрировать >> настройки файловой системы


Настройки файловой системы.

Нужно что бы был указан "Путь на файловой системе:" Обычно это files . Обязательно определитесь с доступом к файлам. Друпал по разному формирует ссылки в зависимости от типа доступа, хотя файлы храняться вроде там же.

Должен быть подключен модуль upload , который позволяет пользователям закачивать и прикреплять файлы к материалам.

Главная >> администрировать >> модули


Подключение модуля upload.

Пользователь должен иметь права на загрузку и просмотр загруженных файлов.
Причем кому то можно разрешить загружать, а кому-то только просматривать.

Главная >> администрировать >> доступ


Разрешить доступ к прикреплённым файлам.

Для каждого типа материала должно быть разрешено использование прикреплённых файлов.

Главная >> администрировать >> настройки >> типы материалов


Типы материалов.

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

Разрешить прикрепления.

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

Лучше сначала создать документ, в котором будут использоваться изображения и сохранить. Тогда будет известно имя документа, присвоенное Друпалом. Затем к именам картинок добавить в начало номер документа, присвоенный Друпалом (например, было img.png стало 40-img.png). Это позволит исключить ошибки с одинаковыми именами для разных документов и будет указывать принадлежность картинок тому или другому документу. Это не требование Друпала, это просто совет по организации хранения файлов.

Хотя если имена картинок будут одинаковы, то Друпал добавит к имени индекс и тем самым не затрет одно изображение другим. Истинное имя файла изображения будет известно из надписи ПОД окошечком. Там где показан путь к файлу.


Прикрепление файлов.

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

Прикреплять можно сразу все необходимые файлы или добавлять их по мере необходимости. Но обязательно затем нажать на кнопку "Отправить" внизу страницы, иначе ничего не сохраниться и все прикрепления придётся делать заново. Сначало прикрепляем затем отправляем .

Для вставки изображений используется HTML тэг (не должно быть пробела между скобкой < и img):

< img src="http://your-site.ru/system/files/40-6-img.png" alt="Прикрепление файлов.">
или
< img src="../system/files/40-6-img.png" alt="Прикрепление файлов.">

Обязательно посмотрите что бы формат ввода стоял такой, который разрешает использование тэгов вставки изображений, например Full HTML . Иначе фильтр отрежет вашу вставку, как не разрешённую и Вы не увидете даже следов от изображений.

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

Аналогично можно удалить файлы. Достаточно поставить галочку и нажать Отправить .

Теперь если подвести итог, и помня о том, что изображение это файл и для его использования нужно его загрузить на сайт, получим

Вот вроде и всё.

Модули CMS Drupal (Друпал)

Система управления содержанием CMS Drupal (Друпал) - это программа написанная на языке программирования PHP и как любая программа содержит функции, которые выполняют необходимые действия.

Чтобы сделать работу с программой удобнее, эти функции группируют в модули. Каждый модуль отвечает за определённую часть общей работы CMS Drupal (Друпал). Один из модулей, например, занимается сбором новостей, другой - формирует страницу, которую вы увидите на своём экране монитора, ещё один отвечает за организацию поиска на сайте и так далее и тому подобное. Это удобно для внесения изменений в код программы, обновлений программы и работы над программой. Если необходимо улучшить работу с файлами, достаточно изменить или создать новый модуль работающий с файлами.

Все модули CMS Drupal (Друпал) размещаются в каталоге modules. Их там больше тридцати и каждый отвечает за выполнение только своей работы. Область действия модуля отчасти отражает его название. Так, модуль forum отвечает за организацию и управление форумами.

По умолчанию, после установки CMS Drupal, нормально работают только самые необходимые и самое минимальное количество модулей. Для нормальной работы других модулей, их небходимо подключить к системе, разрешить их использование пользователям и, если необходимо, настроить.

Подключение модулей делается на странице >> administer >> modules (>> администрировать >> модули). На этой странице перечислены все модули, доступные для подключения. Чтобы подключить модуль - необходимо установить "галочку" напротив названия модуля и сохранить настройки. Отключать и подключать можно по несколько модулей одновременно.

Разрешение использования модулей пользователям сайта делается на странице управления доступом >> administer >> access control (>> администрировать >> управление доступом). На этой странице перечислены действия для каждого модуля и также перечислены группы (роли) пользователей. Чтобы разрешить доступ пользователям определённой группы к возможностям модуля, необходимо установить "галочку" напротив возможности модуля и в колонке соответствующей группы (роли). И конечно сохранить настройки.

Настройки модулей могут находиться на страницах >> administer (>> администрировать) и/или >> administer >> settings (>> администрировать >> настройки). Так, например, меню (menus) настраивается на обеих страницах.

Общие правила для модулей: подключить --> дать доступ --> настроить.

Апрель 2006
http://www.firsthand.ru/

Filter (Фильтр): предоставление данных пользователя, в соответствии с определёнными правилами.

На сайте Drupal (Друпал) он описывается как Filter: Input formats for user content.

Это обязательный модуль и поэтому подключать к системе CMS Drupal (Друпал) его не надо, он работает постоянно. Настраивается он на странице >>administer>>input formats (>>администрировать>>форматы ввода).

Прямой перевод - (Фильтр: форматы ввода для пользовательского содержания) имеет, на мой взгляд, немного запутанный смысл и назначение данного модуля.

Формат (Format) - изначально означает размер печатного издания, но если это слово используется в отношении информации, то можно его определить, как, [b]определённые правила, которым подчиняется представление информации[/b]. Например, если взять графические файлы, то одно и то же изображение можно сохранить в разных форматах. Это могут быть - bmp, jpeg, png, gif и так далее. Изображение одно, а хранение и представление этого изображения подчиняются различным правилам. Если правила нарушаются, то изображение может быть потеряно или искажено.

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

Поэтому значение слова формат в приложении к документу-материалу можно определить как правила, которым должен соответствовать документ-материал.

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

Теперь, если подвести итог, получаем что фразе Filter: Input formats for user content больше соответствует перевод Фильтр: предоставление данных пользователя, в соответствии с определёнными правилами. Этот перевод более соответствует понятию фильтр, чем Фильтр: форматы ввода для пользовательского содержания.

Модуль Filter (Фильтр) стандартно предназначен для ограничения использования возможностей html документа. Этот модуль является, можно сказать, ещё одной системой безопасности для вашего сайта.

Документы HTML могут, кроме текста и его оформления, содержать различные программные коды, которые помимо безопасных действий, могут нарушить работу вашего сайта. Для примера, Вы можете создать страницу и в её содержимое вставить следующий код, установив Формат ввода PHP code:

< ? phpinfo(); ?> (здесь между < и ? не должно быть пробела)

После того как нажмёте Отправить получите наглядный результат. Этот код выведет информацию об установленном PHP. Но это мог быть код, выполняющий совсем другие действия.

Работа модуля заключается в том, что он проверяет содержимое материалов и пропускает только разрешённые наборы символов (фильтрует). входными данными для этого модуля является материал, сохранённый в базе данных. Друпал работает с базой данных и если кому нужна информация, Друпал берёт её из базы данных. В базе данных материал-информация храниться в том виде, в котором его туда поместили. Можно сказать, что Друпал не нарушает авторских прав, но перед публикацией материалов, заботясь о своей репутации и безопасности, проверяет материалы и лишнее вычёркивает. Проверкой и вычёркиванием занимается модуль Фильтр. Существуют дополнительные модули-фильтры, которые занимаются ещё и заменой одних комбинаций символов, другими, тем самым расширяя возможности и добавляя удобства.

Настройка модуля производиться на странице >>administer>>input formats (>>администрировать>>форматы ввода). Здесь опять словосочетание input formats переводиться как форматы ввода, и если считать, что под форматами подразумеваются определённые правила, а под вводом - ввод материалов-информации из базы данных, то получаем ввод по определённым правилам или правила при вводе из базы данных, а не из окошка вашего браузера.

Форматы ввода - это ввод по определённым правилам из базы данных.

Друпал вводит материал-информацию из базы данных и при вводе этой информации проверяет её, согласно определённым правилам. Ненужное и опасное "выкидывает" - заменяет пустым местом и, уже затем, показывает пользователям сайта. Принцип нахождения и замены положен в работу всех модулей-фильтров.

На странице >>administer>>input formats (>>администрировать>>форматы ввода) есть две закладки - закладка "список" и закладка "добавить формат ввода".

На закладке "добавить формат ввода" создаются новые форматы ввода или, если по другому, создаются новые правила при вводе материалов из базы данных. Эти правила создаются подключением необходимых фильтров-модулей. Надо поставить галочку напротив фильтра и он будет обрабатывать вводимый материал из базы данных. Здесь перечисляются и подключаются все фильтры, подключаемые к CMS Друпал при создании новых форматов ввода. Как видим, формат ввода состоит из определённого набора модулей-фильтров.

Здесь же перечисляются все роли-группы пользователей сайта, которые могут использовать вновь созданный формат ввода. Здесь также просто ставится галочка напротив той роли-группы, которой разрешается пользоваться созданным форматом ввода.
Этот формат ввода появится на закладке "формат ввода" при добавлении (создании) новых материалов на сайте для тех пользователей, которым он разрешён.

На закладке "список" перечислены все форматы ввода, роли-группы и даётся возможность настройки или удаления этих форматов.

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

С порядком работы модулей-фильтров нужно быть внимательными. Если Вы подключите дополнительные фильтры, но захотите ограничить использование возможностей HTML документов, то лучше всего фильтр Filtered HTML установить последним. Дополнтельные модули-фильтры обычно позволяют использовать более простые обозначения для замены обозначений в HTML документе.

Например для обозначения ссылки в html документе используется the example site а при использовании модуля фильтра BBCode то же самое можно записать как < url=http://example.com/>the example site Теперь, если Вы захотите запретить использование ссылок, и поставите Filtered HTML раньше чем BBCode, то Filtered HTML удалит the example site но оставит < url=http://example.com/>the example site А фильтр BBCode сделает из неё ссылку и в результате полного запрета на ссылки у вас не будет.

Апрель 2006
http://www.firsthand.ru/

Создание опросов в CMS Drupal.

Словосочетанием "социологический опрос" уже мало кого удивишь. Его проводят для того, чтобы определить отношение людей к событиям или предметам. Фактически собирают статистику мнений, по какому либо вопросу.

В CMS (CMP) Drupal тоже есть возможность проводить опросы по интересующим Вас вопросам. Например, каким операционным системам (Window, Linux, FreeBSD и др.) отдают предпочтение посетители Вашего сайта или каким почтовым клиентом (Outlook, TheBat, и др) пользуются?

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

В CMS (CMP) Drupal такую возможность предоставляет модуль Poll. Для его использования необходимо подключить его на странице Главная > Управление > Конструкция сайта > Модули . Для подключения надо поставить галочку перед "Poll" и "Сохранить настройки". Как и для всех модулей, которые делают что то для посетителей или пользователей сайта, необходимо также настроить права доступа к работе этого модуля. Делается это на странице Главная > Управление > Управление пользователями > Контроль доступа .

После подключения и определения прав доступа к модулю Poll можно создавать свои опросы на интересные Вам темы. Опрос (poll) - это один из типов содержимого сайта, такой же, как "страница", "статья" или "подшивка" и поэтому создаются также, через пункт меню навигации Создать материал > Выбираем пункт Опрос и на странице создания опросов заполняем соответствующие поля и нажимаем на "Отправить". Опрос готов и можно собирать статистику.

Если Вы хотите чтобы опрос принадлежал одной из существующих на сайте категорий классификации материала, нужно на странице настройки соответствующего словаря (Главная > Управление > Управление содержанием > Категории затем, напротив интересующего нас словаря, щёлкаем по "Изменить словарь") поставить галочку напротив типа - Опрос.

Можно специально для опросов создать отдельный словарь с терминами и для него определить единственный тип материалов - Опрос. Для доступа к опросам, в меню создать соответствующий пункт (Главная > Управление > Конструкция сайта > Меню вкладки "Добавить меню" или "Добавить пункт меню") и тогда опросы будут отдельным разделом Вашего сайта.

Июнь 2007
http://www.firsthand.ru/

Навигация (часть-1) - за два клика к любому материалу сайта.

После ознакомления со статьёй "Несколько примеров многоаспектных навигационных систем" стало интересно, можно ли создать что-то подобное на CMS Друпал со стандартным набором модулей. Так как иерархическая система навигации здесь не используется, пробуем создать многоаспектную систему навигации используя систему описанную в "Таксономия на практике или всё по ящечкам."

Речь идёт о классификации геометрических фигур по трём признакам - размеру, форме, цвету. Для каждого из этих признаков создавался словарь-категория и в каждом из них соответствующие термины, определяющие геометрические фигуры. База данных с этой и ещё одной системой классификации доступна для скачивания на странице "Учебная база данных CMS Drupal с информацией о фигурах."

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

Словарь-категория: Размер

Словарь-категория: Цвет

Словарь-категория: Форма

Ещё нам понадобятся правила комбинации терминов:

taxonomy/term/1+2 - будут выводиться все материалы, принадлежащие терминам, имеющим пути-ссылки taxonomy/term/1 и taxonomy/term/2 (суммирование)

taxonomy/term/1,2 - будут выводиться только те материалы, которые принадлежат и термину, имеющему путь-ссылку taxonomy/term/1 и термину, имеющему путь-ссылку taxonomy/term/2 (пересечение).

taxonomy/term/1/1 - будут выводиться все материалы, принадлежащие термину, имеющему путь-ссылку taxonomy/term/1 и материалы на один уровень ниже. Если есть категория и у неё подкатегории, которые также имеют подкатегории, то выводиться будут материалы категории и материалы подкатегорий первого уровня. Материалы подкатегорий второго и следующих уровней выводиться не будут.

taxonomy/term/1/all - будут выводиться все материалы, принадлежащие термину, имеющему путь-ссылку taxonomy/term/1 и материалы, принадлежащие всем подкатегориям данного термина.

Это были исходные данные. Теперь ставим задачку.

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

Три словаря-категории, предназначенные для классификации информации, распределяют эту информацию как бы в трёхмерном пространстве. Три измерения - три словаря-категории. Визуальное представление такой системы описано в "Таксономия на практике или всё по ящечкам." и выглядит она в виде куба (немного изменённый представлен на рисунке ниже). Куб - это объёмная фигура и представить её на плоскости, да ещё в виде навигации довольно сложно. А здесь необходимо создать систему, позволяющую перемещаться в этом кубе. Причём в одно и то-же место в этом кубе мы должны попадать с какой бы стороны не начинали движение.

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

Если заходим в подъезд, то видим всё что находится в этом подъезде и не видим что твориться в соседнем. Можно сказать что при входе в подъезд мы можем видеть только вперёд, назад, вверх и вниз (в вертикальной плоскости). То же относиться и к этажам, но видеть можем только в горизонтальной плоскости, то есть влево, вправо, вперёд и назад.

Теперь, допустим, нам надо посмотреть что находится в синем-треугольном-маленьком помещении, в центре дома. Туда можно попасть по разному. Можно начать с синего подъезда и мы увидим ВСЕ синие фигуры, затем сделать уточнение, что нас интересуют только треугольные и тогда видим фигуры, находящиеся в столбике (на ВСЕХ этажах) на пересечении синих и треугольных фигур. И последнее уточнение - это выбор этажа. Нас интересует этаж с маленькими фигурами. В итоге результат находиться на пересечении двух подъездов и этажа. Можно начать с треугольного подъезда или с этажа маленьких фигур. Но во всех случаях необходимо обеспечить уточнение при выборе следующей характеристики фигуры.

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

Для того чтобы обеспечить уточнение (пересечение плоскостей), используем возможность правила комбинации taxonomy/term/1,2 (пересечение) . При его использовании будут выводиться только те материалы, которые принадлежат и термину, имеющему путь-ссылку taxonomy/term/1 и термину, имеющему путь-ссылку taxonomy/term/2.

Условимся, что на первом месте будет стоять ссылка для которой производиться уточнение. Если, например, уточнение производиться по большим фигурам, то на первом месте должна стоять цифра - 31. На втором месте ставим цифру, соответствующую термину, по которому происходит уточнение. Это простое правило уменьшит количество ошибок и поможет, если придётся вносить изменения в будущем. В результате получаем уточнения для больших фигур:

Уточняем большие фигуры по цвету

Уточняем большие фигуры по форме

Теперь обеспечен выбор фигур по двум признакам, пока это только для больших фигур. Но необходима максимальная детализация, то есть выбор фигур по трём признакам. Используя то же правило и аналогично рассуждая получаем:

Уточняем большие фигуры по цвету и форме

Теперь, если мы начнём поиск с фигур большого размера, до нужной информации можно добраться за два клика мышью.

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

Как и куда разместить эту навигацию? Можно создать страницу и поместить всё туда. Отметить у неё "Прикрепить наверху списка" и поместить её в ту категорию-термин, где будет производиться детализация. Можно создать блок и поместить всё туда. Более подробно в следующей части.

Январь 2007
http://www.firsthand.ru/

Навигация (часть-2) - используем статью-страницу.

В предыдущей части ("Навигация (часть-1) - за два клика к любому материалу сайта.") была сделана попытка создания системы навигации, позволяющей добраться до нужной информации за два клика. И такая система была создана. Вполне рабочая. Данная система навигации создавалась на основе стандартного набора модулей Друпал и требовала ручного труда. Помимо этого, существуют дополнительные модули, которые создают навигацию автоматически на основе категорий-словарей и терминов, на основе созданной Вами системы классификации материалов сайта-портала. И тот и другой способ создания навигации (ручной и автоматический) имеют свои достоинства и недостатки.

При создании системы навигации немаловажную роль играет её расположение и организация на страницах сайта. Навигация должна быть понятна посетителям и предсказуема. То что она должна быть понятна это понятно. Не надо придумывать названия пунктам навигации какие-то экзотические. Название должно быть таким, чтобы из него было понятно о чём будет речь, что-бы посетителю не приходилось разгадывать чтобы это значило. Что касается предсказуемости, то имеется ввиду что если на дверях написано ВЫХОД, то там и должен быть выход, а не комната заваленная разным хламом. Если Вы подходите к такой двери, то ожидаете что сможете выйти через неё из помещения, Вы как бы предсказываете последствия и хорошо когда это предсказывание сбывается. Если Вы смотрите информацию о больших фигурах и видите пункты "красные", "синие" и "зелёные", то при нажатии на один из них ожидается увидеть информацию не о ВСЕХ красных или ВСЕХ синих или ВСЕХ зелёных, а именно о больших и красных или о больших и синих или о больших и зелёных фигурах. И вот это ожидание должно быть как бы предсказано системой навигации, система навигации должна учитывать это ожидание.


Интересуют зелёные среди больших фигур

После создания системы её надо где-то и как-то расположить. В Друпал навигацию можно расположить или на отдельной странице или используя возможности модуля блок или используя возможности модуля меню.

Для использования страницы в качестве навигации её надо сначала создать. При создании страницы нужно придумать понятный заголовок. Например - "Выбор Больших фигур по Цвету и Форме". В качестве содержания разместить систему навигации. Затем обозначить принадлежность к категории, для которой идет уточнение. Если уточнение касается больших фигур, то нужно указать что страница-навигация принадлежит к категории больших фигур, остальные должны иметь значение "Пусто", если конечно у Вас нет других соображений.


Чтобы эта страница появлялась только при выборе категории "Большие" и не появлялась при выборе других, в настройках публикации необходимо поставить галочки напротив Опубликовано и Прикрепить наверху списка. Теперь страница-навигация будет появлятся наверху всех страниц в категории "Большие"


Допустим есть три словаря-категории и в этих словарях определены термины, описывающих геометрические фигуры по различным признакам: по размеру, по цвету и по форме. Чтобы получить информацию о конкретных фигурах, то есть о фигурах определённого размера, определённой формы и определённого цвета создаём три меню - размер, цвет, форма, и в этих меню создаём соответствующие пункты меню.


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


В качестве названий столбцов и строк выступают названия "подъездов" и при их выборе получаем информацию, расположенную на пересечении подъезда и этажа. Если выбираем "Круглые", то получаем информацию о всех больших и круглых фигурах всех цветов. Можно сказать что мы находимся на этаже больших фигур и в коридоре фигур круглой формы Если необходимо дальнейшее уточнение, то выбираем пересечение строки и столбца таблицы. Это комнаты на этаже больших фигур.

Это простая и примитивная заготовка. Если придумать что-то более оригинальное, то может получиться даже ничего. Например в ячейки таблицы можно поместить изображения фигур. Представить не в виде таблицы, а как-нибудь по другому. В принципе можно использовать и возможности программирования доступные для использования на страницах. Вообщем насколько хватит фантазии и возможностей.

Январь 2007
http://www.firsthand.ru/

Настройка контактов в CMS Drupal с владельцем сайта.

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

Для владельца или владельцев сайта, особенно если это сайт организации, рано или поздно возникает необходимость узнать мнение посетителей о сайте, об услугах, о замечаниях и претензиях к работе сайта или персонала. Если сайт большой, то за работу отдельных частей или за определенное направление деятельности сайта могут отвечать совершенно разные люди, иногда даже живущие в разных городах (есть энтузиасты, да и удаленная работа в Интернет уже реальность). И для того, чтобы сообщения доходили именно до того, кому они предназначены, в CMS Drupal существует возможность создания различных форм контактов.

Форма контактов - это набор полей, которые надо заполнить или выбрать из списка какое-либо значение. После того, как поля будут заполнены, нажимают на кнопку "Отправить" и сообщение уходит к адресату.

В CMS Drupal, сообщения, предназначенные для владельцев сайта или для тех, кто следит за работой данного Интернет-ресурса, можно делить на категории. Для каждой такой категории можно назначить отдельный электронный почтовый адрес или несколько адресов. Например, сообщения, отправленные через форму для замечаний о работе сайта, отсылаются на один почтовый адрес - адрес технической поддержки, а сообщения, отправленные через форму о предложениях по улучшению работы сайта, отсылаются на адрес web-дизайнера или программиста. Если Ваш ресурс посвящен знакомствам, то могут быть созданы разные формы для отправки сообщений от мужчин и девушек. Сообщения, отправленные через эти формы, будут отсылаться разным людям. Для контроля, в этих формах, можно добавить еще один или несколько электронных почтовых адресов - общего отдела и/или администратора ресурса, к примеру.

При отправке сообщений через формы контактов, электронный адрес получателя не указывается. Письмо формируется "внутри" CMS Drupal, а Друпал уже самостоятельно рассылает сообщение по списку адресов.

Чтобы обеспечить отправку сообщений владельцам сайта, нужно подключить модуль contact. Делается это на странице > Управление > Конструкция сайта > Модули . Нужно поставить галочку перед contact и щёлкнуть по кнопке "Сохранить настройки".

После подключения и сохранения настроек, на странице > Управление > Конструкция сайта появляется новый пункт Форма контактов. При переходе по этому пункту > Управление > Конструкция сайта > Форма контактов попадаем на страницу, где и настраиваются формы контактов для связи с администрацией сайта, с владельцами сайта или с другими службами или людьми. Какой email укажете, туда сообщение и будет отправлено.

Для добавления новой формы переходим на закладку "Добавить категорию". В поле "Категория" определяется назначение формы контактов или, если точнее, даётся название форме контактов. Но так как любая форма будет предназначена для сообщений, имеющих определенное назначение - пожаловаться, похвалить, посочувствовать, предложить, то и название форме лучше давать исходя из этого назначения. Название формы "Об улучшении работы CMS Drupal на сайте" будет намного информативнее, чем название "Форма 1" или "Категория улучшения". В поле "Получатели" через запятую перечисляются все e-mail, на которые должны приходить сообщения из этой формы. Для удобства, можно перечислять адреса по строчкам, только после каждого адреса ставить запятую. При вводе нескольких адресов это добавляет наглядности и, если адресов много, уменьшает количество ошибок.

Поля "Категория" и "Получатели" являются полями обязательными. Есть ещё поле не обязательное, но полезное. Это поле "Автоматический ответ". Если Вы хотите чтобы пользователь в ответ на своё сообщение получал подтверждение получения, чтобы не думал, что отослал в никуда, без ответа и привета, в это поле можно ввести текст, который будет отослан в ответ на сообщение.

Одну из форм контактов, любую, желательно сделать формой по умолчанию. Если она у Вас одна, то её и сделайте. Нужно выбрать в поле "Выбрано" - "Да". Тогда на странице отправки сообщений http://ВАШ_САЙТ/contact в поле "Категория" не будет пустого поля (поля с чёрточками).

После нажатия на кнопку "Отправить" форма контактов будет создана и появиться в списке форм контактов.

Сообщения через форму контактов отправляются со страницы http://ВАШ_САЙТ/contact. Ссылку на эту страницу Вы можете оставлять в своих сообщениях, письмах и так далее. Чтобы к этой странице был доступ из меню навигации, нужно этот пункт меню включить. Делается это на странице > Управление > Конструкция сайта > Меню . Находим "Отправить сообщение" и напротив него щёлкаем по ссылке "Включить". Если это делается в первый раз, то откроется страница настройки данного пункта меню. Здесь можно ввести описание, определить, будет он развёрнутый или нет, и в каком разделе/пункте меню он будет показан. Можно оставить всё по умолчанию и нажать на кнопку "Отправить". Эти настройки можно изменить потом, когда будет точно известно, где бы Вам хотелось видеть пункт "Отправить сообщение".

Июнь 2007
http://www.firsthand.ru/

Настройка контактов с пользователем.

Система управления контентом или содержимым сайта CMS Drupal предназначена для большого количества страниц и большого количества посетителей. Эти посетители могут публиковать свои материалы-статьи или комментировать уже опубликованные. Они могут создавать обсуждения на форуме или участвовать в этих обсуждениях. После прочтения, возможно, кому-то захочется связаться с автором статьи, обсуждения на форуме или комментария.

Если пользователь зарегистрирован на сайте, то с ним можно связаться через форму отправки сообщения. Для этого надо произвести некоторые настройки и тогда при «щелчке мышкой» по логину пользователя Вы попадёте на страницу учетной записи пользователя, где на вкладке «Отправить сообщение» Вы это сообщение сможете написать и отправить.

К удобствам отправки сообщений через формы контактов можно отнести то, что электронный адрес получателя не указывается. Письмо формируется "внутри" CMS Drupal, а Друпал уже знает, куда его отослать.

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

Любой зарегистрированный пользователь на сайте, построенном на CMS Drupal, сам определяет возможность связаться с ним через форму контактов. Это делается на странице > Учётная запись пользователя > вкладка «Изменить» > Настройки учетной записи > в разделе Настройки контактов. Если пользователь перед «Персональная форма контактов» поставит галочку, то связаться с ним можно, если там такой галочки нет, то и отправлять сообщения этому пользователю через форму контактов не получиться, даже если у Вас имеется доступ к профилям пользователей.

Доступ к профилям пользователей определяется на странице "> Управление > Управление пользователями > Контроль доступа" . В разделе модуль user . Напротив строки «иметь доступ к профилям пользователей» нужно поставить галочки в колонках, соответствующих группам пользователей. Если галочка стоит, то этой группе (в CMS Drupal эти группы называются ролями) можно будет отправлять сообщения через форму контактов.

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

Июнь 2007
http://www.firsthand.ru/

Проблемы и решения

Для тех, кто создаёт сам себе проблемы, а затем героически их преодолевает.

В процессе экспериментов с CMS Drupal возникают различные ситуации в которых виноваты только "кривые" или "нетерпеливые" или "кривые и нетерпеливые" ручки. Обвинять CMS Drupal или выдвигать какие либо претензии к CMS Drupal нет смысла, а проблемы решать как то надо. Такие ситуации возникают периодически у меня, да наверно и у Вас тоже. Вот и решено было обьединить эти решения в одном месте. Возможно кому то это поможет решить свои проблемы или подскажет путь к решению.

НИКАКИХ ГАРАНТИЙ Я НЕ ДАЮ.
ЕСЛИ ВЫ БУДЕТЕ ПОВТОРЯТЬ, ТО ДЕЛАЕТЕ ЭТО ТОЛЬКО НА СВОЙ СТРАХ И РИСК. ПРЕТЕНЗИИ НЕ ПРИНИМАЮТСЯ.

Fatal error: Неизвестная функция в Блоке.

Хотел попробовать работу функции PHP в Блоке. То есть создаётся Блок и вставляется туда функция, которая должна вывести информацию. Функцию я вставил, да видно где-то ошибся в написании. После нажатия на кнопочку "Обновить" на панели Internet Explorer получил на фоне чистого экрана вот такую надпись

Fatal error: Call to undefined function: module_exist() in z:\home\firsthand5.ru\www\includes\common.inc(1342) : eval()'d code on line 2

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

Делать нечего, терять теперь уже тем более. Либо найти способ как-то исправить, либо придётся всё восстанавливать заново, что естественно не очень то хотелось.

Так как это началось после экспериментов с Блоком, то и искать надо испорченный Блок.

Все данные CMS Drupal хранятся в базе данных MySQL. База данных MySQL представляет набор таблиц, связанных между собой определённым способом и по определённым правилам. Запустив "phpMyAdmin - администрирование СУБД MySQL" и выбрав испорченную базу, вижу две таблицы, которые как-то можно связать с Блоком (bloсk) - это blocks и blocks_roles. Что-бы всё окончательно не испортить я сохраняю эти таблицы при помощи режима Экспорт и возвращаюсь опять к Структуре .

Выделяю таблицу blocks и выбираю Действие - Обзор . Появляется таблица где первая строка содержит наименования полей таблицы, остальные строки содержат данные.

Меня заинтересовали столбцы module, status, region и title. Судя по содержанию в столбце module хранятся данные о модуле, который создал блок, в столбце status хранятся данные о том включен блок или нет (то есть будет он отображаться или не будет), region - в каком месте показать и title - заголовок блока.

По содержанию в этих столбцах я вычислил тот блок, в котором находиться плохая функция, но самого текста нет. То есть нельзя исправить написание функции. Но зато, если блок отключить, не выводить, то и функция не должна работать. Для этого выделяю строку с нужным блоком и нажимаю на Правка (карандашик), для поля status меняю значение с 1 в 0 и нажимаю на кнопку Пошёл. Всё блок должен быть отключен и можно попробовать.

Обновляю страницу сайта и она появилась. Надпись Fatal error: Call to undefined function: module_exist() in z:\home\firsthand5.ru\www\includes\common.inc(1342) : eval()'d code on line 2 изчезла. Перехожу в настройки Блоков и исправляю функцию.

Всё работает.

Январь 2007
http://www.firsthand.ru/

Советы по настройке для экспериментов. Часть 1.

После того как система управления содержимым сайта Drupal установлена на компьютере, проведена русификация и на экране можно видеть приветственную надпись "Добро пожаловать на ваш новый сайт на Drupal !" возникает вполне закономерный вопрос: "А дальше то что?". Начинается щёлканье по ссылкам в меню навигации и изучение надписей и подсказок. Чтобы как-то помочь в дальнейшем освоении CMS Drupal и уменьшить количество не нужных переходов по ссылкам хочу поделиться собственным опытом в начальных настройках Drupal для того чтобы можно было экспериментировать с этой системой управления сайтом или, если быть более точными, платформой управления содержимым (CMP - content management platform ).

На первой же странице под надписью "Добро пожаловать на ваш новый сайт на Drupal!" первым пунктом стоит "Настройка вашего сайта" и начать лучше действительно с него. Поэтому щёлкаем по ссылке "провести настройку и конфигурацию" и переходим на страницу "Настройка сайта".

Как будет отображаться время и дата на Вашем экспериментальном сайте, значения большого не имеет, да и поменять способ отображения можно в любое время. А вот с вводом информации о сайте пренебрегать не стоит.

Вообще для экспериментов желательно придумать какую-нибудь тему, которой будет посвящён Ваш экспериментальный сайт. Лучше, чтобы эта тема сайта была не связана с Вашей желаемой. Просто чем дальше тематика сайта для экспериментов отличается от желаемой, тем Вам легче будет с ней экспериментировать - менять, удалять, добавлять и всё что угодно. Если же Вы будете придерживаться желаемой тематики, то при получении положительных результатов Вам будет немного труднее заниматься экспериментами по настройке - жалко будет испортить. А ещё лучше установите сразу два Друпала - один для экспериментов, другой для Вашей желаемой, настоящей темы. Когда найдете что-то полезное при исследовании, то сможете тут же повторить на желаемом сайте.

Придумывать тему для сайта желательно и потому, что Drupal - это система и как каждая система должна быть настроена для достижения какой либо цели. Если есть цель - легче придумывать всё остальное, например назначение или миссию. Допустим Вас интересует тема "Отроков во вселенной", но не хватает информации и целью создания сайта тогда будет - "Получение свежей и новой информации об отроках во вселенной". Назначением или миссией сайта в таком случае будет "Сбор и сортировка данных, поиск единомышленников и возможных свидетелей, обмен информацией, обсуждения и так далее". Если известна цель и назначение (миссия) сайта, то названия для сайта (имя сайта) обычно приходят в голову сами собой, остаётся только выбрать наиболее приемлемое.

Не оставляйте пустыми поля предназначенные для заполнения. Если поле пустое, то возможно не сформируется какая-нибудь переменная в CMS Drupal, и Вы не узнаете и не увидите результат, который может Вам пригодиться или наоборот поможет избежать в будущем проблем. Например, в разных темах может отображаться или не отображаться Слоган сайта. Если Вы его ввели, то Вы это увидите, а если нет, то на нет и суда нет.

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

Слоган сайта добавляется в Title главной (первой) страницы и это можно использовать для раскрутки сайта. Увидеть это можно, если посмотреть код HTML первой страницы. В Internet Explorer достаточно щёлкнуть на первой странице правой кнопкой мыши и выбрать, в появившемся меню, пункт "Просмотр HTML-кода". В первых строчках, сразу после <head>, между тегами <title> и </title> увидите название Вашего сайта и Слоган: <title> Это имя сайта на Drupal - Настройка сайта | Это слоган - Настройка сайта </title>. Если бы оставить поле слогана пустым, то об этом можно было бы и не узнать.

Следующим пунктом, который надо бы настроить - это "Файловая система". Здесь нужно определиться, как будут называться папки хранения файлов и метод доступа к этим файлам. Эти настройки нежелательно менять в дальнейшем, поэтому сразу надо определиться - где и как будут храниться файлы.

Форматы ввода можно пока не трогать, единственно что здесь надо учитывать и не забывать, что форматы ввода называются так потому что CMS ( CMP ) Drupal вводит данные не только из форм ввода на страницах браузеров, но и из базы данных, где и храниться вся информация. Для Drupal база данных MySQL является внешним источником и поэтому Drupal вводит информацию из базы данных и форматирует её согласно определённым правилам. То есть использует форматы ввода.

Чистые ссылки лучше поставить во "Включено". Легче отслеживать адреса страниц.

Советы по настройке для экспериментов. Часть 2.

Функциональность сайта определяется модулями, которые "подключены" в данный момент работы сайта. Каждый модуль отвечает за выполнение какой-либо функции или набора функций. Подключаются и отключаются они на странице " > Управление > Конструкция сайта > Модули ". Для того чтобы подключить - надо поставить галочку напротив названия модуля в таблице, чтобы отключить - убрать галочку.

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

Самым "тяжёлым" для понимания в CMS Drupal является таксономия. Но, разобравшись, понимаешь, насколько удобно сделана организация классификации информации в CMS (CMP) Drupal. До CMS Drupal я пробовал освоить CMS PostNuke. Когда в CMS PostNuke мне захотелось перенести странички с информацией в другую категорию (сменить принадлежность к теме, было например "WEB - разработка", а захотелось перенести во вновь созданную "WEB - раскрутка"), то выяснилось, что нужно заново создавать страницу с этой информацией в "WEB - раскрутка", а затем удалить её в "WEB - разработка". Для начинающего осваивать создание сайтов, когда ещё не знаешь, как будет выглядеть твой сайт и как будет поделена информация по темам, какие вообще темы будут, и как они будут называться, это большая проблема. Казалось бы, ничего сложного - создал, скопировал, сохранил, но в результате этих действий меняется адрес страницы с информацией. Если есть ссылки на эту страницу, то они станут "мёртвыми". Нужно будет их все отыскивать и исправлять. Хорошо, если ссылки только внутри сайта, а если на эту страницу стоят ссылки с других сайтов? При переходе по такой ссылке посетителю будет представлено совсем не то, что он ожидает, хотя нужная информация есть, но в другом месте. Возможно сейчас дело в CMS PostNuke обстоит по другому, но тогда это было одной из самых основных причин, почему я отказался от CMS PostNuke.

В CMS Drupal организация системы классификации (таксономия) ОТДЕЛЕНА от места хранения информации. Для того чтобы разбираться в том, как работает эта таксономия можно дополнительно к модулям, подключенным по умолчанию, добавить Blog - дневник и Book - книга или подшивка. Еще можно подключить модуль Tracker. Пока нет системы навигации, модуль Tracker поможет передвижению по сайту. Всё остальное пока можно не подключать. Модули Aggregator, Blog API, Drupal, Ping, Throttle есть смысл подключать тогда, когда Ваш сайт будет выложен в Интернет, и будет работать уже в Интернете. Локально, на компьютере, смысла в подключении этих модулей, скорее всего нет, чем есть.

После подключения любого модуля ОБЯЗАТЕЛЬНО посетите страницу с правами доступа. Вам как администратору доступны все функции CMS Drupal и казалось бы, что там делать нечего, но привычка заглядывать на страницу прав доступа после внесения изменений где-либо на сайте, сохранит Вам в будущем немало времени и, возможно, нервов. Со временем Вы будете точно знать, когда нужно заглянуть на эту страницу. В первое же время рекомендую заглядывать туда сразу, как только что-то пойдёт не так, как ожидалось, особенно если это касается пользователей с разными правами. Возможно, просто не установлены соответствующие права доступа.

После подключения модулей, лучше перейти к настройке и созданию системы классификации (таксономии). Экспериментировать с разными темами оформления, блоками, отображением страниц интереснее, когда есть какой-либо материал и этот материал разложен по категориям (словарям и терминам). Здесь не обязательно придумывать всё самому, метод "копировать и вставить" вполне подойдет.

Словари и термины добавляются на странице " > Управление > Управление содержанием > Категории > Добавить словарь". Названия словарям можно давать ориентируясь на тему сайта, а можно и что-нибудь абстрактное, например, Словарь1, Словарь2, Словарь3 и так далее. Все словари должны соответствовать определённому типу материалов. Для экспериментов, на первое время, можно выбрать какие-нибудь два типа. Пусть это будет Page и Story. Почему три словаря и два типа? Просто имея три словаря появляется больше возможности для экспериментов, а имея два типа материалов этих возможностей становиться ещё больше.

Допустим, продолжая тему "Отроков во вселенной", нам надо создать систему классификации обитаемых планет в двух системах - Тау-Кита и Андромеды. Планеты в этих двух системах отличаются по признакам, и объединять эти признаки в одну систему классификации нет желания и смысла. Эти признаки уникальны для каждой системы и не встречаются больше нигде. И ещё надо создать общую систему классификации планет. Скажем по пригодности жизни человека. Поэтому Словарь1 "отдаём" Андромеде, Словарь2 – это Тау-Кита, Словарь3 - Возможность жить.

Теперь при добавлении материалов о планете Вам нужно будет сделать выбор соответствующих терминов из этих трёх словарей. Если в свойствах словаря включено, что каждый материал обязан иметь как минимум один термин в этом словаре (галочка напротив "Обязательно"), то в словари о системах лучше добавить термины "Не из Тау-Кита" в словарь "Тау-Кита" и "Не из Андромеды" в словарь "Андромеда".

Или можно за словарем "Тау-Кита" закрепить тип материала "Page", а за словарем "Андромеда" - "Story". Тогда материалы о планетах из Андромеды не будут вообще пересекаться с материалами о планетах из Тау-Кита. Только через общую классификацию о пригодности к жизни.

В CMS Drupal 5 есть возможность добавления своих типов материалов. По своей структуре они не будут отличаться от таких типов как Page и Story. Эти типы создаются на странице › Управление › Управление содержанием > Типы материалов закладка Добавить тип содержимого и могут немного облегчить создание сложных систем классификации.

Если трудно придумывать системы классификации на отвлечённые темы, можно классифицировать предметы в комнате, где Вы сидите. Здесь просто нужно начать делать. В процессе создания классификаций (использования таксономии) некоторые вопросы и непонятные моменты сами собой разрешатся.

После создания системы классификации, хорошо бы добавить по страничке с материалом в каждую категорию, то есть в каждый термин всех существующих словарей. В заголовке страниц можно указывать тип материала и местонахождение данной странички в системе классификации. Например такой заголовок "Page - Словарь1 - Термин1" означает что эта страничка типа Page, которая находиться в Словаре 1 и Термине1 Словаря1 или что-то в этом роде. Организация классификации в CMS Drupal создана так, что копирование материала или его перемещение из категории в категорию реализуется при помощи указателей. Сама страница с информацией существует в единственном экземпляре, а в категории помещаются указатели на эту страничку. Когда Вы будете проводить эксперименты с "копированием" и "перемещением" страниц, информация в заголовке поможет определить, куда эта страница была помещена первоначально, что тоже может помочь в понимании работы таксономии в CMS Drupal.

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

Советы по настройке для экспериментов. Часть 3.

Доступ к содержимому и функциям в CMS Drupal для каждого пользователя определяются теми правами, которые он имеет на данном сайте. Существует перечень всего того что можно делать - это перечень прав " > Управление > Управление пользователями > Контроль доступа" . Из этого перечня создаются группы (роли) и каждого пользователя определяют в ту или иную группу. В CMS Drupal такие группы называются "Роли". Здесь наверно лучшей аналогии чем с миром исскуства не провести. Представьте что идет съёмка какого-то фильма и все кто учавствует в этой съёмке играют какую-то роль. Кто-то участвует в массовке и играет роль простых граждан - им можно ходить туда-сюда, смотреть по сторонам. Другая группа актеров, их меньше, играет роль возмущённых граждан - тем можно вдобавок ещё бегать, размахивать руками и кричать, часть актёров играет роль блюстителей порядка и чинно стоят и наблюдают что-бы соблюдался закон, а если он не соблюдается, то наказывать провинившихся. Роли в фильме определяют действия актёров. В CMS Drupal роли определяют действия пользователей.

После установки CMS Drupal для всех пользователей доступны только две роли anonymous user (не зарегистрированные пользователи) и authenticated user (зарегистрированные пользователи). Пользователь номер один имеет все права и его в расчёт не берём. Те, кто выступает в роли не зарегистрированных пользователей могут просматривать материалы сайта. Те, кто выступает в роли зарегистрированных пользователей могут просматривать материалы сайта и комментарии к материалам, также ещё могут эти комментарии и создавать (размещать на сайте).

Для изучения работы прав доступа желательно добавить на странице "> Управление > Управление пользователями > Роли" ещё две роли - admins (администраторы) и avtors (авторы). Названия могут быть другими. Роль admins имеет все права, которые доступны на сайте или почти все. Все права оставим первому и главному пользователю, а для роли admins на странице "> Управление > Управление пользователями > Контроль доступа" поставим галочки везде, кроме "администрировать пользователей" модуля "user". Роль avtors имеет права большие чем просто зарегистрированный пользователь и меньшие чем роль admins - тут выбор за Вами, но из смысла названия роли разрешим всем, кто будет выступать в этой роли, всё что находиться в модуле node. Поставим галочки везде в разделе модуль node.

Регистрируем по пользователю в каждую группу-роль. Например, User - играет роль зарегистрированного пользователя (authenticated user), которому разрешено просматривать материалы сайта и размешать свои комментарии к этим материалам. Admin - играет роль администратора (admins) с максимальными правами - ему разрешено почти всё. Avtor - играет роль автора (avtors), имеющий права большие, по сравнению с User, но меньшие по сравнению с Admin.

Добавить пользователя и определить какую он будет играть роль на сайте можно на странице "> Управление > Управление пользователями > Пользователи" , закладка "Добавить пользователя". Какая роль отводиться данному пользователю на сайте и, соответственно, что ему разрешено делать определяется галочками в разделе "Роли:". Для пользователя Admin ставим галочку напротив admins, для пользователя Avtor ставим галочку напротив avtors, а для User ничего не ставим, так как роль authenticated user здесь отсутствует. Можем сразу сделать вывод, что как только пользователь зарегистрировался на сайте, он сразу выступает в роли зарегистрированного пользователя и получает все его права, которые у него нельзя отнять в составе других ролей. Чтобы убедиться в этом, для роли avtors снимем все галочки, сохраним настройки и войдем на сайт под именем Avtor. Мы увидим, что Avtor может делать тоже, что и простой зарегистрированный пользователь, даже если у него нет ни одной галочки.

В процессе изучения прав доступа, чтобы посмотреть, что получилось после установки галочки для какой-либо роли, приходиться постоянно выходить и входить на сайт под разными именами. Это не удобно, занимает много времени и отбивает охоту лишний раз посмотреть на результат. Чтобы уменьшить количество этих телодвижений и для удобства сравнения можно использовать различные браузеры для разных пользователей. Можно дополнительно установить Mozilla Firefox и Opera. Тогда вместе с Internet Explorer у Вас будет три браузера, что даст удобное средство для изучения и сравнения работы прав доступа для различных пользователей.

Например, через Explorer Вы входите на сайт как Admin, через Firefox входите на сайт как Avtor, ну а Opera используется для User. Теперь права доступа (роли) Вы определяете как администратор в Explorer, а что изменилось после этого, Вы смотрите в Опере или Фаерфоксе. Чтобы сравнить права разных пользователей, достаточно открыть одну и туже страницу в разных браузерах. А чтобы посмотреть, что изменилось при изменении роли, иногда достаточно нажать кнопочку "Обновить" на панели браузера.

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

Что-то с кэшем и удачная попытка исправления

Заглянул на сайт и на мгновенье замер. Сайт принял вид по умолчанию в голубых тонах и во весь экран монитора много красных надписей:

user warning: Table 'cache' is marked as crashed and should be repaired query: DELETE FROM cache WHERE cid = 'variables'

Судя по надписи, проблемы возникли в таблице 'cache' базы данных MySQL.

Сейчас, там где предоставляют возможность пользоваться базами данных, предоставляют и инструмент по управлению этими базами. Обычно для MySQL это phpMyAdmin. Поэтому прежде чем подходить радикально к решению проблем, лучше попробовать phpMyAdmin.
Для этого нужно войти в панель управления phpMyAdmin, выбрать необходимую базу данных, если у Вас несколько, и перейти на вкладку 'Структура'.

В перечне таблиц на вкладке 'Структура' напротив таблицы cache и нескольких других были записи 'Используется'.

В конце перечня с таблицами базы данных есть строчка

Отметить все / Снять отметку со всех / Отметить требующие оптимизации

Я выбрал Отметить всё и чуть ниже, из списка, Проверить таблицу.

phpMyAdmin выдал название первой испорченной таблицы. Напротив неё была надпись Используется. Поэтому я снова перешел на вкладку 'Структура' и поставил галочки напротив всех таблиц с надписями 'Используется'. Затем выбрал из списка - Починить таблицу.
Дождавшись результата, снова запустил на 'Проверить таблицу'. Была выдана ещё одна испорченная таблица, которая была также починена.
После этого сайт заработал, и пока вроде нормально.