function getStructure($id, $section=false, $arUf=array()) { $id = (int)$id; if (!$id) { return false; } if ($section) { $res = CIBlockSection::GetByID($id); if ( $ar = $res->GetNext() ) { $res = CIBlockSection::GetList(array(), array('IBLOCK_ID'=>$ar['IBLOCK_ID'], 'ID'=>$ar['ID']), false, $arUf); } else { return false; } } else { $res = CIBlockElement::GetByID($id); if ( $ar = $res->GetNext() ) { $res = CIBlockSection::GetList(array(), array('IBLOCK_ID'=>$ar['IBLOCK_ID'], 'ID'=>$ar['IBLOCK_SECTION_ID']), false, $arUf); } else { return false; } } // херню подсунули if ( !$res->SelectedRowsCount() ) { return false; } $arSect = $res->GetNext(); $arStructure = array(); $res = CIBlockSection::GetList(array('LEFT_MARGIN'=>'ASC'), array( 'IBLOCK_ID' => $arSect['IBLOCK_ID'], '<=LEFT_BORDER' => $arSect['LEFT_MARGIN'], '>=RIGHT_BORDER' => $arSect['RIGHT_MARGIN'], '<DEPTH_LEVEL' => $arSect['DEPTH_LEVEL'], ), false, $arUf); while($ar = $res->GetNext()){ $arStructure[] = $ar; } $arStructure[] = $arSect; return $arStructure; }
static function onBeforeElementAddHandler($arFields) { $IBLOCK_ID = Config\Option::get("citfact.replaceurl", "IBLOCK_ID", ""); $SECTION_ID = Config\Option::get("citfact.replaceurl", "SECTION_BREND_ID", "BRENDI"); $CODE_PROP = Config\Option::get("citfact.replaceurl", "PROPERTY_CODE_BRENDI", "BRENDI"); if ($IBLOCK_ID == $arFields["IBLOCK_ID"]) { $propertyBrand = \CIBlockProperty::GetByID($CODE_PROP, $arFields["IBLOCK_ID"]); if ($arResultProperty = $propertyBrand->GetNext()) { $propertyBrandValue = \CIBlockPropertyEnum::GetByID($arFields["PROPERTY_VALUES"][$arResultProperty["ID"]][0]["VALUE"]); } $rqParentSection = \CIBlockSection::GetByID($SECTION_ID); if ($arParentSection = $rqParentSection->GetNext()) { $arFilter = array('IBLOCK_ID' => $arParentSection['IBLOCK_ID'], '>LEFT_MARGIN' => $arParentSection['LEFT_MARGIN'], '<RIGHT_MARGIN' => $arParentSection['RIGHT_MARGIN'], '>DEPTH_LEVEL' => $arParentSection['DEPTH_LEVEL']); // выберет потомков без учета активности $rqSectChild = \CIBlockSection::GetList(array('left_margin' => 'asc'), $arFilter); while ($arSectChild = $rqSectChild->GetNext()) { $arSections[$arSectChild["NAME"]] = $arSectChild["ID"]; } } if (array_key_exists($propertyBrandValue["VALUE"], $arSections)) { $arFields["IBLOCK_SECTION"][] = $arSections[$propertyBrandValue["VALUE"]]; } else { $arParams = array("replace_space" => "-", "replace_other" => "-"); $trans = \Cutil::translit($propertyBrandValue["VALUE"], "ru", $arParams); $bs = new \CIBlockSection(); $arFieldsNewSection = array("ACTIVE" => "Y", "IBLOCK_SECTION_ID" => $SECTION_ID, "IBLOCK_ID" => $IBLOCK_ID, "NAME" => $propertyBrandValue["VALUE"], "CODE" => $trans); $resultAdd = $bs->Add($arFieldsNewSection); $arFields["IBLOCK_SECTION"][] = $resultAdd; } } return true; }
private static function get_ib_section($id) { $result = false; $res = CIBlockSection::GetByID($id); if ($ar_res = $res->GetNext()) { $result = $ar_res; } return $result; }
public static function getSectionNameById($SECTION_ID) { $ret = NULL; $res = CIBlockSection::GetByID($SECTION_ID); if ($ar_res = $res->GetNext()) { $ret = $ar_res["NAME"]; } return $ret; }
function PathSections($id) { $res = CIBlockSection::GetByID($id); if($ar_res = $res->GetNext()) { $section_id = $ar_res['IBLOCK_SECTION_ID']; $name_section = $ar_res['NAME']; $url_section = $ar_res['SECTION_PAGE_URL']; if (intval($section_id) > 0) { $path = "<a href='$url_section'>$name_section</a>"; return PathSections($section_id)." / ".$path; } else { return "<a href='$url_section'>$name_section</a>"; } } return ""; }?>
public static function _GetProductUrl($OF_ELEMENT_ID, $OF_IBLOCK_ID, $server_name = false, $arrType = false) { static $arIBlockCache = array(); static $arElementCache = array(); $product_url = ""; $OF_ELEMENT_ID = intval($OF_ELEMENT_ID); $OF_IBLOCK_ID = intval($OF_IBLOCK_ID); if ($arrType === "E" && $OF_IBLOCK_ID > 0 && $OF_ELEMENT_ID > 0 && CModule::IncludeModule("catalog")) { if (!array_key_exists($OF_IBLOCK_ID, $arIBlockCache)) { $rsProducts = CCatalog::GetList(array(), array('IBLOCK_ID' => $OF_IBLOCK_ID), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID')); $arIBlockCache[$OF_IBLOCK_ID] = $rsProducts->Fetch(); if (is_array($arIBlockCache[$OF_IBLOCK_ID])) { $arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"] = CIBlock::GetArrayByID($arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK_ID"]); } } if (is_array($arIBlockCache[$OF_IBLOCK_ID])) { if (!array_key_exists($OF_ELEMENT_ID, $arElementCache)) { $OF_PROP_ID = $arIBlockCache[$OF_IBLOCK_ID]["SKU_PROPERTY_ID"]; $rsOffer = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $arIBlockCache[$OF_IBLOCK_ID]["IBLOCK_ID"], "=ID" => $OF_ELEMENT_ID), false, false, array("LANG_DIR", "PROPERTY_" . $OF_PROP_ID . ".ID", "PROPERTY_" . $OF_PROP_ID . ".CODE", "PROPERTY_" . $OF_PROP_ID . ".XML_ID", "PROPERTY_" . $OF_PROP_ID . ".IBLOCK_ID", "PROPERTY_" . $OF_PROP_ID . ".IBLOCK_SECTION_ID")); if ($arOffer = $rsOffer->Fetch()) { $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_CODE"] = ''; if (intval($arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_ID"]) > 0) { $rsSections = CIBlockSection::GetByID($arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_ID"]); if ($arSection = $rsSections->Fetch()) { $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_CODE"] = $arSection['CODE']; } } $arElementCache[$OF_ELEMENT_ID] = array("LANG_DIR" => $arOffer["LANG_DIR"], "ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_ID"], "ELEMENT_ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_ID"], "CODE" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_CODE"], "ELEMENT_CODE" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_CODE"], "EXTERNAL_ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_XML_ID"], "IBLOCK_TYPE_ID" => $arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"]["IBLOCK_TYPE_ID"], "IBLOCK_ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_ID"], "IBLOCK_CODE" => $arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"]["CODE"], "IBLOCK_EXTERNAL_ID" => $arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"]["XML_ID"], "IBLOCK_SECTION_ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_ID"], "SECTION_CODE" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_CODE"]); } } if (is_array($arElementCache[$OF_ELEMENT_ID])) { $product_url = CIBlock::ReplaceDetailUrl($arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"]["DETAIL_PAGE_URL"], $arElementCache[$OF_ELEMENT_ID], $server_name, $arrType); } } } return $product_url; }
function Update($ID, $arFields, $bResort = true, $bUpdateSearch = true, $bResizePictures = false) { global $USER, $DB, $APPLICATION; $ID = intval($ID); $db_record = CIBlockSection::GetList(array(), array("ID" => $ID, "CHECK_PERMISSIONS" => "N")); if (!($db_record = $db_record->Fetch())) { return false; } if (is_set($arFields, "EXTERNAL_ID")) { $arFields["XML_ID"] = $arFields["EXTERNAL_ID"]; } unset($arFields["GLOBAL_ACTIVE"]); unset($arFields["DEPTH_LEVEL"]); unset($arFields["LEFT_MARGIN"]); unset($arFields["RIGHT_MARGIN"]); unset($arFields["IBLOCK_ID"]); unset($arFields["DATE_CREATE"]); unset($arFields["CREATED_BY"]); $arIBlock = CIBlock::GetArrayByID($db_record["IBLOCK_ID"]); if ($bResizePictures) { $arDef = $arIBlock["FIELDS"]["SECTION_PICTURE"]["DEFAULT_VALUE"]; if ($arDef["DELETE_WITH_DETAIL"] === "Y" && $arFields["DETAIL_PICTURE"]["del"] === "Y") { $arFields["PICTURE"]["del"] = "Y"; } if ($arDef["FROM_DETAIL"] === "Y" && ($arFields["PICTURE"]["size"] <= 0 || $arDef["UPDATE_WITH_DETAIL"] === "Y") && is_array($arFields["DETAIL_PICTURE"]) && $arFields["DETAIL_PICTURE"]["size"] > 0) { if ($arFields["PICTURE"]["del"] !== "Y" && $arDef["UPDATE_WITH_DETAIL"] !== "Y") { $arOldSection = $db_record; } else { $arOldSection = false; } if (!$arOldSection || !$arOldSection["PICTURE"]) { $arNewPreview = $arFields["DETAIL_PICTURE"]; $arNewPreview["COPY_FILE"] = "Y"; $arNewPreview["description"] = $arFields["PICTURE"]["description"]; $arFields["PICTURE"] = $arNewPreview; } } if (array_key_exists("PICTURE", $arFields) && is_array($arFields["PICTURE"]) && $arFields["PICTURE"]["size"] > 0 && $arDef["SCALE"] === "Y") { $arNewPicture = CIBlock::ResizePicture($arFields["PICTURE"], $arDef); if (is_array($arNewPicture)) { $arNewPicture["description"] = $arFields["PICTURE"]["description"]; $arFields["PICTURE"] = $arNewPicture; } elseif ($arDef["IGNORE_ERRORS"] !== "Y") { unset($arFields["PICTURE"]); $strWarning .= GetMessage("IBLOCK_FIELD_PREVIEW_PICTURE") . ": " . $arNewPicture . "<br>"; } } if (array_key_exists("PICTURE", $arFields) && is_array($arFields["PICTURE"]) && $arDef["USE_WATERMARK_FILE"] === "Y") { if (strlen($arFields["PICTURE"]["tmp_name"]) > 0 && $arFields["PICTURE"]["tmp_name"] === $arFields["DETAIL_PICTURE"]["tmp_name"]) { $arFields["PICTURE"]["tmp_name"] = CTempFile::GetFileName(basename($arFields["PICTURE"]["tmp_name"])); CheckDirPath($arFields["PICTURE"]["tmp_name"]); copy($arFields["DETAIL_PICTURE"]["tmp_name"], $arFields["PICTURE"]["tmp_name"]); } CIBLock::FilterPicture($arFields["PICTURE"]["tmp_name"], array("name" => "watermark", "position" => $arDef["WATERMARK_FILE_POSITION"], "type" => "file", "size" => "real", "alpha_level" => 100 - min(max($arDef["WATERMARK_FILE_ALPHA"], 0), 100), "file" => $_SERVER["DOCUMENT_ROOT"] . Rel2Abs("/", $arDef["WATERMARK_FILE"]))); } if (array_key_exists("PICTURE", $arFields) && is_array($arFields["PICTURE"]) && $arDef["USE_WATERMARK_TEXT"] === "Y") { if (strlen($arFields["PICTURE"]["tmp_name"]) > 0 && $arFields["PICTURE"]["tmp_name"] === $arFields["DETAIL_PICTURE"]["tmp_name"]) { $arFields["PICTURE"]["tmp_name"] = CTempFile::GetFileName(basename($arFields["PICTURE"]["tmp_name"])); CheckDirPath($arFields["PICTURE"]["tmp_name"]); copy($arFields["DETAIL_PICTURE"]["tmp_name"], $arFields["PICTURE"]["tmp_name"]); } CIBLock::FilterPicture($arFields["PICTURE"]["tmp_name"], array("name" => "watermark", "position" => $arDef["WATERMARK_TEXT_POSITION"], "type" => "text", "coefficient" => $arDef["WATERMARK_TEXT_SIZE"], "text" => $arDef["WATERMARK_TEXT"], "font" => $_SERVER["DOCUMENT_ROOT"] . Rel2Abs("/", $arDef["WATERMARK_TEXT_FONT"]), "color" => $arDef["WATERMARK_TEXT_COLOR"])); } $arDef = $arIBlock["FIELDS"]["SECTION_DETAIL_PICTURE"]["DEFAULT_VALUE"]; if (array_key_exists("DETAIL_PICTURE", $arFields) && is_array($arFields["DETAIL_PICTURE"]) && $arDef["SCALE"] === "Y") { $arNewPicture = CIBlock::ResizePicture($arFields["DETAIL_PICTURE"], $arDef); if (is_array($arNewPicture)) { $arNewPicture["description"] = $arFields["DETAIL_PICTURE"]["description"]; $arFields["DETAIL_PICTURE"] = $arNewPicture; } elseif ($arDef["IGNORE_ERRORS"] !== "Y") { unset($arFields["DETAIL_PICTURE"]); $strWarning .= GetMessage("IBLOCK_FIELD_DETAIL_PICTURE") . ": " . $arNewPicture . "<br>"; } } if (array_key_exists("DETAIL_PICTURE", $arFields) && is_array($arFields["DETAIL_PICTURE"]) && $arDef["USE_WATERMARK_FILE"] === "Y") { if (strlen($arFields["DETAIL_PICTURE"]["tmp_name"]) > 0 && $arFields["DETAIL_PICTURE"]["tmp_name"] === $arFields["PICTURE"]["tmp_name"]) { $arFields["DETAIL_PICTURE"]["tmp_name"] = CTempFile::GetFileName(basename($arFields["DETAIL_PICTURE"]["tmp_name"])); CheckDirPath($arFields["DETAIL_PICTURE"]["tmp_name"]); copy($arFields["PICTURE"]["tmp_name"], $arFields["DETAIL_PICTURE"]["tmp_name"]); } CIBLock::FilterPicture($arFields["DETAIL_PICTURE"]["tmp_name"], array("name" => "watermark", "position" => $arDef["WATERMARK_FILE_POSITION"], "type" => "file", "size" => "real", "alpha_level" => 100 - min(max($arDef["WATERMARK_FILE_ALPHA"], 0), 100), "file" => $_SERVER["DOCUMENT_ROOT"] . Rel2Abs("/", $arDef["WATERMARK_FILE"]), "fill" => "resize")); } if (array_key_exists("DETAIL_PICTURE", $arFields) && is_array($arFields["DETAIL_PICTURE"]) && $arDef["USE_WATERMARK_TEXT"] === "Y") { if (strlen($arFields["DETAIL_PICTURE"]["tmp_name"]) > 0 && $arFields["DETAIL_PICTURE"]["tmp_name"] === $arFields["PICTURE"]["tmp_name"]) { $arFields["DETAIL_PICTURE"]["tmp_name"] = CTempFile::GetFileName(basename($arFields["DETAIL_PICTURE"]["tmp_name"])); CheckDirPath($arFields["DETAIL_PICTURE"]["tmp_name"]); copy($arFields["PICTURE"]["tmp_name"], $arFields["DETAIL_PICTURE"]["tmp_name"]); } CIBLock::FilterPicture($arFields["DETAIL_PICTURE"]["tmp_name"], array("name" => "watermark", "position" => $arDef["WATERMARK_TEXT_POSITION"], "type" => "text", "coefficient" => $arDef["WATERMARK_TEXT_SIZE"], "text" => $arDef["WATERMARK_TEXT"], "font" => $_SERVER["DOCUMENT_ROOT"] . Rel2Abs("/", $arDef["WATERMARK_TEXT_FONT"]), "color" => $arDef["WATERMARK_TEXT_COLOR"])); } } if (is_set($arFields, "PICTURE")) { if (strlen($arFields["PICTURE"]["name"]) <= 0 && strlen($arFields["PICTURE"]["del"]) <= 0) { unset($arFields["PICTURE"]); } else { $arFields["PICTURE"]["old_file"] = $db_record["PICTURE"]; $arFields["PICTURE"]["MODULE_ID"] = "iblock"; } } if (is_set($arFields, "DETAIL_PICTURE")) { if (strlen($arFields["DETAIL_PICTURE"]["name"]) <= 0 && strlen($arFields["DETAIL_PICTURE"]["del"]) <= 0) { unset($arFields["DETAIL_PICTURE"]); } else { $arFields["DETAIL_PICTURE"]["old_file"] = $db_record["DETAIL_PICTURE"]; $arFields["DETAIL_PICTURE"]["MODULE_ID"] = "iblock"; } } if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y") { $arFields["ACTIVE"] = "N"; } if (is_set($arFields, "DESCRIPTION_TYPE") && $arFields["DESCRIPTION_TYPE"] != "html") { $arFields["DESCRIPTION_TYPE"] = "text"; } if (isset($arFields["IBLOCK_SECTION_ID"])) { $arFields["IBLOCK_SECTION_ID"] = intval($arFields["IBLOCK_SECTION_ID"]); if ($arFields["IBLOCK_SECTION_ID"] <= 0) { $arFields["IBLOCK_SECTION_ID"] = false; } } $DESC_tmp = is_set($arFields, "DESCRIPTION") ? $arFields["DESCRIPTION"] : $db_record["DESCRIPTION"]; $DESC_TYPE_tmp = is_set($arFields, "DESCRIPTION_TYPE") ? $arFields["DESCRIPTION_TYPE"] : $db_record["DESCRIPTION_TYPE"]; $arFields["SEARCHABLE_CONTENT"] = ToUpper((is_set($arFields, "NAME") ? $arFields["NAME"] : $db_record["NAME"]) . "\r\n" . ($DESC_TYPE_tmp == "html" ? HTMLToTxt($DESC_tmp) : $DESC_tmp)); if (is_object($USER)) { if (!isset($arFields["MODIFIED_BY"]) || intval($arFields["MODIFIED_BY"]) <= 0) { $arFields["MODIFIED_BY"] = intval($USER->GetID()); } } if (!$this->CheckFields($arFields, $ID)) { $Result = false; $arFields["RESULT_MESSAGE"] =& $this->LAST_ERROR; } elseif (!$GLOBALS["USER_FIELD_MANAGER"]->CheckFields("IBLOCK_" . $db_record["IBLOCK_ID"] . "_SECTION", $ID, $arFields)) { $Result = false; $err = $APPLICATION->GetException(); if (is_object($err)) { $this->LAST_ERROR .= str_replace("<br><br>", "<br>", $err->GetString() . "<br>"); } $arFields["RESULT_MESSAGE"] =& $this->LAST_ERROR; } else { if (array_key_exists("PICTURE", $arFields)) { $SAVED_PICTURE = $arFields["PICTURE"]; CFile::SaveForDB($arFields, "PICTURE", "iblock"); } if (array_key_exists("DETAIL_PICTURE", $arFields)) { $SAVED_DETAIL_PICTURE = $arFields["DETAIL_PICTURE"]; CFile::SaveForDB($arFields, "DETAIL_PICTURE", "iblock"); } unset($arFields["ID"]); $strUpdate = $DB->PrepareUpdate("b_iblock_section", $arFields, "iblock"); if (array_key_exists("PICTURE", $arFields)) { $arFields["PICTURE"] = $SAVED_PICTURE; } if (array_key_exists("DETAIL_PICTURE", $arFields)) { $arFields["DETAIL_PICTURE"] = $SAVED_DETAIL_PICTURE; } CIBlock::_transaction_lock($db_record["IBLOCK_ID"]); if (strlen($strUpdate) > 0) { $strSql = "UPDATE b_iblock_section SET " . $strUpdate . " WHERE ID = " . $ID; $arBinds = array(); if (array_key_exists("DESCRIPTION", $arFields)) { $arBinds["DESCRIPTION"] = $arFields["DESCRIPTION"]; } if (array_key_exists("SEARCHABLE_CONTENT", $arFields)) { $arBinds["SEARCHABLE_CONTENT"] = $arFields["SEARCHABLE_CONTENT"]; } $DB->QueryBind($strSql, $arBinds); } if ($bResort) { //Move inside the tree if (isset($arFields["SORT"]) && $arFields["SORT"] != $db_record["SORT"] || isset($arFields["NAME"]) && $arFields["NAME"] != $db_record["NAME"] || isset($arFields["IBLOCK_SECTION_ID"]) && $arFields["IBLOCK_SECTION_ID"] != $db_record["IBLOCK_SECTION_ID"]) { //First "delete" from the tree $distance = intval($db_record["RIGHT_MARGIN"]) - intval($db_record["LEFT_MARGIN"]) + 1; $DB->Query("\n\t\t\t\t\t\tUPDATE b_iblock_section SET\n\t\t\t\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t\t\t\t,LEFT_MARGIN = -LEFT_MARGIN\n\t\t\t\t\t\t\t,RIGHT_MARGIN = -RIGHT_MARGIN\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tIBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\t\tAND LEFT_MARGIN >= " . intval($db_record["LEFT_MARGIN"]) . "\n\t\t\t\t\t\t\tAND LEFT_MARGIN <= " . intval($db_record["RIGHT_MARGIN"]) . "\n\t\t\t\t\t"); $DB->Query("\n\t\t\t\t\t\tUPDATE b_iblock_section SET\n\t\t\t\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t\t\t\t,RIGHT_MARGIN = RIGHT_MARGIN - " . $distance . "\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tIBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\t\tAND RIGHT_MARGIN > " . $db_record["RIGHT_MARGIN"] . "\n\t\t\t\t\t"); $DB->Query("\n\t\t\t\t\t\tUPDATE b_iblock_section SET\n\t\t\t\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t\t\t\t,LEFT_MARGIN = LEFT_MARGIN - " . $distance . "\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tIBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\t\tAND LEFT_MARGIN > " . $db_record["LEFT_MARGIN"] . "\n\t\t\t\t\t"); //Next insert into the the tree almost as we do when inserting the new one $PARENT_ID = isset($arFields["IBLOCK_SECTION_ID"]) ? intval($arFields["IBLOCK_SECTION_ID"]) : intval($db_record["IBLOCK_SECTION_ID"]); $NAME = isset($arFields["NAME"]) ? $arFields["NAME"] : $db_record["NAME"]; $SORT = isset($arFields["SORT"]) ? intval($arFields["SORT"]) : intval($db_record["SORT"]); $arParents = array(); $strSql = "\n\t\t\t\t\t\tSELECT BS.ID, BS.ACTIVE, BS.GLOBAL_ACTIVE, BS.DEPTH_LEVEL, BS.LEFT_MARGIN, BS.RIGHT_MARGIN\n\t\t\t\t\t\tFROM b_iblock_section BS\n\t\t\t\t\t\tWHERE BS.IBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\tAND BS.ID in (" . intval($db_record["IBLOCK_SECTION_ID"]) . ", " . $PARENT_ID . ")\n\t\t\t\t\t"; $rsParents = $DB->Query($strSql); while ($arParent = $rsParents->Fetch()) { $arParents[$arParent["ID"]] = $arParent; } //Find rightmost child of the parent $strSql = "\n\t\t\t\t\t\tSELECT BS.ID, BS.RIGHT_MARGIN, BS.DEPTH_LEVEL\n\t\t\t\t\t\tFROM b_iblock_section BS\n\t\t\t\t\t\tWHERE BS.IBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\tAND " . ($PARENT_ID > 0 ? "BS.IBLOCK_SECTION_ID=" . $PARENT_ID : "BS.IBLOCK_SECTION_ID IS NULL") . "\n\t\t\t\t\t\tAND (\n\t\t\t\t\t\t\t(BS.SORT < " . $SORT . ")\n\t\t\t\t\t\t\tOR (BS.SORT = " . $SORT . " AND BS.NAME < '" . $DB->ForSQL($NAME) . "')\n\t\t\t\t\t\t)\n\t\t\t\t\t\tAND BS.ID <> " . $ID . "\n\t\t\t\t\t\tORDER BY BS.SORT DESC, BS.NAME DESC\n\t\t\t\t\t"; $rsChild = $DB->Query($strSql); if ($arChild = $rsChild->Fetch()) { //We found the left neighbour $arUpdate = array("LEFT_MARGIN" => intval($arChild["RIGHT_MARGIN"]) + 1, "DEPTH_LEVEL" => intval($arChild["DEPTH_LEVEL"])); } else { //If we have parent, when take its left_margin if (isset($arParents[$PARENT_ID]) && $arParents[$PARENT_ID]) { $arUpdate = array("LEFT_MARGIN" => intval($arParents[$PARENT_ID]["LEFT_MARGIN"]) + 1, "DEPTH_LEVEL" => intval($arParents[$PARENT_ID]["DEPTH_LEVEL"]) + 1); } else { //We are only one/leftmost section in the iblock. $arUpdate = array("LEFT_MARGIN" => 1, "DEPTH_LEVEL" => 1); } } $move_distance = intval($db_record["LEFT_MARGIN"]) - $arUpdate["LEFT_MARGIN"]; $DB->Query("\n\t\t\t\t\t\tUPDATE b_iblock_section SET\n\t\t\t\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t\t\t\t,LEFT_MARGIN = LEFT_MARGIN + " . $distance . "\n\t\t\t\t\t\t\t,RIGHT_MARGIN = RIGHT_MARGIN + " . $distance . "\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tIBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\t\tAND LEFT_MARGIN >= " . $arUpdate["LEFT_MARGIN"] . "\n\t\t\t\t\t"); $DB->Query("\n\t\t\t\t\t\tUPDATE b_iblock_section SET\n\t\t\t\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t\t\t\t,LEFT_MARGIN = -LEFT_MARGIN - " . $move_distance . "\n\t\t\t\t\t\t\t,RIGHT_MARGIN = -RIGHT_MARGIN - " . $move_distance . "\n\t\t\t\t\t\t\t" . ($arUpdate["DEPTH_LEVEL"] != intval($db_record["DEPTH_LEVEL"]) ? ",DEPTH_LEVEL = DEPTH_LEVEL - " . ($db_record["DEPTH_LEVEL"] - $arUpdate["DEPTH_LEVEL"]) : "") . "\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tIBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\t\tAND LEFT_MARGIN <= " . -intval($db_record["LEFT_MARGIN"]) . "\n\t\t\t\t\t\t\tAND LEFT_MARGIN >= " . -intval($db_record["RIGHT_MARGIN"]) . "\n\t\t\t\t\t"); if (isset($arParents[$PARENT_ID])) { $DB->Query("\n\t\t\t\t\t\t\tUPDATE b_iblock_section SET\n\t\t\t\t\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t\t\t\t\t,RIGHT_MARGIN = RIGHT_MARGIN + " . $distance . "\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tIBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\t\t\tAND LEFT_MARGIN <= " . $arParents[$PARENT_ID]["LEFT_MARGIN"] . "\n\t\t\t\t\t\t\t\tAND RIGHT_MARGIN >= " . $arParents[$PARENT_ID]["RIGHT_MARGIN"] . "\n\t\t\t\t\t\t"); } } //Check if parent was changed if (isset($arFields["IBLOCK_SECTION_ID"]) && $arFields["IBLOCK_SECTION_ID"] != $db_record["IBLOCK_SECTION_ID"]) { $rsSection = CIBlockSection::GetByID($ID); $arSection = $rsSection->Fetch(); $strSql = "\n\t\t\t\t\t\tSELECT ID, GLOBAL_ACTIVE\n\t\t\t\t\t\tFROM b_iblock_section\n\t\t\t\t\t\tWHERE IBLOCK_ID = " . $arSection["IBLOCK_ID"] . "\n\t\t\t\t\t\tAND ID = " . intval($arFields["IBLOCK_SECTION_ID"]) . "\n\t\t\t\t\t"; $rsParent = $DB->Query($strSql); $arParent = $rsParent->Fetch(); //If new parent is not globally active //or we are not active either //we must be not globally active too if ($arParent && $arParent["GLOBAL_ACTIVE"] == "N" || $arFields["ACTIVE"] == "N") { $DB->Query("\n\t\t\t\t\t\t\tUPDATE b_iblock_section SET\n\t\t\t\t\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t\t\t\t\t,GLOBAL_ACTIVE = 'N'\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tIBLOCK_ID = " . $arSection["IBLOCK_ID"] . "\n\t\t\t\t\t\t\t\tAND LEFT_MARGIN >= " . intval($arSection["LEFT_MARGIN"]) . "\n\t\t\t\t\t\t\t\tAND RIGHT_MARGIN <= " . intval($arSection["RIGHT_MARGIN"]) . "\n\t\t\t\t\t\t"); } elseif ($arSection["ACTIVE"] == "N" && $arFields["ACTIVE"] == "Y") { $this->RecalcGlobalActiveFlag($arSection); } elseif ((!$arParent || $arParent["GLOBAL_ACTIVE"] == "Y") && $arSection["GLOBAL_ACTIVE"] == "N" && ($arSection["ACTIVE"] == "Y" || $arFields["ACTIVE"] == "Y")) { $this->RecalcGlobalActiveFlag($arSection); } //Otherwise we may not to change anything } elseif (isset($arFields["ACTIVE"]) && $arFields["ACTIVE"] != $db_record["ACTIVE"]) { //Make all children globally inactive if ($arFields["ACTIVE"] == "N") { $DB->Query("\n\t\t\t\t\t\t\tUPDATE b_iblock_section SET\n\t\t\t\t\t\t\t\tTIMESTAMP_X=" . ($DB->type == "ORACLE" ? "NULL" : "TIMESTAMP_X") . "\n\t\t\t\t\t\t\t\t,GLOBAL_ACTIVE = 'N'\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tIBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\t\t\tAND LEFT_MARGIN >= " . intval($db_record["LEFT_MARGIN"]) . "\n\t\t\t\t\t\t\t\tAND RIGHT_MARGIN <= " . intval($db_record["RIGHT_MARGIN"]) . "\n\t\t\t\t\t\t"); } else { //Check for parent activity $strSql = "\n\t\t\t\t\t\t\tSELECT ID, GLOBAL_ACTIVE\n\t\t\t\t\t\t\tFROM b_iblock_section\n\t\t\t\t\t\t\tWHERE IBLOCK_ID = " . $db_record["IBLOCK_ID"] . "\n\t\t\t\t\t\t\tAND ID = " . intval($db_record["IBLOCK_SECTION_ID"]) . "\n\t\t\t\t\t\t"; $rsParent = $DB->Query($strSql); $arParent = $rsParent->Fetch(); //Parent is active //and we changed //so need to recalc if (!$arParent || $arParent["GLOBAL_ACTIVE"] == "Y") { $this->RecalcGlobalActiveFlag($db_record); } } } } if ($arIBlock["RIGHTS_MODE"] === "E") { $obSectionRights = new CIBlockSectionRights($arIBlock["ID"], $ID); //Check if parent changed with extended rights mode if (isset($arFields["IBLOCK_SECTION_ID"]) && $arFields["IBLOCK_SECTION_ID"] != $db_record["IBLOCK_SECTION_ID"]) { $obSectionRights->ChangeParents(array($db_record["IBLOCK_SECTION_ID"]), array($arFields["IBLOCK_SECTION_ID"])); } if (array_key_exists("RIGHTS", $arFields) && is_array($arFields["RIGHTS"])) { $obSectionRights->SetRights($arFields["RIGHTS"]); } } $uf_updated = $GLOBALS["USER_FIELD_MANAGER"]->Update("IBLOCK_" . $db_record["IBLOCK_ID"] . "_SECTION", $ID, $arFields); if ($uf_updated) { $DB->Query("UPDATE b_iblock_section SET TIMESTAMP_X = " . $DB->CurrentTimeFunction() . " WHERE ID = " . $ID); } if (CIBlock::GetArrayByID($db_record["IBLOCK_ID"], "SECTION_PROPERTY") === "Y" && array_key_exists("SECTION_PROPERTY", $arFields) && is_array($arFields["SECTION_PROPERTY"])) { CIBlockSectionPropertyLink::DeleteBySection($ID); foreach ($arFields["SECTION_PROPERTY"] as $PROPERTY_ID => $arLink) { CIBlockSectionPropertyLink::Add($ID, $PROPERTY_ID, $arLink); } } if ($bUpdateSearch) { CIBlockSection::UpdateSearch($ID); } if ($arIBlock["FIELDS"]["LOG_SECTION_EDIT"]["IS_REQUIRED"] == "Y") { $USER_ID = is_object($USER) ? intval($USER->GetID()) : 0; $db_events = GetModuleEvents("main", "OnBeforeEventLog"); $arEvent = $db_events->Fetch(); if (!$arEvent || ExecuteModuleEventEx($arEvent, array($USER_ID)) === false) { $rsSection = CIBlockSection::GetList(array(), array("=ID" => $ID), false, array("LIST_PAGE_URL", "NAME", "CODE")); $arSection = $rsSection->GetNext(); $res = array("ID" => $ID, "CODE" => $arSection["CODE"], "NAME" => $arSection["NAME"], "SECTION_NAME" => $arIBlock["SECTION_NAME"], "USER_ID" => $USER_ID, "IBLOCK_PAGE_URL" => $arSection["LIST_PAGE_URL"]); CEventLog::Log("IBLOCK", "IBLOCK_SECTION_EDIT", "iblock", $arIBlock["ID"], serialize($res)); } } $Result = true; /*********** QUOTA ***************/ $_SESSION["SESS_RECOUNT_DB"] = "Y"; /*********** QUOTA ***************/ } $arFields["ID"] = $ID; $arFields["IBLOCK_ID"] = $db_record["IBLOCK_ID"]; $arFields["RESULT"] =& $Result; $events = GetModuleEvents("iblock", "OnAfterIBlockSectionUpdate"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array(&$arFields)); } if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("iblock_id_" . $arIBlock["ID"]); } return $Result; }
/** * Категории типаов товаров (3-й уровень) * @return string HTML код на вывод */ public function subSubTags() { if (isset($_GET['section'])) { $res = CIBlockSection::GetByID(intval($_GET["section"])); if ($ar_res = $res->GetNext()) { if ($ar_res['DEPTH_LEVEL'] > 3) { $res = CIBlockSection::GetByID($ar_res['IBLOCK_SECTION_ID']); $ar_res = $res->GetNext(); } elseif ($ar_res['DEPTH_LEVEL'] < 3) { return; } return $this->drawSectionChain($ar_res['ID']); } } if (isset($_GET['facility'])) { $res = CIBlockSection::GetByID(intval($_GET["facility"])); if ($ar_res = $res->GetNext()) { if ($ar_res['DEPTH_LEVEL'] == 3) { $res = CIBlockSection::GetByID($ar_res['IBLOCK_SECTION_ID']); $ar_res = $res->GetNext(); } return $this->drawSectionChain($ar_res['ID']); } } if (isset($_GET['gift'])) { $res = CIBlockSection::GetByID(intval($_GET["gift"])); if ($ar_res = $res->GetNext()) { if ($ar_res['DEPTH_LEVEL'] == 3) { $res = CIBlockSection::GetByID($ar_res['IBLOCK_SECTION_ID']); $ar_res = $res->GetNext(); } return $this->drawSectionChain($ar_res['ID']); } } }
function GetListItemChangesSinceToken($listName, $viewFields = '', $query = '', $rowLimit = 0, $changeToken = '') { global $APPLICATION, $USER; if (!($listName_original = CIntranetUtils::checkGUID($listName))) { return new CSoapFault('Data error', 'Wrong GUID - ' . $listName); } if (!$USER->IsAdmin() && (!defined("IS_EXTRANET") || IS_EXTRANET != "Y")) { $rsUsers = CUser::GetList($by = "id", $order = "asc", array("ID" => $USER->GetID()), array("SELECT" => array("UF_DEPARTMENT"))); if ($arUser = $rsUsers->Fetch()) { if (intval($arUser["UF_DEPARTMENT"][0]) > 0) { $bUserIntranet = true; } } if (!$bUserIntranet) { return new CSoapFault('Data error', 'User has no permissions to read intranet contacts'); } } $listName = ToUpper(CIntranetUtils::makeGUID($listName_original)); $arFilter = array('ACTIVE' => 'Y'); $page = 1; $bUpdateFields = false; $tsLastFieldsChange = COption::GetOptionString('intranet', 'ws_contacts_last_fields_change', false); $this->bGetImages = COption::GetOptionString('intranet', 'ws_contacts_get_images', 'Y') == 'Y'; if (strlen($changeToken) > 0) { if ($pos = strpos($changeToken, ';')) { list($newChangeToken, $page, $last_change) = explode(';', $changeToken); $page++; $changeToken = $newChangeToken; } $arFilter['TIMESTAMP_X_1'] = ConvertTimeStamp($changeToken, 'FULL'); if (!$arFilter['TIMESTAMP_X_1']) { return new CSoapFault('Params error', 'Wrong changeToken: ' . $changeToken); } if ($tsLastFieldsChange !== false && $tsLastFieldsChange > $changeToken) { $bUpdateFields = true; } } if (CModule::IncludeModule('extranet') && defined("IS_EXTRANET") && IS_EXTRANET == "Y") { $arFilter["GROUPS_ID"] = array(COption::GetOptionInt("extranet", "extranet_group")); } if (!CModule::IncludeModule('extranet') || defined("IS_EXTRANET") && IS_EXTRANET == "Y" && defined("IS_EMPLOYEES") && IS_EMPLOYEES == "Y" || (!defined("IS_EXTRANET") || IS_EXTRANET != "Y")) { $arFilter["!UF_DEPARTMENT"] = false; } else { $arFilter["UF_DEPARTMENT"] = false; } // it's needed to check is current user an intranet user if he requested intranet script $arListParams = array("SELECT" => array("UF_DEPARTMENT")); if ($rowLimit > 0) { $arListParams["NAV_PARAMS"] = array("nPageSize" => $rowLimit, "bShowAll" => false, "iNumPage" => $page); } $obUsers = CUser::GetList($by = 'id', $order = 'asc', $arFilter, $arListParams); if (!isset($last_change)) { $last_change = 0; } $data = new CXMLCreator('listitems'); $data->setAttribute('MinTimeBetweenSyncs', 0); $data->setAttribute('RecommendedTimeBetweenSyncs', 180); $data->setAttribute('TimeStamp', $this->__makeDateTime()); $data->setAttribute('EffectivePermMask', 'FullMask'); $data->addChild($obChanges = new CXMLCreator('Changes')); if ((!$changeToken || $bUpdateFields) && $page <= 1) { $arGetListResult = $this->GetList($listName); $obChanges->addChild($arGetListResult['GetListResult']); } //TODO: the next thing is to do something like this for all deleted events. //$obChanges->addChild($obId = new CXMLCreator('Id')); //$obId->setAttribute('ChangeType', 'Delete'); //$obId->setData('702'); //<Id ChangeType="Delete">14</Id> $data->addChild($obData = new CXMLCreator('rs:data')); $counter = 0; if (CModule::IncludeModule('extranet') && defined("IS_EXTRANET") && IS_EXTRANET == "Y") { $arUsersInMyGroupsID = CExtranet::GetMyGroupsUsers(CExtranet::GetExtranetSiteID()); $arPublicUsersID = CExtranet::GetPublicUsers(); } while ($arUser = $obUsers->Fetch()) { if (CModule::IncludeModule('extranet') && !CExtranet::IsExtranetAdmin()) { if (defined("IS_EXTRANET") && IS_EXTRANET == "Y" && (!in_array($arUser["ID"], $arUsersInMyGroupsID) && !in_array($arUser["ID"], $arPublicUsersID) || $arUser["ID"] == $USER->GetID())) { continue; } } if (is_array($arUser['UF_DEPARTMENT']) && count($arUser['UF_DEPARTMENT']) > 0) { if ($this->arDepartmentsCache[$arUser['UF_DEPARTMENT'][0]]) { $arUser['WORK_COMPANY'] = $this->arDepartmentsTopCache[$arUser['UF_DEPARTMENT'][0]]; $arUser['UF_DEPARTMENT'] = $this->arDepartmentsCache[$arUser['UF_DEPARTMENT'][0]]; } else { $dbRes = CIBlockSection::GetByID($arUser['UF_DEPARTMENT'][0]); if ($arRes = $dbRes->Fetch()) { if (!defined("IS_EXTRANET") || IS_EXTRANET != "Y" || defined("IS_EMPLOYEES") && IS_EMPLOYEES == "Y") { $arUser['DEPARTMENT'] = $this->arDepartmentsCache[$arUser['UF_DEPARTMENT'][0]] = $arRes['NAME']; } // this case crashes inner cache of top departments //if (!$arUser['WORK_COMPANY']) //{ if ($top_section = CIntranetUtils::GetIBlockTopSection($arUser['UF_DEPARTMENT'])) { $dbRes = CIBlockSection::GetByID($top_section); if ($arRes = $dbRes->Fetch()) { $arUser['WORK_COMPANY'] = $this->arDepartmentsTopCache[$arUser['UF_DEPARTMENT'][0]] = $arRes['NAME']; } } //} if (!defined("IS_EXTRANET") || IS_EXTRANET != "Y" || defined("IS_EMPLOYEES") && IS_EMPLOYEES == "Y") { $arUser['UF_DEPARTMENT'] = $arUser['DEPARTMENT']; } } } } // if (!$bGetImages) // $arUser['PERSONAL_PHOTO'] = 0; $counter++; $obData->addChild($this->__getRow($arUser, $listName, $last_change)); } //$last_change = time(); $obData->setAttribute('ItemCount', $counter); $data->setAttribute('xmlns:rs', 'urn:schemas-microsoft-com:rowset'); $data->setAttribute('xmlns:z', '#RowsetSchema'); if ($bUpdateFields && $tsLastFieldsChange) { $last_change = $tsLastFieldsChange; } if ($last_change > 0) { if ($rowLimit && $obUsers->NavPageCount > 1 && $obUsers->NavPageCount > $page) { $last_change = intval($changeToken) . ';' . $page . ';' . $last_change; $obChanges->setAttribute('MoreChanges', 'TRUE'); } else { $last_change += 1; } $obChanges->setAttribute('LastChangeToken', $last_change); } return array('GetListItemChangesSinceTokenResult' => $data); }
</div> <div class="pad_50_0 text-center"> <?echo $arr[0]['PREVIEW_TEXT']?> </div> <?}else{?> <?/*если выбрана страница Занятия в секциях*/?> <div class="search"> <input type="text" id="ajax-search" onkeypress="if (event.keyCode == 13) ajaxsearch_cat()" placeholder="Быстрый поиск"/> <input type="submit" id="ajax-search-button" onclick="ajaxsearch_cat()" value="Искать"/> </div> <? //Получаем свойства раздела $sect_sport = CIBlockSection::GetByID(1); if($ar_sect_sport = $sect_sport->GetNext()) { //Получаем СЕО текст раздела $ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues( $ar_sect_sport["IBLOCK_ID"], $ar_sect_sport["ID"] ); $ar_sect_sport["IPROPERTY_VALUES"] = $ipropValues->getValues(); //echo "<pre>"; print_r($ar_sect_sport); echo '</pre>'; } $iblok_id = '2'; $category = $_SERVER['REQUEST_URI'];
{ if ($arSection["IBLOCK_SECTION_ID"]!="") { $parentItems[] = $arSection["IBLOCK_SECTION_ID"]; } } $isOpen = Array(); $res = CIBlockSection::GetByID($_REQUEST["SECTION_ID"]); if($arSection = $res->GetNext()) $res = CIBlockSection::GetByID($arSection["IBLOCK_SECTION_ID"]); if($ar_res = $res->GetNext()) $isOpen[] = $ar_res['ID']; for ($i==0; $i<$arSection["DEPTH_LEVEL"]; $i++) { $res = CIBlockSection::GetByID($ar_res["IBLOCK_SECTION_ID"]); if($ar_res = $res->GetNext()) $isOpen[] = $ar_res['ID']; } /*foreach($arResult["SECTIONS"] as $arSection) { if($arSection["ID"]==$_REQUEST["SECTION_ID"]) { $isOpen[] = $arSection["IBLOCK_SECTION_ID"]; if ($arSection["DEPTH_LEVEL"]==3) { foreach($arResult["SECTIONS"] as $arSection_1) { if($arSection_1["ID"]==$arSection["IBLOCK_SECTION_ID"]) {
public function OnAfterPhotoCommentAddBlog($ID, $arFields) { if (!CModule::IncludeModule('iblock')) { return; } if (!$this->IsSocnet) { return; } if (intval($this->PhotoElementID) > 0) { $dbRes = CSocNetLog::GetList(array("ID" => "DESC"), array("EVENT_ID" => "photo_photo", "SOURCE_ID" => $this->PhotoElementID), false, false, array("ID", "ENTITY_TYPE", "ENTITY_ID", "TMP_ID", "TITLE", "URL", "USER_ID", "PARAMS")); $bSocNetLogRecordExists = false; if ($arRes = $dbRes->Fetch()) { $log_id = $arRes["ID"]; $entity_type = $arRes["ENTITY_TYPE"]; $entity_id = $arRes["ENTITY_ID"]; $log_title = $arRes["TITLE"]; $log_url = $arRes["URL"]; $log_user_id = $arRes["USER_ID"]; $bSocNetLogRecordExists = true; if (strlen($arRes["PARAMS"]) > 0) { $arTmp = unserialize($arRes["PARAMS"]); if ($arTmp) { if (array_key_exists("SECTION_NAME", $arTmp) && strlen($arTmp["SECTION_NAME"]) > 0) { $log_section_name = $arTmp["SECTION_NAME"]; } if (array_key_exists("SECTION_URL", $arTmp) && strlen($arTmp["SECTION_URL"]) > 0) { $log_section_url = $arTmp["SECTION_URL"]; } } } } else { $rsElement = CIBlockElement::GetByID($this->PhotoElementID); if ($arElement = $rsElement->Fetch()) { $url = $this->arPath["DETAIL_URL"]; $sAuthorName = GetMessage("SONET_PHOTO_LOG_GUEST"); if (intval($arElement["CREATED_BY"]) > 0) { $rsUser = CUser::GetByID($arElement["CREATED_BY"]); if ($arUser = $rsUser->Fetch()) { $sAuthorName = CUser::FormatName(CSite::GetNameFormat(false), $arUser, true, false); } } if (in_array($this->entity_type, array(SONET_ENTITY_USER, SONET_ENTITY_GROUP)) && intval($this->entity_id) > 0) { $entity_type = $this->entity_type; $entity_id = $this->entity_id; $alias = ($this->entity_type == SONET_ENTITY_GROUP ? "group" : "user") . "_" . $this->entity_id; } $arLogParams = array("BLOG_ID" => intval($this->BlogID)); $rsIBlock = CIBlock::GetByID($arElement["IBLOCK_ID"]); if ($arIBlock = $rsIBlock->Fetch()) { $arLogParams["IBLOCK_ID"] = $arIBlock["ID"]; $arLogParams["IBLOCK_TYPE"] = $arIBlock["IBLOCK_TYPE_ID"]; } $rsSection = CIBlockSection::GetByID($arElement["IBLOCK_SECTION_ID"]); if ($arSection = $rsSection->Fetch()) { $arLogParams["SECTION_ID"] = $arSection["ID"]; $arLogParams["SECTION_NAME"] = $arSection["NAME"]; $arLogParams["SECTION_URL"] = str_replace("#SECTION_ID#", $arSection["ID"], $this->arPath["SECTION_URL"]); $arSectionPath = array(); $bPassword = false; $dbSectionPath = CIBlockSection::GetList(array("LEFT_MARGIN" => "ASC"), array("IBLOCK_ID" => intval($arLogParams["IBLOCK_ID"]), "<=LEFT_BORDER" => intval($arSection["LEFT_MARGIN"]), ">=RIGHT_BORDER" => intval($arSection["RIGHT_MARGIN"]), "<=DEPTH_LEVEL" => intval($arSection["DEPTH_LEVEL"])), false, array("ID", "IBLOCK_ID", "NAME", "CREATED_BY", "DEPTH_LEVEL", "LEFT_MARGIN", "RIGHT_MARGIN", "UF_PASSWORD")); while ($arPath = $dbSectionPath->Fetch()) { $arSectionPath[] = $arPath; if (strlen(trim($arPath["UF_PASSWORD"])) > 0) { $bPassword = true; break; } } if (!$alias) { $entity_type = SONET_ENTITY_USER; $entity_id = $arSectionPath[0]["CREATED_BY"]; $alias = $arSectionPath[0]["CODE"]; } } $arLogParams["ALIAS"] = $alias; $arSonetFields = array("ENTITY_TYPE" => $entity_type, "ENTITY_ID" => $entity_id, "EVENT_ID" => "photo_photo", "LOG_DATE" => $arElement["TIMESTAMP_X"], "TITLE_TEMPLATE" => str_replace("#AUTHOR_NAME#", $sAuthorName, GetMessage("SONET_PHOTOPHOTO_LOG_1")), "TITLE" => $arElement["NAME"], "MESSAGE" => "", "TEXT_MESSAGE" => "", "URL" => CComponentEngine::MakePathFromTemplate($url, array("ELEMENT_ID" => $arElement["ID"], "element_id" => $arElement["ID"], "SECTION_ID" => $arElement["IBLOCK_SECTION_ID"], "section_id" => $arElement["IBLOCK_SECTION_ID"])), "MODULE_ID" => false, "CALLBACK_FUNC" => false, "SOURCE_ID" => $arElement["ID"], "PARAMS" => serialize($arLogParams), "RATING_TYPE_ID" => "IBLOCK_ELEMENT", "RATING_ENTITY_ID" => $arElement["ID"]); if (intval($arElement["CREATED_BY"]) > 0) { $arSonetFields["USER_ID"] = $arElement["CREATED_BY"]; } $log_id = CSocNetLog::Add($arSonetFields, false); if (intval($log_id) > 0) { $log_title = $arSonetFields["TITLE"]; $log_url = $arSonetFields["URL"]; $log_section_name = $arLogParams["SECTION_NAME"]; $log_section_url = $arLogParams["SECTION_URL"]; $log_user_id = $arSonetFields["USER_ID"]; CSocNetLog::Update($log_id, array("TMP_ID" => $log_id)); if ($bPassword) { CSocNetLogRights::DeleteByLogID($log_id); CSocNetLogRights::Add($log_id, array("U" . $GLOBALS["USER"]->GetID(), "SA")); } else { CSocNetLogRights::SetForSonet($log_id, $entity_type, $entity_id, "photo", "view", true); } } } } if (intval($log_id) > 0) { $parserBlog = new blogTextParser(false, $this->arPath["PATH_TO_SMILE"]); $arAllow = array("HTML" => "N", "ANCHOR" => "N", "BIU" => "N", "IMG" => "N", "QUOTE" => "N", "CODE" => "N", "FONT" => "N", "LIST" => "N", "SMILES" => "N", "NL2BR" => "N", "VIDEO" => "N"); if ($bSocNetLogRecordExists) { $text4message = $parserBlog->convert($arFields["POST_TEXT"], true, array(), $arAllow); $text4mail = $parserBlog->convert4mail($arFields["POST_TEXT"]); $arFieldsForSocnet = array("ENTITY_TYPE" => $entity_type, "ENTITY_ID" => $entity_id, "EVENT_ID" => "photo_comment", "=LOG_DATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "MODULE_ID" => false, "SOURCE_ID" => $ID, "LOG_ID" => $log_id, "RATING_TYPE_ID" => "BLOG_COMMENT", "RATING_ENTITY_ID" => $ID); if (intval($arFields["AUTHOR_ID"]) > 0) { $arFieldsForSocnet["USER_ID"] = $arFields["AUTHOR_ID"]; } $comment_id = CSocNetLogComments::Add($arFieldsForSocnet, false, false); if ($comment_id) { CSocNetLog::CounterIncrement($comment_id, false, false, "LC"); $arFieldsIM = array("TYPE" => "COMMENT", "TITLE" => $log_title, "MESSAGE" => $arFieldsForSocnet["MESSAGE"], "URL" => $log_url, "SECTION_NAME" => $log_section_name, "SECTION_URL" => $log_section_url, "ID" => $this->PhotoElementID, "PHOTO_AUTHOR_ID" => $log_user_id, "COMMENT_AUTHOR_ID" => $arFields["AUTHOR_ID"]); CSocNetPhotoCommentEvent::NotifyIm($arFieldsIM); } } else { $dbComments = CBlogComment::GetList(array(), array("BLOG_ID" => intval($this->BlogID), "POST_ID" => intval($this->PostID)), false, false, array("ID", "BLOG_ID", "POST_ID", "AUTHOR_ID", "POST_TEXT", "DATE_CREATE")); while ($arComment = $dbComments->GetNext()) { $text4message = $parserBlog->convert($arComment["POST_TEXT"], true, array(), $arAllow); $text4mail = $parserBlog->convert4mail($arComment["POST_TEXT"]); $arFieldsForSocnet = array("ENTITY_TYPE" => $entity_type, "ENTITY_ID" => $entity_id, "EVENT_ID" => "photo_comment", "=LOG_DATE" => $GLOBALS["DB"]->CharToDateFunction($arComment["DATE_CREATE"], "FULL", SITE_ID), "MESSAGE" => $text4message, "TEXT_MESSAGE" => $text4mail, "MODULE_ID" => false, "SOURCE_ID" => intval($arComment["ID"]), "LOG_ID" => $log_id, "RATING_TYPE_ID" => "BLOG_COMMENT", "RATING_ENTITY_ID" => intval($arComment["ID"])); if (intval($arFields["AUTHOR_ID"]) > 0) { $arFieldsForSocnet["USER_ID"] = $arFields["AUTHOR_ID"]; } $comment_id = CSocNetLogComments::Add($arFieldsForSocnet, false, false); if ($comment_id) { CSocNetLog::CounterIncrement($comment_id, false, false, "LC"); $arFieldsIM = array("TYPE" => "COMMENT", "TITLE" => $log_title, "MESSAGE" => $arFieldsForSocnet["MESSAGE"], "URL" => $log_url, "SECTION_NAME" => $log_section_name, "SECTION_URL" => $log_section_url, "ID" => $this->PhotoElementID, "PHOTO_AUTHOR_ID" => $log_user_id, "COMMENT_AUTHOR_ID" => $arFields["AUTHOR_ID"]); CSocNetPhotoCommentEvent::NotifyIm($arFieldsIM); } } if ($arElement) { self::InheriteAlbumFollow($arElement["IBLOCK_SECTION_ID"], $log_id, intVal($arElement["CREATED_BY"]) > 0 ? $arElement["CREATED_BY"] : false); } } } } }
$bVarsFromForm = true; } else { $err = $GLOBALS['APPLICATION']->GetException(); if ($err) { $strWarning .= $err->GetString(); } $bVarsFromForm = true; } } elseif ($arParams["ACTION"] == "NEW") { $arFields = array("ACTIVE" => "Y", "IBLOCK_ID" => $arParams["IBLOCK_ID"], "DATE" => $_REQUEST["UF_DATE"], "UF_DATE" => $_REQUEST["UF_DATE"], "NAME" => $_REQUEST["NAME"], "DESCRIPTION" => $_REQUEST["DESCRIPTION"]); if (isset($_REQUEST["ACTIVE"])) { $arFields["ACTIVE"] = $_REQUEST["ACTIVE"]; } if ($arParams["BEHAVIOUR"] == "USER") { if ($_REQUEST["IBLOCK_SECTION_ID"] > 0) { $db_res = CIBlockSection::GetByID($_REQUEST["IBLOCK_SECTION_ID"]); if ($db_res && ($res = $db_res->Fetch())) { if ($res["LEFT_MARGIN"] > $arResult["GALLERY"]["LEFT_MARGIN"] && $res["RIGHT_MARGIN"] < $arResult["GALLERY"]["RIGHT_MARGIN"]) { $arFields["IBLOCK_SECTION_ID"] = $_REQUEST["IBLOCK_SECTION_ID"]; } } } if (empty($arFields["IBLOCK_SECTION_ID"])) { $arFields["IBLOCK_SECTION_ID"] = $arResult["GALLERY"]["ID"]; } } elseif (intVal($_REQUEST["IBLOCK_SECTION_ID"]) > 0) { $arFields["IBLOCK_SECTION_ID"] = $_REQUEST["IBLOCK_SECTION_ID"]; } if (!empty($_REQUEST["PASSWORD"])) { $arFields["UF_PASSWORD"] = md5($_REQUEST["PASSWORD"]); $GLOBALS["UF_PASSWORD"] = md5($_REQUEST["PASSWORD"]);
} else { LocalRedirect("/bitrix/admin/" . CIBlock::GetAdminSectionEditLink($IBLOCK_ID, 0, array("find_section_section" => intval($find_section_section), "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID, "return_url" => strlen($return_url) > 0 ? $return_url : null), "&" . $tabControl->ActiveTabParam())); } } else { LocalRedirect("/bitrix/admin/" . CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $ID, array('find_section_section' => intval($find_section_section), 'return_url' => strlen($return_url) > 0 ? $return_url : null), "&" . $tabControl->ActiveTabParam())); } } } ClearVars("str_"); $str_ACTIVE = "Y"; $str_NAME = htmlspecialcharsbx($arIBlock["FIELDS"]["SECTION_NAME"]["DEFAULT_VALUE"]); $str_DESCRIPTION_TYPE = $arIBlock["FIELDS"]["SECTION_DESCRIPTION_TYPE"]["DEFAULT_VALUE"] !== "html" ? "text" : "html"; $str_DESCRIPTION = htmlspecialcharsbx($arIBlock["FIELDS"]["SECTION_DESCRIPTION"]["DEFAULT_VALUE"]); $str_SORT = "500"; $str_IBLOCK_SECTION_ID = $IBLOCK_SECTION_ID; $result = CIBlockSection::GetByID($ID); $arSection = $result->ExtractFields("str_"); if (!$arSection) { $ID = 0; $ipropTemlates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($IBLOCK_ID, 0); } else { $ipropTemlates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($IBLOCK_ID, $ID); } if ($bVarsFromForm) { $DB->InitTableVarsForEdit("b_iblock_section", "", "str_"); $str_IPROPERTY_TEMPLATES = $_POST["IPROPERTY_TEMPLATES"]; } else { $str_IPROPERTY_TEMPLATES = $ipropTemlates->findTemplates(); $str_IPROPERTY_TEMPLATES["SECTION_PICTURE_FILE_NAME"] = \Bitrix\Iblock\Template\Helper::convertModifiersToArray($str_IPROPERTY_TEMPLATES["SECTION_PICTURE_FILE_NAME"]); $str_IPROPERTY_TEMPLATES["SECTION_DETAIL_PICTURE_FILE_NAME"] = \Bitrix\Iblock\Template\Helper::convertModifiersToArray($str_IPROPERTY_TEMPLATES["SECTION_DETAIL_PICTURE_FILE_NAME"]); $str_IPROPERTY_TEMPLATES["ELEMENT_PREVIEW_PICTURE_FILE_NAME"] = \Bitrix\Iblock\Template\Helper::convertModifiersToArray($str_IPROPERTY_TEMPLATES["ELEMENT_PREVIEW_PICTURE_FILE_NAME"]);
$arFields["SOCNET_GROUP_ID"] = $arResult["VARIABLES"]["group_id"]; $arFields["NAME"] = GetMessage("SONET_GROUP_PREFIX") . $res["NAME"]; $arFields["CODE"] = "group_" . $arResult["VARIABLES"]["group_id"]; } if (!empty($arFiles)) { $arFields["PICTURE"] = $arFiles["PICTURE"]; } $bs = new CIBlockSection(); if ($bs->CheckFields($arFields)) { if (!empty($arFiles)) { $arFields["DETAIL_PICTURE"] = $arFiles["DETAIL_PICTURE"]; } $GLOBALS["UF_DEFAULT"] = $arFields["UF_DEFAULT"]; $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("IBLOCK_" . $arParams["IBLOCK_ID"] . "_SECTION", $arFields); $res = $bs->Add($arFields); $db_res = $bs->GetByID($res); if ($db_res && ($res = $db_res->Fetch())) { $arResult["VARIABLES"]["GALLERY"] = $res; $arUserIds = array(); if ($object == "user") { $arUserIds[] = $USER->GetId(); } PClearComponentCacheEx($arParams["IBLOCK_ID"], array(0, $res['ID']), array(0, $res['CODE']), $arUserIds); } if (!empty($arFiles)) { @unlink($arFiles["PICTURE"]["tmp_name"]); @unlink($arFiles["DETAIL_PICTURE"]["tmp_name"]); } } } }
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } $this->setFrameMode(true); ?> <div class="page-main"> <?php if (\Bitrix\Main\Loader::includeModule("iblock")) { $arFilter = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ACTIVE" => "Y", "GLOBAL_ACTIVE" => "Y", "ELEMENT_SUBSECTIONS" => "N", "CNT_ACTIVE" => "Y"); $arUnderFilter = array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ACTIVE" => "Y", "GLOBAL_ACTIVE" => "Y"); if (0 < intval($arResult["VARIABLES"]["SECTION_ID"])) { $arFilter["ID"] = $arResult["VARIABLES"]["SECTION_ID"]; // $res = CIBlockSection::GetByID($arResult["VARIABLES"]["SECTION_ID"]); $ar_res = $res->GetNext(); if ($ar_res['PICTURE']) { ?> <script type="text/javascript"> $("img#page-image").attr('src', '<?php echo CFile::GetPath($ar_res['PICTURE']); ?> '); </script> <?php } } elseif ('' != $arResult["VARIABLES"]["SECTION_CODE"]) { $arFilter["=CODE"] = $arResult["VARIABLES"]["SECTION_CODE"]; } $obCache = new CPHPCache();
/** @var string $templateFile */ /** @var string $templateFolder */ /** @var string $componentPath */ /** @var CBitrixComponent $component */ $this->setFrameMode(true); $pictures = $arResult["PROPERTIES"]["IMAGE_GALERY"]["VALUE"]; //getting section parameters if (CModule::IncludeModule("IBlock")) { $sectquery = CIBlockSection::GetByID($arResult["IBLOCK_SECTION_ID"]); $section = $sectquery->GetNext(); //category dets $secname = $section["NAME"]; $secid = $section["ID"]; $secdescr = $section["DESCRIPTION"]; //parent category $db_list = CIBlockSection::GetByID($section["IBLOCK_SECTION_ID"]); $psecdetails = $db_list->GetNext(); $psecname = $psecdetails["NAME"]; $psecid = $psecdetails["ID"]; } ?> <!-- broadcrumbs --> <div class="container"> <?php $GLOBALS["SUBSECTIONS"] = array(0 => array("NAME" => $psecname, "ID" => $psecid), 1 => array("NAME" => $secname, "ID" => $secid)); ?> <?php $APPLICATION->IncludeComponent("bitrix:breadcrumb", "events", array("START_FROM" => "2", "PATH" => "", "SITE_ID" => "s1")); ?> </div>
public function find_creat_album($SectionID, $arFields, $arELFields=array()) { if( !isset($SectionID) || empty($SectionID) || !is_array($arFields) ): return false; endif; global $APPLICATION; $MODULE_ID = "kreattika.shopvk"; $VKOwnerID = COption::GetOptionString($MODULE_ID, "shop_vk_owner_id", "N"); $AlbumVKEventLog = COption::GetOptionString($MODULE_ID, "shop_vk_album_event_log", "N"); $TableNameAlbums = "b_shopvk_albums"; $lfEventExist = false; $arDBAlbumFilter=array("ACTIVE"=>'\'Y\'', "VK_OWNER_ID"=>intval($VKOwnerID), "IBLOCK_ID"=>intval($arFields["IBLOCK_ID"]), "SECTION_ID"=>intval($SectionID)); $obDBAlbumResult = CSVKDataBlock::GetList($TableNameAlbums, $arDBAlbumFilter); if ($arDBAlbumResult = $obDBAlbumResult->Fetch()) : $AlbumVKID = $arDBAlbumResult["VK_ALBUM_ID"]; $DBAlbumItemID = $arDBAlbumResult["ID"]; return intval($AlbumVKID); else: if(CModule::IncludeModule("iblock")): $obSection = CIBlockSection::GetByID($SectionID); if($arSection = $obSection->Fetch()): $AlbumVKID = ShopVK::create_album($arSection['NAME'], HTMLToTxt($arSection['DESCRIPTION']), 'N'); $AlbumVKID = intval($AlbumVKID); $arDBAlbumFields = array( "ACTIVE"=>"Y", "CREATED"=>ConvertTimeStamp(time(), "FULL", $arElFields['LID']), "SITE_ID"=>$arElFields['LID'], "IBLOCK_ID"=>intval($arFields['IBLOCK_ID']), "SECTION_ID"=>intval($arSection['ID']), "SECTION_NAME"=>trim($arSection['NAME']), "VK_OWNER_ID"=>intval($VKOwnerID), "VK_ALBUM_ID"=>intval($AlbumVKID), "VK_ALBUM_NAME"=>trim($arSection['NAME']), "VK_ALBUM_CAPTION"=>HTMLToTxt($arSection['DESCRIPTION']), ); CSVKDataBlock::Add($TableNameAlbums, $arDBAlbumFields); $EventLogDesc = 'New VKAlbumID: '.$AlbumVKID.', for SectionID: '.$arSection['ID'].', '.$arSection['NAME']; $lfEventExist = true; return intval($AlbumVKID); else: return false; endif; else: return false; endif; endif; if($AlbumVKEventLog=='Y' && $lfEventExist): CEventLog::Add(array( "SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "SHOP_VK_AUTOEX_ALBUM", "MODULE_ID" => $MODULE_ID, "ITEM_ID" => $arFields['ID'], "DESCRIPTION" => $EventLogDesc, )); endif; }
function category_cat_URL($whe_city,$category) { CModule::IncludeModule("iblock"); $arSelect = Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM","CODE");//IBLOCK_ID и ID обязательно должны быть указаны, см. описание arSelectFields выше $arFilter = Array("IBLOCK_ID"=>1, "ID"=>$category, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y"); $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); while($ob = $res->GetNextElement()){ $arFields = $ob->GetFields(); $arProps = $ob->GetProperties(); } $sect_sport = CIBlockSection::GetByID(1); if($ar_sect_sport = $sect_sport->GetNext()) { //Получаем СЕО текст раздела $ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues( $ar_sect_sport["IBLOCK_ID"], $ar_sect_sport["ID"] ); $ar_sect_sport["IPROPERTY_VALUES"] = $ipropValues->getValues(); } //URL TEXT return "/".$whe_city."/".$ar_sect_sport['CODE']."/".$arFields['CODE'].'/'; }
function SocNetLog($arParams) { $ownerType = isset($arParams['ownerType']) ? $arParams['ownerType'] : $this->ownerType; $ownerId = isset($arParams['ownerId']) ? $arParams['ownerId'] : $this->ownerId; $iblockId = isset($arParams['iblockId']) ? $arParams['iblockId'] : $this->iblockId; $pathToUserCalendar = isset($arParams['pathToUserCalendar']) ? $arParams['pathToUserCalendar'] : $this->pathToUserCalendar; $pathToGroupCalendar = isset($arParams['pathToGroupCalendar']) ? $arParams['pathToGroupCalendar'] : $this->pathToGroupCalendar; if (!class_exists('CSocNetLog') || !$ownerType || !$ownerId) { return; } $target = $arParams['target']; $id = $arParams['id']; $name = htmlspecialcharsex($arParams['name']); $from = htmlspecialcharsex($arParams['from']); $to = htmlspecialcharsex($arParams['to']); $desc = htmlspecialcharsex($arParams['desc']); $accessibility = htmlspecialcharsex($arParams['accessibility']); $importance = htmlspecialcharsex($arParams['importance']); $calendarId = $arParams['calendarId']; if ($ownerType == 'USER') { // Get user name $dbUser = CUser::GetByID($ownerId); if (!($arUser = $dbUser->Fetch())) { return; } $owner_mess = GetMessage('EC_LOG_EV_USER', array('#USER_NAME#' => $arUser["NAME"] . " " . $arUser["LAST_NAME"])); $url = preg_replace('/#user_id#/i', $ownerId, $pathToUserCalendar); $privateStatus = CECCalendar::GetPrivateStatus($iblockId, $calendarId, $ownerType); if (!$accessibility) { $accessibility = 'busy'; } $accessibilityMess = GetMessage('EC_ACCESSIBILITY_' . strtoupper($accessibility)); if ($privateStatus == 'private') { return; } elseif ($privateStatus == 'time' || $privateStatus == 'title') { if ($privateStatus == 'time') { $name = $accessibilityMess; $accessibility = ''; } $desc = ''; } } else { // Get group name if (!($arGroup = CSocNetGroup::GetByID($ownerId))) { return; } $owner_mess = GetMessage('EC_LOG_EV_GROUP', array('#GROUP_NAME#' => $arGroup["NAME"])); $url = preg_replace('/#group_id#/i', $ownerId, $pathToGroupCalendar); $accessibility = ''; } if ($calendarId <= 0) { return; } $rsData = CIBlockSection::GetByID($calendarId); if (!($arCalendar = $rsData->Fetch())) { return; } $accessibility_mess = strlen($accessibility) ? '<br>' . GetMessage('EC_LOG_EV_ACCESS', array('#EV_ACCESS#' => $accessibilityMess)) : ''; $importance_mess = strlen($importance) ? '<br>' . GetMessage('EC_LOG_EV_IMP', array('#EV_IMP#' => GetMessage('EC_IMPORTANCE_' . strtoupper($importance)))) : ''; $desc_mess = strlen($desc) ? '<br>' . GetMessage('EC_LOG_EV_DESC', array('#EV_DESC#' => $desc)) : ''; $calendarTitle = htmlspecialcharsex($arCalendar['NAME']); if ($target == 'add_event') { $title_template = GetMessage('EC_LOG_NEW_EV_TITLE'); $mess = GetMessage('EC_LOG_NEW_EV_MESS', array('#EV_TITLE#' => $name, '#CAL_TITLE#' => $calendarTitle, '#EV_FROM#' => $from, '#EV_TO#' => $to)) . ' ' . $owner_mess . ' ' . $desc_mess . $accessibility_mess . $importance_mess; $url .= '?EVENT_ID=' . $id; } elseif ($target == 'edit_event') { $title_template = GetMessage('EC_LOG_EDIT_EV_TITLE'); $mess = GetMessage('EC_LOG_EDIT_EV_MESS', array('#EV_TITLE#' => $name, '#CAL_TITLE#' => $calendarTitle, '#EV_FROM#' => $from, '#EV_TO#' => $to)) . ' ' . $owner_mess . ' ' . $desc_mess . $accessibility_mess . $importance_mess; $url .= '?EVENT_ID=' . $id; } elseif ($target == 'delete_event') { $title_template = GetMessage('EC_LOG_DEL_EV_TITLE'); $mess = GetMessage('EC_LOG_DEL_EV_MESS', array('#EV_TITLE#' => $name, '#CAL_TITLE#' => $calendarTitle, '#EV_FROM#' => $from, '#EV_TO#' => $to)) . ' ' . $owner_mess . ' ' . $desc_mess; } $USER_ID = false; if ($GLOBALS["USER"]->IsAuthorized()) { $USER_ID = $GLOBALS["USER"]->GetID(); } $res = CSocNetLog::Add(array("ENTITY_TYPE" => $ownerType == 'GROUP' ? SONET_ENTITY_GROUP : SONET_ENTITY_USER, "ENTITY_ID" => $ownerId, "EVENT_ID" => "calendar", "=LOG_DATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "TITLE_TEMPLATE" => $title_template, "TITLE" => $name, "MESSAGE" => $mess, "TEXT_MESSAGE" => preg_replace(array("/<(\\/)?b>/i", "/<br>/i"), array('', " \n"), $mess), "URL" => $url, "MODULE_ID" => false, "CALLBACK_FUNC" => false, "USER_ID" => $USER_ID)); if (intval($res) > 0) { CSocNetLog::Update($res, array("TMP_ID" => $res)); } }
} $arResult['FIELDS']['tab_1'][] = array('id' => 'ACTIVE', 'name' => GetMessage('CRM_FIELD_ACTIVE'), 'type' => 'label', 'params' => array(), 'value' => GetMessage(isset($product['ACTIVE']) && $product['ACTIVE'] == 'Y' ? 'MAIN_YES' : 'MAIN_NO'), 'isTactile' => true); $price = CCrmProduct::FormatPrice($product); if (strlen($price) > 0) { $arResult['FIELDS']['tab_1'][] = array('id' => 'PRICE', 'name' => GetMessage('CRM_FIELD_PRICE'), 'type' => 'label', 'params' => array(), 'value' => $price, 'isTactile' => true); } if ($bVatMode) { $arResult['FIELDS']['tab_1'][] = array('id' => 'VAT_ID', 'name' => GetMessage('CRM_FIELD_VAT_ID'), 'type' => 'label', 'params' => array(), 'value' => htmlspecialcharsbx(isset($product['VAT_ID']) && $product['VAT_ID'] > 0 ? $vatRateListItems[$product['VAT_ID']] : $vatRateListItems['']), 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'VAT_INCLUDED', 'name' => GetMessage('CRM_FIELD_VAT_INCLUDED'), 'type' => 'label', 'params' => array(), 'value' => GetMessage(isset($product['VAT_INCLUDED']) && $product['VAT_INCLUDED'] == 'Y' ? 'MAIN_YES' : 'MAIN_NO'), 'isTactile' => true); } $arResult['FIELDS']['tab_1'][] = array('id' => 'MEASURE', 'name' => GetMessage('CRM_FIELD_MEASURE'), 'type' => 'label', 'params' => array(), 'value' => htmlspecialcharsbx(isset($product['MEASURE']) ? $measureListItems[$product['MEASURE']] : $measureListItems['']), 'isTactile' => true); $productSectionID = isset($product['SECTION_ID']) ? $product['SECTION_ID'] : 0; $productSectionName = ''; if ($productSectionID > 0) { $sectionListItems = array(); $rsSection = CIBlockSection::GetByID($productSectionID); if ($arSection = $rsSection->Fetch()) { $productSectionName = $arSection['NAME']; } } $arResult['FIELDS']['tab_1'][] = array('id' => 'SECTION', 'name' => GetMessage('CRM_FIELD_SECTION'), 'type' => 'label', 'value' => htmlspecialcharsbx(empty($productSectionName) ? GetMessage('CRM_SECTION_NOT_SELECTED') : $productSectionName), 'isTactile' => true); $arResult['FIELDS']['tab_1'][] = array('id' => 'SORT', 'name' => GetMessage('CRM_FIELD_SORT'), 'type' => 'label', 'params' => array(), 'value' => isset($product['SORT']) ? $product['SORT'] : '', 'isTactile' => true); $arFields = array('PREVIEW_PICTURE' => GetMessage('CRM_PRODUCT_FIELD_PREVIEW_PICTURE'), 'DETAIL_PICTURE' => GetMessage('CRM_PRODUCT_FIELD_DETAIL_PICTURE')); $html = ''; $obFileControl = $obFile = null; foreach ($arFields as $fieldID => $fieldName) { if (isset($product['~' . $fieldID])) { $obFile = new CCrmProductFile($arResult['PRODUCT_ID'], $fieldID, $product['~' . $fieldID]); $obFileControl = new CCrmProductFileControl($obFile, $fieldID); $html = '<nobr>' . $obFileControl->GetHTML(array('show_input' => false, 'max_size' => 102400, 'max_width' => 150, 'max_height' => 150, 'url_template' => $arParams['PATH_TO_PRODUCT_FILE'], 'a_title' => GetMessage('CRM_PRODUCT_PROP_ENLARGE'), 'download_text' => GetMessage("CRM_PRODUCT_PROP_DOWNLOAD"))) . '</nobr>'; $arResult['FIELDS']['tab_1'][] = array('id' => $fieldID, 'name' => $fieldName, 'type' => 'custom', 'value' => $html, 'isTactile' => true);
function IndexIBlockSection($arFields, $entity_id, $entity_type, $feature, $operation, $path_template) { $rSection = CIBlockSection::GetByID($arFields['ID']); $arSection = $rSection->Fetch(); $path = array(); $rsPath = CIBlockSection::GetNavChain($arFields["IBLOCK_ID"], $arFields['ID']); while ($arPath = $rsPath->Fetch()) { $path[] = $arPath['NAME']; } $path = implode("/", array_slice($path, 1)); $ID = intval($arFields["ID"]); $IBLOCK_ID = intval($arFields["IBLOCK_ID"]); $arItem = array(); if ($entity_type == "G") { $url = str_replace(array("#group_id#", "#user_alias#", "#section_id#", "#element_id#", "#action#", "#task_id#", "#name#", "#path#"), array($entity_id, "group_" . $entity_id, $arFields["IBLOCK_SECTION"], $arFields["ID"], "view", $arFields["ID"], urlencode($arFields["NAME"]), $path), $path_template); } else { $url = str_replace(array("#user_id#", "#user_alias#", "#section_id#", "#element_id#", "#action#", "#task_id#", "#path#"), array($entity_id, "user_" . $entity_id, $arFields["IBLOCK_SECTION"], $arFields["ID"], "view", $arFields["ID"], $path), $path_template); } $body = ""; $title = $arFields["NAME"]; $arPermissions = $this->GetSearchGroups($entity_type, $entity_id, $feature, $operation); if (CIBlock::GetArrayByID($IBLOCK_ID, "RIGHTS_MODE") == "E") { $obSectionRights = new CIBlockSectionRights($IBLOCK_ID, $arFields["ID"]); $arPermissions = $obSectionRights->GetGroups(array("section_read")); } $arSearchIndexParams = $this->GetSearchParams($entity_type, $entity_id, $feature, $operation); CSearch::Index("socialnetwork", 'S' . $ID, array("LAST_MODIFIED" => ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL"), "TITLE" => $title, "BODY" => $body, "SITE_ID" => array(SITE_ID => $url), "PARAM1" => CIBlock::GetArrayByID($IBLOCK_ID, "IBLOCK_TYPE_ID"), "PARAM2" => $IBLOCK_ID, "PARAM3" => $feature, "TAGS" => "", "PERMISSIONS" => $arPermissions, "PARAMS" => $arSearchIndexParams), true); if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_search_" . $entity_type . "_" . $entity_id); } }
} $arSectionPath4Cache = array(); $arFolder = False; $dbIBlock = CIBlock::GetByID($IBLOCK_ID); if ($arIBlock = $dbIBlock->Fetch()) { if (strlen($DETAIL_PAGE_TEMPLATE) <= 0) { $DETAIL_PAGE_TEMPLATE = $arIBlock["DETAIL_PAGE_URL"]; } if ($bDisplayPanel) { CIBlock::ShowPanel($IBLOCK_ID, 0, $ID, $arIBlock["IBLOCK_TYPE_ID"]); } $strPath_tmp = UNI_SECTION_MakeRealPath($LIST_PAGE_TEMPLATE, array("IBLOCK_ID" => $IBLOCK_ID, "ID" => 0)); $GLOBALS["APPLICATION"]->AddChainItem($arIBlock["NAME"], $strPath_tmp); $arSectionPath4Cache[] = array($arIBlock["NAME"], $strPath_tmp); if (IntVal($ID) > 0) { $dbFolder = CIBlockSection::GetByID($ID); if ($arFolder = $dbFolder->Fetch()) { $dbSectionPath = CIBlockSection::GetNavChain($IBLOCK_ID, $ID); while ($arSectionPath = $dbSectionPath->Fetch()) { $strPath_tmp = UNI_SECTION_MakeRealPath($LIST_PAGE_TEMPLATE, array("IBLOCK_ID" => $IBLOCK_ID, "ID" => $arSectionPath["ID"])); $GLOBALS["APPLICATION"]->AddChainItem($arSectionPath["NAME"], $strPath_tmp); $arSectionPath4Cache[] = array($arSectionPath["NAME"], $strPath_tmp); } } } $GLOBALS["APPLICATION"]->SetTitle($arFolder ? $arFolder["NAME"] : $arIBlock["NAME"]); if ($bShowHeader) { if ($arFolder && (strlen($arFolder["DESCRIPTION"]) > 0 || IntVal($arFolder["PICTURE"]) > 0) || !$arFolder && (strlen($arIBlock["DESCRIPTION"]) > 0 || IntVal($arIBlock["PICTURE"]) > 0)) { ?> <table border="0" cellpadding="4" cellspacing="2" width="100%" style="border: 1px solid #C7DAE4;"> <tr>
break; case "interval": if ($arResult["FILTER"]["F_DATE_FROM"]) { $arFilter["PERIOD"]["START"] = $_SESSION["F_DATE_FROM"]; } if ($_SESSION["FILTER"]["F_DATE_TO"]) { $arFilter["PERIOD"]["END"] = $_SESSION["F_DATE_TO"]; } break; default: $arResult["FILTER"]["F_DATE_TYPE"] = "month"; $arFilter["PERIOD"]["START"] = date($phpDateFormat, strtotime(date("Y-m-01"))); break; } if (intval($arResult["FILTER"]["F_DEPARTMENT_ID"]) > 0) { $rsSection = CIBlockSection::GetByID(intval($arResult["FILTER"]["F_DEPARTMENT_ID"])); $arDeps = array(); if ($arSection = $rsSection->Fetch()) { $arDeps[] = $arSection["ID"]; $arSubDepsFilter = array('IBLOCK_ID' => $IBlockID, 'GLOBAL_ACTIVE' => 'Y', '>LEFT_MARGIN' => $arSection['LEFT_MARGIN'], '<RIGHT_MARGIN' => $arSection['RIGHT_MARGIN']); $rsChildSections = CIBlockSection::GetList(array('left_margin' => asc), $arSubDepsFilter, false, array("ID")); while ($arChildSection = $rsChildSections->GetNext()) { $arDeps[] = $arChildSection["ID"]; } } if (sizeof($arDeps)) { $arFilter["DEPARTMENT_ID"] = $arDeps; } } if (intval($arResult["FILTER"]["F_GROUP_ID"]) > 0) { $arFilter["GROUP_ID"] = intval($arResult["FILTER"]["F_GROUP_ID"]);
public static function PrepareSection4Where($val, $key, $operation, $negative, $field, &$arField, &$arFilter) { $val = intval($val); if ($val <= 0) { return false; } $dbSection = CIBlockSection::GetByID($val); if ($arSection = $dbSection->Fetch()) { $arIDs = array(0); $dbSectionTree = CIBlockSection::GetList(array("LEFT_MARGIN" => "DESC"), array("IBLOCK_ID" => $arSection["IBLOCK_ID"], "ACTIVE" => "Y", "GLOBAL_ACTIVE" => "Y", "IBLOCK_ACTIVE" => "Y", ">=LEFT_BORDER" => $arSection["LEFT_MARGIN"], "<=RIGHT_BORDER" => $arSection["RIGHT_MARGIN"])); while ($arSectionTree = $dbSectionTree->Fetch()) { $arIDs[] = intval($arSectionTree["ID"]); } return "(CDS.SECTION_ID " . ($negative == "Y" ? "NOT " : "") . "IN (" . implode(',', $arIDs) . "))"; } return false; }
if (strpos($strNameField, '_MTH_')) $strSex = 'F'; // Женский пол else $strSex = 'M'; $objSearch = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $intParentBlockID, 'ACTIVE' => 'Y', 'NAME' => '%'.htmlspecialcharsEx($_REQUEST['value']).'%', 'PROPERTY_TYPE' => $intType, 'PROPERTY_SEX' => $strSex), false, false, array('ID', 'NAME', 'PROPERTY_BREED', 'PROPERTY_OWNER')); while ($arrSearch = $objSearch->GetNext()) { $arrS = array( 'id' => $arrSearch['ID'], 'name' => $arrSearch['NAME'], 'owner' => $arrSearch['PROPERTY_OWNER_VALUE'], 'breed' => '', 'src' => '', ); // Получим породу if (intval($arrSearch['PROPERTY_BREED_VALUE'])) { $res = CIBlockSection::GetByID(intval($arrSearch['PROPERTY_BREED_VALUE'])); if ($ar_res = $res->GetNext()) $arrS['breed'] = $ar_res['NAME']; }//\\ if // Получим первую картинку $res = CIBlockElement::GetProperty($intParentBlockID, $arrSearch['ID'], 'id', 'asc', array('ACTIVE' => 'Y', 'CODE' => 'PHOTOS', 'EMPTY' => 'N')); if ($ob = $res->GetNext()) { if (intval($ob['VALUE'])) { $arrPhoto = CFile::ResizeImageGet(intval($ob['VALUE']), array('width' => 100, 'height' => 100), BX_RESIZE_IMAGE_EXACT, true); $arrS['src'] = $arrPhoto['src']; }//\\ if }//\\ if $arrResult['search_result'][] = $arrS; }//\\ while /*$arrResult['search_result'][] = array(
$element = CIBlockElement::GetByID($arRes['OBJECT_ID']); if ($arElement = $element->GetNext()) { $detailURL = $arParams['DETAIL_PAGE_URL']; if (preg_match('/ID/i', $detailURL)) $detailURL = str_replace('#ID#', $arElement['ID'], $detailURL); if (preg_match('/CODE/i', $detailURL)) $detailURL = str_replace('#CODE#', $arElement['CODE'], $detailURL); if (preg_match('/DETAIL_PAGE_URL/i', $detailURL)) $detailURL = str_replace('#DETAIL_PAGE_URL#', $arElement['DETAIL_PAGE_URL'], $detailURL); if (preg_match('/SECTION_ID/i', $detailURL)) $detailURL = str_replace('#SECTION_ID#', $arElement['IBLOCK_SECTION_ID'], $detailURL); if (preg_match('/SECTION_CODE/i', $detailURL)) { $section = CIBlockSection::GetByID($arElement['IBLOCK_SECTION_ID']); if ($arSection = $section->GetNext()) $detailURL = str_replace('#SECTION_CODE#', $arSection['CODE'], $detailURL); } if ($arParams['IMAGE'] == 'NOT_SHOW') $image = ''; elseif ($arParams['IMAGE'] == 'PREVIEW_PICTURE') $image = CFile::GetPath($arElement['PREVIEW_PICTURE']); elseif ($arParams['IMAGE'] == 'DETAIL_PICTURE') $image = CFile::GetPath($arElement['DETAIL_PICTURE']); else { $db_props = CIBlockElement::GetProperty($arElement['IBLOCK_ID'], $arElement['ID'], array("sort" => "asc"), Array("CODE" => $arParams['IMAGE'])); if ($arProps = $db_props->Fetch())
private function basket_items() { CModule::IncludeModule("iblock"); CModule::IncludeModule("sale"); CSaleBasket::UpdateBasketPrices(CSaleBasket::GetBasketUserID(), SITE_ID); /* Check Values Begin */ $arSelFields = array("ID", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY", "CAN_BUY", "PRICE", "WEIGHT", "NAME", "CURRENCY", "CATALOG_XML_ID", "VAT_RATE", "NOTES", "DISCOUNT_PRICE", "PRODUCT_PROVIDER_CLASS", "DIMENSIONS", "TYPE", "SET_PARENT_ID", "DETAIL_PAGE_URL" ); $dbBasketItems = CSaleBasket::GetList( array("ID" => "ASC"), array( "FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL" ), false, false, $arSelFields ); while ($arItem = $dbBasketItems->GetNext()) { if ($arItem["DELAY"] == "N" && $arItem["CAN_BUY"] == "Y") { $arItem["PRICE"] = roundEx($arItem["PRICE"], SALE_VALUE_PRECISION); $arItem["QUANTITY"] = DoubleVal($arItem["QUANTITY"]); $arItem["WEIGHT"] = DoubleVal($arItem["WEIGHT"]); $arItem["VAT_RATE"] = DoubleVal($arItem["VAT_RATE"]); $arDim = unserialize($arItem["~DIMENSIONS"]); if(is_array($arDim)) { $arItem["DIMENSIONS"] = $arDim; unset($arItem["~DIMENSIONS"]); $arResult["MAX_DIMENSIONS"] = CSaleDeliveryHelper::getMaxDimensions( array( $arDim["WIDTH"], $arDim["HEIGHT"], $arDim["LENGTH"] ), $arResult["MAX_DIMENSIONS"]); $arResult["ITEMS_DIMENSIONS"][] = $arDim; } if($arItem["VAT_RATE"] > 0 && !CSaleBasketHelper::isSetItem($arItem)) { $arResult["bUsingVat"] = "Y"; if($arItem["VAT_RATE"] > $arResult["VAT_RATE"]) $arResult["VAT_RATE"] = $arItem["VAT_RATE"]; //$arItem["VAT_VALUE"] = roundEx((($arItem["PRICE"] / ($arItem["VAT_RATE"] +1)) * $arItem["VAT_RATE"]), SALE_VALUE_PRECISION); $arItem["VAT_VALUE"] = (($arItem["PRICE"] / ($arItem["VAT_RATE"] +1)) * $arItem["VAT_RATE"]); $arResult["VAT_SUM"] += roundEx($arItem["VAT_VALUE"] * $arItem["QUANTITY"], SALE_VALUE_PRECISION); } $arItem["PRICE_FORMATED"] = SaleFormatCurrency($arItem["PRICE"], $arItem["CURRENCY"]); $arItem["WEIGHT_FORMATED"] = roundEx(DoubleVal($arItem["WEIGHT"]/$arResult["WEIGHT_KOEF"]), SALE_WEIGHT_PRECISION)." ".$arResult["WEIGHT_UNIT"]; if($arItem["DISCOUNT_PRICE"] > 0) { $arItem["DISCOUNT_PRICE_PERCENT"] = $arItem["DISCOUNT_PRICE"]*100 / ($arItem["DISCOUNT_PRICE"] + $arItem["PRICE"]); $arItem["DISCOUNT_PRICE_PERCENT_FORMATED"] = roundEx($arItem["DISCOUNT_PRICE_PERCENT"], 0)."%"; } $arItem["PROPS"] = Array(); $dbProp = CSaleBasket::GetPropsList(Array("SORT" => "ASC", "ID" => "ASC"), Array("BASKET_ID" => $arItem["ID"], "!CODE" => array("CATALOG.XML_ID", "PRODUCT.XML_ID"))); while($arProp = $dbProp -> GetNext()) { if (array_key_exists('BASKET_ID', $arProp)) { unset($arProp['BASKET_ID']); } if (array_key_exists('~BASKET_ID', $arProp)) { unset($arProp['~BASKET_ID']); } $arProp = array_filter($arProp, array("CSaleBasketHelper", "filterFields")); $arItem["PROPS"][] = $arProp; } if (!CSaleBasketHelper::isSetItem($arItem)) { $DISCOUNT_PRICE_ALL += $arItem["DISCOUNT_PRICE"] * $arItem["QUANTITY"]; $arItem["DISCOUNT_PRICE"] = roundEx($arItem["DISCOUNT_PRICE"], SALE_VALUE_PRECISION); $arResult["ORDER_PRICE"] += $arItem["PRICE"] * $arItem["QUANTITY"]; } $arResult["ORDER_WEIGHT"] += $arItem["WEIGHT"] * $arItem["QUANTITY"]; if (CSaleBasketHelper::isSetItem($arItem)) $arSetParentWeight[$arItem["SET_PARENT_ID"]] += $arItem["WEIGHT"] * $arItem['QUANTITY']; //get product section $db_groups = CIBlockElement::GetElementGroups($arItem["PRODUCT_ID"], true); while($ar_group = $db_groups->Fetch()) $arItem["IBLOCK_SECTION_ID"][] = $ar_group["ID"]; if(!$arItem["IBLOCK_SECTION_ID"]){ $arItem["PARENT"] = CCatalogSku::GetProductInfo( $arItem["PRODUCT_ID"] ); $db_groups = CIBlockElement::GetElementGroups($arItem["PARENT"]["ID"], true); while($ar_group = $db_groups->Fetch()) $arItem["IBLOCK_SECTION_ID"][] = $ar_group["ID"]; } if($arItem["IBLOCK_SECTION_ID"]){ foreach($arItem["IBLOCK_SECTION_ID"] as $section){ $res_1 = CIBlockSection::GetByID($section); if($ar_res_1 = $res_1->GetNext()){ $arItem["SECTION_NAME"][] = $ar_res_1["NAME"]; } } } $arResult["BASKET_ITEMS"][] = $arItem; } $arResult["PRICE_WITHOUT_DISCOUNT"] = SaleFormatCurrency($arResult["ORDER_PRICE"] + $DISCOUNT_PRICE_ALL, $allCurrency); // count weight for set parent products foreach ($arResult["BASKET_ITEMS"] as &$arItem) { if (CSaleBasketHelper::isSetParent($arItem)) { $arItem["WEIGHT"] = $arSetParentWeight[$arItem["ID"]] / $arItem["QUANTITY"]; $arItem["WEIGHT_FORMATED"] = roundEx(doubleval($arItem["WEIGHT"] / $arResult["WEIGHT_KOEF"]), SALE_WEIGHT_PRECISION)." ".$arResult["WEIGHT_UNIT"]; } } $arResult["ORDER_WEIGHT_FORMATED"] = roundEx(DoubleVal($arResult["ORDER_WEIGHT"]/$arResult["WEIGHT_KOEF"]), SALE_WEIGHT_PRECISION)." ".$arResult["WEIGHT_UNIT"]; $arResult["ORDER_PRICE_FORMATED"] = SaleFormatCurrency($arResult["ORDER_PRICE"], $arResult["BASE_LANG_CURRENCY"]); $arResult["VAT_SUM_FORMATED"] = SaleFormatCurrency($arResult["VAT_SUM"], $arResult["BASE_LANG_CURRENCY"]); $arElementId[] = $arItem["PRODUCT_ID"]; if ($bUseCatalog) { $arParent = CCatalogSku::GetProductInfo($arItem["PRODUCT_ID"]); if ($arParent) { $arElementId[] = $arParent["ID"]; $arSku2Parent[$arItem["PRODUCT_ID"]] = $arParent["ID"]; } } unset($arItem); } return $arResult["BASKET_ITEMS"]; }
function GetStsSyncURL($arSectionParams, $type = 'calendar', $employees = false) { global $USER, $APPLICATION; if (!is_array($arSectionParams)) { $arSectionParams = array('ID' => intval($arSectionParams)); } //if (!$arSectionParams['ID']) // return false; $arAllowedTypes = array('calendar', 'tasks', 'contacts'); if (!in_array($type, $arAllowedTypes)) { $type = 'calendar'; } if ($type == 'calendar') { $calendar2 = COption::GetOptionString("intranet", "calendar_2", "N") == "Y" && CModule::IncludeModule("calendar"); $fld_EXTERNAL_ID = 'XML_ID'; if ($calendar2) { // $arSectionParams = array( // 'ID' => int // 'XML_ID' => string // 'NAME' => string // 'PREFIX' => string // 'LINK_URL' => string // 'TYPE' => string // ) if (strlen($arSectionParams['XML_ID']) !== 32) { $arSectionParams[$fld_EXTERNAL_ID] = md5($arSectionParams['TYPE'] . '_' . $arSectionParams['ID'] . '_' . RandString(8)); // Set XML_ID CCalendar::SaveSection(array('arFields' => array('ID' => $arSectionParams['ID'], 'XML_ID' => $arSectionParams[$fld_EXTERNAL_ID]), 'bAffectToDav' => false, 'bCheckPermissions' => false)); } } else { if (!$arSectionParams['IBLOCK_ID'] || !$arSectionParams['NAME'] || !$arSectionParams[$fld_EXTERNAL_ID]) { $dbRes = CIBlockSection::GetByID($arSectionParams['ID']); $arSection = $dbRes->Fetch(); if ($arSection) { $arSectionParams['IBLOCK_ID'] = $arSection['IBLOCK_ID']; $arSectionParams['NAME'] = $arSection['NAME']; $arSectionParams[$fld_EXTERNAL_ID] = $arSection[$fld_EXTERNAL_ID]; } else { return false; } } if (strlen($arSectionParams[$fld_EXTERNAL_ID]) !== 32) { $arSectionParams[$fld_EXTERNAL_ID] = md5($arSectionParams['IBLOCK_ID'] . '_' . $arSectionParams['ID'] . '_' . RandString(8)); $obSect = new CIBlockSection(); if (!$obSect->Update($arSectionParams['ID'], array($fld_EXTERNAL_ID => $arSectionParams[$fld_EXTERNAL_ID]), false, false)) { return false; } } } if (!$arSectionParams['PREFIX']) { $rsSites = CSite::GetByID(SITE_ID); $arSite = $rsSites->Fetch(); if (strlen($arSite["NAME"]) > 0) { $arSectionParams['PREFIX'] = $arSite["NAME"]; } else { $arSectionParams['PREFIX'] = COption::GetOptionString('main', 'site_name', GetMessage('INTR_OUTLOOK_PREFIX_CONTACTS')); } } $GUID = CIntranetUtils::makeGUID($arSectionParams[$fld_EXTERNAL_ID]); } elseif ($type == 'contacts') { if (!$arSectionParams['LINK_URL']) { if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $arSectionParams['LINK_URL'] = SITE_DIR . 'contacts/'; } else { $arSectionParams['LINK_URL'] = SITE_DIR . 'company/'; } } if (!$arSectionParams['NAME']) { if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite() && !$employees) { $arSectionParams['NAME'] = GetMessage('INTR_OUTLOOK_TITLE_CONTACTS_EXTRANET'); } else { $arSectionParams['NAME'] = GetMessage('INTR_OUTLOOK_TITLE_CONTACTS'); } } if (!$arSectionParams['PREFIX']) { $rsSites = CSite::GetByID(SITE_ID); $arSite = $rsSites->Fetch(); if (strlen($arSite["NAME"]) > 0) { $arSectionParams['PREFIX'] = $arSite["NAME"]; } else { $arSectionParams['PREFIX'] = COption::GetOptionString('main', 'site_name', GetMessage('INTR_OUTLOOK_PREFIX_CONTACTS')); } } $SERVER_NAME = $_SERVER['SERVER_NAME']; $GUID_DATA = $SERVER_NAME . '|' . $type; if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $GUID_DATA .= "|extranet"; if ($employees) { $GUID_DATA .= "|employees"; } } $GUID = CIntranetUtils::makeGUID(md5($GUID_DATA)); } elseif ($type == 'tasks') { if (!$arSectionParams['LINK_URL']) { if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $arSectionParams['LINK_URL'] = SITE_DIR . 'contacts/personal/user/' . $USER->GetID() . '/tasks/'; } else { $arSectionParams['LINK_URL'] = SITE_DIR . 'company/personal/user/' . $USER->GetID() . '/tasks/'; } } if (!$arSectionParams['NAME']) { $arSectionParams['NAME'] = GetMessage('INTR_OUTLOOK_TITLE_TASKS'); } if (!$arSectionParams['PREFIX']) { $rsSites = CSite::GetByID(SITE_ID); $arSite = $rsSites->Fetch(); if (strlen($arSite["NAME"]) > 0) { $arSectionParams['PREFIX'] = $arSite["NAME"]; } else { $arSectionParams['PREFIX'] = COption::GetOptionString('main', 'site_name', GetMessage('INTR_OUTLOOK_PREFIX_CONTACTS')); } } $SERVER_NAME = $_SERVER['SERVER_NAME']; $GUID_DATA = $SERVER_NAME . '|' . $type; if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $GUID_DATA .= "|extranet"; } $GUID = CIntranetUtils::makeGUID(md5($GUID_DATA)); } if (substr($arSectionParams['LINK_URL'], -9) == 'index.php') { $arSectionParams['LINK_URL'] = substr($arSectionParams['LINK_URL'], 0, -9); } if (substr($arSectionParams['LINK_URL'], -4) != '.php' && substr($arSectionParams['LINK_URL'], -1) != '/') { $arSectionParams['LINK_URL'] .= '/'; } // another dirty hack to avoid some M$ stssync protocol restrictions if (substr($arSectionParams['LINK_URL'], -1) != '/') { $arSectionParams['LINK_URL'] .= '/'; } $GLOBALS['APPLICATION']->AddHeadScript('/bitrix/js/intranet/outlook.js'); $type_script = $type; if (CModule::IncludeModule('extranet') && CExtranet::IsExtranetSite()) { $type_script .= "_extranet"; if ($employees) { $type_script .= "_emp"; } } $port = $APPLICATION->IsHTTPS() ? 443 : 80; if (\Bitrix\Main\Loader::includeModule('ldap')) { $port = CLdapUtil::getTargetPort(); } return 'jsOutlookUtils.Sync(\'' . $type . '\', \'/bitrix/tools/ws_' . $type_script . '\', \'' . $arSectionParams['LINK_URL'] . '\', \'' . CUtil::JSEscape(htmlspecialcharsbx($arSectionParams['PREFIX'])) . '\', \'' . CUtil::JSEscape($arSectionParams['NAME']) . '\', \'' . $GUID . '\', ' . intval($port) . ')'; }
<?php if (!empty($arResult['ITEMS'])) { ?> <div class="doctors mt-30"> <div class="row mb-40"> <?php $count = 1; foreach ($arResult['ITEMS'] as $key => $arItem) { $this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], $strElementEdit); $this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], $strElementDelete, $arElementDeleteParams); $strMainID = $this->GetEditAreaId($arItem['ID']); $productTitle = isset($arItem['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']) && $arItem['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'] != '' ? $arItem['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'] : $arItem['NAME']; $imgTitle = isset($arItem['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE']) && $arItem['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE'] != '' ? $arItem['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE'] : $arItem['NAME']; $nap_list = array(); foreach ($arItem['PROPERTIES']['structure']['VALUE'] as $value) { $res = CIBlockSection::GetByID($value); if ($ar_res = $res->GetNext()) { $nap_list[] = $ar_res['NAME']; } } $db_props = CIBlockElement::GetProperty(24, $arItem["ID"], array("sort" => "asc"), array("CODE" => "FORUM_MESSAGE_CNT")); if ($ar_props = $db_props->Fetch()) { $FORUM_MESSAGE_CNT = IntVal($ar_props["VALUE"]); } else { $FORUM_MESSAGE_CNT = false; } ?> <div class="col-xs-6 col-md-3 one-doctor mb-40"> <div class="p-rel p-rel one-doc_img-wrap"> <div class="visible-hover bg-orange-06 p-15 ">