Новости Joomla

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

najdera

  • Захожу иногда
  • 70
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #30 : 12.02.2013, 14:52:49 »
А как сформировать условие, которое при отсутствии товара на складе, прятала кнопку Добавить в корзину?
*

selelo

  • Новичок
  • 4
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #31 : 04.03.2013, 14:27:32 »
Добрый день.
Сделал так, как описал автор темы. Всё отлично работает и функционирует. Спасибо огромное!

Вопрос только один - как сделать одну общую кнопку "Добавить в корзину" для всех дочерних товаров.
В моём случае количество дочерних товаров бывает до 20 и более, поэтому смотрится слишком уж громозко.
Поэтому, было бы удобней покупателю заполнить желаемое количество товара только напротив тех товаров, которые он хочет купить и
один раз нажать на кнопку "Добавить в корзину".

Для этого пытался править administrator\components\com_virtuemart\models\customfields.php (в области кода case 'A': ... ).
Но результат моих творений приводит к появлению 1 кнопки, но функционировать верным способом она отказывается,
т.к. не понимает что именно ей нужно добавлять в корзину ...

Заранее спасибо за какие-либо подсказки или наводки.
*

selelo

  • Новичок
  • 4
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #32 : 04.03.2013, 14:37:57 »
А как сформировать условие, которое при отсутствии товара на складе, прятала кнопку Добавить в корзину?

Добавить условие проверки количество товара в administrator\components\com_virtuemart\models\customfields.php после вывода всех дочерних товаров на страницу к товару

Код: php
foreach($options as $arr):
                if ($arr['value'] === JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id='.$virtuemart_category_id.
'&virtuemart_product_id='.$withParent)) continue;

При количестве товара (product_in_stock') больше 0 выводи в какую-нить переменную <input type="submit" name="addtocart" class="addtocart-button" value="'. JText::_ ('В корзину').'" />, при 0 значение ничего не выводи.

Эту переменную засовывай в <span class="addtocart-button"> * </span>, где идёт её вывод для каждого товара.
Не знаю на сколько верное решение, но как вариант должно прятать:)

« Последнее редактирование: 04.03.2013, 14:41:47 от selelo »
*

green_project

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #33 : 15.03.2013, 11:24:44 »
По поводу выложить файлы - сам метод решения через хак мне не нравиться - при обновлении VirtueMart все полетит кувырком... сейчас пытаюсь реализовать все необходимые функции в шаблоне.
Собственно получилось ВООБЩЕ не трогая основные модули магазина - чисто через шаблон - вывести дочерние товары БЕЗО ВСЯКИХ общих полей типа "Общий дочерний вид" - просто создаем дочерние товары и они выводятся... кроме того мне необходимо вывести для каждого дочернего товара свои настраиваемые поля списком - тоже выводятся и добавляются в корзину... проблема - в корзине цена из настраиваемого поля дочернего товара прибавляется к цене основного - а не к цене дочернего - хотя в корзину попадает именно дочерний товар...
Короче разберусь что и куда - выложу чистое решение без хака...
Полностью солидарен с Вами и  тоже хотел попросить обязательно поделиться своим решением, потому как даже используя все вышеперечисленные методы у меня не получилось добиться хоть какого-то мало-мальски рабочего и приемлемого результата, и упирается все я так подозреваю в то, что мой магазин тоже на шаблоне. Я добился только того, что у меня показываются заголовки столбцов таблицы и все!
« Последнее редактирование: 15.03.2013, 11:35:12 от green_project »
*

green_project

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re
« Ответ #34 : 15.03.2013, 11:31:04 »
.
*

pegasus86

  • Новичок
  • 5
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #35 : 25.03.2013, 10:38:29 »
Здравствуйте. Сделала как описано, все работает нормально.
Но появилась необходимость выводить для родительского товара "цену от", т.е. брать минимальную цену из дочерних и показывать её в родительском.
Может кто-то сталкивался?

UPD: есть идея сделать след. образом: в файл \com_virtuemart\views\productdetails\tmpl\default_showprices.php добавить условие, которое будет проверять есть ли у товара дочерние и выводить "Цена от" вместо "цена"
if (!empty($this->product->prices['salesPrice'])){
      echo "<strong>" . JText::_ ('COM_VIRTUEMART_CART_PRICE'). "</strong>";
   }
   if (?) {
      echo "<strong>" . JText::_ ('COM_VIRTUEMART_CART_PRICE_FROM'). "</strong>";
   }
Никак не соображу условие как правильно написать.
Заранее спасибо.
« Последнее редактирование: 26.03.2013, 00:45:18 от pegasus86 »
*

bamd

  • Новичок
  • 2
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #36 : 25.03.2013, 23:36:31 »
Перестала работать корзина, вообще не открывается после добавления товара, после чистки куки все ок ( Проблема с файлом product, если его не изменяю корзина работает, но таблица вывода некорректно отображает товар. Если вношу изменения, то корзина не работает, но дочерние товары отображаются коряво.   Есть мысли?
Ещё смущает момента в файле product функция getUncategorizedChildren ($withParent), а в case A вызывается getUncategorizedChildren($selected);

UPD проблема решена... у Storog была потеряна строчка vmdebug('getUncategorizedChildren '.$this->_db->getQuery());
« Последнее редактирование: 26.03.2013, 00:14:13 от bamd »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Дочерние товары таблицей
« Ответ #37 : 08.04.2013, 10:35:36 »
Перестала работать корзина, вообще не открывается после добавления товара, после чистки куки все ок ( Проблема с файлом product, если его не изменяю корзина работает, но таблица вывода некорректно отображает товар. Если вношу изменения, то корзина не работает, но дочерние товары отображаются коряво.   Есть мысли?
Ещё смущает момента в файле product функция getUncategorizedChildren ($withParent), а в case A вызывается getUncategorizedChildren($selected);
благодарю
у меня изображения отображаются, все что сделал, это добавил двойные кавычки " в customefields.php в тегах <a> и <img> к ссылкам. Вот в этом куске:
Код
$res[]= '<tr><td><a class="modal" href="'.$arr['tovarmodimage'].'"><img class="product-image" src="'.$arr['tovarimage'].'"></a></td>
<td><a href='.$arr['value'].'>'.$arr['text'].'</a></td><td>'.$arr['articul'].'</td>...
У кого-нибудь есть идея о том, что можно сделать, чтобы при открытии любого из дочерних товаров под его описанием шла таблица с родительским и другими дочерними товарами этого родителя?
« Последнее редактирование: 08.04.2013, 16:21:32 от borro »
*

Максимка1207

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #38 : 09.04.2013, 09:52:34 »
Подскажите пожалуйста кто-нибудь разобрался с тем как вывести в таблице настраиваемые поля дочерних товаров?
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Дочерние товары таблицей
« Ответ #39 : 09.04.2013, 14:27:57 »
заметил глюк у этого решения(по крайней мере у меня на VM2.0.18a): если один из дочерних товаров будет иметь цену, отличную от цены родительского товара, и если по нему в таблице нажать "+" или "-", выставляя требуемое количество, то цена родительского товара обновится на цену затронутого товара.
« Последнее редактирование: 09.04.2013, 14:57:26 от borro »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Дочерние товары таблицей
« Ответ #40 : 10.04.2013, 10:55:13 »
Здравствуйте. Как узнать, для чего в таблице #__virtuemart_medias существует поле ordering принимающее либо 1 либо 0?
Заметил, что в моей таблице очень мало записей с ordering = 1. А в предложенном запросе для функции getUncategorizedChildren есть это ограничение:
Цитировать
    $q = 'SELECT * FROM `#__virtuemart_products` as p
      LEFT JOIN `#__virtuemart_products_'.VMLANG.'` as pl
      USING (`virtuemart_product_id`)
            LEFT JOIN `#__virtuemart_product_medias`
      USING (`virtuemart_product_id`)
            LEFT JOIN `#__virtuemart_medias`
            USING (`virtuemart_media_id`)
            LEFT JOIN `#__virtuemart_product_prices`
      USING (`virtuemart_product_id`)';
 
    $q .= ' WHERE `ordering`="1" AND `product_parent_id` = "'.$this->_id.'" 
OR `virtuemart_product_id` = "'.$this->_id.'" ';
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Дочерние товары таблицей
« Ответ #41 : 10.04.2013, 12:19:36 »
Для того, чтобы на странице дочернего товара VirtueMart 2.0.18a выводилась аналогичная таблица товаров как у родительского, включая родителя и исключая текущий просматриваемый дочерний товар, нужно:
1. в файле product.php в функции getProduct:
а) ориентировочно на 640 строке перед while (!empty($child->product_parent_id)) { вставить код:
Код
if (!empty($child->product_parent_id)){$is_child=1;}
else{$is_child=0;}
б)(ориентировочно стр.715) перед завершением функции(перед последним return $_products[$productKey]; вставить
Код
if($is_child==1){	$_products[$productKey]->customfields = $parentProduct->customfields;}
      
2. в файле product.php в функции getUncategorizedChildren в предложенной правке запроса (переменная $q) подправить формирование условия WHERE следующим образом:
Код
if ($withParent <> $this->_id ){//добыча настраиваемых полей для дочернего товара
$q.= ' WHERE (`product_parent_id` = "'.$this->_id.'" OR virtuemart_product_id="'.$this->_id.'" )AND `virtuemart_product_id` <> "'.$withParent.'"';
}
else{//добыча настраиваемых полей для родительского товара
$q.= ' WHERE `product_parent_id` = "'.$this->_id.'"';
}
для ориентировки: после этого кода идет $app = JFactory::getApplication ();...
При этом не надо добавлять настраиваемые поля типа ОбщийДочернийВид для дочерних товаров.
« Последнее редактирование: 19.04.2013, 09:38:42 от borro »
*

Максимка1207

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #42 : 11.04.2013, 10:41:59 »
Возможно вы меня не поняли, меня интересует чтобы настраиваемые поля дочерних товаров размещались в таблице. Чтобы таблица дочерних товаров выглядела также как здесь http://store.zecho.ru/plenki-dlja-plotternoj-rezki.php
 
*

Максимка1207

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #43 : 11.04.2013, 11:33:24 »
с такими же настраиваемыми полями
*

Storog

  • Новичок
  • 5
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #44 : 18.04.2013, 19:07:08 »
Сорри за долгое отсутствие... обещал выложить файлы как решить все сии проблемы исключительно средствами шаблона.. в принципе получилось, но - получилась чес гря х**** и очень большая хоть и давно..

решаемая задача
Есть категории товаров (например мебель для персонала), и субкатегории (класс - бизнес, эконом и прочая)
есть товар (марка мебели) - в каждой категории соотвественно много товаров - у товара есть свой набор фотографий красивых - их надо выводить
у товара есть дочерние товары (конкретные мебелятины - стол, тымбочка, шкаф, еще там чего)
у дочерних товаров есть настраиваемые поля - причем обязательно "атрибут корзины" - это выбор цвета - поскольку от того какого цвета стол зависит его цена..

все собсвтенно решил через шаблон... только даже на хостинге средней паршивости мое решение грузит проц неимоверно... если например смотрим страницу товара... тут же надо вывести дочерние товары с возможностью добавить в корзину и при этом у каждой дочки выбрать цвет... если дочек штук 50 (далеко не предел) и у каждой по 5 полей - получается 250 запросов к БД для вывода одной страницы...
проблема 2 - прайсы приходят в разных ценах причем хитрых - не всегда напрямую курс валюты - а например по какому то собственному курсу поставщика который отличается от банковского - ну это собственно ерунда решается вводом дополнительных несуществующих валют. кроме того - поставщики присылают прайсы не в виде Цвет1 - цена 1, Цвет2 - ЦенаЦвет1+наценка (как типа работает VirtueMart - прибавляет цену к основной) - а сразу в цене конечного цвета - при достаточно частой смене цен перелопачивание прайсов и приведение их в подходящий для загрузки вид (то есть чтобы цены отличались по принципу сложить-отнять от базовой цены) превращается в сущий ад в несколько дней работы... собственно данная проблема тоже решается выставление цены основного и дочернего товара в 0 - тогда конечная цена будет формироваться исключительно из цены, указанной в настраиваемом поле.
Но и это еще не все! !цена, указанная в настраиваемых полях (которая должна прибавляться типа к основной цене товара) - не конвертиться! то есть если мы выберем в настраиваемом поле цвет допустим синий у которого цена указана 300 (пофиг в какой валюте) - то эти 300 и прибавятся к цене основного товара уже подвергшейся конвертации..
подробнее
Мебель "Амазон"... дочка "стол приставной" основная цена 75 долларов... основная валюта сайта - рубли.. при выводе цена на стол конвертиться и получается скажем 75*30 = 2250 руб.
настраиваемы поля - цвет синий + 5 долларов, цвет зеленый + 12 долларов... при выводе товара после выбора настраиваемого поля получится цена 2250 + 5 = 2255 руб! а не 75*30 + 5*30  = 2400!
собственно эту проблему тоже решил без хака чисто средствами шаблона... увеличив в три раза количество запросов к БД - на каждое настраиваемое поле получается добавляется по два запроса - поскольку готовых процедур работающих с одним запросом в коде VirtueMart просто нет... точнее они недоступны из шаблона - не публичны...
так что решение есть но толку с него как бы и нет - в рабочем сайте использовать нельзя... хрень получается..
я и не использовал.. вернулся вообще к предыдущему сайту на Joomla 1.5 сделанному три года назад где все давным похакано под требования заказчика...
*

Sliapy

  • Захожу иногда
  • 318
  • 48 / 4
Re: Дочерние товары таблицей
« Ответ #45 : 21.04.2013, 03:51:10 »
А решения проблемы, когда имеются пункты меню для категорий virtuemart'a - дублируются дочерние товары, так и нет? Может быть, кто-то готов подправить код на возмездной основе?
*

artmasterpro

  • Осваиваюсь на форуме
  • 44
  • 9 / 0
Re: Дочерние товары таблицей
« Ответ #46 : 29.04.2013, 19:09:13 »
При реализации вышеописанного срипта столкнулся с проблемой - при выводе таблицы дочерних товаров, родительский товар отключается (( и его нельзя купить (он просит выбрать сначала дочерний)

---

Сам себе отвечу: нужно было в родительском товаре при выборе дополнительного поля - поставить галочку
« Последнее редактирование: 15.05.2013, 16:24:19 от artmasterpro »
*

artmasterpro

  • Осваиваюсь на форуме
  • 44
  • 9 / 0
Re: Дочерние товары таблицей
« Ответ #47 : 15.05.2013, 17:53:44 »
Все сделал, но нет картинок.
Переменная $arr['tovarimage'] пуста как так может быть если ссылка на товар и цена все работает

 
Код
$res[]= '<tr><td><a class="modal" href='.JRoute::_('index.php?option=com_virtuemart').$arr['tovarmodimage'].'>
<img class="product-image" src='.JRoute::_('index.php?option=com_virtuemart').$arr['tovarimage'].'></a>
 
</td>
*

SAS75

  • Новичок
  • 5
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #48 : 18.07.2013, 10:29:47 »
все сделал, но товары не отображаются, есть только заголовки столбцов и сверху страницы надпись "getUncategorizedChildren sql error" версия магазина 2.0.10 Joomla 2.5.6
*

kasskad

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #49 : 05.08.2013, 23:00:30 »
Делал по всем вышеуказанным вариантам в версии магазина 2.0.22а. Получается одинаково во всех случаях, дочернии товары выводятся но кнопка купить добавляет только родителя и количество прибавляется с любой кнопки дочернего или родителя. То есть товары выводит  а купить можно только один (родитель). Что не хватает не пойму если подскажете буду благодарен. И еще вопрос можно ли сделать чтоб дочернии товары также таблицей были были в категориях?
*

vladsklyar

  • Захожу иногда
  • 86
  • 1 / 0
Re: Дочерние товары таблицей
« Ответ #50 : 08.08.2013, 00:18:47 »
Делал по всем вышеуказанным вариантам в версии магазина 2.0.22а. Получается одинаково во всех случаях, дочернии товары выводятся но кнопка купить добавляет только родителя и количество прибавляется с любой кнопки дочернего или родителя. То есть товары выводит  а купить можно только один (родитель). Что не хватает не пойму если подскажете буду благодарен. И еще вопрос можно ли сделать чтоб дочернии товары также таблицей были были в категориях?

А не могли бы Вы выложить код как у Вас получилось вывести таблицу для  2.0.22a 
*

dem

  • Новичок
  • 4
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #51 : 23.08.2013, 21:11:51 »
А может кто-то знает как дочерние товары выводить в таблице в две колонки, а не в одну.
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Re: Дочерние товары таблицей
« Ответ #52 : 23.08.2013, 21:59:19 »
Может отметить в настройках VM, что нужно по два в строчку?
*

dem

  • Новичок
  • 4
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #53 : 25.08.2013, 13:43:25 »
Нет настройки VirtueMart тут ни при чём, тут в коде заложено, чтобы товар отображался в новой строке таблицы.
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
Re: Дочерние товары таблицей
« Ответ #54 : 09.09.2013, 16:45:32 »
VM 2.0.22c - не работает у меня. Выдает в списке совсем левый товар. Что изменилось в этой версии?
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
Re: Дочерние товары таблицей
« Ответ #55 : 09.09.2013, 18:36:13 »
Выкладываю сюда код для VM 2.0.22, который получился у меня. Правда мне изображений товара не нужно:
product.php:
Код
public function getUncategorizedChildren ($withParent) {
if (empty($this->_uncategorizedChildren)) {

$q = 'SELECT * FROM `#__virtuemart_products` as p
LEFT JOIN `#__virtuemart_products_' . VMLANG . '` as pl
USING (`virtuemart_product_id`)
LEFT JOIN `#__virtuemart_product_prices`
USING (`virtuemart_product_id`) ';

$q .= ' WHERE `product_parent_id` = "'.$this->_id.'" OR `virtuemart_product_id` = "'.$this->_id.'" ';

$app = JFactory::getApplication ();
if ($app->isSite () && !VmConfig::get ('use_as_catalog', 0) && VmConfig::get ('stockhandle', 'none') == 'disableit') {
$q .= ' AND p.`product_in_stock`>"0" ';
}

if ($app->isSite ()) {

$q .= ' AND p.`published`="1"';
}

$q .= ' GROUP BY `virtuemart_product_id` ORDER BY p.pordering ASC';
$this->_db->setQuery ($q);
$this->_uncategorizedChildren = $this->_db->loadAssocList ();

$err = $this->_db->getErrorMsg ();
if (!empty($err)) {
vmError ('getUncategorizedChildren sql error ' . $err, 'getUncategorizedChildren sql error');
vmdebug ('getUncategorizedChildren ' . $err);
return FALSE;
}
}
return $this->_uncategorizedChildren;
}

customfields.php:
Код
$options = array();

$session = JFactory::getSession ();
$virtuemart_category_id = $session->get ('vmlastvisitedcategoryid', 0, 'vm');

$productModel = VmModel::getModel ('product');
$productModel->setId($product->virtuemart_product_id);

VirtueMartModelCustomfields::bindParameterableByFieldType($customfield);
$selected = JRequest::getVar ('virtuemart_product_id',0);

if(is_array($selected) ) {
$selected = $selected[0];
}
$selected = (int) $selected;

$html = '';
$uncatChildren = $productModel->getUncategorizedChildren ($customfield->withParent);

if(empty($uncatChildren)){
return $html;
break;
}

foreach($uncatChildren as $k =>$child ){
$options[] = array( 'value' => JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id='.$virtuemart_category_id.'&virtuemart_product_id='.$child['virtuemart_product_id']),
'id'=>$child['virtuemart_product_id'],
'text' =>$child['product_name'],'tovarimage' =>$child['file_url_thumb'],
'tovarmodimage' =>$child['file_url'], 'tovarprice' =>$child['product_price'] );}

$res=array();

$table='<div class="tabletov"><table width="100%">
<tr><th width="30%">Название</th><th>Цена</th><th>Купить</th></tr>';

foreach($options as $arr) {

if ( $arr['value'] === JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id='.$virtuemart_category_id.'&virtuemart_product_id='.$selected)) continue;

$res[]= '
<tr>
<td><a href='.$arr['value'].'>'.$arr['text'].'</a></td>
<td>'.$currency->priceDisplay((float)$arr['tovarprice']).'</td>
<td>
<form method="post" class="product js-recalculate" action="index.php" >
<span class="quantity-box">
<input type="text" class="quantity-input js-recalculate" name="quantity[]" value="0" />
</span>
<span class="quantity-controls js-recalculate">
<input type="button" class="quantity-controls quantity-plus" />
<input type="button" class="quantity-controls quantity-minus" />
</span>
<span class="addtocart-button">
<input type="submit" name="addtocart" class="addtocart-button" value="Добавить в корзину" />
</span>

<input class="pname" type="hidden" value="'.$arr['text'].'" />
<input type="hidden" value="com_virtuemart" name="option" />
<input type="hidden" value="cart" name="view" />
<noscript><input type="hidden" name="task" value="add" /></noscript>
<input type="hidden" value='.$arr['id'].' name="virtuemart_product_id[]" />
<input type="hidden" value="0" name="virtuemart_category_id[]" />
</form>
</td>
</tr>';

}

$str = implode($res);
$html = $table.''.$str.'</table></div>';
return $html;

Но! У меня почему-то если отправлять общей кнопкой главного товара, - в корзину летит первый из дочерних. Правда для них я по-умолчанию сделал value="0", - ведь не надо же их в корзину отправлять по-любому?
И есть тут знатоки javascript? Когда на странице меняешь количество, - меняется у всех. Скрипт не понимает, что тут кнопка не одна.
*

kasskad

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #56 : 16.09.2013, 23:08:02 »
Выкладываю сюда код для VM 2.0.22c, который получился у меня методом научного тыка. Правда мне изображений товара не нужно:
product.php:
Код
$q = 'SELECT * FROM `#__virtuemart_products` as p
      LEFT JOIN `#__virtuemart_products_'.VMLANG.'` as pl
      USING (`virtuemart_product_id`)
            LEFT JOIN `#__virtuemart_product_medias`
      USING (`virtuemart_product_id`)
            LEFT JOIN `#__virtuemart_medias`
            USING (`virtuemart_media_id`)
            LEFT JOIN `#__virtuemart_product_prices`
      USING (`virtuemart_product_id`)';
 
// $q .= ' WHERE (`product_parent_id` = "'.$this->_id.'" AND (pc.`virtuemart_category_id`) IS NULL  ) OR (`virtuemart_product_id` = "'.$this->_id.'" ) ';
if ($withParent <> $this->_id ){//добыча настраиваемых полей для дочернего товара
$q.= ' WHERE (`product_parent_id` = "'.$this->_id.'" OR virtuemart_product_id="'.$this->_id.'" )AND `virtuemart_product_id` <> "'.$withParent.'"';
}
else{//добыча настраиваемых полей для родительского товара
$q.= ' WHERE `product_parent_id` = "'.$this->_id.'"';
}
customfields.php:
Код
case 'A':
$options = array();
$session = JFactory::getSession();
$virtuemart_category_id =
  $session->get('vmlastvisitedcategoryid', 0, 'vm');
$productModel = VmModel::getModel('product');
$withParent = JRequest::getInt('virtuemart_product_id');
$uncatChildren = $productModel->getUncategorizedChildren($withParent);
foreach($uncatChildren as $k =>$child ){
$options[] = array( 'value' => JRoute::_
('index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id=
'.$virtuemart_category_id.'&virtuemart_product_id='.$child['virtuemart_product_id']),
'id'=>$child['virtuemart_product_id'],
'text' =>$child['product_name'],'articul' =>$child['product_sku'],'volume' =>$child['product_weight'],
'tovarprice' =>$child['product_price'] );}
 
 $res=array();
 $table='<div class="tabletov"><table style="border: 1px solid #cccccc; "border="1">
 <tr>
 <th>Название</th>
 <th>Мощность</th>
  <th>Цена</th>
  <th>Купить</th>
  </tr>';
 
foreach($options as $arr):
if ( $arr['value'] === JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id='.$virtuemart_category_id.'&virtuemart_product_id='.$withParent)) continue;
$res[]= '<tr>
<td><a href='.$arr['value'].'>'.$arr['text'].'</a></td>
<td>'.round($arr['volume']).' кВт.</td>
<td>'.$currency->priceDisplay((float)$arr['tovarprice']).'</td>
<td><form method="post" class="product js-recalculate" action="index.php" >
<span class="quantity-box">
<input type="text" class="quantity-input js-recalculate" name="quantity[]" value="1" /></span>
<span class="quantity-controls js-recalculate">
<button class="quantity-controls quantity-plus" type="button" />
<i class="icon-angle-up"></i>
</button>
<button class="quantity-controls quantity-minus" type="button" />
<i class="icon-angle-down"></i>
</button>
</span>
<span class="addtocart-button"><input type="submit" name="addtocart" 
class="addtocart-button" value="В корзину" /></span>
<input class="pname" type="hidden" value='.$arr['text'].'>
<input type="hidden" value="com_virtuemart" name="option">
<input type="hidden" value="cart" name="view">
<noscript><input type="hidden" name="task" value="add" /></noscript>
 <input type="hidden" value='.$arr['id'].' name="virtuemart_product_id[]">
 <input type="hidden" value="0" name="virtuemart_category_id[]"></form></td></tr>';
endforeach;
$str = implode($res);
return '<br>'.$table.''.$str.'</table></div>';
break;
Цитировать
Для того, чтобы на странице дочернего товара VirtueMart  выводилась аналогичная таблица товаров как у родительского, включая родителя и исключая текущий просматриваемый дочерний товар
делал по совету borro
Для вывода таблицы на страницу категорий надо в нужное место вставить код
Код
<?php $custom_title = null;
if (!empty($product->customfields)) {
foreach ($product->customfields as $field) {
if ($field->is_hidden )
continue;
if ($field->display) { ?>
<span class="product-pole-display"><?php echo $field->display ?></span>
<?php } ?> <?php } ?> <?php }  ?>
Но вот в этом и проблема теперь мне не нужно выводить в таблице (родителя) на странице дочернего товара.
И вопрос к borro как не выводить родителя в таблицах?
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
Re: Дочерние товары таблицей
« Ответ #57 : 16.09.2013, 23:24:56 »
Но! У меня почему-то если отправлять общей кнопкой главного товара, - в корзину летит первый из дочерних. Правда для них я по-умолчанию сделал value="0", - ведь не надо же их в корзину отправлять по-любому?
И есть тут знатоки javascript? Когда на странице меняешь количество, - меняется у всех. Скрипт не понимает, что тут кнопка не одна.
Причину нашел - формы в общей форме оказались. Исправил - полёт нормальный. Работает.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Дочерние товары таблицей
« Ответ #58 : 17.09.2013, 09:36:35 »
И вопрос к borro как не выводить родителя в таблицах?
Здравствуйте. Вы имеете в виду не выводить родителя на странице дочернего товара, но выводить все остальные дочерние этого родителя?
*

kasskad

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Дочерние товары таблицей
« Ответ #59 : 17.09.2013, 21:30:23 »
Да не выводить родителя на странице дочернего товара а только дочерние этого родителя то есть родитель не выводиться ни где.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать товары в 2 колонки в моб версии?

Автор art22

Ответов: 4
Просмотров: 1134
Последний ответ 06.12.2022, 11:42:56
от art22
Как пересохранить все товары?

Автор stydent

Ответов: 1
Просмотров: 1770
Последний ответ 30.03.2022, 10:38:06
от itpremium
mod_virtuemart_product - как скрыть товары, которых нет в наличии?

Автор alexfom_16

Ответов: 40
Просмотров: 4448
Последний ответ 11.10.2021, 17:50:38
от hmr
Вывести товары из подкатегории в категорию

Автор xlite

Ответов: 78
Просмотров: 28284
Последний ответ 08.03.2021, 10:06:58
от kisBoss
Приоритетный Itemid для формирования ссылок на товары/категории

Автор rsn

Ответов: 2
Просмотров: 546
Последний ответ 10.03.2020, 08:21:45
от rsn