Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
13532 anikendra 1
<?php
2
/**
3
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
4
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
5
 *
6
 * Licensed under The MIT License
7
 * For full copyright and license information, please see the LICENSE.txt
8
 * Redistributions of files must retain the above copyright notice.
9
 *
10
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
11
 * @link          http://cakephp.org CakePHP(tm) Project
12
 * @since         CakePHP(tm) v 1.3
13
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
14
 */
15
 
16
App::uses('CakeRoute', 'Routing/Route');
17
 
18
/**
19
 * Plugin short route, that copies the plugin param to the controller parameters
20
 * It is used for supporting /:plugin routes.
21
 *
22
 * @package Cake.Routing.Route
23
 */
24
class PluginShortRoute extends CakeRoute {
25
 
26
/**
27
 * Parses a string URL into an array. If a plugin key is found, it will be copied to the
28
 * controller parameter
29
 *
30
 * @param string $url The URL to parse
31
 * @return mixed false on failure, or an array of request parameters
32
 */
33
	public function parse($url) {
34
		$params = parent::parse($url);
35
		if (!$params) {
36
			return false;
37
		}
38
		$params['controller'] = $params['plugin'];
39
		return $params;
40
	}
41
 
42
/**
43
 * Reverse route plugin shortcut URLs. If the plugin and controller
44
 * are not the same the match is an auto fail.
45
 *
46
 * @param array $url Array of parameters to convert to a string.
47
 * @return mixed either false or a string URL.
48
 */
49
	public function match($url) {
50
		if (isset($url['controller']) && isset($url['plugin']) && $url['plugin'] != $url['controller']) {
51
			return false;
52
		}
53
		$this->defaults['controller'] = $url['controller'];
54
		$result = parent::match($url);
55
		unset($this->defaults['controller']);
56
		return $result;
57
	}
58
 
59
}