public static function Show() { IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/interface/prolog_main_admin.php'); $supportFinishDate = COption::GetOptionString('main', '~support_finish_date', ''); if ($supportFinishDate != '' && is_array($aSupportFinishDate = ParseDate($supportFinishDate, 'ymd'))) { $aGlobalOpt = CUserOptions::GetOption("global", "settings", array()); if ($aGlobalOpt['messages']['support'] != 'N') { $supportFinishStamp = mktime(0, 0, 0, $aSupportFinishDate[1], $aSupportFinishDate[0], $aSupportFinishDate[2]); $supportDateDiff = ceil(($supportFinishStamp - time()) / 86400); $sSupportMess = ''; $sSupWIT = " (<span onclick=\"BX.toggle(BX('supdescr'))\" style='border-bottom: 1px dashed #1c91e7; color: #1c91e7; cursor: pointer;'>" . GetMessage("prolog_main_support_wit") . "</span>)"; if ($supportDateDiff >= 0 && $supportDateDiff <= 30) { $sSupportMess = GetMessage("prolog_main_support11", array('#FINISH_DATE#' => GetTime($supportFinishStamp), '#DAYS_AGO#' => $supportDateDiff == 0 ? GetMessage("prolog_main_today") : GetMessage('prolog_main_support_days', array('#N_DAYS_AGO#' => $supportDateDiff)), '#LICENSE_KEY#' => md5(LICENSE_KEY), '#WHAT_IS_IT#' => $sSupWIT, '#SUP_FINISH_DATE#' => GetTime(mktime(0, 0, 0, $aSupportFinishDate[1] + 1, $aSupportFinishDate[0], $aSupportFinishDate[2])))); } elseif ($supportDateDiff < 0 && $supportDateDiff >= -30) { $sSupportMess = GetMessage("prolog_main_support21", array('#FINISH_DATE#' => GetTime($supportFinishStamp), '#DAYS_AGO#' => -$supportDateDiff, '#LICENSE_KEY#' => md5(LICENSE_KEY), '#WHAT_IS_IT#' => $sSupWIT, '#SUP_FINISH_DATE#' => GetTime(mktime(0, 0, 0, $aSupportFinishDate[1] + 1, $aSupportFinishDate[0], $aSupportFinishDate[2])))); } elseif ($supportDateDiff < -30) { $sSupportMess = GetMessage("prolog_main_support31", array('#FINISH_DATE#' => GetTime($supportFinishStamp), '#LICENSE_KEY#' => md5(LICENSE_KEY), '#WHAT_IS_IT#' => $sSupWIT)); } if ($sSupportMess != '') { $sSupportMess .= GetMessage('ACRIT_EXPORTPRO_BUY_LICENCE'); $userOption = CUserOptions::GetOption("main", "admSupInf"); if (mktime() > $userOption["showInformerDate"]) { $prolongUrl = "/bitrix/admin/buy_support.php?lang=" . LANGUAGE_ID; if (!in_array(LANGUAGE_ID, array("ru", "ua")) || IntVal(COption::GetOptionString("main", "~PARAM_PARTNER_ID")) <= 0) { require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/update_client.php"; $prolongUrl = "http://www.acrit-studio.ru/shop/list/lupd/"; } echo BeginNote('style="position: relative; top: -15px;"'); ?> <div style="float: right; padding-left: 50px; margin-top: -5px; text-align: center;"> <a href="<?php echo $prolongUrl; ?> " target="_blank" class="adm-btn adm-btn-save" style="margin-bottom: 4px;"><?php echo GetMessage("prolog_main_support_button_prolong"); ?> </a><br /> <a href="http://www.acrit-studio.ru/market/" target="_blank"><?php echo GetMessage("prolog_main_support_button_prolong_modules"); ?> </a> </div> <?php echo $sSupportMess; ?> <div id="supdescr" style="display: none;"><br /><br /><b><?php echo GetMessage("prolog_main_support_wit_descr1"); ?> </b><hr><?php echo GetMessage("prolog_main_support_wit_descr2"); ?> </div> <?php echo EndNote(); } } } } }
function InitFilterEx($arName, $varName, $action = "set", $session = true, $FilterLogic = "FILTER_logic") { if ($session && is_array($_SESSION["SESS_ADMIN"][$varName])) { $FILTER = $_SESSION["SESS_ADMIN"][$varName]; } else { $FILTER = array(); } global ${$FilterLogic}; if ($action == "set") { $FILTER[$FilterLogic] = ${$FilterLogic}; } else { ${$FilterLogic} = $FILTER[$FilterLogic]; } for ($i = 0, $n = count($arName); $i < $n; $i++) { $name = $arName[$i]; $period = $arName[$i] . "_FILTER_PERIOD"; $direction = $arName[$i] . "_FILTER_DIRECTION"; $bdays = $arName[$i] . "_DAYS_TO_BACK"; global ${$name}, ${$direction}, ${$period}, ${$bdays}; if ($action == "set") { $FILTER[$name] = ${$name}; if (isset(${$period}) || isset($FILTER[$period])) { $FILTER[$period] = ${$period}; } if (isset(${$direction}) || isset($FILTER[$direction])) { $FILTER[$direction] = ${$direction}; } if (isset(${$bdays}) || isset($FILTER[$bdays])) { $FILTER[$bdays] = ${$bdays}; if (strlen(${$bdays}) > 0 && ${$bdays} != "NOT_REF") { ${$name} = GetTime(time() - 86400 * intval($FILTER[$bdays])); } } } else { ${$name} = isset($FILTER[$name]) ? $FILTER[$name] : null; if (isset(${$period}) || isset($FILTER[$period])) { ${$period} = $FILTER[$period]; } if (isset(${$direction}) || isset($FILTER[$direction])) { ${$direction} = $FILTER[$direction]; } if (isset($FILTER[$bdays]) && strlen($FILTER[$bdays]) > 0 && $FILTER[$bdays] != "NOT_REF") { ${$bdays} = $FILTER[$bdays]; ${$name} = GetTime(time() - 86400 * intval($FILTER[$bdays])); } } } if ($session) { if (!is_array($_SESSION["SESS_ADMIN"])) { $_SESSION["SESS_ADMIN"] = array(); } $_SESSION["SESS_ADMIN"][$varName] = $FILTER; } }
function SendImmediate($event, $lid, $arFields, $Duplicate = "Y", $message_id = "", $files = array()) { foreach (GetModuleEvents("main", "OnBeforeEventAdd", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$event, &$lid, &$arFields, &$message_id)) === false) { return false; } } if (!is_array($arFields)) { $arFields = array(); } $arLocalFields = array("EVENT_NAME" => $event, "C_FIELDS" => $arFields, "LID" => is_array($lid) ? implode(",", $lid) : $lid, "DUPLICATE" => $Duplicate != "N" ? "Y" : "N", "MESSAGE_ID" => intval($message_id) > 0 ? intval($message_id) : "", "DATE_INSERT" => GetTime(time(), "FULL"), "FILE" => $files, "ID" => "0"); return Mail\Event::sendImmediate($arLocalFields); }
function GetNextStartDate($CHANNEL_ID) { global $DB; $err_mess = CVote::err_mess() . "<br>Function: GetNextStartDate<br>Line: "; $CHANNEL_ID = intval($CHANNEL_ID); $strSql = "\n\t\t\tSELECT\n\t\t\t\t" . $DB->DateToCharFunction("max(DATE_ADD(DATE_END, INTERVAL 1 SECOND))") . " MIN_DATE_START\n\t\t\tFROM\n\t\t\t\tb_vote\n\t\t\tWHERE\n\t\t\t\tCHANNEL_ID = '{$CHANNEL_ID}'\n\t\t\t"; $z = $DB->Query($strSql, false, $err_mess . __LINE__); $zr = $z->Fetch(); if (strlen($zr["MIN_DATE_START"]) <= 0) { return GetTime(time() + CTimeZone::GetOffset(), "FULL"); } else { return $zr["MIN_DATE_START"]; } }
function SendImmediate($event, $lid, $arFields, $Duplicate = "Y", $message_id = "") { $flds = ""; if (is_array($arFields)) { foreach ($arFields as $key => $value) { if ($flds) { $flds .= "&"; } $flds .= CEvent::fieldencode($key) . "=" . CEvent::fieldencode($value); } } $arLocalFields = array("EVENT_NAME" => $event, "C_FIELDS" => $flds, "LID" => is_array($lid) ? implode(",", $lid) : $lid, "DUPLICATE" => $Duplicate != "N" ? "Y" : "N", "MESSAGE_ID" => intval($message_id) > 0 ? intval($message_id) : "", "DATE_INSERT" => GetTime(time(), "FULL"), "ID" => "0"); return CEvent::HandleEvent($arLocalFields); }
function GetFileModificationDate($arF) { $iTSTS = 0; $fTSTS = 0; $iTSD = GetTime(mktime(0, 0, 0, 01, 01, 2000)); $fTSD = GetTime(mktime(0, 0, 0, 01, 01, 2000)); if (isset($arF["TIMESTAMP_X"])) { $iTSTS = MakeTimeStamp($arF["TIMESTAMP_X"]); $iTSD = $arF["TIMESTAMP_X"]; } if (isset($arF["FILE"]["TIMESTAMP_X"])) { $fTSTS = MakeTimeStamp($arF["FILE"]["TIMESTAMP_X"]); $fTSD = $arF["FILE"]["TIMESTAMP_X"]; } return $iTSTS > $fTSTS ? $iTSD : $fTSD; }
/** * <p>Отправляет сообщение немедленно. В отличие от <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cevent/send.php">CEvent::Send</a> не возвращает идентификатор созданного сообщения. При отправке сообщения данным методом запись в таблицу <b>b_event</b> не производится.</p> * * * * * @param $even $t Идентификатор типа почтового события. * * * * @param $li $d Идентификатор сайта, либо массив идентификаторов сайта. * * * * @param $arField $s Массив полей типа почтового события идентификатор которого * задается в параметре <i>event_type</i>. Массив имеет следующий формат: * array("поле"=>"значение" [, ...]). * * * * @param $Duplicat $e = "Y" Отправить ли копию письма на адрес указанный в настройках * главного модуля в поле "<b>E-Mail адрес или список адресов через * запятую на который будут дублироваться все исходящие * сообщения</b>". <br> Необязательный. По умолчанию "Y". * * * * @param $message_i $d = "" Идентификатор почтового шаблона по которому будет отправлено * письмо. <br> Если данный параметр не задан, либо равен "", то письма * будут отправлены по всем шаблонам привязанным к типу почтового * события, идентификатор которого задается в параметре <i>event_type</i>, а * также привязанных к сайту(ам) идентификатор которого указан в * параметре <i>site</i>. <br> Необязательный. По умолчанию - "". * * * * @return mixed * * * <h4>Example</h4> * <pre> * <br><br> * </pre> * * * * <h4>See Also</h4> * <a name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/main/reference/cevent/sendimmediate.php * @author Bitrix */ public static function SendImmediate($event, $lid, $arFields, $Duplicate = "Y", $message_id = "") { foreach (GetModuleEvents("main", "OnBeforeEventAdd", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$event, &$lid, &$arFields, &$message_id)) === false) { return false; } } $flds = ""; if (is_array($arFields)) { foreach ($arFields as $key => $value) { if ($flds) { $flds .= "&"; } $flds .= CEvent::fieldencode($key) . "=" . CEvent::fieldencode($value); } } $arLocalFields = array("EVENT_NAME" => $event, "C_FIELDS" => $flds, "LID" => is_array($lid) ? implode(",", $lid) : $lid, "DUPLICATE" => $Duplicate != "N" ? "Y" : "N", "MESSAGE_ID" => intval($message_id) > 0 ? intval($message_id) : "", "DATE_INSERT" => GetTime(time(), "FULL"), "ID" => "0"); return CEvent::HandleEvent($arLocalFields); }
$arMsg = array(); $err = false; if ($USER_ID <= 0) { $arMsg[] = array("id" => "USER_ID", "text" => GetMessage("FM_WRONG_USER_ID")); } $date1_stm = ""; $date2_stm = ""; $DATE_FROM_S = trim($DATE_FROM_S); $DATE_TO_S = trim($DATE_TO_S); $DATE_FROM_S_DAYS_TO_BACK = intval($DATE_FROM_S_DAYS_TO_BACK); if (strlen($DATE_FROM_S) > 0 || strlen($DATE_TO_S) > 0 || $DATE_FROM_S_DAYS_TO_BACK > 0) { $date1_stm = MkDateTime(ConvertDateTime($DATE_FROM_S, "D.M.Y"), "d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($DATE_TO_S, "D.M.Y") . " 23:59", "d.m.Y H:i"); if ($DATE_FROM_S_DAYS_TO_BACK > 0) { $date1_stm = time() - 86400 * $DATE_FROM_S_DAYS_TO_BACK; $date1_stm = GetTime($date1_stm); } if (!$date1_stm) { $arMsg[] = array("id" => ">=START_DATE", "text" => GetMessage("FM_WRONG_DATE_FROM")); } if (!$date2_stm && strlen($DATE_TO_S) > 0) { $arMsg[] = array("id" => "<=START_DATE", "text" => GetMessage("FM_WRONG_DATE_TO")); } elseif ($date1_stm && $date2_stm && $date2_stm <= $date1_stm) { $arMsg[] = array("id" => "find_date_timestamp2", "text" => GetMessage("FM_WRONG_PERIOD")); } } $Filter_S = trim($Filter_S); $FilterType_S = strtolower(trim($FilterType_S)); if (strLen($Filter_S) > 0 && in_array($FilterType_S, array("forum", "topic"))) { $arFilter["" . strToUpper($FilterType_S)] = $Filter_S; }
foreach (Array_Keys($tAttribs) as $AttribID) { #------------------------------------------------------------------- if (!isset($pAttribs[$AttribID])) { $pAttribs[$AttribID] = $tAttribs[$AttribID]['Value']; } } #--------------------------------------------------------------------- $Replace = Array_ToLine($pAttribs, '%'); #--------------------------------------------------------------------- $ProfileName = $Template['ProfileName']; #--------------------------------------------------------------------- foreach (Array_Keys($Replace) as $Key) { $ProfileName = Str_Replace($Key, $Replace[$Key], $ProfileName); } #--------------------------------------------------------------------- $IProfile = array('CreateDate' => GetTime($Profile['CreateDate']), 'UserID' => $UserID, 'TemplateID' => $Profile['TemplateID'], 'Name' => $ProfileName, 'Attribs' => $pAttribs, 'StatusID' => 'Checked', 'StatusDate' => GetTime($Profile['CreateDate'])); #--------------------------------------------------------------------- $ProfileID = DB_Insert('Profiles', $IProfile); if (Is_Error($ProfileID)) { return ERROR | @Trigger_Error(500); } } } #------------------------------------------------------------------------- if (Is_Error(DB_Commit($TransactionID))) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------- echo "Успешно импортирован\n"; break; case 'array':
echo $student->percent > 90 ? 'check' : ($student->percent == 0 ? 'times' : 'arrow-right'); ?> "></i> <div class="percent"><?php echo $student->percent; ?> %</div> </div> <div class="detail"> <div class="name"> <?php if ($student->update_date > 0) { ?> <span class="reg_date"><?php echo GetTime('Y.m.d H:i:s', $student->update_date); ?> </span><?php } ?> <?php echo $this->IM->getModule('member')->getMemberNickname($student->midx, false); ?> </div> <div class="graph"> </div> </div> </div> </div> <?php
function GetDateValue($FIELD_NAME, $arAnswer, $arrVALUES = false) { $fname = "form_date_" . $FIELD_NAME; if (is_array($arrVALUES) && isset($arrVALUES[$fname])) { $value = $arrVALUES[$fname]; } else { if (preg_match("/NOW_DATE/i", $arAnswer["FIELD_PARAM"])) { $value = GetTime(time(), "SHORT"); } elseif (preg_match("/NOW_TIME/i", $arAnswer["FIELD_PARAM"])) { $value = GetTime(time() + CTimeZone::GetOffset(), "FULL"); } else { $value = $arAnswer["VALUE"]; } } return $value; }
if ($_SERVER["REQUEST_METHOD"] == "POST") { $TID1 = $arParams["MESSAGE_TYPE"] == "NEW" ? 0 : intVal($arParams["TID"]); $MID1 = $arParams["MESSAGE_TYPE"] == "NEW" ? 0 : intVal($arParams["MID"]); if (!check_bitrix_sessid()) { $arError[] = array("id" => "bad sessid", "text" => GetMessage("F_ERR_SESS_FINISH")); } elseif (!in_array($arResult["FORUM"]["ALLOW_UPLOAD"], array("Y", "A", "F")) && (!empty($_FILES) || !empty($_REQUEST["FILES"]))) { $arError[] = array("id" => "bad files", "text" => GetMessage("F_ERRRO_FILE_NOT_UPLOAD")); unset($_REQUEST["FILES"]); } elseif ($arResult["VIEW"] == "N") { $arFieldsG = array("POST_MESSAGE" => $_REQUEST["POST_MESSAGE"], "USE_SMILES" => $_REQUEST["USE_SMILES"], "OWNER_ID" => $arParams["USER_ID"], "SOCNET_GROUP_ID" => $arParams["SOCNET_GROUP_ID"], "PERMISSION_EXTERNAL" => $arParams["PERMISSION"]); if ($arParams["SHOW_VOTE"] == "Y" && (!empty($_REQUEST["QUESTION"]) || !empty($_REQUEST["QUESTION_ID"]))) { $VOTE_ID = $arResult["MESSAGE"]["PARAM1"] == 'VT' ? intVal($arResult["MESSAGE"]["PARAM2"]) : 0; $arVote = array("CHANNEL_ID" => $arParams["VOTE_CHANNEL_ID"], "TITLE" => $_REQUEST["TITLE"], "QUESTIONS" => array()); if ($VOTE_ID <= 0) { $arVote["DATE_START"] = GetTime(CForumNew::GetNowTime(), "FULL"); $arVote["DATE_END"] = GetTime(MakeTimeStamp($_REQUEST['DATE_END']), "FULL"); } else { $arVote["DATE_END"] = $_REQUEST['DATE_END']; } $arQuestions = $arResult["~QUESTIONS"]; $_REQUEST["QUESTION"] = is_array($_REQUEST["QUESTION"]) ? $_REQUEST["QUESTION"] : array(); foreach ($_REQUEST["QUESTION"] as $key => $val) { $res = array("QUESTION" => trim($val), "MULTI" => $_REQUEST["MULTI"][$key] == "Y" ? "Y" : "N", "DEL" => $_REQUEST["QUESTION_DEL"][$key] == "Y" ? "Y" : "N", "ANSWERS" => array()); $id = intval($_REQUEST["QUESTION_ID"][$key]); if ($id > 0 && is_set($arQuestions, $id)) { $res["ID"] = $id; } elseif ($res["DEL"] == "Y") { continue; } $arAnswers = is_array($arResult["~QUESTIONS"][$res["ID"]]["ANSWERS"]) ? $arResult["~QUESTIONS"][$res["ID"]]["ANSWERS"] : array(); foreach ($_REQUEST["ANSWER"][$key] as $keya => $vala) {
public static function KeepVoting() { global $DB, $VOTING_LAMP, $USER_ALREADY_VOTE, $USER_GROUP_PERMISSION, $USER; $err_mess = CAllVote::err_mess() . "<br>Function: KeepVoting<br>Line: "; $VOTING_LAMP = "green"; $USER_ALREADY_VOTE = "N"; $PUBLIC_VOTE_ID = intval($_REQUEST["PUBLIC_VOTE_ID"]); $aMsg = array(); $VOTE_ID = 0; $arVote = array(); $arQuestions = array(); if (!(!empty($_REQUEST["vote"]) && $PUBLIC_VOTE_ID > 0 && check_bitrix_sessid())) { $aMsg[] = array("id" => "bad_params", "text" => GetMessage("VOTE_NOT_FOUND")); } elseif (($VOTE_ID = intVal(GetVoteDataByID($PUBLIC_VOTE_ID, $arChannel, $arVote, $arQuestions, $arAnswers, $arDropDown, $arMultiSelect, $arGroupAnswers, "N"))) && ($VOTE_ID <= 0 || $arVote["LAMP"] != "green")) { $VOTING_LAMP = "red"; if ($VOTE_ID <= 0) { $aMsg[] = array("id" => "VOTE_ID", "text" => GetMessage("VOTE_NOT_FOUND")); } else { $aMsg[] = array("id" => "LAMP", "text" => GetMessage("VOTE_RED_LAMP")); } } elseif ($arChannel["USE_CAPTCHA"] == "Y" && !$USER->IsAuthorized()) { include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/captcha.php"; $cpt = new CCaptcha(); if (!empty($_REQUEST["captcha_word"])) { $captchaPass = COption::GetOptionString("main", "captcha_password", ""); if (!$cpt->CheckCodeCrypt($_REQUEST["captcha_word"], $_REQUEST["captcha_code"], $captchaPass)) { $GLOBALS["BAD_CAPTCHA"] = "Y"; $aMsg[] = array("id" => "CAPTCHA", "text" => GetMessage("VOTE_BAD_CAPTCHA")); } } else { if (!$cpt->CheckCode($_REQUEST["captcha_word"], 0)) { $GLOBALS["NO_CAPTCHA"] = "Y"; $aMsg[] = array("id" => "CAPTCHA", "text" => GetMessage("VOTE_BAD_CAPTCHA")); } } } if (empty($aMsg)) { // get user id $_SESSION["VOTE_USER_ID"] = CVote::SetVoteUserID(); $GLOBALS["VOTING_ID"] = $VOTE_ID; // check: can user vote $UNIQUE_TYPE = $arVote["UNIQUE_TYPE"]; $KEEP_IP_SEC = $arVote["KEEP_IP_SEC"]; $CHANNEL_ID = $arVote["CHANNEL_ID"]; $StatusVote = CVote::UserAlreadyVote($VOTE_ID, $_SESSION["VOTE_USER_ID"], $UNIQUE_TYPE, $KEEP_IP_SEC, $USER->GetID()); $USER_ALREADY_VOTE = $StatusVote != false ? "Y" : "N"; $USER_GROUP_PERMISSION = CVote::UserGroupPermission($CHANNEL_ID); // if user can vote that if (($USER_ALREADY_VOTE == "N" || $StatusVote == 8 && $_REQUEST["REVOTE_ID"] == $VOTE_ID) && $USER_GROUP_PERMISSION >= 2) { $arSqlAnswers = array(); // check answers foreach ($arQuestions as $qID => $arQuestion) { $arSqlAnswers[$arQuestion["ID"]] = array(); $bIndicators = array(); foreach ($arQuestion["ANSWERS"] as $arAnswer) { switch ($arAnswer["FIELD_TYPE"]) { case 0: // radio // radio case 2: // dropdown list $fieldName = ($arAnswer["FIELD_TYPE"] == 0 ? "vote_radio_" : "vote_dropdown_") . $qID; $aID = intval($GLOBALS[$fieldName]); if (!isset($bIndicators[$fieldName]) && array_key_exists($aID, $arQuestion["ANSWERS"])) { if (!empty($arAnswer['MESSAGE'])) { $arSqlAnswers[$qID][$aID] = array("ANSWER_ID" => $aID); } $bIndicators[$fieldName] = "Y"; } break; case 1: // checkbox // checkbox case 3: // multiselect list $fieldName = ($arAnswer["FIELD_TYPE"] == 1 ? "vote_checkbox_" : "vote_multiselect_") . $qID; $res = $GLOBALS[$fieldName]; if (!isset($bIndicators[$fieldName]) && is_array($res) && !empty($res)) { reset($res); foreach ($res as $aID) { if (array_key_exists($aID, $arQuestion["ANSWERS"])) { $arSqlAnswers[$qID][$aID] = array("ANSWER_ID" => $aID); } } $bIndicators[$fieldName] = "Y"; } break; case 4: // field // field case 5: // text $aID = $arAnswer["ID"]; $fieldName = ($arAnswer["FIELD_TYPE"] == 4 ? "vote_field_" : "vote_memo_") . $aID; $MESSAGE = trim($GLOBALS[$fieldName]); if ($MESSAGE != "") { $arSqlAnswers[$qID][$aID] = array("ANSWER_ID" => $aID, "MESSAGE" => "'" . $DB->ForSql(trim($MESSAGE), 2000) . "'"); } break; } } if (empty($arSqlAnswers[$qID])) { unset($arSqlAnswers[$qID]); if ($arQuestion['REQUIRED'] == 'Y') { $aMsg[] = array("id" => "QUESTION_" . $qID, "text" => GetMessage("VOTE_REQUIRED_MISSING")); $GLOBALS["VOTE_REQUIRED_MISSING"] = "Y"; break; } } } if (!empty($aMsg)) { /* do nothing; */ } elseif (!empty($arSqlAnswers)) { // vote event $arFields = array("VOTE_ID" => $VOTE_ID, "VOTE_USER_ID" => intval($_SESSION["VOTE_USER_ID"]), "DATE_VOTE" => $DB->GetNowFunction(), "STAT_SESSION_ID" => intval($_SESSION["SESS_SESSION_ID"]), "IP" => "'" . $DB->ForSql($_SERVER["REMOTE_ADDR"], 15) . "'", "VALID" => "'Y'"); /***************** Event onBeforeVoting ****************************/ foreach (GetModuleEvents("vote", "onBeforeVoting", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$arFields, &$arSqlAnswers)) === false) { return false; } } /***************** /Event ******************************************/ if ($StatusVote == 8 && $_REQUEST["REVOTE_ID"] == $VOTE_ID) { $strSql = "SELECT VE.ID, VEQ.QUESTION_ID, VEA.ANSWER_ID" . " FROM b_vote_event VE " . "\tLEFT JOIN b_vote_event_question VEQ ON (VEQ.EVENT_ID=VE.ID)" . "\tLEFT JOIN b_vote_event_answer VEA ON (VEA.EVENT_QUESTION_ID=VEQ.ID)" . "\tLEFT JOIN b_vote_user VU ON (VE.VOTE_USER_ID = VU.ID)" . " WHERE VE.VOTE_ID=" . $VOTE_ID . " AND VU.AUTH_USER_ID=" . intval($USER->GetID()) . " ORDER BY VE.ID ASC, VEQ.QUESTION_ID ASC"; $db_res = $DB->Query($strSql, false, $err_mess . __LINE__); if ($db_res && ($res = $db_res->Fetch())) { if ($USER->GetID() > 0 && CModule::IncludeModule("im")) { CIMNotify::DeleteByTag("VOTING|" . $VOTE_ID, $USER->GetID()); } $del = false; $delQ = false; do { if ($delQ !== $res["QUESTION_ID"]) { if ($del !== $res["ID"]) { CVoteEvent::Delete($res["ID"]); $del = $res["ID"]; $arVote["COUNTER"] = intval($arVote["COUNTER"]) - 1; } $delQ = $res["QUESTION_ID"]; $arQuestions[$res["QUESTION_ID"]]["COUNTER"] = intval($arQuestions[$res["QUESTION_ID"]]["COUNTER"]) - 1; } $arQuestions[$res["QUESTION_ID"]]["ANSWERS"][$res["ANSWER_ID"]]["COUNTER"] = intval($arQuestions[$res["QUESTION_ID"]]["ANSWERS"][$res["ANSWER_ID"]]["COUNTER"]) - 1; } while ($res = $db_res->Fetch()); } $USER_ALREADY_VOTE = "N"; } unset($GLOBALS["VOTE_CACHE_VOTING"][$VOTE_ID]); unset($GLOBALS["VOTE_CACHE"]["VOTE"][$VOTE_ID]); $EVENT_ID = intval($DB->Insert("b_vote_event", $arFields, $err_mess . __LINE__)); if ($EVENT_ID > 0) { $arSqlQuestionsID = array(); $arSqlAnswersID = array(); foreach ($arSqlAnswers as $qID => $arSqlAnswer) { $arFields = array("EVENT_ID" => $EVENT_ID, "QUESTION_ID" => $qID); $EVENT_QUESTION_ID = intval($DB->Insert("b_vote_event_question", $arFields, $err_mess . __LINE__)); if ($EVENT_QUESTION_ID > 0) { $arSqlQuestionsID[] = $qID; $arQuestions[$qID]["COUNTER"] = intval($arQuestions[$qID]["COUNTER"]) + 1; foreach ($arSqlAnswer as $aID => $res) { $res["EVENT_QUESTION_ID"] = $EVENT_QUESTION_ID; if ($DB->Insert("b_vote_event_answer", $res, $err_mess . __LINE__)) { $arSqlAnswersID[$aID] = $qID; $arQuestions[$qID]["ANSWERS"][$aID]["COUNTER"] = intval($arQuestions[$qID]["ANSWERS"][$aID]["COUNTER"]) + 1; } } } } if (empty($arSqlQuestionsID) || empty($arSqlAnswersID)) { $DB->Query("DELETE FROM b_vote_event WHERE ID=" . $EVENT_ID, $arFields, $err_mess . __LINE__); } else { $arFields = array("COUNTER" => "COUNTER+1"); $DB->Update("b_vote", $arFields, "WHERE ID='" . $VOTE_ID . "'", $err_mess . __LINE__); $arVote["COUNTER"] = intval($arVote["COUNTER"]) + 1; $DB->Update("b_vote_question", $arFields, "WHERE ID in (" . implode(", ", $arSqlQuestionsID) . ")", $err_mess . __LINE__); $DB->Update("b_vote_answer", $arFields, "WHERE ID in (" . implode(", ", array_keys($arSqlAnswersID)) . ")", $err_mess . __LINE__); // increment user counter CVote::UpdateVoteUserID($_SESSION["VOTE_USER_ID"]); $GLOBALS["VOTING_OK"] = "Y"; $_SESSION["VOTE_ARRAY"][] = $VOTE_ID; if ($UNIQUE_TYPE & 8) { $_SESSION["VOTE"]["VOTES"][$VOTE_ID] = $EVENT_ID; } // statistic module if (CModule::IncludeModule("statistic")) { $event3 = $arVote["EVENT3"]; if (!empty($event3)) { $event3 = "http://" . $_SERVER["HTTP_HOST"] . "/bitrix/admin/vote_user_results.php?EVENT_ID=" . $EVENT_ID . "&lang=" . LANGUAGE_ID; } CStatEvent::AddCurrent($arVote["EVENT1"], $arVote["EVENT2"], $event3); } // notification if (!!$arVote["AUTHOR_ID"] && $arVote["AUTHOR_ID"] != $USER->GetID()) { if (empty($arVote["TITLE"])) { $arQuestion = reset($arQuestions); $arVote["TITLE"] = $arQuestion["QUESTION"]; } if ($arVote["NOTIFY"] == "I" && CModule::IncludeModule("im")) { $arVote["TOTAL_URL"] = ""; if (!empty($arVote["URL"])) { if (defined('SITE_SERVER_NAME')) { $arVote["TOTAL_URL"] = SITE_SERVER_NAME; } $arVote["TOTAL_URL"] = !empty($arVote["TOTAL_URL"]) ? $arVote["TOTAL_URL"] : COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]); if (!empty($arVote["TOTAL_URL"])) { $arVote["TOTAL_URL"] = (CMain::IsHTTPS() ? "https" : "http") . "://" . $arVote["TOTAL_URL"] . $arVote["URL"]; } } // send notification $gender = $USER->getParam("PERSONAL_GENDER") == "F" ? "_F" : ""; $arMessageFields = array("MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "TO_USER_ID" => $arVote["AUTHOR_ID"], "FROM_USER_ID" => $USER->GetID(), "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "vote", "NOTIFY_EVENT" => "voting", "NOTIFY_TAG" => "VOTING|" . $VOTE_ID, "NOTIFY_MESSAGE" => !empty($arVote["URL"]) ? GetMessage("V_NOTIFY_MESSAGE_HREF" . $gender, array("#VOTE_TITLE#" => $arVote["TITLE"], "#VOTE_URL#" => $arVote["URL"])) : GetMessage("V_NOTIFY_MESSAGE" . $gender, array("#VOTE_TITLE#" => $arVote["TITLE"])), "NOTIFY_MESSAGE_OUT" => !empty($arVote["TOTAL_URL"]) ? GetMessage("V_NOTIFY_MESSAGE_OUT_HREF" . $gender, array("#VOTE_TITLE#" => $arVote["TITLE"], "#VOTE_URL#" => $arVote["TOTAL_URL"])) : GetMessage("V_NOTIFY_MESSAGE" . $gender, array("#VOTE_TITLE#" => $arVote["TITLE"]))); CIMNotify::Add($arMessageFields); } else { if ($arVote["NOTIFY"] == "Y") { // send e-mail $db_user = CUser::GetById($arVote["AUTHOR_ID"]); if ($db_user && ($arUser = $db_user->Fetch()) && !empty($arUser["EMAIL"])) { $arEventFields = array("EMAIL_TO" => $arUser["EMAIL"], "VOTE_STATISTIC" => "", "ID" => $EVENT_ID, "TIME" => GetTime(time(), "FULL"), "VOTE_TITLE" => $arVote["TITLE"], "VOTE_DESCRIPTION" => $arVote["DESCRIPTION"], "VOTE_ID" => $arVote["ID"], "VOTE_COUNTER" => $arVote["COUNTER"], "URL" => $arVote["URL"], "CHANNEL" => $arChannel["TITLE"], "CHANNEL_ID" => $arChannel["ID"], "VOTER_ID" => $_SESSION["VOTE_USER_ID"], "USER_NAME" => $USER->GetFullName(), "LOGIN" => $USER->GetLogin(), "USER_ID" => $USER->GetID(), "STAT_GUEST_ID" => intval($_SESSION["SESS_GUEST_ID"]), "SESSION_ID" => intval($_SESSION["SESS_SESSION_ID"]), "IP" => $_SERVER["REMOTE_ADDR"]); $arEventFields["USER_NAME"] = !!$arEventFields["USER_NAME"] ? $arEventFields["USER_NAME"] : $arEventFields["LOGIN"]; // VOTE_STATISTIC $text = array(); foreach ($arSqlAnswersID as $aID => $qID) { $text[$qID] = is_array($text[$qID]) ? $text[$qID] : array(); if ($arQuestions[$qID]["ANSWERS"][$aID]["FIELD_TYPE"] == 4 || $arQuestions[$qID]["ANSWERS"][$aID]["FIELD_TYPE"] == 5) { if (!empty($arSqlAnswers[$qID][$aID]["MESSAGE"])) { $text[$qID][] = $arSqlAnswers[$qID][$aID]["MESSAGE"]; } } else { $text[$qID][] = $arQuestions[$qID]["ANSWERS"][$aID]["MESSAGE"]; } } foreach ($text as $qID => $txt) { $text[$qID] = " - " . $arQuestions[$qID]["QUESTION"] . "\n - " . implode(", ", $text[$qID]); } $arEventFields["VOTE_STATISTIC"] = "\n" . implode("\n\n", $text); $arrSites = CVoteChannel::GetSiteArray($arChannel["ID"]); CEvent::Send("VOTE_FOR", $arrSites, $arEventFields, "N"); } } } } } /***************** Event onAfterVoting *****************************/ foreach (GetModuleEvents("vote", "onAfterVoting", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($VOTE_ID, $EVENT_ID)); } /***************** /Event ******************************************/ } } else { $GLOBALS["USER_VOTE_EMPTY"] = "Y"; $aMsg[] = array("id" => "VOTE_ID", "text" => GetMessage("USER_VOTE_EMPTY")); } } else { $aMsg[] = array("id" => "VOTE_ID", "text" => $USER_GROUP_PERMISSION >= 2 ? GetMessage("VOTE_ALREADY_VOTE") : GetMessage("VOTE_ACCESS_DENIED")); } } if (!empty($aMsg)) { $e = new CAdminException($aMsg, "CVote::KeepVoting"); $GLOBALS["APPLICATION"]->ThrowException($e); $GLOBALS["VOTING_OK"] = "N"; return false; } return true; }
function Tab1($adminForm) { $adminForm->BeginCustomField("NAME", GetMessage("SUP_NAME"), false); ?> <tr class="adm-detail-required-field"> <td width="40%" align="right"><?php echo $adminForm->GetCustomLabelHTML(); ?> :</td> <td width="60%"><input type="text" maxlength="255" name="NAME" size="50" value="<?php echo CSupportPage::$holidaysFields->getFieldForOutput("NAME", CSupportTableFields::ATTRIBUTE); ?> "></td> </tr> <?php $adminForm->EndCustomField("NAME"); $adminForm->BeginCustomField("OPEN_TIME", GetMessage("SUP_OPEN_TIME"), false); ?> <tr class="adm-detail-required-field"> <td width="40%" align="right"><?php echo $adminForm->GetCustomLabelHTML(); ?> :</td> <td width="60%"> <select id="OPEN_TIME" size="1" name="OPEN_TIME"> <?php $arr = CSupportHolidays::GetOpenTimeArray(); foreach ($arr as $v => $n) { $ss = substr($v, 0, 3); if ($ss == "GB_") { echo '<optgroup label="' . GetMessage($n) . '">'; } elseif ($ss == "GE_") { echo '</optgroup>'; } else { echo '<option ' . ($v == CSupportPage::$holidaysFields->OPEN_TIME ? 'selected ' : '') . 'value="' . $v . '">' . GetMessage($n) . '</option>'; } } ?> </select> </td> </tr> <?php $adminForm->EndCustomField("OPEN_TIME"); $adminForm->BeginCustomField("DATE_FROM", GetMessage("SUP_DATE_FROM"), false); ?> <tr class="adm-detail-required-field"> <td width="40%" align="right"><?php echo $adminForm->GetCustomLabelHTML(); ?> :</td> <td width="60%"><?php echo CalendarDate("DATE_FROM", GetTime(CSupportPage::$holidaysFields->DATE_FROM, "FULL"), "supTabControl", "20"); ?> </td> </tr> <?php $adminForm->EndCustomField("DATE_FROM"); $adminForm->BeginCustomField("DATE_TILL", GetMessage("SUP_DATE_TILL"), false); ?> <tr class="adm-detail-required-field"> <td width="40%" align="right"><?php echo $adminForm->GetCustomLabelHTML(); ?> :</td> <td width="60%"><?php echo CalendarDate("DATE_TILL", GetTime(CSupportPage::$holidaysFields->DATE_TILL, "FULL"), "supTabControl", "20"); ?> </td> </tr> <?php $adminForm->EndCustomField("DATE_TILL"); $adminForm->BeginCustomField("SLA_ID", GetMessage("SUP_SLA_ID"), false); ?> <tr valign="top"> <td width="40%" align="right"><?php echo $adminForm->GetCustomLabelHTML(); ?> :</td> <td width="60%"> <?php $arrSLA_ID = CSupportPage::$holidaysSlaFields->getColumn("SLA_ID"); $arSort = array(); $ar = CTicketSLA::GetList($arSort, array(), $is_filtered); $idR = 0; while ($arR = $ar->Fetch()) { $idR++; echo InputType("checkbox", "SLA_ID[]", $arR["ID"], $arrSLA_ID, false, "", "", $idR) . '<label for="' . $idR . '"> ' . htmlspecialcharsbx($arR["NAME"]) . "</label><br>"; } ?> </td> </tr> <?php $adminForm->EndCustomField("SLA_ID"); $adminForm->BeginCustomField("DESCRIPTION", GetMessage("SUP_DESCRIPTION"), false); ?> <tr class="heading"> <td colspan="2"><?php echo $adminForm->GetCustomLabelHTML(); ?> :</td> </tr> <tr> <td colspan="2" align="center"><textarea style="width:60%; height:150px;" name="DESCRIPTION" wrap="VIRTUAL"><?php echo CSupportPage::$holidaysFields->getFieldForOutput("DESCRIPTION", CSupportTableFields::ATTRIBUTE); ?> </textarea></td> </tr> <?php $adminForm->EndCustomField("DESCRIPTION"); }
} } foreach ($arrODFV as $id => $arField) { $name = $arField["from"]["name"]; if (isset($_REQUEST[$name])) { $arrODFV[$id]["from"]["value"] = $_REQUEST[$name]; } $name = $arField["to"]["name"]; if (isset($_REQUEST[$name])) { $arrODFV[$id]["to"]["value"] = $_REQUEST[$name]; } $name = $arField["days_to_back"]["name"]; if (isset($_REQUEST[$name])) { $value = $arrODFV[$id]["days_to_back"]["value"] = $_REQUEST[$name]; if (strlen($value) > 0) { $arrODFV[$id]["from"]["value"] = GetTime($now - 86400 * intval($value)); } } } } elseif ($arParams["SAVE_IN_SESSION"]) { if (isset($_SESSION[$FILTER_NAME . "arrPFV"])) { $arrPFV = $_SESSION[$FILTER_NAME . "arrPFV"]; } if (isset($_SESSION[$FILTER_NAME . "arrCFV"])) { $arrCFV = $_SESSION[$FILTER_NAME . "arrCFV"]; } if (isset($_SESSION[$FILTER_NAME . "arrFFV"])) { $arrFFV = $_SESSION[$FILTER_NAME . "arrFFV"]; } if (isset($_SESSION[$FILTER_NAME . "arrOFV"])) { $arrOFV = $_SESSION[$FILTER_NAME . "arrOFV"];
function AddMessage($ticketID, $arFields, &$arrFILES, $checkRights = "Y") { if (strlen($arFields["MESSAGE"]) > 0 || is_array($arFields["FILES"]) && count($arFields["FILES"]) > 0) { $err_mess = CTicket::err_mess() . "<br>Function: AddMessage<br>Line: "; global $DB, $USER; $bAdmin = "N"; $bSupportTeam = "N"; $bSupportClient = "N"; if ($checkRights == "Y") { $bAdmin = CTicket::IsAdmin() ? "Y" : "N"; $bSupportTeam = CTicket::IsSupportTeam() ? "Y" : "N"; $bSupportClient = CTicket::IsSupportClient() ? "Y" : "N"; $uid = intval($USER->GetID()); } else { $bAdmin = "Y"; $bSupportTeam = "Y"; $bSupportClient = "Y"; //if (is_object($USER)) $uid = intval($USER->GetID()); else $uid = -1; $uid = 0; } if ($bAdmin != "Y" && $bSupportTeam != "Y" && $bSupportClient != "Y") { return false; } $ticketID = intval($ticketID); if ($ticketID <= 0) { return 0; } $strSql = "SELECT RESPONSIBLE_USER_ID, LAST_MESSAGE_USER_ID, REOPEN, SITE_ID, TITLE FROM b_ticket WHERE ID='{$ticketID}'"; $rsTicket = $DB->Query($strSql, false, $err_mess . __LINE__); $arTicket = $rsTicket->Fetch(); $currentResponsibleUserID = $arTicket["RESPONSIBLE_USER_ID"]; $siteID = $arTicket["SITE_ID"]; $tTitle = $arTicket["TITLE"]; $strSql = "SELECT max(C_NUMBER) MAX_NUMBER FROM b_ticket_message WHERE TICKET_ID='{$ticketID}'"; $z = $DB->Query($strSql, false, $err_mess . __LINE__); $zr = $z->Fetch(); $maxNumber = intval($zr['MAX_NUMBER']); if ((strlen(trim($arFields["MESSAGE_AUTHOR_SID"])) > 0 || intval($arFields["MESSAGE_AUTHOR_USER_ID"]) > 0 || intval($arFields["MESSAGE_CREATED_USER_ID"]) > 0) && ($bSupportTeam == "Y" || $bAdmin == "Y")) { $ownerUserID = intval($arFields["MESSAGE_AUTHOR_USER_ID"]); $ownerSid = "'" . $DB->ForSql($arFields["MESSAGE_AUTHOR_SID"], 2000) . "'"; $ownerGuestID = intval($arFields["MESSAGE_AUTHOR_GUEST_ID"]) > 0 ? intval($arFields["MESSAGE_AUTHOR_GUEST_ID"]) : "null"; $createdUserID = intval($arFields["MESSAGE_CREATED_USER_ID"]) > 0 ? intval($arFields["MESSAGE_CREATED_USER_ID"]) : intval($uid); $createdGuestID = intval($arFields["MESSAGE_CREATED_GUEST_ID"]) > 0 ? intval($arFields["MESSAGE_CREATED_GUEST_ID"]) : intval($_SESSION["SESS_GUEST_ID"]); } else { $ownerUserID = intval($uid); $ownerSid = "null"; $ownerGuestID = intval($_SESSION["SESS_GUEST_ID"]); $createdUserID = intval($uid); $createdGuestID = intval($_SESSION["SESS_GUEST_ID"]); } if (intval($ownerGuestID) <= 0) { $ownerGuestID = "null"; } $MessageBySupportTeam = "null"; if ($ownerUserID <= 0) { $ownerUserID = "null"; } else { $MessageBySupportTeam = "'N'"; if (CTicket::IsSupportTeam($ownerUserID) || CTicket::IsAdmin($ownerUserID)) { $MessageBySupportTeam = "'Y'"; } } if ($createdUserID <= 0) { $createdUserID = "null"; } if (intval($createdGuestID) <= 0) { $createdGuestID = "null"; } $createdModuleName = strlen($arFields["MESSAGE_CREATED_MODULE_NAME"]) > 0 ? "'" . $DB->ForSql($arFields["MESSAGE_CREATED_MODULE_NAME"], 255) . "'" : "'support'"; $externalID = intval($arFields["EXTERNAL_ID"]) > 0 ? intval($arFields["EXTERNAL_ID"]) : "null"; $externalField1 = $arFields["EXTERNAL_FIELD_1"]; if (is_set($arFields, "HIDDEN")) { $hidden = $arFields["HIDDEN"] == "Y" ? "Y" : "N"; } elseif (is_set($arFields, "IS_HIDDEN")) { $hidden = $arFields["IS_HIDDEN"] == "Y" ? "Y" : "N"; } $hidden = $hidden == "Y" ? "Y" : "N"; $notChangeStatus = is_set($arFields, "NOT_CHANGE_STATUS") && $arFields["NOT_CHANGE_STATUS"] == "Y" ? "Y" : "N"; $changeLastMessageDate = true; if ($arTicket["LAST_MESSAGE_USER_ID"] == $uid && $arTicket["REOPEN"] != "Y") { $changeLastMessageDate = false; } $TASK_TIME = intval($arFields["TASK_TIME"]) > 0 ? intval($arFields["TASK_TIME"]) : "null"; if (is_set($arFields, "LOG")) { $log = $arFields["LOG"] == "Y" ? "Y" : "N"; } elseif (is_set($arFields, "IS_LOG")) { $log = $arFields["IS_LOG"] == "Y" ? "Y" : "N"; } $log = $log == "Y" ? "Y" : "N"; if (is_set($arFields, "OVERDUE")) { $overdue = $arFields["OVERDUE"] == "Y" ? "Y" : "N"; } elseif (is_set($arFields, "IS_OVERDUE")) { $overdue = $arFields["IS_OVERDUE"] == "Y" ? "Y" : "N"; } $overdue = $overdue == "Y" ? "Y" : "N"; $arFieldsI = array("TIMESTAMP_X" => $DB->GetNowFunction(), "DAY_CREATE" => $DB->CurrentDateFunction(), "C_NUMBER" => $maxNumber + 1, "TICKET_ID" => $ticketID, "IS_HIDDEN" => "'" . $hidden . "'", "IS_LOG" => "'" . $log . "'", "IS_OVERDUE" => "'" . $overdue . "'", "MESSAGE" => "'" . $DB->ForSql($arFields["MESSAGE"]) . "'", "MESSAGE_SEARCH" => "'" . $DB->ForSql(ToUpper($arFields["MESSAGE"])) . "'", "EXTERNAL_ID" => $externalID, "EXTERNAL_FIELD_1" => strlen($externalField1) > 0 ? "'" . $DB->ForSql($externalField1) . "'" : "null", "OWNER_USER_ID" => $ownerUserID, "OWNER_GUEST_ID" => $ownerGuestID, "OWNER_SID" => $ownerSid, "SOURCE_ID" => intval($arFields["MESSAGE_SOURCE_ID"]), "CREATED_USER_ID" => $createdUserID, "CREATED_GUEST_ID" => $createdGuestID, "CREATED_MODULE_NAME" => $createdModuleName, "MODIFIED_USER_ID" => $createdUserID, "MODIFIED_GUEST_ID" => $createdGuestID, "MESSAGE_BY_SUPPORT_TEAM" => $MessageBySupportTeam, "TASK_TIME" => $TASK_TIME, "NOT_CHANGE_STATUS" => "'" . $notChangeStatus . "'"); CTimeZone::Disable(); $arFieldsI["DATE_CREATE"] = $DB->CharToDateFunction(GetTime(time(), "FULL")); CTimeZone::Enable(); if ($hidden != "Y" && $log != "Y" && $changeLastMessageDate == false) { if ($MessageBySupportTeam == "'Y'" || $maxNumber <= 0 && array_key_exists('SOURCE_SID', $arFields) && $arFields['SOURCE_SID'] === 'email') { $arFieldsI["NOT_CHANGE_STATUS"] = "'N'"; } else { $arFieldsI["NOT_CHANGE_STATUS"] = "'Y'"; } } if (intval($currentResponsibleUserID) > 0) { $arFieldsI["CURRENT_RESPONSIBLE_USER_ID"] = $currentResponsibleUserID; } $mid = $DB->Insert("b_ticket_message", $arFieldsI, $err_mess . __LINE__); if (intval($mid) > 0) { $not_image_extension_suffix = COption::GetOptionString("support", "NOT_IMAGE_EXTENSION_SUFFIX"); $not_image_upload_dir = COption::GetOptionString("support", "NOT_IMAGE_UPLOAD_DIR"); $max_size = COption::GetOptionString("support", "SUPPORT_MAX_FILESIZE"); // сохраняем приаттаченные файлы $arFILES = $arFields["FILES"]; if (is_array($arFILES) && count($arFILES) > 0) { while (list($key, $arFILE) = each($arFILES)) { if (strlen($arFILE["name"]) > 0) { if ($bSupportTeam != "Y" && $bAdmin != "Y") { $max_file_size = intval($max_size) * 1024; } $fes = ""; $upload_dir = "support"; if (!CFile::IsImage($arFILE["name"], $arFILE["type"])) { $fes = $not_image_extension_suffix; $arFILE["name"] .= $fes; $upload_dir = $not_image_upload_dir; } if (!array_key_exists("MODULE_ID", $arFILE) || strlen($arFILE["MODULE_ID"]) <= 0) { $arFILE["MODULE_ID"] = "support"; } $fid = intval(CFile::SaveFile($arFILE, $upload_dir, $max_file_size)); if ($fid > 0) { $md5 = md5(uniqid(mt_rand(), true) . time()); $arFILE["HASH"] = $md5; $arFILE["FILE_ID"] = $fid; $arFILE["MESSAGE_ID"] = $mid; $arFILE["TICKET_ID"] = $ticketID; $arFILE["EXTENSION_SUFFIX"] = $fes; $arFields_fi = array("HASH" => "'" . $DB->ForSql($md5, 255) . "'", "MESSAGE_ID" => $mid, "FILE_ID" => $fid, "TICKET_ID" => $ticketID, "EXTENSION_SUFFIX" => strlen($fes) > 0 ? "'" . $DB->ForSql($fes, 255) . "'" : "null"); $link_id = $DB->Insert("b_ticket_message_2_file", $arFields_fi, $err_mess . __LINE__); if (intval($link_id) > 0) { $arFILE["LINK_ID"] = $link_id; $arrFILES[] = $arFILE; } } } } } // если это не было скрытым сообщением или сообщение лога, то if ($notChangeStatus != "Y" && $hidden != "Y" && $log != "Y") { // обновим ряд параметров обращения if (!isset($arFields["AUTO_CLOSE_DAYS"])) { $RESET_AUTO_CLOSE = "Y"; } CTicket::UpdateLastParams($ticketID, $RESET_AUTO_CLOSE, $changeLastMessageDate, true); // при необходимости создадим или удалим агенты-напоминальщики //CTicketReminder::Update($ticketID); } if ($log != "Y") { CSupportSearch::writeWordsInTable($mid, $siteID, $tTitle . " " . $arFields["MESSAGE"]); } //если была установлена галочка "не изменять статус обращени" - пересчитаем количество собщений if ($notChangeStatus == "Y" || $hidden == "Y") { CTicket::UpdateMessages($ticketID); } } } return $mid; }
function Notify($arPost, $arBlog, $arParams) { global $DB; if (empty($arBlog)) { $arBlog = CBlog::GetByID($arPost["BLOG_ID"]); } if ($arParams["bSoNet"] || $arBlog["EMAIL_NOTIFY"] == "Y" && $arParams["user_id"] != $arBlog["OWNER_ID"]) { $BlogUser = CBlogUser::GetByID($arParams["user_id"], BLOG_BY_USER_ID); $BlogUser = CBlogTools::htmlspecialcharsExArray($BlogUser); $res = CUser::GetByID($arBlog["OWNER_ID"]); $arOwner = $res->GetNext(); $dbUser = CUser::GetByID($arParams["user_id"]); $arUser = $dbUser->Fetch(); $AuthorName = CBlogUser::GetUserNameEx($arUser, $BlogUser, $arParams); $parserBlog = new blogTextParser(false, $arParams["PATH_TO_SMILE"]); $text4mail = $arPost["DETAIL_TEXT"]; if ($arPost["DETAIL_TEXT_TYPE"] == "html") { $text4mail = HTMLToTxt($text4mail); } $arImages = array(); $res = CBlogImage::GetList(array("ID" => "ASC"), array("POST_ID" => $arPost["ID"], "BLOG_ID" => $arBlog["ID"], "IS_COMMENT" => "N")); while ($arImage = $res->Fetch()) { $arImages[$arImage['ID']] = $arImage['FILE_ID']; } $text4mail = $parserBlog->convert4mail($text4mail, $arImages); $dbSite = CSite::GetByID(SITE_ID); $arSite = $dbSite->Fetch(); $serverName = htmlspecialcharsEx($arSite["SERVER_NAME"]); if (strlen($serverName) <= 0) { if (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0) { $serverName = SITE_SERVER_NAME; } else { $serverName = COption::GetOptionString("main", "server_name", ""); } } } if (!$arParams["bSoNet"] && $arBlog["EMAIL_NOTIFY"] == "Y" && $arParams["user_id"] != $arBlog["OWNER_ID"] && IntVal($arBlog["OWNER_ID"]) > 0) { CEvent::Send("NEW_BLOG_MESSAGE", SITE_ID, array("BLOG_ID" => $arBlog["ID"], "BLOG_NAME" => htmlspecialcharsBack($arBlog["NAME"]), "BLOG_URL" => $arBlog["URL"], "MESSAGE_TITLE" => $arPost["TITLE"], "MESSAGE_TEXT" => $text4mail, "MESSAGE_DATE" => GetTime(MakeTimeStamp($arPost["DATE_PUBLISH"]) - CTimeZone::GetOffset(), "FULL"), "MESSAGE_PATH" => "http://" . $serverName . CComponentEngine::MakePathFromTemplate(htmlspecialcharsBack($arParams["PATH_TO_POST"]), array("blog" => $arBlog["URL"], "post_id" => $arPost["ID"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"])), "AUTHOR" => $AuthorName, "EMAIL_FROM" => COption::GetOptionString("main", "email_from", "*****@*****.**"), "EMAIL_TO" => $arOwner["EMAIL"])); } if ($arParams["bSoNet"] && $arPost["ID"] && CModule::IncludeModule("socialnetwork")) { if ($arPost["DETAIL_TEXT_TYPE"] == "html" && $arParams["allowHTML"] == "Y" && $arBlog["ALLOW_HTML"] == "Y") { $arAllow = array("HTML" => "Y", "ANCHOR" => "Y", "IMG" => "Y", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "Y", "QUOTE" => "Y", "CODE" => "Y"); if ($arParams["allowVideo"] != "Y") { $arAllow["VIDEO"] = "N"; } $text4message = $parserBlog->convert($arPost["DETAIL_TEXT"], false, $arImages, $arAllow); } else { $arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "TABLE" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "N"); $text4message = $parserBlog->convert($arPost["DETAIL_TEXT"], false, $arImages, $arAllow, array("isSonetLog" => true)); } $arSoFields = array("EVENT_ID" => "blog_post", "=LOG_DATE" => strlen($arPost["DATE_PUBLISH"]) > 0 ? MakeTimeStamp($arPost["DATE_PUBLISH"], CSite::GetDateFormat("FULL", $SITE_ID)) > time() + CTimeZone::GetOffset() ? $DB->CharToDateFunction($arPost["DATE_PUBLISH"], "FULL", SITE_ID) : $DB->CurrentTimeFunction() : $DB->CurrentTimeFunction(), "TITLE_TEMPLATE" => "#USER_NAME# " . GetMessage("BLG_SONET_TITLE"), "TITLE" => $arPost["TITLE"], "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "MODULE_ID" => "blog", "CALLBACK_FUNC" => false, "SOURCE_ID" => $arPost["ID"], "ENABLE_COMMENTS" => array_key_exists("ENABLE_COMMENTS", $arPost) && $arPost["ENABLE_COMMENTS"] == "N" ? "N" : "Y"); $arSoFields["RATING_TYPE_ID"] = "BLOG_POST"; $arSoFields["RATING_ENTITY_ID"] = intval($arPost["ID"]); if ($arParams["bGroupMode"]) { $arSoFields["ENTITY_TYPE"] = SONET_ENTITY_GROUP; $arSoFields["ENTITY_ID"] = $arParams["SOCNET_GROUP_ID"]; $arSoFields["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"], "post_id" => $arPost["ID"])); } else { $arSoFields["ENTITY_TYPE"] = SONET_ENTITY_USER; $arSoFields["ENTITY_ID"] = $arBlog["OWNER_ID"]; $arSoFields["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array("blog" => $arBlog["URL"], "user_id" => $arBlog["OWNER_ID"], "group_id" => $arParams["SOCNET_GROUP_ID"], "post_id" => $arPost["ID"])); } if (intval($arParams["user_id"]) > 0) { $arSoFields["USER_ID"] = $arParams["user_id"]; } $logID = CSocNetLog::Add($arSoFields, false); if (intval($logID) > 0) { $socnetPerms = CBlogPost::GetSocNetPermsCode($arPost["ID"]); if (!in_array("U" . $arPost["AUTHOR_ID"], $socnetPerms)) { $socnetPerms[] = "U" . $arPost["AUTHOR_ID"]; } $socnetPerms[] = "SA"; // socnet admin CSocNetLog::Update($logID, array("TMP_ID" => $logID)); if (CModule::IncludeModule("extranet")) { $arSiteID = CExtranet::GetSitesByLogDestinations($socnetPerms); CSocNetLog::Update($logID, array("SITE_ID" => $arSiteID)); } CSocNetLogRights::DeleteByLogID($logID); CSocNetLogRights::Add($logID, $socnetPerms); CSocNetLog::SendEvent($logID, "SONET_NEW_EVENT", $logID); return $logID; } } }
function GetNextStartDate($CHANNEL_ID) { global $DB; $err_mess = CVote::err_mess() . "<br>Function: GetNextStartDate<br>Line: "; $CHANNEL_ID = intval($CHANNEL_ID); $strSql = "\r\n\t\t\tSELECT\r\n\t\t\t\t" . $DB->DateToCharFunction("max(dateadd(second, 1, DATE_END))") . "\tMIN_DATE_START\r\n\t\t\tFROM\r\n\t\t\t\tb_vote\r\n\t\t\tWHERE\r\n\t\t\t\tCHANNEL_ID = '{$CHANNEL_ID}'\r\n\t\t\t"; $z = $DB->Query($strSql, false, $err_mess . __LINE__); $zr = $z->Fetch(); if (strlen($zr["MIN_DATE_START"]) <= 0) { return GetTime(time(), "FULL"); } else { return $zr["MIN_DATE_START"]; } }
<?if(!defined("B_PROLOG_INCLUDED")||B_PROLOG_INCLUDED!==true)die(); $controlName = $arParams["~INPUT_NAME"]; $controller = "BX('votes-".$arResult["CONTROL_UID"]."')"; $pr = $controlName."_DATA"; $arVote = reset($arResult["VOTES"]); $arVote["DATE_END"] = (!$arVote["ID"] && !$arParams["bVarsFromForm"] ? GetTime((time() + 30*86400)) : $arVote["DATE_END"]); $uid = $this->randString(6); ?><input type="hidden" name="VOTE_ID" value="<?php echo $arVote["ID"]; ?> " /><? ?><input type="hidden" name="<?php echo $controlName; ?> " value="<?php echo $arVote["ID"]; ?> " /><? ?><input type="hidden" name="<?php echo $controlName; ?> _DATA[ID]" value="<?php echo $arVote["ID"]; ?> " /><? ?><input type="hidden" name="<?php echo $controlName; ?>
} elseif ($USER->CanDoOperation('install_updates')) { //show support ending warning $supportFinishDate = COption::GetOptionString('main', '~support_finish_date', ''); if ($supportFinishDate != '' && is_array($aSupportFinishDate = ParseDate($supportFinishDate, 'ymd'))) { $aGlobalOpt = CUserOptions::GetOption("global", "settings", array()); if ($aGlobalOpt['messages']['support'] != 'N') { $supportFinishStamp = mktime(0, 0, 0, $aSupportFinishDate[1], $aSupportFinishDate[0], $aSupportFinishDate[2]); $supportDateDiff = ceil(($supportFinishStamp - time()) / 86400); $sSupportMess = ''; $sSupWIT = " (<span onclick=\"BX.toggle(BX('supdescr'))\" style='border-bottom: 1px dashed #1c91e7; color: #1c91e7; cursor: pointer;'>" . GetMessage("prolog_main_support_wit") . "</span>)"; if ($supportDateDiff >= 0 && $supportDateDiff <= 30) { $sSupportMess = GetMessage("prolog_main_support11", array('#FINISH_DATE#' => GetTime($supportFinishStamp), '#DAYS_AGO#' => $supportDateDiff == 0 ? GetMessage("prolog_main_today") : GetMessage('prolog_main_support_days', array('#N_DAYS_AGO#' => $supportDateDiff)), '#LICENSE_KEY#' => md5(LICENSE_KEY), '#WHAT_IS_IT#' => $sSupWIT, '#SUP_FINISH_DATE#' => GetTime(mktime(0, 0, 0, $aSupportFinishDate[1] + 1, $aSupportFinishDate[0], $aSupportFinishDate[2])))); } elseif ($supportDateDiff < 0 && $supportDateDiff >= -30) { $sSupportMess = GetMessage("prolog_main_support21", array('#FINISH_DATE#' => GetTime($supportFinishStamp), '#DAYS_AGO#' => -$supportDateDiff, '#LICENSE_KEY#' => md5(LICENSE_KEY), '#WHAT_IS_IT#' => $sSupWIT, '#SUP_FINISH_DATE#' => GetTime(mktime(0, 0, 0, $aSupportFinishDate[1] + 1, $aSupportFinishDate[0], $aSupportFinishDate[2])))); } elseif ($supportDateDiff < -30) { $sSupportMess = GetMessage("prolog_main_support31", array('#FINISH_DATE#' => GetTime($supportFinishStamp), '#LICENSE_KEY#' => md5(LICENSE_KEY), '#WHAT_IS_IT#' => $sSupWIT)); } if ($sSupportMess != '') { $userOption = CUserOptions::GetOption("main", "admSupInf"); if (mktime() > $userOption["showInformerDate"]) { $prolongUrl = "/bitrix/admin/buy_support.php?lang=" . LANGUAGE_ID; if (!in_array(LANGUAGE_ID, array("ru", "ua")) || IntVal(COption::GetOptionString("main", "~PARAM_PARTNER_ID")) <= 0) { require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/update_client.php"; $prolongUrl = "http://www.1c-bitrix.ru/buy_tmp/key_update.php?license_key=" . md5(CUpdateClient::GetLicenseKey()) . "&tobasket=y&lang=" . LANGUAGE_ID; } echo BeginNote('style="position: relative; top: -15px;"'); ?> <style> #menu-popup-prolong-popup .popup-window-hr { display:none;} #menu-popup-prolong-popup .menu-popup .menu-popup-item {min-width: 100px; margin-top: 7px;} #menu-popup-prolong-popup .menu-popup-item:hover {background-color: #fff !important;}
$typeItems .= str_replace(array("#GROUP_ID#", "#GROUP_NAME#", "#LINK#", "#SECTION_ID#"), array(intval($groupID), CUtil::JSEscape($arGroup['GROUP_NAME']), CUtil::JSEscape($arGroup['PATH_FILES']), intval($arGroup['SECTION_ID'])), "'SG#GROUP_ID#' : {'id' : 'SG#GROUP_ID#', 'name' : '#GROUP_NAME#', 'type' : 'socnet', 'link' : '#LINK#', 'section_id': '#SECTION_ID#'},\n"); } } } $typeItems .= "}"; $disabledItems = array(); $items = "{\n"; foreach ($arResult["GRID_DATA"] as $row) { if (!isset($row['data']['NAME'])) { continue; } $timeStampXUnix = $row['data']['TIMESTAMP_X_UNIX']; $timeStampXUnixD = FormatDate('X', $timeStampXUnix); if ($timeStampXUnix == null) { $timeStampXUnix = MakeTimeStamp($row['data']['TIMESTAMP_X']); $timeStampXUnixD = GetTime($timeStampXUnix, "SHORT"); } //element if WF_NEW = 'Y' and WF_STATUS_ID = 2 - not public if ($row['data']['TYPE'] === "E" && $row['data']['WF_STATUS_ID'] != 1) { $disabledItems[$row['id']] = array('hint' => GetMessageJS('WD_DESCR_DISABLE_ATTACH_NON_PUBLIC_FILE')); } $data = array("#ID#" => $row['id'], "#TYPE#" => $row['data']['FTYPE'], "#NAME#" => CUtil::JSEscape($row['data']['NAME']), "#PATH#" => CUtil::JSEscape($row['data']['PATH']), "#LINK#" => CUtil::JSEscape($row['data']['TYPE'] === "S" ? $row['data']['URL']['THIS'] : $row['data']['URL']['EDIT']), "#SIZE_FORMATTED#" => isset($row['data']['FILE_SIZE']) ? $row['data']['FILE_SIZE'] : '', "#SIZE#" => isset($row['data']['FILE']['FILE_SIZE']) ? intval($row['data']['FILE']['FILE_SIZE']) : 0, "#MODIFIED_BY#" => CUtil::JSEscape($row['data']['MODIFIED_BY']['FULL_NAME']), "#MODIFIED_DATE_FORMATTED#" => $timeStampXUnixD, "#MODIFIED_DATE#" => $timeStampXUnix); $items .= str_replace(array_keys($data), array_values($data), "'#ID#' : {'id' : '#ID#', 'type': '#TYPE#', 'link': '#LINK#', 'name': '#NAME#', 'path': '#PATH#', 'size': '#SIZE_FORMATTED#', 'sizeInt': '#SIZE#', 'modifyBy': '#MODIFIED_BY#', 'modifyDate': '#MODIFIED_DATE_FORMATTED#', 'modifyDateInt': '#MODIFIED_DATE#'},\n"); } $items .= "}"; if (isset($_REQUEST['WD_LOAD_ITEMS'])) { ?> { 'FORM_NAME' : '<?php echo CUtil::JSEscape(isset($_REQUEST['FORM_NAME']) ? $_REQUEST['FORM_NAME'] : ''); ?>
$arParams["CACHE_TIME"] = 20; } $arParams["CACHE_FOR_ADMIN"] = $arParams["CACHE_FOR_ADMIN"] != "N"; //Check if we can not cache if (!$arParams["CACHE_FOR_ADMIN"] && $USER->IsAdmin()) { $arParams["CACHE_TIME"] = 0; } elseif ($arParams["CACHE_TYPE"] == "N" || $arParams["CACHE_TYPE"] == "A" && COption::GetOptionString("main", "component_cache_on", "Y") == "N") { $arParams["CACHE_TIME"] = 0; } $arParams["IS_ADMIN"] = $USER->IsAdmin(); $obCache = new CPHPCache(); $cache_id = LANG; if (($tzOffset = CTimeZone::GetOffset()) != 0) { $cache_id .= "_" . $tzOffset; } if ($this->startResultCache()) { if (!CModule::IncludeModule("statistic")) { $this->abortResultCache(); return; } $arResult["STATISTIC"] = CTraffic::GetCommonValues(array(), true); if (!is_array($arResult["STATISTIC"])) { $this->abortResultCache(); return; } $arResult["TODAY"] = GetTime(time(), "SHORT"); $arResult["NOW"] = GetTime(time() + $tzOffset, "FULL"); $arResult["IS_ADMIN"] = $arParams["IS_ADMIN"]; $this->SetResultCacheKeys(array()); $this->IncludeComponentTemplate(); }
function UpdateLastParamsN($ticketID, $dateType, $recalculateSupportDeadline = true, $setReopenDefault = true) { $err_mess = CAllTicket::err_mess() . "<br>Function: UpdateLastParamsN<br>Line: "; global $DB, $USER; $ticketID = intval($ticketID); if ($ticketID <= 0) { return; } $arSupportTeam = CTicket::GetSupportTeamAndAdminUsers(); $arFields = array("LAST_MESSAGE_DATE" => "null", "LAST_MESSAGE_USER_ID" => "null", "LAST_MESSAGE_GUEST_ID" => "null", "LAST_MESSAGE_SID" => "null", "D_1_USER_M_AFTER_SUP_M" => "null", "ID_1_USER_M_AFTER_SUP_M" => "null", "LAST_MESSAGE_BY_SUPPORT_TEAM" => "'Y'"); if ($setReopenDefault) { $arFields["REOPEN"] = "'N'"; } $DB->StartUsingMasterOnly(); $strSql = "\n\t\t\tSELECT\n\t\t\t\tT.ID,\n\t\t\t\tT.SLA_ID,\n\t\t\t\tT.DATE_CLOSE,\n\t\t\t\t" . $DB->DateToCharFunction("T.DEADLINE_SOURCE_DATE", "FULL") . " DEADLINE_SOURCE_DATE,\n\t\t\t\t" . $DB->DateToCharFunction("T.D_1_USER_M_AFTER_SUP_M", "FULL") . " DATE_OLD,\n\t\t\t\tT.IS_OVERDUE,\n\t\t\t\tSLA.RESPONSE_TIME_UNIT,\n\t\t\t\tSLA.RESPONSE_TIME,\n\t\t\t\tSLA.NOTICE_TIME_UNIT,\n\t\t\t\tSLA.NOTICE_TIME\n\t\t\tFROM\n\t\t\t\tb_ticket T\n\t\t\t\tINNER JOIN b_ticket_sla SLA\n\t\t\t\t\tON T.SLA_ID = SLA.ID\n\t\t\t\t\t\tAND T.ID = {$ticketID}\n\t\t\t"; $rs = $DB->Query($strSql, false, $err_mess . __LINE__); $arTicket = $rs->Fetch(); if (!$arTicket) { $DB->StopUsingMasterOnly(); return; } $arMessagesAll = array(); $arLastMess = null; $arFirstUserMessAfterSupportMess = null; $allTime = 0; $messages = 0; $messAfterSupportMess = true; $strSql = "\n\t\t\tSELECT\n\t\t\t\tID,\n\t\t\t\t" . $DB->DateToCharFunction("DATE_CREATE", "FULL") . " DATE_CREATE,\n\t\t\t\tOWNER_USER_ID,\n\t\t\t\tOWNER_GUEST_ID,\n\t\t\t\tOWNER_SID,\n\t\t\t\tTASK_TIME,\n\t\t\t\tIS_OVERDUE,\n\t\t\t\tIS_HIDDEN,\n\t\t\t\tNOT_CHANGE_STATUS\n\t\t\tFROM\n\t\t\t\tb_ticket_message\n\t\t\tWHERE\n\t\t\t\tTICKET_ID={$ticketID}\n\t\t\tAND(NOT(IS_LOG='Y'))\n\t\t\tORDER BY\n\t\t\t\tC_NUMBER\n\t\t\t"; //NOT_CHANGE_STATUS //IS_HIDDEN //IS_OVERDUE $rs = $DB->Query($strSql, false, $err_mess . __LINE__); $DB->StopUsingMasterOnly(); while ($arM = $rs->Fetch()) { $arMessagesAll[] = $arM; if ($arM["IS_OVERDUE"] !== 'Y') { if ($arM["IS_HIDDEN"] !== 'Y') { if ($arM["NOT_CHANGE_STATUS"] !== 'Y') { $arLastMess = $arM; } $messages++; } $allTime += intval($arM["TASK_TIME"]); } if ($arM["IS_HIDDEN"] !== 'Y' && $arM["NOT_CHANGE_STATUS"] !== 'Y') { if (in_array(intval($arM["OWNER_USER_ID"]), $arSupportTeam)) { $arFirstUserMessAfterSupportMess = null; $messAfterSupportMess = true; } elseif ($messAfterSupportMess) { $arFirstUserMessAfterSupportMess = $arM; $messAfterSupportMess = false; } } } if ($arLastMess !== null) { $arFields["LAST_MESSAGE_USER_ID"] = $arLastMess["OWNER_USER_ID"]; //if ($changeLastMessageDate) //{ $arFields["LAST_MESSAGE_DATE"] = $DB->CharToDateFunction($arLastMess["DATE_CREATE"]); //} $arFields["LAST_MESSAGE_GUEST_ID"] = intval($arLastMess["OWNER_GUEST_ID"]); $arFields["LAST_MESSAGE_SID"] = "'" . $DB->ForSql($arLastMess["OWNER_SID"], 255) . "'"; } $arFields["MESSAGES"] = $messages; $arFields["PROBLEM_TIME"] = $allTime; if ($arFirstUserMessAfterSupportMess !== null) { $arFields["D_1_USER_M_AFTER_SUP_M"] = $DB->CharToDateFunction($arFirstUserMessAfterSupportMess["DATE_CREATE"]); $arFields["ID_1_USER_M_AFTER_SUP_M"] = intval($arFirstUserMessAfterSupportMess["ID"]); $arFields["LAST_MESSAGE_BY_SUPPORT_TEAM"] = "'N'"; } if (is_array($dateType["EVENT"]) && in_array(CTicket::REOPEN, $dateType["EVENT"])) { $arFields["DEADLINE_SOURCE_DATE"] = $DB->CharToDateFunction(GetTime(time() + CTimeZone::GetOffset(), "FULL")); } elseif ($arTicket["IS_OVERDUE"] == "Y") { $recalculateSupportDeadline = false; } $recalculateSupportDeadline = $recalculateSupportDeadline && intval($arTicket["DATE_CLOSE"]) <= 0 && $arFields["LAST_MESSAGE_BY_SUPPORT_TEAM"] == "'N'"; if (!$recalculateSupportDeadline) { if ($arFields["LAST_MESSAGE_BY_SUPPORT_TEAM"] == "'Y'" || intval($arTicket["DATE_CLOSE"]) > 0) { $arFields["SUPPORT_DEADLINE_NOTIFY"] = "null"; $arFields["SUPPORT_DEADLINE"] = "null"; $arFields["IS_OVERDUE"] = "'N'"; $arFields["IS_NOTIFIED"] = "'N'"; } } $DB->Update("b_ticket", $arFields, "WHERE ID='" . $ticketID . "'", $err_mess . __LINE__); if ($recalculateSupportDeadline) { $arTicket["M_ID"] = $arFirstUserMessAfterSupportMess["ID"]; $arTicket["D_1_USER_M_AFTER_SUP_M"] = $arFirstUserMessAfterSupportMess["DATE_CREATE"]; CTicketReminder::RecalculateSupportDeadlineForOneTicket($arTicket, $arFields, $dateType); } /* LAST_MESSAGE_DATE LAST_MESSAGE_USER_ID LAST_MESSAGE_GUEST_ID LAST_MESSAGE_SID MESSAGES REOPEN PROBLEM_TIME D_1_USER_M_AFTER_SUP_M ID_1_USER_M_AFTER_SUP_M LAST_MESSAGE_BY_SUPPORT_TEAM DEADLINE_SOURCE_DATE SUPPORT_DEADLINE_NOTIFY SUPPORT_DEADLINE IS_OVERDUE IS_NOTIFIED */ }
echo GetMessage("TRIAL_ATTENTION_TEXT5_" . $vendor); } //saas echo EndNote(); } elseif ($USER->CanDoOperation('install_updates')) { //show support ending warning $supportFinishDate = COption::GetOptionString('main', '~support_finish_date', ''); if ($supportFinishDate != '' && is_array($aSupportFinishDate = ParseDate($supportFinishDate, 'ymd'))) { $aGlobalOpt = CUserOptions::GetOption("global", "settings", array()); if ($aGlobalOpt['messages']['support'] != 'N') { $supportFinishStamp = mktime(0, 0, 0, $aSupportFinishDate[1], $aSupportFinishDate[0], $aSupportFinishDate[2]); $supportDateDiff = ceil(($supportFinishStamp - time()) / 86400); $sSupportMess = ''; if ($supportDateDiff >= 0 && $supportDateDiff <= 30) { $sSupportMess = GetMessage("prolog_main_support1", array('#FINISH_DATE#' => GetTime($supportFinishStamp), '#DAYS_AGO#' => $supportDateDiff == 0 ? GetMessage("prolog_main_today") : GetMessage('prolog_main_support_days', array('#N_DAYS_AGO#' => $supportDateDiff)), '#LICENSE_KEY#' => md5(LICENSE_KEY))); } elseif ($supportDateDiff < 0 && $supportDateDiff >= -30) { $sSupportMess = GetMessage("prolog_main_support2", array('#FINISH_DATE#' => GetTime($supportFinishStamp), '#DAYS_AGO#' => -$supportDateDiff, '#LICENSE_KEY#' => md5(LICENSE_KEY))); } elseif ($supportDateDiff < -30) { $sSupportMess = GetMessage("prolog_main_support3", array('#FINISH_DATE#' => GetTime($supportFinishStamp), '#LICENSE_KEY#' => md5(LICENSE_KEY))); } if ($sSupportMess != '') { echo BeginNote('style="position: relative; top: -15px;"'); echo $sSupportMess; echo EndNote(); } } } } //defined("DEMO") && DEMO == "Y" } //$USER->IsAuthorized()
<th style="width:100px;"><div>만료일</div></th> <th style="width:100px;"><div>상태</div></th> <th style="width:100px;"><div>설정</div></th> </tr> </thead> <tbody> <?php foreach ($services as $service) { ?> <tr> <td><div class="center"><?php echo $service->client_id; ?> </div></td> <td><div class="center"><?php echo GetTime('Y-m-d', $service->expire_date); ?> </div></td> <td><div class="center"><?php echo $service->expire_date < time() ? '<span class="fontRed">만료됨</span>' : ($service->server_id != '' ? '<span class="fontBlue">연결됨</span>' : '연결대기'); ?> </div></td> <td rowspan="2"> <div class="center"> <button type="button" class="btn btnBlue" onclick="Minitalk.hosting.extend(<?php echo $service->idx; ?> );"><i class="fa fa-calendar-o"></i> 기간연장</button> </div> <div class="center" style="margin-top:5px;"> <button type="button" class="btn btnRed" onclick="Minitalk.hosting.disconnect(<?php
Data ********************************************************************/ $arResult["bVarsFromForm"] = false; if ($arParams["ACTION"] != "NEW") { $arResult["FORM"]["ACTIVE"] = $arResult["SECTION"]["ACTIVE"]; $arResult["FORM"]["NAME"] = htmlspecialcharsEx($arResult["SECTION"]["~NAME"]); $arResult["FORM"]["DESCRIPTION"] = htmlspecialcharsEx($arResult["SECTION"]["~DESCRIPTION"]); $arResult["FORM"]["~DATE"] = $arResult["SECTION"]["~DATE"]; $arResult["FORM"]["~PASSWORD"] = $arResult["SECTION"]["~PASSWORD"]; } else { $arResult["FORM"]["ACTIVE"] = ""; $arResult["FORM"]["NAME"] = ""; $arResult["FORM"]["DESCRIPTION"] = ""; $arResult["FORM"]["IBLOCK_SECTION_ID"] = $arParams["SECTION_ID"] > 0 && $arParams["SECTION_ID"] != $arResult["GALLERY"]["ID"] ? $arParams["SECTION_ID"] : 0; $arResult["FORM"]["~DATE"] = $arResult["SECTION"]["~DATE"]; $arResult["FORM"]["~DATE"]["VALUE"] = GetTime(time()); $arResult["FORM"]["~PASSWORD"] = $arResult["SECTION"]["~PASSWORD"]; $arResult["FORM"]["~PASSWORD"]["VALUE"] = ""; } if ($bVarsFromForm) { $arResult["bVarsFromForm"] = true; $arResult["FORM"]["ACTIVE"] = $_REQUEST["ACTIVE"] == "Y" ? "Y" : "N"; $arResult["FORM"]["NAME"] = htmlSpecialChars($_REQUEST["NAME"]); $arResult["FORM"]["DESCRIPTION"] = htmlSpecialChars($_REQUEST["DESCRIPTION"]); $arResult["FORM"]["DATE"] = $arResult["SECTION"]["~DATE"]; $arResult["FORM"]["DATE"]["VALUE"] = htmlSpecialChars($_REQUEST["UF_DATE"]); } if (intVal($arResult["SECTION"]["ID"]) > 0) { $arResult["URL"] = CComponentEngine::MakePathFromTemplate($arParams["SECTION_URL"], array("USER_ALIAS" => $arParams["USER_ALIAS"], "SECTION_ID" => $arResult["SECTION"]["ID"])); } elseif ($arParams["BEHAVIOUR"] == "USER") { $arResult["URL"] = CComponentEngine::MakePathFromTemplate($arParams["GALLERY_URL"], array("USER_ALIAS" => $arParams["USER_ALIAS"]));
function EchoGraphData($arrayX, $MinX, $MaxX, $arrayY, $MinY, $MaxY, $arrX, $arrY, $die = true) { echo "<pre>"; echo "--------------------------------------\n"; while (list($key, $value) = each($arrX)) { echo date("d.m.Y", $value) . " = " . $arrY[$key] . "\n"; } echo "--------------------------------------\n"; echo "Signs of X axis (arrayX):\n"; print_r($arrayX); echo "MinX: " . $MinX . " - " . date("d.m", $MinX) . "\n"; echo "MaxX: " . $MaxX . " - " . date("d.m", $MaxX) . "\n\n"; echo "Signs of Y axis (arrayY):\n"; print_r($arrayY); echo "MinY: " . $MinY . "\n"; echo "MaxY: " . $MaxY . "\n\n"; echo "Values of X axis (arrX):\n"; $i = 0; foreach ($arrX as $d) { echo "[" . $i . "] => " . GetTime($d) . " (" . $d . ")" . "\n"; $i++; } echo "\nValues of Y axis (arrY):\n"; print_r($arrY); echo "--------------------------------------\n"; echo "</pre>"; if ($die) { die; } }
} ClearVars(); $stoplist = CStoplist::GetByID($ID); if (!($stoplist && $stoplist->ExtractFields())) { $ID = 0; $str_ACTIVE = "Y"; $str_MASK_1 = "255"; $str_MASK_2 = "255"; $str_MASK_3 = "255"; $str_MASK_4 = "255"; $str_IP_1 = $net1; $str_IP_2 = $net2; $str_IP_3 = $net3; $str_IP_4 = $net4; $str_USER_AGENT = $user_agent; $str_DATE_START = GetTime(time() + CTimeZone::GetOffset(), "FULL"); $str_MESSAGE = GetMessage("STAT_DEFAULT_MESSAGE"); $str_MESSAGE_LID = LANG; $str_SAVE_STATISTIC = "Y"; } if ($message) { $statDB->InitTableVarsForEdit("b_stop_list", "", "str_"); } if ($ID > 0) { $sDocTitle = GetMessage("STAT_EDIT_RECORD", array("#ID#" => $ID)); } else { $sDocTitle = GetMessage("STAT_NEW_RECORD"); } $APPLICATION->SetTitle($sDocTitle); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; /***************************************************************************
function CheckFields($arUserField, $value) { if (!($arUserField && is_array($arUserField["USER_TYPE"]) && $arUserField["USER_TYPE"]["CLASS_NAME"] == __CLASS__)) return true; $arData = (isset($GLOBALS[$arUserField["FIELD_NAME"]."_DATA"]) ? $GLOBALS[$arUserField["FIELD_NAME"]."_DATA"] : false); $aMsg = array(); if (!empty($arData) && CModule::IncludeModule("vote")) { $arVote = array( "ID" => $value, "CHANNEL_ID" => $arUserField["SETTINGS"]["CHANNEL_ID"], "TITLE" => $arData["TITLE"], "URL" => $arData["URL"], "NOTIFY" => $arUserField["SETTINGS"]["NOTIFY"], "DATE_END" => GetTime((isset($arData["DATE_END"]) ? MakeTimeStamp($arData["DATE_END"]) : 1924984799), "FULL"), "QUESTIONS" => array()); $arVoteQuestions = array(); $arQuestions = is_array($arData["QUESTIONS"]) ? $arData["QUESTIONS"] : array(); if (!$arVote["ID"]) { $arVote["DATE_START"] = GetTime(CVote::GetNowTime(), "FULL"); } else { $db_res = CVoteQuestion::GetListEx(array("ID" => "ASC"), array("CHANNEL_ID" => $arVote["CHANNEL_ID"], "VOTE_ID" => $arVote["ID"])); if ($db_res && $res = $db_res->Fetch()) { do { $arVoteQuestions[$res["ID"]] = $res + array("ANSWERS" => array()); } while ($res = $db_res->Fetch()); } if (!empty($arVoteQuestions)) { $db_res = CVoteAnswer::GetListEx(array("ID" => "ASC"), array("CHANNEL_ID" => $arVote["CHANNEL_ID"], "VOTE_ID" => $arVote["ID"])); if ($db_res && $res = $db_res->Fetch()) { do { if (is_set($arVoteQuestions, $res["QUESTION_ID"])) $arVoteQuestions[$res["QUESTION_ID"]]["ANSWERS"][$res["ID"]] = $res; } while ($res = $db_res->Fetch()); } } } foreach ($arQuestions as $key => $arQuestion) { $res = array( "ID" => (array_key_exists($arQuestion["ID"], $arVoteQuestions) ? $arQuestion["ID"] : false), "QUESTION" => trim($arQuestion["QUESTION"]), "MULTI" => ($arQuestion["MULTI"] == "Y" ? "Y" : "N"), "ANSWERS" => array()); $arQuestion["ANSWERS"] = (is_array($arQuestion["ANSWERS"]) ? $arQuestion["ANSWERS"] : array()); $arVoteAnswers = ($res["ID"] > 0 ? $arVoteQuestions[$res["ID"]]["ANSWERS"] : array()); foreach ($arQuestion["ANSWERS"] as $arAnswer) { $resa = array( "ID" => (array_key_exists($arAnswer["ID"], $arVoteAnswers) ? $arAnswer["ID"] : false), "MESSAGE" => trim($arAnswer["MESSAGE"]), "FIELD_TYPE" => ($res["MULTI"] == "Y" ? 1 : 0)); if (empty($resa["MESSAGE"])){ continue; } if (!!$resa["ID"]) { unset($arVoteAnswers[$resa["ID"]]); } $res["ANSWERS"][] = $resa; } foreach ($arVoteAnswers as $arAnswer) { $res["ANSWERS"][] = array_merge($arAnswer, array("DEL" => "Y")); } if (empty($res["ANSWERS"]) && empty($res["QUESTION"]) && !$res["ID"]) { continue; } if (!!$res["ID"]) { unset($arVoteQuestions[$res["ID"]]); } $arVote["QUESTIONS"][] = $res; } $arVoteParams = array(); if (!empty($arVote["QUESTIONS"])) { $arVoteParams = array( "UNIQUE_TYPE" => $arUserField["SETTINGS"]['UNIQUE'], "DELAY" => intval($arUserField["SETTINGS"]['UNIQUE_IP_DELAY']["DELAY"]), "DELAY_TYPE" => $arUserField["SETTINGS"]['UNIQUE_IP_DELAY']["DELAY_TYPE"]); } if (!VoteVoteEditFromArray($arUserField["SETTINGS"]["CHANNEL_ID"], $arVote["ID"], $arVote, ($res = ($arVoteParams + array("bOnlyCheck" => "Y"))))) { $aMsg[] = array( "id" => $arUserField["FIELD_NAME"], "text" => (($e = $GLOBALS['APPLICATION']->GetException()) && $e ? preg_replace("/\<br(.*?)\>/", " ", $e->GetString()) : GetMessage("VT_UNKNOWN_ERROR_ADD_VOTE")) ); } else { $GLOBALS[__CLASS__.$arUserField["ENTITY_VALUE_ID"]] = array("VOTE" => $arVote, "PARAMS" => $arVoteParams); } } return $aMsg; }
function ConvertTimeStamp($timestamp=false, $type="SHORT", $site=false, $bSearchInSitesOnly = false) { if($timestamp === false) $timestamp = time(); return GetTime($timestamp, $type, $site, $bSearchInSitesOnly); }