Как скрыть связанный контент в при редактировании записи.

InstantCMS 2.X
#1 10 октября 2025 в 09:50

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

Изображение
#2 11 октября 2025 в 01:44
Добрый день. При привязке к основной записи дочерних записей методом связей, они выводятся при редактировании.
Clear

Как вариант:
1. Добавьте поле родителя, в настройках полей формы контента, в группу, например «Связи с новостями».
2. В настройках типа контента отметьте созданную группу как сворачиваемую в форме при создании/редактировании.

#3 11 октября 2025 в 03:51
maxxux

Понимаю. Это вариант заглушка, типа танцы с бубном 😀. Но по факту это не полноценное решение, Ну есть магазин, у него есть товары, их тысячи да. Зачем их все подгружать и выводить из БД при редактировании магазина создавая при этом нагрузку на сервер? Это вообще не нужная опция. Можно хотя бы просто выводить количество записей со ссылкой к списку и кнопкой «Добавить». Я может чего не понимаю, но по мне так это лишнее в данном случае.

#4 11 октября 2025 в 09:39

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

Можно хотя бы просто выводить количество записей со ссылкой

Clear

Это не лучше, чем просто ссылки, что выводятся.В плане запроса). А вот что то типа кнопки «Редактировать связи», если нужно отвязать какие то, было бы удобнее наверное. Возможно это хуком можно реализовать.

#5 11 октября 2025 в 17:43
maxxux Понимаю. Это вариант заглушка, типа танцы с бубном 😀. Но по факту это не полноценное решение, Ну есть магазин, у него есть товары, их тысячи да.
Clear

Зачем постоянно редактировать магазин :) Мне кажется, что связи лучше использовать со статичными данными, которые редко меняются, например такими, как профиль пользователя. То что я предложил это как раз полноценное решение заложенное в самой системе.

Вот вам ещё один вариант танца с бубном: сделайте контроллер для своих нужд, например app и в нём создайте хук:

  1. <?php
  2.  
  3. class onAppContentNewsForm extends cmsAction {
  4.  
  5. public function run($data){
  6.  
  7. list($form, $item) = $data;
  8.  
  9. //если есть id, значит редактируем существующую запись
  10. if(!empty($item['id'])){
  11.  
  12. //Если нужен весь список доступных блоков в форме
  13. //$structure = $form->getStructure();
  14.  
  15. //$fieldsetsId = [];
  16. //foreach($structure as $fid => $fieldset){
  17. //$fieldsetsId[$fieldset['title']] = $fid;
  18. //}
  19.  
  20. //hideField($fieldsetsId, $fieldSystemName)
  21. $form->hideField(0, 'parent_news_id');
  22.  
  23. //ещё варианты
  24. //$form->removeFieldset($fieldsetsId['Папка']);
  25. //$form->hideFieldset($fieldsetsId['Приватность']);
  26.  
  27. }
  28.  
  29. return [$form, $item];
  30.  
  31. }
  32.  
  33. }
  34.  

где app и news измените под себя

#6 12 октября 2025 в 16:41

Ладно, ветка есть, будем думать, может еще будут предложения в будущем, для улучшения UX

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

Похожее в блогах

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