Быстрый старт в программинг под Друпал
Этот пост раскроет вопрос что должен знать и уметь PHP-программист, чтобы называть себя Drupal-разработчиком. Кроме того, здесь я приведу практически все, что необходимо, чтобы получить эти знания сравнительно быстро.
Итак, вы два года работали с Zend Framework, а о Друпале слышали совсем немного. По мере того, как Друпал набирал популярность, вам или вашему боссу удалось подписать полугодичный контракт на разработку интранет-портала с нуля с одной большой компанией.
Или же, вы давно работаете с Друпалом как администратор, сделали много сайтов на готовых модулях, но хотите поднять свои горизонты в разработке тем и модулей, либо чтобы получать более выгодные предложения и заказы, либо просто, чтобы иметь возможность создавать нестандартные решения для своих собственных проектов.
В любом случае, вы полны энтузиазма, так как нашли вот этот график нужды в Drupal-разработчиках:
Но затем вы нашли еще и такой вот график кривой обучения Drupal:
И истина недалека от графика. Причина кроется, прежде всего, в плохой структурированности доступной в сети информации о Друпале, а тем более в русскоязычном сегменте. Дело постепенно улучшается, но научиться писать код нужно уже сейчас.
Так как процесс обучения практически бесконечен, нужно сформировать некие границы знаний, по достижению которых вы можете смело браться за выполнение задач. Прежде всего, я сформулирую вопросы базового уровня, на которые должен без труда отвечать каждый Drupal-разработчик:
Модули
- Из чего состоит модуль?
- Что такое .info файлы?
- Как добавлять стили и JS-код в модуль?
- Что такое хуки?
- Как добавить свою страницу в систему меню Друпала?
- Как переопределить вывод на существующей странице сайта?
- Что такое Forms API?
- Как изменить произвольную форму созданную другим модулем?
- Как добавить к этой форме свою проверку и свой обработчик?
- Как добавить на сайт свой блок из модуля?
- Как сделать чтобы у этого блока были собственные настройки?
- Как выполнять дополнительные действия при сохранении ноды?
- Как отображать свои данные на страницах нод?
Темизация
- Как работает регистр темизации?
- Как переопределить стандартный шаблон в теме?
- Как темизировать вывод в модулях?
- Как вводить новые шаблоны?
- Как работают базовые темы?
Код
- Какие правила кодирования используются при разработке Друпал-проектов?
- Как работать с SVN и CVS?
- Как создавать и применять патчи?
- Какие проблемы существуют при выкладывании проектов на живой сервер?
- Какой код можно считать безопасным и какие есть методы обеспечения безопасности в Друпале?
- Как реализовывать unit-тесты в Друпале?
Eсли вы можете ответить на все эти вопросы, свяжитесь с нами, у нас возможно найдется для вас работа.
А что с ответами?
Самым правильным решением было бы купить/одолжить/украсть книгу Pro Drupal Development, Second Edition (если с английским у вас очень плохо, подойдет и русская версия, хоть она и не TRUE). Большим плюсом книги является последовательность изложения материала, и большая точность и достоверность данных.
Для тех же, кто не ищет простых решений, или же хочет узнать даже более, я составил большой список ссылок на обучающие материалы, способные пролить свет на все из вышеизложенных вопросов. Большинство материалов на английском, хотя встречаются и русские.
Написание, поддержка и деплоймент кода
- Coding standards
- Создание модулей в Drupal: введение
- Building Drupal Modules - Getting Started
- Drupal CVS/SVN Setup
- Создание и применение друпаловских патчей под Виндой
- How to install and use TortoiseCVS
Модули и хуки
Система меню
- Drupal menu system
- hook_menu() — определение страниц сайта
- Модуль-пример: Как создавать страницы в меню (по клике на названия функций — описания на русском)
- Drupal Menu System Demystified
Формы
- 10 шагов к постижению форм в Друпале
- Intro to Drupal 6 Forms API
- Forms API Quickstart Guide
- Справочник Forms API
- Forms API 6.x Reference
- 10 Tips for Theming Drupal 6 Forms
- Темизация форм
Ноды
- hook_nodeapi() — перехват операций над нодами
- Модуль-пример: Как расширять существующие типы контента используя hook_nodeapi()
- Модуль-пример: Как создавать типы контента
- Модуль-пример: Как ограничить доступ к нодам
Блоки
- hook_block() — создание блоков и перехват действий над ними
- Модуль-пример: Как программно создавать блоки
Темизация
- Theming Guide
- Anatomy of a Drupal 6 theme
- Система темизации
- theme() — ключ к пониманию процесса темизации «под капотом»/li>
- http://romka.eu/blog/drupal-article-3-part-1-drupal-themeing
- Theme Template Files for Drupal 6
- Tips and Tricks for Drupal Theming: 90 Minute Tutorial
- Анатомия темы Drupal 6, Определение параметров и компонентов темы, Работа с CSS
- My Aha! moments in Drupal theming
В довесок, замечательная серия презентаций о темизации с 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
Качество кода
- An Introduction to Unit Testing in Drupal
- Simpletest Tutorial
- Безопасный код: Работа с пользовательским вводом
- Безопасный код: Работа с базой данных
- Безопасный код: Подделка межсайтовых запросов (CSRF)
Данных материалов вам должно хватить для достижения базового уровня разработки под Друпал. Это, конечно же, не предел и в следующих постах я раскрою тему расширенных знаний и навыков для тех, кто настроен идти еще дальше. Поэтому оставайтесь с нами, подписывайтесь на RSS и следите за новостями.
Comments
January 3rd, 2010
Не подскажете, что почитать на тему «Темизация Views в модулях»?
January 3rd, 2010
В нашей компании мы начинали с небольших проектов на Drupal-е, команда программистов, до этого не работала с готовыми CMS, но обладала 2-летним опытом PHP программирования, причем PHP был не первым языком. Курс быстрого погружения для наших программистов, подготавливал я, поэтому посоветую всем новым разработчикам:
1) начните с изучения ERD базы данных, паралельно вы поимете философию Drupal-a
2) изучите код ядра системы
3) только после этого переходите к изучению API
удачи
January 7th, 2010
а я помучался с Друпалом, помучался, а сайты решил делать на МаксЦМС:
http://max-3000.com/
Нет, Друпал я пока не забросил, изучаю. Но в проектах не тороплюсь его применять.
January 7th, 2010
Спасибо, Александр за сайт и Вашу инициативу по продвижению Drupal в Украине. Надеюсь посетить Drupal Camp весной.
March 12th, 2010
Александр, отличный сайт, полезная информация. Спасибо.
April 5th, 2010
Спасибо за пост, скачал книгу, давно хотел познакомиться с друпал.
March 4th, 2011
Кривая изучения TYPO3
|
|
|
|
0*****************************(а ну его***
_____________________________________________>время
3м 6м 9м 12м
Got anything to add?