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

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

on

  • 912 views

 

Statistics

Views

Total Views
912
Views on SlideShare
912
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • Views - стандарт вывода списка данных. Расширение Views - написание плагинов
    DrupalCamp Kyiv 2011
  • Views – это лишнее, или технологии движут человечество!? Всё так просто! Всё можно написать на PHP, используя MySQL. Ничего лишнего. Сколько реально надо знать! PHP СУБД Drupal Views
  • Виды вывода данных Роль Views
    • Вывод элемента. Вывод материала.
    • Вывод множества однотипной информации.
    • Список – Views.
    • Вывод множества разнотипной информации.
    • Blocks(Блоки), Panels(Панели).
    • Вывод множества разнотипной информации Blocks(Блоки), Panels(Панели)
    • Вывод множества однотипной информации Список – Views
    Основная область Область стиля Заголовок, подвал Стиль рядка
  • Способы возможной реализации бизнес логики
    • Написание отдельного модуля, реализующий получение и темизацию данных без использования Views.
    • Перегрузка тем существующих Views.
    • Создание модуля, реализирующего различные плагины для Views, с возможностью дальнейшего использования возможностей Drupal: хуки, препроцессинг, перегрузка тем.
    • Реализация hook_views_api ,
    • Реализация hook_views_plugins , объявление плагинов.
    • Реализация плагинов.
    • Реализация функций предварительной обработки шаблонов.
    • Реализация шаблонов .tpl.php.
    Завершённый плагин стиля состоит из компонентов:
  • Структура каталогов модуля
  • Определение дополнительных файлов, используемых в 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
    • Реализация 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( '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', ), ), ); }
    • Реализация плагинов
    class s5_views_styleplugin_scrollbox_plugin_style extends views_plugin_style { //Обработка вывода. function render() { ... } //Параметры по умолчанию. function option_definition() { ... } //Форма параметров. function options_form(&$form, &$form_state) { ... } } Вот вам и ООП в Drupal Работа классов уже реализовано в базовых классах. Необходимую логику работы выполняем путём перегрузки базовых классов
    • Реализация функции предварительной обработки шаблонов
    <?php /* * Обрабатываем данные, которые поступают * в шаблон. */ function template_preprocess_s5_views_styleplugin_scrollbox_theme(&$vars) { //print_r($vars); } ?>
  • Реализация шаблона вывода <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>
  • Суть моего шаблона <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>
  • Форма настройки данного плагина
  • Добавляем настройки плагина 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; .'), ); …. }
  • Views c данными. Плагин – HTML list
  • Views c нашим плагином
  • Материалы:
    • 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
  • Контакты: Виктор, Витя, Витьок. Блог: vlikin.blogspot.com Почта: viktor.likin@gmail.com