(?): полное отображение категорий + подкатегорий

Тема в разделе "Shop-script", создана пользователем Anna_Moonla, 17 ноя 2008.

Статус темы:
Закрыта.
  1. Anna_Moonla

    Anna_Moonla Писатель

    Регистр.:
    26 авг 2008
    Сообщения:
    9
    Симпатии:
    0
    Здравствуйте.

    Хотела бы спросить у компетентных пользователей SS Premium один нюанс.

    По умолчанию в блоке отображения категорий {include file="category_tree.tpl.html"} -
    Магазин выводит список заглавных *Категориий*
    Например:

    - Сумки

    - Ремни

    - Кошельки

    и т.д.

    Как мне сделать так что бы по умолчанию магазин выводил еще и подкатегории для наглядности.
    Например так:

    Сумки
    -- Фирма 1
    -- Фирма 2
    -- Фирма 3

    Ремни
    -- Фирма 1
    -- Фирма 2
    -- Фирма 3

    Кошельки
    -- Фирма 1
    -- Фирма 2
    -- Фирма 3

    и т.д...

    Я так понимаю нужно где то переделать запрос к БД, но как - я не ведаю...

    Если кто сталкивался с такой надобностью - помогите коль не затруднит, ибо я в программировании слаба... sad

    Заранее благодарю если кто сможет подсказать...
     
  2. nafanyaa

    nafanyaa

    Регистр.:
    23 авг 2006
    Сообщения:
    286
    Симпатии:
    170
    В файле category_tree.tpl.html
    заменить всю секцию
    section на код, подобный

    PHP:
    {section name=i loop=$categories_tree}
     <
    a href="index.php?categoryID={$root_categories[i][0]}class="menu01">{$root_categories[i][1]}</a><br>
     {
    assign var="tmp" value=0}
      {
    section name=j loop=$root_categories_subs}
      {if 
    $root_categories_subs[j][3] == $root_categories[i][0]}
       --{if 
    $tmp == 1}
       {else}{
    assign var="tmp" value=1}
       {/if}
      <
    class="menu03" href="index.php?categoryID={$root_categories_subs[j][0]}class=standard title="<h1>{$root_categories_subs[j][1]}">{$root_categories_subs[j][1]}</a><br>
      {/if}
      {/
    section}
    {/
    section}
     
    стили class="menu01"
    class="menu03"
    заменить на свои или убрать
    зы: чтобы более подробно описать, нужно увидеть ваш category_tree.tpl.html;)
     
    handball14 нравится это.
  3. alexandr3182

    alexandr3182

    Регистр.:
    5 фев 2008
    Сообщения:
    226
    Симпатии:
    12
    т.е. чтоб категории постоянно были открыты?
     
  4. Magerik

    Magerik Прохожие

    в общем использовать надо двухмерные массивы $root_categories[][] - это корневые категории и $root_categories_subs[][] в нём находятся все категории, которые которые находятся под корневыми

    ну в общем, бегаешь по ним циклами и выводишь всё что надо.

    примерна понятна?
     
  5. Anna_Moonla

    Anna_Moonla Писатель

    Регистр.:
    26 авг 2008
    Сообщения:
    9
    Симпатии:
    0
    Неа, не понятна :nezn:

    В вышеупомянутый код от nafanyaa - я вставила в category_tree.tpl
    Выводится пустота.

    Точный расклад моих категорий таков

    Категория 1

    *подкатегория(2-й уровень) 1
    - подкатегория(3-й уровень) 1
    - подкатегория(3-й уровень) 2
    - подкатегория(3-й уровень) 3

    *подкатегория(2-й уровень) 2
    *подкатегория(2-й уровень) 3
    *подкатегория(2-й уровень) 4
    *подкатегория(2-й уровень) 5

    ------------------
    Категория 2

    *подкатегория(2-й уровень) 1
    *подкатегория(2-й уровень) 2
    *подкатегория(2-й уровень) 3

    ------------------
    Категория 3

    *подкатегория(2-й уровень) 1
    *подкатегория(2-й уровень) 2
    *подкатегория(2-й уровень) 3
    *подкатегория(2-й уровень) 4


    Нужно чтобы по умолчанияю выводились все главные категории и их подкатегории 2-го уровня.
     
  6. nafanyaa

    nafanyaa

    Регистр.:
    23 авг 2006
    Сообщения:
    286
    Симпатии:
    170
    PHP:
    если хотитечтобы вам помогли,
    приведите пример своего кода 
    откуда нам знать что у вас в category_tree.tpl :mad:
     
  7. handball14

    handball14 Писатель

    Регистр.:
    1 дек 2008
    Сообщения:
    4
    Симпатии:
    1
    Код:
    <ul>
    {section name=i loop=$root_categories}
    {* show sub categories *}
    {assign var="tmp" value=0}
    {section name=j loop=$root_categories_subs}
    {if $root_categories_subs[j][3] == $root_categories[i][0]}
    <li><a href="index.php?categoryID={$root_categories[i][0]}" class="cat">{$root_categories[i][1]}</a>
    {if $tmp == 1}
    {else}
    {assign var="tmp" value=1}
    <ul>
    {/if}
    <li><a href="index.php?categoryID={$root_categories_subs[j][0]}" class="subcat">{$root_categories_subs[j][1]}</a></li>
    {else}
    <li>{$root_categories[i][1]}
    {/if}
    {/section}
    </ul>
    </li>
    {/section}
    </ul>
    
    классы cat и subcat прописать в css должно работать
     
  8. fominsa

    fominsa

    Регистр.:
    12 фев 2008
    Сообщения:
    234
    Симпатии:
    229
    походу модем 14400 тебя так и не научил терпению. Какая разница что у нее в category_tree.tpl? не каких зверей там быть не может если бы она смога бы поменять переменые в шаблоне я тебя уверяю она бы не спрашивала как сделать ей вывод категорий....
     
  9. nafanyaa

    nafanyaa

    Регистр.:
    23 авг 2006
    Сообщения:
    286
    Симпатии:
    170
    Походу тесты на уязвимости научили тебя колкости:D.
    Я выше привел пример с изменением стандартного шаблона, и если у Анны выводиться пустота, вследствии , у нее измененный шаблон вывода дерева категорий...
     
  10. Panterka07

    Panterka07 Постоялец

    Регистр.:
    20 мар 2009
    Сообщения:
    125
    Симпатии:
    7
    Подскажите, плз, а как нечто подобное сделать на стр. категорий category.tpl?
    Т.е. нужно чтобы на странице категорий, при наличии подкатегорий 2-го уровня, они отображались. По умолчанию они отображаются только на самой странице подкатегории, а нужно - на стр. категории.
    Код по умолчанию, отвечающий за этот вывод:
    Код:
    {* show subcategories *}
    {section name=i loop=$subcategories_to_be_shown}
    <a class=standard href="index.php?categoryID={$subcategories_to_be_shown[i][0]}">{$subcategories_to_be_shown[i][1]}</a>
    ({$subcategories_to_be_shown[i][2]})<br>
    {/section}
    Пробовала сделать по аналогии с вышеупомянутыми примерами, но ерунда какая то получается..
     
Статус темы:
Закрыта.