本文整理汇总了PHP中CBPDocument::GetAllowableEvents方法的典型用法代码示例。如果您正苦于以下问题:PHP CBPDocument::GetAllowableEvents方法的具体用法?PHP CBPDocument::GetAllowableEvents怎么用?PHP CBPDocument::GetAllowableEvents使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBPDocument
的用法示例。
在下文中一共展示了CBPDocument::GetAllowableEvents方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: GetMessage
}
$arResult["BP"] = $arRecord;
} else {
$arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_WRONG_BP") . ". ";
}
}
if (strlen($arResult["FatalErrorMessage"]) <= 0) {
$arCurrentUserGroups = $GLOBALS["USER"]->GetUserGroupArray();
if ("user_" . $GLOBALS["USER"]->GetID() == $arResult["BP"]["CREATED_BY"]) {
$arCurrentUserGroups[] = "author";
}
$documentId = array("bizproc", "CBPVirtualDocument", $arResult["BP"]["ID"]);
$arDocumentStates = CBPDocument::GetDocumentStates($documentType, $documentId);
foreach ($arDocumentStates as $arDocumentState) {
$arResult["BP"]["DOCUMENT_STATE"] = $arDocumentState;
$ar = CBPDocument::GetAllowableEvents($GLOBALS["USER"]->GetID(), $arCurrentUserGroups, $arDocumentState);
foreach ($ar as $ar1) {
$ar1["URL"] = $APPLICATION->GetCurPageParam("bizproc_id=" . $arDocumentState["ID"] . "&process_state_event=Y&bizproc_event=" . htmlspecialcharsbx($ar1["NAME"]) . "&" . bitrix_sessid_get(), array("sessid", "stop_bizproc_id", "process_state_event", "bizproc_event", "bizproc_id"));
$arResult["BP"]["DOCUMENT_STATE_EVENTS"][] = $ar1;
}
if (count($arResult["BP"]["DOCUMENT_STATE_EVENTS"]) > 0) {
$arResult["ShowStateEvents"] = true;
}
$arResult["BP"]["DOCUMENT_STATE_TASKS"] = array();
$ar = CBPDocument::GetUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $arDocumentState["ID"]);
foreach ($ar as $ar1) {
$ar1["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_TASK"], array("task_id" => $ar1["ID"], "block_id" => $arParams["BLOCK_ID"]));
$arResult["BP"]["DOCUMENT_STATE_TASKS"][] = $ar1;
}
if (count($arResult["BP"]["DOCUMENT_STATE_TASKS"]) > 0) {
$arResult["ShowTasks"] = true;
示例2: str_replace
}
}
if (!empty($replace)) {
$arPattern[] = "{=user:" . $user . "}";
$arPattern[] = "{=user:user_" . $user . "}";
$arReplacement[] = $replace;
$arReplacement[] = $replace;
}
}
$strMessageTemplate = str_replace($arPattern, $arReplacement, $strMessageTemplate);
}
$arDumpWorkflow[] = $strMessageTemplate;
$track = next($arDmpWorkflow);
} while ($tmp["LEVEL"] == $track["LEVEL"]);
}
$arEvents = CBPDocument::GetAllowableEvents($GLOBALS["USER"]->GetID(), $arParams["USER_GROUPS"], $arDocumentState);
$bEmpty = false;
$iCount++;
$iCountRow = 0;
?>
<li class="bizproc-list-item bizproc-document-process <?php
echo strlen($arDocumentState["WORKFLOW_STATUS"]) > 0 ? "bizproc-document-inprogress" : "bizproc-document-finished";
?>
<?php
echo empty($arTasks) ? "" : "bizproc-document-hastasks";
?>
<?php
echo $iCount == 1 ? "bizproc-list-item-first" : "";
?>
<?php
echo $iCount % 2 == 1 ? "bizproc-list-item-odd " : "bizproc-list-item-even ";
示例3: array
if (!empty($arDocumentState['STATE_MODIFIED'])) {
$arResult['FIELDS']['tab_1'][] = array('id' => 'BP_STATE_MODIFIED_' . $bizProcIndex, 'name' => GetMessage('CRM_FIELD_BP_STATE_MODIFIED'), 'type' => 'label', 'value' => $arDocumentState['STATE_MODIFIED']);
}
if (!empty($arDocumentState['STATE_NAME'])) {
$arResult['FIELDS']['tab_1'][] = array('id' => 'BP_STATE_NAME_' . $bizProcIndex, 'name' => GetMessage('CRM_FIELD_BP_STATE_NAME'), 'type' => 'label', 'value' => strlen($arDocumentState['STATE_TITLE']) > 0 ? $arDocumentState['STATE_TITLE'] : $arDocumentState['STATE_NAME']);
}
if (strlen($arDocumentState['ID']) <= 0) {
ob_start();
CBPDocument::StartWorkflowParametersShow($arDocumentState['TEMPLATE_ID'], $arDocumentState['TEMPLATE_PARAMETERS'], 'form_' . $arResult['FORM_ID'], $varsFromForm);
$sVal = ob_get_contents();
ob_end_clean();
if ($sVal !== '') {
$arResult['FIELDS']['tab_1'][] = array('id' => 'BP_PARAMETERS', 'name' => GetMessage('CRM_FIELD_BP_PARAMETERS'), 'colspan' => true, 'type' => 'custom', 'value' => "<table>{$sVal}</table>");
}
}
$_arEvents = CBPDocument::GetAllowableEvents($USER->GetID(), $CCrmBizProc->arCurrentUserGroups, $arDocumentState);
if (count($_arEvents) > 0) {
$arEvent = array('' => GetMessage('CRM_FIELD_BP_EMPTY_EVENT'));
foreach ($_arEvents as $_arEvent) {
$arEvent[$_arEvent['NAME']] = $_arEvent['TITLE'];
}
$arResult['FIELDS']['tab_1'][] = array('id' => 'BP_EVENTS', 'name' => GetMessage('CRM_FIELD_BP_EVENTS'), 'params' => array(), 'items' => $arEvent, 'type' => 'list', 'value' => isset($_REQUEST['bizproc_event_' . $bizProcIndex]) ? $_REQUEST['bizproc_event_' . $bizProcIndex] : '');
$arResult['FORM_CUSTOM_HTML'] = '
<input type="hidden" name="bizproc_id_' . $bizProcIndex . '" value="' . $arDocumentState["ID"] . '">
<input type="hidden" name="bizproc_template_id_' . $bizProcIndex . '" value="' . $arDocumentState["TEMPLATE_ID"] . '">
';
}
}
if ($bizProcIndex > 0) {
$arResult['BIZPROC'] = true;
}
示例4: GetMessage
?>
</a><?php
}
?>
</td>
</tr>
<?php
}
?>
<?php
if (strlen($arDocumentState["ID"]) <= 0) {
CBPDocument::StartWorkflowParametersShow($arDocumentState["TEMPLATE_ID"], $arDocumentState["TEMPLATE_PARAMETERS"], ($bCustomForm ? "tabControl" : "form_element_" . $IBLOCK_ID) . "_form", $bVarsFromForm);
}
?>
<?php
$arEvents = CBPDocument::GetAllowableEvents($USER->GetID(), $arCurrentUserGroups, $arDocumentState, $arIBlock["RIGHTS_MODE"] === "E");
if (!empty($arEvents)) {
?>
<tr>
<td width="40%"><?php
echo GetMessage("IBEL_BIZPROC_RUN_CMD");
?>
</td>
<td width="60%">
<input type="hidden" name="bizproc_id_<?php
echo $bizProcIndex;
?>
" value="<?php
echo $arDocumentState["ID"];
?>
">
示例5: array
if (strlen($arRecord[$key]) > 0) {
$arRecord[$key] .= ", ";
}
$arRecord[$key] .= $val;
}
}
}
$arCurrentUserGroups = $GLOBALS["USER"]->GetUserGroupArray();
if ("user_" . $GLOBALS["USER"]->GetID() == $arRecord["CREATED_BY"]) {
$arCurrentUserGroups[] = "author";
}
$documentId = array("bizproc", "CBPVirtualDocument", $arRecord["ID"]);
$arDocumentStates = CBPDocument::GetDocumentStates($documentType, $documentId);
foreach ($arDocumentStates as $arDocumentState) {
$arRecord["DOCUMENT_STATE"] = $arDocumentState;
$arRecord["DOCUMENT_STATE_EVENTS"] = CBPDocument::GetAllowableEvents($GLOBALS["USER"]->GetID(), $arCurrentUserGroups, $arDocumentState);
if (count($arRecord["DOCUMENT_STATE_EVENTS"]) > 0) {
$arResult["ShowStateEvents"] = true;
}
$arRecord["DOCUMENT_STATE_TASKS"] = array();
$ar = CBPDocument::GetUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $arDocumentState["ID"]);
foreach ($ar as $ar1) {
$ar1["URL"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_TASK"], array("task_id" => $ar1["ID"], "block_id" => $arParams["BLOCK_ID"]));
$arRecord["DOCUMENT_STATE_TASKS"][] = $ar1;
}
if (count($arRecord["DOCUMENT_STATE_TASKS"]) > 0) {
$arResult["ShowTasks"] = true;
}
$arRecord["CancelUrl"] = "";
//$arOperations = CBPDocument::GetAllowableOperations($GLOBALS["USER"]->GetID(), $arCurrentUserGroups, $arDocumentState);
if ($arResult["AllowAdmin"] && strlen($arDocumentState["ID"]) > 0 && strlen($arDocumentState["WORKFLOW_STATUS"]) > 0) {
示例6: GetTasksList
//.........这里部分代码省略.........
$arPropertyValue = array($arPropertyValue);
$arPropertyKey = array($arPropertyKey);
}
for ($i = 0, $cnt = count($arPropertyValue); $i < $cnt; $i++) {
$arResult["PROPERTY_" . $propertyKey][$arPropertyKey[$i]] = $arPropertyValue[$i];
}
$arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"] = $arResult["PROPERTY_" . $propertyKey];
} elseif ($propertyValue["PROPERTY_TYPE"] == "S" && $propertyValue["ROW_COUNT"] > 1) {
if (is_array($propertyValue["VALUE"])) {
$arResult["PROPERTY_" . $propertyKey] = array();
$arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"] = array();
if ($isInSecurity) {
foreach ($propertyValue["~VALUE"] as $k => $v) {
$filter = new CSecurityFilter();
$arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"][$k] = $filter->TestXSS($v);
$arResult["PROPERTY_" . $propertyKey][$k] = $arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"][$k];
}
} else {
foreach ($propertyValue["VALUE"] as $k => $v) {
$arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"][$k] = nl2br($v);
$arResult["PROPERTY_" . $propertyKey][$k] = $v;
}
}
} else {
if ($isInSecurity) {
$filter = new CSecurityFilter();
$arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"] = $filter->TestXSS($propertyValue["~VALUE"]);
$arResult["PROPERTY_" . $propertyKey] = $arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"];
} else {
$arResult["PROPERTY_" . $propertyKey . "_PRINTABLE"] = nl2br($propertyValue["VALUE"]);
$arResult["PROPERTY_" . $propertyKey] = $propertyValue["VALUE"];
}
}
}
}
$arResult["ROOT_SECTION_ID"] = 0;
$arResult["IBLOCK_SECTION_ID_PRINTABLE"] = array();
$v = CIntranetTasks::PrepareSectionForPrint($arResult["IBLOCK_SECTION_ID"], $iblockId);
if (is_array($v)) {
foreach ($v as $k1 => $v1) {
if ($arResult["ROOT_SECTION_ID"] == 0) {
$arResult["ROOT_SECTION_ID"] = $k1;
$taskType = $v1["XML_ID"] == "users_tasks" ? "user" : "group";
$ownerId = $taskType == "user" ? $arResult["PROPERTY_TaskAssignedTo"] : $v1["XML_ID"];
} else {
$arResult["IBLOCK_SECTION_ID_PRINTABLE"][$k1] = $v1["NAME"];
}
}
}
if (!array_key_exists($taskType . "_" . $ownerId, $arCache)) {
$arCurrentUserGroups = array();
if ($taskType == "group") {
$arCurrentUserGroups[] = SONET_ROLES_ALL;
if ($GLOBALS["USER"]->IsAuthorized()) {
$arCurrentUserGroups[] = SONET_ROLES_AUTHORIZED;
}
$r = CSocNetUserToGroup::GetUserRole($USER->GetID(), $ownerId);
if (strlen($r) > 0) {
$arCurrentUserGroups[] = $r;
}
} else {
$arCurrentUserGroups[] = SONET_RELATIONS_TYPE_ALL;
if ($GLOBALS["USER"]->IsAuthorized()) {
$arCurrentUserGroups[] = SONET_RELATIONS_TYPE_AUTHORIZED;
}
if (CSocNetUserRelations::IsFriends($USER->GetID(), $ownerId)) {
$arCurrentUserGroups[] = SONET_RELATIONS_TYPE_FRIENDS;
}
}
$arCache[$taskType . "_" . $ownerId] = $arCurrentUserGroups;
}
$arCurrentUserGroups = $arCache[$taskType . "_" . $ownerId];
if ($USER->GetID() == $arResult["CREATED_BY"]) {
$arCurrentUserGroups[] = "author";
}
if ($USER->GetID() == $arResult["PROPERTY_TaskAssignedTo"]) {
$arCurrentUserGroups[] = "responsible";
}
if (is_array($arResult["PROPERTY_TaskTrackers"]) && in_array($USER->GetID(), $arResult["PROPERTY_TaskTrackers"])) {
$arCurrentUserGroups[] = "trackers";
}
$arResult["DocumentState"] = array();
$arDocumentStates = CBPDocument::GetDocumentStates(array("intranet", "CIntranetTasksDocument", "x" . $iblockId), array("intranet", "CIntranetTasksDocument", $arResult["ID"]));
$kk = array_keys($arDocumentStates);
foreach ($kk as $k) {
$arResult["DocumentState"] = $arDocumentStates[$k];
$arResult["DocumentState"]["AllowableEvents"] = CBPDocument::GetAllowableEvents($GLOBALS["USER"]->GetID(), $arCurrentUserGroups, $arDocumentStates[$k]);
}
$arResult["TaskType"] = $taskType;
$arResult["OwnerId"] = $ownerId;
$arResult["CurrentUserCanViewTask"] = CIntranetTasksDocument::CanUserOperateDocument(INTASK_DOCUMENT_OPERATION_READ_DOCUMENT, $GLOBALS["USER"]->GetID(), $arResult["ID"], array("TaskType" => $taskType, "OwnerId" => $ownerId, "AllUserGroups" => $arCurrentUserGroups, "DocumentStates" => $arDocumentStates));
$arResult["CurrentUserCanCommentTask"] = CIntranetTasksDocument::CanUserOperateDocument(INTASK_DOCUMENT_OPERATION_COMMENT_DOCUMENT, $GLOBALS["USER"]->GetID(), $arResult["ID"], array("TaskType" => $taskType, "OwnerId" => $ownerId, "AllUserGroups" => $arCurrentUserGroups, "DocumentStates" => $arDocumentStates));
$arResult["CurrentUserCanDeleteTask"] = CIntranetTasksDocument::CanUserOperateDocument(INTASK_DOCUMENT_OPERATION_DELETE_DOCUMENT, $GLOBALS["USER"]->GetID(), $arResult["ID"], array("TaskType" => $taskType, "OwnerId" => $ownerId, "AllUserGroups" => $arCurrentUserGroups, "DocumentStates" => $arDocumentStates));
$arResult["CurrentUserCanWriteTask"] = CIntranetTasksDocument::CanUserOperateDocument(INTASK_DOCUMENT_OPERATION_WRITE_DOCUMENT, $GLOBALS["USER"]->GetID(), $arResult["ID"], array("TaskType" => $taskType, "OwnerId" => $ownerId, "AllUserGroups" => $arCurrentUserGroups, "DocumentStates" => $arDocumentStates));
$arResultList[] = $arResult;
}
$dbTasksList = new CDBResult();
$dbTasksList->InitFromArray($arResultList);
return $dbTasksList;
}
示例7: strlen
echo strlen($arDocumentState["STATE_TITLE"]) > 0 ? $arDocumentState["STATE_TITLE"] : $arDocumentState["STATE_NAME"];
?>
</span>
</div>
<?php
}
?>
<?php
if (strlen($arDocumentState["ID"]) <= 0) {
?>
<table class="wd-bp-table-params"><?php
CBPDocument::StartWorkflowParametersShow($arDocumentState["TEMPLATE_ID"], $arDocumentState["TEMPLATE_PARAMETERS"], "iu_upload_form_" . $arParams["INDEX_ON_PAGE"], false);
?>
</table><?php
}
$arEvents = CBPDocument::GetAllowableEvents($GLOBALS["USER"]->GetID(), $arResult["CurrentUserGroups"], $arDocumentState);
if (count($arEvents) > 0) {
?>
<div class="bizproc-workflow-template-param bizproc-field bizproc-field-events">
<label for="" class="bizproc-field-name">
<span class="bizproc-field-title"><?php
echo GetMessage("IBEL_BIZPROC_RUN_CMD");
?>
</span>
</label>
<span class="bizproc-field-value bizproc-field-value-select">
<input type="hidden" name="bizproc_id_<?php
echo $bizProcIndex;
?>
" value="<?php
echo $arDocumentState["ID"];
示例8: array
$TEMPLATE_ID = 0;
$dbWorkflowTemplate = CBPWorkflowTemplateLoader::GetList(array(), array("DOCUMENT_TYPE" => array("iblock", "CIBlockDocument", "iblock_" . $IBLOCK_ID), "SYSTEM_CODE" => "status.php", "ACTIVE" => "Y"), false, false, array("ID"));
if ($arWorkflowTemplate = $dbWorkflowTemplate->Fetch()) {
$TEMPLATE_ID = $arWorkflowTemplate["ID"];
}
$arElement = array("IBLOCK_ID" => $IBLOCK_ID, "NAME" => GetMessage("DEMO_IBLOCK_CONTENT_ARTICLES_NAME"), "PREVIEW_TEXT" => GetMessage("DEMO_IBLOCK_CONTENT_ARTICLES_PREVIEW_TEXT"), "WF_STATUS_ID" => 2, "WF_NEW" => "Y", "PROPERTY_VALUES" => array("KEYWORDS" => GetMessage("DEMO_IBLOCK_CONTENT_ARTICLES_KEYWORDS"), "THEMES" => 4));
$obElement = new CIBlockElement();
$element_id = $obElement->Add($arElement);
if ($element_id && $TEMPLATE_ID > 0) {
$arErrorsTmp = array();
$bpId = CBPDocument::StartWorkflow($TEMPLATE_ID, array("iblock", "CIBlockDocument", $element_id), array("Creators" => array("author"), "Approvers" => array(1)), $arErrorsTmp);
if (count($arErrorsTmp) <= 0) {
$arDocumentStates = CBPDocument::GetDocumentStates(array("iblock", "CIBlockDocument", "iblock_" . $IBLOCK_ID), array("iblock", "CIBlockDocument", $element_id));
$arCurrentUserGroups = $GLOBALS["USER"]->GetUserGroupArray();
$arCurrentUserGroups[] = "Author";
$arEvents = CBPDocument::GetAllowableEvents($GLOBALS["USER"]->GetID(), $arCurrentUserGroups, array_pop($arDocumentStates));
CBPDocument::SendExternalEvent($bpId, $arEvents[0]["NAME"], array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp);
}
}
}
//Include language one more time (after forum creation)
__IncludeLang(GetLangFileName(dirname(__FILE__) . "/lang/", "/" . basename(__FILE__)));
//Create directory and copy files
$search = array("#IBLOCK.ID(XML_ID=content-articles)#", "#IBLOCK.ID(XML_ID=content-news)#", "#MODULE.INSTALLED(ID=forum)#", "#FORUM.ID(NAME=content-articles)#");
$replace = array($IBLOCK_ID, CIBlockCMLImport::GetIBlockByXML_ID("content-news"), IsModuleInstalled("forum") ? "Y" : "N", $arForum["ID"]);
DEMO_IBlock_CopyFiles("/public/content/articles/", "/content/articles/", false, $search, $replace);
CopyDirFiles(dirname(__FILE__) . "/public/language/" . LANGUAGE_ID . "/content/articles/", $_SERVER["DOCUMENT_ROOT"] . "/content/articles", false, true);
//Add menu item
DEMO_IBlock_AddMenuItem("/content/.left.menu.php", array(GetMessage("DEMO_IBLOCK_CONTENT_ARTICLES_MENU"), "/content/articles/", array(), array(), ""));
CUrlRewriter::Add(array("CONDITION" => "#^/content/articles/#", "RULE" => "", "ID" => "bitrix:news", "PATH" => "/content/articles/index.php"));
}
示例9: htmlspecialcharsbx
$arResult["Task"][$fieldKey] = htmlspecialcharsbx($arFields[$fieldKey]);
$arResult["Task"][$fieldKey . "_PRINTABLE"] = htmlspecialcharsbx($arFields[$fieldKey]);
}
}
}
}
}
}
if (strlen($arResult["FatalError"]) <= 0) {
if (!$arDocumentStates) {
$arDocumentStates = CBPDocument::GetDocumentStates(array("intranet", "CIntranetTasksDocument", "x" . $iblockId), $arParams["TASK_ID"] > 0 ? array("intranet", "CIntranetTasksDocument", $arParams["TASK_ID"]) : null);
}
$kk = array_keys($arDocumentStates);
foreach ($kk as $k) {
$arResult["DocumentState"] = $arDocumentStates[$k];
$arResult["DocumentState"]["AllowableEvents"] = CBPDocument::GetAllowableEvents($GLOBALS["USER"]->GetID(), $arCurrentUserGroups, $arDocumentStates[$k]);
if ($arParams["ACTION"] == "create") {
$kk1 = array_keys($arResult["DocumentState"]["AllowableEvents"]);
foreach ($kk1 as $k1) {
if ($arResult["DocumentState"]["AllowableEvents"][$k1]["NAME"] == "HEEA_NotAccepted_SetResponsibleEvent") {
unset($arResult["DocumentState"]["AllowableEvents"][$k1]);
}
}
}
}
}
if (strlen($arResult["FatalError"]) <= 0) {
$arResult["TaskFieldsOrder"] = array();
foreach ($arResult["TaskFields"] as $key => $value) {
$arResult["TaskFieldsOrder"][] = array(0 => $key, 1 => $value["PSORT"]);
}