0 Пользователей и 1 Гость просматривают эту тему.
  • 27 Ответов
  • 884 Просмотров
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Не получается вставить в админке в карточке товара поле type="media", выдает ошибку
Цитировать
Fatal error: Call to a member function getValue() on null in /home/joj/site.ru/www/libraries/src/Form/Field/MediaField.php on line 196
Пробовал так:
Код
JFormHelper::loadFieldClass('media');
$field2 = new JFormFieldMedia();
$field2->setup(new SimpleXMLElement('<field name="name_field" type="media" asset_field="name_field" asset_id="" created_by="" directory="images" link=""/>'), $product->name_field);

Может кто подскажет что не так?
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

draff

  • Гуру
  • 5528
  • 394 / 7
  • ищу работу
del. Ошибся.
« Последнее редактирование: 01.10.2017, 14:03:50 от draff »
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
В Джумла 3 function get()
И что это значит? Что-то не доходит тайный смысл вашего ответа... Может поясните подробнее?
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Вы не передавали объект JForm в $field2. Попробуйте так
Код
$field2 = new JFormFieldMedia(JForm $ваша_форма);
или
Код
$field2 = new JFormFieldMedia();
$field2->setForm($ваша_форма);
« Последнее редактирование: 01.10.2017, 11:45:14 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Вы не передавали объект JForm в $field2. Попробуйте так
Код
$field2 = new JFormFieldMedia(JForm $ваша_форма);
Выдает такую же ошибку
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Обновил предыдущий пост.
Смысл в том, что вызывается функция getValue(), а сам объект Jform не определен.
« Последнее редактирование: 01.10.2017, 11:54:01 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Результат - Пустой экран
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Код приведите.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Вот:
Код
JFormHelper::loadFieldClass('media');
$field2 = new JFormFieldMedia();
$field2->setForm($adminForm);
$field2->setup(new SimpleXMLElement('<field name="bgimg2" type="media" asset_field="" asset_id="" created_by="" directory="images" link=""/>'), $product->bgimg2);
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Вроде нормально выглядит. Что var_dump($field2) показывает?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Раньше в другом аддоне добавлял радио кнопки, работает без указания формы, а именно MediaField такие проблемы... может неправильно подключаю?

Код
jimport( 'joomla.src.form.field.MediaField' )
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Еще раз посмотрел ваш код и пришел к выводу, что он работать не будет. Смотрите: вызывается $adminForm->getValue(), которая, в свою очередь, делает выборку из $adminForm->data, а в $adminForm->data изначально не было загружено ваше новое поле.
Мне кажется, вам нужно добавить поле по-другому.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Тогда вопрос как? Радио кнопки работают, imagelist тоже, а media не работает.
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Попробуйте
Код
$adminForm->setField(SimpleXMLElement $xml_вашего_поля); 
// и если нужно
$adminForm->setValue($имя_вашего_поля, $group, $value);
Не будь паразитом, сделай что-нибудь самостоятельно!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Попробуйте
Код
$adminForm->setField(SimpleXMLElement $xml_вашего_поля); 
// и если нужно
$adminForm->setValue($имя_вашего_поля, $group, $value);
У себя проверил - работает. А у вас, @kit2m2?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Еще не проверял. Вчера уже поздно было... (утро вечера мудренее...). Спасибо за помощь. Сегодня попробую, отпишусь.
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
robert, не могли бы Вы привести полный код. Видимо что-то делаю не так, опять ошибка.
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Я тестировал в своем компоненте.
Код
$new_media_field = new SimpleXMLElement('<field name="bgimg2" type="media" asset_field="" asset_id="" created_by="" directory="images" link="" label="New Media Field"/>');
$this->form->setField($new_media_field);
...
                <div class="control-group">
                    <div class="control-label"><?php echo $this->form->getLabel('bgimg2'); ?></div>
                    <div class="controls"><?php echo $this->form->getInput('bgimg2'); ?></div>
                </div>
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Да в любом другом компоненте это работает, а в JoomShopping - нет. Но все равно попробую, спасибо. Пока решил вопрос с помощью "imagelist", оно работает...
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Что так:
Код
	JFormHelper::loadFieldClass('media');
$field2 = new JFormFieldMedia();
$field2 = new SimpleXMLElement('<field name="bgimg2" type="media" asset_field="" asset_id="" created_by="" directory="images" link=""/>');
$this->form->setField($field2);
Что так:
Код
	JFormHelper::loadFieldClass('media');
$field2 = new JFormFieldMedia();
$field2 = new SimpleXMLElement('<field name="bgimg2" type="media" asset_field="" asset_id="" created_by="" directory="images" link=""/>');
$adminForm->setField($field2);
Одна и та же ошибка:
Цитировать
Fatal error: Call to a member function setField() on null in /home/joj/SITE.ru/www/plugins/jshoppingadmin/bgimg_product/bgimg_product.php on line 49
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

Виталик

  • Завсегдатай
  • 1242
  • 130 / 0
Код
$field2 = new JFormFieldMedia();
надо создать объект формы и передать его при создании поля
это вроде появилось только в 3.8
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Что так:
Что так:
Одна и та же ошибка:
Где и как определены $this->form или $adminForm?
Код
$this->form = JForm::getInstance('products', '<form><fieldset></fieldset></form>', array('control' => '', 'load_data' => true), false, false);
$new_media_field = new SimpleXMLElement('<field name="bgimg2" type="media" asset_field="" asset_id="" created_by="" directory="images" link="" label="New Media Field"/>');
$this->form->setField($new_media_field);

...

echo $this->form->getLabel('bgimg2');
echo $this->form->getInput('bgimg2');
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
И? В предыдущих версиях Joomla это тоже работало в JoomShoping, с другими типами полей.
Я это и написал вот только не работает в JoomShoping...
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Где и как определены $this->form или $adminForm?
Это форма редактирования товара, поле уже в этой форме выводиться (через аддон).
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не будь паразитом, сделай что-нибудь самостоятельно!
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Ура, заработало :D

Получилось так:
Код
	$this->form = JForm::getInstance('products', '<form><fieldset></fieldset></form>', array('control' => '', 'load_data' => true), false, false);
JFormHelper::loadFieldClass('media');
$field2 = new SimpleXMLElement('<field name="bgimg2" type="media" asset_field="" asset_id="" created_by="" directory="images" link=""/>');
$this->form->setField($field2);

Вот только не сохраняет выбор, наверное формат столбца в базе нужно менять.
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Нет, посмотрел в базе сохраняет... Выбранное изображение не сохраняется в адинке карточки товара, поле сохранения товара - в поле пусто.
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
*

kit2m2

  • Живу я здесь
  • 2738
  • 223 / 0
Получилось так:
Код
$this->form->setValue('bgimg2', null, $product->bgimg2);
« Последнее редактирование: 02.10.2017, 15:42:56 от kit2m2 »
Бесплатные расширения для JoomShopping | Расширения на заказ | Шаблоны страниц JoomShopping | Сайты и магазины под ключ | Исправлю проблемы с навигацией и дублями | Переделаю ваш старый сайт на новом движке
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как проверить, есть ли у товара фото (условие) в шаблоне list_products/product?

Автор goga_pgasovav

Ответов: 15
Просмотров: 219
Последний ответ 14.10.2021, 14:23:11
от goga_pgasovav
Цена "от" на странице списка категорий товаров (цена самого дешёвого товара)

Автор goga_pgasovav

Ответов: 3
Просмотров: 90
Последний ответ 14.10.2021, 14:13:38
от goga_pgasovav
Как изменить размер изображения товара в карточке товара?

Автор oslyabya

Ответов: 4
Просмотров: 170
Последний ответ 03.08.2021, 17:20:02
от nevigen
Вывод переменных карточки товара в файле шаблона Joomla

Автор shop-user

Ответов: 4
Просмотров: 186
Последний ответ 24.06.2021, 10:19:11
от shop-user
Артикул товара в админке

Автор PrimitiveFish

Ответов: 11
Просмотров: 249
Последний ответ 18.04.2021, 13:18:30
от kit2m2