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

jm

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

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

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

AlexB

  • Завсегдатай
  • 1325
  • 34 / 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

  • Глобальный модератор
  • 7076
  • 767 / 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

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

jm

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

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

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

sivers

  • Завсегдатай
  • 1369
  • 180 / 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__ прописать путь к корню сайта.
На связи в телеге @sivers
*

b2z

  • Глобальный модератор
  • 7076
  • 767 / 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 »
Спасибо за пояснения, будем разбираться...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 3 не пускает в админку

Автор efirof

Ответов: 29
Просмотров: 2402
Последний ответ 14.08.2020, 11:54:10
от hitower
[Решено] Скрыть верхнее меню в админке Joomla

Автор lgmax

Ответов: 2
Просмотров: 105
Последний ответ 09.08.2020, 12:41:50
от arma
Ссылка на метки Joomla имеют вид component/tags несмотря на пункт меню

Автор spirit1086

Ответов: 37
Просмотров: 5040
Последний ответ 16.07.2020, 10:10:37
от vitzer
Хранить файлы локально вне корневого каталога Joomla (на другом SSD-диске)?

Автор slepoy

Ответов: 6
Просмотров: 529
Последний ответ 13.07.2020, 18:58:36
от voland
Как модифицировать страницу редактирования материалов Joomla 3?

Автор Damarkuzz

Ответов: 3
Просмотров: 200
Последний ответ 10.07.2020, 07:31:15
от rsn