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

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

По какому принципу работает плагин уведомления о новой версии?

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

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« : 01.04.2017, 17:43:40 »

Хочу написать плагин, который будет в указанное время, в настройках плагина, проверять новые записи в БД и делать рассылку на e-maill пользователей.
Средствами крона сервера не проблема, а вот, как средствами самой Joomla-это вопрос.
Ведь вроде поэтому же принципу работает и плагин уведомлений о новой версии Joomla.
Записан
AlekVolsk
Профи
********

Репутация: +340/-4
Offline Offline

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



« Ответ #1 : 01.04.2017, 18:34:54 »

ну так загляни в этот плагин и посмотри сам )
Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #2 : 01.04.2017, 19:06:14 »

смотрел, не до кумекал (
Записан
AlekVolsk
Профи
********

Репутация: +340/-4
Offline Offline

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



« Ответ #3 : 01.04.2017, 19:42:11 »

см контроллер update com_installer
Записан
AlekVolsk
Профи
********

Репутация: +340/-4
Offline Offline

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



« Ответ #4 : 01.04.2017, 19:43:50 »

а еще посмотри плагин группы quickicon extensionupdate, там вызывается все тот же com_installer аяксом, делай по аналогии
Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #5 : 01.04.2017, 19:55:36 »

А не в курсе, ACY Mailling, он по какому принципу делает "свой крон" рассылки?
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Online Online

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



« Ответ #6 : 01.04.2017, 19:56:46 »

Я думаю вопрос состоит в том как запускается плагин без крона. Кстати тоже интересен принцип, но лень смотреть )
Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #7 : 01.04.2017, 20:04:02 »

Я думаю вопрос состоит в том как запускается плагин без крона. Кстати тоже интересен принцип, но лень смотреть )
В точку! Вот этот вопрос! И не лень, я не могу понять логику.
Записан
AlekVolsk
Профи
********

Репутация: +340/-4
Offline Offline

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



« Ответ #8 : 01.04.2017, 21:38:00 »

любой плагин должен быть вызван по наступлению события. событие само по себе тоже просто так не происходит - триггер всегда где-то чем-то вызывается
Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #9 : 01.04.2017, 22:13:10 »

А ни кто не делал плагин (или код) на основе расписания уведомлений без крона? На уровне ядра.
Записан
AlekVolsk
Профи
********

Репутация: +340/-4
Offline Offline

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



« Ответ #10 : 01.04.2017, 22:32:40 »

думаю, там ничего сложного нет: пиши свой компонент, в котором организовывай логику календаря и действий, к нему привязанных, затем пиши системный плаг на onAfterInitialize() и проверяй наступление часа X: совпало - вызываем указанное действие и помечаем, что оно уже выполнено (или не выполнено, по таким-то указанным причинам)
Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #11 : 01.04.2017, 22:44:36 »

Спасибо Алек, буду тупить в логику...
Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

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


« Ответ #12 : 02.04.2017, 01:28:03 »

AcyMailing, полагаю, просто использует cron, либо на своем сервере, либо на сервере клиента.
Вариант проверки метки времени и статуса выпоняемой задачи годится только при условии запуска системы до заданного времени Х. Иначе никак нельзя совершать нужное действие в нужное время.
Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #13 : 02.04.2017, 08:41:31 »

 2 Роберт, а есть зависимость от посещения сайта юзерами на фронте?
Т.е. если сайт не посещается, логика обновлений (например версии J) работает независимо?
Записан
SeBun
Профи
********

Репутация: +189/-5
Offline Offline

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


@SeBun48


« Ответ #14 : 02.04.2017, 12:04:11 »

Иначе никак нельзя совершать нужное действие в нужное время.
Можно с помощью демона, но он тоже зависит от состояния сервера. Например, при запросе страницы запускается проверка, есть демон или нет. Если есть, действие не выполняется, если демона нет, он запускается (например, если сервер был перезагружен). А демон уже сам контролирует по метке времени. Как вариант, без крона... Но в этом случае если сайт не посещается, а сервер был перезагружен, то и демон не будет запущен. Этот вопрос можно кроном решить (но тут и демон не нужен, запускаем нужный скрипт кроном, и все).
Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Offline Offline

Сообщений: 9968



« Ответ #15 : 02.04.2017, 12:15:59 »

Т.е. если сайт не посещается, логика обновлений (например версии J) работает независимо?
ага Azn Joomla же пишут волшебники Azn ее даже устанавливать не нужно, она и так сообщит Azn

Но в этом случае если сайт не посещается, а сервер был перезагружен, то и демон не будет запущен
можно и демона запускать при загрузке. но зачем? Azn
Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

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


« Ответ #16 : 02.04.2017, 12:17:07 »

2 Роберт, а есть зависимость от посещения сайта юзерами на фронте?
Т.е. если сайт не посещается, логика обновлений (например версии J) работает независимо?
Образно, плагин - это введенный курок. Если его не спускать, то оружие не выстрелит: оно просто будет лежать в ожидании с зарядом в стволе.
Можно с помощью демона
Так cron - тот же daemon.
Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Offline Offline

Сообщений: 9968



« Ответ #17 : 02.04.2017, 12:19:31 »

а можно еще сторонний сервис поднять, который пинговать сайт будет Azn вариантов уйма, выбирай любой Azn
Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

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


« Ответ #18 : 02.04.2017, 12:23:39 »

а можно еще сторонний сервис поднять, который пинговать сайт будет Azn вариантов уйма, выбирай любой Azn
Да, IMHO, AcyMailing, про которую vipiusss спрашивал, так и делает.
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Online Online

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



« Ответ #19 : 02.04.2017, 13:30:37 »

сторонний сервис поднять, который пинговать сайт будет Azn
Перефразирую:
сторонний сервис поднять, который по крону пинговать сайт будет.

Короче лень поборол залез в плагин, все весьма тривиально.
Висит плагин на AfterRender() ну то бишь запускается при каждом посещении сайта (грубо говоря);
Что делает:
1. Получает параметры com_installer через (JComponentHelper)
2. Затем проверяет прошло достаточно времени с последнего скана.
3. Если прошло до обновляет запись в базе (Устанавливает время).
Ну а затем конектиться к модели проверяет версию и т.д

Вывод если у сайта мленькая или не частая посещаемость в топку его.


Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #20 : 02.04.2017, 15:14:11 »

2 Septdir спасибо!
Вывод если у сайта мленькая или не частая посещаемость в топку его.
А если сайт с "0", в топку тоже?

Цель: активность без крона(демонов или иных неадекватов;) и посещаемости.
« Последнее редактирование: 02.04.2017, 15:19:56 от vipiusss » Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Online Online

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



« Ответ #21 : 02.04.2017, 15:18:34 »

2 Septdir спасибо!
А если сайт с "0", в топку тоже?
Цель: активность без крона(демонов или иных неадекватовWink и посещаемости.
Ну по сути получается что да.

О сюда опять таки вопрос от куда лучше узнавать об обновлениях. Ну так чтобы что нибудь пиликало . Типа твитера или подписки по имейл.
Кстати можно сайт сделать с такой подпиской. Типо по крону запускать проверку версии.  И если вышла новая делать рассылку и обновляться.
« Последнее редактирование: 02.04.2017, 15:22:21 от Septdir » Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #22 : 02.04.2017, 15:24:43 »

Пиликалка-это ответная реакция.

Есть цель: выше.
Для кода есть условие: (должно быть) каждый понедельник(например) в 8 утра торбить юзеров из БД!
Вот это я хочу: независимо от крона, демонов, иных иродов, посещаемости, ещё каких-то глупостей, написать в плагине рассылку файла, кода, всё равно чего!

Вот цель, и не могу понять как!
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Online Online

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



« Ответ #23 : 02.04.2017, 15:28:38 »

Пиликалка-это ответная реакция.

Есть цель: выше.
Для кода есть условие: (должно быть) каждый понедельник(например) в 8 утра торбить юзеров из БД!
Вот это я хочу: независимо от крона, демонов, иных иродов, посещаемости, ещё каких-то глупостей, написать в плагине рассылку файла, кода, всё равно чего!

Вот цель, и не могу понять как!

Думаю это в принципе не возможно.
Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

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


« Ответ #24 : 02.04.2017, 15:30:15 »

Можно, извращаясь: 1 раз запустить скрипт, который через каждый 30 сек вызывает сам себя.
Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #25 : 02.04.2017, 15:32:00 »

Нет невозможного. Надо понять как обмануть это "невозможное".
Если вирт крон написать для плагина? Опять же палки в колёсах.
... Короче, думаю пока и пробую. Если есть подсказки, варианты, буду только рад этому.
Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #26 : 02.04.2017, 15:33:21 »

Можно, извращаясь: 1 раз запустить скрипт, который через каждый 30 сек вызывает сам себя.
Нагрузка на БД идёт колоссальная. Я пробовал.
Записан
voland
Профи
********

Репутация: +520/-101
Online Online

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


СКАЙП утерян! Пишите в телеграм @volandku


« Ответ #27 : 02.04.2017, 15:35:02 »

думаю, там ничего сложного нет: пиши свой компонент, в котором организовывай логику календаря и действий, к нему привязанных, затем пиши системный плаг на onAfterInitialize() и проверяй наступление часа X: совпало - вызываем указанное действие и помечаем, что оно уже выполнено (или не выполнено, по таким-то указанным причинам)
Вот же метод.
Ну не будет работать на локальных копиях и ладно
Записан
vipiusss
Профи
********

Репутация: +324/-10
Offline Offline

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


Skype: renor_


« Ответ #28 : 02.04.2017, 15:38:30 »

Вот же метод.
Ну не будет работать на локальных копиях и ладно

Т.е. опять привязка к серверу. А мне надо: привязка к дате, не к серваку, не провайдеру... к дате!
Я ставлю дату, время=плагин включается и рассылает!
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Online Online

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



« Ответ #29 : 02.04.2017, 15:38:43 »

Вот же метод.
Ну не будет работать на локальных копиях и ладно
Чтобы этот метод срабатывал надо чтобы кто-то зашел на сайт.
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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