???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ????????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? ??????????????????????????????????????? $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ PNG \x49\x44\x41\x54?\x89\x50 \x4E\x47\x0D\x0A\x1A\x0A JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?   ???? (% aA*?XYD?(J??E RE,P XYae?)(E 2 B R BQ X?)X ? @ adadasdasdasasdasdas .....................................................................................................................................?????????????????????? ??? ???????????????????????????????????????............................... JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?   ???? (% aA*?XYD?(J??E RE,P XYae?)(E 2 B R BQ X?)X ? @ adadasdasdasasdasdas ..................................................................................................................................... ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ????????????????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ???????????????????????????????????????? ??????????????????????????????????????? PNG \x49\x44\x41\x54?\x89\x50 \x4E\x47\x0D\x0A\x1A\x0A JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?   ???? (% aA*?XYD?(J??E RE,P XYae?)(E 2 B R BQ X?)X ? @ adadasdasdasasdasdas .....................................................................................................................................?????????????????????? ??? ???????????????????????????????????????............................... JFIF    ?? C    !"$"$?? C  ?? p " ??     ??   ?   ???? (% aA*?XYD?(J??E RE,P XYae?)(E 2 B R BQ X?)X ? @ adadasdasdasasdasdas .....................................................................................................................................???????????????????????????????? ??????????????????????????????? ??????????????????????????????? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
Warning: Undefined variable $auth in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 695

Warning: Trying to access array offset on value of type null in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 695

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 332

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 333

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 334

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 335

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 336

Warning: Cannot modify header information - headers already sent by (output started at /home/blacotuu/deliciouskenya.com/d94fc6/index.php:1) in /home/blacotuu/deliciouskenya.com/d94fc6/index.php on line 337
PK4m\gggcode/class-validator.phpnu[ */ private array $tokens; /** * The index of the token currently being examined. * * @var integer */ private int $current; /** * The total number of tokens. * * @var integer */ private int $length; /** * Array to keep track of the various function, class and interface identifiers which have been defined. * * @var array */ private array $defined_identifiers = []; /** * Exclude certain tokens from being checked. * * @var array */ private array $exceptions = []; /** * Class constructor. * * @param string $code Snippet code for parsing. */ public function __construct( string $code ) { $this->code = $code; $this->tokens = token_get_all( "code ); $this->length = count( $this->tokens ); $this->current = 0; } /** * Determine whether the parser has reached the end of the list of tokens. * * @return bool */ private function end(): bool { return $this->current === $this->length; } /** * Retrieve the next token without moving the pointer * * @return string|array|null The current token if the list has not been expended, null otherwise. */ private function peek() { return $this->end() ? null : $this->tokens[ $this->current ]; } /** * Move the pointer to the next token, if there is one. * * If the first argument is provided, only move the pointer if the tokens match. */ private function next() { if ( ! $this->end() ) { ++$this->current; } } /** * Check whether a particular identifier has been used previously. * * @param string $type Which type of identifier this is. Supports T_FUNCTION, T_CLASS and T_INTERFACE. * @param string $identifier The name of the identifier itself. * * @return bool true if the identifier is not unique. */ private function check_duplicate_identifier( string $type, string $identifier ): bool { if ( ! isset( $this->defined_identifiers[ $type ] ) ) { switch ( $type ) { case T_FUNCTION: $defined_functions = get_defined_functions(); $this->defined_identifiers[ T_FUNCTION ] = array_merge( $defined_functions['internal'], $defined_functions['user'] ); break; case T_CLASS: $this->defined_identifiers[ T_CLASS ] = get_declared_classes(); break; case T_INTERFACE: $this->defined_identifiers[ T_INTERFACE ] = get_declared_interfaces(); break; default: return false; } } $duplicate = in_array( $identifier, $this->defined_identifiers[ $type ], true ); array_unshift( $this->defined_identifiers[ $type ], $identifier ); return $duplicate && ! ( isset( $this->exceptions[ $type ] ) && in_array( $identifier, $this->exceptions[ $type ], true ) ); } /** * Validate the given PHP code and return the result. * * @return array|false Array containing message if an error was encountered, false if validation was successful. */ public function validate() { while ( ! $this->end() ) { $token = $this->peek(); $this->next(); if ( ! is_array( $token ) ) { continue; } // If this is a function or class exists check, then allow this function or class to be defined. if ( T_STRING === $token[0] && ( 'function_exists' === $token[1] || 'class_exists' === $token[1] ) ) { $type = 'function_exists' === $token[1] ? T_FUNCTION : T_CLASS; // Eat tokens until we find the function or class name. while ( ! $this->end() && T_CONSTANT_ENCAPSED_STRING !== $token[0] ) { $token = $this->peek(); $this->next(); } // Add the identifier to the list of exceptions. $this->exceptions[ $type ] = $this->exceptions[ $type ] ?? []; $this->exceptions[ $type ][] = trim( $token[1], '\'"' ); continue; } // If we have a double colon, followed by a class, then consume it before the next section. if ( T_DOUBLE_COLON === $token[0] ) { $token = $this->peek(); $this->next(); if ( T_CLASS === $token[0] ) { $this->next(); $token = $this->peek(); } } // Only look for class and function declaration tokens. if ( T_CLASS !== $token[0] && T_FUNCTION !== $token[0] ) { continue; } /** * Ensure the type of $token is inferred correctly. * * @var string|array $token */ $structure_type = $token[0]; // Continue eating tokens until we find the name of the class or function. while ( ! $this->end() && T_STRING !== $token[0] && ( T_FUNCTION !== $structure_type || '(' !== $token ) && ( T_CLASS !== $structure_type || '{' !== $token ) ) { $token = $this->peek(); $this->next(); } // If we've eaten all the tokens without discovering a name, then there must be a syntax error, so return appropriately. if ( $this->end() ) { return array( 'message' => __( 'Parse error: syntax error, unexpected end of snippet.', 'code-snippets' ), 'line' => $token[2], ); } // If the function or class is anonymous, with no name, then no need to check. if ( ! ( T_FUNCTION === $structure_type && '(' === $token ) && ! ( T_CLASS === $structure_type && '{' === $token ) ) { // Check whether the name has already been defined. if ( $this->check_duplicate_identifier( $structure_type, $token[1] ) ) { switch ( $structure_type ) { case T_FUNCTION: /* translators: %s: PHP function name */ $message = __( 'Cannot redeclare function %s.', 'code-snippets' ); break; case T_CLASS: /* translators: %s: PHP class name */ $message = __( 'Cannot redeclare class %s.', 'code-snippets' ); break; case T_INTERFACE: /* translators: %s: PHP interface name */ $message = __( 'Cannot redeclare interface %s.', 'code-snippets' ); break; default: /* translators: %s: PHP identifier name*/ $message = __( 'Cannot redeclare %s.', 'code-snippets' ); } return array( 'message' => sprintf( $message, $token[1] ), 'line' => $token[2], ); } } // If we have entered into a class, eat tokens until we find the closing brace. if ( T_CLASS !== $structure_type ) { continue; } // Find the opening brace for the class. while ( ! $this->end() && '{' !== $token ) { $token = $this->peek(); $this->next(); } // Continue traversing the class tokens until we have found the class closing brace. $depth = 1; while ( ! $this->end() && $depth > 0 ) { $token = $this->peek(); if ( '{' === $token ) { ++$depth; } elseif ( '}' === $token ) { --$depth; } $this->next(); } // If we did not make it out of the class, then there's a problem. if ( $depth > 0 ) { return array( 'message' => __( 'Parse error: syntax error, unexpected end of snippet', 'code-snippets' ), 'line' => $token[2], ); } } return false; } } PK4m\ wcode/assets/code.jsnu[jQuery(document).ready(function($) { "use strict"; $('#hoot-code .bettertoggle').click( function(e){ $(this).siblings('input[type=checkbox]').click(); }); $('.hoot-codetab-togglehead').click( function(e){ $(this).parent('.hoot-codetab-toggle').toggleClass('hoot-codetab-toggleexpand'); $(this).siblings('.hoot-codetab-togglebox').slideToggle(); }); var initdone = {}, $navtabs = $('#hootabt-tabs .hootabt-tab'), $codetabs = $( '#hoot-codetabs .hoot-codetab'), initfirst = function() { setTimeout( function() { var $activetab = $codetabs.filter('.hootactive'); if ( $activetab.length ) { $activetab.trigger('click'); } else $codetabs.first().trigger('click'); }, 100 ); }; if ( $navtabs.filter('[data-inpage="code"]').hasClass('hootabt-active') ) { initfirst(); } $navtabs.on('click',function(e){ if ( $(this).data('inpage') === 'code' ) { initfirst(); } } ); $codetabs.on('click',function(e){ e.preventDefault(); var targetid = $(this).data('codeid'), $codeblocks = $('#hoot-code .hoot-codeblock'), $target = $('#hoot-codeblock-'+targetid); if ( $target.length ) { $codetabs.removeClass('hootactive'); $codetabs.filter('[data-codeid="'+targetid+'"]').addClass('hootactive'); $codeblocks.removeClass('hootactive'); $target.addClass('hootactive'); if ( ! initdone[targetid] && typeof wp === 'object' && typeof wp.codeEditor === 'object' && typeof wp.codeEditor.initialize === 'function' ) { var $editor = $target.find('.hoot-codeeditor'); if ( $editor.length ) { var csettings = targetid === 'customphp' ? hootCodeMirrorSettingsOpen : hootCodeMirrorSettings; wp.codeEditor.initialize( $editor, csettings ); initdone[targetid] = true; } } } // Update the URL with the new tab parameter var newUrl = new URL(window.location.href); newUrl.searchParams.set('codetab', targetid); history.replaceState(null, null, newUrl.toString()); var $refererInput = $('.hootabt-module.hootabt-active input[name="_wp_http_referer"]'); if ($refererInput.length) { var refererUrl = new URL($refererInput.val(), window.location.origin); refererUrl.searchParams.set('codetab', targetid); $refererInput.val(refererUrl.pathname + refererUrl.search); } } ); });PK4m\f48 code/assets/code.cssnu[ #hoot-code {} .hoot-code {} div.hoot-codetab-toggle { padding: 0; } .hoot-codetab-togglehead { padding: 12px 20px; cursor: pointer; color: #8d6a0c; } .hoot-codetab-togglebox { display: none; overflow: hidden; padding: 20px 30px; } .hoot-codetab-togglebox div.hrdivider { margin: 15px -12px; } .hoot-codetab-togglebox pre { margin: 6px 0 18px; background: #f1f1f1; border: solid 1px #ddd; padding: 2px 8px; color: #8d6a0c; } .hoot-codetab-togglebox pre span { font-weight: bold; color: #5b4405; } .hoot-codetab-toggleexpand .hoot-codetab-togglehead { background: #f3f3f3; box-shadow: 1px 2px 1px 0px #ddd; } #hoot-codetabs { display: flex; align-items: center; padding: 0; } #hoot-codetabs { margin-top: 25px; border-radius: 5px 5px 0 0; background: #f7f7f7; } /* ABOUT REFACTOR -- l u m e onward */ #hoot-codetabs > div:first-child { border-radius: 5px 0 0 0; } .hoot-codetabs {} /* ABOUT REFACTOR -- l u m e onward */ .hoot-codetab { text-align: center; flex-grow: 1; cursor: pointer; padding: 20px 2px; font-size: 15px; font-weight: 600; } .hoot-codetab:hover { background: #fff; } .hoot-codetab.hootactive { background: #fff; cursor: auto; } .hoot-codesubmit { padding: 0 20px; align-self: stretch; display: flex; align-items: center; background: #e5e5e5; border-radius: 0 5px 0 0; } .hoot-codesubmit .submit { margin: 0; text-align: center; padding: 0; } .hoot-codesubmit .button { padding: 0 15px; text-align: center; } #hoot-codetabs { border: 1px solid #bbb; border-bottom: none; } .hoot-codetab, .hoot-codesubmit { border-bottom: 1px solid #bbb; } .hoot-codesubmit { border-left: solid 1px #aaa; } .hoot-codetab.hootactive { border: solid 1px #fff; border-top: none; border-left-color: #ddd; border-right-color: #ddd; } #hoot-codeblock-customphp {} #hoot-codeblock-header {} #hoot-codeblock-body {} #hoot-codeblock-footer {} .hoot-codeblock { display: none; background: #fff; border: solid 1px #bbb; border-top: none; padding: 20px; } .hoot-codeblock > div:first-child { margin-top: 0; } .hoot-codeblock.hootactive { display: block; } .hoot-codeblock-enable { margin: 25px 0; display: flex; align-items: center; font-weight: 600; font-size: 15px; } .hoot-codeblock-enable label { margin-left: 15px; } /* */ .hoot-codeblock-sub { margin: 25px 0px; } .hoot-codeblock-desc { opacity: 0.9; background: #f7f7f7; padding: 12px 15px; text-align: center; font-style: italic; border: solid 1px #ddd; box-shadow: inset 0px 2px 3px rgba(80,80,80,0.20); border-radius: 0 0 5px 5px; } .hoot-codeblock-ops { margin-top: -15px; } .hoot-codeblock-ops label { margin-right: 15px; cursor: pointer; } .hoot-codeblock-editor { max-width: 1000px; border: solid 1px #ccc; } #hoot-code-customphp {} #hoot-code-header {} #hoot-code-body {} #hoot-code-footer {} .hoot-codeeditor { width: 100%; height: 300px; } /*prevents fouc due to setTimeout:100 */ .hoot-codeblock-editor .CodeMirror { min-height: 500px; font-size: 15px; line-height: 22px; } .hoot-codeblock-editor .CodeMirror-sizer:before, .hoot-codeblock-editor .CodeMirror-sizer:after { padding: 0 0 5px; color: #aaa; display: block; line-height: 1.4em; } .hoot-codeblock-editor .CodeMirror-sizer:after { padding: 5px 0 0; } .hoot-codeblock-editor .CodeMirror-sizer:before { content: ""; } .hoot-codeblock-editor .CodeMirror-sizer:after { content: ""; } #hoot-codeblock-customphp .CodeMirror-sizer:before { content: ''; } PK4m\Iiicode/class-customcode.phpnu[dir = trailingslashit( hootkit()->dir . 'misc/code' ); $this->uri = trailingslashit( hootkit()->uri . 'misc/code' ); // Set slug $theme = wp_get_theme(); $theme_name = is_object( $theme ) && method_exists( $theme, 'parent' ) && is_object( $theme->parent() ) ? $theme->parent()->get( 'Name' ) : $theme->get( 'Name' ); $theme_name = is_string( $theme_name ) ? strtolower( preg_replace( '/[^a-zA-Z0-9]+/', '_', trim( $theme_name ) ) ) : ''; if ( $theme_name ) { $this->themeslug = $theme_name; } add_action( 'after_setup_theme', array( $this, 'loader' ), 94 ); // Check if code has been disabled by user $isactive = false; $dbvalue = get_option( 'hootkit-activemods', false ); if ( ! is_array( $dbvalue ) || empty( $dbvalue ) ) { $isactive = true; } elseif ( !empty( $dbvalue[ 'misc' ] ) && is_array( $dbvalue[ 'misc' ] ) ) { if ( !isset( $dbvalue[ 'misc' ][ 'code' ] ) || $dbvalue[ 'misc' ][ 'code' ] == 'yes' ) { $isactive = true; } } else { $isactive = true; } if ( $isactive && ! function_exists( 'olius_premium_customcode_run' ) && ! function_exists( 'strute_premium_customcode_run' ) && ! function_exists( 'nirvata_premium_checkfortheme' ) ) { require_once( $this->dir . 'coderun.php' ); new CustomcodeRun( $this->dir, $this->themeslug ); } } /** * Load if code is enabled by themes * @since 3.0.0 * @access public * @return void */ public function loader() { /* Get values if Code is an embedded plugin */ $dash = hootkit()->get_config( 'dashboard' ); // if registered wphoot theme, sanitizeconfig has already made sure all required values exist // 'code', 'tabfilter', 'tabaction', hoot_dashboard() => we can reliably use them here. if ( is_array( $dash ) && !empty( $dash[ 'code' ] ) ) { self::$codeplugin = array( 'pagehook' => hoot_dashboard( 'screen' ), 'dashurl' => hoot_dashboard( 'url', array( 'tab' => $dash[ 'code' ] ) ), 'tabfilter' => $dash['tabfilter'], 'tabaction' => $dash['tabaction'] ); } if ( self::$codeplugin ) { // Check if code has been disabled by user $activemiscmods = hootkit()->get_config( 'activemods', 'misc' ); $isactive = is_array( $activemiscmods ) && in_array( 'code', $activemiscmods ); if ( ! $isactive ) : add_filter( self::$codeplugin['tabfilter'], array( $this, 'unplug_tabs' ), 90, 2 ); else: // Load code assets $hooks = array( self::$codeplugin['pagehook'] ); Helper_Assets::add_adminasset( 'hootkitcode', $hooks ); // Render Content add_filter( self::$codeplugin['tabfilter'], array( $this, 'plug_tabs' ), 90, 2 ); add_action( self::$codeplugin['tabaction'], array( $this, 'plug_modblock_content' ), 90, 4 ); // // Localize Script // add_action( 'admin_enqueue_scripts', array( $this, 'localize_script' ), 11 ); // // Disable the WooCommerce Setup Wizard on Hoot Import page only // add_action( 'current_screen', array( $this, 'woocommerce_disable_setup_wizard' ) ); // // Flush rewrite rules from a recent WooCommerce XML import // if ( get_option( 'hootkitimport_wc_flush' ) ) { // add_action( 'admin_menu', array( $this, 'woocommerce_flush' ), 5 ); // } // Add Module if ( is_admin() && current_user_can( 'manage_options' ) ) { require_once( $this->dir . 'code.php' ); } endif; } } /** * Remove Tabs if exist * * @since 3.0.0 * @access public * @return void */ public function unplug_tabs( $tabsarray, $sanetags ) { $order = !empty( $tabsarray['order'] ) && is_array( $tabsarray['order'] ) ? $tabsarray['order'] : array(); $order = array_values( array_diff( $order, array( 'code' ) ) ); // array_values() to reindex numerically $tabsarray['order'] = $order; if ( isset( $tabsarray['code'] ) ) unset( $tabsarray['code'] ); return $tabsarray; } /** * Load Tabs Content * * @since 3.0.0 * @access public * @return void */ public function plug_tabs( $tabsarray, $sanetags ) { $order = !empty( $tabsarray['order'] ) && is_array( $tabsarray['order'] ) ? $tabsarray['order'] : array(); if ( !in_array( 'code', $order ) ) $order[] = 'code'; $tabsarray['code'] = array( 'label' => __( 'Custom Code', 'hootkit' ), 'inpage' => true, 'content' => $this->plug_displayarray( $sanetags ), ); $tabsarray['order'] = $order; return $tabsarray; } /** * Tabs Module Data * * @since 3.0.0 * @access public * @return void */ public function plug_displayarray( $sanetags ) { $cblocks = array(); $cblocks[ 'grid-ccode' ] = array( 'type' => 'gridgen' ); $cblocks[ 'ccode' ] = array( 'type' => 'customcode', ); $cblocks[ 'grid-ccodeend' ] = array( 'type' => 'gridgenend' ); return $cblocks; } /** * Extra Tabs Module Block Templates * * @since 3.0.0 * @access public * @return void */ public function plug_modblock_content( $blockid, $modblock, $sanetags, $tabid ) { if ( empty( $modblock ) || ! is_array( $modblock ) || ! isset( $modblock['type'] ) || $modblock['type'] !== 'customcode' ) { return; } $sanetags = is_array( $sanetags ) ? $sanetags : array(); if ( ! current_user_can( 'manage_options' ) ) : echo '

' . esc_html__( 'You do not have sufficient permissions to access these options. Please contact the site administrator', 'hootkit' ) . '

'; else: echo '
'; do_action( 'hoot_manager_code', $sanetags, self::$codeplugin ); echo '
'; endif; } /** * Returns $codeplugin * @since 3.0.0 * @access public * @return object */ public function codeplugin_data( $key = null ) { if ( $key && isset( self::$codeplugin[ $key ] ) ) { return self::$codeplugin[ $key ]; } return self::$codeplugin; } /** * Returns the instance * @since 3.0.0 * @access public * @return object */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } } /** * Gets the instance of the class. This function is useful for quickly grabbing data * used throughout the plugin. * @since 3.0.0 * @access public * @return object */ function hootkitcustomcode() { return Code::get_instance(); } // Lets roll! hootkitcustomcode(); endif;PK4m\<0 code/debug-disable.phpnu[option = hootkitcustomcode()->themeslug . '_customcode'; register_setting( 'hootkit-code', $this->option, array( 'sanitize_callback' => array( $this, 'sanitize_setting' ) ) ); } /** * Sanitize Settings * @since 3.0.0 */ function sanitize_setting( $raw ) { $setting = array(); $raw = is_array( $raw ) ? $raw : array(); $types = array( 'customphp', 'header', 'body', 'footer' ); // Enabled + Editor Text foreach ( $types as $key ) { $setting[ $key ] = isset( $raw[ $key ] ) && is_string( $raw[ $key ] ) ? $raw[ $key ] : ''; $setting[ $key . '-enabled' ] = !empty( $raw[ $key . '-enabled' ] ) ? '1' : ''; } $setting['customphp'] = preg_replace( '|^\s*<\?(php)?|', '', $setting['customphp'] ); $setting['customphp'] = preg_replace( '|\?>\s*$|', '', $setting['customphp'] ); // Scope + Options $setting['customphp-scope'] = isset( $raw['customphp-scope'] ) && in_array( $raw['customphp-scope'], array( 'global', 'admin', 'front' ) ) ? $raw['customphp-scope'] : 'global'; foreach ( array( 'header', 'body', 'footer' ) as $key ) { $setting[ $key . '-ops' ] = array(); foreach ( array( 'runphp', 'runformat', 'runshortcode' ) as $opkey ) { $setting[ $key . '-ops' ][ $opkey ] = !empty( $raw[ $key . '-ops' ] ) && is_array( $raw[ $key . '-ops' ] ) && !empty( $raw[ $key . '-ops' ][ $opkey ] ) ? '1' : ''; } } // Validate php code $setting['validate'] = array(); foreach ( $types as $key ) { if ( !empty( $setting[ $key ] ) && ( $key === 'customphp' || !empty( $setting[ $key . '-ops' ]['runphp'] ) ) ) { if ( ! class_exists( 'HootCodeValidator' ) && function_exists( '\HootKit\Mods\hootkitcustomcode' ) && !empty( \HootKit\Mods\hootkitcustomcode()->dir ) ) { require_once \HootKit\Mods\hootkitcustomcode()->dir . 'class-validator.php'; } if ( class_exists( 'HootCodeValidator' ) ) { $codecheck = $key === 'customphp' ? $setting[ $key ] : '?>' . $setting[ $key ] . 'validate(); if ( $validate_error ) { $setting[ $key . '-enabled' ] = ''; $errorline = !empty( $validate_error['line'] ) ? intval( $validate_error['line'] ) - 1 : ''; $errormsg = !empty( $validate_error['message'] ) ? $validate_error['message'] : ''; $setting['validate'][ $key ] = array( 'invalid' => true ); if ( $errorline || $errormsg ) { $setting['validate'][ $key ]['errorline'] = $errorline; $setting['validate'][ $key ]['errormsg'] = $errormsg; } } } } } /* */ return $setting; } /** * Enqueue Scripts * @since 3.0.0 */ function enqueue_scripts( $hook ) { if ( $hook === hootkitcustomcode()->codeplugin_data('pagehook') ) { // Enqueue CodeMirror scripts // @ref. https://developer.wordpress.org/reference/functions/wp_enqueue_code_editor/ $codemirror = wp_enqueue_code_editor(['type' => 'application/x-httpd-php']); $codemirroropen = wp_enqueue_code_editor(['type' => 'application/x-httpd-php-open']); if ( $codemirror && is_array( $codemirror ) ) { // Enqueue WP's script to initialize CodeMirror wp_enqueue_script('wp-theme-plugin-editor'); // Enqueue WP CodeMirror CSS (optional, but recommended) wp_enqueue_style('wp-codemirror'); // Linting if ( $codemirroropen && is_array( $codemirroropen ) && !empty( $codemirroropen['codemirror'] ) && is_array( $codemirroropen['codemirror'] ) ) { $codemirroropen['codemirror']['lint'] = true; } if ( $codemirror && is_array( $codemirror ) && !empty( $codemirror['codemirror'] ) && is_array( $codemirror['codemirror'] ) ) { $codemirror['codemirror']['lint'] = false; } // Localize script to pass CodeMirror settings $handle = hootkit()->slug . '-code'; wp_localize_script( $handle, 'hootCodeMirrorSettings', $codemirror ); wp_localize_script( $handle, 'hootCodeMirrorSettingsOpen', $codemirroropen ); } } } /** * Print Theme Manager Page Content * @since 3.0.0 */ function print_code( $sanetags, $codeplugin ) { $supports = array( 'customphp' => __( 'Custom PHP', 'hootkit' ), 'header' => __( 'Header Code', 'hootkit' ), 'body' => __( 'Body Code', 'hootkit' ), 'footer' => __( 'Footer Code', 'hootkit' ), ); $activetab = !empty( $_GET['codetab'] ) && array_key_exists( $_GET['codetab'], $supports ) ? $_GET['codetab'] : array_key_first( $supports ); ?>
', '', '', '' ); ?>
' . esc_html__( '> Only add trusted code:', 'hootkit' ) . ''; echo '
'; echo esc_html__( 'While powerful, adding PHP code comes with a risk: a faulty snippet can break your site and make WordPress admin inaccessible.', 'hootkit' ); echo '
'; echo '' . esc_html__( '> If your custom code broke your site and you can\'t access your site:', 'hootkit' ) . ''; echo '
'; /* Translators: The %s are placeholders for HTML, so the order can't be changed. */ echo esc_html__( 'Visit the Disable Custom Code link below - this will turn off all custom code you added.', 'hootkit' ); echo '
' . esc_url( add_query_arg( 'hootcmd', 'disablecustomcodes', admin_url() ) ) . '
'; echo '
'; echo '' . esc_html__( '> If your custom code broke your site and you can\'t log in:', 'hootkit' ) . ''; echo '
'; /* Translators: The %s are placeholders for HTML, so the order can't be changed. */ printf( esc_html__( 'Follow the %1$sdocumentation%2$s to temporarily switch on the Safe mode. Then use the Disable link to turn off the Custom Code.', 'hootkit' ), '', '' ); ?>
$label ) { ?>
option, array() ); foreach ( $supports as $tab => $label ) { $tab = esc_attr( $tab ); $blockid = 'hoot-codeblock-' . $tab; $editorid = 'hoot-code-' . $tab; $enablename = $this->option . '[' . $tab . '-enabled]'; $editorname = $this->option . '[' . $tab . ']'; $enablevalue = !empty( $customcode[ $tab . '-enabled' ] ) ? true : false; $editorvalue = isset( $customcode[ $tab ] ) ? $customcode[ $tab ] : ''; $validate = !empty( $customcode['validate'] ) && is_array( $customcode['validate'] ) && !empty( $customcode['validate'][ $tab ] ) && is_array( $customcode['validate'][ $tab ] ) ? $customcode['validate'][ $tab ] : array(); $phpscope = isset( $customcode['customphp-scope'] ) && in_array( $customcode['customphp-scope'], array( 'global', 'admin', 'front' ) ) ? $customcode['customphp-scope'] : 'front'; $ops = isset( $customcode[ $tab . '-ops' ] ) && is_array( $customcode[ $tab . '-ops' ] ) ? $customcode[ $tab . '-ops' ] : array(); ?>
', '', '', '' ); elseif ( $tab === 'header' ) $blockdesc = sprintf( esc_html__( 'This will be printed in the %3$s%1$s%2$s%4$s section in the frontend. Add code like %3$sGoogle Analytics%4$s or %3$smeta tags%4$s here.', 'hootkit' ), '', '', '', '' ); elseif ( $tab === 'body' ) $blockdesc = sprintf( esc_html__( 'This will be printed just below the opening %3$s%1$s%2$s%4$s tag in the frontend.', 'hootkit' ), '', '', '', '' ); elseif ( $tab === 'footer' ) $blockdesc = sprintf( esc_html__( 'This will be printed just above the closing %3$s%1$s%2$s%4$s tag in the frontend.', 'hootkit' ), '', '', '', '' ); if ( $blockdesc ) echo '
' . $blockdesc . '
'; ?>
', '','
' ); } else { printf( esc_html__( '%1$sPHP Code Validation Failed.%2$s%3$sIt looks like you are running PHP code in your %4$s code.%3$sPlease fix the issues and save again, or uncheck the %1$s"Evaluate php code within"%2$s option below.', 'hootkit' ), '', '','
', ucfirst( $tab ) ); } if ( !empty( $validate['errorline'] ) && !empty( $validate['errormsg'] ) ) { echo '
' . sprintf( esc_html__( 'Error on line %1$s: %2$s', 'hootkit' ), $validate['errorline'], $validate['errormsg'] ) . '
'; } printf( esc_html__( 'Note: Your custom code below is set to %1$sINACTIVE%2$s until the errors are fixed.', 'hootkit' ), '', '','
' ); ?>
/>
code = get_option( $themeslug . '_customcode', array() ); if ( ! is_array( $this->code ) ) { $this->code = array(); } // Troubleshoot Broken Code add_action( 'init', array( $this, 'troubleshoot' ), 10 ); // Run Code ( hooked @plugins_loaded ) $debugmode = file_exists( $codedir . 'debug-enable.php' ); $safemode = ! get_option( 'hootkit_customcode_disablesafemode' ); if ( ! $debugmode ) { // dont run at all if debugmode if ( ! $safemode ) { // always run if not safemode $this->runcode(); } elseif ( empty( $_GET['hootcmd'] ) || $_GET['hootcmd'] !== 'disablecustomcodes' ) { // else run only if cmd!==disable (default) $this->runcode(); } } } /** * Troubleshoot Broken Code * @since 3.0.0 */ function troubleshoot() { // no need to run if cmd is not set if ( empty( $_GET['hootcmd'] ) || $_GET['hootcmd'] !== 'disablecustomcodes' ) { return; } // no need to check if debug mode is on $debugmode = file_exists( hootkitcustomcode()->dir . 'debug-enable.php' ); $usercheck = $debugmode ? true : ( is_admin() && current_user_can( 'manage_options' ) ); // switch it off if ( $usercheck ) { foreach ( $this->code as $key => $value ) { if ( substr( $key, -8 ) === '-enabled' ) { $this->code[ $key ] = ''; } } update_option( hootkitcustomcode()->themeslug . '_customcode', $this->code ); if ( is_admin() ) { $codeplugin = hootkit()->supports( 'code', true ); if ( is_array( $codeplugin ) && !empty( $codeplugin['dashurl'] ) ) { wp_safe_redirect( $codeplugin['dashurl'] ); exit; } } } } /** * Run Code * @since 3.0.0 */ function runcode() { // PHP if ( !empty( $this->code['customphp-enabled'] ) && empty( $this->code['customphp-error'] ) && !empty( $this->code['customphp'] ) && is_string( $this->code['customphp'] ) ) { $scope = !empty( $this->code['customphp-scope'] ) && in_array( $this->code['customphp-scope'], array( 'global', 'admin', 'front' ) ) ? $this->code['customphp-scope'] : 'global'; if ( $scope === 'global' || ( $scope === 'admin' && is_admin() ) || ( $scope === 'front' && !is_admin() ) ) { // We do not display/print/echo anything as custom PHP code should not be doing that here (running during plugins_loaded@5 hook) $result = $this->runphp(); } } // Header if ( !empty( $this->code['header-enabled'] ) && !empty( $this->code['header'] ) && is_string( $this->code['header'] ) ) { $priority = 10; $upriority = apply_filters( 'hoot_manager_customcode_header_priority', $priority ); $priority = is_int( $upriority ) ? $upriority : $priority; add_action( 'wp_head', array( $this, 'runheader' ), $priority ); } // Body if ( !empty( $this->code['body-enabled'] ) && !empty( $this->code['body'] ) && is_string( $this->code['body'] ) ) { $priority = -1; $upriority = apply_filters( 'hoot_manager_customcode_body_priority', $priority ); $priority = is_int( $upriority ) ? $upriority : $priority; add_action( 'wp_body_open', array( $this, 'runbody' ), $priority ); } // Footer if ( !empty( $this->code['footer-enabled'] ) && !empty( $this->code['footer'] ) && is_string( $this->code['footer'] ) ) { $priority = 99999; $upriority = apply_filters( 'hoot_manager_customcode_footer_priority', $priority ); $priority = is_int( $upriority ) ? $upriority : $priority; add_action( 'wp_footer', array( $this, 'runfooter' ), $priority ); } } /** * Run Code * Code must NOT be escaped, as it will be executed directly. * @since 3.0.0 */ function runheader() { if ( empty( $this->code['header'] ) || ! is_string( $this->code['header'] ) ) return; $ops = !empty( $this->code['header-ops'] ) && is_array( $this->code['header-ops'] ) ? $this->code['header-ops'] : array(); // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped echo "\n" . $this->processcontent( $this->code['header'], $ops ) . "\n"; } function runbody() { if ( empty( $this->code['body'] ) || ! is_string( $this->code['body'] ) ) return; $ops = !empty( $this->code['body-ops'] ) && is_array( $this->code['body-ops'] ) ? $this->code['body-ops'] : array(); // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped echo "\n" . $this->processcontent( $this->code['body'], $ops ) . "\n"; } function runfooter() { if ( empty( $this->code['footer'] ) || ! is_string( $this->code['footer'] ) ) return; $ops = !empty( $this->code['footer-ops'] ) && is_array( $this->code['footer-ops'] ) ? $this->code['footer-ops'] : array(); // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped echo "\n" . $this->processcontent( $this->code['footer'], $ops ) . "\n"; } /** * Process Content * Code must NOT be escaped, as it will be executed directly. * @since 3.0.0 * @return string processed content */ function processcontent( $content, $ops ){ if ( ! is_array( $ops ) ) return $content; if ( !empty( $ops['runphp'] ) ) { $runphp = $this->runphp( $content ); if ( is_array( $runphp ) && !empty( $runphp['output'] ) ) { $content = $runphp['output']; } } if ( !empty( $ops['runformat'] ) ) { $functions = [ 'wptexturize', 'convert_smilies', 'convert_chars', 'wpautop', 'capital_P_dangit' ]; foreach ( $functions as $function ) { $content = call_user_func( $function, $content ); } } if ( !empty( $ops['runshortcode'] ) ) { $content = do_shortcode( $content ); } return ( !empty( $content ) && is_string( $content ) ) ? $content : ''; } /** * Run Code * Code must NOT be escaped, as it will be executed directly. * @since 3.0.0 * @return bool|array false on fail ; result of eval (error/result/output) */ function runphp( $content = false ) { $runcode = $content ? '?>' . $content . 'code['customphp'] ) && is_string( $this->code['customphp'] ) ? $this->code['customphp'] : false ); if ( ! $runcode ) return false; // detection checks if ( preg_match_all( '/(base64_decode|error_reporting|ini_set|eval)\s*\(/i', $runcode, $matches ) ) { if ( count( $matches[0] ) > 2 ) { return false; } } if ( preg_match( '/dns_get_record/i', $runcode ) ) { return false; } // run code $result = false; $error = false; ob_start(); try { $result = eval( $runcode ); // phpcs:ignore Squiz.PHP.Eval.Discouraged } catch ( ParseError $parse_error ) { $error = $parse_error; } $output = ob_get_clean(); do_action( 'hoot_manager_customcode_phprun', $content, $this->code['customphp'], $result, $error, $output ); // Return Output return array( 'result' => $result, 'output' => $output, 'error' => $error instanceof ParseError ? array( ucfirst( rtrim( $error->getMessage(), '.' ) ) . '.', $error->getLine(), ) : false, ); } } endif;PK4m\ir  widgets-as-sc/admin.phpnu[get_config( 'activemods', 'misc' ); if ( ! is_array( $hootkitmiscmodsactive ) && !in_array( 'classic-widgets', $hootkitmiscmodsactive ) ) { return; } add_action( 'widgets_init', 'hootkit_register_sc_sidebar' ); if ( ! function_exists('hootkit_register_sc_sidebar' ) ) : function hootkit_register_sc_sidebar(){ if ( ! function_exists('hoot_register_sidebar' ) ) return; $linkstart = function_exists( 'hootkit_theme_abouttags' ) ? hootkit_theme_abouttags('urldocs') : ''; $linkstart = esc_url($linkstart); $linkend = ''; if ( ! empty( $linkstart ) ) { $linkstart = ''; $linkend = ''; } hoot_register_sidebar( array( 'id' => 'hootkit-widgets-sc', 'name' => _x( 'HootKit - Widget Shortcodes', 'sidebar', 'hootkit' ), /* Translators: The %s are HTML links, so the order can't be changed. */ 'description' => sprintf( esc_html__( 'Add widgets here to %1$suse them anywhere (pages, posts etc) via shortcodes.%2$s', 'hootkit' ), $linkstart, $linkend), ) ); } endif; add_shortcode( 'hootkitwidget', 'hootkit_widget_sc' ); function hootkit_widget_sc( $atts, $content = null ) { $atts = shortcode_atts( array( 'id' => '', ), $atts ); global $wp_registered_widgets, $wp_registered_sidebars; $widget_id = $atts['id']; if ( empty( $widget_id ) || ! isset( $wp_registered_widgets[ $widget_id ] ) ) { return ''; } $widget_data = $wp_registered_widgets[ $widget_id ]; $sidebar_args = array( 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', ); foreach ( wp_get_sidebars_widgets() as $sidebar_id => $widgets ) { if ( is_array( $widgets ) && in_array( $widget_id, $widgets, true ) ) { if ( isset( $wp_registered_sidebars[ $sidebar_id ] ) ) { $sidebar_args = $wp_registered_sidebars[ $sidebar_id ]; } break; } } $callback = $widget_data['callback']; if ( ! is_array( $callback ) || ! is_object( $callback[0] ) ) { return ''; } $widget_obj = $callback[0]; $widget_class = get_class( $widget_obj ); $id_base = $widget_obj->id_base; $html_class = 'widget_' . $id_base; $settings = get_option( 'widget_' . $id_base ); // Get the widget number $parts = explode( '-', $widget_id ); $number = end( $parts ); if ( empty( $settings[$number] ) ) { return ''; } $instance = $settings[$number]; $args = array( 'widget_id' => $widget_id, 'widget_name' => $widget_obj->name, 'before_widget' => sprintf( $sidebar_args['before_widget'], $widget_id, $html_class ), 'after_widget' => $sidebar_args['after_widget'], 'before_title' => $sidebar_args['before_title'], 'after_title' => $sidebar_args['after_title'], ); ob_start(); the_widget( $widget_class, $instance, $args ); return ob_get_clean(); } PK4m\$ufly-cart/view.phpnu[
PK4m\A fly-cart/admin.phpnu[dir . 'misc/customizer.php' ); // Add admin customizer options add_filter( 'hootkit_customizer_options', 'hootkit_flycart_customizer_options' ); // Include display template add_action( 'wp_footer', 'hootkit_flycart_display' ); /** * Add admin customizer options * * @since 1.2.0 * @access public * @param array $options * @return array */ function hootkit_flycart_customizer_options( $options ) { $settings = array(); $sections = array(); $panels = array(); $imagepath = hootkit()->uri . 'admin/assets/'; $section = 'hk-flycart'; $panel = 'woocommerce'; $sections[ $section ] = array( 'title' => esc_html__( 'Offscreen Cart (HootKit)', 'hootkit' ), // 'priority' => '7', 'panel' => $panel, ); $settings['hkfc_icon'] = array( 'label' => esc_html__( 'Button Icon', 'hootkit' ), 'section' => $section, 'type' => 'radioimage', 'choices' => array( 'fa-cart-arrow-down fas' => $imagepath . 'flycarticon01.jpg', 'fa-cart-plus fas' => $imagepath . 'flycarticon02.jpg', 'fa-shopping-cart fas' => $imagepath . 'flycarticon03.jpg', 'fa-shipping-fast fas' => $imagepath . 'flycarticon04.jpg', 'fa-shopping-bag fas' => $imagepath . 'flycarticon05.jpg', 'fa-shopping-basket fas' => $imagepath . 'flycarticon06.jpg', ), 'default' => 'fa-shopping-cart fas', // 'priority' => '10', 'transport' => 'postMessage', ); $settings['hkfc_location'] = array( 'label' => esc_html__( 'Cart Panel Location', 'hootkit' ), 'section' => $section, 'type' => 'select', 'choices' => array( 'none' => esc_html__( 'Hide', 'hootkit'), 'left' => esc_html__( 'Left Edge of screen', 'hootkit'), 'right' => esc_html__( 'Right Edge of screen', 'hootkit'), ), 'default' => 'right', // 'priority' => '10', 'transport' => 'postMessage', ); $settings['hkfc_showonadd'] = array( 'label' => esc_html__( 'Briefly show Cart panel when product is added/removed', 'hootkit' ), 'section' => $section, 'type' => 'checkbox', // 'priority' => '10', 'default' => 1, 'transport' => 'postMessage', ); return array_replace_recursive( $options, array( 'settings' => $settings, 'sections' => $sections, 'panels' => $panels, ) ); } /** * Display fly cart in theme * * @since 1.2.0 * @access public */ function hootkit_flycart_display(){ // 'wp_footer' hook in plugin is executed in Legacy_Widget_Block_WP5.8 to create preview if ( is_admin() ) return; /* include ( apply_filters( 'hootkit_fly_cart_template', hootkit()->dir . 'misc/fly-cart/view.php' ) ); */ // Allow theme/child-themes to use their own template $flycart_template = hoot_get_widget( 'fly-cart', false ); // Use Hootkit template if theme does not have one $flycart_template = ( $flycart_template ) ? $flycart_template : hootkit()->dir . 'misc/fly-cart/view.php'; // Fire up the template if ( is_string( $flycart_template ) && file_exists( $flycart_template ) ) include ( $flycart_template ); }PK4m\>tools/class-tools.phpnu[dir = trailingslashit( hootkit()->dir . 'misc/tools' ); $this->uri = trailingslashit( hootkit()->uri . 'misc/tools' ); add_action( 'after_setup_theme', array( $this, 'loader' ), 94 ); } /** * Load if tools is enabled by themes * @since 3.0.0 * @access public * @return void */ public function loader() { /* Get values if Tools is an embedded plugin */ $dash = hootkit()->get_config( 'dashboard' ); // if registered wphoot theme, sanitizeconfig has already made sure all required values exist // 'tools', 'tabfilter', 'tabaction', hoot_dashboard() => we can reliably use them here. if ( is_array( $dash ) && !empty( $dash[ 'tools' ] ) ) { self::$toolsplugin = array( 'pagehook' => hoot_dashboard( 'screen' ), 'dashurl' => hoot_dashboard( 'url', array( 'tab' => $dash[ 'tools' ] ) ), 'tabfilter' => $dash['tabfilter'], 'tabaction' => $dash['tabaction'] ); } if ( self::$toolsplugin ) { // Check if tools has been disabled by user $activemiscmods = hootkit()->get_config( 'activemods', 'misc' ); $isactive = is_array( $activemiscmods ) && in_array( 'tools', $activemiscmods ); if ( ! $isactive ) : add_filter( self::$toolsplugin['tabfilter'], array( $this, 'unplug_tabs' ), 90, 2 ); else: // Render Content add_filter( self::$toolsplugin['tabfilter'], array( $this, 'plug_tabs' ), 90, 2 ); add_action( self::$toolsplugin['tabaction'], array( $this, 'plug_modblock_content' ), 90, 4 ); // Add Module if ( is_admin() && current_user_can( 'edit_theme_options' ) ) { require_once( $this->dir . 'import.php' ); require_once( $this->dir . 'export.php' ); } endif; } } /** * Remove Tabs if exist * * @since 3.0.0 * @access public * @return void */ public function unplug_tabs( $tabsarray, $sanetags ) { $order = !empty( $tabsarray['order'] ) && is_array( $tabsarray['order'] ) ? $tabsarray['order'] : array(); $order = array_values( array_diff( $order, array( 'tools' ) ) ); // array_values() to reindex numerically $tabsarray['order'] = $order; if ( isset( $tabsarray['tools'] ) ) unset( $tabsarray['tools'] ); return $tabsarray; } /** * Load Tabs Content * * @since 3.0.0 * @access public * @return void */ public function plug_tabs( $tabsarray, $sanetags ) { $order = !empty( $tabsarray['order'] ) && is_array( $tabsarray['order'] ) ? $tabsarray['order'] : array(); if ( !in_array( 'tools', $order ) ) $order[] = 'tools'; $tabsarray['tools'] = array( 'label' => __( 'Tools', 'hootkit' ), 'inpage' => true, 'content' => $this->plug_displayarray( $sanetags ), ); $tabsarray['order'] = $order; return $tabsarray; } /** * Tabs Module Data * * @since 3.0.0 * @access public * @return void */ public function plug_displayarray( $sanetags ) { $tblocks = array(); $tblocks[ 'notice' ] = array( 'type' => 'notice', 'gridtype' => 'gen', 'src' => 'action', 'action' => 'hoot_manager_toolsimport_notice', ); $tblocks[ 'grid-imp' ] = array( 'type' => 'gridconbox' ); $tblocks[ 'imp' ] = array( 'type' => 'import', 'name' => esc_html__( 'Import Customizer Settings', 'hootkit' ), /* Translators: The %s are placeholders for HTML, so the order can't be changed. */ 'desc' => sprintf( esc_html__( 'Paste your exported code here from another theme/installation, and click the Import button. %1$s%7$s%10$s %3$sWARNING:%4$s All your current customizer settings will be overwritten.%8$s%9$s%5$s(It is recommended to backup your database before making any changes to your site; or at the very least copy and save the customizer settings for current active theme below to a text file on your computer.)%6$s%2$s', 'hootkit' ), '

', '

', '', '', '', '', '', '', '
', '' ), ); $tblocks[ 'grid-impend' ] = array( 'type' => 'gridconboxend' ); $tblocks[ 'grid-exp' ] = array( 'type' => 'gridconbox' ); $tblocks[ 'exp' ] = array( 'type' => 'export', 'name' => esc_html__( 'Export Customizer Settings', 'hootkit' ), /* Translators: The %s are placeholders for HTML, so the order can't be changed. */ 'desc' => sprintf( esc_html__( 'Copy this code to export Customizer Settings for a particular theme%5$s%1$s%3$s(only wphoot themes are displayed here)%2$s%4$s', 'hootkit' ), '', '', '', '', '
' ), ); $tblocks[ 'grid-expend' ] = array( 'type' => 'gridconboxend' ); return $tblocks; } /** * Extra Tabs Module Block Templates * * @since 3.0.0 * @access public * @return void */ public function plug_modblock_content( $blockid, $modblock, $sanetags, $tabid ) { if ( empty( $modblock ) || ! is_array( $modblock ) || ! isset( $modblock['type'] ) ) { return; } $sanetags = is_array( $sanetags ) ? $sanetags : array(); if ( $modblock['type'] === 'import' ) { if ( !empty( $modblock['name'] ) || !empty( $modblock['desc'] ) ) : ?>
' . wp_kses_post( $modblock['name'] ) . ''; if ( !empty( $modblock['desc'] ) ) echo '
' . wp_kses_post( $modblock['desc'] ) . '
'; ?>
' . esc_html__( 'You do not have sufficient permissions to access these options. Please contact the site administrator', 'hootkit' ) . '

'; else: do_action( 'hoot_manager_toolsimport', $sanetags, self::$toolsplugin ); endif; } if ( $modblock['type'] === 'export' ) { if ( !empty( $modblock['name'] ) || !empty( $modblock['desc'] ) ) : ?>
' . wp_kses_post( $modblock['name'] ) . ''; if ( !empty( $modblock['desc'] ) ) echo '
' . wp_kses_post( $modblock['desc'] ) . '
'; ?>
' . esc_html__( 'You do not have sufficient permissions to access these options. Please contact the site administrator', 'hootkit' ) . '

'; else: do_action( 'hoot_manager_toolsexport', $sanetags, self::$toolsplugin ); endif; } } /** * Returns the instance * @since 3.0.0 * @access public * @return object */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } } /** * Gets the instance of the class. This function is useful for quickly grabbing data * used throughout the plugin. * @since 3.0.0 * @access public * @return object */ function hootkittools() { return Tools::get_instance(); } // Lets roll! hootkittools(); endif;PK4m\μ tools/import.phpnu[

$value ) { $key = sanitize_key( $key ); if ( $key !== 'sidebars_widgets' ) { set_theme_mod( $key, $value ); $done++; } } ?>


themes(); $current = get_option( 'stylesheet' ); $showcurrent = array(); $showthemes = array(); foreach ( $themes as $theme_slug => $theme ) { $onlyhoot = apply_filters( 'hoot_exporter_onlyhoot', true ); $addthis = !$onlyhoot || ( isset( $theme['author'] ) && stripos( $theme['author'], 'wphoot' ) !== false ); if ( $addthis ) { if ( $current == $theme_slug ) { $showcurrent[ $theme_slug ] = !empty( $theme['name'] ) ? $theme['name'] : ''; } else { $showthemes[ $theme_slug ] = !empty( $theme['name'] ) ? $theme['name'] : ''; } } } if ( !empty( $showcurrent ) ) { echo '
' . __( 'Active Theme', 'hootkit' ) . '
'; foreach ( $showcurrent as $theme_slug => $theme_name ) { $mods = $this->theme_mods( $theme_slug, $theme_name ); echo '

' . $theme_name . '

'; if ( !empty( $mods ) ) echo ''; else echo '

' . __( 'No customizer settings available yet for this theme.', 'hootkit' ) . '

'; } } if ( !empty( $showthemes ) ) { echo '
' . __( 'Other wpHoot Themes', 'hootkit' ) . '
'; foreach ( $showthemes as $theme_slug => $theme_name ) { $mods = $this->theme_mods( $theme_slug, $theme_name ); echo '

' . $theme_name . '

'; if ( !empty( $mods ) ) echo ''; else echo '

' . __( 'No customizer settings available yet for this theme.', 'hootkit' ) . '

'; } } } /** * Get Themes * @since 3.0.0 */ function themes() { global $wp_themes; $return = array(); if ( !empty( $wp_themes ) ) $themes = $wp_themes; else $themes = wp_get_themes(); if ( is_array( $themes ) && !empty( $themes ) ) { foreach ( $themes as $theme ) { $slug = $theme->get_stylesheet(); $return[ $slug ][ 'name' ] = $theme->get('Name'); $return[ $slug ][ 'author' ] = $theme->get('Author'); } } return $return; } /** * Get Theme Mods * @since 3.0.0 */ function theme_mods( $theme_slug, $theme_name = '' ) { $mods = get_option( "theme_mods_$theme_slug" ); // Theme Slug return $mods; } /** * Returns the instance * @since 3.0.0 * @access public * @return object */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } } Export::get_instance(); endif;PK4m\{> X X$import/assets/jquery-confirm.min.cssnu[/*! * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) * Author: boniface pereira * Website: www.craftpip.com * Contact: hey@craftpip.com * * Copyright 2013-2019 jquery-confirm * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) */@-webkit-keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}body[class*=jconfirm-no-scroll-]{overflow:hidden!important}.jconfirm{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999999;font-family:inherit;overflow:hidden}.jconfirm .jconfirm-bg{position:fixed;top:0;left:0;right:0;bottom:0;-webkit-transition:opacity .4s;transition:opacity .4s}.jconfirm .jconfirm-bg.jconfirm-bg-h{opacity:0!important}.jconfirm .jconfirm-scrollpane{-webkit-perspective:500px;perspective:500px;-webkit-perspective-origin:center;perspective-origin:center;display:table;width:100%;height:100%}.jconfirm .jconfirm-row{display:table-row;width:100%}.jconfirm .jconfirm-cell{display:table-cell;vertical-align:middle}.jconfirm .jconfirm-holder{max-height:100%;padding:50px 0}.jconfirm .jconfirm-box-container{-webkit-transition:-webkit-transform;transition:-webkit-transform;transition:transform;transition:transform,-webkit-transform}.jconfirm .jconfirm-box-container.jconfirm-no-transition{-webkit-transition:none!important;transition:none!important}.jconfirm .jconfirm-box{background:white;border-radius:4px;position:relative;outline:0;padding:15px 15px 0;overflow:hidden;margin-left:auto;margin-right:auto}@-webkit-keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@-webkit-keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@-webkit-keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@-webkit-keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@-webkit-keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@-webkit-keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}@keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}.jconfirm .jconfirm-box.jconfirm-type-animated{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.jconfirm .jconfirm-box.jconfirm-type-blue{border-top:solid 7px #3498db;-webkit-animation-name:type-blue;animation-name:type-blue}.jconfirm .jconfirm-box.jconfirm-type-green{border-top:solid 7px #2ecc71;-webkit-animation-name:type-green;animation-name:type-green}.jconfirm .jconfirm-box.jconfirm-type-red{border-top:solid 7px #e74c3c;-webkit-animation-name:type-red;animation-name:type-red}.jconfirm .jconfirm-box.jconfirm-type-orange{border-top:solid 7px #f1c40f;-webkit-animation-name:type-orange;animation-name:type-orange}.jconfirm .jconfirm-box.jconfirm-type-purple{border-top:solid 7px #9b59b6;-webkit-animation-name:type-purple;animation-name:type-purple}.jconfirm .jconfirm-box.jconfirm-type-dark{border-top:solid 7px #34495e;-webkit-animation-name:type-dark;animation-name:type-dark}.jconfirm .jconfirm-box.loading{height:120px}.jconfirm .jconfirm-box.loading:before{content:'';position:absolute;left:0;background:white;right:0;top:0;bottom:0;border-radius:10px;z-index:1}.jconfirm .jconfirm-box.loading:after{opacity:.6;content:'';height:30px;width:30px;border:solid 3px transparent;position:absolute;left:50%;margin-left:-15px;border-radius:50%;-webkit-animation:jconfirm-spin 1s infinite linear;animation:jconfirm-spin 1s infinite linear;border-bottom-color:dodgerblue;top:50%;margin-top:-15px;z-index:2}.jconfirm .jconfirm-box div.jconfirm-closeIcon{height:20px;width:20px;position:absolute;top:10px;right:10px;cursor:pointer;opacity:.6;text-align:center;font-size:27px!important;line-height:14px!important;display:none;z-index:1}.jconfirm .jconfirm-box div.jconfirm-closeIcon:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-closeIcon .fa{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .glyphicon{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .zmdi{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon:hover{opacity:1}.jconfirm .jconfirm-box div.jconfirm-title-c{display:block;font-size:22px;line-height:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;padding-bottom:15px}.jconfirm .jconfirm-box div.jconfirm-title-c.jconfirm-hand{cursor:move}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{font-size:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i{vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:inherit;font-family:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-content-pane{margin-bottom:15px;height:auto;-webkit-transition:height .4s ease-in;transition:height .4s ease-in;display:inline-block;width:100%;position:relative;overflow-x:hidden;overflow-y:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane.no-scroll{overflow-y:hidden}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar{width:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-track{background:rgba(0,0,0,0.1)}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-thumb{background:#666;border-radius:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content img{max-width:100%;height:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content:empty{display:none}.jconfirm .jconfirm-box .jconfirm-buttons{padding-bottom:11px}.jconfirm .jconfirm-box .jconfirm-buttons>button{margin-bottom:4px;margin-left:2px;margin-right:2px}.jconfirm .jconfirm-box .jconfirm-buttons button{display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;min-height:1em;-webkit-transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-webkit-tap-highlight-color:transparent;border:0;background-image:none}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue{background-color:#3498db;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover{background-color:#2980b9;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green{background-color:#2ecc71;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green:hover{background-color:#27ae60;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red{background-color:#e74c3c;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover{background-color:#c0392b;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange{background-color:#f1c40f;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange:hover{background-color:#f39c12;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default{background-color:#ecf0f1;color:#000;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover{background-color:#bdc3c7;color:#000}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple{background-color:#9b59b6;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple:hover{background-color:#8e44ad;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark{background-color:#34495e;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark:hover{background-color:#2c3e50;color:#FFF}.jconfirm .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#e74c3c!important}.jconfirm .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#3498db!important}.jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#2ecc71!important}.jconfirm .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#9b59b6!important}.jconfirm .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#f1c40f!important}.jconfirm .jconfirm-box.jconfirm-type-dark .jconfirm-title-c .jconfirm-icon-c{color:#34495e!important}.jconfirm .jconfirm-clear{clear:both}.jconfirm.jconfirm-rtl{direction:rtl}.jconfirm.jconfirm-rtl div.jconfirm-closeIcon{left:5px;right:auto}.jconfirm.jconfirm-white .jconfirm-bg,.jconfirm.jconfirm-light .jconfirm-bg{background-color:#444;opacity:.2}.jconfirm.jconfirm-white .jconfirm-box,.jconfirm.jconfirm-light .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);border-radius:5px}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#333}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#ddd}.jconfirm.jconfirm-white.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-black .jconfirm-bg,.jconfirm.jconfirm-dark .jconfirm-bg{background-color:darkslategray;opacity:.4}.jconfirm.jconfirm-black .jconfirm-box,.jconfirm.jconfirm-dark .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);background:#444;border-radius:5px;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button{border:0;background-image:none;text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none;-webkit-transition:background .1s;transition:background .1s;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#fff;background:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#666}.jconfirm.jconfirm-black.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-shake{-webkit-animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-glow{-webkit-animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@-webkit-keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}@keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}.jconfirm{-webkit-perspective:400px;perspective:400px}.jconfirm .jconfirm-box{opacity:1;-webkit-transition-property:all;transition-property:all}.jconfirm .jconfirm-box.jconfirm-animation-top,.jconfirm .jconfirm-box.jconfirm-animation-left,.jconfirm .jconfirm-box.jconfirm-animation-right,.jconfirm .jconfirm-box.jconfirm-animation-bottom,.jconfirm .jconfirm-box.jconfirm-animation-opacity,.jconfirm .jconfirm-box.jconfirm-animation-zoom,.jconfirm .jconfirm-box.jconfirm-animation-scale,.jconfirm .jconfirm-box.jconfirm-animation-none,.jconfirm .jconfirm-box.jconfirm-animation-rotate,.jconfirm .jconfirm-box.jconfirm-animation-rotatex,.jconfirm .jconfirm-box.jconfirm-animation-rotatey,.jconfirm .jconfirm-box.jconfirm-animation-scaley,.jconfirm .jconfirm-box.jconfirm-animation-scalex{opacity:0}.jconfirm .jconfirm-box.jconfirm-animation-rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.jconfirm .jconfirm-box.jconfirm-animation-rotatex{-webkit-transform:rotateX(90deg);transform:rotateX(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatexr{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatey{-webkit-transform:rotatey(90deg);transform:rotatey(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotateyr{-webkit-transform:rotatey(-90deg);transform:rotatey(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scaley{-webkit-transform:scaley(1.5);transform:scaley(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scalex{-webkit-transform:scalex(1.5);transform:scalex(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-top{-webkit-transform:translate(0px,-100px);transform:translate(0px,-100px)}.jconfirm .jconfirm-box.jconfirm-animation-left{-webkit-transform:translate(-100px,0px);transform:translate(-100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-right{-webkit-transform:translate(100px,0px);transform:translate(100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-bottom{-webkit-transform:translate(0px,100px);transform:translate(0px,100px)}.jconfirm .jconfirm-box.jconfirm-animation-zoom{-webkit-transform:scale(1.2);transform:scale(1.2)}.jconfirm .jconfirm-box.jconfirm-animation-scale{-webkit-transform:scale(0.5);transform:scale(0.5)}.jconfirm .jconfirm-box.jconfirm-animation-none{visibility:hidden}.jconfirm.jconfirm-supervan .jconfirm-bg{background-color:rgba(54,70,93,0.95)}.jconfirm.jconfirm-supervan .jconfirm-box{background-color:transparent}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-blue{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-green{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-red{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-orange{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-purple{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-dark{border:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-closeIcon{color:white}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c{text-align:center;color:white;font-size:28px;font-weight:normal}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c>*{padding-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content-pane{margin-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content{text-align:center;color:white}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons button{font-size:16px;border-radius:2px;background:#303f53;text-shadow:none;border:0;color:white;padding:10px;min-width:100px}.jconfirm.jconfirm-supervan.jconfirm-rtl .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-material .jconfirm-bg{background-color:rgba(0,0,0,0.67)}.jconfirm.jconfirm-material .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 25px 10px 25px}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons{text-align:right}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-weight:500}.jconfirm.jconfirm-material.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-bootstrap .jconfirm-bg{background-color:rgba(0,0,0,0.21)}.jconfirm.jconfirm-bootstrap .jconfirm-box{background-color:white;-webkit-box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);border:solid 1px rgba(0,0,0,0.4);padding:15px 0 0}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold;padding-left:15px;padding-right:15px}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87);padding:0 15px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons{text-align:right;padding:10px;margin:-5px 0 0;border-top:solid 1px #ddd;overflow:hidden;border-radius:0 0 4px 4px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons button{font-weight:500}.jconfirm.jconfirm-bootstrap.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-modern .jconfirm-bg{background-color:slategray;opacity:.6}.jconfirm.jconfirm-modern .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 30px 15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87);top:15px;right:15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:24px;font-weight:bold;text-align:center;margin-bottom:10px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;-webkit-transform:scale(0);transform:scale(0);display:block;margin-right:0;margin-left:0;margin-bottom:10px;font-size:69px;color:#aaa}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-content{text-align:center;font-size:15px;color:#777;margin-bottom:25px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button{font-weight:bold;text-transform:uppercase;-webkit-transition:background .1s;transition:background .1s;padding:10px 20px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button+button{margin-left:4px}.jconfirm.jconfirm-modern.jconfirm-open .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transform:scale(1);transform:scale(1)}PK4m\yO$O$import/assets/hootkitimport.jsnu[jQuery(document).ready(function($) { "use strict"; if( 'undefined' == typeof hootkitimportData ) window.hootkitimportData = {}; var hootkitImportDirtyVals = false, activeProcess = false; window.onbeforeunload = function(e) { if ( hootkitImportDirtyVals ) { e.preventDefault(); e.returnValue = 'The content is being imported. Please wait for the process to finish.'; } }; /*** Modules Toggle ***/ $('.hootimp-opbox').not('.hootimp-opbox--plugin_active, .hootimp-opbox--plugin_reqd').each( function() { var $this = $(this), $toggle = $this.find('.hootimp-toggle'), $checkbox = $this.find('input[type=checkbox]'); $toggle.on( 'click', function(e) { e.preventDefault(); if ( $checkbox.is(':checked') ) { $checkbox.prop('checked', false); $this.addClass('hootimp-opbox--plugin_noaction'); if ( $checkbox.val() === 'woocommerce' ) { $('#hootimp-form').addClass('hootimp--nowc'); $('input[value="wcxml"]').prop("checked", false); } } else { $checkbox.prop('checked', true); $this.removeClass('hootimp-opbox--plugin_noaction'); if ( $checkbox.val() === 'woocommerce' ) { $('#hootimp-form').removeClass('hootimp--nowc'); $('input[value="wcxml"]').prop("checked", true); } } } ); } ); /*** Submit ***/ $('#hootimp-submit').click( function(e){ e.preventDefault(); var $submit = $(this), $form = $('#hootimp-form'); if ( $submit.is('.disabled') ) return; if ( activeProcess ) { // This should not happen as no access point to Submit button once started alert( hootkitimportData.strings.active_process_alert ); return; } $form.removeClass('hootimp-formcomplete hootimp-formloaderror') var processimport = function() { // Setup console.log( 'Start Import Process' ); $form.addClass('hootimp-formloader'); $submit.addClass('disabled'); hootkitImportDirtyVals = true; activeProcess = true; var pack = $form.find('input[name="pack"]').val(); var demoslug = $form.find('input[name="demo"]').val(); var contentTypes = [ 'xml', 'wcxml', 'dat', 'wie' ]; // Create selected list to be processed var selected = [ { name: 'Fetching Files', type: 'prepare', demoslug: demoslug, pack: pack, subroutines: [], } ]; // Order of selected actions is important $form.find('input[name="plugin[]"]:checked').each( function() { var plugin = $.extend( { type: 'plugin', value: $(this).val(), demoslug: demoslug }, $(this).data() ); selected.push( plugin ); selected[0]['subroutines'].push( plugin.value ); } ); contentTypes.forEach( function( contentType ) { $form.find('input[value="' + contentType + '"]:checked').each( function() { var content = $.extend( { type: 'content', value: $(this).val(), demoslug: demoslug, pack: pack }, $(this).data() ); selected.push( content ); selected[0]['subroutines'].push( content.value ); } ); } ); selected.push( { name: 'Finalizing Settings', type: 'final', demoslug: demoslug, pack: pack } ); var $loadermsg = $('#hootimp-loadermsg'), $loaderbar = $('.hootimp-loaderbar div'), waitmsgInterval, waitmsgAdded = 0, xmlretry = 0, errList = [], msgList = [], steps = selected.length, step = 1; // Process selected var processNext = function( selected, index, callback ) { if (index >= selected.length) { if (callback) callback(); return; } var mod = selected[index]; var lmsg = '' + hootkitimportData.strings.loading_step + ' ' + step + ' / ' + (steps - 0) + ' : '; if ( mod.type === 'plugin' ) { lmsg += '' + hootkitimportData.strings.loading_plugin + ' ' + mod.name + ''; } else if ( mod.type === 'prepare' ) { lmsg += '' + hootkitimportData.strings.loading_prepare + ''; } else if ( mod.type === 'final' ) { lmsg += '' + hootkitimportData.strings.loading_final + ''; } else { lmsg += '' + hootkitimportData.strings.loading_content + ' ' + mod.name + ''; } $loadermsg.html( lmsg ); $loaderbar.css( 'width', ( step / steps * 100 ) + '%' ); var updateWaitMsg = function() { waitmsgAdded ++; xmlmsg = `
${hootkitimportData.strings.loading_xml}
`; xmlmsg += ` `; xmlmsg += ` ${hootkitimportData.strings.stillloading_xml[2]} ${waitmsgAdded}`; xmlmsg += '
'; $loadermsg.html(lmsg + xmlmsg); } if ( mod.value === 'xml' ) { var xmlmsg = `
${hootkitimportData.strings.stillloading_xml[0]} ${hootkitimportData.strings.stillloading_xml[1]}
`; if ( xmlretry ) { $loadermsg.html( lmsg += xmlmsg ); } else { setTimeout( updateWaitMsg, 4000 ); waitmsgInterval = setInterval( updateWaitMsg, 10000 ); } } $.ajax( { url: ajaxurl, type : 'post', data: { 'action': hootkitimportData.import_action, 'nonce': hootkitimportData.nonce, 'mods': mod.type === 'final' ? JSON.stringify( selected ) : JSON.stringify( [] ), 'mod': JSON.stringify( mod ) }, success: function( response ){ xmlretry = 0; if ( response.error ) { console.log( 'AJAX response Error ' + mod.name, response ); var errorMsg = typeof response.error === 'string' ? response.error : 'Unknown Error'; errList.push( '' + mod.name + ' ' + errorMsg ); msgList.push( '

' + mod.name + '

' + errorMsg ); } else { console.log( 'AJAX Success ' + mod.name, response ); if ( typeof response.success === 'string' ) { msgList.push( '

' + mod.name + '

' + response.success ); } } }, error: function( xhr, textStatus, errorThrown ) { var msg = ''; if ( typeof xhr.status === 'string' || typeof xhr.status === 'number' ) msg += xhr.status + ' : '; if ( typeof xhr.statusText === 'string' ) msg += xhr.statusText; else if ( typeof errorThrown === 'string' ) msg += errorThrown; msgList.push( '

' + mod.name + '

' + msg ); console.log( 'AJAX Error ' + mod.name, textStatus, errorThrown ); if ( ( mod.value === 'xml' || mod.value === 'wcxml' ) && !xmlretry ) { xmlretry = 1; var xmlmsg = 'Server timeout in first attempt. Giving it one more try.
You may need to increase "max_execution_time" in your php.ini configuration file.
'; msgList.push( xmlmsg ); console.log( xmlmsg ); } else { xmlretry = 0; if ( msg === '500 : Internal Server Error' ) { msg = '500 : Server Timeout : Please try again.'; } errList.push( '' + mod.name + ' ' + msg ); } }, complete: function( data ){ if ( xmlretry ) { processNext( selected, index, callback ); } else { if ( waitmsgInterval ) clearInterval( waitmsgInterval ); waitmsgAdded = 0; step++; processNext( selected, index + 1, callback ); } } } ); } processNext( selected, 0, function() { // Reverse Setup activeProcess = false; hootkitImportDirtyVals = false; $submit.removeClass('disabled'); $form.removeClass('hootimp-formloader'); if ( errList.length > 0 ) { $form.addClass('hootimp-formloaderror'); $('#hootimp-loaderror-details').html( '

' + errList.join('
') + '

' ); } else { $form.addClass('hootimp-formcomplete'); } if ( msgList.length > 0 ) { $('.hootimp-load-details').html( msgList.map( function(msg) { return '
' + $('