include/oninstall.inc.php
<?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);
}
');