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

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

добавление новой таблицы и связка с product

 (Прочитано 202 раз)
0 Пользователей и 1 Гость смотрят эту тему.
CaHeK_pk
Осваиваюсь на форуме
***

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

Сообщений: 119


« : 10.10.2015, 12:40:09 »

День добрый, задался разработкой дополнительных функций для вирт2, по ходу разработки потребовалось создание новой таблицы "#__virtuemart_product_settings" и соответственно связки ее с virtuemart_product_id.
Создал новый файл в папке "tables", добавил классы получения данной таблицы, но вывод данных через "$this->product->нужное_поле" не получается, что для этого нужно сделать, можете помочь, заранее благодарю.
какие файлы есть:
product_settings.php - папка tables, класс "TableProduct_settings"
product.php - папка "models"
Записан
CaHeK_pk
Осваиваюсь на форуме
***

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

Сообщений: 119


« Ответ #1 : 10.10.2015, 17:13:02 »

вроде что-то получилось.
но выдает ошибки:
Показать текстовый блок
что по файлам.
product.php

view.html.php
Код
// Добавил settings 
public function loadProductSettings($productId,$quantity,$virtuemart_shoppergroup_ids,$front){
 
$db = JFactory::getDbo();
$this->_nullDate = $db->getNullDate();
$jnow = JFactory::getDate();
$this->_now = $jnow->toMySQL();
 
//$productId = $this->_id===0? $product->virtuemart_product_id:$this->_id;
//$productId = $product->virtuemart_product_id===0? $this->_id:$product->virtuemart_product_id;
$q = 'SELECT * FROM `#__virtuemart_product_settings` WHERE `virtuemart_product_id` = "'.$productId.'" ';
$q .= ' ORDER BY `virtuemart_settings_id` DESC';
 
$db->setQuery($q);
$settings = $db->loadAssocList();
$err = $db->getErrorMsg();
if(!empty($err)){
vmError('getProductSingle '.$err);
} else {
if($settings and count($settings)==0){
vmdebug('getProductSingle getSettings query',$q);
}
 
}
return $settings;
}
932 public function getProductSettings(&$product,$quantity,$virtuemart_shoppergroup_ids,$front,$loop=false){
 
934 $product->virtuemart_settings_id = null;
935 $product->show_preorder = null;
936 $product->link_1 = null;
.. $product->load_image = null;
.. $product->show_save = null;
939 $product->nill = null;
 
 
$productId = $product->virtuemart_product_id===0? $this->_id:$product->virtuemart_product_id;
943 $product->settings = $this->loadProductSettings($productId,$quantity,$virtuemart_shoppergroup_ids,$front);
$i = 0;
$runtime = microtime (TRUE) - $this->starttime;
$product_parent_id = $product->product_parent_id;
}
//
 

Код
//добавил после
$mf_model = VmModel::getModel('manufacturer');
$manufacturers = $mf_model->getManufacturerDropdown($product->virtuemart_manufacturer_id);
$this->assignRef('manufacturers', $manufacturers);
//загрузка settings
$settings = $model->getProductPrices($virtuemart_product_id,false);
$this->assignRef('settings', $settings);
 
« Последнее редактирование: 10.10.2015, 17:21:03 от CaHeK_pk » Записан
NewUsers
Давно я тут
****

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

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


« Ответ #2 : 10.10.2015, 17:30:08 »

"$this->product->нужное_поле" не получается

Для этого надо записать в эту переменную что нибудь...

Ты же сам  указал что результат SQL запроса будет в переменной $settings
Код:
$settings = $db->loadAssocList();
Ну а что бы выводить это все видом
Код:
->нужное_поле
Надо сделать вот так...
Код:
$settings = $db->loadAssocList();
$this->product = $settings[0];

вроде что-то получилось.
но выдает ошибки:

Надо полный код этих файлов....
Записан
CaHeK_pk
Осваиваюсь на форуме
***

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

Сообщений: 119


« Ответ #3 : 10.10.2015, 17:44:54 »

Для этого надо записать в эту переменную что нибудь...

Ты же сам  указал что результат SQL запроса будет в переменной $settings
Код:
$settings = $db->loadAssocList();
Ну а что бы выводить это все видом
Код:
->нужное_поле
Надо сделать вот так...
Код:
$settings = $db->loadAssocList();
$this->product = $settings[0];

Надо полный код этих файлов....
http://mykamtour.ru/product.rar
тут лежит архив 3х файлов.
дело в том что пытался запихнуть все действия в работу файлов отвечающие за product, поэтому старался сделать так что бы вид вызова был как указал в первом сообщении
Записан
Страниц: [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