Пример #1
0
	public static function getEventResult($sEventName) {
		$rInfo = GetModuleEvents('bx_ichannels', $sEventName);
		$arResult = array();
		while (false != ($info = $rInfo->GetNext())) {
			$arResult[] = ExecuteModuleEvent($info);
		}
		return $arResult;
	}
Пример #2
0
 function __construct($loader)
 {
     $this->env = new \Twig_Environment($loader, array("cache" => $_SERVER["DOCUMENT_ROOT"] . "/bitrix/cache/twig/", "auto_reload" => true));
     $this->addExtensions();
     $rsEvents = GetModuleEvents("up.twig", "onEnviromentConstruct");
     while ($arEvent = $rsEvents->Fetch()) {
         ExecuteModuleEvent($arEvent, $this->env);
     }
 }
 /**
  * Метод выполняющий вызов обработчика через систему событий системы 1С-Битрикс
  * @param array - Данные, которые надо передать обработчику
  * @param stirng - Префикс события, которое надо вызвать
  * @return void
  */
 private function GenerateEvent($arEventData, $sEventPrefix)
 {
     if (!$sEventPrefix || $sEventPrefix == '') {
         return false;
     }
     $arEventData['object'] = $this;
     $dbEvents = GetModuleEvents($this->sEventModule, $sEventPrefix . $this->sEventPostfix);
     while ($arEvent = $dbEvents->Fetch()) {
         ExecuteModuleEvent($arEvent, $arEventData);
     }
 }
Пример #4
0
 public static function GetActions()
 {
     if (empty(self::$actions_cache)) {
         $arActions = array();
         foreach (self::GetActionsInfo() as $action) {
             $result = ExecuteModuleEvent($action);
             $arActions[$result['id']] = $result;
         }
         self::$actions_cache = $arActions;
     }
     return self::$actions_cache;
 }
Пример #5
0
 protected static function GetTemplates()
 {
     if (empty(self::$templates_cache)) {
         $rTemplatesInfo = GetModuleEvents('ibulkapi', 'TemplatesInfo');
         $arTemplatesInfo = array();
         while (false != ($templates_info = $rTemplatesInfo->GetNext())) {
             $arTemplatesInfo = array_merge($arTemplatesInfo, ExecuteModuleEvent($templates_info));
         }
         self::$templates_cache = $arTemplatesInfo;
     }
     return self::$templates_cache;
 }
Пример #6
0
 function Add($arFields)
 {
     $err_mess = CUser::err_mess() . "<br>Function: Add<br>Line: ";
     global $DB;
     if (!$this->CheckFields(&$arFields)) {
         $Result = false;
         $arFields["RESULT_MESSAGE"] =& $this->LAST_ERROR;
     } else {
         unset($arFields["ID"]);
         if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y") {
             $arFields["ACTIVE"] = "N";
         }
         if ($arFields["PERSONAL_GENDER"] == "NOT_REF" || $arFields["PERSONAL_GENDER"] != "M" && $arFields["PERSONAL_GENDER"] != "F") {
             $arFields["PERSONAL_GENDER"] = "";
         }
         $arFields["PASSWORD"] = md5($arFields["PASSWORD"]);
         //$arFields["STORED_HASH"] = CUser::GetPasswordHash($arFields["PASSWORD"]);
         unset($arFields["STORED_HASH"]);
         if (strlen($arFields["CHECKWORD"]) <= 0) {
             $arFields["CHECKWORD"] = randString(8);
         }
         $arFields["~CHECKWORD_TIME"] = $DB->CurrentTimeFunction();
         if (is_set($arFields, "EMAIL")) {
             $arFields["EMAIL"] = strtolower($arFields["EMAIL"]);
         }
         if (is_set($arFields, "WORK_COUNTRY")) {
             $arFields["WORK_COUNTRY"] = intval($arFields["WORK_COUNTRY"]);
         }
         if (is_set($arFields, "PERSONAL_COUNTRY")) {
             $arFields["PERSONAL_COUNTRY"] = intval($arFields["PERSONAL_COUNTRY"]);
         }
         $arInsert = $DB->PrepareInsert("b_user", $arFields, "main");
         if (!is_set($arFields, "DATE_REGISTER")) {
             $arInsert[0] .= ", DATE_REGISTER";
             $arInsert[1] .= ", " . $DB->GetNowFunction();
         }
         $strSql = "\n\t\t\t\tINSERT INTO b_user (\n\t\t\t\t\t" . $arInsert[0] . "\n\t\t\t\t) VALUES (\n\t\t\t\t\t" . $arInsert[1] . "\n\t\t\t\t)\n\t\t\t\t";
         $DB->Query($strSql, false, $err_mess . __LINE__);
         $ID = $DB->LastID();
         if (is_set($arFields, "GROUP_ID")) {
             CUser::SetUserGroup($ID, $arFields["GROUP_ID"]);
         }
         $Result = $ID;
         $arFields["ID"] =& $ID;
     }
     $arFields["RESULT"] =& $Result;
     $events = GetModuleEvents("main", "OnAfterUserAdd");
     while ($arEvent = $events->Fetch()) {
         ExecuteModuleEvent($arEvent, &$arFields);
     }
     return $Result;
 }
Пример #7
0
                $errorMessage .= GetMessage("SUP_NEW_UPDATE_SYSTEM_HINT");
            } else {
                $systemMessage .= GetMessage("SUP_RESERVED_KEY_HINT");
            }
        }
    }
}
if (strlen($errorMessage) > 0) {
    echo CAdminMessage::ShowMessage(array("DETAILS" => $errorMessage, "TYPE" => "ERROR", "MESSAGE" => GetMessage("SUP_ERROR"), "HTML" => true));
}
if (strlen($systemMessage) > 0) {
    echo CAdminMessage::ShowMessage(array("DETAILS" => $systemMessage, "TYPE" => "OK", "MESSAGE" => GetMessage("SUP_SYSTEM_MESSAGE"), "HTML" => true));
}
$events = GetModuleEvents("main", "OnUpdateCheck");
while ($arEvent = $events->Fetch()) {
    ExecuteModuleEvent($arEvent, $errorMessage);
}
?>
<script language="JavaScript">
<!--
	var updRand = 0;

	function PrepareString(str)
	{
		str = str.replace(/^\s+|\s+$/, '');
		while (str.length > 0 && str.charCodeAt(0) == 65279)
			str = str.substring(1);
		return str;
	}
//-->
</script>
Пример #8
0
            CUpdateSystem::AddMessage2Log(GetMessage("SUP_UPD_LOAD_BREAK"), "PU404");
        }
    }
    $arErrorModules = array();
    $arSuccessModules = array();
    if (strlen($strErrorMessage) <= 0) {
        if (strlen($UNIID) > 0) {
            $_SESSION[$UNIID] = "Y";
        }
        if (!CUpdateSystem::UpdateKernel($temporary_updates_dir, $arLoadModules, $strErrorMessage, $arErrorModules, $arSuccessModules)) {
            $strErrorMessage .= GetMessage("SUP_BAD_UPD_INSTALL") . " [PU405]. ";
            CUpdateSystem::AddMessage2Log(GetMessage("SUP_BAD_UPD_INSTALL"), "PU405");
        } else {
            $db_events = GetModuleEvents("main", "OnUpdatesInstalled");
            while ($arEvent = $db_events->Fetch()) {
                ExecuteModuleEvent($arEvent, array("successModules" => $arSuccessModules, "loadModules" => $arLoadModules, "errorModules" => $arErrorModules, "modulesUpdates" => $arModulesUpdates));
            }
        }
    }
}
if ($TYPE == "UPDATE" && $STEP == 3 && $MAIN_RIGHT == "W") {
    CUpdateSystem::AddMessage2Log("Query loading modules: " . $load_modules);
    if (!isset($FAS) || $FAS != "Y") {
        $arLoadModules = array();
        if (strlen($load_modules) > 0) {
            $arLoadModules_tmp = explode(",", $load_modules);
            for ($i = 0; $i < count($arLoadModules_tmp); $i++) {
                $arLoadModules_tmp[$i] = Trim($arLoadModules_tmp[$i]);
                if (strlen($arLoadModules_tmp[$i]) > 0) {
                    $arLoadModules[] = $arLoadModules_tmp[$i];
                }
Пример #9
0
 function Update($ID, $arFields)
 {
     global $DB;
     if (is_set($arFields, "EXTERNAL_ID")) {
         $arFields["XML_ID"] = $arFields["EXTERNAL_ID"];
     }
     if (is_set($arFields, "PICTURE")) {
         if (strlen($arFields["PICTURE"]["name"]) <= 0 && strlen($arFields["PICTURE"]["del"]) <= 0) {
             unset($arFields["PICTURE"]);
         } else {
             $pic_res = $DB->Query("SELECT PICTURE FROM b_iblock WHERE ID=" . $ID);
             if ($pic_res = $pic_res->Fetch()) {
                 $arFields["PICTURE"]["old_file"] = $pic_res["PICTURE"];
             }
         }
     }
     if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y") {
         $arFields["ACTIVE"] = "N";
     }
     if (is_set($arFields, "INDEX_SECTION") && $arFields["INDEX_SECTION"] != "Y") {
         $arFields["INDEX_SECTION"] = "N";
     }
     if (is_set($arFields, "INDEX_ELEMENT") && $arFields["INDEX_ELEMENT"] != "Y") {
         $arFields["INDEX_ELEMENT"] = "N";
     }
     if (is_set($arFields, "DESCRIPTION_TYPE") && $arFields["DESCRIPTION_TYPE"] != "html") {
         $arFields["DESCRIPTION_TYPE"] = "text";
     }
     if (!$this->CheckFields(&$arFields, $ID)) {
         $Result = false;
         $arFields["RESULT_MESSAGE"] =& $this->LAST_ERROR;
     } else {
         $arLID = array();
         if (is_set($arFields, "LID")) {
             if (is_array($arFields["LID"])) {
                 $arLID = $arFields["LID"];
             } else {
                 $arLID[] = $arFields["LID"];
             }
             $arFields["LID"] = false;
             $str_LID = "''";
             foreach ($arLID as $v) {
                 $arFields["LID"] = $v;
                 $str_LID .= ", '" . $DB->ForSql($v) . "'";
             }
         }
         unset($arFields["ID"]);
         unset($arFields["VERSION"]);
         $strUpdate = $DB->PrepareUpdate("b_iblock", $arFields, "iblock");
         $arBinds = array();
         if (is_set($arFields, "DESCRIPTION")) {
             $arBinds["DESCRIPTION"] = $arFields["DESCRIPTION"];
         }
         $strSql = "UPDATE b_iblock SET " . $strUpdate . " WHERE ID=" . $ID;
         $DB->QueryBind($strSql, $arBinds);
         if (is_set($arFields, "GROUP_ID") && is_array($arFields["GROUP_ID"])) {
             CIBlock::SetPermission($ID, $arFields["GROUP_ID"]);
         }
         if (count($arLID) > 0) {
             $strSql = "DELETE FROM b_iblock_site WHERE IBLOCK_ID=" . $ID;
             $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
             $strSql = "INSERT INTO b_iblock_site(IBLOCK_ID, SITE_ID) " . "SELECT " . $ID . ", LID " . "FROM b_lang " . "WHERE LID IN (" . $str_LID . ") ";
             $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
         }
         if (CModule::IncludeModule("search")) {
             $dbafter = $DB->Query("SELECT ACTIVE, DETAIL_PAGE_URL, LID FROM b_iblock WHERE ID=" . $ID);
             $arAfter = $dbafter->Fetch();
             if ($arAfter["ACTIVE"] != "Y") {
                 CSearch::DeleteIndex("iblock", false, false, $ID);
             } else {
                 if (is_set($arFields, "GROUP_ID")) {
                     $arPerms = array();
                     $arGroupsPerm = $arFields["GROUP_ID"];
                     $arGroups = array_keys($arGroupsPerm);
                     for ($i = 0; $i < count($arGroups); $i++) {
                         if ($arGroupsPerm[$arGroups[$i]] >= "R") {
                             if ($arGroups[$i] == 2) {
                                 $arPerms = array(2);
                                 break;
                             }
                             $arPerms[] = $arGroups[$i];
                         }
                     }
                     CSearch::ChangePermission("iblock", $arPerms, false, false, $ID);
                 }
             }
         }
         $Result = true;
     }
     $arFields["ID"] = $ID;
     $arFields["RESULT"] =& $Result;
     $events = GetModuleEvents("iblock", "OnAfterIBlockUpdate");
     while ($arEvent = $events->Fetch()) {
         ExecuteModuleEvent($arEvent, &$arFields);
     }
     return $Result;
 }
Пример #10
0
<?php

$events = GetModuleEvents("currency", "OnModuleUnInstall");
while ($arEvent = $events->Fetch()) {
    if (strlen($arEvent["TO_CLASS"]) <= 0) {
        $arEvent["CALLBACK"] = $arEvent["TO_METHOD"];
    }
    ExecuteModuleEvent($arEvent);
}
if ($ex = $APPLICATION->GetException()) {
    echo CAdminMessage::ShowMessage(GetMessage("CURRENCY_INSTALL_UNPOSSIBLE") . "<br />" . $ex->GetString());
    ?>
	<form action="<?php 
    echo $APPLICATION->GetCurPage();
    ?>
">
	<p>
		<input type="hidden" name="lang" value="<?php 
    echo LANG;
    ?>
">
		<input type="submit" name="" value="<?php 
    echo GetMessage("MOD_BACK");
    ?>
">	
	</p>
	<form>
	<?php 
} else {
    ?>
	<form action="<?php 
Пример #11
0
    public static function makeDetail( $iPhotoId )
    {
        global $APPLICATION;

        $iIblockId =  intval( \COption::GetOptionString("bit.includer", "iblock_id", 0) );
        $iIblockType =  \COption::GetOptionString("bit.includer", "iblock_type", "") ;

        $rsEvents = GetModuleEvents("bit.includer", "OnBeforeMakeDetail");
        if ($arEvent = $rsEvents->Fetch()){
            return ExecuteModuleEvent($arEvent, $iPhotoId,$iIblockId);
        }

        //вывод по коду раздела
        if (!is_numeric($iPhotoId) && strlen($iPhotoId)>0){
            \CModule::IncludeModule("iblock");
            $arFilter = Array("IBLOCK_ID"=>$iIblockId, "CODE"=>$iPhotoId);
            $res = \CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>1), Array("ID"));
            if($ob = $res->GetNextElement()){
                $arFields = $ob->GetFields();
                $iPhotoId = $arFields['ID'];
            }
        }

        ob_start();
        $APPLICATION->IncludeComponent(
            "bitrix:news.detail",
            self::DETAIL_TEMPLATE,
            Array(
                "DISPLAY_DATE" => "N",
                "DISPLAY_NAME" => "Y",
                "DISPLAY_PICTURE" => "Y",
                "DISPLAY_PREVIEW_TEXT" => "N",
                "USE_SHARE" => "N",
                "AJAX_MODE" => "N",
                "IBLOCK_TYPE" => $iIblockType,
                "IBLOCK_ID" => $iIblockId,
                "ELEMENT_ID" => $iPhotoId,
                "ELEMENT_CODE" => "",
                "CHECK_DATES" => "N",
                "FIELD_CODE" => array(),
                "PROPERTY_CODE" => array(),
                "IBLOCK_URL" => "",
                "META_KEYWORDS" => "-",
                "META_DESCRIPTION" => "-",
                "BROWSER_TITLE" => "-",
                "SET_STATUS_404" => "N",
                "SET_TITLE" => "N",
                "INCLUDE_IBLOCK_INTO_CHAIN" => "N",
                "ADD_SECTIONS_CHAIN" => "N",
                "ADD_ELEMENT_CHAIN" => "N",
                "ACTIVE_DATE_FORMAT" => "d.m.Y",
                "USE_PERMISSIONS" => "N",
                "CACHE_TYPE" => "A",
                "CACHE_TIME" => "36000000",
                "CACHE_NOTES" => "",
                "CACHE_GROUPS" => "Y",
                "PAGER_TEMPLATE" => ".default",
                "DISPLAY_TOP_PAGER" => "N",
                "DISPLAY_BOTTOM_PAGER" => "N",
                "PAGER_TITLE" => "Страница",
                "PAGER_SHOW_ALL" => "N",
                "AJAX_OPTION_JUMP" => "N",
                "AJAX_OPTION_STYLE" => "N",
                "AJAX_OPTION_HISTORY" => "N"
            ),
            false
        );
        $componentContent = ob_get_clean();

        //Проверяем на наличие рекурсии
        $componentContent = preg_replace_callback("/\[(list|detail)\]([^\[]*)\[\/(list|detail)\]/is",
            create_function('$matches','
                return "";
            '),$componentContent);

        return $componentContent;
    }
Пример #12
0
 function Update($ID, $arFields)
 {
     global $DB;
     $ID = IntVal($ID);
     $arFields1 = array();
     foreach ($arFields as $key => $value) {
         if (substr($key, 0, 1) == "=") {
             $arFields1[substr($key, 1)] = $value;
             unset($arFields[$key]);
         }
     }
     if (!CBlog::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     $db_events = GetModuleEvents("blog", "OnBeforeBlogUpdate");
     while ($arEvent = $db_events->Fetch()) {
         if (ExecuteModuleEvent($arEvent, $ID, $arFields) === false) {
             return false;
         }
     }
     $arBlogOld = CBlog::GetByID($ID);
     $strUpdate = $DB->PrepareUpdate("b_blog", $arFields);
     foreach ($arFields1 as $key => $value) {
         if (strlen($strUpdate) > 0) {
             $strUpdate .= ", ";
         }
         $strUpdate .= $key . "=" . $value . " ";
     }
     if (strlen($strUpdate) > 0) {
         $strSql = "UPDATE b_blog SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " ";
         $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         unset($GLOBALS["BLOG_CACHE_" . $ID]);
         unset($GLOBALS["BLOG4OWNER_CACHE_" . $arBlogOld["OWNER_ID"]]);
         $events = GetModuleEvents("blog", "OnBlogUpdate");
         while ($arEvent = $events->Fetch()) {
             ExecuteModuleEvent($arEvent, $ID, $arFields);
         }
         if (is_set($arFields, "PERMS_POST")) {
             CBlog::SetBlogPerms($ID, $arFields["PERMS_POST"], BLOG_PERMS_POST);
         }
         if (is_set($arFields, "PERMS_COMMENT")) {
             CBlog::SetBlogPerms($ID, $arFields["PERMS_COMMENT"], BLOG_PERMS_COMMENT);
         }
     } else {
         $ID = False;
     }
     if ($ID) {
         $arBlog = CBlog::GetByID($ID);
         if (CModule::IncludeModule("search")) {
             if ($arBlogOld["ACTIVE"] == "Y" && $arBlog["ACTIVE"] != "Y") {
                 CSearch::DeleteIndex("blog", false, "POST", $ID);
                 CSearch::DeleteIndex("blog", "B" . $ID);
             } elseif ($arBlog["ACTIVE"] == "Y") {
                 $arGroup = CBlogGroup::GetByID($arBlog["GROUP_ID"]);
                 $arPostSite = array($arGroup["SITE_ID"] => CBlog::PreparePath($arBlog["URL"], $arGroup["SITE_ID"]));
                 $arSearchIndex = array("SITE_ID" => $arPostSite, "LAST_MODIFIED" => $arBlog["DATE_UPDATE"], "PARAM1" => "BLOG", "PARAM2" => $arBlog["OWNER_ID"], "PERMISSIONS" => array(2), "TITLE" => $arBlog["NAME"], "BODY" => blogTextParser::killAllTags($arBlog["DESCRIPTION"]));
                 CSearch::Index("blog", "B" . $ID, $arSearchIndex);
             }
         }
     }
     return $ID;
 }
Пример #13
0
	function Vote($arFields)
	{
		global $DB;
		global $USER;

		if ($USER->IsAuthorized())
		{
			$event = GetModuleEvents("prmedia.treelikecomments", "OnBeforePrmediaCommentVote");

			while ($arEvent = $event->Fetch())
			{
				$executeResult = ExecuteModuleEvent($arEvent, $arFields);
				if ($executeResult === false)
				{
					return;
				}
			}

			$arInsert = $DB->PrepareInsert("prmedia_treelike_comments_restrictions", $arFields);
			$strSql = "INSERT INTO prmedia_treelike_comments_restrictions (" . $arInsert[0] . ") VALUES (" . $arInsert[1] . ")";

			$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
		}
	}