????????????????????????????????????????
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
????????????????????????????????????????
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
????????????????????????????????????????
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
?????????????????????????????????????????
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
????????????????????????????????????????
???????????????????????????????????????
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
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
PK 4m\gg g code/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;
}
}
PK 4m\ w code/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);
}
} );
});PK 4m\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: ''; }
PK 4m\Ii i code/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;PK 4m\<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 );
?>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;PK 4m\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();
}
PK 4m\$u fly-cart/view.phpnu [
PK 4m\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 );
}PK 4m\> 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;PK 4m\μ 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 '' . esc_textarea( json_encode( $mods ) ) . ' ';
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 '' . esc_textarea( json_encode( $mods ) ) . ' ';
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;PK 4m\{>
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)}PK 4m\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 '' + $(' ').html(msg).text() + ' ';
} ).join(' ') );
}
console.log( 'Import Process complete' );
} );
}
$.confirm({
title : '',
content: hootkitimportData.strings.confirm_msg,
boxWidth: '50%',
useBootstrap: false,
backgroundDismiss: true,
animation: 'scale',
closeAnimation: 'scale',
onContentReady: function () { $( 'body' ).addClass( 'hootimp-message-popup' ); },
onDestroy: function () { $( 'body' ).removeClass( 'hootimp-message-popup' ); },
buttons: {
confirm: {
text: hootkitimportData.strings.confirm_primarybtn,
btnClass: 'button button-primary',
keys: ['enter'],
action: processimport
},
cancel: {
text: hootkitimportData.strings.confirm_cancelbtn,
btnClass: 'button',
action: function(){}
},
}
});
});
/*** Log ***/
$('.hootimp-show-log').click( function(e){
e.preventDefault();
$.confirm({
title : '',
content: $('.hootimp-load-details').html(),
boxWidth: '50%',
useBootstrap: false,
backgroundDismiss: true,
animation: 'scale',
closeAnimation: 'scale',
onContentReady: function () { $( 'body' ).addClass( 'hootimp-log-popup' ); },
onDestroy: function () { $( 'body' ).removeClass( 'hootimp-log-popup' ); },
buttons: {
cancel: {
text: 'Close',
btnClass: 'button',
action: function(){}
},
}
});
});
});PK 4m\}E3 E3 import/assets/hootkitimport.scssnu [ $accent: #2271b1; // used $$HKITIMP
$accentbright: #007cba;
$disabled: #ccc;
$borderdark: #ccc; // used $$HKITIMP
$highlightdark: #80bedd;
$highlight: #e3f4fb;
$redhighlight: #d63638; // used $$HKITIMP
$noteorange: #f78d1b; // used $$HKITIMP
$notegreen: #00a32a; // used $$HKITIMP
:root {
--hootaccent-col: #2271b1;
--hootaccent-font: #ffffff;
--hootaccent-def: #2271b1; // #0073aa
}
/*** General ***/
.hootimp-highlight { font-style: normal; color: $accent; }
.hootimp-highlightbg { background: #eee; padding: 5px 10px; }
/*** Layout ***/
#hootabt-wrap.hootabt-hkimp-multi {}
#hootabt-wrap.hootabt-hkimp-multisingle {}
// == hkit's div structure ==
.hootabt-hkimp-multisingle {
.hootimp-content { max-width: 938px; margin: 0 auto; } // keeping same as 980px - 40px padding - 2px border when not widened
}
.hootabt-hkimp-multi {
.hootabt-blockid--grid-hki {
background: none; padding: 0; border: none;
}
.hootkitimp_idx {
padding-left: 0; padding-right: 0;
.hootkitimp_idx-item {
overflow: hidden;
border-color: #c9d2d7;
transition: box-shadow 0.3s ease;
&:hover { box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.3); }
}
.hootkitimp_idx-previewlink { background: rgba(255, 255, 255, 0.5); }
.hootkitimp_idx-foot { box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.2); }
}
}
// == theme's div structure ==
.hootabt-hkimp-multi,
.hootabt-hkimp-multisingle {
&.hootabt-widen {
.hootabt-gridgen, .hootabt-gridbox, .hootabt-gridconbox, .hootabt-gridflex { max-width: 980px; }
}
}
/*** Multi Demo ***/
#hootkitimp-multi {}
.hootkitimp-multi {}
#hootkitimp_idx {}
.hootkitimp_idx { display: none; &.hootkit-active { -ms-box-orient: horizontal; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex; } }
.hootkitimp_idx-item {}
.hootkitimp_idx-locked {}
.hootkitimp_idx-more {}
.hootkitimp_idx-ss {}
.hootkitimp_idx-previewlink {}
.hootkitimp_idx-moremsg {}
.hootkitimp_idx-foot {}
.hootkitimp_idx-label {}
.hootkitimp_idx-btn {}
.hootkitimp-single { display: none; &.hootkit-active { display: block; } }
.hootkitimp-single-header {}
.hootkitimp-backtomulti {}
.hootimp-content {}
.hootkitimp-single-notice {}
.hootkitimp-single-warning {}
// Index
.hootkitimp_idx {
flex-wrap: wrap;
justify-content: flex-start; align-items: stretch;
gap: 30px;
padding: 10px;
}
.hootkitimp_idx-item {
position: relative;
width: calc(33.2% - 20px); box-sizing: border-box;
border: solid 1px #d6e1e8;
}
$footer-minheight: 50px;
div.hootkitimp_idx-ss {
width: 100%; min-height: 50px;
position: relative;
padding-bottom: $footer-minheight;
height: 100%; box-sizing: border-box;
img { max-width: 480px; width: 100%; display: block; margin: 0 auto; }
&:hover .hootkitimp_idx-previewlink { opacity: 1; }
}
.hootkitimp_idx-previewlink {
opacity: 0; transition: opacity 0.3s ease;
position: absolute; top: 0; left: 0; right: 0; bottom: 0;
-ms-box-orient: horizontal; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex;
justify-content: center; align-items: center;
font-size: 16px; text-decoration: none; text-transform: uppercase; font-weight: 500;
background: rgba(0,0,0,0.1);
em { font-style: normal; background: #fff; padding: 7px 14px; border-radius: 5px; border: solid 1px #ddd; }
em { box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.3); border-radius: 0; }
}
.hootkitimp_idx-more .hootkitimp_idx-ss {
box-shadow: inset 0px 0px 18px 0px rgba(80, 80, 80, 0.15);
}
.hootkitimp_idx-moremsg {
width: 100%; height: 100%; min-height: 250px;
-ms-box-orient: horizontal; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex;
justify-content: center; align-items: center;
font-size: 30px; font-weight: 600; text-transform: uppercase; color: #cfcfcf;
text-shadow: 1px 1px 1px #ffffff, -1px -1px 1px #8f8f8f;
}
.hootkitimp_idx-foot {
-ms-box-orient: horizontal; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex;
justify-content: space-between; align-items: center;
width: 100%; box-sizing: border-box;
padding: 10px; border-top: solid 1px #d6e1e8;
position: absolute; bottom: 0; background: #fafafa; min-height: $footer-minheight;
.hootkitimp_idx-btn { background: #fff; }
}
.hootkitimp_idx-label {
margin-left: 4px; font-weight: 500; font-size: 15px;
line-height: 18px; padding: 7px 0;
span.dashicons { font-size: 18px; }
}
@media only screen and (max-width: 1079px) {
.hootkitimp_idx-item { width: calc(50% - 15px); }
}
@media screen and (max-width: 782px) {
.hootkitimp_idx-item { width: 100%; }
}
// Singletons
.hootkitimp-single-header {
font-size: 16px; line-height: 1.5em;
margin-bottom: 20px; background: #f5f5f5;
.hootkitimp-backtomulti { text-decoration: none; display: inline-block; padding: 9px 15px; }
span.dashicons {
font-size: inherit; line-height: inherit; width: 1.5em;
border: solid 1px; border-radius: 50%;
vertical-align: top;
margin-right: 5px;
}
}
.hootkitimp-single-notice {
text-align: center; font-size: 1.1em;
padding: 25px 5px; margin-top: 25px;
background: #f5f5f5; border: solid 5px #ddd;
h5 { margin: 0; font-size: 1.3em; text-transform: uppercase; }
p { font-size: inherit; margin: 1em 0 1.2em; }
.button { font-size: inherit; }
}
.hootkitimp-single-warning {
padding: 12px 17px;
margin: 1.4em -10px;
border: 1px solid;
position: relative;
border-color: #d1cecf; background: #fffafb; color: #7f3048;
}
/*** Layout ***/
.hootimp-content {
width: 100%; max-width: 1200px;
overflow: hidden;
padding: 5px; margin: -5px;
}
.hootimp-footer {
a { text-decoration: none !important; opacity: 0.8; }
a:hover { opacity: 1; }
.hootabt-blockdesc { background: #fafafa; border: solid 1px #ddd; padding: 8px 25px; text-align: right; }
}
div.hootimp-footer.hootabt-gridgen { /* margin-top: -15px; */ margin-bottom: 0; }
/*** Demo Install ***/
.hootimp-content-install {
display: flex; align-items: stretch; flex-wrap: wrap;
}
.hootimp-screenshots {
width: 53%;
padding: 1px 0 3px;
}
.hootimp-screenshot {
margin-right: 25px;
min-height: 500px; height: 100%;
border: 1px solid #fff;
box-shadow: 0 0 0 1px rgba(0, 0, 0, .2);
background: #fafafa;
position: relative; overflow: hidden;
img { width: 100%; position: absolute; }
}
.hootimp-theme-info {
width: 47%;
box-sizing: border-box; padding: 0 10px;
h2 {
margin: 0;
font-size: 32px; font-weight: 100; line-height: 1.3;
span {
font-size: 13px; font-weight: 400;
margin-left: 5px;
display: inline-block;
}
}
}
@media only screen and (max-width: 960px) {
.hootimp-screenshots, .hootimp-theme-info { width: 100%; margin: 10px 0; float: none; }
.hootimp-screenshot { min-height: 400px; max-width: 600px; margin-right: auto; margin-left: auto; }
}
/*** Form ***/
#hootimp-form {}
.hootimp-form {
h4 { font-size: 1.2em; margin: 0 0 10px; }
.hootimp-h4desc { position: relative; top: -5px; margin-bottom: 4px; font-style: italic; }
}
.hootimp-op-group {
background: #fafafa;
border: solid 1px $borderdark; border-radius: 4px;
margin: 25px -10px 0;
padding: 20px;
& > div:last-child { margin-bottom: 0; }
h5 {
text-transform: uppercase;
text-align: center;
font-size: 13px; line-height: 20px; color: #888;
margin: 0 0 12px;
position: relative;
span { background: #fafafa; padding: 0 5px; position: relative; }
&:before { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: $borderdark; }
}
.hootimp-opbox + h5 { margin-top: 22px; }
.hootimp-opbox { max-width: none; }
}
.hootimp-opbox {
display: flex; justify-content: flex-start; align-items: center;
width: 100%; max-width: 400px;
margin-bottom: 12px;
}
.hootimp-optoggle {
flex-shrink: 0;
position: relative; width: 30px; height: 18px;
margin: 2px 12px 0 4px;
input { opacity: 0; width: 0; height: 0; }
}
.hootimp-oplabel {
flex-grow: 1;
em { margin: 0 2px; }
}
// content opbox
.hootimp-opbox--content {}
.hootimp-opbox--xml {}
.hootimp-opbox--wcxml {} .hootimp--nowc .hootimp-opbox--wcxml { display: none; }
.hootimp-opbox--dat {}
.hootimp-opbox--wie {}
// plugin opbox
.hootimp-opbox--plugin {}
.hootimp-opbox--plugin_unavailable {
.hootimp-opnote--unavailable { display: block; }
}
.hootimp-opbox--plugin_active {
.hootimp-opnote--active { display: block; }
}
.hootimp-opbox--plugin_installed {
.hootimp-opnote--installed { display: block; }
}
.hootimp-opbox--plugin_noaction {
[class^="hootimp-opnote--"] { display: none; }
}
.hootimp-opbox--plugin_reqd {}
.hootimp-opnote {
min-width: 64px; flex-shrink: 0;
margin-left: 4px;
span.dashicons {
font-size: 14px; line-height: 1.3em; width: 18px; height: 1.3em;
vertical-align: bottom;
}
& > div { display: none; }
}
.hootimp-opnote--unavailable { color: $noteorange; }
.hootimp-opnote--installed { color: $noteorange; }
.hootimp-opnote--active { color: $notegreen; .dashicons { font-size: 18px; line-height: 1em; height: 1em; } }
// Form actions
.hootimp-action { margin-top: 20px; height: 46px; }
.hootimp-submit {
&.button.button-hero { font-size: 14px; height: 46px; line-height: 3.14285714; padding: 0 36px; }
}
// Toggle Box
.hootabt-wrap {
.hootimp-opbox--plugin_reqd,
.hootimp-opbox--plugin_active {
}
.hootimp-opbox--plugin_reqd input + .hootimp-toggle,
.hootimp-opbox--plugin_active .hootimp-toggle {
background-color: var(--hootaccent-col); opacity: 0.5;
&:before { background-color: $highlight; -webkit-transform: translateX(13px); -ms-transform: translateX(13px); transform: translateX(13px); }
}
}
/*** Load Processing ***/
.hootimp-loader,
.hootimp-complete { display: none; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: #fff; }
.hootimp-loaderror { display: none; margin: 1em -10px 0; font-weight: 500; }
.hootimp-form {
position: relative;
&.hootimp-formloader { .hootimp-loader { display: block; } .hootimp-noloader { opacity: 0; } }
&.hootimp-formcomplete { .hootimp-complete { display: block; } .hootimp-noloader { opacity: 0; } }
&.hootimp-formloaderror { .hootimp-loaderror { display: block; } }
}
// 1. Loading
.hootimp-loaderbar {
width: 100%;
height: 10px;
background: #eee;
border-radius: 2px;
overflow: hidden;
margin-bottom: 8px;
div {
height: 100%;
width: 20%;
background: linear-gradient(45deg, $accent 25%, $highlightdark 25%, $highlightdark 50%, $accent 50%, $accent 75%, $highlightdark 75%, $highlightdark);
background-size: 10px 10px;
border-radius: 2px 0 0 2px;
transition: width 0.3s ease;
animation: hootmove 2s linear infinite;
}
@keyframes hootmove {
0% { background-position: 0 0; }
100% { background-position: 30px 0; }
}
}
#hootimp-loadermsg {
font-size: 14px; line-height: 1.5em;
span { font-weight: 600; }
em { font-style: normal; }
.waitmsg {
border-top: solid 1px #ddd; padding-top: 10px;
margin-top: 15px;
& > div { color: $accent; font-weight: normal; }
}
.dashicons-update { display: inline-block; margin-right: 4px; animation: hootspin 2s linear infinite; }
@keyframes hootspin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
}
// 2. Success
.hootimp-complete {
& > div { display:flex; align-items:center; }
ol { margin-left: 1em; }
li { margin-bottom: 8px; }
}
.hootimp-complete-icon {
display:flex; justify-content:center; align-items:center;
height: 25px; width: 25px; box-sizing: border-box;
margin-right: 8px;
border: 2px solid #fff; border-radius: 50%; border-top-color: #2ed573;
animation: hootrot 1s forwards linear;
@keyframes hootrot {
0% { transform: rotate(0); }
100% { transform: rotate(1800deg); border: 2px solid #2ed573; }
}
&:before {
content:"\f147"; font-family:"dashicons"; font-weight:400;
font-size:20px; line-height: 20px; width: 25px;
color:#2ed573;
opacity:0;
transform:rotate(180deg);
animation:hootspinfadein 1s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275); animation-delay: 1s;
@keyframes hootspinfadein{
0% { transform:rotate(180deg); opacity:0; }
100% { transform:rotate(0); opacity:1; }
}
}
}
// 3. Error
.hootimp-loaderror-details {}
// 2.3. Log
.hootimp-show-log {}
.hootimp-load-details {}
.hootimp-form > .hootimp-load-details { display: none; }
/*** jconfirm ***/
.jconfirm.jconfirm-white .jconfirm-bg,
.jconfirm.jconfirm-light .jconfirm-bg { opacity: 0.6; }
.jconfirm-content {
font-size: 15px; line-height: 1.5em;
padding: 10px 10px 0;
h2 { margin-top: 0; }
ol { margin-bottom: 0; }
p { font-size: inherit; line-height: inherit; }
pre { white-space: break-spaces; }
}
.jconfirm .jconfirm-box { max-width: 600px; }
.jconfirm .jconfirm-box .jconfirm-buttons {
padding: 0 10px 20px;
button {
padding: 6px 16px; margin-left: 8px;
border: solid 1px $accent;
}
}
.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button,
.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button {
text-transform: none;
font-weight: normal;
}
PK 4m\ ݇4>n >n # import/assets/jquery-confirm.min.jsnu [ /*!
* 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)
*/
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{if(typeof module==="object"&&module.exports){module.exports=function(root,jQuery){if(jQuery===undefined){if(typeof window!=="undefined"){jQuery=require("jquery");}else{jQuery=require("jquery")(root);}}factory(jQuery);return jQuery;};}else{factory(jQuery);}}}(function($){var w=window;$.fn.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}$(this).each(function(){var $this=$(this);if($this.attr("jc-attached")){console.warn("jConfirm has already been attached to this element ",$this[0]);return;}$this.on("click",function(e){e.preventDefault();var jcOption=$.extend({},options);if($this.attr("data-title")){jcOption.title=$this.attr("data-title");}if($this.attr("data-content")){jcOption.content=$this.attr("data-content");}if(typeof jcOption.buttons==="undefined"){jcOption.buttons={};}jcOption["$target"]=$this;if($this.attr("href")&&Object.keys(jcOption.buttons).length===0){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];jcOption.buttons=buttons;jcOption.buttons[firstBtn].action=function(){location.href=$this.attr("href");};}jcOption.closeIcon=false;var instance=$.confirm(jcOption);});$this.attr("jc-attached",true);});return $(this);};$.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});options.buttons=buttons;}return w.jconfirm(options);};$.alert=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];options.buttons[firstBtn]=buttons[firstBtn];}return w.jconfirm(options);};$.dialog=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false,closeIcon:function(){}};}options.buttons={};if(typeof options.closeIcon==="undefined"){options.closeIcon=function(){};}options.confirmKeys=[13];return w.jconfirm(options);};w.jconfirm=function(options){if(typeof options==="undefined"){options={};}var pluginOptions=$.extend(true,{},w.jconfirm.pluginDefaults);if(w.jconfirm.defaults){pluginOptions=$.extend(true,pluginOptions,w.jconfirm.defaults);}pluginOptions=$.extend(true,{},pluginOptions,options);var instance=new w.Jconfirm(pluginOptions);w.jconfirm.instances.push(instance);return instance;};w.Jconfirm=function(options){$.extend(this,options);this._init();};w.Jconfirm.prototype={_init:function(){var that=this;if(!w.jconfirm.instances.length){w.jconfirm.lastFocused=$("body").find(":focus");}this._id=Math.round(Math.random()*99999);this.contentParsed=$(document.createElement("div"));if(!this.lazyOpen){setTimeout(function(){that.open();},0);}},_buildHTML:function(){var that=this;this._parseAnimation(this.animation,"o");this._parseAnimation(this.closeAnimation,"c");this._parseBgDismissAnimation(this.backgroundDismissAnimation);this._parseColumnClass(this.columnClass);this._parseTheme(this.theme);this._parseType(this.type);var template=$(this.template);template.find(".jconfirm-box").addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);if(this.typeAnimated){template.find(".jconfirm-box").addClass("jconfirm-type-animated");}if(this.useBootstrap){template.find(".jc-bs3-row").addClass(this.bootstrapClasses.row);template.find(".jc-bs3-row").addClass("justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center");template.find(".jconfirm-box-container").addClass(this.columnClassParsed);if(this.containerFluid){template.find(".jc-bs3-container").addClass(this.bootstrapClasses.containerFluid);}else{template.find(".jc-bs3-container").addClass(this.bootstrapClasses.container);}}else{template.find(".jconfirm-box").css("width",this.boxWidth);}if(this.titleClass){template.find(".jconfirm-title-c").addClass(this.titleClass);}template.addClass(this.themeParsed);var ariaLabel="jconfirm-box"+this._id;template.find(".jconfirm-box").attr("aria-labelledby",ariaLabel).attr("tabindex",-1);template.find(".jconfirm-content").attr("id",ariaLabel);if(this.bgOpacity!==null){template.find(".jconfirm-bg").css("opacity",this.bgOpacity);}if(this.rtl){template.addClass("jconfirm-rtl");}this.$el=template.appendTo(this.container);this.$jconfirmBoxContainer=this.$el.find(".jconfirm-box-container");this.$jconfirmBox=this.$body=this.$el.find(".jconfirm-box");this.$jconfirmBg=this.$el.find(".jconfirm-bg");this.$title=this.$el.find(".jconfirm-title");this.$titleContainer=this.$el.find(".jconfirm-title-c");this.$content=this.$el.find("div.jconfirm-content");this.$contentPane=this.$el.find(".jconfirm-content-pane");this.$icon=this.$el.find(".jconfirm-icon-c");this.$closeIcon=this.$el.find(".jconfirm-closeIcon");this.$holder=this.$el.find(".jconfirm-holder");this.$btnc=this.$el.find(".jconfirm-buttons");this.$scrollPane=this.$el.find(".jconfirm-scrollpane");that.setStartingPoint();this._contentReady=$.Deferred();this._modalReady=$.Deferred();this.$holder.css({"padding-top":this.offsetTop,"padding-bottom":this.offsetBottom,});this.setTitle();this.setIcon();this._setButtons();this._parseContent();this.initDraggable();if(this.isAjax){this.showLoading(false);}$.when(this._contentReady,this._modalReady).then(function(){if(that.isAjaxLoading){setTimeout(function(){that.isAjaxLoading=false;that.setContent();that.setTitle();that.setIcon();setTimeout(function(){that.hideLoading(false);that._updateContentMaxHeight();},100);if(typeof that.onContentReady==="function"){that.onContentReady();}},50);}else{that._updateContentMaxHeight();that.setTitle();that.setIcon();if(typeof that.onContentReady==="function"){that.onContentReady();}}if(that.autoClose){that._startCountDown();}}).then(function(){that._watchContent();});if(this.animation==="none"){this.animationSpeed=1;this.animationBounce=1;}this.$body.css(this._getCSS(this.animationSpeed,this.animationBounce));this.$contentPane.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBg.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed,1));},_typePrefix:"jconfirm-type-",typeParsed:"",_parseType:function(type){this.typeParsed=this._typePrefix+type;},setType:function(type){var oldClass=this.typeParsed;this._parseType(type);this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);},themeParsed:"",_themePrefix:"jconfirm-",setTheme:function(theme){var previous=this.theme;this.theme=theme||this.theme;this._parseTheme(this.theme);if(previous){this.$el.removeClass(previous);}this.$el.addClass(this.themeParsed);this.theme=theme;},_parseTheme:function(theme){var that=this;theme=theme.split(",");$.each(theme,function(k,a){if(a.indexOf(that._themePrefix)===-1){theme[k]=that._themePrefix+$.trim(a);}});this.themeParsed=theme.join(" ").toLowerCase();},backgroundDismissAnimationParsed:"",_bgDismissPrefix:"jconfirm-hilight-",_parseBgDismissAnimation:function(bgDismissAnimation){var animation=bgDismissAnimation.split(",");var that=this;$.each(animation,function(k,a){if(a.indexOf(that._bgDismissPrefix)===-1){animation[k]=that._bgDismissPrefix+$.trim(a);}});this.backgroundDismissAnimationParsed=animation.join(" ").toLowerCase();},animationParsed:"",closeAnimationParsed:"",_animationPrefix:"jconfirm-animation-",setAnimation:function(animation){this.animation=animation||this.animation;this._parseAnimation(this.animation,"o");},_parseAnimation:function(animation,which){which=which||"o";var animations=animation.split(",");var that=this;$.each(animations,function(k,a){if(a.indexOf(that._animationPrefix)===-1){animations[k]=that._animationPrefix+$.trim(a);}});var a_string=animations.join(" ").toLowerCase();if(which==="o"){this.animationParsed=a_string;}else{this.closeAnimationParsed=a_string;}return a_string;},setCloseAnimation:function(closeAnimation){this.closeAnimation=closeAnimation||this.closeAnimation;this._parseAnimation(this.closeAnimation,"c");},setAnimationSpeed:function(speed){this.animationSpeed=speed||this.animationSpeed;},columnClassParsed:"",setColumnClass:function(colClass){if(!this.useBootstrap){console.warn("cannot set columnClass, useBootstrap is set to false");return;}this.columnClass=colClass||this.columnClass;this._parseColumnClass(this.columnClass);this.$jconfirmBoxContainer.addClass(this.columnClassParsed);},_updateContentMaxHeight:function(){var height=$(window).height()-(this.$jconfirmBox.outerHeight()-this.$contentPane.outerHeight())-(this.offsetTop+this.offsetBottom);this.$contentPane.css({"max-height":height+"px"});},setBoxWidth:function(width){if(this.useBootstrap){console.warn("cannot set boxWidth, useBootstrap is set to true");return;}this.boxWidth=width;this.$jconfirmBox.css("width",width);},_parseColumnClass:function(colClass){colClass=colClass.toLowerCase();var p;switch(colClass){case"xl":case"xlarge":p="col-md-12";break;case"l":case"large":p="col-md-8 col-md-offset-2";break;case"m":case"medium":p="col-md-6 col-md-offset-3";break;case"s":case"small":p="col-md-4 col-md-offset-4";break;case"xs":case"xsmall":p="col-md-2 col-md-offset-5";break;default:p=colClass;}this.columnClassParsed=p;},initDraggable:function(){var that=this;var $t=this.$titleContainer;this.resetDrag();if(this.draggable){$t.on("mousedown",function(e){$t.addClass("jconfirm-hand");that.mouseX=e.clientX;that.mouseY=e.clientY;that.isDrag=true;});$(window).on("mousemove."+this._id,function(e){if(that.isDrag){that.movingX=e.clientX-that.mouseX+that.initialX;that.movingY=e.clientY-that.mouseY+that.initialY;that.setDrag();}});$(window).on("mouseup."+this._id,function(){$t.removeClass("jconfirm-hand");if(that.isDrag){that.isDrag=false;that.initialX=that.movingX;that.initialY=that.movingY;}});}},resetDrag:function(){this.isDrag=false;this.initialX=0;this.initialY=0;this.movingX=0;this.movingY=0;this.mouseX=0;this.mouseY=0;this.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");},setDrag:function(){if(!this.draggable){return;}this.alignMiddle=false;var boxWidth=this.$jconfirmBox.outerWidth();var boxHeight=this.$jconfirmBox.outerHeight();var windowWidth=$(window).width();var windowHeight=$(window).height();var that=this;var dragUpdate=1;if(that.movingX%dragUpdate===0||that.movingY%dragUpdate===0){if(that.dragWindowBorder){var leftDistance=(windowWidth/2)-boxWidth/2;var topDistance=(windowHeight/2)-boxHeight/2;topDistance-=that.dragWindowGap;leftDistance-=that.dragWindowGap;if(leftDistance+that.movingX<0){that.movingX=-leftDistance;}else{if(leftDistance-that.movingX<0){that.movingX=leftDistance;}}if(topDistance+that.movingY<0){that.movingY=-topDistance;}else{if(topDistance-that.movingY<0){that.movingY=topDistance;}}}that.$jconfirmBoxContainer.css("transform","translate("+that.movingX+"px, "+that.movingY+"px)");}},_scrollTop:function(){if(typeof pageYOffset!=="undefined"){return pageYOffset;}else{var B=document.body;var D=document.documentElement;D=(D.clientHeight)?D:B;return D.scrollTop;}},_watchContent:function(){var that=this;if(this._timer){clearInterval(this._timer);}var prevContentHeight=0;this._timer=setInterval(function(){if(that.smoothContent){var contentHeight=that.$content.outerHeight()||0;if(contentHeight!==prevContentHeight){prevContentHeight=contentHeight;}var wh=$(window).height();var total=that.offsetTop+that.offsetBottom+that.$jconfirmBox.height()-that.$contentPane.height()+that.$content.height();if(total').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml=' ';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon==="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str==="string"&&typeof that.buttons[str]!=="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str==="undefined"||!!(str)===true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse==="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string==="string"){this.title=string;}else{if(typeof string==="function"){if(typeof string.promise==="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response==="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass==="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response==="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?' ':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content==="function"){var res=this.content.apply(this);if(typeof res==="string"){this.content=res;}else{if(typeof res==="object"&&typeof res.always==="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content==="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$(' ('+seconds+") ").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!==-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=w.jconfirm.instances;var i=w.jconfirm.instances.length-1;for(i;i>=0;i--){if(w.jconfirm.instances[i]._id===that._id){w.jconfirm.instances.splice(i,1);}}if(!w.jconfirm.instances.length){if(that.scrollToPreviousElement&&w.jconfirm.lastFocused&&w.jconfirm.lastFocused.length&&$.contains(document,w.jconfirm.lastFocused[0])){var $lf=w.jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=w.jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}w.jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;w.jconfirm.lastClicked=false;}else{if(w.jconfirm.lastClicked&&this.animateFromElement===true){el=w.jconfirm.lastClicked;w.jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.parent().length===0;},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};w.jconfirm.instances=[];w.jconfirm.lastFocused=false;w.jconfirm.pluginDefaults={template:'',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});w.jconfirm.lastClicked=false;$(document).on("mousedown","button, a, [jc-source]",function(){w.jconfirm.lastClicked=$(this);});}));PK 4m\^
.7 .7 import/assets/hootkitimport.cssnu [ :root {
--hootaccent-col: #2271b1;
--hootaccent-font: #ffffff;
--hootaccent-def: #2271b1;
}
/*** General ***/
.hootimp-highlight {
font-style: normal;
color: #2271b1;
}
.hootimp-highlightbg {
background: #eee;
padding: 5px 10px;
}
/*** Layout ***/
.hootabt-hkimp-multisingle .hootimp-content {
max-width: 938px;
margin: 0 auto;
}
.hootabt-hkimp-multi .hootabt-blockid--grid-hki {
background: none;
padding: 0;
border: none;
}
.hootabt-hkimp-multi .hootkitimp_idx {
padding-left: 0;
padding-right: 0;
}
.hootabt-hkimp-multi .hootkitimp_idx .hootkitimp_idx-item {
overflow: hidden;
border-color: #c9d2d7;
transition: box-shadow 0.3s ease;
}
.hootabt-hkimp-multi .hootkitimp_idx .hootkitimp_idx-item:hover {
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.3);
}
.hootabt-hkimp-multi .hootkitimp_idx .hootkitimp_idx-previewlink {
background: rgba(255, 255, 255, 0.5);
}
.hootabt-hkimp-multi .hootkitimp_idx .hootkitimp_idx-foot {
box-shadow: 0px -2px 4px 0px rgba(0, 0, 0, 0.2);
}
.hootabt-hkimp-multi.hootabt-widen .hootabt-gridgen, .hootabt-hkimp-multi.hootabt-widen .hootabt-gridbox, .hootabt-hkimp-multi.hootabt-widen .hootabt-gridconbox, .hootabt-hkimp-multi.hootabt-widen .hootabt-gridflex,
.hootabt-hkimp-multisingle.hootabt-widen .hootabt-gridgen,
.hootabt-hkimp-multisingle.hootabt-widen .hootabt-gridbox,
.hootabt-hkimp-multisingle.hootabt-widen .hootabt-gridconbox,
.hootabt-hkimp-multisingle.hootabt-widen .hootabt-gridflex {
max-width: 980px;
}
/*** Multi Demo ***/
.hootkitimp_idx {
display: none;
}
.hootkitimp_idx.hootkit-active {
-ms-box-orient: horizontal;
display: -moz-flex;
display: flex;
}
.hootkitimp-single {
display: none;
}
.hootkitimp-single.hootkit-active {
display: block;
}
.hootkitimp_idx {
flex-wrap: wrap;
justify-content: flex-start;
align-items: stretch;
gap: 30px;
padding: 10px;
}
.hootkitimp_idx-item {
position: relative;
width: calc(33.2% - 20px);
box-sizing: border-box;
border: solid 1px #d6e1e8;
}
div.hootkitimp_idx-ss {
width: 100%;
min-height: 50px;
position: relative;
padding-bottom: 50px;
height: 100%;
box-sizing: border-box;
}
div.hootkitimp_idx-ss img {
max-width: 480px;
width: 100%;
display: block;
margin: 0 auto;
}
div.hootkitimp_idx-ss:hover .hootkitimp_idx-previewlink {
opacity: 1;
}
.hootkitimp_idx-previewlink {
opacity: 0;
transition: opacity 0.3s ease;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
-ms-box-orient: horizontal;
display: -moz-flex;
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
text-decoration: none;
text-transform: uppercase;
font-weight: 500;
background: rgba(0, 0, 0, 0.1);
}
.hootkitimp_idx-previewlink em {
font-style: normal;
background: #fff;
padding: 7px 14px;
border-radius: 5px;
border: solid 1px #ddd;
}
.hootkitimp_idx-previewlink em {
box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.3);
border-radius: 0;
}
.hootkitimp_idx-more .hootkitimp_idx-ss {
box-shadow: inset 0px 0px 18px 0px rgba(80, 80, 80, 0.15);
}
.hootkitimp_idx-moremsg {
width: 100%;
height: 100%;
min-height: 250px;
-ms-box-orient: horizontal;
display: -moz-flex;
display: flex;
justify-content: center;
align-items: center;
font-size: 30px;
font-weight: 600;
text-transform: uppercase;
color: #cfcfcf;
text-shadow: 1px 1px 1px #ffffff, -1px -1px 1px #8f8f8f;
}
.hootkitimp_idx-foot {
-ms-box-orient: horizontal;
display: -moz-flex;
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
box-sizing: border-box;
padding: 10px;
border-top: solid 1px #d6e1e8;
position: absolute;
bottom: 0;
background: #fafafa;
min-height: 50px;
}
.hootkitimp_idx-foot .hootkitimp_idx-btn {
background: #fff;
}
.hootkitimp_idx-label {
margin-left: 4px;
font-weight: 500;
font-size: 15px;
line-height: 18px;
padding: 7px 0;
}
.hootkitimp_idx-label span.dashicons {
font-size: 18px;
}
@media only screen and (max-width: 1079px) {
.hootkitimp_idx-item {
width: calc(50% - 15px);
}
}
@media screen and (max-width: 782px) {
.hootkitimp_idx-item {
width: 100%;
}
}
.hootkitimp-single-header {
font-size: 16px;
line-height: 1.5em;
margin-bottom: 20px;
background: #f5f5f5;
}
.hootkitimp-single-header .hootkitimp-backtomulti {
text-decoration: none;
display: inline-block;
padding: 9px 15px;
}
.hootkitimp-single-header span.dashicons {
font-size: inherit;
line-height: inherit;
width: 1.5em;
border: solid 1px;
border-radius: 50%;
vertical-align: top;
margin-right: 5px;
}
.hootkitimp-single-notice {
text-align: center;
font-size: 1.1em;
padding: 25px 5px;
margin-top: 25px;
background: #f5f5f5;
border: solid 5px #ddd;
}
.hootkitimp-single-notice h5 {
margin: 0;
font-size: 1.3em;
text-transform: uppercase;
}
.hootkitimp-single-notice p {
font-size: inherit;
margin: 1em 0 1.2em;
}
.hootkitimp-single-notice .button {
font-size: inherit;
}
.hootkitimp-single-warning {
padding: 12px 17px;
margin: 1.4em -10px;
border: 1px solid;
position: relative;
border-color: #d1cecf;
background: #fffafb;
color: #7f3048;
}
/*** Layout ***/
.hootimp-content {
width: 100%;
max-width: 1200px;
overflow: hidden;
padding: 5px;
margin: -5px;
}
.hootimp-footer a {
text-decoration: none !important;
opacity: 0.8;
}
.hootimp-footer a:hover {
opacity: 1;
}
.hootimp-footer .hootabt-blockdesc {
background: #fafafa;
border: solid 1px #ddd;
padding: 8px 25px;
text-align: right;
}
div.hootimp-footer.hootabt-gridgen { /* margin-top: -15px; */
margin-bottom: 0;
}
/*** Demo Install ***/
.hootimp-content-install {
display: flex;
align-items: stretch;
flex-wrap: wrap;
}
.hootimp-screenshots {
width: 53%;
padding: 1px 0 3px;
}
.hootimp-screenshot {
margin-right: 25px;
min-height: 500px;
height: 100%;
border: 1px solid #fff;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
background: #fafafa;
position: relative;
overflow: hidden;
}
.hootimp-screenshot img {
width: 100%;
position: absolute;
}
.hootimp-theme-info {
width: 47%;
box-sizing: border-box;
padding: 0 10px;
}
.hootimp-theme-info h2 {
margin: 0;
font-size: 32px;
font-weight: 100;
line-height: 1.3;
}
.hootimp-theme-info h2 span {
font-size: 13px;
font-weight: 400;
margin-left: 5px;
display: inline-block;
}
@media only screen and (max-width: 960px) {
.hootimp-screenshots, .hootimp-theme-info {
width: 100%;
margin: 10px 0;
float: none;
}
.hootimp-screenshot {
min-height: 400px;
max-width: 600px;
margin-right: auto;
margin-left: auto;
}
}
/*** Form ***/
.hootimp-form h4 {
font-size: 1.2em;
margin: 0 0 10px;
}
.hootimp-form .hootimp-h4desc {
position: relative;
top: -5px;
margin-bottom: 4px;
font-style: italic;
}
.hootimp-op-group {
background: #fafafa;
border: solid 1px #ccc;
border-radius: 4px;
margin: 25px -10px 0;
padding: 20px;
}
.hootimp-op-group > div:last-child {
margin-bottom: 0;
}
.hootimp-op-group h5 {
text-transform: uppercase;
text-align: center;
font-size: 13px;
line-height: 20px;
color: #888;
margin: 0 0 12px;
position: relative;
}
.hootimp-op-group h5 span {
background: #fafafa;
padding: 0 5px;
position: relative;
}
.hootimp-op-group h5:before {
content: "";
position: absolute;
top: 50%;
left: 0;
right: 0;
height: 1px;
background: #ccc;
}
.hootimp-op-group .hootimp-opbox + h5 {
margin-top: 22px;
}
.hootimp-op-group .hootimp-opbox {
max-width: none;
}
.hootimp-opbox {
display: flex;
justify-content: flex-start;
align-items: center;
width: 100%;
max-width: 400px;
margin-bottom: 12px;
}
.hootimp-optoggle {
flex-shrink: 0;
position: relative;
width: 30px;
height: 18px;
margin: 2px 12px 0 4px;
}
.hootimp-optoggle input {
opacity: 0;
width: 0;
height: 0;
}
.hootimp-oplabel {
flex-grow: 1;
}
.hootimp-oplabel em {
margin: 0 2px;
}
.hootimp--nowc .hootimp-opbox--wcxml {
display: none;
}
.hootimp-opbox--plugin_unavailable .hootimp-opnote--unavailable {
display: block;
}
.hootimp-opbox--plugin_active .hootimp-opnote--active {
display: block;
}
.hootimp-opbox--plugin_installed .hootimp-opnote--installed {
display: block;
}
.hootimp-opbox--plugin_noaction [class^=hootimp-opnote--] {
display: none;
}
.hootimp-opnote {
min-width: 64px;
flex-shrink: 0;
margin-left: 4px;
}
.hootimp-opnote span.dashicons {
font-size: 14px;
line-height: 1.3em;
width: 18px;
height: 1.3em;
vertical-align: bottom;
}
.hootimp-opnote > div {
display: none;
}
.hootimp-opnote--unavailable {
color: #f78d1b;
}
.hootimp-opnote--installed {
color: #f78d1b;
}
.hootimp-opnote--active {
color: #00a32a;
}
.hootimp-opnote--active .dashicons {
font-size: 18px;
line-height: 1em;
height: 1em;
}
.hootimp-action {
margin-top: 20px;
height: 46px;
}
.hootimp-submit.button.button-hero {
font-size: 14px;
height: 46px;
line-height: 3.14285714;
padding: 0 36px;
}
.hootabt-wrap .hootimp-opbox--plugin_reqd input + .hootimp-toggle,
.hootabt-wrap .hootimp-opbox--plugin_active .hootimp-toggle {
background-color: var(--hootaccent-col);
opacity: 0.5;
}
.hootabt-wrap .hootimp-opbox--plugin_reqd input + .hootimp-toggle:before,
.hootabt-wrap .hootimp-opbox--plugin_active .hootimp-toggle:before {
background-color: #e3f4fb;
transform: translateX(13px);
}
/*** Load Processing ***/
.hootimp-loader,
.hootimp-complete {
display: none;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #fff;
}
.hootimp-loaderror {
display: none;
margin: 1em -10px 0;
font-weight: 500;
}
.hootimp-form {
position: relative;
}
.hootimp-form.hootimp-formloader .hootimp-loader {
display: block;
}
.hootimp-form.hootimp-formloader .hootimp-noloader {
opacity: 0;
}
.hootimp-form.hootimp-formcomplete .hootimp-complete {
display: block;
}
.hootimp-form.hootimp-formcomplete .hootimp-noloader {
opacity: 0;
}
.hootimp-form.hootimp-formloaderror .hootimp-loaderror {
display: block;
}
.hootimp-loaderbar {
width: 100%;
height: 10px;
background: #eee;
border-radius: 2px;
overflow: hidden;
margin-bottom: 8px;
}
.hootimp-loaderbar div {
height: 100%;
width: 20%;
background: linear-gradient(45deg, #2271b1 25%, #80bedd 25%, #80bedd 50%, #2271b1 50%, #2271b1 75%, #80bedd 75%, #80bedd);
background-size: 10px 10px;
border-radius: 2px 0 0 2px;
transition: width 0.3s ease;
-webkit-animation: hootmove 2s linear infinite;
animation: hootmove 2s linear infinite;
}
@-webkit-keyframes hootmove {
0% {
background-position: 0 0;
}
100% {
background-position: 30px 0;
}
}
@keyframes hootmove {
0% {
background-position: 0 0;
}
100% {
background-position: 30px 0;
}
}
#hootimp-loadermsg {
font-size: 14px;
line-height: 1.5em;
}
#hootimp-loadermsg span {
font-weight: 600;
}
#hootimp-loadermsg em {
font-style: normal;
}
#hootimp-loadermsg .waitmsg {
border-top: solid 1px #ddd;
padding-top: 10px;
margin-top: 15px;
}
#hootimp-loadermsg .waitmsg > div {
color: #2271b1;
font-weight: normal;
}
#hootimp-loadermsg .dashicons-update {
display: inline-block;
margin-right: 4px;
-webkit-animation: hootspin 2s linear infinite;
animation: hootspin 2s linear infinite;
}
@-webkit-keyframes hootspin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes hootspin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.hootimp-complete > div {
display: flex;
align-items: center;
}
.hootimp-complete ol {
margin-left: 1em;
}
.hootimp-complete li {
margin-bottom: 8px;
}
.hootimp-complete-icon {
display: flex;
justify-content: center;
align-items: center;
height: 25px;
width: 25px;
box-sizing: border-box;
margin-right: 8px;
border: 2px solid #fff;
border-radius: 50%;
border-top-color: #2ed573;
-webkit-animation: hootrot 1s forwards linear;
animation: hootrot 1s forwards linear;
}
@-webkit-keyframes hootrot {
0% {
transform: rotate(0);
}
100% {
transform: rotate(1800deg);
border: 2px solid #2ed573;
}
}
@keyframes hootrot {
0% {
transform: rotate(0);
}
100% {
transform: rotate(1800deg);
border: 2px solid #2ed573;
}
}
.hootimp-complete-icon:before {
content: "\f147";
font-family: "dashicons";
font-weight: 400;
font-size: 20px;
line-height: 20px;
width: 25px;
color: #2ed573;
opacity: 0;
transform: rotate(180deg);
-webkit-animation: hootspinfadein 1s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
animation: hootspinfadein 1s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
-webkit-animation-delay: 1s;
animation-delay: 1s;
}
@-webkit-keyframes hootspinfadein {
0% {
transform: rotate(180deg);
opacity: 0;
}
100% {
transform: rotate(0);
opacity: 1;
}
}
@keyframes hootspinfadein {
0% {
transform: rotate(180deg);
opacity: 0;
}
100% {
transform: rotate(0);
opacity: 1;
}
}
.hootimp-form > .hootimp-load-details {
display: none;
}
/*** jconfirm ***/
.jconfirm.jconfirm-white .jconfirm-bg,
.jconfirm.jconfirm-light .jconfirm-bg {
opacity: 0.6;
}
.jconfirm-content {
font-size: 15px;
line-height: 1.5em;
padding: 10px 10px 0;
}
.jconfirm-content h2 {
margin-top: 0;
}
.jconfirm-content ol {
margin-bottom: 0;
}
.jconfirm-content p {
font-size: inherit;
line-height: inherit;
}
.jconfirm-content pre {
white-space: break-spaces;
}
.jconfirm .jconfirm-box {
max-width: 600px;
}
.jconfirm .jconfirm-box .jconfirm-buttons {
padding: 0 10px 20px;
}
.jconfirm .jconfirm-box .jconfirm-buttons button {
padding: 6px 16px;
margin-left: 8px;
border: solid 1px #2271b1;
}
.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button,
.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button {
text-transform: none;
font-weight: normal;
}
/*# sourceMappingURL=hootkitimport.css.map */PK 4m\ 1 import/class-import.phpnu [ dir = trailingslashit( hootkit()->dir . 'misc/import' );
$this->uri = trailingslashit( hootkit()->uri . 'misc/import' );
// Setup Demopack Directory
$import_dir = '/hootkitimport-demofiles/';
$upload_dir = wp_upload_dir( null, false );
$this->demopack_dir = $upload_dir['basedir'] . $import_dir;
$this->demopack_url = $upload_dir['baseurl'] . $import_dir;
// DeActivation Hook
add_action( 'hootkit/deactivate', array( $this, 'deactivation' ), 10, 1 );
// Load Plugin Files and Helpers
require_once( $this->dir . 'include/functions.php' );
if ( is_admin() ) {
require_once( $this->dir . 'include/class-importer.php' );
require_once( $this->dir . 'include/class-admin.php' );
}
}
/**
* DeActivation Hook
* @since 3.0.0
* @access public
* @return void
*/
public function deactivation( $activation ) {
$this->cleanup( true );
}
/**
* Cleanup
* @since 3.0.0
* @access public
* @return void
*/
public function cleanup( $forcecleanup = false ) {
$demopack_dir = $this->demopack_dir;
if (
empty( $demopack_dir ) || !is_string( $demopack_dir )
|| !function_exists( 'current_user_can' )
|| !is_dir( $demopack_dir )
)
return;
// Cleanup demo pack directory
$is_fresh = get_transient( 'hootkitimport_freshpack' );
if ( empty( $is_fresh ) || $forcecleanup ) {
if ( current_user_can( 'manage_options' ) ) {
// Initialize the WP Filesystem API
if ( ! function_exists( 'wp_filesystem' ) ) {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
global $wp_filesystem;
WP_Filesystem();
// Check if the directory exists and remove the directory and all its contents
if ( $wp_filesystem->is_dir( $demopack_dir ) ) {
$wp_filesystem->rmdir( $demopack_dir, true );
}
}
}
}
/**
* Returns the instance
* @since 3.0.0
* @access public
* @return object
*/
public static function get_instance() {
static $instance = null;
if ( is_null( $instance ) ) {
$instance = new self;
}
return $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 hootimport() {
return Import::get_instance();
}
// Lets roll!
hootimport();
endif;PK 4m\pT ۉ ۉ import/include/class-admin.phpnu [ get_config( 'dashboard' );
// if registered wphoot theme, sanitizeconfig has already made sure all required values exist
// 'import', 'tabfilter', 'tabaction', hoot_dashboard() => we can reliably use them here.
if ( is_array( $dash ) && !empty( $dash[ 'import' ] ) ) {
self::$importplugin = array(
'id' => $dash['import_id'],
'pagehook' => hoot_dashboard( 'screen' ),
'dashurl' => hoot_dashboard( 'url', array( 'tab' => $dash[ 'import' ] ) ),
'tabfilter' => $dash['tabfilter'],
'tabaction' => $dash['tabaction']
);
}
if ( self::$importplugin ) {
// Check if import has been disabled by user
$activemiscmods = hootkit()->get_config( 'activemods', 'misc' );
$isactive = is_array( $activemiscmods ) && in_array( 'import', $activemiscmods );
if ( ! $isactive ) :
add_filter( self::$importplugin['tabfilter'], array( $this, 'unplug_tabs' ), 90, 2 );
else:
// Load import assets
$hooks = array( self::$importplugin['pagehook'] );
Helper_Assets::add_adminasset( 'hootkitimport', $hooks );
Helper_Assets::add_adminasset( 'jquery-confirm', $hooks );
// Render Content
add_filter( self::$importplugin['tabfilter'], array( $this, 'plug_tabs' ), 90, 2 );
add_action( self::$importplugin['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 );
}
endif;
}
}
/**
* Pass script data
*
* @since 1.1.0
* @access public
* @return void
*/
public function localize_script() {
wp_localize_script(
hootkit()->slug . '-import',
'hootkitimportData',
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'hootkitimportnonce' ),
'import_action' => 'hootkitimport_process',
'strings' => array(
'processing_plugin' => esc_html__( 'Processing...', 'hootkit' ),
'active_process_alert' => esc_html__( 'Please wait. Another process in being performed.', 'hootkit' ),
'confirm_msg' => '' . esc_html__( 'Please Note:', 'hootkit' ) . ' '
. esc_html__( 'Before you import the demo content, please note the following points:', 'hootkit' )
. ''
. '' . esc_html__( 'The import process will automatically fetch the required files and images from wpHoot servers.', 'hootkit' ) . ' '
. '' . esc_html__( 'It is highly recommended to import demo on a fresh WordPress installation to replicate it exactly like the theme demo.', 'hootkit' ) . ' '
. '' . esc_html__( 'None of the existing posts, pages, attachments, menus and other data on your site will be deleted during the import.', 'hootkit' ) . ' '
. '' . esc_html__( 'Please click the Import button and wait. This process can take a few minutes depending upon your server.', 'hootkit' ) . ' '
. ' ',
'confirm_primarybtn' => esc_html__( 'Start Import', 'hootkit' ),
'confirm_cancelbtn' => esc_html__( 'Cancel', 'hootkit' ),
'loading_step' => esc_html__( 'Step', 'hootkit' ),
'loading_plugin' => esc_html__( 'Installing', 'hootkit' ),
'loading_prepare' => esc_html__( 'Fetching required files', 'hootkit' ),
'loading_content' => esc_html__( 'Importing', 'hootkit' ),
'loading_xml' => esc_html__( 'Please Wait. This step may take a few minutes.', 'hootkit' ),
'stillloading_xml' => array( esc_html__( 'STATUS UPDATE:', 'hootkit' ), esc_html__( 'Still working... Please wait...', 'hootkit' ), esc_html__( 'Importing XML - Part', 'hootkit' ) ),
'loading_final' => esc_html__( 'Finalizing Settings...', 'hootkit' ),
),
)
);
}
/**
* Disable the WooCommerce Setup Wizard on Hoot Import page only
* @since 3.0.0
* @access public
* @return void
*/
public function woocommerce_disable_setup_wizard( $screen ) {
if ( is_object( $screen ) && !empty( $screen->id ) && self::$importplugin['pagehook'] === $screen->id ) {
add_filter( 'woocommerce_enable_setup_wizard', '__return_false', 1 );
}
}
/**
* Flush rewrite rules from a recent WooCommerce XML import
* @since 3.0.0
* @access public
* @return void
*/
public function woocommerce_flush(){
flush_rewrite_rules();
delete_option( 'hootkitimport_wc_flush' );
}
/**
* 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( 'demoimport' ) ) ); // array_values() to reindex numerically
$tabsarray['order'] = $order;
if ( isset( $tabsarray['demoimport'] ) ) unset( $tabsarray['demoimport'] );
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( 'demoimport', $order ) ) array_unshift( $order, 'demoimport' );
$tabsarray['demoimport'] = array(
'label' => __( 'Pre-built Demo Import', 'hootkit' ),
'inpage' => true,
'widen' => 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 ) {
$hkblocks = array();
$hkblocks[ 'grid-hki' ] = array( 'type' => 'gridconbox' );
$hkblocks[ 'hki' ] = array( 'type' => 'hkimport' );
$hkblocks[ 'grid-hkiend' ] = array( 'type' => 'gridconboxend' );
$current_url = !empty( $_SERVER['REQUEST_URI'] ) ? esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
if ( strpos( $current_url, '_wpnonce' ) === false ) {
$current_url = add_query_arg( 'refreshdemo', 'true', $current_url );
$current_url = wp_nonce_url( $current_url, 'hootkitimport_refresh_demo_data_nonce' );
}
$hkblocks[ 'grid-mnote' ] = array( 'type' => 'gridgen', 'class' => 'hootabt-footnote hootimp-footer' );
$hkblocks[ 'mnote' ] = array(
'type' => 'columns',
'columns' => 1,
'blocks' => array(
array(
'name' => '',
/* Translators: 1 is link start 2 is link end 3 is the dashicon */
'desc' => sprintf( esc_html__( '%1$s%3$s Refetch Demo Data Files%2$s', 'hootkit' ), '', ' ', ' ' ),
),
),
);
$hkblocks[ 'grid-mnoteend' ] = array( 'type' => 'gridgenend' );
return $hkblocks;
}
/**
* 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'] !== 'hkimport' ) {
return;
}
$sanetags = is_array( $sanetags ) ? $sanetags : array();
// Set multislug and multipack/hasmulti
$multislug = self::$importplugin['id'];
$multislug = !empty( $multislug ) && is_string( $multislug ) ? strtolower( $multislug ) : '';
if ( !empty( $multislug ) ) {
$this->set_multipack( $multislug, $sanetags );
}
// Render Screen
if ( $this->hasmulti ) {
?>multipack ) ? $_GET['demo'] : false;
// Render Multdemo screen
$this->render_multi_idx( $activedemo );
// Render containers for single demos
foreach ( $this->multipack as $demoslug => $demopack ) {
?>
render_singledemo( $activedemo );
}
?>
render_singledemo( self::$importplugin['id'] );
}
}
/**
* Get manifest and set $multipack
* @since 3.0.0
* @access public
* @return void
*/
public function set_multipack( $multislug, $sanetags=array() ) {
$this->multipack = array();
$manifest = include( hootimport()->dir . 'include/demopacks.php' );
if ( !empty( $manifest ) && is_array( $manifest ) ) {
// 1. Check for multislug in manifest
$multislug = isset( $manifest[ $multislug ] ) && is_array( $manifest[ $multislug ] ) ? $multislug : str_ireplace( '-premium', '', $multislug );
if ( !empty( $manifest[ $multislug ] ) && is_array( $manifest[ $multislug ] ) ) {
// Collate a demos list
$demos = !empty( $manifest[ $multislug ][ 'demos' ] ) && is_array( $manifest[ $multislug ][ 'demos' ] ) ? $manifest[ $multislug ][ 'demos' ] : array();
$demospro = !empty( $manifest[ $multislug ][ 'demospro' ] ) && is_array( $manifest[ $multislug ][ 'demospro' ] ) ? $manifest[ $multislug ][ 'demospro' ] : array();
$list = !empty( $manifest[ $multislug ]['list'] ) && is_array( $manifest[ $multislug ]['list'] ) ? $manifest[ $multislug ]['list'] : array_merge( $demos, $demospro );
foreach ( $list as $lslug ) {
$nonmodslug = $lslug;
// 2. Check for each demo slug in manifest
$lslug = isset( $manifest[ $lslug ] ) && is_array( $manifest[ $lslug ] ) ? $lslug : str_ireplace( '-premium', '', $lslug );
if ( !empty( $manifest[ $lslug ] ) && is_array( $manifest[ $lslug ] ) ) {
$this->multipack[ $nonmodslug ] = array(
'name' => !empty( $manifest[ $lslug ]['name'] ) && is_string( $manifest[ $lslug ]['name'] ) ? $manifest[ $lslug ]['name'] : __( 'Theme Demo', 'hootkit' ),
'img' => trailingslashit( $manifest['cdn_base'] ) . 'images/hootkit/' . ( !empty( $manifest[ $lslug ]['thumb'] ) ? $manifest[ $lslug ]['thumb'] : $lslug . '-thumb.jpg' ),
'islocked' => in_array( $nonmodslug, $demospro ) ? ( is_array( $sanetags ) && !empty( $sanetags['urltheme'] ) ? $sanetags['urltheme'] : true ) : false,
'preview' => !empty( $manifest[ $lslug ]['preview'] ) && is_string( $manifest[ $lslug ]['preview'] ) ? $manifest[ $lslug ]['preview'] : '',
);
}
}
}
}
$this->hasmulti = !empty( $this->multipack );
}
/**
* Get manifest and set $demopack
* @since 3.0.0
* @access public
* @return void
*/
public function set_demopack() {
$manifest = include( hootimport()->dir . 'include/demopacks.php' );
if ( empty( $manifest ) || !is_array( $manifest ) || empty( $manifest['cdn_url'] ) ) {
$this->demopack = array( 'error' => 'invalid_manifest' );
} else {
$demoslug = isset( $manifest[ $this->demoslug ] ) && is_array( $manifest[ $this->demoslug ] ) ? $this->demoslug : str_ireplace( '-premium', '', $this->demoslug );
if ( !empty( $manifest[ $demoslug ] ) && is_array( $manifest[ $demoslug ] ) ) {
if ( array_key_exists( 'demos', $manifest[ $demoslug ] ) || array_key_exists( 'demospro', $manifest[ $demoslug ] ) ) :
$this->demopack = array( 'error' => 'ismultipack' );
else :
$this->demopack = array(
'pack' => trailingslashit( $manifest['cdn_url'] ) . $this->demoslug . '.zip',
'img' => trailingslashit( $manifest['cdn_base'] ) . 'images/hootkit/' . ( !empty( $manifest[ $demoslug ]['img'] ) ? $manifest[ $demoslug ]['img'] : $demoslug . '.jpg' ),
'plugins' => !empty( $manifest[ $demoslug ]['plugins'] ) ? $manifest[ $demoslug ]['plugins'] : array(),
);
endif;
} else {
$this->demopack = array( 'error' => 'incompatible_theme' );
}
}
}
/**
* Render a single Demo Pack
*
* @since 3.0.0
* @access public
* @return void
*/
public function render_multi_idx( $activedemo=false ) {
$pageurl = self::$importplugin['dashurl']; ?>
multipack as $demoslug => $demopack ) :
$demoname = !empty( $demopack['name'] ) ? $demopack['name'] : '';
$demoimg = !empty( $demopack['img'] ) ? $demopack['img'] : '';
$islocked = !empty( $demopack['islocked'] );
$preview = !empty( $demopack['preview'] ) ? $demopack['preview'] : '';
$url = add_query_arg( 'demo', $demoslug, $pageurl );
?>
demoslug = !empty( $demoslug ) && is_string( $demoslug ) ? strtolower( $demoslug ) : '';
if ( !empty( $this->demoslug ) ) {
$this->set_demopack();
}
// Set compatibility
$is_compatible = !empty( $this->demopack ) && is_array( $this->demopack ) && !empty( $this->demopack['pack'] );
// Check if available
$islocked = hootkit_arrayel( $this->multipack, array( $this->demoslug, 'islocked' ) );
$is_available = $this->hasmulti ? empty( $islocked ) : true;
// Regular Maintenance tasks
if ( $is_compatible ) {
$force_cleanup = isset( $_GET['refreshdemo'] ) && $_GET['refreshdemo'] === 'true' && isset( $_GET['_wpnonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash ( $_GET['_wpnonce'] ) ), 'hootkitimport_refresh_demo_data_nonce' ) ? true : false;
hootimport()->cleanup( $force_cleanup );
}
?>
hasmulti ) : ?>
' . wp_kses_post( wpautop( $icnotice ) ) . '
';
} elseif ( empty( $this->demopack )
|| !is_array( $this->demopack )
|| ( isset( $this->demopack['error'] ) && $this->demopack['error'] === 'incompatible_theme' )
) {
$activetmpl = wp_get_theme();
$activetmpl_author = ($activetmpl->parent()) ? $activetmpl->parent()->get('Author') : $activetmpl->get('Author');
echo '';
if ( stripos( $activetmpl_author, 'wphoot' ) !== false ) {
echo '
' . esc_html__( 'The current theme is not supported by this version of HootKit Import.', 'hootkit' ) . '
';
echo '
' . esc_html__( 'Please update your current theme and HootKit plugin to their latest versions.', 'hootkit' ) . '
';
} else {
echo '
' . esc_html__( 'The current theme is not supported by HootKit Import.', 'hootkit' ) . '
';
/* Translators: The %s are placeholders for HTML, so the order can't be changed. */
echo '
' . sprintf( esc_html__( 'Please make sure you are using a compatible %1$swpHoot Theme%2$s. Not all themes are compatible with HootKit Import.', 'hootkit' ), '', ' ' ) . '
';
}
echo '
';
} else {
echo '';
if ( isset( $this->demopack['error'] ) && $this->demopack['error'] === 'invalid_manifest' ) {
echo '
' . esc_html__( 'The theme demos manifest is not formatted properly.', 'hootkit' ) . '
';
} elseif ( isset( $this->demopack['error'] ) && $this->demopack['error'] === 'ismultipack' ) {
echo '
' . esc_html__( 'This looks like a multi demo pack. The theme demos manifest is not formatted properly.', 'hootkit' ) . '
';
} else {
echo '
' . esc_html__( 'An unknown error occurred.', 'hootkit' ) . '
';
}
echo '
';
}
?>
demopack['img'] ) ) {
echo '
';
} ?>
hasmulti ) {
$dname = hootkit_arrayel( $this->multipack, array( $this->demoslug, 'name' ) );
if ( $dname ) {
echo '
' . esc_html( $dname ) . ' ';
}
} ?>
' . esc_html__( 'You are importig the free version of the demo site. This may not include some of the premium widgets.', 'hootkit' ) . '';
}
?>
get_plugins_info();
// Set plugin status
$activeplugins = array();
foreach ( $plugin_ops as $id => $option ) {
if ( is_array( $option ) && !empty( $option['data'] ) && is_array( $option['data'] ) ) {
if ( !empty( $option['data']['class'] ) && class_exists( $option['data']['class'] ) ) {
$activeplugins[ $id ] = $plugin_ops[ $id ];
$activeplugins[ $id ]['status'] = 'active';
unset( $plugin_ops[ $id ] );
} elseif ( !empty( $option['data']['const'] ) && defined( $option['data']['const'] ) ) {
$activeplugins[ $id ] = $plugin_ops[ $id ];
$activeplugins[ $id ]['status'] = 'active';
unset( $plugin_ops[ $id ] );
} elseif ( !empty( $option['data']['file'] ) && file_exists( WP_PLUGIN_DIR . "/{$option['data']['file']}" ) ) {
$plugin_ops[ $id ]['status'] = 'installed';
} else {
$plugin_ops[ $id ]['status'] = 'unavailable';
}
} else { // this shouldn't have happened
$plugin_ops[ $id ]['status'] = 'unavailable';
}
}
// Divide remaning non active into rcmd categories
$required = array_filter( $plugin_ops, function( $item ) {
return !empty( $item['rcmd'] ) && $item['rcmd'] === 'reqd';
} );
$recommended = array_filter( $plugin_ops, function( $item ) {
return !empty( $item['rcmd'] ) && $item['rcmd'] !== 'reqd';
} );
$optional = array_filter( $plugin_ops, function( $item ) {
return empty( $item['rcmd'] );
} );
$show_subhead = !empty( $activeplugins ) || ( count(array_filter(array($required, $recommended, $optional))) >= 2 );
if ( ( !empty( $plugin_ops ) && is_array( $plugin_ops ) ) || ( !empty( $activeplugins ) && is_array( $activeplugins) ) ) : ?>
$plugin ) {
$this->render_option( 'plugin', $id, $plugin );
} ?>
$plugin ) {
$this->render_option( 'plugin', $id, $plugin );
} ?>
$plugin ) {
$this->render_option( 'plugin', $id, $plugin );
} ?>
$plugin ) {
$this->render_option( 'plugin', $id, $plugin );
} ?>
render_option( 'content', 'xml', array(
'name' => esc_html__( 'Content XML', 'hootkit' ),
'desc' => esc_html__( 'posts, pages, categories, menus, images etc.', 'hootkit' ),
) );
$this->render_option( 'content', 'wcxml', array(
'name' => esc_html__( 'WooCommerce XML', 'hootkit' ),
'desc' => esc_html__( 'products, categories, shop pages etc.', 'hootkit' ),
'checked' => class_exists( 'WooCommerce' ),
) );
$this->render_option( 'content', 'dat', array(
'name' => esc_html__( 'Customizer DAT', 'hootkit' ),
'desc' => esc_html__( 'Customizer Settings', 'hootkit' ),
) );
$this->render_option( 'content', 'wie', array(
'name' => esc_html__( 'Widgets WIE', 'hootkit' ),
) );
?>
demoslug ) ) : ?>
demopack['pack'] ) ) : ?>
', '' );
?>
', '' );
?>
', '' );
?>
$dataval ) {
echo ' data-' . sanitize_key( $datakey ) . '="' . esc_attr( $dataval ) . '"';
}
}
?> />
' . esc_html__( '(Required)', 'hootkit' ) . '';
?>
' . esc_html__( '(Required)', 'hootkit' ) . '';
?>
array(
'name' => esc_html__( 'HootKit', 'hootkit' ),
'rcmd' => true,
'data' => array( 'class' => 'HootKit', 'file' => 'hootkit/hootkit.php' ), // class || const || func
),
'contact-form-7' => array(
'name' => esc_html__( 'Contact Form 7', 'hootkit' ),
'data' => array( 'const' => 'WPCF7_VERSION', 'file' => 'contact-form-7/wp-contact-form-7.php' ),
),
'breadcrumb-navxt' => array(
'name' => esc_html__( 'Breadcrumb NavXT', 'hootkit' ),
'data' => array( 'class' => 'breadcrumb_navxt', 'file' => 'breadcrumb-navxt/breadcrumb-navxt.php' ),
),
'woocommerce' => array(
'name' => esc_html__( 'Woocommerce - eCommerce Shop', 'hootkit' ),
'checked' => false,
'data' => array( 'class' => 'WooCommerce', 'file' => 'woocommerce/woocommerce.php' ),
),
'newsletter' => array(
'name' => esc_html__( 'Newsletter', 'hootkit' ),
'checked' => false,
'data' => array( 'const' => 'NEWSLETTER_VERSION', 'file' => 'newsletter/plugin.php' ),
),
'mappress-google-maps-for-wordpress' => array(
'name' => esc_html__( 'MapPress - Google Maps', 'hootkit' ),
'checked' => false,
'data' => array( 'class' => 'Mappress', 'file' => 'mappress-google-maps-for-wordpress/mappress.php' ),
),
);
$plugins = array();
$demoplugins = !empty( $this->demopack['plugins'] ) && is_array( $this->demopack['plugins'] ) ? $this->demopack['plugins'] : array();
foreach ( $demoplugins as $check ) {
if ( is_string( $check ) ) {
if ( !empty( $common[ $check ] ) ) {
$plugins[ $check ] = $common[ $check ];
}
} elseif( is_array( $check ) && !empty( $check['slug'] ) ) {
$slug = $check['slug'];
$data = !empty( $check['data'] ) && is_array( $check['data'] ) ? $check['data'] : array();
$plugins[ $slug ] = !empty( $common[ $slug ] ) ? hootkit_recursive_parse_args( $data, $common[ $slug ] ) : $data;
}
}
// if ( isset( $plugins['hootkit'] ) )
// unset( $plugins['hootkit'] );
return $plugins;
}
/**
* Returns the instance
*/
public static function get_instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
}
Admin::get_instance();
endif;PK 4m\| import/include/demopacks.phpnu [ 'https://cdn.wphoot.com/',
'cdn_url' => 'https://cdn.wphoot.com/themedemos/v5/',
'magazine-lume' => array(
'demos' => array( 'lume-base', 'lume-classico', 'lume-byte', 'lume-news' ),
'demospro' => array( ),
'list' => array( 'lume-base', 'lume-classico', 'lume-byte', 'lume-news' ),
),
'magazine-lume-premium' => array(
'demos' => array( 'lume-base-premium', 'lume-classico-premium', 'lume-byte-premium', 'lume-news-premium' )
),
'lume-base' => array(
'name' => __( 'Lume Base', 'hootkit' ) . $suffix,
'img' => 'lume-base.jpg',
'thumb' => 'lume-base-thumb.jpg',
'preview' => 'https://demosites.wphoot.com/magazine-lume/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
'lume-classico' => array(
'name' => __( 'Lume Classico', 'hootkit' ) . $suffix,
'img' => 'lume-classico.jpg',
'thumb' => 'lume-classico-thumb.jpg',
'preview' => 'https://demosites.wphoot.com/lume-classico/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
'lume-byte' => array(
'name' => __( 'Lume Byte', 'hootkit' ) . $suffix,
'img' => 'lume-byte.jpg',
'thumb' => 'lume-byte-thumb.jpg',
'preview' => 'https://demosites.wphoot.com/lume-byte/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
'lume-news' => array(
'name' => __( 'Lume News', 'hootkit' ) . $suffix,
'img' => 'lume-news.jpg',
'thumb' => 'lume-news-thumb.jpg',
'preview' => 'https://demosites.wphoot.com/lume-news/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
'magazine-booster' => array(
'demos' => array( 'booster-base', 'booster-byte', 'booster-lucore', 'booster-news', 'booster-bombino' ),
'demospro' => array( ),
'list' => array( 'booster-base', 'booster-byte', 'booster-lucore', 'booster-news', 'booster-bombino' ),
),
'magazine-booster-premium' => array(
'demos' => array( 'booster-base-premium', 'booster-byte-premium', 'booster-lucore-premium', 'booster-news-premium', 'booster-bombino-premium' )
),
'booster-base' => array(
'name' => __( 'Booster Base', 'hootkit' ) . $suffix,
'img' => 'booster-base.jpg',
'thumb' => 'booster-base-thumb.jpg',
'preview' => 'https://demosites.wphoot.com/magazine-booster/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
'booster-lucore' => array(
'name' => __( 'Booster Lucore', 'hootkit' ) . $suffix,
'img' => 'booster-lucore.jpg',
'thumb' => 'booster-lucore-thumb.jpg',
'preview' => 'https://demosites.wphoot.com/booster-lucore/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
'booster-news' => array(
'name' => __( 'Booster News', 'hootkit' ) . $suffix,
'img' => 'booster-news.jpg',
'thumb' => 'booster-news-thumb.jpg',
'preview' => 'https://demosites.wphoot.com/booster-news/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
'booster-byte' => array(
'name' => __( 'Booster Byte', 'hootkit' ) . $suffix,
'img' => 'booster-byte.jpg',
'thumb' => 'booster-byte-thumb.png',
'preview' => 'https://demosites.wphoot.com/booster-byte/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
'booster-bombino' => array(
'name' => __( 'Booster Bombino', 'hootkit' ) . $suffix,
'img' => 'booster-bombino.jpg',
'thumb' => 'booster-bombino-thumb.jpg',
'preview' => 'https://demosites.wphoot.com/booster-bombino/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
'voltino' => array(
'name' => __( 'Voltino Base', 'hootkit' ) . $suffix,
'img' => 'voltino-base.jpg',
'thumb' => 'voltino-base-thumb.jpg',
'preview' => 'https://demosites.wphoot.com/voltino/',
'plugins' => array( 'hootkit', 'contact-form-7', 'breadcrumb-navxt', 'woocommerce', 'newsletter' )
),
) );
PK 4m\