77mhz Posted February 20, 2019 Report Share Posted February 20, 2019 Добрый день, подскажите, возможно ли убрать нужную мне категорию из меню ? Quote Link to post Share on other sites
Noxter Posted February 20, 2019 Report Share Posted February 20, 2019 Добрый день, подскажите, возможно ли убрать нужную мне категорию из меню ?Скройте её в админке. Quote Link to post Share on other sites
77mhz Posted February 20, 2019 Author Report Share Posted February 20, 2019 Скройте её в админке.Сделать не активной ? Тогда категория перестаёт отображаться везде. Мне нужно что бы она отображалась по ссылке но не в меню Quote Link to post Share on other sites
Solution Kosjak76 Posted February 20, 2019 Solution Report Share Posted February 20, 2019 {if $c->visible && $c->id != 'АйДи_вашей_категории'} Как-то так Quote Link to post Share on other sites
77mhz Posted February 20, 2019 Author Report Share Posted February 20, 2019 {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} Подскажите, в какое месте поставить ? Quote Link to post Share on other sites
Gruzin Posted February 20, 2019 Report Share Posted February 20, 2019 К шестой строке допишите то чего не хватает ))) Quote Link to post Share on other sites
77mhz Posted February 20, 2019 Author Report Share Posted February 20, 2019 К шестой строке допишите то чего не хватает )))Спасибо Quote Link to post Share on other sites
mistika Posted December 4, 2019 Report Share Posted December 4, 2019 (edited) А если надо создать группу категорий, которые не надо отображать в меню, но при этом в сайтмэпе они должны быть и их же скрытые надо вывести в отдельном меню. Никто таким не занимался, нет идей как это сделать? Теоретически я могу тегами нечто подобное создать но + ув и tag в урле, а мне надо категория/раздел.при этом материнская категория должна учитываться, т.к. эти подкатегории относятся к отдельным группам товаров. грубо говоря, мне надо создать что то типа перед витриной в категориях. Edited December 4, 2019 by mistika Quote Link to post Share on other sites
shooroop Posted December 4, 2019 Report Share Posted December 4, 2019 А если надо создать группу категорий, которые не надо отображать в меню, но при этом в сайтмэпе они должны быть и их же скрытые надо вывести в отдельном меню. Никто таким не занимался, нет идей как это сделать? Теоретически я могу тегами нечто подобное создать но + ув и tag в урле, а мне надо категория/раздел.при этом материнская категория должна учитываться, т.к. эти подкатегории относятся к отдельным группам товаров. грубо говоря, мне надо создать что то типа перед витриной в категориях. добавить в таблице категориий tinyint а в админке у категорий input и если чекбокс у инпута стоит то не показывать категорию все просто Quote Link to post Share on other sites
mistika Posted December 5, 2019 Report Share Posted December 5, 2019 добавить в таблице категориий tinyint а в админке у категорий input и если чекбокс у инпута стоит то не показывать категорию все простоБольшое Человеческое Спасибо! Извиняюсь за дотошность, в синтаксисе в нестандартных ситуациях не сильна, а вызвать их как можно в pruducts.tpl именно эти у которых чекбокс снят? Quote Link to post Share on other sites
shooroop Posted December 5, 2019 Report Share Posted December 5, 2019 (edited) Большое Человеческое Спасибо! Извиняюсь за дотошность, в синтаксисе в нестандартных ситуациях не сильна, а вызвать их как можно в 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 Edited December 5, 2019 by shooroop Quote Link to post Share on other sites
mistika Posted December 10, 2019 Report Share Posted December 10, 2019 (edited) Основная мысль понятна. Спасибо. Сделала, может кому пригодится.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 написать, чтобы сайт не падал смысл в чем. Оно выводит сейчас то, что я цепляю к родительской категории в подкатегориях, а как сделать так, чтобы1. помимо прицепленных подкатегорий к категории 2 уровня, там же выводилась верхняя родительская категория 1 уровня?2. в родительской категории 1 уровня выводились все доп поля CHEK!!!! из дочерних подкатегорий?ппц сложно объяснить, попробую пример написатьКатегория главнаяПодкатегория - у нее скрытые Подподкатегория - тоже имеет скрытыеВ подкатегории и Подподкатегория я бы хотела вывести Категория главная (галочку включить ставим)А в Категория главная вывести все скрытые из всех подкатегорий) з.ы. у меня поле chek вы можете назвать хоть 666 Edited December 10, 2019 by mistika Quote Link to post Share on other sites
shooroop Posted December 10, 2019 Report Share Posted December 10, 2019 (edited) Основная мысль понятна. Спасибо. Сделала, может кому пригодится.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 написать, чтобы сайт не падал смысл в чем. Оно выводит сейчас то, что я цепляю к родительской категории в подкатегориях, а как сделать так, чтобы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} Edited December 10, 2019 by shooroop Quote Link to post Share on other sites
mistika Posted December 16, 2019 Report Share Posted December 16, 2019 Большое спасибо. Но у меня возникла непредвиденная ситуация с предыдущим решением.Всё работает примерно сутки, потом на месте витрины в этих скрытых подкатегориях появляется ошибка 404. Первый раз помогло просто почистить кэш на сервере.через сутки опять отвалилось. Чистка кэша не помогла, закомментировала код, через несколько часов раскомментировала - опять работает. Через сутки 404) Что может вызывать такой неожиданный эффект? Quote Link to post Share on other sites
shooroop Posted December 16, 2019 Report Share Posted December 16, 2019 Большое спасибо. Но у меня возникла непредвиденная ситуация с предыдущим решением.Всё работает примерно сутки, потом на месте витрины в этих скрытых подкатегориях появляется ошибка 404. Первый раз помогло просто почистить кэш на сервере.через сутки опять отвалилось. Чистка кэша не помогла, закомментировала код, через несколько часов раскомментировала - опять работает. Через сутки 404) Что может вызывать такой неожиданный эффект? хостинг? Quote Link to post Share on other sites
mistika Posted December 17, 2019 Report Share Posted December 17, 2019 fozzy. Весь сайт корректно работает ошибка именно на эти доп категории. А какой механизм сбоя может быть на хостинге? Они безбожно тупят я третьи сутки с ними переписываюсьВ cpanelпоявились вот такие ошибки. Техподдержка вместо ответа wtf попросила спросить у программиста какие требованияпод мой сайт симпла 2.2.4 Quote Link to post Share on other sites
alexivchenko Posted December 17, 2019 Report Share Posted December 17, 2019 (edited) fozzy. Весь сайт корректно работает ошибка именно на эти доп категории. А какой механизм сбоя может быть на хостинге? Они безбожно тупят я третьи сутки с ними переписываюсьВ cpanelпоявились вот такие ошибки. Техподдержка вместо ответа wtf попросила спросить у программиста какие требованияпод мой сайт симпла 2.2.4 подозреваю, что это ваш сайт pechnoydom.ru и на нем стоит включенный smarty_caching = true; Выключите его, он не правильно работает. На вашем месте, я бы обновил Simpla и Smarty Edited December 17, 2019 by alexivchenko Quote Link to post Share on other sites
mistika Posted December 17, 2019 Report Share Posted December 17, 2019 (edited) Спасибо большое, сейчас попробуюЯ бы с радостью обновила, но у меня ппц сколько изменений и доработок навернуто, я не знаю как обновить не задев их. нет(( выключеноsmarty_caching = false; Edited December 17, 2019 by mistika Quote Link to post Share on other sites
alexivchenko Posted December 17, 2019 Report Share Posted December 17, 2019 или у вас в 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" Quote Link to post Share on other sites
mistika Posted December 18, 2019 Report Share Posted December 18, 2019 (edited) или у вас в 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> Edited December 18, 2019 by mistika Quote Link to post Share on other sites
mistika Posted December 19, 2019 Report Share Posted December 19, 2019 или у вас в htaccess указана настройка кэширования не верно Получается, что у вас Строка ExpiresByType text/javascript "access plus 259200 seconds" указана как ExpiresByType text/js "access plus 259200 seconds" Мне пора в отпуск. 5 лет без выходных и отпусков не пошли на пользуВсё дошло до жирафа.Вы совершенно правы. Огромное спасибо, именно это и было проблемой. Quote Link to post Share on other sites
mistika Posted December 19, 2019 Report Share Posted December 19, 2019 хрена лысого как говорится, теперь в хроме вроде как работает, в опере нет. при этом если чекать код ответа сервера он 404.Что я сделала не так?) Quote Link to post Share on other sites
alexivchenko Posted December 19, 2019 Report Share Posted December 19, 2019 хрена лысого как говорится, теперь в хроме вроде как работает, в опере нет. при этом если чекать код ответа сервера он 404.Что я сделала не так?)Подчистить кеш и куки в опере Quote Link to post Share on other sites
mistika Posted December 20, 2019 Report Share Posted December 20, 2019 Ну вот так всегда, а ларчик просто открывался. Я же писала, что они выключены?)) и что вывод для них в сайтмэпе делала из-за этого, что выключенное там не отображается.Надо как выше писали в меню категорий {if $c->visible and !$c->имя_поля} вставить и включить в админке. Пока всё работает) Большое спасибо всем, кто принял участие в ветке. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.