Ссылка на новость при наличии ее контента — различия между версиями
Материал из Umicms
Stexe (обсуждение | вклад) м (переименовал «Как при наличии полного текста новости ставить на нее ссылку, а при отсутствии - не ставить?» в «[[Ссылка на новость при нали) |
Stexe (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| − | < | + | '''Задача:''' Вывести ссылку на новость при условии, что поле "Контент" этой новости заполнено, или не выводить в ином случае.<br/><br/> |
| − | <h2> | + | '''Реализация:''' |
| − | + | <h2>TPL-шаблонизатор</h2> | |
| − | + | В шаблоне вывода отдельной новости добавим вызов макроса %data getProperty()%: | |
| − | + | <source lang="html4strict"> | |
| − | + | %data getProperty('%id%', 'content', 'choice')% | |
| − | < | + | </source> |
| + | Создадим файл tpls\data\choice.tpl и добавим в него следующее содержимое: | ||
| + | <source lang="html4strict"> | ||
<?php | <?php | ||
$FORMS = Array(); | $FORMS = Array(); | ||
| − | |||
| − | |||
| − | % data getProperty(% id%, 'h1', ' | + | $FORMS['wysiwyg'] = <<<END |
| + | <a href="%content get_page_url(%id%)%"> | ||
| + | %data getProperty(%id%, 'h1', 'default')% | ||
| + | </a> | ||
END; | END; | ||
$FORMS['wysiwyg_empty'] = <<<END | $FORMS['wysiwyg_empty'] = <<<END | ||
| − | % data getProperty(% id%, 'h1', ' | + | %data getProperty(%id%, 'h1', 'default')% |
END; | END; | ||
| − | ?> | + | ?> |
| − | </ | + | </source> |
| − | |||
| − | + | Так как, типом поля с идентификатором "content" является HTML Текст ("wysiwyg"), то при наличии содержимого в этом поле будет обработан блок ''''wysiwyg'''', в ином случае блок ''''wysiwyg_empty''''. В данном примере выводится ссылка на новость, если в поле с идентификатором "content" есть данные, или поле "h1" в ином случае. | |
Версия 12:54, 10 апреля 2014
Задача: Вывести ссылку на новость при условии, что поле "Контент" этой новости заполнено, или не выводить в ином случае.
Реализация:
TPL-шаблонизатор
В шаблоне вывода отдельной новости добавим вызов макроса %data getProperty()%:
%data getProperty('%id%', 'content', 'choice')%
Создадим файл tpls\data\choice.tpl и добавим в него следующее содержимое:
<?php
$FORMS = Array();
$FORMS['wysiwyg'] = <<<END
<a href="%content get_page_url(%id%)%">
%data getProperty(%id%, 'h1', 'default')%
</a>
END;
$FORMS['wysiwyg_empty'] = <<<END
%data getProperty(%id%, 'h1', 'default')%
END;
?>
Так как, типом поля с идентификатором "content" является HTML Текст ("wysiwyg"), то при наличии содержимого в этом поле будет обработан блок 'wysiwyg', в ином случае блок 'wysiwyg_empty'. В данном примере выводится ссылка на новость, если в поле с идентификатором "content" есть данные, или поле "h1" в ином случае.