%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/lists/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/lists/component.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */
/** @var CBitrixComponent $this */
/** @var array $arParams */
/** @var array $arResult */
/** @var string $componentName */
/** @var string $componentPath */
/** @var string $componentTemplate */
/** @var string $parentComponentName */
/** @var string $parentComponentPath */
/** @var string $parentComponentTemplate */
$this->setFrameMode(false);
$arDefaultUrlTemplates404 = array(
"lists" => "",
"list" =>"#list_id#/view/#section_id#/",
"list_edit" => "#list_id#/edit/",
"list_fields" => "#list_id#/fields/",
"list_field_edit" => "#list_id#/field/#field_id#/",
"list_element_edit" => "#list_id#/element/#section_id#/#element_id#/",
"list_file" => "#list_id#/file/#section_id#/#element_id#/#field_id#/#file_id#/",
"bizproc_log" => "#list_id#/bp_log/#document_state_id#/",
"bizproc_workflow_start" => "#list_id#/bp_start/#element_id#/",
"bizproc_task" => "#list_id#/bp_task/#section_id#/#element_id#/#task_id#/",
"bizproc_workflow_admin" => "#list_id#/bp_list/",
"bizproc_workflow_edit" => "#list_id#/bp_edit/#ID#/",
"bizproc_workflow_vars" => "#list_id#/bp_vars/#ID#/",
"bizproc_workflow_constants" => "#list_id#/bp_constants/#ID#/",
"list_export_excel" => "#list_id#/excel/",
);
$processes = false;
if($arParams["IBLOCK_TYPE_ID"] == COption::GetOptionString("lists", "livefeed_iblock_type_id"))
{
$processes = true;
$arDefaultUrlTemplates404["catalog_processes"] = "catalog_processes/";
}
$arDefaultVariableAliases404 = array();
$arDefaultVariableAliases = array();
$arComponentVariables = array(
"list_id",
"field_id",
"section_id",
"element_id",
"file_id",
"mode",
"document_state_id",
"task_id",
"ID",
);
/* We set the option on the component, as well as accounting for multiple sites */
if($arParams["IBLOCK_TYPE_ID"] == COption::GetOptionString("lists", "livefeed_iblock_type_id"))
{
if($arParams["SEF_FOLDER"] != COption::GetOptionString('lists', 'livefeed_url'))
{
$sitDirTrim = trim(SITE_DIR, '/');
if(!empty($sitDirTrim))
{
$setOptions = str_replace(SITE_DIR, '/', $arParams["SEF_FOLDER"]);
COption::SetOptionString("lists", "livefeed_url", $setOptions);
}
else
{
COption::SetOptionString("lists", "livefeed_url", $arParams["SEF_FOLDER"]);
}
}
}
if($arParams["SEF_MODE"] == "Y")
{
$arVariables = array();
$arUrlTemplates = CComponentEngine::MakeComponentUrlTemplates($arDefaultUrlTemplates404, $arParams["SEF_URL_TEMPLATES"]);
$arVariableAliases = CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases404, $arParams["VARIABLE_ALIASES"]);
if($_GET['livefeed'] == 'y')
{
$componentPage = 'list_element_edit';
$arVariables = array('list_id' => $_GET['list_id'], 'element_id' => $_GET['element_id'], 'section_id' => 0);
}
elseif($_GET['bp_constants'] == 'y')
{
$componentPage = "bizproc_workflow_constants";
$arVariables = array('list_id' => $_GET['list_id'], 'ID' => $_GET['id']);
}
elseif($processes && $_GET["bp_catalog"] == "y")
{
$componentPage = "catalog_processes";
}
else
{
$componentPage = CComponentEngine::ParseComponentPath(
$arParams["SEF_FOLDER"],
$arUrlTemplates,
$arVariables
);
}
if(!$componentPage)
$componentPage = "lists";
CComponentEngine::InitComponentVariables($componentPage, $arComponentVariables, $arVariableAliases, $arVariables);
$arResult = array(
"FOLDER" => $arParams["SEF_FOLDER"],
"URL_TEMPLATES" => $arUrlTemplates,
"VARIABLES" => $arVariables,
"ALIASES" => $arVariableAliases
);
// Registering routes for building preview by url
Bitrix\Main\UrlPreview\Router::setRouteHandler(
$arParams["SEF_FOLDER"].$arUrlTemplates['list_element_edit'],
'lists',
'\Bitrix\Lists\Preview\Element',
array(
'listId' => '$list_id',
'sectionId' => '$section_id',
'elementId' => '$element_id',
'IBLOCK_TYPE_ID' => $arParams['IBLOCK_TYPE_ID']
)
);
}
else
{
$arVariables = array();
if(!isset($arParams["VARIABLE_ALIASES"]["ID"]))
$arParams["VARIABLE_ALIASES"]["ID"] = "ID";
$arVariableAliases = CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases, $arParams["VARIABLE_ALIASES"]);
if(!isset($arVariableAliases["file_id"]))
$arVariableAliases["file_id"] = "file_id";
if($_GET['livefeed'] == 'y')
{
$componentPage = 'list_element_edit';
$arVariables = array('list_id' => $_GET['list_id'], 'element_id' => $_GET['element_id'], 'section_id' => 0);
}
elseif($_GET['bp_constants'] == 'y')
{
$componentPage = "bizproc_workflow_constants";
$arVariables = array('list_id' => $_GET['list_id'], 'ID' => $_GET['id']);
}
elseif($processes && $_GET["bp_catalog"] == "y")
{
$componentPage = "catalog_processes";
}
else
{
CComponentEngine::InitComponentVariables(false, $arComponentVariables, $arVariableAliases, $arVariables);
$componentPage = "lists"; //default page
}
if(isset($arVariables["list_id"]) && isset($arVariables["mode"]))
{
switch($arVariables["mode"])
{
case "field":
if(isset($arVariables["field_id"]))
$componentPage = "list_field_edit";
break;
case "fields":
$componentPage = "list_fields";
break;
case "edit":
if(isset($arVariables["element_id"]))
$componentPage = "list_element_edit";
elseif(isset($arVariables["section_id"]))
$componentPage = "list_sections";
else
$componentPage = "list_edit";
break;
case "bp":
if(isset($arVariables["document_state_id"]))
$componentPage = "bizproc_log";
elseif(isset($arVariables["task_id"]))
$componentPage = "bizproc_task";
elseif(isset($arVariables["element_id"]) && isset($_GET["action"]) && $_GET["action"] === "del_bizproc")
$componentPage = "bizproc_workflow_delete";
elseif(isset($arVariables["section_id"]) && isset($arVariables["element_id"]))
$componentPage = "bizproc_workflow_start";
elseif(isset($arVariables["ID"]) && !isset($_GET["action"]))
$componentPage = "bizproc_workflow_edit";
else
$componentPage = "bizproc_workflow_admin";
break;
case "bp_vars":
$componentPage = "bizproc_workflow_vars";
break;
case "bp_constants":
$componentPage = "bizproc_workflow_constants";
break;
case "view":
if(isset($arVariables["file_id"]))
$componentPage = "list_file";
else
$componentPage = "list";
break;
case "excel":
$componentPage = "list_export_excel";
break;
}
}
if($processes)
{
if(isset($arVariables["mode"]))
{
switch($arVariables["mode"])
{
case "catalog":
if($processes)
$componentPage = "catalog_processes";
break;
}
}
}
$arResult = array(
"FOLDER" => "",
"URL_TEMPLATES" => Array(
"list_field_edit" => $APPLICATION->GetCurPage()
."?mode=field"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["field_id"]."=#field_id#"
,
"list_fields" => $APPLICATION->GetCurPage()
."?mode=fields"
."&".$arVariableAliases["list_id"]."=#list_id#"
,
"list_edit" => $APPLICATION->GetCurPage()
."?mode=edit"
."&".$arVariableAliases["list_id"]."=#list_id#"
,
"list_element_edit" => $APPLICATION->GetCurPage()
."?mode=edit"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["section_id"]."=#section_id#"
."&".$arVariableAliases["element_id"]."=#element_id#"
,
"list_sections" => $APPLICATION->GetCurPage()
."?mode=edit"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["section_id"]."=#section_id#"
,
"bizproc_log" => $APPLICATION->GetCurPage()
."?mode=bp"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["document_state_id"]."=#document_state_id#"
,
"bizproc_task" => $APPLICATION->GetCurPage()
."?mode=bp&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["task_id"]."=#task_id#"
,
"bizproc_workflow_start" => $APPLICATION->GetCurPage()
."?mode=bp"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["section_id"]."=#section_id#"
."&".$arVariableAliases["element_id"]."=#element_id#"
,
"bizproc_workflow_delete" => $APPLICATION->GetCurPage()
."?mode=bp"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["section_id"]."=#section_id#"
."&".$arVariableAliases["element_id"]."=#element_id#"
,
"bizproc_workflow_admin" => $APPLICATION->GetCurPage()
."?mode=bp"
."&".$arVariableAliases["list_id"]."=#list_id#"
,
"bizproc_workflow_edit" => $APPLICATION->GetCurPage()
."?mode=bp"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["ID"]."=#ID#"
,
"bizproc_workflow_vars" => $APPLICATION->GetCurPage()
."?mode=bp_vars"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["ID"]."=#ID#"
,
"bizproc_workflow_constants" => $APPLICATION->GetCurPage()
."?mode=bp_constants"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["ID"]."=#ID#"
,
"list_file" => $APPLICATION->GetCurPage()
."?mode=view"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["section_id"]."=#section_id#"
."&".$arVariableAliases["element_id"]."=#element_id#"
."&".$arVariableAliases["field_id"]."=#field_id#"
."&".$arVariableAliases["file_id"]."=#file_id#"
,
"list" => $APPLICATION->GetCurPage()
."?mode=view"
."&".$arVariableAliases["list_id"]."=#list_id#"
."&".$arVariableAliases["section_id"]."=#section_id#"
,
"lists" => $APPLICATION->GetCurPage(),
"list_export_excel" => $APPLICATION->GetCurPage()."?mode=excel"
."&".$arVariableAliases["list_id"]."=#list_id#",
),
"VARIABLES" => $arVariables,
"ALIASES" => $arVariableAliases
);
if($processes)
$arResult["URL_TEMPLATES"]["catalog_processes"] = $APPLICATION->GetCurPage()."?mode=catalog";
}
$p = strpos($arResult["URL_TEMPLATES"]["bizproc_workflow_delete"], "?");
if($p === false)
$ch = "?";
else
$ch = "&";
$arResult["URL_TEMPLATES"]["bizproc_workflow_delete"] .= $ch."action=del_bizproc";
if(
isset($arVariables["document_state_id"])
&& !isset($arVariables["element_id"])
&& CModule::IncludeModule("bizproc")
&& CBPRuntime::isFeatureEnabled()
)
{
$arWorkflowState = CBPStateService::GetWorkflowState($arVariables["document_state_id"]);
if(is_array($arWorkflowState) && is_array($arWorkflowState["DOCUMENT_ID"]))
list(, , $arResult["VARIABLES"]["element_id"]) = CBPHelper::ParseDocumentId($arWorkflowState["DOCUMENT_ID"]);
}
if($processes && CModule::IncludeModule("lists") && !CLists::isFeatureEnabled())
{
ShowError(GetMessage("CC_BLL_ACCESS_DENIDED"));
return;
}
$this->IncludeComponentTemplate($componentPage);
?>