%PDF- %PDF-
| Direktori : /home1/lightco1/www/lightingrepublic.com.au/libraries/cegcore/libs/ |
| Current File : //home1/lightco1/www/lightingrepublic.com.au/libraries/cegcore/libs/url.php |
<?php
/**
* ChronoCMS version 1.0
* Copyright (c) 2012 ChronoCMS.com, All rights reserved.
* Author: (ChronoCMS.com Team)
* license: Please read LICENSE.txt
* Visit http://www.ChronoCMS.com for regular updates and information.
**/
namespace GCore\Libs;
/* @copyright:ChronoEngine.com @license:GPLv2 */defined('_JEXEC') or die('Restricted access');
defined("GCORE_SITE") or die;
class Url {
static $root = '';
static $root_ext = array();
public static function current(){
$pageURL = self::domain();
if(isset($_SERVER['PHP_SELF']) AND isset($_SERVER['REQUEST_URI'])){
//APACHE
$pageURL .= $_SERVER['REQUEST_URI'];
}else{
//IIS
$pageURL .= $_SERVER['SCRIPT_NAME'];
if(!empty($_SERVER['QUERY_STRING'])){
$pageURL .= '?'.$_SERVER['QUERY_STRING'];
}
}
return $pageURL;
}
public static function domain(){
$dURL = (isset($_SERVER['HTTPS']) AND ($_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://';
$dURL .= !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
if($_SERVER['SERVER_PORT'] != '80' AND $_SERVER['SERVER_PORT'] != '443'){
if(strpos($dURL, ':'.$_SERVER['SERVER_PORT']) === false){
$dURL .= ':'.$_SERVER['SERVER_PORT'];
}
}
return $dURL;
}
public static function referer(){
return !empty($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
}
public static function root($absolute = false){
if(!empty(self::$root) AND !$absolute){
return self::$root;
}
if(isset($_SERVER['SCRIPT_NAME'])){
$slices = explode(DS, str_replace(array('/', '\\'), DS, $_SERVER['SCRIPT_NAME']));
$slices = array_unique($slices);
$chunks = array(self::domain());
foreach($slices as $slice){
if(empty($slice) OR in_array($slice, array('index.php', 'admin'))){
continue;
}
$chunks[] = $slice;
}
if($absolute === true){
return implode('/', $chunks).'/';
}
if(!empty(self::$root_ext)){
$chunks = array_merge($chunks, self::$root_ext);
goto end1;
}
$file = str_replace(array('/', '\\'), DS, __FILE__);
$fs = explode(DS, $file);
$script_filename = str_replace(array('/', '\\'), DS, $_SERVER['SCRIPT_FILENAME']);
$dirs = explode(DS, $script_filename);
foreach($fs as $f){
if(in_array($f, $dirs) || in_array($f, array('libs', 'url.php'))){
continue;
}
$chunks[] = $f;
}
end1:
return self::$root = implode('/', $chunks).'/';
}
$file = str_replace(array('/', '\\'), DS, __FILE__);
$doc_root = str_replace(array('/', '\\'), DS, $_SERVER['DOCUMENT_ROOT']);
$fs = explode(DS, $file);
$dirs = explode(DS, $doc_root);
$chunks = array(self::domain());
foreach($fs as $f){
if(in_array($f, $dirs) || in_array($f, array('libs', 'url.php'))){
continue;
}
$chunks[] = $f;
}
if(substr($chunks[count($chunks) - 1], 0, -1) != '/'){
$chunks[count($chunks) - 1] .= '/';
}
return self::$root = implode('/', $chunks);
}
public static function abs_to_url($path){
return str_replace(array(\GCore\C::get('GCORE_FRONT_PATH'), DS), array(\GCore\C::get('GCORE_FRONT_URL'), '/'), $path);
}
public static function url_to_abs($url){
return str_replace(array(\GCore\C::get('GCORE_FRONT_URL'), '/'), array(\GCore\C::get('GCORE_FRONT_PATH'), DS), $url);
}
public static function buildQuery($path, $params = array()){
if(empty($params)){
return $path;
}
$url_params = array();
if(strpos($path, '?') !== false){
$path_pcs = explode('?', $path);
$path_comps = parse_url($path);
$query = $path_comps['query'];
parse_str($query, $fragments);
$fragments = array_merge($fragments, $params);
return $path_pcs[0].'?'.http_build_query($fragments);
}else{
return $path.'?'.http_build_query($params);
}
}
}