These new classes provide a mechanism for defining the behavior of slots, like the content models it supports. This acts as an extension point for extensions that need to define custom slots, like the MediaInfo extension for the SDC project. Bug: T194046 Change-Id: Ia20c98eee819293199e541be75b5521f6413bc2f
71 lines
2.2 KiB
PHP
71 lines
2.2 KiB
PHP
<?php
|
|
/**
|
|
* This file is part of MediaWiki.
|
|
*
|
|
* 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.
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* @file
|
|
*/
|
|
|
|
namespace MediaWiki\Revision;
|
|
|
|
use MediaWiki\Linker\LinkTarget;
|
|
|
|
/**
|
|
* A SlotRoleHandler for providing basic functionality for undefined slot roles.
|
|
*
|
|
* This class is intended to be used when encountering slots with a role that used to be defined
|
|
* by an extension, but no longer is backed by hany specific handler, since the extension in
|
|
* question has been uninstalled. It may also be used for pages imported from another wiki.
|
|
*
|
|
* @since 1.33
|
|
*/
|
|
class FallbackSlotRoleHandler extends SlotRoleHandler {
|
|
|
|
public function __construct( $role ) {
|
|
// treat unknown content as plain text
|
|
parent::__construct( $role, CONTENT_MODEL_TEXT );
|
|
}
|
|
|
|
/**
|
|
* @param LinkTarget $page
|
|
*
|
|
* @return bool Always false, to prevent undefined slots from being used in new revisions.
|
|
*/
|
|
public function isAllowedOn( LinkTarget $page ) {
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* @param string $model
|
|
* @param LinkTarget $page
|
|
*
|
|
* @return bool Always false, to prevent undefined slots from being used for
|
|
* arbitrary content.
|
|
*/
|
|
public function isAllowedModel( $model, LinkTarget $page ) {
|
|
return false;
|
|
}
|
|
|
|
public function getOutputLayoutHints() {
|
|
// TODO: should be return [ 'display' => 'none'] here, causing undefined slots
|
|
// to be hidden? We'd still need some place to surface the content of such
|
|
// slots, see T209923.
|
|
|
|
return parent::getOutputLayoutHints(); // TODO: Change the autogenerated stub
|
|
}
|
|
|
|
}
|