weranda

weranda

Был в сети 15 июня 2025, 09:20
Заказы не принимаю
0
Из вашего совета понял вот что:
1. вызываем pdoMenu
2. в чанке шаблона меню указываем, что если идентификатор текущей страницы не равен какому-то непонятному идентификатору, то выводим меню… в общем, не понял я посыла, что и на что влияет)
Могли бы чуть более подробно рассказать?
0
Я не понимаю как это поможет упростить мой случай. Расскажете?
Для примера еще раз поясню, но теперь наглядно. Вот скриншот ресурса:

Выбор значений может потребоваться в любом поле и даже несколько раз с разными данными в одном ресурсе.
0
Да, именно так: список написал в сниппете и там же его редактирую.
По поводу дополнительного поле и MIGX мне малость непонятен алгоритм. Вы предлагаете добавить дополнительное поле, вписать в него в отдельно взятом ресурсе список, потом в в каком-либо месте (шаблон, другое поле ресурса) вывести сниппет, который будет принимать данные из дополнительного поля MIGX и выводить случайные записи в нужном количестве, которое будет задаваться все в том же сниппете. Если это так, то какая разница между полем MIGX и другим дополнительным полем стандартного типа? Если это так, то это вовсе не упрощает ситуацию, а лишь делает её немного другой — только вид сбоку;) Если это так, то как тогда быть если в одном ресурсе, к примеру, в пяти полях вывести выбор из нескольких или произвольного колисества списков? — Добавлять Х MIGX полей? Если же это не так, то поясните пожалуйста мысль, если можно, то чуточку подробнее.
0
1. Я его в сниппет засунул.
2. От необходимости/желания. Особых условий нет. Примеры привел выше, вариантов выбора может быть от двух до десятков.
3. Если мне нужно сделать простой выбор между двумя вариантами, то если надо будет лезть отдельно в MIGX, то это не особо будет «доставлять».
0
А можно запилить в вашем компоненте вот какую штуку.
1. Человек голосует на странице за услугу, ставит оценки звездочками трем полям: скорость, цена, качество.
2. На странице услуги выводится частный и обобщенный рейтинг. К примеру, человек поставил такие оценки: скорость (3 звезды), цена (4 звезды), качество (5 звезд). Должно быть два блока: в первом выводится обобщенный рейтинг ((3+4+5)/3=4), а во втором частный — отдельно по каждому полю (скорость, цена, качество). Когда голосует другой человек этот рейтинг в двух блоках корректируется с учетом его оценок.
3. В каталоге услуг, где несколько услуг, показывать этот рейтинг услугам (обобщенный по услуге и детальный (обобщенный) по полям) и выводить услуги в отсортированном виде по обобщенному рейтингу.
Такое можно сделать с помощью вашего компонента или придется серьезно доделывать/переделывать его?
0
Класс, спасибо за разъяснения.
Может быть у вас завалялась ссылочка на полезный материал по этим плейсхолдерам. Посмотрел информацию по ссылке, данной вами выше, — она скудна и без объяснений подобно вашим не разберешься.
0
Правильно ли я понял? — Сначала в шаблоне один раз перед нужными полями мы запускаем сниппет с именем Snippet, передаем в него нужные нам поля (content,description,tv.tvname). Затем сниппет запускается, включается прописанная в нем логика (делает замены) и закрепляет результат за некими переменными, именуемыми по именам переданных полей (content,description,tv.tvname). После этого в шаблоне становится доступными результаты работы сниппета, доступ к которым можно получить через общий префикс и имена, которые были заданы в сниппете.
Я просто никогда раньше с плейсхолдерами не сталкивался.
0
Ладно, попробую еще раз объяснить.

Имеем три поля:
//Поле 1
зима, весна, лето, осень

//Поле 2
весна и лето — теплые времена года

//Поле 3
зима и осень — прохладные времена года. пьем кофе.

Имеем список замен (список будет исключительно в единичном экземпляре):
зима —> зима (холод)
весна —> весна (тепло)
лето —> лето (тепло)
осень —> осень (холод)
кофе —> кофе (горячий)

После преобразования должно получиться вот что:
//Поле 1 (4 совпадения, 4 замены)
зима (холод), весна (тепло), лето (тепло), осень (холод)

//Поле 2 (4 совпадения, 0 замен, так как замены уже были)
весна и лето — теплые времена года

//Поле 3 (1 совпадения, 1 замена)
зима и осень — прохладные времена года. пьем кофе (горячий).

Т. е. должна быть только одна замена из списка замен по всем полям, если их объединить.
0
Либо я не понимаю, либо плохо объяснил.
Давайте попробую еще раз. Для примера возьмем всего два поля и две замены. В первом и во втором полях встречаются по два искомых для замены слова. Используя первый вариант (через один и тот же модификатор для каждого поля), в каждом из двух полей мы получим по две замены. Этот вариант не подходит, так как в нем должно было бы замениться только два первых совпадения, а они встречаются в первом поле. Во втором же поле замен не должно было быть, так как по одной из них уже сделано было в первом поле.
Список замен один, общий для всех полей. Таким образом первый вариант не подходит из-за возможности повторения множественности замен, а второй — из-за того, что список замен общий для всех полей.
Третий предложенный вами вариант с обработкой всего кода страницы тоже не подход, так как нужна обработка данных именно в некоторых полях, а не во всех.
0
Малость не понял. Поясню что я имел в виду выше. Допустим, есть список замен из 100 слов. Мне без разницы где встретится слово — в первом поле, втором или третьем, но если оно есть на странице в любом из них, то должно быть заменено. Я так понял, что вы предлагаете каким-то образом разделить список замен так, чтобы для каждого из поля (content, dexctiption и пр.) не было пересечений в списках замен. Вы это предлагаете? Или же вы предлагаете добавлять дополнительную логику и в ней проверять были ли замены в предыдущем блоке для следующего?