Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Триггернуть контроллер в крон задаче


Recommended Posts

Добрый день всем, пишу крон задачу в корне, необходимо вызвать функцию контроллера event для отправки письма...

Вроде все должно было пойти по плану, но нет в контроллер ивента ниче не приходит (

 

<?php
// Config
require '../config.php';

// Startup
require DIR_SYSTEM . 'startup.php';

// Registry
$registry = new Registry();

// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);

$availability_notification_query = $db->query("SELECT product_id, availability_notification_id FROM `" . DB_PREFIX . "availability_notification` WHERE status = 0 GROUP BY availability_notification_id");

if ($availability_notification_query->num_rows) {
	foreach ($availability_notification_query->rows as $availability_product) {
		$product_query = $db->query("SELECT DISTINCT product_id, quantity FROM `oc_product` WHERE product_id = '" . (int)$availability_product['product_id'] . "'");

		foreach ($product_query->rows as $product) {
			if ($product['quantity'] >= 1) {

				$action_availability_notification = new Action('mail/availability_notification');
				$action_availability_notification->execute($product['product_id']);
			
			}
		}		
	}
}

 

Надіслати
Поділитися на інших сайтах

Я подключал контроллер в файле framework.php - этот контроллер отслеживает хакерские атаки

// Front Controller
$loader->controller('tool/antihacker');
$controller = new Front($registry);

Наверное и ваш контроллер так нужно подключать. В нем не нужно активировать БД - она уже активирована в файле framework.php

  • +1 1
Надіслати
Поділитися на інших сайтах

не совсем так, ведь инициализация событий в другом месте

start('my_config');

А там по аналогии..


 

  • +1 1
Надіслати
Поділитися на інших сайтах

event вам нужен, если нужно что-то запустить при происхождении какого-то события.

В вашем же случае нужно отправить сообщение при работе вашего скрипта по крону - событие вам не нужно.

Возможно у вас ошибка вызова контроллера в 2.3 версии так:

				$action_availability_notification = new Action('mail/availability_notification');
				$action_availability_notification->execute($registry, $product['product_id']);

Ещё для конфига возможно нужно подгрузить из БД данные настроек, если применяются в контроллере отправки сообщения.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.