[-] 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:
Fabio Chelly
2013-07-05 17:18:28 +02:00
parent 2489778b3c
commit a70d3145cd
2 changed files with 70 additions and 60 deletions
+20 -7
View File
@@ -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 (
+50 -53
View File
@@ -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>