Засунуть TV в плейсхолдер
Приветствую, друзья! Помогите, пожалуйста, разобраться, как запихнуть значение TV в плейсхолдер?
Задача: требуется запихнуть значение TV с названием sklad-id (тип ввода — текст) в плейсхолдер skladID
Что было сделано:
1) TV с именем sklad-id заполнено значением: 45,39 (просто через запятую перечисляются id нужных складов)
2) Для заполнения плейсхолдера нужным значением был создан сниппет sklady со следующим содержимым:
Перед тем, как вызывать плейсхолдер skladID, делаю вызов сниппета [[sklady]] для инициализации плейсхолдера. Далее когда вызываю
вместо ожидаемого значения 45,39, введенного ранее в тв, получаю:
А мне нужно в плейсхолдере вывести точно такое же значение, какое было в твшке…
Задача: требуется запихнуть значение TV с названием sklad-id (тип ввода — текст) в плейсхолдер skladID
Что было сделано:
1) TV с именем sklad-id заполнено значением: 45,39 (просто через запятую перечисляются id нужных складов)
2) Для заполнения плейсхолдера нужным значением был создан сниппет sklady со следующим содержимым:
// в переменную idskladov получаем значение из твешки sklad-id
$idskladov = $modx->resource->get('sklad-id');
// в плейсхолдер skladID запихиваем полученную переменную
$modx->setPlaceholder('skladID', '$idskladov');Перед тем, как вызывать плейсхолдер skladID, делаю вызов сниппета [[sklady]] для инициализации плейсхолдера. Далее когда вызываю
[[+skladID]]вместо ожидаемого значения 45,39, введенного ранее в тв, получаю:
Array ( [0] => sklad-id [1] => [2] => default [3] => [4] => text )А мне нужно в плейсхолдере вывести точно такое же значение, какое было в твшке…
Комментарии: 18
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
2. Кавычки возможно не те, уберите
3. Думаю, что сниппет нужно вызывать не кешированным (не факт, что обязательно):
А как быть, если сниппет
должен вызываться внутри выборки pdoResources? Например, если это страница категории? В этом случае конструкция
вставляет в плейсхолдер skladID значение TV самой страницы категории, а нужно вставлять значения TV элементов выборки pdoResources
внутри выборки так:
или типа того… А лучше продумайте архитектуру
Андрей, помогите, пожалуйста переписать этот кусочек кода
так, чтобы он вытягивал ТВ sklad-id' с учетом полученного
Стоит задача вывести таблицу продукции, где столбцы это: Наименование товара, Спецификация, Склад, Цена с НДС, Цена без НДС. Соответственно строки это отдельный вид продукции.
Решил виды продукции сделать отдельными ресурсами с дополнительными полями.
В ячейке продукции «Склад» нужно будет указать склады (дополнительное поле sklad-id, где через запятую перечисляю айдишники нужных складов — склады тоже отдельные ресурсы). Каждый склад будет отображаться в таблице в виде ссылки, щелкая по которой будут отображаться контакты менеджеров выбранного склада, отвечающих за выбранный тип продукции во всплывающем окне.
В основном таблицу продукции получается вывести без проблем, кроме ячеек со складами. Для вывода ресурсов продукции (строк таблицы) использую pdoResources. Для вывода складов в ячейке «Склад» тоже использую выборку pdoResources, где в параметр хочу передать значения из дополнительного поля sklad-id ресурса вида продукции (чтобы из всего множества складов в ячейке вывести только те, где есть данная продукция).
Итого у меня получается ситуация, когда я внутри одной выборки pdoResources (когда формирую виды продукции в строках таблицы) использую еще одну выборку pdoResources (для формирования нужного списка складов).
Проблема заключается в том, что я во внутреннюю выборку pdoResources, формирующую склады в ячейке, не могу в параметр запихнуть значение дополнительного поля sklad-id ресурса с видом продукции.
Поэтому я решил при формировании строки с видом продукции (во внешней выборке pdoResources) в плейсхолдер skladID запихнуть значение дополнительного поля sklad-id ресурса продукции. А далее я этот плейсхолдер хочу использовать уже во внутренней выборке pdoResources, формирующей склады, засунув его в параметр .
Надеюсь, получилось пояснить задумку.
Для вывода таблицы продукции получил такой код:
Код сниппета sklady по подсказке Владимира сейчас имеет вид:
Но почему-то данный сниппет не отлавливает значение дополнительного поля sklad-id
Копируете сниппет sklady например в sklady1, содержание:
Убираете вызов
И вместо
вставляете
не уверен, правда, что парсер это переварит
Сделал, как вы написали, но вместо нужных складов (указанных в дополнительном поле), выводятся все. Кажется, сниппет не отлавливает значение тв…
Андрей, если я вам доступы дам к сайту, а вы бы там пошаманили, сколько бы стоили ваши услуги, чтобы разобраться с такой логикой?
напоминает чем то анекдот, как текст распечатали, потом отсканировали, картинку вставили в ворд и отправили
Если да, то изначально так и пробовал делать, но так не работает.
По аналогии запись в выборке складов формирует айдишники складов.
Таким образом сейчас запись в выборке складов будет искать значения дополнительных полей sklad-id у складов, хотя нужные дополнительные поля заполняются для видов продукции
и
перед ним проверку нужно сделать, что tv.sklad-id не пустой
во вложенном pdoResources
лишнее — не используется