Current Path : /var/www/html/clients/rebirth.e-nk.ru/sources/action_admin/ |
Current File : /var/www/html/clients/rebirth.e-nk.ru/sources/action_admin/portal.php |
<?php /* +-------------------------------------------------------------------------- | Invision Power Board | ============================================= | by Matthew Mecham | (c) 2001 - 2006 Invision Power Services, Inc. | Nullified by Terabyte | ============================================= | | +--------------------------------------------------------------------------- | > $Date: 2006-09-22 06:28:54 -0400 (Fri, 22 Sep 2006) $ | > $Revision: 567 $ | > $Author: matt $ +--------------------------------------------------------------------------- | | > PORTAL FUNCTIONS | > Module written by Matt Mecham | > Date started: Tuesday 2nd August 2005 (10:32) +-------------------------------------------------------------------------- */ /** * ACP MODULE: Portal Plug-ins * * Manage portal plug-ins * * @package InvisionPowerBoard * @subpackage ActionAdmin * @author Matt Mecham * @version 2.1 * @since 2.1.0.2005-08-02 */ /** * */ if ( ! defined( 'IN_ACP' ) ) { print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; exit(); } /** * ACP MODULE: Portal Plug-ins * * Manage portal plug-ins * * @package InvisionPowerBoard * @subpackage ActionAdmin * @author Matt Mecham * @version 2.1 * @since 2.1.0.2005-08-02 */ class ad_portal { /** * IPB object * * @var object */ var $ipsclass; /** * Perm main * * @var string */ var $perm_main = 'tools'; /** * Perm child * * @var string */ var $perm_child = 'portal'; /** * Portal objects * * @var array */ var $portal_objects = array(); /*-------------------------------------------------------------------------*/ // Main handler /*-------------------------------------------------------------------------*/ function auto_run() { //----------------------------------------- // Load HTML //----------------------------------------- $this->html = $this->ipsclass->acp_load_template('cp_skin_tools'); //----------------------------------------- // Load Language //----------------------------------------- $this->ipsclass->acp_load_language( 'acp_lang_portal' ); //----------------------------------------- // What to do? //----------------------------------------- switch($this->ipsclass->input['code']) { case 'manage': $this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':' ); $this->portal_list(); break; case 'portal_settings': $this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':edit' ); $this->portal_settings(); break; case 'portal_viewtags': $this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':edit' ); $this->portal_viewtags(); break; default: $this->ipsclass->admin->cp_permission_check( $this->perm_main.'|'.$this->perm_child.':' ); $this->portal_list(); break; } } /*-------------------------------------------------------------------------*/ /** * Rebuild Portal Cache * * @return void * @since 2.1.0.2005.08.02 */ function portal_rebuildcache() { $this->ipsclass->cache['portal'] = array(); if ( ! is_array( $this->portal_objects ) or ! count( $this->portal_objects ) ) { $this->get_portal_objects(); } $this->ipsclass->cache['portal'] = $this->portal_objects; $this->ipsclass->update_cache( array( 'name' => 'portal', 'array' => 1, 'deletefirst' => 1 ) ); } /*-------------------------------------------------------------------------*/ // Show portal settings /*-------------------------------------------------------------------------*/ /** * Show portal settings * * @return void * @since 2.1.0.2005.08.02 */ function portal_viewtags() { //------------------------------- // INIT //------------------------------- $pc_key = $this->ipsclass->txt_alphanumerical_clean( $this->ipsclass->input['pc_key'] ); $file = ROOT_PATH . 'sources/portal_plugins/'.$pc_key.'-cfg.php'; $content = ""; //------------------------------- // Check //------------------------------- if ( ! $pc_key OR ! file_exists( $file ) ) { $this->ipsclass->main_msg = $this->ipsclass->acp_lang['error_no_key']; $this->portal_list(); } //------------------------------- // Grab config file //------------------------------- require_once( $file ); if ( is_array( $PORTAL_CONFIG['pc_exportable_tags'] ) AND count( $PORTAL_CONFIG['pc_exportable_tags'] ) ) { foreach( $PORTAL_CONFIG['pc_exportable_tags'] as $tag => $tag_data ) { $content .= $this->html->portal_pop_row( $tag, $tag_data[1] ); } } $this->ipsclass->html .= $this->html->portal_pop_overview( $PORTAL_CONFIG['pc_title'], $content ); //------------------------------- // Print //------------------------------- $this->ipsclass->admin->print_popup(); } /*-------------------------------------------------------------------------*/ // Show portal settings /*-------------------------------------------------------------------------*/ /** * Show portal settings * * @return void * @since 2.1.0.2005.08.02 */ function portal_settings() { //------------------------------- // Page Data //------------------------------- $this->ipsclass->admin->nav[] = array( $this->ipsclass->form_code, $this->ipsclass->acp_lang['main_nav'] ); $this->ipsclass->admin->page_title = $this->ipsclass->acp_lang['main_title']; $this->ipsclass->admin->page_detail = $this->ipsclass->acp_lang['main_help']; //------------------------------- // INIT //------------------------------- $pc_key = $this->ipsclass->txt_alphanumerical_clean( $this->ipsclass->input['pc_key'] ); $file = ROOT_PATH . 'sources/portal_plugins/'.$pc_key.'-cfg.php'; //------------------------------- // Check //------------------------------- if ( ! $pc_key OR ! file_exists( $file ) ) { $this->ipsclass->main_msg = $this->ipsclass->acp_lang['error_no_key']; $this->portal_list(); } //------------------------------- // Grab config file //------------------------------- require_once( $file ); if ( ! $PORTAL_CONFIG['pc_settings_keyword'] ) { $this->ipsclass->main_msg = $this->ipsclass->acp_lang['error_no_settings']; $this->portal_list(); } //------------------------------- // Grab, init and load settings //------------------------------- require_once( ROOT_PATH.'sources/action_admin/settings.php' ); $settings = new ad_settings(); $settings->ipsclass =& $this->ipsclass; $settings->get_by_key = $PORTAL_CONFIG['pc_settings_keyword']; $settings->return_after_save = $this->ipsclass->form_code.'&code=portal_settings&pc_key='.$pc_key; $settings->setting_view(); } /*-------------------------------------------------------------------------*/ // List portal objects /*-------------------------------------------------------------------------*/ /** * List portal objects * * @return void * @since 2.1.0.2005.08.02 */ function portal_list() { //------------------------------- // Page Data //------------------------------- $this->ipsclass->admin->nav[] = array( $this->ipsclass->form_code, $this->ipsclass->acp_lang['main_nav'] ); $this->ipsclass->admin->page_title = $this->ipsclass->acp_lang['main_title']; $this->ipsclass->admin->page_detail = $this->ipsclass->acp_lang['main_help']; //------------------------------- // INIT //------------------------------- $content = ""; //------------------------------- // Get portal objects //------------------------------- $this->get_portal_objects(); foreach( $this->portal_objects as $portal_data ) { //------------------------------- // (Alex) Cross //------------------------------- $content .= $this->html->portal_row( $portal_data ); } $this->ipsclass->html .= $this->html->portal_overview( $content ); //------------------------------- // Update cache //------------------------------- $this->portal_rebuildcache(); //------------------------------- // Print //------------------------------- $this->ipsclass->admin->output(); } /*-------------------------------------------------------------------------*/ // Return portal objects /*-------------------------------------------------------------------------*/ /** * Return portal objects * * Picks through the portal objects directory * * @return void * @since 2.1.0.2005.08.02 */ function get_portal_objects() { //------------------------------- // Got a directory? //------------------------------- if ( ! file_exists( ROOT_PATH.'sources/portal_plugins' ) ) { $this->ipsclass->main_msg = $this->ipsclass->acp_lang['error_no_dir']; $this->portal_objects = array(); return; } //------------------------------- // Go loopy //------------------------------- $handle = opendir( ROOT_PATH.'sources/portal_plugins' ); while ( ($file = readdir($handle) ) !== FALSE ) { if ( ($file != ".") && ($file != "..") ) { preg_match( "#^(.*)-cfg\.php$#", $file, $matches ); if ( $matches[0] AND $matches[1] ) { //------------------------------- // Include file... //------------------------------- $PORTAL_CONFIG = array(); require_once( ROOT_PATH . 'sources/portal_plugins/' . $matches[0] ); if ( is_array( $PORTAL_CONFIG ) AND count( $PORTAL_CONFIG ) ) { $PORTAL_CONFIG['pc_key'] = $matches[1]; $this->portal_objects[ $matches[1] ] = $PORTAL_CONFIG; } } } } closedir($handle); } } ?>