mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue
synced 2024-11-15 18:29:50 +00:00
6905b85d67
The Group shouldn't depend upon concrete MenuEntry definition. Different Menus can present different MenuElements. Code should allow easy extensions, not limit only to single MenuEntry definition. Changes: - introduced IMenuEntry interface - MenuEntry implements IMenuEntry - removed isJSOnly from logic as it's related only to one menu element (Watchstar) and Group shouldn't be aware of some special handling for some elements. The IMenuEntry shouldn't define this method - getName, getComponents, getCSSClasses should have defined return types Bug: 1221792 Change-Id: I0646df734e869c26bfa8c3a772200e8258a8acce
49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
<?php
|
|
/**
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program 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 General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
namespace MediaWiki\Minerva\Menu;
|
|
|
|
/**
|
|
* Model for a menu entry.
|
|
*/
|
|
interface IMenuEntry {
|
|
|
|
/**
|
|
* Get the menu entry name/identifier
|
|
* @return string
|
|
*/
|
|
public function getName();
|
|
|
|
/**
|
|
* Get the CSS classes that should be applied to the element
|
|
* @return string[]
|
|
*/
|
|
public function getCSSClasses(): array;
|
|
|
|
/**
|
|
* Returns the list of components of the menu entry
|
|
*
|
|
* Each component is an array with:
|
|
* - text -> text to show
|
|
* - href -> href attribute
|
|
* - class -> css class applied to it
|
|
* @return array
|
|
*/
|
|
public function getComponents(): array;
|
|
|
|
}
|