Как создать в шаблоне пользовательскую страницу "Все страницы, кроме некоторых, но включая главную"?

InstantCMS 2.X
#1 1 февраля 2022 в 21:15

Уважаемые коренные Инстант-жители! :)

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

Ключевой момент — это именно включая главную.

— — — — -

На всякий случай сразу добавляю пояснения почему это реально актуальная задача:

Пример 1. Я хочу выводить виджет поиска на всех страницах (включая главную), кроме собственно страницы поиска и результатов поиска (домен/search и домен/search?q=*).

Пример 2. Я хочу выводить виджет с облаком тегов на всех страницах (включая главную), кроме страницы с тегами (домен/tags)

Пример 3. Я хочу выводить виджет с аватарами пользователей на всех страницах (включая главную), кроме страниц раздела «Пользователи» (домен/users*).

— — — — -

Вот я пробую настроить фильтры для третьего примера:

Изображение

Отрицательный фильтр — отлично отфильтровывает раздел «Пользователи».

Положительный фильтр "*" — тоже отлично выбирает все страницы КРОМЕ главной.
А вот как указать, что для главной страницы тоже эту страницу тоже стоит применять??

— — — — -

Сразу уточнение.

Да, на многих сайтах главная страница — строится полностью по другим шаблонам, чем все остальные.
Но в моём случае — нет. Центральная часть — да. А вот боковые виджеты — так, как я описал.

— — — — -

Ещё момент. Может быть есть возможность разместить один виджет сразу на нескольких страницах шаблона.

Именно НЕ копию виджета, а один виджет, чтобы не приходилось одинаковые виджеты дважды настраивать — на главной и на вот этих страницах а-ля «все внутренние страницы, кроме ...».

— — — — -

Возможно, задача примитивная, нужно просто как-то вместо или рядом с маской * добавить ещё одну маску, которая означает — «пустая строка», то есть URL без ничего после первого слеша. 

Буду признателен за решение, а также за любые идеи, размыления по данной задаче.

#2 2 февраля 2022 в 12:41

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

Пример 1. Я хочу выводить виджет поиска на всех страницах (включая главную), кроме собственно страницы поиска и результатов поиска (домен/search и домен/search?q=*).

Владимир Переверзев
Изображение

Виджет поиска кидаем на нее и на  системную Страницу/Главная страница

С тегами и юзерам также

Именно НЕ копию виджета, а один виджет, чтобы не приходилось одинаковые виджеты дважды настраивать — на главной и на вот этих страницах а-ля «все внутренние страницы, кроме ...».

Владимир Переверзев

Вроде для этого внизу блок «привязываемые виджеты» 

#3 2 февраля 2022 в 22:54

Подозреваю что для главной правила фильтрации нету и именно для этого есть системная страница
Изображение

Sonat

 Sonat, спасибо, что откликнулись.

Но пока с Вами не согласен. 
Страница главной страницы — создана для того, чтобы настраивать на ней ТЕ виджеты, которые будут на главной и ТОЛЬКО на главной.

Рядышком же есть страница «Все страницы». То, что размещаешь на ней — тоже оказывается на главной.

За предложение — спасибо. Но обоснование — мне лично выглядит с определёнными пробелами. ))

Добавлено спустя 1 час

Виджет поиска кидаем на нее и на  системную Страницу/Главная страница

Sonat

Так я же говорю, что хочу обойтись БЕЗ дублирования виджетов. 

В технологиях проектирования есть принцип Бритвы Оккамы: «Не плоди сущности без необходимости».
Я как ООП-программист, его твёрдо внял.

Один виджет — да, можно два раза продублировать.
Но если виджетов много.

Добавлено спустя 1 минуту

Вроде для этого внизу блок «привязываемые виджеты» 

Sonat

Ну вот вроде — есть. Но как им пользоваться — я пока не понимаю.
Искал в документации — не нашёл.

Кто-то знает, как пользоваться «привязываемыми виджетами»?

Добавлено спустя 40 минут

Создал смежный топик про «привязываемые виджеты»:
instantcms.ru/forum/privjazyvaemye-vidzhety-chto-eto-takoe-i-kak-s-nimi-rabotat.html

Возможно, это будет решением и данной задачи.
А возможно — нет.

Добавлено спустя 38 минут

UPD Данную задачу действительно можно решить с помощью механизма «привязываемых виджетов».
В смежном топике описаны детали и есть ссылка на раздел документации.

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

Насколько я понимаю, фильтры срабатывают не на весь URL страницы сайта, а на её часть после домена и после слеша — PATH.

И соотстветственно для главной страницы PATH — банально пустой.
По идее маска * — соответствует и пустой строке.
Но тут она не срабатывает.

Кто силён в регулярках (или LIKE-сопоставлениях) — какой значок нужно указать для пустой строки?
Или тут дело в другом?

#4 5 февраля 2022 в 20:57

Очень надеюсь, что решение таки есть.
Дублировать виджеты отдельно на главной — не самое лаконичное решение.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.