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

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

Вы не зашли.

#1 02-12-2006 02:10:10

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Плагин djw_section_articles и нестандартное применение CMS

Недавно довелось использовать Textpattern немножко не по назначению :) Кому интересно, вот здесь я написал об этом - http://tvel.name/sat/
Но речь не о том. Для решения этой задачи я хотел воспользоваться плагином djw_section_articles, однако мне сильно не хватало атрибутов class и title в списках ссылок, которые он генерировал.
Пришлось маленько подправить код наугад :) Наугад, потому что я php не знаю совсем. Вроде бы получилось, так что если кому надо, берите исправленный вариант. Я не знаю, как это переделать в плагин, поэтому просто выкладываю здесь код, которым нужно заменить то, что будет при редактировании модуля.
Класс назначаете сами, например так: <txp:djw_section_articles c="yourcategory" wraptag="li" class="yourclass" />. А вот title генерируется автоматически и совпадает с названием статьи, как и текст ссылки. Если кто-то переделает код так, чтобы title можно было подставлять какой-нибудь другой, будет здорово. Я не умею.

Код:

function djw_section_articles($atts)
{
    if (is_array($atts)) extract($atts);
    global $s, $pfr;

    $label    = (empty($label))    ? '' : $label;
    $break    = (empty($break))    ? br : $break;
    $wraptag  = (empty($wraptag))  ? '' : $wraptag;
        
    if(!empty($s)) {
        $q ="select * from " . PFX . "textpattern where Status = 4 and Section = '" . $s . "'";
        $q .= (empty($c)) ? ';' : " and (Category1='$c' or Category2='$c');"; 
        $rs = getRows($q);
        if ($rs) {
            if ($label) $out[] = $label;
            foreach ($rs as $a)
            {
                extract ($a);
                $out[] = tag($Title,'a',' href="'.$pfr.$Section.'/'.$url_title.'" class="'.$class.'" title="'.$Title.'"');
            }
            if (is_array($out)) {
                if($break == 'li') {
                    return ($wraptag) 
                    ?    tag("<li>".join("</li>\n<li>",$out)."</li>",$wraptag) 
                    :     "<li>".join("</li>\n<li>",$out)."</li>";
                }
                return ($wraptag) 
                ?    tag(join($break.n,$out),$wraptag) 
                :     join($break.n,$out);
            }
            return '';
        }
    }
}

Кстати, там я еще путь правил, но это просто.


Время не ждет.

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru