-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrouter.php
executable file
·107 lines (93 loc) · 2.23 KB
/
router.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
/**
* @version CVS: 1.0.0
* @package Com_Blankcontent
* @author Tony Partridge <[email protected]>
* @copyright 2017 Tony Partridge - Xtech Web Services Ltd
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access
defined('_JEXEC') or die;
JLoader::registerPrefix('Blankcontent', JPATH_SITE . '/components/com_blankcontent/');
/**
* Class BlankcontentRouter
*
* @since 3.3
*/
class BlankcontentRouter extends JComponentRouterBase
{
/**
* Build method for URLs
* This method is meant to transform the query parameters into a more human
* readable form. It is only executed when SEF mode is switched on.
*
* @param array &$query An array of URL arguments
*
* @return array The URL arguments to use to assemble the subsequent URL.
*
* @since 3.3
*/
public function build(&$query)
{
$segments = array();
$view = null;
if (isset($query['task']))
{
$taskParts = explode('.', $query['task']);
$segments[] = implode('/', $taskParts);
$view = $taskParts[0];
unset($query['task']);
}
if (isset($query['view']))
{
$segments[] = $query['view'];
$view = $query['view'];
unset($query['view']);
}
if (isset($query['id']))
{
if ($view !== null)
{
$segments[] = $query['id'];
}
else
{
$segments[] = $query['id'];
}
unset($query['id']);
}
return $segments;
}
/**
* Parse method for URLs
* This method is meant to transform the human readable URL back into
* query parameters. It is only executed when SEF mode is switched on.
*
* @param array &$segments The segments of the URL to parse.
*
* @return array The URL attributes to be used by the application.
*
* @since 3.3
*/
public function parse(&$segments)
{
$vars = array();
// View is always the first element of the array
$vars['view'] = array_shift($segments);
$model = BlankcontentHelpersBlankcontent::getModel($vars['view']);
while (!empty($segments))
{
$segment = array_pop($segments);
// If it's the ID, let's put on the request
if (is_numeric($segment))
{
$vars['id'] = $segment;
}
else
{
$vars['task'] = $vars['view'] . '.' . $segment;
}
}
return $vars;
}
}