105 Zeilen
		
	
	
		
			Kein EOL
		
	
	
		
			3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			105 Zeilen
		
	
	
		
			Kein EOL
		
	
	
		
			3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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    ZendX
 | |
|  * @package     ZendX_JQuery
 | |
|  * @subpackage  View
 | |
|  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
 | |
|  * @license     http://framework.zend.com/license/new-bsd     New BSD License
 | |
|  * @version     $Id$
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * @see ZendX_JQuery_View_Helper_UiWidget
 | |
|  */
 | |
| require_once "UiWidget.php";
 | |
| 
 | |
| /**
 | |
|  * jQuery Pane Base class, adds captureStart/captureEnd functionality for panes.
 | |
|  *
 | |
|  * @uses 	   ZendX_JQuery_View_Helper_JQuery_Container
 | |
|  * @package    ZendX_JQuery
 | |
|  * @subpackage View
 | |
|  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
 | |
|  * @license    http://framework.zend.com/license/new-bsd     New BSD License
 | |
|  */
 | |
| abstract class ZendX_JQuery_View_Helper_UiWidgetPane extends ZendX_JQuery_View_Helper_UiWidget
 | |
| {
 | |
|     /**
 | |
|      * Capture Lock information
 | |
|      *
 | |
|      * @var array
 | |
|      */
 | |
|     protected $_captureLock = array();
 | |
| 
 | |
|     /**
 | |
|      * Current capture additional information
 | |
|      *
 | |
|      * @var array
 | |
|      */
 | |
|     protected $_captureInfo = array();
 | |
| 
 | |
|     /**
 | |
|      * Begin capturing content for layout container
 | |
|      *
 | |
|      * @param  string $id
 | |
|      * @param  string $name
 | |
|      * @param  array  $options
 | |
|      * @return void
 | |
|      */
 | |
|     public function captureStart($id, $name, array $options=array())
 | |
|     {
 | |
|         if (array_key_exists($id, $this->_captureLock)) {
 | |
|             require_once 'ZendX/JQuery/View/Exception.php';
 | |
|             throw new ZendX_JQuery_View_Exception(sprintf('Lock already exists for id "%s"', $id));
 | |
|         }
 | |
| 
 | |
|         $this->_captureLock[$id] = true;
 | |
|         $this->_captureInfo[$id] = array(
 | |
|             'name'  => $name,
 | |
|             'options' => $options,
 | |
|         );
 | |
| 
 | |
|         return ob_start();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Finish capturing content for layout container
 | |
|      *
 | |
|      * @param  string $id
 | |
|      * @return string
 | |
|      */
 | |
|     public function captureEnd($id)
 | |
|     {
 | |
|         if (!array_key_exists($id, $this->_captureLock)) {
 | |
|             require_once 'ZendX/JQuery/View/Exception.php';
 | |
|             throw new ZendX_JQuery_View_Exception(sprintf('No capture lock exists for id "%s"; nothing to capture', $id));
 | |
|         }
 | |
| 
 | |
|         $content = ob_get_clean();
 | |
|         extract($this->_captureInfo[$id]);
 | |
|         unset($this->_captureLock[$id], $this->_captureInfo[$id]);
 | |
|         return $this->_addPane($id, $name, $content, $options);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Add an additional pane to the current Widget Container
 | |
|      *
 | |
|      * @param string $id
 | |
|      * @param string $name
 | |
|      * @param string $content
 | |
|      * @param array  $options
 | |
|      */
 | |
|     abstract protected function _addPane($id, $name, $content, array $options=array());
 | |
| } |