Beispiel #1
0
            return 1;
        }
        $res1 = MakeTimeStamp($arr1["STATE_MODIFIED"]);
        $res2 = MakeTimeStamp($arr2["STATE_MODIFIED"]);
        return $res1 < $res2 ? 1 : -1;
    }
}
if (!empty($arResult["ERROR_MESSAGE"])) {
    ShowError($arResult["ERROR_MESSAGE"]);
}
CBPDocument::AddShowParameterInit($arParams["MODULE_ID"], "only_users", $arParams["DOCUMENT_TYPE"]);
$bizProcIndex = 0;
$bEmpty = true;
$bShowButtons = false;
$arDocumentStates = CBPDocument::GetDocumentStates($arParams["DOCUMENT_TYPE"], $arParams["DOCUMENT_ID"]);
$arGroups = CBPDocument::GetAllowableUserGroups($arParams["DOCUMENT_TYPE"]);
$arUsers = array();
uasort($arDocumentStates, "__bp_sort_in_template_by_modified");
?>
<div class="bizproc-page-document">

<form action="<?php 
echo POST_FORM_ACTION_URI;
?>
" method="POST" class="bizproc-form" name="start_workflow_form1" id="start_workflow_form1">
	<?php 
echo bitrix_sessid_post();
?>
	<input type="hidden" name="back_url" value="<?php 
echo htmlspecialcharsbx($arParams["back_url"]);
?>
Beispiel #2
0
         $arResult["FatalErrorMessage"] .= GetMessage("BPABL_INVALID_WF") . ". ";
     }
 }
 if (strlen($arResult["FatalErrorMessage"]) <= 0) {
     $documentId = $arWorkflowState["DOCUMENT_ID"];
     $bCanView = CBPDocument::CanUserOperateDocument(CBPCanUserOperateOperation::ViewWorkflow, $GLOBALS["USER"]->GetID(), $documentId, array("WorkflowId" => $arParams["ID"]));
     if (!$bCanView) {
         $arResult["FatalErrorMessage"] .= GetMessage("BPABL_NO_PERMS") . ". ";
     }
 }
 if (strlen($arResult["FatalErrorMessage"]) <= 0) {
     $runtime = CBPRuntime::GetRuntime();
     $runtime->StartRuntime();
     $documentService = $runtime->GetService("DocumentService");
     $documentType = $documentService->GetDocumentType($documentId);
     $GLOBALS["__bwl1_ParseStringParameterTmp_arAllowableUserGroups"] = CBPDocument::GetAllowableUserGroups($documentType);
     function __bwl1_ParseStringParameterTmp($matches)
     {
         $result = "";
         if ($matches[1] == "user") {
             $user = $matches[2];
             $l = strlen("user_");
             if (substr($user, 0, $l) == "user_") {
                 $result = htmlspecialcharsbx(CBPHelper::ConvertUserToPrintableForm(intval(substr($user, $l))));
             } else {
                 $result = $GLOBALS["__bwl1_ParseStringParameterTmp_arAllowableUserGroups"][$user];
             }
         } elseif ($matches[1] == "group") {
             $result = $GLOBALS["__bwl1_ParseStringParameterTmp_arAllowableUserGroups"][$matches[2]];
         } else {
             $result = $matches[0];
Beispiel #3
0
 public static function UsersStringToArray($strUsers, $documentType, &$arErrors, $callbackFunction = null)
 {
     $arErrors = array();
     $strUsers = trim($strUsers);
     if (strlen($strUsers) <= 0) {
         return $callbackFunction != null ? array(array(), array()) : array();
     }
     $arUsers = array();
     $strUsers = str_replace(";", ",", $strUsers);
     $arUsersTmp = explode(",", $strUsers);
     foreach ($arUsersTmp as $user) {
         $user = trim($user);
         if (strlen($user) > 0) {
             $arUsers[] = $user;
         }
     }
     $arAllowableUserGroups = null;
     $arResult = array();
     $arResultAlt = array();
     foreach ($arUsers as $user) {
         $bCorrectUser = false;
         $bNotFoundUser = true;
         if (preg_match("/\\{=([a-zA-Z0-9_]+):([a-zA-Z0-9_]+)\\}/i", $user, $arMatches)) {
             $bCorrectUser = true;
             $arResult[] = "{=" . $arMatches[1] . ":" . $arMatches[2] . "}";
             //if (count($arUsers) == 1)
             //{
             //$arResult = $arResult[0];
             //break;
             //}
         } else {
             if ($arAllowableUserGroups == null) {
                 $arAllowableUserGroups = array();
                 $arAllowableUserGroupsTmp = CBPDocument::GetAllowableUserGroups($documentType);
                 foreach ($arAllowableUserGroupsTmp as $k1 => $v1) {
                     $arAllowableUserGroups[strtolower($k1)] = strtolower($v1);
                 }
             }
             if (array_key_exists(strtolower($user), $arAllowableUserGroups)) {
                 $bCorrectUser = true;
                 $arResult[] = $user;
             } elseif (($k1 = array_search(strtolower($user), $arAllowableUserGroups)) !== false) {
                 $bCorrectUser = true;
                 $arResult[] = $k1;
             } else {
                 $ar = self::SearchUserByName($user);
                 $cnt = count($ar);
                 if ($cnt == 1) {
                     $bCorrectUser = true;
                     $arResult[] = "user_" . $ar[0];
                 } elseif ($cnt > 1) {
                     $bNotFoundUser = false;
                     $arErrors[] = array("code" => "Ambiguous", "message" => str_replace("#USER#", htmlspecialcharsbx($user), GetMessage("BPCGHLP_AMBIGUOUS_USER")));
                 } elseif ($callbackFunction != null) {
                     $s = call_user_func_array($callbackFunction, array($user));
                     if ($s != null) {
                         $arResultAlt[] = $s;
                         $bCorrectUser = true;
                     }
                 }
             }
         }
         if (!$bCorrectUser) {
             if ($bNotFoundUser) {
                 $arErrors[] = array("code" => "NotFound", "message" => str_replace("#USER#", htmlspecialcharsbx($user), GetMessage("BPCGHLP_INVALID_USER")));
             }
         }
     }
     return $callbackFunction != null ? array($arResult, $arResultAlt) : $arResult;
 }
Beispiel #4
0
 public static function parseStringParameterMatches($matches, $documentType = null)
 {
     $result = "";
     $documentType = is_array($documentType) ? array_filter($documentType) : null;
     if ($matches[1] == "user") {
         $user = $matches[2];
         $l = strlen("user_");
         if (substr($user, 0, $l) == "user_") {
             $result = CBPHelper::ConvertUserToPrintableForm(intval(substr($user, $l)));
         } elseif (strpos($user, 'group_') === 0) {
             $result = htmlspecialcharsbx(CBPHelper::getExtendedGroupName($user));
         } elseif ($documentType) {
             $v = implode(",", $documentType);
             if (!array_key_exists($v, self::$userGroupsCache)) {
                 self::$userGroupsCache[$v] = CBPDocument::GetAllowableUserGroups($documentType);
             }
             $result = self::$userGroupsCache[$v][$user];
         } else {
             $result = $user;
         }
     } elseif ($matches[1] == "group") {
         if (strpos($matches[2], 'group_') === 0) {
             $result = htmlspecialcharsbx(CBPHelper::getExtendedGroupName($matches[2]));
         } elseif ($documentType) {
             $v = implode(",", $documentType);
             if (!array_key_exists($v, self::$userGroupsCache)) {
                 self::$userGroupsCache[$v] = CBPDocument::GetAllowableUserGroups($documentType);
             }
             $result = self::$userGroupsCache[$v][$matches[2]];
         } else {
             $result = $matches[2];
         }
     } else {
         $result = $matches[0];
     }
     return $result;
 }
Beispiel #5
0
 function __bwl_ParseStringParameterTmp1($matches, $documentType)
 {
     static $varCache = array();
     $result = "";
     if ($matches[1] == "user") {
         $user = $matches[2];
         $l = strlen("user_");
         if (substr($user, 0, $l) == "user_") {
             $result = htmlspecialcharsbx(CBPHelper::ConvertUserToPrintableForm(intval(substr($user, $l))));
         } else {
             $v = implode(",", $documentType);
             if (!array_key_exists($v, $varCache)) {
                 $varCache[$v] = CBPDocument::GetAllowableUserGroups($documentType);
             }
             $result = $varCache[$v][$user];
         }
     } elseif ($matches[1] == "group") {
         $v = implode(",", $documentType);
         if (!array_key_exists($v, $varCache)) {
             $varCache[$v] = CBPDocument::GetAllowableUserGroups($documentType);
         }
         $result = $varCache[$v][$matches[2]];
     } else {
         $result = $matches[0];
     }
     return $result;
 }
Beispiel #6
0
         continue;
     }
     if (in_array($value["BaseType"], array("user"))) {
         continue;
     }
     $arFieldsTmp[] = array("id" => $key, "name" => $value["Name"], "type" => "label");
 }
 $arTabs[] = array("id" => "tab2", "name" => GetMessage("BPWC_WNCT_TAB2"), "title" => GetMessage("BPWC_WNCT_TAB2"), "icon" => "", "fields" => $arFieldsTmp);
 $arResultGrid["GRID_ID"] = "form_bp_grid_" . implode("_", $arResult["DocumentType"]);
 $gridOptions = new CGridOptions($arResultGrid["GRID_ID"]);
 $arSort = $gridOptions->GetSorting(array("sort" => array("id" => "desc"), "vars" => array("by" => "by", "order" => "order")));
 $arNav = $gridOptions->GetNavParams(array("nPageSize" => 20));
 $arSortArg = each($arSort["sort"]);
 $dbTrack = CBPTrackingService::GetList($arSort["sort"], array("WORKFLOW_ID" => $arResult["BP"]["DOCUMENT_STATE"]["ID"], "TYPE" => array(CBPTrackingType::Custom, CBPTrackingType::FaultActivity, CBPTrackingType::Report)));
 $dbTrack->NavStart($arNav["nPageSize"]);
 $GLOBALS["__bwl_ParseStringParameterTmp1_arAllowableUserGroups"] = CBPDocument::GetAllowableUserGroups($arResult["DocumentType"]);
 function __bwl_ParseStringParameterTmp1($matches)
 {
     $result = "";
     if ($matches[1] == "user") {
         $user = $matches[2];
         $l = strlen("user_");
         if (substr($user, 0, $l) == "user_") {
             $result = htmlspecialcharsbx(CBPHelper::ConvertUserToPrintableForm(intval(substr($user, $l))));
         } else {
             $result = $GLOBALS["__bwl_ParseStringParameterTmp1_arAllowableUserGroups"][$user];
         }
     } elseif ($matches[1] == "group") {
         $result = $GLOBALS["__bwl_ParseStringParameterTmp1_arAllowableUserGroups"][$matches[2]];
     } else {
         $result = $matches[0];