$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) {
/** * 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; }
/** * 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; }