. * * @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 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 "\n"; } /** * 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 ); } }