Files
iTop/sources/application/UI/Component/Breadcrumbs/Breadcrumbs.php
Molkobain 1f0211b45a N°2847 - Rework iTopWebPage layout (WIP Part VI)
- iTopWebPage: Restore "open search" feature
- iTopWebPage: Change all resources URL to absolute in order to benefit from the "duplicate removal" benefits
- iTopWebPage: Remove obsolete method IsMenuPaneVisible()
- Config: Add new parameters quick_create.enabled / global_search.enabled / breadcrumb.enabled
- utils: Add new GetAppRevisionNumber() method
- Introduce iUIBlock interface for UI layouts, components, ...
- Introduce BlockRenderer to properly render blocks
- Add "render_block" function to TwigHelper to render blocks directly from TWIG
- Refactor layouts and components into proper block classes to fit the new architecture
2020-07-30 15:22:17 +02:00

106 lines
2.4 KiB
PHP

<?php
/**
* Copyright (C) 2013-2020 Combodo SARL
*
* This file is part of iTop.
*
* iTop is free software; you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* iTop is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
*/
namespace Combodo\iTop\Application\UI\Component\Breadcrumbs;
use Combodo\iTop\Application\UI\UIBlock;
use MetaModel;
use utils;
/**
* Class Breadcrumbs
*
* @author Guillaume Lajarige <guillaume.lajarige@combodo.com>
* @package Combodo\iTop\Application\UI\Component\Breadcrumbs
* @internal
* @since 2.8.0
*/
class Breadcrumbs extends UIBlock
{
const BLOCK_CODE = 'ibo-breadcrumbs';
const HTML_TEMPLATE_REL_PATH = 'components/breadcrumbs/layout';
const JS_TEMPLATE_REL_PATH = 'components/breadcrumbs/layout';
const JS_FILES_REL_PATH = [
'js/components/breadcrumbs.js',
];
/** @var array|null $aNewEntry */
protected $aNewEntry;
/**
* QuickCreate constructor.
*
* @param string $sId
* @param array|null $aNewEntry
*/
public function __construct($sId = null, $aNewEntry = null)
{
parent::__construct($sId);
$this->SetNewEntry($aNewEntry);
}
/**
* The new breadcrumbs entry
*
* @param array|null $aNewEntry
*
* @return $this
*/
public function SetNewEntry($aNewEntry)
{
$this->aNewEntry = $aNewEntry;
return $this;
}
/**
* @return array|null
*/
public function GetNewEntry()
{
return $this->aNewEntry;
}
/**
* @return array
* @throws \ConfigException
* @throws \CoreException
* @throws \Exception
*/
public function GetJsWidgetOptions()
{
$aJsWidgetOptions = [];
$iBreadCrumbMaxCount = utils::GetConfig()->Get('breadcrumb.max_count');
if ($iBreadCrumbMaxCount > 1)
{
$oConfig = MetaModel::GetConfig();
$siTopInstanceId = $oConfig->GetItopInstanceid();
$aJsWidgetOptions = [
'itop_instance_id' => $siTopInstanceId,
'max_count' => $iBreadCrumbMaxCount,
'new_entry' => $this->GetNewEntry(),
];
}
return $aJsWidgetOptions;
}
}