Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 303 Просмотров
*

CaHeK_pk

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

CaHeK_pk

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
вроде что-то получилось.
но выдает ошибки:
Спойлер
[свернуть]
что по файлам.
product.php

view.html.php
Код: 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;
}
//

Код: php
//добавил после
$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, 18:21:03 от CaHeK_pk »
*

NewUsers

  • Завсегдатай
  • *****
  • 599
  • 47
"$this->product->нужное_поле" не получается

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

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

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

Надо полный код этих файлов....
*

CaHeK_pk

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

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

Надо полный код этих файлов....
http://mykamtour.ru/product.rar
тут лежит архив 3х файлов.
дело в том что пытался запихнуть все действия в работу файлов отвечающие за product, поэтому старался сделать так что бы вид вызова был как указал в первом сообщении