PHP Classes

File: vendor/jackbooted/html/WebPage.php

Recommend this page to a friend!
  Classes of Brett Dutton   JackBooted PHP Framework   vendor/jackbooted/html/WebPage.php   Download  
File: vendor/jackbooted/html/WebPage.php
Role: Class source
Content type: text/plain
Description: Class source
Class: JackBooted PHP Framework
Web application framework using simplified MVC
Author: By
Last change:
Date: 8 years ago
Size: 3,019 bytes
 

Contents

Class file image Download
<?php
namespace 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;
        }
    }
}