%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/components/bitrix/bizproc.wizards.list/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/components/bitrix/bizproc.wizards.list/component.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); if (!CModule::IncludeModule("bizproc") || !CModule::IncludeModule("iblock")) return false; if (!$GLOBALS["USER"]->IsAuthorized()) { $GLOBALS["APPLICATION"]->AuthForm(""); die(); } $arParams["SET_TITLE"] = ($arParams["SET_TITLE"] == "N" ? "N" : "Y"); $arParams["SET_NAV_CHAIN"] = ($arParams["SET_NAV_CHAIN"] == "N" ? "N" : "Y"); $arParams["ITEMS_COUNT"] = intval($arParams["ITEMS_COUNT"]); if ($arParams["ITEMS_COUNT"] <= 0) $arParams["ITEMS_COUNT"] = 20; if (strlen($arParams["PAGE_VAR"]) <= 0) $arParams["PAGE_VAR"] = "page"; if (strlen($arParams["TASK_VAR"]) <= 0) $arParams["TASK_VAR"] = "task_id"; if (strlen($arParams["BLOCK_VAR"]) <= 0) $arParams["BLOCK_VAR"] = "block_id"; if (strlen($arParams["BP_VAR"]) <= 0) $arParams["BP_VAR"] = "bp_id"; $arParams["PATH_TO_INDEX"] = trim($arParams["PATH_TO_INDEX"]); if (strlen($arParams["PATH_TO_INDEX"]) <= 0) $arParams["PATH_TO_INDEX"] = $APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=index"; $arParams["PATH_TO_START"] = trim($arParams["PATH_TO_START"]); if (strlen($arParams["PATH_TO_START"]) <= 0) $arParams["PATH_TO_START"] = $APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=start&".$arParams["BLOCK_VAR"]."=#block_id#"; $arParams["PATH_TO_START"] = $arParams["PATH_TO_START"].((strpos($arParams["PATH_TO_START"], "?") === false) ? "?" : "&").bitrix_sessid_get(); $arParams["PATH_TO_TASK"] = trim($arParams["PATH_TO_TASK"]); if (strlen($arParams["PATH_TO_TASK"]) <= 0) $arParams["PATH_TO_TASK"] = $APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=task&".$arParams["BLOCK_VAR"]."=#block_id#&".$arParams["TASK_VAR"]."=#task_id#"; $arParams["PATH_TO_TASK"] = $arParams["PATH_TO_TASK"].((strpos($arParams["PATH_TO_TASK"], "?") === false) ? "?" : "&").bitrix_sessid_get(); $arParams["PATH_TO_LOG"] = trim($arParams["PATH_TO_LOG"]); if (strlen($arParams["PATH_TO_LOG"]) <= 0) $arParams["PATH_TO_LOG"] = $APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=log&".$arParams["BLOCK_VAR"]."=#block_id#&".$arParams["BP_VAR"]."=#bp_id#"; $arParams["PATH_TO_VIEW"] = trim($arParams["PATH_TO_VIEW"]); if (strlen($arParams["PATH_TO_VIEW"]) <= 0) $arParams["PATH_TO_VIEW"] = $APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=view&".$arParams["BLOCK_VAR"]."=#block_id#&".$arParams["BP_VAR"]."=#bp_id#"; $arParams["PATH_TO_BP"] = trim($arParams["PATH_TO_BP"]); if (strlen($arParams["PATH_TO_BP"]) <= 0) $arParams["PATH_TO_BP"] = $APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=bp&".$arParams["BLOCK_VAR"]."=#block_id#"; $arParams["PATH_TO_BP"] = $arParams["PATH_TO_BP"].((strpos($arParams["PATH_TO_BP"], "?") === false) ? "?" : "&").bitrix_sessid_get(); $arParams["PATH_TO_SETVAR"] = trim($arParams["PATH_TO_SETVAR"]); if (strlen($arParams["PATH_TO_SETVAR"]) <= 0) $arParams["PATH_TO_SETVAR"] = $APPLICATION->GetCurPage()."?".$arParams["PAGE_VAR"]."=setvar&".$arParams["BLOCK_VAR"]."=#block_id#"; $arParams["PATH_TO_SETVAR"] = $arParams["PATH_TO_SETVAR"].((strpos($arParams["PATH_TO_SETVAR"], "?") === false) ? "?" : "&").bitrix_sessid_get(); $arResult["FatalErrorMessage"] = ""; $arResult["ErrorMessage"] = ""; $arParams["IBLOCK_TYPE"] = trim($arParams["IBLOCK_TYPE"]); if (strlen($arParams["IBLOCK_TYPE"]) <= 0) $arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_EMPTY_IBLOCK_TYPE").". "; $arParams["BLOCK_ID"] = intval($arParams["BLOCK_ID"]); if ($arParams["BLOCK_ID"] <= 0) $arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_EMPTY_IBLOCK").". "; $arResult["BackUrl"] = urlencode(empty($_REQUEST["back_url"]) ? $APPLICATION->GetCurPageParam() : $_REQUEST["back_url"]); $arResult["PATH_TO_INDEX"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_INDEX"], array()); $arResult["PATH_TO_START"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_START"], array("block_id" => $arParams["BLOCK_ID"])); $arResult["PATH_TO_BP"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BP"], array("block_id" => $arParams["BLOCK_ID"])); $arResult["PATH_TO_SETVAR"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_SETVAR"], array("block_id" => $arParams["BLOCK_ID"])); $documentType = array("bizproc", "CBPVirtualDocument", "type_".$arParams["BLOCK_ID"]); if (strlen($arResult["FatalErrorMessage"]) <= 0) { $arResult["BlockType"] = null; $ar = CIBlockType::GetByIDLang($arParams["IBLOCK_TYPE"], LANGUAGE_ID, true); if ($ar) $arResult["BlockType"] = $ar; else $arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_WRONG_IBLOCK_TYPE").". "; } if (strlen($arResult["FatalErrorMessage"]) <= 0) { $arResult["Block"] = null; $db = CIBlock::GetList(array(), array("ID" => $arParams["BLOCK_ID"], "TYPE" => $arParams["IBLOCK_TYPE"], "ACTIVE" => "Y")); if ($ar = $db->GetNext()) { $arResult["Block"] = $ar; $arResult["Block"]["FILTERABLE_FIELDS"] = array(); $arResult["Block"]["VISIBLE_FIELDS"] = array(); if (strlen($ar["~DESCRIPTION"]) > 0 && substr($ar["~DESCRIPTION"], 0, strlen("v2:")) == "v2:") { $v1 = @unserialize(substr($ar["~DESCRIPTION"], 3)); if (is_array($v1)) { $arResult["Block"]["DESCRIPTION"] = htmlspecialcharsbx($v1["DESCRIPTION"]); $arResult["Block"]["FILTERABLE_FIELDS"] = $v1["FILTERABLE_FIELDS"]; $arResult["Block"]["VISIBLE_FIELDS"] = $v1["VISIBLE_FIELDS"]; } } } else { $arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_WRONG_IBLOCK").". "; } } /* function print_rrr($var) { if(is_array($var)) { if($var == array_values($var)) { foreach($var as $key => $value) { $var[$key] = print_rrr($value); } return "Array(".implode(", ", $var).")"; } $res = "\nArray(\n"; $first = true; foreach($var as $key => $value) { if($first) $first = false; else $res .= ",\n"; $res .= "'".AddSlashes($key)."' => ".print_rrr($value); } $res .= "\n)"; return $res; } elseif(is_bool($var)) { if($var === true) return 'true'; else return 'false'; } else return "'".str_replace("'", "\'", $var)."'"; } $db = CBPWorkflowTemplateLoader::GetList(array(), array("DOCUMENT_TYPE" => $documentType)); if ($ar = $db->Fetch()) { $hFileTmp = fopen($_SERVER["DOCUMENT_ROOT"]."/+++++++2.+++", "a"); // DUMPING fwrite($hFileTmp, print_rrr($ar)); fclose($hFileTmp); } */ if (strlen($arResult["FatalErrorMessage"]) <= 0) { $workflowTemplateId = 0; $db = CBPWorkflowTemplateLoader::GetList(array(), array("DOCUMENT_TYPE" => $documentType), false, false, array("ID")); if ($ar = $db->Fetch()) $workflowTemplateId = intval($ar["ID"]); if ($workflowTemplateId <= 0) { $redirectPath = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BP"], array("block_id" => $arParams["BLOCK_ID"])); if ($_REQUEST["template_type"] == "statemachine") $redirectPath .= ((strpos($redirectPath, "?") !== false) ? "&" : "?")."init=statemachine"; LocalRedirect($redirectPath); } } if (strlen($arResult["FatalErrorMessage"]) <= 0) { $arWorkflowTemplate = CBPWorkflowTemplateLoader::GetTemplateState($workflowTemplateId); if (!is_array($arWorkflowTemplate["STATE_PERMISSIONS"]) || count($arWorkflowTemplate["STATE_PERMISSIONS"]) <= 0) $arWorkflowTemplate["STATE_PERMISSIONS"]["create"] = array("author"); $arResult["AllowableOperations"] = CBPDocument::GetAllowableOperations($GLOBALS["USER"]->GetID(), $GLOBALS["USER"]->GetUserGroupArray(), array($arWorkflowTemplate)); $arResult["AllowAdmin"] = ($GLOBALS["USER"]->IsAdmin() || (is_array($arParams["ADMIN_ACCESS"]) && count(array_intersect($arParams["ADMIN_ACCESS"], $GLOBALS["USER"]->GetUserGroupArray())) > 0)); $arResult["AllowCreate"] = ($arResult["AllowAdmin"] || (is_array($arResult["AllowableOperations"]) && in_array("create", $arResult["AllowableOperations"]) || is_array($arWorkflowTemplate["STATE_PERMISSIONS"]["create"]) && in_array("author", $arWorkflowTemplate["STATE_PERMISSIONS"]["create"]))); $arMessagesTmp = CIBlock::GetMessages($arResult["Block"]["ID"]); $arResult["CreateTitle"] = htmlspecialcharsbx(is_array($arMessagesTmp) && array_key_exists("ELEMENT_ADD", $arMessagesTmp) ? $arMessagesTmp["ELEMENT_ADD"] : ""); } if (strlen($arResult["FatalErrorMessage"]) <= 0) { if ($_SERVER["REQUEST_METHOD"] == "GET" && strlen($_REQUEST["process_state_event"]) > 0 && check_bitrix_sessid()) { $bizprocId = trim($_REQUEST["bizproc_id"]); $bizprocEvent = trim($_REQUEST["bizproc_event"]); if (strlen($bizprocEvent) > 0) { $arState = CBPStateService::GetWorkflowState($bizprocId); if (count($arState) > 0) { list($dbRecordsList, $dbRecordsList1) = CBPVirtualDocument::GetList( array(), array("IBLOCK_ID" => $arParams["BLOCK_ID"], "ID" => $arState["DOCUMENT_ID"][2]), false, false, array("ID", "IBLOCK_ID", "CREATED_BY") ); if ($arRecord = $dbRecordsList->Fetch()) { $arCurrentUserGroups = $GLOBALS["USER"]->GetUserGroupArray(); if ("user_".$GLOBALS["USER"]->GetID() == $arRecord["CREATED_BY"]) $arCurrentUserGroups[] = "author"; $arErrorTmp = array(); CBPDocument::SendExternalEvent( $bizprocId, $bizprocEvent, array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp ); if (count($arErrorsTmp) > 0) { foreach ($arErrorsTmp as $e) $arResult["ErrorMessage"] .= $e["message"].". "; } } else { $arResult["ErrorMessage"] .= GetMessage("BPWC_WLC_MISSING_DOCUMENT").". "; } } else { $arResult["ErrorMessage"] .= GetMessage("BPWC_WLC_MISSING_BP").". "; } if (strlen($arResult["ErrorMessage"]) <= 0) LocalRedirect($APPLICATION->GetCurPageParam("", array("sessid", "stop_bizproc_id", "process_state_event", "bizproc_event", "bizproc_id", "delete_bizproc_id"))); } } if ($_SERVER["REQUEST_METHOD"] == "GET" && strlen($_REQUEST["stop_bizproc_id"]) > 0 && check_bitrix_sessid() && $arResult["AllowAdmin"]) { $arState = CBPStateService::GetWorkflowState($_REQUEST["stop_bizproc_id"]); if (count($arState) > 0) { CBPDocument::TerminateWorkflow( $_REQUEST["stop_bizproc_id"], $arState["DOCUMENT_ID"], $arErrorsTmp ); if (count($arErrorsTmp) > 0) { foreach ($arErrorsTmp as $e) $arResult["ErrorMessage"] .= $e["message"].". "; } } else { $arResult["ErrorMessage"] .= GetMessage("BPWC_WLC_MISSING_BP").". "; } if (strlen($arResult["ErrorMessage"]) <= 0) LocalRedirect($APPLICATION->GetCurPageParam("", array("sessid", "stop_bizproc_id", "delete_bizproc_id"))); } if ($_SERVER["REQUEST_METHOD"] == "GET" && strlen($_REQUEST["delete_bizproc_id"]) > 0 && check_bitrix_sessid() && $arResult["AllowAdmin"]) { $arState = CBPStateService::GetWorkflowState($_REQUEST["delete_bizproc_id"]); if (count($arState) > 0) { $arErrorsTmp = array(); CBPDocument::OnDocumentDelete($arState["DOCUMENT_ID"], $arErrorsTmp); if (count($arErrorsTmp) > 0) { foreach ($arErrorsTmp as $e) $arResult["ErrorMessage"] .= $e["message"].". "; } if (strlen($arResult["ErrorMessage"]) <= 0) CIBlockElement::Delete($arState["DOCUMENT_ID"][2]); } else { $arResult["ErrorMessage"] .= GetMessage("BPWC_WLC_MISSING_BP").". "; } if (strlen($arResult["ErrorMessage"]) <= 0) LocalRedirect($APPLICATION->GetCurPageParam("", array("sessid", "stop_bizproc_id", "delete_bizproc_id"))); } } if (strlen($arResult["FatalErrorMessage"]) <= 0) { $arTypeMap = array( "string" => "string", "text" => "text", "double" => "number", "select" => "list", "bool" => "checkbox", "datetime" => "date", ); // $timeZoneOffset for datetime fields formatting $timeZoneOffset = CTimeZone::GetOffset(); $arSelectFields = array("ID", "CREATED_BY"); $arResult["GRID_ID"] = "bizproc_CBPVirtualDocument_".$arParams["BLOCK_ID"]; $gridOptions = new CGridOptions($arResult["GRID_ID"]); $gridColumns = $gridOptions->GetVisibleColumns(); $gridSort = $gridOptions->GetSorting(array("sort"=>array("ID" => "desc"))); $arResult["HEADERS"] = array(); $arResult["FILTER"] = array(); $runtime = CBPRuntime::GetRuntime(); $runtime->StartRuntime(); $documentService = $runtime->GetService("DocumentService"); $arDocumentFields = $documentService->GetDocumentFields($documentType); foreach ($arDocumentFields as $key => $value) { if (count($arResult["Block"]["VISIBLE_FIELDS"]) <= 0 || in_array($key, $arResult["Block"]["VISIBLE_FIELDS"])) { $arResult["HEADERS"][] = array( "id" => $key, "name" => $value["Name"], "default" => in_array($key, array("CREATED_BY_PRINTABLE", "NAME")) ? true : false, "sort" => $value["Filterable"] ? $key : "" ); } if ((count($gridColumns) <= 0 || in_array($key, $gridColumns)) && !in_array($key, $arSelectFields) && strpos($key, 'PROPERTY_') === false) $arSelectFields[] = $key; if ($value["Filterable"] && (count($arResult["Block"]["FILTERABLE_FIELDS"]) <= 0 || in_array($key, $arResult["Block"]["FILTERABLE_FIELDS"]))) { $ind = count($arResult["FILTER"]); $arResult["FILTER"][$ind] = array( "id" => $key, "name" => $value["Name"], "type" => array_key_exists($value["BaseType"], $arTypeMap) ? $arTypeMap[$value["BaseType"]] : "string", // "value" => $sections, // "filtered" => $arResult["SECTION_ID"] !== false, ); if (array_key_exists("Options", $value) && is_array($value["Options"])) { $arResult["FILTER"][$ind]["items"] = "list"; $arResult["FILTER"][$ind]["items"] = array_merge(array("" => GetMessage("BPWC_WLC_NOT_SET")), $value["Options"]); } if ($value["BaseType"] == "user") { $arResult["FILTER"][$ind]["type"] = "custom"; $arResult["FILTER"][$ind]["enable_settings"] = false; $arResult["FILTER"][$ind]["value"] = $documentService->GetFieldInputControl( $documentType, $value, array("Form" => "filter_".$arResult["GRID_ID"], "Field" => $key), $_REQUEST[$key], false, true ); } } } $arResult["HEADERS"][] = array("id"=>"STATE", "name"=>GetMessage("BPWC_WLCT_F_STATE"), "default"=>true); $arResult["HEADERS"][] = array("id"=>"TASKS", "name"=>GetMessage("BPWC_WLCT_F_TASKS"), "default"=>false); $arFilter = array("IBLOCK_ID" => $arParams["BLOCK_ID"], "CHECK_BP_VIRTUAL_PERMISSIONS" => "read"); $gridFilter = $gridOptions->GetFilter($arResult["FILTER"]); foreach ($gridFilter as $key => $value) { if (substr($key, -5) == "_from") { $op = ">="; $newKey = substr($key, 0, -5); } elseif (substr($key, -3) == "_to") { $op = "<="; $newKey = substr($key, 0, -3); } else { $op = ""; $newKey = $key; } if (array_key_exists($newKey, $arDocumentFields) && $arDocumentFields[$newKey]["Filterable"]) { if ($arDocumentFields[$newKey]["BaseType"] == "select") { $db = CIBlockProperty::GetPropertyEnum(substr($newKey, strlen("PROPERTY_")), array(), array("XML_ID" => $value, "IBLOCK_ID" => $arParams["BLOCK_ID"])); while ($ar = $db->Fetch()) $value = $ar["ID"]; } elseif ($arDocumentFields[$newKey]["BaseType"] == "string" || $arDocumentFields[$newKey]["BaseType"] == "text") { if ($op == "") $op = "?"; } elseif ($arDocumentFields[$newKey]["BaseType"] == "user") { $value = CBPHelper::UsersStringToArray($value, $documentType, $arErrors); if (is_array($value) && count($value) > 0) $value = $value[0]; if (substr($value, 0, strlen("user_")) == "user_") $value = substr($value, strlen("user_")); } elseif ($arDocumentFields[$newKey]["BaseType"] == "datetime" && strlen($value) > 0 && CheckDateTime($value)) { $isShort = strlen(trim($value)) <= 10; $appendTime = $op == '<=' ? '23:59:59' : '00:00:00'; if (strpos($newKey, 'PROPERTY_') === 0) { if ($timeZoneOffset != 0) { $value = date("Y-m-d ".($isShort? $appendTime : 'H:i:s'), MakeTimeStamp($value, CLang::GetDateFormat("FULL")) - $timeZoneOffset); } else { $value = CDatabase::FormatDate($value, CLang::GetDateFormat("FULL"), "YYYY-MM-DD ".($isShort? $appendTime : 'HH:MI:SS')); } } elseif ($isShort) { $value .= ' '.$appendTime; } } if ($newKey == "ACTIVE_FROM") $newKey = "DATE_ACTIVE_FROM"; if ($newKey == "ACTIVE_TO") $newKey = "DATE_ACTIVE_TO"; $arFilter[$op.$newKey] = $value; } } $arResult["SORT"] = $gridSort["sort"]; $arResult["ShowStateEvents"] = false; $arResult["ShowTasks"] = false; $arResult["RECORDS"] = array(); list($dbRecordsList, $dbRecordsList1) = CBPVirtualDocument::GetList( $gridSort["sort"], $arFilter, false, $gridOptions->GetNavParams(), $arSelectFields ); while ($arRecord = $dbRecordsList->GetNext()) { $arKeys = array_keys($arRecord); foreach ($arKeys as $key) { if ($arDocumentFields[$key]["BaseType"] == "file") { $ar = $arRecord[$key]; if (!is_array($ar)) $ar = array($ar); $arRecord[$key] = ""; foreach ($ar as $v) { if (strlen($arRecord[$key]) > 0) $arRecord[$key] .= " "; $arRecord[$key] .= CFile::ShowFile($v, 100000, 50, 50, true); } } elseif (strpos($key, '_PRINTABLE') !== false && $arDocumentFields[str_replace('_PRINTABLE', '', $key)]["BaseType"] == "user" && is_string($arRecord[$key])) { //compatibility: do not need to escape chars there, delegate this to main.integface.grid $arRecord[$key] = htmlspecialcharsback($arRecord[$key]); } if (is_array($arRecord[$key])) { $ar = $arRecord[$key]; $arRecord[$key] = ""; foreach ($ar as $val) { 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) { if ($arDocumentState['WORKFLOW_STATUS'] == -1 && !empty($arRecord["DOCUMENT_STATE"]['ID'])) continue; $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) $arRecord["CancelUrl"] = $APPLICATION->GetCurPageParam("stop_bizproc_id=".$arDocumentState["ID"]."&".bitrix_sessid_get(), array("sessid", "stop_bizproc_id")); } $aCols = array( "STATE" => "<a href=\"".CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_LOG"], array("bp_id" => $arRecord["ID"], "block_id" => $arParams["BLOCK_ID"]))."\" onclick=''>".(strlen($arRecord["DOCUMENT_STATE"]["STATE_TITLE"]) > 0 ? $arRecord["DOCUMENT_STATE"]["STATE_TITLE"] : $arRecord["DOCUMENT_STATE"]["STATE_NAME"])."</a>", ); $aActions = array( array("ICONCLASS"=>"edit", "DEFAULT" => true, "TEXT"=>GetMessage("BPWC_WLC_NOT_DETAIL"), "ONCLICK"=>"window.location='".CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_VIEW"], array("bp_id" => $arRecord["ID"], "block_id" => $arParams["BLOCK_ID"]))."';") ); if (count($arRecord["DOCUMENT_STATE_EVENTS"]) > 0) { foreach ($arRecord["DOCUMENT_STATE_EVENTS"] as $e) $aActions[] = array("ICONCLASS"=>"", "TEXT"=>htmlspecialcharsbx($e["TITLE"]), "ONCLICK"=>"window.location='".$APPLICATION->GetCurPageParam("bizproc_id=".$arRecord["DOCUMENT_STATE"]["ID"]."&process_state_event=Y&bizproc_event=".htmlspecialcharsbx($e["NAME"])."&".bitrix_sessid_get(), array("sessid", "stop_bizproc_id", "process_state_event", "bizproc_event", "bizproc_id"))."';"); } if ($arResult["ShowTasks"]) { $aCols["TASKS"] = ''; if (count($arRecord["DOCUMENT_STATE_TASKS"]) > 0) { foreach ($arRecord["DOCUMENT_STATE_TASKS"] as $arTask) $aCols["TASKS"] = '<a href="'.$arTask["URL"].'" onclick="" title="'.strip_tags($arTask["DESCRIPTION"]).'">'.$arTask["NAME"].'</a><br />'; } } if ($arResult["AllowAdmin"] && strlen($arRecord["CancelUrl"]) > 0) { if (count($aActions) > 0) $aActions[] = array("SEPARATOR"=>true); $aActions[] = array("ICONCLASS"=>"delete", "TEXT"=>GetMessage("JHGFDC_STOP"), "ONCLICK"=>"if(confirm('".GetMessageJS("JHGFDC_STOP_ALT")."')) window.location='".$arRecord["CancelUrl"]."';"); } if ($arResult["AllowAdmin"]) { if (count($aActions) > 0 && strlen($arRecord["CancelUrl"]) <= 0) $aActions[] = array("SEPARATOR"=>true); $aActions[] = array("ICONCLASS"=>"delete", "TEXT"=>GetMessage("JHGFDC_STOP_DELETE"), "ONCLICK"=>"if(confirm('".GetMessageJS("JHGFDC_STOP_DELETE_ALT")."')) window.location='".$APPLICATION->GetCurPageParam("delete_bizproc_id=".$arRecord["DOCUMENT_STATE"]["ID"]."&".bitrix_sessid_get(), array("sessid", "stop_bizproc_id", "delete_bizproc_id", 'bxajaxid'))."';"); } $arResult["RECORDS"][] = array("data" => $arRecord, "actions" => $aActions, "columns" => $aCols, "editable" => false); } foreach ($arResult["HEADERS"] as $key => $value) { if ($value["id"] == "TASKS") $arResult["HEADERS"][$key]["default"] = $arResult["ShowTasks"]; } $arResult["ROWS_COUNT"] = $dbRecordsList1->SelectedRowsCount(); $arResult["NAV_STRING"] = $dbRecordsList1->GetPageNavStringEx($navComponentObject, GetMessage("INTS_TASKS_NAV"), "", false); $arResult["NAV_CACHED_DATA"] = $navComponentObject->GetTemplateCachedData(); $arResult["NAV_RESULT"] = $dbRecordsList1; } if (strlen($arResult["FatalErrorMessage"]) <= 0) { if ($arParams["SET_TITLE"] == "Y") $APPLICATION->SetTitle($arResult["Block"]["NAME"]); if ($arParams["SET_NAV_CHAIN"] == "Y") { $APPLICATION->AddChainItem($arResult["BlockType"]["NAME"], $arResult["PATH_TO_INDEX"]); $APPLICATION->AddChainItem($arResult["Block"]["NAME"]); } } else { if ($arParams["SET_TITLE"] == "Y") $APPLICATION->SetTitle(GetMessage("BPWC_WLC_ERROR")); if ($arParams["SET_NAV_CHAIN"] == "Y") $APPLICATION->AddChainItem(GetMessage("BPWC_WLC_ERROR")); } $this->IncludeComponentTemplate(); ?>