You are here

views_slideshow_ddblock.module in Views Slideshow: Dynamic Display Block 7.2

Same filename and directory in other branches
  1. 6.2 views_slideshow_ddblock.module
  2. 6 views_slideshow_ddblock.module

Views Slideshow: ddblock adds ddblock functionality to Views Slideshows.

File

views_slideshow_ddblock.module
View source
<?php

/**
 *  @file
 *  Views Slideshow: ddblock adds ddblock functionality to Views Slideshows.
 *
 */

/**
 * Implements hook_init().
 */
function views_slideshow_ddblock_init() {

  // add formoptions.js for admin form
  drupal_add_js(drupal_get_path('module', 'views_slideshow_ddblock') . "/js/formoptions.js");
}

/**
 * Implements hook_menu().
 */
function views_slideshow_ddblock_menu() {
  $items = array();
  $items['views_slideshow_ddblock_mapping/js/%'] = array(
    'page callback' => 'views_slideshow_ddblock_mapping_js',
    'page arguments' => array(
      2,
    ),
    'access arguments' => array(
      'access content',
    ),
    'type ' => MENU_CALLBACK,
  );

  // Ahah update available template sizes of themes.
  // This block defines the path to which the AHAH call points.
  // The path relays the call to a specific AHAH callback function.
  $items['views_slideshow_ddblock/js'] = array(
    'page callback' => 'views_slideshow_ddblock_select_template_ahah',
    // the AHAH callback function
    'access callback' => TRUE,
    'file' => 'views_slideshow_ddblock.views_slideshow.inc',
    'type' => MENU_CALLBACK,
  );
  return $items;
}

/**
 * Implements hook_theme().
 */
function views_slideshow_ddblock_theme($existing, $type, $theme, $path) {
  return array(
    'views_slideshow_ddblock_pager_content' => array(
      'variables' => array(
        'views_slideshow_ddblock_pager_settings' => NULL,
        'views_slideshow_ddblock_pager_content' => NULL,
      ),
      'template' => 'theme/views-slideshow-ddblock-pager-content',
      'file' => 'theme/views_slideshow_ddblock.theme.inc',
    ),
    'views_slideshow_ddblock_main_frame' => array(
      'variables' => array(
        'vss_id' => NULL,
        'view' => NULL,
        'settings' => NULL,
        'rows' => NULL,
      ),
      'template' => 'theme/views-slideshow-ddblock-main-frame',
      'file' => 'theme/views_slideshow_ddblock.theme.inc',
    ),
    'views_slideshow_ddblock_mappings_table' => array(
      'render element' => 'form',
    ),
  );
}

/**
 * Show debug information for content preprocess function helper function
 *
 * @param $vars             - An array of variables to pass to the theme template.
 */
function views_slideshow_ddblock_show_content_debug_info($vars) {
  $settings = $vars['views_slideshow_ddblock_slider_settings'];
  switch ($settings['debug_info']) {
    case 'devel':
      dpm($settings['view_name'], t('View - name'));
      dpm($settings['view_display_id'], t('View - display_id'));
      dpm(count($vars['views_slideshow_ddblock_content']), t('Number of slides'));
      foreach ($vars['views_slideshow_ddblock_content'][0] as $key => $value) {
        $content_result[$key] = $value;
      }
      drupal_set_message('<pre>' . t('Content first slide') . '</pre>');
      dvm($content_result, t('Content first slide'));
      break;
    case 'drupal':
      drupal_set_message('<pre>' . t('View - name => @view_name', array(
        '@view_name' => var_export($settings['view_name'], TRUE),
      )) . '</pre>');
      drupal_set_message('<pre>' . t('View - display_Id => @view_display_id', array(
        '@view_display_id' => var_export($settings['view_display_id'], TRUE),
      )) . '</pre>');
      drupal_set_message('<pre>' . t('Number of slides => @nr_of_slides', array(
        '@nr_of_slides' => count($vars['views_slideshow_ddblock_content']),
      )) . '</pre>');
      $content_result = array();
      foreach ($vars['views_slideshow_ddblock_content'][0] as $key => $value) {
        $content_result[$key] = $value;
      }
      drupal_set_message('<pre>' . t('Content first slide => @content_result', array(
        '@content_result' => var_export($content_result, TRUE),
      )) . '</pre>');
      break;
    case 'none':
      break;
  }
}

/**
 * Show debug information for pager preprocess function helper function
 *
 * @param $vars             - An array of variables to pass to the theme template.
 */
function views_slideshow_ddblock_show_pager_debug_info($vars) {
  $settings = $vars['views_slideshow_ddblock_pager_settings'];
  switch ($settings['debug_info']) {
    case 'devel':
      dpm(count($vars['views_slideshow_ddblock_content']), t('Number of pager items'));
      drupal_set_message('<pre>' . t('Pager Settings:') . '</pre>');
      dpm($vars['views_slideshow_ddblock_pager_settings'], t('Pager Settings'));
      break;
    case 'drupal':
      drupal_set_message('<pre>' . t('Pager Settings => @pager_settings', array(
        '@pager_settings' => var_export($settings, TRUE),
      )) . '</pre>');
      drupal_set_message('<pre>' . t('Number of pager items  => @nr_of_pager_items', array(
        '@nr_of_pager_items' => count($vars['views_slideshow_ddblock_content']),
      )) . '</pre>');
      break;
    case 'none':
      break;
  }
}

/**
 * @todo Please document this function.
 * @see http://drupal.org/node/1354
 */
function theme_views_slideshow_ddblock_mappings_table($variables) {
  $form = $variables['form'];
  $rows = array();
  $headers = array(
    t('Target'),
    t('Source'),
  );
  foreach (element_children($form) as $key) {

    // No need to print the field title every time.
    unset($form[$key]['target']['#title'], $form[$key]['source']['#title']);

    // Build the table row.
    $row = array(
      'data' => array(
        array(
          'data' => drupal_render($form[$key]['target']) . drupal_render($form[$key]['target']),
          'class' => 'target',
        ),
        array(
          'data' => drupal_render($form[$key]['source']) . drupal_render($form[$key]['source']),
          'class' => 'source',
        ),
      ),
    );

    // Add additional attributes to the row, such as a class for this row.
    if (isset($form[$key]['#attributes'])) {
      $row = array_merge($row, $form[$key]['#attributes']);
    }
    $rows[] = $row;
  }
  $output = theme('table', array(
    'header' => $headers,
    'rows' => $rows,
  ));
  $output .= drupal_render_children($form);
  return $output;
}

/**
 * Helper function to define populated form field elements for album track node form.
 */
function views_slideshow_ddblock_mapping_display_form($delta, $target, $source, $source_fields) {
  $form = array(
    '#tree' => TRUE,
  );
  $form['target'] = array(
    '#type' => 'textfield',
    '#title' => t('Target'),
    '#weight' => 1,
    '#size' => 20,
    '#parents' => array(
      'style_options',
      'views_slideshow_ddblock',
      'mapping_wrapper',
      'mappings',
      $delta,
      'target',
    ),
    '#default_value' => $target,
  );
  $form['source'] = array(
    '#type' => 'select',
    '#title' => t('Source'),
    '#weight' => 2,
    '#parents' => array(
      'style_options',
      'views_slideshow_ddblock',
      'mapping_wrapper',
      'mappings',
      $delta,
      'source',
    ),
    '#default_value' => $source,
    '#size' => 1,
    '#options' => $source_fields,
  );
  return $form;
}

// Trying to make sure the theme.inc get's loaded.
include_once 'theme/views_slideshow_ddblock.theme.inc';
function template_preprocess_views_slideshow_ddblock_main_frame(&$vars) {
  _views_slideshow_ddblock_preprocess_views_slideshow_ddblock_main_frame($vars);
}
function template_preprocess_views_slideshow_ddblock_pager_content(&$vars) {
  _views_slideshow_ddblock_preprocess_views_slideshow_ddblock_pager_content($vars);
}

Functions

Namesort descending Description
template_preprocess_views_slideshow_ddblock_main_frame
template_preprocess_views_slideshow_ddblock_pager_content
theme_views_slideshow_ddblock_mappings_table @todo Please document this function.
views_slideshow_ddblock_init Implements hook_init().
views_slideshow_ddblock_mapping_display_form Helper function to define populated form field elements for album track node form.
views_slideshow_ddblock_menu Implements hook_menu().
views_slideshow_ddblock_show_content_debug_info Show debug information for content preprocess function helper function
views_slideshow_ddblock_show_pager_debug_info Show debug information for pager preprocess function helper function
views_slideshow_ddblock_theme Implements hook_theme().