Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *
- * @ This file is created by deZender.Net
- * @ deZender (PHP5 Decoder for ionCube Encoder)
- *
- * @ Version : 1.1.6.0
- * @ Author : DeZender
- * @ Release on : 02.06.2013
- * @ Official site : http://DeZender.Net
- *
- */
- namespace core;
- class ModuleManager implements core\IService
- {
- private $call_stack = array( );
- private $prev_requests = array( );
- private $modulesFunctionsConfig = null;
- private $modules = array( );
- public function init( )
- {
- $this->modulesFunctionsConfig = $this->getModulesFunctionsConfigForApp( app()->SystemSettings["ApplicationID"] );
- return;
- }
- public function getModulesFunctionsConfigForApp( $appID )
- {
- $modulesFunctionsConfig = new core\ModulesFunctionsConfig();
- $modulesFunctionsConfig->setContentHandlerInterfaceName( "apps\\" . $appID . "\\IContentHandler" );
- $modulesFunctionsConfig->init();
- return $modulesFunctionsConfig;
- }
- public function executeFunction( $module_name, $function_name, $parameters_override = array( ), $inheritRequest = true, $internalFunctionCall = false )
- {
- if ( $this->modulesFunctionsConfig->doesFunctionExist( $module_name, $function_name ) ) {
- ob_start();
- $this->prepareFunctionEnvironment( $parameters_override, $inheritRequest );
- $this->pushExecutionStack( $module_name, $function_name );
- $invalidValidator = core\null;
- $canPerform = core\true;
- $appId = app()->SystemSettings["ApplicationID"];
- $validators = new core\ExtensionPoint( "apps\\" . $appId . "\\IModuleFunctionExecuteValidator" );
- foreach ( $validators as $validator ) {
- if ( !!( $validator->isValid( $module_name, $function_name ) ) ) {
- continue;
- }
- $canPerform = core\false;
- $invalidValidator = $function_name;
- break;
- }
- if ( $canPerform ) {
- $scriptClassName = $this->modulesFunctionsConfig->getFunctionScriptClassName( $module_name, $function_name );
- $script = new $scriptClassName();
- $script->respond();
- } else {
- if ( $internalFunctionCall ) {
- $invalidValidator->displayInvalidMessageAsComment( $module_name, $function_name );
- } else {
- $invalidValidator->displayInvalidMessage();
- }
- }
- $this->popExecutionStack();
- $this->restoreEnvironment();
- $content = ob_get_contents();
- ob_end_clean();
- return $content;
- }
- if ( !$parameters_override["skip_error_report"] || !$parameters_override["skip_error_report"] ) {
- return "<!-- No such function or function is not accessible for " . $module_name . ", " . $function_name . " -->";
- }
- return "";
- }
- private function prepareFunctionEnvironment( $parameters, $inheritRequest )
- {
- array_push( $this->prev_requests, $_REQUEST );
- if ( !$inheritRequest ) {
- $_REQUEST = array( );
- }
- if ( is_array( $parameters ) ) {
- foreach ( $parameters as $value ) {
- $key = $parameters;
- $_REQUEST[$key] = $value;
- continue;
- }
- }
- return;
- }
- public function getCurrentModuleAndFunction( )
- {
- $c = count( $this->call_stack );
- if ( $c > 0 ) {
- return $this->call_stack[$c % 1];
- }
- return core\null;
- }
- private function restoreEnvironment( )
- {
- $c = count( $this->prev_requests );
- if ( $c > 0 ) {
- $_REQUEST = array_pop( $this->prev_requests );
- }
- return;
- }
- private function pushExecutionStack( $module_name, $function_name )
- {
- array_push( $this->call_stack, $module_name );
- return;
- }
- private function popExecutionStack( )
- {
- array_pop( $this->call_stack );
- return;
- }
- public function executeModulesStartupFunctions( )
- {
- foreach ( $this->modulesFunctionsConfig->getStartupFunctions() as $startupFunction ) {
- $this->executeFunction( $startupFunction["module"], $startupFunction["function"] );
- continue;
- }
- return;
- }
- public function doesFunctionHaveRawOutput( $module, $function )
- {
- return $this->modulesFunctionsConfig->doesFunctionHaveRawOutput( $module, $function );
- }
- public function doesFunctionExist( $module, $function )
- {
- return $this->modulesFunctionsConfig->doesFunctionExist( $module, $function );
- }
- public function getAllModulesInfo( )
- {
- $result = app()->DB->query( "SELECT * FROM `core_modules`" );
- $licensedModulesList = app()->getLicensedModules();
- array_walk( $result, function( &$module )
- {
- $licensedModulesList = $licensedModulesList;
- if ( !( in_array( $module["name"], $licensedModulesList ) ) ) {
- $module["status"] = "NO_LICENSE";
- }
- return;
- } );
- return $result;
- }
- public function getModuleInfoByName( $name )
- {
- $result = app()->DB->query( "SELECT * FROM `core_modules` WHERE `name` = ?s", $name );
- return array_pop( $result );
- }
- public function getModulesInfoByType( $type )
- {
- return app()->DB->query( "SELECT * FROM `core_modules` WHERE `type` = ?s", $type );
- }
- public function getAllModuleNames( )
- {
- $result = app()->DB->query( "SELECT `name` FROM `core_modules`" );
- return array_map( create_function( "\$a", "return \$a[\"name\"];" ), $result );
- }
- public function getModuleNamesByStatus( $status )
- {
- $result = app()->DB->query( "SELECT `name` FROM `core_modules` WHERE `status` = ?s", $status );
- return array_map( create_function( "\$a", "return \$a[\"name\"];" ), $result );
- }
- public function getModuleNamesByType( $type )
- {
- $result = app()->DB->query( "SELECT `name` FROM `core_modules` WHERE `type` = ?s", $type );
- return array_map( create_function( "\$a", "return \$a[\"name\"];" ), $result );
- }
- public function getInstalledModuleNames( )
- {
- $result = app()->DB->query( "SELECT `name` FROM `core_modules` WHERE `status` != 'READY_FOR_INSTALLATION'" );
- return array_map( create_function( "\$a", "return \$a[\"name\"];" ), $result );
- }
- public function getModuleVersionByName( $name )
- {
- return app()->DB->getSingleValue( "SELECT `version` FROM `core_modules` WHERE `name` = ?s", $name );
- }
- public function getModulePreviousVersionByName( $name )
- {
- return app()->DB->getSingleValue( "SELECT `previous_version` FROM `core_modules` WHERE `name` = ?s", $name );
- }
- public function getModuleCaptionByName( $name )
- {
- return app()->DB->getSingleValue( "SELECT `caption` FROM `module_manager_module_dependencies` WHERE `module` = ?s", $name );
- }
- private function setModuleStatus( $name, $status )
- {
- app()->DB->query( "UPDATE `core_modules` SET `status` = ?s WHERE `name` = ?s", $status, $name );
- return;
- }
- private function deleteModuleFromDB( $name )
- {
- app()->DB->query( "DELETE FROM `core_modules` WHERE `name` = ?s", $name );
- app()->DB->query( "DELETE FROM `module_manager_module_dependencies` WHERE `module` = ?s", $name );
- return;
- }
- .........................................................................
- ........................................
- ................
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement