コード例 #1
0
ファイル: func.php プロジェクト: ambient-lounge/site
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&nbsp;<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>
        &nbsp;<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>
    ';
}
コード例 #2
0
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 . '*');