Быстрый старт в программинг под Друпал

Главные вкладки

Аватар пользователя neochief neochief 3 января 2010 в 2:50

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

Итак, вы два года работали с Zend Framework, а о Друпале слышали совсем немного. По мере того, как Друпал набирал популярность, вам или вашему боссу удалось подписать полугодичный контракт на разработку интранет-портала с нуля с одной большой компанией.

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

В любом случае, вы полны энтузиазма, так как нашли вот этот график нужды в Drupal-разработчиках:

Но затем вы нашли еще и такой вот график кривой обучения Drupal:

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

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

Модули

  • Из чего состоит модуль?
  • Что такое .info файлы?
  • Как добавлять стили и JS-код в модуль?
  • Что такое хуки?
  • Как добавить свою страницу в систему меню Друпала?
  • Как переопределить вывод на существующей странице сайта?
  • Что такое Forms API?
  • Как изменить произвольную форму созданную другим модулем?
  • Как добавить к этой форме свою проверку и свой обработчик?
  • Как добавить на сайт свой блок из модуля?
  • Как сделать чтобы у этого блока были собственные настройки?
  • Как выполнять дополнительные действия при сохранении ноды?
  • Как отображать свои данные на страницах нод?

Темизация

  • Как работает регистр темизации?
  • Как переопределить стандартный шаблон в теме?
  • Как темизировать вывод в модулях?
  • Как вводить новые шаблоны?
  • Как работают базовые темы?

Код

  • Какие правила кодирования используются при разработке Друпал-проектов?
  • Как работать с SVN и CVS?
  • Как создавать и применять патчи?
  • Какие проблемы существуют при выкладывании проектов на живой сервер?
  • Какой код можно считать безопасным и какие есть методы обеспечения безопасности в Друпале?
  • Как реализовывать unit-тесты в Друпале?

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

А что с ответами?


Самым правильным решением было бы купить/одолжить/украсть книгу Pro Drupal Development, Second Edition (если с английским у вас очень плохо, подойдет и русская версия, хоть она и не TRUE). Большим плюсом книги является последовательность изложения материала, и большая точность и достоверность данных.

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




Написание, поддержка и деплоймент кода

Хуки

Система меню

Формы

Ноды

Блоки

Темизация

В довесок, замечательная серия презентаций о темизации с NYC Drupal Meetup:

  • Drupal Theming (Pt. 1): Static Theme Conversion
  • Drupal Theming (Pt. 2): CCK Fields
  • Drupal Theming (Pt. 3): Custom Node Theming
  • Drupal Theming (Pt. 4): More Custom Node Theming
  • Drupal Theming (Pt. 5): User Profile Theming
  • Drupal Theming (Pt. 6): Theming Module Output
  • Drupal Theming (Pt. 7): Creating Template Variables
  • Drupal Theming (Pt. 8): Views Theming & review of custom Theming
  • Drupal Theming (Pt. 9): Panels — an overview

Качество кода



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

Комментарии

Аватар пользователя Sinkora Sinkora 3 января 2010 в 3:25

Приветствую, Neochief! Читал многие твои статьи здесь и на других сайтах. Твой энтузиазм, наверное, не только меня одного заставил полюбить Друпал. Я тоже надеюсь, что популярность Друпала будет продолжать расти с каждым днем.

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

* Как работать с SVN и CVS? (пока еще не было необходимости)

* Как создавать и применять патчи? (представляю, но пока не пользовался)

* Как реализовывать unit-тесты в Друпале?

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

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

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

Друпал рулит по-любому!

Аватар пользователя neochief neochief 3 января 2010 в 3:29

"Sinkora" wrote:
* Как работать с SVN и CVS? (пока еще не было необходимости)
* Как создавать и применять патчи? (представляю, но пока не пользовался)
* Как реализовывать unit-тесты в Друпале?

Все есть в списке материалов, плюс здесь.

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 3 января 2010 в 3:34

Друпал - он Си, знакомишься с ним, учишь, даже кодить начинаешь, и тут бац! Указатели... Осилишь их, будешь с Си навечно, если не осилишь, то никогда к Си не вернёшься... Чисто моё, на правах ИМХО

Аватар пользователя Nikit Nikit 3 января 2010 в 7:42

MDinc, по себе не суди о других.
p.s. Видел несколько раз я этих php-программистов, поработавших над друпалом. Оставалось только долго плеваться, и просить завышенную сумму на исправление ихних доделок. Иногда приходилось всё начинать заново. Знание php не означает знание Drupal.

Аватар пользователя kodo kodo 3 января 2010 в 8:33

neochief всегда интересно читать твои посты. Статьи не просто Друпал-программиста, а Аналитика. Удачи! (ну и на RSS обязательно подпишусь Smile )

Аватар пользователя PanDa777 PanDa777 3 января 2010 в 8:48

А новые API 7го Drupala --- как то Field API, File API и тд где-нибудь, кроме странички с обновлениями описаны?

Также Views API?

CCK API отлично иллюстрирует статья, тут недавно выложенная...

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

Понял, что неправ, после того, как залез на http://api.drupal.org/api/group/field/7

Аватар пользователя Sinkora Sinkora 4 января 2010 в 0:50

"MDinc" wrote:
Уверяю всех кто знает PHP Drupal щелкается как конфетка

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

"MDinc" wrote:
Никакими книжками не пользовался никакими советами только брал и изучал код
А он написан очень прямолинейно и не требует особых знаний объектного программирования

И это чистый бред! Или я чего-то в этой жизни не понимаю...

Аватар пользователя ArtMan ArtMan 4 января 2010 в 2:41

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

Например в чем смысл ЦМС на которой якобы можно чуть ли не полететь на Марс если для создания сайта на ней не хватает знания PHP?!
То есть не подойдет ПХП программист который бы например мог написать этот же проект на зенде, а нужен специально обученный друпал пхп специалист в чем смысл тогда такой ЦМС?

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 4 января 2010 в 2:50

ArtMan, а в чём смысл зенда?
А почему кто-то пилит бревно лобзиком, а кто-то пилой.
Друпал это инструмент, не более того. А полетите вы на нём на марс или потоните в луже, зависит только от мастера

Аватар пользователя vgoodvin vgoodvin 4 января 2010 в 12:13

"ArtMan" wrote:

Друпал наполовину CMS, наполовину CMF. Что можно сделать средствами системы делаем средствами системы. Чего нету готового или не совсем нравится, делаем руками. Это тоже фреймворк. Собрать серьезный сайт без кодинга можно, но я лично в это верю сомнительно.

Аватар пользователя F10 F10 4 января 2010 в 13:23

"ArtMan" wrote:
Господа друпаловеды и друпалолюбы. Не кидайте тапками, а обьясните простым русским языком а зачем тогда нужен друпал?

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

Аватар пользователя Химический Али Химический Али 4 января 2010 в 13:36

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

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

Аватар пользователя andypost@drupal.org andypost@drupal.org 4 января 2010 в 13:39

Хороший пост, но тема "зачем писать" раскрыта на полностью.

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

Аватар пользователя PanDa777 PanDa777 4 января 2010 в 15:09

Да, спасибо. Всё это и до этого видел.

Просто пока что никакой конкретной задачи по использованию Views у меня не стояло, а на досуге разбираться с http://views.doc.logrus.com/ было страшно. Вот если бы было бы что-нибудь вроде http://www.poplarware.com/cckfieldmodule.html...

Аватар пользователя neochief neochief 4 января 2010 в 15:22

"<a href="mailto:andypost@drupal.org">andypost@drupal.org</a>" wrote:
Я бы еще добавил как обязательный пункт - знание views

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

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

Аватар пользователя quip@drupal.org quip@drupal.org 7 января 2010 в 17:13

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

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

Аватар пользователя krock krock 8 января 2010 в 4:55

>Уверяю всех кто знает PHP Drupal щелкается как конфетка

может быть, но долго щёлкается. спасибо ТС за материал. в закладки!

Аватар пользователя gumk gumk 8 января 2010 в 14:37

Спасибо за статью, а не подскажете есть где то информацию на русском про создание фильтров, полей, стилей для views в собственном модуле?

Аватар пользователя penexe penexe 8 января 2010 в 15:12

"gumk" wrote:
Спасибо за статью, а не подскажете есть где то информацию на русском про создание фильтров, полей, стилей для views в собственном модуле?

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

Аватар пользователя denlem denlem 17 марта 2010 в 17:55

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

Аватар пользователя vgoodvin vgoodvin 17 марта 2010 в 18:19

"gumk" wrote:
Спасибо за статью, а не подскажете есть где то информацию на русском про создание фильтров, полей, стилей для views в собственном модуле?

На хабре была одна статься небольшая. Так сказать экскурс в ViewsAPI. Я с неё стартанул. Но там немного.

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

С этим никто особо и не спорит.

Аватар пользователя direqtor direqtor 17 марта 2010 в 21:01

"denlem" wrote:
либо взять сырые заготовки для движка в инете и уже из этого делать портал.
Ага, самый лучший способ... Smile

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

Аватар пользователя Jesse Jesse 20 апреля 2010 в 19:36

Решил сесть за изучения Друпала. Ранее не много работал с Вордпрессом и Джумлой. Один друг расскзл о Друпале. Теперь я здесь. Спасибо за мануал.