Форум русской поддержки Joomla!® CMS
07.12.2016, 16:35:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Функция сохранения товара

 (Прочитано 205 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kerch
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 19


« : 10.04.2016, 13:26:55 »

День добрый. Подсткажите кто сталкивался.
Есть в корне файл в котором хочу реализовать создание товара. Сразу говорю: CSVI не предлогать. Задача специфическая.
вот так подключил файл administrator\components\com_virtuemart\models\product.php
Получил модель.
Код
if (!class_exists( 'VmConfig' )){
   require (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php');    
}
$config = VmConfig::loadConfig();
 
if (!class_exists ('VmModel')) {
require(VMPATH_ADMIN . DS . 'helpers' . DS . 'vmmodel.php');
}
 
$productModel = VmModel::getModel('product');
$product = $productModel->getProduct('15');
 
$product->slug = 'new slug';
 
echo '<pre>';
print_r($product);
echo '</pre>';
 

slug меняется, все ок. А сохранить то как?
Но как воспользоватся функцией save() которая лежит в \administrator\components\com_virtuemart\controllers\product.php
Строка 57
Или вот есть еще функция \administrator\components\com_virtuemart\helpers\vmcontroller.php
Строка 156
Вообщем как программно сохранить товар после изменений? Вроде искал хорошо. Функции update() не нашел.
И как програмно создать новый товар?

Joomla 3.5.1
VirtueMart 3.0.12
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3586


« Ответ #1 : 10.04.2016, 14:09:31 »

Но как воспользоватся функцией save() которая лежит в \administrator\components\com_virtuemart\controllers\product.php
Подключите этот контроллер и используйте его методы. Если ничего не нужно менять, только сохранять то, что есть, то можно сразу в модели
Код
$productModel->store($product);
И как програмно создать новый товар?
Для начала нужно задать объекту(массиву) $product все необходимые свойства(элементы), а потом его сохранять.
Записан
kerch
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 19


« Ответ #2 : 10.04.2016, 14:28:23 »

Код
$productModel->store($product);
Так всетки сохранение идет через функцию store()?
Но насколько я проверил дебагером функция save () вроде как работает при сохранении.
Или всетки store()?

Проверил. Вот так не работает.
Код
$productModel = VmModel::getModel('product');
$product = $productModel->getProduct('15');
$product_new = $productModel->getProduct();
$product->slug = 'new slug';
$productModel->store($product);
 
$product->slug остается прежним.
« Последнее редактирование: 10.04.2016, 15:04:34 от kerch » Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3586


« Ответ #3 : 10.04.2016, 16:21:08 »

Так всетки сохранение идет через функцию store()?
Но насколько я проверил дебагером функция save () вроде как работает при сохранении.
Или всетки store()?
save() - метод контроллера, который в конечном счете вызывает store() в модели.
Проверил. Вот так не работает.
Конечно, нет. Перед исполнением проверяются token и другие параметры, какие - посмотрите код этих функций.
Записан
kerch
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 19


« Ответ #4 : 10.04.2016, 16:44:29 »

Ага, спасибо.
Буду разбираться.
Записан
kerch
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 19


« Ответ #5 : 10.04.2016, 16:49:00 »

В файл administrator\components\com_virtuemart\models\product.php закоментил строку 1746
Код
vRequest::vmCheckToken();
Начало сохранять.
Еще вопрос. Через store() я могу как обновлять так и создавать товары? Верно?
Или для разных целей есть разные функции?
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet