Непонятное поведение метода parse() в поле

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X

Вижу, что метод отрабатывает 2 раза. Так и должно быть или я что то сломал?

#1 8 апреля 2023 в 21:59

Имею поле, в этом поле есть метод parse(), без лишних деталей он сейчас выглядит так

  1. public function parse($value) {
  2. // ...
  3. $file->debug('file_get_contents'); // вызов логгера
  4. $in = file_get_contents($url);
  5. // ...
  6. }

В своем лог-файле вижу

  1. [2023-04-08 21:17:29.069] [Debug] file_get_contents
  2. [2023-04-08 21:17:29.747] [Debug] file_get_contents

Получается, что  file_get_contents() отрабатывает 2 раза. Замечу, что поле работает и выводит на страничку все как надо, но срабатывание одного и того же кода дважды меня не устраивает. Прошу помочь разобраться с этим вопросом.

#2 8 апреля 2023 в 22:11

 IamB, ответ тут github.com/instantsoft/icms2/blob/fbeebde236f2a5206fdac941a8a939e7b515b7e3/system/core/formfield.php#L544

Добавьте в свое поле метод getStringValue. Про то, что он делает, есть информация в документации docs.instantcms.ru/dev/forms/field-file

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

Добавлю, что в вашем случае будет достаточно добавить примерно так

  1. public function getStringValue($value) {
  2. return '';
  3. }
#3 8 апреля 2023 в 22:34

 Zau4man, благодарю за помощь, но в моем логе по-прежнему 2  file_get_contents

Ура! С пустой строкой работает как нужно.

 Zau4man, еще раз благодарю! Сам не был готов к такой ситуации.

Вопрос закрыт.

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