pervak 1 Опубликовано 23 декабря, 2007 Жалоба Share Опубликовано 23 декабря, 2007 Решал для себя такую задачу: открытие меню категорий на один уровень (т.е. чтобы были видны категории нулевого и первого уровня). Решается все это добавлением в файл 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]Может, тема больше к шаблонам, Саша перенесешь если что )) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 декабря, 2007 Жалоба Share Опубликовано 23 декабря, 2007 т.е. что б бокс Разделы не открывался выше первого уровня?! Спасибо за решение, перенёс в шаблоны. Ссылка на сообщение Поделиться на другие сайты
pervak 1 Опубликовано 23 декабря, 2007 Автор Жалоба Share Опубликовано 23 декабря, 2007 Да, именно так. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 декабря, 2007 Жалоба Share Опубликовано 23 декабря, 2007 Понял, спасибо большое. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения