public function manage_actions() { if (isset($_GET['forcestop']) && isset($_GET['id']) && isset($_GET['exp_type'])) { require_once NELIOAB_ADMIN_DIR . '/experiments-page-controller.php'; NelioABExperimentsPageController::stop_experiment($_GET['id'], $_GET['exp_type']); echo '[SUCCESS]' . admin_url(sprintf('admin.php?page=nelioab-experiments&action=progress&id=%s&exp_type=%s', $_GET['id'], $_GET['exp_type'])); die; } if (isset($_POST['apply_alternative'])) { $this->apply_alternative(); return; } }
public static function generate_html_content() { // Before rendering content we check whether an action was required if (isset($_REQUEST['GET_action']) && isset($_REQUEST['exp_id']) && isset($_REQUEST['exp_type'])) { switch ($_REQUEST['GET_action']) { case 'schedule': NelioABExperimentsPageController::schedule_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type'], $_REQUEST['schedule_date']); break; case 'cancel-schedule': NelioABExperimentsPageController::cancel_scheduling_of_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']); break; case 'start': NelioABExperimentsPageController::start_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']); break; case 'duplicate': $new_name = 'New Experiment'; if (isset($_REQUEST['name']) && !empty($_REQUEST['name'])) { $new_name = $_REQUEST['name']; } NelioABExperimentsPageController::duplicate_experiment($new_name, $_REQUEST['exp_id'], $_REQUEST['exp_type']); break; case 'stop': NelioABExperimentsPageController::stop_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']); break; case 'trash': NelioABExperimentsPageController::trash_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']); break; case 'restore': NelioABExperimentsPageController::untrash_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']); break; case 'delete': NelioABExperimentsPageController::remove_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']); break; default: // Nothing to be done by default // REMEMBER: if something has to be done "by default", YOU must pay // attention to the IF checking of ISSET variables... } } // Obtain DATA from APPSPOT $experiments = array(); try { $experiments = NelioABExperimentsManager::get_experiments(); } catch (Exception $e) { require_once NELIOAB_ADMIN_DIR . '/error-controller.php'; NelioABErrorController::build($e); } // Clean inconsistent data self::clean_inconsistent_data($experiments); // Render content $title = __('Experiments', 'nelioab'); $view = new NelioABExperimentsPage($title); $view->set_experiments($experiments); if (isset($_REQUEST['status'])) { $view->filter_by_status($_REQUEST['status']); } $view->render_content(); // Update cache NelioABExperimentsManager::update_running_experiments_cache(); die; }