Тут такое дело, проблема с выводом из БД, результата поиска… две составляющих товара, цена и артикль не желают этого делать… Не как, не могу понять почему не выводится. Всё тоже самое работает в файлах products.tpl и product.tpl, а в файле шаблона поиска search.tpl не хочет.
При поиске выводится только имя товара и описание, хотел прикрутить ещё цену, артикаль но не получилось, помогите, объясните что я делаю не так? Вот код шаблона search.tpl:
| Код | {* Template name: Поиск Результаты поиска Used by: Search.class.php Assigned vars: $products, $keyword *}
<!-- Заголовок /--> <div id="page_title"> <h1 class="float_left">Поиск {$keyword|escape}</h1>
<!-- Хлебные крошки /--> <div id="path"> <a href="./">Главная</a> > Поиск {$keyword|escape} </div> <!-- Хлебные крошки #End /--> </div>
{if $properties} <div id="filter_params"> <table> {foreach name=properties item=property from=$properties} {assign var=property_id value=$property->property_id} <tr> <td>{$property->name}:</td> <td> {if $smarty.get.$property_id}<a href='catalog/{$category->url}{$property->clear_url}'>все</a>{else}все{/if} {foreach name=options from=$property->options item=option} {if $smarty.get.$property_id == $option->value} <span>{$option->value}</span> {else} <span><a href='catalog/{$category->url}{if $brand}/{$brand->url}{/if}{$option->url}'>{$option->value}</a></span> {/if} {/foreach} </td> </tr> {/foreach} </table> </div> {/if} {if $properties} <div id="filter_params"> <table> {foreach name=properties item=property from=$properties} {assign var=property_id value=$property->property_id} <tr> <td>{$property->name}:</td> <td> {if $smarty.get.$property_id}<a href='catalog/{$category->url}{$property->clear_url}'>все</a>{else}все{/if} {foreach name=options from=$property->options item=option} {if $smarty.get.$property_id == $option->value} <span>{$option->value}</span> {else} <span><a href='catalog/{$category->url}{if $brand}/{$brand->url}{/if}{$option->url}'>{$option->value}</a></span> {/if} {/foreach} </td> </tr> {/foreach} </table> </div> {/if} {if $products} <!-- Список товаров /--> <!-- Фильтр по свойствам #End /--> <div class="cat_table"> <table cellpadding="0" cellspacing="0" width="100%"> <thead> <tr style="background-color: #acbed2;"> <th align="left">OEM</th> <th align="left"><nobr>Наименование товара</nobr></th> <th align="left" width="200">Описание</th> <th>Цена</th> <th>Ед.</th> <th>Наличие</th> <th><nobr>В корзину</nobr></th> </tr> </thead> <tbody> {foreach name=products item=product from=$products} <!-- Товар /--> {if $smarty.foreach.products.iteration is not even} <tr class="ct_color1"> {else} <tr class="ct_color2"> {/if} <!-- OEM артикль /--> <td><nobr>{$product->variants[0]->sku}</nobr></td> <!-- #End артикль /--> <!-- Название /--> <td tooltip='product' product_id='{$product->product_id}'><nobr><a href="products/{$product->url}" {if $product->hit}class="product_name_link_hit"{else}class="product_name_link"{/if}>{$product->model|escape}</a></nobr></td> <!-- Название #End /-->
<!-- Описание товара /--> <td class="product_annotation"> {$product->description} </td> <!-- Описание товара #End /--> <!-- Цена /--> {if $product->variants[0]->discount_price>0} <td><nobr><span id=variant_price_{$product->product_id}>{$product->variants[0]->discount_price*$currency->rate_from/$currency->rate_to|string_format:"%.2f"}</span> {$currency->sign|escape}</nobr></td> {else} <td>---</td> {/if}
<!-- Цена #End /--> <td>шт</td> {if $product->variants[0]->discount_price>0} <td>Есть</td> {else} <td><a href="/sections/contacts">Заказать</a></td> {/if}
<td><form action=cart method=get> {if $product->variants|@count > 1} <!-- Варианты товара /--> <select name=variant_id onchange="display_variant({$product->product_id}, this.value);return false;"> {foreach from=$product->variants item=variant} <option value='{$variant->variant_id|escape}'>{$variant->name|escape}<strong></strong><br> {/foreach} </select> <input type=button value='' class="link_to_cart" onclick="document.cookie='from='+location.href+';path=/';this.form.submit();"> <br> {elseif $product->variants|@count == 1} <input type=hidden name=variant_id value='{$product->variants[0]->variant_id}'> <input type=button value='' class="link_to_cart" onclick="document.cookie='from='+location.href+';path=/';this.form.submit();"> {/if} </form></td> <!-- Информация о товаре #End /--> <!-- Товар #End /-->
</tr> {if $smarty.foreach.products.iteration%2 == 0}
{/if} {/foreach}
<!-- Список товаров #End /-->
</tbody> </table></div> {else} <tr><h1>Товары не найдены</h1></tr> {/if} <script> var variants_prices = new Array; {foreach from=$products item=product} variants_prices[{$product->product_id|escape}] = new Array; {foreach from=$product->variants item=variant} variants_prices[{$product->product_id|escape}][{$variant->variant_id|escape}] = '{$variant->discount_price*$currency->rate_from/$currency->rate_to|string_format:"%.2f"}'; {/foreach} {/foreach}
{literal} function display_variant(product, variant) { document.getElementById('variant_price_'+product).innerHTML = variants_prices[product][variant]; } {/literal} </script>
|
Вот так выглядят таблицы БД, это товара: http://radikal.ru/F/i077.radikal.ru/1003/a7/e9985c4c7819.gif.html
Это – цена (price), артикль (sku)… и так по мелочи… http://radikal.ru/F/s003.radikal.ru/i203/1003/69/d114eeaf9de0.gif.html
Немного поясню как дело происходит – в массив variants_prices должна заносится цена, а уже от этого все расчёты и пляшут, но проблема, что именно в файле search.tpl, массив почему-то остается пустым, в других файлах всё отлично работает…
Плиз… помогите, а то я тупа не могу понять, в чем дело
P.s. Сайт на движке Smarty v.2.6.25 Версия сервера: 5.0.87-percona-highperf-log Версия MySQL-клиента: 5.0.67
|