Какой лимит на количество переменных в условных операторах?

Голоса: +1

У меня довольно сложная структура у сайта и понадобились дополнительные категории, в связи с этим я делаю новые разделы и в них кучу новых категорий. Переношу в них материалы и делаю редиректы. Проблема вылезла где не надо. Менюшка категорий вызываемая тегом $CATEGORIES$, должна показываться в строго определённых местах. Приходится юзать вот такую массивную конструкцию:

<?if(
$URI_ID$='ldCat79' or
$URI_ID$='ldCat80' or 
$URI_ID$='ldCat81' or 
$URI_ID$='ldCat82' or 
$URI_ID$='ldCat83' or 
$URI_ID$='ldCat84' or 
$URI_ID$='ldCat85' or 
$URI_ID$='ldCat71' or 
$URI_ID$='ldCat72' or 
$URI_ID$='ldCat73' or 
$URI_ID$='ldCat74' or 
$URI_ID$='ldCat75' or 
$URI_ID$='ldCat76' or 
$URI_ID$='ldCat77' or 
$URI_ID$='ldCat78' or 
$CID$='80' or 
$CID$='81' or 
$CID$='82' or 
$CID$='83' or 
$CID$='84' or 
$CID$='85' or 
$CID$='71' or 
$CID$='72' or 
$CID$='73' or 
$CID$='74' or 
$CID$='75' or 
$CID$='76' or 
$CID$='77' or 
$CID$='78' or 
$URI_ID$='ldCat70'
)?>

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

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

| Автор: | Категория: Вопросы новичков

Ответов: 3

голоса: 0
 
Лучший ответ
Приведите пример на одном разделе, так как код $CATEGORIES показываются только для своих разделов... и как бы вопросов нет, или у вас как то по другому? Опишите подробней. Нужно только в определённых разделах и их категориях показывать? Сколько таких разделов у вас?
| Автор:
Выбор ответа лучшим | | Автор: Hard xereden

$CATEGORIES$ к сожалению показывается не только для своих разделов. По умолчанию, если даже нет ни одного раздела, то пустота является коренным разделом, а потом на страницах ниже уровнем выводится содержимое раздела. Если создано несколько разделов, то на страницах верхнего уровня будет меню из списка этих разделов.

А у меня ситуация следующая: В разделе по умолчанию есть 4 раздела и десяток категорий без раздела и на верхнем уровне показывается не адекватное меню, а полный бред. А нужно чтобы показывалось содержимое 3х разделов в этих самых разделах.

Hard xereden,
Где вы хотите отсортировать? На главной странице? Если вы переходите в раздел где есть категории, то оператор показывает категории этого раздела, тут всё верно получается? А вот если вы переходите в категорию без раздела то оператор показывает все все корневые категории и разделы, вот от этого вы хотите избавится?
Sentimo,
Я же написал не на главной, а в 3х разделах. На страницах раздела, на страницах категорий этого раздела и на страницах материалов категорий этого раздела. На всём остальном сайте они показываться не должны.  Хоть бы уже какое то решение найти. Я сейчас вижу только вариант сделать большущее меню из 44 изначальных наименований, которое будет к тому же раскрываться для адекватной навигации. Но, это хреновое решение, так как займет оно весь сайдбар и будет длиной до пола...
Hard xereden,
Напишите урлы ваших трёх разделов, напишу код.
Sentimo,
Не хочу тут ссылки оставлять, можно на мыло? Или если нужны только ID то это: 86, 79 и 70
Hard xereden,
Можно без домена, типа так /load/название_раздела/ и так 3 штуки.
Sentimo,
/load/american_truck_simulator_mody/86  /load/banished_mody/79  /load/farming_simulator_2015_mody/70

<?if(substr($REQUEST_URI$,0,36)='/load/american_truck_simulator_mody/' or substr($REQUEST_URI$,0,20)='/load/banished_mody/' or substr($REQUEST_URI$,0,34)='/load/farming_simulator_2015_mody/' or $URI_ID$='ldMain')?>$CATEGORIES$<?endif?>

 Красным главная, если не нужна, удаляем.

Sentimo,

В /load/american_truck_simulator_mody/ не работает, а в других разделах работает. 

Подправил. Пробуйте.
Sentimo,
Спасибо огромное! Так всё работает. А где мне прочитать что значат эти строки substr($REQUEST_URI$,0,36)? Дальше подобных разделов будет становится больше и мне придётся делать это самому.     Всё понял как это делать в будущем. Но, хочется заметить, что подсказки системные в help это взрыв мозга! Ещё раз большое спасибо!
Hard xereden,
Этот урл $REQUEST_URI$,0,36 обрезаем от начала до слеша конца названия раздела 0 - начало, 36 - кол-во символов, затем сравниваем.
Голоса: +1
До десяти значений
| Автор:
Как это до 10 если я вам тут 30 линканул, которые работают?!
значит я не поняла то, что вы написали. попробую ещё раз.  попробуйте диапазонами, только для $CID$ и $URI_ID$. вот примерно как можно сделать http://forum.ucoz.ru/forum/24-1006-644083-16-1286659690  если опять неправильно поняла, то попробуйте описать более детально. что и куда добавили
webanet,
Я так окончательно запутаюсь. Короче! У меня есть раздел load/10 в нём тьма категорий с названиями игр в которых лежат моды, а есть другие разделы с одной конкретной игрой делящейся на категории. Надо чтоб в разделах посвящённых конкретной игре была менюшка с категориями, а в других местах она не показывалась. И всё это безобразие усугубляется наличием категорий без разделов. Которые в корневом разделе. То, что я выше скинул работает, но когда количество строк становится примерно больше 50, то это всё тупо пропадает.
Hard xereden,
Делайте все в одну строку, так будет меньше строк занимать и будет все работать (должно).
Yuri_Geruk,
Так мне кажется там дело не в количестве строк, а в количестве переменных, так как перенос строки это просто для удобства.
Hard xereden,
На количество переменных нет ограничения, просто вероятно вы достигли лимита по длине шаблоне, если писать в одну строку, это экономит место.
Yuri_Geruk,
Сделал вот так <?if( $URI_ID$='ldCat79' or $URI_ID$='ldCat80' or $URI_ID$='ldCat81' or $URI_ID$='ldCat82' or $URI_ID$='ldCat83' or $URI_ID$='ldCat84' or $URI_ID$='ldCat85' or $CID$='80' or $CID$='81' or $CID$='82' or $CID$='83' or $CID$='84' or $CID$='85' or  $URI_ID$='ldCat70' or $URI_ID$='ldCat71' or $URI_ID$='ldCat72' or $URI_ID$='ldCat73' or $URI_ID$='ldCat74' or $URI_ID$='ldCat75' or $URI_ID$='ldCat76' or $URI_ID$='ldCat77' or $URI_ID$='ldCat78' or $CID$='71' or $CID$='72' or $CID$='73' or $CID$='74' or $CID$='75' or $CID$='76' or $CID$='77' or $CID$='78' or $URI_ID$='ldCat86' or $URI_ID$='ldCat87' or $URI_ID$='ldCat88' or $URI_ID$='ldCat89' or $URI_ID$='ldCat90' or $URI_ID$='ldCat91' or $URI_ID$='ldCat92' or $URI_ID$='ldCat93' or $URI_ID$='ldCat94' or $URI_ID$='ldCat95' or $URI_ID$='ldCat96' or $CID$='87' or $CID$='88' or $CID$='89' or $CID$='90' or $CID$='91' or $CID$='92' or $CID$='93' or $CID$='94' or $CID$='95' or $CID$='96' )?> Не работает. Если делать из 2х строк, то работает, как и первый вариант с кучей строк.
Hard xereden,
Зачем в данном условии вы дублируете дважды категории и с помощью ури айди и сид, оставьте ури айди без сид так как вы захламляете код.
Yuri_Geruk,
Приходится дублировать, так как если напишу только ури, то на страницах с материалами не будет менюшки. Лимит на переменные 49 штук, вставляю 50 и все исчезает. Вот так вот.
голоса: 0
Считаю этот путь не продуктивным в данной ситуации. Гораздо удобнее воспользоваться  функцией   <?$RELATED_ENTRIES$(10)?> - выводящей похожие материалы определяемые по тэгам. Для каждой игры проставляем уникальные тэги, а код ставим в нужном месте. Пользуюсь им не менее 6-7 лет. Работает отлично.
| Автор:
Повторно показано | | Автор: Yuri_Geruk

Это тут при чём вообще? Тут речь о категориях. А <!--?$RELATED_ENTRIES$(10)?--> информер убогий. Даже если запилить к каждому материалу отдельно тег как название категории, то 1) это придётся сделать много тысяч раз 2) А если категорий больше 10? 3) Результаты поиска на Юкозе выводятся через ...***, да и то не всегда! А вообще до вчерашнего релиза в блоге отключалки сортировки по дате <!--?$RELATED_ENTRIES$(10)?--> выводил одно и то же, всегда. И кстаит отключалку то когда запилят в ПУ? Нет её там до сих пор.

Hard xereden,
Не очень, однако, учтиво. Спасибо модератору за правку. Тем не менее думаю, есть решение покороче. Использовать код  $SECTION_NAME$, он работает и в разделе и в категории и на странице материала
Юрий Евстафьев,
Возможно Вы имели в виду $SECTION_URL$?
...