Форум русской поддержки Joomla!® CMS
11.12.2016, 14:00:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Ошибка при создании модуля

 (Прочитано 382 раз)
0 Пользователей и 1 Гость смотрят эту тему.
White_Tiger
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 82


« : 28.01.2016, 17:50:13 »

Господа товарищи. Я видимо что-то не догоняю в работе 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
Осваиваюсь на форуме
***

Репутация: +11/-0
Offline Offline

Пол: Женский
Сообщений: 188



« Ответ #1 : 29.01.2016, 03:00:25 »

У меня на хостинге триггеры и хранимые процедуры не поддерживаются. Может у вас тоже с этим связана ошибка.
Записан
White_Tiger
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 82


« Ответ #2 : 29.01.2016, 09:11:08 »

Может быть. А как проверить не подскажете?
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3596


« Ответ #3 : 29.01.2016, 10:33:00 »

Новая строка в header, скорее всего, при redirect. Сделайте плагин на событие onExtensionAfterSave.
Записан
White_Tiger
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 82


« Ответ #4 : 01.02.2016, 14:12:10 »

Уважаемый Роберт!
Плагины писать в общем и целом я научился, вот только... не так давно ковыряюсь в Joomla да и PHP в целом. Подскажите пожалуйста, а где хранятся параметры создаваемых материалов/модулей. Я так понимаю эта какая-нибудь служебная переменная-массив существующая только внутри какого-нибудь класса и только пока идёт работа с материалом/модулем? Мне бы как-то её перехватить и забрать из неё некоторые данные.
Записан
b2z
Support Team
*****

Репутация: +710/-0
Offline Offline

Пол: Мужской
Сообщений: 7538


Разраблю понемногу


« Ответ #5 : 01.02.2016, 14:31:30 »

Уважаемый Роберт!
Плагины писать в общем и целом я научился, вот только... не так давно ковыряюсь в Joomla да и PHP в целом. Подскажите пожалуйста, а где хранятся параметры создаваемых материалов/модулей. Я так понимаю эта какая-нибудь служебная переменная-массив существующая только внутри какого-нибудь класса и только пока идёт работа с материалом/модулем? Мне бы как-то её перехватить и забрать из неё некоторые данные.
Параметры хранятся в базе, обычно в колонке params. Для материалов это таблица com_content, для модулей - com_modules.
Записан
White_Tiger
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 82


« Ответ #6 : 01.02.2016, 15:07:36 »

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

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3596


« Ответ #7 : 01.02.2016, 15:33:46 »

Все данные о расширениях находятся в таблице #__extensions. Для отслежения их измениений можно написать плагин на события onExtensionAfterInstall, onExtensionAfterUpdate, onExtensionAfterUninstall. Для более детальной информации посмотреть класс JInstaller.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet