Приветствую!
Все сделал по мануалу,категории,клиееты,баннер загрузил. В header вставляю тэг виджета и ничего не происходит :(
Помогите пожалуйста!
API категорий един для всех модулей. Эти поля означают тоже самое, что и для любых других категорий:
код - уникальный цифровой или цифро-буквенный код категории. Slug или как его еще называют alias.
путь используется для построения дерева категорий. Уровни вложенности разделяются точками. При создании вложенных категорий, родительские категории уже должны существовать.
Заголовок - название категории.
Описание и иконка - соотвественно описание и иконка для категории. Они необязательные и на вывод особо никак не влияют, но Вы можете использовать их в своих шаблонах.
Правильно ли я понял, что при создании категории в указанных полях не нужна привязка к папкам сайта? Т.е. можно заполнить примерно так:
Путь: | global |
---|---|
Код: | gl1 |
Заголовок: | левый под календарем |
Описание: | Под календарем в левом столбце на каждой странице |
Иконка (URL): |
Я правильно понял?
И если правильно понял, то почему при установке в tpl файл кода
<?=brs_controller_Widget::banner('gl1', 2)?>
созданный баннер не отображается, а при просмотре кода сформированной страницы виден вставленный код, а не код баннера? Кэш чищен, банерорезка отключена.
Что я делаю не так?
Встроенный шаблонизатор Cotonti не позволяет так просто использовать PHP-код в TPL-файлах. По этому нужно использовать Call-back функцию banner_widget() которая является оберткой для вызова brs_controller_Widget::banner().
В TPL-файл нужно вставить код:
{PHP|banner_widget('gl1', 2)}
В шаблонизаторе View вполне можно использовать и
<?=brs_controller_Widget::banner('gl1', 2)?>
Будет работать.
Здравствуйте вставляю в tpl но ни чего не происходит
<div id="header" class="row"> <div class="span4"> <div class="logo"><a href="{PHP|cot_url('index')}" title="{PHP.cfg.maintitle} {PHP.cfg.separator} {PHP.cfg.subtitle}"><img src="themes/{PHP.theme}/img/logo.png"/></a></div> </div> <div class="span5"> </div> {PHP|banner_widget('gl1', 2)} <div class="span3 textright paddingtop10"> <!-- BEGIN: I18N_LANG --> <!-- BEGIN: I18N_LANG_ROW --> <a href="{I18N_LANG_ROW_URL}" class="{I18N_LANG_ROW_CLASS}"><img src="images/flags/{I18N_LANG_ROW_FLAG}.png"/></a> <!-- END: I18N_LANG_ROW --> <!-- END: I18N_LANG --> </div>
Может что ни так
Добавлено 12 минут спустя:
Разобрался спасибо все ок не понял(
'gl1'
, 2)))))
Хочу проверить в шаблоне есть ли такой банер уже созданный в админке или нет.
Что то наподобии
<!-- IF {PHP.item.item_city|banner_widget('$this',1)} != '' -->
{PHP.item.item_city|banner_widget('$this',1)}
<!-- ELSE -->
Такого банера еще не создано - тут предложение купить
<!-- ENDIF -->
В любом городе есть его числовой код от 1 до 1000 к примеру. В админке если в городе код 110 и в нем есть уже реклама то создан код для банера 110 и
{PHP.item.item_city|banner_widget('$this',1)} работает и его выводит
А если еще нет такого банера то выводим что можно бы его и купить. Но проверить не понял как на уже созданность.
Пример можно посмотреть в виджете: modules/brs/controller/Widget.php
Подробнее про выборку можно почитать тут. Раздел "Условия для выборки".
В самом постейшем случае можно использовать код для выборки массива объектов:
brs_model_Banner::findByCondition([['SQL', 'условие, соотвествующее SQL - синтаксису WHERE']], $count, $offset, ['title', 'asc']);
Для выборки одного объекта использовать метод fetchOne(), для получения количества - метод count().
Как вариант в Вашем случае, если баннеров не много, то можно выводить баннер, если он есть, а если нет то на его месте показывать баннер "Разместите здесь вашу рекламу", который добавляется как и обычный баннер. Как только баннер заказали - этот просто отключаете.