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

Например (для категории Minishop2):
title

Интерфейс:

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

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

так и посредством создания задачи в crontab:
Получение данных возможно 2 способами:
— пока не умеет склонять, получается иногда так: «2 наименований».
Особого значения не имеет вроде.
Остальные недостатки ищутся…
Обновлено 07.07.20: теперь для шаблона товара доступны все переменные, которые определены для ресурса в fenom, например {$article}, {$size},…
Modstore     
    
    
                                                        
title
Чайники купить в интернет–магазине какой-то-магазин.рф | Страница 2description
Купить недорого Чайники по цене от 350 руб. до 3500 руб. В наличии 48 наименований. Доставка по всей России. ☎ +7-800-500-XXXX | Страница 2content
Чайники Мега от известного производителя, представлены в интернет-магазине «какой-то-магазин.рф» в разделе: Электрические чайники. Самая бюджетная цена на Чаник малый простой — 80 руб. Самая высокая на Чайник большой волшебный — 15 850 руб. В наличии на складе более 53 наименований чайников различного исполнения и характеристик.Доступные переменные:

Интерфейс:

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

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

так и посредством создания задачи в crontab:
#например,  - запускать каждый день в час ночи 
0 1 * * * php ~/core/components/mvtseodata/cron/run.phpПоследнее предпочтительнее, если в вашем магазине меняется ассортимент и цены — настройте нужный график обновления для получения актуальных данных.Получение данных возможно 2 способами:
- Установка плейсхолдеров или замена штатных «на лету» (плагин mvtSeoData на событие OnLoadWebDocument)
Плагин автоматически заменяет стандартные плэйсхолдеры: pagetitle, longtitle, description, content.
При настройке шаблона обратите внимание на параменр «Приоритет»:
- ресурс: если соответствующее поле ресурса не пусто, оно не будет заменено шаблоном
 - компонент: соответствующее поле ресурса будет заменено шаблоном
 - компонент дополняет ресурс: поле шаблона дополнит соответствующее поле ресурса
 
 - Сниппет mvtSeoData
Предполагает работу с fenom, возвращает массив с ключами: longtitle, pagetitle, description, content, image (можно использовать для тегов типа og:image).{set $seodata = '!mvtSeoData' | snippet}
Если вы используете механизмы расширения и наследования шаблонов, то, запустив сниппет в базовом шаблоне, переменная $seodata будет доступна везде. Соответственно, можно делать, например, так:
{set $content = 'content' | resource} {if $content?} {$content} {else} {if $seodata['content']? } {$seodata['content']} {/if} {/if} 
— пока не умеет склонять, получается иногда так: «2 наименований».
Особого значения не имеет вроде.
Остальные недостатки ищутся…
Обновлено 07.07.20: теперь для шаблона товара доступны все переменные, которые определены для ресурса в fenom, например {$article}, {$size},…
Modstore
            
                Поблагодарить автора            
            
                 Отправить деньги            
        
        
            Комментарии: 75
                Автору респект! Очень интересный и полезный компонент. Немного хотелок (если у автора будет время):
— В общих шаблонах сейчас можно делать выборку только по ресурсу-родителю, было бы круто если бы можно было ещё и по шаблону выборку делать.
— Возможность добавлять свои переменные в шаблоны (Родные допполя miniShop2 и tv-поля)
— Склонение слов в шаблонах (через модификатор было бы вообще круто)
                    — В общих шаблонах сейчас можно делать выборку только по ресурсу-родителю, было бы круто если бы можно было ещё и по шаблону выборку делать.
— Возможность добавлять свои переменные в шаблоны (Родные допполя miniShop2 и tv-поля)
— Склонение слов в шаблонах (через модификатор было бы вообще круто)
                Вчера вроде 2 пункт частично добавил: для товара (в частности) можно использовать все переменные, определённые в шаблоне типа артикула, цвета и т.д.
По TV нужно подумать. Остальное в списке.
Также планируется возможность работы с простым ресурсом (modDocument) — оказалось нужным.
                    По TV нужно подумать. Остальное в списке.
Также планируется возможность работы с простым ресурсом (modDocument) — оказалось нужным.
                Пакет огонь, спасибо.            
                    
                Добрый вечер. Планируется ли поддержка обычных ресурсов? Без работы minishop2.            
                    
                Добрый!
Поддерживается. Я забыл обновить компонент, сейчас залил новую версию.
В админке обновите кэш браузера.
                    Поддерживается. Я забыл обновить компонент, сейчас залил новую версию.
В админке обновите кэш браузера.
                Спасибо!            
                    
                @Алексей Шумаев, у меня по какой-то причине нельзя выбрать Ресурс — Родитель пустой селект. Тут не очевидная настройка для первого раза, какие-то ограничения или просто не работает?
            
                    
            
                @Олег Щавелев, скиньте доступ в личку, я посмотрю. Версия последняя?            
                    
                @Алексей Шумаев Последняя. Я только добрался до такого замечательного пакета.            
                    
                @Алексей Шумаев Отправил на почту.            
                    
                Добрый день. Небольшой вопрос по «Приоритет данных». Вроде при сохранении выбираю «Компонент», но когда открываешь повторно, то снова стоит ресурс. в итоге на заданных ресурсах не отображается введенные значения.
Что то делаю не верно или это так задумано?
                    Что то делаю не верно или это так задумано?
                Не должно быть такого; у меня нормально.
Если возможно, отправьте доступ в личку, вечером посмотрю.
                    Если возможно, отправьте доступ в личку, вечером посмотрю.
                Удалось ли найти проблему? Наблюдаю похожую проблему, иногда (не у всех) правил возвращается к приоритету ресурс. Иногда это происходит после сброса кеша, иногда после сохранения нового правила. При этом это происходит хаотично, у некоторых меняется, у некоторых нет            
                    
                @Bor не предоставлял доступ; соответственно я не смотрел.
если есть возможность — скиньте в личку доступ к своему сайту.
                    если есть возможность — скиньте в личку доступ к своему сайту.
                Проблема подтверждена и исправлена, можно обновляться.            
                    
                Проблема подтверждена и исправлена, можно обновляться.            
                    
                Добрый день.
А в описании возможно выводить longtitle? к примеру, у меня заполнен longtitle, и из него хочу сформировать шаблон для description:
⭐ {longtitle} ⭐ купить в интернет-магазине ✅ «My shop» ✅
но longtitle не подставляется.
                    А в описании возможно выводить longtitle? к примеру, у меня заполнен longtitle, и из него хочу сформировать шаблон для description:
⭐ {longtitle} ⭐ купить в интернет-магазине ✅ «My shop» ✅
но longtitle не подставляется.
                Добрый!
По той логике, которая сейчас заложена в компонент, longtitle используется для , соответственно для генерации я его не ставил. Но сделать можно, попробую сегодня/завтра обновить версию.
Отпишусь сюда.
                    По той логике, которая сейчас заложена в компонент, longtitle используется для , соответственно для генерации я его не ставил. Но сделать можно, попробую сегодня/завтра обновить версию.
Отпишусь сюда.
                Компонент обновлён, пробуйте.            
                    
                Огонь, спасибо!            
                    
                Добрый вечер. Все использую, круто. Единственный вопрос, заметил, если у меня где то стоит [[*longtitle]] в шаблоне товара (использую как расшифровку названию), компонент подменяет значение на «Шаблон meta-заголовка:». так задумано или баг?
Заранее спасибо
                    Заранее спасибо
                Добрый день
Так и задумано, т.к. исторически у нас СЕОшники используют longtitle как заголовок страницы, а pagetitle — как h1.
                    Так и задумано, т.к. исторически у нас СЕОшники используют longtitle как заголовок страницы, а pagetitle — как h1.
                Данный модуль с языками не работает? На основном языке все ок, а на других (другие контексты) не выводится.            
                    
                Вероятно, да — не тестировал.
Могу на вашем сайте настроить и обновить версию. Пишите в личку.
                    Могу на вашем сайте настроить и обновить версию. Пишите в личку.
                А вы на своем сервере не можете посмотреть/проверить? Я не могу давать доступы к клиентскому проекту.            
                    
                Нет, по 2 причинам:
1. Это будет долго
2. Не факт, что я эмулирую именно вашу ситуацию.
Т. е. вероятна ситуация, когда время потрачу, а задачу не решу.
Вы можете сделать клон и дать доступ к нему.
                    1. Это будет долго
2. Не факт, что я эмулирую именно вашу ситуацию.
Т. е. вероятна ситуация, когда время потрачу, а задачу не решу.
Вы можете сделать клон и дать доступ к нему.
                Привет! Почему не могу скачать дополнение уже неделю? При поиске по названию или при клике на него пишет «Нет данных для отображения»            
                    
                Привет
У меня везде нормально.
На сайте: modstore.pro/packages/other/mvtseodata
Пакет: prntscr.com/vimlyh
У тебя проблема с подключением к modstore или что-то ещё, наверное.
                    У меня везде нормально.
На сайте: modstore.pro/packages/other/mvtseodata
Пакет: prntscr.com/vimlyh
У тебя проблема с подключением к modstore или что-то ещё, наверное.
                блин фигня какая то, именно на ваше дополнение такое происходит, остальные открывает…
на сайте та тоже открывает
                    на сайте та тоже открывает
                Нужно задать вопрос в поддержке modstore            
                    
                Получить дополнение в обход modstore возможно?            
                    
                Уже не нужно, справился, спасибо            
                    
                Скорее всего надо попросить админа в modstore чтобы в настройках дополнения указал верхнюю версию modx свежую. Бывает что в приложении стоит версия 2,7 максимальная, а ты поставил 2,8 и modx твой не видит приложение. у меня так было. админ исправил за 2 секунды.            
                    
                Поставил 2.8.            
                    
                Отлично! ;)            
                    
                Добрый день! Тоже не выбирается родительская ресурс-родитель, что я делаю не так?) 
            
                    
            
                Добрый!
Начните ввод в поле: prntscr.com/10vf694
Если у вас 30000 ресурсов — зачем их все выводить? )
                    Начните ввод в поле: prntscr.com/10vf694
Если у вас 30000 ресурсов — зачем их все выводить? )
                Добрый день! На моем сайте, переменная 
Подскажите, пожалуйста, как вывести именно количество товаров в данной категории (включая товар без указаной стоимости, например — под заказ).
                    {count_products} выводит не количество товаров в данной категории (как указано в информации компонента), а количество товаров в данной категории у которых указана стоимость (цена). Если стоимость не указана — количество товаров подсчитывается не верно.Подскажите, пожалуйста, как вывести именно количество товаров в данной категории (включая товар без указаной стоимости, например — под заказ).
                Добрый! Залил новую версию. Не тестил, т.к. нет времени, но должно работать.
Прошу проверить и отписаться )
                    Прошу проверить и отписаться )
                Спасибо за оперативность! В целом все работает (не забываем повторно сформировать индекс для товарных категорий).
Проблема возникает, если в категории выводятся товары из другой категории. Реальный пример — в основной категории (в которой идет подсчет компонентом) находятся 7 товаров + с другой категории отображается — 3, таким образом всего — 10 (mFilter2 тоже подчитывает — 10). А вот компонент в этой ситуации выводит — 13
                    Проблема возникает, если в категории выводятся товары из другой категории. Реальный пример — в основной категории (в которой идет подсчет компонентом) находятся 7 товаров + с другой категории отображается — 3, таким образом всего — 10 (mFilter2 тоже подчитывает — 10). А вот компонент в этой ситуации выводит — 13
                Да, мультикатегорий пока нет, забыл про них. Попозже добавлю.            
                    
                В поле «Описание» не срабатывает проверка на наличие цены у товара:
                    {if $_modx->resource.price?}{$_modx->resource.price}{else}Под заказ{/if}Подскажите, пожалуйста, это штатная работа компонента или я что-то делаю не так (в шаблоне товара проверка работает)?            
                Не понял, что за поле «Описание» имеется ввиду.
Если в поле компонента, то там нет ни фенома, ни ресурса.
Не думаю, что это компонент.
                    Если в поле компонента, то там нет ни фенома, ни ресурса.
Не думаю, что это компонент.
                Да, «Описание» это поле компонента. Не могу сказать по какой причине, но выше указанный вызов «условно-работает». Например, если указана стоимость 10, то выведет — «10 Под заказ», если стоимость не указана (0), то — «0 Под заказ». 
Феном не работает, но
                    Феном не работает, но
{$_modx->resource.price} вполне рабочий            
                Видимо работает потому, что в любом случае перед выводом код проходит через парсер. 
Почему в таком случае не срабатывает феном пока сказать не могу, надо код смотреть )
                    Почему в таком случае не срабатывает феном пока сказать не могу, надо код смотреть )
                Мультикатегории же, оказывается, есть ) Вроде нормально работают вроде на паре крупных сайтов.
Видимо, есть ошибка в подсчёте количества, на крупных сайтах этого можно и не заметить.
Если есть возможность дать доступ к админке — я посмотрю твой пример, поправлю.
                    Видимо, есть ошибка в подсчёте количества, на крупных сайтах этого можно и не заметить.
Если есть возможность дать доступ к админке — я посмотрю твой пример, поправлю.
                Спасибо! Воссоздал «проблему» на тестовом сайте, логин и пароль скинул в личные сообщения.            
                    
                Для modx 3 работает?            
                    
                Пока нет. В обозримом ближайшем будущем (до осени точно) поддержки 3 не планируется.            
                    
                Добрый день. Не срабатывает для опций, делаю по инструкции. Указываю в шаблон title {#электричество #option_electricity# кВт#} — в итоге, в title выводит только слово — Array.
Лог пустой. Возможно, баг какой то?
                    Лог пустой. Возможно, баг какой то?
                Добрый день.
Не исключено. Напишите через поддержку с указанием доступа к админке, я проверю (к сожалению, оперативно не получится — в течение нескольких дней).
                    Не исключено. Напишите через поддержку с указанием доступа к админке, я проверю (к сожалению, оперативно не получится — в течение нескольких дней).
                У меня почему то шаблон не работает, если установить приоритет = Ресурс.
Но при этом поля longtitle и descriprion в ресурсе пустые
                    Но при этом поля longtitle и descriprion в ресурсе пустые
                Если установлен приоритет ресурса, то модуль смотрит сначала ресурс.
Если у ресурса есть заполненные поля — берёт информацию оттуда.
Соответственно, до шаблона уже не доходит.
                    Если у ресурса есть заполненные поля — берёт информацию оттуда.
Соответственно, до шаблона уже не доходит.
                Так я и говорю, в ресурсе поля longtitle и descriprion пустые, а до шаблона все равно не доходит дело.            
                    
                Не могу ничего конкретного сказать, нужно провести отладку в данном случае.
У нас на нескольких сайтах вроде всё работает.
                    У нас на нескольких сайтах вроде всё работает.
                Поймал баг — если в шаблоне категории товаров указать параметр связанный с товарами, например {min_price}, а на странице нет товаров — то получаем белый экран            
                    
                Обновите версию.
Забыл, оказывается, залить последнее обновление )
                    Забыл, оказывается, залить последнее обновление )
                кайф =)            
                    
                Блин теперь вылезла другая проблема поле pagetitle как то по два раза прогоняется. Получается «pagetitle текст текст»
И в шаблоне заголовка и в SEO title
Скрин: disk.yandex.ru/i/D_2AYTTyoWd61g
                    И в шаблоне заголовка и в SEO title
Скрин: disk.yandex.ru/i/D_2AYTTyoWd61g
                Не должно быть такого, вроде работает на куче сайтов. Напишите через поддержку с доступами к админке и ссылкой на эту страницу в админке, постараюсь сегодня проверить.            
                    
                Здравствуйте! Вижу у комментаторов выше тоже есть подобные проблемы. Если я правильно понял, то при настройке приоритета «Ресурс» компонент не подменяет заголовки, если у ресурса заполнено поле. Значит, если не заполнено — то поле должно заполняться из компонента. У меня следующая картина:
1. В чанке вывод meta-заголовков такой:
2. Настройки в товаре:

3. Настройки компонента


В итоге meta-description пустой, хотя должно быть выведено «3333»:

Что не так, где копать??
И вопрос про Приоритет: выпадающий список «Приоритет данных» понятно, а рядом поле «Приоритет» с числовым значением на что влияет? Не увидел нигде информации об этом… Благодарю за ответ!
                    1. В чанке вывод meta-заголовков такой:
[[*id:is=`1`:then=`<title itemprop="headline">[[*longtitle:striptags:title:default=`[[++site_name:striptags:title]]`]]</title>`:else=`<title itemprop="headline">[[*longtitle:striptags:title:default=`[[*pagetitle:striptags:title]]`]] | [[++site_name:striptags:title]]</title>`]]
<meta name="description" itemprop="description" content="[[*description:striptags:title]]">2. Настройки в товаре:

3. Настройки компонента


В итоге meta-description пустой, хотя должно быть выведено «3333»:

Что не так, где копать??
И вопрос про Приоритет: выпадающий список «Приоритет данных» понятно, а рядом поле «Приоритет» с числовым значением на что влияет? Не увидел нигде информации об этом… Благодарю за ответ!
                Просьба написать через форму поддержки и дать доступ к панели сайта.
Постараюсь разобраться в течение нескольких дней.
                    Постараюсь разобраться в течение нескольких дней.
                Здравствуйте, Алексей. Я, почему-то, не могу по вашему компоненту написать через ТП на сайте, хоть и загружал его из репозитория… Его просто нет там.            
                    
                Напишите тогда через форму тут: modx.pro/users/alex-tv            
                    
                может ли компонент убирать кавычки из названий?            
                    
                Да, "..." заменяются на «...»            
                    
                нужно использовать какой то модификатор или речь про ручную замену кавычек в товарах?            
                    
                Заменяются автоматически            
                    
                Подскажите, а как вывести на странице шаблон номера страницы?            
                    
                Не понял вопроса. Напишите подробнее.            
                    
                Я хочу на страницах пагинации, типа: ?page=2
В title, description и H1 (pagetitle) добавить ". Страница 2" и т.п.
Я подозреваю что для этого в компоненте предусмотрено поле «Шаблон номера страницы», но не понятно как этим пользоваться, что либо туда ввожу, не выводится.
Скрин: disk.yandex.ru/d/CnJbzwj0WvNesg
                    В title, description и H1 (pagetitle) добавить ". Страница 2" и т.п.
Я подозреваю что для этого в компоненте предусмотрено поле «Шаблон номера страницы», но не понятно как этим пользоваться, что либо туда ввожу, не выводится.
Скрин: disk.yandex.ru/d/CnJbzwj0WvNesg
                Да, верно, пользоваться так: disk.yandex.ru/i/i936RulxzrTJfg (с реального сайта взял).
Если у Вас не работает и точно всё верно сделано, пришлите доступ к админке в личку, посмотрю.
Есть только нюанс — работать будет при наличии GET-переменной page, т.е. при навигации через ajax работать не будет и не должно. Т.к. это для роботов, которые переходят по конкретному урлу с номером странице, то всё в порядке.
                    Если у Вас не работает и точно всё верно сделано, пришлите доступ к админке в личку, посмотрю.
Есть только нюанс — работать будет при наличии GET-переменной page, т.е. при навигации через ajax работать не будет и не должно. Т.к. это для роботов, которые переходят по конкретному урлу с номером странице, то всё в порядке.
                Ну да, так и прописываю, но как добавить в необходимые теги не пойму.
Напишу в личку
                    Напишу в личку
                Обнаружил проблему, что {page} не добавляется к заголовку страницы в режиме приоритет ресурс:
Видимо потому что у ресурса pagetitle заполнен, что логично.
Как выкрутиться из этой ситуации? Что бы у ресурса был приоритет и в тоже время шаблон {page} можно было добавить к pagetitle ресурса.
                    Видимо потому что у ресурса pagetitle заполнен, что логично.
Как выкрутиться из этой ситуации? Что бы у ресурса был приоритет и в тоже время шаблон {page} можно было добавить к pagetitle ресурса.
                Сейчас навскидку не скажу. Скорее всего или нужно добавлять {page} всегда или добавить опцию для таких случаев.
Напишите в личку: временный доступ к админке + ссылку на нужный ресурс, придумаю что-нибудь.
                    Напишите в личку: временный доступ к админке + ссылку на нужный ресурс, придумаю что-нибудь.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.