Viewing file: HeadTitle.php (5.12 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_View * @subpackage Helper * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @version $Id: HeadTitle.php 18951 2009-11-12 16:26:19Z alexander $ * @license http://framework.zend.com/license/new-bsd New BSD License */
/** Zend_View_Helper_Placeholder_Container_Standalone */ require_once 'Zend/View/Helper/Placeholder/Container/Standalone.php';
/** * Helper for setting and retrieving title element for HTML head * * @uses Zend_View_Helper_Placeholder_Container_Standalone * @package Zend_View * @subpackage Helper * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_View_Helper_HeadTitle extends Zend_View_Helper_Placeholder_Container_Standalone { /** * Registry key for placeholder * @var string */ protected $_regKey = 'Zend_View_Helper_HeadTitle';
/** * Whether or not auto-translation is enabled * @var boolean */ protected $_translate = false;
/** * Translation object * * @var Zend_Translate_Adapter */ protected $_translator;
/** * Retrieve placeholder for title element and optionally set state * * @param string $title * @param string $setType * @param string $separator * @return Zend_View_Helper_HeadTitle */ public function headTitle($title = null, $setType = Zend_View_Helper_Placeholder_Container_Abstract::APPEND) { $title = (string) $title; if ($title !== '') { if ($setType == Zend_View_Helper_Placeholder_Container_Abstract::SET) { $this->set($title); } elseif ($setType == Zend_View_Helper_Placeholder_Container_Abstract::PREPEND) { $this->prepend($title); } else { $this->append($title); } }
return $this; }
/** * Sets a translation Adapter for translation * * @param Zend_Translate|Zend_Translate_Adapter $translate * @return Zend_View_Helper_HeadTitle */ public function setTranslator($translate) { if ($translate instanceof Zend_Translate_Adapter) { $this->_translator = $translate; } elseif ($translate instanceof Zend_Translate) { $this->_translator = $translate->getAdapter(); } else { require_once 'Zend/View/Exception.php'; throw new Zend_View_Exception("You must set an instance of Zend_Translate or Zend_Translate_Adapter"); } return $this; }
/* * Retrieve translation object * * If none is currently registered, attempts to pull it from the registry * using the key 'Zend_Translate'. * * @return Zend_Translate_Adapter|null */ public function getTranslator() { if (null === $this->_translator) { require_once 'Zend/Registry.php'; if (Zend_Registry::isRegistered('Zend_Translate')) { $this->setTranslator(Zend_Registry::get('Zend_Translate')); } } return $this->_translator; }
/** * Enables translation * * @return Zend_View_Helper_HeadTitle */ public function enableTranslation() { $this->_translate = true; return $this; }
/** * Disables translation * * @return Zend_View_Helper_HeadTitle */ public function disableTranslation() { $this->_translate = false; return $this; }
/** * Turn helper into string * * @param string|null $indent * @param string|null $locale * @return string */ public function toString($indent = null, $locale = null) { $indent = (null !== $indent) ? $this->getWhitespace($indent) : $this->getIndent();
$items = array();
if($this->_translate && $translator = $this->getTranslator()) { foreach ($this as $item) { $items[] = $translator->translate($item, $locale); } } else { foreach ($this as $item) { $items[] = $item; } }
$separator = $this->getSeparator(); $output = ''; if(($prefix = $this->getPrefix())) { $output .= $prefix; } $output .= implode($separator, $items); if(($postfix = $this->getPostfix())) { $output .= $postfix; }
$output = ($this->_autoEscape) ? $this->_escape($output) : $output;
return $indent . '<title>' . $output . '</title>'; } }
|