%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home1/lightco1/www/lightingrepublic.com.au/libraries/koowa/template/helper/
Upload File :
Create Path :
Current File : //home1/lightco1/www/lightingrepublic.com.au/libraries/koowa/template/helper/accordion.php

<?php
/**
 * @version		$Id$
 * @package		Koowa_Template
 * @subpackage	Helper
 * @copyright	Copyright (C) 2007 - 2012 Johan Janssens. All rights reserved.
 * @license		GNU GPLv3 <http://www.gnu.org/licenses/gpl.html>
 * @link     	http://www.nooku.org
 */

/**
 * Template Accordion Behavior Helper
 *
 * @author		Stian Didriksen <stian@timble.net>
 * @package		Koowa_Template
 * @subpackage	Helper
 * @uses		KArrayHelper
 */
class KTemplateHelperAccordion extends KTemplateHelperBehavior
{
	/**
	 * Creates a pane and creates the javascript object for it
	 *
	 * @param 	array 	An optional array with configuration options
	 * @return 	string	Html
	 */
	public function startPane( $config = array() )
	{
		$config = new KConfig($config);

		$config->append(array(
			'id'	=> 'accordions',
			'options'	=> array(
				'duration'		=> 300,
				'opacity'		=> false,
				'alwaysHide'	=> true,
				'scroll'		=> false
			),
			'attribs'	=> array(),
			'events'	=> array()
		));

		$html  = '';

		// Load the necessary files if they haven't yet been loaded
		if (!isset($this->_loaded['accordion'])) {
			$this->_loaded['accordion'] = true;
		}

		$id      = strtolower($config->id);
		$attribs = KHelperArray::toString($config->attribs);

		$events			= '';
		$onActive 		= 'function(e){e.addClass(\'jpane-toggler-down\');e.removeClass(\'jpane-toggler\');}';
		$onBackground	= 'function(e){e.addClass(\'jpane-toggler\');e.removeClass(\'jpane-toggler-down\');}';

		if($config->events) {
			$events = '{onActive:'.$onActive.',onBackground:'.$onBackground.'}';
		}

		$scroll = $config->options->scroll ? ".addEvent('onActive', function(toggler){
			new Fx.Scroll(window, {duration: this.options.duration, transition: this.transition}).toElement(toggler);
		})" : '';

		/*
		 * Until we find a solution that let us pass a string into json_encode without it being quoted,
		 * we have to use the mootools $merge method to merge events and regular settings back into one
		 * options object.
		*/
		$html .= '
			<script>
				window.addEvent(\'domready\', function(){
					new Accordion($$(\'.panel h3.jpane-toggler\'),$$(\'.panel div.jpane-slider\'),$merge('.$events.','.$config->options.'))'.$scroll.';
				});
			</script>';

		$html .= '<div id="'.$id.'" class="pane-sliders" '.$attribs.'>';
		return $html;
	}

	/**
	 * Ends the pane
	 *
	 * @param 	array 	An optional array with configuration options
	 * @return 	string	Html
	 */
	public function endPane($config = array())
	{
		return '</div>';
	}

	/**
	 * Creates a tab panel with title and starts that panel
	 *
	 * @param	string	The title of the tab
	 * @param	array	An associative array of pane attributes
	 */
	public function startPanel($config = array())
	{
		$config = new KConfig($config);

		$config->append(array(
			'title'		=> 'Slide',
			'attribs'	=> array(),
			'translate'	=> true
		));

		$title   = $config->translate ? $this->translate($config->title) : $config->title;
		$attribs = KHelperArray::toString($config->attribs);

		$html = '<div class="panel"><h3 class="jpane-toggler title" '.$attribs.'><span>'.$title.'</span></h3><div class="jpane-slider content">';
		return $html;
	}

	/**
	 * Ends a tab page
	 *
	 * @param 	array 	An optional array with configuration options
	 * @return 	string	Html
	 */
	public function endPanel($config = array())
	{
		return '</div></div>';
	}
}

Zerion Mini Shell 1.0