<?php defined('SYSPATH') or die('No direct access allowed.'); /** * This class overrides Kohana's URL * * @package lnApp * @category Modifications * @author Deon George * @copyright (c) 2014 Deon George * @license http://dev.leenooks.net/license.html */ abstract class lnApp_URL extends Kohana_URL { // Our method paths for different functions public static $method_directory = array( 'admin'=>'a', 'reseller'=>'r', 'affiliate'=>'f', 'user'=>'u', ); public static function admin_url() { 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')))); } /** * 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; } /** * 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; } public static function navbar() { $result = array(); foreach (array_reverse(self::$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; } } ?>