Пишу плагин быстрого заказа, в числе прочего функционала есть возможность прикреплять файл покупателю. Файл загружается на сервер и ссылка на него пишется в свободный атрибут товара. Происходит это так: Код (PHP): JDispatcher::getInstance()->register('onBeforeAddProductToCart', function(&$cart, &$product_id, &$quantity, &$attr_id, &$freeattributes, &$updateqty, &$errors, &$displayErrorMessage, &$additional_fields, &$usetriggers) { ....... $freeattributes['File'] = JHtml::link($path_to_file . '/' . strtolower($file['name']), $file['name']); ....... }); В БД, в таблицу #_jshopping_order_item это пишется так: поле freeattributes поле product_freeattributes Как в поле product_freeattributes добавить название, чтобы было вида:
Код (PHP): $freeattributes['File'] = "Загруженный файл".JHtml::link($path_to_file . '/' . strtolower($file['name']), $file['name']); ....... });
оригинально, но немного не то, что я хотел. Имелось в виду, задать имя этому атрибуту, чтобы в заказе выводилось А если сделать так, как Вы предложили, то выводится
в смысле создать новый атрибут с таким именем в админке? А как тогда именно ему присваивать значение загруженного файла? P.S. первый мой плагин для JS - не разобрался еще во всех тонкостях компонента.
Так нужно загружать файл, а не просто как ты сейчас прописываешь имя файла. Думаю что создание нового типа независимого атрибута будет лучший вариант .
Так я загружаю файл, а в атрибут пишу ссылку на него. Просто тут в пример не написал код загрузки, т.к. к вопросу не относится. Ок, мысль примерно понял, буду реализовывать
Например функция sprintAtributeInCart, /com_jshopping/lib/function.php Код (PHP): $dispatcher->trigger('beforeSprintAtributeInCart', array(&$attr) ); if($attr->attr = " ") $attr->attr = "Нужное имя"; И уже в корзине будет нужное имя атрибута.