Перейти к содержанию
Форум поддержки пользователей VamShop

Открытие меню категорий на один уровень


Рекомендуемые сообщения

Решал для себя такую задачу: открытие меню категорий на один уровень (т.е. чтобы были видны категории нулевого и первого уровня). Решается все это добавлением в файл templates/vamshop/source/boxes/categories.php после цикла прохода категорий первого уровня

while ($categories = vam_db_fetch_array($categories_query, true)) {


$foo[$categories['categories_id']] = array ('name' => $categories['categories_name'], 'parent' => $categories['parent_id'], 'level' => 0, 'path' => $categories['categories_id'], 'next_id' => false);

if (isset ($prev_id)) {
$foo[$prev_id]['next_id'] = $categories['categories_id'];
}

$prev_id = $categories['categories_id'];

if (!isset ($first_element)) {
$first_element = $categories['categories_id'];
}

}[/code] следующего кода
[code]/* Раскрыть на несколько уровней  by Alexander Pervak*/
$safe_foo=$foo;
foreach ($safe_foo as $key_c=>$category){
$value=$key_c;

unset ($prev_id);
unset ($first_id);
$categories_query = "select c.categories_id, cd.categories_name, c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd where c.categories_status = '1' and c.parent_id = '".$value."' ".$group_check." and c.categories_id = cd.categories_id and cd.language_id='".$_SESSION['languages_id']."' order by sort_order, cd.categories_name";
$categories_query = vamDBquery($categories_query);
$category_check = vam_db_num_rows($categories_query, true);
if ($category_check > 0) {
$new_path .= $value;
while ($row = vam_db_fetch_array($categories_query, true)) {

$foo[$row['categories_id']] = array ('name' => $row['categories_name'], 'parent' => $row['parent_id'], 'level' => $key +1, 'path' => $new_path.'_'.$row['categories_id'], 'next_id' => false);

if (isset ($prev_id)) {
$foo[$prev_id]['next_id'] = $row['categories_id'];
}

$prev_id = $row['categories_id'];

if (!isset ($first_id)) {
$first_id = $row['categories_id'];
}

$last_id = $row['categories_id'];
}
$foo[$last_id]['next_id'] = $foo[$value]['next_id'];
$foo[$value]['next_id'] = $first_id;
$new_path .= '_';
} else {
continue;
}
}

if ($cPath) {
$new_path = '';
$id = split('_', $cPath);
reset($id);
}

/* END Раскрыть на несколько уровней  by Alexander Pervak*/
Исходное условие if($cPath)... надо закомментировать или удалить
/*
if ($cPath) {
$new_path = '';
$id = split('_', $cPath);
reset($id);
while (list ($key, $value) = each($id)) {

unset ($prev_id);
unset ($first_id);
$categories_query = "select c.categories_id, cd.categories_name, c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd where c.categories_status = '1' and c.parent_id = '".$value."' ".$group_check." and c.categories_id = cd.categories_id and cd.language_id='".$_SESSION['languages_id']."' order by sort_order, cd.categories_name";
$categories_query = vamDBquery($categories_query);
$category_check = vam_db_num_rows($categories_query, true);
if ($category_check > 0) {
$new_path .= $value;
while ($row = vam_db_fetch_array($categories_query, true)) {

$foo[$row['categories_id']] = array ('name' => $row['categories_name'], 'parent' => $row['parent_id'], 'level' => $key +1, 'path' => $new_path.'_'.$row['categories_id'], 'next_id' => false);

if (isset ($prev_id)) {
$foo[$prev_id]['next_id'] = $row['categories_id'];
}

$prev_id = $row['categories_id'];

if (!isset ($first_id)) {
$first_id = $row['categories_id'];
}

$last_id = $row['categories_id'];
}
$foo[$last_id]['next_id'] = $foo[$value]['next_id'];
$foo[$value]['next_id'] = $first_id;
$new_path .= '_';
} else {
break;
}
}
}
*/[/code]

Может, тема больше к шаблонам, Саша перенесешь если что ))

Ссылка на сообщение
Поделиться на другие сайты

т.е. что б бокс Разделы не открывался выше первого уровня?!

Спасибо за решение, перенёс в шаблоны.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...