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

jm

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Циклы и таймеры Joomla
« : 23.07.2020, 07:55:19 »
Стоит задача периодически (раз в секунду, минуту, час и т. д.) производить различные действия в Joomla, например, проверять и изменять значения в базе данных.

Насколько я понял, в Joomla нет нативных циклов и таймеров, которые можно было бы запустить для активации, например, раз в каждые 20 секунд.

Как решается эта проблема? Если можно, киньте ссылки на ПРАКТИЧЕСКИЕ ПРИМЕРЫ решения этой задачи. Насколько я понимаю, речь идёт об организации циклов средствами PHP.
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Циклы и таймеры Joomla
« Ответ #1 : 23.07.2020, 08:28:41 »
cron?
*

jm

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Циклы и таймеры Joomla
« Ответ #2 : 23.07.2020, 08:58:56 »
Давайте сделаем упор на ПРАКТИЧЕСКИХ ПРИМЕРАХ организации 20-и секундного цикла, доступного из кода Joomla на PHP и работающего как на локальном Windows компьютере под Open Server, так и на Linux хостинге провайдера.
*

b2z

  • Глобальный модератор
  • 7264
  • 777 / 0
  • Разраблю понемногу
Re: Циклы и таймеры Joomla
« Ответ #3 : 23.07.2020, 09:44:08 »
Давайте сделаем упор на ПРАКТИЧЕСКИХ ПРИМЕРАХ организации 20-и секундного цикла, доступного из кода Joomla на PHP и работающего как на локальном Windows компьютере под Open Server, так и на Linux хостинге провайдера.
Написать Cli приложение, например https://stackoverflow.com/questions/31397472/joomla-3-x-how-to-schedule-a-cron
*

jm

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Циклы и таймеры Joomla
« Ответ #4 : 23.07.2020, 11:53:24 »
Торопиться не надо, написать мы всегда успеем, хотелось бы узнать о готовых решениях, чтобы не тратить время на изобретение очередного велосипеда.

Неужели никому из 100 000 000 девелоперов Joomla не понадобились системные таймеры?
*

sivers

  • Завсегдатай
  • 1993
  • 272 / 0
Re: Циклы и таймеры Joomla
« Ответ #5 : 23.07.2020, 12:10:21 »
Неужели никому из 100 000 000 девелоперов Joomla не понадобились системные таймеры?
Понадобилось. Но большинство делает через cron и не заморачивается. Есть и что-то из готового. Например в Akeeba Admin Tools было что-то и даже работало. В платной версии там тот же cron, только с веб-интерфейсом акебы, а в бесплатной - псевдо крон (это когда срабатывание идет не по системным событиям, а при обращении пользователей к вашему сайту скрипт сверяется с часами). Потому как бесконечный цикл на PHP запустить не получится - сервис его обрубит по таймауту. При запуске из консоли не обрубает, но это уже не то, чего вам хочется.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

jm

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Циклы и таймеры Joomla
« Ответ #6 : 23.07.2020, 12:50:46 »
Ок, ситуация становится понятнее. У меня 2 вопроса:

1. Если сайт разрабатывается под Open Server на Windows, а работать ему предстоит на хостинге под Linux, то как должно выглядеть решение на cron, чтобы всё работало и под Windows и на Linux?

2. Есть ли в сети статьи, которые можно было бы взять за основу для разработки такого решения?
*

sivers

  • Завсегдатай
  • 1993
  • 272 / 0
Re: Циклы и таймеры Joomla
« Ответ #7 : 23.07.2020, 13:07:05 »
У меня 2 вопроса:
1. Пишете пхп-скрипт, который запускается из командной строки, подключает фреймворк Joomla (по необходимости) и делает что-то нужное вам. Кажется, это и называется "Написать Cli приложение". Протестировать его можно запуском вручную из CMD (виндовс). Если очень надо по расписанию на локальном виндовом сервере сделать, то разобраться как делаются расписания в винде и добавить туда команду запуска этого скрипта. После переезда пропишете ту же команду в cron линукса.
2. Выше @b2z уже дал вам ссылку на инструкцию с примером как создавать такое cli-приложение. Если забудете как это делать, то возьмите index.php в корне сайта, скопируйте под другим именем и закоментируйте в нем последнюю строку $app->execute();. Получится кли-приложение. В нем можно будет использовать все классы Joomla и запускать в консоли командой:
Код
/usr/bin/php /путь_к_скрипту.php
Если этот скрипт у вас будет лежать не в корне сайта а в другой папке (желательно уровнем повыше, чем корень сайта, чтоб не было к нему доступа из браузеров), то придется подкорректировать базовый путь - для этого вместо __DIR__ прописать путь к корню сайта.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

b2z

  • Глобальный модератор
  • 7264
  • 777 / 0
  • Разраблю понемногу
Re: Циклы и таймеры Joomla
« Ответ #8 : 23.07.2020, 13:54:43 »
Смотрим в папку cli установки Joomla. Там лежат такие скрипты, можно посмотреть, как они сделаны. Ну и выше я кидал ссылку. Вот ещё есть пример
https://github.com/JPathRu/cli-scripts
*

jm

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Циклы и таймеры Joomla
« Ответ #9 : 23.07.2020, 16:10:39 »
Спасибо за пояснения, будем разбираться...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как добавить php код в материале Joomla 3.3.0

Автор Davit

Ответов: 9
Просмотров: 2168
Последний ответ 05.08.2022, 15:49:50
от fsv
Joomla не видит последнюю версию

Автор mak200

Ответов: 1
Просмотров: 174
Последний ответ 28.07.2022, 16:44:57
от mak200
Почему в админке Joomla в Менеджере категорий не отображаются счетчики материало

Автор mak200

Ответов: 0
Просмотров: 143
Последний ответ 28.07.2022, 16:42:17
от mak200
Ошибка 404 при открывании медиа-менеджера и модулей в Joomla

Автор Cloddy

Ответов: 1
Просмотров: 194
Последний ответ 20.07.2022, 15:55:19
от gquma
How To: Как перенести и объединить все материалы с одной Joomla на другую

Автор ever2013

Ответов: 1
Просмотров: 222
Последний ответ 30.06.2022, 15:15:37
от effrit