You are here

views_slideshow_xtra_example.module in Views Slideshow Xtra 7.3

This module creates a Views Slideshow Xtra content type and example slide nodes.

File

views_slideshow_xtra_example/views_slideshow_xtra_example.module
View source
<?php

/**
 * @file
 * This module creates a Views Slideshow Xtra content type and
 * example slide nodes.
 */

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

  //drupal_add_css(drupal_get_path("module", "views_slideshow_xtra_example")."/views_slideshow_xtra_example.css");
}

/**
 * Implements hook_menu().
 */
function views_slideshow_xtra_example_menu() {
  $items['admin/config/media/views-slideshow-xtra'] = array(
    'title' => 'Views Slideshow Xtra',
    'description' => 'Views Slideshow Xtra Configuration.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'views_slideshow_xtra_example_admin_form',
    ),
    'access arguments' => array(
      'administer site configuration',
    ),
    'type' => MENU_NORMAL_ITEM,
    'weight' => 0,
  );
  return $items;
}

/**
 * Implements hook_help().
 */
function views_slideshow_xtra_example_help($path, $arg) {
  switch ($path) {
    case 'views_slideshow_xtra_example':
      return "<p>" . t("This module provides an example node type and nodes for Views Slideshow Xtra slides.") . "</p>";
  }
}

/**
 * Create three example slide nodes with image and overlay elements.
 */
function views_slideshow_xtra_example_nodes() {

  // Slide 1
  $node1 = new stdClass();
  $node1->type = 'vsx_slide';
  node_object_prepare($node1);
  $node1->title = 'VSX Example Slide 1 ';
  $node1->language = LANGUAGE_NONE;

  // Slide 1 Order
  $node1->vsx_slide_order[$node1->language][0] = '1';

  // Slide 1 Image
  $image_directory = drupal_get_path('module', 'views_slideshow_xtra_example') . '/images/';
  $filepath = drupal_realpath($image_directory . 'vsx-slide-four-mile.jpg');

  // Create a File object
  $file = (object) array(
    'uid' => 1,
    'uri' => $filepath,
    'filemime' => file_get_mimetype($filepath),
    'status' => 1,
  );
  $file = file_copy($file, 'public://');

  // Save the file to the root of the files directory. You can specify a subdirectory, for example, 'public://images'
  $node1->vsx_slide_image[LANGUAGE_NONE][0] = (array) $file;

  //associate the file object with the image field:
  node_save($node1);

  // Slide 2
  $node2 = new stdClass();
  $node2->type = 'vsx_slide';
  node_object_prepare($node2);
  $node2->title = 'VSX Example Slide 2 ';
  $node2->language = LANGUAGE_NONE;

  // Slide 2 Order
  $node2->vsx_slide_order[$node2->language][0] = '2';

  // Slide 2 Image
  $image_directory = drupal_get_path('module', 'views_slideshow_xtra_example') . '/images/';
  $filepath = drupal_realpath($image_directory . 'vsx-slide-mount-princeton.jpg');

  // Create a File object
  $file = (object) array(
    'uid' => 1,
    'uri' => $filepath,
    'filemime' => file_get_mimetype($filepath),
    'status' => 1,
  );
  $file = file_copy($file, 'public://');

  // Save the file to the root of the files directory. You can specify a subdirectory, for example, 'public://images'
  $node2->vsx_slide_image[LANGUAGE_NONE][0] = (array) $file;

  //associate the file object with the image field:
  node_save($node2);

  // Slide 3
  $node3 = new stdClass();
  $node3->type = 'vsx_slide';
  node_object_prepare($node3);
  $node3->title = 'VSX Example Slide 3 ';
  $node3->language = LANGUAGE_NONE;

  // Slide 3 Order
  $node3->vsx_slide_order[$node3->language][0] = '3';

  // Slide 3 Image
  $image_directory = drupal_get_path('module', 'views_slideshow_xtra_example') . '/images/';
  $filepath = drupal_realpath($image_directory . 'vsx-slide-mount-yale-treeline.jpg');

  // Create a File object
  $file = (object) array(
    'uid' => 1,
    'uri' => $filepath,
    'filemime' => file_get_mimetype($filepath),
    'status' => 1,
  );
  $file = file_copy($file, 'public://');

  // Save the file to the root of the files directory. You can specify a subdirectory, for example, 'public://images'
  $node3->vsx_slide_image[LANGUAGE_NONE][0] = (array) $file;

  //associate the file object with the image field:
  node_save($node3);
}

/**
 * Admin form.
 */
function views_slideshow_xtra_example_admin_form() {
  $form = array();

  // Heading
  $form['heading'] = array(
    '#markup' => '<br/><strong>Generate VSX Example Nodes</strong><br/><br/>',
  );

  // Generate Nodes Button
  $form['generate_nodes'] = array(
    '#type' => 'submit',
    '#value' => t('Generate Example Nodes'),
  );

  // Delete Nodes Button
  // 	$form['delete_nodes'] = array(
  //   '#type' => 'submit',
  //   '#value' => t('Delete Example Nodes'),
  // 	);
  // Heading
  $form['footer'] = array(
    '#markup' => '<br/><br/><br/>',
  );
  return $form;
}

/**
 * Admin form submit.
 */
function views_slideshow_xtra_example_admin_form_submit($form, &$form_state) {
  if ($form_state['clicked_button']['#value'] == $form_state['values']['generate_nodes']) {
    views_slideshow_xtra_example_nodes();
    drupal_set_message(t('Example nodes generated.'));
  }

  //  if($form_state['clicked_button']['#value'] == $form_state['values']['delete_nodes']) {
  //    drupal_set_message(t('Not yet implemented.'));

  /*
  $results = db_select('node', 'n')
  ->fields('n', array('nid'))
  ->condition('type', array('views_slideshow_xtra'), 'IN')
  ->execute();
  foreach ($results as $result) {
    $nids[] = $result->nid;
  }

  if (!empty($nids)) {
    foreach($nids as $nid) {
      $node = node_load($nid);
      $vsx_field_values = $node->views_slideshow_xtra['und'];
      $is_example_value = FALSE;
      foreach($vsx_field_values as $value) {
        $json_str = $value['value'];
        $vsx = drupal_json_decode($json_str);
        if(!empty($vsx) && array_key_exists('vsx_example', $vsx)) {
          if($vsx['vsx_example']='true') {
            $is_example_value = TRUE;
          }
        }
      }
      if(!$is_example_value) {
        unset($nids[array_search($nid,$nids)]);
      }
    }
    node_delete_multiple($nids);
  }
  drupal_set_message(t('Deleted %count example nodes.',
      empty($nids) ? array('%count' => 0) : array('%count' => count($nids))));
  */

  //	}
}

/**
 * Implements hook_views_api().
 */
function views_slideshow_xtra_example_views_api() {
  return array(
    'api' => 3.0,
  );
}

/**
 * Implements hook_views_default_views().
 */
function views_slideshow_xtra_example_views_default_views() {
  $view = new view();
  $view->name = 'views_slideshow_xtra_example';
  $view->description = '';
  $view->tag = 'default';
  $view->base_table = 'node';
  $view->human_name = 'Views Slideshow Xtra Example';
  $view->core = 7;
  $view->api_version = '3.0';
  $view->disabled = FALSE;

  /* Edit this to true to make a default view disabled initially */

  /* Display: Master */
  $handler = $view
    ->new_display('default', 'Master', 'default');
  $handler->display->display_options['title'] = 'Views Slideshow Xtra Example';
  $handler->display->display_options['access']['type'] = 'perm';
  $handler->display->display_options['cache']['type'] = 'none';
  $handler->display->display_options['query']['type'] = 'views_query';
  $handler->display->display_options['query']['options']['query_comment'] = FALSE;
  $handler->display->display_options['exposed_form']['type'] = 'basic';
  $handler->display->display_options['pager']['type'] = 'none';
  $handler->display->display_options['style_plugin'] = 'slideshow';
  $handler->display->display_options['style_options']['slideshow_type'] = 'views_slideshow_cycle';
  $handler->display->display_options['style_options']['slideshow_skin'] = 'default';
  $handler->display->display_options['style_options']['skin_info'] = array(
    'class' => 'default',
    'name' => 'Default',
    'module' => 'views_slideshow',
    'path' => '',
    'stylesheets' => array(),
  );
  $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_pager']['weight'] = '1';
  $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_pager']['type'] = 'views_slideshow_pager_fields';
  $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_pager']['views_slideshow_pager_fields_fields'] = array(
    'vsx_slide_image' => 0,
  );
  $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_controls']['weight'] = '1';
  $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_controls']['type'] = 'views_slideshow_controls_text';
  $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_slide_counter']['weight'] = '1';
  $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_xtra_overlay']['enable'] = 1;
  $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_xtra_overlay']['weight'] = '1';
  $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['weight'] = '1';
  $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['type'] = 'views_slideshow_pager_fields';
  $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['views_slideshow_pager_fields_fields'] = array(
    'vsx_slide_image' => 0,
  );
  $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_controls']['weight'] = '1';
  $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_controls']['type'] = 'views_slideshow_controls_text';
  $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_slide_counter']['weight'] = '1';
  $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_xtra_overlay']['weight'] = '1';
  $handler->display->display_options['style_options']['views_slideshow_cycle']['timeout'] = '5000';
  $handler->display->display_options['style_options']['views_slideshow_cycle']['speed'] = '700';
  $handler->display->display_options['style_options']['views_slideshow_cycle']['delay'] = '0';
  $handler->display->display_options['style_options']['views_slideshow_cycle']['start_paused'] = 0;
  $handler->display->display_options['style_options']['views_slideshow_cycle']['remember_slide_days'] = '1';
  $handler->display->display_options['style_options']['views_slideshow_cycle']['items_per_slide'] = '1';
  $handler->display->display_options['style_options']['views_slideshow_cycle']['wait_for_image_load_timeout'] = '3000';
  $handler->display->display_options['style_options']['views_slideshow_cycle']['cleartype'] = 0;
  $handler->display->display_options['style_options']['views_slideshow_cycle']['cleartypenobg'] = 0;
  $handler->display->display_options['row_plugin'] = 'fields';

  /* Field: Content: Slide Image */
  $handler->display->display_options['fields']['vsx_slide_image']['id'] = 'vsx_slide_image';
  $handler->display->display_options['fields']['vsx_slide_image']['table'] = 'field_data_vsx_slide_image';
  $handler->display->display_options['fields']['vsx_slide_image']['field'] = 'vsx_slide_image';
  $handler->display->display_options['fields']['vsx_slide_image']['label'] = '';
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['alter_text'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['make_link'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['absolute'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['external'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['replace_spaces'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['trim_whitespace'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['nl2br'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['word_boundary'] = 1;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['ellipsis'] = 1;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['strip_tags'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['trim'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['alter']['html'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['element_label_colon'] = FALSE;
  $handler->display->display_options['fields']['vsx_slide_image']['element_default_classes'] = 1;
  $handler->display->display_options['fields']['vsx_slide_image']['hide_empty'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['empty_zero'] = 0;
  $handler->display->display_options['fields']['vsx_slide_image']['hide_alter_empty'] = 1;
  $handler->display->display_options['fields']['vsx_slide_image']['click_sort_column'] = 'fid';
  $handler->display->display_options['fields']['vsx_slide_image']['settings'] = array(
    'image_style' => 'large',
    'image_link' => '',
  );
  $handler->display->display_options['fields']['vsx_slide_image']['field_api_classes'] = 0;

  /* Sort criterion: Content: Slide Order (vsx_slide_order) */
  $handler->display->display_options['sorts']['vsx_slide_order_value']['id'] = 'vsx_slide_order_value';
  $handler->display->display_options['sorts']['vsx_slide_order_value']['table'] = 'field_data_vsx_slide_order';
  $handler->display->display_options['sorts']['vsx_slide_order_value']['field'] = 'vsx_slide_order_value';

  /* Filter criterion: Content: Published */
  $handler->display->display_options['filters']['status']['id'] = 'status';
  $handler->display->display_options['filters']['status']['table'] = 'node';
  $handler->display->display_options['filters']['status']['field'] = 'status';
  $handler->display->display_options['filters']['status']['value'] = 1;
  $handler->display->display_options['filters']['status']['group'] = 1;
  $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;

  /* Filter criterion: Content: Type */
  $handler->display->display_options['filters']['type']['id'] = 'type';
  $handler->display->display_options['filters']['type']['table'] = 'node';
  $handler->display->display_options['filters']['type']['field'] = 'type';
  $handler->display->display_options['filters']['type']['value'] = array(
    'vsx_slide' => 'vsx_slide',
  );

  /* Display: Slideshow */
  $handler = $view
    ->new_display('page', 'Slideshow', 'page');
  $handler->display->display_options['path'] = 'vsx-example';

  /* Display: Edit Link Overlay */
  $handler = $view
    ->new_display('attachment', 'Edit Link Overlay', 'attachment_1');
  $handler->display->display_options['pager']['type'] = 'none';
  $handler->display->display_options['pager']['options']['offset'] = '0';
  $handler->display->display_options['defaults']['style_plugin'] = FALSE;
  $handler->display->display_options['style_plugin'] = 'overlay';
  $handler->display->display_options['defaults']['style_options'] = FALSE;
  $handler->display->display_options['defaults']['row_plugin'] = FALSE;
  $handler->display->display_options['row_plugin'] = 'fields';
  $handler->display->display_options['defaults']['row_options'] = FALSE;
  $handler->display->display_options['defaults']['fields'] = FALSE;

  /* Field: Node: Edit link */
  $handler->display->display_options['fields']['edit_node']['id'] = 'edit_node';
  $handler->display->display_options['fields']['edit_node']['table'] = 'views_entity_node';
  $handler->display->display_options['fields']['edit_node']['field'] = 'edit_node';
  $handler->display->display_options['fields']['edit_node']['label'] = '';
  $handler->display->display_options['fields']['edit_node']['alter']['alter_text'] = 0;
  $handler->display->display_options['fields']['edit_node']['alter']['make_link'] = 0;
  $handler->display->display_options['fields']['edit_node']['alter']['absolute'] = 0;
  $handler->display->display_options['fields']['edit_node']['alter']['replace_spaces'] = 0;
  $handler->display->display_options['fields']['edit_node']['alter']['trim_whitespace'] = 0;
  $handler->display->display_options['fields']['edit_node']['alter']['nl2br'] = 0;
  $handler->display->display_options['fields']['edit_node']['alter']['word_boundary'] = 1;
  $handler->display->display_options['fields']['edit_node']['alter']['ellipsis'] = 1;
  $handler->display->display_options['fields']['edit_node']['alter']['strip_tags'] = 0;
  $handler->display->display_options['fields']['edit_node']['alter']['trim'] = 0;
  $handler->display->display_options['fields']['edit_node']['alter']['html'] = 0;
  $handler->display->display_options['fields']['edit_node']['element_label_colon'] = FALSE;
  $handler->display->display_options['fields']['edit_node']['element_default_classes'] = 1;
  $handler->display->display_options['fields']['edit_node']['hide_empty'] = 0;
  $handler->display->display_options['fields']['edit_node']['empty_zero'] = 0;
  $handler->display->display_options['fields']['edit_node']['hide_alter_empty'] = 1;
  $handler->display->display_options['fields']['edit_node']['text'] = 'Edit Slide Content';
  $handler->display->display_options['displays'] = array(
    'page' => 'page',
    'default' => 0,
  );
  $handler->display->display_options['attachment_position'] = 'after';

  /* Display: Title Overlay */
  $handler = $view
    ->new_display('attachment', 'Title Overlay', 'attachment_2');
  $handler->display->display_options['display_description'] = 'Title Overlay';
  $handler->display->display_options['pager']['type'] = 'none';
  $handler->display->display_options['pager']['options']['offset'] = '0';
  $handler->display->display_options['defaults']['style_plugin'] = FALSE;
  $handler->display->display_options['style_plugin'] = 'overlay';
  $handler->display->display_options['style_options']['overlay_delay'] = '850';
  $handler->display->display_options['style_options']['overlay_fade_in'] = '1000';
  $handler->display->display_options['style_options']['overlay_fade_out'] = '1000';
  $handler->display->display_options['style_options']['overlay_fade_out_delay'] = '3000';
  $handler->display->display_options['defaults']['style_options'] = FALSE;
  $handler->display->display_options['defaults']['row_plugin'] = FALSE;
  $handler->display->display_options['row_plugin'] = 'fields';
  $handler->display->display_options['defaults']['row_options'] = FALSE;
  $handler->display->display_options['defaults']['fields'] = FALSE;

  /* Field: Content: Title */
  $handler->display->display_options['fields']['title']['id'] = 'title';
  $handler->display->display_options['fields']['title']['table'] = 'node';
  $handler->display->display_options['fields']['title']['field'] = 'title';
  $handler->display->display_options['fields']['title']['label'] = '';
  $handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
  $handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
  $handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
  $handler->display->display_options['fields']['title']['alter']['external'] = 0;
  $handler->display->display_options['fields']['title']['alter']['replace_spaces'] = 0;
  $handler->display->display_options['fields']['title']['alter']['trim_whitespace'] = 0;
  $handler->display->display_options['fields']['title']['alter']['nl2br'] = 0;
  $handler->display->display_options['fields']['title']['alter']['word_boundary'] = 1;
  $handler->display->display_options['fields']['title']['alter']['ellipsis'] = 1;
  $handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
  $handler->display->display_options['fields']['title']['alter']['trim'] = 0;
  $handler->display->display_options['fields']['title']['alter']['html'] = 0;
  $handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
  $handler->display->display_options['fields']['title']['element_default_classes'] = 1;
  $handler->display->display_options['fields']['title']['hide_empty'] = 0;
  $handler->display->display_options['fields']['title']['empty_zero'] = 0;
  $handler->display->display_options['fields']['title']['hide_alter_empty'] = 1;
  $handler->display->display_options['fields']['title']['link_to_node'] = 0;
  $handler->display->display_options['displays'] = array(
    'page' => 'page',
    'default' => 0,
  );
  $handler->display->display_options['attachment_position'] = 'after';

  // Paste the Views Export above.
  // Wrap and return default view.
  $views[$view->name] = $view;
  return $views;
}