<ul>Views - стандарт вывода списка данных. Расширение Views - написание плагинов  </ul>DrupalCamp Kyiv 2011
Views – это лишнее, или технологии движут человечество!?  Всё так просто! Всё можно написать на PHP, используя MySQL. Ниче...
Виды вывода данных Роль Views <ul><li>Вывод элемента. Вывод материала.
Вывод множества однотипной информации.
Список – Views.
Вывод множества разнотипной информации.
Blocks(Блоки), Panels(Панели). </li></ul>
<ul>Вывод множества разнотипной информации Blocks(Блоки), Panels(Панели) </ul>
<ul>Вывод множества однотипной информации Список – Views </ul>Основная область Область стиля Заголовок, подвал Стиль рядка
Способы возможной реализации бизнес логики <ul><li>Написание отдельного модуля, реализующий получение и темизацию данных б...
Перегрузка тем существующих Views.
Создание модуля, реализирующего различные плагины для Views, с возможностью дальнейшего использования возможностей Drupal:...
<ul><li>Реализация  hook_views_api ,
Реализация  hook_views_plugins , объявление плагинов.
Реализация плагинов.
Реализация функций предварительной обработки шаблонов.
Реализация шаблонов .tpl.php. </li></ul>Завершённый плагин стиля состоит из компонентов:
Структура каталогов модуля
Определение дополнительных файлов, используемых в module.info ... files[] = s5_views_styleplugin_scrollbox.module files[] ...
<ul>Реализация  hook_views_api </ul>function s5_views_styleplugin_scrollbox_views_api() { return array( 'api' => '3.0-alph...
<ul>Реализация  hook_views_plugins , объявление плагинов. </ul>function s5_views_styleplugin_scrollbox_views_plugins() { r...
Upcoming SlideShare
Loading in …5
×

DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views - написание плагинов.

1,042 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,042
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views - написание плагинов.

  1. 1. <ul>Views - стандарт вывода списка данных. Расширение Views - написание плагинов </ul>DrupalCamp Kyiv 2011
  2. 2. Views – это лишнее, или технологии движут человечество!? Всё так просто! Всё можно написать на PHP, используя MySQL. Ничего лишнего. Сколько реально надо знать! PHP СУБД Drupal Views
  3. 3. Виды вывода данных Роль Views <ul><li>Вывод элемента. Вывод материала.
  4. 4. Вывод множества однотипной информации.
  5. 5. Список – Views.
  6. 6. Вывод множества разнотипной информации.
  7. 7. Blocks(Блоки), Panels(Панели). </li></ul>
  8. 8. <ul>Вывод множества разнотипной информации Blocks(Блоки), Panels(Панели) </ul>
  9. 9. <ul>Вывод множества однотипной информации Список – Views </ul>Основная область Область стиля Заголовок, подвал Стиль рядка
  10. 10. Способы возможной реализации бизнес логики <ul><li>Написание отдельного модуля, реализующий получение и темизацию данных без использования Views.
  11. 11. Перегрузка тем существующих Views.
  12. 12. Создание модуля, реализирующего различные плагины для Views, с возможностью дальнейшего использования возможностей Drupal: хуки, препроцессинг, перегрузка тем. </li></ul>
  13. 13. <ul><li>Реализация hook_views_api ,
  14. 14. Реализация hook_views_plugins , объявление плагинов.
  15. 15. Реализация плагинов.
  16. 16. Реализация функций предварительной обработки шаблонов.
  17. 17. Реализация шаблонов .tpl.php. </li></ul>Завершённый плагин стиля состоит из компонентов:
  18. 18. Структура каталогов модуля
  19. 19. Определение дополнительных файлов, используемых в module.info ... files[] = s5_views_styleplugin_scrollbox.module files[] = theme/s5_views_styleplugin_scrollbox.theme.inc files[] = s5_views_styleplugin_scrollbox_plugin_style.handler.inc files[] = s5_views_styleplugin_scrollbox.views.inc s5_views_styleplugin_scrollbox.info
  20. 20. <ul>Реализация hook_views_api </ul>function s5_views_styleplugin_scrollbox_views_api() { return array( 'api' => '3.0-alpha1', ); }
  21. 21. <ul>Реализация hook_views_plugins , объявление плагинов. </ul>function s5_views_styleplugin_scrollbox_views_plugins() { return array( 'style' => array( 's5_views_styleplugin_scrollbox' => array( 'title' => t('Scroll Box S5'), 'help' => t('Display the results as a slideshow.'), 'handler' => 's5_views_styleplugin_scrollbox_plugin_style', 'uses options' => TRUE, 'uses fields' => TRUE, 'uses row plugin' => TRUE, 'uses grouping' => FALSE, 'type' => 'normal', 'parent' => 'list', 'path' => drupal_get_path('module', 's5_views_styleplugin_scrollbox'), 'theme' => 's5_views_styleplugin_scrollbox_theme', 'theme path' => drupal_get_path('module', 's5_views_styleplugin_scrollbox') . '/theme', 'theme file' => 's5_views_styleplugin_scrollbox.theme.inc', ), ), ); }
  22. 22. <ul>Реализация плагинов </ul>class s5_views_styleplugin_scrollbox_plugin_style extends views_plugin_style { //Обработка вывода. function render() { ... } //Параметры по умолчанию. function option_definition() { ... } //Форма параметров. function options_form(&$form, &$form_state) { ... } } Вот вам и ООП в Drupal Работа классов уже реализовано в базовых классах. Необходимую логику работы выполняем путём перегрузки базовых классов
  23. 23. <ul>Реализация функции предварительной обработки шаблонов </ul><?php /* * Обрабатываем данные, которые поступают * в шаблон. */ function template_preprocess_s5_views_styleplugin_scrollbox_theme(&$vars) { //print_r($vars); } ?>
  24. 24. Реализация шаблона вывода <div class=&quot;s5_views_styleplugin_scrollbox&quot;> <?php if (!empty($title)): ?> <<?php print $group_element; ?><?php print drupal_attributes($group_attributes); ?>> <?php print $title; ?> </<?php print $group_element; ?>> <?php endif; ?> <?php if (!empty($list_element)): ?> <<?php print $list_element; ?><?php print drupal_attributes($list_attributes); ?>> <?php endif; ?> <?php foreach ($rows as $id => $row): ?> <?php if (!empty($row_element)): ?> <<?php print $row_element; ?><?php print drupal_attributes($row_attributes[$id]); ?>> <?php endif; ?> <?php print $row; ?> <?php if (!empty($row_element)): ?> </<?php print $row_element; ?>> <?php endif; ?> <?php endforeach; ?> <?php if (!empty($list_element)): ?> </<?php print $list_element; ?>> <?php endif; ?> </div>
  25. 25. Суть моего шаблона <script language=&quot;JavaScript&quot;> jQuery(document).ready(function(){ jQuery('.s5_views_styleplugin_scrollbox').s5_tinyscrollbar({ 'axis':'<?php echo $options['axis'] ?>', 'wheel':'<?php echo $options['wheel'] ?>', 'scroll':'<?php echo $options['scroll'] ?>', 'size':'<?php echo $options['size'] ?>', 'sizethumb':'<?php echo $options['sizethumb'] ?>', }); }); </script>
  26. 26. Форма настройки данного плагина
  27. 27. Добавляем настройки плагина function option_definition() { $options = parent::option_definition(); $options['axis'] = array('default' => 'x'); ... return $options; } function options_form(&$form, &$form_state) { $form['axis'] = array( '#type' => 'radios', '#title' => t('Axis'), '#options' => array('x' => 'x', 'y' => 'y'), '#default_value' => $this->options['axis']==''?'x':$this->options['axis'], '#description' => t('vertical or horizontal scroller? &quot;x&quot; or &quot;y&quot; .'), ); …. }
  28. 28. Views c данными. Плагин – HTML list
  29. 29. Views c нашим плагином
  30. 30. Материалы: <ul><li>Starting Views 2 Documentation </li><ul><li>http://groups.drupal.org/node/10129 </li></ul><li>Views 2 - Writing plugins, handlers, and supporting new tables </li><ul><li>http://drupaldojo.com/session/views-2-writing-plugins-handlers-and-supporting-new-tables </li></ul><li>Написание плагинов «стиля» и «рядка» для Views 2(Перевод статьи </li><ul><li>”Starting Views 2 Documentation”).
  31. 31. http://vlikin.blogspot.com/2011/03/views-2.html
  32. 32. Материалы по докладу будут выложены по адресу
  33. 33. http://vlikin.blogspot.com/2011/06/drupalcamp-kyiv-2011-views-views.html </li></ul></ul>
  34. 34. Контакты: Виктор, Витя, Витьок. Блог: vlikin.blogspot.com Почта: viktor.likin@gmail.com

×