Download - Rules - правила без исключений
![Page 1: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/1.jpg)
1
2012 © Виталий Иоскевич | [email protected] | @ipunker
Я не хочу писать код.
Rules – правила без исключенийhttp://drupal.org/project/rules
!!!Disclaimer!!!Drupal beginners only!
Слабонервные кодеры могут покинуть помещение.
![Page 2: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/2.jpg)
лорлорл2
● Описание и хранение данных:Сущности (Entities)
● Выборка данных: Представления (Views)
● Вывод данных:Context, Panels, ...
● Внешний вид: Drupal Themes● Вроде все, или чего-то не хватает?
Drupal для сайтбилдера
2012 © Виталий Иоскевич | [email protected] | @ipunker
![Page 3: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/3.jpg)
лорлорл3
2012 © Виталий Иоскевич | [email protected] | @ipunker
● Как уведомить автора ноды о комментарии?● Как послать переадресовать анонимного
пользователя?● Как создать ноду определенного типа
автоматически?● Кто убил Кеннеди?● Как сменить роль пользователя автоматически?● Почему на мой сайт ходит один юзер в день, и
его зовут Гугл Бот?● Почему мой сайт на Друпале?● Кто все эти люди?
Простые вопросы
![Page 4: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/4.jpg)
лорлорл4
2012 © Виталий Иоскевич | [email protected] | @ipunker
Drupal.org: там много модулей!!!
Простой ответ:
![Page 5: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/5.jpg)
лорлорл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 - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/6.jpg)
лорлорл6
2012 © Виталий Иоскевич | [email protected] | @ipunker
Не надо запоминать предыдущий слайд, там все неправда.
Модули, модули!!!
![Page 7: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/7.jpg)
лорлорл7
2012 © Виталий Иоскевич | [email protected] | @ipunker
Причем тут правила, если нам нужны действия?
We need [conditional] actions!
![Page 8: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/8.jpg)
лорлорл8
2012 © Виталий Иоскевич | [email protected] | @ipunker
Event + [Condition] + Action = Rule(s)
Событие + [Условие] + Действие = Rule(s)
![Page 9: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/9.jpg)
лорлорл9
2012 © Виталий Иоскевич | [email protected] | @ipunker
● Описание и хранение данных:Сущности (Entities)
● Выборка данных: Представления (Views)
● Вывод данных:Context, Panels, ...
● Внешний вид: Drupal Themes● ...
Drupal для сайтбилдера
![Page 10: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/10.jpg)
лорлорл10
2012 © Виталий Иоскевич | [email protected] | @ipunker
● Описание и хранение данных:Сущности (Entities)
● Выборка данных: Представления (Views)
● Вывод данных:Context, Panels, ...
● Внешний вид: Drupal Themes● События, реакции, логика: Rules
Drupal для сайтбилдера
![Page 11: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/11.jpg)
лорлорл11
2012 © Виталий Иоскевич | [email protected] | @ipunker
Event (событие) [Условие] Действие
Добавлена нода Нода имеет тип “Новость”
Отправить Email модераторам
Юзер зашел на сайт Юзер имеет роль “Модератор”
Показать сообщение с кол-вом последних новостей
... Тут ровно три точки ....
Модератор опубликовал ноду
Автор ноды – аноним;Email автора в системе не зарегистрирован
Создать юзера;Присвоить роль;Начислить 5 капель карму
Добавлен комментарий Автор комментария – автор ноды
Не уведомлять автора ноды
Content (URL) is viewed URL= [АДРЕС НОДЫ] Редирект на другую страницу
Простые правила
![Page 15: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/15.jpg)
лорлорл15
2012 © Виталий Иоскевич | [email protected] | @ipunker
Ой-ой-ой, что это?Loop
if()
else{}
Rule in Rule
![Page 16: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/16.jpg)
лорлорл16
2012 © Виталий Иоскевич | [email protected] | @ipunker
Что еще?● Rules components: из Rules можно вызывать Rules● Loops – циклы в действиях Rules● Rules Scheduler - запуск Rules по расписанию (да-да,
Cron нужен)
![Page 17: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/17.jpg)
лорлорл17
2012 © Виталий Иоскевич | [email protected] | @ipunker
И снова модули● Conditional Rules: добавляем условия в действия (доп.
модуль). If, else, switch...● Rules forms: события генерации (build), валидации,
сабмита форм (забыть как страшный сон!!!).● Rules Links● ...
![Page 18: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/18.jpg)
лорлорл18
2012 © Виталий Иоскевич | [email protected] | @ipunker
Поддержка● Field API● Entity API● VIews● Features● Commerce● ...
![Page 19: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/19.jpg)
лорлорл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 21: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/21.jpg)
лорлорл21
2012 © Виталий Иоскевич | [email protected] | @ipunker
Кодеры, вернитесь!
Эта волшебная аббревиатура:
![Page 22: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/22.jpg)
лорлорл22
2012 © Виталий Иоскевич | [email protected] | @ipunker
Кодеры, вернитесь!
Эта волшебная аббревиатура:
API
![Page 23: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/23.jpg)
лорлорл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 - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/24.jpg)
лорлорл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 - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/25.jpg)
лорлорл25
2012 © Виталий Иоскевич | [email protected] | @ipunker
Производительность
Если вы используете Views – вас это не должно интересовать.
![Page 26: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/26.jpg)
лорлорл26
2012 © Виталий Иоскевич | [email protected] | @ipunker
Производительность
Ну ладно, расскажу.
![Page 29: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/29.jpg)
лорлорл29
2012 © Виталий Иоскевич | [email protected] | @ipunker
Хватит теории!
Мастер-класс?Вопросы?
![Page 30: Rules - правила без исключений](https://reader034.vdocuments.pub/reader034/viewer/2022050804/547d4b535906b57a378b4651/html5/thumbnails/30.jpg)
30
2012 © Виталий Иоскевич | [email protected] | @ipunker
Rules – правила без исключенийhttp://drupal.org/project/rules