Перейти к содержимому


Фото
- - - - -

Отдельная категория со своим стилем


  • Чтобы отвечать, сперва войдите на форум
10 ответов в теме

#1 GARVAN

GARVAN
  • Пользователь
  • 2 сообщений

Опубликовано 05.09.2012 - 16:47

Подскажите как сделать отдельную категорию со своим стилем, отличным от других. Предполагаю что потребуется создать отдельный tpl и выводить категорию через $category->id или еще как. Но уже который день что не пробую ничего не получается. Может кто то уже делал такое и поделится опытом?



#2 Kosjak76

Kosjak76
  • Модератор
  • 3 719 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 06.09.2012 - 11:01

Файл products.tpl :

{if $category->id == 5}
{$wrapper = 'index2.tpl' scope=parent} {* Если нужна оболочка другая *}
{include file='products2.tpl'} {* Шаблон для категории с АйДи = 5 *}
{else}
Код файла products.tpl
{/if}


#3 GARVAN

GARVAN
  • Пользователь
  • 2 сообщений

Опубликовано 06.09.2012 - 16:27

спасибо. все заработало с первой попытки



#4 Aureus

Aureus
  • Пользователь
  • 3 сообщений

Опубликовано 21.12.2012 - 20:29

работает!!! (версия 2,15) спасибо.



#5 MaLeN

MaLeN
  • Пользователь
  • 63 сообщений
  • Версия CMS:2.x
  • Откуда:Минск

Опубликовано 11.02.2018 - 14:52

Файл products.tpl :

{if $category->id == 5}
{$wrapper = 'index2.tpl' scope=parent} {* Если нужна оболочка другая *}
{include file='products2.tpl'} {* Шаблон для категории с АйДи = 5 *}
{else}
Код файла products.tpl
{/if}

а как без оболочки без ничего, просто вывести 1 категорию отдельно?



#6 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 497 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 11.02.2018 - 15:15


а как без оболочки без ничего, просто вывести 1 категорию отдельно?


$cat = $this->categories->get_category(7);

#7 MaLeN

MaLeN
  • Пользователь
  • 63 сообщений
  • Версия CMS:2.x
  • Откуда:Минск

Опубликовано 11.02.2018 - 15:53

$cat = $this->categories->get_category(7);

знал бы я куда это вставлять



Файл products.tpl :

{if $category->id == 5}
{$wrapper = 'index2.tpl' scope=parent} {* Если нужна оболочка другая *}
{include file='products2.tpl'} {* Шаблон для категории с АйДи = 5 *}
{else}
Код файла products.tpl
{/if}
<!-- Меню каталога -->
			<div id="catalog_menu">
					
			{* Рекурсивная функция вывода дерева категорий *}
			{function name=categories_tree}
			{if $category->id == 1171}
			<ul>
			{foreach $categories as $c}
				{* Показываем только видимые категории *}
				{if $c->visible}
					<li>
						{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if}
						<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>
						{categories_tree categories=$c->subcategories}
					</li>
				{/if}
			{/foreach}
			</ul>
			{/if}
			{/function}
			{categories_tree categories=$categories}
			</div>
			<!-- Меню каталога (The End)-->	

Вот так вставляю не пашет((



#8 yr4ik

yr4ik
  • Фрилансер
  • 840 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 11.02.2018 - 16:02

знал бы я куда это вставлять



<!-- Меню каталога -->
			<div id="catalog_menu">
					
			{* Рекурсивная функция вывода дерева категорий *}
			{function name=categories_tree}
			{if $category->id == 1171}
			<ul>
			{foreach $categories as $c}
				{* Показываем только видимые категории *}
				{if $c->visible}
					<li>
						{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if}
						<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>
						{categories_tree categories=$c->subcategories}
					</li>
				{/if}
			{/foreach}
			</ul>
			{/if}
			{/function}
			{categories_tree categories=$categories}
			</div>
			<!-- Меню каталога (The End)-->	

Вот так вставляю не пашет((

То нужно в php вставлять и будет работать лишь для одной категории. Куда проще так сделать: 

 

в view/IndexView.php после:

$this->design->assign('categories', $this->categories->get_categories_tree(array('visible' => 1)));

добавляем:

$this->design->assign('all_categories', $this->categories->get_categories());

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

{$all_categories[7]}


#9 MaLeN

MaLeN
  • Пользователь
  • 63 сообщений
  • Версия CMS:2.x
  • Откуда:Минск

Опубликовано 11.02.2018 - 16:23

То нужно в php вставлять и будет работать лишь для одной категории. Куда проще так сделать: 

 

в view/IndexView.php после:

$this->design->assign('categories', $this->categories->get_categories_tree(array('visible' => 1)));

добавляем:

$this->design->assign('all_categories', $this->categories->get_categories());

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

{$all_categories[7]}

Белый экран тогда и ошибки

 Object of class stdClass could not be converted to string in /Smarty/libs/sysplugins/smarty_internal_templatebase.php(165) : eval()'d code on line 154
[11-Feb-2018 16:21:48 Europe/Moscow] PHP Catchable fatal error:  Object of class stdClass could not be converted to string in /compiled/enar/13e68c93245ebafc598fb5a21f8bb760dc3f4dea.file.header.tpl.php on line 154


#10 yr4ik

yr4ik
  • Фрилансер
  • 840 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 11.02.2018 - 16:37

Ну так правильно! Выводите что хотите от нужной категории, а не просто {$all_categories[7]}.

{$all_categories[7]->name} или {$all_categories[7]->url}


#11 MaLeN

MaLeN
  • Пользователь
  • 63 сообщений
  • Версия CMS:2.x
  • Откуда:Минск

Опубликовано 11.02.2018 - 17:56

Ну так правильно! Выводите что хотите от нужной категории, а не просто {$all_categories[7]}.

{$all_categories[7]->name} или {$all_categories[7]->url}

большое спасибо, получилось. +100% к здоровью!






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых