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

White_Tiger

  • Захожу иногда
  • 88
  • 3 / 0
Господа товарищи. Я видимо что-то не догоняю в работе 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

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

White_Tiger

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

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Ошибка при создании модуля
« Ответ #3 : 29.01.2016, 09:33:00 »
Новая строка в header, скорее всего, при redirect. Сделайте плагин на событие onExtensionAfterSave.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

White_Tiger

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

b2z

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

White_Tiger

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

robert

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

Вывести дату завершения публикации модуля publish_down

Автор theflame

Ответов: 7
Просмотров: 4000
Последний ответ 06.10.2017, 12:46:30
от NewUsers
вывести данные из модуля с формой Subform form field type

Автор Glog

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

Автор Inoken

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

Автор Тренд

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

Автор tystnaden

Ответов: 4
Просмотров: 830
Последний ответ 16.12.2015, 19:50:42
от tystnaden