%PDF- %PDF-
| Direktori : /home/dopla/www/wp-content/plugins/ml-slider/inc/slider/ |
| Current File : /home/dopla/www/wp-content/plugins/ml-slider/inc/slider/metaslider.nivo.class.php |
<?php
if (!defined('ABSPATH')) die('No direct access.');
/**
* Nivo Slider specific markup, javascript, css and settings.
*/
class MetaNivoSlider extends MetaSlider {
protected $js_function = 'nivoSlider';
protected $js_path = 'sliders/nivoslider/jquery.nivo.slider.pack.js';
protected $css_path = 'sliders/nivoslider/nivo-slider.css';
/**
* Constructor
*
* @param int $id ID
* @param array $shortcode_settings Short Settings
*/
public function __construct( $id, $shortcode_settings ) {
parent::__construct( $id, $shortcode_settings );
add_filter( 'metaslider_nivo_slider_parameters', array( $this, 'set_autoplay_parameter' ), 10, 3 );
}
/**
* Other slides use "AutoPlay = true" (true autoplays the slideshow)
* Nivo slider uses "ManualAvance = false" (ie, false autoplays the slideshow)
* Take care of the manualAdvance parameter here.
*
* @param array $options Options for autoplay
* @param array $slider_id Slider ID
* @param array $settings Settings
*/
public function set_autoplay_parameter( $options, $slider_id, $settings ) {
global $wp_filter;
if ( isset( $options["autoPlay"] ) ) {
if ( $options["autoPlay"] == 'true' ) {
$options["manualAdvance"] = 'false';
} else {
$options["manualAdvance"] = 'true';
}
unset( $options['autoPlay'] );
}
// we don't want this filter hanging around if there's more than one slideshow on the page
remove_filter( 'metaslider_nivo_slider_parameters', array( $this, 'set_autoplay_parameter' ), 10, 3 );
return $options;
}
/**
* Detect whether thie slide supports the requested setting,
* and if so, the name to use for the setting in the Javascript parameters
*
* @param array $param Parameters
* @return false (parameter not supported) or parameter name (parameter supported)
*/
protected function get_param( $param ) {
$params = array(
'effect' => 'effect',
'slices' => 'slices',
'prevText' => 'prevText',
'nextText' => 'nextText',
'delay' => 'pauseTime',
'animationSpeed' => 'animSpeed',
'hoverPause' => 'pauseOnHover',
'spw' => 'boxCols',
'sph' => 'boxRows',
'navigation' => 'controlNav',
'links' =>'directionNav',
'autoPlay' => 'autoPlay'
);
if ( isset( $params[$param] ) ) {
return $params[$param];
}
return false;
}
/**
* Enqueue scripts
*/
public function enqueue_scripts() {
parent::enqueue_scripts();
// If a theme is set then we need to load the default Nivo theme
$theme = get_post_meta($this->id, 'metaslider_slideshow_theme', true);
if ('true' === $this->get_setting('printCss') || $theme) {
wp_enqueue_style('metaslider-' . $this->get_setting('type') . '-slider-default', METASLIDER_ASSETS_URL . "sliders/nivoslider/themes/default/default.css", false, METASLIDER_VERSION);
}
}
/**
* Build the HTML for a slider.
*
* @return string slider markup.
*/
protected function get_html() {
$return_value = "<div class='slider-wrapper theme-default'><div class='ribbon'></div><div id='" . $this->get_identifier() . "' class='nivoSlider'>";
foreach ($this->slides as $slide) {
$return_value .= $slide;
}
$return_value .= "</div></div>";
return apply_filters('metaslider_nivo_slider_get_html', $return_value, $this->id, $this->settings);
}
}