Хуки в двойке

 
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1195
Было бы полезно знать, какие есть и что делают?
Что делают, это зачастую понятно по названию, а вот перечень хуков (ныне доступных) не нашёл.

В частности сейчас мне понадобился хук поля. Чтобы при добавлении статьи записывать данные из поля в отдельную таблицу в базе. При этом, полей одного типа может быть несколько. Или это можно\нужно делать прямо в файле поля через функцию?
Редактировалось: 2 раз (Последний: 27 июля 2016 в 16:01)

Дополнения для InstantCMS 2
Шаблон с дополнениями. skype:gdvden
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
Я для подобных целей использую что-то из этого:
Код PHP:
  1. content_after_add,
  2. content_{$ctype['name']}_after_add,
  3. content_after_add_approve,
  4. content_{$ctype['name']}_after_add_approve
По типу поля выбираете нужные вам и записываете данные в БД.
Реклама
cms
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1195
Val:

Я для подобных целей использую что-то из этого:

Val, эти хуки я тоже использую. Значит хука поля нет?

Мне нужно собирать данные из полей одного типа, не зная их системных имён.
В шаблоне моего типа поля я добавляю input с определённым названием(например field) и передаю сис. имя поля в его значение.
В хуке прокручиваю request->get('field') и узнаю все сис. имена полей моего типа. Тут же, через тот же request->get узнаю значения полей для каждого из полей. Но это для меня целая эпопея.. сложно. Подумал, может быть есть возможность обращаться к полю через хук или прямо в файле моего поля прописать функцию срабатывающею при добавлении статьи.

В частности, для решения своей задачи при редактировании записи я обхожусь ajax решениями а вот при добавлении записи я не знаю id записи и приходится использовать хук, например тот же content_after_add. Не назначать же мне свою js функцию на отправку формы только из за своей безграмотности в данном вопросе ;).
Редактировалось: 6 раз (Последний: 27 июля 2016 в 18:34)

Дополнения для InstantCMS 2
Шаблон с дополнениями. skype:gdvden
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1164
В одном из указанных выше хуков получаете все поля для данного типа контента:
Код PHP:
  1. $fields = cmsCore::getModel('content')->getContentFields($data['ctype_name']);
В $data['ctype_name'] - в хуке передается имя типа контента
Теперь $fields содержит массив полей ключи которого системные названия полей. Перебираете массив и фильтруете по нужному типу поля $fields[$key]['type'] == 'нужный_тип_поля'
Тут в зависимости от потребностей, или собираем системные названия интересующих полей, или оставляем нужные поля в массиве или еще что))
А далее с известными названиями полей прочесываете $data['item']['системное_имя_поля'] и обрабатываете нужные вам данные.
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1195
Val:

В одном из указанных выше хуков получаете все поля для данного типа контента:
Код PHP:
  1. $fields = cmsCore::getModel('content')->getContentFields($data['ctype_name']);
В $data['ctype_name'] - в хуке передается имя типа контента
Теперь $fields содержит массив полей ключи которого системные названия полей. Перебираете массив и фильтруете по нужному типу поля $fields[$key]['type'] == 'нужный_тип_поля'
Тут в зависимости от потребностей, или собираем системные названия интересующих полей, или оставляем нужные поля в массиве или еще что))
А далее с известными названиями полей прочесываете $data['item']['системное_имя_поля'] и обрабатываете нужные вам данные.

Мне не хватает конструктивного подхода, начиная с php, заканчивая изучением движка.
hoho

Видимо мне вернее будет использовать: content_after_.._approve

Благодарю Вас за уделённое внимание и помощь! ;)
Редактировалось: 1 раз (Последний: 27 июля 2016 в 20:26)

Дополнения для InstantCMS 2
Шаблон с дополнениями. skype:gdvden
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.