summaryrefslogtreecommitdiffstats
path: root/library/vendor/Zend/View/Helper/HeadTitle.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--library/vendor/Zend/View/Helper/HeadTitle.php218
1 files changed, 218 insertions, 0 deletions
diff --git a/library/vendor/Zend/View/Helper/HeadTitle.php b/library/vendor/Zend/View/Helper/HeadTitle.php
new file mode 100644
index 0000000..77aef26
--- /dev/null
+++ b/library/vendor/Zend/View/Helper/HeadTitle.php
@@ -0,0 +1,218 @@
+<?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-2015 Zend Technologies USA Inc. (http://www.zend.com)
+ * @version $Id$
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ */
+
+/** Zend_View_Helper_Placeholder_Container_Standalone */
+
+/**
+ * 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-2015 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;
+
+ /**
+ * Default title rendering order (i.e. order in which each title attached)
+ *
+ * @var string
+ */
+ protected $_defaultAttachOrder = null;
+
+ /**
+ * Retrieve placeholder for title element and optionally set state
+ *
+ * @param string $title
+ * @param string $setType
+ * @return Zend_View_Helper_HeadTitle
+ */
+ public function headTitle($title = null, $setType = null)
+ {
+ if (null === $setType) {
+ $setType = (null === $this->getDefaultAttachOrder())
+ ? Zend_View_Helper_Placeholder_Container_Abstract::APPEND
+ : $this->getDefaultAttachOrder();
+ }
+ $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;
+ }
+
+ /**
+ * Set a default order to add titles
+ *
+ * @param string $setType
+ */
+ public function setDefaultAttachOrder($setType)
+ {
+ if (!in_array($setType, array(
+ Zend_View_Helper_Placeholder_Container_Abstract::APPEND,
+ Zend_View_Helper_Placeholder_Container_Abstract::SET,
+ Zend_View_Helper_Placeholder_Container_Abstract::PREPEND
+ ))) {
+ throw new Zend_View_Exception("You must use a valid attach order: 'PREPEND', 'APPEND' or 'SET'");
+ }
+
+ $this->_defaultAttachOrder = $setType;
+ return $this;
+ }
+
+ /**
+ * Get the default attach order, if any.
+ *
+ * @return mixed
+ */
+ public function getDefaultAttachOrder()
+ {
+ return $this->_defaultAttachOrder;
+ }
+
+ /**
+ * 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 {
+ $e = new Zend_View_Exception("You must set an instance of Zend_Translate or Zend_Translate_Adapter");
+ $e->setView($this->view);
+ throw $e;
+ }
+ 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) {
+ 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>';
+ }
+}