本文整理匯總了PHP中CBPDocument::getUserTasksForWorkflow方法的典型用法代碼示例。如果您正苦於以下問題:PHP CBPDocument::getUserTasksForWorkflow方法的具體用法?PHP CBPDocument::getUserTasksForWorkflow怎麽用?PHP CBPDocument::getUserTasksForWorkflow使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類CBPDocument
的用法示例。
在下文中一共展示了CBPDocument::getUserTasksForWorkflow方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: getBizProcData
protected function getBizProcData(BaseObject $object, SecurityContext $securityContext, array $actions, array $columnsBizProc, array $bizprocIcon, array $exportData)
{
$documentData = array('DISK' => array('DOCUMENT_TYPE' => \Bitrix\Disk\BizProcDocument::generateDocumentComplexType($this->storage->getId()), 'DOCUMENT_ID' => \Bitrix\Disk\BizProcDocument::getDocumentComplexId($object->getId())), 'WEBDAV' => array('DOCUMENT_TYPE' => \Bitrix\Disk\BizProcDocumentCompatible::generateDocumentComplexType($this->storage->getId()), 'DOCUMENT_ID' => \Bitrix\Disk\BizProcDocumentCompatible::getDocumentComplexId($object->getId())));
$listBpTemplates = array();
foreach ($this->arParams['TEMPLATE_BIZPROC'] as $idTemplate => $valueTemplate) {
$url = CComponentEngine::MakePathFromTemplate($valueTemplate['URL'], array("ELEMENT_ID" => $object->getId()));
$listBpTemplates[] = array("ICONCLASS" => "", "TEXT" => $valueTemplate['NAME'], "ONCLICK" => "jsUtils.Redirect([], '" . CUtil::JSEscape($url) . "');");
}
if ($object->canStartBizProc($securityContext) && !empty($listBpTemplates)) {
$actions[] = array("ICONCLASS" => "bizproc_start", "TEXT" => Loc::getMessage("DISK_FOLDER_LIST_ACT_START_BIZPROC"), "MENU" => $listBpTemplates);
}
$webdavFileId = $object->getXmlId();
if (!empty($webdavFileId)) {
if (Loader::includeModule("iblock")) {
if ($this->storage->getProxyType() instanceof ProxyType\Group) {
$iblock = CIBlockElement::getList(array(), array("ID" => $webdavFileId, 'SHOW_NEW' => 'Y'), false, false, array('ID', 'IBLOCK_ID'))->fetch();
$entity = 'CIBlockDocumentWebdavSocnet';
} else {
$iblock = CIBlockElement::getList(array(), array("ID" => $webdavFileId, 'SHOW_NEW' => 'Y'), false, false, array('ID', 'IBLOCK_ID'))->fetch();
$entity = 'CIBlockDocumentWebdav';
}
if (!empty($iblock)) {
$documentData['OLD_FILE'] = array('DOCUMENT_TYPE' => array('webdav', $entity, "iblock_" . $iblock['IBLOCK_ID']), 'DOCUMENT_ID' => array('webdav', $entity, $iblock['ID']));
}
}
}
foreach ($documentData as $nameModuleId => $data) {
$temporary[$nameModuleId] = CBPDocument::getDocumentStates($data['DOCUMENT_TYPE'], $data['DOCUMENT_ID']);
}
if (isset($temporary['OLD_FILE'])) {
$documentStates = array_merge($temporary['DISK'], $temporary['WEBDAV'], $temporary['OLD_FILE']);
} else {
$documentStates = array_merge($temporary['DISK'], $temporary['WEBDAV']);
}
foreach ($documentStates as $key => $documentState) {
if (empty($documentState['ID'])) {
unset($documentStates[$key]);
}
}
$columnsBizProc['BIZPROC'] = "";
$bizprocIcon['BIZPROC'] = "";
if (!empty($documentStates)) {
if (count($documentStates) == 1) {
$documentState = reset($documentStates);
if ($documentState['WORKFLOW_STATUS'] > 0 || empty($documentState['WORKFLOW_STATUS'])) {
$tasksWorkflow = CBPDocument::getUserTasksForWorkflow($this->getUser()->GetID(), $documentState["ID"]);
$columnsBizProc["BIZPROC"] = '<div class="bizproc-item-title">' . htmlspecialcharsbx($documentState["TEMPLATE_NAME"]) . ': ' . '<span class="bizproc-item-title bizproc-state-title" style="">' . '<a href="' . $exportData["OPEN_URL"] . '#tab-bp">' . (strlen($documentState["STATE_TITLE"]) > 0 ? htmlspecialcharsbx($documentState["STATE_TITLE"]) : htmlspecialcharsbx($documentState["STATE_NAME"])) . '</a>' . '</span>' . '</div>';
$columnsBizProc['BIZPROC'] = str_replace("'", "\"", $columnsBizProc['BIZPROC']);
$bizprocIcon["BIZPROC"] = "<div class=\"element-bizproc-status bizproc-statuses " . (!(strlen($documentState["ID"]) <= 0 || strlen($documentState["WORKFLOW_STATUS"]) <= 0) ? 'bizproc-status-' . (empty($tasksWorkflow) ? "inprogress" : "attention") : '') . "\" onmouseover='BX.hint(this, \"" . addslashes($columnsBizProc["BIZPROC"]) . "\")'></div>";
if (!empty($tasksWorkflow)) {
$tmp = array();
foreach ($tasksWorkflow as $val) {
$url = CComponentEngine::makePathFromTemplate($this->arParams["PATH_TO_DISK_TASK"], array("ID" => $val["ID"]));
$url .= "?back_url=" . urlencode($this->getApplication()->getCurPageParam());
$tmp[] = '<a href="' . $url . '">' . $val["NAME"] . '</a>';
}
$columnsBizProc["BIZPROC"] .= '<div class="bizproc-tasks">' . implode(", ", $tmp) . '</div>';
return array($actions, $columnsBizProc, $bizprocIcon);
}
return array($actions, $columnsBizProc, $bizprocIcon);
}
return array($actions, $columnsBizProc, $bizprocIcon);
} else {
$tasks = array();
$inprogress = false;
foreach ($documentStates as $key => $documentState) {
if ($documentState['WORKFLOW_STATUS'] > 0 || empty($documentState['WORKFLOW_STATUS'])) {
$tasksWorkflow = CBPDocument::getUserTasksForWorkflow($this->getUser()->GetID(), $documentState["ID"]);
if (!$inprogress) {
$inprogress = strlen($documentState['ID']) > 0 && strlen($documentState['WORKFLOW_STATUS']) > 0;
}
if (!empty($tasksWorkflow)) {
foreach ($tasksWorkflow as $val) {
$tasks[] = $val;
}
}
}
}
$columnsBizProc["BIZPROC"] = '<span class="bizproc-item-title">' . Loc::getMessage("DISK_FOLDER_LIST_GRID_BIZPROC") . ': <a href="' . $exportData["OPEN_URL"] . '#tab-bp" title="' . Loc::getMessage("DISK_FOLDER_LIST_GRID_BIZPROC_TITLE") . '">' . count($documentStates) . '</a></span>' . (!empty($tasks) ? '<br /><span class="bizproc-item-title">' . Loc::getMessage("DISK_FOLDER_LIST_GRID_BIZPROC_TASKS") . ': <a href="' . $this->arParams["PATH_TO_DISK_TASK_LIST"] . '" title="' . Loc::getMessage("DISK_FOLDER_LIST_GRID_BIZPROC_TASKS_TITLE") . '">' . count($tasks) . '</a></span>' : '');
$bizprocIcon["BIZPROC"] = "<div class=\"element-bizproc-status bizproc-statuses " . ($inprogress ? ' bizproc-status-' . (empty($tasks) ? "inprogress" : "attention") : '') . "\" onmouseover='BX.hint(this, \"" . addslashes($columnsBizProc['BIZPROC']) . "\")'></div>";
return array($actions, $columnsBizProc, $bizprocIcon);
}
}
return array($actions, $columnsBizProc, $bizprocIcon);
}
示例2: array
$actionsProcess = array();
$canViewWorkflow = CBPDocument::CanUserOperateDocument(CBPCanUserOperateOperation::ViewWorkflow, $GLOBALS["USER"]->GetID(), BizProcDocument::getDocumentComplexId($arIBlock["IBLOCK_TYPE_ID"], $data["ID"]), array("AllUserGroups" => $currentUserGroups, "DocumentStates" => $documentStates, "WorkflowId" => $documentState["ID"]));
if ($canViewWorkflow) {
/* Stop workflow */
if (strlen($documentState["ID"]) && CIBlockElementRights::UserHasRightTo($arIBlock["ID"], $data["ID"], "element_rights_edit") && strlen($documentState["WORKFLOW_STATUS"])) {
$actionsProcess[] = array("TEXT" => GetMessage("CT_BLL_BIZPROC_STOP"), "ONCLICK" => "javascript:BX['ListClass_" . $arResult["RAND_STRING"] . "']\n\t\t\t\t\t\t\t\t.performActionBp('" . $documentState['ID'] . "', " . $data["ID"] . ", 'stop');");
}
/* Removal workflow */
if (strlen($documentState["STATE_NAME"]) && strlen($documentState["ID"])) {
if (CBPDocument::CanUserOperateDocumentType(CBPCanUserOperateOperation::CreateWorkflow, $GLOBALS["USER"]->GetID(), BizProcDocument::getDocumentComplexId($arIBlock["IBLOCK_TYPE_ID"], $data["ID"]), array("UserGroups" => $currentUserGroups))) {
$actionsProcess[] = array("TEXT" => GetMessage("CT_BLL_BIZPROC_DELETE"), "ONCLICK" => "javascript:BX['ListClass_" . $arResult["RAND_STRING"] . "']\n\t\t\t\t\t\t\t\t.performActionBp('" . $documentState['ID'] . "', " . $data["ID"] . ", 'delete');");
}
}
/* Tasks workflow */
if (strlen($documentState["ID"])) {
$tasks = CBPDocument::getUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $documentState["ID"]);
if (!empty($tasks)) {
foreach ($tasks as $task) {
$url = CHTTP::urlAddParams(str_replace(array("#list_id#", "#section_id#", "#element_id#", "#task_id#", "#group_id#"), array($arIBlock["ID"], intval($arResult["SECTION_ID"]), $data["ID"], $task["ID"], $arParams["SOCNET_GROUP_ID"]), $arParams["~BIZPROC_TASK_URL"]), array("back_url" => $backUrl), array("skip_empty" => true, "encode" => true));
$actionsProcess[] = array("TEXT" => $task["NAME"], "ONCLICK" => "jsUtils.Redirect(arguments, '" . CUtil::JSEscape($url) . "')");
}
}
}
if (!empty($actionsProcess)) {
$listProcesses[] = array("TEXT" => $documentState["TEMPLATE_NAME"] . " (" . $documentState["STARTED"] . ")", "MENU" => $actionsProcess);
} else {
$listProcesses[] = array("TEXT" => $documentState["TEMPLATE_NAME"] . " (" . $documentState["STARTED"] . ")");
}
}
}
if (!empty($listProcesses)) {
示例3: showBizProc
//.........這裏部分代碼省略.........
$status = Loc::getMessage("DISK_FILE_VIEW_BPABL_STATUS_3");
break;
case CBPActivityExecutionStatus::Closed:
$status = Loc::getMessage("DISK_FILE_VIEW_BPABL_STATUS_4");
break;
case CBPActivityExecutionStatus::Faulting:
$status = Loc::getMessage("DISK_FILE_VIEW_BPABL_STATUS_5");
break;
default:
$status = Loc::getMessage("DISK_FILE_VIEW_BPABL_STATUS_6");
}
switch ($track["EXECUTION_RESULT"]) {
case CBPActivityExecutionResult::None:
$result = Loc::getMessage("DISK_FILE_VIEW_BPABL_RES_1");
break;
case CBPActivityExecutionResult::Succeeded:
$result = Loc::getMessage("DISK_FILE_VIEW_BPABL_RES_2");
break;
case CBPActivityExecutionResult::Canceled:
$result = Loc::getMessage("DISK_FILE_VIEW_BPABL_RES_3");
break;
case CBPActivityExecutionResult::Faulted:
$result = Loc::getMessage("DISK_FILE_VIEW_BPABL_RES_4");
break;
case CBPActivityExecutionResult::Uninitialized:
$result = Loc::getMessage("DISK_FILE_VIEW_BPABL_RES_5");
break;
default:
$result = Loc::getMessage("DISK_FILE_VIEW_BPABL_RES_6");
}
$note = strlen($track["ACTION_NOTE"]) > 0 ? ": " . $track["ACTION_NOTE"] : "";
$pattern = array("#ACTIVITY#", "#STATUS#", "#RESULT#", "#NOTE#");
$replaceArray = array($name, $status, $result, $note);
if (!empty($track["ACTION_NAME"]) && !empty($track["ACTION_TITLE"])) {
$pattern[] = $track["ACTION_NAME"];
$replaceArray[] = $track["ACTION_TITLE"];
}
$messageTemplate = str_replace($pattern, $replaceArray, $messageTemplate);
if (preg_match_all("/(?<=\\{\\=user\\:)([^\\}]+)(?=\\})/is", $messageTemplate, $arMatches)) {
$pattern = array();
$replacement = array();
foreach ($arMatches[0] as $user) {
$user = preg_quote($user);
if (in_array("/\\{\\=user\\:" . $user . "\\}/is", $pattern)) {
continue;
}
$replace = "";
if (array_key_exists(strtolower($user), $groups)) {
$replace = $groups[strtolower($user)];
} elseif (array_key_exists(strtoupper($user), $groups)) {
$replace = $groups[strtoupper($user)];
} else {
$id = intVal(str_replace("user_", "", $user));
if (!array_key_exists($id, $users)) {
$dbRes = \CUser::getByID($id);
$users[$id] = false;
if ($dbRes && ($arUser = $dbRes->getNext())) {
$name = \CUser::formatName($this->arParams["NAME_TEMPLATE"], $arUser);
$arUser["FULL_NAME"] = empty($name) ? $arUser["LOGIN"] : $name;
$users[$id] = $arUser;
}
}
if (!empty($users[$id])) {
$replace = "<a href=\"" . \CComponentEngine::makePathFromTemplate('/company/personal/user/#USER_ID#/', array("USER_ID" => $id)) . "\">" . $users[$id]["FULL_NAME"] . "</a>";
}
}
if (!empty($replace)) {
$pattern[] = "/\\{\\=user\\:" . $user . "\\}/is";
$pattern[] = "/\\{\\=user\\:user\\_" . $user . "\\}/is";
$replacement[] = $replace;
$replacement[] = $replace;
}
}
$messageTemplate = preg_replace($pattern, $replacement, $messageTemplate);
}
$this->arResult['BIZPROC_LIST'][$count]['DUMP_WORKFLOW'][] = $messageTemplate;
}
$tasks = CBPDocument::getUserTasksForWorkflow($this->getUser()->getId(), $idBizProc);
$events = CBPDocument::getAllowableEvents($this->getUser()->getId(), $userGroup, $bizProcArray);
if (!empty($tasks)) {
foreach ($tasks as $task) {
$urlTaskBizproc = \CComponentEngine::makePathFromTemplate($this->arParams['PATH_TO_DISK_TASK'], array("ID" => $task['ID']));
$urlTaskBizproc .= "?back_url=" . urlencode($this->getApplication()->getCurPage()) . "&file=" . $this->file->getName();
$this->arResult['BIZPROC_LIST'][$count]['TASK']['URL'] = $urlTaskBizproc;
$this->arResult['BIZPROC_LIST'][$count]['TASK']['TASK_ID'] = $task['ID'];
$this->arResult['BIZPROC_LIST'][$count]['TASK']['TASK_NAME'] = $task['NAME'];
}
}
$this->arResult['BIZPROC_LIST'][$count]['ID'] = $bizProcArray['ID'];
$this->arResult['BIZPROC_LIST'][$count]['WORKFLOW_STATUS'] = $bizProcArray["WORKFLOW_STATUS"];
$this->arResult['BIZPROC_LIST'][$count]['TEMPLATE_ID'] = $bizProcArray['TEMPLATE_ID'];
$this->arResult['BIZPROC_LIST'][$count]['TEMPLATE_NAME'] = $bizProcArray['TEMPLATE_NAME'];
$this->arResult['BIZPROC_LIST'][$count]['STATE_MODIFIED'] = $bizProcArray['STATE_MODIFIED'];
$this->arResult['BIZPROC_LIST'][$count]['STATE_TITLE'] = $bizProcArray['STATE_TITLE'];
$this->arResult['BIZPROC_LIST'][$count]['STATE_NAME'] = $bizProcArray['STATE_NAME'];
$this->arResult['BIZPROC_LIST'][$count]['EVENTS'] = $events;
$count++;
}
}
}