Smooch

Smooch

+29
Репутация
1
Рейтинг
#1 Страницы фильтров 17 февраля 2026 в 13:20

Хочу поблагодарить разработчиков и всех причастных к развитию instantCMS. Функционал страниц фильтров — довольно мощный инструмент. Он позволяет создавать динамические категории, не загромождая основной раздел, и открывает отличные возможности для построения целевых страниц с помощью свойств и полей ТК.

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

1. Категории, где фильтр будет доступен
Если снять галочки у  «все» и «корневая категория» в настройках фильтра, возникает неочевидное поведение:

  • Путь albums/doma/vsevolozhsk отрабатывает корректно (тайтл категории добавляется, страница доступна.
  • Путь albums/vsevolozhsk (где категория не отмечена чекбоксом) не выводит тайтл(его там и не должно быть), и страница также доступна.

Ожидаемо ли такое поведение?

2. Неочевидная работа чекбоксов при выборе категорий
Заметил, что чекбоксы в списке категорий ведут себя нестандартно: при сохранении настройки могут сбрасываться или выставляться иначе. Предполагаю, это связано с тем, что система учитывает наличие записей в категориях при применении фильтра — это логично и удобно. Однако сам механизм неочевиден для пользователя.

  • Было бы здорово добавить подсказку к полю, объясняющую эту логику.
  • Также вопрос: как будет работать эта схема, если в категории в которой нет записей по фильтру, они появятся похже, нужно будет пересохранить эту страницу или индексы добавляются при сохранении самой записи?

3. Баг с отображением первого свойства
Столкнулся с проблемой при указании свойств. Первое свойство в списке настроек страницы фильтра просто не выводится. Например: добавляю свойство в нужную Категорию, выбираю нужную категорию на странице настроек фильтра — свойств нет. При добавлении второго свойства в эту категорию — видно только его. Если удалить первое свойство, второе тоже исчезает (так как становится первым и единственным). Похоже на системный баг.

4. Предложение по улучшению (вывод списка фильтров)
И в дополнение, системе не хватает стандартного инструмента для вывода списка страниц фильтров в категории. На примере «Категории над списком записей» или хотя бы в виджета. Сейчас я реализовал это «костылем» в шаблоне category_view.tpl.php и, возможно, позже вынесу в хук. Но на мой взгляд, коробочное решение было бы лучше.

Спасибо за внимание! Надеюсь на обратную связь

#2 [ЕСТЬ РЕШЕНИЕ] Предложение по доработке 7 октября 2025 в 20:33

Чтобы не делать новую тему, добавлю здесь с вашего позволения:

В настройках тип контента по умолчанию стоит: Страницы

  1. Добавляем кастомную страницу в виджетах для категории ТК статьи, допустим: Астрономия — atricles/astronomija
  2. Ставим любой виджет на эту страницы — все хорошо.
  3. Идем опять в настройки и добавляем еще один ТК по умолчанию: статьи
    и установленный виджет для кастомной странице на фронте испаряется. На чистой установке 2.17.3 и 2.18

Ошибок нет — денек посидел на этом) Помогите, пожалуйста, где исправить?!

И еще офтоп, это касается интерфейса в форме категорий, если установка урл вручную — у пользователя может возникнуть желание использовать имя типа контента name (например: тип контента car и урл категории car-green) ошибок при сохранении не будет, а вот вместо показа категории будет 404.
По всей видимости этот урл занят наборами, и пользователя нужно либо предупредить подсказкой поля, либо запретить ошибкой.

#1 Разработка компонента для объявлений авто 18 июня 2025 в 18:36

Вероятно, мою задачу можно решить стандартными средствами, без головной боли, через ТК: либо категориями, либо связями. Но все не то, да и не ищем мы легкий путей.
Поэтому сделал компонент auto, который имеет несколько таблиц: Марки, Модели, Страны со значениями и дополнительно таблицу связи всех с типом контента(может эта таблица лишняя: один ко многим)

Создал тип контента cars, в форме записи вывожу поля из таблиц выше, а при сохранении записи пишу в промежуточную ID-ки. 
Дальше я планировал подтянуть все данные в ТК через хуки. Но меня интересует вопрос с формированием url.

И что-то мне подсказывает, я не туда поехал: хочется использовать все возможности ТК, чтобы и категории работали, и наборы и тд(вдруг пригодятся)

На выходе планировал реализовать что-то такое:
site.ru/cars/country/ 
site.ru/cars/country/brand
site.ru/cars/brand/model
Может быть даже такое:
site.ru/cars/brand/model
и тд
Это же категории, буквально. Однозначно будут проблемы с урлами.

1) Возможно такое провернуть с ТК используя значения из своего компонента? Если да, то где подсмотреть? 

2) Может не стоит цепляться за ТК, делать отдельно записи в компоненте со своими экшенами, прописывать свои роуты) и тд

Искал по форуму, пару тем по касательной есть, но совсем не раскрыто:

Вопрос о url в instantcms 2

Как устроен компонент places

3) Вторая тема, особенно интересна, может быть мне стоит сделать компонент и тип контента с одинаковыми названиями, какие будут «дивиденды» с такого подхода?

4) Цеплять записи из типа контента в экшенах своего компонента, предполагаю этот вариант теряет весь смысл использования ТК, нужно посмотреть

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

Помогите, пожалуйста, направьте на путь истинный!

#4 Тип поля "Сквозной HTML" 18 января 2025 в 18:11

Через визуальный редактор вы создаете тот самый HTML, если нужно вставить кастомную верстку, это можно сделать через инструмент «исходный код» в панели редактора(если инструмент включен в настройках). Другой вопрос, что особой пользы в этом поле нет — вывести одинаковый html на страницах можно множеством способов. И совсем другое дело если расширить функционал этого поля и дать возможно корректировать содержимое при создании записей.

#5 [ЕСТЬ РЕШЕНИЕ] Кастомные поля для виджетов 20 декабря 2024 в 17:25

Оперативно. Спасибо за помощь, сейчас поставлю

#1 [ЕСТЬ РЕШЕНИЕ] Кастомные поля для виджетов 20 декабря 2024 в 17:18

Задача вывести дополнительную строку в обёртке виджета рядом с заголовком. Хуком widget_form добавил строковое поле, сохраняю его в опциях, здесь все без проблем. Но дальше у меня затык, как сделать его доступным в темплейте widgets/wrapper.tpl.php, есть изящное решение без правки ядра? Туда данные передаются в cmsTemplate renderWidget:

Изображение

Хук widgets_before_list я так понимаю мне здесь не поможет.
Хочется по красоте) если нет простых вариантов, тогда придется делать через tpl_wrap_custom

P.S. вариант с tpl_wrap_custom более чем устроит если сделать

тому полю дефолтное состояние(вывести готовое решение), чтобы верстку не вспоминать/ не таскать между виджетами

#7 [ЕСТЬ РЕШЕНИЕ] Вызов меню в шаблоне без виджета 14 марта 2024 в 14:31

Понял, спасибо. Значит делаем через виджеты. Давно мучал этот вопрос, часто нужно несколько блоков меню в футере, думал что проще и быстрее напрямую)

Вопрос решен

#1 [ЕСТЬ РЕШЕНИЕ] Вызов меню в шаблоне без виджета 13 марта 2024 в 21:34

В main.tpl эта конструкция не работает:

  1. <?php $this->menu('menu_name'); ?>

Меню отображается только когда добавляю нужное меню через виджеты, тогда оно появляется в объекте $this и выводится в шаблоне через прямой вызов

#9 Поле цвет, есть необходимость мультивыбора 4 февраля 2024 в 10:54

Полностью магазин ставить ни к чему, возьмите от туда только поле из папки system/fields и загрузите в свой проект в соответствующую папку.

#10 Поле для связей 14 сентября 2023 в 16:34

 Zau4man, спасибо. formfield смотрел, но не смог разобраться, эти методы не встречал в стандартных полях. Пойду пробовать)

 
#1 Поле для связей 14 сентября 2023 в 16:03

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

  1. public $sql = 'int NULL DEFAULT NULL';
  2. public $filter_type = 'int';
  3. public $filter_hint = LANG_PARSER_LIST_FILTER_HINT;
  4. public $var_type = 'string';


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

  1. $this->sql = $rel_field['sql'];
  2. $this->filter_type = $rel_field['filter_type'];
  3. $this->filter_hint = $rel_field['filter_hint'];
  4. $this->var_type = $rel_field['var_type'];

И здесь у меня тупик, как это правильно можно реализовать, и возможно ли вообще такое провернуть? 

#12 Связь типов контента. Привязка только к одной записи 5 сентября 2023 в 09:53

Поэтому эта очевидная настройка очевидна не всем и из-за этого ее нет.

Loadырь

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

#13 При просмотре поста вывести список остальных постов из именно этой группы 19 июля 2023 в 20:01

Скорее всего группы здесь не совсем подходящий инструмент, могу ошибаться. Я сделал бы немного иначе.
Если правильно понял, лучше сделать новый типа контента «комиксы», категории контента использовать для наименований произведений, а уже сами посты для глав. В настройках типа контента «просмотр списка» выставляете 1 запись на странице и таким образом в пагинации у вас будет отображаться количество страниц и кнопки предыдущий и следующий. Это самое простое, что можно сделать.

еще можно обратить внимание на дополнение от Fuze https://instantcms.ru/addons/field-navigation.html, это поле позволяет вывести кнопки следующий и предыдущий пост в просмотре самой записи

#1 Проблема с админкой 8 июня 2023 в 19:06

Не найдена модель данных или она недоступна для чтения: system/controllers/backend_content/model.php
Последние вызовы:

cmsController->__get() @ /system/controllers/admin/frontend.php: 201
admin->getAdminMenu() @ /system/controllers/admin/frontend.php: 78
admin->before() @ /system/core/controller.php: 506
cmsController->runAction() @ /system/core/core.php: 763
cmsCore->runController() @ /index.php: 46

Обновлял InstantCMS на локальном, там все прошло хорошо. Ошибка появилась уже на хостинге, после переноса файлов сайта с локального на хостинг. Куда смотреть?

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

Проблему нашел, autoload.php не был перенесен.

#15 Как подключить конструктор форм? 19 января 2022 в 19:21

В  2.15.1 шаблон «default»: делаю клон \form.tpl.php в  assets\ui\, например form_front.tpl.php
В конструкторе форм в поле выбираю этот шаблон, все сохраняется. Но используется по-прежнему form.tpl.php

🍪Мы используем файлы cookie для работы сайта. Читать подробнее.