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

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

Вы не зашли.

#1 02-09-2007 16:52:07

evgenius777
буки
Зарегистрирован: 28-08-2007
Сообщений: 6

КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

Если я нахожусь в категории и в этой категории пока только одна статья, возможно ли написать так, чтобы в таком случае Txp выдавал не список из одной статьи, а сразу переходил к содержанию данной статьи из списка. Т.к. получается человек делает одну лишнюю операцию - щелкает два раза (один раз на категорию, потом на на название статьи из списка, НО в списке только одна статья!).

Помогите пожалуйста составить тэги которые бы справились с этой задачей, если это возможно. Спасибо заранее.

Отредактированно evgenius777 (02-09-2007 16:53:16)

Неактивен

 

#2 02-09-2007 17:27:02

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

хм.. интересная задачка...
стандартными средствами вроде сделать так нельзя.
нужно искать плагин, который считает количество статей в категории + условный тэг к этому плагину.

Может пойти по более простому пути?
Сразу добавить несколько статей во все категории?

Неактивен

 

#3 07-09-2007 00:11:16

mara
земля
Зарегистрирован: 05-02-2007
Сообщений: 119

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

А что если сделать форму вывода списка статей в данной категории, например такую:

форма: forma

<txp:title />
<body />

А выводить так:

<txp:article_custom allowoverride="0" category="mycategory" form="forma" limit="1" offset="0" pgonly="0" section="mysektion" sort="Posted desc" status="4" />

Тогда тхр выведет "список статей" в данной категории в виде заглавия и содержания единственной статьи.
Но это подходит только, если в данной категории всегда будет только одна статья.

Неактивен

 

#4 07-09-2007 11:30:05

evgenius777
буки
Зарегистрирован: 28-08-2007
Сообщений: 6

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

спасибо

Неактивен

 

#5 07-09-2007 14:05:16

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

Vожно так (в форме вывода статьи):

<txp:if_first_article>
<txp:if_last_article>
<!--тут выводим статью целиком-->
<txp:else />
<!-- тут -- выводим только заголовок и выдержку-->
</txp:if_last_article>
<txp:else />
<!-- тут -- выводим только заголовок и выдержку-->
</txp:if_first_article>

Можно причесать как-то покрасивее...

Отредактированно glebotr (07-09-2007 14:07:03)


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#6 07-09-2007 17:10:19

mara
земля
Зарегистрирован: 05-02-2007
Сообщений: 119

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

glebotr написал:

Vожно так (в форме вывода статьи):

<txp:if_first_article>
<txp:if_last_article>
<!--тут выводим статью целиком-->
<txp:else />
<!-- тут -- выводим только заголовок и выдержку-->
</txp:if_last_article>
<txp:else />
<!-- тут -- выводим только заголовок и выдержку-->
</txp:if_first_article>

Можно причесать как-то покрасивее...

Поддерживаю. Так универсальнее.

Неактивен

 

#7 09-09-2007 16:53:42

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

glebotr написал:

Vожно так (в форме вывода статьи):.........

Глеб! отличное решение! Красиво!
А я тут панику навожу...

Evgeny написал:

стандартными средствами вроде сделать так нельзя.

К счастью- оказался неправ.

Неактивен

 

#8 09-09-2007 23:34:33

evgenius777
буки
Зарегистрирован: 28-08-2007
Сообщений: 6

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

Вообще, если я правильно понял, то пример Глеба не сработает, тк условия if_first_article & ...last... срабатывают только на странице с индивид.статьей, а мы пока что находимся на странице со списком из одной статьи, а на такой странице эти услвия всегда false.

Поправьте если я не прав. Спасибо

Неактивен

 

#9 10-09-2007 11:15:21

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

Не прав 8) При выводе списка они срабатывают. У меня они многократно применяются именно в списке.

Отредактированно glebotr (16-09-2007 19:12:14)


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#10 16-09-2007 11:51:24

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

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

Отличный пример - достоен занесения его во все справочники smile


.      Создание шаблонов для 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

Неактивен

 

#11 16-09-2007 18:19:13

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

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

У меня была схожая задача, только мне нужно было, чтобы при выводе списка категорий выводились статьи принадлежащие этим категориям, а если в категории одна статья, то название категории становилось бы ссылкой на эту статью. Вообщем, пока можно посмотреть тут
Сделал с помощью пхп в форме, так как плагин писать было лень. Да, используется только первая категория.

Код:

<txp:php>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Форма создаёт список категорий и статей текущей секции. 
// Если в категории более одной статьи, то сначала выводится название категории, а за ней
// ссылки на статьи этой категории.
// Если статья в категории одна, то название статьи не выводится, а название категории
// оформляется в виде ссылки на статью.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////


$activeClass = "active";
$active = 0;
// Получить текущую секцию
global $thispage, $thisarticle, $s;
// Получить текущую секцию
if(isset($thisarticle)){
  $curSection = $thisarticle['section'];
  $active = $thisarticle['thisid'];
}
else {
  $curSection = $s;
}

// Получить список категорий
$catList = safe_rows("name, title", "txp_category", "type='article' order by name");
// Получить все статьи в текущей категории, отсортированные по категории1
$articles = safe_rows("*", "textpattern", "Status=4 AND Section='$curSection' order by Category1");

//print_r($catList);

// Посчитать количество статей в категории и заполнить новый массив
$newCat = array(array());
for($i = 0; $i < count($catList); $i++) {
  $counter = 0;
    for($e = 0;$e < count($articles); $e++) {
      if($catList[$i]['name'] == $articles[$e]['Category1'])
        $counter++;
    }
  $newCat[$i]['name'] = $catList[$i]['name'];
  $newCat[$i]['title'] = $catList[$i]['title'];
  $newCat[$i]['count'] = $counter;
}
// Прошвырнуться по новому массиву
if(count($articles)>0) {
  echo "<ul>\n";
  for($i = 0; $i < count($newCat); $i++) {
    if($newCat[$i]['count'] != 0) {
      if($newCat[$i]['count'] == 1){
        for($e = 0;$e < count($articles); $e++) {
          if($newCat[$i]['name'] == $articles[$e]['Category1']){
            if($articles[$e]['ID'] == $active)
              echo "\t<li><a class='".$activeClass."' href=\"".permlinkurl($articles[$e])."\">".$newCat[$i]['title']."</a></li>\n";
            else
              echo "\t<li><a href=\"".permlinkurl($articles[$e])."\">".$newCat[$i]['title']."</a></li>\n";
          }
        }
      }
      
      if($newCat[$i]['count'] > 1){
        echo "<li>".$newCat[$i]['title']."\n";
        echo "<ul>";
        for($e = 0;$e < count($articles); $e++) {
          if($newCat[$i]['name'] == $articles[$e]['Category1']){
            if($articles[$e]['ID'] == $active)
              echo "\t<li><a class='".$activeClass."' href=\"".permlinkurl($articles[$e])."\">".$articles[$e]['Title']."</a></li>\n";
            else
              echo "\t<li><a href=\"".permlinkurl($articles[$e])."\">".$articles[$e]['Title']."</a></li>\n";
          }
        }
        echo "</ul></li>\n";
      }
    }
  }
  echo "</ul>\n";
}
</txp:php>

Программер из меня никакой, так что прошу сильно не пинать.

Отредактированно AngryCAT (16-09-2007 18:19:58)


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

Неактивен

 

#12 18-09-2007 18:16:30

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

AngryCAT написал:

Программер из меня никакой, так что прошу сильно не пинать.

Не скромничай. :-))

Неактивен

 

#13 13-05-2009 14:49:35

lumb
аз
Зарегистрирован: 06-05-2009
Сообщений: 2

Re: КАТЕГОРИЯ С одной!!! СТАТЬЕЙ

Если кто-нибудь объяснит как это прикрутить к TxP-Компания, будет здорово. Я уже запутался в туче article  на странице.

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru