Автор Тема: Таблица комбинации в админ панели товары  (Прочитано 1348 раз)

25 Ноябрь 2015, 10:45:36
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
В контоллере /controllers/admin/AdminProductsController.php
$combinations = $product->getAttributeCombinationsById($id_product_attribute, $this->context->language->id);
foreach ($combinations as $key => $combination)
$combinations[$key]['attributes'][] = array($combination['group_name'], $combination['attribute_name'], $combination['id_attribute']);
27 Ноябрь 2015, 13:48:17
Ответ #16
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо всем за ответы! Удачи вам!
Если кому нужно вот оптимальное решение данного вопроса..
$sql = 'SELECT pa.*, product_attribute_shop.*, ag.`id_attribute_group`, ag.`is_color_group`, agl.`name` AS group_name, al.`name` AS attribute_name,
a.`id_attribute`, pa.`unit_price_impact`
FROM `'._DB_PREFIX_.'product_attribute` pa
'.Shop::addSqlAssociation('product_attribute', 'pa').'
LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute`
LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.`id_attribute` = pac.`id_attribute`
LEFT JOIN `'._DB_PREFIX_.'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group`
LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (a.`id_attribute` = al.`id_attribute`)
LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON (ag.`id_attribute_group` = agl.`id_attribute_group`)
LEFT JOIN `'._DB_PREFIX_.'stock_available` pq ON ('.$this->product->id.' = pq.`id_product` AND pa.`id_product_attribute` = pq.`id_product_attribute`)
WHERE pa.`id_product` = '.$this->product->id.' AND pq.quantity = 0
AND pa.`id_product_attribute` = pac.`id_product_attribute`
GROUP BY pa.`id_product_attribute`, ag.`id_attribute_group`
ORDER BY pa.`id_product_attribute`';



$ress = Db::getInstance()->executeS($sql);
$this->context->smarty->assign('atribOPTS', $ress);

Далее в зависимости от количества параметров комбинаций вывод значений..

{if $atribOPTS}
<table class="std table-product-discounts">
<tr>
{$starts=0}
{foreach from=$atribOPTS item=atrib}
    <th>{$atrib.attribute_name}</th>
{$starts=$starts+1}
{if $starts==3}
<th style="color: DarkGrey;">{'нет товара}</th>
</tr>
<tr>
{$starts=0}
{/if}
{/foreach}

<tr>
</table>
{/if}

Строка $starts==3 это по 3 параметрам.
Получается таблица во вложении.
Вопрос закрыт.
Еще раз всем спасибо!