Файл: 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'], 0, Phpfox::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);
}
}
?>