[-] MO Blockwishlist : images are displayed in wishlist page loaded through a permalink. Add to cart is restored and quantity is correctly calculated for each product with or without combinations
#PNM-573 #PNM-663 #PNM-1268 #PNM-1302 #PNM-1303 #PNM-1313 #PNM-1512 #PNM-1541
This commit is contained in:
@@ -31,6 +31,8 @@ require_once(dirname(__FILE__).'/../../config/config.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../header.php');
|
||||
require_once(dirname(__FILE__).'/WishList.php');
|
||||
|
||||
error_reporting(0);
|
||||
|
||||
$context = Context::getContext();
|
||||
$token = Tools::getValue('token');
|
||||
|
||||
@@ -44,34 +46,45 @@ if (empty($token) === false)
|
||||
$errors[] = $module->l('Invalid wishlist token', 'view');
|
||||
WishList::refreshWishList($wishlist['id_wishlist']);
|
||||
$products = WishList::getProductByIdCustomer((int)($wishlist['id_wishlist']), (int)($wishlist['id_customer']), $context->language->id, null, true);
|
||||
|
||||
for ($i = 0; $i < sizeof($products); ++$i)
|
||||
{
|
||||
$obj = new Product($products[$i]['id_product'], false, $context->language->id);
|
||||
$obj = new Product((int)($products[$i]['id_product']), false, $context->language->id);
|
||||
if (!Validate::isLoadedObject($obj))
|
||||
continue;
|
||||
else
|
||||
{
|
||||
if ($products[$i]['id_product_attribute'] != 0 && isset($combination_imgs[$products[$i]['id_product_attribute']][0]))
|
||||
$quantity = Product::getQuantity((int)$products[$i]['id_product'], $products[$i]['id_product_attribute']);
|
||||
$products[$i]['attribute_quantity'] = $quantity;
|
||||
$products[$i]['product_quantity'] = $quantity;
|
||||
if ($products[$i]['id_product_attribute'] != 0)
|
||||
{
|
||||
$combination_imgs = $obj->getCombinationImages($context->language->id);
|
||||
$products[$i]['cover'] = $obj->id.'-'.$combination_imgs[$products[$i]['id_product_attribute']][0]['id_image'];
|
||||
if (isset($combination_imgs[$products[$i]['id_product_attribute']][0]))
|
||||
$products[$i]['cover'] = $obj->id.'-'.$combination_imgs[$products[$i]['id_product_attribute']][0]['id_image'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$images = $obj->getImages($context->language->id);
|
||||
foreach ($images AS $k => $image)
|
||||
{
|
||||
if ($image['cover'])
|
||||
{
|
||||
$products[$i]['cover'] = $obj->id.'-'.$image['id_image'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isset($products[$i]['cover']))
|
||||
$products[$i]['cover'] = $context->language->iso_code.'-default';
|
||||
}
|
||||
if (!isset($products[$i]['cover']))
|
||||
$products[$i]['cover'] = $context->language->iso_code.'-default';
|
||||
}
|
||||
$products[$i]['bought'] = false;
|
||||
for ($j = 0, $k = 0; $j < sizeof($bought); ++$j)
|
||||
{
|
||||
if ($bought[$j]['id_product'] == $products[$i]['id_product'] AND
|
||||
$bought[$j]['id_product_attribute'] == $products[$i]['id_product_attribute'])
|
||||
$products[$i]['bought'][$k++] = $bought[$j];
|
||||
}
|
||||
}
|
||||
|
||||
WishList::incCounter((int)($wishlist['id_wishlist']));
|
||||
$ajax = Configuration::get('PS_BLOCK_CART_AJAX');
|
||||
$context->smarty->assign(array (
|
||||
|
||||
@@ -38,58 +38,55 @@
|
||||
{/foreach}
|
||||
</p>
|
||||
{/if}
|
||||
{if $products}
|
||||
<div class="addresses" id="featured-products_block_center">
|
||||
<h3>{l s='Welcome to the wishlist of' mod='blockwishlist'} {$current_wishlist.firstname} {$current_wishlist.lastname}: {$current_wishlist.name}</h3>
|
||||
<p />
|
||||
{foreach from=$products item=product name=i}
|
||||
<ul class="address {if $smarty.foreach.i.last}last_item{elseif $smarty.foreach.i.first}first_item{/if} {if $smarty.foreach.i.index % 2}alternate_item{else}item{/if}" id="block_{$product.id_product}_{$product.id_product_attribute}">
|
||||
<div class="ajax_block_product">
|
||||
<li class="address_title"><a href="{$link->getProductLink($product.id_product,
|
||||
$product.link_rewrite, $product.category_rewrite)}" title="{l s='View' mod='blockwishlist'}">{$product.name|truncate:30:'...'|escape:'htmlall':'UTF-8'}</a></li>
|
||||
<li class="address_name">
|
||||
<a href="{$link->getProductlink($product.id_product, $product.link_rewrite, $product.category_rewrite)|escape:'html'}" title="{l s='Product detail' mod='blockwishlist'}" class="product_image" title="{$product.name|escape:'htmlall':'UTF-8'}">
|
||||
<img src="{$link->getImageLink($product.link_rewrite, $product.cover, 'medium')|escape:'html'}" alt="{$product.name|escape:'htmlall':'UTF-8'}" />
|
||||
</a>
|
||||
<span class="wishlist_product_detail">
|
||||
{if isset($product.attributes_small)}
|
||||
<br /><a href="{$link->getProductlink($product.id_product, $product.link_rewrite, $product.category_rewrite)|escape:'html'}" title="{l s='Product detail' mod='blockwishlist'}">{$product.attributes_small|escape:'htmlall':'UTF-8'}</a>
|
||||
{/if}
|
||||
<br />{l s='Quantity:' mod='blockwishlist'}<input type="text" id="{$product.id_product}_{$product.id_product_attribute}" size="3" value="{$product.quantity|intval}" readonly/>
|
||||
<br />{l s='Priority:' mod='blockwishlist'}
|
||||
{if $product.priority eq 0}
|
||||
<span style="color:darkred; float:right;">{l s='High' mod='blockwishlist'}</span>
|
||||
{elseif $product.priority eq 1}
|
||||
<span style="color:darkorange; float:right;">{l s='Medium' mod='blockwishlist'}</span>
|
||||
{else}
|
||||
<span style="color:green; float:right;">{l s='Low' mod='blockwishlist'}</span>
|
||||
{/if}
|
||||
</span>
|
||||
</li>
|
||||
<li class="address_address1 clear">
|
||||
<a class="button_small clear" href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category_rewrite)|escape:'html'}" title="{l s='View' mod='blockwishlist'}" rel="nofollow">{l s='View' mod='blockwishlist'}</a>
|
||||
{if isset($product.attribute_quantity) AND $product.attribute_quantity >= 1 OR !isset($product.attribute_quantity) AND $product.product_quantity >= 1}
|
||||
{if !$ajax}
|
||||
<form id="addtocart_{$product.id_product|intval}_{$product.id_product_attribute|intval}" action="{$link->getPageLink('cart')|escape:'html'}" method="post">
|
||||
<p class="hidden">
|
||||
<input type="hidden" name="id_product" value="{$product.id_product|intval}" id="product_page_product_id" />
|
||||
<input type="hidden" name="add" value="1" />
|
||||
<input type="hidden" name="token" value="{$token}" />
|
||||
<input type="hidden" name="id_product_attribute" id="idCombination" value="{$product.id_product_attribute|intval}" />
|
||||
</p>
|
||||
</form>
|
||||
{/if}
|
||||
<a href="javascript:;" class="exclusive" onclick="WishlistBuyProduct('{$token|escape:'htmlall':'UTF-8'}', '{$product.id_product}', '{$product.id_product_attribute}', '{$product.id_product}_{$product.id_product_attribute}', this, {$ajax});" title="{l s='Add to cart' mod='homefeatured'}" rel="nofollow">{l s='Add to cart' mod='blockwishlist'}</a>
|
||||
{else}
|
||||
<span class="exclusive">{l s='Add to cart' mod='blockwishlist'}</span>
|
||||
{/if}
|
||||
</li>
|
||||
</div>
|
||||
</ul>
|
||||
{/foreach}
|
||||
<p class="clear" />
|
||||
|
||||
<div class="wlp_bought">
|
||||
<ul class="clearfix wlp_bought_list">
|
||||
{foreach from=$products item=product name=i}
|
||||
<li id="wlp_{$product.id_product}_{$product.id_product_attribute}" class="clearfix address {if $smarty.foreach.i.index % 2}alternate_{/if}item">
|
||||
<div class="clearfix">
|
||||
<div class="product_image">
|
||||
<a href="{$link->getProductlink($product.id_product, $product.link_rewrite, $product.category_rewrite)|escape:'html'}" title="{l s='Product detail' mod='blockwishlist'}">
|
||||
<img src="{$link->getImageLink($product.link_rewrite, $product.cover, 'medium_default')|escape:'html'}" alt="{$product.name|escape:'htmlall':'UTF-8'}" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="product_infos">
|
||||
<p id="s_title" class="product_name">{$product.name|truncate:30:'...'|escape:'htmlall':'UTF-8'}</p>
|
||||
<span class="wishlist_product_detail">
|
||||
{if isset($product.attributes_small)}
|
||||
<a href="{$link->getProductlink($product.id_product, $product.link_rewrite, $product.category_rewrite)|escape:'html'}" title="{l s='Product detail' mod='blockwishlist'}">{$product.attributes_small|escape:'htmlall':'UTF-8'}</a>
|
||||
{/if}
|
||||
<br />{l s='Quantity' mod='blockwishlist'}:<input type="text" id="quantity_{$product.id_product}_{$product.id_product_attribute}" value="{$product.quantity|intval}" size="3" />
|
||||
<br /><br />
|
||||
{l s='Priority' mod='blockwishlist'}:
|
||||
<select id="priority_{$product.id_product}_{$product.id_product_attribute}">
|
||||
<option value="0"{if $product.priority eq 0} selected="selected"{/if}>{l s='High' mod='blockwishlist'}</option>
|
||||
<option value="1"{if $product.priority eq 1} selected="selected"{/if}>{l s='Medium' mod='blockwishlist'}</option>
|
||||
<option value="2"{if $product.priority eq 2} selected="selected"{/if}>{l s='Low' mod='blockwishlist'}</option>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn_action">
|
||||
<a class="button_small clear" href="{$link->getProductLink($product.id_product, $product.link_rewrite, $product.category_rewrite)|escape:'html'}" title="{l s='View' mod='blockwishlist'}" rel="nofollow">{l s='View' mod='blockwishlist'}</a>
|
||||
{if isset($product.attribute_quantity) AND $product.attribute_quantity >= 1 OR !isset($product.attribute_quantity) AND $product.product_quantity >= 1}
|
||||
{if !$ajax}
|
||||
<form id="addtocart_{$product.id_product|intval}_{$product.id_product_attribute|intval}" action="{$link->getPageLink('cart')|escape:'html'}" method="post">
|
||||
<p class="hidden">
|
||||
<input type="hidden" name="id_product" value="{$product.id_product|intval}" id="product_page_product_id" />
|
||||
<input type="hidden" name="add" value="1" />
|
||||
<input type="hidden" name="token" value="{$token}" />
|
||||
<input type="hidden" name="id_product_attribute" id="idCombination" value="{$product.id_product_attribute|intval}" />
|
||||
</p>
|
||||
</form>
|
||||
{/if}
|
||||
<a href="javascript:;" class="exclusive" onclick="WishlistBuyProduct('{$token|escape:'htmlall':'UTF-8'}', '{$product.id_product}', '{$product.id_product_attribute}', '{$product.id_product}_{$product.id_product_attribute}', this, {$ajax});" title="{l s='Add to cart' mod='homefeatured'}" rel="nofollow">{l s='Add to cart' mod='blockwishlist'}</a>
|
||||
{else}
|
||||
<span class="exclusive">{l s='Add to cart' mod='blockwishlist'}</span>
|
||||
{/if}
|
||||
</div>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{else}
|
||||
<p class="warning">{l s='No products' mod='blockwishlist'}</p>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user