Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Может кто-нибудь подскажет решение проблемы.

После реализации в карточке товара вкладок (описание и рекомендуемые товары), обнаружилась ошибка. В описании выводится последний рекомендуемый товар, а не сама основная карточка. Сразу хочу сказать, что в HTML только с базовыми знаниями, не кидайтесь тапками) 

Пример страницы:

https://shop-vatra.by/products/svarochnaya-provoloka-omednennaya-sv-08g2s-d-08

 

ниже кусок кода product.tpl

 

<div class="clear"></div>
         
     <div class="tabs">
  <ul class="tabs__caption">
    <li class="active">С этим товаром покупают</li>
    <li>Описание</li>
  </ul>
  <div class="tabs__content active">
   {if $related_products}
    <div id="page_title"><h2>С {$product->name|escape} также смотрят</h2></div>
    <ul class="tiny_products main">
    {foreach $related_products as $product}
    <li class="product">{include file='tpl_products_blocks.tpl'}</li>
    {/foreach}
    </ul>
{/if}
   
   {foreach $product->variants as $v}
    {foreach $add_currencies as $c}
        {if $c->id != $currency->id}
            {if $v->price > 0}
                {$var_array[{$v->id}][{$c->id}]['price'] = {$v->price|convert:$c->id}}
            {/if}
            {if $v->compare_price > 0}
                {$var_array[{$v->id}][{$c->id}]['c_price'] = {$v->compare_price|convert:$c->id}}
            {/if}
        {/if}
    {/foreach}
{/foreach}
    <script>
        var variants_array = '{$var_array|json_encode}';
    </script> 
 </div>
  <div class="tabs__content">
   {if $product->body}<div id="page_title"><h2>{$product->name|escape} - Описание товара</h2></div><div id="category_description">{$product->body}</div>{/if}
</div>
   
   
 </div>
</div><!-- .tabs -->
 
     
<div id="back_forward">
{if $prev_product}<a class="prev_page_link hover_mouse link_2" href="products/{$prev_product->url}">{$prev_product->name|escape}</a>{/if}
{if $next_product}<a class="next_page_link hover_mouse link_2" href="products/{$next_product->url}">{$next_product->name|escape}</a>{/if}
</div>
 
{literal}
<script>
$(function() {
    $("#features li:even").addClass('even');
 
    $("a.zoom").fancybox({ 'hideOnContentClick' : true });
 
    $('select[name=variant]').change(function() {
        var v_id = $(this).find('option:selected').val();
        var item = $.parseJSON(variants_array);
 
        var list = $(this).find('option:selected').data('curr');
        var arr = list.split(',');
 
 
        $.each( arr, function( key, value ) {
            if(value != '') {
                console.log(item[v_id][value]['price']);
                $('#idc_' + value).find('.fn_pr').html(item[v_id][value]['price']);
                $('#idc_' + value).find('.fn_cpr').html(item[v_id][value]['c_price'])
            }
        });
 
 
 
 
 
        price = $(this).find('option:selected').attr('price');
        compare_price = '';
        if(typeof $(this).find('option:selected').attr('compare_price') == 'string')
            compare_price = $(this).find('option:selected').attr('compare_price');
        $(this).find('option:selected').attr('compare_price');
        $(this).closest('form').find('span').html(price);
        $(this).closest('form').find('strike').html(compare_price);
        return false;
    });
});
</script>
{/literal}

post-19619-0-60051600-1569917828_thumb.jpg

post-19619-0-02747900-1569917850_thumb.jpg

post-19619-0-29470300-1569917939_thumb.jpg

Ссылка на сообщение
Поделиться на другие сайты

</div><!-- .tabs -->  удалите это

не помогает, при удалении летит верстка и не меняется в карточке ничего

Изменено пользователем masha
Ссылка на сообщение
Поделиться на другие сайты

если вырезать этот кусок кода

 

  {foreach $related_products as $product}
    <li class="product">{include file='tpl_products_blocks.tpl'}</li>
    {/foreach}

 

то описание будет текущего товара?

Ссылка на сообщение
Поделиться на другие сайты

если вырезать этот кусок кода

 

  {foreach $related_products as $product}
    <li class="product">{include file='tpl_products_blocks.tpl'}</li>
    {/foreach}

 

то описание будет текущего товара?

Да, но не показываются рекомендованные товары(((

Ссылка на сообщение
Поделиться на другие сайты

тогда поменяйте верстку местами

 

  <div class="tabs__content active"> ваш код </div>

  <div class="tabs__content"> ваш код </div>

 

 

замените на

 

 

  <div class="tabs__content"> ваш код </div>

<div class="tabs__content active"> ваш код </div>

Ссылка на сообщение
Поделиться на другие сайты

Эта часть

{foreach $related_products as $product}

<li class="product">{include file='tpl_products_blocks.tpl'}</li>

{/foreach}

 

портит основную переменную шаблона $product, которая содержит данные текущего товара.

 

Есть по крайней мере два основных пути решения:

1. использовать другую переменную

{foreach $related_products as $product2} + изменять соответственно в шаблоне tpl_products_blocks.tpl

2. Восстановить основную переменную после работы цикла

{$product_ini=$product}

{foreach $related_products as $product}

<li class="product">{include file='tpl_products_blocks.tpl'}</li>

{/foreach}

{$product=$product_ini}

Ссылка на сообщение
Поделиться на другие сайты

Эта часть

{foreach $related_products as $product}

<li class="product">{include file='tpl_products_blocks.tpl'}</li>

{/foreach}

 

портит основную переменную шаблона $product, которая содержит данные текущего товара.

 

Есть по крайней мере два основных пути решения:

1. использовать другую переменную

{foreach $related_products as $product2} + изменять соответственно в шаблоне tpl_products_blocks.tpl

2. Восстановить основную переменную после работы цикла

{$product_ini=$product}

{foreach $related_products as $product}

<li class="product">{include file='tpl_products_blocks.tpl'}</li>

{/foreach}

{$product=$product_ini}

впринципе я согласна)))))) но как это исправить я не понимаю. базовые знания знаете ли мешают... но я стараюсь))) сейчас погуглю

Изменено пользователем masha
Ссылка на сообщение
Поделиться на другие сайты

впринципе я согласна)))))) но как это исправить я не понимаю. базовые знания знаете ли мешают... но я стараюсь))) сейчас погуглю

а может кто исправить? не бесплатно, конечно же. я перепробовала все, не помогает

Ссылка на сообщение
Поделиться на другие сайты

впринципе я согласна)))))) но как это исправить я не понимаю. базовые знания знаете ли мешают... но я стараюсь))) сейчас погуглю

Просто поменяйте это:

{foreach $related_products as $product}

 

На это:

{foreach $related_products as $product1}

(вместо product1 можно любое имя использовать)

 

И скажите, что будет.

 

Если работать не будет, то в файле tpl_products_blocks.tpl тоже замените $product на $product1 или любое другое имя

Ссылка на сообщение
Поделиться на другие сайты

Просто поменяйте это:

{foreach $related_products as $product}

 

На это:

{foreach $related_products as $product1}

(вместо product1 можно любое имя использовать)

 

И скажите, что будет.

 

Если работать не будет, то в файле tpl_products_blocks.tpl тоже замените $product на $product1 или любое другое имя

Спасибо! Огромное!

Ссылка на сообщение
Поделиться на другие сайты

Просто поменяйте это:

{foreach $related_products as $product}

 

На это:

{foreach $related_products as $product1}

(вместо product1 можно любое имя использовать)

 

И скажите, что будет.

 

Если работать не будет, то в файле tpl_products_blocks.tpl тоже замените $product на $product1 или любое другое имя

Оно то работает, но рекомендуемые товары не те показывает. А где менять $product на $product1 в tpl_products_blocks.tpl ?

<div class="image">

<a href="products/{$product->url}" title='Просмотреть предложение {$product->name|escape}'><img src="{if $product->image}{$product->image->filename|resize:140:150}{else}design/{$settings->theme}/images/bg/nofoto.png{/if}" alt="{$product->name|escape}"/></a>
</div>
 
{if $product->featured}<div class="label label_featured" title='Рекомендуемый товар (Лидер продаж)'></div>
{elseif $product->variant->compare_price > 0}    <div class="label label_sale" title='Предложение со скидкой'></div>
{/if}
 
<div class="product_info">
 
    <h3><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3>
    {if $product->annotation}<div class="annotation">{$product->annotation}</div>{/if}
    {if $product->variants|count > 0}
        <form class="cart" action="/cart">
 
            {if !in_array($product->id, $city_products)}
                <div class="city_product_info">Наличие товара уточняйте!</div>
            {else}
                <div class="price">
                <strike class='compare_price right'>{if $product->variant->compare_price > 0}{$product->variant->compare_price|convert}{else}{/if}</strike>
                {if $product->variant->price >0}<span>{$product->variant->price|convert}</span><i>{$currency->sign|escape}</i>{else}<small class='right' title='Не назначена цена'><br />Под заказ</small>{/if}
                        {*additional_currency*}
                        {foreach $add_currencies as $c}
                            {if $c->id != $currency->id}
                                <div>
                                    {if $product->variant->compare_price > 0}<span class="compare_price" style="float: right">{$product->variant->compare_price|convert:$c->id} <span class="currency">{$c->sign|escape}</span></span>{/if}
                                    {if $product->variant->price > 0}
                                    <span class="price">{$product->variant->price|convert:$c->id} <span class="currency">{$c->sign|escape}</span></span>
                                    {/if}
                                </div>
                            {/if}
                        {/foreach}
                        {*/additional_currency*}
                </div>
            {/if}
 
 
            <a class='but_add more hover_mouse' href="products/{$product->url}"></a>
            {if $product->variant->price >0}<input type="submit" class="but_add to_cart" value="" title='Купить {$product->name|escape}' data-result-text=""/>{/if}
 
            <select name="variant" {if $product->variants|count==1  && !$product->variant->name}style='display:none;'{/if}>
            {foreach $product->variants as $v}
            {if $v->price > 0}<option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}">{$v->name}</option>{/if}
            {/foreach}
            </select>
        </form>
    {else}
        <div class="price"><small class='right' title='Нет на складе (Остаток ноль)'><br />Нет на складе</small></div>
        <a class='but_add more hover_mouse' href="products/{$product->url}"></a>
    {/if}
</div>
Изменено пользователем masha
Ссылка на сообщение
Поделиться на другие сайты

Эта часть

{foreach $related_products as $product}

<li class="product">{include file='tpl_products_blocks.tpl'}</li>

{/foreach}

 

портит основную переменную шаблона $product, которая содержит данные текущего товара.

 

Есть по крайней мере два основных пути решения:

1. использовать другую переменную

{foreach $related_products as $product2} + изменять соответственно в шаблоне tpl_products_blocks.tpl

2. Восстановить основную переменную после работы цикла

{$product_ini=$product}

{foreach $related_products as $product}

<li class="product">{include file='tpl_products_blocks.tpl'}</li>

{/foreach}

{$product=$product_ini}

 

 

ну п1 в карточке товара работать будет а если  эта конструкция используется в другом месте то работать перестанет. Имхо

проще изменить верстку поменяв местами div в табах

Ссылка на сообщение
Поделиться на другие сайты

ну п1 в карточке товара работать будет а если  эта конструкция используется в другом месте то работать перестанет. Имхо

проще изменить верстку поменяв местами div в табах

Решено! Помогло исправление порядка блоков. Спасибо за ответ. 

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...