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; }