Всем доброго времени суток.
Суть вопроса: Opencart, плагин SeoGen. Выглядит следующим образом - inputы, checkboxы, textarea + кнопка генерации.
Необходимо в фоновом режиме 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, дайте совет молодому, неопытному, буду рад любой идеи или решению, спасибо !