public function panel($headingHtml, $bodyHtml = null, $footerHtml = null, $options = array()) {
		$defaults = array(
			'class' => 'panel-default', 'headingOptions' => array(), 'footerOptions' => array(), 'bodyOptions' => array(),
			'wrapHeading' => true, 'wrapFooter' => true, 'wrapBody' => true
		);
		if ($this->_blockRendering) {
			$options = $bodyHtml;
		}
		$options = Hash::merge($defaults, $options);
		$options = $this->addClass($options, 'panel');

		if (!$this->_blockRendering) {
			$heading = $options['wrapHeading'] ? $this->panelHeading($headingHtml, $options['headingOptions']) : $headingHtml;
                        $footer = $options['wrapFooter'] && $footerHtml ? $this->panelFooter($footerHtml, $options['footerOptions']) : $footerHtml;
			$body = $options['wrapBody'] ? $this->panelBody($bodyHtml, $options['bodyOptions']) : $bodyHtml;
			$html = $heading . $body . $footer;
		} else {
			$html = $headingHtml;
		}

		unset($options['headingOptions'], $options['footerOptions'], $options['bodyOptions'], $options['wrapFooter'], $options['wrapHeading'], $options['wrapBody']);
		return $this->tag('div', $html, $options);
	}
public function panel($headingHtml, $bodyHtml = null, $footerHtml = null, $options = array()) {
		$defaults = array(
			'class' => 'panel-default', 'headingOptions' => array(), 'footerOptions' => array(), 'bodyOptions' => array(),
			'wrapHeading' => true, 'wrapFooter' => true, 'wrapBody' => true
		);
		if ($this->_blockRendering) {
			$options = $bodyHtml;
		}
		$options = Hash::merge($defaults, $options);
		$options = $this->addClass($options, 'panel');

		if (!$this->_blockRendering) {
			$heading = $options['wrapHeading'] ? $this->panelHeading($headingHtml, $options['headingOptions']) : $headingHtml;
                        $footer = $options['wrapFooter'] && $footerHtml ? $this->panelFooter($footerHtml, $options['footerOptions']) : $footerHtml;
			$body = $options['wrapBody'] ? $this->panelBody($bodyHtml, $options['bodyOptions']) : $bodyHtml;
			$html = $heading . $body . $footer;
		} else {
			$html = $headingHtml;
		}

		unset($options['headingOptions'], $options['footerOptions'], $options['bodyOptions'], $options['wrapFooter'], $options['wrapHeading'], $options['wrapBody']);
		return $this->tag('div', $html, $options);
	}
public function panel ( $ headingHtml , $ bodyHtml = null , $ footerHtml = null , $ options = array ( ) ) { $ defaults = array ( 'class' => 'panel-default' , 'headingOptions' => array ( ) , 'footerOptions' => array ( ) , 'bodyOptions' => array ( ) , 'wrapHeading' => true , 'wrapFooter' => true , 'wrapBody' => true ) ; if ( $ this -> _blockRendering ) { $ options = $ bodyHtml ; } $ options = Hash :: merge ( $ defaults , $ options ) ; $ options = $ this -> addClass ( $ options , 'panel' ) ; if ( ! $ this -> _blockRendering ) { $ heading = $ options [ 'wrapHeading' ] ? $ this -> panelHeading ( $ headingHtml , $ options [ 'headingOptions' ] ) : $ headingHtml ; $ footer = $ options [ 'wrapFooter' ] && $ footerHtml ? $ this -> panelFooter ( $ footerHtml , $ options [ 'footerOptions' ] ) : $ footerHtml ; $ body = $ options [ 'wrapBody' ] ? $ this -> panelBody ( $ bodyHtml , $ options [ 'bodyOptions' ] ) : $ bodyHtml ; $ html = $ heading . $ body . $ footer ; } else { $ html = $ headingHtml ; } unset ( $ options [ 'headingOptions' ] , $ options [ 'footerOptions' ] , $ options [ 'bodyOptions' ] , $ options [ 'wrapFooter' ] , $ options [ 'wrapHeading' ] , $ options [ 'wrapBody' ] ) ; return $ this -> tag ( 'div' , $ html , $ options ) ; }
Render a panel

@param string $headingHtml
@param string $bodyHtml
@param string $footerHtml
@param array $options
@return string
Render a panel