[Решение] Простой способ вынести термин таксономии в title материала

1. Устанавливаем Automatic Entity Label
2. Переходим в нужный тип материала, создаем текстовое поле Заголовок (или как вам удобнее).
3. Там же, в управлении полями, переходим во вкладку AUTO LABEL и выбираем Automatically generate the label and hide the label field.
4. В шаблоне для заголовка прописываем [node:field_kategoriya] [node:field_zagolovok], где field_kategoriya – это поле с выбором термина таксономии, field_zagolovok – это созданное Вами поле Заголовок.
В итоге пользователь при создании материала вводит текст в созданное Вами поле Заголовок, выбирает термин таксономии и после получается обычный title, но уже вместе с термином таксономии.

Источник: http://www.drupal.ru/node/115781

Почему мой сайт так много стоит?

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

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

Для начала примем ряд аксиом, это необходимо нам для полной картины.
1. “Цели – Задачи” – ставит заказчик основываясь на том или ином опыте.
2. “Время – деньги” определяем мы – исполнители, это наши временные затраты определяющие конечную стоимость выпускаемого нами продукта. Для упрощения расчетов будем считать что все расходы (а оно почти всегда так и есть) включены в конечную стоимость часа работы программиста.
3. “Законченность проекта” – определяется заказчиком на основании удовлетворенности клиента. Т.е. проект можно считать законченным в том случае, когда заказчик удовлетворен тем что у него есть в настоящий момент времени (согласно технического задания).

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

Т1-Ф1 или “а что тут делать”

Сначала официально. Т1-Ф1 это базовый функционал друпала + простая темизация либо настройка базовой или бесплатной темы стоимость такого продукта в принципе равна времени затраченного на разворачивание сайта из коробки и настройку темы.
Подробно:
- БТД (базовая тема друпала) + СФ(стандартный функционал из коробки): условно бесплатно
Цена: “дешево до безобразия” обычно от “бесплатно” и до “кто за сколько продаст”.

К примеру студия берет за 1 час работы программиста 20$, значит, если идти по накатанной схеме установки и базовой настройке друпала (разворачивание сборки, или просто движок + модули) примерно 1 час, то можно выдвигать слоган 20$ за сайт и вперед (в дальнейшем все денежные эквиваленты будут браться из расчета 20$ час), но ….
Вы должны как исполнитель сразу объявить заказчику что он получает в конечном итоге за эти деньги и время, в противном случае мы станем свидетелями следующей ситуации:

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

В качестве примера.
Многие из нас очень часто встречались с задачей “регистрация пользователей на сайте” – казалось бы куда проще = стандартный функционал друпала, что тут обсуждать или пережевывать, но смотрите как одна фраза в ТЗ или просто банальная хотелка – “как там” превращает вполне тривиальную задачу в “головняк” для разработчика:
“По нажатию на клавишу “восстановить пароль” пользователю должно приходить письмо в котором указан его текущий логин в системе и пароль указанный при регистрации, никаких одноразовых ссылок”.
Получается что вполне стандартное с точки зрения заказчика требование (пусть оно и противоречит требованиям безопасности о хранении паролей в явном виде, сейчас мы не об этом) перерастает для нас в дополнительную работу. Написать модуль, который будет перехватывать задаваемый пользователем или генерируемый системой при регистрации пароль, записывать его в отдельную таблицу БД из которой мы по запросу сможем отправлять нашим пользователям забытые пароли.

Вывод: мелочь из примера увеличивает стоимость разработки минимум на 2-3 часа и либо вы это делаете бесплатно угоду клиенту т.е. из 20$ в 80$ и дарите клиенту 60$, либо пытаетесь объяснить что стандартно это не было предусмотрено движком (клиента чаще всего не интересует, что там предусмотрел Дрис и его коллеги а что нет).
В конечном итоге в 90% случаев клиент с недовольной миной отзывается о вас “вот пообещал все сделать за час а в итоге ничего не сделал, функционал не готов, сайт не работает”.

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

Поэтому для сайтов выходящих на первый этап Т1-Ф1 используются типовые решения с фиксированным ТЗ и зачастую фиксированной стоимостью. Заказчик должен явно понимать что за свои кровные N долларов он получит вот такое чудо света и никак ни больше и ни меньше. Так же заказчик должен изначально знать и быть готовым к тому что любые его “хочу” сверх ТЗ должны просчитываться и оплачиваться отдельно и они переводят продукт в следующую итерацию.

Т2-Ф2 или “а что тут делать – 2”
Сначала официально. Т2-Ф2 это + дизайн с последующим созданием темы + небольшие отдельные хотелки и финтифлюшки реализуемые на этапе темизации, либо написанием мелких кастомных модулей.

Подробно:
- дизайн (400$ 20часов) может быть заменен дизайном заказчика, тогда бесплатно;
- создание темы (до 40 часов 800$, возьмем половину)
- стоимость отдельного функционала (хотелки) в зависимости от задач и почасового рейта компании.
Итого: итого в среднем по стране без хотелок мы из 1 часа превращаемся в 1 недельную работу (40 часов) и стоимостью в среднем в 800$ без учета хотелок.

В качестве примера.
“а что тут делать -2” – во избежании очередных недопониманий о том “что тут делать”
Банальное слайдшоу из 2-100 картинок на главной странице между меню и основным контентом такое “каждый школьнег умеет делать”, но посмотрим на ожидания заказчика:
- он в 100% подразумевает, что картинки можно было удалять и добавлять из админки.
- он в 95% подразумевает, что можно добавить текст если захочешь и он выведется не ломая верстку
- он в 90% подразумевает, что можно из админки регулировать скорость смены слайдов стили смены слайдов или включать – отключать автоматическую прокрутку
- он в 85% подразумевает, что всем этим умеет управлять блондинка-секретарша а не программист.
Список хотелок в слайдшоу можно попытаться продолжать и дальше, но я не буду этого делать.

Итак 4 хочу, которые заказчик ожидает увидеть но нигде об этом явно не говорится превращают 30-40 минутную задачу в работу на целый день. Ведь если мы банально зальем картинки по фтп или в какой-то статик пейдж и на шаблоне добавим свои js и css результат внешне не будет отличаться от сложного функционала реализованного за 8 часов, но если человек захочет что-то поменять в слайдшоу и не сможет то в 99% задача будет считаться не выполненной, функционал с точки зрения заказчика не сделан.

Т3-Ф3 или “ну а тут то что сложного”
Сначала официально. Т3-Ф3 это два предыдущих этапа + реализация не видимого простому глазу функционала требующего написания одного или нескольких модулей реализующих достаточно сложный функционал к примеру расчет стоимости доставки в зависимости от веса, габаритов товара, региона, способа доставки, учета общей стоимости заказа и т.д. начисления процентов менеджеру через которого сделан заказ или по чьей ссылке человек пришел на сайт в общем любую сложную задачу которую вы можете себе представить

Здесь не будет подразделов “подробно”, “цена” и т.д. поскольку в таких частных случаях конечная стоимость формируется только по оценочной стоимости задач специфичных только для этого проекта. Если кастомный функционал оценен разработчиками в 100 часов то и стоимость проекта будет к примеру 2820$ если присутствуют все этапы, может быть вариант и без дизайна и мелких “свистелок”, тогда стоимость составит 2020$

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

Увидит:
- галочку на форме редактирования товара;
- результат вашей работы при включении свойства товара.

Не увидит:
- таблицу в БД которая появится при создании поля типа select (checkbox);
- изменение вьюхи (добавить поле нового товара), вьюх или дисплеев отображения может быть несколько
- перекрытие шаблона вьюхи (добавить дивку с классом для row);
- вырезать или сохранить картинку из PSD (хуже если нарисовать)
- поправить css файлик темы чтоб выводилась картинка;
- проверить корректность отображения в поддерживаемых браузерах.

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

Итак задача в ТЗ повесить ленточку (примерная оценка):
- добавить филд – 10 минут;
- добавить филд на вьюху – 10 минут на каждую если их больше одной или больше одного дисплея;
- перекрытие шаблона вьюхи – в зависимости от архитектуры – от 15 минут;
- картинка – от 10 мин;
- сss – 10 мин;
- тест – 15 мин;
ИТОГО: в идеальных условиях 1час 10мин т.е. ~23$ за какую-то ленточку
А если что-то не так сделал (все люди) и надо исправить проблему?

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

P.S.
Так сколько же должен стоить сайт на самом деле? Ответ на этот вопрос мы можем дать только в конце создания продукта, так же как и нет ответа на вопрос “сколько стоит дом нарисованный на схеме”?
Мы можем говорить о конечной стоимости только по завершению какого либо этапа работ.
Спасибо

Вложение Размер graph1.png 39.73 КБ

Источник: http://www.drupal.ru/node/96842

Спецвыпуск журнала Linux Journal о Друпале

Linux Journal’s Special Drupal Issue brought to you by NewRelic
http://www.linuxjournal.com/content/drupal-special-edition
На английском, есть что почитать

Установка с нуля, создание тем, начала программирования, обзор сборок и т.д.

Кстати, сайт журнала на друпале.

Ссылки на прямое скачивание сознательно не размещаю, дабы не провоцировать сам журнал – не зря же они их “скрыли”. Кто ищет – тот найдёт.

Источник: http://www.drupal.ru/node/88806

[Решено][Ссылка] Настройка резервного копирования: Amazon S3 и Drupal

Привет!

По мотивам обсуждения вот тут, я решила написать как легко и просто можно настроить резервное копирование на облака Амазон С3.

Пошаговый гид на моем блоге

Источник: http://www.drupal.ru/node/88733

Изменить ( любой ) или ( все ) в select.

Допустим Вам надо изменить ( любой ) или ( все ) не на всем сайте, а только в одном месте.
Всё очень просто.
В Вашей теме создаете файл template.php

<?php
function phptemplate_select($element){
    // Выбираем нужный нам select
    if( $element['#name'] == 'field_sanuzel_value_many_to_one')
        // меняем All option в select
        $element['#options']['All'] = 'Неважно';
    // для примера меняем Any
    $element['#options']['Any'] = 'Неважно';
    dpm( $element );
    // отправляем измененный select дальше на рендринг
    return theme_select($element);
}
?>

Допустим Вам надо изменить ( любой ) или ( все ) не на всем сайте, а только в одном месте.
Всё очень просто.
В Вашей теме создаете файл template.php

<?php
function phptemplate_select($element){
    // Выбираем нужный нам select
    if( $element['#name'] == 'field_sanuzel_value_many_to_one')
        // меняем All option в select
        $element['#options']['All'] = 'Неважно';
    // для примера меняем Any
    $element['#options']['Any'] = 'Неважно';
    dpm( $element );
    // отправляем измененный select дальше на рендринг
    return theme_select($element);
}
?>

Не забудьте правильно изменить условия (if) и оставить либо измененный All или Any.
P.S. если что-то не получается используйте Devel

<?php
function phptemplate_select($element){
    dpm( $element );
    return theme_select($element);
}
}
?>

Источник: http://www.drupal.ru/node/88049

Алматы Друпал-кафе 5

Привет, друпаллерам в Алматы,

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

Темы, которые будут подниматься на встрече:
1. Работа с Git – ведет Виктор ‘Frio’
2. Субдомены с модулем Domain Access – ведет Арман Зил

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

Детали встречи здесь.

Источник: http://www.drupal.ru/node/86446

Алматы Друпал-кафе 3

Привет, алматинские друпаллеры!

Собираемся уже в третий раз на Друпал-кафе : )
Теперь будем обсуждать:
1. Друпал SEO – ведет Айрат “dakanca”
2. И продолжим спринт-код – ведет Виктор “frio”

Встреча будет 5-го августа в 16:00.
Место здесь. Детали здесь.

До встречи!

ПС. Сорри, что так объявляю всего за пару дней… были сложности с местом проведения.

Источник: http://www.drupal.ru/node/85513

Первое ‘Drupal-cafe’ в Алматы! : )

Поскольку на Друпал.ру тусуется немало друпаллеров из Казахстана, думаю, это объявление будет уместным и здесь

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

Формат встречи не официальный.
Дата и время: 07/07/2012 – 16:00.
Место: ресторан “Дастархан” на Наурызбай Батыра 122/124 (угол Шевченко), г. Алматы.

Детали здесь.

Источник: http://www.drupal.ru/node/83906

Видео-курс по Представлениям (Views)

Недавно закончил очередной видео-курс для начинающих друпаллеров, в этот раз – по модулю Представления (Views).
Добро пожаловать, как говорится: http://podrupalim.com/kursy ))

Источник: http://www.drupal.ru/node/83872

[Коллективный заказ] Перевод видео

Поднимаем тему перевода англоязычных видеоуроков/подкастов.

Есть предложение заняться переводом видео от тех же лулаботов в виде коллективного заказа.
Как это выглядит:
Формируем список по пожеланиям трудящихся.
Сколько трудящиеся готовы пожертвовать за перевод видоса, суммы порядка $5-$8 в зависимости от количества участников.
По прошествиии какого-то времени выбираем видео фаворит и переводчик переводит, чтобы не повторять ошибок переводчиков книги Ивана Рыбакова Вандюка – переводчик будет работать в паре с друпалером. И переводчики и друпалеры у меня имеются.

Сейчас отправлено письмо лулаботам, не будут ли они против если мы будем переводить их видео.

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

От уважаемого all требуется показать пальцем на самые интересные с их точки зрения видео, скиньте каждый по 3-4 видео к примеру.
P.S. Если вы хотите быть спонсором, разместить в видео свою рекламу – всегда велком.

Список сайтов с видео:
drupalize.me

Список видео:
Drupal Commerce Basics предложил Softovick
Drupal as a mobile application platform предложил xman0011
Developing Mobile Apps Using Drupal as a Base System предложил xman0011

Introduction to Drupal Features module предложил galactik
Drupal Performance & Scalability Series предложил galactik
Module Development for Drupal 7 предложил galactik

Attached poll “Я хочу видеть переведённым видео”.
Register or login to poll
Results:
Drupal Commerce Basics: 20 голосов
Никакое, я люблю дом2: 8 голосов
Drupal as a mobile application platform: 3 голоса
Developing Mobile Apps Using Drupal as a Base System: 2 голоса
Introduction to Drupal Features module: 3 голоса
Drupal Performance &amp;amp; Scalability Series: 0 голосов
Module Development for Drupal 7: 4 голоса

Источник: http://www.drupal.ru/node/83853

Руководство пользователя по работе в админке drupal 7


Здравствуйте, уважаемое сообщество.
Нами подготовлено Руководство пользователя по работе в админке drupal 7, мануал в виде серии уроков именно для владельца сайта, которому нужно овладеть приемами управления его сайтом на седьмой версии drupal.
Надеемся оно будет полезно и будущим и теперешним владельцам сайтов на данной отличной CMS а также веб-мастерам, которые заинтересованы в том, чтобы их клиенты научились самостоятельно решать тривиальные админские задачи.

Источник: http://www.drupal.ru/node/82391

Содержимое ноды в окне Colorbox


Не знаю было ли такое решение или нет, по крайней мере я не нашел.

Раскуривал эту тему очень давно. Решений на форуме приведено уйма, но не все по моему удачные (требуют лесть в код или создавать отдельные шаблоны). В общем есть “правильное” решение которое думаю и предлагал девелопер.

После установки Колорбокса лезем в его настройки и включаем опцию “Enable Colorbox inline” (а Enable Colorbox load поможет вам с разными формами)

После чего создаем ноду\блок и в его теле пишем такой код

<a class="colorbox-inline" href="?width=500&amp;height=500&amp;inline=true#myid">link</a> <div style="display: none;"><div id="myid"><?php print render (node_view(node_load(19)), FALSE, TRUE);?></div></div>

Где, width=500 – высота окна, height=500 – ширина окна, link – отображаемая ссылка на окно, myid – название вашего дива, 19 – ID ноды содержимое которой хотим вывести в окно.
Сохраняем в формате PHP code и радуемся)))

Источник: http://www.drupal.ru/node/68873

Лишний пейджер в D7

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

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

По этому идем в настройки пейджера этой самой вьюхи и в поле “Pager ID” ставим, допустим, единичку вместо нолика, или двоечку, в зависимости от количества используемых пейджеров на странице.
Там же можно прочитать описание ин инглиш:
Unless you’re experiencing problems with pagers related to this view, you should leave this at 0. If using multiple pagers on one page you may need to set this number to a higher value so as not to conflict within the ?page= array. Large values will add a lot of commas to your URLs, so avoid if possible.

Источник: http://www.drupal.ru/node/65047

Видео уроки по Drupal

Доброго времени суток. Хочу представить наши видео уроки по Drupal 6, которые точно будут полезны начинающим
Ничего военного в них нет, но снималось с “душой” и стремлением перетянуть людей с других CMSок, в первую очередь с Joomla.

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

Источник: http://www.drupal.ru/node/59507

PDF-версия руководства по быстрому старту в Drupal


Отверстал PDF-версию руководства.
https://s3.amazonaws.com/DrupalGuide/DrupalGuide.pdf
Выложил на амазон, чтобы всегда был доступен.
В документе оглавление, букмарки, все ссылки оригинала.
Критика, пожелания, поправки приветствуются.
Хабралюди могут поддержать.

Источник: http://www.drupal.ru/node/49571

Начинаем работать с Drupal: полное практическое руководство

На прошлой неделе RxB выложил ссылку на руководство по первым шагам в Drupal, найденное одним его очень скромным камрадом. Руководство оказалось весьма толковое, помимо установки Друпала и базовых знаний, в нем были даны советы и практические примеры по работе с CCK и Views, что для начинающих – немаловажно. В общем, возникла идея руководство перевести на русский язык и поделиться с общественностью.

Итак, перед вами перевод статьи Саада Басси “Getting Started with Drupal: A Comprehensive Hands-On Guide“.

Перевод был подготовлен сборной командой пользователей Drupal.ru в составе: Ch, graker, iHappy, kyky, mak-vardugin, P.Selfin, trubinovskaya, vgoodvin.

А вот kyky сделал отличную PDF-версию: скачать (3.7 МБ).

Начинаем работать с Drupal: полное практическое руководство

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

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

Готовы? Погружаемся в исключительно мощную систему управления контентом!

Задачи

По прочтении данного руководства вы:

узнаете о достоинствах и недостатках Друпала; установите Друпал; поймете принцип его работы; узнаете о модулях Друпала; научитесь работать со страницами администрирования; создадите и опубликуете содержимое сайта; настроите свой тип содержимого с помощью CCK; научитесь создавать представления для вывода содержимого с помощью модуля Views; создадите представления со страничным отображением; создадите представления с блочным отображением; узнаете о темах оформления. Что мы сделаем

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

Почему именно Drupal?

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

Достоинства

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

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

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

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

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

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

Достойная встроенная поисковая система. В отличие от других CMS, в Друпале есть очень неплохая система поиска, реализованная на уровне ядра. Конечно, она не может конкурировать с такими поисковыми сервисами как Google Search, или Yahoo! Search BOSS, но тем не менее вполне пригодна для работы.

Недостатки

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

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

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

Drupal против WordPress

Где бы ни обсуждали Друпал, всегда возникает непреодолимое желание сравнить его с другой ведущей открытой веб-платформой; как правило, это WordPress.

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

Иными словами, если вы делаете серьезный ресурс с регистрацией, аутентификацией, набором разрешений и ролей, нaпример, Интернет- мaгaзин, форум или сaйт с видео и аудио-материалами, которые добавляют сами пользователи, имеет смысл использовать более серьезную CMS, чем WordPress.

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

Другой важный аргумент против использования Друпала — интерфейс, в котором непросто разобраться неопытным пользователям. Это веский аргумент в пользу WordPress.

Сайты, работающие на Drupal

Чтобы вас воодушевить, перечислю несколько сайтов на Друпале.

Mozilla
Мозилла, компания, ответственная за Firefox, использует Друпал практически во всех своих веб-проектах. Официальные сайты Мозиллы и Spread Firefox сделаны на Друпале.

Spread Firefox

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

Нужны еще примеры? Тогда посмотрите на эти замечательные Друпал-сайты.

Скачиваем и устанавливаем Drupal

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

Устанавливаем Drupal на XAMPP

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

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

Если у вас еще нет локального веб-сервера, установите XAMPP прямо сейчас.

Ниже приведена ссылка на простое руководство за авторством Якоба Гьюба (основателя и главного редактора Six Revisions), по которому вы очень быстро установите и настроите XAMPP (руководство написано для WordPress, так что следуйте только первой его части, шагам 1-26, держа в уме, что вы уставливаете не WordPress, а Друпал):

Using XAMPP for Local Development

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

Скопируйте файлы Drupal в директорию XAMPP
Скопируйте пакет с Друпалом, который вы скачали ранее, в директорию xampp\htdocs. Распакуйте файлы и переименуйте папку в “drupal” для простоты навигации.

Теперь перейдите в папку xampp\htdocs\drupal\sites\default.

Создайте settings.php

Сделайте копию файла default.settings.php и переименуйте ее в settings.php.

Убедитесь, что вы не удалили default.settings.php, в противном случае установка Друпала прервется с ошибкой; это одна из самых частых ошибок, совершаемых начинающими разработчиками на Друпал.

Создаем базу данных MySQL

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

Для этого воспользуемся phpMyAdmin — веб-интерфейсом для удобного администрирования баз данных MySQL (он уже входит в дистрибутив XAMPP).

Зайдите в браузере на страницу phpMyAdmin по адресу:

http://localhost/phpmyadmin/


В данном примере, я назвал базу db_drupal. Вы можете предоставить суперпользователю (root) все привилегии на работу с базой db_drupal, так что он сможет читать, записывать и изменять данные в базе. Однако использовать root-аккаунт на рабочем сайте – не лучшая практика. Лучше всего создать отдельного пользователя для данной базы данных и выдать ему только необходимые привилегии. Сейчас мы так и сделаем.

Создание отдельного MySQL-пользователя для базы данных Drupal

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

И уж точно не используйте root-аккаунт, так как большинство хакеров именно его будет «пробовать» в первую очередь. Пользователь root в MySQL обладает суперпривилегиями и имеет доступ не только к вашей базе drupal_db, но и к другим базам данных. (Кстати, неплохой вариант – вообще удалить пользователя root и не использовать его нигде. Можно создать пользователя псевдо-root, но об этом как-нибудь в другой раз).

Для создания нового пользователя MySQL перейдите на главную страницу phpMyAdmin, а затем щелкните на вкладку «Привилегии».

Теперь нажмите «Добавить нового пользователя» и заполните поля ввода необходимыми данными.

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

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

Select Insert Update Delete File Create Alter Index Drop Create Temporary Tables Lock Tables

На этом мы заканчиваем работу с MySQL и phpMyAdmin.

Локализация Drupal (от переводчиков)

Чтобы процесс установки совпадал с иллюстрациями в этом руководстве, необходимо устанавливать русифицированную версию Друпала. Для этого нужно скачать его перевод. Переводы Друпала и его модулей на русский язык находятся на сайте Drupaler.ru. Чтобы скачать перевод самого Друпала, зайдите на эту страницу, заполните форму как показано на рисунке и нажмите “Экспорт”.

Затем распакуйте скачанный архив в ту же директорию, куда чуть раньше распаковывали Друпал.

Переводы дополнительных модулей Друпала также находятся на Drupaler.ru. Поскольку далее по ходу руководства нам потребуются модули CCK и Views, скачайте их переводы прямо сейчас со страниц “Перевод CCK” и “Перевод Views“.

Инсталлируем Drupal с помощью мастера установки

Итак, введем в адресной строке нашего браузера следующий URL:

http://localhost/drupal

Если вы не забыли переименовать распакованную директорию с Друпалом в “drupal”, все должно сработать. Если забыли – замените “drupal” в URL-е тем названием папки, которое вы задали при распаковке файлов Друпала в htdocs.

Как только вы перейдете по URL выше, сразу увидите меню установки Друпала. Вы можете выбрать нужный язык интерфейса Друпала на первой странице. Обратите внимание, что эту опцию можно будет изменить позже из админки. Мы продолжим установку на русском, поэтому давайте выберем “Установить Друпал на русском”.

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

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

Там же, на экране настройки базы данных, щелкните на “Дополнительные настройки” и увидите опцию под названием “Префикс таблиц“, которая позволяет приписать к названию всех MySQL-таблиц Друпала заданную строку (напр. blackjack_drupal_table). Я рекомендую вам задать случайный префикс, понятный только вам; эта осторожность поможет снизить угрозу атаки на базу данных с помощью SQL-инъекций.

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

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

Настройка чистых ссылок

Одна из опций, которая может оказаться для вас незнакомой, называется “Чистые ссылки” и располагается в разделе “Настройки сервера”. Ссылки, генерируемые Друпалом по умолчанию, неинтуитивны и выглядят примерно как http://localhost/index.php?q=21.

Когда чистые ссылки включены, URL-адреса выглядят приятнее, легче запоминаются и способствуют улучшению SEO. Например http://localhost/events.

Для работы чистых ссылок требуется, чтобы на сервере был установлен mod_rewrite (модуль Apache). Скорее всего, он уже у вас установлен.

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

Установка завершена

Если вы безошибочно следовали руководству, то увидите вот такой экран:

Не переживайте, если появится ошибка функции mail(): она возникает из-за того, что мы используем XAMPP на локальной машине и попросту не настроили почтовый сервер, следовательно Друпал не сможет отправлять письма администраторам.

Когда вы будете работать с настоящим сервером, эти вещи уже будут заранее настроены (если только вы не делаете собственный веб-сервер, который еще не сконфигурирован).

Заходим в админку Drupal

Давайте перейдем в админку Друпала. Как только вы зайдете на новый сайт по адресу http://localhost/drupal, появится следующая страница:

Заходите в админку, щелкнув по ссылке “Управление”.

Теперь, когда вы установили Друпал, пора обсудить концепцию модулей.

Что такое модули Drupal?

Модули – это расширения Друпала, добавляющие в него дополнительный функционал.

К примеру, Друпал идет с предустановленным модулем под названием “System”. Фактически, Друпал и представляет собой набор модулей ядра, которые разрабатываются и поддерживаются командой проекта. Модуль “System” – один из них, Друпал без него не может работать.

Как добавить модули Drupal

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

После того, как вы найдете нужный модуль, скачайте его на свой компьютер.

Затем нужно перенести распакованный модуль в директорию:

drupal\sites\all\modules

По умолчанию папки для модулей нет, поэтому ее необходимо создать вручную. Создайте папку modules в drupal\sites\all.

Хорошая практика – держать скачанные модули отдельно от идущих в дистрибутиве Друпала по умолчанию, так что не кладите дополнительные модули в drupal\modules.

Установка дополнительного модуля: модуль CCK

CCK (Content Construction Kit – Конструктор для содержимого) – очень популярный модуль Друпала, позволяющий вам создавать разные новые типы содержимого. Давайте потренируемся устанавливать модули на примере CCK, тем более что в дальнейшем он нам понадобится.

Во-первых, скачайте подходящую версию CCK. Затем распакуйте архив в drupal\sites\all\modules; в ту же папку распакуйте скачанный ранее с Drupaler.ru архив с переводом модуля CCK.

После скачивания и размещения модуля CCK в drupal\sites\all\modules, необходимо включить его в интерфейсе администрирования Друпала. Перейдите в меню Конструкция сайта > Модули (localhost/drupal/admin/build/modules). Здесь вы увидите модуль CCK*. Включите его. Также можете включить и подмодули CCK, если они вам нужны (позже, когда начнем работать с CCK, мы так и сделаем).

* – по сложившейся в незапамятные времена традиции модуль, везде и всюду называемый CCK, в списке модулей называется Content (прим. пер.).

Поздравляю! Вы только что установили модуль Друпала.

Страницы администрирования Drupal: ускоренный курс

Есть два варианта просмотра административных разделов Друпала:

По задачам. По модулям.

Если вы выберете отображение “По задачам“, то страница будет организована по различным задачам администрирования.

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

У каждой задачи под названием имеется краткое описание, которое поможет вам понять ее назначение.

Если же вы выберете отображение “По модулям“, то ссылки будут организованы по модулям.

Например, в отображении “По модулям” под заголовком модуля “System” вы найдете пункты “Настройка прав доступа”, “Чистые ссылки”, “Модули” и так далее.

Кривая изучения интерфейса админки

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

Я советую вам установить модуль Administration menu, добавляющий в верхнюю часть всех страниц сайта выпадающее меню навигации, видимое только администратору.

Настраиваем главную страницу

Время действовать. Давайте создадим главную страницу. Для этого мы добавим на сайт первый материал типа “Страница”. Перейдем в меню Содержание > Создать материал > Страница (localhost/drupal/node/add/page).

Параметры меню

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

Если вы хотите добавить ссылку на главную страницу в основное навигационное меню, выберите “Основные ссылки” в выпадающем меню “Родительский пункт”.

Опция “Вес” позволяет организовать порядок вывода ссылок. Ссылки с меньшим весом будут выведены первыми, поскольку они “легче”.

Так, например, если ссылка “Главная страница” имеет вес 0, а ссылка “О сайте” – 5, то пункт “Главная страница” будет показан первым, потому что он легче.

Если же ссылка “Главная страница” имеет вес 0, а ссылка “О сайте” – тоже 0, тогда Друпал организует ссылки в алфавитном порядке. Так как вес одинаковый, первой будет показан пункт “Главная страница”.

В нашем случае, оставляем вес “Главной страницы” неизменным (по умолчанию вес равен нулю).

Формат ввода

Селектор в секции “Формат ввода” позволяет выбрать способ ввода содержимого.

Формат Filtered HTML ограничивает набор HTML-тегов, которые можно использовать в тексте, через фильтрацию опасных HTML-элементов вроде &lt;script&gt;, которые могут использовать для атаки на браузер посетителя сайта.

Используйте формат Filtered HTML, если админитраторы сайта не знакомы с HTML.

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

Информация о редакции

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

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

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

Параметры комментариев

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

Информация об авторе

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

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

Настройки публикации

Эта секция задает настройки публикации материала.

Опубликовано — отображает статус публикации. Уберите галочку, если хотите снять материал с публикации. Помещать на главную — материал будет выводиться на главной странице сайта. Снимите отметку, если не хотите выводить материал на главную страницу. Закреплять вверху списков — материал будет отображаться в верхней части главной страницы и других списков.

Посмотрим на главную страницу

А вот и наша главная страница; пока она очень простая, но не волнуйтесь, вскоре мы ее усложним.

Чем займемся дальше

Дальше мы сделаем доску объявлений о вакансиях, наполняемую пользователями.

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

Что такое нода в Drupal?

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

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

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

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

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

В адресе вы увидите слово “node”; это значит, что данная страница является нодой.

Создание нового типа материала в Drupal

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

Создадим тип материала “Вакансия”

Cделаем для нашего сайта доску объявлений о вакансиях. Пользователи будут размещать вакансии и проекты, эдакий маленький Craigslist (прим. переводчика: www.craigslist.org – сервис размещения вакансий и резюме).

Для каждой вакансии нам потребуются следующие поля:

наименование вакансии; подробное описание; отдел — в виде выпадающего списка; опыт работы — текстовое поле; зарплата — текстовое поле.

Работать с пользовательскими типами материала в Друпале легко. Сначала перейдите в Администрирование > Типы материала > Добавить тип содержимого.

Почти все элементы страницы добавления нового типа материала снабжены пояснениями. Я считаю необходимым поговорить отдельно об элементе “Тип”. Тип — это машинное имя нового типа материала, используемое в более сложных разработках.

В нашем случае, для вакансий мы зададим машинное имя типа материала “job”. Это очень важный момент: в будущем, когда вы станете мастерами-ниндзя Друпала и захотите внести комплексные изменения в свой сайт, например, изменить способ отображения объявлений, вам потребуется создать файл с именем node-job.tpl.php (это уже выходит за рамки данного руководства).

Теперь заполните поля “Название”, “Тип” и “Описание”, и мы двинемся дальше.

Свойства формы

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

Настройка процесса публикации

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

Продолжайте настраивать процесс публикации. В разделе “Установки комментариев” можете установить разные варианты комментирования вакансий. Если вы хотите, чтобы посетители могли комментировать вакансии, включите комментарии. Не хотите – выключите.

Создаем тип материала “Вакансия”

Самое время нажать “Сохранить” и тем самым завершить создание нашего первого типа материала. Если вы следовали инструкции, в списке типов содержимого появится “Вакансия” (рядом со страницей, статьей и так далее).

Настройка типов содержимого с помощью CCK

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

CKK — это, как правило, первый модуль, который ставят на новоиспеченный сайт искушенные разработчики. Он настолько важен, что будет внедрен в ядро Друпала 7, после чего вам не придется больше скачивать его вручную.

К этому моменту вы уже должны были установить CCK согласно описанию работы с модулями в начале руководства.

Включим несколько подмодулей CCK

Для начала, пройдите в меню Администрирование> Конструкция > Модули.

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

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

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

Вот какие подмодули нужно включить:

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

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

Каждый из этих подмодулей зависит от модуля Content: вы не сможете их включить, пока Content выключен.

Добавляем поля в форму

Вы включили подмодули CCK? Прекрасно, настало время настроить форму публикации вакансий.

Перейдите в меню Администрирование > Содержание > Типы содержимого, затем щелкните на ссылку “Управлять полями” в столбце “Действия” напротив типа материала “Вакансия”. Здесь-то мы и будем добавлять новые поля к форме.

Сперва я добавлю поле “Отдел“, дающее пользователю возможность выбрать из выпадающего списка отдел, в котором возникла вакансия (отдел разработки, финансовый, отдел интерфейсов, ИТ и маркетинга).

После нажатия кнопки “Сохранить”, вас перенаправит на страницу, где можно окончательно подстроить поле “Отдел” и перечислить его допустимые значения.

Следущее поле — “Опыт“, в него пользователь сможет вводить дробные числа (например, 3.5 года).

В поле “Справочный текст” добавьте подсказку о том, как правильно заполнять поле, чтобы посетители вводили верные значения.

В разделе “Общие настройки” вы можете ограничить значение поля. Например, если в поле “Минимум” задать 2.3, то при попытке разместить вакансию с опытом 1.4 пользователю будет показано сообщение об ошибке.

Последнее поле в типе материала “Вакансия” — “Заработная плата”. Это целое число, например, 50 000 рублей.

В общих настройках поля укажите 0 в качестве минимума, чтобы не допустить отрицательных значений, (например, -1200). Почему не указать значение больше нуля? Потому что нулевая зарплата означает, что данная работа не оплачивается.

После создания всех полей, их список для типа материала “Вакансия” будет выглядеть так:

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

Создайте несколько вакансий

Прежде чем мы двинемся дальше, создайте несколько вакансий, перейдя на страницу Создать материал > Вакансия. Их данные нам понадобятся в следующей части руководства.

CCK — очень мощный инструмент

Здесь мы работали с самыми простыми полями CCK, но этот модуль предоставляет и гораздо более серьезные средства организации содержимого. Например, вы можете установить модуль ImageField, чтобы пользователи могли размещать изображения (к примеру, пусть работодатели выкладывают фотографии рабочего места).

Если вам нужны дополнительные поля CCK, ознакомьтесь с этим списком.

Создадим страницу вакансий с помощью модуля Views

Хотя вы и можете самостоятельно писать запросы к базе данных для чтения содержимого, дело это долгое и сложное, даже с учетом мощного API Друпала.

Для построения страницы со списком вакансий мы задействуем Views — модуль, позволяющий извлекать содержимое из базы данных вообще без написания кода.

Попросту говоря, Views – это пользовательский интерфейс построения MySQL-запросов. Views — это невероятно мощный модуль, но порой его бывает трудно освоить начинающим пользователям. Лучший способ разобраться с Views — немного с ним поиграть, чем мы сейчас и займемся.

Устанавливаем Views

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

Создаем первое представление

Любой набор данных, выведенный модулем Views, называется представлением.

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

Перейдите в меню на страницу Конструкция сайта > Представления > Добавить и заполните поля так, как показано на изображении:

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

Что такое вид?

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

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

Добавление полей в представление

Давайте добавим несколько полей в наше представление. Поля — это содержимое, которое мы хотим вывести на страницу. Нажмите на значок плюса (+) в области “Поля”, чтобы добавить поля к представлению.

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

Эти поля нам нужно выбрать из дополнительного списка, который появится после нажатия кнопки с плюсом (+). Нас интересуют следующие поля:

Материал: Заголовок Материал: Дата создания Содержимое: Отдел Содержимое: Заработная плата Содержимое: Опыт

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

После нажатия кнопки “Добавить” первой появится секция настройки поля Содержимое: Отдел. Оставьте все как есть, за исключением селектора “Формат”, задав в нем значение “Простой текст”; затем нажмите “Обновить”.

Теперь настройте поле Содержимое: Опыт. Ничего не меняйте, просто нажмите “Обновить”. И то же самое проделайте с полем Заработная плата.

Когда закончите с полями содержимого, нужно будет настроить поле Материал: Дата создания. Просто измените поле Формат даты в значение “Время назад”, чтобы в поле отображалось, сколько времени прошло с момента публикации вакансии (например, “12 дней назад”).

Следующее и заключительное поле для настройки – Материал: Заголовок. Мы просто должны поставить галочку, указывающую, что заголовок должен быть ссылкой на страницу вакансии.

Предварительный просмотр

Можете использовать вкладку предварительного просмотра, чтобы увидеть результат ваших настроек:

Основные настройки

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

Мы выберем стиль “Без форматирования“, а данные будем выводить в табличном формате. Когда зададите эти настройки, нажмите “Обновить”.

Мы бы хотели вывести все вакансии без разбивки на несколько страниц, поэтому опции “Постранично” – скажем твердое “Нет“. И снова нажмем “Обновить”.

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

Фильтры представления

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

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

Материал: Опубликовано Материал: Тип

Нажмите на значок плюса (+) в области “Фильтры”, затем выберите Материал: Опубликовано и Материал: Тип; нажмите “Добавить”.

Настройте фильтр Материал: Опубликовано: укажите значение “Да”, это исключит из нашего представления неопубликованные материалы.

Настройте фильтр “Материал: Тип” так, чтобы в представление попадали только материалы типа “Вакансия”.

Взгляните на результат работы фильтров в предварительном просмотре:

Критерии сортировки

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

Чтобы выводить новые вакансии первыми, мы применим критерий сортировки. В списке полей для сортировки, который появится после нажатия на плюс в соответствующей области, выберите Материал: Дата создания.

Укажите порядок сортировки По убыванию.

Снова обновите предварительный просмотр; теперь последние вакансии будут выводиться первыми.

Изменение порядка вывода полей

Есть еще кое-что для улучшения нашего представления: изменение порядка полей. Имеет смысл выводить поле заголовка первым, поле даты – вторым и т.д. Вы можете изменить порядок, нажав на кнопку со значком “вверх/вниз” в разделе “Поля”.

Обновите предпросмотр: представление стало еще лучше.

Мы закончили с созданием представления; теперь добавим в него два вида.

Добавляем страничный вид

В левой части страницы представлений, выберите “Страница” и нажмите “Добавить вид“. Вас автоматически перенаправит в раздел “Настройки страницы”.

Нам нужно указать путь к странице и выбрать место для ссылки на нее. Я указал вес, равный 2, чтобы отобразить ее после ссылки “Главная страница”.

После ввода значений не забудьте нажать “Сохранить”.

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

Создаем блочный вид

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

Вы можете размещать блоки в заголовке, подвале и левой и правой панелях в стандартной теме Друпала. Управление блоками осуществляется из меню Администрирование > Конструкция сайта > Блоки.

Теперь создадим еще один вид для представления “Вакансии”; вид, отображающий последние объявления о работе в правой панели.

Переходим в Администрирование > Конструкция сайта > Представления и жмем на ссылку редактировать представление “Вакансии”. Слева выбираем “Блок” и нажимаем “Добавить вид”, как и ранее.

Кнопка “Переопределить”

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

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

Добавляем блок на боковую панель

Перейдем к управлению блоками и добавим наш новый блочный вид на правую панель.

Идите в Администрирование > Конструкция сайта и жмите на Блоки.

В секции “Отключено” найдите вновь созданный блок и выберите правую колонку в столбце “Область“.

Не забудьте нажать “Сохранить” для подтверждения изменений.

Отлично! На этом разработка доски вакансий завершена.

Темы оформления Drupal

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

В интернете можно найти великое множество тем. Вот, например, список тем, выложенных на оффициальном сайте Друпала.

Чтобы установить новую тему, ее нужно скачать и распаковать в директорию drupal/sites/all/themes. Если этой директории не существует – создайте ее.

Чтобы включать и выключать темы, перейдите в Администрирование> Конструкция сайта > Темы оформления.

Всего в дистрибутиве Друпала идет 5 тем. Вот, например, я активировал тему Marvin, чтобы придать нашему новоиспеченному сайту свежий, новый вид:

Не забудьте отметить нужную тему используемой по умолчанию, чтобы на сайте использовалась именно она.

Подведем итоги

Я старался изо всех сил, пытаясь охватить самые сложные и непонятные для новичков аспекты. Так или иначе, это руководство – лишь один из отблесков истинной мощи Друпала. Рекомендую вам самостоятельно исследовать сайт Drupal.org в поисках более сложных тем.

Если у вас есть вопросы, не стесняйтесь задавать их в комментариях. Я с радостью вам помогу.

Полезные сайты Drupal.ru – русскоязычное сообщество пользователей Друпала. Справочник API – справочник по API для программистов. Drupaler.ru – сообщество переводчиков Друпала и его модулей на русский, белорусский, казахский и другие языки. Танцы около Друпала – статьи, уроки и советы за авторством известного Друпал-разработчика, neochief. drupalcookbook.ru – рецепты создания сайтов на Друпале; огромная коллекция советов и хитростей. content-management-systems.info – советы, подсказки и форум; на сайте действует “Планета Drupal” – RSS-лента, собирающая новости сайтов и блогов, посвященных Друпалу. Руководство на Хабрахабре

Пользователи Хабрахабра могут поддержать перевод по адресам:
http://habrahabr.ru/blogs/drupal/103600/ – часть 1,
http://habrahabr.ru/blogs/drupal/103603/ – часть 2.

Источник: http://www.drupal.ru/quickstart

Лучший способ начать работу с Drupal [рекомендации новичкам]

Как правило, мои посты только для любопытных. И этот не исключение. Если вас смутило много букв – не читайте, оно вам не надо. Совсем не надо.
Остальным скажу, что сам я далеко не про-PHP-кодер, но уже и не нуб. Поэтому хотелось бы поделиться с начинающими друпалерами своим небольшим, но всё же опытом, в виде цикла рекомендаций, который я открываю этим постом (первый блин – комом, а первый пост – длинный).
Признаюсь, что всё описанное далее – моё сугубо личное мнение, подтверждённое, опять же, личным опытом. Предлагаемый мной путь знакомства с друпалом достаточно долгий. Приготовьтесь, что ваш первый сайт (который, к тому же, всего лишь тестовый) будет готов не сегодня и не завтра, а в лучшем случае где-то через месяц. Однако:

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

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

Итак…

Одно из (имхо) редких верных утверждений Тёмы Татьяныча – что сайты условно можно разделить на 2 вида: информационные и презентационные. Новички-друпалеры, как правило, при знакомстве с этой CMF первым делам бросаются её старательно обвешивать свистелками-перделками, всякими украшалками и рюшечками. Ещё бы, Жумла же и Вордпресс – красивее!
Однако я предлагаю вам, немного поигравшись с визуальными прибамбасами, всё-таки сделать свой первый сайт информационным. Пускай, он будет всего лишь тестовым. Пускай, на бесплатном хостинге. Пускай, с темой Garland. Лишь бы Вы подошли к его созданию настолько же основательно, как для реального информационного портала. Первым делом можете почитать приведённую выше статейку Ководства, чтобы понять ключевые различия этих 2-х типов сайтов.

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

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

Лучший способ добиться этого – выбрать тематику “первого блина”, которая Вам больше всего по душе. Хобби, любимое увлечение… вот только порно-каталогизатор делать не надо!

В итоге…

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

Алсо, welcome to comment! Особенно более опытные друпалеры, чтоб я знал, полезна эта моя затея или нет.

Источник: http://www.drupal.ru/node/47360

Модуль Arrange Fields – расстановка полей

 arrange_fields
Очень нужная вещь для работы с полями.

Источник: http://www.drupal.ru/node/46137

Белый Дом открыл код нескольких модулей для CMS Drupal

На сайте резиденции Президента США whitehouse.gov появилось объявление о выпуске под свободной лицензией нескольких модулей для системы управления web-контентом Drupal, тем самым Белый дом продемонстрировал не только приверженность к использованию открытого ПО на потребительском уровне, но и желание непосредственного участия в жизни сообщества независимых разработчиков, внося свою лепту в развитие Open Source.

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

Открытые Белым домом модули добавляют функциональность к Drupal в трех основных направлениях:

* Масштабируемость. Модуль “Context HTTP Headers” позволяет добавлять произвольные мета-данные в зависимости от обрабатываемого контента. На сайте whitehouse.gov модуль используется для задания различного времени кэширования страниц в зависимости от их типа, например, для новостей время кэширования может быть установлено в 15 минут, а для статей – 30 минут.

Второй открытый в данной категории модуль “Akamai” дает возможность организовать использование на web-сайте распределенной сети быстрой доставки контента (Content Delivery Network) Akamai, отдающей посетителю контент с ближайшего к нему сервера.
* Обратная связь с посетителями. Модуль “GovDelivery” нацелен на обеспечение интеграции ранее используемого для взаимодействия с общественностью списка почтовой рассылки, отправлять сообщения в который теперь посетители могут через сайт. Для администрации предусмотрен web-интерфейс для предварительного модерирования сообщений. К работе модуля привлечены и другие открытые модули, например, обработка очереди сообщений производится при помощи интерфейса drush, а мониторинг работы сервиса – с привлечением Nagios.
* Доступность сайта для людей с ограниченными возможностями. Модуль “Node Embed” нацелен на обеспечение снабжения мета-данными всех размещаемых на сайте изображений и видеороликов для их надлежащего восприятия в системах экранного чтения, используемых при открытии сайта людьми с нарушенным зрением.

Источник

Источник: http://www.drupal.ru/node/43352

Друпалогия — первый журнал про Drupal

Вышел пилотный номер электронного журнала “Друпалогия”, в котором мы собрали статьи, которые будут интересны как новичкам , так и профи Друпала.

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

Спасибо всем авторам, которые решили опубликовать свои статьи или переводы, надеюсь на дальнейшее сотрудничество.

Приятного прочтения!

Хабрапользователи могут поддержать

Источник: http://www.drupal.ru/node/39625

Полезные и интересные модули для Drupal 6.xx

Модули:

Filefield Paths – позволяет создавать собственные token-шаблоны для загружаемых через filefield-поле файлов. Удобно для упорядочивания фотографий в галереях (замечено, что не работает с Image FUpload).

Uploadpath – разрешает использовать token-шаблоны для хранения файлов в директориях или субдиректориях.

Hide Submit – позволяет прятать кнопку “Submit” после нажатия. Предохраняет от повторной отправки данных.

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

WordPress Comments – Для тех, кто привык к форме комментирования а-ля Wordpress

Printer, e-mail and PDF versions – модуль позволяет распечатывать страницу, отправлять по почте и конвертировать в формат PDF

One page profile – никаких вкладок в профайле пользователя, всё размещается на одной странице. Очень удобно

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

Хабрапользователи могут поддержать

Источник: http://www.drupal.ru/node/39029

© 2009 Обзор CMS