| 
<?phpnamespace Jackbooted\Html;
 
 use \Jackbooted\Config\Cfg;
 use \Jackbooted\Forms\Request;
 use \Jackbooted\Security\Privileges;
 use \Jackbooted\Util\Log4PHP;
 /**
 * @copyright Confidential and copyright (c) 2016 Jackbooted Software. All rights reserved.
 *
 * Written by Brett Dutton of Jackbooted Software
 * brett at brettdutton dot com
 *
 * This software is written and distributed under the GNU General Public
 * License which means that its source code is freely-distributed and
 * available to the general public.
 */
 
 class WebPage extends \Jackbooted\Util\JB {
 const ACTION = '_ACT';
 const SAVE_URL = '_SAVEURL';
 
 protected static $log;
 
 public static function init () {
 self::$log = Log4PHP::logFactory ( __CLASS__ );
 }
 
 public static function controller ( $default='', $actionKey=self::ACTION ) {
 $action = Request::get ( $actionKey, $default );
 if ( ! isset( $action ) || $action == false ) return false;
 
 if ( ( $modifiedAction = self::checkPriviliages ( $action ) ) === false ) {
 return 'You do not have priviliages to perform action: ' . $action;
 }
 else {
 $action = $modifiedAction;
 }
 
 return self::execAction ( $action );
 }
 
 protected static function execAction ( $action ) {
 if ( strpos ( $action, '::' ) !== false ) {
 eval ( '$html = ' . $action . ';' );
 }
 else if ( strpos ( $action, '->' ) !== false ) {
 list ( $clazz, $rest ) = explode ( '->', $action );
 $obj = new $clazz ();
 eval ( '$html = $obj->' . $rest . ';' );
 }
 else {
 $cName = ( function_exists ( 'get_called_class' ) ) ? get_called_class() : __CLASS__;
 $object = new $cName ();
 
 if ( method_exists ( $object, $action ) ) {
 $html = $object->$action ();
 }
 else {
 $html = $object->index ();
 }
 }
 return $html;
 }
 
 private static function checkPriviliages ( $action ) {
 if ( ! Cfg::get ( 'check_priviliages', false ) ) return $action;
 
 if ( ( $loginAction = Privileges::access ( $action ) ) === false ) return false;
 if ( is_string ( $loginAction ) && isset ( $_SERVER["REQUEST_URI"] ) ) {
 Request::set ( self::SAVE_URL, $_SERVER["REQUEST_URI"] );
 $action = $loginAction;
 }
 return $action;
 }
 
 public function __construct () {
 parent::__construct();
 }
 
 public function index () {
 return '<pre>' . var_export ( $_REQUEST, false ) . '</pre>';
 }
 
 public function blank () {
 return '';
 }
 
 public function __call ( $name, $arguments ) {
 $fName = Cfg::get ( 'site_path' ) . '/' . $name . '.html';
 if ( file_exists ( $fName ) ) {
 return file_get_contents ( $fName );
 }
 else {
 return 'Unknown Method Call: ' . $name;
 }
 }
 }
 
 |