views_slideshow_ddblock.theme.inc in Views Slideshow: Dynamic Display Block 7.2
Theme & preprocess functions for the Views Slideshow: ddblock module.
File
theme/views_slideshow_ddblock.theme.incView source
<?php
/**
* @file
* Theme & preprocess functions for the Views Slideshow: ddblock module.
*/
/**
* content preprocess function.
*/
function _views_slideshow_ddblock_preprocess_views_slideshow_ddblock_main_frame(&$vars) {
// simplify variable names
$options = $vars['settings'];
// DDblock template used
if ($options['template'] != 'none') {
$view = $vars['view'];
// get view result
$rows = $view->result;
$field_rows = $view->field;
// Remove empty mappings
foreach ($options['mapping_wrapper']['mappings'] as $key => $value) {
if (empty($value['target'])) {
unset($options['mapping_wrapper']['mappings'][$key]);
}
}
// create result array
foreach ($view->result as $row_num => $result) {
foreach ($view->field as $id => $field) {
$field_output = $view->style_plugin
->get_field($row_num, $id);
foreach ($options['mapping_wrapper']['mappings'] as $mapping_key => $mapping_value) {
if ($mapping_value['source'] == $id) {
$mapping_target = $mapping_value['target'];
$result_rows[$row_num][$mapping_target] = $field_output;
}
}
}
}
// sort the result_rows using ddblock, none for using order of view
if (!empty($result_rows)) {
switch ($options['settings']['order']) {
case 'random':
shuffle($result_rows);
break;
case 'asc':
asort($result_rows);
break;
case 'desc':
rsort($result_rows);
break;
case 'none':
break;
}
$nr_of_items = count($result_rows);
// set jquery cycle settings
$settings['viewsSlideshowDdblockContent'][$view->name . '_' . $view->current_display] = array(
'block' => $view->name . '_' . $view->current_display,
'nrOfItems' => $nr_of_items,
'setDimensions' => $options['template'],
'contentContainer' => $options['content_container']['container'],
'custom' => $options['settings']['custom']['custom_jquery'],
'fx' => $options['settings']['fx'],
'speed' => (int) $options['settings']['speed'],
'timeOut' => (int) $options['settings']['timeout'],
'pause' => (int) $options['settings']['pause'],
'next' => (int) $options['settings']['next'],
'overflow' => $options['content_container']['overflow'],
'pagerToggle' => $options['settings']['pager_toggle'],
'pager' => $options['settings']['pager_settings']['pager'],
'pagerPosition' => $options['settings']['pager_settings']['pager_position'],
'nrOfPagerItems' => (int) $options['settings']['pager_settings']['nr_of_pager_items'],
'pagerContainer' => $options['settings']['pager_settings']['pager_container'],
'pagerEvent' => $options['settings']['pager_settings']['pager_event'],
'pagerDisableClick' => (int) $options['settings']['pager_settings']['pager_disable_click'],
'pagerFast' => (int) $options['settings']['pager_settings']['pager_fast'],
'pagerPause' => (int) $options['settings']['pager_settings']['pager_pause'],
'pager2' => (int) $options['settings']['pager2'],
'pager2Event' => $options['settings']['pager2_settings']['pager2_event'],
'pager2PagerHide' => $options['settings']['pager2_settings']['pager2_pager']['pager2_pager_hide'],
'pager2SlideHide' => $options['settings']['pager2_settings']['pager2_slide']['pager2_slide_hide'],
'slideText' => (int) $options['settings']['slide_text'],
'slideTextjQuery' => $options['settings']['slide_text_settings']['slide_text_jquery'],
'slideTextPosition' => $options['settings']['slide_text_settings']['slide_text_position'],
'slideTextContainer' => $options['settings']['slide_text_settings']['slide_text_container'],
'slideTextEffectBefore' => $options['settings']['slide_text_settings']['slide_jquery']['slide_text_before_effect'],
'slideTextEffectBeforeSpeed' => (int) $options['settings']['slide_text_settings']['slide_jquery']['slide_text_before_speed'],
'slideTextEffectAfter' => $options['settings']['slide_text_settings']['slide_jquery']['slide_text_after_effect'],
'slideTextEffectAfterSpeed' => (int) $options['settings']['slide_text_settings']['slide_jquery']['slide_text_after_speed'],
);
// set template variables
$vars['views_slideshow_ddblock_slider_settings']['delta'] = $view->name . '_' . $view->current_display;
//$vars['id'];
$vars['views_slideshow_ddblock_slider_settings']['debug_info'] = $options['debug_info'];
$vars['views_slideshow_ddblock_slider_settings']['output_type'] = 'view_fields';
$vars['views_slideshow_ddblock_slider_settings']['nr_of_items'] = $nr_of_items;
$vars['views_slideshow_ddblock_slider_settings']['nr_of_pager_items'] = $options['settings']['pager_settings']['nr_of_pager_items'];
$vars['views_slideshow_ddblock_slider_settings']['pager_toggle'] = $options['settings']['pager_toggle'];
$vars['views_slideshow_ddblock_slider_settings']['pager'] = $options['settings']['pager_settings']['pager'];
$vars['views_slideshow_ddblock_slider_settings']['pager_position'] = $options['settings']['pager_settings']['pager_position'];
$vars['views_slideshow_ddblock_slider_settings']['pager2'] = $options['settings']['pager2'];
$vars['views_slideshow_ddblock_slider_settings']['pager2_position'] = $options['settings']['pager2_settings']['pager2_position'];
$vars['views_slideshow_ddblock_slider_settings']['pager2_pager_prev'] = $options['settings']['pager2_settings']['pager2_pager']['pager2_pager_prev'];
$vars['views_slideshow_ddblock_slider_settings']['pager2_pager_next'] = $options['settings']['pager2_settings']['pager2_pager']['pager2_pager_next'];
$vars['views_slideshow_ddblock_slider_settings']['pager2_slide_prev'] = $options['settings']['pager2_settings']['pager2_slide']['pager2_slide_prev'];
$vars['views_slideshow_ddblock_slider_settings']['pager2_slide_next'] = $options['settings']['pager2_settings']['pager2_slide']['pager2_slide_next'];
$vars['views_slideshow_ddblock_slider_settings']['slide_text'] = $options['settings']['slide_text'];
$vars['views_slideshow_ddblock_slider_settings']['slide_text_position'] = $options['settings']['slide_text_settings']['slide_text_position'];
$vars['views_slideshow_ddblock_slider_settings']['view_name'] = $view->name;
$vars['views_slideshow_ddblock_slider_settings']['view_display_id'] = $view->current_display;
if ($vars['views_slideshow_ddblock_slider_settings']['slide_text_position'] == "top" || $vars['views_slideshow_ddblock_slider_settings']['slide_text_position'] == "bottom") {
$vars['views_slideshow_ddblock_slider_settings']['slide_direction'] = "horizontal";
}
else {
$vars['views_slideshow_ddblock_slider_settings']['slide_direction'] = "vertical";
}
$vars['views_slideshow_ddblock_slider_settings']['template'] = $options['template'];
$vars['views_slideshow_ddblock_slider_settings']['template_size'] = $options['template_size_wrapper']['template_size'];
$vars['views_slideshow_ddblock_content'] = $result_rows;
// Add the required JS and CSS.
// Don't load javascript unless libraries module is present.
if (module_exists('libraries')) {
// Load jQuery Cycle
$cycle_path = libraries_get_path('jquery.cycle');
if (!empty($cycle_path) && file_exists($cycle_path . '/jquery.cycle.all.min.js')) {
drupal_add_js($cycle_path . '/jquery.cycle.all.min.js');
}
elseif (!empty($cycle_path) && file_exists($cycle_path . '/jquery.cycle.all.js')) {
drupal_add_js($cycle_path . '/jquery.cycle.all.js');
}
//load easing
$easing_path = libraries_get_path('easing');
if (!empty($easing_path) && file_exists($easing_path . '/jquery.easing.1.1.3.js')) {
drupal_add_js($easing_path . '/jquery.easing.1.1.3.js');
}
elseif (!empty($easing_path) && file_exists($easing_path . '/jquery.easing.1.1.1.js')) {
drupal_add_js($easing_path . '/jquery.easing.1.1.1.js');
}
}
// Load views_slideshow_ddblock js files
$module_path = drupal_get_path('module', 'views_slideshow_ddblock');
// add json2.pack.js file
drupal_add_js($module_path . '/js/json2.pack.js');
// Load views_slideshow_ddblock.js
drupal_add_js($module_path . '/js/views_slideshow_ddblock.js');
// Add settings for views_slideshow_ddblock.js;
drupal_add_js($settings, array(
'type' => 'setting',
'scope' => JS_DEFAULT,
));
// additional candidate template files
$vars['theme_hook_suggestions'][] = 'views_slideshow_ddblock_main_frame__' . str_replace('-', '_', $options['template']);
$vars['theme_hook_suggestions'][] = 'views_slideshow_ddblock_main_frame__' . str_replace('-', '_', $vars['views_slideshow_ddblock_slider_settings']['delta']);
// pager content settings
$pager_settings['delta'] = $view->name . '_' . $view->current_display;
$pager_settings['debug_info'] = $options['debug_info'];
$pager_settings['output_type'] = 'view_fields';
$pager_settings['pager'] = $options['settings']['pager_settings']['pager'];
$pager_settings['pager_container'] = $options['settings']['pager_settings']['pager_container'];
$pager_settings['pager_event'] = $options['settings']['pager_settings']['pager_event'];
$pager_settings['pager_position'] = $options['settings']['pager_settings']['pager_position'];
$pager_settings['pager2'] = $options['settings']['pager2'];
$pager_settings['pager2_position'] = $options['settings']['pager2_settings']['pager2_position'];
$pager_settings['pager2_pager_prev'] = $options['settings']['pager2_settings']['pager2_pager']['pager2_pager_prev'];
$pager_settings['pager2_pager_next'] = $options['settings']['pager2_settings']['pager2_pager']['pager2_pager_next'];
$pager_settings['pager2_slide_prev'] = $options['settings']['pager2_settings']['pager2_slide']['pager2_slide_prev'];
$pager_settings['pager2_slide_next'] = $options['settings']['pager2_settings']['pager2_slide']['pager2_slide_next'];
$pager_settings['template'] = $options['template'];
$pager_settings['view_name'] = $view->name;
$pager_settings['view_display_id'] = $view->current_display;
$pager_settings['nr_of_items'] = $nr_of_items;
$pager_settings['nr_of_pager_items'] = $options['settings']['pager_settings']['nr_of_pager_items'];
$vars['views_slideshow_ddblock_pager_content'] = theme('views_slideshow_ddblock_pager_content', array(
'views_slideshow_ddblock_pager_settings' => $pager_settings,
'views_slideshow_ddblock_pager_content' => $vars['views_slideshow_ddblock_content'],
));
views_slideshow_ddblock_show_content_debug_info($vars);
$vars['views_slideshow_ddblock_slider_items'] = $vars['views_slideshow_ddblock_content'];
// set pager variable for javascript
$settings = array();
$settings['ddblockCustomTemplate'] = array(
'pager' => $pager_settings['pager'],
'pagerContainer' => $pager_settings['pager_container'],
'pagerPosition' => $pager_settings['pager_position'],
);
drupal_add_js($settings, array(
'type' => 'setting',
'scope' => JS_DEFAULT,
));
}
}
}
/**
* Pager-items preprocess function.
*/
function _views_slideshow_ddblock_preprocess_views_slideshow_ddblock_pager_content(&$vars) {
// drupal_set_message('<pre>pager_content: ' . var_export($vars['settings'], true) . '</pre>');
if (!empty($vars['views_slideshow_ddblock_pager_content'])) {
//simplify variable
$settings = $vars['views_slideshow_ddblock_pager_settings'];
// additional candidate template files
$vars['theme_hook_suggestions'][] = 'views_slideshow_ddblock_pager_content__' . str_replace('-', '_', $settings['template']);
$vars['theme_hook_suggestions'][] = 'views_slideshow_ddblock_pager_content__' . str_replace('-', '_', $settings['delta']);
// for showing debug info
views_slideshow_ddblock_show_pager_debug_info($vars);
$vars['views_slideshow_ddblock_pager_items'] = $vars['views_slideshow_ddblock_pager_content'];
}
}
Functions
Name | Description |
---|---|
_views_slideshow_ddblock_preprocess_views_slideshow_ddblock_main_frame | content preprocess function. |
_views_slideshow_ddblock_preprocess_views_slideshow_ddblock_pager_content | Pager-items preprocess function. |