예제 #1
0
파일: template.php 프로젝트: ramsalt/kr
function kr2011_preprocess_views_slideshow_thumbnailhover(&$vars)
{
    $options = $vars['options'];
    $view = $vars['view'];
    $rows = $vars['rows'];
    $vss_id = $view->name . '-' . $view->current_display;
    //drupal_set_message('rows: '.count($rows));
    $vars['image_count'] = count($rows);
    $settings = array_merge(array('num_divs' => sizeof($vars['rows']), 'teasers_last' => $options['thumbnailhover']['teasers_last'] ? TRUE : FALSE, 'id_prefix' => '#views_slideshow_thumbnailhover_main_', 'div_prefix' => '#views_slideshow_thumbnailhover_div_', 'vss_id' => $vss_id, 'view_id' => $vss_id), $options['views_slideshow_thumbnailhover']);
    // We need to go through the current js setting values to make sure the one we
    // want to add is not already there. If it is already there then append -[num]
    // to the id to make it unique.
    $slideshow_count = 1;
    $current_settings = drupal_add_js();
    foreach ($current_settings['setting'] as $current_setting) {
        if (isset($current_setting['viewsSlideshowThumbnailHover'])) {
            $current_keys = array_keys($current_setting['viewsSlideshowThumbnailHover']);
            if (stristr($current_keys[0], '#views_slideshow_thumbnailhover_main_' . $vss_id)) {
                $slideshow_count++;
            }
        }
    }
    if ($slideshow_count > 1) {
        $vss_id .= '-' . $slideshow_count;
        $settings['vss_id'] = $vss_id;
    }
    drupal_add_js(array('viewsSlideshowThumbnailHover' => array("#views_slideshow_thumbnailhover_main_" . $vss_id => $settings)), 'setting');
    // Add the hoverIntent plugin.
    if ($settings['pager_event'] == 'hoverIntent') {
        if (module_exists('jq')) {
            $loaded_plugins = jq_plugins();
            if (!empty($loaded_plugins['hoverIntent'])) {
                jq_add('hoverIntent');
            }
        }
        if (module_exists('hoverintent')) {
            hoverintent_add();
        }
    }
    $teaser = $options['views_slideshow_thumbnailhover']['hover_breakout'] == 'teaser' ? TRUE : FALSE;
    $hidden_elements = theme('views_slideshow_thumbnailhover_no_display_section', $view, $rows, $vss_id, $options, $teaser);
    $vars['slideshow'] = theme('views_slideshow_main_section', $vss_id, $hidden_elements, 'views_slideshow_thumbnailhover');
    $thumbnailhover = $vars['options']['views_slideshow_thumbnailhover'];
    if (count($rows) > 1) {
        $vars['ctr_prev'] = theme_views_slideshow_thumbnailhover_control_previous($vss_id, $view, $options);
        $vars['ctr_next'] = theme_views_slideshow_thumbnailhover_control_next($vss_id, $view, $options);
    }
    // Only show controls when there is more than one result.
    if ($settings['num_divs'] > 1) {
        if ($thumbnailhover['controls'] == 1) {
            $vars['controls_top'] = theme('views_slideshow_thumbnailhover_controls', $vss_id, $view, $options);
        } elseif ($thumbnailhover['controls'] == 2) {
            $vars['controls_bottom'] = theme('views_slideshow_thumbnailhover_controls', $vss_id, $view, $options);
        }
    }
    if (!$thumbnailhover['teasers_last']) {
        $vars['breakout_top'] = theme('views_slideshow_thumbnailhover_breakout_teasers', $view, $rows, $vss_id, $options);
    } else {
        $vars['breakout_bottom'] = theme('views_slideshow_thumbnailhover_breakout_teasers', $view, $rows, $vss_id, $options);
    }
    if ($thumbnailhover['image_count'] == 1) {
        $vars['image_count_top'] = theme('views_slideshow_thumbnailhover_image_count', $vss_id, $view, $options);
    } elseif ($thumbnailhover['image_count'] == 2) {
        $vars['image_count_bottom'] = theme('views_slideshow_thumbnailhover_image_count', $vss_id, $view, $options);
    }
}
 * - $empty: The empty text to display if the view is empty
 * - $pager: The pager next/prev links to display, if any
 * - $exposed: Exposed widget form/info to display
 * - $feed_icon: Feed icon to display, if any
 * - $more: A link to view more, if any
 * - $admin_links: A rendered list of administrative links
 * - $admin_links_raw: A list of administrative links suitable for theme('links')
 *
 * @ingroup views_templates
 */
if (module_exists('jq')) {
    // I'm using jq_add here. It assumes you have the jQuery Cycle plug-in
    // installed. That plug-in comes bundled with the jQuery Plugins module as
    // jq_add('cycle'), but you could also just drop it into a /plugins or
    // /sites/all/plugins folder (as done here) and call it with the same method.
    jq_add('cycle');
    // Here's the actual call for our cycle slide show plug-in.
    // I'm using the 'fade' effect, fading the image cycle, slowing it from the
    // default with 'timeout', and using 'pause' to allow a pause on mouse hover.
    // There are lots of cool effects; see the plug-in home at malsup.com/jquery/cycle/.
    $js = <<<js
   \$('.view-senator-carousel ul').cycle({
     fx: 'fade',
     pause: 1,
     timeout: 10000
   });
js;
    // Make it degrade gracefully in non-javascript browsers.
    $js = "if (Drupal.jsEnabled) {  \$(document).ready(function() { {$js}  });  }";
    drupal_add_js($js, 'inline');
}