|
TYPO3 API
SVNRelease
|
00001 <?php 00002 00003 /* * 00004 * This script belongs to the FLOW3 package "Fluid". * 00005 * * 00006 * It is free software; you can redistribute it and/or modify it under * 00007 * the terms of the GNU Lesser General Public License as published by the * 00008 * Free Software Foundation, either version 3 of the License, or (at your * 00009 * option) any later version. * 00010 * * 00011 * This script is distributed in the hope that it will be useful, but * 00012 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- * 00013 * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser * 00014 * General Public License for more details. * 00015 * * 00016 * You should have received a copy of the GNU Lesser General Public * 00017 * License along with the script. * 00018 * If not, see http://www.gnu.org/licenses/lgpl.html * 00019 * * 00020 * The TYPO3 project - inspiring people to share! * 00021 * */ 00022 00023 /** 00024 * A view helper for creating links to external targets. 00025 * 00026 * = Examples = 00027 * 00028 * <code> 00029 * <f:link.external uri="http://www.typo3.org" target="_blank">external link</f:link.external> 00030 * </code> 00031 * <output> 00032 * <a href="http://www.typo3.org" target="_blank">external link</a> 00033 * </output> 00034 * 00035 * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later 00036 * @api 00037 */ 00038 class Tx_Fluid_ViewHelpers_Link_ExternalViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractTagBasedViewHelper { 00039 00040 /** 00041 * @var string 00042 */ 00043 protected $tagName = 'a'; 00044 00045 /** 00046 * Initialize arguments 00047 * 00048 * @return void 00049 * @author Sebastian Kurfürst <sebastian@typo3.org> 00050 * @api 00051 */ 00052 public function initializeArguments() { 00053 $this->registerUniversalTagAttributes(); 00054 $this->registerTagAttribute('name', 'string', 'Specifies the name of an anchor'); 00055 $this->registerTagAttribute('rel', 'string', 'Specifies the relationship between the current document and the linked document'); 00056 $this->registerTagAttribute('rev', 'string', 'Specifies the relationship between the linked document and the current document'); 00057 $this->registerTagAttribute('target', 'string', 'Specifies where to open the linked document'); 00058 } 00059 00060 /** 00061 * @param string $uri the URI that will be put in the href attribute of the rendered link tag 00062 * @param string $defaultScheme scheme the href attribute will be prefixed with if specified $uri does not contain a scheme already 00063 * @return string Rendered link 00064 * @author Bastian Waidelich <bastian@typo3.org> 00065 * @api 00066 */ 00067 public function render($uri, $defaultScheme = 'http') { 00068 $scheme = parse_url($uri, PHP_URL_SCHEME); 00069 if ($scheme === NULL && $defaultScheme !== '') { 00070 $uri = $defaultScheme . '://' . $uri; 00071 } 00072 $this->tag->addAttribute('href', $uri); 00073 $this->tag->setContent($this->renderChildren()); 00074 00075 return $this->tag->render(); 00076 } 00077 } 00078 00079 00080 ?>
1.8.0