Условия в зависимости от url или категории

Есть задача сделать разные блоки в шапке в зависимости от страницы. Есть ли какой-то способ сделать это без создания блоков, прописывания в конфиге и без плагинов? Т.е. простым вбиванием в шалон условных тегов.

Код внутри блока — html, без динамики
Страницы нужно разделить как минимум главную и остальные. Т.е. на главной — одна шапка, на остальных — другая

14 комментариев

avatar
то есть вы хотите внести два куска html в шапку? и чтобы один показывался например на главной, а остальные на других страницах?

Вот если честно я бы посоветовал разобраться с плагином aceBlockManager, и с позиционированием блоков :) можно супер динамические страницы делать, но если уж отвечать на ваш вопрос без фантазий, ТО ВОТ:

код значит показывающий первый кусочек html на главной, а второй на всех остальных:

{if $sAction=='index'}
html на главной
{else}
html на внутренних
{/if}


Если в двух словах, проверяем, если значит работает экшн index (главная), то первый кусок, если все остальные экшенЫ ) то другое.

PS но все таки это костыль, а не нормальное решение! :)
avatar
да, вот разбираюсь с указанным вами плагином. Клевый и позволяет создавать сложные условия, то, что мне нужно. Но пока не могу понять — он управляет только блоками? Мне же нужно просто вывести куски кода в шапку, а не блок.
  • ETNO
  • 0
avatar
а вот понял как создавать блоки и блоковые зоны.
Взял с сайдбара код

{if isset($aBlocks.high)}
        {foreach from=$aBlocks.high item=aBlock}
                {if $aBlock.type=='block'}
                        {insert name="block" block=$aBlock.name params=$aBlock.params} 
                {/if}
                {if $aBlock.type=='template'}                                            
                        {include file=$aBlock.name params=$aBlock.params}
                {/if}   
        {/foreach}                      
{/if}


Здесь я уже заменил $aBlocks.right на $aBlocks.high — т.е. создал зону high
Теперь можно создать свой блок и управлять им. Если просто через конфиг, то например так

$config['block']['block_topsy'] = array(
        'action'  => array('index', 'new'),
        'blocks' => array('high' => array('block.topsy.tpl'=> array('priority'=>95))),);


Теперь просто создаешь файл block.topsy.tpl в папке шаблона.

Буду теперь раздуплять aceBlockManager на предмет вывода блоков по разным url
  • ETNO
  • 0
avatar
раз что вы разобрались. Да в простых блоках конечно можно хоть txt файл выводить :) если я не ошибаюсь, в плагине есть примеры.

На счет разных страниц, то там так же есть примеры… посмотрите лучше, а именно условия
include — строка где выводить
или можно от противного
exclude — строка где НЕ выводить

вот посмотрите
avatar
в общем, всего пол ночи, и я понял как работать с блоками и при помощи плагина и без. Тем способом, что я описал выше, без помощи плагина — все прекрасно работает, но почему-то конфликтует с плагином aceBlockManager. Долго думал как же заставить работать именно через плагин. Дело в том, что он работает с системными блоками, а также с новыми созданными блоками, но никак не мог понять, как заставить его работать с простым шаблоном .tpl без всякого php кода. Пока случайно не посмотрел содержимое плагина.

Оказывается, чтобы он работал с шаблоном, нужно в корне плагина найти папку template — там создать одноименную папку с тем шаблоном, что вы юзаете и именно туда поместить шаблон.

В конфиге пишем что-то типа

$config['blocks'][] = array(
   'block' => 'block.topsy.tpl', // название блока
   'position' => 'high', // позиционирование блока
   'priority' => 100,
   'params' => array(
   'plugin' => 'aceblockmanager', //
),
   'include'=>array('index'),
);


Это для того, чтобы вывести блок на главной.
  • ETNO
  • 0
avatar
в коде выше очень важно писать именно block.topsy.tpl — тогда будет юзаться именно этот шаб. Возможно есть способы и попроще, но не нашел
avatar
поправочка, с папки плагина шаблон тянется только если указать

'plugin' => 'aceblockmanager',


В остальных случаях тянется с папки темы
avatar
Хорошо конечно что вы все таки описали :) думаю написать чтоли манул как работать с простыми блоками, с этим плагином :) просто информации на самом деле много по всему сайт, тоже в первый раз искал…

Вот сам хочу еще сделать ajax блок который будет выводить по рандом пользователя одного или двух-трех.

Но что то php мало владею
avatar
да, я тож думаю написать что-то типа мини мануала по работе вообще с блоками. Плохо, что все доки — разбросаны по всему сайту, часть в топиках, часть в мануалах, очень много в комментах полезного. Сегодня напишу обязательно, а вы дополните.
avatar
ха написать :) wiki педию причем не тех. суперскую а так пользовательскую :)) от таких бездарей как мы с вами :)
avatar
да-да, wordpress поэтому и популярен, на него дофига плагинов и куча литературы + кодекс. Я в программировании 0 — но это не мешает мне создавать сайты с достаточно сложным функционалом на wp. Ливстрит на порядок интереснее в плане создания порталов, соц. сетей — но так мало инфы по нему, и все разбросано, что многие просто не в силах даже логотип поменять в шаблоне, поэтому и пугаются. А чем больше будет пользователей LS — тем больше выиграют все. В любом продукте — решает все сообщество и это не только касается движков.
avatar
так разница в производстве WP и LS значительная :) и я все равно рад что LS такова добилась как CMS.

НУ чуть чуть с вами не соглашусь, да у WP есть кодекс :) а у LS есть Smarty, куда лучше :) у Smarty если оф. сайт, информацию тяжело понимать, но все таки можно.
avatar
livestreet.ru/blog/10590.html — вот и сделал мануальчик
avatar
крутотень
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.