Что делают, это зачастую понятно по названию, а вот перечень хуков (ныне доступных) не нашёл.
В частности сейчас мне понадобился хук поля. Чтобы при добавлении статьи записывать данные из поля в отдельную таблицу в базе. При этом, полей одного типа может быть несколько. Или это можно\нужно делать прямо в файле поля через функцию?
content_after_add, content_{$ctype['name']}_after_add, content_after_add_approve, content_{$ctype['name']}_after_add_approve
Я для подобных целей использую что-то из этого:
Val, эти хуки я тоже использую. Значит хука поля нет?
Мне нужно собирать данные из полей одного типа, не зная их системных имён.
В шаблоне моего типа поля я добавляю input с определённым названием(например field) и передаю сис. имя поля в его значение.
В хуке прокручиваю request->get('field') и узнаю все сис. имена полей моего типа. Тут же, через тот же request->get узнаю значения полей для каждого из полей. Но это для меня целая эпопея… сложно. Подумал, может быть есть возможность обращаться к полю через хук или прямо в файле моего поля прописать функцию срабатывающею при добавлении статьи.
В частности, для решения своей задачи при редактировании записи я обхожусь ajax решениями а вот при добавлении записи я не знаю id записи и приходится использовать хук, например тот же content_after_add. Не назначать же мне свою js функцию на отправку формы только из за своей безграмотности в данном вопросе ;).
$fields = cmsCore::getModel('content')->getContentFields($data['ctype_name']);
Теперь $fields содержит массив полей ключи которого системные названия полей. Перебираете массив и фильтруете по нужному типу поля $fields[$key]['type'] == 'нужный_тип_поля'
Тут в зависимости от потребностей, или собираем системные названия интересующих полей, или оставляем нужные поля в массиве или еще что))
А далее с известными названиями полей прочесываете $data['item']['системное_имя_поля'] и обрабатываете нужные вам данные.
В одном из указанных выше хуков получаете все поля для данного типа контента:
В $data['ctype_name'] — в хуке передается имя типа контента
$fields = cmsCore::getModel('content')->getContentFields($data['ctype_name']);
Теперь $fields содержит массив полей ключи которого системные названия полей. Перебираете массив и фильтруете по нужному типу поля $fields[$key]['type'] == 'нужный_тип_поля'
Тут в зависимости от потребностей, или собираем системные названия интересующих полей, или оставляем нужные поля в массиве или еще что))
А далее с известными названиями полей прочесываете $data['item']['системное_имя_поля'] и обрабатываете нужные вам данные.
Мне не хватает конструктивного подхода, начиная с php, заканчивая изучением движка.

Видимо мне вернее будет использовать: content_after_.._approve
Благодарю Вас за уделённое внимание и помощь! ;)
Друзья, а есть где-то список всех хуков и как они работают?
Друзья, а есть где-то список всех хуков
При просмотре отладки есть две вкладки: «Неактивные события» и «Отработавшие события», вместе они выдают все хуки для данной страницы. На других страницах их список будет другим. Полного списка всех хуков нет ни у кого, так как хуки добавляются и удаляются вместе со своими компонентами. И таких компонентов на каждом сайте свой набор.
и как они работают?
Все по разному.
Друзья, а есть где-то список всех хуков и как они работают?
Вот все хуки docs.instantcms.ru/dev/controllers/hooks/list
а вот тут описано как они работают docs.instantcms.ru/dev/controllers/hooks
реверс-инжиниринг вам в помощь
Вот все хуки docs.instantcms.ru/dev/controllers/hooks/list
Если бы было все так просто. Там много пустых пока docs.instantcms.ru/dev/controllers/hooks/list/activity (
Если бы было все так просто. Там много пустых пока docs.instantcms.ru/dev/controllers/hooks/list/activity (
дак я вам и написал «реверс-инжиниринг вам в помощь», т.к. в instantcms как и в виндовс — действуй на угад 🤣🤣🤣 если повезет — то всё будет хорошо работать, а если нет — то танцы с бубнами сутки напролет 😉
я отказался использовать в своих проектах instantcms, очень трудозатратное это удовольствие. так, на локалке и на тестовых серверах крутится, по типу «а вдруг когда-то пригодится».