function fn_magiczoom_prepare_custom_options($block) { static $addonOptions; static $enabledOptions; $headersBind = ''; $generalParamsChangeBind = ''; $includeOptionsJs = ''; $initOptionsValidation = ''; $magicscrollIcon = ''; $blocks = array('product', 'category', 'search', 'newest', 'recent_products', 'most_popular', 'bestsellers', 'rating', 'on_sale', 'manually'); if (!isset($addonOptions)) { $section = Settings::instance()->getSectionByName($_REQUEST['addon'], Settings::ADDON_SECTION); $addonOptions = db_get_hash_single_array('SELECT name, value FROM ?:settings_objects WHERE section_id = \'?p\' AND type != \'H\'', array('name', 'value'), $section['section_id']); $enabledOptions = db_get_hash_single_array('SELECT block, value FROM ?:addon_magiczoom_options WHERE name = \'enabled_options\'', array('block', 'value')); } switch ($block) { case 'general': if (isset($addonOptions['cache-path-to-cache'])) { $pathToCache = $addonOptions['cache-path-to-cache']; } else { $pathToCache = '/images/magictoolbox_cache'; } $tool = fn_magiczoom_load(); require_once dirname(__FILE__) . '/classes/magictoolbox.imagehelper.class.php'; $imagehelper = new MagicToolboxImageHelperClass(Registry::get('config.dir.root'), $pathToCache, $tool->params); $usedSubCache = $imagehelper->getOptionsHash(); $cacheInfo = fn_magiczoom_getCacheInfo(Registry::get('config.dir.root') . $pathToCache, $usedSubCache); $cacheInfo['formatedTotalSize'] = fn_magiczoom_format_size($cacheInfo['totalSize']); $cacheInfo['formatedUnusedSize'] = fn_magiczoom_format_size($cacheInfo['unusedSize']); $indexScript = Registry::get('config.admin_index'); $return = <<<RETURN <div class="control-group setting-wide magiczoom"> <label for="addon_option_magiczoom_cache-path-to-cache" class="control-label" >Path to cache folder <a class="cm-tooltip" title="Relative for site base path."><i class="icon-question-sign"></i></a>:</label> <div class="controls"> <input id="addon_option_magiczoom_cache-path-to-cache" type="text" name="addon_data[options][cache-path-to-cache]" value="{$pathToCache}" style="width:352px;" disabled="disabled" /> <div class="right update-for-all"></div> </div> </div> <div class="control-group setting-wide magiczoom"> <label for="addon_option_magiczoom_cache-total-items" class="control-label" >Total items:</label> <div class="controls"> <input id="addon_option_magiczoom_cache-total-items" type="text" name="addon_data[options][cache-total-items]" value="{$cacheInfo['totalCount']} ({$cacheInfo['formatedTotalSize']})" size="30" disabled="disabled" /> <div class="right update-for-all"></div> </div> </div> <div class="control-group setting-wide magiczoom"> <label for="addon_option_magiczoom_cache-unused-items" class="control-label" >Unused items:</label> <div class="controls"> <input id="addon_option_magiczoom_cache-unused-items" type="text" name="addon_data[options][cache-unused-items]" value="{$cacheInfo['unusedCount']} ({$cacheInfo['formatedUnusedSize']})" size="30" disabled="disabled" /> <div class="right update-for-all"></div> </div> </div> <div class="control-group setting-wide magiczoom"> <label for="addon_option_magiczoom_cache-what-clear" class="control-label " >Empty cache:</label> <div class="controls"> <select id="addon_option_magiczoom_cache-what-clear" onchange="\$('#magiczoom_clear_cache_field').attr('href', '{$indexScript}?dispatch=magiczoom_cache.'+this.value).attr('rev', this.value);"> <option value="clear_unused_items" selected="selected">Delete unused items</option> <option value="clear_all_items">Delete all items</option> </select> <a data-ca-event="ce.magiczoom_clear_cache_field" name="magiczoom_clear_cache_field" id="magiczoom_clear_cache_field" href="{$indexScript}?dispatch=magiczoom_cache.clear_unused_items" class="cm-ajax cm-confirm" rev="clear_unused_items" >Clear</a> <div class="right update-for-all"></div> </div> </div> RETURN; return $return; break; case 'manually': //only after last block $blocks = '"' . implode('", "', $blocks) . '"'; //NOTE: does not work in hidden tabs //$headersBind = '$("#tabs_content_magiczoom h4.subheader").slice(1).click();'; $headersBind = ' $("#tabs_content_magiczoom h4.subheader").slice(1).each(function() { var subheader = $(this); var target = subheader.attr(\'data-target\'); subheader.addClass(\'collapsed\'); $(target).removeClass(\'in\'); }); '; $generalParamsChangeBind = ' $("#content_magiczoom_magiczoom_general").find("input[type=\'text\']").bind("change", function(){ var block_array = [' . $blocks . ']; var optionId = this.id.replace("addon_option_magiczoom_general-",""); var optioVal = $(this).val(); for(block in block_array) { $("#content_magiczoom_magiczoom_" + block_array[block]). find("#addon_option_magiczoom_" + block_array[block] + "-" + optionId + ":disabled").val(optioVal); } }). end().find("select").bind("change", function(){ var block_array = [' . $blocks . ']; var optionId = this.id.replace("addon_option_magiczoom_general-",""); var optioVal = $(this).val().replace("general-" + optionId + "-", ""); for(block in block_array) { $("#content_magiczoom_magiczoom_" + block_array[block]). find("#addon_option_magiczoom_" + block_array[block] + "-" + optionId + ":disabled").val(block_array[block] + "-" + optionId + "-" + optioVal); } }). end().find("input[type=\'radio\']").bind("change", function(){ var block_array = [' . $blocks . ']; var optionId = this.parentNode.parentNode.id.replace("addon_option_magiczoom_general-",""); var optioVal = $(this).val().replace("general-" + optionId + "-", ""); for(block in block_array) { $("#content_magiczoom_magiczoom_" + block_array[block]). find("#addon_option_magiczoom_" + block_array[block] + "-" + optionId + " input:disabled").val([block_array[block] + "-" + optionId + "-" + optioVal]); } });'; $tool = fn_magiczoom_load(); $includeOptionsJs = '<script type="text/javascript" src="' . Registry::get('config.http_location') . '/js/addons/magiczoom/options.js"></script>'; $templateOptionId = Settings::instance()->getId('product-template', 'magiczoom'); $magicscrollOptionId = Settings::instance()->getId('product-magicscroll', 'magiczoom'); $initOptionsValidation = 'initOptionsValidation(\'addon_data[options][' . $templateOptionId . ']\', \'addon_data[options][' . $magicscrollOptionId . ']\', \'product-template-\', \'product-magicscroll-\');'; $magicscrollIcon = ' var magicscrollIcon = document.createElement("img"); magicscrollIcon.id = "magicscroll_icon"; magicscrollIcon.src = "' . Registry::get('config.http_location') . "/design/backend/media/images/addons/magiczoom/magicscroll.png" . '"; magicscrollIcon.style.marginRight = "5px"; document.getElementById("addon_option_magiczoom_product-magicscroll").insertBefore(magicscrollIcon, document.getElementById("addon_option_magiczoom_product-magicscroll").firstChild); '; } $tool = fn_magiczoom_load(); //$skip = array('zoomOn'); $skip = array(); $skip[] = 'quick-view-thumb-max-width'; $skip[] = 'quick-view-thumb-max-height'; foreach ($tool->params->getParams() as $param) { if (in_array($param['group'], array('General', 'Scroll', 'Scroll Arrows', 'Scroll Slider', 'Scroll effect', 'Multiple images'))) { $skip[] = $param['id']; } } $skip = implode('|', $skip); return $includeOptionsJs . ' <input type="hidden" name="addon_data[options][' . $block . '-enabled-options]" id="addon_option_magiczoom_' . $block . '-enabled-options" value="' . $enabledOptions[$block] . '" /> <script type="text/javascript"> //<![CDATA[ function fn_magiczoom_prepare_' . $block . '_block_options() { fn_magiczoom_prepare_custom_options("' . $block . '", \'' . $skip . '\'); ' . $headersBind . $generalParamsChangeBind . $initOptionsValidation . $magicscrollIcon . ' } //]]> </script> '; }
use Tygh\Settings; if (!defined('BOOTSTRAP')) { die('Access denied'); } if ($_SERVER['REQUEST_METHOD'] == 'POST') { return array(CONTROLLER_STATUS_OK); } if ($mode == 'clear_all_items' || $mode == 'clear_unused_items') { $section = Settings::instance()->getSectionByName('magiczoom', Settings::ADDON_SECTION); $addon_options = db_get_hash_single_array('SELECT name, value FROM ?:settings_objects WHERE section_id = \'?p\' AND type != \'H\'', array('name', 'value'), $section['section_id']); if (isset($addon_options['cache-path-to-cache'])) { $pathToCache = $addon_options['cache-path-to-cache']; } else { $pathToCache = '/images/magictoolbox_cache'; } $tool = fn_magiczoom_load(); require_once dirname(__FILE__) . '/../../classes/magictoolbox.imagehelper.class.php'; $imagehelper = new MagicToolboxImageHelperClass(Registry::get('config.dir.root'), $pathToCache, $tool->params); $usedSubCache = $imagehelper->getOptionsHash(); if (is_dir(Registry::get('config.dir.root') . $pathToCache)) { fn_magiczoom_clearCache(Registry::get('config.dir.root') . $pathToCache, $mode == 'clear_all_items' ? null : $usedSubCache); } fn_set_notification('N', __('notice'), "Image cache was cleared."); $cacheInfo = fn_magiczoom_getCacheInfo(Registry::get('config.dir.root') . $pathToCache, $usedSubCache); echo $cacheInfo['totalCount'] . ' (' . fn_magiczoom_format_size($cacheInfo['totalSize']) . ')'; exit; } return array(CONTROLLER_STATUS_OK); function fn_magiczoom_clearCache($path, $usedSubCache = null) { $files = glob($path . DIRECTORY_SEPARATOR . '*');