Кликабельные ссылки в характеристиках

у меня тема Unitheme, там по адресу
abt__unitheme / templates / views / products / components /
есть только
product_features_short_list.tpl , product_features.tpl нет.

в product_features_short_list.tpl такой код:

{assign var=“image_size” value=$image_size|default:80}
{function name=“feature_value”}
{strip}
{if $feature.features_hash && $feature.feature_type == “ProductFeatures::EXTENDED”|enum}
<a href="{“categories.view?category_id=$product.main_category&features_hash=$feature.features_hash”|fn_url}">
{/if}
{if $feature.prefix}{$feature.prefix}{/if}
{if $feature.feature_type == “ProductFeatures::DATE”|enum}

{$feature.description nofilter}:{$feature.value_int|date_format:"$settings.Appearance.date_format"}{if $feature.suffix}{$feature.suffix}{/if}

{elseif $feature.feature_type == “ProductFeatures::MULTIPLE_CHECKBOX”|enum}

{foreach from=$feature.variants item=“fvariant” name=“ffev”}
{if $smarty.foreach.ffev.first}{$feature.description nofilter}:{/if}{$fvariant.variant|default:$fvariant.value}{if !$smarty.foreach.ffev.last}, {/if}
{/foreach}

{elseif $feature.feature_type == “ProductFeatures::TEXT_SELECTBOX”|enum || $feature.feature_type == “ProductFeatures::NUMBER_SELECTBOX”|enum || $feature.feature_type == “ProductFeatures::EXTENDED”|enum}
{$feature.description nofilter}:{$feature.variant|default:$feature.value}{if $feature.suffix}{$feature.suffix}{/if}

{elseif $feature.feature_type == “ProductFeatures::SINGLE_CHECKBOX”|enum}
{$feature.description}:

{elseif $feature.feature_type == “ProductFeatures::NUMBER_FIELD”|enum}
{$feature.description}:{$feature.value_int|floatval}{if $feature.suffix}{$feature.suffix}{/if}

{else}
{$feature.description}:{$feature.value}{if $feature.suffix}{$feature.suffix}{/if}

{/if}
{if $feature.feature_type == “ProductFeatures::EXTENDED”|enum && $feature.features_hash}

{/if}
{/strip}
{/function}

{if $features}
{strip}
{if !$no_container}

{/if}
{foreach from=$features name=features_list item=feature}
{if $feature_image && $feature.variants[$feature.variant_id].image_pairs}
{assign var=“obj_id” value=$feature.variant_id}
<a href="{“categories.view?category_id=$product.main_category&features_hash=$feature.features_hash”|fn_url}">
{include file=“common/image.tpl” image_width=$image_size images=$feature.variants[$feature.variant_id].image_pairs no_ids=true}

{else}
{feature_value feature=$feature}{if !$smarty.foreach.features_list.last}{/if}
{/if}
{/foreach}
{if !$no_container}
{/if}
{/strip}
{/if}

в какой строчке заменить? не нашёл прямо как у вас фразы. заранее спасибо.

Если нужного файла нет, ищите его в теме Responsive. Тема Unitheme является дочерней от Responsive:

Дочерние темы могут использовать шаблоны от родительской темы.

1 лайк

Заработало, спасибо!

Только можно ещё как-то сделать, чтобы ссылка называлась не просто “Ссылка”, а получалась комбинацией “Название характеристики” и “Product name”.
Т.е., для этого товара например, чтобы ссылки назывались:
“CAD модели DSNU-8-10-P-A”
“Документация DSNU-8-10-P-A”
“Запасные части DSNU-8-10-P-A”

Было бы идеально.

Попробуйте

{if $feature.value|strpos:'http' !== false}<a href="{$feature.value}" target="_blank">{$feature.description nofilter} {$product.product nofilter}</a>{else}{$feature.value|default:"-"}{/if}

3 лайка

Шикарно, спасибо вам!

1 лайк

Рад был помочь!

1 лайк

Установил пару модулей, теперь кликабельные ссылки опять пропали, а в шаблоне product_features.tpl не могу теперь найти этот текст:
{$feature.value|default:"-"}

Не подскажите?

Похоже, что модуль какой-то перезаписывает шаблон. Отключите модули по одному и определите, кто перезаписывает. Нужно будет внести такие же изменения в файл модуля

1 лайк

Нашёл модуль, который это отключает: AB: SEO страницы для фильтров

Не подскажете, как сделать, чтобы и модуль был включен, и ссылки остались кликабельные?

Нашёл фрагмент
{$feature.value|default:"-"}

только в файлах:
responsive / templates / addons / ab__seo_filters / hooks / product_features /ab__sf_feature.override.tpl
responsive / templates / addons / ab__seo_filters / overrides / views / products / components / product_features.tpl

Заменил его на фрагмент:
{if $feature.value|strpos:'http' !== false}<a href="{$feature.value}" target="_blank">{$feature.description nofilter} {$product.product nofilter}</a>{else}{$feature.value|default:"-"}{/if}

но не помогает

Кэш не забыли удалить?

1 лайк

Действительно, видимо забыл. Почистил, заработало. Спасибо!

1 лайк

Ничего не понимаю, простите :frowning:

Изменил:

  • design/themes/ТЕМА/templates/views/products/components/product_features.tpl
  • responsive / templates / addons / ab__seo_filters / hooks / product_features /ab__sf_feature.override.tpl
  • responsive / templates / addons / ab__seo_filters / overrides / views / products / components / product_features.tpl

заменив

{$feature.value|default:"-"}

на

{if $feature.value|strpos:'http' !== false}<a href="{$feature.value}" target="_blank">{$feature.description nofilter} {$product.product nofilter}</a>{else}{$feature.value|default:"-"}{/if}

Почистил кеш и удалив папку, и через админку.

Не работает, выводит тупо текст:

Есть предложения? :roll_eyes:

Выводит на странице товара блок с характеристиками вот эта часть файла responsive / templates / addons / ab__seo_filters / overrides / views / products / components / product_features.tpl:

 {elseif in_array($feature.feature_type, ["ProductFeatures::TEXT_SELECTBOX"|enum, "ProductFeatures::EXTENDED"|enum, "ProductFeatures::NUMBER_SELECTBOX"|enum])}
  {foreach from=$feature.variants item="var"}
  {if $var.selected}{$var.variant}{/if}<p>Test 29</p>
  {/foreach}
  {elseif $feature.feature_type == "ProductFeatures::NUMBER_FIELD"|enum}
  {$feature.value_int|floatval|default:"-"} 
  <p>Test 30</p>
  {else}
  <p>Test 32</p>
  {if $feature.value|strpos:'http' !== false}<a href="{$feature.value}" target="_blank">{$feature.description nofilter} {$product.product nofilter}</a>{else}{$feature.value|default:"-"}{/if}
  {/if}
  {if $feature.suffix && !$hide_affix}<span class="ty-product-feature__suffix">{$feature.suffix}</span>{/if}

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

Test 29

Такие дела

Тогда замените

{if $var.selected}{$var.variant}{/if}

на

{if $var.selected}{if $var.variant|strpos:'http' !== false}<a href="{$var.variant}" target="_blank">{$var.variant}</a>{else}{$var.variant|default:"-"}{/if}{/if}

1 лайк

Благодарю, но мне кажется так немного лучше:

{if $var.selected}{if $var.variant|strpos:'http' !== false}<a href="{$var.variant}" target="_blank">Скачать сертификат/декларацию для модели «{$product.product nofilter}» (откроется в новом окне)</a>{else}{$var.variant|default:"-"}{/if}{/if}

:slightly_smiling_face:

1 лайк

@ecomlabs
А не подскажите, почему с какими-то характеристиками работает, а с какими-то нет?


Это может быть потому, что хар-ки “Документация”, “Documentation” имеют “Цель” “Дополнительная информация”, а “Руководство по эксплуатации” имеет “Цель” “Поиск товаров через фильтры”?
Просто в этой характеристике может быть несколько файлов, поэтому я такой тип выставил, а ссылка не кликабельная.

Странно, по целям не должно быть деления. Надо на месте смотреть

Такая же проблема, если цель указана “Поиск товаров через фильтры”, то ссылка не кликабельная, если же цель стоит “Дополнительная информация”, ссылка становится кликабельной. Есть вариант решить это? У нас последняя версия Cs-Cart. Что самое не приятное, при изменении той самой цели, все варианты очищаются “При нажатии на кнопку “Сохранить” варианты характеристики будут удалены.”

Вот спасибо за труды.
Сделал ссылку в характеристике кнопкой под названием бренда.
Делается аналогично, но правится соседний файл product_features_short_list.tpl в
{function name=“feature_value”}
Надеюсь кому то сэкономит время.

1 лайк