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; }
public function __construct($id = -1) { parent::__construct($id); $this->value = array('id' => -1); }
/** * PHPDOC * * @param array $json_alts PHPDOC * * @return void * * @since PHPDOC */ public function load_json4js_alternatives($json_alts) { $this->appspot_alternatives = array(); $this->local_alternatives = array(); foreach ($json_alts as $json_alt) { if (isset($json_alt->isNew) && $json_alt->isNew && isset($json_alt->wasDeleted) && $json_alt->wasDeleted) { continue; } $alt = NelioABAlternative::build_alternative_using_json4js($json_alt); if ($alt->get_id() > 0) { $this->add_appspot_alternative($alt); } else { $this->add_local_alternative($alt); } } }
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 NelioABPostAlternativeExperiment($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); if (isset($json_data->postType)) { $exp->set_post_type($json_data->postType); } $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->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); $alt->set_value($json_alt->value); array_push($alternatives, $alt); } } $exp->set_appspot_alternatives($alternatives); return $exp; }
/** * PHPDOC * * @param array $all_widgets PHPDOC * @param NelioABAlternative $alt PHPDOC * * @return array PHPDOC * * @since PHPDOC */ private function fix_widgets_for_widget_exp($all_widgets, $alt) { /** @var NelioABExperiment $exp */ $exp = $this->get_global_alt_exp_running(); if ($exp->get_type() != NelioABExperiment::WIDGET_ALT_EXP) { return $all_widgets; } $alt_id = $alt->get_id(); $exp_id = $exp->get_id(); $use_ori_widgets = $exp->get_originals_id() == $alt_id; $res = array(); if ($use_ori_widgets) { $res = $this->filter_original_widgets($all_widgets); } else { require_once NELIOAB_EXP_CONTROLLERS_DIR . '/widget-experiment-controller.php'; $widgets_in_experiments = NelioABWidgetExpAdminController::get_widgets_in_experiments(); foreach ($all_widgets as $sidebar => $widgets) { $res[$sidebar] = array(); if (!is_array($widgets)) { continue; } foreach ($widgets as $widget) { if ($this->is_widget_enabled($widget, $widgets_in_experiments, $exp_id, $alt_id)) { array_push($res[$sidebar], $widget); } } } } return $res; }