function fn_banners_install() { // FIXME if (DEFAULT_LANGUAGE != 'en') { db_query("UPDATE ?:banner_images SET lang_code = ?s WHERE lang_code = ?s", DEFAULT_LANGUAGE, 'en'); // Demo data } $banners = db_get_array("SELECT ?:banners.banner_id, ?:banner_images.banner_image_id FROM ?:banners LEFT JOIN ?:banner_images ON ?:banner_images.banner_id = ?:banners.banner_id AND ?:banner_images.lang_code = ?s", DEFAULT_LANGUAGE); foreach ($banners as $k => $v) { $banners[$k]['main_pair'] = fn_get_image_pairs($v['banner_image_id'], 'promo', 'M', true, false, DEFAULT_LANGUAGE); } foreach (Languages::getAll() as $lang_code => $v) { fn_banners_clone($banners, $lang_code); } return true; }
function fn_banners_install() { $banners = db_get_hash_multi_array("SELECT ?:banners.banner_id, ?:banner_images.banner_image_id, ?:banner_images.lang_code FROM ?:banners LEFT JOIN ?:banner_images ON ?:banner_images.banner_id = ?:banners.banner_id", array('lang_code', 'banner_id')); $langs = array_keys(Languages::getAll()); $need_clone_langs = array_diff($langs, array_keys($banners)); if (!empty($need_clone_langs)) { $clone_lang = DEFAULT_LANGUAGE; if (in_array(DEFAULT_LANGUAGE, $need_clone_langs)) { $clone_lang = 'en'; } foreach ($banners[$clone_lang] as $banner_id => &$banner) { $banner['main_pair'] = fn_get_image_pairs($banner['banner_image_id'], 'promo', 'M', true, false, $clone_lang); } foreach ($need_clone_langs as $need_clone_lang) { fn_banners_clone($banners[$clone_lang], $need_clone_lang); } } foreach ($banners['en'] as $banner_id => &$banner) { $banner['main_pair'] = fn_get_image_pairs($banner['banner_image_id'], 'promo', 'M', true, false, 'en'); } if (!in_array('en', $langs)) { $banner_images_ids = db_get_fields("SELECT banner_image_id FROM ?:banner_images WHERE lang_code = ?s", 'en'); foreach ($banner_images_ids as $banner_image_id) { fn_delete_image_pairs($banner_image_id, 'promo'); } if (!empty($banner_images_ids)) { db_query("DELETE FROM ?:banner_images WHERE banner_image_id IN (?n)", $banner_images_ids); } } return true; }