четверг, 10 января 2008 г.

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

Задача: есть некое количество документов, в которых слишком много тегов. Это конечно не нормальная ситуация, однако предположим что такие документы есть и нам нужно выводить тегов не более заданного числа

Решение: плейсхолдер Ditto [+tagLinks+], отвечающий за вывод теговых ссылок, параметра лимитирования не имеет, поэтому нам придется написать свой phx-фильтр:

$options = explode('|', $options);

$delimiter = (!empty($options[0])) ? $options[0] : ', ';
$links_limit = (!empty($options[1])) ? $options[1] : 3;
$url = $options[2];
$links_class = (!empty($options[3])) ? $options[3] : 'tag_link';

$array = explode($delimiter, $output);
$tail = (count($array)>$links_limit) ? '...' : '';
for ($i=0; $i<=$links_limit-1; $i++) {
$retval .= '<a class="'.$links_class.'" href="[(base_url)]'.$url.'?tags='.urlencode($array[$i]).'">'.$array[$i].'</a>';
}
return $retval.$tail;

назовем его например phx:taglinks_limited и вызовем следующим образом (в шаблоне Ditto):
[+tags:taglinks_limited=`, |2|[~[*id*]~]|ditto_tag`+]

параметры нашего фильтра разделяются символом "|" и расшифровываются как разделитель тегов|количество выводимых ссылок|url страницы с выводом документов по тегу|CSS-класс теговых ссылок

1 комментарий:

Анонимный комментирует...

ll▷ Best Football Prediction Site in the World, Top 100 betway betway rb88 rb88 12852022 Texas bills to win super bowl odds