Перейти к содержанию
Официальный форум поддержки Simpla

Как запретить вывод информации в определенной категории?


Перейти к решению Решено yr4ik,

Рекомендуемые сообщения

Здравствуйте, всех с наступающим Новым Годом!

Как можно запретить вывод информации, блока с информацией в определенной категории, но если она имеет подкатегории, то информация выводилась в подкатегориях, но не в основной категории? Заранее спасибо за ответ!

Ссылка на сообщение
Поделиться на другие сайты

Вам нужно скрыть блок для какой то конкретной категории? Или только для той в которой есть подкатегории?

И что за блок? Как он выводится?

Ссылка на сообщение
Поделиться на другие сайты

Вам нужно скрыть блок для какой то конкретной категории? Или только для той в которой есть подкатегории?

И что за блок? Как он выводится?

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

Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...
{if $category->id!=75 && $category->id!=15 && $category->id!=71}
блок для всех страниц, кроме категорий с ID=75,15,71
{/if}

или

{if !in_array($category->id, array(75,15,71))}
блок для всех страниц, кроме категорий с ID=75,15,71
{/if}
Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

 

{if $category->id!=75 && $category->id!=15 && $category->id!=71}
блок для всех страниц, кроме категорий с ID=75,15,71
{/if}

или

{if !in_array($category->id, array(75,15,71))}
блок для всех страниц, кроме категорий с ID=75,15,71
{/if}

 

 

Подскажите как сделать вывод для определенной категории и всех вложенных в неё подкатегорий.

Ссылка на сообщение
Поделиться на другие сайты

Поделюсь одним решением, данное решение подсказал alaster. Все благодарности ему.
 

 

//////////////////////////////  Другой вид для товаров определенной категории с подкатегориями///////////////////////
{foreach $categories as $c}{if $c->id == '289'}{assign var='avto_cat' value=$c}{/if}{/foreach}
{if in_array($category->id, $avto_cat->children) or $category->id eq $avto_cat->id}
тут показываем текст который покажется на странице с категорией под id=289 и ее вложениями
{/if}
 

Вот таким решением приходилось пользоваться Всегда выручало!

Ссылка на сообщение
Поделиться на другие сайты

Решение принципиально порочное.

1. Довольно нерационально, так как перебирается весь цикл ради одного элемента.

2. Правильно будет работать не всегда, а только когда выбранная категория ($c->id == '289') находится на самом верхнем уровне категорий.

3. Если вдруг  категория 289 отсутствует, покажется ошибка.

Ссылка на сообщение
Поделиться на другие сайты

Решение принципиально порочное.

1. Довольно нерационально, так как перебирается весь цикл ради одного элемента.

2. Правильно будет работать не всегда, а только когда выбранная категория ($c->id == '289') находится на самом верхнем уровне категорий.

3. Если вдруг  категория 289 отсутствует, покажется ошибка.

1. согласен

2. это как? проверял не раз, всегда работало Благодаря kors разобрался где был не прав

3. тогда смысл от этого кода? код специально под категорию писался

Ссылка на сообщение
Поделиться на другие сайты
  • Решение

ps-simpla,
 
2. В переменной $categories находится дерево категорий. В структуре :

  • категория 1
  • категория 2
    • категория 3
    • категория 4
  • категория 5
  • категория и тд

В вашем случае в цикле foreach будут пропущены категории 3 и 4.
Что б и проверить их вам нужно делать рекурсивную ф-ю (см. код вывода категорий). 
 
3. нужно добавить проверку на if isset($avto_cat)
 
............................
А вообще лучший вариант для такого:
Открываем view/IndexView.php

Находим:
$this->design->assign('categories', $this->categories->get_categories_tree());

после дописываем:
$this->design->assign('all_categories', $this->categories->get_categories());


После таких манипуляций в шаблоне можно сделать так:

{if isset($all_categories[289]) && (in_array($category->id, $all_categories[289]->children) or $category->id eq '289')}
тут показываем текст который покажется на странице с категорией под id=289 и ее вложениями
{/if}

 

 

Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

ну вот сразу нашли решения в "одну строчку" думаю вам много людей будут благодарны

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...