Сохранение заполнения поля в настройках виджета

InstantCMS 2.X
#1 6 июля 2022 в 19:34

Здравствуйте. Подскажите, как заставить сохранять в опциях виджета, значение(массив) самодельного поля. В контенте поле работает.

В настройках виджета поле отображается и работает как нужно, но не сохраняется значение. Поле собирает массив из значений таблицы.

#2 6 июля 2022 в 20:16

Покажите код файла формы опций виджета с добавленным вашим полем.

Пока предположу, что вы забыли приставку options: в имени поля опции 

Вот пример options:show_list github.com/instantsoft/icms2/blob/ee0d6907c9f2b2f860fefe31611edab1de7a13cd/system/controllers/comments/widgets/list/options.form.php#L13

#3 6 июля 2022 в 20:23

Покажите код файла формы опций виджета с добавленным вашим полем.

Пока предположу, что вы забыли приставку options: в имени поля опции 

Вот пример options:show_list github.com/instantsoft/icms2/blob/ee0d6907c9f2b2f860fefe31611edab1de7a13cd/system/controllers/comments/widgets/list/options.form.php#L13

Zau4man
class formWidgetRasdohOptions extends cmsForm {
    public function init() {
        return [
            [
                'type' => 'fieldset',
                'title' => LANG_OPTIONS,
                'childs' => [
                    new fieldRasdoh('options:content', [
                        'title' => 'Расходы'
                    ])
                ]
            ]
        ];
    }
}

Да вроде нет

#4 6 июля 2022 в 21:21

А как вы массив сохраняете?

#5 6 июля 2022 в 23:04

А как вы массив сохраняете?

Lora

Хороший вопрос. В поле name=«field_name[title][]» (field_name[price][]) и тд. В виджете ни как, думал засчет поля.

Для виджета нужно что то дополнительно?

#6 7 июля 2022 в 09:37

Припомощи name=… вы передаёте массив. Это понятно. И если массив правильно сформирован он сохранится.  А как он попадает в name? 

                    new fieldRasdoh('options:content', [
                        'title' => 'Расходы'
                    ])

kolecha

Где здесь массив?

#7 7 июля 2022 в 12:23

Припомощи name=… вы передаёте массив. Это понятно. И если массив правильно сформирован он сохранится.  А как он попадает в name? 

                    new fieldRasdoh('options:content', [
                        'title' => 'Расходы'
                    ])

kolecha

Где здесь массив?

Lora

new fieldString ('option:srt', [ 'title' => 'строка' ])

А тут он где?)

Как я понял, в виджете полю, созданному под контент, не от куда брать переменные для работы. 

Тогда как? Отдельный фаил для использования его в настройках(того же другого поля)?

#8 7 июля 2022 в 13:39

А тут он где?)

kolecha

Так это строковое поле

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

А вот, например поле, которое вернёт массив

  1. new fieldList('options:image_preset', array(
  2. 'title' => LANG_WD_CONTENT_FIELDS_IFP,
  3. 'generator' => function($item) {
  4. return cmsCore::getModel('images')->getPresetsList(true)+array('original' => LANG_PARSER_IMAGE_SIZE_ORIGINAL);
  5. },
  6. 'visible_depend' => array('options:image_field' => array('hide' => array('')))
  7. )),
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.