本文整理汇总了PHP中CIBlockElementRights类的典型用法代码示例。如果您正苦于以下问题:PHP CIBlockElementRights类的具体用法?PHP CIBlockElementRights怎么用?PHP CIBlockElementRights使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CIBlockElementRights类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: canRead
public function canRead($userId)
{
if (!Loader::includeModule("iblock")) {
return false;
}
$elementId = $this->entityId;
$elementQuery = \CIBlockElement::getList(array(), array('ID' => $elementId), false, false, array('IBLOCK_ID'));
$element = $elementQuery->fetch();
if (!$element['IBLOCK_ID']) {
return false;
}
return \CIBlockElementRights::userHasRightTo($element['IBLOCK_ID'], $elementId, "element_read");
}
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:13,代码来源:iblockelementconnector.php
示例2: canRead
public function canRead($userId)
{
if (!Loader::includeModule("lists")) {
return false;
}
$elementId = $this->entityId;
$elementQuery = \CIBlockElement::getList(array(), array('ID' => $elementId), false, false, array('IBLOCK_TYPE_ID', 'IBLOCK_ID'));
$element = $elementQuery->fetch();
$listPerm = \CListPermissions::checkAccess($this->getUser(), $element['IBLOCK_TYPE_ID'], $element['IBLOCK_ID']);
if ($listPerm < 0) {
return false;
} elseif ($listPerm < \CListPermissions::CAN_READ && !\CIBlockElementRights::userHasRightTo($element['IBLOCK_ID'], $elementId, "element_read")) {
return false;
} else {
return true;
}
}
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:17,代码来源:iblockconnector.php
示例3: checkUserReadAccess
public function checkUserReadAccess($parameters)
{
global $USER;
$parameters['listId'] = (int) $parameters['listId'];
$parameters['elementId'] = (int) $parameters['elementId'];
if ($parameters['listId'] == 0 || $parameters['elementId'] == 0) {
return false;
}
$userPermission = \CListPermissions::CheckAccess($USER, $parameters["IBLOCK_TYPE_ID"], $parameters['listId']);
if ($userPermission < 0) {
return false;
} else {
if ($userPermission < \CListPermissions::CAN_READ && !\CIBlockElementRights::UserHasRightTo($parameters['listId'], $parameters['elementId'], "element_read")) {
return false;
}
}
return true;
}
开发者ID:webgksupport,项目名称:alpina,代码行数:18,代码来源:element.php
示例4: CheckElementOperation
public static function CheckElementOperation($intIBlockID, $intElementID, $strOperation, $strAccess)
{
$intIBlockID = intval($intIBlockID);
if ($intIBlockID <= 0) {
return false;
}
$intElementID = intval($intElementID);
if ($intElementID <= 0) {
return false;
}
if (!self::$boolCheck) {
self::CheckExtRights();
}
if (self::$boolExtRights) {
return CIBlockElementRights::UserHasRightTo($intIBlockID, $intElementID, $strOperation);
} else {
return CIBlock::GetPermission($intIBlockID) >= $strAccess;
}
}
开发者ID:Hawkart,项目名称:megatv,代码行数:19,代码来源:iblock_rights.php
示例5: terminateWorkflow
protected function terminateWorkflow($workflowId, $elementId)
{
$this->checkPermission();
if (!CBPDocument::canUserOperateDocument(CBPCanUserOperateOperation::StartWorkflow, $this->getUser(), BizProcDocument::getDocumentComplexId($this->iblockTypeId, $elementId), array("DocumentStates" => $this->documentStates))) {
$this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_LAC_ACCESS_DENIED'))));
}
if ($this->errorCollection->hasErrors()) {
$this->sendJsonErrorResponse();
}
if (CIBlockElementRights::userHasRightTo($this->iblockId, $elementId, "element_rights_edit")) {
$errors = array();
CBPDocument::terminateWorkflow($workflowId, BizProcDocument::getDocumentComplexId($this->iblockTypeId, $elementId), $errors);
foreach ($errors as $error) {
$this->errorCollection->add(array(new Error($error["message"])));
}
} else {
$this->errorCollection->add(array(new Error(Loc::getMessage('LISTS_LAC_ACCESS_DENIED'))));
}
if ($this->errorCollection->hasErrors()) {
$this->sendJsonErrorResponse();
}
}
开发者ID:Satariall,项目名称:izurit,代码行数:22,代码来源:ajax.php
示例6: UpdateSearch
//.........这里部分代码省略.........
if (strlen($ar["USER_TYPE"]) > 0) {
$arUT = CIBlockProperty::GetUserType($ar["USER_TYPE"]);
if (array_key_exists("GetSearchContent", $arUT)) {
$ar["GetSearchContent"] = $arUT["GetSearchContent"];
} elseif (array_key_exists("GetPublicViewHTML", $arUT)) {
$ar["GetSearchContent"] = $arUT["GetPublicViewHTML"];
}
}
$arProperties[$IBLOCK_ID][$ar["ID"]] = $ar;
}
}
//Read current property values from database
$strProperties = "";
if (count($arProperties[$IBLOCK_ID]) > 0) {
if ($arIBlockElement["VERSION"] == 1) {
$rs = $DB->Query("\n\t\t\t\t\t\tselect *\n\t\t\t\t\t\tfrom b_iblock_element_property\n\t\t\t\t\t\twhere IBLOCK_ELEMENT_ID=" . $arIBlockElement["ID"] . "\n\t\t\t\t\t\tAND IBLOCK_PROPERTY_ID in (" . implode(", ", array_keys($arProperties[$IBLOCK_ID])) . ")\n\t\t\t\t\t");
while ($ar = $rs->Fetch()) {
$strProperties .= "\r\n";
$arProperty = $arProperties[$IBLOCK_ID][$ar["IBLOCK_PROPERTY_ID"]];
if ($arProperty["GetSearchContent"]) {
$strProperties .= CSearch::KillTags(call_user_func_array($arProperty["GetSearchContent"], array($arProperty, array("VALUE" => $ar["VALUE"]), array())));
} elseif ($arProperty["PROPERTY_TYPE"] == 'L') {
$arEnum = CIBlockPropertyEnum::GetByID($ar["VALUE"]);
if ($arEnum !== false) {
$strProperties .= $arEnum["VALUE"];
}
} elseif ($arProperty["PROPERTY_TYPE"] == 'F') {
$arFile = CIBlockElement::__GetFileContent($ar["VALUE"]);
if (is_array($arFile)) {
$strProperties .= $arFile["CONTENT"];
$arIBlockElement["TAGS"] .= "," . $arFile["PROPERTIES"][COption::GetOptionString("search", "page_tag_property")];
}
} else {
$strProperties .= $ar["VALUE"];
}
}
} else {
$rs = $DB->Query("\n\t\t\t\t\t\tselect *\n\t\t\t\t\t\tfrom b_iblock_element_prop_m" . $IBLOCK_ID . "\n\t\t\t\t\t\twhere IBLOCK_ELEMENT_ID=" . $arIBlockElement["ID"] . "\n\t\t\t\t\t\tAND IBLOCK_PROPERTY_ID in (" . implode(", ", array_keys($arProperties[$IBLOCK_ID])) . ")\n\t\t\t\t\t");
while ($ar = $rs->Fetch()) {
$strProperties .= "\r\n";
$arProperty = $arProperties[$IBLOCK_ID][$ar["IBLOCK_PROPERTY_ID"]];
if ($arProperty["GetSearchContent"]) {
$strProperties .= CSearch::KillTags(call_user_func_array($arProperty["GetSearchContent"], array($arProperty, array("VALUE" => $ar["VALUE"]), array())));
} elseif ($arProperty["PROPERTY_TYPE"] == 'L') {
$arEnum = CIBlockPropertyEnum::GetByID($ar["VALUE"]);
if ($arEnum !== false) {
$strProperties .= $arEnum["VALUE"];
}
} elseif ($arProperty["PROPERTY_TYPE"] == 'F') {
$arFile = CIBlockElement::__GetFileContent($ar["VALUE"]);
if (is_array($arFile)) {
$strProperties .= $arFile["CONTENT"];
$arIBlockElement["TAGS"] .= "," . $arFile["PROPERTIES"][COption::GetOptionString("search", "page_tag_property")];
}
} else {
$strProperties .= $ar["VALUE"];
}
}
$rs = $DB->Query("\n\t\t\t\t\t\tselect *\n\t\t\t\t\t\tfrom b_iblock_element_prop_s" . $IBLOCK_ID . "\n\t\t\t\t\t\twhere IBLOCK_ELEMENT_ID=" . $arIBlockElement["ID"] . "\n\t\t\t\t\t");
if ($ar = $rs->Fetch()) {
foreach ($arProperties[$IBLOCK_ID] as $property_id => $property) {
if (array_key_exists("PROPERTY_" . $property_id, $ar) && $property["MULTIPLE"] == "N" && strlen($ar["PROPERTY_" . $property_id]) > 0) {
$strProperties .= "\r\n";
if ($property["GetSearchContent"]) {
$strProperties .= CSearch::KillTags(call_user_func_array($property["GetSearchContent"], array($property, array("VALUE" => $ar["PROPERTY_" . $property_id]), array())));
} elseif ($property["PROPERTY_TYPE"] == 'L') {
$arEnum = CIBlockPropertyEnum::GetByID($ar["PROPERTY_" . $property_id]);
if ($arEnum !== false) {
$strProperties .= $arEnum["VALUE"];
}
} elseif ($property["PROPERTY_TYPE"] == 'F') {
$arFile = CIBlockElement::__GetFileContent($ar["PROPERTY_" . $property_id]);
if (is_array($arFile)) {
$strProperties .= $arFile["CONTENT"];
$arIBlockElement["TAGS"] .= "," . $arFile["PROPERTIES"][COption::GetOptionString("search", "page_tag_property")];
}
} else {
$strProperties .= $ar["PROPERTY_" . $property_id];
}
}
}
}
}
}
$BODY .= $strProperties;
if ($arIBlockElement["RIGHTS_MODE"] !== "E") {
$arPermissions = $arGroups[$IBLOCK_ID];
} else {
$obElementRights = new CIBlockElementRights($IBLOCK_ID, $arIBlockElement["ID"]);
$arPermissions = $obElementRights->GetGroups(array("element_read"));
}
$arFields = array("LAST_MODIFIED" => strlen($arIBlockElement["DATE_FROM"]) > 0 ? $arIBlockElement["DATE_FROM"] : $arIBlockElement["LAST_MODIFIED"], "DATE_FROM" => strlen($arIBlockElement["DATE_FROM"]) > 0 ? $arIBlockElement["DATE_FROM"] : false, "DATE_TO" => strlen($arIBlockElement["DATE_TO"]) > 0 ? $arIBlockElement["DATE_TO"] : false, "TITLE" => $arIBlockElement["NAME"], "PARAM1" => $arIBlockElement["IBLOCK_TYPE_ID"], "PARAM2" => $IBLOCK_ID, "SITE_ID" => $arSITE[$IBLOCK_ID], "PERMISSIONS" => $arPermissions, "URL" => $DETAIL_URL, "BODY" => $BODY, "TAGS" => $arIBlockElement["TAGS"]);
if ($arIBlockElement["SOCNET_GROUP_ID"] > 0) {
$arFields["PARAMS"] = array("socnet_group" => $arIBlockElement["SOCNET_GROUP_ID"]);
}
CSearch::Index("iblock", $ID, $arFields, $bOverWrite);
} else {
CSearch::DeleteIndex("iblock", $ID);
}
}
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:101,代码来源:iblockelement.php
示例7: foreach
foreach ($arErrorsTmp as $e) {
$strWarning .= $e["message"] . "<br />";
}
}
}
}
$arDocumentStates = null;
CBPDocument::AddDocumentToHistory(BizProcDocument::getDocumentComplexId($arParams["IBLOCK_TYPE_ID"], $arResult["ELEMENT_ID"]), $arElement["NAME"], $GLOBALS["USER"]->GetID());
}
}
if (!$strError) {
//Successfull update
//And go to proper page
if (isset($_POST["save"])) {
LocalRedirect($arResult["~LIST_SECTION_URL"]);
} elseif ($lists_perm < CListPermissions::CAN_READ && !CIBlockElementRights::UserHasRightTo($arResult["IBLOCK_ID"], $arResult["ELEMENT_ID"], "element_read")) {
LocalRedirect($arResult["~LIST_SECTION_URL"]);
} else {
$url = CHTTP::urlAddParams(str_replace(array("#list_id#", "#section_id#", "#element_id#", "#group_id#"), array($arResult["IBLOCK_ID"], intval($_POST["IBLOCK_SECTION_ID"]), $arResult["ELEMENT_ID"], $arParams["SOCNET_GROUP_ID"]), $arParams["~LIST_ELEMENT_URL"]), array($tab_name => $_POST[$tab_name]), array("skip_empty" => true, "encode" => true));
if (isset($_GET["list_section_id"]) && strlen($_GET["list_section_id"]) == 0) {
$url = CHTTP::urlAddParams($url, array("list_section_id" => ""));
}
LocalRedirect($url);
}
} else {
ShowError($strError);
$bVarsFromForm = true;
}
} else {
//Go to list section page
LocalRedirect($arResult["~LIST_SECTION_URL"]);
开发者ID:webgksupport,项目名称:alpina,代码行数:31,代码来源:component.php
示例8: OnSearchReindex
public static function OnSearchReindex($NS = array(), $oCallback = NULL, $callback_method = "")
{
/** @global CUserTypeManager $USER_FIELD_MANAGER */
global $USER_FIELD_MANAGER;
/** $global CDatabase $DB */
global $DB;
$strNSJoin1 = "";
$strNSFilter1 = "";
$strNSFilter2 = "";
$strNSFilter3 = "";
$arResult = array();
if ($NS["MODULE"] == "iblock" && strlen($NS["ID"]) > 0) {
$arrTmp = explode(".", $NS["ID"]);
$strNSFilter1 = " AND B.ID>=" . IntVal($arrTmp[0]) . " ";
if (substr($arrTmp[1], 0, 1) != 'S') {
$strNSFilter2 = " AND BE.ID>" . IntVal($arrTmp[1]) . " ";
} else {
$strNSFilter2 = false;
$strNSFilter3 = " AND BS.ID>" . IntVal(substr($arrTmp[1], 1)) . " ";
}
}
if ($NS["SITE_ID"] != "") {
$strNSJoin1 .= " INNER JOIN b_iblock_site BS ON BS.IBLOCK_ID=B.ID ";
$strNSFilter1 .= " AND BS.SITE_ID='" . $DB->ForSQL($NS["SITE_ID"]) . "' ";
}
$strSql = "\n\t\t\tSELECT B.ID, B.IBLOCK_TYPE_ID, B.INDEX_ELEMENT, B.INDEX_SECTION, B.RIGHTS_MODE,\n\t\t\t\tB.IBLOCK_TYPE_ID, B.CODE as IBLOCK_CODE, B.XML_ID as IBLOCK_EXTERNAL_ID\n\t\t\tFROM b_iblock B\n\t\t\t" . $strNSJoin1 . "\n\t\t\tWHERE B.ACTIVE = 'Y'\n\t\t\t\tAND (B.INDEX_ELEMENT='Y' OR B.INDEX_SECTION='Y')\n\t\t\t\t" . $strNSFilter1 . "\n\t\t\tORDER BY B.ID\n\t\t";
$dbrIBlock = $DB->Query($strSql);
while ($arIBlock = $dbrIBlock->Fetch()) {
$IBLOCK_ID = $arIBlock["ID"];
$arGroups = array();
$strSql = "SELECT GROUP_ID " . "FROM b_iblock_group " . "WHERE IBLOCK_ID= " . $IBLOCK_ID . " " . "\tAND PERMISSION>='R' " . "\tAND GROUP_ID>1 " . "ORDER BY GROUP_ID";
$dbrIBlockGroup = $DB->Query($strSql);
while ($arIBlockGroup = $dbrIBlockGroup->Fetch()) {
$arGroups[] = $arIBlockGroup["GROUP_ID"];
if ($arIBlockGroup["GROUP_ID"] == 2) {
break;
}
}
$arSITE = array();
$strSql = "SELECT SITE_ID " . "FROM b_iblock_site " . "WHERE IBLOCK_ID= " . $IBLOCK_ID;
$dbrIBlockSite = $DB->Query($strSql);
while ($arIBlockSite = $dbrIBlockSite->Fetch()) {
$arSITE[] = $arIBlockSite["SITE_ID"];
}
if ($arIBlock["INDEX_ELEMENT"] == 'Y' && $strNSFilter2 !== false) {
$strSql = "SELECT BE.ID, BE.NAME, BE.TAGS, " . "\t" . $DB->DateToCharFunction("BE.ACTIVE_FROM") . " as DATE_FROM, " . "\t" . $DB->DateToCharFunction("BE.ACTIVE_TO") . " as DATE_TO, " . "\t" . $DB->DateToCharFunction("BE.TIMESTAMP_X") . " as LAST_MODIFIED, " . "\tBE.PREVIEW_TEXT_TYPE, BE.PREVIEW_TEXT, " . "\tBE.DETAIL_TEXT_TYPE, BE.DETAIL_TEXT, " . "\tBE.XML_ID as EXTERNAL_ID, BE.CODE, " . "\tBE.IBLOCK_SECTION_ID " . "FROM b_iblock_element BE " . "WHERE BE.IBLOCK_ID=" . $IBLOCK_ID . " " . "\tAND BE.ACTIVE='Y' " . CIBlockElement::WF_GetSqlLimit("BE.", "N") . $strNSFilter2 . "ORDER BY BE.ID ";
//For MySQL we have to solve client out of memory
//problem by limiting the query
if ($DB->type == "MYSQL") {
$limit = 1000;
$strSql .= " LIMIT " . $limit;
} else {
$limit = false;
}
$dbrIBlockElement = $DB->Query($strSql);
while ($arIBlockElement = $dbrIBlockElement->Fetch()) {
$DETAIL_URL = "=ID=" . $arIBlockElement["ID"] . "&EXTERNAL_ID=" . $arIBlockElement["EXTERNAL_ID"] . "&CODE=" . $arIBlockElement["CODE"] . "&IBLOCK_SECTION_ID=" . $arIBlockElement["IBLOCK_SECTION_ID"] . "&IBLOCK_TYPE_ID=" . $arIBlock["IBLOCK_TYPE_ID"] . "&IBLOCK_ID=" . $IBLOCK_ID . "&IBLOCK_CODE=" . $arIBlock["IBLOCK_CODE"] . "&IBLOCK_EXTERNAL_ID=" . $arIBlock["IBLOCK_EXTERNAL_ID"];
$BODY = ($arIBlockElement["PREVIEW_TEXT_TYPE"] == "html" ? CSearch::KillTags($arIBlockElement["PREVIEW_TEXT"]) : $arIBlockElement["PREVIEW_TEXT"]) . "\r\n" . ($arIBlockElement["DETAIL_TEXT_TYPE"] == "html" ? CSearch::KillTags($arIBlockElement["DETAIL_TEXT"]) : $arIBlockElement["DETAIL_TEXT"]);
$dbrProperties = CIBlockElement::GetProperty($IBLOCK_ID, $arIBlockElement["ID"], "sort", "asc", array("ACTIVE" => "Y", "SEARCHABLE" => "Y"));
while ($arProperties = $dbrProperties->Fetch()) {
$BODY .= "\r\n";
if (strlen($arProperties["USER_TYPE"]) > 0) {
$UserType = CIBlockProperty::GetUserType($arProperties["USER_TYPE"]);
} else {
$UserType = array();
}
if (array_key_exists("GetSearchContent", $UserType)) {
$BODY .= CSearch::KillTags(call_user_func_array($UserType["GetSearchContent"], array($arProperties['ID'], array("VALUE" => $arProperties["VALUE"]), array())));
} elseif (array_key_exists("GetPublicViewHTML", $UserType)) {
$BODY .= CSearch::KillTags(call_user_func_array($UserType["GetPublicViewHTML"], array($arProperties['ID'], array("VALUE" => $arProperties["VALUE"]), array())));
} elseif ($arProperties["PROPERTY_TYPE"] == 'L') {
$BODY .= $arProperties["VALUE_ENUM"];
} elseif ($arProperties["PROPERTY_TYPE"] == 'F') {
$arFile = CIBlockElement::__GetFileContent($arProperties["VALUE"]);
if (is_array($arFile)) {
$BODY .= $arFile["CONTENT"];
$arIBlockElement["TAGS"] .= "," . $arFile["PROPERTIES"][COption::GetOptionString("search", "page_tag_property")];
}
} else {
$BODY .= $arProperties["VALUE"];
}
}
if ($arIBlock["RIGHTS_MODE"] !== "E") {
$arPermissions = $arGroups;
} else {
$obElementRights = new CIBlockElementRights($IBLOCK_ID, $arIBlockElement["ID"]);
$arPermissions = $obElementRights->GetGroups(array("element_read"));
}
$Result = array("ID" => $arIBlockElement["ID"], "LAST_MODIFIED" => strlen($arIBlockElement["DATE_FROM"]) > 0 ? $arIBlockElement["DATE_FROM"] : $arIBlockElement["LAST_MODIFIED"], "TITLE" => $arIBlockElement["NAME"], "BODY" => $BODY, "TAGS" => $arIBlockElement["TAGS"], "SITE_ID" => $arSITE, "PARAM1" => $arIBlock["IBLOCK_TYPE_ID"], "PARAM2" => $IBLOCK_ID, "DATE_FROM" => strlen($arIBlockElement["DATE_FROM"]) > 0 ? $arIBlockElement["DATE_FROM"] : false, "DATE_TO" => strlen($arIBlockElement["DATE_TO"]) > 0 ? $arIBlockElement["DATE_TO"] : false, "PERMISSIONS" => $arPermissions, "URL" => $DETAIL_URL);
if ($oCallback) {
$res = call_user_func(array($oCallback, $callback_method), $Result);
if (!$res) {
return $IBLOCK_ID . "." . $arIBlockElement["ID"];
}
} else {
$arResult[] = $Result;
}
if ($limit !== false) {
$limit--;
if ($limit <= 0) {
//.........这里部分代码省略.........
开发者ID:ASDAFF,项目名称:bxApiDocs,代码行数:101,代码来源:iblock.php
示例9: IndexIBlockElement
function IndexIBlockElement($arFields, $entity_id, $entity_type, $feature, $operation, $path_template, $arFieldList)
{
$ID = intval($arFields["ID"]);
$IBLOCK_ID = intval($arFields["IBLOCK_ID"]);
$IBLOCK_SECTION_ID = is_array($arFields["IBLOCK_SECTION"]) ? $arFields["IBLOCK_SECTION"][0] : $arFields["IBLOCK_SECTION"];
$arItem = array();
if ($entity_type == "G") {
$url = str_replace(array("#group_id#", "#user_alias#", "#section_id#", "#element_id#", "#action#", "#task_id#", "#name#"), array($entity_id, "group_" . $entity_id, $IBLOCK_SECTION_ID, $arFields["ID"], "view", $arFields["ID"], urlencode($arFields["NAME"])), $path_template);
} else {
$url = str_replace(array("#user_id#", "#user_alias#", "#section_id#", "#element_id#", "#action#", "#task_id#"), array($entity_id, "user_" . $entity_id, $IBLOCK_SECTION_ID, $arFields["ID"], "view", $arFields["ID"]), $path_template);
}
$body = "";
if ($feature == "wiki") {
$CWikiParser = new CWikiParser();
}
foreach ($arFieldList as $field) {
if ($field == "PREVIEW_TEXT" || $field == "DETAIL_TEXT") {
if (isset($CWikiParser)) {
$arFields[$field] = HTMLToTxt($CWikiParser->parseForSearch($arFields[$field]));
} elseif (isset($arFields[$field . "_TYPE"]) && $arFields[$field . "_TYPE"] === "html") {
$arFields[$field] = HTMLToTxt($arFields[$field]);
}
}
$body .= $arFields[$field] . "\n\r";
}
if (isset($CWikiParser)) {
$title = preg_replace('/^category:/i' . BX_UTF_PCRE_MODIFIER, GetMessage('CATEGORY_NAME') . ':', $arFields['NAME']);
} else {
$title = $arFields["NAME"];
}
$arPermissions = $this->GetSearchGroups($entity_type, $entity_id, $feature, $operation);
if (CIBlock::GetArrayByID($IBLOCK_ID, "RIGHTS_MODE") == "E") {
$obElementRights = new CIBlockElementRights($IBLOCK_ID, $arFields["ID"]);
$arPermissions = $obElementRights->GetGroups(array("element_read"));
}
$arSearchIndexParams = $this->GetSearchParams($entity_type, $entity_id, $feature, $operation);
CSearch::Index("socialnetwork", $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" => $arFields["TAGS"], "PERMISSIONS" => $arPermissions, "PARAMS" => $arSearchIndexParams), true);
if (defined("BX_COMP_MANAGED_CACHE")) {
$GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_search_" . $entity_type . "_" . $entity_id);
}
}
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:41,代码来源:search.php
示例10: foreach
$arID[] = $arRes['ID'];
}
}
foreach ($arID as $ID) {
if (strlen($ID) <= 0) {
continue;
}
$ID = intval($ID);
$arRes = CIBlockElement::GetByID($ID);
$arRes = $arRes->Fetch();
if (!$arRes) {
continue;
}
$bPermissions = false;
//delete and modify can:
if (CIBlockElementRights::UserHasRightTo($IBLOCK_ID, $ID, "element_edit_any_wf_status ")) {
$bPermissions = true;
} else {
//For delete action we have to check all statuses in element history
$STATUS_PERMISSION = CIBlockElement::WF_GetStatusPermission($arRes["WF_STATUS_ID"], $_REQUEST['action'] == "delete" ? $ID : false);
if ($STATUS_PERMISSION >= 2) {
$bPermissions = true;
}
}
if (!$bPermissions) {
$lAdmin->AddGroupError(GetMessage("IBLOCK_ADM_HISTORY_UPDERR3") . " (ID:" . $ID . ")", $ID);
continue;
}
switch ($_REQUEST['action']) {
case "delete":
$d = CIBlockElement::GetByID($ID);
开发者ID:k-kalashnikov,项目名称:geekcon_new,代码行数:31,代码来源:iblock_history_list.php
示例11: Update
//.........这里部分代码省略.........
while ($arProp = $props->Fetch()) {
if (!array_key_exists($arProp["VALUE"], $arDup)) {
$arFields["PROPERTY_VALUES"][$arProp["ID"]][$arProp['PROPERTY_VALUE_ID']] = array("VALUE" => $arProp["VALUE"], "DESCRIPTION" => $arProp["DESCRIPTION"]);
$arDup[$arProp["VALUE"]] = true;
//This is cure for files duplication bug
}
}
}
}
} else {
if (array_key_exists("PREVIEW_PICTURE", $arFields)) {
CFile::SaveForDB($arFields, "PREVIEW_PICTURE", "iblock");
}
if (array_key_exists("DETAIL_PICTURE", $arFields)) {
CFile::SaveForDB($arFields, "DETAIL_PICTURE", "iblock");
}
}
unset($arFields["IBLOCK_ID"]);
unset($arFields["WF_NEW"]);
unset($arFields["IBLOCK_SECTION_ID"]);
$bTimeStampNA = false;
if (is_set($arFields, "TIMESTAMP_X") && ($arFields["TIMESTAMP_X"] === NULL || $arFields["TIMESTAMP_X"] === false)) {
$bTimeStampNA = true;
unset($arFields["TIMESTAMP_X"]);
}
$strUpdate = $DB->PrepareUpdate("b_iblock_element", $arFields, "iblock");
if (strlen($strUpdate) > 0) {
$strUpdate .= ", ";
}
$strSql = "UPDATE b_iblock_element SET " . $strUpdate . ($bTimeStampNA ? "TIMESTAMP_X=TIMESTAMP_X" : "TIMESTAMP_X=now()") . " WHERE ID=" . $ID;
$DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
if (array_key_exists("PROPERTY_VALUES", $arFields) && is_array($arFields["PROPERTY_VALUES"]) && count($arFields["PROPERTY_VALUES"]) > 0) {
CIBlockElement::SetPropertyValues($ID, $ar_element["IBLOCK_ID"], $arFields["PROPERTY_VALUES"]);
}
if (is_set($arFields, "IBLOCK_SECTION")) {
CIBlockElement::SetElementSection($ID, $arFields["IBLOCK_SECTION"], false, $arIBlock["RIGHTS_MODE"] === "E" ? $arIBlock["ID"] : 0);
}
if ($arIBlock["RIGHTS_MODE"] === "E") {
$obElementRights = new CIBlockElementRights($arIBlock["ID"], $ID);
if (array_key_exists("RIGHTS", $arFields) && is_array($arFields["RIGHTS"])) {
$obElementRights->SetRights($arFields["RIGHTS"]);
}
}
if (array_key_exists("IPROPERTY_TEMPLATES", $arFields)) {
$ipropTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($arIBlock["ID"], $ID);
$ipropTemplates->set($arFields["IPROPERTY_TEMPLATES"]);
}
if ($bUpdateSearch) {
CIBlockElement::UpdateSearch($ID, true);
}
if ($bWorkFlow) {
CIBlockElement::WF_CleanUpHistoryCopies($ID);
}
//Restore saved values
if ($SAVED_PREVIEW_PICTURE !== false) {
$arFields["PREVIEW_PICTURE_ID"] = $arFields["PREVIEW_PICTURE"];
$arFields["PREVIEW_PICTURE"] = $SAVED_PREVIEW_PICTURE;
} else {
unset($arFields["PREVIEW_PICTURE"]);
}
if ($SAVED_DETAIL_PICTURE !== false) {
$arFields["DETAIL_PICTURE_ID"] = $arFields["DETAIL_PICTURE"];
$arFields["DETAIL_PICTURE"] = $SAVED_DETAIL_PICTURE;
} else {
unset($arFields["DETAIL_PICTURE"]);
}
if ($arIBlock["FIELDS"]["LOG_ELEMENT_EDIT"]["IS_REQUIRED"] == "Y") {
$USER_ID = is_object($USER) ? intval($USER->GetID()) : 0;
$arEvents = GetModuleEvents("main", "OnBeforeEventLog", true);
if (empty($arEvents) || ExecuteModuleEventEx($arEvents[0], array($USER_ID)) === false) {
$rsElement = CIBlockElement::GetList(array(), array("=ID" => $ID, "CHECK_PERMISSIONS" => "N", "SHOW_NEW" => "Y"), false, false, array("ID", "NAME", "LIST_PAGE_URL", "CODE"));
$arElement = $rsElement->GetNext();
$res = array("ID" => $ID, "CODE" => $arElement["CODE"], "NAME" => $arElement["NAME"], "ELEMENT_NAME" => $arIBlock["ELEMENT_NAME"], "USER_ID" => $USER_ID, "IBLOCK_PAGE_URL" => $arElement["LIST_PAGE_URL"]);
CEventLog::Log("IBLOCK", "IBLOCK_ELEMENT_EDIT", "iblock", $arIBlock["ID"], serialize($res));
}
}
$Result = true;
/************* QUOTA *************/
$_SESSION["SESS_RECOUNT_DB"] = "Y";
/************* QUOTA *************/
}
$arFields["ID"] = $ID;
$arFields["IBLOCK_ID"] = $ar_element["IBLOCK_ID"];
$arFields["RESULT"] =& $Result;
if (isset($arFields["PREVIEW_PICTURE"]) && $arFields["PREVIEW_PICTURE"]["COPY_FILE"] == "Y" && $arFields["PREVIEW_PICTURE"]["copy"]) {
@unlink($arFields["PREVIEW_PICTURE"]["tmp_name"]);
@rmdir(dirname($arFields["PREVIEW_PICTURE"]["tmp_name"]));
}
if (isset($arFields["DETAIL_PICTURE"]) && $arFields["DETAIL_PICTURE"]["COPY_FILE"] == "Y" && $arFields["DETAIL_PICTURE"]["copy"]) {
@unlink($arFields["DETAIL_PICTURE"]["tmp_name"]);
@rmdir(dirname($arFields["DETAIL_PICTURE"]["tmp_name"]));
}
foreach (GetModuleEvents("iblock", "OnAfterIBlockElementUpdate", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array(&$arFields));
}
if (defined("BX_COMP_MANAGED_CACHE")) {
$GLOBALS["CACHE_MANAGER"]->ClearByTag("iblock_id_" . $arIBlock["ID"]);
}
return $Result;
}
开发者ID:spas-viktor,项目名称:books,代码行数:101,代码来源:iblockelement.php
示例12: CatalogRecurringCallback
function CatalogRecurringCallback($productID, $userID)
{
global $APPLICATION;
global $DB;
$productID = intval($productID);
if ($productID <= 0) {
return false;
}
$userID = intval($userID);
if ($userID <= 0) {
return false;
}
$arProduct = CCatalogProduct::GetByID($productID);
if (!$arProduct) {
$APPLICATION->ThrowException(str_replace("#ID#", $productID, Loc::getMessage("I_NO_PRODUCT")), "NO_PRODUCT");
return false;
}
if ($arProduct["PRICE_TYPE"] == "T") {
$arProduct = CCatalogProduct::GetByID($arProduct["TRIAL_PRICE_ID"]);
if (!$arProduct) {
$APPLICATION->ThrowException(str_replace("#TRIAL_ID#", $productID, str_replace("#ID#", $arProduct["TRIAL_PRICE_ID"], Loc::getMessage("I_NO_TRIAL_PRODUCT"))), "NO_PRODUCT_TRIAL");
return false;
}
}
$productID = intval($arProduct["ID"]);
if ($arProduct["PRICE_TYPE"] != "R") {
$APPLICATION->ThrowException(str_replace("#ID#", $productID, Loc::getMessage("I_PRODUCT_NOT_SUBSCR")), "NO_IBLOCK_SUBSCR");
return false;
}
$dbIBlockElement = CIBlockElement::GetList(array(), array("ID" => $productID, "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "CHECK_PERMISSIONS" => "N"), false, false, array('ID', 'IBLOCK_ID', 'NAME', 'DETAIL_PAGE_URL'));
if (!($arIBlockElement = $dbIBlockElement->GetNext())) {
$APPLICATION->ThrowException(str_replace("#ID#", $productID, Loc::getMessage("I_NO_IBLOCK_ELEM")), "NO_IBLOCK_ELEMENT");
return false;
}
if ('E' == CIBlock::GetArrayByID($arIBlockElement['IBLOCK_ID'], "RIGHTS_MODE")) {
$arUserRights = CIBlockElementRights::GetUserOperations($productID, $userID);
if (empty($arUserRights)) {
$APPLICATION->ThrowException(str_replace("#ID#", $productID, Loc::getMessage("I_NO_IBLOCK_ELEM")), "NO_IBLOCK_ELEMENT");
return false;
} elseif (!is_array($arUserRights) || !array_key_exists('element_read', $arUserRights)) {
$APPLICATION->ThrowException(str_replace("#ID#", $productID, Loc::getMessage("I_NO_IBLOCK_ELEM")), "NO_IBLOCK_ELEMENT");
return false;
}
} else {
if ('R' > CIBlock::GetPermission($arIBlockElement['IBLOCK_ID'], $userID)) {
$APPLICATION->ThrowException(str_replace("#ID#", $productID, Loc::getMessage("I_NO_IBLOCK_ELEM")), "NO_IBLOCK_ELEMENT");
return false;
}
}
$arCatalog = CCatalog::GetByID($arIBlockElement["IBLOCK_ID"]);
if ($arCatalog["SUBSCRIPTION"] != "Y") {
$APPLICATION->ThrowException(str_replace("#ID#", $arIBlockElement["IBLOCK_ID"], Loc::getMessage("I_CATALOG_NOT_SUBSCR")), "NOT_SUBSCRIPTION");
return false;
}
if ($arProduct["CAN_BUY_ZERO"] != "Y" && ($arProduct["QUANTITY_TRACE"] == "Y" && doubleval($arProduct["QUANTITY"]) <= 0)) {
$APPLICATION->ThrowException(str_replace("#ID#", $productID, Loc::getMessage("I_PRODUCT_SOLD")), "PRODUCT_END");
return false;
}
$arUserGroups = CUser::GetUserGroup($userID);
$arUserGroups = array_values(array_unique($arUserGroups));
CCatalogDiscountSave::Disable();
$arPrice = CCatalogProduct::GetOptimalPrice($productID, 1, $arUserGroups, "Y");
if (empty($arPrice)) {
if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, 1, $arUserGroups)) {
$quantity = $nearestQuantity;
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $arUserGroups, "Y");
}
}
CCatalogDiscountSave::Enable();
if (empty($arPrice)) {
return false;
}
$currentPrice = $arPrice["PRICE"]["PRICE"];
$currentDiscount = 0.0;
//SIGURD: logic change. see mantiss 5036.
// discount applied to a final price with VAT already included.
if (doubleval($arPrice['PRICE']['VAT_RATE']) > 0) {
$currentPrice *= 1 + $arPrice['PRICE']['VAT_RATE'];
}
$arDiscountList = array();
if (!empty($arPrice["DISCOUNT_LIST"])) {
$dblStartPrice = $currentPrice;
foreach ($arPrice["DISCOUNT_LIST"] as &$arOneDiscount) {
switch ($arOneDiscount['VALUE_TYPE']) {
case CCatalogDiscount::TYPE_FIX:
if ($arOneDiscount['CURRENCY'] == $arPrice["PRICE"]["CURRENCY"]) {
$currentDiscount = $arOneDiscount['VALUE'];
} else {
$currentDiscount = CCurrencyRates::ConvertCurrency($arOneDiscount["VALUE"], $arOneDiscount["CURRENCY"], $arPrice["PRICE"]["CURRENCY"]);
}
$currentPrice = $currentPrice - $currentDiscount;
break;
case CCatalogDiscount::TYPE_PERCENT:
$currentDiscount = $currentPrice * $arOneDiscount["VALUE"] / 100.0;
if (0 < $arOneDiscount['MAX_DISCOUNT']) {
if ($arOneDiscount['CURRENCY'] == $arPrice["PRICE"]["CURRENCY"]) {
$dblMaxDiscount = $arOneDiscount['MAX_DISCOUNT'];
} else {
$dblMaxDiscount = CCurrencyRates::ConvertCurrency($arOneDiscount['MAX_DISCOUNT'], $arOneDiscount["CURRENCY"], $arPrice["PRICE"]["CURRENCY"]);
}
//.........这里部分代码省略.........
开发者ID:mrdeadmouse,项目名称:u136006,代码行数:101,代码来源:include.php
示例13: foreach
foreach ($obRights->GetRights() as $RIGHT_ID => $arRight) {
$htmlHidden .= '
<input type="hidden" name="SUB_RIGHTS[][RIGHT_ID]" value="' . htmlspecialcharsbx($RIGHT_ID) . '">
<input type="hidden" name="SUB_RIGHTS[][GROUP_CODE]" value="' . htmlspecialcharsbx($arRight["GROUP_CODE"]) . '">
<input type="hidden" name="SUB_RIGHTS[][TASK_ID]" value="' . htmlspecialcharsbx($arRight["TASK_ID"]) . '">
';
}
} else {
$obRights = new CIBlockSectionRights($IBLOCK_ID, 0);
$htmlHidden = '';
}
$tabControl->BeginCustomField("RIGHTS", GetMessage("IBEL_E_RIGHTS_FIELD"));
IBlockShowRights('element', $IBLOCK_ID, $ID, GetMessage("IBEL_E_RIGHTS_SECTION_TITLE"), "SUB_RIGHTS", $obRights->GetRightsList(), $obRights->GetRights(array("count_overwrited" => true, "parents" => array())), false, $ID <= 0 || $bCopy);
$tabControl->EndCustomField("RIGHTS", $htmlHidden);
}
$bDisabled = $view == "Y" || $bWorkflow && $prn_LOCK_STATUS == "red" || ($ID <= 0 || $bCopy) && !CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, 0, "section_element_bind") || $ID > 0 && !$bCopy && !CIBlockElementRights::UserHasRightTo($IBLOCK_ID, $ID, "element_edit") || $bBizproc && !$canWrite;
if ($ID > 0 && !$bSubCopy && BX_SUB_SETTINGS) {
if (!$ajaxReload) {
$reloadParams = array('bxpublic' => 'Y', 'bxsku' => 'Y', 'WF' => 'Y', 'TMP_ID' => $strSubTMP_ID, 'ajaxReload' => 'Y');
if ($arShowTabs['product_group']) {
$reloadParams['groupdel'] = 'Y';
$reloadParams['sessid'] = bitrix_sessid();
$setBtn = "{\n\t\t\t\ttitle: '" . CUtil::JSEscape(GetMessage('IB_SE_SET_PRODUCT_TYPE_GROUP_DELETE')) . "',\n\t\t\t\tname: 'groupdel',\n\t\t\t\tid: 'groupdel',\n\t\t\t\tclassName: 'adm-btn-add',\n\t\t\t\taction: function () {\n\t\t\t\t\tif (confirm('" . CUtil::JSEscape(GetMessage('IB_SE_SET_PRODUCT_TYPE_GROUP_DELETE_CONFIRM')) . "'))\n\t\t\t\t\t{\n\t\t\t\t\t\ttop.BX.showWait();\n\t\t\t\t\t\ttop.BX.ajax.get(\n\t\t\t\t\t\t\t'" . CIBlock::GetAdminSubElementEditLink($IBLOCK_ID, $intProductID, $ID, $reloadParams, '', true) . "',\n\t\t\t\t\t\t\tfunction (result) {\n\t\t\t\t\t\t\t\ttop.BX.closeWait();\n\t\t\t\t\t\t\t\ttop.BX.WindowManager.Get().SetContent(result);\n\t\t\t\t\t\t\t\tif (BX('groupdel'))\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tBX.style(BX('groupdel'), 'display', 'none');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}";
} else {
$reloadParams['SUBPRODUCT_TYPE'] = CCatalogAdminTools::TAB_GROUP;
$setBtn = "{\n\t\t\t\ttitle: '" . CUtil::JSEscape(GetMessage('IB_SE_SET_PRODUCT_TYPE_GROUP_ADD')) . "',\n\t\t\t\tname: 'groupset',\n\t\t\t\tid: 'groupset',\n\t\t\t\tclassName: 'adm-btn-add',\n\t\t\t\taction: function () {\n\t\t\t\t\ttop.BX.showWait();\n\t\t\t\t\ttop.BX.ajax.get('" . CIBlock::GetAdminSubElementEditLink($IBLOCK_ID, $intProductID, $ID, $reloadParams, '', true) . "',\n\t\t\t\t\tfunction (result) {\n\t\t\t\t\t\ttop.BX.closeWait();\n\t\t\t\t\t\ttop.BX.WindowManager.Get().SetContent(result);\n\t\t\t\t\t\tif (BX('groupset'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.style(BX('groupset'), 'display', 'none');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}";
}
$tabControl->ButtonsPublic(array($setBtn));
unset($setBtn, $reloadParams);
}
} else {
开发者ID:vim84,项目名称:b-markt,代码行数:31,代码来源:iblock_subelement_edit.php
示例14: array
}
}
}
if (!empty($actionsProcess)) {
$listProcesses[] = array("TEXT&quo
|
请发表评论