pictcode / lib / Cake / Routing / Route / PluginShortRoute.php @ 22fd3a57
履歴 | 表示 | アノテート | ダウンロード (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 | }  |