wp_back/wp-content/plugins/slider-bws/includes/class-sldr-settings.php
2024-05-20 15:37:46 +03:00

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 }
}
}