hook functionality
This commit is contained in:
parent
9a06b57ebf
commit
cf6c9b6683
7 changed files with 322 additions and 207 deletions
|
@ -237,7 +237,7 @@ class DBLayer {
|
||||||
}
|
}
|
||||||
catch ( Exception $e )
|
catch ( Exception $e )
|
||||||
{
|
{
|
||||||
$this -> rollBack();
|
$this -> PDO -> rollBack();
|
||||||
throw new Exception( "error in deleting" );
|
throw new Exception( "error in deleting" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,224 +1,241 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Helper class for more site specific functions.
|
* Helper class for more site specific functions.
|
||||||
* @author Daan Janssens, mentored by Matthew Lagoe
|
*
|
||||||
*
|
* @author Daan Janssens, mentored by Matthew Lagoe
|
||||||
*/
|
*/
|
||||||
class Helpers{
|
class Helpers {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* workhorse of the website, it loads the template and shows it or returns th html.
|
* workhorse of the website, it loads the template and shows it or returns th html.
|
||||||
* it uses smarty to load the $template, but before displaying the template it will pass the $vars to smarty. Also based on your language settings a matching
|
* it uses smarty to load the $template, but before displaying the template it will pass the $vars to smarty. Also based on your language settings a matching
|
||||||
* array of words & sentences for that page will be loaded. In case the $returnHTML parameter is set to true, it will return the html instead of displaying the template.
|
* array of words & sentences for that page will be loaded. In case the $returnHTML parameter is set to true, it will return the html instead of displaying the template.
|
||||||
* @param $template the name of the template(page) that we want to load.
|
*
|
||||||
* @param $vars an array of variables that should be loaded by smarty before displaying or returning the html.
|
* @param $template the name of the template(page) that we want to load.
|
||||||
* @param $returnHTML (default=false) if set to true, the html that should have been displayed, will be returned.
|
* @param $vars an array of variables that should be loaded by smarty before displaying or returning the html.
|
||||||
* @return in case $returnHTML=true, it returns the html of the template being loaded.
|
* @param $returnHTML (default=false) if set to true, the html that should have been displayed, will be returned.
|
||||||
*/
|
* @return in case $returnHTML=true, it returns the html of the template being loaded.
|
||||||
public static function loadTemplate( $template, $vars = array (), $returnHTML = false )
|
*/
|
||||||
{
|
public static function loadTemplate( $template, $vars = array (), $returnHTML = false )
|
||||||
global $AMS_LIB;
|
{
|
||||||
|
global $AMS_LIB;
|
||||||
global $SITEBASE;
|
global $SITEBASE;
|
||||||
global $AMS_TRANS;
|
global $AMS_TRANS;
|
||||||
global $INGAME_LAYOUT;
|
global $INGAME_LAYOUT;
|
||||||
//define('SMARTY_SPL_AUTOLOAD',1);
|
// define('SMARTY_SPL_AUTOLOAD',1);
|
||||||
require_once $AMS_LIB . '/smarty/libs/Smarty.class.php';
|
require_once $AMS_LIB . '/smarty/libs/Smarty.class.php';
|
||||||
spl_autoload_register('__autoload');
|
spl_autoload_register( '__autoload' );
|
||||||
|
|
||||||
$smarty = new Smarty;
|
$smarty = new Smarty;
|
||||||
$smarty->setCompileDir($SITEBASE.'/templates_c/');
|
$smarty -> setCompileDir( $SITEBASE . '/templates_c/' );
|
||||||
$smarty->setCacheDir($SITEBASE.'/cache/');
|
$smarty -> setCacheDir( $SITEBASE . '/cache/' );
|
||||||
$smarty -> setConfigDir($SITEBASE . '/configs/' );
|
$smarty -> setConfigDir( $SITEBASE . '/configs/' );
|
||||||
// turn smarty debugging on/off
|
// turn smarty debugging on/off
|
||||||
$smarty -> debugging = false;
|
$smarty -> debugging = false;
|
||||||
// caching must be disabled for multi-language support
|
// caching must be disabled for multi-language support
|
||||||
$smarty -> caching = false;
|
$smarty -> caching = false;
|
||||||
$smarty -> cache_lifetime = 5;
|
$smarty -> cache_lifetime = 5;
|
||||||
|
|
||||||
//needed by smarty.
|
// needed by smarty.
|
||||||
helpers :: create_folders ();
|
helpers :: create_folders ();
|
||||||
global $FORCE_INGAME;
|
global $FORCE_INGAME;
|
||||||
|
|
||||||
//if ingame, then use the ingame templates
|
// if ingame, then use the ingame templates
|
||||||
if ( helpers::check_if_game_client() or $FORCE_INGAME ){
|
if ( helpers :: check_if_game_client() or $FORCE_INGAME ) {
|
||||||
$smarty -> template_dir = $AMS_LIB . '/ingame_templates/';
|
$smarty -> template_dir = $AMS_LIB . '/ingame_templates/';
|
||||||
$smarty -> setConfigDir( $AMS_LIB . '/configs' );
|
$smarty -> setConfigDir( $AMS_LIB . '/configs' );
|
||||||
$variables = parse_ini_file( $AMS_LIB . '/configs/ingame_layout.ini', true );
|
$variables = parse_ini_file( $AMS_LIB . '/configs/ingame_layout.ini', true );
|
||||||
foreach ( $variables[$INGAME_LAYOUT] as $key => $value ){
|
foreach ( $variables[$INGAME_LAYOUT] as $key => $value ) {
|
||||||
$smarty -> assign( $key, $value );
|
$smarty -> assign( $key, $value );
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
$smarty -> template_dir = $SITEBASE . '/templates/';
|
$smarty -> template_dir = $SITEBASE . '/templates/';
|
||||||
$smarty -> setConfigDir( $SITEBASE . '/configs' );
|
$smarty -> setConfigDir( $SITEBASE . '/configs' );
|
||||||
}
|
|
||||||
|
|
||||||
foreach ( $vars as $key => $value ){
|
|
||||||
$smarty -> assign( $key, $value );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//load page specific variables that are language dependent
|
foreach ( $vars as $key => $value ) {
|
||||||
$variables = Helpers::handle_language();
|
$smarty -> assign( $key, $value );
|
||||||
foreach ( $variables[$template] as $key => $value ){
|
|
||||||
$smarty -> assign( $key, $value );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//smarty inheritance for loading the matching wrapper layout (with the matching menu bar)
|
// load page specific variables that are language dependent
|
||||||
if( isset($vars['permission']) && $vars['permission'] == 3 ){
|
$variables = Helpers :: handle_language();
|
||||||
$inherited = "extends:layout_admin.tpl|";
|
if ( $template != 'layout_plugin' )
|
||||||
}else if( isset($vars['permission']) && $vars['permission'] == 2){
|
{
|
||||||
$inherited = "extends:layout_mod.tpl|";
|
foreach ( $variables[$template] as $key => $value ) {
|
||||||
}else if( isset($vars['permission']) && $vars['permission'] == 1){
|
$smarty -> assign( $key, $value );
|
||||||
$inherited = "extends:layout_user.tpl|";
|
}
|
||||||
}else{
|
}
|
||||||
$inherited ="";
|
// load ams content variables that are language dependent
|
||||||
}
|
foreach ( $variables['ams_content'] as $key => $value ) {
|
||||||
|
$smarty -> assign( $key, $value );
|
||||||
|
}
|
||||||
|
|
||||||
//if $returnHTML is set to true, return the html by fetching the template else display the template.
|
// smarty inheritance for loading the matching wrapper layout (with the matching menu bar)
|
||||||
if($returnHTML == true){
|
if ( isset( $vars['permission'] ) && $vars['permission'] == 3 ) {
|
||||||
return $smarty ->fetch($inherited . $template . '.tpl' );
|
$inherited = "extends:layout_admin.tpl|";
|
||||||
}else{
|
} else if ( isset( $vars['permission'] ) && $vars['permission'] == 2 ) {
|
||||||
$smarty -> display( $inherited . $template . '.tpl' );
|
$inherited = "extends:layout_mod.tpl|";
|
||||||
}
|
} else if ( isset( $vars['permission'] ) && $vars['permission'] == 1 ) {
|
||||||
}
|
$inherited = "extends:layout_user.tpl|";
|
||||||
|
} else {
|
||||||
|
$inherited = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
// if $returnHTML is set to true, return the html by fetching the template else display the template.
|
||||||
|
if ( $returnHTML == true ) {
|
||||||
|
return $smarty -> fetch( $inherited . $template . '.tpl' );
|
||||||
|
} else {
|
||||||
|
$smarty -> display( $inherited . $template . '.tpl' );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* creates the folders that are needed for smarty.
|
* creates the folders that are needed for smarty.
|
||||||
* @todo for the drupal module it might be possible that drupal_mkdir needs to be used instead of mkdir, also this should be in the install.php instead.
|
*
|
||||||
*/
|
* @todo for the drupal module it might be possible that drupal_mkdir needs to be used instead of mkdir, also this should be in the install.php instead.
|
||||||
static public function create_folders(){
|
*/
|
||||||
global $AMS_LIB;
|
static public function create_folders() {
|
||||||
|
global $AMS_LIB;
|
||||||
global $SITEBASE;
|
global $SITEBASE;
|
||||||
$arr = array( $AMS_LIB . '/ingame_templates/',
|
$arr = array( $AMS_LIB . '/ingame_templates/',
|
||||||
$AMS_LIB . '/configs',
|
$AMS_LIB . '/configs',
|
||||||
//$AMS_LIB . '/cache',
|
// $AMS_LIB . '/cache',
|
||||||
$SITEBASE . '/cache/',
|
$SITEBASE . '/cache/',
|
||||||
$SITEBASE . '/templates/',
|
$SITEBASE . '/templates/',
|
||||||
$SITEBASE . '/templates_c/',
|
$SITEBASE . '/templates_c/',
|
||||||
$SITEBASE . '/configs'
|
$SITEBASE . '/configs'
|
||||||
);
|
);
|
||||||
foreach ( $arr as & $value ){
|
foreach ( $arr as &$value ) {
|
||||||
|
|
||||||
if ( !file_exists( $value ) ){
|
if ( !file_exists( $value ) ) {
|
||||||
print($value);
|
print( $value );
|
||||||
mkdir($value);
|
mkdir( $value );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* check if the http request is sent ingame or not.
|
* check if the http request is sent ingame or not.
|
||||||
|
*
|
||||||
* @return returns true in case it's sent ingame, else false is returned.
|
* @return returns true in case it's sent ingame, else false is returned.
|
||||||
*/
|
*/
|
||||||
static public function check_if_game_client()
|
static public function check_if_game_client()
|
||||||
{
|
{
|
||||||
// if HTTP_USER_AGENT is not set then its ryzom core
|
// if HTTP_USER_AGENT is not set then its ryzom core
|
||||||
global $FORCE_INGAME;
|
global $FORCE_INGAME;
|
||||||
if ( ( isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'],"Ryzom") === 0)) || $FORCE_INGAME || ! isset($_SERVER['HTTP_USER_AGENT']) ){
|
if ( ( isset( $_SERVER['HTTP_USER_AGENT'] ) && ( strpos( $_SERVER['HTTP_USER_AGENT'], "Ryzom" ) === 0 ) ) || $FORCE_INGAME || ! isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
|
||||||
return true;
|
return true;
|
||||||
}else{
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the language specific aspect.
|
* Handles the language specific aspect.
|
||||||
* The language can be changed by setting the $_GET['Language'] & $_GET['setLang'] together. This will also change the language entry of the user in the db.
|
* The language can be changed by setting the $_GET['Language'] & $_GET['setLang'] together. This will also change the language entry of the user in the db.
|
||||||
* Cookies are also being used in case the user isn't logged in.
|
* Cookies are also being used in case the user isn't logged in.
|
||||||
|
*
|
||||||
* @return returns the parsed content of the language .ini file related to the users language setting.
|
* @return returns the parsed content of the language .ini file related to the users language setting.
|
||||||
*/
|
*/
|
||||||
static public function handle_language(){
|
static public function handle_language() {
|
||||||
global $DEFAULT_LANGUAGE;
|
global $DEFAULT_LANGUAGE;
|
||||||
global $AMS_TRANS;
|
global $AMS_TRANS;
|
||||||
|
|
||||||
//if user wants to change the language
|
// if user wants to change the language
|
||||||
if(isset($_GET['Language']) && isset($_GET['setLang'])){
|
if ( isset( $_GET['Language'] ) && isset( $_GET['setLang'] ) ) {
|
||||||
//The ingame client sometimes sends full words, derive those!
|
// The ingame client sometimes sends full words, derive those!
|
||||||
switch($_GET['Language']){
|
switch ( $_GET['Language'] ) {
|
||||||
|
|
||||||
case "English":
|
case "English":
|
||||||
$lang = "en";
|
$lang = "en";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "French":
|
case "French":
|
||||||
$lang = "fr";
|
$lang = "fr";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$lang = $_GET['Language'];
|
$lang = $_GET['Language'];
|
||||||
}
|
}
|
||||||
//if the file exists en the setLang = true
|
// if the file exists en the setLang = true
|
||||||
if( file_exists( $AMS_TRANS . '/' . $lang . '.ini' ) && $_GET['setLang'] == "true"){
|
if ( file_exists( $AMS_TRANS . '/' . $lang . '.ini' ) && $_GET['setLang'] == "true" ) {
|
||||||
//set a cookie & session var and incase logged in write it to the db!
|
// set a cookie & session var and incase logged in write it to the db!
|
||||||
setcookie( 'Language', $lang , time() + 60*60*24*30 );
|
setcookie( 'Language', $lang , time() + 60 * 60 * 24 * 30 );
|
||||||
$_SESSION['Language'] = $lang;
|
$_SESSION['Language'] = $lang;
|
||||||
if(WebUsers::isLoggedIn()){
|
if ( WebUsers :: isLoggedIn() ) {
|
||||||
WebUsers::setLanguage($_SESSION['id'],$lang);
|
WebUsers :: setLanguage( $_SESSION['id'], $lang );
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
$_SESSION['Language'] = $DEFAULT_LANGUAGE;
|
$_SESSION['Language'] = $DEFAULT_LANGUAGE;
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
//if the session var is not set yet
|
// if the session var is not set yet
|
||||||
if(!isset($_SESSION['Language'])){
|
if ( !isset( $_SESSION['Language'] ) ) {
|
||||||
//check if a cookie already exists for it
|
// check if a cookie already exists for it
|
||||||
if ( isset( $_COOKIE['Language'] ) ) {
|
if ( isset( $_COOKIE['Language'] ) ) {
|
||||||
$_SESSION['Language'] = $_COOKIE['Language'];
|
$_SESSION['Language'] = $_COOKIE['Language'];
|
||||||
//else use the default language
|
// else use the default language
|
||||||
}else{
|
} else {
|
||||||
$_SESSION['Language'] = $DEFAULT_LANGUAGE;
|
$_SESSION['Language'] = $DEFAULT_LANGUAGE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($_SESSION['Language'] == ""){
|
|
||||||
$_SESSION['Language'] = $DEFAULT_LANGUAGE;
|
|
||||||
}
|
|
||||||
return parse_ini_file( $AMS_TRANS . '/' . $_SESSION['Language'] . '.ini', true );
|
|
||||||
|
|
||||||
|
if ( $_SESSION['Language'] == "" ) {
|
||||||
|
$_SESSION['Language'] = $DEFAULT_LANGUAGE;
|
||||||
}
|
}
|
||||||
|
return parse_ini_file( $AMS_TRANS . '/' . $_SESSION['Language'] . '.ini', true );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Time output function for handling the time display.
|
* Time output function for handling the time display.
|
||||||
* @return returns the time in the format specified in the $TIME_FORMAT global variable.
|
*
|
||||||
*/
|
* @return returns the time in the format specified in the $TIME_FORMAT global variable.
|
||||||
static public function outputTime($time, $str = 1){
|
*/
|
||||||
global $TIME_FORMAT;
|
static public function outputTime( $time, $str = 1 ) {
|
||||||
if($str){
|
global $TIME_FORMAT;
|
||||||
return date($TIME_FORMAT,strtotime($time));
|
if ( $str ) {
|
||||||
}else{
|
return date( $TIME_FORMAT, strtotime( $time ) );
|
||||||
return date($TIME_FORMAT,$time);
|
} else {
|
||||||
}
|
return date( $TIME_FORMAT, $time );
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Auto login function for ingame use.
|
|
||||||
* This function will allow users who access the website ingame, to log in without entering the username and password. It uses the COOKIE entry in the open_ring db.
|
|
||||||
* it checks if the cookie sent by the http request matches the one in the db. This cookie in the db is changed everytime the user relogs.
|
|
||||||
* @return returns "FALSE" if the cookies didn't match, else it returns an array with the user's id and name.
|
|
||||||
*/
|
|
||||||
static public function check_login_ingame(){
|
|
||||||
if ( helpers :: check_if_game_client () or $forcelibrender = false ){
|
|
||||||
$dbr = new DBLayer("ring");
|
|
||||||
if (isset($_GET['UserId']) && isset($_COOKIE['ryzomId'])){
|
|
||||||
$id = $_GET['UserId'];
|
|
||||||
$statement = $dbr->select("ring_users", array('id' => $id, 'cookie' => $_COOKIE['ryzomId']), "user_id=:id AND cookie =:cookie");
|
|
||||||
if ($statement->rowCount() ){
|
|
||||||
$entry = $statement->fetch();
|
|
||||||
//print_r($entry);
|
|
||||||
return array('id' => $entry['user_id'], 'name' => $entry['user_name']);
|
|
||||||
}else{
|
|
||||||
return "FALSE";
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
return "FALSE";
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
return "FALSE";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auto login function for ingame use.
|
||||||
|
* This function will allow users who access the website ingame, to log in without entering the username and password. It uses the COOKIE entry in the open_ring db.
|
||||||
|
* it checks if the cookie sent by the http request matches the one in the db. This cookie in the db is changed everytime the user relogs.
|
||||||
|
*
|
||||||
|
* @return returns "FALSE" if the cookies didn't match, else it returns an array with the user's id and name.
|
||||||
|
*/
|
||||||
|
static public function check_login_ingame() {
|
||||||
|
if ( helpers :: check_if_game_client () or $forcelibrender = false ) {
|
||||||
|
$dbr = new DBLayer( "ring" );
|
||||||
|
if ( isset( $_GET['UserId'] ) && isset( $_COOKIE['ryzomId'] ) ) {
|
||||||
|
$id = $_GET['UserId'];
|
||||||
|
|
||||||
|
$statement = $dbr -> select( "ring_users", array( 'id' => $id, 'cookie' => $_COOKIE['ryzomId'] ), "user_id=:id AND cookie =:cookie" );
|
||||||
|
|
||||||
|
// $statement = $dbr->execute("SELECT * FROM ring_users WHERE user_id=:id AND cookie =:cookie", array('id' => $id, 'cookie' => $_COOKIE['ryzomId']));
|
||||||
|
|
||||||
|
if ( $statement -> rowCount() ) {
|
||||||
|
$entry = $statement -> fetch();
|
||||||
|
// print_r($entry);
|
||||||
|
return array( 'id' => $entry['user_id'], 'name' => $entry['user_name'] );
|
||||||
|
} else {
|
||||||
|
return "FALSE";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return "FALSE";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return "FALSE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -156,13 +156,12 @@ class Plugincache {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get update info array attribute of the object.
|
* get plugin info array attribute of the object.
|
||||||
*/
|
*/
|
||||||
public function getUpdateInfo() {
|
public function getUpdateInfo() {
|
||||||
return $this -> update_info;
|
return $this -> update_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* some more plugin function that requires during plugin operations
|
* some more plugin function that requires during plugin operations
|
||||||
*
|
*
|
||||||
|
@ -187,4 +186,86 @@ class Plugincache {
|
||||||
return rmdir( $dir );
|
return rmdir( $dir );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function to unzip the zipped files
|
||||||
|
*
|
||||||
|
* @param $target_path path to the target zipped file
|
||||||
|
* @param $destination path to the destination
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public static function zipExtraction( $target_path, $destination )
|
||||||
|
{
|
||||||
|
$zip = new ZipArchive();
|
||||||
|
$x = $zip -> open( $target_path );
|
||||||
|
if ( $x === true ) {
|
||||||
|
if ( $zip -> extractTo( $destination ) )
|
||||||
|
{
|
||||||
|
$zip -> close();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$zip -> close();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns plugin information with respect to the id
|
||||||
|
*
|
||||||
|
* @param id $ plugin id
|
||||||
|
* @return field info for the plugin
|
||||||
|
*/
|
||||||
|
public static function pluginInfoUsingId( $id, $fieldName )
|
||||||
|
{
|
||||||
|
$db = new DBLayer( 'lib' );
|
||||||
|
$sth = $db -> selectWithParameter( $fieldName, 'plugins', array( 'id' => $id ), 'Id=:id' );
|
||||||
|
$row = $sth -> fetch();
|
||||||
|
return $row[$fieldName];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function provides list of active plugins
|
||||||
|
*
|
||||||
|
* @return $ac_plugins list of active plugins
|
||||||
|
*/
|
||||||
|
public static function activePlugins()
|
||||||
|
{
|
||||||
|
$db = new DBLayer( 'lib' );
|
||||||
|
$sth = $db -> selectWithParameter( 'Id', 'plugins', array( 'status' => 1 ), 'Status=:status' );
|
||||||
|
$row = $sth -> fetchAll();
|
||||||
|
return $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function to load hooks for the active plugins
|
||||||
|
* and return the contents in the hooks in an array
|
||||||
|
*
|
||||||
|
* @return $content content available in hooks
|
||||||
|
*/
|
||||||
|
public static function loadHooks()
|
||||||
|
{
|
||||||
|
$content = array();
|
||||||
|
$ac_arr = Plugincache :: activePlugins();
|
||||||
|
foreach( $ac_arr as $key => $value )
|
||||||
|
{
|
||||||
|
$plugin_path = Plugincache :: pluginInfoUsingId( $value['Id'], 'FileName' );
|
||||||
|
$pluginName = Plugincache :: pluginInfoUsingId( $value['Id'], 'Name' );
|
||||||
|
|
||||||
|
// calling hooks in the $pluginName.php
|
||||||
|
include $plugin_path . '/' . strtolower( $pluginName ) . '.php';
|
||||||
|
$arr = get_defined_functions();
|
||||||
|
|
||||||
|
foreach( $arr['user'] as $key => $value )
|
||||||
|
{
|
||||||
|
if ( stristr( $value, strtolower( $pluginName ) ) == true )
|
||||||
|
{
|
||||||
|
$content['hook_info'][$pluginName] = call_user_func( $value );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $content;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@ function update_plugin() {
|
||||||
$db = new DBLayer( 'lib' );
|
$db = new DBLayer( 'lib' );
|
||||||
$sth = $db -> executeWithoutParams( "SELECT * FROM plugins INNER JOIN updates ON plugins.Id=updates.PluginId Where plugins.Id=$id" );
|
$sth = $db -> executeWithoutParams( "SELECT * FROM plugins INNER JOIN updates ON plugins.Id=updates.PluginId Where plugins.Id=$id" );
|
||||||
$row = $sth -> fetch();
|
$row = $sth -> fetch();
|
||||||
print_r( $row );
|
|
||||||
|
|
||||||
// replacing update in the database
|
// replacing update in the database
|
||||||
Plugincache :: rrmdir( $row['FileName'] );
|
Plugincache :: rrmdir( $row['FileName'] );
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
// load required pages and turn error reporting on/off
|
// load required pages and turn error reporting on/off
|
||||||
error_reporting( E_ALL );
|
error_reporting( E_ALL );
|
||||||
ini_set( 'display_errors', 'on' );
|
ini_set( 'display_errors', 'on' );
|
||||||
require_once( '../../ams_lib/libinclude.php' );
|
|
||||||
if ( !file_exists( '../is_installed' ) ) {
|
if ( !file_exists( '../is_installed' ) ) {
|
||||||
// if is_installed doesnt exist run setup
|
// if is_installed doesnt exist run setup
|
||||||
require( 'installer/libsetup.php' );
|
require( 'installer/libsetup.php' );
|
||||||
|
@ -25,9 +24,10 @@ if ( !file_exists( '../is_installed' ) ) {
|
||||||
// if config exists then include it
|
// if config exists then include it
|
||||||
require( '../config.php' );
|
require( '../config.php' );
|
||||||
}
|
}
|
||||||
|
require_once( $AMS_LIB . '/libinclude.php' );
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
// Running Cron?
|
// Running Cron
|
||||||
if ( isset( $_GET["cron"] ) ) {
|
if ( isset( $_GET["cron"] ) ) {
|
||||||
if ( $_GET["cron"] == "true" ) {
|
if ( $_GET["cron"] == "true" ) {
|
||||||
Sync :: syncdata( false );
|
Sync :: syncdata( false );
|
||||||
|
@ -39,6 +39,7 @@ Sync :: syncdata( false );
|
||||||
|
|
||||||
// Decide what page to load
|
// Decide what page to load
|
||||||
if ( ! isset( $_GET["page"] ) ) {
|
if ( ! isset( $_GET["page"] ) ) {
|
||||||
|
|
||||||
if ( isset( $_SESSION['user'] ) ) {
|
if ( isset( $_SESSION['user'] ) ) {
|
||||||
if ( Ticket_User :: isMod( unserialize( $_SESSION['ticket_user'] ) ) ) {
|
if ( Ticket_User :: isMod( unserialize( $_SESSION['ticket_user'] ) ) ) {
|
||||||
$page = 'dashboard';
|
$page = 'dashboard';
|
||||||
|
@ -101,9 +102,6 @@ if ( isset( $_SESSION['user'] ) ) {
|
||||||
$return['username'] = $_SESSION['user'];
|
$return['username'] = $_SESSION['user'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Set permission
|
// Set permission
|
||||||
if ( isset( $_SESSION['ticket_user'] ) ) {
|
if ( isset( $_SESSION['ticket_user'] ) ) {
|
||||||
$return['permission'] = unserialize( $_SESSION['ticket_user'] ) -> getPermission();
|
$return['permission'] = unserialize( $_SESSION['ticket_user'] ) -> getPermission();
|
||||||
|
@ -112,7 +110,6 @@ if ( isset( $_SESSION['ticket_user'] ) ) {
|
||||||
$return['permission'] = 0;
|
$return['permission'] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// hide sidebar + topbar in case of login/register
|
// hide sidebar + topbar in case of login/register
|
||||||
if ( $page == 'login' || $page == 'register' || $page == 'logout' || $page == 'forgot_password' || $page == 'reset_password' ) {
|
if ( $page == 'login' || $page == 'register' || $page == 'logout' || $page == 'forgot_password' || $page == 'reset_password' ) {
|
||||||
$return['no_visible_elements'] = 'TRUE';
|
$return['no_visible_elements'] = 'TRUE';
|
||||||
|
@ -126,5 +123,12 @@ if ( $page == 'error' ) {
|
||||||
$return['no_visible_elements'] = 'FALSE';
|
$return['no_visible_elements'] = 'FALSE';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// call to load hooks for the active plugins
|
||||||
|
$hook_content = Plugincache :: loadHooks();
|
||||||
|
foreach( $hook_content as $key => $value )
|
||||||
|
{
|
||||||
|
$return[$key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
// load the template with the variables in the $return array
|
// load the template with the variables in the $return array
|
||||||
helpers :: loadTemplate( $page , $return );
|
helpers :: loadTemplate( $page , $return );
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=show_queue&get=todo"><i class="icon-th-list"></i><span class="hidden-tablet"> Queues</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=show_queue&get=todo"><i class="icon-th-list"></i><span class="hidden-tablet"> Queues</span></a></li>
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=sgroup_list"><i class="icon-briefcase"></i><span class="hidden-tablet"> Support Groups</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=sgroup_list"><i class="icon-briefcase"></i><span class="hidden-tablet"> Support Groups</span></a></li>
|
||||||
<li class="nav-header hidden-tablet">Actions</li>
|
<li class="nav-header hidden-tablet">Actions</li>
|
||||||
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=plugins"><i class="icon-th-list"></i><span class="hidden-tablet"> Plugins</span></a></li>
|
||||||
|
{if isset($hook_info)} {foreach from=$hook_info item=element}<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=layout_plugin&&name={$element.menu_display}"><i class="icon-th-list"></i><span class="hidden-tablet"> {$element.menu_display}</span></a></li>{/foreach}{/if}
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=syncing"><i class="icon-th-list"></i><span class="hidden-tablet"> Syncing</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=syncing"><i class="icon-th-list"></i><span class="hidden-tablet"> Syncing</span></a></li>
|
||||||
<li style="margin-left: -2px;"><a href="?page=logout"><i class="icon-off"></i><span class="hidden-tablet"> Logout </span></a></li>
|
<li style="margin-left: -2px;"><a href="?page=logout"><i class="icon-off"></i><span class="hidden-tablet"> Logout </span></a></li>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
{block name=content}
|
||||||
|
<div class="row-fluid">
|
||||||
|
{if isset($hook_info)}
|
||||||
|
{foreach from=$hook_info item=element}
|
||||||
|
{if $element.menu_display eq $smarty.get.name}
|
||||||
|
{include file=$element.template_path}
|
||||||
|
{/if}
|
||||||
|
{/foreach}
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/block}
|
||||||
|
|
Loading…
Reference in a new issue