public function index($id = 0, $params = array()) { $lang_code = $this->safeGet($params, 'lang_code', DEFAULT_LANGUAGE); if (!empty($id)) { $data = fn_get_page_data($id, $lang_code, false, $this->area); if ($data) { $status = Response::STATUS_OK; } else { $status = Response::STATUS_NOT_FOUND; } } else { $items_per_page = $this->safeGet($params, 'items_per_page', Registry::get('settings.Appearance.admin_pages_per_page')); if (empty($params['page_type'])) { $params['full_search'] = true; } list($pages, $search) = fn_get_pages($params, $items_per_page, $lang_code); $data = array('pages' => array_values($pages), 'params' => $search); $status = Response::STATUS_OK; } return array('status' => $status, 'data' => $data); }
function fn_se_get_pages_data($pages_ids = array(), $company_id = 0, $lang_code) { list($pages, ) = fn_get_pages(array('status' => 'A', 'item_ids' => join(',', $pages_ids)), 0, $lang_code); $data = array(); foreach ($pages as $page) { $page_id = $page['page_id']; $data[] = array('id' => $page_id, 'link' => $page['page_type'] == PAGE_TYPE_LINK ? fn_url($page['link']) : fn_url('pages.view?page_id=' . $page_id, 'C', 'http', $lang_code), 'title' => $page['page'], 'summary' => $page['description']); } return $data; }
list($fields, $join, $condition, $group_by, $sorting, $limit) = fn_get_categories(array('get_conditions' => true)); $general_stats['categories']['total_categories'] = db_get_field('SELECT COUNT(*) FROM ?:categories WHERE 1 ?p', $condition); } /* Storefronts */ if (fn_check_view_permissions('companies.manage', 'GET')) { $general_stats['companies'] = array(); if (Registry::get('runtime.company_id')) { $general_stats['companies']['total_companies'] = 1; } else { $general_stats['companies']['total_companies'] = db_get_field('SELECT COUNT(*) FROM ?:companies'); } } /* Pages */ if (fn_check_view_permissions('pages.manage', 'GET')) { $general_stats['pages'] = array(); list($fields, $join, $condition) = fn_get_pages(array('get_conditions' => true)); $general_stats['pages']['total_pages'] = db_get_field('SELECT COUNT(*) FROM ?:pages ' . $join . ' WHERE ' . $condition); } /* Order */ $orders_stat = array(); if (fn_check_view_permissions('orders.manage', 'GET') || fn_check_view_permissions('sales_reports.view', 'GET') || fn_check_view_permissions('taxes.manage', 'GET')) { $params = array('period' => 'C', 'time_from' => $time_from, 'time_to' => $time_to); list($orders_stat['orders'], $search_params, $orders_stat['orders_total']) = fn_get_orders($params, 0, true); $time_difference = $time_to - $time_from; $params = array('period' => 'C', 'time_from' => $time_from - $time_difference, 'time_to' => $time_to - $time_difference); list($orders_stat['prev_orders'], $search_params, $orders_stat['prev_orders_total']) = fn_get_orders($params, 0, true); $orders_stat['diff']['orders_count'] = count($orders_stat['orders']) - count($orders_stat['prev_orders']); $orders_stat['diff']['sales'] = fn_calculate_differences($orders_stat['orders_total']['totally_paid'], $orders_stat['prev_orders_total']['totally_paid']); } /* Abandoned carts */ $company_condition = '';
$tag = ''; if (!empty($_REQUEST['tag'])) { if (Registry::get('addons.tags.tags_for_products') == 'Y') { $params = $_REQUEST; $params['extend'] = array('description'); list($products, $search) = fn_get_products($params, Registry::get('settings.Appearance.products_per_page')); fn_gather_additional_products_data($products, array('get_icon' => true, 'get_detailed' => true, 'get_options' => true, 'get_discounts' => true)); $selected_layout = fn_get_products_layout($params); Registry::get('view')->assign('selected_layout', $selected_layout); Registry::get('view')->assign('products', $products); Registry::get('view')->assign('search', $search); } if (Registry::get('addons.tags.tags_for_pages') == 'Y') { $page_types = fn_get_page_object_by_type(); $params = $_REQUEST; $params['page_type'] = array_keys($page_types); $params['status'] = array('A'); $params['simple'] = true; list($pages, $params) = fn_get_pages($params); Registry::get('view')->assign('pages', $pages); Registry::get('view')->assign('page_types', $page_types); } $tag = $_REQUEST['tag']; } $title = __('items_marked_by_tag', array('[tag]' => $tag)); Registry::get('view')->assign('page_title', $title); fn_add_breadcrumb($title); if (!empty($products) || !empty($pages)) { Registry::get('view')->assign('tag_objects_exist', true); } }
/** * Form top menu * * @param array $top_menu top menu data from the database * @param int $level current menu level * @param boolean $active - menu item active flag, returned by reference to set tree branch as active * @return array formed top menu */ function fn_top_menu_form($top_menu, $level = 0, &$active = NULL) { $_active = false; foreach ($top_menu as $k => $v) { if (!empty($v['param_3'])) { // get extra items list($type, $id, $use_name) = fn_explode(':', $v['param_3']); if ($type == 'C') { // categories $cats = fn_get_categories_tree($id, true); $v['subitems'] = fn_array_merge(fn_top_menu_standardize($cats, 'category_id', 'category', 'subcategories', 'categories.view?category_id='), !empty($v['subitems']) ? $v['subitems'] : array(), false); if ($use_name == 'Y' && !empty($id)) { $v['descr'] = fn_get_category_name($id); $v['param'] = 'categories.view?category_id=' . $id; } } elseif ($type == 'A') { // pages $params = array('from_page_id' => $id, 'get_tree' => 'multi_level', 'status' => 'A'); list($pages) = fn_get_pages($params); $v['subitems'] = fn_array_merge(fn_top_menu_standardize($pages, 'page_id', 'page', 'subpages', 'pages.view?page_id='), !empty($v['subitems']) ? $v['subitems'] : array(), false); if ($use_name == 'Y' && !empty($id)) { $page_data = fn_get_page_data($id); $v['descr'] = $page_data['page']; $v['param'] = !empty($page_data['link']) ? $page_data['link'] : 'pages.view?page_id=' . $id; } } else { // for addons fn_set_hook('top_menu_form', $v, $type, $id, $use_name); } } if (!empty($v['param']) && fn_top_menu_is_current_url($v['param'], $v['param_2'])) { $top_menu[$k]['active'] = true; // Store active value $_active = true; } if (!empty($v['subitems'])) { $top_menu[$k]['subitems'] = fn_top_menu_form($v['subitems'], $level + 1, $active); // If active status was returned fron children if ($active) { $top_menu[$k]['active'] = $active; // Strore fo return and reset activity status for athother elements on this level // Because in one level may be only one active item $_active = true; $active = false; } } $top_menu[$k]['item'] = $v['descr']; $top_menu[$k]['href'] = $v['param']; $top_menu[$k]['level'] = $level; unset($top_menu[$k]['descr'], $top_menu[$k]['param']); } $active = $_active; return $top_menu; }
if ($sitemap_settings['show_cats'] == 'Y') { if ($sitemap_settings['show_rootcats_only'] == 'Y') { $categories = fn_get_plain_categories_tree(0, true); $sitemap['categories'] = array(); foreach ($categories as $c) { if ($c['level'] == 0) { $sitemap['categories'][] = $c; } } } else { $sitemap['categories_tree'] = fn_get_plain_categories_tree(0, true); } } if ($sitemap_settings['show_site_info'] == 'Y') { $_params = array('get_tree' => 'plain', 'status' => 'A', 'simple' => true); list($sitemap['pages_tree']) = fn_get_pages($_params); } $section_fields = array('s.*', '?:common_descriptions.object as section'); $section_tables = array('?:sitemap_sections AS s'); $section_left_joins = array(db_quote('?:common_descriptions ON s.section_id = ?:common_descriptions.object_id AND ?:common_descriptions.object_holder = "sitemap_sections" AND ?:common_descriptions.lang_code = ?s', CART_LANGUAGE)); $section_conditions = array(db_quote('status = ?s', 'A')); $section_orders = array('s.position'); fn_set_hook('sitemap_get_sections', $section_fields, $section_tables, $section_left_joins, $section_conditions, $section_orders); $custom_sections = db_get_array('SELECT ' . implode(', ', $section_fields) . ' FROM ' . implode(', ', $section_tables) . ' LEFT JOIN ' . implode(', ', $section_left_joins) . ' WHERE ' . implode(' AND ', $section_conditions) . ' ORDER BY ' . implode(', ', $section_orders)); foreach ($custom_sections as $k => $section) { $links = db_get_array("SELECT link_id, link_href, section_id, status, position, link_type, description, object as link FROM ?:sitemap_links LEFT JOIN ?:common_descriptions ON ?:common_descriptions.object_id = ?:sitemap_links.link_id AND ?:common_descriptions.object_holder = 'sitemap_links' AND ?:common_descriptions.lang_code = ?s WHERE section_id = ?i ORDER BY position, link", CART_LANGUAGE, $section['section_id']); if (!empty($links)) { foreach ($links as $key => $link) { $sitemap['custom'][$section['section']][$key]['link'] = $link['link']; $sitemap['custom'][$section['section']][$key]['link_href'] = $link['link_href']; $sitemap['custom'][$section['section']][$key]['description'] = $link['description'];
/** * Form top menu * * @param array $top_menu Top menu data from the database * @param int $level Current menu level * @param boolean $active Menu item active flag, returned by reference to set tree branch as active * * @return array Formed top menu */ function fn_top_menu_form($top_menu, $level = 0, &$active = NULL) { /** * Modifies top menu forming parameters * * @param array $top_menu Top menu data from the database * @param int $level Current menu level * @param boolean $active Menu item active flag */ fn_set_hook('top_menu_form_pre', $top_menu, $level, $active); $_active = false; foreach ($top_menu as $k => $v) { if (!empty($v['param_3'])) { // get extra items list($type, $id, $use_name) = fn_explode(':', $v['param_3']); if ($type == 'C') { // categories $cats = fn_get_categories_tree($id, true); $v['subitems'] = fn_array_merge(fn_top_menu_standardize($cats, 'category_id', 'category', 'subcategories', 'categories.view?category_id='), !empty($v['subitems']) ? $v['subitems'] : array(), false); if ($use_name == 'Y' && !empty($id)) { $v['descr'] = fn_get_category_name($id); $v['param'] = 'categories.view?category_id=' . $id; } //Should add this checking because the same pages can have different request parameters and the next checking //with fn_top_menu_is_current_url function could return incorrect result. //For example: categories.view?category_id=165 and categories.view?category_id=165¤cy=EUR should have the same active elements. if (fn_check_is_active_menu_item(array('category_id' => $id), 'categories')) { $top_menu[$k]['active'] = true; } } elseif ($type == 'A') { // pages $params = array('from_page_id' => $id, 'get_tree' => 'multi_level', 'status' => 'A'); list($pages) = fn_get_pages($params); $v['subitems'] = fn_array_merge(fn_top_menu_standardize($pages, 'page_id', 'page', 'subpages', 'pages.view?page_id='), !empty($v['subitems']) ? $v['subitems'] : array(), false); if ($use_name == 'Y' && !empty($id)) { $page_data = fn_get_page_data($id); $v['descr'] = $page_data['page']; $v['param'] = !empty($page_data['link']) ? $page_data['link'] : 'pages.view?page_id=' . $id; } if (fn_check_is_active_menu_item(array('page_id' => $id), 'pages')) { $top_menu[$k]['active'] = true; } } else { // for addons /** * Deprecated since 4.3.6, use top_menu_form_post instead */ fn_set_hook('top_menu_form', $v, $type, $id, $use_name); } } if (!empty($v['param']) && fn_top_menu_is_current_url($v['param'], $v['param_2'])) { $top_menu[$k]['active'] = true; // Store active value $_active = true; } if (!empty($v['subitems'])) { $top_menu[$k]['subitems'] = fn_top_menu_form($v['subitems'], $level + 1, $active); // If active status was returned fron children if ($active) { $top_menu[$k]['active'] = $active; // Strore fo return and reset activity status for athother elements on this level // Because in one level may be only one active item $_active = true; $active = false; } } $top_menu[$k]['item'] = $v['descr']; $top_menu[$k]['href'] = $v['param']; $top_menu[$k]['level'] = $level; unset($top_menu[$k]['descr'], $top_menu[$k]['param']); } $active = $_active; /** * Modifies top menu items * * @param array $top_menu Top menu data from the database * @param int $level Current menu level * @param boolean $active Menu item active flag */ fn_set_hook('top_menu_form_post', $top_menu, $level, $active); return $top_menu; }
/** * Form top menu * * @param array $top_menu top menu data from the database * @return array formed top menu */ function fn_top_menu_form($top_menu) { foreach ($top_menu as $k => $v) { if (!empty($v['param_3'])) { // get extra items list($type, $id, $use_name) = fn_explode(':', $v['param_3']); if ($type == 'C') { // categories $cats = fn_get_categories_tree($id, true); $v['subitems'] = fn_array_merge(fn_top_menu_standardize($cats, 'category_id', 'category', 'subcategories', 'categories.view?category_id=', $v['param_4']), !empty($v['subitems']) ? $v['subitems'] : array(), false); if ($use_name == 'Y' && !empty($id)) { $v['descr'] = fn_get_category_name($id); $v['param'] = 'categories.view?category_id=' . $id; } } elseif ($type == 'A') { // pages $params = array('from_page_id' => $id, 'get_tree' => 'multi_level', 'status' => 'A'); list($pages) = fn_get_pages($params); $v['subitems'] = fn_array_merge(fn_top_menu_standardize($pages, 'page_id', 'page', 'subpages', 'pages.view?page_id=', $v['param_4']), !empty($v['subitems']) ? $v['subitems'] : array(), false); if ($use_name == 'Y' && !empty($id)) { $v['descr'] = fn_get_page_name($id); $v['param'] = 'pages.view?page_id=' . $id; } } else { // for addons fn_set_hook('top_menu_form', $v, $type, $id, $use_name); } } if (!empty($v['subitems'])) { $top_menu[$k]['subitems'] = fn_top_menu_form($v['subitems']); } $top_menu[$k]['item'] = $v['descr']; $top_menu[$k]['href'] = $v['param']; unset($top_menu[$k]['descr'], $top_menu[$k]['param']); } return $top_menu; }
function fn_get_pages_plain_list() { $params = array('get_tree' => 'plain'); list($pages) = fn_get_pages($params); return $pages; }
if (defined('AJAX_REQUEST')) { Registry::get('view')->assign('parent_id', $params['parent_id']); Registry::get('view')->assign('hide_header', true); } Registry::get('view')->assign('hide_show_all', true); } if ($total < PAGE_SHOW_ALL) { Registry::get('view')->assign('expand_all', true); } } else { // search page $items_per_page = Registry::get('settings.Appearance.admin_pages_per_page'); } $params['add_root'] = !empty($_REQUEST['root']) ? $_REQUEST['root'] : ''; $params['simple'] = true; list($pages, $params) = fn_get_pages($params, $items_per_page); Registry::get('view')->assign('pages_tree', $pages); Registry::get('view')->assign('search', $params); if (empty($params['full_search'])) { Registry::get('view')->assign('page_types', fn_get_page_type_filter($page_type)); } else { Registry::get('view')->assign('page_types', fn_get_page_object_by_type()); } Registry::get('view')->assign('is_exclusive_page_type', fn_is_exclusive_page_type($page_type)); if (!empty($_REQUEST['except_id'])) { Registry::get('view')->assign('except_id', $_REQUEST['except_id']); } if (fn_show_picker('pages', PAGE_THRESHOLD) == false) { $params = array('page_type' => fn_is_exclusive_page_type($page_type) ? $page_type : ''); Registry::get('view')->assign('parent_pages', fn_get_pages_plain_list($params)); }
* and use this program. * * * **************************************************************************** * PLEASE READ THE FULL TEXT OF THE SOFTWARE LICENSE AGREEMENT IN THE * * "copyright.txt" FILE PROVIDED WITH THIS DISTRIBUTION PACKAGE. * ****************************************************************************/ use Tygh\Registry; if (!defined('BOOTSTRAP')) { die('Access denied'); } if ($_SERVER['REQUEST_METHOD'] == 'POST') { return; } if ($mode == 'view') { $page_data = Tygh::$app['view']->getTemplateVars('page'); if ($page_data['page_type'] == PAGE_TYPE_PROJECTS) { list($subpages, $search) = fn_get_pages(array('parent_id' => $page_data['page_id'], 'page' => !empty($_REQUEST['page']) ? $_REQUEST['page'] : 0, 'page_type' => PAGE_TYPE_PROJECTS, 'get_image' => true, 'status' => 'A', 'sort_by' => 'timestamp', 'sort_order' => 'desc'), Registry::get('settings.Appearance.elements_per_page')); if (!empty($subpages)) { foreach ($subpages as &$subpage) { $subpage['discussion'] = fn_get_discussion($subpage['page_id'], 'A', true); //fn_print_die($subpage['page_id'],$discussion); } } else { $page_data['discussion'] = fn_get_discussion($page_data['page_id'], 'A', true); } //fn_print_die($discussion,$page_data,$subpages); Tygh::$app['view']->assign('page', $page_data); Tygh::$app['view']->assign('subpages', $subpages); Tygh::$app['view']->assign('search', $search); } }
/** * Creates condition for page search * * @param array $params List of search parameters * @param string $lang_code 2-letter language code * @return array Prepared data */ function fn_create_pages_condition($params, $lang_code = CART_LANGUAGE) { /** * Modify search parameters defined in fn_search_register_object * * @param array $params List of search parameters * @param string $lang_code 2-letter language code */ fn_set_hook('create_pages_condition_pre', $params, $lang_code); $params['get_conditions'] = true; if (AREA != 'A') { $params['status'] = 'A'; } list($fields, $join, $condition) = fn_get_pages($params, $lang_code); if (fn_allowed_for('ULTIMATE') && AREA == 'C' && Registry::get('runtime.company_id')) { $condition .= db_quote(' AND ?:pages.company_id = ?i', Registry::get('runtime.company_id')); } $data = array('fields' => $fields, 'join' => $join, 'condition' => $condition, 'table' => '?:pages', 'key' => 'page_id', 'sort' => '?:page_descriptions.page', 'sort_table' => 'page_descriptions'); /** * Modify prepared data * * @param array $params List of search parameters * @param string $lang_code 2-letter language code * @param array $data Result search scheme */ fn_set_hook('create_pages_condition_post', $params, $lang_code, $data); return $data; }
/** * @param array $search Request search params * @param string $query SQL query * @dataProvider getPagesQueries */ public function testGetPagesFunc($search, $query) { $this->app['db.driver']->expects($this->once())->method('query')->with($query); fn_get_pages($search); }
function fn_google_sitemap_get_content($map_page = 0) { $sitemap_settings = Registry::get('addons.google_sitemap'); $location = fn_get_storefront_url(fn_get_storefront_protocol()); $lmod = date("Y-m-d", TIME); // HEAD SECTION $simple_head = <<<HEAD <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> HEAD; $simple_foot = <<<FOOT </urlset> FOOT; $index_map_url = <<<HEAD <url> <loc>{$location}/</loc> <lastmod>{$lmod}</lastmod> <changefreq>{$sitemap_settings['site_change']}</changefreq> <priority>{$sitemap_settings['site_priority']}</priority> </url> HEAD; // END HEAD SECTION $parts = 0; if ($sitemap_settings['include_categories'] == "Y") { $parts++; $get_categories = true; } if ($sitemap_settings['include_products'] == "Y") { $parts++; $get_products = true; } if ($sitemap_settings['include_pages'] == "Y") { $parts++; $get_pages = true; } if ($sitemap_settings['include_extended'] == "Y") { $parts++; $get_features = true; } if (fn_allowed_for('MULTIVENDOR') && $sitemap_settings['include_companies'] == 'Y') { $parts++; $get_companies = true; } fn_set_progress('parts', $parts); // SITEMAP CONTENT $link_counter = 1; $file_counter = 1; $sitemap_path = fn_get_files_dir_path(false) . 'google_sitemap/'; fn_rm($sitemap_path); fn_mkdir($sitemap_path); $file = fopen($sitemap_path . 'sitemap' . $file_counter . '.xml', "wb"); fwrite($file, $simple_head . $index_map_url); $languages = db_get_hash_single_array("SELECT lang_code, name FROM ?:languages WHERE status = 'A'", array('lang_code', 'name')); if (!empty($get_categories)) { $categories = db_get_fields("SELECT category_id FROM ?:categories WHERE FIND_IN_SET(?i, usergroup_ids) AND status = 'A' ?p", USERGROUP_ALL, fn_get_google_sitemap_company_condition('?:categories.company_id')); fn_set_progress('step_scale', count($categories)); //Add the all active categories foreach ($categories as $category) { $links = fn_google_sitemap_generate_link('category', $category, $languages); $item = fn_google_sitemap_print_item_info($links, $lmod, $sitemap_settings['categories_change'], $sitemap_settings['categories_priority']); fn_google_sitemap_check_counter($file, $link_counter, $file_counter, $links, $simple_head, $simple_foot, 'categories'); fwrite($file, $item); } } if (!empty($get_products)) { $total = ITEMS_PER_PAGE; $i = 0; $params = $_REQUEST; $params['custom_extend'] = array('categories'); $params['sort_by'] = 'null'; $params['only_short_fields'] = true; // NEEDED ONLY FOR NOT TO LOAD UNNECESSARY FIELDS FROM DB $params['area'] = 'C'; $original_auth = $_SESSION['auth']; $_SESSION['auth'] = fn_fill_auth(array(), array(), false, 'C'); fn_set_progress('step_scale', db_get_field("SELECT COUNT(*) FROM ?:products WHERE status = 'A'")); while ($params['pid'] = db_get_fields("SELECT product_id FROM ?:products WHERE status = 'A' ORDER BY product_id ASC LIMIT {$i}, {$total}")) { $i += $total; list($products) = fn_get_products($params, ITEMS_PER_PAGE); foreach ($products as $product) { $links = fn_google_sitemap_generate_link('product', $product['product_id'], $languages); $item = fn_google_sitemap_print_item_info($links, $lmod, $sitemap_settings['products_change'], $sitemap_settings['products_priority']); fn_google_sitemap_check_counter($file, $link_counter, $file_counter, $links, $simple_head, $simple_foot, 'products'); fwrite($file, $item); } } unset($products); $_SESSION['auth'] = $original_auth; } if (!empty($get_pages)) { $page_types = fn_get_page_object_by_type(); unset($page_types[PAGE_TYPE_LINK]); list($pages) = fn_get_pages(array('simple' => true, 'status' => 'A', 'page_type' => array_keys($page_types))); fn_set_progress('step_scale', count($pages)); //Add the all active pages foreach ($pages as $page) { $links = fn_google_sitemap_generate_link('page', $page['page_id'], $languages, $page); $item = fn_google_sitemap_print_item_info($links, $lmod, $sitemap_settings['pages_change'], $sitemap_settings['pages_priority']); fn_google_sitemap_check_counter($file, $link_counter, $file_counter, $links, $simple_head, $simple_foot, 'pages'); fwrite($file, $item); } } if (!empty($get_features)) { $vars = db_get_fields("SELECT ?:product_feature_variants.variant_id FROM ?:product_feature_variants " . "LEFT JOIN ?:product_features ON (?:product_feature_variants.feature_id = ?:product_features.feature_id) " . "WHERE ?:product_features.feature_type = ?s AND ?:product_features.status = 'A'", ProductFeatures::EXTENDED); fn_set_progress('step_scale', count($vars)); //Add the all active extended features foreach ($vars as $var) { $links = fn_google_sitemap_generate_link('extended', $var, $languages); $item = fn_google_sitemap_print_item_info($links, $lmod, $sitemap_settings['extended_change'], $sitemap_settings['extended_priority']); fn_google_sitemap_check_counter($file, $link_counter, $file_counter, $links, $simple_head, $simple_foot, 'features'); fwrite($file, $item); } } if (!empty($get_companies)) { $companies = db_get_fields("SELECT company_id FROM ?:companies WHERE status = 'A' ?p", fn_get_google_sitemap_company_condition('?:companies.company_id')); fn_set_progress('step_scale', count($companies)); if (!empty($companies)) { foreach ($companies as $company_id) { $links = fn_google_sitemap_generate_link('companies', $company_id, $languages); $item = fn_google_sitemap_print_item_info($links, $lmod, $sitemap_settings['companies_change'], $sitemap_settings['companies_priority']); fn_google_sitemap_check_counter($file, $link_counter, $file_counter, $links, $simple_head, $simple_foot, 'companies'); fwrite($file, $item); } } } fn_set_hook('sitemap_item', $sitemap_settings, $file, $lmod, $link_counter, $file_counter); fwrite($file, $simple_foot); fclose($file); if ($file_counter == 1) { fn_rename($sitemap_path . 'sitemap' . $file_counter . '.xml', $sitemap_path . 'sitemap.xml'); } else { // Make a map index file $maps = ''; $seo_enabled = Registry::get('addons.seo.status') == 'A' ? true : false; for ($i = 1; $i <= $file_counter; $i++) { if ($seo_enabled) { $name = $location . '/sitemap' . $i . '.xml'; } else { $name = fn_url('xmlsitemap.view?page=' . $i, 'C', fn_get_storefront_protocol()); } $name = htmlentities($name); $maps .= <<<MAP <sitemap> <loc>{$name}</loc> <lastmod>{$lmod}</lastmod> </sitemap> MAP; } $index_map = <<<HEAD <?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> {$maps} </sitemapindex> HEAD; $file = fopen($sitemap_path . 'sitemap.xml', "wb"); fwrite($file, $index_map); fclose($file); } fn_set_notification('N', __('notice'), __('google_sitemap.map_generated')); exit; }
function fn_create_pages_condition($params, $lang_code = CART_LANGUAGE) { $params['get_conditions'] = true; if (AREA != 'A') { $params['status'] = 'A'; } list($fields, $join, $condition) = fn_get_pages($params, $lang_code); $data = array('fields' => $fields, 'join' => $join, 'condition' => $condition, 'table' => '?:pages', 'key' => 'page_id', 'sort' => '?:page_descriptions.page', 'sort_table' => 'page_descriptions'); return $data; }
/** * Creates condition for page search * * @param array $params List of search parameters * @param string $lang_code 2-letter language code * @return array Prepared data */ function fn_create_pages_condition($params, $lang_code = CART_LANGUAGE) { /** * Modify search parameters defined in fn_search_register_object * * @param array $params List of search parameters * @param string $lang_code 2-letter language code */ fn_set_hook('create_pages_condition_pre', $params, $lang_code); $params['get_conditions'] = true; if (AREA != 'A') { $params['status'] = 'A'; } list($fields, $join, $condition) = fn_get_pages($params, $lang_code); $data = array('fields' => $fields, 'join' => $join, 'condition' => $condition, 'table' => '?:pages', 'key' => 'page_id', 'sort' => '?:page_descriptions.page', 'sort_table' => 'page_descriptions'); /** * Modify prepared data * * @param array $params List of search parameters * @param string $lang_code 2-letter language code * @param array $data Result search scheme */ fn_set_hook('create_pages_condition_post', $params, $lang_code, $data); return $data; }