SlideShare a Scribd company logo
1 of 21
Views - стандарт вывода
списка данных.
Расширение Views -
написание плагинов
DrupalCamp Kyiv 2011
Views – это лишнее, или технологии движут
человечество!?
PHP СУБД
Drupal
Views
Всё так просто!
Всё можно написать на PHP, используя MySQL.
Ничего лишнего.
Сколько реально надо знать!
Виды вывода данных
Роль 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="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>
Суть моего шаблона
<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>
Форма настройки данного плагина
Добавляем настройки плагина
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" .'),
);
….
}
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

More Related Content

What's hot

Drupal и возможности его применения
Drupal и возможности его примененияDrupal и возможности его применения
Drupal и возможности его примененияMedia Gorod
 
Everything You Need to Know About WP_Query, WordCamp Russia 2014
Everything You Need to Know About WP_Query, WordCamp Russia 2014Everything You Need to Know About WP_Query, WordCamp Russia 2014
Everything You Need to Know About WP_Query, WordCamp Russia 2014Sergey Biryukov
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 
i18n for Plugin and Theme Developers, WordCamp Moscow 2016
i18n for Plugin and Theme Developers, WordCamp Moscow 2016i18n for Plugin and Theme Developers, WordCamp Moscow 2016
i18n for Plugin and Theme Developers, WordCamp Moscow 2016Sergey Biryukov
 
C# Web. Занятие 04.
C# Web. Занятие 04.C# Web. Занятие 04.
C# Web. Занятие 04.Igor Shkulipa
 
C# Web. Занятие 12.
C# Web. Занятие 12.C# Web. Занятие 12.
C# Web. Занятие 12.Igor Shkulipa
 
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)Ontico
 
Python и Django – платформа для фрилансера
Python и Django – платформа для фрилансераPython и Django – платформа для фрилансера
Python и Django – платформа для фрилансераAlexander Koshelev
 
Полный цикл разработки на Python + Django
Полный цикл разработки на Python + DjangoПолный цикл разработки на Python + Django
Полный цикл разработки на Python + DjangoAzamat Tokhtaev
 
Django: инструкция по применению
Django: инструкция по применениюDjango: инструкция по применению
Django: инструкция по применениюIvan Kolodyazhny
 
Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"zabej
 

What's hot (12)

Drupal и возможности его применения
Drupal и возможности его примененияDrupal и возможности его применения
Drupal и возможности его применения
 
Everything You Need to Know About WP_Query, WordCamp Russia 2014
Everything You Need to Know About WP_Query, WordCamp Russia 2014Everything You Need to Know About WP_Query, WordCamp Russia 2014
Everything You Need to Know About WP_Query, WordCamp Russia 2014
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 
i18n for Plugin and Theme Developers, WordCamp Moscow 2016
i18n for Plugin and Theme Developers, WordCamp Moscow 2016i18n for Plugin and Theme Developers, WordCamp Moscow 2016
i18n for Plugin and Theme Developers, WordCamp Moscow 2016
 
C# Web. Занятие 04.
C# Web. Занятие 04.C# Web. Занятие 04.
C# Web. Занятие 04.
 
C# Web. Занятие 12.
C# Web. Занятие 12.C# Web. Занятие 12.
C# Web. Занятие 12.
 
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
 
Python и Django – платформа для фрилансера
Python и Django – платформа для фрилансераPython и Django – платформа для фрилансера
Python и Django – платформа для фрилансера
 
Полный цикл разработки на Python + Django
Полный цикл разработки на Python + DjangoПолный цикл разработки на Python + Django
Полный цикл разработки на Python + Django
 
Django: инструкция по применению
Django: инструкция по применениюDjango: инструкция по применению
Django: инструкция по применению
 
Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"Мастер-класс "Привет, Drupal"
Мастер-класс "Привет, Drupal"
 

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

Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupalLviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupaldeWeb
 
Первые шаги после установки WordPress
Первые шаги после установки WordPressПервые шаги после установки WordPress
Первые шаги после установки WordPressDarja Kruzhkova
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1dima_kuzovlev
 
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор БогатырёвMinsk PHP User Group
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Dev_Party
 
Инсталляционные профили, создание сборок
Инсталляционные профили, создание сборокИнсталляционные профили, создание сборок
Инсталляционные профили, создание сборокAndrii Podanenko
 
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Igor Sazonov
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) it-people
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Fedor Lavrentyev
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальBadoo Development
 
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...Viktor Likin
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NETVitaly Baum
 
Разработка бизнес-приложений на OpenUI5 — Николай Надоричев, MOLGA Consulting
Разработка бизнес-приложений на OpenUI5 — Николай Надоричев, MOLGA ConsultingРазработка бизнес-приложений на OpenUI5 — Николай Надоричев, MOLGA Consulting
Разработка бизнес-приложений на OpenUI5 — Николай Надоричев, MOLGA ConsultingYandex
 
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.Alex Barkov
 

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

Drupal Vs Other
Drupal Vs OtherDrupal Vs Other
Drupal Vs Other
 
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в DrupalLviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
 
Первые шаги после установки WordPress
Первые шаги после установки WordPressПервые шаги после установки WordPress
Первые шаги после установки WordPress
 
Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1Вёрстка WordPress тем - WP Kharkiv Meetup #1
Вёрстка WordPress тем - WP Kharkiv Meetup #1
 
Wordpress theme
Wordpress themeWordpress theme
Wordpress theme
 
Zend Framework и Doctrine
Zend Framework и DoctrineZend Framework и Doctrine
Zend Framework и Doctrine
 
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
 
Инсталляционные профили, создание сборок
Инсталляционные профили, создание сборокИнсталляционные профили, создание сборок
Инсталляционные профили, создание сборок
 
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
 
Разработка бизнес-приложений на OpenUI5 — Николай Надоричев, MOLGA Consulting
Разработка бизнес-приложений на OpenUI5 — Николай Надоричев, MOLGA ConsultingРазработка бизнес-приложений на OpenUI5 — Николай Надоричев, MOLGA Consulting
Разработка бизнес-приложений на OpenUI5 — Николай Надоричев, MOLGA Consulting
 
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
 

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

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