[SeoFilter] - серьёзное обновление. Ускорение подсчётов, оптимизация, зависимость и другие "фишки"

[ купить дополнение ] [ демо ] [ документация ]

Для тех кто видит SeoFilter впервые — это компонент, который позволяет сгенерировать виртуальные страницы по параметрам из фильтров, подменять их на лету и многое другое. Подробнее здесь: [ Первый анонс ] [ Меню, карта сайта ]

С момента предыдущего обновления прошло очень много времени. В свою очередь — я старался помочь каждому, кто обращался по вопросам компонента.

Благодаря этому обнаружил несколько новых идей, исправил недочёты и увидел различные варианты применения компонента. В новой версии я поработал над тем, чтобы стало удобнее пользоваться и у всех всё хорошо работало. Конечно же, не забыв добавить то, что просили пользователи SeoFilter.

Итак, интересное в этом обновлении:
  • Решение для хлебных крошек на AJAX и без него
  • Полностью переделанный подсчёт результатов на SEO страницах
  • Зависимость полей, чтобы не формировать лишние ссылки
  • Для склонений теперь нужен только токен + множественное склонение слов
  • Поддержка браузерных вперёд/назад для SEO страниц (как в mFilter2)
  • И другие приятные «мелочи»...

Теперь остановлюсь подробнее на основных новшествах:

Хлебные крошки

Стандартный функционал заточен под чанк tpl.SeoFilter.crumbs.current, который идёт в комплекте.
Для тех, кто использует pdoCrumbs, достаточно указать параметр в вызове сниппета:
&tplCurrent=`tpl.SeoFilter.crumbs.current`
Логика там не сложная, в чанке можно посмотреть и по желанию раскомментировать часть кода, чтобы возвращать ссылку на текущую страницу. Семантически правильные крошки, где есть указание позиции тоже можно сделать, есть параметр idx.
Кому не нужны замены — можно ничего не менять и отключить системную настройку seofilter_crumbs_replace.

Конечно, крошки можно сделать ещё функциональнее — учитывать вложенность. Сейчас к основной странице каталога будет добавляться только один пункт. Нужны ли кому-то крошки с вложенностью?

Подсчёты

Это, пожалуй, самая серьёзная доработка. Раньше всё считалось только на лету. Сейчас же появилась возможность сохранять результаты для каждой ссылки, при этом, если результаты меняются — то и дата изменения ссылки меняется, что отразится в карте сайта и в параметре Last-Modified (про него ниже).

Для грамотной реализации создал отдельный класс для подсчётов sfCountHandler, который учитывает класс поля и прочие параметры. Его, кстати, можно расширить для работы подсчётов со своими классами, если фильтруете свои объекты или делаете SEO галерею).
Всё как и в mSearch2 — свой класс нужно помещать в папку /custom/count и указать в системной настройке seofilter_count_handler_class (не устаю восхищаться продуманностью и кодом компонентов Василия, спасибо!)

Также подсчёты стали гибче в том плане что можно пересчитать результаты по слову, связанному с ссылками, по целому правилу ну и соответственно по самим ссылкам. Все сразу тоже можно. 10 тысяч ссылок пересчитывает не упираясь во временный лимит. Если у вас больше ссылок — напишите, придумаем что нибудь :)

Основной плагин SeoFilter начал работать ещё с одним событием OnBeforeDocFormSave, если включены подсчёты в настройках (а они изначально отключены), чтобы отслеживать удалённые, добавленные значения в поля, которые используются в компоненте, чтобы пересчитать по ним результаты.

Не помню, писал ли ранее об этом, но теперь появилась настройка seofilter_hide_empty, которая на пустых страницах будет отдавать ошибку 404.

Небольшая инструкция по ускорению сниппета sfMenu:
1. Пересчитайте все результаты в админке во вкладке «Таблица URL» по кнопке Ещё->Пересчитать.
2. В вызове сниппеты sfMenu можно теперь писать так:
&countChildren=`0` //либо полностью удалить
 &fast=`1` 	//быстрый вариант меню
 &sortby=`total`   //сортировку можно напрямую задать через total - количество результатов
 &mincount=`1` //минимальное количество можно так или через where 
 &level=`0`// максимальный уровень (это из скольких полей состоит ссылка) - тоже работа ускорена

Зависимость полей

В основном это сделано для дополнения msVendorCollections (это коллекции производителей — я всё никак не выложу его, так как нужно немного доделать).

Но можно и в ручную указать в поле, что оно зависит от другого поля и по какому столбцу. После этого все ссылки будут генерироваться с этим учётом. Также и слова добавятся в словарь с зависимостью от другого слова.

Всё это нужно, чтобы не получить при пересечении Марки и модели авто такие казусы:
BMW Q5, BMW Хантер, УАЗ X5 и т.д.)

Склонения

В какой-то момент morpher.ru поменял API и порядок работы.
Раньше требовался логин и пароль от аккаунта, но теперь достаточно токена. И с ним уже возвращаются не все словоформы. Но зато по прежнему суточный лимит для авторизованных — 1000 запросов.

Для тех сайтов, кто только сейчас захочет просклонять слова — в словарь добавлены кнопки принудительного склонения. Также можно выделить хоть 100 штук и просклонять.

Браузерные вперёд/назад

Почему-то мало кто заметил отсутствие такой важной функции. Но теперь всё по-взрослому. Помимо того, что ранее ЧПУ адреса мешали mFilter2 пересчитывать результаты и не менялся текст, то теперь SeoFilter перехватывает событие popstate, по сохранённому адресу находит параметры, меняет тексты и скармливает mFilter2 параметры для отображения результатов.

Также, когда то в mSearch2 появилась функция SliderSuggestions, которая подстраивает границы слайдера под текущие результаты. Так вот — это всё сейчас не конфликтует, даже когда слайдер по цене используется для показа дорогих или дешевых товаров, надеюсь))

Прочие приятные «мелочи»

  • При изменении слов — изменяются и связанные ссылки (тексты, адреса)
  • Поправлена работа со всеми видами ссылок, замороженными, с окончаниями .html и т.д.
  • Появилась настройка, которая выставляет параметр LastModified
  • Добавлено поле keywords в правило и ссылки (можно не использовать по назначению)
  • Теперь удаляются ссылки при удалении слова (раньше оставались мусором)
  • Улучшена интеграция с tvSuperSelect (для правильных подсчётов по нему нужно открыть окно редактирования Поля, поставить галочку Значение в другой таблице и прописать tvuperselect в первом поле «Компонент..:»)
  • Теперь при создании правила можно сразу добавить поля, предварительно не сохраняя и маска генерируется на лету.
  • Добавление хвостика версии к css, js файлам, чтобы при обновлении всё обновилось корректно
  • Небольшие изменения в админке компонента, в таблицах, фильтрах, кнопках
  • Добавлено простое условие в Поле для ограничения сбора значений
  • Поправлено дублирование полей — чтобы не сбивались оригинальные ссылки
  • Внедрил скрытую по умолчанию вкладку в правилах, которая содержит поля, где можно прописать текстовые шаблоны для названий и вводных текстов товаров, чтобы на разных SEO страницах — названия не повторялись. Если нужно подробнее рассказать — спрашивайте.
  • Сделал настройку для разрешения добавления слов с фронта через Ajax (на случай, если добавление ресурсов минует процессор)
  • Теперь поддерживается работа с любыми классами, в том числе и класс подсчетов можно расширить (делал даже SEO AJAX галерею из компонента Gallery + mSearch2)

И да, после такого количества работ, не могу не изменить стоимость компонента.
Новая цена — 1990 руб. Но до понедельника желающие могут купить по текущей цене 1490 руб.

В ближайшее время допишу полную документацию про сниппеты и другие параметры.

Есть и примерные дальнейшие планы

  • Работа с множественными значениями одного фильтра автоматически (чтобы при выборе цветов:
    красный, синий, зелёный и т.д. был красивый URL и тексты)
  • Какое-либо улучшения для удобства управления правилами, либо группы и их редактирование и копирование или привязка к правилу нескольких страниц. Посоветуйте, что лучше?
  • Добавить настройки для управления отображением столбцов в админке, а также показом редактора кода в перечисленных полях
  • Или же вместо редактора кода подключать визуальный редактор (а нужен ли?)
  • Поддержка мультикатегорий из miniShop2 (класс msCategory)
  • Улучшить функционал условий для полей. Сейчас условие будет работать строго по той же таблице, без учёта того, где лежат ресурсы
  • Возможно внедрить класс из коробки, который будет переопределять метод y pdoTools, чтобы подчищать GET параметры в ссылках из пагинации и meta параметрах link и next
  • Возможно вкладка для 301 редиректов, куда будут попадать ссылки, у которых поменялись синонимы слов или полей, для их управления.
  • Возможно внедрение целого таба на страницу редактирования ресурса(категории), где можно будет задать основные настройки по странице, значения полей по умолчанию, условие where и видеть ссылки.

Спрашивайте, предлагайте что важнее сделать в первую очередь. Также всегда можете дополнительно проспонсировать ускорение или заказать разработку новой функции у автора — у меня то есть.

Приветствую любые вопросы, критику и пожелания :)
Евгений Шеронов
16 марта 2018, 17:40
modx.pro
4
2 619
+12

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

Дмитрий
16 марта 2018, 21:34
0
Жду не дождусь того момента, когда сам пощупаю этот модуль. Всё как-то задача не появляется(((
    Konstantin
    17 марта 2018, 11:39
    0
    А можно подробнее про зависимые поля?
    У мена такая проблема: У товара две опции (множественный список, то есть массив, с одним или несколькими элементами):
    1) mark – бренд авто (Opel, Chevrolet и пр.)
    2) model – полная модель авто (Chevrolet Trax, Opel Mokka)
    и из-за того, что один товар может одновременно принадлежать двум брендам, то у меня некорректно работают зависимые фильтры и соответственно seofilter. Я получаю ссылки и заголовки вроде Chevrolet Mokka, хотя такого авто не существует, и вот такую картину в зависимых фильтрах:

    Собственно вопрос, как зависимые поля могут мне помочь с этой задачей?
    P.s. seofilter у меня на трех сайтах куплен, и на трех такая проблема.
      Евгений Шеронов
      17 марта 2018, 18:53
      0
      Можно, конечно!)

      Да, та инструкция — это не полностью зависимые фильтры. Но и такая каталогизация товаров, где выбираются разные марки и разные модели одновременно не самая практичная.

      В SeoFilter теперь можно будет задать что поле «модель» зависит от поля «марка» (правда тут по какому столбцу не задать — без него не проверял), но это нужно для сбора новых значений и верной привязке в словаре.
      После этого в словаре у слов моделей появится поле для выбора слова, от которого оно зависит.

      Если же справочник моделей и марок — заранее известен, то можно в ручном режиме (или через процессоры, с использованием консоли) прикрепить к каждой модели зависимость от марки.

      Уже на этом этапе при обновлении правила, который содержит модель и марку — должны отвалится ссылки Chevrolet Mokka и остаться Opel Mokka.

      Ну и второе — можно подправить js скрипт из статьи зависимых фильтров, чтобы модели Chevrolet скрывались при выборе марки Daewoo — так вроде и по умолчанию в том скрипте должно быть)

      Если не разберётесь — напишите мне в поддержку на modstore.
      Станислав
      22 марта 2018, 13:26
      0
      Нужны ли кому-то крошки с вложенностью?
      Нужны, только пока непонятно, как будет определяться эта вложенность :)

      теперь появилась настройка seofilter_hide_empty, которая на пустых страницах будет отдавать ошибку 404.
      Пока не было этого правила, мы сделали следующий костыль: в метатеги пустых страниц добавляется правило noindex nofollow, которое закрывает их от роботов. Интересно мнение, что из этого лучше?

      Или же вместо редактора кода подключать визуальный редактор (а нужен ли?)
      Я думаю, лишнее.

      Я уже связывался с создателем этого чудесного компонента по поводу такой функции: автоматическое формирование правил из созданных полей (по кнопке). А потом при необходимости можно эти правила вручную корректировать.
        Евгений Шеронов
        22 марта 2018, 20:59
        0
        Нужны, только пока непонятно, как будет определяться эта вложенность :)
        Постоянно отбрасывая последнее поле — тогда и у знающих пользователей будет складываться ощущение реальной вложенности — но это опять же добавит лишние запросы)

        в метатеги пустых страниц добавляется правило noindex nofollow,
        вполне себе вариант, можно и сейчас целое поле под это назначить в правиле или же проверять так:
        {if $_modx->getPlaceholder('sf.url_id') && !$_modx->getPlaceholder('sf.total')?}
        	..noindex,nofollow..  // все эти плейсхолдеры выставляются, total - количество результатов
        {/if}
        Тут зависит от индивидуальных задач.

        Я думаю над тем, чтобы при автоматических множественных значениях одного фильтра (когда это будет реализовано) выставлять, по желанию, noindex и nofollow.

        автоматическое формирование правил из созданных полей (по кнопке)
        Тут я скорее всего подобное не буду делать (потому что так и не понял, как это должно работать).

        Скорее всего сделаю про-режим, где вместо одной страницы к правилу будет крепиться несколько страниц. При этом в правиле можно использовать любые поля ресурса через {$id|resource:'pagetitle'}.
        Ссылки же будут генерироваться для каждой привязанной страницы отдельно.

        Это сильно упростит жизнь, где например к 20 категориям нужно создать правило с одним полем тег. Чаще всего просто можно будет плюсовать его к заголовку категории или с чем нибудь другим объединять.
        Николай Хохлунов
        30 марта 2018, 18:12
        0
        Нашел проблему при работе с HTTPS, в классе в 195 строчке
        $page_url = $this->modx->makeUrl($this->config['page'], $ctx, '', 'full');
        Может full заменить на что то вроде
        $this->modx->getOption(link_tag_scheme');
        или это как то по-другому решается?
          Евгений Шеронов
          30 марта 2018, 18:20
          0
          При 'full' адрес строится относительно настройки site_url. Если у вас там http, то и будет http.
          Пока больше ни у кого проблем с https не наблюдалось.

          Пропишите в настройку полный сайта адрес с https, если не поможет — пишите.
          Дмитрий
          12 апреля 2018, 15:44
          0
          Добрый день.Приобрел компонент и возникло несколько вопросов:
          Смотрю демо-сайт s9767.h8.modhost.pro/category/
          Если выбрать в категории «Планшеты» получается ссылка /category/planshetyi/
          Если выбрать в категории «Плееры» получается ссылка /category/pleeryi/
          Если выбрать в категории «Планшеты» и «Плееры» получается ссылка category/?category=14,22, для нескольких значений одного фильтра построить урл нельзя? Поправьте если не прав.

          При создании нового правила (Правило Seo) нужно указывать Страницу, а если у меня 20 страниц, тогда нужно указать 20 правил?

          Заранее спасибо.
            Евгений Шеронов
            12 апреля 2018, 16:35
            0
            Добрый день, Дмитрий!

            Выберите на демке цвет зелёный и коричневый. Получится красивый url и заголовок)

            Но в целом ответ да, автоматически для нескольких значений фильтра построить адрес нельзя, ведь даже 10 цветов дадут очень и очень много возможных пересечений друг с другом.

            То, как сделано на демке — это добавление двойного значения в словарь в ручную.
            В планах есть сделать, чтобы это можно было как-нибудь автоматизировать — но вряд ли в ближайшее время. Частично я начал работать над этим функционалом, даже в новых версиях компонента в системных настройках есть параметр, как разделять множественные значения — но дальше этого дело пока не продвинулось)

            При создании нового правила (Правило Seo) нужно указывать Страницу, а если у меня 20 страниц, тогда нужно указать 20 правил?
            По поводу этого ответ тоже положительный. Опять таки в планах есть и уже в голове вырисовывается, как это лучше сделать (в этой заметке это 2 первые задачи).

            Если есть желание ускорить — пишите, думаю, сможем договориться.
              Дмитрий
              12 апреля 2018, 17:22
              0
              Спасибо за пояснения.

              Ещё небольшой вопрос. Пытаюсь создать правило для производителя, в вызове mFilter2 такие значения:
              &aliases=`ms|vendor==brand`
              &filters=`ms|vendor:vendors`
              &tplFilter.outer.brand=`tpl.mFilter2.outer.brand.checkbox`
              &tplFilter.row.brand=`tpl.mFilter2.row.brand.checkbox`
              Поле фильтра настроено так joxi.ru/krDgxzXh0N3QZA, но генерация урлов не происходит (Таблица URL), для тв все работает.

                Евгений Шеронов
                12 апреля 2018, 19:22
                0
                Это моя проблема, то что про msVendor до сих пор не сделал авто-подстановку или описания)

                По умолчанию для класса msVendor в поле ключ нужно написать «id». Придётся добавить новое поле.

                Или же производителя можно было действительно добавить через ключ vendor, но указав класс msProductData и галочку на «значения» в другой таблице, соответственно заполнив там всё.
                  Дмитрий
                  19 апреля 2018, 14:26
                  +1
                  Спасибо, разобрался с производителем. Как сделать чтобы в конце был слеш?
                    Джанго
                    28 декабря 2018, 16:56
                    0
                    Действительно, как это сделать? Урлы обычных категорий выводятся со слешем, как заставить генерировать урлы для сео-тегов со слешем выводить тоже?
                      Евгений Шеронов
                      28 декабря 2018, 23:13
                      0
                      Системная настройка seofilter_url_suffix — впишите туда слэш )
                  Дмитрий
                  19 апреля 2018, 15:25
                  0
                  [[!+sf.h1]]
                  Срабатывает после перезагрузки страницы, а не после применения фильтра.
                    Евгений Шеронов
                    20 апреля 2018, 10:41
                    0
                    Нужно добавлять классы, про это есть в документации)
                    <h1 class="sf_h1">[[!+sf.h1:default=`[[*pagetitle]]`]]</h1>
            Вовка
            06 мая 2018, 09:33
            0
            При установке не создает таблицы (ругается на поле :`editedon` TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00',)

            Could not create table `modx_seofilter_rules` SQL: CREATE TABLE `modx_seofilter_rules` (`id` INTEGER unsigned NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL DEFAULT '', `page` INTEGER(10) unsigned NOT NULL DEFAULT '0', `url` VARCHAR(255) NOT NULL DEFAULT '', `link_tpl` VARCHAR(255) NOT NULL DEFAULT '', `base` TINYINT(1) NOT NULL DEFAULT '0', `count_parents` VARCHAR(255) NULL DEFAULT '', `count_where` VARCHAR(255) NULL DEFAULT '', `rank` INTEGER(10) unsigned NULL DEFAULT '0', `active` TINYINT(1) NULL DEFAULT '1', `link` VARCHAR(255) NULL DEFAULT '', `title` VARCHAR(255) NULL DEFAULT '', `h1` VARCHAR(255) NULL DEFAULT '', `h2` VARCHAR(255) NULL DEFAULT '', `introtext` TEXT NULL, `keywords` TEXT NULL, `description` TEXT NULL, `text` TEXT NULL, `content` TEXT NULL, `properties` TEXT NULL, `introtexts` TEXT NULL, `introlength` INTEGER(10) NULL DEFAULT '0', `tpl` VARCHAR(255) NULL DEFAULT '', `editedon` TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), INDEX `url` (`url`), INDEX `page` (`page`), INDEX `active` (`active`), INDEX `base` (`base`)) ENGINE=MyISAM ERROR: Array ( [0] => 42000 [1] => 1067 [2] => Invalid default value for 'editedon' )
            Could not create table `modx_seofilter_dictionary` SQL: CREATE TABLE `modx_seofilter_dictionary` (`id` INTEGER unsigned NOT NULL AUTO_INCREMENT, `field_id` INTEGER(10) unsigned NOT NULL DEFAULT '0', `input` VARCHAR(255) NOT NULL DEFAULT '', `value` VARCHAR(255) NOT NULL DEFAULT '', `alias` VARCHAR(255) NULL DEFAULT '', `class` VARCHAR(255) NULL DEFAULT '', `key` VARCHAR(255) NULL DEFAULT '', `relation_word` INTEGER(10) unsigned NULL DEFAULT '0', `image` VARCHAR(255) NULL DEFAULT '', `value_i` VARCHAR(255) NULL DEFAULT '', `value_r` VARCHAR(255) NULL DEFAULT '', `value_d` VARCHAR(255) NULL DEFAULT '', `value_v` VARCHAR(255) NULL DEFAULT '', `value_t` VARCHAR(255) NULL DEFAULT '', `value_p` VARCHAR(255) NULL DEFAULT '', `value_o` VARCHAR(255) NULL DEFAULT '', `m_value_i` VARCHAR(255) NULL DEFAULT '', `m_value_r` VARCHAR(255) NULL DEFAULT '', `m_value_d` VARCHAR(255) NULL DEFAULT '', `m_value_v` VARCHAR(255) NULL DEFAULT '', `m_value_t` VARCHAR(255) NULL DEFAULT '', `m_value_p` VARCHAR(255) NULL DEFAULT '', `m_value_o` VARCHAR(255) NULL DEFAULT '', `value_in` VARCHAR(255) NULL DEFAULT '', `value_to` VARCHAR(255) NULL DEFAULT '', `value_from` VARCHAR(255) NULL DEFAULT '', `createdon` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `editedon` TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', `active` TINYINT(1) NULL DEFAULT '1', PRIMARY KEY (`id`), INDEX `field_id` (`field_id`), INDEX `input` (`input`), INDEX `value` (`value`), INDEX `alias` (`alias`), INDEX `class` (`class`), INDEX `key` (`key`), INDEX `active` (`active`)) ENGINE=MyISAM ERROR: Array ( [0] => 42000 [1] => 1067 [2] => Invalid default value for 'editedon' )
            Could not create table `modx_seofilter_urls` SQL: CREATE TABLE `modx_seofilter_urls` (`id` INTEGER unsigned NOT NULL AUTO_INCREMENT, `multi_id` INTEGER(10) unsigned NOT NULL DEFAULT '0', `page_id` INTEGER(10) unsigned NOT NULL DEFAULT '0', `name` VARCHAR(255) NOT NULL DEFAULT '', `link` VARCHAR(255) NOT NULL DEFAULT '', `old_url` VARCHAR(255) NOT NULL DEFAULT '', `new_url` VARCHAR(255) NULL DEFAULT '', `editedon` TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', `createdon` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `menu_on` TINYINT(1) NULL DEFAULT '0', `menutitle` VARCHAR(255) NULL DEFAULT '', `menuindex` INTEGER(10) unsigned NULL DEFAULT '0', `link_attributes` VARCHAR(255) NULL DEFAULT '', `image` VARCHAR(255) NULL DEFAULT '', `total` INTEGER(10) unsigned NULL DEFAULT '0', `count` INTEGER(10) unsigned NULL DEFAULT '0', `ajax` INTEGER(10) unsigned NULL DEFAULT '0', `rank` INTEGER(10) unsigned NULL DEFAULT '0', `active` TINYINT(1) unsigned NULL DEFAULT '1', `params` TEXT NULL, `custom` TINYINT(1) NOT NULL DEFAULT '0', `title` VARCHAR(255) NULL DEFAULT '', `h1` VARCHAR(255) NULL DEFAULT '', `h2` VARCHAR(255) NULL DEFAULT '', `introtext` TEXT NULL, `keywords` TEXT NULL, `description` TEXT NULL, `text` TEXT NULL, `content` TEXT NULL, `properties` TEXT NULL, `introtexts` TEXT NULL, `introlength` INTEGER(10) NULL DEFAULT '0', `tpl` VARCHAR(255) NULL DEFAULT '', PRIMARY KEY (`id`), INDEX `page_id` (`page_id`), INDEX `multi_id` (`multi_id`), INDEX `menu_on` (`menu_on`), INDEX `custom` (`custom`), INDEX `old_url` (`old_url`), INDEX `new_url` (`new_url`), INDEX `active` (`active`)) ENGINE=MyISAM ERROR: Array ( [0] => 42000 [1] => 1067 [2] => Invalid default value for 'editedon' )
              Евгений Шеронов
              06 мая 2018, 09:42
              0
              Ну уж весь лог в комментах писать не надо) в крайнем случае можно было обернуть его)

              Проблему примерно понял, напишите мне в поддержку, там более предметно обсудим, желательно сразу с доступами.
                Вовка
                06 мая 2018, 15:16
                0
                Все эти таблицы установил в ручном режиме с корректировкой скриптов. Данный лог выложил, что бы поправили в следующих версиях. В тех поддержку не отпишусь, так как компонент куплен клиентом, доступ к его кабенету не имею.
              Андрей
              Андрей
              08 мая 2018, 21:10
              0
              Евгений здравствуйте! Скажите пожалуйста, написано ссылки выводятся, а можно их использовать для перелинковки в низу страницы, и чтобы они одинаковыми не были из править в ручную.
                Евгений Шеронов
                09 мая 2018, 10:08
                0
                Добрый день! Да, можно.
                Сниппеты sfLink и sfMenu подходят именно для этого. К тому же, сейчас для sfMenu не обязательно передавать правила, а можно передавать id ресурсов, куда привязаны правила.

                Но перелинковка у каждого своя. Поэтому на месте уже конкретный разработчик решает, что и как сделать, исходя из задания.
                  Андрей
                  Андрей
                  09 мая 2018, 12:19
                  0
                  Благодарю за ответ! Я пытаюсь заказать сайт с внедрением сеофильтра и почему то никто не знает как это сделать, я сделал схему yadi.sk/i/KVEnTtg03VbQZu Можно такую схему сделать на сайте услуг?
                  Покажите пожалуйста пример если есть так такая реализация.

                    Евгений Шеронов
                    09 мая 2018, 12:39
                    0
                    Закажите сайт без внедрения SEO-фильтра.
                    Как сайт и разделы с подразделами будут готовы — напишите мне.
                      Alex
                      17 июля 2018, 16:35
                      0
                      Здравствуйте. Скажите, что-то не могу найти как задать уникальные тексты в рамках одного правила. То есть имеем правило бренд, например, значения Бренд 1 и бренд 2 (конечно брендов может быть неограниченное кол-во). И вот как сделать чтобы при выборе Бренд 1 был один текст, а при выборе Бренд 2, совершенно другой? Ну и далее аналогично, если бренды будут добавляться.
                        Евгений Шеронов
                        17 июля 2018, 17:34
                        0
                        Как я понимаю, речь идёт про это?
                        Работа с множественными значениями одного фильтра автоматически (чтобы при выборе цветов:
                        красный, синий, зелёный и т.д. был красивый URL и тексты)
                        Это всё также пока в планах, так как никто сильно и не хочет эту фишку)
                        Уже несколько раз вопросы отправлял о том, что важнее в такой реализации.

                        Даже если это делать — то нет смысла формировать постоянные адреса в таблице пересекая бренды друг с другом. Поэтому ссылки на такие страницы не сформировать.

                        Потенциально таких страниц очень много и от поисковика наверное нужно будет закрывать.
                        В общем, всё это для красоты и удобства.

                        Но в ручную можно делать двойные, тройные страницы из одних значений фильтра.
                        s9767.h8.modhost.pro/category-cvet-zelenyij-i-korichnevyij/ — пример

                        Для этого просто в словарь добавлен запрос так:
                        зеленый,коричневый
                          Alex
                          17 июля 2018, 17:43
                          0
                          Спасибо за ответ, но наверно я не верно поставил вопрос. Вот у нас есть правило бренд. Там, например, два бренда Archi, Goliaf (но может быть и больше). Вот мы выбрали Арчи, и у нас стандартный текст сменился на текст написанный под бренд Арчи. Далее мы выкл Арчи, вкл Голиаф, и у нас текст именно под бренд Голиаф. То есть абсолютно разные тексты под каждый бренд. Ссылки в таком случае у нас будут dveri.ru/brend-arch или dveri.ru/brend-goliaf. То есть не два бренда одновременно, про множественный фильтр тут речи не идет. Нашел только возможность как сменить часть текста подставив плейсхолдеры, а вот как сменить текст целиком?
                Alexey
                10 июня 2019, 09:22
                0
                Здравствуйте!
                Год поддержки уже прошёл, поэтому напишу сюда.
                Не могу обновиться до версии 1.6.4.
                Доходит до этого момента:
                Skipping vehicle object of class modSystemSetting (data object exists and cannot be upgraded); criteria: Array ( [key] => seofilter_crumbs_nested )
                и далее много раз это:
                modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace core to the routing based system.
                modAction support is deprecated since version 2.3.0. Support for modAction has been replaced with routing based on a namespace and action name. Please update the extra with the namespace msrevaluation to the routing based
                  Евгений Шеронов
                  10 июня 2019, 09:34
                  0
                  Добрый день!
                  Вообще это не ошибки и компонент должен был обновиться, есть компонент привязан к сайту.

                  А все эти сообщения, это предупреждения, причем последние связаны с другими компонентами на сайте.
                    Alexey
                    10 июня 2019, 11:39
                    0
                    конечно куплен и привязан. с предыдущими обновлениями проблем не было.
                    ладно буду ждать обновки. может само исправится )
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  30