Beispiel #1
0
 public static function SynchronizeUserPhones()
 {
     $offset = intval(COption::GetOptionInt("voximplant", "sync_offset", 0));
     $result = Bitrix\Main\UserTable::getList(array('select' => array('ID', 'WORK_PHONE', 'PERSONAL_PHONE', 'PERSONAL_MOBILE', 'UF_PHONE_INNER'), 'filter' => array('=Bitrix\\Voximplant\\Phone:USER.USER_ID' => 0), 'limit' => 100, 'offset' => $offset, 'order' => 'ID'));
     $count = 0;
     while ($user = $result->fetch()) {
         $user["WORK_PHONE"] = CVoxImplantPhone::Normalize($user["WORK_PHONE"]);
         if ($user["WORK_PHONE"]) {
             VI\PhoneTable::add(array('USER_ID' => intval($user['ID']), 'PHONE_NUMBER' => $user["WORK_PHONE"], 'PHONE_MNEMONIC' => "WORK_PHONE"));
         }
         $user["PERSONAL_PHONE"] = CVoxImplantPhone::Normalize($user["PERSONAL_PHONE"]);
         if ($user["PERSONAL_PHONE"]) {
             VI\PhoneTable::add(array('USER_ID' => intval($user['ID']), 'PHONE_NUMBER' => $user["PERSONAL_PHONE"], 'PHONE_MNEMONIC' => "PERSONAL_PHONE"));
         }
         $user["PERSONAL_MOBILE"] = CVoxImplantPhone::Normalize($user["PERSONAL_MOBILE"]);
         if ($user["PERSONAL_MOBILE"]) {
             VI\PhoneTable::add(array('USER_ID' => intval($user['ID']), 'PHONE_NUMBER' => $user["PERSONAL_MOBILE"], 'PHONE_MNEMONIC' => "PERSONAL_MOBILE"));
         }
         $user["UF_PHONE_INNER"] = intval(preg_replace("/[^0-9]/i", "", $user["UF_PHONE_INNER"]));
         if ($user["UF_PHONE_INNER"] > 0 && $user["UF_PHONE_INNER"] < 10000) {
             VI\PhoneTable::add(array('USER_ID' => intval($user['ID']), 'PHONE_NUMBER' => $user["UF_PHONE_INNER"], 'PHONE_MNEMONIC' => "UF_PHONE_INNER"));
         }
         $count++;
     }
     if ($count > 0) {
         $offset = $offset + 100;
         COption::SetOptionInt("voximplant", "sync_offset", $offset);
         return "CVoxImplantPhone::SynchronizeUserPhones();";
     } else {
         return false;
     }
 }
Beispiel #2
0
 function subordinateCheck($arConfigs)
 {
     global $DB, $USER_FIELD_MANAGER;
     $err_mess = "File: " . __FILE__ . "<br>Function: subordinateCheck<br>Line: ";
     $ratingId = CRatings::GetAuthorityRating();
     if ($ratingId == 0) {
         return true;
     }
     $maxVotes = $arConfigs['CONDITION_CONFIG']['SUBORDINATE']['MAX_VOTES'];
     $type = $arConfigs['CONDITION_CONFIG']['SUBORDINATE']['TYPE'];
     $iblockId = COption::GetOptionInt('intranet', 'iblock_structure', 0);
     global $DB;
     $table = 'b_utm_user';
     $columns = array('FIELD_ID', 'VALUE_INT', 'VALUE_ID');
     if (!$DB->IndexExists($table, $columns)) {
         $DB->Query("create index " . substr("ix_" . mt_rand(0, 1000000) . "_" . $table . "_" . implode("_", $columns), 0, 30) . " on " . $table . "(" . implode(", ", $columns) . ")", true);
     }
     $table = 'b_uts_iblock_' . $iblockId . '_section';
     $columns = array('UF_HEAD');
     if (!$DB->IndexExists($table, $columns)) {
         $DB->Query("create index " . substr("ix_" . mt_rand(0, 1000000) . "_" . $table . "_" . implode("_", $columns), 0, 30) . " on " . $table . "(" . implode(", ", $columns) . ")", true);
     }
     $fieldId = 0;
     $arUserFields = $USER_FIELD_MANAGER->GetUserFields("USER");
     if (isset($arUserFields["UF_DEPARTMENT"]["ID"])) {
         $fieldId = intval($arUserFields["UF_DEPARTMENT"]["ID"]);
     }
     if ($iblockId > 0 && $fieldId > 0) {
         // truncate table first
         $DB->Query("TRUNCATE TABLE b_rating_subordinate", false, $err_mess . __LINE__);
         $squery = "\n\t\t\t\tINSERT INTO b_rating_subordinate (RATING_ID, ENTITY_ID, VOTES)\n\t\t\t\tSELECT '" . intval($ratingId) . "' RATING_ID, U2U.USER_ID ENTITY_ID, (case when U2U.ID > 0 then SUM(" . $DB->IsNull("RU.BONUS", "RUS.BONUS") . ") else RUS.BONUS end) VOTES\n\t\t\t\tFROM\n\t\t\t\t(\n\t\t\t\t\tSELECT DISTINCT U.ID USER_ID, UP.VALUE_ID SUBORDINATE_ID, UD.ID\n\t\t\t\t\tFROM\n\t\t\t\t\tb_user U\n\t\t\t\t\tLEFT JOIN b_utm_user UD ON UD.VALUE_ID = U.ID AND UD.FIELD_ID = " . $fieldId . "\n\t\t\t\t\tLEFT JOIN b_uts_iblock_" . $iblockId . "_section BSSV on BSSV.UF_HEAD = U.ID\n\t\t\t\t\tLEFT JOIN b_iblock_section BS ON BS.ID = BSSV.VALUE_ID\n\t\t\t\t\tLEFT JOIN b_iblock_section BsubS on BsubS.IBLOCK_ID = BS.IBLOCK_ID AND BsubS.LEFT_MARGIN >= BS.LEFT_MARGIN AND BsubS.RIGHT_MARGIN <= BS.RIGHT_MARGIN\n\t\t\t\t\tLEFT JOIN b_uts_iblock_" . $iblockId . "_section NACH_PODOTD on NACH_PODOTD.VALUE_ID = BsubS.ID\n\t\t\t\t\tLEFT JOIN b_utm_user UP on (UP.VALUE_INT = BsubS.ID) OR (UP.VALUE_ID = NACH_PODOTD.UF_HEAD) AND UP.FIELD_ID = " . $fieldId . "\n\t\t\t\t\tLEFT JOIN b_user U2 on U2.ID = UP.VALUE_ID\n\t\t\t\t\tWHERE (U2.ACTIVE = 'Y' OR U2.ID IS NULL) AND U.ACTIVE = 'Y'\n\t\t\t\t) U2U\n\t\t\t\tLEFT JOIN b_rating_user RU on RU.RATING_ID = " . intval($ratingId) . " and RU.ENTITY_ID = U2U.SUBORDINATE_ID\n\t\t\t\tLEFT JOIN b_rating_user RUS on RUS.RATING_ID = " . intval($ratingId) . " and RUS.ENTITY_ID = U2U.USER_ID\n\t\t\t\tGROUP BY U2U.USER_ID, U2U.ID, RU.BONUS, RUS.BONUS";
         $DB->Query($squery, false, $err_mess . __LINE__);
     }
     return true;
 }
Beispiel #3
0
 /**
  * For Bitrix calls.
  *
  * @param array &$params
  *
  * @return int
  */
 public static function authenticate(&$params)
 {
     try {
         // Import PEAR library gracefully...
         if (!@(include_once 'Net/LDAP2.php')) {
             throw new Capall_Ldaper_UnavailableDependencyException('PEAR::Net_LDAP2');
         }
         $ldapConnection = Net_LDAP2::connect(array('host' => COption::GetOptionString('sh.ldaper', 'host'), 'port' => COption::GetOptionInt('sh.ldaper', 'port'), 'binddn' => COption::GetOptionString('sh.ldaper', 'binddn'), 'bindpw' => COption::GetOptionString('sh.ldaper', 'bindpw')));
         if (PEAR::isError($ldapConnection)) {
             throw new Capall_Ldaper_LdapException($ldapConnection);
         }
         $ldaper = new self($ldapConnection, new Capall_Ldaper_BitrixUserManager(new CUser(), array_filter(explode(',', COption::GetOptionString('sh.ldaper', 'default_groups', '')), 'trim')), COption::GetOptionString('sh.ldaper', 'basedn'), COption::GetOptionString('sh.ldaper', 'login_attribute'), COption::GetOptionString('sh.ldaper', 'mail_attribute'), COption::GetOptionString('sh.ldaper', 'mail_attribute_index'));
         $ldapUser = $ldaper->getLdapUser($params['LOGIN']);
         if ($ldapUser) {
             if ($ldaper->authenticateUser($ldapUser, $params['PASSWORD'])) {
                 $bitrixUserIdentifier = $ldaper->getBitrixUser($ldapUser);
             } else {
                 // Authentication failed. May be user not from LDAP?
                 return false;
             }
         } else {
             // User not found. It's normal use case.
             return;
         }
         // Return identifier to Bitrix for authorization.
         return $bitrixUserIdentifier;
     } catch (Exception $error) {
         CEventLog::Log('WARNING', 'USER_LOGIN', 'sh.ldaper', $params['LOGIN'], (string) $error);
     }
 }
 /**
  * @see CEvent::HandleEvent()
  * @see bxmail()
  *
  * @param string $to
  * @param string $subject
  * @param string $message
  * @param string $additionalHeaders Additional headers setted by Bitrix.
  *
  * @return bool
  */
 function custom_mail($to, $subject, $message, $additionalHeaders = '')
 {
     // Cache to send many mails in one script run.
     static $transport, $sender;
     try {
         if (!$sender) {
             if (!$transport) {
                 $host = COption::GetOptionString('sh.mailtransport', 'host');
                 if (COption::GetOptionInt('sh.mailtransport', 'ssl')) {
                     $host = 'ssl://' . $host;
                 }
                 $port = COption::GetOptionInt('sh.mailtransport', 'port');
                 $user = COption::GetOptionString('sh.mailtransport', 'username');
                 $password = COption::GetOptionString('sh.mailtransport', 'password');
                 $transport = new Net_SMTP($host, $port);
                 if (PEAR::isError($connectionResult = $transport->connect())) {
                     throw new Capall_MailTransportException($connectionResult);
                 }
                 // TODO Server without authentication?..
                 if (PEAR::isError($authenticationResult = $transport->auth($user, $password))) {
                     throw new Capall_MailTransportException($authenticationResult);
                 }
             }
             $sender = new Capall_MailTransport_Sender($transport);
         }
         $sender->send($to, $subject, $message, $additionalHeaders);
         return true;
     } catch (Capall_MailTransportException $error) {
         CEventLog::Log('WARNING', 'MAILTRANSPORT_ERROR', 'sh.mailtransport', null, $error->__toString());
         return false;
     } catch (Exception $error) {
         // Unknown error...
         return false;
     }
 }
Beispiel #5
0
 function UnInstallDB($arParams = array())
 {
     global $DB, $APPLICATION;
     $this->errors = false;
     if (!array_key_exists("savedata", $arParams) || $arParams["savedata"] != "Y") {
         $this->errors = $DB->RunSQLBatch($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/meeting/install/db/" . strtolower($DB->type) . "/uninstall.sql");
         if ($this->errors === false && CModule::IncludeModule('forum')) {
             $dbRes = CSite::GetList($by = 'sort', $order = 'asc', array());
             while ($arSite = $dbRes->Fetch()) {
                 $forumId = COption::GetOptionInt('meeting', 'comments_forum_id', 0, $arSite['ID']);
                 if ($forumId > 0) {
                     CForumNew::Delete($forumId);
                 }
             }
         }
     }
     UnRegisterModuleDependences("calendar", "OnAfterCalendarConvert", "meeting", "CMeetingEventHandlers", "OnAfterCalendarConvert");
     UnRegisterModuleDependences("tasks", "OnTaskDelete", "meeting", "CMeetingEventHandlers", "OnTaskDelete");
     UnRegisterModule("meeting");
     if ($this->errors !== false) {
         $APPLICATION->ThrowException(implode("<br>", $this->errors));
         return false;
     }
     return true;
 }
Beispiel #6
0
 /**
  * <p>Метод удаляет файл из таблицы зарегистрированных файлов (b_file) и с диска. Статичный метод.</p>
  *
  *
  * @param int $id  Цифровой идентификатор файла.
  *
  * @return mixed 
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * // удаляем изображение формы
  * $arFilter = array("ID" =&gt; 1, "ID_EXACT_MATCH" =&gt; "Y");
  * $rsForm = CForm::GetList($by, $order, $arFilter, $is_filtered);
  * if ($arForm = $rsForm-&gt;Fetch())
  * {
  *     if (intval($arForm["IMAGE_ID"])&gt;0) <b>CFile::Delete</b>($arForm["IMAGE_ID"]);	
  * }
  * ?&gt;
  * </pre>
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/main/functions/file/deletedirfiles.php">DeleteDirFiles</a> </li>
  * <li> <a href="http://dev.1c-bitrix.ru/api_help/main/functions/file/deletedirfilesex.php">DeleteDirFilesEx</a> </li>
  * </ul><a name="examples"></a>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/main/reference/cfile/delete.php
  * @author Bitrix
  */
 public static function Delete($ID)
 {
     global $DB;
     $io = CBXVirtualIo::GetInstance();
     $ID = intval($ID);
     if ($ID <= 0) {
         return;
     }
     $res = CFile::GetByID($ID);
     if ($res = $res->Fetch()) {
         $delete_size = 0;
         $upload_dir = COption::GetOptionString("main", "upload_dir", "upload");
         $dname = $_SERVER["DOCUMENT_ROOT"] . "/" . $upload_dir . "/" . $res["SUBDIR"];
         $fname = $dname . "/" . $res["FILE_NAME"];
         $file = $io->GetFile($fname);
         if ($file->isExists() && $file->unlink()) {
             $delete_size += $res["FILE_SIZE"];
         }
         $delete_size += CFile::ResizeImageDelete($res);
         $DB->Query("DELETE FROM b_file WHERE ID = " . $ID);
         $directory = $io->GetDirectory($dname);
         if ($directory->isExists() && $directory->isEmpty()) {
             $directory->rmdir();
         }
         CFile::CleanCache($ID);
         foreach (GetModuleEvents("main", "OnFileDelete", true) as $arEvent) {
             ExecuteModuleEventEx($arEvent, array($res));
         }
         /****************************** QUOTA ******************************/
         if ($delete_size > 0 && COption::GetOptionInt("main", "disk_space") > 0) {
             CDiskQuota::updateDiskQuota("file", $delete_size, "delete");
         }
         /****************************** QUOTA ******************************/
     }
 }
function BXDeleteFromSystem($absoluteFilePath, $path, $site)
{
    $io = CBXVirtualIo::GetInstance();
    $f = $io->GetFile($absoluteFilePath);
    $f->MarkWritable();
    if (COption::GetOptionInt("main", "disk_space") > 0) {
        $file_size = $f->GetFileSize();
        $quota = new CDiskQuota();
        $quota->UpdateDiskQuota("file", $file_size, "delete");
    }
    $sucess = $io->Delete($absoluteFilePath);
    if (!$sucess) {
        return false;
    }
    if (COption::GetOptionString($module_id, "log_page", "Y") == "Y") {
        $res_log['path'] = substr($path, 1);
        CEventLog::Log("content", "PAGE_DELETE", "main", "", serialize($res_log));
    }
    $GLOBALS["APPLICATION"]->RemoveFileAccessPermission(array($site, $path));
    if (CModule::IncludeModule("search")) {
        CSearch::DeleteIndex("main", $site . "|" . $path);
    }
    //Delete from rewrite rule
    CUrlRewriter::Delete(array("SITE_ID" => $site, "PATH" => $path));
    if (class_exists("\\Bitrix\\Main\\Application", false)) {
        \Bitrix\Main\Component\ParametersTable::deleteByFilter(array("SITE_ID" => $site, "REAL_PATH" => $path));
    }
    return true;
}
Beispiel #8
0
	public static function OnPageStart()
	{
		if(!defined("PERFMON_STOP"))
		{
			$end_time = COption::GetOptionInt("perfmon", "end_time");
			if(time() > $end_time)
			{
				CPerfomanceKeeper::SetActive(false);
				if(COption::GetOptionString("perfmon", "total_mark_value", "") == "measure");
					COption::SetOptionString("perfmon", "total_mark_value", "calc");
			}
			else
			{
				global $DB, $APPLICATION;
				// define("PERFMON_STARTED", $DB->ShowSqlStat);
				$DB->ShowSqlStat = true;
				$APPLICATION->ShowIncludeStat = true;

				global $perfmonErrors;
				$perfmonErrors = array();
				if(COption::GetOptionString("perfmon", "warning_log") === "Y")
					set_error_handler("perfmonErrorHandler");
			}
		}
	}
Beispiel #9
0
 public function Execute()
 {
     if (!CModule::IncludeModule("intranet")) {
         return CBPActivityExecutionStatus::Closed;
     }
     $calendarIblockId = COption::GetOptionInt("intranet", 'iblock_calendar', 0);
     if ($calendarIblockId <= 0) {
         return CBPActivityExecutionStatus::Closed;
     }
     $rootActivity = $this->GetRootActivity();
     $documentId = $rootActivity->GetDocumentId();
     $arCalendarUser = CBPHelper::ExtractUsers($this->CalendarUser, $documentId);
     foreach ($arCalendarUser as $calendarUser) {
         $Params = array('iblockId' => $calendarIblockId, 'ownerType' => "USER", 'ownerId' => $calendarUser, 'cacheTime' => 0, 'pageUrl' => false, 'allowSuperpose' => false, 'allowResMeeting' => false, 'allowVideoMeeting' => false, 'userIblockId' => $calendarIblockId);
         $EC = new CEventCalendar();
         $EC->Init($Params);
         $sectionId = $EC->GetSectionIDByOwnerId($calendarUser, 'USER', $calendarIblockId);
         if ($sectionId <= 0) {
             $sectionId = CEventCalendar::CreateSectionForOwner($calendarUser, "USER", $calendarIblockId);
         }
         $arGuestCalendars = $EC->GetCalendars(array('sectionId' => $sectionId, 'iblockId' => $calendarIblockId, 'ownerType' => 'USER', 'ownerId' => $calendarUser, 'bOwner' => true, 'forExport' => true, 'bOnlyID' => true));
         $arParams = array('iblockId' => $calendarIblockId, 'ownerType' => "USER", 'ownerId' => $calendarUser, 'sectionId' => $sectionId, 'bNew' => true, 'name' => $this->CalendarName, 'desc' => $this->CalendarDesrc, 'dateFrom' => cutZeroTime($this->CalendarFrom), 'dateTo' => cutZeroTime($this->CalendarTo), 'isMeeting' => false, 'prop' => array('PERIOD_TYPE' => 'NONE', 'ACCESSIBILITY' => 'busy', 'IMPORTANCE' => 'normal', 'PRIVATE' => false), 'userId' => $calendarUser, 'userIblockId' => $calendarIblockId, 'location' => array('new' => '', 'change' => true));
         if (count($arGuestCalendars) > 0) {
             $arParams["calendarId"] = $arGuestCalendars[0];
         }
         $EC->SaveEvent($arParams);
     }
     if (isset($EC)) {
         $EC->ClearCache($EC->cachePath . 'events/' . $calendarIblockId . '/');
     }
     return CBPActivityExecutionStatus::Closed;
 }
Beispiel #10
0
function __OnAfterSetOption_disk_space($value)
{
    if (COption::GetOptionInt("main", "disk_space") > 0) {
        RegisterModuleDependences("main", "OnEpilog", "main", "CDiskQuota", "setDBSize");
    } else {
        UnRegisterModuleDependences("main", "OnEpilog", "main", "CDiskQuota", "setDBSize");
    }
}
Beispiel #11
0
function IntOption($name, $def = 0)
{
    static $CACHE;
    if (!$CACHE[$name]) {
        $CACHE[$name] = COption::GetOptionInt("main", $name, $def);
    }
    return $CACHE[$name];
}
Beispiel #12
0
/**
 * @param $key
 * @param bool $int
 * @return int|string
 */
function get_sOption($key, $int = false)
{
    if (!$int) {
        return COption::GetOptionString("safin", $key);
    } else {
        return COption::GetOptionInt("safin", $key);
    }
}
Beispiel #13
0
 function GetExtranetUserGroupID()
 {
     $extranet_group_id = COption::GetOptionInt("extranet", "extranet_group");
     if (intval($extranet_group_id) > 0) {
         return intval($extranet_group_id);
     }
     return false;
 }
Beispiel #14
0
 /**
  * Return true if error_reporting = 0
  *
  * @return bool
  * @since 14.0.0
  */
 protected function checkErrorReporting()
 {
     $validErrorReporting = E_COMPILE_ERROR | E_ERROR | E_CORE_ERROR | E_PARSE;
     if (COption::GetOptionInt("main", "error_reporting", $validErrorReporting) != $validErrorReporting && COption::GetOptionInt("main", "error_reporting", "") != 0) {
         return self::STATUS_FAILED;
     } else {
         return self::STATUS_PASSED;
     }
 }
Beispiel #15
0
 public static function get_sections_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $DEPTH_LEVEL, $SECTION_ID, $arSectionsChain = false)
 {
     global $adminMenu;
     if (false === $arSectionsChain) {
         $arSectionsChain = array();
         if (isset($_REQUEST['admin_mnu_menu_id'])) {
             $menu_id = "menu_catalog_category_" . $IBLOCK_ID . "/";
             if (0 == strncmp($_REQUEST['admin_mnu_menu_id'], $menu_id, strlen($menu_id))) {
                 $rsSections = CIBlockSection::GetNavChain($IBLOCK_ID, substr($_REQUEST['admin_mnu_menu_id'], strlen($menu_id)), array('ID', 'IBLOCK_ID'));
                 while ($arSection = $rsSections->Fetch()) {
                     $arSectionsChain[$arSection["ID"]] = $arSection["ID"];
                 }
             }
         }
         if (isset($_REQUEST["find_section_section"]) && (int) $_REQUEST["find_section_section"] > 0 && isset($_REQUEST["IBLOCK_ID"]) && $_REQUEST["IBLOCK_ID"] == $IBLOCK_ID) {
             $rsSections = CIBlockSection::GetNavChain($IBLOCK_ID, $_REQUEST["find_section_section"], array('ID', 'IBLOCK_ID'));
             while ($arSection = $rsSections->Fetch()) {
                 $arSectionsChain[$arSection["ID"]] = $arSection["ID"];
             }
         }
     }
     $urlSectionAdminPage = CIBlock::GetAdminSectionListLink($IBLOCK_ID, array('catalog' => null));
     $arSections = array();
     $rsSections = CIBlockSection::GetList(array("left_margin" => "ASC"), array("IBLOCK_ID" => $IBLOCK_ID, "SECTION_ID" => $SECTION_ID), false, array("ID", "IBLOCK_SECTION_ID", "NAME", "LEFT_MARGIN", "RIGHT_MARGIN"));
     $intCount = 0;
     $arOtherSectionTmp = array();
     $limit = (int) COption::GetOptionInt("iblock", "iblock_menu_max_sections");
     while ($arSection = $rsSections->Fetch()) {
         if ($limit > 0 && $intCount >= $limit) {
             if (empty($arOtherSectionTmp)) {
                 $arOtherSectionTmp = array("text" => Loc::getMessage("CAT_MENU_ALL_OTH"), "url" => $urlSectionAdminPage . "&find_section_section=" . (int) $arSection["IBLOCK_SECTION_ID"], "more_url" => array(CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $arSection["ID"], array('catalog' => null))), "title" => Loc::getMessage("CAT_MENU_ALL_OTH_TITLE"), "icon" => "iblock_menu_icon_sections", "page_icon" => "iblock_page_icon_sections", "skip_chain" => true, "items_id" => "menu_catalog_category_" . $IBLOCK_ID . "/" . $arSection["ID"], "module_id" => "catalog", "items" => array());
                 CCatalogAdmin::get_other_elements_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $arSection, $arOtherSectionTmp["more_url"]);
             } else {
                 $arOtherSectionTmp['more_url'][] = $urlSectionAdminPage . "&find_section_section=" . (int) $arSection["ID"];
                 $arOtherSectionTmp['more_url'][] = CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $arSection["ID"], array('catalog' => null));
             }
         } else {
             $arSectionTmp = array("text" => htmlspecialcharsex($arSection["NAME"]), "url" => $urlSectionAdminPage . "&find_section_section=" . $arSection["ID"], "more_url" => array(CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $arSection["ID"], array('catalog' => null))), "title" => htmlspecialcharsex($arSection["NAME"]), "icon" => "iblock_menu_icon_sections", "page_icon" => "iblock_page_icon_sections", "skip_chain" => true, "items_id" => "menu_catalog_category_" . $IBLOCK_ID . "/" . $arSection["ID"], "module_id" => "catalog", "dynamic" => $arSection["RIGHT_MARGIN"] - $arSection["LEFT_MARGIN"] > 1, "items" => array());
             if (isset($arSectionsChain[$arSection["ID"]])) {
                 $arSectionTmp["items"] = CCatalogAdmin::get_sections_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $DEPTH_LEVEL + 1, $arSection["ID"], $arSectionsChain);
             } elseif (method_exists($adminMenu, "IsSectionActive")) {
                 if ($adminMenu->IsSectionActive("menu_catalog_category_" . $IBLOCK_ID . "/" . $arSection["ID"])) {
                     $arSectionTmp["items"] = CCatalogAdmin::get_sections_menu($IBLOCK_TYPE_ID, $IBLOCK_ID, $DEPTH_LEVEL + 1, $arSection["ID"], $arSectionsChain);
                 }
             }
             $arSections[] = $arSectionTmp;
         }
         $intCount++;
     }
     if (!empty($arOtherSectionTmp)) {
         $arSections[] = $arOtherSectionTmp;
     }
     return $arSections;
 }
Beispiel #16
0
 function CleanUpAgent()
 {
     global $DB;
     $cleanup_days = COption::GetOptionInt("main", "event_log_cleanup_days", 7);
     if ($cleanup_days > 0) {
         $arDate = localtime(time());
         $date = mktime(0, 0, 0, $arDate[4] + 1, $arDate[3] - $cleanup_days, 1900 + $arDate[5]);
         $DB->Query("DELETE FROM b_event_log WHERE TIMESTAMP_X <= " . $DB->CharToDateFunction(ConvertTimeStamp($date, "FULL")));
     }
     return "CEventLog::CleanUpAgent();";
 }
Beispiel #17
0
 public static function getSelectedPriceTypeId()
 {
     if (is_null(self::$selectedPriceTypeId)) {
         $priceTypeId = intval(COption::GetOptionInt('crm', 'selected_catalog_group_id', 0));
         if ($priceTypeId < 1) {
             $arBaseCatalogGroup = CCatalogGroup::GetBaseGroup();
             $priceTypeId = intval($arBaseCatalogGroup['ID']);
         }
         self::$selectedPriceTypeId = $priceTypeId;
     }
     return self::$selectedPriceTypeId;
 }
Beispiel #18
0
function _get_sections_menu($arType, $arIBlock, $DEPTH_LEVEL, $SECTION_ID, $arSectionsChain = false)
{
    //Determine opened sections
    if ($arSectionsChain === false) {
        $arSectionsChain = array();
        if (isset($_REQUEST['admin_mnu_menu_id'])) {
            $menu_id = "menu_iblock_/" . $arType["ID"] . "/" . $arIBlock["ID"] . "/";
            if (strncmp($_REQUEST['admin_mnu_menu_id'], $menu_id, strlen($menu_id)) == 0) {
                $rsSections = CIBlockSection::GetNavChain($arIBlock["ID"], substr($_REQUEST['admin_mnu_menu_id'], strlen($menu_id)), array('ID', 'IBLOCK_ID'));
                while ($arSection = $rsSections->Fetch()) {
                    $arSectionsChain[$arSection["ID"]] = $arSection["ID"];
                }
            }
        }
        if (isset($_REQUEST["find_section_section"]) && (int) $_REQUEST["find_section_section"] > 0 && isset($_REQUEST["IBLOCK_ID"]) && $_REQUEST["IBLOCK_ID"] == $arIBlock["ID"]) {
            $rsSections = CIBlockSection::GetNavChain($arIBlock["ID"], $_REQUEST["find_section_section"], array('ID', 'IBLOCK_ID'));
            while ($arSection = $rsSections->Fetch()) {
                $arSectionsChain[$arSection["ID"]] = $arSection["ID"];
            }
        }
    }
    $urlSectionAdminPage = CIBlock::GetAdminSectionListLink($arIBlock["ID"], array("menu" => null));
    $arSections = array();
    if (CIBlock::GetAdminListMode($arIBlock["ID"]) == 'S') {
        $arSections[] = _get_elements_menu($arType, $arIBlock, $SECTION_ID);
    }
    $rsSections = CIBlockSection::GetList(array("left_margin" => "ASC"), array("IBLOCK_ID" => $arIBlock["ID"], "SECTION_ID" => $SECTION_ID), false, array("ID", "IBLOCK_SECTION_ID", "NAME", "LEFT_MARGIN", "RIGHT_MARGIN"));
    $sectionCount = 0;
    $limit = COption::GetOptionInt("iblock", "iblock_menu_max_sections");
    while ($arSection = $rsSections->Fetch()) {
        if ($limit > 0 && $sectionCount >= $limit) {
            $arSections[] = array("text" => GetMessage("IBLOCK_MENU_ALL_OTH"), "url" => htmlspecialcharsbx($urlSectionAdminPage . "&find_section_section=" . (int) $arSection["IBLOCK_SECTION_ID"]), "more_url" => array($urlSectionAdminPage . "&find_section_section=" . (int) $arSection["IBLOCK_SECTION_ID"], $urlSectionAdminPage, "iblock_section_edit.php?" . $arIBlock["URL_PART"], "iblock_element_edit.php?IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . $arType["ID"], "iblock_history_list.php?IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . $arType["ID"]), "title" => GetMessage("IBLOCK_MENU_ALL_OTH_TITLE"), "icon" => "iblock_menu_icon_sections", "page_icon" => "iblock_page_icon_sections", "skip_chain" => true, "items_id" => "menu_iblock_/" . $arType["ID"] . "/" . $arIBlock["ID"] . "/" . $arSection["ID"], "module_id" => "iblock", "items" => array());
            _get_other_elements_menu($arType, $arIBlock, $arSection, $arSections[0]["more_url"]);
            break;
        }
        $arSectionTmp = array("text" => htmlspecialcharsex($arSection["NAME"]), "url" => htmlspecialcharsbx($urlSectionAdminPage . "&find_section_section=" . $arSection["ID"]), "more_url" => array($urlSectionAdminPage . "&find_section_section=" . $arSection["ID"], "iblock_section_edit.php?" . $arIBlock["URL_PART"] . "&ID=" . $arSection["ID"], "iblock_section_edit.php?" . $arIBlock["URL_PART"] . "&ID=0&find_section_section=" . $arSection["ID"], "iblock_element_edit.php?IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . $arType["ID"] . "&find_section_section=" . $arSection["ID"], "iblock_history_list.php?IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . $arType["ID"] . "&find_section_section=" . $arSection["ID"]), "title" => htmlspecialcharsex($arSection["NAME"]), "icon" => "iblock_menu_icon_sections", "page_icon" => "iblock_page_icon_sections", "skip_chain" => true, "dynamic" => CIBlock::GetAdminListMode($arIBlock["ID"]) == 'S' || $arSection["RIGHT_MARGIN"] - $arSection["LEFT_MARGIN"] > 1, "items_id" => "menu_iblock_/" . $arType["ID"] . "/" . $arIBlock["ID"] . "/" . $arSection["ID"], "module_id" => "iblock", "items" => array());
        if (array_key_exists($arSection["ID"], $arSectionsChain)) {
            $arSectionTmp["items"] = _get_sections_menu($arType, $arIBlock, $DEPTH_LEVEL + 1, $arSection["ID"], $arSectionsChain);
        } elseif (method_exists($GLOBALS["adminMenu"], "IsSectionActive")) {
            if ($GLOBALS["adminMenu"]->IsSectionActive("menu_iblock_/" . $arType["ID"] . "/" . $arIBlock["ID"] . "/" . $arSection["ID"])) {
                $arSectionTmp["items"] = _get_sections_menu($arType, $arIBlock, $DEPTH_LEVEL + 1, $arSection["ID"], $arSectionsChain);
            }
        }
        $arSections[] = $arSectionTmp;
        $sectionCount++;
    }
    while ($arSection = $rsSections->Fetch()) {
        $urlElementAdminPage = CIBlock::GetAdminElementListLink($arIBlock["ID"], array("menu" => null));
        $arSections[0]["more_url"][] = $urlElementAdminPage . "&find_section_section=" . (int) $arSection["ID"];
    }
    return $arSections;
}
Beispiel #19
0
 public function Execute()
 {
     if (!CModule::IncludeModule("intranet")) {
         return CBPActivityExecutionStatus::Closed;
     }
     $iblockId = COption::GetOptionInt("intranet", "iblock_tasks", 0);
     if ($iblockId <= 0) {
         return CBPActivityExecutionStatus::Closed;
     }
     $parentSectionId = 0;
     $dbSectionsList = CIBlockSection::GetList(array(), array("GLOBAL_ACTIVE" => "Y", "XML_ID" => $this->TaskType == "group" ? $this->TaskOwnerId : "users_tasks", "IBLOCK_ID" => $iblockId, "SECTION_ID" => 0), false);
     if ($arSection = $dbSectionsList->GetNext()) {
         $parentSectionId = $arSection["ID"];
     }
     if ($parentSectionId <= 0) {
         $dbSectionsList = CIBlockSection::GetList(array(), array("GLOBAL_ACTIVE" => "Y", "XML_ID" => "users_tasks", "IBLOCK_ID" => $iblockId, "SECTION_ID" => 0), false);
         if ($arSection = $dbSectionsList->GetNext()) {
             $parentSectionId = $arSection["ID"];
         }
     }
     if ($parentSectionId <= 0) {
         return CBPActivityExecutionStatus::Closed;
     }
     $rootActivity = $this->GetRootActivity();
     $documentId = $rootActivity->GetDocumentId();
     $arTaskCreatedBy = CBPHelper::ExtractUsers($this->TaskCreatedBy, $documentId, true);
     $arTaskAssignedTo = CBPHelper::ExtractUsers($this->TaskAssignedTo, $documentId, true);
     if (!$arTaskCreatedBy || !$arTaskAssignedTo) {
         return CBPActivityExecutionStatus::Closed;
     }
     if ($this->TaskType != "group") {
         $this->TaskOwnerId = $arTaskAssignedTo;
     }
     $arTaskTrackers = CBPHelper::ExtractUsers($this->TaskTrackers, $documentId);
     $arFields = array("IBLOCK_SECTION_ID" => $parentSectionId, "MODIFIED_BY" => $arTaskCreatedBy, "CREATED_BY" => $arTaskCreatedBy, "DATE_CREATE" => date($GLOBALS["DB"]->DateFormatToPHP(FORMAT_DATETIME)), "ACTIVE_FROM" => $this->TaskActiveFrom, "ACTIVE_TO" => $this->TaskActiveTo, "NAME" => $this->TaskName, "DETAIL_TEXT" => $this->TaskDetailText, "PROPERTY_TaskPriority" => $this->TaskPriority, "PROPERTY_TaskAssignedTo" => $arTaskAssignedTo, "PROPERTY_TaskTrackers" => $arTaskTrackers);
     $taskId = CIntranetTasksDocument::CreateDocument($arFields);
     if ($this->TaskType == "group") {
         $pathTemplate = str_replace(array("#GROUP_ID#", "#TASK_ID#"), array($this->TaskOwnerId, "{=Document:ID}"), COption::GetOptionString("intranet", "path_task_group_entry", "/workgroups/group/#GROUP_ID#/tasks/task/view/#TASK_ID#/"));
     } else {
         $pathTemplate = str_replace(array("#USER_ID#", "#TASK_ID#"), array($this->TaskOwnerId, "{=Document:ID}"), COption::GetOptionString("intranet", "path_task_user_entry", "/company/personal/user/#USER_ID#/tasks/task/view/#TASK_ID#/"));
     }
     $pathTemplate = str_replace('#HTTP_HOST#', $_SERVER['HTTP_HOST'], "http://#HTTP_HOST#" . $pathTemplate);
     $arTemplateStates = CBPWorkflowTemplateLoader::GetDocumentTypeStates(array("intranet", "CIntranetTasksDocument", "x" . $iblockId), CBPDocumentEventType::Create);
     foreach ($arTemplateStates as $arState) {
         CBPDocument::StartWorkflow($arState["TEMPLATE_ID"], array("intranet", "CIntranetTasksDocument", $taskId), array("OwnerId" => $this->TaskOwnerId, "TaskType" => $this->TaskType, "PathTemplate" => $pathTemplate, "ForumId" => intval($this->TaskForumId), "IBlockId" => $iblockId), $arErrorsTmp);
     }
     return CBPActivityExecutionStatus::Closed;
 }
Beispiel #20
0
 function CleanUp()
 {
     global $DB;
     $days = COption::GetOptionInt("mail", "time_keep_log", B_MAIL_KEEP_LOG);
     $strSql = "DELETE FROM b_mail_log WHERE DATE_INSERT < DATE_ADD(now(), INTERVAL -" . intval($days) . " DAY)";
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     $mt = GetMicroTime();
     $dbr = $DB->Query("SELECT MS.ID FROM b_mail_message MS, b_mail_mailbox MB WHERE MS.MAILBOX_ID=MB.ID AND MB.MAX_KEEP_DAYS>0 AND MS.DATE_INSERT < DATE_ADD(now(), INTERVAL -MB.MAX_KEEP_DAYS DAY)");
     while ($ar = $dbr->Fetch()) {
         CMailMessage::Delete($ar["ID"]);
         if (GetMicroTime() - $mt > 10 * 1000) {
             break;
         }
     }
     return "CMailbox::CleanUp();";
 }
Beispiel #21
0
	/**
	 * @param array $arParams
	 * @return bool
	 */
	public static function onBeforeUserLogin($arParams)
	{
		/**
		* @global CMain $APPLICATION
		* @global CDataBase $DB
		*/
		global $DB, $APPLICATION;
		$userId = self::getUserIdForLogin($arParams["LOGIN"]);
		$userInfo = self::getSecurityUserInfo($userId, true);
		if(!$userId || !$userInfo)
		{
			//user not found or not use OTP
			return true;
		}

		$isSuccess = false;
		if(preg_match("/(\\d{6})$/", $arParams["PASSWORD"], $arMatch))
		{
			$bin_secret = pack('H*', $userInfo["SECRET"]);
			$sync = $arMatch[1];
			$cnt = intval($userInfo["COUNTER"])+1;
			$window = COption::GetOptionInt("security", "hotp_user_window");

			$i = 0;
			while($i < $window)
			{
				if(CSecurityUser::HOTP($bin_secret, $cnt) == $sync)
				{
					$isSuccess = true;
					$arParams["PASSWORD"] = substr($arParams["PASSWORD"], 0, -6);
					$DB->Query("UPDATE b_sec_user SET COUNTER = ".$cnt." WHERE USER_ID = ".$userId);
					break;
				}
				$cnt++;
				$i++;
			}
		}

		if(!$isSuccess)
		{
			$APPLICATION->ThrowException(GetMessage("WRONG_LOGIN"));
			return false;
		}

		return true;
	}
Beispiel #22
0
 function CheckFields($ACTION, &$arFields, $ID = 0)
 {
     global $DB;
     if ((is_set($arFields, "USER_ID") || $ACTION == "ADD") && IntVal($arFields["USER_ID"]) <= 0) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_EMPTY_USER_ID"), "EMPTY_USER_ID");
         return false;
     } elseif (is_set($arFields, "USER_ID")) {
         $dbResult = CUser::GetByID($arFields["USER_ID"]);
         if (!$dbResult->Fetch()) {
             $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_NO_USER_ID"), "ERROR_NO_USER_ID");
             return false;
         }
     }
     if (is_set($arFields, "ALIAS") && strlen($arFields["ALIAS"]) > 0) {
         $dbResult = CBlogUser::GetList(array(), array("ALIAS" => $arFields["ALIAS"], "!ID" => IntVal($ID)), false, false, array("ID"));
         if ($dbResult->Fetch()) {
             $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_DUPL_ALIAS"), "ERROR_DUPL_ALIAS");
             return false;
         }
     }
     if (is_set($arFields, "LAST_VISIT") && !$DB->IsDate($arFields["LAST_VISIT"], false, LANG, "FULL")) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_LAST_VISIT"), "ERROR_LAST_VISIT");
         return false;
     }
     if (is_set($arFields, "DATE_REG") && !$DB->IsDate($arFields["DATE_REG"], false, LANG, "FULL")) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("BLG_GU_ERROR_DATE_REG"), "ERROR_DATE_REG");
         return false;
     }
     if ((is_set($arFields, "ALLOW_POST") || $ACTION == "ADD") && $arFields["ALLOW_POST"] != "Y" && $arFields["ALLOW_POST"] != "N") {
         $arFields["ALLOW_POST"] = "Y";
     }
     if (is_set($arFields, "AVATAR") && strlen($arFields["AVATAR"]["name"]) <= 0 && strlen($arFields["AVATAR"]["del"]) <= 0) {
         unset($arFields["AVATAR"]);
     }
     if (is_set($arFields, "AVATAR")) {
         $max_size = COption::GetOptionInt("blog", "avatar_max_size", 30000);
         //$max_width = COption::GetOptionInt("blog", "avatar_max_width", 100);
         //$max_height = COption::GetOptionInt("blog", "avatar_max_height", 100);
         $res = CFile::CheckImageFile($arFields["AVATAR"], $max_size, 0, 0);
         if (strlen($res) > 0) {
             $GLOBALS["APPLICATION"]->ThrowException($res, "ERROR_AVATAR");
             return false;
         }
     }
     return True;
 }
Beispiel #23
0
 function forumTextParser($lang = false, $pathToSmiles = '', $type = false, $mode = 'full')
 {
     $this->CTextParser();
     $this->arFiles = array();
     $this->arFilesParsed = array();
     $this->serverName = defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0 ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", "");
     $this->serverName = strlen($this->serverName) > 0 ? $this->serverName : $_SERVER["SERVER_NAME"];
     $this->arUserfields = array();
     $this->ajaxPage = $GLOBALS["APPLICATION"]->GetCurPageParam("", array("bxajaxid", "logout"));
     $this->userPath = "";
     $this->userNameTemplate = str_replace(array("#NOBR#", "#/NOBR#"), "", CSite::GetDefaultNameFormat());
     $this->smilesGallery = \COption::GetOptionInt("forum", "smile_gallery_id", 0);
     if ($mode == 'full') {
         AddEventHandler("main", "TextParserBeforeTags", array(&$this, "ParserSpoiler"));
         AddEventHandler("main", "TextParserAfterTags", array(&$this, "ParserFile"));
         AddEventHandler("main", "TextParserAfterTags", array(&$this, "ParserUser"));
     }
 }
 protected function checkSecurityLevel()
 {
     /** @global CDataBase $DB */
     global $DB;
     if (!CSecurityFilter::IsActive()) {
         $this->addUnformattedDetailError("SECURITY_SITE_CHECKER_WAF_OFF", CSecurityCriticalLevel::HIGHT);
     }
     if (self::AdminPolicyLevel() != "high") {
         $this->addUnformattedDetailError("SECURITY_SITE_CHECKER_ADMIN_SECURITY_LEVEL", CSecurityCriticalLevel::HIGHT);
     }
     $validErrorReporting = E_COMPILE_ERROR | E_ERROR | E_CORE_ERROR | E_PARSE;
     if (COption::GetOptionInt("main", "error_reporting", $validErrorReporting) != $validErrorReporting && COption::GetOptionString("main", "error_reporting", "") != "") {
         $this->addUnformattedDetailError("SECURITY_SITE_CHECKER_ERROR_REPORTING", CSecurityCriticalLevel::MIDDLE);
     }
     if ($DB->debug) {
         $this->addUnformattedDetailError("SECURITY_SITE_CHECKER_DB_DEBUG", CSecurityCriticalLevel::HIGHT);
     }
 }
Beispiel #25
0
 function OnBeforeUserLogin($arParams)
 {
     /**
      * @global CMain $APPLICATION
      * @global CDataBase $DB
      */
     global $DB, $APPLICATION;
     $rsUser = CUser::GetList($by, $order, array("LOGIN_EQUAL_EXACT" => $arParams["LOGIN"]));
     while ($arUser = $rsUser->Fetch()) {
         if (!$arUser["EXTERNAL_AUTH_ID"]) {
             break;
         }
     }
     if ($arUser) {
         $USER_ID = intval($arUser["ID"]);
         $rsKey = $DB->Query("SELECT * from b_sec_user WHERE ACTIVE='Y' AND USER_ID = " . $USER_ID);
         $arKey = $rsKey->Fetch();
         if ($arKey) {
             $bSuccess = false;
             if (preg_match("/(\\d{6})\$/", $arParams["PASSWORD"], $arMatch)) {
                 $bin_secret = pack('H*', $arKey["SECRET"]);
                 $sync = $arMatch[1];
                 $cnt = intval($arKey["COUNTER"]) + 1;
                 $window = COption::GetOptionInt("security", "hotp_user_window");
                 $i = 0;
                 while ($i < $window) {
                     if (CSecurityUser::HOTP($bin_secret, $cnt) == $sync) {
                         $bSuccess = true;
                         $arParams["PASSWORD"] = substr($arParams["PASSWORD"], 0, -6);
                         $DB->Query("UPDATE b_sec_user SET COUNTER = " . $cnt . " WHERE USER_ID = " . $USER_ID);
                         break;
                     }
                     $cnt++;
                     $i++;
                 }
             }
             if (!$bSuccess) {
                 $APPLICATION->ThrowException(GetMessage("WRONG_LOGIN"));
                 return false;
             }
         }
     }
     return true;
 }
Beispiel #26
0
 public static function OnPageStart()
 {
     if (!defined("PERFMON_STOP")) {
         $end_time = COption::GetOptionInt("perfmon", "end_time");
         if (time() > $end_time) {
             CPerfomanceKeeper::SetActive(false);
             if (COption::GetOptionString("perfmon", "total_mark_value", "") == "measure") {
             }
             COption::SetOptionString("perfmon", "total_mark_value", "calc");
         } else {
             self::setDebugModeOn();
             global $perfmonErrors;
             $perfmonErrors = array();
             if (COption::GetOptionString("perfmon", "warning_log") === "Y") {
                 set_error_handler("perfmonErrorHandler");
             }
             register_shutdown_function(array("CPerfomanceKeeper", "writeToDatabase"));
         }
     }
 }
Beispiel #27
0
 public static function SetDBSize()
 {
     global $DB;
     $DBSize = 0;
     if ($_SESSION["SESS_RECOUNT_DB"] == "Y" && COption::GetOptionInt("main", "disk_space") > 0) {
         $db_res = $DB->Query("SHOW TABLE STATUS FROM `" . $DB->ForSql($DB->DBName) . "`");
         if ($db_res && ($res = $db_res->Fetch())) {
             do {
                 $DBSize += $res["Data_length"] + $res["Index_length"];
             } while ($res = $db_res->Fetch());
         }
         COption::SetOptionString("main_size", "~db", $DBSize);
         $params = array("status" => "d", "time" => time());
         COption::SetOptionString("main_size", "~db_params", serialize($params));
         unset($_SESSION["SESS_RECOUNT_DB"]);
     } else {
         $params = array("status" => "d", "time" => false);
     }
     return array("status" => "done", "size" => $DBSize, "time" => $params["time"]);
 }
Beispiel #28
0
	static function DoProcessOrder(&$arOrder, $deliveryId, &$arErrors)
	{
		if (!array_key_exists("DELIVERY_LOCATION", $arOrder) || intval($arOrder["DELIVERY_LOCATION"]) <= 0)
			return;

		if (strlen($deliveryId) > 0 && strpos($deliveryId, ":") !== false)
		{
			$arOrder["DELIVERY_ID"] = $deliveryId;

			$delivery = explode(":", $deliveryId);

			$arOrderTmpDel = array(
				"PRICE" => $arOrder["ORDER_PRICE"] + $arOrder["TAX_PRICE"] - $arOrder["DISCOUNT_PRICE"],
				"WEIGHT" => $arOrder["ORDER_WEIGHT"],
				"LOCATION_FROM" => COption::GetOptionInt('sale', 'location', '2961', $arOrder["SITE_ID"]),
				"LOCATION_TO" => $arOrder["DELIVERY_LOCATION"],
				"LOCATION_ZIP" => $arOrder["DELIVERY_LOCATION_ZIP"],
				"ITEMS" => $arOrder["BASKET_ITEMS"]
			);

			$arDeliveryPrice = CSaleDeliveryHandler::CalculateFull($delivery[0], $delivery[1], $arOrderTmpDel, $arOrder["CURRENCY"],$arOrder["LID"]);

			if ($arDeliveryPrice["RESULT"] == "ERROR")
				$arErrors[] = array("CODE" => "CALCULATE", "TEXT" => $arDeliveryPrice["TEXT"]);
			else
				$arOrder["DELIVERY_PRICE"] = roundEx($arDeliveryPrice["VALUE"], SALE_VALUE_PRECISION);
		}
		elseif (intval($deliveryId) > 0)
		{
			if ($arDelivery = CSaleDelivery::GetByID($deliveryId))
			{
				$arOrder["DELIVERY_ID"] = $deliveryId;
				$arOrder["DELIVERY_PRICE"] = roundEx(CCurrencyRates::ConvertCurrency($arDelivery["PRICE"], $arDelivery["CURRENCY"], $arOrder["CURRENCY"]), SALE_VALUE_PRECISION);
			}
			else
			{
				$arErrors[] = array("CODE" => "CALCULATE", "TEXT" => GetMessage('SKGD_DELIVERY_NOT_FOUND'));
			}
		}
	}
Beispiel #29
0
 public function CCaptcha()
 {
     $this->transparentTextPercent = COption::GetOptionInt("main", "CAPTCHA_transparentTextPercent", 10);
     $this->bTransparentText = $this->transparentTextPercent > 0;
     $this->SetBGColorRGB(COption::GetOptionString("main", "CAPTCHA_arBGColor_1", "FFFFFF"), COption::GetOptionString("main", "CAPTCHA_arBGColor_2", "FFFFFF"));
     $this->SetEllipsesNumber(COption::GetOptionInt("main", "CAPTCHA_numEllipses", 100));
     $this->SetEllipseColorRGB(COption::GetOptionString("main", "CAPTCHA_arEllipseColor_1", "7F7F7F"), COption::GetOptionString("main", "CAPTCHA_arEllipseColor_2", "FFFFFF"));
     $this->SetLinesOverText(COption::GetOptionString("main", "CAPTCHA_bLinesOverText", "N") === "Y");
     $this->SetLinesNumber(COption::GetOptionInt("main", "CAPTCHA_numLines", 20));
     $this->SetLineColorRGB(COption::GetOptionString("main", "CAPTCHA_arLineColor_1", "6E6E6E"), COption::GetOptionString("main", "CAPTCHA_arLineColor_2", "FAFAFA"));
     $this->SetTextWriting(COption::GetOptionInt("main", "CAPTCHA_textAngel_1", -20), COption::GetOptionInt("main", "CAPTCHA_textAngel_2", 20), COption::GetOptionInt("main", "CAPTCHA_textStartX", 7), COption::GetOptionInt("main", "CAPTCHA_textDistance_1", 27), COption::GetOptionInt("main", "CAPTCHA_textDistance_2", 32), COption::GetOptionInt("main", "CAPTCHA_textFontSize", 20));
     $this->SetTextColorRGB(COption::GetOptionString("main", "CAPTCHA_arTextColor_1", "000000"), COption::GetOptionString("main", "CAPTCHA_arTextColor_2", "646464"));
     $this->SetWaveTransformation(COption::GetOptionString("main", "CAPTCHA_bWaveTransformation", "N") === "Y");
     $this->SetEmptyText(COption::GetOptionString("main", "CAPTCHA_bEmptyText", "N") === "Y");
     $this->SetBorderColorRGB(COption::GetOptionString("main", "CAPTCHA_arBorderColor", "000000"));
     $this->SetTTFFonts(explode(",", COption::GetOptionString("main", "CAPTCHA_arTTFFiles", "font.ttf")));
     $strChars = COption::GetOptionString("main", "CAPTCHA_letters", "ABCDEFGHJKLMNPQRSTWXYZ23456789");
     $arChars = array();
     for ($i = 0; $i < strlen($strChars); $i++) {
         $arChars[] = substr($strChars, $i, 1);
     }
     $this->SetCodeChars($arChars);
 }
Beispiel #30
0
<?php

//<title>CSV (new)</title>
IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/catalog/export_setup_templ.php');
IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/catalog/export_yandex.php');
global $APPLICATION, $USER;
$maxDepthLevel = (int) COption::GetOptionInt("catalog", "num_catalog_levels", 3);
if ($maxDepthLevel <= 0) {
    $maxDepthLevel = 3;
}
$arSetupErrors = array();
$strCatalogDefaultFolder = COption::GetOptionString("catalog", "export_default_path", CATALOG_DEFAULT_EXPORT_PATH);
$STEP = (int) $STEP;
if (0 >= $STEP) {
    $STEP = 1;
}
$ACTION = strval($ACTION);
//********************  ACTIONS  **************************************//
if (($ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') && $STEP == 1) {
    if (isset($arOldSetupVars['IBLOCK_ID'])) {
        $IBLOCK_ID = $arOldSetupVars['IBLOCK_ID'];
    }
}
if ($STEP > 1) {
    $IBLOCK_ID = (int) $IBLOCK_ID;
    if ($IBLOCK_ID <= 0) {
        $arSetupErrors[] = GetMessage("CATI_NO_IBLOCK");
    } else {
        $rsIBlocks = CIBlock::GetList(array(), array('IBLOCK_ID' => $IBLOCK_ID, 'CHECK_PERMISSIONS' => 'N'));
        if (!($arIBlock = $rsIBlocks->Fetch())) {
            $arSetupErrors[] = GetMessage("CATI_NO_IBLOCK");