@andrew_goldsmith

Запуск плагина по графику (1 раз в день)?

Всем доброго времени суток.
Суть вопроса: Opencart, плагин SeoGen. Выглядит следующим образом - inputы, checkboxы, textarea + кнопка генерации.

eAORjXKcjwO82o.png

Необходимо в фоновом режиме 1 раз в день, в определенное время генерировать это все дело, кнопка генерации (выделил красным) вызывает функцию с аргументом + собирает данные из полей.

Код кнопки:
<a onclick="generate('products');" class="button">Генерировать</a>


Далее все творится уже в mvc
Функция из контроллера:
public function generate() {
		if($this->request->server['REQUEST_METHOD'] == 'POST' && isset($this->request->post['name']) && $this->validate()) {
			$time_start = microtime(true);
			$base_memory_usage = memory_get_usage();

			$this->load->language('module/seogen');
			$this->load->model('module/seogen');
			$name = $this->request->post['name'];
		    if($name == 'categories') {
				$this->model_module_seogen->generateCategories($this->request->post['seogen']);
			} elseif($name == 'products') {
				$this->model_module_seogen->generateProducts($this->request->post['seogen']);
			} elseif($name == 'manufacturers') {
				$this->model_module_seogen->generateManufacturers($this->request->post['seogen']);
			} elseif($name == 'informations') {
				$this->model_module_seogen->generateInformations($this->request->post['seogen']);
			}

			$this->response->setOutput($this->language->get('text_success_generation') . "</br><b>Total Execution Time:</b> ".(microtime(true) - $time_start).
			"<br/>" . "<b>Memory usage:</b> ". number_format((memory_get_usage() - $base_memory_usage) /1024/1024, 2, '.', '') . "Mb");
			$this->saveSettings($this->request->post['seogen']);
			$this->cache->delete("seo_pro");
		}
	}

Подскажите пожалуйста, как грамотней всего можно реализовать это дело ?
Ведь не достаточно простого выполнения функции с аргументом "products", еще и данные из полей нужны.
Много разных идей, одна из последних супер костыльная и до конца не понятная, но суть такова: при заходе на страницу, в верху кнопка "Остановить авто-генерацию + таймер-отчет 30 сек и пошло убывание", если человек не нажимает в т.ч. 30 сек, то через js авто-нажатие происходит кнопки "generate", ну а если машина запускает, то 30 сек и происходит генерация, но я не представляю как это реализовать на php или через с помощью cron, дайте совет молодому, неопытному, буду рад любой идеи или решению, спасибо !
  • Вопрос задан
  • 658 просмотров
Решения вопроса 1
muhammad_97
@muhammad_97
PHP-разработчик
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы