234 lines
9.1 KiB
PHP
234 lines
9.1 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Displays the content on the plugin settings page
|
||
|
*/
|
||
|
|
||
|
|
||
|
if ( ! class_exists( 'Sldr_Settings_Tabs' ) ) {
|
||
|
class Sldr_Settings_Tabs extends Bws_Settings_Tabs {
|
||
|
public $is_general_settings = true;
|
||
|
|
||
|
/**
|
||
|
* Constructor.
|
||
|
*
|
||
|
* @access public
|
||
|
*
|
||
|
* @see Bws_Settings_Tabs::__construct() for more information on default arguments.
|
||
|
*
|
||
|
* @param string $plugin_basename
|
||
|
*/
|
||
|
public function __construct( $plugin_basename ) {
|
||
|
global $sldr_options, $sldr_plugin_info, $sldr_id, $wpdb;
|
||
|
|
||
|
$this->is_general_settings = ( isset( $_GET['page'] ) && 'slider-settings.php' == $_GET['page'] );
|
||
|
|
||
|
if ( $this->is_general_settings ) {
|
||
|
$tabs = array(
|
||
|
'settings' => array( 'label' => __( 'Settings', 'slider-bws' ) ),
|
||
|
'misc' => array( 'label' => __( 'Misc', 'slider-bws' ) ),
|
||
|
'custom_code' => array( 'label' => __( 'Custom Code', 'slider-bws' ) ),
|
||
|
);
|
||
|
} else {
|
||
|
$tabs = array(
|
||
|
'images' => array( 'label' => __( 'Images', 'slider-bws' ) ),
|
||
|
'settings' => array( 'label' => __( 'Settings', 'slider-bws' ) )
|
||
|
);
|
||
|
}
|
||
|
|
||
|
if ( $this->is_general_settings ) {
|
||
|
$options = $sldr_options;
|
||
|
} else {
|
||
|
if ( empty( $sldr_id ) ) {
|
||
|
$options = sldr_get_options_default();
|
||
|
} else {
|
||
|
$slider_single_setting = $wpdb->get_var( $wpdb->prepare( "SELECT `settings` FROM `" . $wpdb->prefix . "sldr_slider` WHERE `slider_id` = %d", $sldr_id ) );
|
||
|
|
||
|
$options = unserialize( $slider_single_setting );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
parent::__construct( array(
|
||
|
'plugin_basename' => $plugin_basename,
|
||
|
'plugins_info' => $sldr_plugin_info,
|
||
|
'prefix' => 'sldr',
|
||
|
'default_options' => sldr_get_options_default(),
|
||
|
'options' => $options,
|
||
|
'tabs' => $tabs,
|
||
|
'wp_slug' => 'slider-bws',
|
||
|
'doc_link' => 'https://bestwebsoft.com/documentation/slider/slider-user-guide/'
|
||
|
) );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Save plugin options to the database
|
||
|
* @access public
|
||
|
* @param void
|
||
|
* @return array The action results
|
||
|
*/
|
||
|
public function save_options() {
|
||
|
$message = $notice = $error = '';
|
||
|
|
||
|
/* Global Settings */
|
||
|
if ( $this->is_general_settings ) {
|
||
|
$slider_request_options = array();
|
||
|
/* Set lazy load for slideshow */
|
||
|
$slider_request_options['lazy_load'] = ( isset( $_POST['sldr_lazy_load'] ) ) ? true : false;
|
||
|
/* Set slide auto height */
|
||
|
$slider_request_options['auto_height'] = ( isset( $_POST['sldr_auto_height'] ) ) ? true : false;
|
||
|
/* Display slider in the front page of the Renty theme. */
|
||
|
$slider_request_options['display_in_front_page'] = ( isset( $_POST['sldr_display_in_front_page'] ) ) ? intval( $_POST['sldr_display_in_front_page'] ) : 0;
|
||
|
|
||
|
$this->options = array_merge( $this->options, $slider_request_options );
|
||
|
|
||
|
update_option( 'sldr_options', $this->options );
|
||
|
$message = __( "Settings saved.", 'slider-bws' );
|
||
|
}
|
||
|
|
||
|
return compact( 'message', 'notice', 'error' );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
*/
|
||
|
public function tab_images() {
|
||
|
$wp_gallery_media_table = new Sldr_Media_Table();
|
||
|
$wp_gallery_media_table->prepare_items(); ?>
|
||
|
<h3 class="bws_tab_label"><?php _e( 'Slider Images', 'slider-bws' ); ?></h3>
|
||
|
<?php $this->help_phrase(); ?>
|
||
|
<hr>
|
||
|
<div>
|
||
|
<div class="error hide-if-js">
|
||
|
<p><?php _e( 'Adding images requires JavaScript.', 'slider-bws' ); ?></p>
|
||
|
</div>
|
||
|
<div class="wp-media-buttons">
|
||
|
<a href="#" id="sldr-media-insert" class="button insert-media add_media hide-if-no-js"><span class="wp-media-buttons-icon"></span> <?php _e( 'Add Media', 'slider-bws' ); ?></a>
|
||
|
</div>
|
||
|
<?php $wp_gallery_media_table->views(); ?>
|
||
|
</div>
|
||
|
<div class="clear"></div>
|
||
|
<ul tabindex="-1" class="attachments ui-sortable ui-sortable-disabled hide-if-no-js" id="sldr-attachments">
|
||
|
<?php $wp_gallery_media_table->display_rows(); ?>
|
||
|
</ul>
|
||
|
<div class="clear"></div>
|
||
|
<div id="hidden"></div>
|
||
|
<?php }
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
*/
|
||
|
public function tab_settings() {
|
||
|
global $wpdb; ?>
|
||
|
<h3 class="bws_tab_label"><?php _e( 'Slider Settings', 'slider-bws' ); ?></h3>
|
||
|
<?php $this->help_phrase(); ?>
|
||
|
<hr>
|
||
|
<table class="form-table sldr_settings_form">
|
||
|
<?php if ( $this->is_general_settings ) { ?>
|
||
|
<tr>
|
||
|
<th><?php _e( 'Lazy Load', 'slider-bws' ); ?></th>
|
||
|
<td>
|
||
|
<label>
|
||
|
<input type="checkbox" name="sldr_lazy_load" value="1" <?php checked( 1, $this->options['lazy_load'] ); ?> />
|
||
|
<span class="bws_info"><?php _e( 'Enable to delay images loading (recommend for sliders with lots of slides). Images will not be loaded until they are in outside of viewport.', 'slider-bws' ); ?></span>
|
||
|
</label>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<th><?php _e( 'Auto Height', 'slider-bws' ); ?></th>
|
||
|
<td>
|
||
|
<label>
|
||
|
<input type="checkbox" name="sldr_auto_height" value="1" <?php checked( 1, $this->options['auto_height'] ); ?> />
|
||
|
<span class="bws_info"><?php _e( 'Enable to change slider height automatically (according to the hight of the slide).', 'slider-bws' ); ?></span>
|
||
|
</label>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<?php $current_theme = wp_get_theme();
|
||
|
$current_theme = $current_theme->get( 'TextDomain' );
|
||
|
if ( 'bws-renty' == $current_theme || 'renty' == $current_theme ) { ?>
|
||
|
<tr>
|
||
|
<th><?php _e( 'Homepage Slider', 'slider-bws' ); ?></th>
|
||
|
<td>
|
||
|
<label>
|
||
|
<select name="sldr_display_in_front_page">
|
||
|
<option value="0"><?php _e( 'None', 'slider-bws' ); ?></option>
|
||
|
<?php /* Get ids of all single sliders */
|
||
|
$sliders = $wpdb->get_results("SELECT `slider_id`, `title` FROM `" . $wpdb->prefix . "sldr_slider`", ARRAY_A );
|
||
|
/* Count number of single sliders */
|
||
|
$number_sliders = count( $sliders );
|
||
|
/* Display titles of the sliders in the drop down list */
|
||
|
for ( $i = 0; $i < $number_sliders; $i++ ) {
|
||
|
$id = $sliders[ $i ]['slider_id'];
|
||
|
$selected = $id == $this->options['display_in_front_page'] ? 'selected' : '';
|
||
|
echo( "<option value='" . $id . "' " . $selected . ">" . $sliders[ $i ]['title'] . "( id=" . $id . " )</option>");
|
||
|
} ?>
|
||
|
</select>
|
||
|
</label>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<?php }
|
||
|
} else { ?>
|
||
|
<tr>
|
||
|
<th><?php _e( 'Autoplay', 'slider-bws' ); ?></th>
|
||
|
<td>
|
||
|
<label>
|
||
|
<input type="checkbox" name="sldr_autoplay" class="bws_option_affect" data-affect-show=".sldr_autoplay" value="1" <?php checked( 1, $this->options['autoplay'] ); ?> /> <span class="bws_info"><?php _e( 'Enable to turn autoplay on for the slideshow.', 'slider-bws' ); ?></span>
|
||
|
</label>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr class="sldr_autoplay">
|
||
|
<th><?php _e( 'Autoplay Timeout', 'slider-bws' ); ?></th>
|
||
|
<td>
|
||
|
<label>
|
||
|
<input type="number" name="sldr_autoplay_timeout" min="1" max="1000" value="<?php echo $this->options["autoplay_timeout"]/1000; ?>" /> <?php _e( 'sec', 'slider-bws' ); ?>
|
||
|
</label>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr class="sldr_autoplay">
|
||
|
<th><?php _e( 'Autoplay Pause', 'slider-bws' ); ?></th>
|
||
|
<td>
|
||
|
<label>
|
||
|
<input type="checkbox" name="sldr_autoplay_hover_pause" value="1" <?php checked( 1, $this->options['autoplay_hover_pause'] ); ?> />
|
||
|
<span class="bws_info"><?php _e( 'Enable to pause autoplay on mouse hover.', 'slider-bws' ); ?></span>
|
||
|
</label>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<th><?php _e( 'Loop', 'slider-bws' ); ?></th>
|
||
|
<td>
|
||
|
<label>
|
||
|
<input type="checkbox" name="sldr_loop" value="1" <?php checked( 1, $this->options['loop'] ); ?> />
|
||
|
<span class="bws_info"><?php _e( 'Enable to loop the slideshow.', 'slider-bws' ); ?></span>
|
||
|
</label>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<th><?php _e( 'Navigation', 'slider-bws' ); ?></th>
|
||
|
<td>
|
||
|
<fieldset>
|
||
|
<label>
|
||
|
<input type="checkbox" name="sldr_nav" value="1" <?php checked( 1, $this->options['nav'] ); ?> />
|
||
|
<?php _e( 'Arrows', 'slider-bws' ); ?>
|
||
|
</label>
|
||
|
<br/>
|
||
|
<label>
|
||
|
<input type="checkbox" name="sldr_dots" value="1" <?php checked( 1, $this->options['dots'] ); ?> />
|
||
|
<?php _e( 'Dots', 'slider-bws' ); ?>
|
||
|
</label>
|
||
|
</fieldset>
|
||
|
</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<th><?php _e( 'Number of Visible Images', 'slider-bws' ); ?></th>
|
||
|
<td>
|
||
|
<label>
|
||
|
<input type="number" name="sldr_items" min="1" max="10" value="<?php echo $this->options['items']; ?>" />
|
||
|
<span class="bws_info"><?php _e( 'Image(-s) per slide', 'slider-bws' ); ?></span>
|
||
|
</label>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<?php } ?>
|
||
|
</table>
|
||
|
<?php }
|
||
|
}
|
||
|
}
|