N°4500 - Remove iPageUIExtension & AbstractPageUIExtension API

This commit is contained in:
Anne-Cath
2025-08-04 10:30:38 +02:00
parent c5ee123f88
commit 820087e4d1
13 changed files with 33 additions and 226 deletions

View File

@@ -1158,61 +1158,6 @@ class JSButtonItem extends JSPopupMenuItem
}
/**
* Implement this interface to add content to any iTopWebPage
*
* There are 3 places where content can be added:
*
* * The north pane: (normaly empty/hidden) at the top of the page, spanning the whole
* width of the page
* * The south pane: (normaly empty/hidden) at the bottom of the page, spanning the whole
* width of the page
* * The admin banner (two tones gray background) at the left of the global search.
* Limited space, use it for short messages
*
* Each of the methods of this interface is supposed to return the HTML to be inserted at
* the specified place and can use the passed iTopWebPage object to add javascript or CSS definitions
*
* @api
* @package UIExtensibilityAPI
* @since 2.0
* @deprecated 3.0.0 If you need to include:
* * JS/CSS files/snippets, use {@see \iBackofficeLinkedScriptsExtension}, {@see \iBackofficeLinkedStylesheetsExtension}, etc instead
* * HTML (and optionally JS/CSS), use {@see \iPageUIBlockExtension} to manipulate {@see \Combodo\iTop\Application\UI\Base\UIBlock} instead
*/
interface iPageUIExtension
{
/**
* Add content to the header of the page
*
* @api
* @param iTopWebPage $oPage The page to insert stuff into.
*
* @return string The HTML content to add into the page
*/
public function GetNorthPaneHtml(iTopWebPage $oPage);
/**
* Add content to the footer of the page
*
* @api
* @param iTopWebPage $oPage The page to insert stuff into.
*
* @return string The HTML content to add into the page
*/
public function GetSouthPaneHtml(iTopWebPage $oPage);
/**
* Add content to the "admin banner"
*
* @api
* @param iTopWebPage $oPage The page to insert stuff into.
*
* @return string The HTML content to add into the page
*/
public function GetBannerHtml(iTopWebPage $oPage);
}
/**
* Implement this interface to add content to any iTopWebPage
*
@@ -1260,43 +1205,7 @@ interface iPageUIBlockExtension
}
/**
* Extend this class instead of iPageUIExtension if you don't need to overload all methods
*
* @api
* @package UIExtensibilityAPI
* @since 2.7.0
* @deprecated 3.0.0 use AbstractPageUIBlockExtension instead
*/
abstract class AbstractPageUIExtension implements iPageUIExtension
{
/**
* @inheritDoc
*/
public function GetNorthPaneHtml(iTopWebPage $oPage)
{
return '';
}
/**
* @inheritDoc
*/
public function GetSouthPaneHtml(iTopWebPage $oPage)
{
return '';
}
/**
* @inheritDoc
*/
public function GetBannerHtml(iTopWebPage $oPage)
{
return '';
}
}
/**
* Extend this class instead of iPageUIExtension if you don't need to overload all methods
* Extend this class instead of iPageUIBlockExtension if you don't need to overload all methods
*
* @api
* @package UIBlockExtensibilityAPI

View File

@@ -7665,7 +7665,6 @@ abstract class MetaModel
'iApplicationUIExtension',
'iApplicationObjectExtension',
'iPopupMenuExtension',
'iPageUIExtension',
'iPageUIBlockExtension',
'iBackofficeLinkedScriptsExtension',
'iBackofficeEarlyScriptExtension',

View File

@@ -32,6 +32,11 @@ class InstalledVersions
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -309,6 +314,12 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
@@ -322,19 +333,27 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = strtr(__DIR__, '\\', '/');
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -350,7 +369,7 @@ class InstalledVersions
}
}
if (self::$installed !== array()) {
if (self::$installed !== array() && !$copiedLocalDir) {
$installed[] = self::$installed;
}

View File

@@ -10,7 +10,6 @@ return array(
'AbstractApplicationUIExtension' => $baseDir . '/application/applicationextension.inc.php',
'AbstractLoginFSMExtension' => $baseDir . '/application/applicationextension.inc.php',
'AbstractPageUIBlockExtension' => $baseDir . '/application/applicationextension.inc.php',
'AbstractPageUIExtension' => $baseDir . '/application/applicationextension.inc.php',
'AbstractPortalUIExtension' => $baseDir . '/application/applicationextension.inc.php',
'AbstractPreferencesExtension' => $baseDir . '/application/applicationextension.inc.php',
'AbstractWeeklyScheduledProcess' => $baseDir . '/core/backgroundprocess.inc.php',
@@ -470,7 +469,6 @@ return array(
'Combodo\\iTop\\Form\\Validator\\MultipleChoicesValidator' => $baseDir . '/sources/Form/Validator/MultipleChoicesValidator.php',
'Combodo\\iTop\\Form\\Validator\\NotEmptyExtKeyValidator' => $baseDir . '/sources/Form/Validator/NotEmptyExtKeyValidator.php',
'Combodo\\iTop\\Form\\Validator\\SelectObjectValidator' => $baseDir . '/sources/Form/Validator/SelectObjectValidator.php',
'Combodo\\iTop\\Form\\Validator\\Validator' => $baseDir . '/sources/Form/Validator/Validator.php',
'Combodo\\iTop\\Kernel' => $baseDir . '/sources/Kernel.php',
'Combodo\\iTop\\Renderer\\BlockRenderer' => $baseDir . '/sources/Renderer/BlockRenderer.php',
'Combodo\\iTop\\Renderer\\Bootstrap\\BsFieldRendererMappings' => $baseDir . '/sources/Renderer/Bootstrap/BsFieldRendererMappings.php',
@@ -574,7 +572,6 @@ return array(
'DashletPlainText' => $baseDir . '/application/dashlet.class.inc.php',
'DashletProxy' => $baseDir . '/application/dashlet.class.inc.php',
'DashletUnknown' => $baseDir . '/application/dashlet.class.inc.php',
'DataTable' => $baseDir . '/application/datatable.class.inc.php',
'Datamatrix' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
'DateError' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateError.php',
'DateException' => $vendorDir . '/symfony/polyfill-php83/Resources/stubs/DateException.php',
@@ -614,7 +611,6 @@ return array(
'DictExceptionMissingString' => $baseDir . '/application/exceptions/dict/DictExceptionMissingString.php',
'DictExceptionUnknownLanguage' => $baseDir . '/application/exceptions/dict/DictExceptionUnknownLanguage.php',
'DisplayBlock' => $baseDir . '/application/displayblock.class.inc.php',
'DisplayTemplate' => $baseDir . '/application/template.class.inc.php',
'DisplayableEdge' => $baseDir . '/core/displayablegraph.class.inc.php',
'DisplayableGraph' => $baseDir . '/core/displayablegraph.class.inc.php',
'DisplayableGroupNode' => $baseDir . '/core/displayablegraph.class.inc.php',
@@ -643,9 +639,6 @@ return array(
'FieldOqlExpression' => $baseDir . '/core/oql/oqlquery.class.inc.php',
'FileLog' => $baseDir . '/core/log.class.inc.php',
'FileUploadException' => $baseDir . '/application/utils.inc.php',
'FilterDefinition' => $baseDir . '/core/filterdef.class.inc.php',
'FilterFromAttribute' => $baseDir . '/core/filterdef.class.inc.php',
'FilterPrivateKey' => $baseDir . '/core/filterdef.class.inc.php',
'FindStylesheetObject' => $baseDir . '/application/findstylesheetobject.class.inc.php',
'Firebase\\JWT\\BeforeValidException' => $vendorDir . '/firebase/php-jwt/src/BeforeValidException.php',
'Firebase\\JWT\\CachedKeySet' => $vendorDir . '/firebase/php-jwt/src/CachedKeySet.php',
@@ -1164,7 +1157,6 @@ return array(
'OQLParser_yyStackEntry' => $baseDir . '/core/oql/oql-parser.php',
'OQLParser_yyToken' => $baseDir . '/core/oql/oql-parser.php',
'OS_Guess' => $vendorDir . '/pear/pear-core-minimal/src/OS/Guess.php',
'ObjectDetailsTemplate' => $baseDir . '/application/template.class.inc.php',
'ObjectResult' => $baseDir . '/core/restservices.class.inc.php',
'ObjectStimulus' => $baseDir . '/core/stimulus.class.inc.php',
'ObsolescenceDateUpdater' => $baseDir . '/core/background.inc.php',
@@ -1448,7 +1440,6 @@ return array(
'PluginManager' => $baseDir . '/core/pluginmanager.class.inc.php',
'PortalDispatcher' => $baseDir . '/application/portaldispatcher.class.inc.php',
'PortalURLMaker' => $baseDir . '/application/applicationcontext.class.inc.php',
'PrintableDataTable' => $baseDir . '/application/datatable.class.inc.php',
'ProcessException' => $baseDir . '/application/exceptions/process/ProcessException.php',
'ProcessFatalException' => $baseDir . '/application/exceptions/process/ProcessFatalException.php',
'ProcessInvalidConfigException' => $baseDir . '/application/exceptions/process/ProcessInvalidConfigException.php',
@@ -3163,7 +3154,6 @@ return array(
'WizardHelper' => $baseDir . '/application/wizardhelper.class.inc.php',
'XLSXWriter' => $baseDir . '/application/xlsxwriter.class.php',
'XMLBulkExport' => $baseDir . '/core/xmlbulkexport.class.inc.php',
'ajax_page' => $baseDir . '/application/ajaxwebpage.class.inc.php',
'appUserPreferences' => $baseDir . '/application/user.preferences.class.inc.php',
'cmdbAbstractObject' => $baseDir . '/application/cmdbabstract.class.inc.php',
'cmdbDataGenerator' => $baseDir . '/core/data.generator.class.inc.php',
@@ -3178,6 +3168,7 @@ return array(
'iBackofficeLinkedScriptsExtension' => $baseDir . '/application/applicationextension.inc.php',
'iBackofficeLinkedStylesheetsExtension' => $baseDir . '/application/applicationextension.inc.php',
'iBackofficeReadyScriptExtension' => $baseDir . '/application/applicationextension.inc.php',
'iBackofficeSassExtension' => $baseDir . '/application/applicationextension.inc.php',
'iBackofficeScriptExtension' => $baseDir . '/application/applicationextension.inc.php',
'iBackofficeStyleExtension' => $baseDir . '/application/applicationextension.inc.php',
'iBackupExtraFilesExtension' => $baseDir . '/application/applicationextension.inc.php',
@@ -3197,7 +3188,6 @@ return array(
'iNewsroomProvider' => $baseDir . '/application/newsroomprovider.class.inc.php',
'iOnClassInitialization' => $baseDir . '/core/metamodelmodifier.inc.php',
'iPageUIBlockExtension' => $baseDir . '/application/applicationextension.inc.php',
'iPageUIExtension' => $baseDir . '/application/applicationextension.inc.php',
'iPopupMenuExtension' => $baseDir . '/application/applicationextension.inc.php',
'iPortalUIExtension' => $baseDir . '/application/applicationextension.inc.php',
'iPreferencesExtension' => $baseDir . '/application/applicationextension.inc.php',

View File

@@ -58,7 +58,7 @@ return array(
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
'Pelago\\Emogrifier\\' => array($vendorDir . '/pelago/emogrifier/src'),
'League\\OAuth2\\Client\\' => array($vendorDir . '/league/oauth2-client/src', $vendorDir . '/league/oauth2-google/src'),
'League\\OAuth2\\Client\\' => array($vendorDir . '/league/oauth2-google/src', $vendorDir . '/league/oauth2-client/src'),
'Laminas\\Validator\\' => array($vendorDir . '/laminas/laminas-validator/src'),
'Laminas\\Stdlib\\' => array($vendorDir . '/laminas/laminas-stdlib/src'),
'Laminas\\ServiceManager\\' => array($vendorDir . '/laminas/laminas-servicemanager/src'),

View File

@@ -329,8 +329,8 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
),
'League\\OAuth2\\Client\\' =>
array (
0 => __DIR__ . '/..' . '/league/oauth2-client/src',
1 => __DIR__ . '/..' . '/league/oauth2-google/src',
0 => __DIR__ . '/..' . '/league/oauth2-google/src',
1 => __DIR__ . '/..' . '/league/oauth2-client/src',
),
'Laminas\\Validator\\' =>
array (
@@ -400,7 +400,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'AbstractApplicationUIExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'AbstractLoginFSMExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'AbstractPageUIBlockExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'AbstractPageUIExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'AbstractPortalUIExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'AbstractPreferencesExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'AbstractWeeklyScheduledProcess' => __DIR__ . '/../..' . '/core/backgroundprocess.inc.php',
@@ -860,7 +859,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'Combodo\\iTop\\Form\\Validator\\MultipleChoicesValidator' => __DIR__ . '/../..' . '/sources/Form/Validator/MultipleChoicesValidator.php',
'Combodo\\iTop\\Form\\Validator\\NotEmptyExtKeyValidator' => __DIR__ . '/../..' . '/sources/Form/Validator/NotEmptyExtKeyValidator.php',
'Combodo\\iTop\\Form\\Validator\\SelectObjectValidator' => __DIR__ . '/../..' . '/sources/Form/Validator/SelectObjectValidator.php',
'Combodo\\iTop\\Form\\Validator\\Validator' => __DIR__ . '/../..' . '/sources/Form/Validator/Validator.php',
'Combodo\\iTop\\Kernel' => __DIR__ . '/../..' . '/sources/Kernel.php',
'Combodo\\iTop\\Renderer\\BlockRenderer' => __DIR__ . '/../..' . '/sources/Renderer/BlockRenderer.php',
'Combodo\\iTop\\Renderer\\Bootstrap\\BsFieldRendererMappings' => __DIR__ . '/../..' . '/sources/Renderer/Bootstrap/BsFieldRendererMappings.php',
@@ -964,7 +962,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'DashletPlainText' => __DIR__ . '/../..' . '/application/dashlet.class.inc.php',
'DashletProxy' => __DIR__ . '/../..' . '/application/dashlet.class.inc.php',
'DashletUnknown' => __DIR__ . '/../..' . '/application/dashlet.class.inc.php',
'DataTable' => __DIR__ . '/../..' . '/application/datatable.class.inc.php',
'Datamatrix' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
'DateError' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateError.php',
'DateException' => __DIR__ . '/..' . '/symfony/polyfill-php83/Resources/stubs/DateException.php',
@@ -1004,7 +1001,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'DictExceptionMissingString' => __DIR__ . '/../..' . '/application/exceptions/dict/DictExceptionMissingString.php',
'DictExceptionUnknownLanguage' => __DIR__ . '/../..' . '/application/exceptions/dict/DictExceptionUnknownLanguage.php',
'DisplayBlock' => __DIR__ . '/../..' . '/application/displayblock.class.inc.php',
'DisplayTemplate' => __DIR__ . '/../..' . '/application/template.class.inc.php',
'DisplayableEdge' => __DIR__ . '/../..' . '/core/displayablegraph.class.inc.php',
'DisplayableGraph' => __DIR__ . '/../..' . '/core/displayablegraph.class.inc.php',
'DisplayableGroupNode' => __DIR__ . '/../..' . '/core/displayablegraph.class.inc.php',
@@ -1033,9 +1029,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'FieldOqlExpression' => __DIR__ . '/../..' . '/core/oql/oqlquery.class.inc.php',
'FileLog' => __DIR__ . '/../..' . '/core/log.class.inc.php',
'FileUploadException' => __DIR__ . '/../..' . '/application/utils.inc.php',
'FilterDefinition' => __DIR__ . '/../..' . '/core/filterdef.class.inc.php',
'FilterFromAttribute' => __DIR__ . '/../..' . '/core/filterdef.class.inc.php',
'FilterPrivateKey' => __DIR__ . '/../..' . '/core/filterdef.class.inc.php',
'FindStylesheetObject' => __DIR__ . '/../..' . '/application/findstylesheetobject.class.inc.php',
'Firebase\\JWT\\BeforeValidException' => __DIR__ . '/..' . '/firebase/php-jwt/src/BeforeValidException.php',
'Firebase\\JWT\\CachedKeySet' => __DIR__ . '/..' . '/firebase/php-jwt/src/CachedKeySet.php',
@@ -1554,7 +1547,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'OQLParser_yyStackEntry' => __DIR__ . '/../..' . '/core/oql/oql-parser.php',
'OQLParser_yyToken' => __DIR__ . '/../..' . '/core/oql/oql-parser.php',
'OS_Guess' => __DIR__ . '/..' . '/pear/pear-core-minimal/src/OS/Guess.php',
'ObjectDetailsTemplate' => __DIR__ . '/../..' . '/application/template.class.inc.php',
'ObjectResult' => __DIR__ . '/../..' . '/core/restservices.class.inc.php',
'ObjectStimulus' => __DIR__ . '/../..' . '/core/stimulus.class.inc.php',
'ObsolescenceDateUpdater' => __DIR__ . '/../..' . '/core/background.inc.php',
@@ -1838,7 +1830,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'PluginManager' => __DIR__ . '/../..' . '/core/pluginmanager.class.inc.php',
'PortalDispatcher' => __DIR__ . '/../..' . '/application/portaldispatcher.class.inc.php',
'PortalURLMaker' => __DIR__ . '/../..' . '/application/applicationcontext.class.inc.php',
'PrintableDataTable' => __DIR__ . '/../..' . '/application/datatable.class.inc.php',
'ProcessException' => __DIR__ . '/../..' . '/application/exceptions/process/ProcessException.php',
'ProcessFatalException' => __DIR__ . '/../..' . '/application/exceptions/process/ProcessFatalException.php',
'ProcessInvalidConfigException' => __DIR__ . '/../..' . '/application/exceptions/process/ProcessInvalidConfigException.php',
@@ -3553,7 +3544,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'WizardHelper' => __DIR__ . '/../..' . '/application/wizardhelper.class.inc.php',
'XLSXWriter' => __DIR__ . '/../..' . '/application/xlsxwriter.class.php',
'XMLBulkExport' => __DIR__ . '/../..' . '/core/xmlbulkexport.class.inc.php',
'ajax_page' => __DIR__ . '/../..' . '/application/ajaxwebpage.class.inc.php',
'appUserPreferences' => __DIR__ . '/../..' . '/application/user.preferences.class.inc.php',
'cmdbAbstractObject' => __DIR__ . '/../..' . '/application/cmdbabstract.class.inc.php',
'cmdbDataGenerator' => __DIR__ . '/../..' . '/core/data.generator.class.inc.php',
@@ -3568,6 +3558,7 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'iBackofficeLinkedScriptsExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iBackofficeLinkedStylesheetsExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iBackofficeReadyScriptExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iBackofficeSassExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iBackofficeScriptExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iBackofficeStyleExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iBackupExtraFilesExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
@@ -3587,7 +3578,6 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'iNewsroomProvider' => __DIR__ . '/../..' . '/application/newsroomprovider.class.inc.php',
'iOnClassInitialization' => __DIR__ . '/../..' . '/core/metamodelmodifier.inc.php',
'iPageUIBlockExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iPageUIExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iPopupMenuExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iPortalUIExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',
'iPreferencesExtension' => __DIR__ . '/../..' . '/application/applicationextension.inc.php',

View File

@@ -3,7 +3,7 @@
'name' => 'combodo/itop',
'pretty_version' => 'dev-develop',
'version' => 'dev-develop',
'reference' => '1bf53bae2a481c76bba07e2f6d3447b4008efacd',
'reference' => '3da33c4c647c709b6e3e1e62691f2b8a2df0d482',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -22,7 +22,7 @@
'combodo/itop' => array(
'pretty_version' => 'dev-develop',
'version' => 'dev-develop',
'reference' => '1bf53bae2a481c76bba07e2f6d3447b4008efacd',
'reference' => '3da33c4c647c709b6e3e1e62691f2b8a2df0d482',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -232,8 +232,8 @@
'psr/container-implementation' => array(
'dev_requirement' => false,
'provided' => array(
0 => '^1.0',
1 => '1.1|2.0',
0 => '1.1|2.0',
1 => '^1.0',
),
),
'psr/event-dispatcher' => array(

View File

@@ -38,7 +38,6 @@ use Dict;
use ExecutionKPI;
use InlineImage;
use iPageUIBlockExtension;
use iPageUIExtension;
use MetaModel;
use UserRights;
use utils;
@@ -623,34 +622,9 @@ JS
return $aNewEntry;
}
/**
* Render the banner HTML which can come from both iTop itself and from extensions
*
* @see \iPageUIExtension::GetBannerHtml()
* @internal
*
* @return string
* @since 3.0.0
*/
protected function RenderBannerHtml()
{
$sBannerHtml = '';
// Call the extensions to add content to the page, warning they can also add styles or scripts through as they have access to the iTopWebPage
$sAPIClassName = iPageUIExtension::class;
/** @var \iPageUIExtension $oExtensionInstance */
foreach (MetaModel::EnumPlugins($sAPIClassName) as $oExtensionInstance) {
DeprecatedCallsLog::NotifyDeprecatedPhpApi(get_class($oExtensionInstance), $sAPIClassName, "GetBannerHtml", "use " . iPageUIBlockExtension::class . "::GetBannerBlock() instead");
$sBannerHtml .= $oExtensionInstance->GetBannerHtml($this);
}
return $sBannerHtml;
}
/**
* Render the banner UIBlock which can come from both iTop itself and from extensions
*
* @see \iPageUIExtension::GetBannerHtml()
* @internal
*
* @return iUIBlock
@@ -673,34 +647,10 @@ JS
return $oBanner;
}
/**
* Render the header HTML which can come from both iTop itself and from extensions
*
* @see \iPageUIExtension::GetNorthPaneHtml()
* @internal
*
* @return string
* @since 3.0.0
*/
protected function RenderHeaderHtml()
{
$sHeaderHtml = '';
// Call the extensions to add content to the page, warning they can also add styles or scripts through as they have access to the iTopWebPage
$sAPIClassName = iPageUIExtension::class;
/** @var \iPageUIExtension $oExtensionInstance */
foreach (MetaModel::EnumPlugins($sAPIClassName) as $oExtensionInstance) {
DeprecatedCallsLog::NotifyDeprecatedPhpApi(get_class($oExtensionInstance), $sAPIClassName, "GetNorthPaneHtml", "use " . iPageUIBlockExtension::class . "::GetHeaderBlock() instead");
$sHeaderHtml .= $oExtensionInstance->GetNorthPaneHtml($this);
}
return $sHeaderHtml;
}
/**
* Render the header UIBlock which can come from both iTop itself and from extensions
*
* @see \iPageUIExtension::GetHeaderHtml()
* @internal
*
* @return iUIBlock
@@ -772,34 +722,10 @@ HTML;
return $oHeader;
}
/**
* Render the footer HTML which can come from both iTop itself and from extensions
*
* @see \iPageUIExtension::GetSouthPaneHtml()
* @internal
*
* @return string
* @since 3.0.0
*/
protected function RenderFooterHtml()
{
$sFooterHtml = '';
// Call the extensions to add content to the page, warning they can also add styles or scripts through as they have access to the iTopWebPage
$sAPIClassName = iPageUIExtension::class;
/** @var \iPageUIExtension $oExtensionInstance */
foreach (MetaModel::EnumPlugins($sAPIClassName) as $oExtensionInstance) {
DeprecatedCallsLog::NotifyDeprecatedPhpApi(get_class($oExtensionInstance), $sAPIClassName, "GetSouthPaneHtml", "use " . iPageUIBlockExtension::class . "::GetFooterBlock() instead");
$sFooterHtml .= $oExtensionInstance->GetSouthPaneHtml($this);
}
return $sFooterHtml;
}
/**
* Render the footer UIBlock which can come from both iTop itself and from extensions
*
* @see \iPageUIExtension::GetSouthPaneHtml()
* @internal
*
* @return iUIBlock
@@ -939,11 +865,8 @@ HTML;
// Layouts
$aData['aLayouts'] = [
'sBanner' => $this->RenderBannerHtml(),
'oBanner' => $this->RenderBannerBlock(),
'sHeader' => $this->RenderHeaderHtml(),
'oHeader' => $this->RenderHeaderBlock(),
'sFooter' => $this->RenderFooterHtml(),
'oFooter' => $this->RenderFooterBlock(),
];
// - Prepare navigation menu

View File

@@ -2,9 +2,6 @@
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
<div id="ibo-page-banner" data-role="ibo-page-banner">
{% if aLayouts.sBanner is not empty %}
{{ aLayouts.sBanner|raw }}
{% endif %}
{{ render_block(aLayouts.oBanner, {aPage: aPage}) }}
</div>
{% endapply %}

View File

@@ -3,9 +3,6 @@
{% apply spaceless %}
<div id="ibo-page-Footer" data-role="ibo-page-Footer">
{% if aLayouts.sFooter is not empty %}
{{ aLayouts.sFooter|raw }}
{% endif %}
{{ render_block(aLayouts.oFooter, {aPage: aPage}) }}
</div>

View File

@@ -2,9 +2,6 @@
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
<div id="ibo-page-header" data-role="ibo-page-header">
{% if aLayouts.sHeader is not empty %}
{{ aLayouts.sHeader|raw }}
{% endif %}
{{ render_block(aLayouts.oHeader, {aPage: aPage}) }}
</div>
{% endapply %}

View File

@@ -87,10 +87,6 @@ class ApplicationExtensionTest extends ItopCustomDatamodelTestCase
\iPopupMenuExtension::class,
static::ENUM_API_CALL_METHOD_ENUMPLUGINS,
],
\iPageUIExtension::class => [
\iPageUIExtension::class,
static::ENUM_API_CALL_METHOD_ENUMPLUGINS,
],
\iPageUIBlockExtension::class => [
\iPageUIBlockExtension::class,
static::ENUM_API_CALL_METHOD_ENUMPLUGINS,

View File

@@ -104,16 +104,6 @@ class ExampleFor_ApplicationPopupMenuItem extends \ApplicationPopupMenuItem
{
// Do nothing, we just need the class to exists for the unit test
}
}
]]></content>
</snippet>
<snippet id="ExampleFor_iPageUIExtension" _delta="define">
<placement>core</placement>
<rank>0</rank>
<content><![CDATA[
class ExampleFor_iPageUIExtension extends \AbstractPageUIExtension
{
// Do nothing, we just need the class to exists for the unit test
}
]]></content>
</snippet>