diff options
Diffstat (limited to 'www/wiki/skins/chameleon/src/ChameleonTemplate.php')
-rw-r--r-- | www/wiki/skins/chameleon/src/ChameleonTemplate.php | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/www/wiki/skins/chameleon/src/ChameleonTemplate.php b/www/wiki/skins/chameleon/src/ChameleonTemplate.php new file mode 100644 index 00000000..fbcca0ae --- /dev/null +++ b/www/wiki/skins/chameleon/src/ChameleonTemplate.php @@ -0,0 +1,117 @@ +<?php +/** + * File holding the ChameleonTemplate class + * + * This file is part of the MediaWiki skin Chameleon. + * + * @copyright 2013 - 2016, Stephan Gambke + * @license GNU General Public License, version 3 (or any later version) + * + * The Chameleon skin 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 3 of the License, or (at your option) any + * later version. + * + * The Chameleon skin 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, see <http://www.gnu.org/licenses/>. + * + * @file + * @ingroup Skins + */ + +namespace Skins\Chameleon; + +use BaseTemplate; +use SkinChameleon; + +/** + * BaseTemplate class for the Chameleon skin + * + * @author Stephan Gambke + * @since 1.0 + * @ingroup Skins + */ +class ChameleonTemplate extends BaseTemplate { + + /** + * Outputs the entire contents of the page + */ + public function execute() { + + // output the head element + // The headelement defines the <body> tag itself, it shouldn't be included in the html text + // To add attributes or classes to the body tag override addToBodyAttributes() in SkinChameleon + $this->html( 'headelement' ); + echo $this->getSkin()->getComponentFactory()->getRootComponent()->getHtml(); + $this->printTrail(); + echo "</body>\n</html>"; + + } + + /** + * Overrides method in parent class that is unprotected against non-existent indexes in $this->data + * + * @param string $key + * + * @return string|void + */ + public function html( $key ) { + echo $this->get( $key ); + } + + /** + * Get the Skin object related to this object + * + * @return SkinChameleon + */ + public function getSkin() { + return parent::getSkin(); + } + + /** + * @param \DOMElement $description + * @param int $indent + * @param string $htmlClassAttribute + * + * @deprecated since 1.6. Use getSkin()->getComponentFactory()->getComponent() + * + * @throws \MWException + * @return \Skins\Chameleon\Components\Container + */ + public function getComponent( \DOMElement $description, $indent = 0, $htmlClassAttribute = '' ) { + return $this->getSkin()->getComponentFactory()->getComponent( $description, $indent, $htmlClassAttribute ); + } + + /** + * Generates a list item for a navigation, portlet, portal, sidebar... list + * + * Overrides the parent function to ensure ids are unique. + * + * @param $key string, usually a key from the list you are generating this link from. + * @param $item array, of list item data containing some of a specific set of keys. + * + * The "id" and "class" keys will be used as attributes for the list item, + * if "active" contains a value of true a "active" class will also be appended to class. + * + * @param $options array + * + * @return string + */ + public function makeListItem( $key, $item, $options = array() ) { + + foreach ( array( 'id', 'single-id' ) as $attrib ) { + + if ( isset ( $item[ $attrib ] ) ) { + $item[ $attrib ] = IdRegistry::getRegistry()->getId( $item[ $attrib ], $this ); + } + + } + + return parent::makeListItem( $key, $item, $options ); + } +} |