Jump to content

Вывод блоков в заданой категории или странице


Recommended Posts

  • Replies 51
  • Created
  • Last Reply

Top Posters In This Topic

 

{if $module!='ProductsView' && !$category}
тут блоки которые не нужно выводить в категориях
{/if}

 

1. Фраза "тут блоки которые не нужно выводить в категориях" - довольно расплывчатая и неопределенная, почти ни о чем не говорит.

2. Если Вы имели в виду "тут блоки, которые нужно выводить везде, кроме страниц категорий", то предлагаемое решение совсем неправильное...

Link to post
Share on other sites
  • 3 months later...

Вывод определенного блока на нужной странице можно ограничить простым скриптом:

{literal}
<script> 
 $(document).ready(function(){  
   $("#sld").hide();
});
</script>
{/literal}

#sld - в случае если <div id="sld">

.sld - в случае если <div class="sld">

у данного блока должен стоять уникальный id лил class иначе скроются все блоки с этими параметрами.

ой спасибки за помощь!!!!!!!!!!!!!!!!!!!!

Link to post
Share on other sites
  • 2 months later...

а как сделать вывод какого-то блока после 3-х товаров? (к примеру рекламный блок выводится после каждых 3-х товаров, либо один раз после 3-х)

Link to post
Share on other sites

а как сделать вывод какого-то блока после 3-х товаров? (к примеру рекламный блок выводится после каждых 3-х товаров, либо один раз после 3-х)

{foreach $products as $p}
{if $p@iteration%3==0}
какой-то блок
{/if}
Блок товара
{/foreach}
Link to post
Share on other sites

 

{foreach $products as $p}
{if $p@iteration%3==0}
какой-то блок
{/if}
Блок товара
{/foreach}

 

Супер! Спасибо Noxter!

Только есть вопрос: почему первый показ идет 2 товара, а потом блок, все остальное по 3 товара и 1 блок?

А как сделать вывод блока один раз после 3х товаров?

Link to post
Share on other sites

Супер! Спасибо Noxter!

Только есть вопрос: почему первый показ идет 2 товара, а потом блок, все остальное по 3 товара и 1 блок?

А как сделать вывод блока один раз после 3х товаров?

Попробуйте вот так:
{if $product@index == 3}
<li style="width:100%;background:#080;padding:50px;">
Блок
</li>
{/if}
Edited by Noxter
Link to post
Share on other sites

 

Попробуйте вот так:

{if $product@index == 3}
<li style="width:100%;background:#080;padding:50px;">
Блок
</li>
{/if}

 

да, так работает вывод 1 блока и показывает изначально 3 товара. спасибо!

Link to post
Share on other sites
  • 9 months later...

 

1. Отдельный шаблон для страниц

Возьмем например страницу Блога, для того чтобы обернуть центральный блок в шаблон, отличный от index.tpl надо в blog.tpl в самый верх вставить {$wrapper = 'index2.tpl' scope=parent}  и у нас получится что blog.tpl будет грузиться в index2.tpl

 

2. Выводим информацию на определенной странице

Вывод только на главной странице:

 

{if $page && $page->url==''}
Нужная информация которая должна выводиться только на главной странице
{/if}
 

 

Вывод на странице с товаром:

 

{if $smarty.get.module=='ProductView' }
Нужная информация которая должна выводиться только на странице товара
{/if}
 

 

Вывод на странице корзины или товар:

 

{if $smarty.get.module=='CartView' || $smarty.get.module=='ProductView'}
Нужная информация которая должна выводиться только на странице корзины
{/if}
CartView, OrderView, ProductView - название модулей, я брал просто название шаблонов пример
cart.tpl - CartView, products.tpl - ProductsView
 
|| - это тоже самое что "ИЛИ" т.е. выводить информацию на странице Корзина или Товар
 
Прошу дополнить знающих людей интересной информацией 

А как сделать:

На главной странице скрыть категорию какую нить одну и только на главной странице?

Link to post
Share on other sites

А как сделать:

На главной странице скрыть категорию какую нить одну и только на главной странице?

Проверка на текущий модуль (в нашем случае главная):
{if $module == 'MainView'}
...
{/if}
Её нужно вставить в цикл вывода категорий при условии, скажем {if $c->id == '666'}.
Link to post
Share on other sites

 

Проверка на текущий модуль (в нашем случае главная):

{if $module == 'MainView'}
...
{/if}
Её нужно вставить в цикл вывода категорий при условии, скажем {if $c->id == '666'}.

 

Вот код у меня он выводит определённую группу. Цикл я не понял(

{assign var=col value="15"}

{foreach from=$cats item=cat}
{assign var=col value=$col+23}
   <div style="margin-top:{$col}px;"><a href="/catalog/{$cat->url}" >{$cat->name}</a></div>
{/foreach}
Link to post
Share on other sites

 

Вот код у меня он выводит определённую группу. Цикл я не понял(

{assign var=col value="15"}

{foreach from=$cats item=cat}
{assign var=col value=$col+23}
   <div style="margin-top:{$col}px;"><a href="/catalog/{$cat->url}" >{$cat->name}</a></div>
{/foreach}

 

для начала где у вас этот код вставлен. если в main.tpl то так

{assign var=col value="15"}

{foreach from=$cats item=cat}
{if $cat->id!=5}
   {assign var=col value=$col+23}
   <div style="margin-top:{$col}px;"><a href="/catalog/{$cat->url}" >{$cat->name}</a></div>
{/if}
{/foreach}

где 5 - айди категории которую хотите скрыть

 

если вставлено в index.tpl то будет так:

{assign var=col value="15"}

{foreach from=$cats item=cat}
{if $cat->id!=5 || $module!='MainView'}
   {assign var=col value=$col+23}
   <div style="margin-top:{$col}px;"><a href="/catalog/{$cat->url}" >{$cat->name}</a></div>
{/if}
{/foreach}

где 5 - все тот же айди категории которую хотите скрыть

Edited by mishanya
Link to post
Share on other sites

для начала где у вас этот код вставлен. если в main.tpl то так

{assign var=col value="15"}

{foreach from=$cats item=cat}
{if $cat->id!=5}
   {assign var=col value=$col+23}
   <div style="margin-top:{$col}px;"><a href="/catalog/{$cat->url}" >{$cat->name}</a></div>
{/if}
{/foreach}

где 5 - айди категории которую хотите скрыть

 

если вставлено в index.tpl то будет так:

{assign var=col value="15"}

{foreach from=$cats item=cat}
{if $cat->id!=5 || $module!='MainView'}
   {assign var=col value=$col+23}
   <div style="margin-top:{$col}px;"><a href="/catalog/{$cat->url}" >{$cat->name}</a></div>
{/if}
{/foreach}

где 5 - все тот же айди категории которую хотите скрыть

 

Код стоит в файле Slider.tpl, скрывать категории только на главной. ID категории 35 у меня надо скрыть. Этот код не скрывает почему то 

Link to post
Share on other sites

Код стоит в файле Slider.tpl, скрывать категории только на главной. ID категории 35 у меня надо скрыть. Этот код не скрывает почему то 

 

вы заменили айди категории в коде?

Link to post
Share on other sites
  • 1 year later...

Подскажите пожалуйста, как можно вывести статью блога на главной странице в нескольких таблицах?

 

 

Т.е. вверху статья по определённому ID, левая колонка с картинками, а правая колонка без картинок.

 

Вывод на главной у меня работает, но не могу настроить вот такую рабочую структуру.

 

            
            {get_posts var=last_posts limit=1}
	    {if $last_posts}
	      <div id="blog-top">                
                     {foreach $last_posts as $post}
                     {$post->date|date}                                             
                        <a href="blog/{$post->url}">{$post->name|escape}</a>
                          {if $image=$post->images}
                          {$image=$post->images|first}
                          <img src="{$image->filename|resize:400:400}">                        
                          {/if}
                     {$post->annotation}                      
		     {/foreach}
	      </div>
	     {/if}


             {get_posts var=last_posts limit=6}
   	     {if $last_posts}
	        <div id="blog-left">                 
                        {foreach $last_posts as $post}
                        {$post->date|date}                     
                           <a href="blog/{$post->url}">{$post->name|escape}</a>
                             {if $image=$post->images}
                             {$image=$post->images|first}
                             <img src="{$image->filename|resize:200:200}">                        
                             {/if}
                        {$post->annotation}
		        {/foreach}
	         </div>
	      {/if}


               {get_posts var=last_posts limit=9}
   	       {if $last_posts}
	         <div id="blog-right">                    
                        {foreach $last_posts as $post}
                        {$post->date|date}                       
                           <a href="blog/{$post->url}">{$post->name|escape}</a>
                        {/if}
                        {$post->annotation}
		        {/foreach}
	         </div>
	        {/if} 
Link to post
Share on other sites

last_posts перезаписывается дважды, переименуйте в last_posts, last_posts2, last_posts3 к примеру, а вообще это говнокод, для картинок достаточно использовать условие если тру то по левой стороне елсе по правой.

Вы же делаете 3 раза вызов функции для получения записей блога, имхо бред.

Link to post
Share on other sites

last_posts перезаписывается дважды, переименуйте в last_posts, last_posts2, last_posts3 к примеру...

Это действие ничего не изменит, будет работать ровно так же.

 

 

Пробуйте примерно так:

            {get_posts var=last_posts limit=9}

	    {if $last_posts|count>0}
	      <div id="blog-top">                
                     {foreach array_slice($last_posts,0,1) as $post}
...
		     {/foreach}
	      </div>
	     {/if}


	    {if $last_posts|count>1}
	      <div id="blog-left">                
                     {foreach array_slice($last_posts,1,4) as $post}
...
		     {/foreach}
	      </div>
	     {/if}


	    {if $last_posts|count>5}
	      <div id="blog-right">                
                     {foreach array_slice($last_posts,5,4) as $post}
...
		     {/foreach}
	      </div>
	     {/if}

Link to post
Share on other sites

 

Подскажите пожалуйста, как можно вывести статью блога на главной странице в нескольких таблицах?

 

 

Т.е. вверху статья по определённому ID, левая колонка с картинками, а правая колонка без картинок.

 

Вывод на главной у меня работает, но не могу настроить вот такую рабочую структуру.

 

            
            {get_posts var=last_posts limit=1}
	    {if $last_posts}
	      <div id="blog-top">                
                     {foreach $last_posts as $post}
                     {$post->date|date}                                             
                        <a href="blog/{$post->url}">{$post->name|escape}</a>
                          {if $image=$post->images}
                          {$image=$post->images|first}
                          <img src="{$image->filename|resize:400:400}">                        
                          {/if}
                     {$post->annotation}                      
		     {/foreach}
	      </div>
	     {/if}


             {get_posts var=last_posts limit=6}
   	     {if $last_posts}
	        <div id="blog-left">                 
                        {foreach $last_posts as $post}
                        {$post->date|date}                     
                           <a href="blog/{$post->url}">{$post->name|escape}</a>
                             {if $image=$post->images}
                             {$image=$post->images|first}
                             <img src="{$image->filename|resize:200:200}">                        
                             {/if}
                        {$post->annotation}
		        {/foreach}
	         </div>
	      {/if}


               {get_posts var=last_posts limit=9}
   	       {if $last_posts}
	         <div id="blog-right">                    
                        {foreach $last_posts as $post}
                        {$post->date|date}                       
                           <a href="blog/{$post->url}">{$post->name|escape}</a>
                        {/if}
                        {$post->annotation}
		        {/foreach}
	         </div>
	        {/if} 

 

Спасибо большое всем за ответы, но у меня получилось вот так:

            {get_posts var=last_posts limit=1}

	    {if $last_posts}
	      <div id="blog-top">                
                     {foreach $last_posts as $post}
                     {if $post->id == 1}
...
                     {/if}
		     {/foreach}
	      </div>
	     {/if}

            {get_posts var=last_posts limit=3}
	    {if $last_posts}
	      <div id="blog-left">                
                     {foreach $last_posts as $post}
                     {if $image=$post->images|first}
... с картинкой
                     {else}        
	             {/if}
		     {/foreach}
	      </div>
	     {/if}

            {get_posts var=last_posts limit=10}
	    {if $last_posts}
	      <div id="blog-right">                
                     {foreach $last_posts as $post}
                     {if $image=$post->images|first}
                     {else}
... без картинки
                     {/if}
		     {/foreach}
	      </div>
	     {/if}
Link to post
Share on other sites
  • 10 months later...

А как на контентных страницах не выводить? Которые делаются в меню "Страницы". 

PageView это? 

 

Сделал проверку через PageView - вроде работает..

Только почему-то для страницы контактов у которой шаблон feedback.tpl  не срабатывает

Edited by Consult
Link to post
Share on other sites
  • 1 month later...

А как сделать

Если блок (div) заполнен, то он выводит, если не заполнен, то ничего не показывает?

 

так делайте проверку на то что выводит у вас в div e

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...