$review_attributes = fn_get_review_attributes_work();
    // 	$products = db_get_fields('SELECT DISTINCT object_id FROM ?:review_attributes_links');
    //
    // 	foreach ($products as $k => $prod_id) {
    // 		$prod_list[$k]['product_id'] = $prod_id;
    // 		$prod_list[$k]['attr_ids'] = db_get_fields('SELECT attr_id FROM ?:review_attributes_links WHERE object_id = ?i', $prod_id);
    // 	}
    Registry::get('view')->assign('review_attributes', $review_attributes);
    //[/Ruslan]
} elseif ($mode == 'upgrade') {
    $addon = 'altteam_review_attributes';
    $rewrite_opts = array();
    $xml = simplexml_load_file(Registry::get('config.dir.addons') . $addon . '/addon.xml');
    if (isset($xml->opt_settings)) {
        $options = db_get_field("SELECT options FROM ?:addons WHERE addon = ?s", $addon);
        $options = fn_parse_addon_options($options);
        $sections_node = isset($xml->opt_settings->section) ? $xml->opt_settings->section : $xml->opt_settings;
        foreach ($sections_node as $section) {
            foreach ($section->item as $item) {
                if (!empty($item->name)) {
                    // options
                    if (isset($options[(string) $item['id']]) && !in_array((string) $item['id'], $rewrite_opts)) {
                        continue;
                    }
                    if ((string) $item->type != 'header') {
                        if (isset($item->multilanguage)) {
                            $options[(string) $item['id']] = '%ML%';
                            $ml_option_value = array('addon' => $addon, 'object_id' => (string) $item['id'], 'object_type' => 'L', 'description' => (string) $item->default_value);
                            foreach ((array) Registry::get('languages') as $ml_option_value['lang_code'] => $_v) {
                                $ml_option_value['description'] = isset($options[(string) $item['id']]) ? $options[(string) $item['id']] : (string) $item->default_value;
                                foreach ($item->multilanguage->item as $v_item) {
Example #2
0
/**
 * Update addon options
 *
 * @param string $addon addon to update options for
 * @param string $addon_data options data
 * @return bool always true
 */
function fn_update_addon($addon, $addon_data)
{
    fn_get_schema('settings', 'actions', 'php', false, true);
    // Get old options
    $old_options = db_get_field("SELECT options FROM ?:addons WHERE addon = ?s", $addon);
    $old_options = fn_parse_addon_options($old_options);
    $ml_options = db_get_hash_single_array("SELECT object_id, description FROM ?:addon_descriptions WHERE addon = ?s AND object_id != '' AND object_type = 'L' AND lang_code = ?s", array('object_id', 'description'), $addon, CART_LANGUAGE);
    foreach ($old_options as $k => $v) {
        if (isset($addon_data['options'][$k]) && ($v != '%ML%' && $addon_data['options'][$k] != $v || $v == '%ML%' && isset($ml_options[$k]) && $addon_data['options'][$k] != $ml_options[$k]) || !isset($addon_data['options'][$k])) {
            $func = 'fn_settings_actions_addons_' . $addon . '_' . $k;
            if (function_exists($func)) {
                $func($addon_data['options'][$k], $v == '%ML%' ? $ml_options[$k] : $v);
            }
        }
        if ($v == '%ML%') {
            db_query("UPDATE ?:addon_descriptions SET ?u WHERE addon = ?s AND object_id = ?s AND object_type = 'L' AND lang_code = ?s", array('description' => $addon_data['options'][$k]), $addon, $k, CART_LANGUAGE);
            $addon_data['options'][$k] = '%ML%';
        }
    }
    if (!empty($addon_data['options'])) {
        foreach ($addon_data['options'] as $k => $v) {
            if (is_array($v)) {
                $addon_data['options'][$k] = '#M#' . implode('=Y&', $v) . '=Y';
            }
        }
        $addon_data['options'] = serialize($addon_data['options']);
    } else {
        $addon_data['options'] = '';
    }
    db_query("UPDATE ?:addons SET ?u WHERE addon = ?s", $addon_data, $addon);
    return true;
}
Example #3
0
/**
 * Initialize all enabled addons
 *
 * @return boolean always true
 */
function fn_init_addons()
{
    Registry::register_cache('addons', array('addons'), CACHE_LEVEL_STATIC);
    // Get settings
    if (Registry::is_exist('addons') == false) {
        $_addons = db_get_hash_array("SELECT addon, priority, IF(status = 'A', options, '') as options, status FROM ?:addons ORDER BY priority", 'addon');
        foreach ($_addons as $k => $v) {
            if (defined('COMPANY_ID') && !fn_check_addon_permission($k)) {
                unset($_addons[$k]);
                continue;
            }
            $_addons[$k] = $v['status'] == 'A' && !empty($v['options']) ? fn_parse_addon_options($v['options']) : array();
            $_addons[$k]['status'] = $v['status'];
            $_addons[$k]['priority'] = $v['priority'];
        }
        Registry::set('addons', $_addons);
    }
    foreach ((array) Registry::get('addons') as $addon_name => $data) {
        if ($data['status'] == 'A') {
            if (is_file(DIR_ADDONS . $addon_name . '/init.php')) {
                include DIR_ADDONS . $addon_name . '/init.php';
            }
        }
    }
    return true;
}