function vam_show_category($counter) { global $foo, $categories_string, $id; $categories_string .= '<li class="CatLevel' . $foo[$counter]['level'] . ''; if ($id && in_array($counter, $id)) { $categories_string .= ' Current">'; } else { $categories_string .= '">'; } $categories_string .= '<a href="'; $cPath_new = vam_category_link($counter, $foo[$counter]['name']); $categories_string .= vam_href_link(FILENAME_DEFAULT, $cPath_new); $categories_string .= '">'; // display category name $categories_string .= $foo[$counter]['name']; if (SHOW_COUNTS == 'true') { $products_in_category = vam_count_products_in_category($counter); if ($products_in_category > 0) { $categories_string .= ' (' . $products_in_category . ')'; } } $categories_string .= '</a></li>'; if ($foo[$counter]['next_id']) { vam_show_category($foo[$counter]['next_id']); } else { $categories_string .= ''; } }
function get_category_tree($parent_id = '0', $spacing = '', $exclude = '', $category_tree_array = '', $include_itself = false, $cPath = '') { if ($parent_id == 0) { $cPath = ''; } else { $cPath .= $parent_id . '_'; } if (!is_array($category_tree_array)) { $category_tree_array = array(); } if (sizeof($category_tree_array) < 1 && $exclude != '0') { $category_tree_array[] = array('id' => '0', 'text' => TEXT_TOP); } if ($include_itself) { $category_query = "select cd.categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " cd where cd.language_id = '" . $_SESSION['languages_id'] . "' and c.categories_status = '1' and cd.categories_id = '" . $parent_id . "'"; $category_query = vamDBquery($category_query); $category = vam_db_fetch_array($category_query, true); $category_tree_array[] = array('id' => $parent_id, 'text' => $category['categories_name']); } $categories_query = "select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.language_id = '" . $_SESSION['languages_id'] . "' and c.parent_id = '" . $parent_id . "' and c.categories_status = '1' order by c.sort_order, cd.categories_name"; $categories_query = vamDBquery($categories_query); while ($categories = vam_db_fetch_array($categories_query, true)) { $SEF_link = vam_href_link(FILENAME_DEFAULT, vam_category_link($categories['categories_id'], $categories['categories_name'])); if ($exclude != $categories['categories_id']) { $category_tree_array[] = array('id' => $categories['categories_id'], 'text' => $spacing . $categories['categories_name'], 'link' => $SEF_link); } $category_tree_array = get_category_tree($categories['categories_id'], $spacing . ' ', $exclude, $category_tree_array, false, $cPath); } return $category_tree_array; }
} output(SITEMAP_HEADER); $strlen = strlen(SITEMAP_HEADER); $cat_result = vam_db_query("\n SELECT\n c.categories_id,\n c.parent_id,\n cd.language_id,\n cd.categories_name,\n UNIX_TIMESTAMP(c.date_added) as date_added,\n UNIX_TIMESTAMP(c.last_modified) as last_modified,\n l.code\n FROM \n " . TABLE_CATEGORIES . " c,\n " . TABLE_CATEGORIES_DESCRIPTION . " cd,\n " . TABLE_LANGUAGES . " l\n WHERE c.categories_status = '1' and cd.language_id = '" . $_SESSION['languages_id'] . "' and \n c.categories_id = cd.categories_id AND\n cd.language_id = l.languages_id\n ORDER by \n cd.categories_id\n "); $cat_array = array(); if (vam_db_num_rows($cat_result) > 0) { while ($cat_data = vam_db_fetch_array($cat_result)) { $cat_array[$cat_data['categories_id']][$cat_data['code']] = $cat_data; } } reset($cat_array); foreach ($cat_array as $lang_array) { foreach ($lang_array as $cat_id => $cat_data) { $lang_param = $cat_data['code'] != DEFAULT_LANGUAGE ? '&language=' . $cat_data['code'] : ''; $date = $cat_data['last_modified'] != NULL ? $cat_data['last_modified'] : $cat_data['date_added']; $string = sprintf(SITEMAP_ENTRY, htmlspecialchars(utf8_encode(vam_href_link(FILENAME_DEFAULT, vam_category_link($cat_data['categories_id'], $cat_data['categories_name']), 'NONSSL', false, SEARCH_ENGINE_FRIENDLY_URLS))), PRIORITY_CATEGORIES, iso8601_date($date), CHANGEFREQ_CATEGORIES); output($string); $strlen += strlen($string); $c++; if ($autogenerate) { // 500000 entrys or filesize > 10,485,760 - some space for the last entry if ($c == MAX_ENTRYS || $strlen >= MAX_SIZE) { output(SITEMAP_FOOTER); $function_close($fp); $c = 0; $i++; $fp = $function_open('sitemap' . $i . $file_extension, 'w'); output(SITEMAP_HEADER); $strlen = strlen(SITEMAP_HEADER); } }
function vam_rss_category_tree($id_parent = 0, $cPath = '', $limit = null) { global $db, $rss; if ($limit != null && $limit < 0) { return; } if ($limit != null) { $limit--; } $groups_cat_query = vam_db_query("select c.categories_id, c.parent_id, c.date_added, c.last_modified, c.categories_image, cd.categories_name, cd.categories_description\n\t\t\t\t\t\t\t\t\t\t\t from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd\n\t\t\t\t\t\t\t\t\t\t\t where c.parent_id = '" . (int) $id_parent . "'\n\t\t\t\t\t\t\t\t\t\t\t and c.categories_id = cd.categories_id\n\t\t\t\t\t\t\t\t\t\t\t and cd.language_id='" . (int) $_SESSION['languages_id'] . "'\n\t\t\t\t\t\t\t\t\t\t\t and c.categories_status= '1'\n\t\t\t\t\t\t\t\t\t\t\t order by c.sort_order, cd.categories_name"); if (vam_db_num_rows($groups_cat_query) == 0) { return; } while ($groups_cat = vam_db_fetch_array($groups_cat_query)) { $link_categories = addslashes(vam_href_link(FILENAME_DEFAULT, vam_category_link($groups_cat['categories_id'], $groups_cat['categories_name']) . (isset($_GET['ref']) ? '&ref=' . $_GET['ref'] : null), 'NONSSL', false)); $products_in_category = vam_count_products_in_category($groups_cat['categories_id']); if (CATEGORIES_COUNT_ZERO == '1' && $products_in_category == 0 or $products_in_category >= 1) { $rss->rss_feed_item($groups_cat['categories_name'], $link_categories, $link_categories, date('r', strtotime(max($groups_cat['date_added'], $groups_cat['last_modified']))), $groups_cat['categories_description'], $groups_cat['categories_image'], false, STORE_OWNER_EMAIL_ADDRESS . " (" . STORE_OWNER . ")"); } if (vam_has_category_subcategories($groups_cat['categories_id'])) { vam_rss_category_tree($groups_cat['categories_id'], vam_not_null($cPath) ? $cPath . '_' . $groups_cat['categories_id'] : $groups_cat['categories_id'], $limit); // следующая группа } // $groups_cat->MoveNext(); } }
$list = select_from_array(0); vam_show_top2level_category($list); // вывод двух первых уровней каталога $box->assign('BOX_CONTENT', '<ul id="CatNavi">' . $categories_string . '</ul>'); } //------------ подкатегории на главной <<<<< } else { // вывод всех подкатегорий выбраной категории //проверить есть ли подкатегории у выбранной категории если нету то не выводить блок $ids = preg_split('/_/', $cPath); // список id дерева категорий // заглавная категория $sql = "SELECT DISTINCT c.categories_id as id, cd.categories_name as name, c.parent_id as parent \tFROM " . TABLE_CATEGORIES . " c\n\t\t\t\tINNER JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd ON cd.categories_id = c.categories_id AND cd.language_id='" . (int) $_SESSION['languages_id'] . "'\n\t\t\tWHERE c.categories_status = '1'\tAND c.categories_id = " . $ids[0] . $group_check; $ds = vamDBquery($sql); $row = vam_db_fetch_array($ds, true); $cPath_new = vam_category_link($row['id'], $row['name']); $href = vam_href_link(FILENAME_DEFAULT, $cPath_new); $categories_string = '<li class="CatLevel0"><a href="' . $href . '"</a>' . $row['name'] . '</li>'; // каталог подкатегорий getContentNode($ids[0], 1); $box->assign('BOX_CONTENT', '<ul id="CatNavi" class="subcat">' . $categories_string . '</ul>'); } } // if !cache // set cache ID if (!$cache) { $box_categories = $box->fetch(CURRENT_TEMPLATE . '/boxes/box_categories.html'); } else { $box_categories = $box->fetch(CURRENT_TEMPLATE . '/boxes/box_categories.html', $cache_id); } $vamTemplate->assign('box_CATEGORIES', $box_categories);
// add category names or the manufacturer name to the breadcrumb trail if (isset($cPath_array)) { for ($i = 0, $n = sizeof($cPath_array); $i < $n; $i++) { if (GROUP_CHECK == 'true') { $group_check = "and c.group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } else { $group_check = ''; } $categories_query = vamDBquery("select\n\t\t\t\t cd.categories_name\n\t\t\t\t from " . TABLE_CATEGORIES_DESCRIPTION . " cd,\n\t\t\t\t " . TABLE_CATEGORIES . " c\n\t\t\t\t where cd.categories_id = '" . $cPath_array[$i] . "'\n\t\t\t\t and c.categories_id=cd.categories_id\n\t\t\t\t " . $group_check . "\n\t\t\t\t and cd.language_id='" . (int) $_SESSION['languages_id'] . "'"); if (vam_db_num_rows($categories_query, true) > 0) { $categories = vam_db_fetch_array($categories_query, true); if ($i < $n - 1) { $breadcrumb->add($categories['categories_name'], vam_href_link(FILENAME_DEFAULT, vam_category_link($cPath_array[$i], $categories['categories_name']))); } else { if ($product->isProduct()) { $breadcrumb->add($categories['categories_name'], vam_href_link(FILENAME_DEFAULT, vam_category_link($cPath_array[$i], $categories['categories_name']))); } else { $breadcrumb->add($categories['categories_name']); } } } else { break; } } } elseif (vam_not_null($_GET['manufacturers_id'])) { $manufacturers_query = vamDBquery("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int) $_GET['manufacturers_id'] . "'"); $manufacturers = vam_db_fetch_array($manufacturers_query, true); $breadcrumb->add($manufacturers['manufacturers_name'], vam_href_link(FILENAME_DEFAULT, vam_manufacturer_link((int) $_GET['manufacturers_id'], $manufacturers['manufacturers_name']))); } // add the products model/name to the breadcrumb trail if ($product->isProduct()) {
} else { if (GROUP_CHECK == 'true') { $group_check = "and c.group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } if (PRODUCT_LIST_RECURSIVE == 'true') { $recursive_check = "and c.parent_id = '" . $current_category_id . "'"; } else { $recursive_check = ""; } $categories_query = "select cd.categories_description,\n c.categories_id,\n cd.categories_name,\n cd.categories_heading_title,\n c.categories_image,\n c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd\n where c.categories_status = '1'\n and c.parent_id = '" . $current_category_id . "'\n and c.categories_id = cd.categories_id\n " . $recursive_check . "\n " . $group_check . "\n and cd.language_id = '" . (int) $_SESSION['languages_id'] . "'\n order by sort_order, cd.categories_name"; $categories_query = vamDBquery($categories_query); } $rows = 0; while ($categories = vam_db_fetch_array($categories_query, true)) { $rows++; $cPath_new = vam_category_link($categories['categories_id'], $categories['categories_name']); $width = (int) (100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%'; $image = ''; if ($categories['categories_image'] != '') { $image = DIR_WS_IMAGES . 'categories/' . $categories['categories_image']; } else { $image = DIR_WS_IMAGES . 'product_images/noimage.gif'; } $categories_content[] = array('CATEGORIES_NAME' => $categories['categories_name'], 'CATEGORIES_HEADING_TITLE' => $categories['categories_heading_title'], 'CATEGORIES_IMAGE' => $image, 'CATEGORIES_LINK' => vam_href_link(FILENAME_DEFAULT, $cPath_new), 'CATEGORIES_DESCRIPTION' => $categories['categories_description']); } $new_products_category_id = $current_category_id; include DIR_WS_MODULES . FILENAME_NEW_PRODUCTS; $featured_products_category_id = $current_category_id; include DIR_WS_MODULES . FILENAME_FEATURED; $image = ''; if ($category['categories_image'] != '') {
function getContentNode($cId, $level) { global $group_check, $categories_string; $sql = "SELECT DISTINCT c.categories_id, cd.categories_name, c.parent_id, CASE WHEN cc.categories_id = NULL THEN 0 ELSE 1 END as issub \n\t\t\tFROM " . TABLE_CATEGORIES . " c\n\t\t\t\tINNER JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd ON cd.categories_id = c.categories_id\n\t\t\t\t\tAND cd.language_id='" . (int) $_SESSION['languages_id'] . "'\n\t\t\t\tLEFT JOIN " . TABLE_CATEGORIES . " cc ON cc.parent_id = c.categories_id\n\t\t\tWHERE c.categories_status = '1'\n\t\t\t\tAND c.parent_id = " . $cId . $group_check . "\t \n\t\t\tORDER BY c.sort_order, cd.categories_name"; $ds = vamDBquery($sql); while ($categories = vam_db_fetch_array($ds, true)) { $cPath_new = vam_category_link($categories['categories_id'], $categories['categories_name']); $url = vam_href_link(FILENAME_DEFAULT, $cPath_new); $categories_string .= '<li class="CatLevel' . $level . '"><a href="' . $url . '">' . $categories['categories_name'] . '</a></li>'; if ($categories['issub'] == 1) { GetContentNode($categories['categories_id'], $level + 1); } } }
$fsk_lock = ' and p.products_fsk18!=1'; } if (GROUP_CHECK == 'true') { $group_check = " and p.group_permission_" . $_SESSION['customers_status']['customers_status_id'] . "=1 "; } $random_query = "select p.products_id,\n pd.products_name,\n p.products_price,\n p.products_tax_class_id,\n p.products_image,\n p2c.categories_id,\n p.products_vpe,\n\t\t\t\t p.products_vpe_status,\n\t\t\t\t p.products_vpe_value,\n cd.categories_name \n from \n " . TABLE_PRODUCTS . " p,\n " . TABLE_PRODUCTS_DESCRIPTION . " pd,\n " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c,\n " . TABLE_CATEGORIES_DESCRIPTION . " cd\n where p.products_status = '1' \n and p.products_id = '" . (int) $_SESSION[tracking][products_history][$random_last_viewed] . "'\n and pd.products_id = '" . (int) $_SESSION[tracking][products_history][$random_last_viewed] . "'\n and p2c.products_id = '" . (int) $_SESSION[tracking][products_history][$random_last_viewed] . "'\n and pd.language_id = '" . $_SESSION['languages_id'] . "'\n and cd.categories_id = p2c.categories_id\n " . $group_check . "\n " . $fsk_lock . "\n and cd.language_id = '" . $_SESSION['languages_id'] . "'"; $random_query = vamDBquery($random_query); $random_product = vam_db_fetch_array($random_query, true); $random_products_price = $vamPrice->GetPrice($random_product['products_id'], $format = true, 1, $random_product['products_tax_class_id'], $random_product['products_price']); $category_path = vam_get_path($random_product['categories_id']); if ($random_product['products_name'] != '') { $box->assign('box_content', $product->buildDataArray($random_product)); $box->assign('MY_PAGE', 'TEXT_MY_PAGE'); $box->assign('WATCH_CATGORY', 'TEXT_WATCH_CATEGORY'); $box->assign('MY_PERSONAL_PAGE', vam_href_link(FILENAME_ACCOUNT)); $box->assign('CATEGORY_LINK', vam_href_link(FILENAME_DEFAULT, vam_category_link($random_product['categories_id'], $random_product['categories_name']))); $box->assign('CATEGORY_NAME', $random_product['categories_name']); $box->assign('language', $_SESSION['language']); // set cache ID if (!CacheCheck()) { $box->caching = 0; $box_last_viewed = $box->fetch(CURRENT_TEMPLATE . '/boxes/box_last_viewed.html'); } else { $box->caching = 1; $box->cache_lifetime = CACHE_LIFETIME; $box->cache_modified_check = CACHE_CHECK; $cache_id = $_SESSION['language'] . $random_product['products_id'] . $_SESSION['customers_status']['customers_status_name']; $box_last_viewed = $box->fetch(CURRENT_TEMPLATE . '/boxes/box_last_viewed.html', $cache_id); } $vamTemplate->assign('box_LAST_VIEWED', $box_last_viewed); }