Как отключить определенное поле для редактирования? icms2+

#1 31 января 2016 в 18:07
В типе контента имеется обычное поле для ввода.
Как отключить его на странице редактирования?

Как правильно использовать имеющие в системе хуки по такому случаю?

Пробовал использовать хук
  1. cmsEventsManager::hook("content_{$ctype['name']}_form", array($form, $item))
и вроде там и проходит список полей. не что то не понял как добраться до
  1. [structure:cmsForm:private] => Array
которое в содержится в передаваемом $form
#2 31 января 2016 в 21:05
В базе данных. Например для новостей, cms_con_news_fields
Поиграйте с полями

is_fixed
is_fixed_type
is_system
#3 31 января 2016 в 21:17

Поиграйте с полями

Zau4man
это как правило, либо отключает возможность удалить поле, либо отключает возможно использования в определенном месте.

А тут случай: при создании это поле должно быть, а при редактировании нет.

у меня сложность возникла при разборе приватного списка.
  1. cmsForm Object
  2. (
  3. [is_tabbed] =>
  4. [params:cmsForm:private] => Array
  5. (
  6. )
  7.  
  8. [structure:cmsForm:private] => Array
  9. ( ...........
Как получить? Надо где-то перевести в public?
#4 31 января 2016 в 21:26
kreator, тоже нужно было сделать подобное, для личных полей я сделал скрытие данных полей при редактировании средствами css ( display: none;)

Это не запрет, но для обычных юзеров вполне рабочее решение!)
#5 31 января 2016 в 22:05

скрытие данных полей при редактировании средствами css

reload
что то мне подсказывает, что icms2+ сможет это сделать и хУком
только пока не понял как
#6 31 января 2016 в 22:13

что то мне подсказывает, что icms2+ сможет это сделать и хУком
только пока не понял как

kreator

Если будет решение то тоже буду рад!

Ну а пока для работы описанный пример с display:none довольно легко и быстро реализуется — для рабочего сайта (да и для тех кто любит простоту) вариант годный)

ps: хотя если про это пишут, то возможно скоро такое появится в коробке — функция явно напрашивается сама!)
#7 23 декабря 2016 в 17:51

и вроде там и проходит список полей. не что то не понял как добраться до
Код PHP:

[structure:cmsForm:private] => Array

которое в содержится в передаваемом $form

Kreator

Ну примерно как-то так:
  1.  
  2. $fields = $form->getStructure();
  3. foreach($fields as $fieldset_id => $fieldset){ /* тут творим чего хотим*/ }
  4. $form->setStructure($fields);
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.