rules - правила без исключений

30
2012 © Виталий Иоскевич | [email protected] | @ipunker Я не хочу писать код. Rules – правила без исключений http://drupal.org/project/rules !!!Disclaimer!!! Drupal beginners only! Слабонервные кодеры могут покинуть помещение.

Upload: zabej

Post on 01-Dec-2014

1.667 views

Category:

Documents


1 download

DESCRIPTION

Официальный сайт мероприятия - drupal-sliot.by

TRANSCRIPT

Page 1: Rules - правила без исключений

1

2012 © Виталий Иоскевич | [email protected] | @ipunker

Я не хочу писать код.

Rules – правила без исключенийhttp://drupal.org/project/rules

!!!Disclaimer!!!Drupal beginners only!

Слабонервные кодеры могут покинуть помещение.

Page 2: Rules - правила без исключений

лорлорл2

● Описание и хранение данных:Сущности (Entities)

● Выборка данных: Представления (Views)

● Вывод данных:Context, Panels, ...

● Внешний вид: Drupal Themes● Вроде все, или чего-то не хватает?

Drupal для сайтбилдера

2012 © Виталий Иоскевич | [email protected] | @ipunker

Page 3: Rules - правила без исключений

лорлорл3

2012 © Виталий Иоскевич | [email protected] | @ipunker

● Как уведомить автора ноды о комментарии?● Как послать переадресовать анонимного

пользователя?● Как создать ноду определенного типа

автоматически?● Кто убил Кеннеди?● Как сменить роль пользователя автоматически?● Почему на мой сайт ходит один юзер в день, и

его зовут Гугл Бот?● Почему мой сайт на Друпале?● Кто все эти люди?

Простые вопросы

Page 4: Rules - правила без исключений

лорлорл4

2012 © Виталий Иоскевич | [email protected] | @ipunker

Drupal.org: там много модулей!!!

Простой ответ:

Page 5: Rules - правила без исключений

лорлорл5

2012 © Виталий Иоскевич | [email protected] | @ipunker

● Q: Как уведомить автора ноды о комментарии?● A: Comment Notify● Q: Как переадресовать анонимного пользователя?● A: Anonymous login● Q: Как создать ноду определенного типа автоматически?● A: Actions (core)● Q: Кто убил Кеннеди?● A: drupal.org/project/[CENSORED]● Q: Как сменить роль пользователя автоматически?● A: Role Expire● Q: Почему на мой сайт ходит только один юзер в день, и

его зовут Гугл Бот?● A: Пиши нормальный контент (c) Google● Q: Почему мой сайт на Друпале?● A: Everything is possible with Drupal (c) я и Шелдон Купер● Q: Кто все эти люди?● A: http://drupal.org/community

Модули, модули!!!

Page 6: Rules - правила без исключений

лорлорл6

2012 © Виталий Иоскевич | [email protected] | @ipunker

Не надо запоминать предыдущий слайд, там все неправда.

Модули, модули!!!

Page 7: Rules - правила без исключений

лорлорл7

2012 © Виталий Иоскевич | [email protected] | @ipunker

Причем тут правила, если нам нужны действия?

We need [conditional] actions!

Page 8: Rules - правила без исключений

лорлорл8

2012 © Виталий Иоскевич | [email protected] | @ipunker

Event + [Condition] + Action = Rule(s)

Событие + [Условие] + Действие = Rule(s)

Page 9: Rules - правила без исключений

лорлорл9

2012 © Виталий Иоскевич | [email protected] | @ipunker

● Описание и хранение данных:Сущности (Entities)

● Выборка данных: Представления (Views)

● Вывод данных:Context, Panels, ...

● Внешний вид: Drupal Themes● ...

Drupal для сайтбилдера

Page 10: Rules - правила без исключений

лорлорл10

2012 © Виталий Иоскевич | [email protected] | @ipunker

● Описание и хранение данных:Сущности (Entities)

● Выборка данных: Представления (Views)

● Вывод данных:Context, Panels, ...

● Внешний вид: Drupal Themes● События, реакции, логика: Rules

Drupal для сайтбилдера

Page 11: Rules - правила без исключений

лорлорл11

2012 © Виталий Иоскевич | [email protected] | @ipunker

Event (событие) [Условие] Действие

Добавлена нода Нода имеет тип “Новость”

Отправить Email модераторам

Юзер зашел на сайт Юзер имеет роль “Модератор”

Показать сообщение с кол-вом последних новостей

... Тут ровно три точки ....

Модератор опубликовал ноду

Автор ноды – аноним;Email автора в системе не зарегистрирован

Создать юзера;Присвоить роль;Начислить 5 капель карму

Добавлен комментарий Автор комментария – автор ноды

Не уведомлять автора ноды

Content (URL) is viewed URL= [АДРЕС НОДЫ] Редирект на другую страницу

Простые правила

Page 12: Rules - правила без исключений

лорлорл12

2012 © Виталий Иоскевич | [email protected] | @ipunker

Простые правила

Page 13: Rules - правила без исключений

лорлорл13

2012 © Виталий Иоскевич | [email protected] | @ipunker

Чуть посложнее

Page 14: Rules - правила без исключений

лорлорл14

2012 © Виталий Иоскевич | [email protected] | @ipunker

Чуть посложнее 2

Page 15: Rules - правила без исключений

лорлорл15

2012 © Виталий Иоскевич | [email protected] | @ipunker

Ой-ой-ой, что это?Loop

if()

else{}

Rule in Rule

Page 16: Rules - правила без исключений

лорлорл16

2012 © Виталий Иоскевич | [email protected] | @ipunker

Что еще?● Rules components: из Rules можно вызывать Rules● Loops – циклы в действиях Rules● Rules Scheduler - запуск Rules по расписанию (да-да,

Cron нужен)

Page 17: Rules - правила без исключений

лорлорл17

2012 © Виталий Иоскевич | [email protected] | @ipunker

И снова модули● Conditional Rules: добавляем условия в действия (доп.

модуль). If, else, switch...● Rules forms: события генерации (build), валидации,

сабмита форм (забыть как страшный сон!!!).● Rules Links● ...

Page 18: Rules - правила без исключений

лорлорл18

2012 © Виталий Иоскевич | [email protected] | @ipunker

Поддержка● Field API● Entity API● VIews● Features● Commerce● ...

Page 19: Rules - правила без исключений

лорлорл19

2012 © Виталий Иоскевич | [email protected] | @ipunker

Drupal hooks?

Event = hook

Event Hook

Before saving content hook_node_presave()

After saving new content hook_node_insert()

Drupal is initializing hook_init()

Select available payment methods for an order

hook_whatever_it_is_called()

[Form name] form is being validated hook_form_alter()

User account page is viewed hook_user_view()

User has logged in hook_user_login()

... hook_три_точки()

Page 20: Rules - правила без исключений

лорлорл20

2012 © Виталий Иоскевич | [email protected] | @ipunker

ПолезностьRules debug

Page 21: Rules - правила без исключений

лорлорл21

2012 © Виталий Иоскевич | [email protected] | @ipunker

Кодеры, вернитесь!

Эта волшебная аббревиатура:

Page 22: Rules - правила без исключений

лорлорл22

2012 © Виталий Иоскевич | [email protected] | @ipunker

Кодеры, вернитесь!

Эта волшебная аббревиатура:

API

Page 23: Rules - правила без исключений

лорлорл23

2012 © Виталий Иоскевич | [email protected] | @ipunker

Кодеры, вернитесь!

'load_data_from_session' => array( 'label' => t('Load Text type value from $_SESSION'), 'parameter' => array(

'data_key' => array('type' => 'token', 'label' => t('Blackjack!'),'default mode' => 'input'

), ), 'group' => t('Rules Session'),

'provides' => array('loaded_session_data' => array(

'label' => t('Loaded session data.'),'type' => 'text',

)),

'callbacks' => array('execute' => '_rules_session_load_data_from_session',

),),

Свой собственный Rules action с блекджеком и $_SESSION

Page 24: Rules - правила без исключений

лорлорл24

2012 © Виталий Иоскевич | [email protected] | @ipunker

Кодеры, вернитесь!

'colorbox_popup' => array( 'label' => t('Open colorbox popup'), 'parameter' => array( 'url' => array(

'type' => 'text', 'label' => t('path to the content to show in popup')

),'width' => array(

'type' => 'integer', 'label' => t('width of popup window')

),'height' => array(

'type' => 'integer', 'label' => t('height of popup window')

),'use_ajax' => array(

'type' => 'boolean', 'label' => t('use AJAX to load content?'),'default value' => TRUE,

), ... ОПЯТЬ ТРИ ТОЧКИ!!!

Свой собственный Rules action: открыть что-нибудь полезное в попапе

Page 25: Rules - правила без исключений

лорлорл25

2012 © Виталий Иоскевич | [email protected] | @ipunker

Производительность

Если вы используете Views – вас это не должно интересовать.

Page 26: Rules - правила без исключений

лорлорл26

2012 © Виталий Иоскевич | [email protected] | @ipunker

Производительность

Ну ладно, расскажу.

Page 27: Rules - правила без исключений

лорлорл27

2012 © Виталий Иоскевич | [email protected] | @ipunker

ПроизводительностьТерпимо

Page 28: Rules - правила без исключений

лорлорл28

2012 © Виталий Иоскевич | [email protected] | @ipunker

ПроизводительностьБеда!

Page 29: Rules - правила без исключений

лорлорл29

2012 © Виталий Иоскевич | [email protected] | @ipunker

Хватит теории!

Мастер-класс?Вопросы?

Page 30: Rules - правила без исключений

30

2012 © Виталий Иоскевич | [email protected] | @ipunker

Rules – правила без исключенийhttp://drupal.org/project/rules