Views - стандарт вывода
списка данных.
Расширение Views -
написание плагинов
DrupalCamp Kyiv 2011
Views – это лишнее, или технологии движут
человечество!?
PHP СУБД
Drupal
Views
Всё так просто!
Всё можно написать на PHP, ...
Виды вывода данных
Роль Views
●Вывод элемента. Вывод материала.
●Вывод множества однотипной информации.
Список – Views.
●В...
Вывод множества разнотипной информации
Blocks(Блоки), Panels(Панели)
Вывод множества однотипной информации
Список – Views
Основная область
Область стиля
Заголовок, подвал
Стиль рядка
Способы возможной реализации бизнес логики
●Написание отдельного модуля, реализующий получение и
темизацию данных без испо...
●Реализация hook_views_api,
●Реализация hook_views_plugins, объявление плагинов.
●Реализация плагинов.
●Реализация функций...
Структура каталогов модуля
Определение дополнительных файлов,
используемых в module.info
...
files[] = s5_views_styleplugin_scrollbox.module
files[] ...
Реализация hook_views_api
function s5_views_styleplugin_scrollbox_views_api() {
return array(
'api' => '3.0-alpha1',
);
}
Реализация hook_views_plugins, объявление
плагинов.
function s5_views_styleplugin_scrollbox_views_plugins() {
return array...
Реализация плагинов
class s5_views_styleplugin_scrollbox_plugin_style extends views_plugin_style {
//Обработка вывода.
fun...
Реализация функции предварительной
обработки шаблонов
<?php
/*
* Обрабатываем данные, которые поступают
* в шаблон.
*/
fun...
Реализация шаблона вывода
<div class="s5_views_styleplugin_scrollbox">
<?php if (!empty($title)): ?>
<<?php print $group_e...
Суть моего шаблона
<script language="JavaScript">
jQuery(document).ready(function(){
jQuery('.s5_views_styleplugin_scrollb...
Форма настройки данного плагина
Добавляем настройки плагина
function option_definition() {
$options = parent::option_definition();
$options['axis'] = arra...
Views c данными. Плагин – HTML list
Views c нашим плагином
Материалы:
●Starting Views 2 Documentation
http://groups.drupal.org/node/10129
●Views 2 - Writing plugins, handlers, and s...
Контакты:
Виктор, Витя, Витьок.
Блог: vlikin.blogspot.com
Почта: viktor.likin@gmail.com
Upcoming SlideShare
Loading in …5
×

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

631 views
588 views

Published on

Презинтация к докладу с DrupalCamp Kyiv 2011

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
631
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Views - стандарт вывода списка данных. Расширение Views - написание плагинов DrupalCamp Kyiv 2011
  2. 2. Views – это лишнее, или технологии движут человечество!? PHP СУБД Drupal Views Всё так просто! Всё можно написать на PHP, используя MySQL. Ничего лишнего. Сколько реально надо знать!
  3. 3. Виды вывода данных Роль Views ●Вывод элемента. Вывод материала. ●Вывод множества однотипной информации. Список – Views. ●Вывод множества разнотипной информации. Blocks(Блоки), Panels(Панели).
  4. 4. Вывод множества разнотипной информации Blocks(Блоки), Panels(Панели)
  5. 5. Вывод множества однотипной информации Список – Views Основная область Область стиля Заголовок, подвал Стиль рядка
  6. 6. Способы возможной реализации бизнес логики ●Написание отдельного модуля, реализующий получение и темизацию данных без использования Views. ●Перегрузка тем существующих Views. ●Создание модуля, реализирующего различные плагины для Views, с возможностью дальнейшего использования возможностей Drupal: хуки, препроцессинг, перегрузка тем.
  7. 7. ●Реализация hook_views_api, ●Реализация hook_views_plugins, объявление плагинов. ●Реализация плагинов. ●Реализация функций предварительной обработки шаблонов. ●Реализация шаблонов .tpl.php. Завершённый плагин стиля состоит из компонентов:
  8. 8. Структура каталогов модуля
  9. 9. Определение дополнительных файлов, используемых в 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
  10. 10. Реализация hook_views_api function s5_views_styleplugin_scrollbox_views_api() { return array( 'api' => '3.0-alpha1', ); }
  11. 11. Реализация hook_views_plugins, объявление плагинов. 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', ), ), ); }
  12. 12. Реализация плагинов class s5_views_styleplugin_scrollbox_plugin_style extends views_plugin_style { //Обработка вывода. function render() { ... } //Параметры по умолчанию. function option_definition() { ... } //Форма параметров. function options_form(&$form, &$form_state) { ... } } Вот вам и ООП в Drupal Работа классов уже реализовано в базовых классах. Необходимую логику работы выполняем путём перегрузки базовых классов
  13. 13. Реализация функции предварительной обработки шаблонов <?php /* * Обрабатываем данные, которые поступают * в шаблон. */ function template_preprocess_s5_views_styleplugin_scrollbox_theme(&$vars) { //print_r($vars); } ?>
  14. 14. Реализация шаблона вывода <div class="s5_views_styleplugin_scrollbox"> <?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>
  15. 15. Суть моего шаблона <script language="JavaScript"> 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>
  16. 16. Форма настройки данного плагина
  17. 17. Добавляем настройки плагина 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? "x" or "y" .'), ); …. }
  18. 18. Views c данными. Плагин – HTML list
  19. 19. Views c нашим плагином
  20. 20. Материалы: ●Starting Views 2 Documentation http://groups.drupal.org/node/10129 ●Views 2 - Writing plugins, handlers, and supporting new tables http://drupaldojo.com/session/views-2-writing-plugins-handlers-and-supporting-new-tables ●Написание плагинов «стиля» и «рядка» для Views 2(Перевод статьи ”Starting Views 2 Documentation”). http://vlikin.blogspot.com/2011/03/views-2.html Материалы по докладу будут выложены по адресу http://vlikin.blogspot.com/2011/06/drupalcamp-kyiv-2011-views-views.html
  21. 21. Контакты: Виктор, Витя, Витьок. Блог: vlikin.blogspot.com Почта: viktor.likin@gmail.com

×