Mercurial > hg > rr-repo
diff sites/all/modules/flexslider/flexslider_views/flexslider_views.module @ 2:b74b41bb73f0
-- Google analytics module
author | danieleb <danielebarchiesi@me.com> |
---|---|
date | Thu, 22 Aug 2013 17:22:54 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sites/all/modules/flexslider/flexslider_views/flexslider_views.module Thu Aug 22 17:22:54 2013 +0100 @@ -0,0 +1,50 @@ +<?php + +/** + * @file + * Adds Views plugins for FlexSlider + * + * @author Mathew Winstone <mwinstone@coldfrontlabs.ca> + */ + +/** + * Implements hook_views_api(). + */ +function flexslider_views_views_api() { + return array( + 'api' => 3, + ); +} + +/** + * Add a preprocessor for flexslider for dealing with FlexSlider views + */ +function flexslider_views_preprocess_flexslider(&$vars) { + // Only run the preprocessor if it is a view + if (!empty($vars['view'])) { + // Prepare all data to be passed to theme_flexslider(). + $items = array(); + $view = $vars['view']; + $settings = array(); + $settings['optionset'] = $vars['options']['optionset']; + + $row_plugin = $view->style_plugin->row_plugin; + + foreach ($vars['rows'] as $id => $row) { + // Render the row into a slide + $view->row_index = $id; + $item['slide'] = $row_plugin->render($row); + + $items[] = $item; + } + + // Add the slide items to the variables + $vars['items'] = $items; + + // Add the attributes + $settings['attributes']['id'] = $vars['options']['id']; + + // Reset the options to the processed values + $vars['settings'] = $settings; + } +} \ No newline at end of file