mvtSeoData

Позволяет автоматически генерировать longtitle, pagetitle, description, content с использованием переменных шаблона для товаров и категорий Minishop2. Бесплатно.

Например (для категории Minishop2):
title
Чайники купить в интернет–магазине какой-то-магазин.рф | Страница 2
description
Купить недорого Чайники по цене от 350 руб. до 3500 руб. В наличии 48 наименований. Доставка по всей России. ☎ +7-800-500-XXXX | Страница 2
content
Чайники Мега от известного производителя, представлены в интернет-магазине «какой-то-магазин.рф» в разделе: Электрические чайники. Самая бюджетная цена на Чаник малый простой — 80 руб. Самая высокая на Чайник большой волшебный — 15 850 руб. В наличии на складе более 53 наименований чайников различного исполнения и характеристик.
Доступные переменные:


Интерфейс:


Существует 2 типа шаблонов: общие и предназначенные для конкретного ресурса.
Компонент сначала ищет предназначенный ресурсу шаблон, если не находит — смотрит общий по типу документа: категория MS2 (msCategory), товар MS2 (msProduct).

Можно также сделать отдельные шаблоны для разных категорий с учётом вложенности.
Или для всех товаров определённой категории.
Это позволяет точечно отрабатывать каждый раздел каталога:


Переменные для Категорий MS2 собираются компонентом для каждой категории в результате процесса предварительной «индексации», чтобы не создавать лишней нагрузки на сайт в процессе работы.
Сформировать индекс можно как из панели управления:


так и посредством создания задачи в crontab:
#например,  - запускать каждый день в час ночи 
0 1 * * * php ~/core/components/mvtseodata/cron/run.php
Последнее предпочтительнее, если в вашем магазине меняется ассортимент и цены — настройте нужный график обновления для получения актуальных данных.

Получение данных возможно 2 способами:

  1. Установка плейсхолдеров или замена штатных «на лету» (плагин mvtSeoData на событие OnLoadWebDocument)
    Плагин автоматически заменяет стандартные плэйсхолдеры: pagetitle, longtitle, description, content.
    При настройке шаблона обратите внимание на параменр «Приоритет»:
    • ресурс: если соответствующее поле ресурса не пусто, оно не будет заменено шаблоном
    • компонент: соответствующее поле ресурса будет заменено шаблоном
    • компонент дополняет ресурс: поле шаблона дополнит соответствующее поле ресурса
    Если вам не нужна автозамена — вы можете выключить плагин и воспользоваться сниппетом.

  2. Сниппет mvtSeoData
    {set $seodata = '!mvtSeoData' | snippet}
    Предполагает работу с fenom, возвращает массив с ключами: longtitle, pagetitle, description, content, image (можно использовать для тегов типа og:image).
    Если вы используете механизмы расширения и наследования шаблонов, то, запустив сниппет в базовом шаблоне, переменная $seodata будет доступна везде. Соответственно, можно делать, например, так:
    {set $content = 'content' | resource}
    {if $content?}
        {$content}
    {else}
        {if $seodata['content']? }
            {$seodata['content']}
        {/if}
    {/if}
Недостатки:
— пока не умеет склонять, получается иногда так: «2 наименований».
Особого значения не имеет вроде.
Остальные недостатки ищутся…

Обновлено 07.07.20: теперь для шаблона товара доступны все переменные, которые определены для ресурса в fenom, например {$article}, {$size},…

Modstore
Алексей Шумаев
05 июля 2020, 01:09
modx.pro
2
739
+17
Поблагодарить автора Отправить деньги

Комментарии: 14

Sem
Sem
07 июля 2020, 09:16
+1
Автору респект! Очень интересный и полезный компонент. Немного хотелок (если у автора будет время):
— В общих шаблонах сейчас можно делать выборку только по ресурсу-родителю, было бы круто если бы можно было ещё и по шаблону выборку делать.
— Возможность добавлять свои переменные в шаблоны (Родные допполя miniShop2 и tv-поля)
— Склонение слов в шаблонах (через модификатор было бы вообще круто)
    Алексей Шумаев
    07 июля 2020, 09:53
    +2
    Вчера вроде 2 пункт частично добавил: для товара (в частности) можно использовать все переменные, определённые в шаблоне типа артикула, цвета и т.д.
    По TV нужно подумать. Остальное в списке.
    Также планируется возможность работы с простым ресурсом (modDocument) — оказалось нужным.
    Bor
    Bor
    10 июля 2020, 13:02
    +2
    Пакет огонь, спасибо.
      Виталик
      16 июля 2020, 20:46
      0
      Добрый вечер. Планируется ли поддержка обычных ресурсов? Без работы minishop2.
        Алексей Шумаев
        16 июля 2020, 22:32
        +1
        Добрый!
        Поддерживается. Я забыл обновить компонент, сейчас залил новую версию.
        В админке обновите кэш браузера.
      Олег Щавелев
      24 июля 2020, 16:19
      0
      @Алексей Шумаев, у меня по какой-то причине нельзя выбрать Ресурс — Родитель пустой селект. Тут не очевидная настройка для первого раза, какие-то ограничения или просто не работает?

      Bor
      Bor
      13 августа 2020, 15:00
      0
      Добрый день. Небольшой вопрос по «Приоритет данных». Вроде при сохранении выбираю «Компонент», но когда открываешь повторно, то снова стоит ресурс. в итоге на заданных ресурсах не отображается введенные значения.
      Что то делаю не верно или это так задумано?
        Алексей Шумаев
        13 августа 2020, 15:40
        0
        Не должно быть такого; у меня нормально.
        Если возможно, отправьте доступ в личку, вечером посмотрю.
          Артем
          01 сентября 2020, 21:55
          0
          Удалось ли найти проблему? Наблюдаю похожую проблему, иногда (не у всех) правил возвращается к приоритету ресурс. Иногда это происходит после сброса кеша, иногда после сохранения нового правила. При этом это происходит хаотично, у некоторых меняется, у некоторых нет
            Алексей Шумаев
            02 сентября 2020, 11:37
            0
            @Bor не предоставлял доступ; соответственно я не смотрел.
            если есть возможность — скиньте в личку доступ к своему сайту.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        14