0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 177 Просмотров
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
Конетктс.
Делаю плагин доп поля тип поля subform, но уперся в одну вещь. В идеале надо преобразовать в json $data['com_fields']['имя поля'] еще до события onContentAfterSave. Для того чтобы в базу шли данные в json. Ивент onContentBeforeSave не подойдет. т.к он не позволяет менять дату.
Пока что сделал перезапись значения поля через onContentAfterSave. Но тут целых 2 проблемы.
1. Это лишние запросы.
2. Если по какой-то причине измениться порядок плагинов (хотя основной plugin fields и системный), то работать не будет.
Конечно по большей части пишу плагин для себя и сбой мало вероятен, но все же.
Кстати если кому нужен плагин, могу кинуть я не жадный
« Последнее редактирование: 02.06.2017, 15:50:24 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

b2z

  • Support Team
  • 7464
  • 742
  • Разраблю понемногу
Смотрю JModelAdmin
Код: php-brief
// Trigger the before save event.
$result = $dispatcher->trigger($this->event_before_save, array($context, $table, $isNew, $data));

Можно пробовать $table поменять. Перед ивентом данные уже забиндены в таблицу - $table->bind($data).
$table - объект, а значит всегда передаётся по ссылке, поэтому должен поменяться.
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
Смотрю JModelAdmin
Код: php-brief
// Trigger the before save event.
$result = $dispatcher->trigger($this->event_before_save, array($context, $table, $isNew, $data));

Можно пробовать $table поменять. Перед ивентом данные уже забиндены в таблицу - $table->bind($data).
$table - объект, а значит всегда передаётся по ссылке, поэтому должен поменяться.
Не не прокатило.
Кстати в офф доке даже написанно, что event_before_save не предназначен для замены. кстати подменить пост тоже не вариант.



Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

robert

  • Профи
  • 4075
  • 376
Перед ивентом данные уже забиндены в таблицу - $table->bind($data).
$table - объект, а значит всегда передаётся по ссылке, поэтому должен поменяться.
Тоже так думаю.
Не не прокатило.
Значит, данные, которые нужно менять, не вошли в $table?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
Тоже так думаю.Значит, данные, которые нужно менять, не вошли в $table?
Нет все проще com_fields там нет изначально. он же не относиться к #__content
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

robert

  • Профи
  • 4075
  • 376
А что за com_fields? Он не использует JModelAdmin?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
А откуда появляются данные полей в onContentAfterSave? Речь о своём компоненте.
Почти о любом, если быть точнее  legaсy JModelAdmin и новых доп полях. Все функции для плагинов области fields я тоже перерыл
В своем то я бы выкрутился. Но не лезть же в модель com_content.
Данные там в $data. Код сохранения можно глянуть в plugins/system/fields Оттуда value предаеться в model administrator/components/com_fields/models/field.php функция setFieldValue
Суть в том чтобы поменять значение поля еще до передачи в setFieldValue
При этом не ковыряясь в ядре и стандартных компонентах.
Пока оставил как есть перезапись. так что в целом то поле работает. Но как-то это не по феншуй
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

b2z

  • Support Team
  • 7464
  • 742
  • Разраблю понемногу
Да, я тупанул. Конечно в $table полей не будет, данные же не в com_content хранятся... Ну тут да, только onContentAfterSave тогда.
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
Да, я тупанул. Конечно в $table полей не будет, данные же не в com_content хранятся... Ну тут да, только onContentAfterSave тогда.
Ну в общем вышло примерно так.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Какой тип плагина лучше использовать?

Автор effrit

Ответов: 19
Просмотров: 402
Последний ответ 20.12.2016, 19:55:38
от effrit
Обращение к модели из плагина

Автор platonische

Ответов: 13
Просмотров: 360
Последний ответ 28.09.2016, 20:32:40
от robert
Вопрос по field XML плагина, а именно по заданию стилей

Автор Владимир_М

Ответов: 0
Просмотров: 220
Последний ответ 30.05.2016, 01:00:55
от Владимир_М
$data->id из LoadForm в метод save

Автор platonische

Ответов: 2
Просмотров: 395
Последний ответ 20.03.2016, 18:23:43
от platonische
Короткая ссылка при помощи router.php Нужен совет

Автор error648398

Ответов: 14
Просмотров: 788
Последний ответ 18.03.2016, 13:27:54
от balancer