function create_event_list(&$lAdmin, $show_money = false, $get_total_events = false) { $show_events = ""; // gather events data global $f_EVENTS_VIEW; $show_events = strlen($f_EVENTS_VIEW) <= 0 ? COption::GetOptionString("statistic", "ADV_EVENTS_DEFAULT") : $f_EVENTS_VIEW; $group_events = $show_events == "event1" || $show_events == "event2" ? $show_events : ""; global $arFilter; $arF = array(); $arF["DATE1_PERIOD"] = $arFilter["DATE1_PERIOD"]; $arF["DATE2_PERIOD"] = $arFilter["DATE2_PERIOD"]; if ($show_money) { $arF["MONEY1"] = 0.0001; } if ($show_events == "event1") { $arF["GROUP"] = "event1"; } elseif ($show_events == "event2") { $arF["GROUP"] = "event2"; } global $GROUP, $find_type, $find, $find_id, $f_REFERER1, $f_REFERER2; $adv_id = intval($find_type == "id" && $find != "" ? $find : $find_id); if ($GROUP == "N") { $events = CAdv::GetEventList($adv_id, $by, $order, $arF, $v1); } elseif ($GROUP == "Y") { $value = $find_type == "referer1" ? $f_REFERER1 : $f_REFERER2; $events = CAdv::GetEventListByReferer($value, $arFilter); } $sum_today = array("C" => 0, "M" => 0.0); $sum_back_today = array("C" => 0, "M" => 0.0); $sum_yesterday = array("C" => 0, "M" => 0.0); $sum_back_yesterday = array("C" => 0, "M" => 0.0); $sum_bef_yesterday = array("C" => 0, "M" => 0.0); $sum_back_bef_yesterday = array("C" => 0, "M" => 0.0); $sum_period = array("C" => 0, "M" => 0.0); $sum_back_period = array("C" => 0, "M" => 0.0); $sum_total = array("C" => 0, "M" => 0.0); $sum_back_total = array("C" => 0, "M" => 0.0); $arEvents = array(); while ($er = $events->Fetch()) { $arEvents[] = $er; $sum_today["C"] += intval($er["COUNTER_TODAY"]); $sum_back_today["C"] += intval($er["COUNTER_BACK_TODAY"]); $sum_yesterday["C"] += intval($er["COUNTER_YESTERDAY"]); $sum_back_yesterday["C"] += intval($er["COUNTER_BACK_YESTERDAY"]); $sum_bef_yesterday["C"] += intval($er["COUNTER_BEF_YESTERDAY"]); $sum_back_bef_yesterday["C"] += intval($er["COUNTER_BACK_BEF_YESTERDAY"]); $sum_period["C"] += intval($er["COUNTER_PERIOD"]); $sum_back_period["C"] += intval($er["COUNTER_BACK_PERIOD"]); $sum_total["C"] += intval($er["COUNTER"]); $sum_back_total["C"] += intval($er["COUNTER_BACK"]); if ($show_money == "Y") { $sum_today["M"] += doubleval($er["MONEY_TODAY"]); $sum_back_today["M"] += doubleval($er["MONEY_BACK_TODAY"]); $sum_yesterday["M"] += doubleval($er["MONEY_YESTERDAY"]); $sum_back_yesterday["M"] += doubleval($er["MONEY_BACK_YESTERDAY"]); $sum_bef_yesterday["M"] += doubleval($er["MONEY_BEF_YESTERDAY"]); $sum_back_bef_yesterday["M"] += doubleval($er["MONEY_BACK_BEF_YESTERDAY"]); $sum_period["M"] += doubleval($er["MONEY_PERIOD"]); $sum_back_period["M"] += doubleval($er["MONEY_BACK_PERIOD"]); $sum_total["M"] += doubleval($er["MONEY"]); $sum_back_total["M"] += doubleval($er["MONEY_BACK"]); } } $total_events_sum = array("C" => 0, "M" => 0.0); $total_events_sum["C"] = $sum_total["C"] + $sum_back_total["C"]; $total_events_sum["M"] = $sum_total["M"] + $sum_back_total["M"]; if ($get_total_events) { return $total_events_sum["C"]; } global $f_GUESTS_TODAY, $f_GUESTS_BACK_TODAY, $f_GUESTS_YESTERDAY, $f_GUESTS_BACK_YESTERDAY; global $f_GUESTS_BEF_YESTERDAY, $f_GUESTS_BACK_BEF_YESTERDAY, $f_GUESTS_PERIOD, $f_GUESTS_BACK_PERIOD; global $f_GUESTS, $f_GUESTS_BACK; $arSum = array("TODAY" => event_format_link($sum_today, $f_GUESTS_TODAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($now_date) . "&find_date2=" . urlencode($now_date) . "&set_filter=Y", $show_money), "TODAY_BACK" => event_format_link($sum_back_today, $f_GUESTS_BACK_TODAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($now_date) . "&find_date2=" . urlencode($now_date) . "&set_filter=Y", $show_money), "YESTERDAY" => event_format_link($sum_yesterday, $f_GUESTS_YESTERDAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($yesterday_date) . "&find_date2=" . urlencode($yesterday_date) . "&set_filter=Y", $show_money), "YESTERDAY_BACK" => event_format_link($sum_back_yesterday, $f_GUESTS_BACK_YESTERDAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($yesterday_date) . "&find_date2=" . urlencode($yesterday_date) . "&set_filter=Y", $show_money), "BEF_YESTERDAY" => event_format_link($sum_bef_yesterday, $f_GUESTS_BEF_YESTERDAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($bef_yesterday_date) . "&find_date2=" . urlencode($bef_yesterday_date) . "&set_filter=Y", $show_money), "BEF_YESTERDAY_BACK" => event_format_link($sum_back_bef_yesterday, $f_GUESTS_BACK_BEF_YESTERDAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($bef_yesterday_date) . "&find_date2=" . urlencode($bef_yesterday_date) . "&set_filter=Y", $show_money), "PERIOD" => event_format_link($sum_period, $f_GUESTS_PERIOD, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($find_date1_period) . "&find_date2=" . urlencode($find_date2_period) . "&set_filter=Y", $show_money), "PERIOD_BACK" => event_format_link($sum_back_period, $f_GUESTS_BACK_PERIOD, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($find_date1_period) . "&find_date2=" . urlencode($find_date2_period) . "&set_filter=Y", $show_money), "TOTAL" => event_format_link($sum_total, $f_GUESTS, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&&set_filter=Y", $show_money), "TOTAL_BACK" => event_format_link($sum_back_total, $f_GUESTS_BACK, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&&set_filter=Y", $show_money)); $full_list = $show_events == "list" || $show_events == "event1" || $show_events == "event2"; $arHeaders = array(); if ($show_events == "list" || $show_events == "event1") { $arHeaders[] = array("id" => "EVENT1", "content" => "event1", "default" => true); } if ($show_events == "list" || $show_events == "event2") { $arHeaders[] = array("id" => "EVENT2", "content" => "event2", "default" => true); } if ($list_mode != "period") { $arHeaders[] = array("id" => "today", "content" => GetMessage("STAT_TODAY") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "today_back", "content" => GetMessage("STAT_TODAY") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "yesterday", "content" => GetMessage("STAT_YESTERDAY") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "yesterday_back", "content" => GetMessage("STAT_YESTERDAY") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "bef_yesterday", "content" => GetMessage("STAT_BEFYESTERDAY") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "bef_yesterday_back", "content" => GetMessage("STAT_BEFYESTERDAY") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); } global $find_date1_period, $find_date2_period, $is_filtered; if ((strlen($find_date1_period) > 0 || strlen($find_date2_period) > 0) && $is_filtered) { $arHeaders[] = array("id" => "period", "content" => GetMessage("STAT_PERIOD") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "period_back", "content" => GetMessage("STAT_PERIOD") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); } $arHeaders[] = array("id" => "total", "content" => GetMessage("STAT_TOTAL") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "total_back", "content" => GetMessage("STAT_TOTAL") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); $lAdmin->AddHeaders($arHeaders); if ($full_list) { $events = new CDBResult(); $events->InitFromArray($arEvents); $rsData = new CAdminResult($events, $lAdmin->table_id); $first = true; $i = COption::GetOptionInt("statistic", "ADV_DETAIL_TOP_SIZE"); while ($i > 0 && ($arRes = $rsData->NavNext(true, "e_"))) { if ($first) { foreach ($arRes as $key => $value) { global ${"e_" . $key}; } $first = false; } $row =& $lAdmin->AddRow($e_ID, $arRes); if ($show_events == "list") { $title = "ID = " . $e_ID; if (strlen($e_EVENT1) > 0) { $title .= "\nevent1 = " . $e_EVENT1; } if (strlen($e_EVENT2) > 0) { $title .= "\nevent2 = " . $e_EVENT2; } if (strlen($e_NAME) > 0) { $title .= "\n" . GetMessage("STAT_NAME") . " " . $e_NAME; } if (strlen($e_DESCRIPTION) > 0) { $title .= "\n" . GetMessage("STAT_DESCRIPTION") . " " . $e_DESCRIPTION; } $name = "<a target=\"_blank\" href=\"event_type_list.php?lang=" . LANG . "&find_id=" . $e_ID . "&find_id_exact_match=Y&set_filter=Y\" class=\"tablebodylink\" title=\"" . $title . "\">" . $e_EVENT . "</a>"; } elseif ($show_events == "event1") { $name = "<a target=\"_blank\" href=\"event_type_list.php?lang=" . LANG . "&find_event1=" . urlencode("\"" . $e_EVENT1 . "\"") . "&set_filter=Y\" class=\"tablebodylink\">" . $e_EVENT1 . "</a>"; } elseif ($show_events == "event2") { $name = "<a target=\"_blank\" href=\"event_type_list.php?lang=" . LANG . "&find_event2=" . urlencode("\"" . $e_EVENT2 . "\"") . "&set_filter=Y\" class=\"tablebodylink\">" . $e_EVENT2 . "</a>"; } $strHTML = event_format_link(array("C" => $e_COUNTER_TODAY, "M" => $e_MONEY_TODAY), $f_GUESTS_TODAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_event_id_exact_match=Y&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($now_date) . "&find_date2=" . urlencode($now_date) . "&set_filter=Y", $show_money); $row->AddViewField("today", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK_TODAY, "M" => $e_MONEY_BACK_TODAY), $f_GUESTS_BACK_TODAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_id=" . $adv_id . "&find_adv_back=Y&find_date1=" . urlencode($now_date) . "&find_date2=" . urlencode($now_date) . "&set_filter=Y", $show_money); $row->AddViewField("today_back", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_YESTERDAY, "M" => $e_MONEY_YESTERDAY), $f_GUESTS_YESTERDAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($yesterday_date) . "&find_date2=" . urlencode($yesterday_date) . "&set_filter=Y", $show_money); $row->AddViewField("yesterday", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK_YESTERDAY, "M" => $e_MONEY_BACK_YESTERDAY), $f_GUESTS_BACK_YESTERDAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($yesterday_date) . "&find_date2=" . urlencode($yesterday_date) . "&set_filter=Y", $show_money); $row->AddViewField("yesterday_back", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BEF_YESTERDAY, "M" => $e_MONEY_BEF_YESTERDAY), $f_GUESTS_BEF_YESTERDAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($bef_yesterday_date) . "&find_date2=" . urlencode($bef_yesterday_date) . "&set_filter=Y", $show_money); $row->AddViewField("bef_yesterday", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK_BEF_YESTERDAY, "M" => $e_MONEY_BACK_BEF_YESTERDAY), $f_GUESTS_BACK_BEF_YESTERDAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($bef_yesterday_date) . "&find_date2=" . urlencode($bef_yesterday_date) . "&set_filter=Y", $show_money); $row->AddViewField("bef_yesterday_back", $strHTML); if ((strlen($find_date1_period) > 0 || strlen($find_date2_period) > 0) && $is_filtered) { $strHTML = event_format_link(array("C" => $e_COUNTER_PERIOD, "M" => $e_MONEY_PERIOD), $f_GUESTS_PERIOD, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($find_date1_period) . "&find_date2=" . urlencode($find_date2_period) . "&set_filter=Y", $show_money); $row->AddViewField("period", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK_PERIOD, "M" => $e_MONEY_BACK_PERIOD), $f_GUESTS_BACK_PERIOD, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($find_date1_period) . "&find_date2=" . urlencode($find_date2_period) . "&set_filter=Y", $show_money); $row->AddViewField("period_back", $strHTML); } $strHTML = event_format_link(array("C" => $e_COUNTER, "M" => $e_MONEY), $f_GUESTS, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=N&set_filter=Y", $show_money); $row->AddViewField("total", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK, "M" => $e_MONEY_BACK), $f_GUESTS_BACK, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=Y&set_filter=Y", $show_money); $row->AddViewField("total_back", $strHTML); --$i; } } $row =& $lAdmin->AddRow(0, array()); $row->SetFeatures(array("footer" => $full_list)); $row->AddViewField("EVENT1", GetMessage("STAT_FOOTER")); $row->AddViewField("today", $arSum["TODAY"]); $row->AddViewField("today_back", $arSum["TODAY_BACK"]); $row->AddViewField("yesterday", $arSum["YESTERDAY"]); $row->AddViewField("yesterday_back", $arSum["YESTERDAY_BACK"]); $row->AddViewField("bef_yesterday", $arSum["BEF_YESTERDAY"]); $row->AddViewField("bef_yesterday_back", $arSum["BEF_YESTERDAY_BACK"]); if ((strlen($find_date1_period) > 0 || strlen($find_date2_period) > 0) && $is_filtered) { $row->AddViewField("period", $arSum["PERIOD"]); $row->AddViewField("period_back", $arSum["PERIOD_BACK"]); } $row->AddViewField("total", $arSum["TOTAL"]); $row->AddViewField("total_back", $arSum["TOTAL_BACK"]); }
if ($show_events == "event1") { $arF["GROUP"] = "event1"; } elseif ($show_events == "event2") { $arF["GROUP"] = "event2"; } if ($find != "" && $find_type == "event1") { $arF["EVENT1"] = $find; } if ($find != "" && $find_type == "event2") { $arF["EVENT2"] = $find; } if ($GROUP == "N") { $events = CAdv::GetEventList($f_ID, $by, $order, $arF, $v1); } elseif ($GROUP == "Y") { $value = $find_group == "referer1" ? $f_REFERER1 : $f_REFERER2; $events = CAdv::GetEventListByReferer($value, $arFilter); } $sum_today = 0; $sum_back_today = 0; $sum_yesterday = 0; $sum_back_yesterday = 0; $sum_bef_yesterday = 0; $sum_back_bef_yesterday = 0; $sum_period = 0; $sum_back_period = 0; $sum_total = 0; $sum_back_total = 0; $arEvents = array(); while ($er = $events->Fetch()) { $arEvents[] = $er; $sum_today += intval($er["COUNTER_TODAY"]);