Что нужно знать для трудоустройства

Для тех, кто не имеет опыта с web и drupal:

Environment:

  1. Установить Linux. Это может быть Ubuntu, Debian, OpenSUSE, Fedora, Linux Mint. Мы используем Ubuntu.
  2. Установить AMP stack (Apache, PHP 5.3, MySQL, phpmyadmin)
  3. NetBeans 7

Drupal:

  1. Установить Drupal 7 (не из пакетов, a c drupal.org)
  2. Плюсом будет знание о drush и умение его использовать.

Разобраться c темами :

  1. Ноды (node)
  2. Система хуков (hooks)
  3. Система теминга (theme)
  4. Блоки (blocks)
  5. Drupal coding standarts http://drupal.org/coding-standards
  6. Таксономия (taxonomy)
  • Уметь создавать тип материала, добавлять ему поля разных типов.
  • Создавать несколько нод этого типа.
  • Добавлять к ним комментарии.

Познакомится с модулями:

1. http://drupal.org/project/views
Вывести список нод этого материала, отсортированных по количеству комментариев.

2. http://drupal.org/project/panels
Вывести на панели рядом два списка с сортировкой по комментариям в разных направлениях. Попробовать разобраться с ctools плагинами для панелей.

3. http://drupal.org/project/admin_menu
Установить, разобраться зачем он нужен.

Лучшие учебные пособия - drupal.org, php.net

 

Для опытных:

Как работает веб:

  1. AMP стек, объяснить как работает с момента ввода адреса сайта, до момента полной прогрузки страницы.
  2. Протокол HTTP, Методы Post и Get

Основные вопросы по Drupal

Hook.

  1. Что такое хук, зачем нужны и как используются?
  2. Список наиболее популярные хуков (hook_menu, hook_theme, hook_form_alter, hook_nodeapi, hook_user …)
  3. Как создать свой хук?
  4. hook_theme, для чего используется? Как его можно использовать? Куда ложить файлы шаблонов? Как именовать препроцессы?
  5. hook_menu, как создать свой меню итем? Основные правила при создании меню итема. Когда нужно выносить коллбэк в отдельный файл. Какие типы меню итемов бывают?
  6. hook_views_* - основные хуки, как и для чего используются?
  7. hook_schema - что такое, зачем нужен, пример
  8. hook_update - правила написания, как работает
  9. hook_install, hook_uninstall - зачем использовать, примеры
  10. menu в drupal, как это работает?

Coding standards.

  1. Правила именования модулей, функций, файлов модулей.
  2. Drupal coding standards, основные моменты
  3. db_query(), db_select() и другие функции для работы с БД, основные правила.
  4. Когда нужно создавать свой модуль?

Forms.

  1. Как создать форму?
  2. Как отрисовать форму программно?
  3. Как изменить чужую форму?
  4. Типы элементов, основные свойства.
  5. Теминг формы
  6. validate, submit, after_build, pre_render формы.
  7. System settings forms
  8. AHAH. Что такое, как использовать?

Content

  1. Content-type - что такое? как создать? основные правила создания
  2. Fields - типы полей, правило именования
  3. Build mode - что такое и как это использовать?
  4. Как друпал хранит поля в базе

Views.

  1. Зачем нужен? Примеры использования
  2. Типы дисплеев, типы шаблоны, стили.
  3. Что такое relationship во вьюхе? Как это работает?
  4. Аргументы, как это использовать?

Panels.

  1. Что это панель, регион, вариант, пэйн?
  2. Стандартные панели. Что такое selection rules?
  3. Panels everywhere - для каких целей и как использовать?

Ctools plugins.

  1. Content-type - что такое и когда стоит использовать? Отличие от блоков.
  2. Style - что такое, для чего применяется?
  3. Context - что такое, для чего применяется?
  4. Access - что такое, для чего применяется?
  5. Layout - что такое? как создать свой лэйаут?

Token.

  1. Что такое токен и для чего используются, примеры?
  2. Как создать свой собственный токен?

Image.

  1. Основные image style экшены (Scale, Resize, Scale & Crop, Canvas, Overlay)
  2. Как программно отрисовать картинку без презета/с презетом?
  3. Как работает модуль image?

Input format.

  1. Plain text, Filtered text - отличие, когда что нужно использовать?
  2. Input format - для чего нужны? Примеры.

Features.

  1. Для чего нужен? Примеры использования.

JS, CSS, JSS

  1. Способы подключения собственного JS
  2. Что такое Drupal.settings? Примеры использования.
  3. Behavior, что такое и зачем использовать?
  4. Основные стандарты кодинга в JS

Cache

  1. drupal_static(), cache_set(), cache_get().
  2. Что такое memcache? Зачем и как использовать?
  3. Boost, что такое, как работает? Когда надо использовать?

Apachesolr

  1. Что такое, как настроить?
  2. Как добавить/исключить контент-тайпы/поля из индексации
  3. Как затемить вывод результатов?
  4. Фасеты, что это такое