function child_render($param) { global $g_page, $g_cfg; $g_page["frame"] = "site_admin/frame.html"; if (!http_user_auth("admin", "admin")) { return redirect("/"); } if (isset($param[1]) && $param[1] == "switch_status") { list($cname, $p) = [$_GET["name"], $_GET["p"]]; if ($p == "close") { dbupdate("sys_variations", [], ["test" => $cname], ["completed" => "now()"]); } return redirect("/stats/multivariants"); } $q = gettable("select * from sys_variations where completed is null"); $t = []; foreach ($q as $row) { if (!isset($t[$row["test"]])) { $t[$row["test"]] = []; } if (!isset($t[$row["test"]][$row["variation"]])) { $t[$row["test"]][$row["variation"]] = ["goals" => []]; } $t[$row["test"]][$row["variation"]]["content"] = substr($row["content"], 0, 256); $cm = new Variant($row["test"]); $t[$row["test"]][$row["variation"]]["enrolled"] = $cm->get() == $row["variation"] ? 1 : 0; $t[$row["test"]][$row["variation"]]["variation"] = $row["variation"]; $cv = []; $cgoal = $row; $cgoal["pc"] = $row["sample"] == 0 ? "N/A" : round($row["conversion"] / $row["sample"] * 100, 2); $t[$row["test"]][$row["variation"]]["goals"][] = $cgoal; $t[$row["test"]][$row["variation"]] = update($t[$row["test"]][$row["variation"]], $cv); } $res = []; foreach ($t as $name => $row) { $cm = []; foreach ($t[$name] as $varname => $cvar) { uasort($cvar["goals"], function ($a, $b) { global $g_mv_goals; if (($i = array_search($a["goal"], $g_mv_goals)) === false) { return -1; } if (($j = array_search($b["goal"], $g_mv_goals)) === false) { return -1; } if ($i == $j) { return 0; } return $i > $j ? 1 : -1; }); $cm[] = $cvar; } $res[] = ["test" => $name, "var" => $cm]; } // print_r($res); exit; $scr = new Scriptor("site_admin/multivariants.html", ["tests" => $res]); return $scr->result(); }
public static function load($thing) { $product = new Product(); $product->thing = $thing; //members $fields_raw = $product->thing->getData(); $tmpFields = array(); foreach ($fields_raw as $field) { $tmpFields[$field->getKey()] = $field; } $product->fields = $tmpFields; //variants $thingVariants = $product->thing->getChildThings("variant"); $variants = array(); foreach ($thingVariants as $thingVariant) { $variants[] = Variant::load($thingVariant); } $product->variants = $variants; //options $thingOptions = $product->thing->getChildThings("option"); $options = array(); foreach ($thingOptions as $thingOptions) { $options[] = Option::load($thingOptions); } $product->options = $options; return $product; }
function child_render($param) { // Main API trunk $user_api = ["variant_set" => function ($name, $var) { // enrolls user in given variant if (!http_user_auth("admin", "admin")) { return redirect("/"); } $cv = new Variant($name); if (!ctype_alnum($var)) { hack_sign("Setting variant to non-numeric value " . $var); } $cv->set($var); return redirect($cv->get_url()); }]; if (isset($_GET["func"])) { return api_demux_call($user_api); } return ["res" => "0", "err" => "No function to call."]; }
/** * Construct an Experiment from an Array of data */ public static function fromArray($options) { $name = "\\Myna\\Data\\Experiment::fromArray"; $uuid = \Myna\Arr::get_or_error($options, 'uuid', $name); $id = \Myna\Arr::get_or_error($options, 'id', $name); $settings = Settings::fromArray(\Myna\Arr::get($options, 'settings', array())); $variants = array(); $vars = \Myna\Arr::get($options, 'variants', array()); foreach ($vars as $data) { $variants[$data['id']] = Variant::fromArray($data); } return new Experiment($uuid, $id, $settings, $variants); }
public function actionOrder() { $result = new stdClass(); $post = $this->getRequestBody(); if ($post === null) { $result->status = "request is empty"; } else { //$order = json_decode($post); $pollId = null; foreach ($post as $item) { $question = Question::findById($item->id); $question->weight = $item->weight; $pollId = $question->poll->id; } Variant::flush(); $poll = Poll::findById($pollId); $result->status = 'ok'; $result->data = $poll->formStdObject()->questions; } echo json_encode($result); exit; }
public function deleteSlide() { $slideid = Input::get('slide'); $delete = $this->variant->deleteslide($slideid); return Response::json('error', 200); }
public function getfoldername($vid) { $variant = Variant::find($vid); $name = str_replace(' ', '_', $variant->name); $name = strtolower($name); $landingname = Variant::getlandingname($variant->id); return $landingname . '/' . $name; }
public static function getVariants($product_id, $variant_id = null) { $obj = new Thing(); $obj->db->select('thing.id'); $obj->db->from('thing'); $obj->db->where('name = "product"'); $obj->db->where('altid', $product_id); $query = $obj->db->get(); $prodId = -1; if (count($query->result()) == 1) { foreach ($query->result() as $row) { $prodId = $row->id; } } else { throw new InvalidParameterException($product_id . " is not a valid product id"); } //get all variants now that we have right prod id $obj->db->select('thing.id'); $obj->db->from('thing'); $obj->db->where('name = "variant"'); $obj->db->where('thing_id', $prodId); if (!is_null($variant_id)) { $obj->db->where('altid', $variant_id); } $query = $obj->db->get(); //get things for products $thingVariants = array(); foreach ($query->result() as $row) { array_push($thingVariants, Thing::load($row->id)); } //get products $variants = array(); foreach ($thingVariants as $thingVariants) { $variants[] = Variant::load($thingVariants); } return $variants; //encode json //$json = array(); //foreach($variants as $variant) //$json[] = $variant->toJson(); //$json = json_encode($json, JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_QUOT); //echo "<pre>"; //print_r($json); //echo "</pre>"; //return $products; }
function ctrl_variant($scr, $param, $script, $vals) { global $g_scr_tests; if (!isset($g_scr_tests[$param["name"]])) { $g_scr_tests[$param["name"]] = []; } if (!in_array($param["value"], $g_scr_tests[$param["name"]])) { $g_scr_tests[$param["name"]][] = $param["value"]; } $cv = new Variant("scr:" . $param["name"], $g_scr_tests[$param["name"]]); if ($cv->get_content() == $param["value"]) { return $scr->ev($script, $vals); } return ""; }
public function getView($slug) { if (Agent::isMobile() || Agent::isTablet()) { switch ($slug) { case "film": return Redirect::to('film-mobile'); break; case "animation": return Redirect::to('animation-mobile'); break; case "game-production": return Redirect::to('game-mobile'); break; case "recording-arts": return Redirect::to('recording-arts-mobile'); break; case "mp": return Redirect::to('mp-mobile'); break; case "entertainment-business": return Redirect::to('business-mobile'); break; case "entertainment-business-online": return Redirect::to('entertainment-business-online-mobile'); break; case "digital-filmmaking": return Redirect::to('digital-filmmaking-mobile'); break; case "military": return Redirect::to('omni-mobile'); break; case "omni": return Redirect::to('omni-mobile'); break; } } elseif (!Agent::isMobile() && !Agent::isTablet()) { switch ($slug) { case "film-mobile": return Redirect::to('film'); break; case "animation-mobile": return Redirect::to('animation'); break; case "game-mobile": return Redirect::to('game-production'); break; case "recording-arts-mobile": return Redirect::to('recording-arts'); break; case "mp-mobile": return Redirect::to('mp'); break; case "business-mobile": return Redirect::to('entertainment-business'); break; case "digital-filmmaking-mobile": return Redirect::to('digital-filmmaking'); break; case "entertainment-business-online-mobile": return Redirect::to('entertainment-business-online'); break; case "omni-mobile": return Redirect::to('omni'); break; } } $landingpage = $this->landingpage->where('slug', '=', $slug)->first(); // Check if the blog post exists if (is_null($landingpage)) { // If we ended up in here, it means that // a page or a blog post didn't exist. // So, this means that it is time for // 404 error page. //return App::abort(404); return 'DAMN!'; } // Get variants $variants = $landingpage->variants($landingpage->id); $lpcount = $this->landingpage->sumallhits($landingpage->id); if ($lpcount == 0) { $lpcount = 100; } $v = array(); foreach ($variants as $var) { $hit = $this->landingpage->sumhits($var->id); $varperc = $hit / $lpcount; $percent = $var->percent / 100; if ($varperc < $percent) { $vid = $var->id; break; } $v[] = $var->id; } if (empty($vid)) { $key = array_rand($v); $vid = $v[$key]; } //echo $vid; $varclass = new Variant(); $variant = $varclass->findOrFail($vid); $tempid = $variant->t_id; $variables = $varclass->getVariantVariables($vid); $key = array(); $value = array(); foreach ($variables as $var) { $key[] = str_replace(' ', '', $var->name); $value[] = $var->vartext; } $variab = array_combine($key, $value); $bladete = $varclass->getblade($tempid); $file = $bladete->blade; $filer = str_replace('.blade.php', '', $file); $view = 'uploads.' . $filer; $images = $varclass->getsliderimages($vid); $count = count($images); $sliderimages = ''; $sliderbuttons = ''; $slideritems = ''; $i = 1; foreach ($images as $img) { $sliderimages .= ".iosSlider .slider #item" . $i . " \n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbackground: url('" . asset($img->path) . "') no-repeat 50% 0 ;\n\t\t\t\t\t\t\t\t\tbackground-size:100%;\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}"; $sliderbuttons .= '<div class="button"></div>'; $slideritems .= "<div class = 'item' id = 'item" . $i . "'>\n\n\t\t\t\t\t\t\t\t</div>"; $i++; } $data = array('id' => $variant->id, 'lp_id' => $variant->lp_id, 'slug' => $slug); // return View::make($view)->with('variables', $variab); return View::make($view)->with('variables', $variab)->with('variant', $variant)->with('sliderimages', $sliderimages)->with('slideritems', $slideritems)->with('sliderbuttons', $sliderbuttons)->with('slug', $slug)->nest('form', 'forms.form', $data); // Get current user and check permission // Show the page //return View::make('site/blog/view_post', compact('post', 'comments', 'canComment')); }