Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#1 04-12-2007 19:42:51

raivilion
живёте
Откуда: Екатеринбург
Зарегистрирован: 14-02-2007
Сообщений: 86

Вывод статей из подкатегории при выборе категории.

Возник ещё один вопрос.

Дано:
Категория1
Подкатегория1
Подподкатегория1-1
статья1-1-1
статья1-1-2
статья1-1-3
и т.п.
Подподкатегория1-2
статья1-2-1
статья1-2-2
и т.п.
Подподкатегория1-3
Подкатегория2
Подподкатегория2-1
Подподкатегория2-2

Так вот есть ли возможность при выборе Подкатегории1
Получить вот такое представление:

Подподкатегория1-1
статья1-1-1
статья1-1-2
статья1-1-3
Подподкатегория1-2
статья1-2-1
статья1-2-2

Т.е. хочется при выборе подкатегории получить список Подподкатегорий и списка статей из этих подподкатегорий

Есть ли такой вариант?

Неактивен

 

#2 04-12-2007 19:58:21

raivilion
живёте
Откуда: Екатеринбург
Зарегистрирован: 14-02-2007
Сообщений: 86

Re: Вывод статей из подкатегории при выборе категории.

Вроде придумал...
Сейчас проверю....

P.S.
Извиняюсь smile
Пораскинул мозгами и всё заработало. wink

Отредактированно raivilion (04-12-2007 20:04:10)

Неактивен

 

#3 05-12-2007 00:53:57

snowman
добро
Зарегистрирован: 11-03-2007
Сообщений: 41

Re: Вывод статей из подкатегории при выборе категории.

так поелитесь решением с общественностью wink

Неактивен

 

#4 05-12-2007 08:40:37

raivilion
живёте
Откуда: Екатеринбург
Зарегистрирован: 14-02-2007
Сообщений: 86

Re: Вывод статей из подкатегории при выборе категории.

Ну решение такое "в лоб"

Код:

<txp:if_category name="Подкатегория1">
    <txp:if_individual_article>
        <txp:article limit="300" form="catalog_article_single" />
    <txp:else />
        <txp:article limit="300" form="null" />
        <txp:category name="Подподкатегория1-1" title="1" link="1" wraptag="p" class="sub-cat" />
        <txp:article_custom category="Подподкатегория1-1" limit="300" listform="catalog_list_1" />
        <txp:category name="Подподкатегория1-2" title="1" link="1" wraptag="p" class="sub-cat" />
        <txp:article_custom category="Подподкатегория1-2" limit="300" listform="catalog_list_1" />
        <txp:category name="Подподкатегория1-3" title="1" link="1" wraptag="p" class="sub-cat" />
        <txp:article_custom category="Подподкатегория1-3" limit="300" listform="catalog_list_1" />
    </txp:if_individual_article>
</txp:if_category>

Ну и так далее... прописываются варианты для всех Подкатегорий и внутри них для всех Подподкатегорий.

Неактивен

 

#5 05-12-2007 11:54:26

AngryCAT
ферт
Откуда: Германия
Зарегистрирован: 18-04-2006
Сообщений: 486
Вебсайт

Re: Вывод статей из подкатегории при выборе категории.

А почему бы не использовать пхп. Для получения текущей категории использовать $thispage['c'].
Плагин для этого писать не обязательно. Достаточно написать код в форме и выводить ее по мере необходимости.


TextPattern строить и жить помогает! Кстати, пишу плагины на заказ. ICQ 155-08-081. В асю, пожалуйста, по поводу заказов или платных консультаций (10$ час). Остальные вопросы в форум или на почту.

Неактивен

 

#6 05-12-2007 12:23:05

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Вывод статей из подкатегории при выборе категории.

Зачем php если есть <txp:category /> ?


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

#7 05-12-2007 12:30:33

raivilion
живёте
Откуда: Екатеринбург
Зарегистрирован: 14-02-2007
Сообщений: 86

Re: Вывод статей из подкатегории при выборе категории.

the_ghost написал:

Зачем php если есть <txp:category /> ?

Чего то как то не могу сообразить, как мне тут можно это применить?

Неактивен

 

#8 05-12-2007 12:51:19

AngryCAT
ферт
Откуда: Германия
Зарегистрирован: 18-04-2006
Сообщений: 486
Вебсайт

Re: Вывод статей из подкатегории при выборе категории.

Этот тэг в данном случае не подмога. Сегодня вечером напишу пример кода


TextPattern строить и жить помогает! Кстати, пишу плагины на заказ. ICQ 155-08-081. В асю, пожалуйста, по поводу заказов или платных консультаций (10$ час). Остальные вопросы в форум или на почту.

Неактивен

 

#9 05-12-2007 13:16:49

AngryCAT
ферт
Откуда: Германия
Зарегистрирован: 18-04-2006
Сообщений: 486
Вебсайт

Re: Вывод статей из подкатегории при выборе категории.

кстати, если кто хочет сам написать, то советую обратить внимание на функцию из txplib_db.php function getTree($root, $type, $where='1=1')


TextPattern строить и жить помогает! Кстати, пишу плагины на заказ. ICQ 155-08-081. В асю, пожалуйста, по поводу заказов или платных консультаций (10$ час). Остальные вопросы в форум или на почту.

Неактивен

 

#10 05-12-2007 16:53:13

AngryCAT
ферт
Откуда: Германия
Зарегистрирован: 18-04-2006
Сообщений: 486
Вебсайт

Re: Вывод статей из подкатегории при выборе категории.

Ну вот, ничего писать не пришлось. Только малость закомментировать. Писал давно для своего плагина. Пока в деле не использовал, но точно работает. Проверил.

Реализован вывод списком, но ссылки делать не стал -- лениво. Кому не лениво допишите smile

Код:

<txp:php>
global $c; // Текущая категория
$categories = safe_rows("id, name, title, parent", "txp_category", "type = 'article'");
$articles = safe_rows("ID, Title, Category1, Category2, Section", "textpattern", "1");

// Добавляем к каждой категории массив с номерами статей, которые этой категории принадлежат
foreach($articles as $i=>$a) { 
    act_ins_art($categories, $a, $i);
}

// Вызываем рекурсивную функцию построения дерева
act_build_tree($categories, $articles, strtoupper($c));

function act_build_tree(
    $cat, // Подготовленный массив с категориями
    $art, // Массив со статьями
    $parent // Имя папаши. Заметьте, что в базе оно хранится в верхнем регистре, а $c выдаёт в нижнем
    ){
    $first = true; 
    foreach($cat as $i=>$ca){
        if($ca['parent'] == $parent) { // Если папаша правильный, то...
            if($first == true) { // Список был открыт?
                echo '<ul id="PCat_>' . $parent . '">' . n;
                $first = false;
            }
            echo '<li id="cat_>' . $ca['name'] . '">' . $ca['title'] . n;
            if(isset($ca['articles'])) { // Если есть статейки, то мы их выведем
                echo '<ul>';
                foreach($ca['articles'] as $el)
                    echo '<li class="red">' . $art[$el]['Title'] . '</li>'.n;
                echo '</ul>';
            }
            act_build_tree($cat, $art, $ca['name']); // Вызваем рекурсивно
            unset($cat[$i]); //Удаляем использованное, чтобы уменьшить работу.
            echo '</li>' . n;
        }
    }
    if($first == false) {
        echo '</ul>' . n;
    }
    return;
}

function act_ins_art(&$cat, $art, $index) {
    foreach($cat as $i=>$c) {
        if($c['name'] == $art['Category1'])
            $cat[$i]['articles'][] = $index;
        if($c['name'] == $art['Category2'])
            $cat[$i]['articles'][] = $index;            
    }
}
</txp:php>

TextPattern строить и жить помогает! Кстати, пишу плагины на заказ. ICQ 155-08-081. В асю, пожалуйста, по поводу заказов или платных консультаций (10$ час). Остальные вопросы в форум или на почту.

Неактивен

 

#11 05-12-2007 16:57:27

AngryCAT
ферт
Откуда: Германия
Зарегистрирован: 18-04-2006
Сообщений: 486
Вебсайт

Re: Вывод статей из подкатегории при выборе категории.

Есть один баг. Точнее фича smile
Не выводит статьи той категории, от которой пляшем. Может исправлю. Или если кто исправит, выложите здесь.


TextPattern строить и жить помогает! Кстати, пишу плагины на заказ. ICQ 155-08-081. В асю, пожалуйста, по поводу заказов или платных консультаций (10$ час). Остальные вопросы в форум или на почту.

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru