Тема: SEO-ссылки в карточке товара

Как в списке характеристик в карточке товара вывести гиперссылку с анкором значения характеристики?
Сейчас

<tr class="tab-content_table_character-text">
    <td><span>Основа </span></td>
    <td><span>флизелин</span></td>
</tr>

Нужно

<tr class="tab-content_table_character-text">
    <td><span>Основа </span></td>
    <td><span><a href="/catalog/oboi/osnova_flizelin/">флизелин</a></span></td>
</tr>

где /catalog/oboi/ - корневая категория
а osnova_flizelin/ - псевдонимы Характеристики и Значения

Повысить оценку Понизить оценку

Re: SEO-ссылки в карточке товара

Тоже интересует подобный вопрос.

Возможно кто-то уже реализовывал или есть модуль?

Повысить оценку Понизить оценку

Re: SEO-ссылки в карточке товара

Так, а в чём собственно затык?

Re: SEO-ссылки в карточке товара

Закусило Александр пишет:

Так, а в чём собственно затык?

Делаю так

{* Получаем текущую категорию *}
{$maindir=$product->getMainDir()}
{$url=$maindir->getUrl()} {* Получаем нужный адрес *}




   {foreach $data.properties as $property}
           {$prop_value = $property->textView()}
                   {if !$property.hidden && $prop_value != ''}
                           <tr class="tab-content_table_character-text">
                                 <td><span><a href="{$url}{$property.alias}_АЛИАС-СВОЙСТВА/">{$prop_value}</a></span></td>
                            </tr>
                    {/if}

    {/foreach}

в строчке <td><span><a href="{$url}{$property.alias}_АЛИАС-СВОЙСТВА/">{$prop_value}</a></span></td>
1) {$url} как если категория скрыта, вывести категорию на уровень выше?
2) как вывести АЛИАС-СВОЙСТВА?

Повысить оценку Понизить оценку

Re: SEO-ссылки в карточке товара

Со скрытой категорией вопрос отпал.
Подскажите, пожалуйста, как вывести алиас значения характеристики вот тут

<a href="{$url}{$property.alias}_АЛИАС-СВОЙСТВА/">{$prop_value}</a>

Повысить оценку Понизить оценку

Re: SEO-ссылки в карточке товара

Также как и в прошлой ветке.
https://forum.readyscript.ru/topic/1908 … -v-filtre/

7 Отредактировано Владимир 1916 (19.11.2019 03:23:22)

Re: SEO-ссылки в карточке товара

Сделал так

 <tbody>
                                {foreach $product->fillProperty() as $data}
                                    {if !$data.group.hidden}
                                        <tr>
                                            <td colspan="2" class="awesome">{$data.group.title|default:t("Общие")}</td>
                                        </tr>
                                    
                                    
                                        {foreach $data.properties as $property}
                                            {$prop_value = $property->textView()}
                                                {if !$property.hidden && $prop_value != ''}
                                                
                                        {$values_objects=$property->getAllowedValuesObjects()}
                                                                                    
                       
                                                <tr class="tab-content_table_character-text">
                                                    <td>
                                                        <span>{$property.title} {if $property.unit}({$property.unit}){/if}</span>
                                                    </td>
                                                 {*   <td><span>{$prop_value}</span></td> *}
                                                
                                                    {foreach $property->getAllowedValues() as $key => $value}
                                                            {$proper = $values_objects[$key].alias} 
                                                            
                                                    {/foreach} 
                                                <td><span><a href="{$url}{$property.alias}_{$proper}/">{$prop_value}</a></span></td> 

                                                     
                                                </tr>
                                                
                                                
                                                
                                                {/if}

                                        {/foreach}
                                    {/if}
                                {/foreach}
                                </tbody>

Что-то получилось, но не то, что хотел.
1) {$proper} выдает не нужный алиас, а последний из существующих
2) если значений характеристики у товара несколько, то образуется одна общая ссылка, а не на каждое значение по отдельности

Повысить оценку Понизить оценку

Re: SEO-ссылки в карточке товара

Закусило Александр пишет:

Также как и в прошлой ветке.
https://forum.readyscript.ru/topic/1908 … -v-filtre/

По прежнему затык с

 
{foreach $property->сas $key => $value}

{$proper = $values_objects[$key].alias} 

td><span><a href="{$url}{$property.alias}_{$proper}/">{$value}</a></span></td> 

{/foreach} 

а точнее видимо с  getAllowedValues() которая выдает все возможные значения характеристики, а надо только те, что заданы у нашего продукта.

Повысить оценку Понизить оценку

Re: SEO-ссылки в карточке товара

вот полностью

        <tbody>
                                {foreach $product->fillProperty() as $data}
                                    {if !$data.group.hidden}
                                        <tr>
                                            <td colspan="2" class="awesome">{$data.group.title|default:t("Общие")}</td>
                                        </tr>
                                    
                                    
                                        {foreach $data.properties as $property}
                                            {$prop_value = $property->textView()}
                                                {if !$property.hidden && $prop_value != ''}
                                                
                                        {$values_objects=$property->getAllowedValuesObjects()}
                                                                                    
                       
                                                <tr class="tab-content_table_character-text">
                                                    <td>
                                                        <span>{$property.title} {if $property.unit}({$property.unit}){/if}</span>
                                                    </td>
                                                 {*   <td><span>{$prop_value}</span></td> *}
                                                
                                                    {foreach $property->getAllowedValues() as $key => $value}
                                                            {$proper = $values_objects[$key].alias} 
                                                            <td><span><a href="{$url}{$property.alias}_{$proper}/">{$value}</a></span></td> 
                                                    {/foreach} 
                                                    

                                                     
                                                </tr>
                                                
                                                
                                                
                                                {/if}

                                        {/foreach}
                                    {/if}
                                {/foreach}
      </tbody>

Повысить оценку Понизить оценку

10 Отредактировано Андрей (06.01.2020 11:47:02)

Re: SEO-ссылки в карточке товара

Косяк оказался в устаревшей версии rs.filter.js в скопированной теме.

Обновил всё заработало.

Но если много характеристик и значений - лучше не делать.
Получается десятки (а может и сотни) тысяч страниц - которые либо нужно через SEO - контроль прописать уникальные мета-данные, - ЛИБО дубли.

Но с функционалом разобрался. Спасибо за подсказки от всех выше.

Ключевые моменты выделены жирным, особенно {if $prop_value==$value}, чтобы URL не для всех возможных вариантов на карточке товара, а только для конкретного товара - упустили выше :

{$maindir=$product->getMainDir()}
{$url=$maindir->getUrl()} {* Получаем нужный адрес *}

    <tbody>
        {foreach $product->fillProperty() as $data}
                {$dataGroup = $data.group.title}
                {foreach $data.properties as $property}
                    {$prop_value = $property->textView()} {if !$property.hidden && $prop_value != ''}
{$values_objects=$property->getAllowedValuesObjects()}
                            
                    <tr class="tab-content_table_character-text">
                        <td><span>{$property.title} {if $property.unit}({$property.unit}){/if}</span></td>
                        <td><span>
                            {foreach $property->getAllowedValues() as $key => $value}
                            {$proper = $values_objects[$key].alias}
                            {if $prop_value==$value}
                            <a href="{$url}{$property.alias}_{$proper}/">{$value}</a>
                            {/if}
                            {/foreach}    

Повысить оценку Понизить оценку