Дерево категорий всегда раскрыто?

Тема в разделе "WebAsyst", создана пользователем b00ch, 25 янв 2011.

Модераторы: mdss
  1. b00ch

    b00ch Создатель

    Регистр.:
    2 ноя 2008
    Сообщения:
    46
    Симпатии:
    0
    Вот возникла проблема. Как сделать так что бы дерево категорий было всегда раскрыто? то есть были отображены категории и под категории
     
  2. Porsche71

    Porsche71 Постоялец

    Регистр.:
    23 май 2010
    Сообщения:
    81
    Симпатии:
    28
    Меня тоже интересует этот вопрос.Ответьте пожалуйста,очень бы пригодилось.
     
  3. alexandr3182

    alexandr3182

    Регистр.:
    5 фев 2008
    Сообщения:
    226
    Симпатии:
    12
    http://forum.webasyst.ru/viewtopic.php?id=5115 - не забывате пользоваться поиском, господа.
     
  4. jobantar

    jobantar Создатель

    Регистр.:
    25 янв 2011
    Сообщения:
    47
    Симпатии:
    1
    почти все наоборот, а как сделать чтоб наоборот не открывались подкатегории? Чтоб было только категории первого уровня?
     
  5. alexandr3182

    alexandr3182

    Регистр.:
    5 фев 2008
    Сообщения:
    226
    Симпатии:
    12
    Из первых 2-ух функций удали этот код: return $disp;

    а вот как сделать так что б именно в некоторых категориях 2-3 нужных, меню категорий не раскрывалось.
     
  6. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.266
    Через условие, в котором указать ID разделов

    пример
    PHP:
    if(categoryID($disp 8,15,43))
    не открывать
    else
    открыть
     
  7. Djutan

    Djutan Создатель

    Регистр.:
    29 янв 2011
    Сообщения:
    21
    Симпатии:
    8
    Нужно внести небольшие изменения в 2 функции: catGetCategoryCompactCList() и _recursiveGetCategoryCompactCList() (файл category_functions.php).

    Функция catGetCategoryCompactCList():
    HTML:
    function catGetCategoryCompactCList( $selectedCategoryID )
    {
    	$path = catCalculatePathToCategory( $selectedCategoryID );
    	$res = array();
    	$res[] = array( "categoryID" => 1, "parent" => null, 
    					"name" => translate("prdcat_category_root"), "level" => 0 );
    	$q = db_query( "select categoryID, slug, parent, ".LanguagesManager::sql_prepareField('name')." AS name from ".CATEGORIES_TABLE.
    				" where parent=1 ".
    				" order by sort_order, name " );
    	while( $row = db_fetch_row($q) )
    	{
    		$row["level"] = 1;
    		$res[] = $row;
    		if ( count($path) > 1 )                       //<-- здесь убираем
    		{                                             //<-- здесь убираем
    			if ( $row["categoryID"] == $path[1]["categoryID"] ) //<-- здесь убираем
    			{                                     //<-- здесь убираем
    				$array = _recursiveGetCategoryCompactCList( $row["categoryID"], 2 );   // <-- здесь меняем $path на $row["categoryID"]
    				foreach( $array as $val )
    					$res[] = $val;
    			}                                     //<-- здесь убираем
    		}                                             //<-- здесь убираем
    	}
    	return $res;
    }
    Функция _recursiveGetCategoryCompactCList():
    HTML:
    function _recursiveGetCategoryCompactCList( $categoryID, $level ) // <-- здесь меняем $path на $categoryID
    {
    	$q = db_query( "select categoryID, parent, slug, ".LanguagesManager::sql_prepareField('name')." AS name from ".CATEGORIES_TABLE.
    				" where parent=".$categoryID." order by sort_order, name " ); // <-- здесь меняем $path[$level-1]["categoryID"] на $categoryID
    	$res = array();
    	$selectedCategoryID = null;
    	while( $row=db_fetch_row($q) )
    	{
    		$row["level"] = $level;
    		$res[] = $row;
    		if ( $level <= count($path)-1 )                //<-- здесь убираем
    		{                                              //<-- здесь убираем
    			if ( (int)$row["categoryID"] == (int)$path[$level]["categoryID"] ) //<-- здесь убираем
    			{                                      //<-- здесь убираем
    				$selectedCategoryID = $row["categoryID"];
    				$array = _recursiveGetCategoryCompactCList( $selectedCategoryID, $level+1 );// <-- здесь меняем $path на $selectedCategoryID
    				foreach( $array as $val )
    					$res[] = $val;
    			}                                      //<-- здесь убираем
    		}                                              //<-- здесь убираем
    	}
     	return $res;
    }
     
  8. b00ch

    b00ch Создатель

    Регистр.:
    2 ноя 2008
    Сообщения:
    46
    Симпатии:
    0
    Все сделал как написано ..что то не вышло (( открыты 1 категория и при нажатия на любую категорию не вылазит под категория
     
  9. Djutan

    Djutan Создатель

    Регистр.:
    29 янв 2011
    Сообщения:
    21
    Симпатии:
    8
    Ну там собственно нечему не работать, все очень просто и тупо. Проверте код, некоторые комментарии ушли за правую часть редактора. Если не получится пишите в личку.
     
  10. saracen_d

    saracen_d Постоялец

    Регистр.:
    22 сен 2010
    Сообщения:
    123
    Симпатии:
    11
    Подскажите пожалуйста, как сделать так, что бы заходя в подкатегорию, вниз выпадал список товара из данной подкатегории, что бы можно было выбирать товар не делая переходы по страницам, что существенно разгружает сервер.