Что делают, это зачастую понятно по названию, а вот перечень хуков (ныне доступных) не нашёл.
В частности сейчас мне понадобился хук поля. Чтобы при добавлении статьи записывать данные из поля в отдельную таблицу в базе. При этом, полей одного типа может быть несколько. Или это можно\нужно делать прямо в файле поля через функцию?
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
Благодарю Вас за уделённое внимание и помощь! ;)