function fn_settings_actions_addons_banners_banner_multilang($new_value, $old_value) { if ($new_value == 'N') { $lang_codes = Languages::getAll(); unset($lang_codes[DEFAULT_LANGUAGE]); $banners_multilang = array(); foreach ($lang_codes as $lang_code => $lang_data) { list($banners) = fn_get_banners(array(), $lang_code); foreach ($banners as $banner) { $banners_multilang[$lang_code][$banner['banner_id']] = $banner; } } list($banners) = fn_get_banners(array(), DEFAULT_LANGUAGE); foreach ($banners as $banner) { if ($banner['type'] != 'G') { continue; } $main_image_id = !empty($banner['main_pair']['image_id']) ? $banner['main_pair']['image_id'] : 0; foreach ($lang_codes as $lang_code => $lang_data) { $banner_lang = $banners_multilang[$lang_code][$banner['banner_id']]; $lang_image_id = !empty($banner_lang['main_pair']['image_id']) ? $banner_lang['main_pair']['image_id'] : 0; if ($lang_image_id != 0 && ($main_image_id == 0 || $main_image_id != $lang_image_id)) { fn_delete_image($lang_image_id, $banner_lang['main_pair']['pair_id'], 'promo'); $lang_image_id = 0; } if ($lang_image_id == 0 && $main_image_id != 0) { $data_banner_image = array('banner_id' => $banner['banner_id'], 'lang_code' => $lang_code); $banner_image_id = db_query("INSERT INTO ?:banner_images ?e", $data_banner_image); fn_add_image_link($banner_image_id, $banner['main_pair']['pair_id']); $data_desc = array('description' => empty($banner['main_pair']['icon']['alt']) ? '' : $banner['main_pair']['icon']['alt'], 'object_holder' => 'images'); fn_create_description('common_descriptions', 'object_id', $main_image_id, $data_desc); } db_query("UPDATE ?:banner_descriptions SET url = ?s WHERE banner_id = ?i", $banner['url'], $banner['banner_id']); } } } return true; }
function fn_banners_clone($banners, $lang_code) { foreach ($banners as $banner) { if (empty($banner['main_pair']['pair_id'])) { continue; } $data_banner_image = array('banner_id' => $banner['banner_id'], 'lang_code' => $lang_code); $banner_image_id = db_query("REPLACE INTO ?:banner_images ?e", $data_banner_image); fn_add_image_link($banner_image_id, $banner['main_pair']['pair_id']); } }
* * * This is commercial software, only users who have purchased a valid * * license and accept to the terms of the License Agreement can install * * and use this program. * * * **************************************************************************** * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE * * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. * ****************************************************************************/ if (!defined('BOOTSTRAP')) { die('Access denied'); } $join = 'LEFT JOIN ?:banners as b ON bd.banner_id = b.banner_id'; db_query("UPDATE ?:banner_descriptions as bd {$join} SET bd.url = b.url"); db_query("ALTER TABLE ?:banners DROP COLUMN `url`;"); // Update images links $images_links = db_get_array("SELECT pair_id, object_id, image_id FROM ?:images_links WHERE object_type = 'promo'"); if (!empty($images_links)) { foreach ($images_links as $link) { $data_banner_image = array('banner_id' => $link['object_id'], 'lang_code' => DEFAULT_LANGUAGE); $banner_image_id = db_query("INSERT INTO ?:banner_images ?e", $data_banner_image); db_query('UPDATE ?:images_links SET object_id = ?i WHERE pair_id = ?i', $banner_image_id, $link['pair_id']); $lang_codes = db_get_fields("SELECT lang_code FROM ?:languages WHERE lang_code NOT IN (?s)", DEFAULT_LANGUAGE); if (!empty($lang_codes)) { foreach ($lang_codes as $lang_code) { $banner_image_id = db_query("INSERT INTO ?:banner_images (banner_id, lang_code) VALUE(?i, ?s)", $link['object_id'], $lang_code); fn_add_image_link($banner_image_id, $link['pair_id']); } } } }