Webasyst Shop-Script 3: Отображение фото товара в списке заказов (модификация админпанели)

Просматривать заказы в админпанели намного удобнее, если помимо прочей информации там отображается фотография товара, который заказал пользователь.

В статье описано, как реализовать такую возможность.

Для начала, добавляем необходимый для работы метод:
находим файл borders_list.php в published/SC/html/scripts/modules/ordering/_methods/ и открываем его для редактирования.
Перед строкой if(!$res||$messageClient->getResult(‘success’)===true){ вставляем код:

foreach($orders as $i => $order){ $orders[$i]['products'] = db_phquery_fetch(DBRFETCH_ASSOC_ALL, ' SELECT IF (`pictures`.`thumbnail` <> NULL, `pictures`.`thumbnail`, `pictures`.`filename`) as `picture`, `products`.`productID`, `products`.'.LanguagesManager::sql_prepareField('name', true).' FROM `?#ORDERED_CARTS_TABLE` `carts` LEFT JOIN `?#SHOPPING_CART_ITEMS_TABLE` `items` USING (`itemID`) LEFT JOIN `?#PRODUCTS_TABLE` `products` USING (`productID`) LEFT JOIN `?#PRODUCT_PICTURES` `pictures` ON (`products`.`default_picture` = `pictures`.`photoID` AND `products`.`productID` = `pictures`.`productID`) WHERE `carts`.`orderID` = ? ', $order['orderID']); } 

Теперь заставим шаблон отображения заказов выводить нам нужное фото в нужном месте: в папке published/SC/html/scripts/templates/backend/ находим файл orders_list.html и заменяем строку

<td><a href='{$order_url}' style="{$order_statuses[$order_statusID]._style}">{$orders[i].orderID_view}</a></td>

на

<td>
<a href='{$order_url}' style="{$order_statuses[$order_statusID]._style} float: left;">{$orders[i].orderID_view}</a> {if $orders[i].products} 
<ul style="float: left; margin: 0; padding-left: 0;"> {foreach from=$orders[i].products item=product} {if $product.productID} 
<li style="float: left; margin-left: 2px; list-style-type:none; border: 1px dotted #ccc; -webkit-border-radius: 4px; border-radius: 4px;"> <a href="{"?ukey=product&productID=`$product.productID`"|set_query_html}" target="_blank" title="{$product.name}"> <img src="{$smarty.const.URL_PRODUCTS_PICTURES}/{$product.picture}" height="25"> </a> 
</li> {/if} {/foreach} </ul> {/if} </td>

Хотелось бы обратить внимание на такую деталь: при клике по изображению товара, открывается новое окно с его описанием на витрине. Если эта функция оказалась лишней, то вместо кода приведенного выше вставляем:



<td> <a href='{$order_url}' style="{$order_statuses[$order_statusID]._style} float: left;">{$orders[i].orderID_view}</a> {if $orders[i].products} <ul style="float: left; margin: 0; padding-left: 0;">{foreach from=$orders[i].products item=product}{if $product.productID} <li style="float: left; margin-left: 1em; list-style-type:none;"><a href="{"?ukey=product_settings&productID=`$product.productID`"|set_query_html}" target="_blank" title="{$product.name}"><img src="{$smarty.const.URL_PRODUCTS_PICTURES}/{$product.picture}" height="16"></a> </li>{/if}{/foreach}</ul>{/if}</td>

Добавить комментарий