PHP Classes

File: htdocs/modules/system/admin.php

Recommend this page to a friend!
  Classes of Michael Beck   Xoops 2.5   htdocs/modules/system/admin.php   Download  
File: htdocs/modules/system/admin.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Xoops 2.5
Modular content management publication system
Author: By
Last change: non-canonical order

In docblock var tags, use "type variableName" more consistently
Date: 5 years ago
Size: 9,846 bytes
 

Contents

Class file image Download
<?php
/*
 * You may not change or alter any portion of this comment or credits
 * of supporting developers from this source code or any supporting source code
 * which is considered copyrighted (c) material of the original comment or credit authors.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */

/**
 * @copyright XOOPS Project http://xoops.org/
 * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package
 * @since
 * @author XOOPS Development Team, Kazumi Ono (AKA onokazu)
 */

// Include header
include __DIR__ . '/header.php';

if (isset(
$fct) && $fct === 'users') {
   
$xoopsOption['pagetype'] = 'user';
}

$error = false;
if (
$admintest != 0) {
    if (isset(
$fct) && $fct !== '') {
       
$fct = preg_replace("/[^a-z0-9_\-]/i", '', $fct);
        if (
file_exists(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/xoops_version.php')) {
           
// Load language file
           
system_loadLanguage($fct, $xoopsModule->getVar('dirname', 'n'));
           
// Include Configuration file
           
require XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/xoops_version.php';
           
// Get System permission handler
            /* @var XoopsGroupPermHandler $sysperm_handler */
           
$sysperm_handler = xoops_getHandler('groupperm');

           
$category = !empty($modversion['category']) ? (int)$modversion['category'] : 0;
            unset(
$modversion);

            if (
$category > 0) {
               
$group = $xoopsUser->getGroups();
                if (
in_array(XOOPS_GROUP_ADMIN, $group) || false !== $sysperm_handler->checkRight('system_admin', $category, $group, $xoopsModule->getVar('mid'))) {
                    if (
file_exists(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/main.php')) {
                        include_once
XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/main.php';
                    } else {
                       
$error = true;
                    }
                } else {
                   
$error = true;
                }
            } elseif (
$fct === 'version') {
                if (
file_exists(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/version/main.php')) {
                    include_once
XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/version/main.php';
                } else {
                   
$error = true;
                }
            } else {
               
$error = true;
            }
        } else {
           
$error = true;
        }
    } else {
       
$error = true;
    }
}

if (
false !== $error) {
   
$op = system_CleanVars($_REQUEST, 'op', '', 'string');
    if (
$op === 'system_activate') {
       
$part = system_CleanVars($_REQUEST, 'type', '', 'string');
       
/* @var XoopsConfigHandler $config_handler */
       
$config_handler = xoops_getHandler('config');

       
$criteria = new Criteria('conf_name', 'active_' . $part);
       
$configs = $config_handler->getConfigs($criteria);
        foreach (
$configs as $conf) {
            if (
$conf->getVar('conf_name') === 'active_' . $part) {
               
$conf->setVar('conf_value', !$conf->getVar('conf_value'));
               
$config_handler->insertConfig($conf);
            }
        }
        exit;
    }
   
// Define main template
   
$GLOBALS['xoopsOption']['template_main'] = 'system_index.tpl';
   
xoops_cp_header();
   
// Define Stylesheet
   
$xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css');
   
// Define scripts
   
$xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js');
   
$xoTheme->addScript('modules/system/js/admin.js');
   
// Define Breadcrumb and tips
   
$xoBreadCrumb->addLink(_AM_SYSTEM_CONFIG);
   
$xoBreadCrumb->addTips(_AM_SYSTEM_TIPS_MAIN);
   
$xoBreadCrumb->render();
   
$groups = $xoopsUser->getGroups();
   
$all_ok = false;
    if (!
in_array(XOOPS_GROUP_ADMIN, $groups)) {
       
$sysperm_handler = xoops_getHandler('groupperm');
       
$ok_syscats = $sysperm_handler->getItemIds('system_admin', $groups);
    } else {
       
$all_ok = true;
    }

   
xoops_load('xoopslists');

   
$admin_dir = XOOPS_ROOT_PATH . '/modules/system/admin';
   
$dirlist = XoopsLists::getDirListAsArray($admin_dir);
   
$inactive_section = array('blocksadmin', 'groups', 'modulesadmin', 'preferences', 'tplsets');
    foreach (
$dirlist as $directory) {
        if (
file_exists($admin_dir . '/' . $directory . '/xoops_version.php')) {
            require
$admin_dir . '/' . $directory . '/xoops_version.php';

            if (
$modversion['hasAdmin']) {
                if (
xoops_getModuleOption('active_' . $directory, 'system')) {
                   
$category = isset($modversion['category']) ? (int)$modversion['category'] : 0;
                    if (
false !== $all_ok || in_array($modversion['category'], $ok_syscats)) {
                       
$menu['file'] = $directory;
                       
$menu['title'] = trim($modversion['name']);
                       
$menu['desc'] = str_replace('<br>', ' ', $modversion['description']);
                       
$menu['icon'] = $modversion['image'];
                       
$menu['status'] = true;
                    }
                } else {
                   
$category = isset($modversion['category']) ? (int)$modversion['category'] : 0;
                    if (
false !== $all_ok || in_array($modversion['category'], $ok_syscats)) {
                       
$menu['file'] = $directory;
                       
$menu['title'] = trim($modversion['name']);
                       
$menu['desc'] = str_replace('<br>', ' ', $modversion['description']);
                       
$menu['icon'] = $modversion['image'];
                       
$menu['status'] = false;
                    }
                }
                if (!
in_array($directory, $inactive_section)) {
                   
$menu['used'] = true;
                }
                if (
false !== $all_ok || in_array($modversion['category'], $ok_syscats)) {
                    switch (
$directory) {
                        case
'avatars':
                           
/* @var SystemAvatarHandler $avatar_handler */
                           
$avatar_handler = xoops_getHandler('avatar');
                           
$avatar = $avatar_handler->getCount();
                           
$menu['infos'] = sprintf(_AM_SYSTEM_AVATAR_INFO, $avatar);
                            break;
                        case
'banners':
                           
/* @var SystemBannerHandler $banner_handler */
                           
$banner_handler = xoops_getModuleHandler('banner', 'system');
                           
$banner = $banner_handler->getCount();
                           
$menu['infos'] = sprintf(_AM_SYSTEM_BANNER_INFO, $banner);
                            break;
                        case
'comments':
                           
/* @var XoopsCommentHandler $comment_handler */
                           
$comment_handler = xoops_getHandler('comment');
                           
$comment = $comment_handler->getCount();
                           
$menu['infos'] = sprintf(_AM_SYSTEM_COMMENT_INFO, $comment);
                            break;
                        case
'groups':
                           
/* @var XoopsMembershipHandler $groups_Handler */
                           
$groups_Handler = xoops_getModuleHandler('group', 'system');
                           
$groups = $groups_Handler->getCount();
                           
$menu['infos'] = sprintf(_AM_SYSTEM_GROUP_INFO, $groups);
                            break;
                        case
'images':
                           
/* @var XoopsImageHandler $imgcat_handler */
                           
$imgcat_handler = xoops_getHandler('image');
                           
$img = $imgcat_handler->getCount();
                           
$menu['infos'] = sprintf(_AM_SYSTEM_IMG_INFO, $img);
                            break;
                        case
'smilies':
                           
/* @var SystemsmiliesHandler $smilies_Handler */
                           
$smilies_Handler = xoops_getModuleHandler('smilies', 'system');
                           
$smilies = $smilies_Handler->getCount();
                           
$menu['infos'] = sprintf(_AM_SYSTEM_SMILIES_INFO, $smilies);
                            break;
                        case
'userrank':
                           
/* @var SystemUserrankHandler $userrank_Handler */
                           
$userrank_Handler = xoops_getModuleHandler('userrank', 'system');
                           
$userrank = $userrank_Handler->getCount();
                           
$menu['infos'] = sprintf(_AM_SYSTEM_RANKS_INFO, $userrank);
                            break;
                        case
'users':
                           
/* @var SystemUsersHandler $member_handler */
                           
$member_handler = xoops_getModuleHandler('users', 'system');
                           
$member = $member_handler->getCount();
                           
$menu['infos'] = sprintf(_AM_SYSTEM_USERS_INFO, $member);
                            break;
                    }
                }
               
$xoopsTpl->append_by_ref('menu', $menu);
                unset(
$menu);
            }
            unset(
$modversion);
        }
    }
    unset(
$dirlist);
   
xoops_cp_footer();
}