Как вывести ID поля в списке контента ? 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 659
Добрый день! Lля гибкости настроек стилей CSS каждого элемента в списке появилась необходимость к классу добавить ID конкретного поля на подобии системного имени которое выводится кодом:
Код PHP:
  1. <?php echo $field['name']; ?>
Но вот чтобы вывести ID а лучше KEY этого поля уже так не получается. Выводил подстановкой, но видимо это не верное решение
Код PHP:
  1.  
  2. <?php echo $field['id']; ?>
  3. или
  4. <?php echo $field['key']; ?>
  5.  
В общем полная строка кода для item выглядит так
Код PHP:
  1. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>_<?php echo $field['id']; ?>">
Прошу помощи у сообщества в этом вопросе. Спасибо...
Редактировалось: 3 раз (Последний: 9 марта 2021 в 07:56)
Проверка траста и спама с донорских сайтов.
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатий
Сообщений: 605
Не совсем понятно, про какой конкретно список Вы говорите и id чего именно Вам нужно.
Вы всегда можете посмотреть содержимое нужной переменной
Код PHP:
  1. <?php var_dump($field); ?>
или в "Расширенной отладке"
Код PHP:
  1. <?php dbg($field); ?>
Если говорить про дефолтный список записей, то в нём переменная $field не имеет id
Спойлер
Зато id есть у каждой записи в списке
Спойлер

Так что тут для уникального ключа можно использовать сочетание $field['name'] поля и $item['id'] записи через подчёркивание:
Код PHP:
  1. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>_<?php echo $item['id']; ?>">
Редактировалось: 2 раз (Последний: 9 марта 2021 в 10:02)
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 659
WebMan:

Так что тут для уникального ключа можно использовать сочетание $field['name'] поля и $item['id'] записи через подчёркивание:
Спасибо за развернутый ответ. Мне нужно получить ID ЗНАЧЕНИЯ поля списка. Т.е. value_ID. Попробую обьяснить по другому чтоли. на при мере скрина записей.
Как вывести ID поля в списке контента ?

Вот 4 записи из списка. У них есть поля с выборкой из существующего списка. Естественно они у некоторых записей повторяются. Мне нужно просто получить уникальное значения этих полей. Оно же как то привязывается к записи. Я так делал для записей и получал ID а вот для списка не могу повторить это. В записи это выглядит как <?php echo $item['ehlement']; ?> и на выходе получаем id элемента. Я не знаю может как то не правильно объясняю. В общем нужен такой результат class="field ft_list f_ehlement_(тут ID или KEY значения поля)". Другими словами мы получаем класс который будет повторяться в некоторых записях .т.к у них одно и то же значение.

В реализации вроде не должно быть сложностей, получить ID значения поля списка, и все на этом
Редактировалось: 2 раз (Последний: 12 марта 2021 в 09:06)
Проверка траста и спама с донорских сайтов.
Посетитель
small user social cms
Медаль
Сообщений: 659
В общем решил дать ссылку чтобы было более наглядно
Скрытый текст виден только зарегистрированным пользователям


Там все видно даже в коде где красным отмечено должно быть ID значения из списка ft_list

Как вывести ID поля в списке контента ?


Может как то так ?? Но не работает

Код PHP:
  1. <?php echo $field['value']['id']; ?>
Редактировалось: 4 раз (Последний: 12 марта 2021 в 09:11)
Проверка траста и спама с донорских сайтов.
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 3488
Clear:
Там все видно даже в коде где красным отмечено должно быть ID значения из списка ft_list
Если правильно понял, на самом деле вам нужен ключ выбранного значения в полях типа "Список" а не ID поля.
Если верно, то можете так попробовать:
Код PHP:
  1.  
  2. <?php if($field['type'] == 'list') { echo '_'.array_search($field['html'], $field['handler']->items); } ?>
  3.  
p.s. только не понятно что вы там хотите вывести для поля типа "Заголовок" (на картинке тоже красным отмечено)
-----------------------
Имейте ввиду: пишет ещё тот знаток PHP))
Редактировалось: 2 раз (Последний: 12 марта 2021 в 15:36)
Украинский для инстант
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатий
Сообщений: 605
Похоже, Вам нужно значение поля 'ehlement'. Поля записей находятся в переменной $item:
Код PHP:
  1. $item['ehlement']
Для более точного ответа покажите вывод var_dump() или dbg() двух переменных $field и $item в Вашем шаблоне.
Посетитель
small user social cms
Медаль
Сообщений: 659
Олег Васильевич я:
p.s. только не понятно что вы там хотите вывести для поля типа "Заголовок" (на картинке тоже красным отмечено)
Заголовок я случайно отметил, там не нужно, спасибо.
Олег Васильевич я:
<?php if($field['type'] == 'list') { echo '_'.array_search($field['html'], $field['handler']->items); } ?>
нет по прежнему этот вариант не выводит значение но работает как раз только для списка

Как вывести ID поля в списке контента ?

Вот на этом скрине видно что ссылка элемента имеет вид href="/heroes?ehlement=1020", вот эту цифру 1020 подставить к классу нужно и все.

Как вывести ID поля в списке контента ?
Редактировалось: 4 раз (Последний: 14 марта 2021 в 07:01)
Проверка траста и спама с донорских сайтов.
Посетитель
small user social cms
Медаль
Сообщений: 659
WebMan:
Для более точного ответа покажите вывод var_dump() или dbg() двух переменных $field и $item в Вашем шаблоне.
Какой там шаблон, это дефолтный Модерн
Проверка траста и спама с донорских сайтов.
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатий
Сообщений: 605
Clear:
Какой там шаблон, это дефолтный Модерн
Это и есть шаблон smile
Вы же правите код в каком-то файле. Вот там и покажите вывод var_dump() или dbg() двух переменных $field и $item внутри цикла списка.
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 3488
Clear:
Вот на этом скрине видно что ссылка элемента имеет вид href="/heroes?ehlement=1020", вот эту цифру 1020 подставить к классу нужно и все.
В списке тот код не сработает. Пробуйте так (на примере default_list.tpl.php):
строку 37 замените на:
Код PHP:
  1.  
  2. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?><?php if($field['type'] == 'list' && !empty($field['options']['is_autolink'])) { echo '_'.$item[$field['name']] ; } ?> <?php echo $fields[$field['name']]['options']['wrap_type']; ?>_field" <?php if($fields[$field['name']]['options']['wrap_width']){ ?> style="width: <?php echo $fields[$field['name']]['options']['wrap_width']; ?>;"<?php } ?>>
  3.  
Если хотите изменять селектор и для тех полей этого типа, у которых автоссылка не включена, уберите из условия:
Код PHP:
  1. && !empty($field['options']['is_autolink'])
------------------
p.s. я б в таком случае таки оставил "коробочный" селектор без изменений и добавил свой
Редактировалось: 1 раз (Последний: 14 марта 2021 в 14:59)
Украинский для инстант
Посетитель
small user social cms
Медаль
Сообщений: 659
Олег Васильевич я:
В списке тот код не сработает. Пробуйте так (на примере default_list.tpl.php):
Фуф да работает этот вариант, Наконец то. Спасибо.
Олег Васильевич я:
p.s. я б в таком случае таки оставил "коробочный" селектор без изменений и добавил свой
Да в этом нет необходимости я же делаю через дочерний шаблон через manifest.php и всегда могу поменять. Об этом есть ПОСТ
Спасибо большое всем кто помогал.
Проверка траста и спама с донорских сайтов.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: