Нотисы в поле "Список людей" InstantSoft на 2.15

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

Несколько нотисов по массиву item

#1 6 января 2022 в 13:15

На 2.15 вылетает несколько нотисов в поле «Список людей» по классическим запросам:

$this->item['ctype_name'],   $this->item['id'],   $this->item['user_id']  в самом начале страницы, после первого <div> в <body>

  1. <body>
  2. <div id="popup-manager"></div><br>
  3. <b>Notice</b>: Undefined index: ctype_name in <b>.../system/fields/pplist.php</b> on line <b>134</b><br>
  4. <br>
  5. <b>Notice</b>: Undefined index: id in <b>.../system/fields/pplist.php</b> on line <b>136</b><br>
  6. <br>
  7. <b>Notice</b>: Undefined index: id in <b>.../system/fields/pplist.php</b> on line <b>150</b><br>
  8. <br>
  9. <b>Notice</b>: Undefined index: user_id in <b>.../system/fields/pplist.php</b> on line <b>176</b><br>

А в поле шаблона и в var_dump($item) они присутствуют.

Очевидно что поле срабатывает еще до формирования страницы. Как этого избежать на 2.15   ?

#2 6 января 2022 в 13:23

Передаю слова Fuze))

Открыть файл system/fields/поле.php

Найти строку

  1. public function parse($value) {

После этой строки вставить

  1. if (empty($this->item['user_id']) || empty($this->item['ctype_name']) || empty($this->item['id'])) {
  2. return '';
  3. }

И точно также сделать после строки

  1. public function parseTeaser($value){

А в самый конец файла перед закрывающей фигурной скобкой добавить

  1. public function getStringValue($value) {
  2. return '';
  3. }
#3 6 января 2022 в 14:08
  • public function getStringValue($value) {
  • return '';
  • }
Нифигаccе о-го-гошеньки

Спасибо Fuze и Нифигаccе о-го-гошеньки. Отличное академическое решение. 
А здесь на выходе должна быть пустая строка?

#4 6 января 2022 в 14:45

Я тут всё же предметно разобрался с этой проблемой. Тут две стороны.

  1. В 2.15.0 в метод getStringValue не передаётся весь массив $item, поэтому нотисы, т.к. по умолчанию, если метод getStringValue в поле не определён, то он возвращает результат из метода parse, а массив $item содержит не все данные.
  2. Всё же это недосмотр с моей стороны и в 2.15.1 всё вернётся как было, т.е. будет полный массив $item. А пока можно сделать, как написал  Нифигаccе о-го-гошеньки.
#5 6 января 2022 в 15:07

СПАСИБО БОЛЬШОЕ ЗА РАЗЪЯСНЕНИЯ !

Думаю можно закрыть тему.

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

!!!

#6 6 января 2022 в 15:08

Думаю можно закрыть тему.

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