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