pictcode / lib / Cake / Routing / Route / PluginShortRoute.php @ 40928d1c
履歴 | 表示 | アノテート | ダウンロード (1.76 KB)
| 1 | 635eef61 | spyder1211 | <?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 | } |