cakebook / branches / master / app_helper.php

history
<?php
/**
 * Short description for file.
 *
 * This file is application-wide helper file. You can put all
 * application-wide helper-related methods here.
 *
 * PHP versions 4 and 5
 *
 * CakePHP(tm) :  Rapid Development Framework <http://www.cakephp.org/>
 * Copyright 2005-2007, Cake Software Foundation, Inc.
 *								1785 E. Sahara Avenue, Suite 490-204
 *								Las Vegas, Nevada 89104
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @filesource
 * @copyright     Copyright 2005-2007, Cake Software Foundation, Inc.
 * @link          http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project
 * @package       cake
 * @subpackage    cake.cake
 * @since         CakePHP(tm) v 0.2.9
 * @license       http://www.opensource.org/licenses/mit-license.php The MIT License
 */
/**
 * This is a placeholder class.
 * Create the same file in app/app_helper.php
 *
 * Add your application-wide methods in the class below, your helpers
 * will inherit them.
 *
 * @package       cake
 * @subpackage    cake.cake
 */
class AppHelper extends Helper {
/**
 * url function
 *
 * @param mixed $url
 * @param bool $full
 * @access public
 * @return void
 */
	function url($url = null, $full = false) {
		if (!is_array($url)) {
			return parent::url($url, $full);
		}
		$defaults = array(
			'controller' => $this->params['controller'],
			'action' => $this->params['action'],
			'admin' => !empty($this->params['admin']),
			'lang' => $this->params['lang'],
			'theme' => $this->params['theme'],
		);
		$url = am($defaults, $url);
		if (isset($url[0])) {
			$id = Configure::read('Site.homeNode');
			if (empty($url['admin']) && $url['controller'] === 'nodes' && $url['action'] === 'view' && $url[0] == $id) {
				$url = array(
					'action' => 'index',
					'lang' => $this->params['lang'],
					'theme' => $this->params['theme']
				);
			}
		}
		return parent::url($url, $full);
	}
}
?>