Автор Тема: Как прописать контроллер в кроне?  (Прочитано 425 раз)

11 Сентября 2014, 10:43:44
  • Старожил
  • ****
  • Сообщений: 265
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите пожалуйста.
Создал свой контроллер в /controllers/front/MyPagesController.php
class MyPagesControllerCore extends FrontController
{
.............
}
При запуске по url: http://www.shop.com/index.php?controller=mypages, всё работает.
Теперь хочу прописать его в кроне, чтобы выполнялся каждый час.
* */2 * * * /usr/bin/php /www/shop.com/htdocs/controllers/front/MyPagesController.php
Однако, при запуске отображается такая ошибка:
PHP Fatal error:  Class 'FrontController' not found in /controllers/front/MyPagesController.php
Добавляю
include("/www/shop.com/htdocs/classes/controller/FrontController.php");Появляется ошибка:
PHP Fatal error:  Class 'Controller' not found
Подскажите как быть в подобных случаях?
11 Сентября 2014, 10:46:35
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86048
  • Репутация: +25403/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все обращения к сайту идут через index.php, поэтому и ошибка.
11 Сентября 2014, 10:49:47
Ответ #2
  • Старожил
  • ****
  • Сообщений: 265
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Есть ли решение у данной проблемы?
Может попробывать в cron-e прописать url?
Или как то по другому?
11 Сентября 2014, 10:51:57
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105576
  • Репутация: +39546/-0
    • Просмотр профиля
    • Webstudio UwK
Для крон задач создайте отдельный файл mymodulecron.php
include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../init.php');
/* Check to security tocken */
if (substr(Tools::encrypt('mymodule/cron'), 0, 10) != Tools::getValue('token') || !Module::isInstalled('mymodule'))
die('Bad token');

include(dirname(__FILE__).'/mymodule.php');
$myvar = new MyModuleClass();
....
Cоздание интернет сайтов Webstudio UwK