Перейти к содержимому


Фотография
- - - - -

Проблема с jbimage. Путаются фото, ошибка Trying to get property of non-object

jbimage ошибка notice

Лучший Ответ SmetDenis , 12 July 2013 - 20:25

Так работает стандартный JS для повторяемых элементов от Zoo.
JBImage его использует как есть.
Из-за этой зависимости пока баг не "победить". Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 4

#1 Михаил

Михаил

Отправлено 12 July 2013 - 02:38

Ситуация в следующем:

Есть каталог мебели. В нем созданы и расставлены все необходимые поля, в том числе 3 поля jbimage.

  1. Основная фотография (используется для вывода в тизере и в full, в качестве большой картинки). В full по нажатию увеличивается и группируется с полем "Доп. фото".
  2. Фото цвета (используется в тизере и в full. В full по нажатию увеличивает. Группировки нет.)
  3. Доп. фото (используется только в full. По нажатию увеличивается. Группируется с основной фото).

При заполнении каталога поле "доп. фото" не трогали. Не было необходимости. Все было в порядке.

Появилась необходимость на некоторые виды мебели добавлять еще 2-3 дополнительных фотографии.

При заполнении начались проблемы.

 

1. Имеем заполненный товар, все кроме доп. фото (т.е. заголовок, цена, несколько текстовых полей, 1 основная картинка, 5 картинок с цветами мебели). Добавляем доп. фото, через "Добавить еще картинка" доводим кол-во фотографий до 3х. Сохраняем. Все нормально.

2. После этого требуется добавить новую расцветку товара. Заходим в него. В поле "Фото цвета" жмем "Добавить еще картинка". Снизу появляется поле. Ищем на сервере картинку, жмем "Вставить". Картинка вставляется, но вставляется в поле "Доп. фото", причем не еще одной, а заменяет последнюю картинку.

3. Сохраняем. Во фронтенде получаем фото цвета в дополнительных фотографиях. А в области, где должно вывести остальные цвета ошибка "Notice: Trying to get property of non-object in адрес сайт/media/zoo/applications/jbuniversal/elements/jbimage/jbimage.php on line 134".

4. Идём в админку. Удаляем залитый цвет, который перескочил в доп. фото. Загружаем туда заменное дополнительное изображение. Сохраняем.

5. Во фронтенде. Дополнительные фото встали на места. Увеличиваются, уменьшаются. Все ок. В области цветов попрежнему висит ошибка.

6. Идём снова в админку. Удаляем все цвета. И загружаем один цвет. Сохраняем. Проверям. Все ок. Ошибки нет, цвет на месте, дополнительные фотографии тоже.

7. Снова добавляем второй цвет в поле "фото цвета". Получаем ситуацию, как в начале. Цвет заменяет 1 фото из поля "доп. фото". Во фронте. Тоже самое. цвет заменил 1 доп. фото. А в области цветов ошибка "Notice: Trying to get property of non-object..."

 

Все загружаемые фотографии имеют названия на латинице. В названии могут встречаться "-" и/или "_". Все фото сохраняются на сервере в каталогах соответствующих названию и категории мебели. Т.е. фото для кресел будет храниться в images/catalog/kresla/ergonimic. И так далее.

Подскажите куда копать то?

 

Фрагмент файла jbimage.php

// render layout
        if ($layout = $this->getLayout('jbimage-' . $template . '.php')) {
            return $this->renderLayout($layout, array(
                    'imageAttrs' => $this->_buildAttrs(array(
                        'class'  => 'jbimage',
                        'alt'    => $alt,
                        'title'  => $title,
                        'src'    => $image->url,
                        'width'  => $image->width,
                        'height' => $image->height,
                    )),
                    'linkAttrs'  => $this->_buildAttrs(array(
                        'class'  => 'jbimage-link ' . $appendClass,
                        'title'  => $title,
                        'href'   => $url,
                        'rel'    => $rel,
                        'target' => $target,
                        'id'     => uniqid('jbimage-link-'),
                    )),
                    'link'       => $url,
                    'image'      => $image,
                )
            );
        }

Строка 134

'src'    => $image->url,

Сообщение отредактировал Михаил: 12 July 2013 - 02:43

  • 0

#2 Михаил

Михаил

Отправлено 12 July 2013 - 05:57

В принципе нашел почему фото перескакивают.

Каждое новое поле input для добавление фото имеет свой уникальный id, к примеру jbimage-select-3. При нажатии "Добавить еще картинку" в поле "доп. фото", создаётся новый input с id jbimage-select-4 и так далее. Все нормально.

А вот если нажать добавить "Добавить еще картинку" в поле "Фото цвета", то создаётся input с id jbimage-select-3 (id последней фотки поля "Доп. фото"). Потому и фото заменяется.

Но почему это происходит и как решить?


  • 0

#3 SmetDenis

SmetDenis

Отправлено 12 July 2013 - 20:25   Лучший Ответ

Так работает стандартный JS для повторяемых элементов от Zoo.
JBImage его использует как есть.
Из-за этой зависимости пока баг не "победить".
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#4 Михаил

Михаил

Отправлено 13 July 2013 - 01:56

Т.е. это получается проблема самого ZOO и теоретически в каком то из обновлений ZOO это может быть решено?


  • 0

#5 SmetDenis

SmetDenis

Отправлено 15 July 2013 - 09:27

Т.е. это получается проблема самого ZOO и теоретически в каком то из обновлений ZOO это может быть решено?

Теоретически да.
Возможно это неудобство мы исправим в одном из наших релизов.
Не могу ничего обещать.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.






Темы с аналогичным тегами jbimage, ошибка, notice

Click to return to top of page in style!