2013-10-10 02:44:53 +00:00
|
|
|
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This class overrides Kohana's URL
|
|
|
|
*
|
|
|
|
* @package OSB
|
|
|
|
* @category Modifications
|
|
|
|
* @author Deon George
|
|
|
|
* @copyright (c) 2009-2013 Open Source Billing
|
|
|
|
* @license http://dev.osbill.net/license.html
|
|
|
|
*/
|
|
|
|
class URL extends Kohana_URL {
|
|
|
|
// Our method paths for different functions
|
|
|
|
public static $method_directory = array(
|
|
|
|
'admin'=>'a',
|
|
|
|
'reseller'=>'r',
|
|
|
|
'user'=>'u',
|
2013-05-08 09:00:47 +00:00
|
|
|
'task'=>'task',
|
2013-10-10 02:44:53 +00:00
|
|
|
);
|
|
|
|
|
2013-05-09 14:42:54 +00:00
|
|
|
public static function admin_url() {
|
2013-05-23 07:00:14 +00:00
|
|
|
return (Request::current() AND ((Auth::instance()->logged_in() AND ! empty(URL::$method_directory[strtolower(Request::current()->directory())])) OR in_array(strtolower(Request::current()->controller()),array('login','oauth'))));
|
2013-05-09 14:42:54 +00:00
|
|
|
}
|
|
|
|
|
2013-10-10 02:44:53 +00:00
|
|
|
/**
|
|
|
|
* Function to reveal the real directory for a URL
|
|
|
|
*/
|
|
|
|
public static function dir($dir) {
|
|
|
|
// Quick check if we can do something here
|
|
|
|
if (! in_array(strtolower($dir),URL::$method_directory))
|
|
|
|
return $dir;
|
|
|
|
|
|
|
|
// OK, we can, find it.
|
|
|
|
foreach (URL::$method_directory as $k=>$v)
|
|
|
|
if (strtolower($dir) == $v)
|
|
|
|
return ucfirst($k);
|
|
|
|
|
|
|
|
// If we get here, we didnt have anything.
|
|
|
|
return $dir;
|
|
|
|
}
|
2013-05-08 09:00:47 +00:00
|
|
|
|
2013-05-10 10:48:10 +00:00
|
|
|
/**
|
|
|
|
* Wrapper to provide a URL::site() link based on function
|
|
|
|
*/
|
|
|
|
public static function link($dir,$src,$site=FALSE) {
|
|
|
|
if (! $dir)
|
|
|
|
return $src;
|
|
|
|
|
|
|
|
if (! array_key_exists($dir,URL::$method_directory))
|
|
|
|
throw new Kohana_Exception('Unknown directory :dir for :src',array(':dir'=>$dir,':src'=>$src));
|
|
|
|
|
|
|
|
$x = URL::$method_directory[$dir].'/'.$src;
|
|
|
|
|
|
|
|
return $site ? URL::site($x) : $x;
|
|
|
|
}
|
|
|
|
|
2013-05-08 09:00:47 +00:00
|
|
|
public static function navbar() {
|
|
|
|
$result = array();
|
|
|
|
|
|
|
|
foreach (array_reverse(static::$method_directory) as $k=>$v)
|
|
|
|
switch ($k) {
|
|
|
|
case 'admin': $result[$k] = array('name'=>'Administrator','icon'=>'icon-globe');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'affiliate':
|
|
|
|
case 'reseller': $result[$k] = array('name'=>'Reseller','icon'=>'icon-th-list');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'user': $result[$k] = array('name'=>Auth::instance()->get_user()->name(),'icon'=>'icon-user');
|
|
|
|
break;
|
|
|
|
|
|
|
|
default: $result[$k] = array('name'=>$k,'icon'=>'icon-question-sign');
|
|
|
|
}
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
}
|
2013-10-10 02:44:53 +00:00
|
|
|
}
|
|
|
|
?>
|