Вывести единицу измерения от поля

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 24 июня 2022 в 08:55

Привет. Не могу понять как вывести единицу измерения от поля.

Вывожу поле так

  1. <?php if(!empty($item['fields'])) { ?>
  2. <?php echo $item['pris']; ?>
  3. <?php } ?>

Единица измерения в админке присвоена.

#2 24 июня 2022 в 09:00

 KoRn, где выводите?

Если в типе контента, то там у $items есть $items['fields'] в котором содержится массив полей. И там у каждого field есть массив options, из которого можно получить единицу измерения.

Добавлено спустя 1 минуту

Сделайте в коде

  1. dump($items['fields']);

И очень многое станет понятно.

#3 24 июня 2022 в 09:50

Как-то так

  1. <?php if(!empty($item['fields'])) { ?>
  2. <?php echo $item['pris']; ?> <?php echo $item['fields']['pris']['options']['units']; ?>
  3. <?php } ?>
#4 24 июня 2022 в 10:44

 Zau4man, Спасибо, выводил просто вардампом там все в кучу было. Ваш вариант выводит более понятнее.

 Loadырь, Спасибо, пошел изучать))

p/s Вывожу в типе контента, в созданном шаблоне для него

Собственно 

Дампом выходит следующее. 

Array
(
    [title] => Array
        (
            [label_pos] => none
            [type] => caption
            [name] => title
            [title] => Заголовок
            [html] =>
Тестовая запись виджеты

            [options] => Array
                (
                    [is_required] => 1
                    [is_digits] => 0
                    [is_number] => 0
                    [is_alphanumeric] => 0
                    [is_email] => 0
                    [is_unique] => 0
                    [is_url] => 0
                    [disable_drafts] => 0
                    [is_date_range_process] => hide
                    [label_in_list] => none
                    [label_in_item] => none
                    [wrap_type] => auto
                    [wrap_width] => 
                    [wrap_style] => 
                    [profile_value] => 
                    [is_in_item_pos] => Array
                        (
                            [0] => page
                        )

                    [min_length] => 3
                    [max_length] => 255
                )

        )

    [katag] => Array
        (
            [label_pos] => none
            [type] => category
            [name] => katag
            [title] => Категория
            [html] =>  Виджеты и плагины 
            [options] => Array
                (
                    [is_required] => 
                    [is_digits] => 
                    [is_number] => 0
                    [is_alphanumeric] => 
                    [is_email] => 
                    [is_unique] => 
                    [is_url] => 
                    [disable_drafts] => 0
                    [is_date_range_process] => hide
                    [label_in_list] => none
                    [label_in_item] => none
                    [wrap_type] => auto
                    [wrap_width] => 
                    [wrap_style] => 
                    [profile_value] => 
                    [is_in_item_pos] => Array
                        (
                            [0] => page
                        )

                    [is_auto_colors] => 1
                    [auto_colors_classes] => btn-primary,btn-secondary,btn-success,btn-danger,btn-warning,btn-info,btn-light,btn-dark
                    [btn_class] => btn btn-sm
                    [btn_icon] => 
                    [context_list] => Array
                        (
                            [0] => 0
                        )

                    [relation_id] => 
                    [visible_depend] => 
                    [author_access] => 
                )

        )

    [content] => Array
        (
            [label_pos] => none
            [type] => html
            [name] => content
            [title] => Описание
            [html] => Равным образом постоянный количественный рост и сфера нашей активности позволяет оценить значение мо
            [options] => Array
                (
                    [is_required] => 
                    [is_digits] => 
                    [is_number] => 0
                    [is_alphanumeric] => 
                    [is_email] => 
                    [is_unique] => 
                    [is_url] => 
                    [disable_drafts] => 0
                    [is_date_range_process] => hide
                    [label_in_list] => none
                    [label_in_item] => none
                    [wrap_type] => auto
                    [wrap_width] => 
                    [wrap_style] => 
                    [profile_value] => 
                    [is_in_item_pos] => Array
                        (
                            [0] => widget
                        )

                    [editor] => redactor
                    [editor_presets] => 
                    [is_html_filter] => 
                    [parse_patterns] => 
                    [build_redirect_link] => 
                    [teaser_len] => 100
                    [teaser_postfix] => 
                    [teaser_type] => s
                    [show_show_more] => 
                    [in_fulltext_search] => 
                    [context_list] => Array
                        (
                            [0] => 0
                        )

                    [relation_id] => 
                    [visible_depend] => 
                    [author_access] => 
                )

        )

)

Пробовал и так

  1. <?php if(!empty($item['fields'])) { ?>
  2. <?php echo $item['pris']; ?> <?php echo $item['fields']['pris']['options']['units']; ?>
  3. <?php } ?>

Не работает, нотис

Пробовал так 

  1. <?php if(!empty($item['fields'])) { ?>
  2. <?php echo html($item['fields'], $item['pris'], $item['options'], $item['units']); ?>
  3. <?php } ?>

Опять нотис

Потом думаю может напрямую к $item

  1. <?php if(!empty($item)) { ?>
  2. <?php echo html($item['fields'], $item['pris'], $item['options'], $item['units']); ?>
  3. <?php } ?>

Но нет не работает

Пара нотисов

  1. Notice: Undefined index: options in /home/templates/modern/content/default_list_tiles_tvent_addons.tpl.php on line 76
  2.  
  3. Notice: Undefined index: units in /home/templates/modern/content/default_list_tiles_tvent_addons.tpl.php on line 76
  4.  
  5. Notice: Array to string conversion in /home/system/libs/html.helper.php on line 11

В общем само поле pris выходит, а вот единицу измерения похоже похоже из другого места нужно тянуть)). 

Все это дело пытаюсь вывести в файле templates/modern/content/default_list_tiles_tv_addons.tpl.php

Посомтрел код элемента

  1. <div id="f_options_units" class="form-group field ft_string">
  2. <label for="options_units">Единица измерения</label>
  3. <input type="text" class="form-control input" name="options[units]" value="руб." autocomplete="off" id="options_units">
  4. </div>

Сработало   <?php echo ($item['fields']['pris']['options']['units']); ?> скобки перед echo забыли))

#5 24 июня 2022 в 12:30

Не работает, нотис

KoRn

Видимо «Notice: Undefined index: pris in» это значит, что ваше поле не выводится в списке, а только в записи.

<?php echo html($item['fields'], $item['pris'], $item['options'], $item['units']); ?>

KoRn

Ну а это совсем шедевр, как делать не надо.

Тут или использовать echo без скобочек или html() со скобочками, а вы и то и другое и с кучей данных в строковой функции.

Сработало   <?php echo ($item['fields']['pris']['options']['units']); ?> скобки перед echo забыли))

KoRn

У меня было всё без скобочек, к вашему коду добавил только это:

  1. <?php echo $item['fields']['pris']['options']['units']; ?>

Но если нет таких индексов как options и units, то у вашего поля либо отключен показ в списках и надо включить или надо использовать данные из массива $fields

  1. <?php echo $fields['pris']['options']['units']; ?>

При условии, что он доступен в вашем шаблоне

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.