XoopsModules25x/mylinks

View on GitHub
include/oninstall.inc.php

Summary

Maintainability
A
3 hrs
Test Coverage
<?php
/**
 * Mylinks install functions.php
 *
 * LICENSE
 *
 * 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.
 *
 * @copyright:: {@link http://xoops.org/ XOOPS Project}
 * @license  ::    {@link http://www.gnu.org/licenses/gpl-2.0.html GNU Public License}
 * @package  ::   mylinks
 * @author   ::    zyspec (owners@zyspec.com)
 */

$moduleDirName = basename(dirname(__DIR__));

/**
 * @param $xoopsModule
 * @return bool
 */
function xoops_module_pre_install_mylinks_base(&$xoopsModule)
{
    global $xoopsDB;
    $retVal = true;

    $minPHPVersion   = $xoopsModule->getInfo('min_php');
    $minSQLVersion   = $xoopsModule->getInfo('min_sql');
    $minXoopsVersion = $xoopsModule->getInfo('min_xoops');

    /*
     * Error Messages
     */
    $phpErrMsg   = "<span style='color: red; font-weight: bold;'>YOUR PHP VERSION MUST BE UPGRADED TO AT LEAST VERSION {$minPHPVersion} TO USE THIS MODULE</span>";
    $mysqlErrMsg = "<span style='color: red; font-weight: bold;'>YOUR MYSQL DATABASE VERSION MUST BE UPGRADED TO AT LEAST VERSION {$minSQLVersion} TO USE THIS MODULE</span>";
    $xoopsErrMsg = "<span style='color: red; font-weight: bold;'>YOUR XOOPS VERSION MUST BE UPGRADED TO AT LEAST VERSION {$minXoopsVersion} TO USE THIS MODULE</span>";

    // Check if PHP version is supported
    if (version_compare(PHP_VERSION, $minPHPVersion) < 0) {
        $retVal = false;
        $xoopsModule->setErrors($phpErrMsg);
    } else {
        // Check if MySQL version is supported
        $minSQLSupported = explode('.', $minSQLVersion);
        $sql             = $xoopsDB->query('SELECT version() AS sqlver');
        $result          = $xoopsDB->fetchObject($sql);
        $currSQLVer      = $result->sqlver;
        $sqlVerArray     = explode('.', $currSQLVer);
        $sqlVerArray     = array_map('intval', $sqlVerArray); //strip off non-integer revision chars

        if ($sqlVerArray[0] < $minSQLSupported[0]) {
            $retVal = false;
            $xoopsModule->setErrors($mysqlErrMsg);
        } elseif ($sqlVerArray[0] == $minSQLSupported[0]) {
            if ($sqlVerArray[1] < $minSQLSupported[1]) {
                $retVal = false;
                $xoopsModule->setErrors($mysqlErrMsg);
            } elseif (($sqlVerArray[1] == $minSQLSupported[1]) && ($sqlVerArray[2] < $minSQLSupported[2])) {
                $retVal = false;
                $xoopsModule->setErrors($mysqlErrMsg);
            }
        }

        if ($retVal) {
            // Check if this XOOPS version is supported
            $curXoopsVersion     = substr(XOOPS_VERSION, 6);
            if (version_compare($curXoopsVersion, $minXoopsVersion, '<')) {
                $retVal = false;
                $xoopsModule->setErrors(sprintf($xoopsErrMsg, $minXoopsVersion, $curXoopsVersion));
            }
        }
    }

    return $retVal;
}

/**
 * @param $xoopsModule
 * @return bool
 */
function xoops_module_install_mylinks_base(&$xoopsModule)
{
    return true;
}

/**
 * eval functions to support module relocation (directory renaming)
 */
eval('function xoops_module_install_' . $moduleDirName . '(&$module=NULL)
        {
        return xoops_module_install_mylinks_base($module);
        }
    ');
eval('function xoops_module_pre_install_' . $moduleDirName . '(&$module=NULL)
        {
        return xoops_module_pre_install_mylinks_base($module);
        }
    ');