verzia 1.1, 2012/05/15 17:47:56 |
verzia 1.7, 2012/10/10 15:56:17 |
|
|
<?php |
<?php |
|
|
/* |
/* |
* Metafox - enterprise content management system |
* Metafox - flexible content management system |
* |
* |
* rewrite.php - controller for mod_rewrite |
* rewrite.php - controller for mod_rewrite |
* ____________________________________________________________ |
* ____________________________________________________________ |
|
|
$link = $_GET['link']; |
$link = $_GET['link']; |
require_once 'cfgldr.inc.php'; |
require_once 'cfgldr.inc.php'; |
|
|
|
//ezin_cgi_parse(); trouble with link type 1 and redirects, for link type 2 no need |
|
|
|
$link_file_type = -1; |
|
|
// type 0 |
// type 0 |
if ($link == 'index.php' |
if ($link == 'index.php' |
|| strlen($link) <= 0) |
|| strlen($link) <= 0) |
{ |
{ |
|
$link_file_type = 0; |
$setvars = array_keys($_GET); |
$setvars = array_keys($_GET); |
if ( $ezin_cfg['link_file_type'] != 0 |
if ( $ezin_cfg['link_file_type'] != 0 |
&& $ezin_cfg['link_redirect'] > 0 |
&& $ezin_cfg['link_redirect'] > 0 |
Riadok 60 if ($link == 'index.php' |
|
Riadok 65 if ($link == 'index.php' |
|
|| in_array('ezin_print', $setvars)) |
|| in_array('ezin_print', $setvars)) |
) |
) |
{ // redirect |
{ // redirect |
ezin_cgi_parse(); |
|
|
|
// section |
// section |
if (in_array('ezin_section_key', $setvars)) { |
if (in_array('ezin_section_key', $setvars)) { |
Riadok 104 if ($link == 'index.php' |
|
Riadok 108 if ($link == 'index.php' |
|
if (strlen($link) == 0) { |
if (strlen($link) == 0) { |
$link = 'index.php'; |
$link = 'index.php'; |
} |
} |
|
if ($ezin_cfg['redirect_equal_url'] == 1) { |
|
// redirect for old access-key |
|
$keys = array( |
|
array('ezin_article_key', 'article_id'), |
|
array('ezin_section_key', 'section_id'), |
|
array('ezin_author_key', 'author_id') |
|
); |
|
foreach ($keys as $key) { |
|
$id_param = Platon::parse_id_param($key[0]); |
|
$ar = ezin_validate_IDs(array($key[1] => $id_param)); |
|
if (isset($ar['redirect']) |
|
&& $ar['redirect']) |
|
{ |
|
ezin_redirect_auto($ar); |
|
} |
|
} |
|
// end redirect for old access-key |
|
} |
|
|
require_once $link; |
require_once $link; |
} |
} |
} |
} |
|
|
// type 1 |
// type 1 |
if (in_array($link, array('section.php', 'article.php', 'author.php', 'print.php'))) { |
if (in_array($link, array('section.php', 'article.php', 'author.php', 'print.php'))) { |
|
$link_file_type = 1; |
if ( $ezin_cfg['link_file_type'] != 1 |
if ( $ezin_cfg['link_file_type'] != 1 |
&& $ezin_cfg['link_redirect'] > 0) |
&& $ezin_cfg['link_redirect'] > 0) |
{ // redirect |
{ // redirect |
ezin_cgi_parse(); |
|
switch ($link) { |
switch ($link) { |
case 'section.php': |
case 'section.php': |
$section_id = Platon::parse_id_param(); |
$section_id = Platon::parse_id_param(); |
Riadok 135 if (in_array($link, array('section.php', |
|
Riadok 159 if (in_array($link, array('section.php', |
|
} |
} |
|
|
} else { // normal |
} else { // normal |
|
if ($ezin_cfg['redirect_equal_url'] == 1) { |
|
// redirect for old access-key |
|
$id_param = Platon::parse_id_param(); |
|
switch($link) { |
|
case 'article.php': |
|
$ar = ezin_validate_IDs(array('article_id' => $id_param)); |
|
break; |
|
case 'section.php': |
|
$ar = ezin_validate_IDs(array('section_id' => $id_param)); |
|
break; |
|
case 'author.php': |
|
$ar = ezin_validate_IDs(array('author_id' => $id_param)); |
|
break; |
|
} |
|
if (isset($ar['redirect']) |
|
&& $ar['redirect']) |
|
{ |
|
ezin_redirect_auto($ar); |
|
} |
|
// end redirect for old access-key |
|
} |
require_once $link; |
require_once $link; |
} |
} |
} |
} |
Riadok 143 if (in_array($link, array('section.php', |
|
Riadok 188 if (in_array($link, array('section.php', |
|
if (strlen($link) > 0 |
if (strlen($link) > 0 |
&& strtolower(substr($link, -4)) != '.php') |
&& strtolower(substr($link, -4)) != '.php') |
{ |
{ |
|
$link_file_type = 2; |
$args = explode('/', $link); |
$args = explode('/', $link); |
//print_r($args); |
//print_r($args); |
|
|
Riadok 154 if (strlen($link) > 0 |
|
Riadok 200 if (strlen($link) > 0 |
|
if (count($args) == 1 |
if (count($args) == 1 |
&& strlen($args[0]) > 0) |
&& strlen($args[0]) > 0) |
{ |
{ |
ezin_redirect_section($args[0]); |
$ar = ezin_validate_IDs(array('section_id' => $args[0])); |
|
if (intval($ar['section_id']) > 0) { |
|
ezin_redirect_section($args[0]); |
|
} else { |
|
$ar = ezin_validate_IDs(array('article_id' => $args[0])); |
|
if (intval($ar['article_id']) > 0) { |
|
ezin_redirect_article($args[0]); |
|
} |
|
} |
} |
} |
|
|
// others, default: article |
// others, default: article |
Riadok 191 if (strlen($link) > 0 |
|
Riadok 245 if (strlen($link) > 0 |
|
&& strlen($args[0]) > 0) |
&& strlen($args[0]) > 0) |
{ |
{ |
require_once 'cfgldr.inc.php'; |
require_once 'cfgldr.inc.php'; |
$ezin_cgi['query_string'][] = $args[0]; |
$ar = ezin_validate_IDs(array('article_id' => $args[0])); |
$ezin_cgi['input'] = 'section'; |
if ($ezin_cfg['redirect_equal_url'] == 1) { |
|
// redirect for old access-key |
|
if (isset($ar['redirect']) |
|
&& $ar['redirect']) |
|
{ |
|
ezin_redirect_auto($ar); |
|
} |
|
// end redirect for old access-key |
|
} |
|
|
|
if (intval($ar['article_id']) > 0) { |
|
$ezin_cgi['query_string'] = $args; |
|
$ezin_cgi['input'] = 'article'; |
|
} else { |
|
$ezin_cgi['query_string'] = $args; |
|
$ezin_cgi['input'] = 'section'; |
|
} |
require_once 'index.php'; |
require_once 'index.php'; |
} |
} |
|
|
Riadok 204 if (strlen($link) > 0 |
|
Riadok 274 if (strlen($link) > 0 |
|
|
|
$showed = false; |
$showed = false; |
if (ezin_get_rewrite_key($args[0]) == 'author') { |
if (ezin_get_rewrite_key($args[0]) == 'author') { |
$ezin_cgi['query_string'][] = $args[1]; |
array_shift($args); |
|
if ($ezin_cfg['redirect_equal_url'] == 1) { |
|
// redirect for old access-key |
|
$ar = ezin_validate_IDs(array('author_id' => $args[0])); |
|
if (isset($ar['redirect']) |
|
&& $ar['redirect']) |
|
{ |
|
ezin_redirect_auto($ar); |
|
} |
|
// end redirect for old access-key |
|
} |
|
$ezin_cgi['query_string'] = $args; |
$ezin_cgi['input'] = 'author'; |
$ezin_cgi['input'] = 'author'; |
$showed = true; |
$showed = true; |
} |
} |
if (ezin_get_rewrite_key($args[0]) == 'print') { |
if (ezin_get_rewrite_key($args[0]) == 'print') { |
$ezin_cgi['query_string'][] = $args[1]; |
array_shift($args); |
|
$ezin_cgi['query_string'] = $args; |
$ezin_cgi['input'] = 'print'; |
$ezin_cgi['input'] = 'print'; |
$showed = true; |
$showed = true; |
} |
} |
if (!$showed) { |
if (!$showed) { |
$ezin_cgi['query_string'][] = $args[1]; |
array_shift($args); |
|
if ($ezin_cfg['redirect_equal_url'] == 1) { |
|
// redirect for old access-key |
|
$ar = ezin_validate_IDs(array('article_id' => $args[0])); |
|
if (isset($ar['redirect']) |
|
&& $ar['redirect']) |
|
{ |
|
ezin_redirect_auto($ar); |
|
} |
|
// end redirect for old access-key |
|
} |
|
$ezin_cgi['query_string'] = $args; |
$ezin_cgi['input'] = 'article'; |
$ezin_cgi['input'] = 'article'; |
} |
} |
|
|
Riadok 224 if (strlen($link) > 0 |
|
Riadok 317 if (strlen($link) > 0 |
|
|
|
} |
} |
|
|
|
// notfound |
|
if ($link_file_type == -1) { |
|
require_once 'cfgldr.inc.php'; |
|
$ezin_cgi['input'] = 'notfound'; |
|
require_once 'index.php'; |
|
} |
|
|
?> |
?> |