Регистрация
Вход через соцсети
Восстановление пароля

Виджет показывает все данные разных товаров в модальном окне.

Новый топик
04.03.2015, 17:50
Ответить | Цитировать
Alex

Зарегистрирован:
2015-02-28
Сообщений: 2

Народ, помогите пожалуйста.

Решил поменять дизайн виджета "Интернет-магазин: Новые товары" и добавить пару фишек типа быстрого просмотра, вот код шаблона:
Код:

<?php
require_once($nc_core->MODULE_FOLDER . 'netshop/function.inc.php');
$netshop = nc_netshop::get_instance();
$db = $nc_core->db;

$catalogue = $nc_core->catalogue->get_current('Catalogue_ID');

$sql = "SELECT DISTINCT f.`Class_ID` FROM `Field` AS f " .
"INNER JOIN `Sub_Class` AS sc ON sc.`Class_ID` = f.`Class_ID` " .
"WHERE sc.`Catalogue_ID` = {$catalogue} AND f.`Field_Name` = 'Price'";
$classes = (array)$db->get_col($sql);

$dates = array();
$goods = array();

foreach ($classes as $class_id) {
$sql = "SELECT `Message_ID`, m.`Created` FROM `Message{$class_id}` AS m " .
"LEFT JOIN `Sub_Class` AS sc ON sc.`Sub_Class_ID` = m.`Sub_Class_ID` " .
"WHERE sc.`Catalogue_ID` = {$catalogue} AND m.`Parent_Message_ID` = 0";

foreach ((array)$db->get_results($sql, ARRAY_A) as $row) {
$goods[] = array(
'Item_ID' => $row['Message_ID'],
'Class_ID' => $class_id,
);

$dates[] = strtotime($row['Created']);
}
}

array_multisort($goods, $dates, SORT_DESC);
$goods = array_slice($goods, 0, 10);

if ($goods) {
?>

<div class="container">
<h2>новое в магазине</h2>


<div class="jcarousel-wrapper">


<div class="jCarousel_pagination">
<a href="javascript:void(0);" class="jcarousel-control-prev" ><i class="fa fa-angle-left"></i></a>
<a href="javascript:void(0);" class="jcarousel-control-next" ><i class="fa fa-angle-right"></i></a>
</div>

<div class="jcarousel" data-appear-top-offset='-100' data-animated='fadeInUp'>
<ul>
<? foreach ($goods as $item) {
try {
$item = new nc_netshop_item(array('Class_ID' => $item['Class_ID'], 'Message_ID' => $item['Item_ID']));
} catch (Exception $e) {
continue;
}

if (!$item || !$item['Sub_Class_ID']) {
continue;
}
?>
<li>

<div class="tovar_item_new">
<div class="tovar_img">
<div class="resizenewtph"><img alt="" src="<?= $item['BigImage']; ?>"></div>
<div class="open-project-link"><a class="open-project tovar_view" href="#openquickview">быстрый просмотр</a></div>

<div id="openquickview" style="display:none;">

<div class="tover_view_page element_fade_in">
<div class="tover_view_header clearfix">
<p>Quick view</p>
<a id="tover_view_page_close" href="javascript:void(0);">Close<i>X</i></a>
</div>

<div class="tovar_view_description">
<div class="tovar_view_title"><?= $item['Name']; ?></div>
<div class="tovar_article"><?= $item['ItemID']; ?></div>
<div class="clearfix tovar_brend_price">
<div class="pull-left tovar_brend"><?= $item['Vendor']; ?> </div>
<div class="pull-right tovar_view_price"><?= $item['ItemPriceF']; ?></div>
</div>

<div class="tovar_description clearfix">
<a class="tovar_title" href="<?= nc_message_link($item['Message_ID'], $item['Class_ID']); ?>" ><?= $item['Vendor']; ?> <?= $item['Name']; ?></a>
<span class="tovar_price"><?= $item['ItemPriceF']; ?></span>
</div>
</div>
</li>

<? } ?>


</ul>
</div>
</div>
</div>
<? } ?>


Проблема в том, что при клике на ссылку открываются все товары в одном модальном окне. Заметил, что проблема в том, что виджет добавляет для каждого товара класс tover_view_page с данными,в этом вся и загвостка.
Если вынести класс за виджет, то все ссылки нажимаются нормально и все открывают по одному окну как надо, но всегда в любом модальном окне присутствует последний товар, я в замешательстве.
Идеально было был подгружать этот класс при вызове через ссылку в виджете, но как это сделать не понимаю, при этом необходимо было бы в данные класса подгружать данные из виджета такие как цена, название и т.д.
Как исправить данное безобразие, подскажите пожалуйста.
05.03.2015, 12:30
Ответить | Цитировать
Alex

Зарегистрирован:
2015-02-28
Сообщений: 2

Как всегда, Всем спасибо за помощь.
Все оказалось проще простого, скрытую форму поместили в компонент товара и вуаля все заработало.
198 196 2015-03-05 12:30:38 14045
Описание проекта