XoopsModules25x/xoopsinfo

View on GitHub
modules/xoopsinfo/admin/main.php

Summary

Maintainability
B
7 hrs
Test Coverage
<?php

declare(strict_types=1);

/**
 * XOOPS - PHP Content Management System
 * Copyright (c) 2001 - 2006 <http://www.xoops.org/>
 *
 * Module: xoopsinfo 2.0
 * Licence : GPL
 * Authors :
 *              - Jmorris
 *              - Marco
 *              - Christian
 *              - DuGris (http://www.dugris.info)
 */
$op       = isset($_REQUEST['op']) ? trim($_REQUEST['op']) : '';
$conf_ids = $_REQUEST['conf_ids'] ?? '';

global $xoopsDB, $xoopsConfig, $xoopsModule;
include('admin_header.php');

switch ($op) {
    case 'save':
        if ('POST' === $_SERVER['REQUEST_METHOD']) {
            $config_handler = xoops_getHandler('config');

            foreach ($conf_ids as $key => $conf_id) {
                $config = $config_handler->getConfig($conf_id, true);

                $new_value = $_REQUEST[$config->getVar('conf_name')];

                if (is_array($new_value) || $new_value != $config->getVar('conf_value')) {
                    $config->setConfValueForInput($new_value);

                    $config_handler->insertConfig($config);

                    if ('theme_set' === $config->getVar('conf_name')) {
                        $member_handler = xoops_getHandler('member');

                        $member_handler->updateUsersByField('theme', $new_value);

                        $_SESSION['xoopsUserTheme'] = $new_value;
                    }
                }
            }

            redirect_header(XOOPSINFO_ADMIN_URL, 3, _MD_AM_DBUPDATED);

            exit();
        }

        break;
    case 'newversion':
        xoops_cp_header();
        //        adminmenu(-1);
        XoopsInfo_GetLastVersion();
        xoops_cp_footer();

        exit();
        break;
}

xoops_cp_header();
$indexAdmin = new ModuleAdmin();
echo $indexAdmin->addNavigation(basename(__FILE__));
//adminmenu(0);

// ------------------------ //
//MySql version                 //
// ------------------------ //

//$GLOBALS['xoopsDB']->getServerVersion
$result = $GLOBALS['xoopsDB']->query('SELECT VERSION()');
[$mysql_version] = $GLOBALS['xoopsDB']->fetchRow($result);
$GLOBALS['xoopsDB']->freeRecordSet($result);

// ------------------------ //
// Safe mode                     //
// ------------------------ //
if (ini_get('safe_mode')) {
    $safemode = '<img src="../images/icons/off.gif" align="absmiddle" alt="' . _AM_XI_DOWN_OFF . '" /><b> ' . _AM_XI_DOWN_SAFEMODEPROBLEMS . '</b>';
} else {
    $safemode = '<img src="../images/icons/on.gif" align="absmiddle" alt="' . _AM_XI_DOWN_ON . '" />';
}

// ------------------------ //
// Register globals             //
// ------------------------ //
if (ini_get('register_globals')) {
    $registerglobals = '<img src="../images/icons/off.gif" align="absmiddle" alt="' . _AM_XI_DOWN_OFF . '" />' . _AM_XI_DOWN_SAFEMODEPROBLEMS;
} else {
    $registerglobals = '<img src="../images/icons/on.gif" align="absmiddle" alt="' . _AM_XI_DOWN_ON . '" />';
}

// ------------------------ //
// allow_url_fopen             //
// ------------------------ //
if (ini_get('allow_url_fopen')) {
    $allow_url_fopen = '<img src="../images/icons/off.gif" align="absmiddle" alt="' . _AM_XI_DOWN_OFF . '" />' . _AM_XI_DOWN_SAFEMODEPROBLEMS;
} else {
    $allow_url_fopen = '<img src="../images/icons/on.gif" align="absmiddle" alt="' . _AM_XI_DOWN_ON . '" />';
}

// ------------------------ //
// session.use_trans_sid     //
// ------------------------ //
if (ini_get('session.use_trans_sid')) {
    $use_trans_sid = '<img src="../images/icons/off.gif" align="absmiddle" alt="' . _AM_XI_DOWN_OFF . '" />' . _AM_XI_DOWN_SAFEMODEPROBLEMS;
} else {
    $use_trans_sid = '<img src="../images/icons/on.gif" align="absmiddle" alt="' . _AM_XI_DOWN_ON . '" />';
}

// ------------------------ //
// Support librairie GD         //
// ------------------------ //
$gdversion = '';
if (function_exists('gd_info')) {
    if (true == $gdlib = gd_info()) {
        $gdversion = $gdlib['GD Version'];
    }

    $gdlib = '<img src="../images/icons/on.gif" align="absmiddle" alt="' . _AM_XI_DOWN_GDON . '"/><b> ' . $gdversion . '</b>' . _AM_XI_DOWN_GDON;
} else {
    $gdlib = '<img src="../images/icons/off.gif" align="absmiddle" alt="' . _AM_XI_DOWN_GDOFF . '" /><b> ' . $gdversion . '</n>' . _AM_XI_DOWN_GDOFF;
}

// ------------------------ //
// downloads status             //
// ------------------------ //
if (ini_get('file_uploads')) {
    $downloads = '<img src="../images/icons/on.gif" align="absmiddle" alt="' . _AM_XI_DOWN_ON . '" />';
} else {
    $downloads = '<img src="../images/icons/off.gif" align="absmiddle" alt="' . _AM_XI_DOWN_OFF . '" />';
}

// ------------------------ //
// protector status             //
// ------------------------ //
if (XoopsInfo_getModuleInfo('protector')) {
    $protector = '<img src="../images/icons/on.gif" align="absmiddle" alt="' . _AM_XI_PROTECTOR_MODULE_OK . '"/>';
} else {
    $protector = '<img src="../images/icons/off.gif" align="absmiddle" alt="' . _AM_XI_PROTECTOR_MODULE_NOT . '" />';
}
if (defined('PROTECTOR_PRECHECK_INCLUDED')) {
    $precheck = '<img src="../images/icons/on.gif" align="absmiddle" alt=""/>';
} else {
    $precheck = '<img src="../images/icons/off.gif" align="absmiddle" alt="' . _AM_XI_PROTECTOR_PRECHECK_MSG . '" />' . _AM_XI_PROTECTOR_CHECK_ERR;
}
if (defined('PROTECTOR_POSTCHECK_INCLUDED')) {
    $postcheck = '<img src="../images/icons/on.gif" align="absmiddle" alt=""/>';
} else {
    $postcheck = '<img src="../images/icons/off.gif" align="absmiddle" alt="' . _AM_XI_PROTECTOR_POSTCHECK_MSG . '" />' . _AM_XI_PROTECTOR_CHECK_ERR;
}

// ---------------------------- //
// Form startpage mode              //
// ---------------------------- //
$sql = 'SELECT conf_id FROM ' . $xoopsDB->prefix('config') . ' WHERE conf_name = "startpage"';
$res = $xoopsDB->query($sql);
[$conf_id] = $xoopsDB->fetchRow($res);

$config_handler   = xoops_getHandler('config');
$config_startpage = $config_handler->getConfig($conf_id, true);

$title          = !defined($config_startpage->getVar('conf_desc')) || '' == constant($config_startpage->getVar('conf_desc')) ? constant($config_startpage->getVar('conf_title')) : constant($config_startpage->getVar('conf_title'))
                                                                                                                                                                                   . '<br><br><span style="font-weight:normal;">'
                                                                                                                                                                                   . constant($config_startpage->getVar('conf_desc')) . '</span>';
$startpage_ele  = new XoopsFormSelect($title, $config_startpage->getVar('conf_name'), $config_startpage->getConfValueForOutput());
$module_handler = xoops_getHandler('module');
$criteria       = new CriteriaCompo(new Criteria('hasmain', 1));
$criteria->add(new Criteria('isactive', 1));
$moduleslist       = $module_handler->getList($criteria, true);
$moduleslist['--'] = _MD_AM_NONE;
$startpage_ele->addOptionArray($moduleslist);

$startpage_hidden = new XoopsFormHidden('conf_ids[]', $config_startpage->getVar('conf_id'));

// ------------------------ //
// Form theme mode             //
// ------------------------ //
$sql = 'SELECT conf_id FROM ' . $xoopsDB->prefix('config') . ' WHERE conf_name = "theme_set"';
$res = $xoopsDB->query($sql);
[$conf_id] = $xoopsDB->fetchRow($res);

$config_handler = xoops_getHandler('config');
$config_theme   = $config_handler->getConfig($conf_id, true);

$title
           = !defined($config_theme->getVar('conf_desc')) || '' == constant($config_theme->getVar('conf_desc')) ? constant($config_theme->getVar('conf_title')) : constant($config_theme->getVar('conf_title'))
                                                                                                                                                                  . '<br><br><span style="font-weight:normal;">'
                                                                                                                                                                  . constant($config_theme->getVar('conf_desc')) . '</span>';
$theme_ele = 'theme_multi' !== $config_theme->getVar('conf_formtype') ? new XoopsFormSelect($title, $config_theme->getVar('conf_name'), $config_theme->getConfValueForOutput()) : new XoopsFormSelect($title, $config_theme->getVar('conf_name'),
                                                                                                                                                                                                      $config_theme->getConfValueForOutput(), 5, true);
require_once(XOOPS_ROOT_PATH . '/class/xoopslists.php');
$dirlist = XoopsLists::getThemesList();
if (!empty($dirlist)) {
    asort($dirlist);

    $theme_ele->addOptionArray($dirlist);
}
$theme_hidden = new XoopsFormHidden('conf_ids[]', $config_theme->getVar('conf_id'));

// ------------------------------------ //
// Form theme_fromfile mode                 //
// ------------------------------------ //
$sql = 'SELECT conf_id FROM ' . $xoopsDB->prefix('config') . ' WHERE conf_name = "theme_fromfile"';
$res = $xoopsDB->query($sql);
[$conf_id] = $xoopsDB->fetchRow($res);

$config_handler        = xoops_getHandler('config');
$config_theme_fromfile = $config_handler->getConfig($conf_id, true);

$theme_fromfile_ele = new XoopsFormRadioYN($title, $config_theme_fromfile->getVar('conf_name'), $config_theme_fromfile->getConfValueForOutput(), _YES, _NO);

$theme_fromfile_hidden = new XoopsFormHidden('conf_ids[]', $config_theme_fromfile->getVar('conf_id'));

// ------------------------ //
// Form template mode         //
// ------------------------ //
$sql = 'SELECT conf_id FROM ' . $xoopsDB->prefix('config') . ' WHERE conf_name = "template_set"';
$res = $xoopsDB->query($sql);
[$conf_id] = $xoopsDB->fetchRow($res);

$config_handler = xoops_getHandler('config');
$config_tplset  = $config_handler->getConfig($conf_id, true);

$title          = !defined($config_tplset->getVar('conf_desc')) || '' == constant($config_tplset->getVar('conf_desc')) ? constant($config_tplset->getVar('conf_title')) : constant($config_tplset->getVar('conf_title'))
                                                                                                                                                                          . '<br><br><span style="font-weight:normal;">'
                                                                                                                                                                          . constant($config_tplset->getVar('conf_desc')) . '</span>';
$tplset_ele     = new XoopsFormSelect($title, $config_tplset->getVar('conf_name'), $config_tplset->getConfValueForOutput());
$tplset_handler = xoops_getHandler('tplset');
$tplsetlist     = $tplset_handler->getList();
asort($tplsetlist);
foreach ($tplsetlist as $key => $name) {
    $tplset_ele->addOption($key, $name);
}

$tplset_hidden = new XoopsFormHidden('conf_ids[]', $config_tplset->getVar('conf_id'));

// ------------------------ //
// Form Debug mode             //
// ------------------------ //
$sql = 'SELECT conf_id FROM ' . $xoopsDB->prefix('config') . ' WHERE conf_name = "debug_mode"';
$res = $xoopsDB->query($sql);
[$conf_id] = $xoopsDB->fetchRow($res);

$config_handler = xoops_getHandler('config');
$config_debug   = $config_handler->getConfig($conf_id, true);

$title
    = !defined($config_debug->getVar('conf_desc')) || '' == constant($config_debug->getVar('conf_desc')) ? constant($config_debug->getVar('conf_title')) : constant($config_debug->getVar('conf_title')) . '<br><br><span style="font-weight:normal;">'
                                                                                                                                                           . constant($config_debug->getVar('conf_desc')) . '</span>';
if ('2.2' == mb_substr(XOOPS_VERSION, 6, 3)) {
    $debug_ele = new XoopsFormSelect($title, $config_debug->getVar('conf_name'), $config_debug->getConfValueForOutput(), 5, true);
} else {
    $debug_ele = new XoopsFormSelect($title, $config_debug->getVar('conf_name'), $config_debug->getConfValueForOutput());
}
$options = $config_handler->getConfigOptions(new Criteria('conf_id', $config_debug->getVar('conf_id')));
$opcount = count($options);
for ($j = 0; $j < $opcount; $j++) {
    $optval = defined($options[$j]->getVar('confop_value')) ? constant($options[$j]->getVar('confop_value')) : $options[$j]->getVar('confop_value');

    $optkey = defined($options[$j]->getVar('confop_name')) ? constant($options[$j]->getVar('confop_name')) : $options[$j]->getVar('confop_name');

    $debug_ele->addOption($optval, $optkey);
}

$debug_hidden = new XoopsFormHidden('conf_ids[]', $config_debug->getVar('conf_id'));

// ---------------------------- //
// Form Protector                      //
// ---------------------------- //
$isProtector = XoopsInfo_getModuleInfo('protector');
if ($isProtector) {
    $sql = 'SELECT conf_id FROM ' . $xoopsDB->prefix('config') . ' WHERE conf_name = "global_disabled" AND conf_modid=' . $isProtector->getVar('mid');

    $res = $xoopsDB->query($sql);

    [$conf_id] = $xoopsDB->fetchRow($res);

    $config_handler = xoops_getHandler('config');

    $config_protector = $config_handler->getConfig($conf_id, true);

    $protector_ele = new XoopsFormRadioYN($title, $config_protector->getVar('conf_name'), $config_protector->getConfValueForOutput(), _YES, _NO);

    $protector_hidden = new XoopsFormHidden('conf_ids[]', $config_protector->getVar('conf_id'));
}

// ------------------------ //
// Form Save                     //
// ------------------------ //
$button_save      = new XoopsFormButton('', 'submit', _AM_XI_SAVE, 'submit');
$button_go        = new XoopsFormButton('', 'submit', _GO, 'submit');
$tray_save_cancel = new XoopsFormElementTray('', '');
$tray_save_cancel->addElement($button_save);
$hidden = new XoopsFormHidden('op', 'save');

echo '<form action="' . XOOPSINFO_ADMIN_URL . '" method="post"><table width="100%" class="outer">';
echo '<tr>';
echo '<td colspan="2" align="center">';
//admintitle(_AM_XI_ADMENU1);
echo '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_XOOPS_VERSION . '</strong></td>';
echo '<td class="odd">' . XOOPS_VERSION . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even" width="30%"><strong>' . _AM_XI_XOOPS_URL . '</strong></td>';
echo '<td class="odd">' . XOOPS_URL . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even" width="30%"><strong>' . _AM_XI_XOOPS_ROOT_PATH . '</strong></td>';
echo '<td class="odd">' . XOOPS_ROOT_PATH . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_PROTECTOR_MODULE . '</strong></td>';
echo '<td class="odd">' . $protector . '</td>';
echo '</tr>';

if ($isProtector) {
    echo '<tr>';

    echo '<td class="even"><strong>' . _AM_XI_PROTECTOR_PRECHECK . '</strong></td>';

    echo '<td class="odd">' . $precheck . '</td>';

    echo '</tr>';

    echo '<tr>';

    echo '<td class="even"><strong>' . _AM_XI_PROTECTOR_POSTCHECK . '</strong></td>';

    echo '<td class="odd">' . $postcheck . '</td>';

    echo '</tr>';
}

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_XOOPS_STARTPAGE . '</strong></td>';
echo '<td class="odd">' . $startpage_ele->render() . $startpage_hidden->render() . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_XOOPS_THEME . '</strong></td>';
echo '<td class="odd">' . $theme_ele->render() . $theme_hidden->render() . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_XOOPS_THEME_FROMFILE . '</strong></td>';
echo '<td class="odd">' . $theme_fromfile_ele->render() . $theme_fromfile_hidden->render() . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_XOOPS_TEMPLATE . '</strong></td>';
echo '<td class="odd">' . $tplset_ele->render() . $tplset_hidden->render() . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_XOOPS_DEBUG . '</strong></td>';
echo '<td class="odd">' . $debug_ele->render() . $debug_hidden->render() . '</td>';
echo '</tr>';

if ($isProtector) {
    echo '<tr>';

    echo '<td class="even"><strong>' . _AM_XI_PROTECTOR . '</strong></td>';

    echo '<td class="odd">' . $protector_ele->render() . $protector_hidden->render() . '</td>';

    echo '</tr>';
}

echo '<tr>';
echo '<td class="foot" colspan="2" align="center">' . $tray_save_cancel->render() . $hidden->render() . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td colspan="2" align="center"><hr></td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_SERVER_SOFTWARE . '</strong></td>';
echo '<td class="odd">' . $_SERVER['SERVER_SOFTWARE'] . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_SERVER_PHP . '</strong></td>';
echo '<td class="odd">' . phpversion() . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_SERVER_MYSQL . '</strong></td>';
echo '<td class="odd">' . $mysql_version . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_DOWN_SAFEMODESTATUS . '</strong></td>';
echo '<td class="odd">' . $safemode . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_DOWN_REGISTERGLOBALS . '</strong></td>';
echo '<td class="odd">' . $registerglobals . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_DOWN_ALLOW_URL_FOPEN . '</strong></td>';
echo '<td class="odd">' . $allow_url_fopen . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_DOWN_USE_TRANS_SID . '</strong></td>';
echo '<td class="odd">' . $use_trans_sid . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_DOWN_GDLIBSTATUS . '</strong></td>';
echo '<td class="odd">' . $gdlib . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_DOWN_SERVERUPLOADSTATUS . '</strong></td>';
echo '<td class="odd">' . $downloads . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_DOWN_MAXUPLOADSIZE . '</strong></td>';
echo '<td class="odd"><span style="color: blue;font-weight:bold;">' . ini_get('upload_max_filesize') . '</span></td>';
echo '</tr>';

echo '<tr>';
echo '<td colspan="2" align="center"><hr></td>';
echo '</tr>';

echo '<tr>';
echo '<td class="even"><strong>' . _AM_XI_BROWSER . '</strong></td>';
echo '<td class="odd"><span style="white-space:normal;">' . $_SERVER['HTTP_USER_AGENT'] . '</span></td>';
echo '</tr>';

echo '</table></form>';

//adminfooter();
//xoops_cp_footer();
include_once __DIR__ . '/admin_footer.php';