public static function load($id) { $json_data = NelioABBackend::remote_get(NELIOAB_BACKEND_URL . '/exp/post/' . $id); $json_data = json_decode($json_data['body']); $exp = new NelioABHeadlineAlternativeExperiment($json_data->key->id); $exp->set_name($json_data->name); if (isset($json_data->description)) { $exp->set_description($json_data->description); } $exp->set_type_using_text($json_data->kind); $exp->set_original($json_data->originalPost); $exp->set_status($json_data->status); $exp->set_finalization_mode($json_data->finalizationMode); if (isset($json_data->finalizationModeValue)) { $exp->set_finalization_value($json_data->finalizationModeValue); } $exp->track_heatmaps(false); if (isset($json_data->showHeatmap) && $json_data->showHeatmap) { $exp->track_heatmaps($json_data->showHeatmap); } if (isset($json_data->goals)) { NelioABExperiment::load_goals_from_json($exp, $json_data->goals); } $alternatives = array(); if (isset($json_data->alternatives)) { foreach ($json_data->alternatives as $json_alt) { $alt = new NelioABHeadlineAlternative($json_alt->key->id); $alt->set_name($json_alt->name); $alt->set_value(json_decode($json_alt->value, true)); array_push($alternatives, $alt); } } $exp->set_appspot_alternatives($alternatives); return $exp; }
public static function load($id) { $json_data = NelioABBackend::remote_get(NELIOAB_BACKEND_URL . '/exp/global/' . $id); $json_data = json_decode($json_data['body']); $exp = new NelioABWidgetAlternativeExperiment($json_data->key->id); $exp->set_type_using_text($json_data->kind); $exp->set_name($json_data->name); if (isset($json_data->description)) { $exp->set_description($json_data->description); } $exp->set_status($json_data->status); $exp->set_finalization_mode($json_data->finalizationMode); if (isset($json_data->finalizationModeValue)) { $exp->set_finalization_value($json_data->finalizationModeValue); } if (isset($json_data->start)) { $exp->set_start_date($json_data->start); } if (isset($json_data->finalization)) { $exp->set_end_date($json_data->finalization); } if (isset($json_data->goals)) { NelioABExperiment::load_goals_from_json($exp, $json_data->goals); } $alternatives = array(); if (isset($json_data->alternatives)) { foreach ($json_data->alternatives as $json_alt) { $alt = new NelioABAlternative($json_alt->key->id); $alt->set_name($json_alt->name); if (isset($json_alt->content)) { $alt->set_value($json_alt->content->value); } else { $alt->set_value(''); } array_push($alternatives, $alt); } } $exp->set_appspot_alternatives($alternatives); return $exp; }
/** * It creates a new instance of Experiment Summary. * * @param int $id the ID of the experiment summary. * * @return NelioABExperimentSummary a new instance of this class. * * @since 4.1.0 */ public function __construct($id) { parent::__construct(); $this->id = $id; }
public function clear() { parent::clear(); $this->appspot_alternatives = array(); $this->local_alternatives = array(); $this->track_heatmaps = false; $this->winning_alternative = false; }
/** * If caching all experiments, this function updates the cache with the given experiment. * * @param NelioABExperiment $experiment the experiment to be added to or updated from the cache. * * @since 3.4.0 */ public static function update_experiment($experiment) { if (self::CACHE_ALL_EXPERIMENTS) { self::get_experiments(); $is_in_array = false; for ($i = 0; $i < count(self::$experiments) && !$is_in_array; ++$i) { /** @var NelioABExperiment $aux */ $aux = self::$experiments[$i]; if ($aux->get_id() == $experiment->get_id() && $aux->get_type() == $experiment->get_type()) { self::$experiments[$i] = $experiment; $is_in_array = true; } } if (!$is_in_array) { array_push(self::$experiments, $experiment); } update_option('nelioab_experiments', self::$experiments); } }
public static function load($id) { $json_data = NelioABBackend::remote_get(NELIOAB_BACKEND_URL . '/exp/hm/' . $id); $json_data = json_decode($json_data['body']); $exp = new NelioABHeatmapExperiment($json_data->key->id); $exp->set_type_using_text($json_data->kind); $exp->set_name($json_data->name); $exp->set_post_id($json_data->post); if (isset($json_data->description)) { $exp->set_description($json_data->description); } $exp->set_status($json_data->status); $exp->set_finalization_mode($json_data->finalizationMode); if (isset($json_data->finalizationModeValue)) { $exp->set_finalization_value($json_data->finalizationModeValue); } if (isset($json_data->goals)) { NelioABExperiment::load_goals_from_json($exp, $json_data->goals); } return $exp; }
public function column_status($exp) { $str = NelioABExperiment::get_label_for_status($exp->get_status()); switch ($exp->get_status()) { case NelioABExperiment::STATUS_DRAFT: return $this->make_label($str, '#999999', '#eeeeee'); case NelioABExperiment::STATUS_PAUSED: return $this->make_label($str, '#999999', '#eeeeee'); case NelioABExperiment::STATUS_READY: return $this->make_label($str, '#e96500', '#fff6ad'); case NelioABExperiment::STATUS_SCHEDULED: return $this->make_label($str, '#fff6ad', '#e96500'); case NelioABExperiment::STATUS_RUNNING: return $this->make_label($str, '#266529', '#d1ffd3'); case NelioABExperiment::STATUS_FINISHED: return $this->make_label($str, '#103269', '#BED6FC'); case NelioABExperiment::STATUS_TRASH: return $this->make_label($str, '#802a28', '#ffe0df'); default: return $this->make_label($str, '#999999', '#eeeeee'); } }