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

White_Tiger

  • Осваиваюсь на форуме
  • 88
  • 3
Господа товарищи. Я видимо что-то не догоняю в работе Joomla, но у меня вот таков интересный затык.
Захотелось отловить вновь создаваемые модули время когда они создались и т.д. типа чтобы вывести пользователю сайта небольшой блок "изменения на сайте". Для данной цели, решил написать триггер (поскольку штатных методов заставить Joomla хранить даты создания/модификации модулей не нашёл):
Код
CREATE TRIGGER `jm_modules_after_insert`
AFTER INSERT ON `jm_modules`//табла создающаяся Joomla и хранящая инфу о всех модулях
FOR EACH ROW BEGIN
insert into modify_modul (mod_id) //типа затолкнуть айдишник вновь созданного модуля в мою собственную табличку
values (new.id);
END;
после этого создание любых модулей стало невозможным, после жмяканья "сохранить" Joomla выводит следующую ошибку:
"Header may not contain more than a single header, new line detected in Z:\home\172.16.13.77\www\libraries\joomla\application\web.php on line 960".
Что это за радость может быть? Триггер же работает вроде как после работы скрипта и не должен ему никак мешать. подскажите что это такое?
*

almika

  • Давно я тут
  • 269
  • 22
Re: Ошибка при создании модуля
« Ответ #1 : 29.01.2016, 02:00:25 »
У меня на хостинге триггеры и хранимые процедуры не поддерживаются. Может у вас тоже с этим связана ошибка.
*

White_Tiger

  • Осваиваюсь на форуме
  • 88
  • 3
Re: Ошибка при создании модуля
« Ответ #2 : 29.01.2016, 08:11:08 »
Может быть. А как проверить не подскажете?
*

robert

  • Профи
  • 4075
  • 376
Re: Ошибка при создании модуля
« Ответ #3 : 29.01.2016, 09:33:00 »
Новая строка в header, скорее всего, при redirect. Сделайте плагин на событие onExtensionAfterSave.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

White_Tiger

  • Осваиваюсь на форуме
  • 88
  • 3
Re: Ошибка при создании модуля
« Ответ #4 : 01.02.2016, 13:12:10 »
Уважаемый Роберт!
Плагины писать в общем и целом я научился, вот только... не так давно ковыряюсь в Joomla да и PHP в целом. Подскажите пожалуйста, а где хранятся параметры создаваемых материалов/модулей. Я так понимаю эта какая-нибудь служебная переменная-массив существующая только внутри какого-нибудь класса и только пока идёт работа с материалом/модулем? Мне бы как-то её перехватить и забрать из неё некоторые данные.
*

b2z

  • Support Team
  • 7469
  • 742
  • Разраблю понемногу
Re: Ошибка при создании модуля
« Ответ #5 : 01.02.2016, 13:31:30 »
Уважаемый Роберт!
Плагины писать в общем и целом я научился, вот только... не так давно ковыряюсь в Joomla да и PHP в целом. Подскажите пожалуйста, а где хранятся параметры создаваемых материалов/модулей. Я так понимаю эта какая-нибудь служебная переменная-массив существующая только внутри какого-нибудь класса и только пока идёт работа с материалом/модулем? Мне бы как-то её перехватить и забрать из неё некоторые данные.
Параметры хранятся в базе, обычно в колонке params. Для материалов это таблица com_content, для модулей - com_modules.
*

White_Tiger

  • Осваиваюсь на форуме
  • 88
  • 3
Re: Ошибка при создании модуля
« Ответ #6 : 01.02.2016, 14:07:36 »
Дмитрий, я это знаю, но туда они ссыпаются уже после создания/модификации материала/модуля. Как потом искать там нужный остаётся загадкой. Теоретически можно, конечно, селектнуть последний обновлённый материал, но это как-то похоже на костыль, а для модулей там вообще не хранится время создания/обновления. Хотелось бы ещё в момент работы отловить IDшник модуля/материала.
Суть-то в чём. Хочется научить сайт выводить на главной странице данные о любых обновлениях. Для материала это несложно, всё хранится в базе включая дату обновления. С модулями всё обстоит сложнее, в БД о них мало информации. Решил просто создать свою табличку куда бы ссыпалось ID изменённого объекта, время когда это было и его тип (модуль или материал). Попытался написать триггер, но созданный триггер обрушил работу модулей (с этого начинается созданная тема), мне посоветовали создать плагин, вот я и ковыряюсь.
Возможно Вы сможете подсказать ещё более простое и изящное решение, буду благодарен. А пока я ищу переменную хранящую информацию об обрабатываемом объекте.
И да, отдельное Вам спасибо, за серию статей https://cmscafe.ru/docs/joomla/developer/plugin-joomla-2-5-joomla-3. Они меня научили мастерить плагины. ^-^
*

robert

  • Профи
  • 4075
  • 376
Re: Ошибка при создании модуля
« Ответ #7 : 01.02.2016, 14:33:46 »
Все данные о расширениях находятся в таблице #__extensions. Для отслежения их измениений можно написать плагин на события onExtensionAfterInstall, onExtensionAfterUpdate, onExtensionAfterUninstall. Для более детальной информации посмотреть класс JInstaller.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

вывести данные из модуля с формой Subform form field type

Автор Glog

Ответов: 19
Просмотров: 376
Последний ответ 22.06.2017, 13:32:07
от Glog
Ошибка при попытке получить параметры активного пункта меню в контроллере компонента

Автор Inoken

Ответов: 10
Просмотров: 191
Последний ответ 19.06.2017, 14:29:22
от dmitry_stas
Зависимость модуля от компонента и страницы

Автор Тренд

Ответов: 34
Просмотров: 358
Последний ответ 16.06.2017, 19:48:39
от dmitry_stas
Com_contact как получить Email из модуля

Автор tystnaden

Ответов: 4
Просмотров: 346
Последний ответ 16.12.2015, 19:50:42
от tystnaden
Параметры модуля

Автор spirit1086

Ответов: 7
Просмотров: 400
Последний ответ 17.11.2015, 19:55:10
от spirit1086