Вход Регистрация
Файл: upload/module/admincp/include/component/controller/index.class.php
Строк: 836
<?php
/**
 * [PHPFOX_HEADER]
 */

defined('PHPFOX') or exit('NO DICE!');

/**
 * 
 * 
 * @copyright        [PHPFOX_COPYRIGHT]
 * @author          Raymond Benc
 * @package          Module_Admincp
 * @version         $Id: index.class.php 4334 2012-06-25 14:50:39Z Miguel_Espinoza $
 */
class Admincp_Component_Controller_Index extends Phpfox_Component 
{
    private 
$_sController 'index';
    private 
$_sModule;
    
    
/**
     * Class process method wnich is used to execute this component.
     */
    
public function process()
    {
        
Phpfox::getUserParam('admincp.has_admin_access'true);        
        
        if (
Phpfox::getParam('admincp.admin_cp') != $this->request()->get('req1'))
        {
            return 
Phpfox::getLib('module')->setController('error.404');    
        }
        
        if (!
Phpfox::getService('user.auth')->isActiveAdminSession())
        {        
            return 
Phpfox::getLib('module')->setController('admincp.login');
        }    
        
        if (
Phpfox::getParam('core.phpfox_is_hosted'))
        {
            
$sMaxHistory Phpfox::getParam('core.phpfox_total_users_online_history');
            if (!empty(
$sMaxHistory) && Phpfox::getLib('parse.format')->isSerialized($sMaxHistory))
            {
                
$aMaxHistory unserialize($sMaxHistory);
                
$this->template()->assign(array(
                        
'aMaxHistory' => $aMaxHistory
                    
)
                );                
            }
        }
        
        
$this->_sModule = (($sReq2 $this->request()->get('req2')) ? strtolower($sReq2) : Phpfox::getParam('admincp.admin_cp'));
        if (
$this->_sModule == 'logout')
        {
            
$this->_sController $this->_sModule;
            
$this->_sModule 'admincp';
        }
        else 
        {                    
            
$this->_sController = (($sReq3 $this->request()->get('req3')) ? $sReq3 $this->_sController);        
        }        
        if (
$sReq4 $this->request()->get('req4'))
        {
            
$sReq4 str_replace(' '''strtolower(str_replace('-'' '$sReq4)));
        }        
        
$sReq5 $this->request()->get('req5');        

        
$bPass false;
        if (
file_exists(PHPFOX_DIR_MODULE $this->_sModule PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS 'admincp' PHPFOX_DS $this->_sController '.class.php'))
        {        
            
$this->_sController 'admincp.' $this->_sController;
            
$bPass true;            
        }
        
        if (!
$bPass && $sReq5 && file_exists(PHPFOX_DIR_MODULE $this->_sModule PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS 'admincp' PHPFOX_DS $this->_sController PHPFOX_DS $sReq4 PHPFOX_DS $sReq5 '.class.php'))
        {
            
$this->_sController 'admincp.' $this->_sController '.' $sReq4 '.' $sReq5;
            
$bPass true;            
        }            
        
        if (!
$bPass && $sReq4 && file_exists(PHPFOX_DIR_MODULE $this->_sModule PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS 'admincp' PHPFOX_DS $this->_sController PHPFOX_DS $sReq4 '.class.php'))
        {
            
$this->_sController 'admincp.' $this->_sController '.' $sReq4;
            
$bPass true;            
        }            
        
        if (!
$bPass && file_exists(PHPFOX_DIR_MODULE $this->_sModule PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS 'admincp' PHPFOX_DS $this->_sController PHPFOX_DS $this->_sController '.class.php'))
        {
            
$this->_sController 'admincp.' $this->_sController '.' $this->_sController;
            
$bPass true;            
        }            
        
        if (!
$bPass && $sReq4 && file_exists(PHPFOX_DIR_MODULE $this->_sModule PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS 'admincp' PHPFOX_DS $this->_sController PHPFOX_DS $sReq4 '.class.php'))
        {
            
$this->_sController 'admincp.' $this->_sController '.' $sReq4;            
            
$bPass true;
        }
        
        if (!
$bPass && $sReq4 && file_exists(PHPFOX_DIR_MODULE $this->_sModule PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS 'admincp' PHPFOX_DS $this->_sController PHPFOX_DS $sReq4 PHPFOX_DS 'index.class.php'))
        {
            
$this->_sController 'admincp.' $this->_sController '.' $sReq4 '.index';                        
            
$bPass true;                    
        }            
        
        if (!
$bPass && file_exists(PHPFOX_DIR_MODULE $this->_sModule PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS 'admincp' PHPFOX_DS $this->_sController PHPFOX_DS 'index.class.php'))
        {
            
$this->_sController 'admincp.' $this->_sController '.index';            
            
$bPass true;                        
        }
            
        if (!
$bPass && file_exists(PHPFOX_DIR_MODULE 'admincp' PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS $this->_sModule PHPFOX_DS $this->_sController '.class.php'))
        {
            
$this->_sController $this->_sModule '.' $this->_sController;                        
            
$this->_sModule 'admincp';
            
$bPass true;            
        }        
        
        if (!
$bPass && $sReq4 && file_exists(PHPFOX_DIR_MODULE 'admincp' PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS $this->_sModule PHPFOX_DS $this->_sController PHPFOX_DS $sReq4 '.class.php'))
        {
            
$this->_sController $this->_sModule '.' $this->_sController '.' $sReq4;            
            
$this->_sModule 'admincp';
            
$bPass true;            
        }    
        
        if (!
$bPass && Phpfox::getParam('admincp.admin_cp') != 'admincp' && file_exists(PHPFOX_DIR_MODULE $this->_sModule PHPFOX_DS PHPFOX_DIR_MODULE_COMPONENT PHPFOX_DS 'controller' PHPFOX_DS $this->_sController '.class.php'))
        {            
            
$bPass true;        
        }
                
        
// Get the menu we will used to display all the "Modules"
        
$aModules Phpfox::getService('admincp.module')->getAdminMenu();

        
// Create AdminCP menu
        
$aMenus = array(
            
'admincp.dashboard' => 'admincp',
            
'admincp.cms' => array(
                
'admincp.menus' => array(
                    
'admincp.manage_menus' => 'admincp.menu',
                    
'admincp.add_new_menu' => 'admincp.menu.add'
                
),
                
'admincp.blocks' => array(
                    
'admincp.manage_blocks' => 'admincp.block',
                    
'admincp.add_new_block' => 'admincp.block.add'                    
                
),
                
'admincp.pages' => array(
                    
'admincp.manage_pages' => 'admincp.page',
                    
'admincp.add_new_page' => 'admincp.page.add'
                
)
            ),
            
'admincp.users' => array(
                
'admincp.browse_members' => 'admincp.user.browse',                
                
'admincp.user_group_manager' => array(
                    
'admincp.manage_user_groups' => 'admincp.user.group',
                    
'admincp.create_user_group' => 'admincp.user.group.add',
                    
'admincp.add_user_group_setting' => 'admincp.user.group.setting'
                
),
                
'admincp.user_cancellation_options' => array(
                    
'admincp.user_cancellation_options_add' => 'admincp.user.cancellations.add',
                    
'admincp.user_cancellation_options_manage' => 'admincp.user.cancellations.manage',
                    
'admincp.user_cancellations_feedback' => 'admincp.user.cancellations.feedback'
                
),
                
'user.promotions' => array(
                    
'user.manage_promotions' => 'admincp.user.promotion',
                    
'user.add_promotion' => 'admincp.user.promotion.add'
                
),
                
'admincp.inactive_members' => 'admincp.user.inactivereminder'
            
),
            
'admincp.extensions' => array(
                
'admincp.module' => array(
                    
'admincp.manage_modules' => 'admincp.module',
                    
'admincp.create_new_module' => 'admincp.module.add',
                    
'admincp.add_component' => 'admincp.component.add',
                    
'admincp.manage_components' => 'admincp.component'
                
),
                
'admincp.language' => array(
                    
'admincp.manage_language_packs' => 'admincp.language',
                    
'admincp.phrase_manager' => 'admincp.language.phrase',
                    
'admincp.add_phrase' => 'admincp.language.phrase.add',
                    
'language.create_language_pack' => 'admincp.language.add',
                    
// 'admincp.language_import_export' => 'admincp.language.file'
                    
'language.import_language_pack' => 'admincp.language.import',
                    
'language.email_phrases' => 'admincp.language.email'
                
),
                
'admincp.products' => array(
                    
'admincp.manage_products' => 'admincp.product',
                    
'admincp.create_new_product' => 'admincp.product.add',
                    
'admincp.import_export' => 'admincp.product.file'
                
),
                
'admincp.plugin' => array(
                    
'admincp.manage_plugins' => 'admincp.plugin',
                    
'admincp.create_new_plugin' => 'admincp.plugin.add'
                
),
                
'admincp.theme' => array(
                    
'admincp.manage_themes' => 'admincp.theme',
                    
'theme.admincp_menu_create_theme' => 'admincp.theme.add',
                    
'theme.admincp_menu_create_style' => 'admincp.theme.style.add',
                    
'theme.create_a_new_template' => 'admincp.theme.template.add',
                    
'theme.admincp_create_css_file' => 'admincp.theme.style.css.add',
                    
'theme.admincp_menu_import_themes' => 'admincp.theme.import',
                    
'theme.admincp_menu_import_styles' => 'admincp.theme.style.import'
                
)                
            ),
            
'admincp.settings' => array(
                
'admincp.system_settings_menu' => array(
                    
'admincp.manage_settings' => 'admincp.setting',
                    
'admincp.add_new_setting' => 'admincp.setting.add',
                    
'admincp.add_new_setting_group' => 'admincp.setting.group.add',
                    
'admincp.find_missing_settings' => 'admincp.setting.missing'
                    
// 'admincp.language_import_export' => 'admincp.setting.file'
                
),
                
'admincp.payment_gateways_menu' => 'admincp.api.gateway'
            
),
            
'admincp.tools' => array(
                
'core.site_statistics' => 'admincp.core.stat',
                
'core.admincp_menu_system_overview' => 'admincp.core.system',
                
'admincp.ip_address' => 'admincp.core.ip',
                
'admincp.menu_site_stats' => array(
                    
'admincp.menu_manage_stats' => 'admincp.stat',
                    
'admincp.menu_create_new_stat' => 'admincp.stat.add'
                
),
                
'admincp.maintenance' => array(
                    
'admincp.menu_cache_manager' => 'admincp.maintain.cache',
                    
'admincp.admincp_menu_reparser' => 'admincp.maintain.reparser',
                    
'admincp.remove_duplicates' => 'admincp.maintain.duplicate',
                    
'admincp.counters' => 'admincp.maintain.counter'
                
),
                
'ban.ban_filters' => array(
                    
'ban.ban_filter_username' => 'admincp.ban.username',
                    
'ban.ban_filter_email' => 'admincp.ban.email',
                    
'ban.ban_filter_display_name' => 'admincp.ban.display',
                    
'ban.ban_filter_ip' => 'admincp.ban.ip',
                    
'ban.ban_filter_word' => 'admincp.ban.word'
                
),
                
'admincp.mail_messages' => array(
                    
'admincp.view_messages' => 'admincp.mail.private'
                
),
                
'core.admincp_menu_country' => array(
                    
'core.admincp_menu_country_manager' => 'admincp.core.country',
                    
'core.admincp_menu_country_add' => 'admincp.core.country.add',
                    
'core.admincp_menu_country_child_add' => 'admincp.core.country.child.add',
                    
'core.admincp_menu_country_import' => 'admincp.core.country.import'
                
),
                
'core.admincp_menu_online' => array(
                    
'core.admincp_menu_online_members' => 'admincp.user.browse.view_online',
                    
'core.admincp_menu_online_guests' => 'admincp.core.online-guest'
                
),
                
'admincp.sql' => array(
                    
'admincp.sql_maintenance' => 'admincp.sql',
                    
'admincp.sql_backup' => 'admincp.sql.backup',
                    
'admincp.alter_title_fields' => 'admincp.sql.title'
                
),
                
'core.currency' => array(
                    
'core.currency_manager' => 'admincp.core.currency',
                    
'core.add_currency' => 'admincp.core.currency.add'
                
),
                
'admincp.seo' => array(
                    
'admincp.custom_meta_tags' => 'admincp.seo.meta',
                    
'admincp.nofollow_urls' => 'admincp.seo.nofollow'
                
)
            )
        );
        
        if (!
Phpfox::isModule('mail'))
        {
            unset(
$aMenus['admincp.tools']['admincp.mail_messages']);
        }
        if (!
Phpfox::getUserParam('mail.can_read_private_messages'))
        {
            unset(
$aMenus['admincp.tools']['admincp.mail_messages']['admincp.view_messages']);
            if (empty(
$aMenus['admincp.tools']['admincp.mail_messages']))
            {
                unset(
$aMenus['admincp.tools']['admincp.mail_messages']);
            }
        }
        
        if (!
Phpfox::getUserParam('admincp.can_add_new_block'))
        {
            unset(
$aMenus['admincp.cms']['admincp.blocks']['admincp.add_new_block']);
        }                
        
        if (
Phpfox::isModule('custom'))
        {
            
$aMenus['admincp.users']['custom.admincp_custom_fields'] = array(
                
'custom.admin_menu_add_custom_field' => 'admincp.custom.add',
                
'custom.admin_menu_manage_custom_fields' => 'admincp.custom',
                
'custom.admin_menu_add_custom_group' => 'admincp.custom.group.add',
                
'custom.admin_menu_manage_relationships' => 'admincp.custom.relationships'
            
);
        }

        if (
Phpfox::isModule('emoticon'))
        {
            
$aMenus['admincp.extensions']['emoticon.emoticons'] = array(
                
'admincp.menu_tools_emoticon_package' => 'admincp.emoticon.package',
                
'admincp.menu_tools_emoticon_package_add' => 'admincp.emoticon.package.add',
                
'admincp.menu_tools_emoticon_add' => 'admincp.emoticon.add',
                
'emoticon.import_export_emoticon' => 'admincp.emoticon.file'
            
);                
        }
        
        if (
Phpfox::isModule('attachment.admincp_attachment_menu'))
        {
            
$aMenus['admincp.extensions']['attachment.admincp_attachment_menu'] = array(
                
'attachment.admincp_menu_attachment_types' => 'admincp.attachment',
                
'attachment.admincp_menu_attachment_add' => 'admincp.attachment.add'
            
);
        }
        
        if (!
Phpfox::getParam('core.branding'))
        {
            
$aMenus['admincp.settings']['core.phpfox_branding_removal'] = 'admincp.core.branding';    
        }
        
        if (
Phpfox::getParam('core.phpfox_is_hosted'))
        {
            unset(
$aMenus['admincp.extensions']['admincp.module']);
            unset(
$aMenus['admincp.extensions']['admincp.products']['admincp.create_new_product']);
            unset(
$aMenus['admincp.extensions']['admincp.products']['admincp.import_export']);
            unset(
$aMenus['admincp.extensions']['admincp.plugin']);
            unset(
$aMenus['admincp.extensions']['admincp.language']['language.import_language_pack']);
            unset(
$aMenus['admincp.extensions']['admincp.theme']['theme.create_a_new_template']);
            unset(
$aMenus['admincp.extensions']['admincp.theme']['theme.admincp_create_css_file']);
            unset(
$aMenus['admincp.extensions']['admincp.theme']['theme.admincp_menu_import_themes']);
            unset(
$aMenus['admincp.extensions']['admincp.theme']['theme.admincp_menu_import_styles']);
            unset(
$aMenus['admincp.extensions']['emoticon.emoticons']['emoticon.import_export_emoticon']);
            unset(
$aMenus['admincp.settings']['admincp.system_settings_menu']['admincp.add_new_setting']);
            unset(
$aMenus['admincp.settings']['admincp.system_settings_menu']['admincp.add_new_setting_group']);
        }        
        
        ((
$sPlugin Phpfox_Plugin::get('admincp.component_controller_index_process_menu')) ? eval($sPlugin) : false);
                
        
$aUser Phpfox::getUserBy();
        
$aUser['full_name'] = substr($aUser['full_name'], 0Phpfox::getParam('user.maximum_length_for_full_name'));
        
        
$this->template()->assign(array(
                        
'aModulesMenu' => $aModules,
                        
'aAdminMenus' => $aMenus,                        
                        
'aUserDetails' => $aUser,
                        
'sPhpfoxVersion' => PhpFox::getVersion(),
                        
'sSiteTitle' => Phpfox::getParam('core.site_title')
                    )
                )->
setHeader(array(
                    
'menu.css' => 'style_css',        
                    
"<!--[if IE]nttt<link rel="stylesheet" href="" . $this->template()->getStyle('css') . "ie.css">nttt<script type="text/javascript">ntttt window.mlrunShim = true;nttt</script>ntt<![endif]-->",
                    
'menu.js' => 'style_script',
                    
"<!--[if lt IE 7]>nttt<link rel="stylesheet" href="" . $this->template()->getStyle('css') . "ie6.css">ntt<![endif]-->",
                    
"<!--[if IE 6]>nttt<script type="text/javascript" src="" . Phpfox::getParam('core.url_static_script') . "admin_ie6.js"></script>ntt<![endif]-->",
                    
'admin.js' => 'static_script'
                
)
            )->
setTitle(Phpfox::getPhrase('admincp.admin_cp'));        
        
        if (
$bPass)
        {        
            
Phpfox::getLib('module')->setController($this->_sModule '.' $this->_sController);            
            
            
$sMenuController str_replace(array('.index''.phrase'), '''admincp.' . ($this->_sModule != 'admincp' $this->_sModule '.' str_replace('admincp.'''$this->_sController) : $this->_sController));
            
$aCachedSubMenus = array();
            
$sActiveSideBar '';
            
            if (
$sMenuController == 'admincp.setting.edit')
            {
                
$sMenuController 'admincp.setting';
            }
            
            if (
$this->_getMenuName() !== null)
            {
                
$sMenuController $this->_getMenuName();
            }            
            
            foreach (
$aMenus as $sKey => $aSubMenus)
            {
                if (
is_array($aSubMenus))
                {
                    foreach (
$aSubMenus as $sSubkey => $mSubMenus)
                    {                    
                        if (
is_array($mSubMenus))
                        {
                            foreach (
$mSubMenus as $sSubkey2 => $mSubMenus2)
                            {
                                if (
$sMenuController == $mSubMenus2)
                                {
                                    
$sActiveSideBar $sSubkey;
                                    
                                    foreach (
$aSubMenus as $sSubkey3 => $mSubMenus3)
                                    {
                                        if (
is_array($mSubMenus3))
                                        {
                                            
$aCachedSubMenus[$sSubkey3] = $mSubMenus3;
                                        }
                                        else 
                                        {
                                            
$aCachedSubMenus[$sKey][$sSubkey3] = $mSubMenus3;
                                        }
                                    }
                                }
                            }
                        }
                        else 
                        {
                            if (
$sMenuController == $mSubMenus)
                            {
                                
$sActiveSideBar $sKey;    
                                
                                foreach (
$aSubMenus as $sSubkey3 => $mSubMenus3)
                                {
                                    if (
is_array($mSubMenus3))
                                    {
                                        
$aCachedSubMenus[$sSubkey3] = $mSubMenus3;
                                    }
                                    else 
                                    {
                                        
$aCachedSubMenus[$sKey][$sSubkey3] = $mSubMenus3;
                                    }
                                }
                            }
                        }
                    }
                }
            }                
            
            
$bIsModuleConnection false;
            if (!
$aCachedSubMenus)
            {            
                
$bIsModuleConnection true;
                
$sActiveSideBar $this->_sModule;
                foreach (
$aModules as $aModule)
                {
                    if (!
$aModule['is_menu'])
                    {
                        continue;
                    }
                    
                    if (!
is_array($aModule['menu']))
                    {
                        continue;
                    }
                    
                    foreach (
$aModule['menu'] as $sPhrase => $aLink)
                    {
                        
$aCachedSubMenus[$aModule['module_id']][$sPhrase] = 'admincp.' str_replace('/''.'$aLink['url']);
                    }                
                }            
            }            
            
            
$this->template()->assign(array(
                    
'aCachedSubMenus' => $aCachedSubMenus,
                    
'sActiveSideBar' => $sActiveSideBar,
                    
'bIsModuleConnection' => $bIsModuleConnection,
                    
'sMenuController' => $sMenuController,
                    
'aActiveMenus' => (($bIsModuleConnection && isset($aCachedSubMenus[$sActiveSideBar])) ? $aCachedSubMenus[$sActiveSideBar] : array())
                )
            );                
        }
        else 
        {
            if (
$this->_sModule != Phpfox::getParam('admincp.admin_cp'))
            {
                
Phpfox::getLib('module')->setController('error.404');        
            }
            else 
            {
                
Phpfox::getService('admincp')->check();        
                
/*
                define('PHPFOX_CAN_MOVE_BLOCKS', true);
                
                $this->template()->setHeader('cache', array(                                                    
                            'sort.js' => 'module_theme',
                            'design.js' => 'module_theme',            
                            'jquery/ui.js' => 'static_script',
                        )
                    )
                    ->setHeader(array(    
                        '<script type="text/javascript">function designOnUpdate() { $Core.design.updateSorting(); }</script>',
                        '<script type="text/javascript">$Core.design.init({type_id: 'admincp'});</script>'
                    )
                );                        
                
                Phpfox::getLib('module')->setCacheBlockData(array(
                        'table' => 'admincp_dashboard',
                        'field' => 'user_id',
                        'item_id' => Phpfox::getUserId(),
                        'controller' => 'admincp.index'
                    )
                );                
                 */
                
                
$this->template()->setBreadcrumb(Phpfox::getPhrase('admincp.dashboard'))
                    ->
setTitle(Phpfox::getPhrase('admincp.dashboard'))
                    ->
assign(array(
                        
'bIsModuleConnection' => false,
                        
'bIsDashboard' => true
                    
)
                );
            }
        }    
    }
    
    
/**
     * Garbage collector. Is executed after this class has completed
     * its job and the template has also been displayed.
     */
    
public function clean()
    {
        ((
$sPlugin Phpfox_Plugin::get('admincp.component_controller_index_clean')) ? eval($sPlugin) : false);
    }
}

?>
Онлайн: 1
Реклама