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

Septdir

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

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Смотрю 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

  • Живу я здесь
  • 3370
  • 168 / 4
Смотрю 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 не предназначен для замены. кстати подменить пост тоже не вариант.



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

robert

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

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Тоже так думаю.Значит, данные, которые нужно менять, не вошли в $table?
Нет все проще com_fields там нет изначально. он же не относиться к #__content
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
А что за com_fields? Он не использует JModelAdmin?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
А откуда появляются данные полей в onContentAfterSave? Речь о своём компоненте.
*

Septdir

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

b2z

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

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Да, я тупанул. Конечно в $table полей не будет, данные же не в com_content хранятся... Ну тут да, только onContentAfterSave тогда.
Ну в общем вышло примерно так.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Событие: сохранение настроек плагина

Автор anatol81n

Ответов: 2
Просмотров: 664
Последний ответ 29.01.2021, 07:17:45
от voland
[РЕШЕНО] curl-файл Joomla $model->save($data) подключение модели администратора

Автор platonische

Ответов: 31
Просмотров: 1313
Последний ответ 30.05.2019, 16:10:57
от sivers
Как создавать в админке раздел для изменения настроек плагина?

Автор lculver

Ответов: 2
Просмотров: 601
Последний ответ 21.05.2018, 08:55:46
от dmitry_stas
Какой тип плагина лучше использовать?

Автор effrit

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

Автор platonische

Ответов: 13
Просмотров: 1419
Последний ответ 28.09.2016, 20:32:40
от robert