public function getTemplates($vid) { $variants = $this->variant->get(); $tempimg = new Template(); $templates = $tempimg->getImages(); $bladetemp = DB::table('bladetemps')->get(); return View::make('variants.assign', compact('vid', 'variants', 'templates', 'bladetemp')); }
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(); }
return variant_recalculate(); }; // --------------------------------------------------------- // Scriptor extensions // --------------------------------------------------------- $g_scr_tests = []; 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 ""; } // --------------------------------------------------------- // Unit tests // --------------------------------------------------------- if (isset($_SERVER["argv"]) && isset($_SERVER["SCRIPT_FILENAME"]) && basename($_SERVER["SCRIPT_FILENAME"]) == basename(__FILE__)) { echo "Variants: Running self-tests...\n"; assert(initsql()); variants_start(); $v = new Variant("test", ["v1" => "testv1", "v2" => "testv2", "v3" => "testv3"]); echo $v->get(); }