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


Фото
* * * * * 1 голосов

Убрать категорию из меню


Best Answer Kosjak76 , 20.02.2019 - 17:45

{if $c->visible && $c->id != 'АйДи_вашей_категории'}

Как-то так

Перейти к посту


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

#1 77mhz

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

Опубликовано 20.02.2019 - 17:11

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



#2 Noxter

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

Опубликовано 20.02.2019 - 17:31

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

Скройте её в админке.

#3 77mhz

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

Опубликовано 20.02.2019 - 17:39

Скройте её в админке.

Сделать не активной ? Тогда категория перестаёт отображаться везде. Мне нужно что бы она отображалась по ссылке но не в меню



#4 Kosjak76

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

Опубликовано 20.02.2019 - 17:45

{if $c->visible && $c->id != 'АйДи_вашей_категории'}

Как-то так



#5 77mhz

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

Опубликовано 20.02.2019 - 17:51

{if $c->visible && $c->id != 'АйДи_вашей_категории'}

Как-то так

{assign var="level" value=1}
{function name=categories_tree}
{if $categories}
	<ul id="nav" ul-level='{$level}' {if $level == 1}class='top_ul'{else}class='sub_ul ul_level_{$level}'{/if}>
	{foreach $categories as $c}
	{if $c->visible}
	<li class='level_{$level} {if in_array($category->id, $c->children)}active{/if}'>
	   <a href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a>
	   {categories_tree categories=$c->subcategories level=$level+1}
	</li>
	{/if}
	{/foreach}
	</ul>
{/if}
{/function}



{categories_tree categories=$categories}

Подскажите, в какое месте поставить ? :)



#6 Gruzin

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

Опубликовано 20.02.2019 - 17:53

К шестой строке допишите то чего не хватает )))



#7 77mhz

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

Опубликовано 20.02.2019 - 18:00

К шестой строке допишите то чего не хватает )))

Спасибо



#8 mistika

mistika
  • Пользователь
  • 61 сообщений
  • Дизайн, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Марс

Опубликовано 04.12.2019 - 21:05

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

Теоретически я могу  тегами нечто подобное создать но + ув и tag в урле, а мне надо категория/раздел.

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

 

a03504ab8696c10e52243bcc73519a78.png


Изменено: mistika, 04.12.2019 - 21:08


#9 shooroop

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

Опубликовано 05.12.2019 - 02:44

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

Теоретически я могу  тегами нечто подобное создать но + ув и tag в урле, а мне надо категория/раздел.

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

 

a03504ab8696c10e52243bcc73519a78.png

 

 

добавить в таблице категориий tinyint   а в админке у категорий input  и если чекбокс у инпута стоит то не показывать категорию все просто



#10 mistika

mistika
  • Пользователь
  • 61 сообщений
  • Дизайн, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Марс

Опубликовано 05.12.2019 - 18:05

добавить в таблице категориий tinyint   а в админке у категорий input  и если чекбокс у инпута стоит то не показывать категорию все просто

Большое Человеческое Спасибо!

 

Извиняюсь за дотошность, в синтаксисе в нестандартных ситуациях не сильна, а вызвать их как можно в pruducts.tpl именно эти у которых чекбокс снят?



#11 shooroop

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

Опубликовано 05.12.2019 - 18:18

Большое Человеческое Спасибо!

 

Извиняюсь за дотошность, в синтаксисе в нестандартных ситуациях не сильна, а вызвать их как можно в pruducts.tpl именно эти у которых чекбокс снят?

 

<!-- Меню каталога -->
			<div id="catalog_menu">
					
			{* Рекурсивная функция вывода дерева категорий *}
			{function name=categories_tree_two}
			{if $categories}
			<ul>
			{foreach $categories as $c}
				{* Показываем только видимые категории *}
				{if $c->visible and $c->checkbox}
				{* Делаем вывод категорий С галкой "2й блок" *}
				{if $c->cat_2}
				
					<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_two categories=$c->subcategories}
					</li>
				{else}
				{/if}
				{/if}
			{/foreach}
			</ul>
			{/if}
			{/function}
			{categories_tree_two categories=$categories}
			</div>
			<!-- Меню каталога (The End)-->		

 

на примере стандартного кода   к {if $c->visible}  добавил {if $c->visible and $c->checkbox}
проверку на чекбокс если он равен 1 в базе   так же вам в категориес апи надо добавить в выборку с.checkbox
 


Изменено: shooroop, 05.12.2019 - 18:19


#12 mistika

mistika
  • Пользователь
  • 61 сообщений
  • Дизайн, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Марс

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

Основная мысль понятна. Спасибо. Сделала, может кому пригодится.
1. В поле s_categories поле [color=rgb(40,40,40)][font=helvetica, arial, sans-serif]tinyint со значением 1 или 0 кому как надо по умолчанию чтобы вкл выкл было[/font][/color]
[color=rgb(40,40,40)][font=helvetica, arial, sans-serif]2. в папке api categories.php где выбираем все категории там добавить имя созданного поля по примеру перечисленных полей, у всех по разному. у кого То c.visible, c.position и др, у кого-то без c смотрите сами.[/font][/color]
[color=rgb(40,40,40)][font=helvetica, arial, sans-serif]3. В папке view CategoryAdmin.php примерно с 30 по 40 строки есть [/font][/color]

$category->name = $this->request->post('name');$category->visible = $this->request->post('visible', 'boolean');

по примеру вставить название вашего поля
4. Дальше где вы хотите. может вы по другому захотите, мне удобно в самой категории галку ставить
В файле дизайна категории где основная форма вставляете
ВАШЕПОЛЕ}checked{/if}/> Включить

5. Далее в шаблоне дизайна делаете вывод где хотите, хотите в продукте, хотите в категориях.. Смысл в том, что если галка стоит - то отображать в месте вывода, если не стоит, то не отображать. галку АКТИВНЫЙ у категории в этом случае ставить не надо, чтобы в меню не отображалось
6. В файле sitemap.xml делаете вывод по строчкам не подскажу у меня расширенный сайтмэп, но раздел Категории там
if($c->chek) { $url = $simpla->config->root_url.'/catalog/'.esc($c->url); print "\t"."\n"; print "\t\t$url"."\n"; print "\t\t$lastmod"."\n"; }


Я сделала для подкатегорий это. Вывод в продуктсе выглядит так
{if $categories}

{foreach $category->subcategories as $c} {if $c->chek}
{$c->name}
{/if} {/foreach}

{/if}


И возник вопрос. вы могли бы подсказать как там else написать, чтобы сайт не падал :D смысл в чем. Оно выводит сейчас то, что я цепляю к родительской категории в подкатегориях, а как сделать так, чтобы
1. помимо прицепленных подкатегорий к категории 2 уровня, там же выводилась верхняя родительская категория 1 уровня?
2. в родительской категории 1 уровня выводились все доп поля CHEK!!!! из дочерних подкатегорий?

ппц сложно объяснить, попробую пример написать

[b]Категория главная[/b]
Подкатегория - у нее [i]скрытые[/i]
[i] [/i][u][i]Подподкатегория[/i][/u][i] - тоже имеет скрытые[/i]

В подкатегории и [u][i]Подподкатегория[/i][/u][i] [/i]я бы хотела вывести [b]Категория главная[/b] (галочку включить ставим)

А в [b]Категория главная [/b] вывести все [i]скрытые [/i]из всех подкатегорий)

 

з.ы. у меня поле chek  вы можете назвать хоть 666

 


Изменено: mistika, 10.12.2019 - 15:27


#13 shooroop

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

Опубликовано 10.12.2019 - 17:01

Основная мысль понятна. Спасибо. Сделала, может кому пригодится.
1. В поле s_categories поле tinyint со значением 1 или 0 кому как надо по умолчанию чтобы вкл выкл было
2. в папке api categories.php где выбираем все категории там добавить имя созданного поля по примеру перечисленных полей, у всех по разному. у кого То c.visible, c.position и др, у кого-то без c смотрите сами.
3. В папке view CategoryAdmin.php примерно с 30 по 40 строки есть

$category->name = $this->request->post('name');$category->visible = $this->request->post('visible', 'boolean');

по примеру вставить название вашего поля
4. Дальше где вы хотите. может вы по другому захотите, мне удобно в самой категории галку ставить
В файле дизайна категории где основная форма вставляете
ВАШЕПОЛЕ}checked{/if}/> Включить

5. Далее в шаблоне дизайна делаете вывод где хотите, хотите в продукте, хотите в категориях.. Смысл в том, что если галка стоит - то отображать в месте вывода, если не стоит, то не отображать. галку АКТИВНЫЙ у категории в этом случае ставить не надо, чтобы в меню не отображалось
6. В файле sitemap.xml делаете вывод по строчкам не подскажу у меня расширенный сайтмэп, но раздел Категории там
if($c->chek) { $url = $simpla->config->root_url.'/catalog/'.esc($c->url); print "\t"."\n"; print "\t\t$url"."\n"; print "\t\t$lastmod"."\n"; }


Я сделала для подкатегорий это. Вывод в продуктсе выглядит так
{if $categories}

{foreach $category->subcategories as $c} {if $c->chek}
{$c->name}
{/if} {/foreach}

{/if}


И возник вопрос. вы могли бы подсказать как там else написать, чтобы сайт не падал :D смысл в чем. Оно выводит сейчас то, что я цепляю к родительской категории в подкатегориях, а как сделать так, чтобы
1. помимо прицепленных подкатегорий к категории 2 уровня, там же выводилась верхняя родительская категория 1 уровня?
2. в родительской категории 1 уровня выводились все доп поля CHEK!!!! из дочерних подкатегорий?

ппц сложно объяснить, попробую пример написать

Категория главная
Подкатегория - у нее скрытые
Подподкатегория - тоже имеет скрытые

В подкатегории и Подподкатегория я бы хотела вывести Категория главная (галочку включить ставим)

А в Категория главная вывести все скрытые из всех подкатегорий)

 

з.ы. у меня поле chek  вы можете назвать хоть 666

 

 

view/Indexview.php

 

после

 

 // Категории товаров
		$this->design->assign('categories', $this->categories->get_categories_tree());

 

добавить

 // Категории товаров
		$this->design->assign('categories_check', $this->categories->get_categories_tree(array('check'=>1)));

 

и там где не надо check выводить в шаблоне  изменить

 

{function name=categories_tree_new}
			{if $categories_check}
	.....
			
			{categories_tree_new categories=$categories_check}
			 
 {/if}                        

 


 


Изменено: shooroop, 10.12.2019 - 17:11


#14 mistika

mistika
  • Пользователь
  • 61 сообщений
  • Дизайн, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Марс

Опубликовано 16.12.2019 - 20:21

Большое спасибо.

 

Но у меня возникла непредвиденная ситуация с предыдущим решением.

Всё работает примерно сутки, потом на месте витрины в этих скрытых подкатегориях появляется ошибка 404. 

Первый раз помогло просто почистить кэш на сервере.

через сутки опять отвалилось. Чистка кэша не помогла, закомментировала код, через несколько часов раскомментировала - опять работает. Через сутки 404) 

Что может вызывать такой неожиданный эффект?



#15 shooroop

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

Опубликовано 17.12.2019 - 00:58

Большое спасибо.

 

Но у меня возникла непредвиденная ситуация с предыдущим решением.

Всё работает примерно сутки, потом на месте витрины в этих скрытых подкатегориях появляется ошибка 404. 

Первый раз помогло просто почистить кэш на сервере.

через сутки опять отвалилось. Чистка кэша не помогла, закомментировала код, через несколько часов раскомментировала - опять работает. Через сутки 404) 

Что может вызывать такой неожиданный эффект?

 

хостинг?



#16 mistika

mistika
  • Пользователь
  • 61 сообщений
  • Дизайн, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Марс

Опубликовано 17.12.2019 - 12:56

fozzy. Весь сайт корректно работает ошибка именно на эти доп категории. 

А какой механизм сбоя может быть на хостинге? Они безбожно тупят я третьи сутки с ними переписываюсь

В cpanel

появились вот такие ошибки. Техподдержка вместо ответа wtf попросила спросить у программиста какие требования

под мой сайт симпла 2.2.4 

BtQgP4UdoHA.jpg



#17 alexivchenko

alexivchenko
  • Пользователь
  • 162 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Курск

Опубликовано 17.12.2019 - 13:04

fozzy. Весь сайт корректно работает ошибка именно на эти доп категории. 

А какой механизм сбоя может быть на хостинге? Они безбожно тупят я третьи сутки с ними переписываюсь

В cpanel

появились вот такие ошибки. Техподдержка вместо ответа wtf попросила спросить у программиста какие требования

под мой сайт симпла 2.2.4 

BtQgP4UdoHA.jpg

 

подозреваю, что это ваш сайт pechnoydom.ru и на нем стоит включенный smarty_caching = true; 

Выключите его, он не правильно работает. 

На вашем месте, я бы обновил Simpla и Smarty


Изменено: alexivchenko, 17.12.2019 - 13:04


#18 mistika

mistika
  • Пользователь
  • 61 сообщений
  • Дизайн, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Марс

Опубликовано 17.12.2019 - 13:14

Спасибо большое, сейчас попробую

Я бы с радостью обновила, но у меня ппц сколько изменений и доработок навернуто, я не знаю как обновить не задев их.

 

нет(( выключено

smarty_caching = false; 


Изменено: mistika, 17.12.2019 - 13:16


#19 alexivchenko

alexivchenko
  • Пользователь
  • 162 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Курск

Опубликовано 17.12.2019 - 14:36

или у вас в htaccess указана настройка кэширования не верно 

<ifModule mod_expires.c>
	ExpiresActive On
	#по умолчанию кеш в 5 секунд
	ExpiresDefault "access plus 5 seconds"
	#кэшировать флэш и изображения на месяц
	ExpiresByType image/x-icon "access plus 2592000 seconds"
	ExpiresByType image/jpeg "access plus 2592000 seconds"
	ExpiresByType image/png "access plus 2592000 seconds"
	ExpiresByType image/gif "access plus 2592000 seconds"
	ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
	#кэшировать css, javascript и текстовые файлы на одну неделю
	ExpiresByType text/css "access plus 604800 seconds"
	ExpiresByType text/javascript "access plus 604800 seconds"
	ExpiresByType application/javascript "access plus 604800 seconds"
	ExpiresByType application/x-javascript "access plus 604800 seconds"
	#кэшировать html и htm файлы на один день
	ExpiresByType text/html "access plus 43200 seconds"
	#кэшировать xml файлы на десять минут
	ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule> 

3 дня это 259200 в секундах 

Получается, что у вас 

Строка ExpiresByType text/javascript "access plus 259200  seconds"

 указана как 

ExpiresByType text/js "access plus 259200  seconds"



#20 mistika

mistika
  • Пользователь
  • 61 сообщений
  • Дизайн, Верстка, Заказчик
  • Версия CMS:2.x
  • Откуда:Марс

Опубликовано 18.12.2019 - 20:59

или у вас в htaccess указана настройка кэширования не верно 

<ifModule mod_expires.c>
	ExpiresActive On
	#по умолчанию кеш в 5 секунд
	ExpiresDefault "access plus 5 seconds"
	#кэшировать флэш и изображения на месяц
	ExpiresByType image/x-icon "access plus 2592000 seconds"
	ExpiresByType image/jpeg "access plus 2592000 seconds"
	ExpiresByType image/png "access plus 2592000 seconds"
	ExpiresByType image/gif "access plus 2592000 seconds"
	ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
	#кэшировать css, javascript и текстовые файлы на одну неделю
	ExpiresByType text/css "access plus 604800 seconds"
	ExpiresByType text/javascript "access plus 604800 seconds"
	ExpiresByType application/javascript "access plus 604800 seconds"
	ExpiresByType application/x-javascript "access plus 604800 seconds"
	#кэшировать html и htm файлы на один день
	ExpiresByType text/html "access plus 43200 seconds"
	#кэшировать xml файлы на десять минут
	ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule> 

3 дня это 259200 в секундах 

Получается, что у вас 

Строка ExpiresByType text/javascript "access plus 259200  seconds"

 указана как 

ExpiresByType text/js "access plus 259200  seconds"

Стоп.. 

А вы где этот кусок взяли? у меня вообще нет в секундах

ExpiresByType text/javascript "access plus 1 year"   вот так у меня

 

 

А, что проблема с кэшированием я рассматривала как вариант

но увы, этот код, что вы приводите я поставила уже после того как отчаялась и написала сюда.

Собственно этот кусок был вставлен как одна из попыток решить проблему.

родной код был такой.

 

<ifmodule mod_expires.c>
    <filesmatch "\.(jpg|jpeg|png|gif|js|css|swf|ico|woff|mp3)$">
        ExpiresActive on
        ExpiresDefault "access plus 7 days"
    </filesmatch>
</ifmodule>

Изменено: mistika, 18.12.2019 - 21:06





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

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