Что нового

Бесплатно Кастомизация URL xfsearch (DLE 19.1 - DLE 20.x)

  • Автор темы Автор темы Ravshon
  • Дата начала Дата начала

Ravshon

Местный
Проверенные
Регистрация
2 Сен 2021
Сообщения
349
Реакции
694
Совместимость: DLE 19.1 — 20.x
Автор: Ravshon
Специально для Skripters.Biz

Уникальный плагин, позволяющий полностью управлять внешним видом URL перекрестных ссылок дополнительных полей. Вы можете изменить префикс xfsearch или вообще скрыть его и имена полей из адреса.

Основные особенности:

  • Собственная страница настроек в админпанели: После установки плагина в разделе «Сторонние модули» появится удобная страница настроек, оформленная в родном стиле DLE.
  • Управление префиксом xfsearch:
    • Возможность полностью вырезать /xfsearch/ из адреса.
    • Возможность переименовать /xfsearch/ на любое свое слово (например, /filter/, /search/ и т.д.).
  • Индивидуальные настройки для каждого доп. поля:На странице настроек автоматически выводится таблица всех ваших доп. полей, для которых включена опция «Использовать как перекрестные ссылки». Для каждого поля вы можете:
    • Задать альтернативное имя (Slug) в URL: Например, для поля actor задать slug star, и ссылка примет вид /star/silvestr-stallone/ вместо /actor/silvestr-stallone/.
    • Полностью удалить имя поля из URL: Ссылка будет иметь вид /silvestr-stallone/ вместо /actor/silvestr-stallone/.
  • Умный роутинг без конфликтов:
    • Плагин автоматически генерирует правила FastRoute, подставляя туда только зарегистрированные имена полей (например, /{xf:(?:actor|genre)/.+}/), чтобы исключить конфликты со статическими страницами и категориями.
    • Если имя поля полностью вырезано из URL (например, /silvestr-stallone/), плагин перемещает это правило в самый конец списка роутинга DLE. Это означает, что ссылки на категории (например, /news/) будут обрабатываться в штатном режиме, а на страницу xfsearch роутер перенаправит пользователя только в том случае, если категория с таким названием не найдена.
    • При переходе по адресу без имени поля плагин производит сверхбыстрый поиск по базе данных в таблице _xfsearch для автоматического определения, к какому именно доп. полю относится данное значение, возвращая правильный шаблон страницы.
  • Автоматический сброс кэша: При сохранении настроек плагина, а также при создании/удалении/сортировке дополнительных полей в DLE, плагин самостоятельно очищает кэш правил роутинга (route.rules.php), обеспечивая моментальное применение изменений на сайте.

Установка

  1. Импортируйте нужный XML-файл плагина через встроенную систему управления плагинами в админпанели DLE.
  2. В случае установки плагина кастомизации URL перейдите в «Сторонние модули» -> «Настройка xfsearch URL» и задайте желаемые параметры.
  3. Для применения изменений к уже существующим новостям сделайте перестроение публикаций (или пересохраните нужные новости вручную).
 
Не болшие правки!

Кастомизация URL xfsearch для DLE 19.1 — 20.x​

Совместимость: DLE 19.1 — 20.x
Автор: Ravshon
Специально для Skripters.Biz

Плагин позволяет полностью кастомизировать внешний вид перекрестных ссылок дополнительных полей (xfsearch), изменять или удалять стандартный префикс /xfsearch/, а также задавать собственные уникальные имена (алиасы) для каждого дополнительного поля в адресе страницы.

Архитектура плагина гарантирует 100% стабильность роутинга и полное отсутствие конфликтов со стандартными категориями и статическими страницами DataLife Engine.


Основные особенности:​

  • Индивидуальная страница настроек в админпанели: После установки плагина в админпанели DLE (в разделе «Сторонние модули») появится вкладка с настройками, выполненными в нативном и красивом стиле вашей версии DLE.
  • Управление общим префиксом xfsearch:
    • Возможность полностью удалить префикс /xfsearch/ (например, ссылки будут вида site.com/actor/silvestr-stallone/).
    • Возможность изменить префикс /xfsearch/ на любое свое слово (например, /filter/, /search/ и т.д.).
  • Индивидуальная кастомизация имен полей (Slug) в URL:В настройках автоматически выводится таблица всех ваших дополнительных полей (у которых включена опция «Использовать как перекрестные ссылки»). Для каждого поля вы можете задать свое альтернативное имя URL.
    • Пример: Для поля actor задаем альтернативное имя star. Ссылка примет красивый вид: site.com/star/silvestr-stallone/ (или site.com/xfsearch/star/silvestr-stallone/ если общий префикс не удален).
  • Безопасный и быстрый роутинг (Без конфликтов):
    • Плагин динамически собирает зарегистрированные имена (и альтернативные алиасы) дополнительных полей и генерирует для них строгое регулярное выражение в роутере FastRoute (например, /{xf:(?:star|genre)/.+}/). Благодаря этому роутер обрабатывает только эти страницы, а обычные категории DLE работают без сбоев.
    • Работает исключительно на уровне ядра роутера и правил URL, не создавая дополнительной нагрузки на базу данных при обработке входящих запросов.
  • Автоматическое управление кэшем: Плагин самостоятельно сбрасывает кэш роутинга DLE (route.rules.php) при изменении настроек плагина, а также при создании, удалении или изменении порядка дополнительных полей в DLE. Вам больше не придется вручную чистить кэш через утилиты.

Установка:​

  1. Загрузите XML-файл плагина xfsearch-url-customizer.xml через стандартную систему управления плагинами в админпанели DLE.
  2. Перейдите в раздел «Сторонние модули» -> «Настройка xfsearch URL» и настройте префиксы и альтернативные имена для нужных полей.
  3. Очистите кэш сайта в админпанели. Все ссылки на вашем сайте перестроятся автоматически.
 
Если работает то огонь)))
 
Для DLE 17.0 нет такого? Или может этот можно сделать?
 

1788016342806.png

Обновление: Кастомизация URL xfsearch DLE 17.x — 20.x​

Совместимость: DLE 17.0 — 20.x
Автор: Ravshon
Специально для Skripters.Biz
По просьбе пользователя @Shura0102 добавлена полная поддержка линейки DLE 17.0 — 18.x, при этом сохранена 100% совместимость с DLE 19.x и 20.x.

Что сделано в обновлении:​

  1. Поддержка DLE 17.x / 18.x:
    • Реализован универсальный обработчик ссылок для версий без встроенного FastRoute (urls.class.php).
    • Настроен перехватчик ЧПУ-запросов через .htaccess в init.php, корректно разделяющий имя поля и его значение при поиске.
  2. Универсальная админпанель:
    • Модуль настроек в админпанели теперь одинаково корректно определяет и выводит список перекрестных доп. полей как через DLEXFields (DLE 19+), так и через классический xfieldsload() (DLE 17-18).
Плагин доступен в виде единого XML-файла и готов к установке на любую версию DLE от 17.0 до 20.x.

 

Посмотреть вложение 6667

Обновление: Кастомизация URL xfsearch DLE 17.x — 20.x​

Совместимость: DLE 17.0 — 20.x
Автор: Ravshon
Специально для Skripters.Biz
По просьбе пользователя @Shura0102 добавлена полная поддержка линейки DLE 17.0 — 18.x, при этом сохранена 100% совместимость с DLE 19.x и 20.x.

Что сделано в обновлении:​

  1. Поддержка DLE 17.x / 18.x:
    • Реализован универсальный обработчик ссылок для версий без встроенного FastRoute (urls.class.php).
    • Настроен перехватчик ЧПУ-запросов через .htaccess в init.php, корректно разделяющий имя поля и его значение при поиске.
  2. Универсальная админпанель:
    • Модуль настроек в админпанели теперь одинаково корректно определяет и выводит список перекрестных доп. полей как через DLEXFields (DLE 19+), так и через классический xfieldsload() (DLE 17-18).
Плагин доступен в виде единого XML-файла и готов к установке на любую версию DLE от 17.0 до 20.x.

*** Скрытый текст не может быть процитирован. ***
Спасибо огромное!
 
Еще такой вопрос, будет ли этот плаген работать с транслитом ссылок в доп. полях?
 
Еще такой вопрос, будет ли этот плаген работать с транслитом ссылок в доп. полях?
1788414289767.png

Решил поделиться доработанным и полностью готовым комплектом плагинов для DLE 17.0 – 20.x 🚀

Многие знают эту вечную головную боль: когда ставишь модуль кастомизации URL xfsearch и плагин транслита вместе — они начинают жестко конфликтовать 🤦‍♂️ Вылезают ошибки «Searchcode not found», ссылки ломаются, а при 301 редиректе всё улетает обратно на стандартный /xfsearch/.

Я полностью переписал и наконец-то «подружил» эти два плагина! Теперь они работают как единое целое на всех версиях DLE от 17.0 до 20.x (включая FastRoute на DLE 19 и 20) 🔥

Что умеет этот комплект:

✅ Убирает слово xfsearch из ссылки: site.com/akter/tom-khenks/
✅ Либо меняет на свой префикс: site.com/filter/akter/tom-khenks/
✅ Свои имена для полей (Slug): системное имя actor можно превратить в akter, country в strana и т.д. 🎯
✅ ЧПУ Транслит: ссылки вместо кракозябр идут на чистой латинице («Том Хэнкс» -> tom-khenks) ✨
✅ Умный 301 редирект: со старых кириллических ссылок автоматом перекидывает на новые красивые адреса 🔀
✅ Красивые заголовки: в Title, H1 и крошках (Speedbar) отображается нормальный текст на русском («Том Хэнкс»), а в строке браузера — латиница 💎
✅ 0 ошибок: ставить можно в абсолютно любом порядке, плагины не перебивают код друг друга 👌


Как поставить (дело 1 минуты):

1️⃣ Заходим в админку -> «Управление плагинами» -> загружаем оба архива 📦
2️⃣ В настройках нужного доп. поля включаем две галочки:

  • «Использовать значения полей как перекрестные гиперссылки»
  • «Использовать транслит в ссылках» ⚙️
    3️⃣ В разделе «Сторонние модули» -> «Настройка xfsearch URL» настраиваем вид ссылок под себя 🛠
    4️⃣ Если на сайте уже были новости, делаем «Перестроение публикаций», чтобы старые ссылки обновились в базе 🔄
Пользуйтесь на здоровье! Если будут вопросы — пишите в теме
 
Посмотреть вложение 6674

Решил поделиться доработанным и полностью готовым комплектом плагинов для DLE 17.0 – 20.x 🚀

Многие знают эту вечную головную боль: когда ставишь модуль кастомизации URL xfsearch и плагин транслита вместе — они начинают жестко конфликтовать 🤦‍♂️ Вылезают ошибки «Searchcode not found», ссылки ломаются, а при 301 редиректе всё улетает обратно на стандартный /xfsearch/.

Я полностью переписал и наконец-то «подружил» эти два плагина! Теперь они работают как единое целое на всех версиях DLE от 17.0 до 20.x (включая FastRoute на DLE 19 и 20) 🔥


Что умеет этот комплект:

✅ Убирает слово xfsearch из ссылки: site.com/akter/tom-khenks/
✅ Либо меняет на свой префикс: site.com/filter/akter/tom-khenks/
✅ Свои имена для полей (Slug): системное имя actor можно превратить в akter, country в strana и т.д. 🎯
✅ ЧПУ Транслит: ссылки вместо кракозябр идут на чистой латинице («Том Хэнкс» -> tom-khenks) ✨
✅ Умный 301 редирект: со старых кириллических ссылок автоматом перекидывает на новые красивые адреса 🔀
✅ Красивые заголовки: в Title, H1 и крошках (Speedbar) отображается нормальный текст на русском («Том Хэнкс»), а в строке браузера — латиница 💎
✅ 0 ошибок: ставить можно в абсолютно любом порядке, плагины не перебивают код друг друга 👌



Как поставить (дело 1 минуты):

1️⃣ Заходим в админку -> «Управление плагинами» -> загружаем оба архива 📦
2️⃣ В настройках нужного доп. поля включаем две галочки:


  • «Использовать значения полей как перекрестные гиперссылки»
  • «Использовать транслит в ссылках» ⚙️
    3️⃣ В разделе «Сторонние модули» -> «Настройка xfsearch URL» настраиваем вид ссылок под себя 🛠
    4️⃣ Если на сайте уже были новости, делаем «Перестроение публикаций», чтобы старые ссылки обновились в базе 🔄
Пользуйтесь на здоровье! Если будут вопросы — пишите в теме
*** Скрытый текст не может быть процитирован. ***
Если транслит уже установлен. нужно его обновлять?
 
Если транслит уже установлен. нужно его обновлять?
Поставил на 17.3 всё работает. Только пришлось плаген транслита подправить маленько. Выдал ошибку в main.php и при редактирование доп. поля при включение транслита галочка после сохранения не сохранялась. Поменял в плагене $value[38] и тому подобное где указывается 38 на $value[40] и всё ок. Это я так на всякий случай, вдруг кто то столкнется с подобной проблемой. Автору спасибо! Полезная вещь.
 
Пара моментов:

1. В engine/classes/urls.class.php вместо Найти и заменить

Код:
if ( is_array( self::$rules ) ) {

                return self::$rules;
лучше Найти добавить ниже

Код:
 if ( is_array( self::$rules ) ) {
, т.е. некоторые плагины так же используют этот участок кода для дополнения правил.

2. В Speedbar (и Title) можно добавить отображение названия допполя:
1788598783153.png
 
это типично для ИИ :ROFLMAO:
когда агента прошу собрать установочный файл, он мне так-же его собирает.
я не говорю, что это неправильно, просто у меня есть другие плагины, использующие этот участок кода, и они уже не находят код
Код:
if ( is_array( self::$rules ) ) {

                return self::$rules;
 
я не говорю, что это неправильно, просто у меня есть другие плагины, использующие этот участок кода, и они уже не находят код
Код:
if ( is_array( self::$rules ) ) {

                return self::$rules;
ничего против не имею, это просто замечание @Ravshon, чтобы проверял перед публикацией
 
Верх