Artem
Dmitry
https://github.com/joomla/joomla-cms/tree/3.10-dev/cli
Sergey
Сюда пихаю свой файл и пропсиываю в кроне?
Dmitry
Dmitry
Посмотри, как сделаны родные
Dmitry
Там всё достаточно просто
Dmitry
И в кроне что-то типа
/usr/bin/php /var/www/mysitepath/cli/myfile.php
Sergey
ну по аналогии? японял главное начало файла и чтоб был от класса ApplicationCli
Dmitry
Sergey
Спасибо!
Dmitry
PHP умеешь, значит разберёшься 👌
Sergey
а как проверить что скрипт работает? я же его так не запущу? /var/www/mysitepath/cli/myfile.php ? в браузере?
Дмитрий
Да
скопируй там стандартный и поменяй названия и вырежи лишнее
Дмитрий
там есть пару штук в joomla3
Дмитрий
Dmitry
Дмитрий
то и это можно
Дмитрий
php /путь до джумлы/cli/myscript.php --name1 value1 --name2 value2
Дмитрий
они потом в инпуте будут как обчные переменные
Sergey
Sergey
hary
Коллеги, где прочесть подробнее про индексацию умного поиска. Я обнаружил что в 4 ке поменяли поиск, старого теперь нет, и пытаюсь индексировать - оно завешивается
Artem
hary
угу. а теперь возьмите свежий дистриб джумлы 4ки и покажите где он там лежит?
hary
в папке кли я не нашел
hary
а от тройки подставил - оно ругается
Artem
а, ща вспомним
hary
было 200 из 405, поменял пхп на 7ку - уже 250 из 405 в тегах, и всее полоска идет а дальше ничего
Artem
hary
а, теперь в самом файле джумла это вшили?
Den 💙💛
Вы бы ещё только, когда cli запускаете проверили с какой версии php запускаете )))
Den 💙💛
Актуально если на хостинге несколько версий, или на сервере тоже не одна версия стоит
Artem
Artem
php -v
Artem
hary
/opt/php81/bin/php-cgi /var/www/data/www/oldsl.com/cli/joomla.php finder:index
X-Powered-By: PHP/8.1.17
Content-type: text/html; charset=UTF-8
[root@user~]#
hary
чегото не вижу чтоб что нибудь делалося
Den 💙💛
hary
ну хоть какой прізнак что процесс ідет
hary
а то приглашение на новую команду типа толи выполнилось уже, толи даже не начало
hary
там 6000 статей
Den 💙💛
hary
ну должно ж что то высвечівать. хоть ошібкі
hary
hary
хоть так
Artem
ну, судя по всему, мультиязычночть на falang'е лезет боком
hary
лезет. с прошлой осени после переноса уже подучился делать каак надо - средствами джумлы. а там еще оч много статей. хз как их внедрить к стандартовым
Sergey
Vladimir
Sergey
Artem
У тебя есть пример? Скинь глянуть
class PlgConsoleBottec extends CMSPlugin implements SubscriberInterface
{
protected $autoloadLanguage = true;
protected static $commands = [
LinkUserChatsToBot::class
];
public static function getSubscribedEvents(): array
{
return [
ApplicationEvents::BEFORE_EXECUTE => 'registerCLICommands',
];
}
public function registerCLICommands(ApplicationEvent $event)
{
foreach (static::$commands as $commandFQN)
{
try
{
if (!class_exists($commandFQN))
{
continue;
}
$command = new $commandFQN();
Factory::getApplication()->addCommand($command);
}
catch (Throwable $e)
{
continue;
}
}
}
}
Artem
Artem
class LinkUserChatsToBot extends AbstractCommand
{
/**
* The default command name
*
* @var string
* @since 4.0.0
*/
protected static $defaultName = 'bottec:linkuserchatstobot';
protected function doExecute(InputInterface $input, OutputInterface $output): int
{
...
return Command::SUCCESS;
}
}
Artem
Artem
Получается, что всё сводится к тому, что в плагине, через вызов Factory::getApplication()->addCommand($command); ты должен зарегистрировать класс, который является реализацией класса AbstractCommand
В самом же классе команды должен обязательно присутсвовать параметр protected static $defaultName который отвечает за написание команды в консоли
Например php joomla.php bottec:linkuserchatstobot, для примера выше и обязательно метод doExecute, в котором запускается логика
Artem
Если у тебя есть доступ к репозиториям радикалмарта, то там можешь ещё посмотреть, ка кигорь выводит различные сообщения красивые, разукрашивает вывод и рисует прогрессбар
Vladimir
Sergey
Sergey
Sergey
JApplicationCli::getInstance('Updateindex')->execute(); на эту срочку
Sergey
класс назван также
Artem
а все define на месте, котрые до объявления класса идут?
Artem
Там же ядро подключается
Sergey
да брал по анаогии один в один файл
Sergey
может тут use не там обьявил?
Vladimir
Sergey
3
Sergey
щас возьму сдругого файла
RINAT
Creating a healthier community, together - The Joomla Community Magazine
https://magazine.joomla.org/all-issues/june/creating-a-healthier-community-together
Sergey
а как вbah посмотреть где запускнае файлы для каждой версии пхп? или можно на сайте посмотреть в инфе о пхп откуда запускается?
Sergey
Sergey
как скипт из под 74 запустить?
Vladimir
Sergey
теперь вотве выдает X-Powered-By: PHP/7.4.33 Contetn-type: text/html и ничего не происходит