import v1.0.0-RC4 | 2009-05-20
This commit is contained in:
1085
libs/Zend/View/Abstract.php
Normal file
1085
libs/Zend/View/Abstract.php
Normal file
File diff suppressed because it is too large
Load Diff
51
libs/Zend/View/Exception.php
Normal file
51
libs/Zend/View/Exception.php
Normal file
@ -0,0 +1,51 @@
|
||||
<?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_Date
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Exception.php 8064 2008-02-16 10:58:39Z thomas $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Zend_Exception
|
||||
*/
|
||||
require_once 'Zend/Exception.php';
|
||||
|
||||
|
||||
/**
|
||||
* Exception for Zend_View class.
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Date
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Exception extends Zend_Exception
|
||||
{
|
||||
protected $view = null;
|
||||
|
||||
public function __construct($message, Zend_View_Interface $view = null)
|
||||
{
|
||||
$this->view = $view;
|
||||
parent::__construct($message);
|
||||
}
|
||||
|
||||
public function getView()
|
||||
{
|
||||
return $this->view;
|
||||
}
|
||||
}
|
64
libs/Zend/View/Helper/Abstract.php
Normal file
64
libs/Zend/View/Helper/Abstract.php
Normal file
@ -0,0 +1,64 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Abstract.php 10664 2008-08-05 10:56:06Z matthew $
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see Zend_View_Helper_Interface
|
||||
*/
|
||||
require_once 'Zend/View/Helper/Interface.php';
|
||||
|
||||
/**
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
abstract class Zend_View_Helper_Abstract implements Zend_View_Helper_Interface
|
||||
{
|
||||
/**
|
||||
* View object
|
||||
*
|
||||
* @var Zend_View_Interface
|
||||
*/
|
||||
public $view = null;
|
||||
|
||||
/**
|
||||
* Set the View object
|
||||
*
|
||||
* @param Zend_View_Interface $view
|
||||
* @return Zend_View_Helper_Abstract
|
||||
*/
|
||||
public function setView(Zend_View_Interface $view)
|
||||
{
|
||||
$this->view = $view;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Strategy pattern: currently unutilized
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function direct()
|
||||
{
|
||||
}
|
||||
}
|
160
libs/Zend/View/Helper/Action.php
Normal file
160
libs/Zend/View/Helper/Action.php
Normal file
@ -0,0 +1,160 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Action.php 10664 2008-08-05 10:56:06Z matthew $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Helper for rendering output of a controller action
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Action extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public $defaultModule;
|
||||
|
||||
/**
|
||||
* @var Zend_Controller_Dispatcher_Interface
|
||||
*/
|
||||
public $dispatcher;
|
||||
|
||||
/**
|
||||
* @var Zend_Controller_Request_Abstract
|
||||
*/
|
||||
public $request;
|
||||
|
||||
/**
|
||||
* @var Zend_Controller_Response_Abstract
|
||||
*/
|
||||
public $response;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Grab local copies of various MVC objects
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$front = Zend_Controller_Front::getInstance();
|
||||
$modules = $front->getControllerDirectory();
|
||||
if (empty($modules)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Action helper depends on valid front controller instance');
|
||||
}
|
||||
|
||||
$request = $front->getRequest();
|
||||
$response = $front->getResponse();
|
||||
|
||||
if (empty($request) || empty($response)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Action view helper requires both a registered request and response object in the front controller instance');
|
||||
}
|
||||
|
||||
$this->request = clone $request;
|
||||
$this->response = clone $response;
|
||||
$this->dispatcher = clone $front->getDispatcher();
|
||||
$this->defaultModule = $front->getDefaultModule();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset object states
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function resetObjects()
|
||||
{
|
||||
$params = $this->request->getUserParams();
|
||||
foreach (array_keys($params) as $key) {
|
||||
$this->request->setParam($key, null);
|
||||
}
|
||||
|
||||
$this->response->clearBody();
|
||||
$this->response->clearHeaders()
|
||||
->clearRawHeaders();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve rendered contents of a controller action
|
||||
*
|
||||
* If the action results in a forward or redirect, returns empty string.
|
||||
*
|
||||
* @param string $action
|
||||
* @param string $controller
|
||||
* @param string $module Defaults to default module
|
||||
* @param array $params
|
||||
* @return string
|
||||
*/
|
||||
public function action($action, $controller, $module = null, array $params = array())
|
||||
{
|
||||
$this->resetObjects();
|
||||
if (null === $module) {
|
||||
$module = $this->defaultModule;
|
||||
}
|
||||
|
||||
// clone the view object to prevent over-writing of view variables
|
||||
$viewRendererObj = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
|
||||
Zend_Controller_Action_HelperBroker::addHelper(clone $viewRendererObj);
|
||||
|
||||
$this->request->setParams($params)
|
||||
->setModuleName($module)
|
||||
->setControllerName($controller)
|
||||
->setActionName($action)
|
||||
->setDispatched(true);
|
||||
|
||||
$this->dispatcher->dispatch($this->request, $this->response);
|
||||
|
||||
// reset the viewRenderer object to it's original state
|
||||
Zend_Controller_Action_HelperBroker::addHelper($viewRendererObj);
|
||||
|
||||
|
||||
if (!$this->request->isDispatched()
|
||||
|| $this->response->isRedirect())
|
||||
{
|
||||
// forwards and redirects render nothing
|
||||
return '';
|
||||
}
|
||||
|
||||
$return = $this->response->getBody();
|
||||
$this->resetObjects();
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clone the current View
|
||||
*
|
||||
* @return Zend_View_Interface
|
||||
*/
|
||||
public function cloneView()
|
||||
{
|
||||
$view = clone $this->view;
|
||||
$view->clearVars();
|
||||
return $view;
|
||||
}
|
||||
}
|
95
libs/Zend/View/Helper/DeclareVars.php
Normal file
95
libs/Zend/View/Helper/DeclareVars.php
Normal file
@ -0,0 +1,95 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: DeclareVars.php 10664 2008-08-05 10:56:06Z matthew $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Helper for declaring default values of template variables
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_DeclareVars extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/**
|
||||
* The view object that created this helper object.
|
||||
* @var Zend_View
|
||||
*/
|
||||
public $view;
|
||||
|
||||
/**
|
||||
* Declare template vars to set default values and avoid notices when using strictVars
|
||||
*
|
||||
* Primarily for use when using {@link Zend_View_Abstract::strictVars() Zend_View strictVars()},
|
||||
* this helper can be used to declare template variables that may or may
|
||||
* not already be set in the view object, as well as to set default values.
|
||||
* Arrays passed as arguments to the method will be used to set default
|
||||
* values; otherwise, if the variable does not exist, it is set to an empty
|
||||
* string.
|
||||
*
|
||||
* Usage:
|
||||
* <code>
|
||||
* $this->declareVars(
|
||||
* 'varName1',
|
||||
* 'varName2',
|
||||
* array('varName3' => 'defaultValue',
|
||||
* 'varName4' => array()
|
||||
* )
|
||||
* );
|
||||
* </code>
|
||||
*
|
||||
* @param string|array variable number of arguments, all string names of variables to test
|
||||
* @return void
|
||||
*/
|
||||
public function declareVars()
|
||||
{
|
||||
$args = func_get_args();
|
||||
foreach($args as $key) {
|
||||
if (is_array($key)) {
|
||||
foreach ($key as $name => $value) {
|
||||
$this->_declareVar($name, $value);
|
||||
}
|
||||
} else if (!isset($view->$key)) {
|
||||
$this->_declareVar($key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a view variable
|
||||
*
|
||||
* Checks to see if a $key is set in the view object; if not, sets it to $value.
|
||||
*
|
||||
* @param string $key
|
||||
* @param string $value Defaults to an empty string
|
||||
* @return void
|
||||
*/
|
||||
protected function _declareVar($key, $value = '')
|
||||
{
|
||||
if (!isset($this->view->$key)) {
|
||||
$this->view->$key = $value;
|
||||
}
|
||||
}
|
||||
}
|
191
libs/Zend/View/Helper/Doctype.php
Normal file
191
libs/Zend/View/Helper/Doctype.php
Normal file
@ -0,0 +1,191 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Placeholder.php 7078 2007-12-11 14:29:33Z matthew $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_Registry */
|
||||
require_once 'Zend/Registry.php';
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Helper for setting and retrieving the doctype
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Doctype extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/**#@+
|
||||
* DocType constants
|
||||
*/
|
||||
const XHTML11 = 'XHTML11';
|
||||
const XHTML1_STRICT = 'XHTML1_STRICT';
|
||||
const XHTML1_TRANSITIONAL = 'XHTML1_TRANSITIONAL';
|
||||
const XHTML1_FRAMESET = 'XHTML1_FRAMESET';
|
||||
const XHTML_BASIC1 = 'XHTML_BASIC1';
|
||||
const HTML4_STRICT = 'HTML4_STRICT';
|
||||
const HTML4_LOOSE = 'HTML4_LOOSE';
|
||||
const HTML4_FRAMESET = 'HTML4_FRAMESET';
|
||||
const CUSTOM_XHTML = 'CUSTOM_XHTML';
|
||||
const CUSTOM = 'CUSTOM';
|
||||
/**#@-*/
|
||||
|
||||
/**
|
||||
* Default DocType
|
||||
* @var string
|
||||
*/
|
||||
protected $_defaultDoctype = self::HTML4_LOOSE;
|
||||
|
||||
/**
|
||||
* Registry containing current doctype and mappings
|
||||
* @var ArrayObject
|
||||
*/
|
||||
protected $_registry;
|
||||
|
||||
/**
|
||||
* Registry key in which helper is stored
|
||||
* @var string
|
||||
*/
|
||||
protected $_regKey = 'Zend_View_Helper_Doctype';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Map constants to doctype strings, and set default doctype
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
if (!Zend_Registry::isRegistered($this->_regKey)) {
|
||||
$this->_registry = new ArrayObject(array(
|
||||
'doctypes' => array(
|
||||
self::XHTML11 => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
|
||||
self::XHTML1_STRICT => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
|
||||
self::XHTML1_TRANSITIONAL => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
|
||||
self::XHTML1_FRAMESET => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
|
||||
self::XHTML_BASIC1 => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">',
|
||||
self::HTML4_STRICT => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
|
||||
self::HTML4_LOOSE => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
|
||||
self::HTML4_FRAMESET => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
|
||||
)
|
||||
));
|
||||
Zend_Registry::set($this->_regKey, $this->_registry);
|
||||
$this->setDoctype($this->_defaultDoctype);
|
||||
} else {
|
||||
$this->_registry = Zend_Registry::get($this->_regKey);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set or retrieve doctype
|
||||
*
|
||||
* @param string $doctype
|
||||
* @return Zend_View_Helper_Doctype
|
||||
*/
|
||||
public function doctype($doctype = null)
|
||||
{
|
||||
if (null !== $doctype) {
|
||||
switch ($doctype) {
|
||||
case self::XHTML11:
|
||||
case self::XHTML1_STRICT:
|
||||
case self::XHTML1_TRANSITIONAL:
|
||||
case self::XHTML1_FRAMESET:
|
||||
case self::XHTML_BASIC1:
|
||||
case self::HTML4_STRICT:
|
||||
case self::HTML4_LOOSE:
|
||||
case self::HTML4_FRAMESET:
|
||||
$this->setDoctype($doctype);
|
||||
break;
|
||||
default:
|
||||
if (substr($doctype, 0, 9) != '<!DOCTYPE') {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('The specified doctype is malformed');
|
||||
}
|
||||
if (stristr($doctype, 'xhtml')) {
|
||||
$type = self::CUSTOM_XHTML;
|
||||
} else {
|
||||
$type = self::CUSTOM;
|
||||
}
|
||||
$this->setDoctype($type);
|
||||
$this->_registry['doctypes'][$type] = $doctype;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set doctype
|
||||
*
|
||||
* @param string $doctype
|
||||
* @return Zend_View_Helper_Doctype
|
||||
*/
|
||||
public function setDoctype($doctype)
|
||||
{
|
||||
$this->_registry['doctype'] = $doctype;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve doctype
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDoctype()
|
||||
{
|
||||
return $this->_registry['doctype'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get doctype => string mappings
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getDoctypes()
|
||||
{
|
||||
return $this->_registry['doctypes'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Is doctype XHTML?
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isXhtml()
|
||||
{
|
||||
return (stristr($this->getDoctype(), 'xhtml') ? true : false);
|
||||
}
|
||||
|
||||
/**
|
||||
* String representation of doctype
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
$doctypes = $this->getDoctypes();
|
||||
return $doctypes[$this->getDoctype()];
|
||||
}
|
||||
}
|
79
libs/Zend/View/Helper/Fieldset.php
Normal file
79
libs/Zend/View/Helper/Fieldset.php
Normal file
@ -0,0 +1,79 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Fieldset.php 11301 2008-09-08 20:09:10Z matthew $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_FormElement */
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
/**
|
||||
* Helper for rendering fieldsets
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Fieldset extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Render HTML form
|
||||
*
|
||||
* @param string $name Form name
|
||||
* @param string $content Form content
|
||||
* @param array $attribs HTML form attributes
|
||||
* @return string
|
||||
*/
|
||||
public function fieldset($name, $content, $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $content, $attribs);
|
||||
extract($info);
|
||||
|
||||
// get legend
|
||||
$legend = '';
|
||||
if (isset($attribs['legend'])) {
|
||||
$legendString = trim($attribs['legend']);
|
||||
if (!empty($legendString)) {
|
||||
$legend = '<legend>'
|
||||
. (($escape) ? $this->view->escape($legendString) : $legendString)
|
||||
. '</legend>' . PHP_EOL;
|
||||
}
|
||||
unset($attribs['legend']);
|
||||
}
|
||||
|
||||
// get id
|
||||
if (!empty($id)) {
|
||||
$id = ' id="' . $this->view->escape($id) . '"';
|
||||
} else {
|
||||
$id = '';
|
||||
}
|
||||
|
||||
// render fieldset
|
||||
$xhtml = '<fieldset'
|
||||
. $id
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. '>'
|
||||
. $legend
|
||||
. $content
|
||||
. '</fieldset>';
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
71
libs/Zend/View/Helper/Form.php
Normal file
71
libs/Zend/View/Helper/Form.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Form.php 10633 2008-08-04 15:19:53Z matthew $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_FormElement */
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
/**
|
||||
* Helper for rendering HTML forms
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Form extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Render HTML form
|
||||
*
|
||||
* @param string $name Form name
|
||||
* @param null|array $attribs HTML form attributes
|
||||
* @param false|string $content Form content
|
||||
* @return string
|
||||
*/
|
||||
public function form($name, $attribs = null, $content = false)
|
||||
{
|
||||
$info = $this->_getInfo($name, $content, $attribs);
|
||||
extract($info);
|
||||
|
||||
if (!empty($id)) {
|
||||
$id = ' id="' . $this->view->escape($id) . '"';
|
||||
} else {
|
||||
$id = '';
|
||||
}
|
||||
|
||||
if (array_key_exists('id', $attribs) && empty($attribs['id'])) {
|
||||
unset($attribs['id']);
|
||||
}
|
||||
|
||||
$xhtml = '<form'
|
||||
. $id
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. '>';
|
||||
|
||||
if (false !== $content) {
|
||||
$xhtml .= $content
|
||||
. '</form>';
|
||||
}
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
104
libs/Zend/View/Helper/FormButton.php
Normal file
104
libs/Zend/View/Helper/FormButton.php
Normal file
@ -0,0 +1,104 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a "button" element
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormButton extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates a 'button' element.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The element value.
|
||||
*
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
*
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formButton($name, $value = null, $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, id, value, attribs, options, listsep, disable
|
||||
|
||||
// Get content
|
||||
$content = '';
|
||||
if (isset($attribs['content'])) {
|
||||
$content = $attribs['content'];
|
||||
unset($attribs['content']);
|
||||
} else {
|
||||
$content = $value;
|
||||
}
|
||||
|
||||
// Ensure type is sane
|
||||
$type = 'button';
|
||||
if (isset($attribs['type'])) {
|
||||
$attribs['type'] = strtolower($attribs['type']);
|
||||
if (in_array($attribs['type'], array('submit', 'reset', 'button'))) {
|
||||
$type = $attribs['type'];
|
||||
}
|
||||
unset($attribs['type']);
|
||||
}
|
||||
|
||||
// build the element
|
||||
if ($disable) {
|
||||
$attribs['disabled'] = 'disabled';
|
||||
}
|
||||
|
||||
$content = ($escape) ? $this->view->escape($content) : $content;
|
||||
|
||||
$xhtml = '<button'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. ' type="' . $type . '"';
|
||||
|
||||
// add a value if one is given
|
||||
if (!empty($value)) {
|
||||
$xhtml .= ' value="' . $this->view->escape($value) . '"';
|
||||
}
|
||||
|
||||
// add attributes and close start tag
|
||||
$xhtml .= $this->_htmlAttribs($attribs) . '>';
|
||||
|
||||
// add content and end tag
|
||||
$xhtml .= $content . '</button>';
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
162
libs/Zend/View/Helper/FormCheckbox.php
Normal file
162
libs/Zend/View/Helper/FormCheckbox.php
Normal file
@ -0,0 +1,162 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a "checkbox" element
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormCheckbox extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Default checked/unchecked options
|
||||
* @var array
|
||||
*/
|
||||
protected static $_defaultCheckedOptions = array(
|
||||
'checked' => '1',
|
||||
'unChecked' => '0'
|
||||
);
|
||||
|
||||
/**
|
||||
* Generates a 'checkbox' element.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
* @param mixed $value The element value.
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formCheckbox($name, $value = null, $attribs = null, array $checkedOptions = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, id, value, attribs, options, listsep, disable
|
||||
|
||||
$checked = false;
|
||||
if (isset($attribs['checked']) && $attribs['checked']) {
|
||||
$checked = true;
|
||||
unset($attribs['checked']);
|
||||
} elseif (isset($attribs['checked'])) {
|
||||
$checked = false;
|
||||
unset($attribs['checked']);
|
||||
}
|
||||
|
||||
$checkedOptions = self::determineCheckboxInfo($value, $checked, $checkedOptions);
|
||||
|
||||
// is the element disabled?
|
||||
$disabled = '';
|
||||
if ($disable) {
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// XHTML or HTML end tag?
|
||||
$endTag = ' />';
|
||||
if (($this->view instanceof Zend_View_Abstract) && !$this->view->doctype()->isXhtml()) {
|
||||
$endTag= '>';
|
||||
}
|
||||
|
||||
// build the element
|
||||
$xhtml = '';
|
||||
if (!strstr($name, '[]')) {
|
||||
$xhtml = $this->_hidden($name, $checkedOptions['unCheckedValue']);
|
||||
}
|
||||
$xhtml .= '<input type="checkbox"'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. ' value="' . $this->view->escape($checkedOptions['checkedValue']) . '"'
|
||||
. $checkedOptions['checkedString']
|
||||
. $disabled
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. $endTag;
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine checkbox information
|
||||
*
|
||||
* @param string $value
|
||||
* @param bool $checked
|
||||
* @param array|null $checkedOptions
|
||||
* @return array
|
||||
*/
|
||||
public static function determineCheckboxInfo($value, $checked, array $checkedOptions = null)
|
||||
{
|
||||
// Checked/unchecked values
|
||||
$checkedValue = null;
|
||||
$unCheckedValue = null;
|
||||
if (is_array($checkedOptions)) {
|
||||
if (array_key_exists('checked', $checkedOptions)) {
|
||||
$checkedValue = (string) $checkedOptions['checked'];
|
||||
unset($checkedOptions['checked']);
|
||||
}
|
||||
if (array_key_exists('unChecked', $checkedOptions)) {
|
||||
$unCheckedValue = (string) $checkedOptions['unChecked'];
|
||||
unset($checkedOptions['unChecked']);
|
||||
}
|
||||
if (null === $checkedValue) {
|
||||
$checkedValue = array_shift($checkedOptions);
|
||||
}
|
||||
if (null === $unCheckedValue) {
|
||||
$unCheckedValue = array_shift($checkedOptions);
|
||||
}
|
||||
} elseif ($value !== null) {
|
||||
$unCheckedValue = self::$_defaultCheckedOptions['unChecked'];
|
||||
} else {
|
||||
$checkedValue = self::$_defaultCheckedOptions['checked'];
|
||||
$unCheckedValue = self::$_defaultCheckedOptions['unChecked'];
|
||||
}
|
||||
|
||||
// is the element checked?
|
||||
$checkedString = '';
|
||||
if ($checked || ($value === $checkedValue)) {
|
||||
$checkedString = ' checked="checked"';
|
||||
$checked = true;
|
||||
} else {
|
||||
$checked = false;
|
||||
}
|
||||
|
||||
// Checked value should be value if no checked options provided
|
||||
if ($checkedValue == null) {
|
||||
$checkedValue = $value;
|
||||
}
|
||||
|
||||
return array(
|
||||
'checked' => $checked,
|
||||
'checkedString' => $checkedString,
|
||||
'checkedValue' => $checkedValue,
|
||||
'unCheckedValue' => $unCheckedValue,
|
||||
);
|
||||
}
|
||||
}
|
165
libs/Zend/View/Helper/FormElement.php
Normal file
165
libs/Zend/View/Helper/FormElement.php
Normal file
@ -0,0 +1,165 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see Zend_View_Helper_HtmlElement
|
||||
*/
|
||||
require_once 'Zend/View/Helper/HtmlElement.php';
|
||||
|
||||
/**
|
||||
* Base helper for form elements. Extend this, don't use it on its own.
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
abstract class Zend_View_Helper_FormElement extends Zend_View_Helper_HtmlElement
|
||||
{
|
||||
/**
|
||||
* Converts parameter arguments to an element info array.
|
||||
*
|
||||
* E.g, formExample($name, $value, $attribs, $options, $listsep) is
|
||||
* the same thing as formExample(array('name' => ...)).
|
||||
*
|
||||
* Note that you cannot pass a 'disable' param; you need to pass
|
||||
* it as an 'attribs' key.
|
||||
*
|
||||
* @access protected
|
||||
*
|
||||
* @return array An element info array with keys for name, value,
|
||||
* attribs, options, listsep, disable, and escape.
|
||||
*/
|
||||
protected function _getInfo($name, $value = null, $attribs = null,
|
||||
$options = null, $listsep = null
|
||||
) {
|
||||
// the baseline info. note that $name serves a dual purpose;
|
||||
// if an array, it's an element info array that will override
|
||||
// these baseline values. as such, ignore it for the 'name'
|
||||
// if it's an array.
|
||||
$info = array(
|
||||
'name' => is_array($name) ? '' : $name,
|
||||
'id' => is_array($name) ? '' : $name,
|
||||
'value' => $value,
|
||||
'attribs' => $attribs,
|
||||
'options' => $options,
|
||||
'listsep' => $listsep,
|
||||
'disable' => false,
|
||||
'escape' => true,
|
||||
);
|
||||
|
||||
// override with named args
|
||||
if (is_array($name)) {
|
||||
// only set keys that are already in info
|
||||
foreach ($info as $key => $val) {
|
||||
if (isset($name[$key])) {
|
||||
$info[$key] = $name[$key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// force attribs to an array, per note from Orjan Persson.
|
||||
settype($info['attribs'], 'array');
|
||||
|
||||
// Normalize readonly tag
|
||||
if (isset($info['attribs']['readonly'])
|
||||
&& $info['attribs']['readonly'] != 'readonly')
|
||||
{
|
||||
$info['attribs']['readonly'] = 'readonly';
|
||||
}
|
||||
|
||||
// Disable attribute
|
||||
if (isset($info['attribs']['disable'])
|
||||
&& is_scalar($info['attribs']['disable']))
|
||||
{
|
||||
// disable the element
|
||||
$info['disable'] = (bool)$info['attribs']['disable'];
|
||||
unset($info['attribs']['disable']);
|
||||
} elseif (isset($info['attribs']['disable'])
|
||||
&& is_array($info['attribs']['disable']))
|
||||
{
|
||||
$info['disable'] = $info['attribs']['disable'];
|
||||
unset($info['attribs']['disable']);
|
||||
}
|
||||
|
||||
// Set ID for element
|
||||
if (isset($info['attribs']['id'])) {
|
||||
$info['id'] = (string) $info['attribs']['id'];
|
||||
} elseif (!isset($info['attribs']['id']) && !empty($info['name'])) {
|
||||
$id = $info['name'];
|
||||
if (substr($id, -2) == '[]') {
|
||||
$id = substr($id, 0, strlen($id) - 2);
|
||||
}
|
||||
if (strstr($id, ']')) {
|
||||
$id = trim($id, ']');
|
||||
$id = str_replace('][', '-', $id);
|
||||
$id = str_replace('[', '-', $id);
|
||||
}
|
||||
$info['id'] = $id;
|
||||
}
|
||||
|
||||
// Determine escaping from attributes
|
||||
if (isset($info['attribs']['escape'])) {
|
||||
$info['escape'] = (bool) $info['attribs']['escape'];
|
||||
}
|
||||
|
||||
// Determine listsetp from attributes
|
||||
if (isset($info['attribs']['listsep'])) {
|
||||
$info['listsep'] = (string) $info['attribs']['listsep'];
|
||||
}
|
||||
|
||||
// Remove attribs that might overwrite the other keys. We do this LAST
|
||||
// because we needed the other attribs values earlier.
|
||||
foreach ($info as $key => $val) {
|
||||
if (isset($info['attribs'][$key])) {
|
||||
unset($info['attribs'][$key]);
|
||||
}
|
||||
}
|
||||
|
||||
// done!
|
||||
return $info;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a hidden element.
|
||||
*
|
||||
* We have this as a common method because other elements often
|
||||
* need hidden elements for their operation.
|
||||
*
|
||||
* @access protected
|
||||
*
|
||||
* @param $name The element name.
|
||||
*
|
||||
* @param $value The element value.
|
||||
*
|
||||
* @param $attribs Attributes for the element.
|
||||
*
|
||||
* @return string A hidden element.
|
||||
*/
|
||||
protected function _hidden($name, $value = null, $attribs = null)
|
||||
{
|
||||
return '<input type="hidden"'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' value="' . $this->view->escape($value) . '"'
|
||||
. $this->_htmlAttribs($attribs) . $this->getClosingBracket();
|
||||
}
|
||||
}
|
156
libs/Zend/View/Helper/FormErrors.php
Normal file
156
libs/Zend/View/Helper/FormErrors.php
Normal file
@ -0,0 +1,156 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to render errors for a form element
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormErrors extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* @var Zend_Form_Element
|
||||
*/
|
||||
protected $_element;
|
||||
|
||||
/**#@+
|
||||
* @var string Element block start/end tags and separator
|
||||
*/
|
||||
protected $_htmlElementEnd = '</li></ul>';
|
||||
protected $_htmlElementStart = '<ul%s><li>';
|
||||
protected $_htmlElementSeparator = '</li><li>';
|
||||
/**#@-*/
|
||||
|
||||
/**
|
||||
* Render form errors
|
||||
*
|
||||
* @param string|array $errors Error(s) to render
|
||||
* @param array $options
|
||||
* @return string
|
||||
*/
|
||||
public function formErrors($errors, array $options = null)
|
||||
{
|
||||
$escape = true;
|
||||
if (isset($options['escape'])) {
|
||||
$escape = (bool) $options['escape'];
|
||||
unset($options['escape']);
|
||||
}
|
||||
|
||||
if (empty($options['class'])) {
|
||||
$options['class'] = 'errors';
|
||||
}
|
||||
|
||||
$start = $this->getElementStart();
|
||||
if (strstr($start, '%s')) {
|
||||
$attribs = $this->_htmlAttribs($options);
|
||||
$start = sprintf($start, $attribs);
|
||||
}
|
||||
|
||||
if ($escape) {
|
||||
foreach ($errors as $key => $error) {
|
||||
$errors[$key] = $this->view->escape($error);
|
||||
}
|
||||
}
|
||||
|
||||
$html = $start
|
||||
. implode($this->getElementSeparator(), (array) $errors)
|
||||
. $this->getElementEnd();
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set end string for displaying errors
|
||||
*
|
||||
* @param string $string
|
||||
* @return Zend_View_Helper_FormErrors
|
||||
*/
|
||||
public function setElementEnd($string)
|
||||
{
|
||||
$this->_htmlElementEnd = (string) $string;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve end string for displaying errors
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getElementEnd()
|
||||
{
|
||||
return $this->_htmlElementEnd;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set separator string for displaying errors
|
||||
*
|
||||
* @param string $string
|
||||
* @return Zend_View_Helper_FormErrors
|
||||
*/
|
||||
public function setElementSeparator($string)
|
||||
{
|
||||
$this->_htmlElementSeparator = (string) $string;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve separator string for displaying errors
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getElementSeparator()
|
||||
{
|
||||
return $this->_htmlElementSeparator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set start string for displaying errors
|
||||
*
|
||||
* @param string $string
|
||||
* @return Zend_View_Helper_FormErrors
|
||||
*/
|
||||
public function setElementStart($string)
|
||||
{
|
||||
$this->_htmlElementStart = (string) $string;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve start string for displaying errors
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getElementStart()
|
||||
{
|
||||
return $this->_htmlElementStart;
|
||||
}
|
||||
|
||||
}
|
80
libs/Zend/View/Helper/FormFile.php
Normal file
80
libs/Zend/View/Helper/FormFile.php
Normal file
@ -0,0 +1,80 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a "file" element
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormFile extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates a 'file' element.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
*
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formFile($name, $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, null, $attribs);
|
||||
extract($info); // name, id, value, attribs, options, listsep, disable
|
||||
|
||||
// is it disabled?
|
||||
$disabled = '';
|
||||
if ($disable) {
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// XHTML or HTML end tag?
|
||||
$endTag = ' />';
|
||||
if (($this->view instanceof Zend_View_Abstract) && !$this->view->doctype()->isXhtml()) {
|
||||
$endTag= '>';
|
||||
}
|
||||
|
||||
// build the element
|
||||
$xhtml = '<input type="file"'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. $disabled
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. $endTag;
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
65
libs/Zend/View/Helper/FormHidden.php
Normal file
65
libs/Zend/View/Helper/FormHidden.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a "hidden" element
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormHidden extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates a 'hidden' element.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
* @param mixed $value The element value.
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formHidden($name, $value = null, array $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, value, attribs, options, listsep, disable
|
||||
if (isset($id)) {
|
||||
if (isset($attribs) && is_array($attribs)) {
|
||||
$attribs['id'] = $id;
|
||||
} else {
|
||||
$attribs = array('id' => $id);
|
||||
}
|
||||
}
|
||||
return $this->_hidden($name, $value, $attribs);
|
||||
}
|
||||
}
|
100
libs/Zend/View/Helper/FormImage.php
Normal file
100
libs/Zend/View/Helper/FormImage.php
Normal file
@ -0,0 +1,100 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate an "image" element
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormImage extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates an 'image' element.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The source ('src="..."') for the image.
|
||||
*
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
*
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formImage($name, $value = null, $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, value, attribs, options, listsep, disable
|
||||
|
||||
// Determine if we should use the value or the src attribute
|
||||
if (isset($attribs['src'])) {
|
||||
$src = ' src="' . $this->view->escape($attribs['src']) . '"';
|
||||
unset($attribs['src']);
|
||||
} else {
|
||||
$src = ' src="' . $this->view->escape($value) . '"';
|
||||
unset($value);
|
||||
}
|
||||
|
||||
// Do we have a value?
|
||||
if (isset($value) && !empty($value)) {
|
||||
$value = ' value="' . $this->view->escape($value) . '"';
|
||||
} else {
|
||||
$value = '';
|
||||
}
|
||||
|
||||
// Disabled?
|
||||
$disabled = '';
|
||||
if ($disable) {
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// XHTML or HTML end tag?
|
||||
$endTag = ' />';
|
||||
if (($this->view instanceof Zend_View_Abstract) && !$this->view->doctype()->isXhtml()) {
|
||||
$endTag= '>';
|
||||
}
|
||||
|
||||
// build the element
|
||||
$xhtml = '<input type="image"'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. $src
|
||||
. $value
|
||||
. $disabled
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. $endTag;
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
64
libs/Zend/View/Helper/FormLabel.php
Normal file
64
libs/Zend/View/Helper/FormLabel.php
Normal file
@ -0,0 +1,64 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_FormElement **/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
/**
|
||||
* Form label helper
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormLabel extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates a 'label' element.
|
||||
*
|
||||
* @param string $name The form element name for which the label is being generated
|
||||
* @param string $value The label text
|
||||
* @param array $attribs Form element attributes (used to determine if disabled)
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formLabel($name, $value = null, array $attribs = array())
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, value, attribs, options, listsep, disable, escape
|
||||
|
||||
// build the element
|
||||
if ($disable) {
|
||||
// disabled; do nothing
|
||||
} else {
|
||||
$value = ($escape) ? $this->view->escape($value) : $value;
|
||||
|
||||
// enabled; display label
|
||||
$xhtml = '<label'
|
||||
. ' for="' . $this->view->escape($id) . '"'
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. '>' . $value . '</label>';
|
||||
}
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
73
libs/Zend/View/Helper/FormMultiCheckbox.php
Normal file
73
libs/Zend/View/Helper/FormMultiCheckbox.php
Normal file
@ -0,0 +1,73 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/** Zend_View_Helper_FormRadio */
|
||||
require_once 'Zend/View/Helper/FormRadio.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a set of checkbox button elements
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormMultiCheckbox extends Zend_View_Helper_FormRadio
|
||||
{
|
||||
/**
|
||||
* Input type to use
|
||||
* @var string
|
||||
*/
|
||||
protected $_inputType = 'checkbox';
|
||||
|
||||
/**
|
||||
* Whether or not this element represents an array collection by default
|
||||
* @var bool
|
||||
*/
|
||||
protected $_isArray = true;
|
||||
|
||||
/**
|
||||
* Generates a set of checkbox button elements.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The checkbox value to mark as 'checked'.
|
||||
*
|
||||
* @param array $options An array of key-value pairs where the array
|
||||
* key is the checkbox value, and the array value is the radio text.
|
||||
*
|
||||
* @param array|string $attribs Attributes added to each radio.
|
||||
*
|
||||
* @return string The radio buttons XHTML.
|
||||
*/
|
||||
public function formMultiCheckbox($name, $value = null, $attribs = null,
|
||||
$options = null, $listsep = "<br />\n")
|
||||
{
|
||||
return $this->formRadio($name, $value, $attribs, $options, $listsep);
|
||||
}
|
||||
}
|
60
libs/Zend/View/Helper/FormNote.php
Normal file
60
libs/Zend/View/Helper/FormNote.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to show an HTML note
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormNote extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Helper to show a "note" based on a hidden value.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param array $value The note to display. HTML is *not* escaped; the
|
||||
* note is displayed as-is.
|
||||
*
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formNote($name, $value = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value);
|
||||
extract($info); // name, value, attribs, options, listsep, disable
|
||||
return $value;
|
||||
}
|
||||
}
|
94
libs/Zend/View/Helper/FormPassword.php
Normal file
94
libs/Zend/View/Helper/FormPassword.php
Normal file
@ -0,0 +1,94 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a "password" element
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormPassword extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates a 'password' element.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The element value.
|
||||
*
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
*
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formPassword($name, $value = null, $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, value, attribs, options, listsep, disable
|
||||
|
||||
// is it disabled?
|
||||
$disabled = '';
|
||||
if ($disable) {
|
||||
// disabled
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// determine the XHTML value
|
||||
$valueString = ' value=""';
|
||||
if (array_key_exists('renderPassword', $attribs)) {
|
||||
if ($attribs['renderPassword']) {
|
||||
$valueString = ' value="' . $this->view->escape($value) . '"';
|
||||
}
|
||||
unset($attribs['renderPassword']);
|
||||
}
|
||||
|
||||
// XHTML or HTML end tag?
|
||||
$endTag = ' />';
|
||||
if (($this->view instanceof Zend_View_Abstract) && !$this->view->doctype()->isXhtml()) {
|
||||
$endTag= '>';
|
||||
}
|
||||
|
||||
// render the element
|
||||
$xhtml = '<input type="password"'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. $valueString
|
||||
. $disabled
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. $endTag;
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
|
||||
}
|
182
libs/Zend/View/Helper/FormRadio.php
Normal file
182
libs/Zend/View/Helper/FormRadio.php
Normal file
@ -0,0 +1,182 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a set of radio button elements
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormRadio extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Input type to use
|
||||
* @var string
|
||||
*/
|
||||
protected $_inputType = 'radio';
|
||||
|
||||
/**
|
||||
* Whether or not this element represents an array collection by default
|
||||
* @var bool
|
||||
*/
|
||||
protected $_isArray = false;
|
||||
|
||||
/**
|
||||
* Generates a set of radio button elements.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The radio value to mark as 'checked'.
|
||||
*
|
||||
* @param array $options An array of key-value pairs where the array
|
||||
* key is the radio value, and the array value is the radio text.
|
||||
*
|
||||
* @param array|string $attribs Attributes added to each radio.
|
||||
*
|
||||
* @return string The radio buttons XHTML.
|
||||
*/
|
||||
public function formRadio($name, $value = null, $attribs = null,
|
||||
$options = null, $listsep = "<br />\n")
|
||||
{
|
||||
|
||||
$info = $this->_getInfo($name, $value, $attribs, $options, $listsep);
|
||||
extract($info); // name, value, attribs, options, listsep, disable
|
||||
|
||||
// retrieve attributes for labels (prefixed with 'label_' or 'label')
|
||||
$label_attribs = array('style' => 'white-space: nowrap;');
|
||||
foreach ($attribs as $key => $val) {
|
||||
$tmp = false;
|
||||
$keyLen = strlen($key);
|
||||
if ((6 < $keyLen) && (substr($key, 0, 6) == 'label_')) {
|
||||
$tmp = substr($key, 6);
|
||||
} elseif ((5 < $keyLen) && (substr($key, 0, 5) == 'label')) {
|
||||
$tmp = substr($key, 5);
|
||||
}
|
||||
|
||||
if ($tmp) {
|
||||
// make sure first char is lowercase
|
||||
$tmp[0] = strtolower($tmp[0]);
|
||||
$label_attribs[$tmp] = $val;
|
||||
unset($attribs[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
$labelPlacement = 'append';
|
||||
foreach ($label_attribs as $key => $val) {
|
||||
switch (strtolower($key)) {
|
||||
case 'placement':
|
||||
unset($label_attribs[$key]);
|
||||
$val = strtolower($val);
|
||||
if (in_array($val, array('prepend', 'append'))) {
|
||||
$labelPlacement = $val;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// the radio button values and labels
|
||||
$options = (array) $options;
|
||||
|
||||
// build the element
|
||||
$xhtml = '';
|
||||
$list = array();
|
||||
|
||||
// should the name affect an array collection?
|
||||
$name = $this->view->escape($name);
|
||||
if ($this->_isArray && ('[]' != substr($name, -2))) {
|
||||
$name .= '[]';
|
||||
}
|
||||
|
||||
// ensure value is an array to allow matching multiple times
|
||||
$value = (array) $value;
|
||||
|
||||
// XHTML or HTML end tag?
|
||||
$endTag = ' />';
|
||||
if (($this->view instanceof Zend_View_Abstract) && !$this->view->doctype()->isXhtml()) {
|
||||
$endTag= '>';
|
||||
}
|
||||
|
||||
// add radio buttons to the list.
|
||||
require_once 'Zend/Filter/Alnum.php';
|
||||
$filter = new Zend_Filter_Alnum();
|
||||
foreach ($options as $opt_value => $opt_label) {
|
||||
|
||||
// Should the label be escaped?
|
||||
if ($escape) {
|
||||
$opt_label = $this->view->escape($opt_label);
|
||||
}
|
||||
|
||||
// is it disabled?
|
||||
$disabled = '';
|
||||
if (true === $disable) {
|
||||
$disabled = ' disabled="disabled"';
|
||||
} elseif (is_array($disable) && in_array($opt_value, $disable)) {
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// is it checked?
|
||||
$checked = '';
|
||||
if (in_array($opt_value, $value)) {
|
||||
$checked = ' checked="checked"';
|
||||
}
|
||||
|
||||
// generate ID
|
||||
$optId = $id . '-' . $filter->filter($opt_value);
|
||||
|
||||
// Wrap the radios in labels
|
||||
$radio = '<label'
|
||||
. $this->_htmlAttribs($label_attribs) . '>'
|
||||
. (('prepend' == $labelPlacement) ? $opt_label : '')
|
||||
. '<input type="' . $this->_inputType . '"'
|
||||
. ' name="' . $name . '"'
|
||||
. ' id="' . $optId . '"'
|
||||
. ' value="' . $this->view->escape($opt_value) . '"'
|
||||
. $checked
|
||||
. $disabled
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. $endTag
|
||||
. (('append' == $labelPlacement) ? $opt_label : '')
|
||||
. '</label>';
|
||||
|
||||
// add to the array of radio buttons
|
||||
$list[] = $radio;
|
||||
}
|
||||
|
||||
// done!
|
||||
$xhtml .= implode($listsep, $list);
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
87
libs/Zend/View/Helper/FormReset.php
Normal file
87
libs/Zend/View/Helper/FormReset.php
Normal file
@ -0,0 +1,87 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a "reset" button
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormReset extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates a 'reset' button.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The element value.
|
||||
*
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
*
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formReset($name = '', $value = 'Reset', $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, value, attribs, options, listsep, disable
|
||||
|
||||
// check if disabled
|
||||
$disabled = '';
|
||||
if ($disable) {
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// get closing tag
|
||||
$endTag = '>';
|
||||
if ($this->view->doctype()->isXhtml()) {
|
||||
$endTag = ' />';
|
||||
}
|
||||
|
||||
// Render button
|
||||
$xhtml = '<input type="reset"'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. $disabled;
|
||||
|
||||
// add a value if one is given
|
||||
if (! empty($value)) {
|
||||
$xhtml .= ' value="' . $this->view->escape($value) . '"';
|
||||
}
|
||||
|
||||
// add attributes, close, and return
|
||||
$xhtml .= $this->_htmlAttribs($attribs) . $endTag;
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
173
libs/Zend/View/Helper/FormSelect.php
Normal file
173
libs/Zend/View/Helper/FormSelect.php
Normal file
@ -0,0 +1,173 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate "select" list of options
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormSelect extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates 'select' list of options.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The option value to mark as 'selected'; if an
|
||||
* array, will mark all values in the array as 'selected' (used for
|
||||
* multiple-select elements).
|
||||
*
|
||||
* @param array|string $attribs Attributes added to the 'select' tag.
|
||||
*
|
||||
* @param array $options An array of key-value pairs where the array
|
||||
* key is the radio value, and the array value is the radio text.
|
||||
*
|
||||
* @param string $listsep When disabled, use this list separator string
|
||||
* between list values.
|
||||
*
|
||||
* @return string The select tag and options XHTML.
|
||||
*/
|
||||
public function formSelect($name, $value = null, $attribs = null,
|
||||
$options = null, $listsep = "<br />\n")
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs, $options, $listsep);
|
||||
extract($info); // name, id, value, attribs, options, listsep, disable
|
||||
|
||||
// force $value to array so we can compare multiple values to multiple
|
||||
// options; also ensure it's a string for comparison purposes.
|
||||
$value = array_map('strval', (array) $value);
|
||||
|
||||
// check if element may have multiple values
|
||||
$multiple = '';
|
||||
|
||||
if (substr($name, -2) == '[]') {
|
||||
// multiple implied by the name
|
||||
$multiple = ' multiple="multiple"';
|
||||
}
|
||||
|
||||
if (isset($attribs['multiple'])) {
|
||||
// Attribute set
|
||||
if ($attribs['multiple']) {
|
||||
// True attribute; set multiple attribute
|
||||
$multiple = ' multiple="multiple"';
|
||||
|
||||
// Make sure name indicates multiple values are allowed
|
||||
if (!empty($multiple) && (substr($name, -2) != '[]')) {
|
||||
$name .= '[]';
|
||||
}
|
||||
} else {
|
||||
// False attribute; ensure attribute not set
|
||||
$multiple = '';
|
||||
}
|
||||
unset($attribs['multiple']);
|
||||
}
|
||||
|
||||
// now start building the XHTML.
|
||||
$disabled = '';
|
||||
if (true === $disable) {
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// Build the surrounding select element first.
|
||||
$xhtml = '<select'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. $multiple
|
||||
. $disabled
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. ">\n ";
|
||||
|
||||
// build the list of options
|
||||
$list = array();
|
||||
foreach ((array) $options as $opt_value => $opt_label) {
|
||||
if (is_array($opt_label)) {
|
||||
$opt_disable = '';
|
||||
if (is_array($disable) && in_array($opt_value, $disable)) {
|
||||
$opt_disable = ' disabled="disabled"';
|
||||
}
|
||||
$list[] = '<optgroup'
|
||||
. $opt_disable
|
||||
. ' label="' . $this->view->escape($opt_value) .'">';
|
||||
foreach ($opt_label as $val => $lab) {
|
||||
$list[] = $this->_build($val, $lab, $value, $disable);
|
||||
}
|
||||
$list[] = '</optgroup>';
|
||||
} else {
|
||||
$list[] = $this->_build($opt_value, $opt_label, $value, $disable);
|
||||
}
|
||||
}
|
||||
|
||||
// add the options to the xhtml and close the select
|
||||
$xhtml .= implode("\n ", $list) . "\n</select>";
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the actual <option> tag
|
||||
*
|
||||
* @param string $value Options Value
|
||||
* @param string $label Options Label
|
||||
* @param array $selected The option value(s) to mark as 'selected'
|
||||
* @param array|bool $disable Whether the select is disabled, or individual options are
|
||||
* @return string Option Tag XHTML
|
||||
*/
|
||||
protected function _build($value, $label, $selected, $disable)
|
||||
{
|
||||
if (is_bool($disable)) {
|
||||
$disable = array();
|
||||
}
|
||||
|
||||
$opt = '<option'
|
||||
. ' value="' . $this->view->escape($value) . '"'
|
||||
. ' label="' . $this->view->escape($label) . '"';
|
||||
|
||||
// selected?
|
||||
if (in_array((string) $value, $selected)) {
|
||||
$opt .= ' selected="selected"';
|
||||
}
|
||||
|
||||
// disabled?
|
||||
if (in_array($value, $disable)) {
|
||||
$opt .= ' disabled="disabled"';
|
||||
}
|
||||
|
||||
$opt .= '>' . $this->view->escape($label) . "</option>";
|
||||
|
||||
return $opt;
|
||||
}
|
||||
|
||||
}
|
83
libs/Zend/View/Helper/FormSubmit.php
Normal file
83
libs/Zend/View/Helper/FormSubmit.php
Normal file
@ -0,0 +1,83 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a "submit" button
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormSubmit extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates a 'submit' button.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The element value.
|
||||
*
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
*
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formSubmit($name, $value = null, $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, value, attribs, options, listsep, disable
|
||||
|
||||
// check if disabled
|
||||
$disabled = '';
|
||||
if ($disable) {
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// XHTML or HTML end tag?
|
||||
$endTag = ' />';
|
||||
if (($this->view instanceof Zend_View_Abstract) && !$this->view->doctype()->isXhtml()) {
|
||||
$endTag= '>';
|
||||
}
|
||||
|
||||
// Render the button.
|
||||
$xhtml = '<input type="submit"'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. ' value="' . $this->view->escape($value) . '"'
|
||||
. $disabled
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. $endTag;
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
83
libs/Zend/View/Helper/FormText.php
Normal file
83
libs/Zend/View/Helper/FormText.php
Normal file
@ -0,0 +1,83 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a "text" element
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormText extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* Generates a 'text' element.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are used in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The element value.
|
||||
*
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
*
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formText($name, $value = null, $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, value, attribs, options, listsep, disable
|
||||
|
||||
// build the element
|
||||
$disabled = '';
|
||||
if ($disable) {
|
||||
// disabled
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// XHTML or HTML end tag?
|
||||
$endTag = ' />';
|
||||
if (($this->view instanceof Zend_View_Abstract) && !$this->view->doctype()->isXhtml()) {
|
||||
$endTag= '>';
|
||||
}
|
||||
|
||||
$xhtml = '<input type="text"'
|
||||
. ' name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. ' value="' . $this->view->escape($value) . '"'
|
||||
. $disabled
|
||||
. $this->_htmlAttribs($attribs)
|
||||
. $endTag;
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
103
libs/Zend/View/Helper/FormTextarea.php
Normal file
103
libs/Zend/View/Helper/FormTextarea.php
Normal file
@ -0,0 +1,103 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Abstract class for extension
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
|
||||
/**
|
||||
* Helper to generate a "textarea" element
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_FormTextarea extends Zend_View_Helper_FormElement
|
||||
{
|
||||
/**
|
||||
* The default number of rows for a textarea.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $rows = 24;
|
||||
|
||||
/**
|
||||
* The default number of columns for a textarea.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $cols = 80;
|
||||
|
||||
/**
|
||||
* Generates a 'textarea' element.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param string|array $name If a string, the element name. If an
|
||||
* array, all other parameters are ignored, and the array elements
|
||||
* are extracted in place of added parameters.
|
||||
*
|
||||
* @param mixed $value The element value.
|
||||
*
|
||||
* @param array $attribs Attributes for the element tag.
|
||||
*
|
||||
* @return string The element XHTML.
|
||||
*/
|
||||
public function formTextarea($name, $value = null, $attribs = null)
|
||||
{
|
||||
$info = $this->_getInfo($name, $value, $attribs);
|
||||
extract($info); // name, value, attribs, options, listsep, disable
|
||||
|
||||
// is it disabled?
|
||||
$disabled = '';
|
||||
if ($disable) {
|
||||
// disabled.
|
||||
$disabled = ' disabled="disabled"';
|
||||
}
|
||||
|
||||
// Make sure that there are 'rows' and 'cols' values
|
||||
// as required by the spec. noted by Orjan Persson.
|
||||
if (empty($attribs['rows'])) {
|
||||
$attribs['rows'] = (int) $this->rows;
|
||||
}
|
||||
if (empty($attribs['cols'])) {
|
||||
$attribs['cols'] = (int) $this->cols;
|
||||
}
|
||||
|
||||
// build the element
|
||||
$xhtml = '<textarea name="' . $this->view->escape($name) . '"'
|
||||
. ' id="' . $this->view->escape($id) . '"'
|
||||
. $disabled
|
||||
. $this->_htmlAttribs($attribs) . '>'
|
||||
. $this->view->escape($value) . '</textarea>';
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
396
libs/Zend/View/Helper/HeadLink.php
Normal file
396
libs/Zend/View/Helper/HeadLink.php
Normal file
@ -0,0 +1,396 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Placeholder.php 7078 2007-12-11 14:29:33Z matthew $
|
||||
* @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';
|
||||
|
||||
/**
|
||||
* Zend_Layout_View_Helper_HeadLink
|
||||
*
|
||||
* @see http://www.w3.org/TR/xhtml1/dtds.html
|
||||
* @uses Zend_View_Helper_Placeholder_Container_Standalone
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_HeadLink extends Zend_View_Helper_Placeholder_Container_Standalone
|
||||
{
|
||||
/**
|
||||
* $_validAttributes
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_itemKeys = array('charset', 'href', 'hreflang', 'media', 'rel', 'rev', 'type', 'title');
|
||||
|
||||
/**
|
||||
* @var string registry key
|
||||
*/
|
||||
protected $_regKey = 'Zend_View_Helper_HeadLink';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Use PHP_EOL as separator
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->setSeparator(PHP_EOL);
|
||||
}
|
||||
|
||||
/**
|
||||
* headLink() - View Helper Method
|
||||
*
|
||||
* Returns current object instance. Optionally, allows passing array of
|
||||
* values to build link.
|
||||
*
|
||||
* @return Zend_View_Helper_HeadLink
|
||||
*/
|
||||
public function headLink(array $attributes = null, $placement = Zend_View_Helper_Placeholder_Container_Abstract::APPEND)
|
||||
{
|
||||
if (null !== $attributes) {
|
||||
$item = $this->createData($attributes);
|
||||
switch ($placement) {
|
||||
case Zend_View_Helper_Placeholder_Container_Abstract::SET:
|
||||
$this->set($item);
|
||||
break;
|
||||
case Zend_View_Helper_Placeholder_Container_Abstract::PREPEND:
|
||||
$this->prepend($item);
|
||||
break;
|
||||
case Zend_View_Helper_Placeholder_Container_Abstract::APPEND:
|
||||
default:
|
||||
$this->append($item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overload method access
|
||||
*
|
||||
* Creates the following virtual methods:
|
||||
* - appendStylesheet($href, $media, $conditionalStylesheet)
|
||||
* - offsetSetStylesheet($index, $href, $media, $conditionalStylesheet)
|
||||
* - prependStylesheet($href, $media, $conditionalStylesheet)
|
||||
* - setStylesheet($href, $media, $conditionalStylesheet)
|
||||
* - appendAlternate($href, $type, $title)
|
||||
* - offsetSetAlternate($index, $href, $type, $title)
|
||||
* - prependAlternate($href, $type, $title)
|
||||
* - setAlternate($href, $type, $title)
|
||||
*
|
||||
* Items that may be added in the future:
|
||||
* - Navigation? need to find docs on this
|
||||
* - public function appendStart()
|
||||
* - public function appendContents()
|
||||
* - public function appendPrev()
|
||||
* - public function appendNext()
|
||||
* - public function appendIndex()
|
||||
* - public function appendEnd()
|
||||
* - public function appendGlossary()
|
||||
* - public function appendAppendix()
|
||||
* - public function appendHelp()
|
||||
* - public function appendBookmark()
|
||||
* - Other?
|
||||
* - public function appendCopyright()
|
||||
* - public function appendChapter()
|
||||
* - public function appendSection()
|
||||
* - public function appendSubsection()
|
||||
*
|
||||
* @param mixed $method
|
||||
* @param mixed $args
|
||||
* @return void
|
||||
*/
|
||||
public function __call($method, $args)
|
||||
{
|
||||
if (preg_match('/^(?P<action>set|(ap|pre)pend|offsetSet)(?P<type>Stylesheet|Alternate)$/', $method, $matches)) {
|
||||
$argc = count($args);
|
||||
$action = $matches['action'];
|
||||
$type = $matches['type'];
|
||||
$index = null;
|
||||
|
||||
if ('offsetSet' == $action) {
|
||||
if (0 < $argc) {
|
||||
$index = array_shift($args);
|
||||
--$argc;
|
||||
}
|
||||
}
|
||||
|
||||
if (1 > $argc) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception(sprintf('%s requires at least one argument', $method));
|
||||
}
|
||||
|
||||
if (is_array($args[0])) {
|
||||
$item = $this->createData($args[0]);
|
||||
} else {
|
||||
$dataMethod = 'createData' . $type;
|
||||
$item = $this->$dataMethod($args);
|
||||
}
|
||||
|
||||
if ($item) {
|
||||
if ('offsetSet' == $action) {
|
||||
$this->offsetSet($index, $item);
|
||||
} else {
|
||||
$this->$action($item);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
return parent::__call($method, $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if value is valid
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return boolean
|
||||
*/
|
||||
protected function _isValid($value)
|
||||
{
|
||||
if (!$value instanceof stdClass) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$vars = get_object_vars($value);
|
||||
$keys = array_keys($vars);
|
||||
$intersection = array_intersect($this->_itemKeys, $keys);
|
||||
if (empty($intersection)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* append()
|
||||
*
|
||||
* @param array $value
|
||||
* @return void
|
||||
*/
|
||||
public function append($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('append() expects a data token; please use one of the custom append*() methods');
|
||||
}
|
||||
|
||||
return $this->getContainer()->append($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* offsetSet()
|
||||
*
|
||||
* @param string|int $index
|
||||
* @param array $value
|
||||
* @return void
|
||||
*/
|
||||
public function offsetSet($index, $value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('offsetSet() expects a data token; please use one of the custom offsetSet*() methods');
|
||||
}
|
||||
|
||||
return $this->getContainer()->offsetSet($index, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* prepend()
|
||||
*
|
||||
* @param array $value
|
||||
* @return Zend_Layout_ViewHelper_HeadLink
|
||||
*/
|
||||
public function prepend($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('prepend() expects a data token; please use one of the custom prepend*() methods');
|
||||
}
|
||||
|
||||
return $this->getContainer()->prepend($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* set()
|
||||
*
|
||||
* @param array $value
|
||||
* @return Zend_Layout_ViewHelper_HeadLink
|
||||
*/
|
||||
public function set($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('set() expects a data token; please use one of the custom set*() methods');
|
||||
}
|
||||
|
||||
return $this->getContainer()->set($value);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create HTML link element from data item
|
||||
*
|
||||
* @param stdClass $item
|
||||
* @return string
|
||||
*/
|
||||
public function itemToString(stdClass $item)
|
||||
{
|
||||
$attributes = (array) $item;
|
||||
$link = '<link ';
|
||||
|
||||
foreach ($this->_itemKeys as $itemKey) {
|
||||
if (isset($attributes[$itemKey])) {
|
||||
$link .= sprintf('%s="%s" ', $itemKey, ($this->_autoEscape) ? $this->_escape($attributes[$itemKey]) : $attributes[$itemKey]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->view instanceof Zend_View_Abstract) {
|
||||
$link .= ($this->view->doctype()->isXhtml()) ? '/>' : '>';
|
||||
} else {
|
||||
$link .= '/>';
|
||||
}
|
||||
|
||||
if (($link == '<link />') || ($link == '<link >')) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (isset($attributes['conditionalStylesheet'])
|
||||
&& (false !== $attributes['conditionalStylesheet']))
|
||||
{
|
||||
$link = '<!--[if ' . $attributes['conditionalStylesheet'] . ']> ' . $link . '<![endif]-->';
|
||||
}
|
||||
|
||||
return $link;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render link elements as string
|
||||
*
|
||||
* @param string|int $indent
|
||||
* @return string
|
||||
*/
|
||||
public function toString($indent = null)
|
||||
{
|
||||
$indent = (null !== $indent)
|
||||
? $this->getWhitespace($indent)
|
||||
: $this->getIndent();
|
||||
|
||||
$items = array();
|
||||
foreach ($this as $item) {
|
||||
$items[] = $this->itemToString($item);
|
||||
}
|
||||
|
||||
return $indent . implode($this->_escape($this->getSeparator()) . $indent, $items);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create data item for stack
|
||||
*
|
||||
* @param array $attributes
|
||||
* @return stdClass
|
||||
*/
|
||||
public function createData(array $attributes)
|
||||
{
|
||||
$data = (object) $attributes;
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create item for stylesheet link item
|
||||
*
|
||||
* @param array $args
|
||||
* @return stdClass|false Returns fals if stylesheet is a duplicate
|
||||
*/
|
||||
public function createDataStylesheet(array $args)
|
||||
{
|
||||
$rel = 'stylesheet';
|
||||
$type = 'text/css';
|
||||
$media = 'screen';
|
||||
$conditionalStylesheet = false;
|
||||
$href = array_shift($args);
|
||||
|
||||
if ($this->_isDuplicateStylesheet($href)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (0 < count($args)) {
|
||||
$media = array_shift($args);
|
||||
$media = (string) $media;
|
||||
}
|
||||
if (0 < count($args)) {
|
||||
$conditionalStylesheet = array_shift($args);
|
||||
if (false !== $conditionalStylesheet) {
|
||||
$conditionalStylesheet = (string) $conditionalStylesheet;
|
||||
}
|
||||
}
|
||||
|
||||
$attributes = compact('rel', 'type', 'href', 'media', 'conditionalStylesheet');
|
||||
return $this->createData($attributes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the linked stylesheet a duplicate?
|
||||
*
|
||||
* @param string $uri
|
||||
* @return bool
|
||||
*/
|
||||
protected function _isDuplicateStylesheet($uri)
|
||||
{
|
||||
foreach ($this->getContainer() as $item) {
|
||||
if (($item->rel == 'stylesheet') && ($item->href == $uri)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create item for alternate link item
|
||||
*
|
||||
* @param array $args
|
||||
* @return stdClass
|
||||
*/
|
||||
public function createDataAlternate(array $args)
|
||||
{
|
||||
if (3 > count($args)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception(sprintf('Alternate tags require 3 arguments; %s provided', count($args)));
|
||||
}
|
||||
|
||||
$rel = 'alternate';
|
||||
$href = array_shift($args);
|
||||
$type = array_shift($args);
|
||||
$title = array_shift($args);
|
||||
|
||||
$href = (string) $href;
|
||||
$type = (string) $type;
|
||||
$title = (string) $title;
|
||||
|
||||
$attributes = compact('rel', 'href', 'type', 'title');
|
||||
return $this->createData($attributes);
|
||||
}
|
||||
}
|
359
libs/Zend/View/Helper/HeadMeta.php
Normal file
359
libs/Zend/View/Helper/HeadMeta.php
Normal file
@ -0,0 +1,359 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Placeholder.php 7078 2007-12-11 14:29:33Z matthew $
|
||||
* @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';
|
||||
|
||||
/** Zend_View_Exception */
|
||||
require_once 'Zend/View/Exception.php';
|
||||
|
||||
/**
|
||||
* Zend_Layout_View_Helper_HeadMeta
|
||||
*
|
||||
* @see http://www.w3.org/TR/xhtml1/dtds.html
|
||||
* @uses Zend_View_Helper_Placeholder_Container_Standalone
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_HeadMeta extends Zend_View_Helper_Placeholder_Container_Standalone
|
||||
{
|
||||
/**
|
||||
* Types of attributes
|
||||
* @var array
|
||||
*/
|
||||
protected $_typeKeys = array('name', 'http-equiv');
|
||||
protected $_requiredKeys = array('content');
|
||||
protected $_modifierKeys = array('lang', 'scheme');
|
||||
|
||||
/**
|
||||
* @var string registry key
|
||||
*/
|
||||
protected $_regKey = 'Zend_View_Helper_HeadMeta';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Set separator to PHP_EOL
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->setSeparator(PHP_EOL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve object instance; optionally add meta tag
|
||||
*
|
||||
* @param string $content
|
||||
* @param string $keyValue
|
||||
* @param string $keyType
|
||||
* @param array $modifiers
|
||||
* @param string $placement
|
||||
* @return Zend_View_Helper_HeadMeta
|
||||
*/
|
||||
public function headMeta($content = null, $keyValue = null, $keyType = 'name', $modifiers = array(), $placement = Zend_View_Helper_Placeholder_Container_Abstract::APPEND)
|
||||
{
|
||||
if ((null !== $content) && (null !== $keyValue)) {
|
||||
$item = $this->createData($keyType, $keyValue, $content, $modifiers);
|
||||
$action = strtolower($placement);
|
||||
switch ($action) {
|
||||
case 'append':
|
||||
case 'prepend':
|
||||
case 'set':
|
||||
$this->$action($item);
|
||||
break;
|
||||
default:
|
||||
$this->append($item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
protected function _normalizeType($type)
|
||||
{
|
||||
switch ($type) {
|
||||
case 'Name':
|
||||
return 'name';
|
||||
case 'HttpEquiv':
|
||||
return 'http-equiv';
|
||||
default:
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception(sprintf('Invalid type "%s" passed to _normalizeType', $type));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Overload method access
|
||||
*
|
||||
* Allows the following 'virtual' methods:
|
||||
* - appendName($keyValue, $content, $modifiers = array())
|
||||
* - offsetGetName($index, $keyValue, $content, $modifers = array())
|
||||
* - prependName($keyValue, $content, $modifiers = array())
|
||||
* - setName($keyValue, $content, $modifiers = array())
|
||||
* - appendHttpEquiv($keyValue, $content, $modifiers = array())
|
||||
* - offsetGetHttpEquiv($index, $keyValue, $content, $modifers = array())
|
||||
* - prependHttpEquiv($keyValue, $content, $modifiers = array())
|
||||
* - setHttpEquiv($keyValue, $content, $modifiers = array())
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $args
|
||||
* @return Zend_View_Helper_HeadMeta
|
||||
*/
|
||||
public function __call($method, $args)
|
||||
{
|
||||
if (preg_match('/^(?P<action>set|(pre|ap)pend|offsetSet)(?P<type>Name|HttpEquiv)$/', $method, $matches)) {
|
||||
$action = $matches['action'];
|
||||
$type = $this->_normalizeType($matches['type']);
|
||||
$argc = count($args);
|
||||
$index = null;
|
||||
|
||||
if ('offsetSet' == $action) {
|
||||
if (0 < $argc) {
|
||||
$index = array_shift($args);
|
||||
--$argc;
|
||||
}
|
||||
}
|
||||
|
||||
if (2 > $argc) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Too few arguments provided; requires key value, and content');
|
||||
}
|
||||
|
||||
if (3 > $argc) {
|
||||
$args[] = array();
|
||||
}
|
||||
|
||||
$item = $this->createData($type, $args[0], $args[1], $args[2]);
|
||||
|
||||
if ('offsetSet' == $action) {
|
||||
return $this->offsetSet($index, $item);
|
||||
}
|
||||
|
||||
if ($action == 'set') {
|
||||
//var_dump($this->getContainer());
|
||||
}
|
||||
|
||||
$this->$action($item);
|
||||
return $this;
|
||||
}
|
||||
|
||||
return parent::__call($method, $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if item is valid
|
||||
*
|
||||
* @param mixed $item
|
||||
* @return boolean
|
||||
*/
|
||||
protected function _isValid($item)
|
||||
{
|
||||
if ((!$item instanceof stdClass)
|
||||
|| !isset($item->type)
|
||||
|| !isset($item->content)
|
||||
|| !isset($item->modifiers))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append
|
||||
*
|
||||
* @param string $value
|
||||
* @return void
|
||||
* @throws Zend_View_Exception
|
||||
*/
|
||||
public function append($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid value passed to append; please use appendMeta()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->append($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* OffsetSet
|
||||
*
|
||||
* @param string|int $index
|
||||
* @param string $value
|
||||
* @return void
|
||||
* @throws Zend_View_Exception
|
||||
*/
|
||||
public function offsetSet($index, $value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid value passed to offsetSet; please use offsetSetMeta()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->offsetSet($index, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* OffsetUnset
|
||||
*
|
||||
* @param string|int $index
|
||||
* @return void
|
||||
* @throws Zend_View_Exception
|
||||
*/
|
||||
public function offsetUnset($index)
|
||||
{
|
||||
if (!in_array($index, $this->getContainer()->getKeys())) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid index passed to offsetUnset.');
|
||||
}
|
||||
|
||||
return $this->getContainer()->offsetUnset($index);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepend
|
||||
*
|
||||
* @param string $value
|
||||
* @return void
|
||||
* @throws Zend_View_Exception
|
||||
*/
|
||||
public function prepend($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid value passed to prepend; please use prependMeta()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->prepend($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set
|
||||
*
|
||||
* @param string $value
|
||||
* @return void
|
||||
* @throws Zend_View_Exception
|
||||
*/
|
||||
public function set($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid value passed to set; please use setMeta()');
|
||||
}
|
||||
|
||||
$container = $this->getContainer();
|
||||
foreach ($container->getArrayCopy() as $index => $item) {
|
||||
if ($item->type == $value->type && $item->{$item->type} == $value->{$value->type}) {
|
||||
$this->offsetUnset($index);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->append($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build meta HTML string
|
||||
*
|
||||
* @param string $type
|
||||
* @param string $typeValue
|
||||
* @param string $content
|
||||
* @param array $modifiers
|
||||
* @return string
|
||||
*/
|
||||
public function itemToString(stdClass $item)
|
||||
{
|
||||
if (!in_array($item->type, $this->_typeKeys)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception(sprintf('Invalid type "%s" provided for meta', $item->type));
|
||||
}
|
||||
$type = $item->type;
|
||||
|
||||
$modifiersString = '';
|
||||
foreach ($item->modifiers as $key => $value) {
|
||||
if (!in_array($key, $this->_modifierKeys)) {
|
||||
continue;
|
||||
}
|
||||
$modifiersString .= $key . '="' . $this->_escape($value) . '" ';
|
||||
}
|
||||
|
||||
if ($this->view instanceof Zend_View_Abstract) {
|
||||
$tpl = ($this->view->doctype()->isXhtml())
|
||||
? '<meta %s="%s" content="%s" %s/>'
|
||||
: '<meta %s="%s" content="%s" %s>';
|
||||
} else {
|
||||
$tpl = '<meta %s="%s" content="%s" %s/>';
|
||||
}
|
||||
|
||||
$meta = sprintf(
|
||||
$tpl,
|
||||
$type,
|
||||
$this->_escape($item->$type),
|
||||
$this->_escape($item->content),
|
||||
$modifiersString
|
||||
);
|
||||
return $meta;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render placeholder as string
|
||||
*
|
||||
* @param string|int $indent
|
||||
* @return string
|
||||
*/
|
||||
public function toString($indent = null)
|
||||
{
|
||||
$indent = (null !== $indent)
|
||||
? $this->getWhitespace($indent)
|
||||
: $this->getIndent();
|
||||
|
||||
$items = array();
|
||||
foreach ($this as $item) {
|
||||
$items[] = $this->itemToString($item);
|
||||
}
|
||||
return $indent . implode($this->_escape($this->getSeparator()) . $indent, $items);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create data item for inserting into stack
|
||||
*
|
||||
* @param string $type
|
||||
* @param string $typeValue
|
||||
* @param string $content
|
||||
* @param array $modifiers
|
||||
* @return stdClass
|
||||
*/
|
||||
public function createData($type, $typeValue, $content, array $modifiers)
|
||||
{
|
||||
$data = new stdClass;
|
||||
$data->type = $type;
|
||||
$data->$type = $typeValue;
|
||||
$data->content = $content;
|
||||
$data->modifiers = $modifiers;
|
||||
return $data;
|
||||
}
|
||||
}
|
470
libs/Zend/View/Helper/HeadScript.php
Normal file
470
libs/Zend/View/Helper/HeadScript.php
Normal file
@ -0,0 +1,470 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Placeholder.php 7078 2007-12-11 14:29:33Z matthew $
|
||||
* @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 script elements for HTML head section
|
||||
*
|
||||
* @uses Zend_View_Helper_Placeholder_Container_Standalone
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_HeadScript extends Zend_View_Helper_Placeholder_Container_Standalone
|
||||
{
|
||||
/**#@+
|
||||
* Script type contants
|
||||
* @const string
|
||||
*/
|
||||
const FILE = 'FILE';
|
||||
const SCRIPT = 'SCRIPT';
|
||||
/**#@-*/
|
||||
|
||||
/**
|
||||
* Registry key for placeholder
|
||||
* @var string
|
||||
*/
|
||||
protected $_regKey = 'Zend_View_Helper_HeadScript';
|
||||
|
||||
/**
|
||||
* Are arbitrary attributes allowed?
|
||||
* @var bool
|
||||
*/
|
||||
protected $_arbitraryAttributes = false;
|
||||
|
||||
/**#@+
|
||||
* Capture type and/or attributes (used for hinting during capture)
|
||||
* @var string
|
||||
*/
|
||||
protected $_captureLock;
|
||||
protected $_captureScriptType = null;
|
||||
protected $_captureScriptAttrs = null;
|
||||
protected $_captureType;
|
||||
/**#@-*/
|
||||
|
||||
/**
|
||||
* Optional allowed attributes for script tag
|
||||
* @var array
|
||||
*/
|
||||
protected $_optionalAttributes = array(
|
||||
'charset', 'defer', 'language', 'src'
|
||||
);
|
||||
|
||||
/**
|
||||
* Required attributes for script tag
|
||||
* @var string
|
||||
*/
|
||||
protected $_requiredAttributes = array('type');
|
||||
|
||||
/**
|
||||
* Whether or not to format scripts using CDATA; used only if doctype
|
||||
* helper is not accessible
|
||||
* @var bool
|
||||
*/
|
||||
public $useCdata = false;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Set separator to PHP_EOL.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->setSeparator(PHP_EOL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return headScript object
|
||||
*
|
||||
* Returns headScript helper object; optionally, allows specifying a script
|
||||
* or script file to include.
|
||||
*
|
||||
* @param string $mode Script or file
|
||||
* @param string $spec Script/url
|
||||
* @param string $placement Append, prepend, or set
|
||||
* @param array $attrs Array of script attributes
|
||||
* @param string $type Script type and/or array of script attributes
|
||||
* @return Zend_View_Helper_HeadScript
|
||||
*/
|
||||
public function headScript($mode = Zend_View_Helper_HeadScript::FILE, $spec = null, $placement = 'APPEND', array $attrs = array(), $type = 'text/javascript')
|
||||
{
|
||||
if ((null !== $spec) && is_string($spec)) {
|
||||
$action = ucfirst(strtolower($mode));
|
||||
$placement = strtolower($placement);
|
||||
switch ($placement) {
|
||||
case 'set':
|
||||
case 'prepend':
|
||||
case 'append':
|
||||
$action = $placement . $action;
|
||||
break;
|
||||
default:
|
||||
$action = 'append' . $action;
|
||||
break;
|
||||
}
|
||||
$this->$action($spec, $type, $attrs);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start capture action
|
||||
*
|
||||
* @param mixed $captureType
|
||||
* @param string $typeOrAttrs
|
||||
* @return void
|
||||
*/
|
||||
public function captureStart($captureType = Zend_View_Helper_Placeholder_Container_Abstract::APPEND, $type = 'text/javascript', $attrs = array())
|
||||
{
|
||||
if ($this->_captureLock) {
|
||||
require_once 'Zend/View/Helper/Placeholder/Container/Exception.php';
|
||||
throw new Zend_View_Helper_Placeholder_Container_Exception('Cannot nest headScript captures');
|
||||
}
|
||||
|
||||
$this->_captureLock = true;
|
||||
$this->_captureType = $captureType;
|
||||
$this->_captureScriptType = $type;
|
||||
$this->_captureScriptAttrs = $attrs;
|
||||
ob_start();
|
||||
}
|
||||
|
||||
/**
|
||||
* End capture action and store
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function captureEnd()
|
||||
{
|
||||
$content = ob_get_clean();
|
||||
$type = $this->_captureScriptType;
|
||||
$attrs = $this->_captureScriptAttrs;
|
||||
$this->_captureScriptType = null;
|
||||
$this->_captureScriptAttrs = null;
|
||||
$this->_captureLock = false;
|
||||
|
||||
switch ($this->_captureType) {
|
||||
case Zend_View_Helper_Placeholder_Container_Abstract::SET:
|
||||
case Zend_View_Helper_Placeholder_Container_Abstract::PREPEND:
|
||||
case Zend_View_Helper_Placeholder_Container_Abstract::APPEND:
|
||||
$action = strtolower($this->_captureType) . 'Script';
|
||||
break;
|
||||
default:
|
||||
$action = 'appendScript';
|
||||
break;
|
||||
}
|
||||
$this->$action($content, $type, $attrs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Overload method access
|
||||
*
|
||||
* Allows the following method calls:
|
||||
* - appendFile($src, $type = 'text/javascript', $attrs = array())
|
||||
* - offsetSetFile($index, $src, $type = 'text/javascript', $attrs = array())
|
||||
* - prependFile($src, $type = 'text/javascript', $attrs = array())
|
||||
* - setFile($src, $type = 'text/javascript', $attrs = array())
|
||||
* - appendScript($script, $type = 'text/javascript', $attrs = array())
|
||||
* - offsetSetScript($index, $src, $type = 'text/javascript', $attrs = array())
|
||||
* - prependScript($script, $type = 'text/javascript', $attrs = array())
|
||||
* - setScript($script, $type = 'text/javascript', $attrs = array())
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $args
|
||||
* @return Zend_View_Helper_HeadScript
|
||||
* @throws Zend_View_Exception if too few arguments or invalid method
|
||||
*/
|
||||
public function __call($method, $args)
|
||||
{
|
||||
if (preg_match('/^(?P<action>set|(ap|pre)pend|offsetSet)(?P<mode>File|Script)$/', $method, $matches)) {
|
||||
if (1 > count($args)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception(sprintf('Method "%s" requires at least one argument', $method));
|
||||
}
|
||||
|
||||
$action = $matches['action'];
|
||||
$mode = strtolower($matches['mode']);
|
||||
$type = 'text/javascript';
|
||||
$attrs = array();
|
||||
|
||||
if ('offsetSet' == $action) {
|
||||
$index = array_shift($args);
|
||||
if (1 > count($args)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception(sprintf('Method "%s" requires at least two arguments, an index and source', $method));
|
||||
}
|
||||
}
|
||||
|
||||
$content = $args[0];
|
||||
|
||||
if (isset($args[1])) {
|
||||
$type = (string) $args[1];
|
||||
}
|
||||
if (isset($args[2])) {
|
||||
$attrs = (array) $args[2];
|
||||
}
|
||||
|
||||
switch ($mode) {
|
||||
case 'script':
|
||||
$item = $this->createData($type, $attrs, $content);
|
||||
if ('offsetSet' == $action) {
|
||||
$this->offsetSet($index, $item);
|
||||
} else {
|
||||
$this->$action($item);
|
||||
}
|
||||
break;
|
||||
case 'file':
|
||||
default:
|
||||
if (!$this->_isDuplicate($content)) {
|
||||
$attrs['src'] = $content;
|
||||
$item = $this->createData($type, $attrs);
|
||||
if ('offsetSet' == $action) {
|
||||
$this->offsetSet($index, $item);
|
||||
} else {
|
||||
$this->$action($item);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
return parent::__call($method, $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the file specified a duplicate?
|
||||
*
|
||||
* @param string $file
|
||||
* @return bool
|
||||
*/
|
||||
protected function _isDuplicate($file)
|
||||
{
|
||||
foreach ($this->getContainer() as $item) {
|
||||
if (($item->source === null)
|
||||
&& array_key_exists('src', $item->attributes)
|
||||
&& ($file == $item->attributes['src']))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the script provided valid?
|
||||
*
|
||||
* @param mixed $value
|
||||
* @param string $method
|
||||
* @return bool
|
||||
*/
|
||||
protected function _isValid($value)
|
||||
{
|
||||
if ((!$value instanceof stdClass)
|
||||
|| !isset($value->type)
|
||||
|| (!isset($value->source) && !isset($value->attributes)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override append
|
||||
*
|
||||
* @param string $value
|
||||
* @return void
|
||||
*/
|
||||
public function append($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid argument passed to append(); please use one of the helper methods, appendScript() or appendFile()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->append($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Override prepend
|
||||
*
|
||||
* @param string $value
|
||||
* @return void
|
||||
*/
|
||||
public function prepend($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid argument passed to prepend(); please use one of the helper methods, prependScript() or prependFile()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->prepend($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Override set
|
||||
*
|
||||
* @param string $value
|
||||
* @return void
|
||||
*/
|
||||
public function set($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid argument passed to set(); please use one of the helper methods, setScript() or setFile()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->set($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Override offsetSet
|
||||
*
|
||||
* @param string|int $index
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function offsetSet($index, $value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid argument passed to offsetSet(); please use one of the helper methods, offsetSetScript() or offsetSetFile()');
|
||||
}
|
||||
|
||||
$this->_isValid($value);
|
||||
return $this->getContainer()->offsetSet($index, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set flag indicating if arbitrary attributes are allowed
|
||||
*
|
||||
* @param bool $flag
|
||||
* @return Zend_View_Helper_HeadScript
|
||||
*/
|
||||
public function setAllowArbitraryAttributes($flag)
|
||||
{
|
||||
$this->_arbitraryAttributes = (bool) $flag;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Are arbitrary attributes allowed?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function arbitraryAttributesAllowed()
|
||||
{
|
||||
return $this->_arbitraryAttributes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create script HTML
|
||||
*
|
||||
* @param string $type
|
||||
* @param array $attributes
|
||||
* @param string $content
|
||||
* @param string|int $indent
|
||||
* @return string
|
||||
*/
|
||||
public function itemToString($item, $indent, $escapeStart, $escapeEnd)
|
||||
{
|
||||
$attrString = '';
|
||||
if (!empty($item->attributes)) {
|
||||
foreach ($item->attributes as $key => $value) {
|
||||
if (!$this->arbitraryAttributesAllowed()
|
||||
&& !in_array($key, $this->_optionalAttributes))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ('defer' == $key) {
|
||||
$value = 'defer';
|
||||
}
|
||||
$attrString .= sprintf(' %s="%s"', $key, ($this->_autoEscape) ? $this->_escape($value) : $value);
|
||||
}
|
||||
}
|
||||
|
||||
$type = ($this->_autoEscape) ? $this->_escape($item->type) : $item->type;
|
||||
$html = $indent . '<script type="' . $type . '"' . $attrString . '>';
|
||||
if (!empty($item->source)) {
|
||||
$html .= PHP_EOL . $indent . ' ' . $escapeStart . PHP_EOL . $item->source . $indent . ' ' . $escapeEnd . PHP_EOL . $indent;
|
||||
}
|
||||
$html .= '</script>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve string representation
|
||||
*
|
||||
* @param string|int $indent
|
||||
* @return string
|
||||
*/
|
||||
public function toString($indent = null)
|
||||
{
|
||||
$indent = (null !== $indent)
|
||||
? $this->getWhitespace($indent)
|
||||
: $this->getIndent();
|
||||
|
||||
if ($this->view) {
|
||||
$useCdata = $this->view->doctype()->isXhtml() ? true : false;
|
||||
} else {
|
||||
$useCdata = $this->useCdata ? true : false;
|
||||
}
|
||||
$escapeStart = ($useCdata) ? '//<![CDATA[' : '//<!--';
|
||||
$escapeEnd = ($useCdata) ? '//]]>' : '//-->';
|
||||
|
||||
$items = array();
|
||||
foreach ($this as $item) {
|
||||
if (!$this->_isValid($item)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$items[] = $this->itemToString($item, $indent, $escapeStart, $escapeEnd);
|
||||
}
|
||||
|
||||
$return = implode($this->getSeparator(), $items);
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create data item containing all necessary components of script
|
||||
*
|
||||
* @param string $type
|
||||
* @param array $attributes
|
||||
* @param string $content
|
||||
* @return stdClass
|
||||
*/
|
||||
public function createData($type, array $attributes, $content = null)
|
||||
{
|
||||
$data = new stdClass();
|
||||
$data->type = $type;
|
||||
$data->attributes = $attributes;
|
||||
$data->source = $content;
|
||||
return $data;
|
||||
}
|
||||
}
|
377
libs/Zend/View/Helper/HeadStyle.php
Normal file
377
libs/Zend/View/Helper/HeadStyle.php
Normal file
@ -0,0 +1,377 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Placeholder.php 7078 2007-12-11 14:29:33Z matthew $
|
||||
* @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 stylesheets
|
||||
*
|
||||
* @uses Zend_View_Helper_Placeholder_Container_Standalone
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_HeadStyle extends Zend_View_Helper_Placeholder_Container_Standalone
|
||||
{
|
||||
/**
|
||||
* Registry key for placeholder
|
||||
* @var string
|
||||
*/
|
||||
protected $_regKey = 'Zend_View_Helper_HeadStyle';
|
||||
|
||||
/**
|
||||
* Allowed optional attributes
|
||||
* @var array
|
||||
*/
|
||||
protected $_optionalAttributes = array('lang', 'title', 'media', 'dir');
|
||||
|
||||
/**
|
||||
* Allowed media types
|
||||
* @var array
|
||||
*/
|
||||
protected $_mediaTypes = array(
|
||||
'all', 'aural', 'braille', 'handheld', 'print',
|
||||
'projection', 'screen', 'tty', 'tv'
|
||||
);
|
||||
|
||||
/**
|
||||
* Capture type and/or attributes (used for hinting during capture)
|
||||
* @var string
|
||||
*/
|
||||
protected $_captureAttrs = null;
|
||||
|
||||
/**
|
||||
* Capture lock
|
||||
* @var bool
|
||||
*/
|
||||
protected $_captureLock;
|
||||
|
||||
/**
|
||||
* Capture type (append, prepend, set)
|
||||
* @var string
|
||||
*/
|
||||
protected $_captureType;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Set separator to PHP_EOL.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->setSeparator(PHP_EOL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return headStyle object
|
||||
*
|
||||
* Returns headStyle helper object; optionally, allows specifying
|
||||
*
|
||||
* @param string $content Stylesheet contents
|
||||
* @param string $placement Append, prepend, or set
|
||||
* @param string|array $attributes Optional attributes to utilize
|
||||
* @return Zend_View_Helper_HeadStyle
|
||||
*/
|
||||
public function headStyle($content = null, $placement = 'APPEND', $attributes = array())
|
||||
{
|
||||
if ((null !== $content) && is_string($content)) {
|
||||
switch (strtoupper($placement)) {
|
||||
case 'SET':
|
||||
$action = 'setStyle';
|
||||
break;
|
||||
case 'PREPEND':
|
||||
$action = 'prependStyle';
|
||||
break;
|
||||
case 'APPEND':
|
||||
default:
|
||||
$action = 'appendStyle';
|
||||
break;
|
||||
}
|
||||
$this->$action($content, $attributes);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overload method calls
|
||||
*
|
||||
* Allows the following method calls:
|
||||
* - appendStyle($content, $attributes = array())
|
||||
* - offsetSetStyle($index, $content, $attributes = array())
|
||||
* - prependStyle($content, $attributes = array())
|
||||
* - setStyle($content, $attributes = array())
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $args
|
||||
* @return void
|
||||
* @throws Zend_View_Exception When no $content provided or invalid method
|
||||
*/
|
||||
public function __call($method, $args)
|
||||
{
|
||||
if (preg_match('/^(?P<action>set|(ap|pre)pend|offsetSet)(Style)$/', $method, $matches)) {
|
||||
$index = null;
|
||||
$argc = count($args);
|
||||
$action = $matches['action'];
|
||||
|
||||
if ('offsetSet' == $action) {
|
||||
if (0 < $argc) {
|
||||
$index = array_shift($args);
|
||||
--$argc;
|
||||
}
|
||||
}
|
||||
|
||||
if (1 > $argc) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception(sprintf('Method "%s" requires minimally content for the stylesheet', $method));
|
||||
}
|
||||
|
||||
$content = $args[0];
|
||||
$attrs = array();
|
||||
if (isset($args[1])) {
|
||||
$attrs = (array) $args[1];
|
||||
}
|
||||
|
||||
$item = $this->createData($content, $attrs);
|
||||
|
||||
if ('offsetSet' == $action) {
|
||||
$this->offsetSet($index, $item);
|
||||
} else {
|
||||
$this->$action($item);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
return parent::__call($method, $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if a value is a valid style tag
|
||||
*
|
||||
* @param mixed $value
|
||||
* @param string $method
|
||||
* @return boolean
|
||||
*/
|
||||
protected function _isValid($value)
|
||||
{
|
||||
if ((!$value instanceof stdClass)
|
||||
|| !isset($value->content)
|
||||
|| !isset($value->attributes))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override append to enforce style creation
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function append($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid value passed to append; please use appendStyle()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->append($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Override offsetSet to enforce style creation
|
||||
*
|
||||
* @param string|int $index
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function offsetSet($index, $value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid value passed to offsetSet; please use offsetSetStyle()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->offsetSet($index, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Override prepend to enforce style creation
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function prepend($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid value passed to prepend; please use prependStyle()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->prepend($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Override set to enforce style creation
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function set($value)
|
||||
{
|
||||
if (!$this->_isValid($value)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Invalid value passed to set; please use setStyle()');
|
||||
}
|
||||
|
||||
return $this->getContainer()->set($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Start capture action
|
||||
*
|
||||
* @param mixed $captureType
|
||||
* @param string $typeOrAttrs
|
||||
* @return void
|
||||
*/
|
||||
public function captureStart($type = Zend_View_Helper_Placeholder_Container_Abstract::APPEND, $attrs = null)
|
||||
{
|
||||
if ($this->_captureLock) {
|
||||
require_once 'Zend/View/Helper/Placeholder/Container/Exception.php';
|
||||
throw new Zend_View_Helper_Placeholder_Container_Exception('Cannot nest headStyle captures');
|
||||
}
|
||||
|
||||
$this->_captureLock = true;
|
||||
$this->_captureAttrs = $attrs;
|
||||
$this->_captureType = $type;
|
||||
ob_start();
|
||||
}
|
||||
|
||||
/**
|
||||
* End capture action and store
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function captureEnd()
|
||||
{
|
||||
$content = ob_get_clean();
|
||||
$attrs = $this->_captureAttrs;
|
||||
$this->_captureAttrs = null;
|
||||
$this->_captureLock = false;
|
||||
|
||||
switch ($this->_captureType) {
|
||||
case Zend_View_Helper_Placeholder_Container_Abstract::SET:
|
||||
$this->setStyle($content, $attrs);
|
||||
break;
|
||||
case Zend_View_Helper_Placeholder_Container_Abstract::PREPEND:
|
||||
$this->prependStyle($content, $attrs);
|
||||
break;
|
||||
case Zend_View_Helper_Placeholder_Container_Abstract::APPEND:
|
||||
default:
|
||||
$this->appendStyle($content, $attrs);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert content and attributes into valid style tag
|
||||
*
|
||||
* @param stdClass $item Item to render
|
||||
* @param string $indent Indentation to use
|
||||
* @return string
|
||||
*/
|
||||
public function itemToString(stdClass $item, $indent)
|
||||
{
|
||||
$attrString = '';
|
||||
if (!empty($item->attributes)) {
|
||||
foreach ($item->attributes as $key => $value) {
|
||||
if (!in_array($key, $this->_optionalAttributes)) {
|
||||
continue;
|
||||
}
|
||||
if ('media' == $key) {
|
||||
if (!in_array($value, $this->_mediaTypes)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$attrString .= sprintf(' %s="%s"', $key, htmlspecialchars($value));
|
||||
}
|
||||
}
|
||||
|
||||
$html = '<style type="text/css"' . $attrString . '>' . PHP_EOL
|
||||
. $indent . '<!--' . PHP_EOL . $indent . $item->content . PHP_EOL . $indent . '-->' . PHP_EOL
|
||||
. '</style>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create string representation of placeholder
|
||||
*
|
||||
* @param string|int $indent
|
||||
* @return string
|
||||
*/
|
||||
public function toString($indent = null)
|
||||
{
|
||||
$indent = (null !== $indent)
|
||||
? $this->getWhitespace($indent)
|
||||
: $this->getIndent();
|
||||
|
||||
$items = array();
|
||||
foreach ($this as $item) {
|
||||
if (!$this->_isValid($item)) {
|
||||
continue;
|
||||
}
|
||||
$items[] = $this->itemToString($item, $indent);
|
||||
}
|
||||
|
||||
$return = $indent . implode($this->getSeparator() . $indent, $items);
|
||||
$return = preg_replace("/(\r\n?|\n)/", '$1' . $indent, $return);
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create data item for use in stack
|
||||
*
|
||||
* @param string $content
|
||||
* @param array $attributes
|
||||
* @return stdClass
|
||||
*/
|
||||
public function createData($content, array $attributes)
|
||||
{
|
||||
if (!isset($attributes['media'])) {
|
||||
$attributes['media'] = 'screen';
|
||||
}
|
||||
|
||||
$data = new stdClass();
|
||||
$data->content = $content;
|
||||
$data->attributes = $attributes;
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
177
libs/Zend/View/Helper/HeadTitle.php
Normal file
177
libs/Zend/View/Helper/HeadTitle.php
Normal file
@ -0,0 +1,177 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Placeholder.php 7078 2007-12-11 14:29:33Z matthew $
|
||||
* @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-2008 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)
|
||||
{
|
||||
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>';
|
||||
}
|
||||
}
|
141
libs/Zend/View/Helper/HtmlElement.php
Normal file
141
libs/Zend/View/Helper/HtmlElement.php
Normal file
@ -0,0 +1,141 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: HtmlElement.php 12477 2008-11-09 01:55:35Z yoshida@zend.co.jp $
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see Zend_View_Helper_Abstract
|
||||
*/
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
abstract class Zend_View_Helper_HtmlElement extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/**
|
||||
* EOL character
|
||||
*/
|
||||
const EOL = "\n";
|
||||
|
||||
/**
|
||||
* The tag closing bracket
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $_closingBracket = null;
|
||||
|
||||
/**
|
||||
* Get the tag closing bracket
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getClosingBracket()
|
||||
{
|
||||
if (!$this->_closingBracket) {
|
||||
if ($this->_isXhtml()) {
|
||||
$this->_closingBracket = ' />';
|
||||
} else {
|
||||
$this->_closingBracket = '>';
|
||||
}
|
||||
}
|
||||
|
||||
return $this->_closingBracket;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is doctype XHTML?
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
protected function _isXhtml()
|
||||
{
|
||||
$doctype = $this->view->doctype();
|
||||
return $doctype->isXhtml();
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts an associative array to a string of tag attributes.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param array $attribs From this array, each key-value pair is
|
||||
* converted to an attribute name and value.
|
||||
*
|
||||
* @return string The XHTML for the attributes.
|
||||
*/
|
||||
protected function _htmlAttribs($attribs)
|
||||
{
|
||||
$xhtml = '';
|
||||
foreach ((array) $attribs as $key => $val) {
|
||||
$key = $this->view->escape($key);
|
||||
|
||||
if (('on' == substr($key, 0, 2)) || ('constraints' == $key)) {
|
||||
// Don't escape event attributes; _do_ substitute double quotes with singles
|
||||
if (!is_scalar($val)) {
|
||||
// non-scalar data should be cast to JSON first
|
||||
require_once 'Zend/Json.php';
|
||||
$val = Zend_Json::encode($val);
|
||||
}
|
||||
$val = preg_replace('/"([^"]*)":/', '$1:', $val);
|
||||
} else {
|
||||
if (is_array($val)) {
|
||||
$val = implode(' ', $val);
|
||||
}
|
||||
$val = $this->view->escape($val);
|
||||
}
|
||||
|
||||
if ('id' == $key) {
|
||||
$val = $this->_normalizeId($val);
|
||||
}
|
||||
|
||||
if (strpos($val, '"') !== false) {
|
||||
$xhtml .= " $key='$val'";
|
||||
} else {
|
||||
$xhtml .= " $key=\"$val\"";
|
||||
}
|
||||
|
||||
}
|
||||
return $xhtml;
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalize an ID
|
||||
*
|
||||
* @param string $value
|
||||
* @return string
|
||||
*/
|
||||
protected function _normalizeId($value)
|
||||
{
|
||||
if (strstr($value, '[')) {
|
||||
if ('[]' == substr($value, -2)) {
|
||||
$value = substr($value, 0, strlen($value) - 2);
|
||||
}
|
||||
$value = trim($value, ']');
|
||||
$value = str_replace('][', '-', $value);
|
||||
$value = str_replace('[', '-', $value);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
}
|
60
libs/Zend/View/Helper/HtmlFlash.php
Normal file
60
libs/Zend/View/Helper/HtmlFlash.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: HtmlFlash.php 11525 2008-09-26 18:40:19Z norm2782 $
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see Zend_View_Helper_HtmlObject
|
||||
*/
|
||||
require_once 'Zend/View/Helper/HtmlObject.php';
|
||||
|
||||
/**
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_HtmlFlash extends Zend_View_Helper_HtmlObject
|
||||
{
|
||||
/**
|
||||
* Default file type for a flash applet
|
||||
*
|
||||
*/
|
||||
const TYPE = 'application/x-shockwave-flash';
|
||||
|
||||
/**
|
||||
* Output a flash movie object tag
|
||||
*
|
||||
* @param string $data The flash file
|
||||
* @param array $attribs Attribs for the object tag
|
||||
* @param array $params Params for in the object tag
|
||||
* @param string $content Alternative content
|
||||
* @return string
|
||||
*/
|
||||
public function htmlFlash($data, array $attribs = array(), array $params = array(), $content = null)
|
||||
{
|
||||
// Params
|
||||
$params = array_merge(array('movie' => $data,
|
||||
'quality' => 'high'), $params);
|
||||
|
||||
return $this->htmlObject($data, self::TYPE, $attribs, $params, $content);
|
||||
}
|
||||
}
|
86
libs/Zend/View/Helper/HtmlList.php
Normal file
86
libs/Zend/View/Helper/HtmlList.php
Normal file
@ -0,0 +1,86 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Zend_View_Helper_FormELement
|
||||
*/
|
||||
require_once 'Zend/View/Helper/FormElement.php';
|
||||
|
||||
/**
|
||||
* Helper for ordered and unordered lists
|
||||
*
|
||||
* @uses Zend_View_Helper_FormElement
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_HtmlList extends Zend_View_Helper_FormElement
|
||||
{
|
||||
|
||||
/**
|
||||
* Generates a 'List' element.
|
||||
*
|
||||
* @param array $items Array with the elements of the list
|
||||
* @param boolean $ordered Specifies ordered/unordered list; default unordered
|
||||
* @param array $attribs Attributes for the ol/ul tag.
|
||||
* @return string The list XHTML.
|
||||
*/
|
||||
public function htmlList(array $items, $ordered = false, $attribs = false, $escape = true)
|
||||
{
|
||||
if (!is_array($items)) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('First param must be an array', $this);
|
||||
}
|
||||
|
||||
$list = '';
|
||||
|
||||
foreach ($items as $item) {
|
||||
if (!is_array($item)) {
|
||||
if ($escape) {
|
||||
$item = $this->view->escape($item);
|
||||
}
|
||||
$list .= '<li>' . $item . '</li>';
|
||||
} else {
|
||||
if (5 < strlen($list)) {
|
||||
$list = substr($list, 0, strlen($list) - 5) . $this->htmlList($item, $ordered, $attribs, $escape) . '</li>';
|
||||
} else {
|
||||
$list .= '<li>' . $this->htmlList($item, $ordered, $attribs, $escape) . '</li>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($attribs) {
|
||||
$attribs = $this->_htmlAttribs($attribs);
|
||||
} else {
|
||||
$attribs = '';
|
||||
}
|
||||
|
||||
$tag = 'ul';
|
||||
if ($ordered) {
|
||||
$tag = 'ol';
|
||||
}
|
||||
|
||||
return '<' . $tag . $attribs . '>' . $list . '</' . $tag . '>';
|
||||
}
|
||||
}
|
80
libs/Zend/View/Helper/HtmlObject.php
Normal file
80
libs/Zend/View/Helper/HtmlObject.php
Normal file
@ -0,0 +1,80 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: HtmlObject.php 10192 2008-07-18 20:14:57Z matthew $
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see Zend_View_Helper_HtmlElement
|
||||
*/
|
||||
require_once 'Zend/View/Helper/HtmlElement.php';
|
||||
|
||||
/**
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_HtmlObject extends Zend_View_Helper_HtmlElement
|
||||
{
|
||||
/**
|
||||
* Output an object set
|
||||
*
|
||||
* @param string $data The data file
|
||||
* @param string $type Data file type
|
||||
* @param array $attribs Attribs for the object tag
|
||||
* @param array $params Params for in the object tag
|
||||
* @param string $content Alternative content for object
|
||||
* @return string
|
||||
*/
|
||||
public function htmlObject($data, $type, array $attribs = array(), array $params = array(), $content = null)
|
||||
{
|
||||
// Merge data and type
|
||||
$attribs = array_merge(array('data' => $data,
|
||||
'type' => $type), $attribs);
|
||||
|
||||
// Params
|
||||
$paramHtml = array();
|
||||
$closingBracket = $this->getClosingBracket();
|
||||
|
||||
foreach ($params as $param => $options) {
|
||||
if (is_string($options)) {
|
||||
$options = array('value' => $options);
|
||||
}
|
||||
|
||||
$options = array_merge(array('name' => $param), $options);
|
||||
|
||||
$paramHtml[] = '<param' . $this->_htmlAttribs($options) . $closingBracket;
|
||||
}
|
||||
|
||||
// Content
|
||||
if (is_array($content)) {
|
||||
$content = implode(self::EOL, $content);
|
||||
}
|
||||
|
||||
// Object header
|
||||
$xhtml = '<object' . $this->_htmlAttribs($attribs) . '>' . self::EOL
|
||||
. implode(self::EOL, $paramHtml) . self::EOL
|
||||
. ($content ? $content . self::EOL : '')
|
||||
. '</object>';
|
||||
|
||||
return $xhtml;
|
||||
}
|
||||
}
|
75
libs/Zend/View/Helper/HtmlPage.php
Normal file
75
libs/Zend/View/Helper/HtmlPage.php
Normal file
@ -0,0 +1,75 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: HtmlPage.php 10192 2008-07-18 20:14:57Z matthew $
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see Zend_View_Helper_HtmlObject
|
||||
*/
|
||||
require_once 'Zend/View/Helper/HtmlObject.php';
|
||||
|
||||
/**
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_HtmlPage extends Zend_View_Helper_HtmlObject
|
||||
{
|
||||
/**
|
||||
* Default file type for html
|
||||
*
|
||||
*/
|
||||
const TYPE = 'text/html';
|
||||
|
||||
/**
|
||||
* Object classid
|
||||
*
|
||||
*/
|
||||
const ATTRIB_CLASSID = 'clsid:25336920-03F9-11CF-8FD0-00AA00686F13';
|
||||
|
||||
/**
|
||||
* Default attributes
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_attribs = array('classid' => self::ATTRIB_CLASSID);
|
||||
|
||||
/**
|
||||
* Output a html object tag
|
||||
*
|
||||
* @param string $data The html url
|
||||
* @param array $attribs Attribs for the object tag
|
||||
* @param array $params Params for in the object tag
|
||||
* @param string $content Alternative content
|
||||
* @return string
|
||||
*/
|
||||
public function htmlPage($data, array $attribs = array(), array $params = array(), $content = null)
|
||||
{
|
||||
// Attrs
|
||||
$attribs = array_merge($this->_attribs, $attribs);
|
||||
|
||||
// Params
|
||||
$params = array_merge(array('data' => $data), $params);
|
||||
|
||||
return $this->htmlObject($data, self::TYPE, $attribs, $params, $content);
|
||||
}
|
||||
}
|
82
libs/Zend/View/Helper/HtmlQuicktime.php
Normal file
82
libs/Zend/View/Helper/HtmlQuicktime.php
Normal file
@ -0,0 +1,82 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: HtmlQuicktime.php 10192 2008-07-18 20:14:57Z matthew $
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see Zend_View_Helper_HtmlObject
|
||||
*/
|
||||
require_once 'Zend/View/Helper/HtmlObject.php';
|
||||
|
||||
/**
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_HtmlQuicktime extends Zend_View_Helper_HtmlObject
|
||||
{
|
||||
/**
|
||||
* Default file type for a movie applet
|
||||
*
|
||||
*/
|
||||
const TYPE = 'video/quicktime';
|
||||
|
||||
/**
|
||||
* Object classid
|
||||
*
|
||||
*/
|
||||
const ATTRIB_CLASSID = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';
|
||||
|
||||
/**
|
||||
* Object Codebase
|
||||
*
|
||||
*/
|
||||
const ATTRIB_CODEBASE = 'http://www.apple.com/qtactivex/qtplugin.cab';
|
||||
|
||||
/**
|
||||
* Default attributes
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_attribs = array('classid' => self::ATTRIB_CLASSID,
|
||||
'codebase' => self::ATTRIB_CODEBASE);
|
||||
|
||||
/**
|
||||
* Output a quicktime movie object tag
|
||||
*
|
||||
* @param string $data The quicktime file
|
||||
* @param array $attribs Attribs for the object tag
|
||||
* @param array $params Params for in the object tag
|
||||
* @param string $content Alternative content
|
||||
* @return string
|
||||
*/
|
||||
public function htmlQuicktime($data, array $attribs = array(), array $params = array(), $content = null)
|
||||
{
|
||||
// Attrs
|
||||
$attribs = array_merge($this->_attribs, $attribs);
|
||||
|
||||
// Params
|
||||
$params = array_merge(array('src' => $data), $params);
|
||||
|
||||
return $this->htmlObject($data, self::TYPE, $attribs, $params, $content);
|
||||
}
|
||||
}
|
60
libs/Zend/View/Helper/InlineScript.php
Normal file
60
libs/Zend/View/Helper/InlineScript.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: InlineScript.php 9099 2008-03-30 19:35:47Z thomas $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_HeadScript */
|
||||
require_once 'Zend/View/Helper/HeadScript.php';
|
||||
|
||||
/**
|
||||
* Helper for setting and retrieving script elements for inclusion in HTML body
|
||||
* section
|
||||
*
|
||||
* @uses Zend_View_Helper_Head_Script
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_InlineScript extends Zend_View_Helper_HeadScript
|
||||
{
|
||||
/**
|
||||
* Registry key for placeholder
|
||||
* @var string
|
||||
*/
|
||||
protected $_regKey = 'Zend_View_Helper_InlineScript';
|
||||
|
||||
/**
|
||||
* Return InlineScript object
|
||||
*
|
||||
* Returns InlineScript helper object; optionally, allows specifying a
|
||||
* script or script file to include.
|
||||
*
|
||||
* @param string $mode Script or file
|
||||
* @param string $spec Script/url
|
||||
* @param string $placement Append, prepend, or set
|
||||
* @param array $attrs Array of script attributes
|
||||
* @param string $type Script type and/or array of script attributes
|
||||
* @return Zend_View_Helper_InlineScript
|
||||
*/
|
||||
public function inlineScript($mode = Zend_View_Helper_HeadScript::FILE, $spec = null, $placement = 'APPEND', array $attrs = array(), $type = 'text/javascript')
|
||||
{
|
||||
return $this->headScript($mode, $spec, $placement, $attrs, $type);
|
||||
}
|
||||
}
|
46
libs/Zend/View/Helper/Interface.php
Normal file
46
libs/Zend/View/Helper/Interface.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Interface.php 10664 2008-08-05 10:56:06Z matthew $
|
||||
*/
|
||||
|
||||
/**
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
interface Zend_View_Helper_Interface
|
||||
{
|
||||
/**
|
||||
* Set the View object
|
||||
*
|
||||
* @param Zend_View_Interface $view
|
||||
* @return Zend_View_Helper_Interface
|
||||
*/
|
||||
public function setView(Zend_View_Interface $view);
|
||||
|
||||
/**
|
||||
* Strategy pattern: helper method to invoke
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function direct();
|
||||
}
|
66
libs/Zend/View/Helper/Json.php
Normal file
66
libs/Zend/View/Helper/Json.php
Normal file
@ -0,0 +1,66 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Json.php 10664 2008-08-05 10:56:06Z matthew $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_Json */
|
||||
require_once 'Zend/Json.php';
|
||||
|
||||
/** Zend_Controller_Front */
|
||||
require_once 'Zend/Controller/Front.php';
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Helper for simplifying JSON responses
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Json extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/**
|
||||
* Encode data as JSON, disable layouts, and set response header
|
||||
*
|
||||
* If $keepLayouts is true, does not disable layouts.
|
||||
*
|
||||
* @param mixed $data
|
||||
* @param bool $keepLayouts
|
||||
* @return string|void
|
||||
*/
|
||||
public function json($data, $keepLayouts = false)
|
||||
{
|
||||
$data = Zend_Json::encode($data);
|
||||
if (!$keepLayouts) {
|
||||
require_once 'Zend/Layout.php';
|
||||
$layout = Zend_Layout::getMvcInstance();
|
||||
if ($layout instanceof Zend_Layout) {
|
||||
$layout->disableLayout();
|
||||
}
|
||||
}
|
||||
|
||||
$response = Zend_Controller_Front::getInstance()->getResponse();
|
||||
$response->setHeader('Content-Type', 'application/json');
|
||||
return $data;
|
||||
}
|
||||
}
|
81
libs/Zend/View/Helper/Layout.php
Normal file
81
libs/Zend/View/Helper/Layout.php
Normal file
@ -0,0 +1,81 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Layout.php 10664 2008-08-05 10:56:06Z matthew $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* View helper for retrieving layout object
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Layout extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/** @var Zend_Layout */
|
||||
protected $_layout;
|
||||
|
||||
/**
|
||||
* Get layout object
|
||||
*
|
||||
* @return Zend_Layout
|
||||
*/
|
||||
public function getLayout()
|
||||
{
|
||||
if (null === $this->_layout) {
|
||||
require_once 'Zend/Layout.php';
|
||||
$this->_layout = Zend_Layout::getMvcInstance();
|
||||
if (null === $this->_layout) {
|
||||
// Implicitly creates layout object
|
||||
$this->_layout = new Zend_Layout();
|
||||
}
|
||||
}
|
||||
|
||||
return $this->_layout;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set layout object
|
||||
*
|
||||
* @param Zend_Layout $layout
|
||||
* @return Zend_Layout_Controller_Action_Helper_Layout
|
||||
*/
|
||||
public function setLayout(Zend_Layout $layout)
|
||||
{
|
||||
$this->_layout = $layout;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return layout object
|
||||
*
|
||||
* Usage: $this->layout()->setLayout('alternate');
|
||||
*
|
||||
* @return Zend_Layout
|
||||
*/
|
||||
public function layout()
|
||||
{
|
||||
return $this->getLayout();
|
||||
}
|
||||
}
|
141
libs/Zend/View/Helper/PaginationControl.php
Normal file
141
libs/Zend/View/Helper/PaginationControl.php
Normal file
@ -0,0 +1,141 @@
|
||||
<?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
|
||||
* @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: PaginationControl.php 12321 2008-11-06 10:44:41Z doctorrock83 $
|
||||
*/
|
||||
|
||||
/**
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_PaginationControl
|
||||
{
|
||||
/**
|
||||
* View instance
|
||||
*
|
||||
* @var Zend_View_Instance
|
||||
*/
|
||||
public $view = null;
|
||||
|
||||
/**
|
||||
* Default view partial
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected static $_defaultViewPartial = null;
|
||||
|
||||
/**
|
||||
* Sets the view instance.
|
||||
*
|
||||
* @param Zend_View_Interface $view View instance
|
||||
* @return Zend_View_Helper_PaginationControl
|
||||
*/
|
||||
public function setView(Zend_View_Interface $view)
|
||||
{
|
||||
$this->view = $view;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default view partial.
|
||||
*
|
||||
* @param string $partial View partial
|
||||
*/
|
||||
public static function setDefaultViewPartial($partial)
|
||||
{
|
||||
self::$_defaultViewPartial = $partial;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the default view partial
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getDefaultViewPartial()
|
||||
{
|
||||
return self::$_defaultViewPartial;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the provided pages. This checks if $view->paginator is set and,
|
||||
* if so, uses that. Also, if no scrolling style or partial are specified,
|
||||
* the defaults will be used (if set).
|
||||
*
|
||||
* @param Zend_Paginator (Optional) $paginator
|
||||
* @param string $scrollingStyle (Optional) Scrolling style
|
||||
* @param string $partial (Optional) View partial
|
||||
* @param array|string $params (Optional) params to pass to the partial
|
||||
* @return string
|
||||
* @throws Zend_View_Exception
|
||||
*/
|
||||
public function paginationControl(Zend_Paginator $paginator = null, $scrollingStyle = null, $partial = null, $params = null)
|
||||
{
|
||||
if ($paginator === null) {
|
||||
if (isset($this->view->paginator) and $this->view->paginator !== null and $this->view->paginator instanceof Zend_Paginator) {
|
||||
$paginator = $this->view->paginator;
|
||||
} else {
|
||||
/**
|
||||
* @see Zend_View_Exception
|
||||
*/
|
||||
require_once 'Zend/View/Exception.php';
|
||||
|
||||
throw new Zend_View_Exception('No paginator instance provided or incorrect type');
|
||||
}
|
||||
}
|
||||
|
||||
if ($partial === null) {
|
||||
if (self::$_defaultViewPartial === null) {
|
||||
/**
|
||||
* @see Zend_View_Exception
|
||||
*/
|
||||
require_once 'Zend/View/Exception.php';
|
||||
|
||||
throw new Zend_View_Exception('No view partial provided and no default set');
|
||||
}
|
||||
|
||||
$partial = self::$_defaultViewPartial;
|
||||
}
|
||||
|
||||
$pages = get_object_vars($paginator->getPages($scrollingStyle));
|
||||
|
||||
if ($params !== null) {
|
||||
$pages = array_merge($pages, (array) $params);
|
||||
}
|
||||
|
||||
if (is_array($partial)) {
|
||||
if (count($partial) != 2) {
|
||||
/**
|
||||
* @see Zend_View_Exception
|
||||
*/
|
||||
require_once 'Zend/View/Exception.php';
|
||||
|
||||
throw new Zend_View_Exception('A view partial supplied as an array must contain two values: the filename and its module');
|
||||
}
|
||||
|
||||
if ($partial[1] !== null) {
|
||||
return $this->view->partial($partial[0], $partial[1], $pages);
|
||||
}
|
||||
|
||||
$partial = $partial[0];
|
||||
}
|
||||
|
||||
return $this->view->partial($partial, $pages);
|
||||
}
|
||||
}
|
147
libs/Zend/View/Helper/Partial.php
Normal file
147
libs/Zend/View/Helper/Partial.php
Normal file
@ -0,0 +1,147 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Partial.php 12577 2008-11-12 01:31:34Z sidhighwind $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Helper for rendering a template fragment in its own variable scope.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Partial extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/**
|
||||
* Variable to which object will be assigned
|
||||
* @var string
|
||||
*/
|
||||
protected $_objectKey;
|
||||
|
||||
/**
|
||||
* Renders a template fragment within a variable scope distinct from the
|
||||
* calling View object.
|
||||
*
|
||||
* If no arguments are passed, returns the helper instance.
|
||||
*
|
||||
* If the $model is an array, it is passed to the view object's assign()
|
||||
* method.
|
||||
*
|
||||
* If the $model is an object, it first checks to see if the object
|
||||
* implements a 'toArray' method; if so, it passes the result of that
|
||||
* method to to the view object's assign() method. Otherwise, the result of
|
||||
* get_object_vars() is passed.
|
||||
*
|
||||
* @param string $name Name of view script
|
||||
* @param string|array $module If $model is empty, and $module is an array,
|
||||
* these are the variables to populate in the
|
||||
* view. Otherwise, the module in which the
|
||||
* partial resides
|
||||
* @param array $model Variables to populate in the view
|
||||
* @return string|Zend_View_Helper_Partial
|
||||
*/
|
||||
public function partial($name = null, $module = null, $model = null)
|
||||
{
|
||||
if (0 == func_num_args()) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
$view = $this->cloneView();
|
||||
if (isset($this->partialCounter)) {
|
||||
$view->partialCounter = $this->partialCounter;
|
||||
}
|
||||
if ((null !== $module) && is_string($module)) {
|
||||
require_once 'Zend/Controller/Front.php';
|
||||
$moduleDir = Zend_Controller_Front::getInstance()->getControllerDirectory($module);
|
||||
if (null === $moduleDir) {
|
||||
require_once 'Zend/View/Helper/Partial/Exception.php';
|
||||
throw new Zend_View_Helper_Partial_Exception('Cannot render partial; module does not exist');
|
||||
}
|
||||
$viewsDir = dirname($moduleDir) . '/views';
|
||||
$view->addBasePath($viewsDir);
|
||||
} elseif ((null == $model) && (null !== $module)
|
||||
&& (is_array($module) || is_object($module)))
|
||||
{
|
||||
$model = $module;
|
||||
}
|
||||
|
||||
if (!empty($model)) {
|
||||
if (is_array($model)) {
|
||||
$view->assign($model);
|
||||
} elseif (is_object($model)) {
|
||||
if (null !== ($objectKey = $this->getObjectKey())) {
|
||||
$view->assign($objectKey, $model);
|
||||
} elseif (method_exists($model, 'toArray')) {
|
||||
$view->assign($model->toArray());
|
||||
} else {
|
||||
$view->assign(get_object_vars($model));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $view->render($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clone the current View
|
||||
*
|
||||
* @return Zend_View_Interface
|
||||
*/
|
||||
public function cloneView()
|
||||
{
|
||||
$view = clone $this->view;
|
||||
$view->clearVars();
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set object key
|
||||
*
|
||||
* @param string $key
|
||||
* @return Zend_View_Helper_Partial
|
||||
*/
|
||||
public function setObjectKey($key)
|
||||
{
|
||||
if (null === $key) {
|
||||
$this->_objectKey = null;
|
||||
} else {
|
||||
$this->_objectKey = (string) $key;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve object key
|
||||
*
|
||||
* The objectKey is the variable to which an object in the iterator will be
|
||||
* assigned.
|
||||
*
|
||||
* @return null|string
|
||||
*/
|
||||
public function getObjectKey()
|
||||
{
|
||||
return $this->_objectKey;
|
||||
}
|
||||
}
|
39
libs/Zend/View/Helper/Partial/Exception.php
Normal file
39
libs/Zend/View/Helper/Partial/Exception.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Exception.php 8064 2008-02-16 10:58:39Z thomas $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/** Zend_View_Exception */
|
||||
require_once 'Zend/View/Exception.php';
|
||||
|
||||
|
||||
/**
|
||||
* Exception for Zend_View_Helper_Partial class.
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Partial_Exception extends Zend_View_Exception
|
||||
{
|
||||
}
|
94
libs/Zend/View/Helper/PartialLoop.php
Normal file
94
libs/Zend/View/Helper/PartialLoop.php
Normal file
@ -0,0 +1,94 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: PartialLoop.php 12577 2008-11-12 01:31:34Z sidhighwind $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Partial */
|
||||
require_once 'Zend/View/Helper/Partial.php';
|
||||
|
||||
/**
|
||||
* Helper for rendering a template fragment in its own variable scope; iterates
|
||||
* over data provided and renders for each iteration.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_PartialLoop extends Zend_View_Helper_Partial
|
||||
{
|
||||
|
||||
/**
|
||||
* Marker to where the pointer is at in the loop
|
||||
* @var integer
|
||||
*/
|
||||
protected $partialCounter = 0;
|
||||
|
||||
/**
|
||||
* Renders a template fragment within a variable scope distinct from the
|
||||
* calling View object.
|
||||
*
|
||||
* If no arguments are provided, returns object instance.
|
||||
*
|
||||
* @param string $name Name of view script
|
||||
* @param string|array $module If $model is empty, and $module is an array,
|
||||
* these are the variables to populate in the
|
||||
* view. Otherwise, the module in which the
|
||||
* partial resides
|
||||
* @param array $model Variables to populate in the view
|
||||
* @return string
|
||||
*/
|
||||
public function partialLoop($name = null, $module = null, $model = null)
|
||||
{
|
||||
if (0 == func_num_args()) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
if ((null === $model) && (null !== $module)) {
|
||||
$model = $module;
|
||||
$module = null;
|
||||
}
|
||||
|
||||
if (!is_array($model)
|
||||
&& (!$model instanceof Traversable)
|
||||
&& (is_object($model) && !method_exists($model, 'toArray'))
|
||||
) {
|
||||
require_once 'Zend/View/Helper/Partial/Exception.php';
|
||||
throw new Zend_View_Helper_Partial_Exception('PartialLoop helper requires iterable data');
|
||||
}
|
||||
|
||||
if (is_object($model)
|
||||
&& (!$model instanceof Traversable)
|
||||
&& method_exists($model, 'toArray')
|
||||
) {
|
||||
$model = $model->toArray();
|
||||
}
|
||||
|
||||
$content = '';
|
||||
foreach ($model as $item) {
|
||||
// increment the counter variable
|
||||
$this->partialCounter++;
|
||||
|
||||
$content .= $this->partial($name, $module, $item);
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
}
|
86
libs/Zend/View/Helper/Placeholder.php
Normal file
86
libs/Zend/View/Helper/Placeholder.php
Normal file
@ -0,0 +1,86 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Placeholder.php 10664 2008-08-05 10:56:06Z matthew $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Placeholder_Registry */
|
||||
require_once 'Zend/View/Helper/Placeholder/Registry.php';
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Helper for passing data between otherwise segregated Views. It's called
|
||||
* Placeholder to make its typical usage obvious, but can be used just as easily
|
||||
* for non-Placeholder things. That said, the support for this is only
|
||||
* guaranteed to effect subsequently rendered templates, and of course Layouts.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Placeholder extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/**
|
||||
* Placeholder items
|
||||
* @var array
|
||||
*/
|
||||
protected $_items = array();
|
||||
|
||||
/**
|
||||
* @var Zend_View_Helper_Placeholder_Registry
|
||||
*/
|
||||
protected $_registry;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Retrieve container registry from Zend_Registry, or create new one and register it.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->_registry = Zend_View_Helper_Placeholder_Registry::getRegistry();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Placeholder helper
|
||||
*
|
||||
* @param string $name
|
||||
* @return Zend_View_Helper_Placeholder_Container_Abstract
|
||||
*/
|
||||
public function placeholder($name)
|
||||
{
|
||||
$name = (string) $name;
|
||||
return $this->_registry->getContainer($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the registry
|
||||
*
|
||||
* @return Zend_View_Helper_Placeholder_Registry
|
||||
*/
|
||||
public function getRegistry()
|
||||
{
|
||||
return $this->_registry;
|
||||
}
|
||||
}
|
35
libs/Zend/View/Helper/Placeholder/Container.php
Normal file
35
libs/Zend/View/Helper/Placeholder/Container.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Container.php 9099 2008-03-30 19:35:47Z thomas $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Placeholder_Container_Abstract */
|
||||
require_once 'Zend/View/Helper/Placeholder/Container/Abstract.php';
|
||||
|
||||
/**
|
||||
* Container for placeholder values
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Placeholder_Container extends Zend_View_Helper_Placeholder_Container_Abstract
|
||||
{
|
||||
}
|
375
libs/Zend/View/Helper/Placeholder/Container/Abstract.php
Normal file
375
libs/Zend/View/Helper/Placeholder/Container/Abstract.php
Normal file
@ -0,0 +1,375 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Abstract.php 9099 2008-03-30 19:35:47Z thomas $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Abstract class representing container for placeholder values
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helpers
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
abstract class Zend_View_Helper_Placeholder_Container_Abstract extends ArrayObject
|
||||
{
|
||||
/**
|
||||
* Whether or not to override all contents of placeholder
|
||||
* @const string
|
||||
*/
|
||||
const SET = 'SET';
|
||||
|
||||
/**
|
||||
* Whether or not to append contents to placeholder
|
||||
* @const string
|
||||
*/
|
||||
const APPEND = 'APPEND';
|
||||
|
||||
/**
|
||||
* Whether or not to prepend contents to placeholder
|
||||
* @const string
|
||||
*/
|
||||
const PREPEND = 'PREPEND';
|
||||
|
||||
/**
|
||||
* What text to prefix the placeholder with when rendering
|
||||
* @var string
|
||||
*/
|
||||
protected $_prefix = '';
|
||||
|
||||
/**
|
||||
* What text to append the placeholder with when rendering
|
||||
* @var string
|
||||
*/
|
||||
protected $_postfix = '';
|
||||
|
||||
/**
|
||||
* What string to use between individual items in the placeholder when rendering
|
||||
* @var string
|
||||
*/
|
||||
protected $_separator = '';
|
||||
|
||||
/**
|
||||
* What string to use as the indentation of output, this will typically be spaces. Eg: ' '
|
||||
* @var string
|
||||
*/
|
||||
protected $_indent = '';
|
||||
|
||||
/**
|
||||
* Whether or not we're already capturing for this given container
|
||||
* @var bool
|
||||
*/
|
||||
protected $_captureLock = false;
|
||||
|
||||
/**
|
||||
* What type of capture (overwrite (set), append, prepend) to use
|
||||
* @var string
|
||||
*/
|
||||
protected $_captureType;
|
||||
|
||||
/**
|
||||
* Key to which to capture content
|
||||
* @var string
|
||||
*/
|
||||
protected $_captureKey;
|
||||
|
||||
/**
|
||||
* Constructor - This is needed so that we can attach a class member as the ArrayObject container
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(array(), parent::ARRAY_AS_PROPS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a single value
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function set($value)
|
||||
{
|
||||
$this->exchangeArray(array($value));
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepend a value to the top of the container
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function prepend($value)
|
||||
{
|
||||
$values = $this->getArrayCopy();
|
||||
array_unshift($values, $value);
|
||||
$this->exchangeArray($values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve container value
|
||||
*
|
||||
* If single element registered, returns that element; otherwise,
|
||||
* serializes to array.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getValue()
|
||||
{
|
||||
if (1 == count($this)) {
|
||||
$keys = $this->getKeys();
|
||||
$key = array_shift($keys);
|
||||
return $this[$key];
|
||||
}
|
||||
|
||||
return $this->getArrayCopy();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set prefix for __toString() serialization
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return Zend_View_Helper_Placeholder_Container
|
||||
*/
|
||||
public function setPrefix($prefix)
|
||||
{
|
||||
$this->_prefix = (string) $prefix;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve prefix
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getPrefix()
|
||||
{
|
||||
return $this->_prefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set postfix for __toString() serialization
|
||||
*
|
||||
* @param string $postfix
|
||||
* @return Zend_View_Helper_Placeholder_Container
|
||||
*/
|
||||
public function setPostfix($postfix)
|
||||
{
|
||||
$this->_postfix = (string) $postfix;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve postfix
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getPostfix()
|
||||
{
|
||||
return $this->_postfix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set separator for __toString() serialization
|
||||
*
|
||||
* Used to implode elements in container
|
||||
*
|
||||
* @param string $separator
|
||||
* @return Zend_View_Helper_Placeholder_Container
|
||||
*/
|
||||
public function setSeparator($separator)
|
||||
{
|
||||
$this->_separator = (string) $separator;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve separator
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getSeparator()
|
||||
{
|
||||
return $this->_separator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the indentation string for __toString() serialization,
|
||||
* optionally, if a number is passed, it will be the number of spaces
|
||||
*
|
||||
* @param string|int $indent
|
||||
* @return Zend_View_Helper_Placeholder_Container_Abstract
|
||||
*/
|
||||
public function setIndent($indent)
|
||||
{
|
||||
$this->_indent = $this->getWhitespace($indent);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve indentation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getIndent()
|
||||
{
|
||||
return $this->_indent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve whitespace representation of $indent
|
||||
*
|
||||
* @param int|string $indent
|
||||
* @return string
|
||||
*/
|
||||
public function getWhitespace($indent)
|
||||
{
|
||||
if (is_int($indent)) {
|
||||
$indent = str_repeat(' ', $indent);
|
||||
}
|
||||
|
||||
return (string) $indent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start capturing content to push into placeholder
|
||||
*
|
||||
* @param int $type How to capture content into placeholder; append, prepend, or set
|
||||
* @return void
|
||||
* @throws Zend_View_Helper_Placeholder_Exception if nested captures detected
|
||||
*/
|
||||
public function captureStart($type = Zend_View_Helper_Placeholder_Container_Abstract::APPEND, $key = null)
|
||||
{
|
||||
if ($this->_captureLock) {
|
||||
require_once 'Zend/View/Helper/Placeholder/Container/Exception.php';
|
||||
throw new Zend_View_Helper_Placeholder_Container_Exception('Cannot nest placeholder captures for the same placeholder');
|
||||
}
|
||||
|
||||
$this->_captureLock = true;
|
||||
$this->_captureType = $type;
|
||||
if ((null !== $key) && is_scalar($key)) {
|
||||
$this->_captureKey = (string) $key;
|
||||
}
|
||||
ob_start();
|
||||
}
|
||||
|
||||
/**
|
||||
* End content capture
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function captureEnd()
|
||||
{
|
||||
$data = ob_get_clean();
|
||||
$key = null;
|
||||
$this->_captureLock = false;
|
||||
if (null !== $this->_captureKey) {
|
||||
$key = $this->_captureKey;
|
||||
}
|
||||
switch ($this->_captureType) {
|
||||
case self::SET:
|
||||
if (null !== $key) {
|
||||
$this[$key] = $data;
|
||||
} else {
|
||||
$this->exchangeArray(array($data));
|
||||
}
|
||||
break;
|
||||
case self::PREPEND:
|
||||
if (null !== $key) {
|
||||
$array = array($key => $data);
|
||||
$values = $this->getArrayCopy();
|
||||
$final = $array + $values;
|
||||
$this->exchangeArray($final);
|
||||
} else {
|
||||
$this->prepend($data);
|
||||
}
|
||||
break;
|
||||
case self::APPEND:
|
||||
default:
|
||||
if (null !== $key) {
|
||||
if (empty($this[$key])) {
|
||||
$this[$key] = $data;
|
||||
} else {
|
||||
$this[$key] .= $data;
|
||||
}
|
||||
} else {
|
||||
$this[$this->nextIndex()] = $data;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get keys
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getKeys()
|
||||
{
|
||||
$array = $this->getArrayCopy();
|
||||
return array_keys($array);
|
||||
}
|
||||
|
||||
/**
|
||||
* Next Index
|
||||
*
|
||||
* as defined by the PHP manual
|
||||
* @return int
|
||||
*/
|
||||
public function nextIndex()
|
||||
{
|
||||
$keys = $this->getKeys();
|
||||
if (0 == count($keys)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return $nextIndex = max($keys) + 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the placeholder
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function toString($indent = null)
|
||||
{
|
||||
$indent = ($indent !== null)
|
||||
? $this->getWhitespace($indent)
|
||||
: $this->getIndent();
|
||||
|
||||
$items = $this->getArrayCopy();
|
||||
$return = $indent
|
||||
. $this->getPrefix()
|
||||
. implode($this->getSeparator(), $items)
|
||||
. $this->getPostfix();
|
||||
$return = preg_replace("/(\r\n?|\n)/", '$1' . $indent, $return);
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize object to string
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->toString();
|
||||
}
|
||||
}
|
39
libs/Zend/View/Helper/Placeholder/Container/Exception.php
Normal file
39
libs/Zend/View/Helper/Placeholder/Container/Exception.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Exception.php 8064 2008-02-16 10:58:39Z thomas $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/** Zend_View_Exception */
|
||||
require_once 'Zend/View/Exception.php';
|
||||
|
||||
|
||||
/**
|
||||
* Exception for Zend_View_Helper_Placeholder_Container class.
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Placeholder_Container_Exception extends Zend_View_Exception
|
||||
{
|
||||
}
|
319
libs/Zend/View/Helper/Placeholder/Container/Standalone.php
Normal file
319
libs/Zend/View/Helper/Placeholder/Container/Standalone.php
Normal file
@ -0,0 +1,319 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Standalone.php 11373 2008-09-12 17:00:05Z ralph $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Placeholder_Registry */
|
||||
require_once 'Zend/View/Helper/Placeholder/Registry.php';
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Base class for targetted placeholder helpers
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
abstract class Zend_View_Helper_Placeholder_Container_Standalone extends Zend_View_Helper_Abstract implements IteratorAggregate, Countable, ArrayAccess
|
||||
{
|
||||
/**
|
||||
* @var Zend_View_Helper_Placeholder_Container_Abstract
|
||||
*/
|
||||
protected $_container;
|
||||
|
||||
/**
|
||||
* @var Zend_View_Helper_Placeholder_Registry
|
||||
*/
|
||||
protected $_registry;
|
||||
|
||||
/**
|
||||
* Registry key under which container registers itself
|
||||
* @var string
|
||||
*/
|
||||
protected $_regKey;
|
||||
|
||||
/**
|
||||
* Flag wheter to automatically escape output, must also be
|
||||
* enforced in the child class if __toString/toString is overriden
|
||||
* @var book
|
||||
*/
|
||||
protected $_autoEscape = true;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->setRegistry(Zend_View_Helper_Placeholder_Registry::getRegistry());
|
||||
$registry = $this->getRegistry();
|
||||
$this->setContainer($this->getRegistry()->getContainer($this->_regKey));
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve registry
|
||||
*
|
||||
* @return Zend_View_Helper_Placeholder_Registry
|
||||
*/
|
||||
public function getRegistry()
|
||||
{
|
||||
return $this->_registry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set registry object
|
||||
*
|
||||
* @param Zend_View_Helper_Placeholder_Registry $registry
|
||||
* @return Zend_View_Helper_Placeholder_Container_Standalone
|
||||
*/
|
||||
public function setRegistry(Zend_View_Helper_Placeholder_Registry $registry)
|
||||
{
|
||||
$this->_registry = $registry;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not auto escaping should be used
|
||||
*
|
||||
* @param bool $autoEscape whether or not to auto escape output
|
||||
* @return Zend_View_Helper_Placeholder_Container_Standalone
|
||||
*/
|
||||
public function setAutoEscape($autoEscape = true)
|
||||
{
|
||||
$this->_autoEscape = ($autoEscape) ? true : false;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return whether autoEscaping is enabled or disabled
|
||||
*
|
||||
* return bool
|
||||
*/
|
||||
public function getAutoEscape()
|
||||
{
|
||||
return $this->_autoEscape;
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape a string
|
||||
*
|
||||
* @param string $string
|
||||
* @return string
|
||||
*/
|
||||
protected function _escape($string)
|
||||
{
|
||||
if ($this->view instanceof Zend_View_Interface) {
|
||||
return $this->view->escape($string);
|
||||
}
|
||||
|
||||
return htmlentities((string) $string, null, 'UTF-8');
|
||||
}
|
||||
|
||||
/**
|
||||
* Set container on which to operate
|
||||
*
|
||||
* @param Zend_View_Helper_Placeholder_Container_Abstract $container
|
||||
* @return Zend_View_Helper_Placeholder_Container_Standalone
|
||||
*/
|
||||
public function setContainer(Zend_View_Helper_Placeholder_Container_Abstract $container)
|
||||
{
|
||||
$this->_container = $container;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve placeholder container
|
||||
*
|
||||
* @return Zend_View_Helper_Placeholder_Container_Abstract
|
||||
*/
|
||||
public function getContainer()
|
||||
{
|
||||
return $this->_container;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overloading: set property value
|
||||
*
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function __set($key, $value)
|
||||
{
|
||||
$container = $this->getContainer();
|
||||
$container[$key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overloading: retrieve property
|
||||
*
|
||||
* @param string $key
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($key)
|
||||
{
|
||||
$container = $this->getContainer();
|
||||
if (isset($container[$key])) {
|
||||
return $container[$key];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overloading: check if property is set
|
||||
*
|
||||
* @param string $key
|
||||
* @return bool
|
||||
*/
|
||||
public function __isset($key)
|
||||
{
|
||||
$container = $this->getContainer();
|
||||
return isset($container[$key]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Overloading: unset property
|
||||
*
|
||||
* @param string $key
|
||||
* @return void
|
||||
*/
|
||||
public function __unset($key)
|
||||
{
|
||||
$container = $this->getContainer();
|
||||
if (isset($container[$key])) {
|
||||
unset($container[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Overload
|
||||
*
|
||||
* Proxy to container methods
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $args
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call($method, $args)
|
||||
{
|
||||
$container = $this->getContainer();
|
||||
if (method_exists($container, $method)) {
|
||||
$return = call_user_func_array(array($container, $method), $args);
|
||||
if ($return === $container) {
|
||||
// If the container is returned, we really want the current object
|
||||
return $this;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('Method "' . $method . '" does not exist');
|
||||
}
|
||||
|
||||
/**
|
||||
* String representation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function toString()
|
||||
{
|
||||
return $this->getContainer()->toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cast to string representation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Countable
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function count()
|
||||
{
|
||||
$container = $this->getContainer();
|
||||
return count($container);
|
||||
}
|
||||
|
||||
/**
|
||||
* ArrayAccess: offsetExists
|
||||
*
|
||||
* @param string|int $offset
|
||||
* @return bool
|
||||
*/
|
||||
public function offsetExists($offset)
|
||||
{
|
||||
return $this->getContainer()->offsetExists($offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* ArrayAccess: offsetGet
|
||||
*
|
||||
* @param string|int $offset
|
||||
* @return mixed
|
||||
*/
|
||||
public function offsetGet($offset)
|
||||
{
|
||||
return $this->getContainer()->offsetGet($offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* ArrayAccess: offsetSet
|
||||
*
|
||||
* @param string|int $offset
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function offsetSet($offset, $value)
|
||||
{
|
||||
return $this->getContainer()->offsetSet($offset, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* ArrayAccess: offsetUnset
|
||||
*
|
||||
* @param string|int $offset
|
||||
* @return void
|
||||
*/
|
||||
public function offsetUnset($offset)
|
||||
{
|
||||
return $this->getContainer()->offsetUnset($offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* IteratorAggregate: get Iterator
|
||||
*
|
||||
* @return Iterator
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
return $this->getContainer()->getIterator();
|
||||
}
|
||||
}
|
183
libs/Zend/View/Helper/Placeholder/Registry.php
Normal file
183
libs/Zend/View/Helper/Placeholder/Registry.php
Normal file
@ -0,0 +1,183 @@
|
||||
<?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.
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Registry.php 9099 2008-03-30 19:35:47Z thomas $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_Registry */
|
||||
require_once 'Zend/Registry.php';
|
||||
|
||||
/** Zend_View_Helper_Placeholder_Container_Abstract */
|
||||
require_once 'Zend/View/Helper/Placeholder/Container/Abstract.php';
|
||||
|
||||
/** Zend_View_Helper_Placeholder_Container */
|
||||
require_once 'Zend/View/Helper/Placeholder/Container.php';
|
||||
|
||||
/**
|
||||
* Registry for placeholder containers
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Placeholder_Registry
|
||||
{
|
||||
/**
|
||||
* Zend_Registry key under which placeholder registry exists
|
||||
* @const string
|
||||
*/
|
||||
const REGISTRY_KEY = 'Zend_View_Helper_Placeholder_Registry';
|
||||
|
||||
/**
|
||||
* Default container class
|
||||
* @var string
|
||||
*/
|
||||
protected $_containerClass = 'Zend_View_Helper_Placeholder_Container';
|
||||
|
||||
/**
|
||||
* Placeholder containers
|
||||
* @var array
|
||||
*/
|
||||
protected $_items = array();
|
||||
|
||||
/**
|
||||
* Retrieve or create registry instnace
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function getRegistry()
|
||||
{
|
||||
if (Zend_Registry::isRegistered(self::REGISTRY_KEY)) {
|
||||
$registry = Zend_Registry::get(self::REGISTRY_KEY);
|
||||
} else {
|
||||
$registry = new self();
|
||||
Zend_Registry::set(self::REGISTRY_KEY, $registry);
|
||||
}
|
||||
|
||||
return $registry;
|
||||
}
|
||||
|
||||
/**
|
||||
* createContainer
|
||||
*
|
||||
* @param string $key
|
||||
* @param array $value
|
||||
* @return Zend_View_Helper_Placeholder_Container_Abstract
|
||||
*/
|
||||
public function createContainer($key, array $value = array())
|
||||
{
|
||||
$key = (string) $key;
|
||||
|
||||
$this->_items[$key] = new $this->_containerClass(array());
|
||||
return $this->_items[$key];
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a placeholder container
|
||||
*
|
||||
* @param string $key
|
||||
* @return Zend_View_Helper_Placeholder_Container_Abstract
|
||||
*/
|
||||
public function getContainer($key)
|
||||
{
|
||||
$key = (string) $key;
|
||||
if (isset($this->_items[$key])) {
|
||||
return $this->_items[$key];
|
||||
}
|
||||
|
||||
$container = $this->createContainer($key);
|
||||
|
||||
return $container;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does a particular container exist?
|
||||
*
|
||||
* @param string $key
|
||||
* @return bool
|
||||
*/
|
||||
public function containerExists($key)
|
||||
{
|
||||
$key = (string) $key;
|
||||
$return = array_key_exists($key, $this->_items);
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the container for an item in the registry
|
||||
*
|
||||
* @param string $key
|
||||
* @param Zend_View_Placeholder_Container_Abstract $container
|
||||
* @return Zend_View_Placeholder_Registry
|
||||
*/
|
||||
public function setContainer($key, Zend_View_Helper_Placeholder_Container_Abstract $container)
|
||||
{
|
||||
$key = (string) $key;
|
||||
$this->_items[$key] = $container;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a container
|
||||
*
|
||||
* @param string $key
|
||||
* @return bool
|
||||
*/
|
||||
public function deleteContainer($key)
|
||||
{
|
||||
$key = (string) $key;
|
||||
if (isset($this->_items[$key])) {
|
||||
unset($this->_items[$key]);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the container class to use
|
||||
*
|
||||
* @param string $name
|
||||
* @return Zend_View_Helper_Placeholder_Registry
|
||||
*/
|
||||
public function setContainerClass($name)
|
||||
{
|
||||
require_once 'Zend/Loader.php';
|
||||
Zend_Loader::loadClass($name);
|
||||
|
||||
$reflection = new ReflectionClass($name);
|
||||
if (!$reflection->isSubclassOf(new ReflectionClass('Zend_View_Helper_Placeholder_Container_Abstract'))) {
|
||||
require_once 'Zend/View/Helper/Placeholder/Registry/Exception.php';
|
||||
throw new Zend_View_Helper_Placeholder_Registry_Exception('Invalid Container class specified');
|
||||
}
|
||||
|
||||
$this->_containerClass = $name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the container class
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getContainerClass()
|
||||
{
|
||||
return $this->_containerClass;
|
||||
}
|
||||
}
|
39
libs/Zend/View/Helper/Placeholder/Registry/Exception.php
Normal file
39
libs/Zend/View/Helper/Placeholder/Registry/Exception.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Exception.php 8064 2008-02-16 10:58:39Z thomas $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/** Zend_View_Exception */
|
||||
require_once 'Zend/View/Exception.php';
|
||||
|
||||
|
||||
/**
|
||||
* Exception for Zend_View_Helper_Placeholder_Registry class.
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Placeholder_Registry_Exception extends Zend_View_Exception
|
||||
{
|
||||
}
|
44
libs/Zend/View/Helper/RenderToPlaceholder.php
Normal file
44
libs/Zend/View/Helper/RenderToPlaceholder.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id:$
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Helper for making easy links and getting urls that depend on the routes and router
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
class Zend_View_Helper_RenderToPlaceholder extends Zend_View_Helper_Abstract
|
||||
{
|
||||
|
||||
public function renderToPlaceholder($script, $placeholder)
|
||||
{
|
||||
$this->view->placeholder($placeholder)->captureStart();
|
||||
echo $this->view->render($script);
|
||||
$this->view->placeholder($placeholder)->captureEnd();
|
||||
}
|
||||
}
|
178
libs/Zend/View/Helper/Translate.php
Normal file
178
libs/Zend/View/Helper/Translate.php
Normal file
@ -0,0 +1,178 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Translate.php 12062 2008-10-21 17:28:12Z thomas $
|
||||
*/
|
||||
|
||||
/** Zend_Locale */
|
||||
require_once 'Zend/Locale.php';
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Translation view helper
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Translate extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/**
|
||||
* Translation object
|
||||
*
|
||||
* @var Zend_Translate_Adapter
|
||||
*/
|
||||
protected $_translator;
|
||||
|
||||
/**
|
||||
* Constructor for manually handling
|
||||
*
|
||||
* @param Zend_Translate|Zend_Translate_Adapter $translate Instance of Zend_Translate
|
||||
*/
|
||||
public function __construct($translate = null)
|
||||
{
|
||||
if (empty($translate) === false) {
|
||||
$this->setTranslator($translate);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Translate a message
|
||||
* You can give multiple params or an array of params.
|
||||
* If you want to output another locale just set it as last single parameter
|
||||
* Example 1: translate('%1\$s + %2\$s', $value1, $value2, $locale);
|
||||
* Example 2: translate('%1\$s + %2\$s', array($value1, $value2), $locale);
|
||||
*
|
||||
* @param string $messageid Id of the message to be translated
|
||||
* @return string Translated message
|
||||
*/
|
||||
public function translate($messageid = null)
|
||||
{
|
||||
if ($messageid === null) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
$translate = $this->getTranslator();
|
||||
if ($translate === null) {
|
||||
return $messageid;
|
||||
}
|
||||
|
||||
$options = func_get_args();
|
||||
array_shift($options);
|
||||
|
||||
$count = count($options);
|
||||
$locale = null;
|
||||
if ($count > 0) {
|
||||
if (Zend_Locale::isLocale($options[($count - 1)], null, false) !== false) {
|
||||
$locale = array_pop($options);
|
||||
}
|
||||
}
|
||||
|
||||
if ((count($options) === 1) and (is_array($options[0]) === true)) {
|
||||
$options = $options[0];
|
||||
}
|
||||
|
||||
$message = $translate->translate($messageid, $locale);
|
||||
if ($count === 0) {
|
||||
return $message;
|
||||
}
|
||||
|
||||
return vsprintf($message, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a translation Adapter for translation
|
||||
*
|
||||
* @param Zend_Translate|Zend_Translate_Adapter $translate Instance of Zend_Translate
|
||||
* @throws Zend_View_Exception When no or a false instance was set
|
||||
* @return Zend_View_Helper_Translate
|
||||
*/
|
||||
public function setTranslator($translate)
|
||||
{
|
||||
if ($translate instanceof Zend_Translate_Adapter) {
|
||||
$this->_translator = $translate;
|
||||
} else if ($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 ($this->_translator === null) {
|
||||
require_once 'Zend/Registry.php';
|
||||
if (Zend_Registry::isRegistered('Zend_Translate') === true) {
|
||||
$this->setTranslator(Zend_Registry::get('Zend_Translate'));
|
||||
}
|
||||
}
|
||||
|
||||
return $this->_translator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set's an new locale for all further translations
|
||||
*
|
||||
* @param string|Zend_Locale $locale New locale to set
|
||||
* @throws Zend_View_Exception When no Zend_Translate instance was set
|
||||
* @return Zend_View_Helper_Translate
|
||||
*/
|
||||
public function setLocale($locale = null)
|
||||
{
|
||||
$translate = $this->getTranslator();
|
||||
if ($translate === null) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('You must set an instance of Zend_Translate or Zend_Translate_Adapter');
|
||||
}
|
||||
|
||||
$translate->setLocale($locale);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the set locale for translations
|
||||
*
|
||||
* @throws Zend_View_Exception When no Zend_Translate instance was set
|
||||
* @return string|Zend_Locale
|
||||
*/
|
||||
public function getLocale()
|
||||
{
|
||||
$translate = $this->getTranslator();
|
||||
if ($translate === null) {
|
||||
require_once 'Zend/View/Exception.php';
|
||||
throw new Zend_View_Exception('You must set an instance of Zend_Translate or Zend_Translate_Adapter');
|
||||
}
|
||||
|
||||
return $translate->getLocale();
|
||||
}
|
||||
}
|
51
libs/Zend/View/Helper/Url.php
Normal file
51
libs/Zend/View/Helper/Url.php
Normal file
@ -0,0 +1,51 @@
|
||||
<?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-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @version $Id: Url.php 10664 2008-08-05 10:56:06Z matthew $
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_View_Helper_Abstract.php */
|
||||
require_once 'Zend/View/Helper/Abstract.php';
|
||||
|
||||
/**
|
||||
* Helper for making easy links and getting urls that depend on the routes and router
|
||||
*
|
||||
* @package Zend_View
|
||||
* @subpackage Helper
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Helper_Url extends Zend_View_Helper_Abstract
|
||||
{
|
||||
/**
|
||||
* Generates an url given the name of a route.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param array $urlOptions Options passed to the assemble method of the Route object.
|
||||
* @param mixed $name The name of a Route to use. If null it will use the current Route
|
||||
* @param bool $reset Whether or not to reset the route defaults with those provided
|
||||
* @return string Url for the link href attribute.
|
||||
*/
|
||||
public function url(array $urlOptions = array(), $name = null, $reset = false, $encode = true)
|
||||
{
|
||||
$router = Zend_Controller_Front::getInstance()->getRouter();
|
||||
return $router->assemble($urlOptions, $name, $reset, $encode);
|
||||
}
|
||||
}
|
136
libs/Zend/View/Interface.php
Normal file
136
libs/Zend/View/Interface.php
Normal file
@ -0,0 +1,136 @@
|
||||
<?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
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Interface class for Zend_View compatible template engine implementations
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
interface Zend_View_Interface
|
||||
{
|
||||
/**
|
||||
* Return the template engine object, if any
|
||||
*
|
||||
* If using a third-party template engine, such as Smarty, patTemplate,
|
||||
* phplib, etc, return the template engine object. Useful for calling
|
||||
* methods on these objects, such as for setting filters, modifiers, etc.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getEngine();
|
||||
|
||||
/**
|
||||
* Set the path to find the view script used by render()
|
||||
*
|
||||
* @param string|array The directory (-ies) to set as the path. Note that
|
||||
* the concrete view implentation may not necessarily support multiple
|
||||
* directories.
|
||||
* @return void
|
||||
*/
|
||||
public function setScriptPath($path);
|
||||
|
||||
/**
|
||||
* Retrieve all view script paths
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getScriptPaths();
|
||||
|
||||
/**
|
||||
* Set a base path to all view resources
|
||||
*
|
||||
* @param string $path
|
||||
* @param string $classPrefix
|
||||
* @return void
|
||||
*/
|
||||
public function setBasePath($path, $classPrefix = 'Zend_View');
|
||||
|
||||
/**
|
||||
* Add an additional path to view resources
|
||||
*
|
||||
* @param string $path
|
||||
* @param string $classPrefix
|
||||
* @return void
|
||||
*/
|
||||
public function addBasePath($path, $classPrefix = 'Zend_View');
|
||||
|
||||
/**
|
||||
* Assign a variable to the view
|
||||
*
|
||||
* @param string $key The variable name.
|
||||
* @param mixed $val The variable value.
|
||||
* @return void
|
||||
*/
|
||||
public function __set($key, $val);
|
||||
|
||||
/**
|
||||
* Allows testing with empty() and isset() to work
|
||||
*
|
||||
* @param string $key
|
||||
* @return boolean
|
||||
*/
|
||||
public function __isset($key);
|
||||
|
||||
/**
|
||||
* Allows unset() on object properties to work
|
||||
*
|
||||
* @param string $key
|
||||
* @return void
|
||||
*/
|
||||
public function __unset($key);
|
||||
|
||||
/**
|
||||
* Assign variables to the view script via differing strategies.
|
||||
*
|
||||
* Suggested implementation is to allow setting a specific key to the
|
||||
* specified value, OR passing an array of key => value pairs to set en
|
||||
* masse.
|
||||
*
|
||||
* @see __set()
|
||||
* @param string|array $spec The assignment strategy to use (key or array of key
|
||||
* => value pairs)
|
||||
* @param mixed $value (Optional) If assigning a named variable, use this
|
||||
* as the value.
|
||||
* @return void
|
||||
*/
|
||||
public function assign($spec, $value = null);
|
||||
|
||||
/**
|
||||
* Clear all assigned variables
|
||||
*
|
||||
* Clears all variables assigned to Zend_View either via {@link assign()} or
|
||||
* property overloading ({@link __get()}/{@link __set()}).
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function clearVars();
|
||||
|
||||
/**
|
||||
* Processes a view script and returns the output.
|
||||
*
|
||||
* @param string $name The script script name to process.
|
||||
* @return string The script output.
|
||||
*/
|
||||
public function render($name);
|
||||
}
|
182
libs/Zend/View/Stream.php
Normal file
182
libs/Zend/View/Stream.php
Normal file
@ -0,0 +1,182 @@
|
||||
<?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
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Stream wrapper to convert markup of mostly-PHP templates into PHP prior to
|
||||
* include().
|
||||
*
|
||||
* Based in large part on the example at
|
||||
* http://www.php.net/manual/en/function.stream-wrapper-register.php
|
||||
*
|
||||
* As well as the example provided at:
|
||||
* http://mikenaberezny.com/2006/02/19/symphony-templates-ruby-erb/
|
||||
* written by
|
||||
* Mike Naberezny (@link http://mikenaberezny.com)
|
||||
* Paul M. Jones (@link http://paul-m-jones.com)
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_View
|
||||
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_View_Stream
|
||||
{
|
||||
/**
|
||||
* Current stream position.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $_pos = 0;
|
||||
|
||||
/**
|
||||
* Data for streaming.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $_data;
|
||||
|
||||
/**
|
||||
* Stream stats.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_stat;
|
||||
|
||||
/**
|
||||
* Opens the script file and converts markup.
|
||||
*/
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get the view script source
|
||||
$path = str_replace('zend.view://', '', $path);
|
||||
$this->_data = file_get_contents($path);
|
||||
|
||||
/**
|
||||
* If reading the file failed, update our local stat store
|
||||
* to reflect the real stat of the file, then return on failure
|
||||
*/
|
||||
if ($this->_data === false) {
|
||||
$this->_stat = stat($path);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert <?= ?> to long-form <?php echo ?> and <? ?> to <?php ?>
|
||||
*
|
||||
*/
|
||||
$this->_data = preg_replace('/\<\?\=/', "<?php echo ", $this->_data);
|
||||
$this->_data = preg_replace('/<\?(?!xml|php)/s', '<?php ', $this->_data);
|
||||
|
||||
/**
|
||||
* file_get_contents() won't update PHP's stat cache, so we grab a stat
|
||||
* of the file to prevent additional reads should the script be
|
||||
* requested again, which will make include() happy.
|
||||
*/
|
||||
$this->_stat = stat($path);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Included so that __FILE__ returns the appropriate info
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function url_stat()
|
||||
{
|
||||
return $this->_stat;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads from the stream.
|
||||
*/
|
||||
public function stream_read($count)
|
||||
{
|
||||
$ret = substr($this->_data, $this->_pos, $count);
|
||||
$this->_pos += strlen($ret);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tells the current position in the stream.
|
||||
*/
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->_pos;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tells if we are at the end of the stream.
|
||||
*/
|
||||
public function stream_eof()
|
||||
{
|
||||
return $this->_pos >= strlen($this->_data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Stream statistics.
|
||||
*/
|
||||
public function stream_stat()
|
||||
{
|
||||
return $this->_stat;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Seek to a specific point in the stream.
|
||||
*/
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
switch ($whence) {
|
||||
case SEEK_SET:
|
||||
if ($offset < strlen($this->_data) && $offset >= 0) {
|
||||
$this->_pos = $offset;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case SEEK_CUR:
|
||||
if ($offset >= 0) {
|
||||
$this->_pos += $offset;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case SEEK_END:
|
||||
if (strlen($this->_data) + $offset >= 0) {
|
||||
$this->_pos = strlen($this->_data) + $offset;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user