viewscript.php
来自「Bug tracker, and reporter.」· PHP 代码 · 共 145 行
PHP
145 行
<?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_Form * @subpackage Decorator * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License *//** Zend_Form_Decorator_Abstract */require_once 'Zend/Form/Decorator/Abstract.php';/** * Zend_Form_Decorator_ViewScript * * Render a view script as a decorator * * Accepts the options: * - separator: separator to use between view script content and provided content (defaults to PHP_EOL) * - placement: whether to append or prepend view script content to provided content (defaults to prepend) * - viewScript: view script to use * * The view script is rendered as a partial; the element being decorated is * passed in as the 'element' variable: * <code> * // in view script: * echo $this->element->getLabel(); * </code> * * Any options other than separator, placement, and viewScript are passed to * the partial as local variables. * * @category Zend * @package Zend_Form * @subpackage Decorator * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id: ViewScript.php 8653 2008-03-07 20:24:55Z matthew $ */class Zend_Form_Decorator_ViewScript extends Zend_Form_Decorator_Abstract{ /** * Default placement: append * @var string */ protected $_placement = 'APPEND'; /** * View script to render * @var string */ protected $_viewScript; /** * Set view script * * @param string $script * @return Zend_Form_Decorator_ViewScript */ public function setViewScript($script) { $this->_viewScript = (string) $script; return $this; } /** * Get view script * * @return string|null */ public function getViewScript() { if (null === $this->_viewScript) { if (null !== ($element = $this->getElement())) { if (null !== ($viewScript = $element->getAttrib('viewScript'))) { $this->setViewScript($viewScript); return $viewScript; } } if (null !== ($viewScript = $this->getOption('viewScript'))) { $this->setViewScript($viewScript) ->removeOption('viewScript'); } } return $this->_viewScript; } /** * Render a view script * * @param string $content * @return string */ public function render($content) { $element = $this->getElement(); $view = $element->getView(); if (null === $view) { return $content; } $viewScript = $this->getViewScript(); if (empty($viewScript)) { require_once 'Zend/Form/Exception.php'; throw new Zend_Form_Exception('No view script registered with ViewScript decorator'); } $separator = $this->getSeparator(); $placement = $this->getPlacement(); $vars = $this->getOptions(); $vars['element'] = $element; $vars['content'] = $content; $vars['decorator'] = $this; $renderedContent = $view->partial($viewScript, $vars); // Get placement again to see if it has changed $placement = $this->getPlacement(); switch ($placement) { case self::PREPEND: return $renderedContent . $separator . $content; case self::APPEND: return $content . $separator . $renderedContent; default: return $renderedContent; } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?