Как объекту/позиции типа контента дать свои пункты/категории? Меню для каждого объекта

InstantCMS 2.X
#1 19 апреля 2022 в 15:54

Привет всем)))
Не могу понять, как можно дать объекту или позиции при добавлении категории или пункты, связанные только с этим объектом?

Я имею ввиду следующее.
Допустим у нас есть Тип контента — Доставка.
Данный Тип контента работает в связке с Справочником.
То есть я добавляю доставку в ресторану или магазину, строго.
Без связи не получится добавить доставку.
Но возникает потребность фильтровать Доставку не общим списком, а именно чтоб формировалось некое меню из пунктов у самого объекта.
То есть я добавляю Роллы и пишу название при ДОБАВЛЕНИИ — «Роллы», но чтоб этот пункт «Роллы» относился только к данному объекту, к которому я их привязал. Потому что если сделать категорией, то понятное дело, что будут все Роллы с сайта от всех объектов, а мне необходимо чтоб перейдя в определенный ресторан или кафе, мы видели меню именно данного заведения.

Пока самое что нашел, это папки. Но они привязаны к пользователю, не к объекту.

#2 19 апреля 2022 в 15:59

Копайте в эту сторону: у вас при создании родителя в типе контента создается поле, что-то вроде parent_ctype_name_id

Выведите связь в вашем шаблоне как-то так:

  1. <?php
  2. if(!empty($item['parent_ctype_name_id'])){
  3. $object = $fields['parent_ctype_name_id']['handler']->setItem($item)->parse( $item['parent_ctype_name_id'] );
  4. echo $object;
  5. }
  6. ?>

И манипулируйте этой конструкцией для получения необходимых вам данных из родительского типа контента. Если я конечно вас правильно понял

#3 19 апреля 2022 в 16:13

Make, спасибо большое, но я не программист ни разу...
Вы ведь знаете)))
Поэтому я конечно понимаю, что в теории, можно сделать все хуками, но хотелось бы узнать, есть ли стандартный способ так сделать, без вмешательства в код, без хуков?
Иначе конечно придется искать исполнителя, чтоб помог разобраться с данной проблемой...

#4 19 апреля 2022 в 16:35

есть ли стандартный способ так сделать, без вмешательства в код, без хуков?

skewes

Подозреваю, что встроенных функций еще пока нет)

#5 19 апреля 2022 в 18:42

 skewes, может стоит пересмотреть саму структуру? Вот например. Типом контента сделать не доставку, а заведения. Категории будут соответственно категориями. Подкатегории названиями. Тогда ваши роллы попадут туда, куда надо. Конечно возможно у вас там всё более сложно, но как написали, так и понял)

#6 19 апреля 2022 в 19:08

Lora, Заведения связаны с Доставкой. То есть у них уже есть связь...
Подкатегории — названия заведений?
Большое количество получится на город...

#7 19 апреля 2022 в 21:25

 skewes, это был просто пример. У вас хромает структура. Это однозначно.Например Доставка, по идее, должна быть компонентом, а не ТК. Возможно со временем вы поймёте это). Связи хорошо работают для однородных объектов. А Заведения и Доставка не есть однородные.

#8 19 апреля 2022 в 22:52

 Lora, я не думал об этом, по мне так самое простое было организовать именно связями данную функцию сайта, без компонентов. Захожу в объекты, вижу вкладку доставка, открываю и вся доставка этого объекта находится в списке. Осталось только додумать фильтрацию правильно каждому объекту отдельно и всё.

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

#9 19 апреля 2022 в 23:18

В принципе меня все устраивает что есть

skewes

Видимо нет, раз топик есть)

#10 19 апреля 2022 в 23:38

Нужна доработка просто по правильной фильтрации)))

#11 20 апреля 2022 в 06:04

Правильная структура — это каталог или магазин, c категориями, подкатегориями, товар — запись,  продавец возможно тоже запись, сео. Фильтрация  полями, но нужен компонент Категории для полей .

#12 20 апреля 2022 в 06:47

Elips, да есть категории у магазинов и у них Связь с ТК Доставка.
Кстати, вы мне напомнили у dwd компоненты посмотреть)))

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