| 
<?php
 use XoopsModules\About;
 use XoopsModules\About\Helper;
 use XoopsModules\About\Utility;
 
 /** @var Helper $helper */
 /** @var Utility $utility */
 
 defined('XOOPS_ROOT_PATH') || exit('Restricted access');
 
 /**
 * Prepares system prior to attempting to install module
 *
 * @param \XoopsModule $module
 *
 * @return bool       true if ready to install, false if not
 */
 function xoops_module_pre_install_about(\XoopsModule $module)
 {
 require_once dirname(__DIR__) . '/preloads/autoloader.php';
 $utility      = new Utility();
 $xoopsSuccess = $utility::checkVerXoops($module);
 $phpSuccess   = $utility::checkVerPhp($module);
 
 if ($xoopsSuccess && $phpSuccess) {
 $moduleTables = &$module->getInfo('tables');
 foreach ($moduleTables as $table) {
 $GLOBALS['xoopsDB']->queryF('DROP TABLE IF EXISTS ' . $GLOBALS['xoopsDB']->prefix($table) . ';');
 }
 }
 
 return $xoopsSuccess && $phpSuccess;
 }
 
 /**
 * @param \XoopsModule $module
 * @return bool        true if install successful, false if not
 */
 function xoops_module_install_about(\XoopsModule $module)
 {
 $success   = true;
 $data_file = XOOPS_ROOT_PATH . '/modules/about/sql/mysql.about.sql';
 $GLOBALS['xoopsDB']->queryF('SET NAMES utf8');
 if (!$GLOBALS['xoopsDB']->queryFromFile($data_file)) {
 $module->setErrors('Pre-set data was not installed');
 // preset info not set, but don't 'fail' install because of this
 //$success = false;
 }
 
 // Delete files from previous version (if they exist)
 // this is only executed if this version copied over old version without running module update
 $oldFiles = [
 XOOPS_ROOT_PATH . '/modules/' . $module->dirname() . '/include/xoopsformloader.php',
 XOOPS_ROOT_PATH . '/modules/' . $module->dirname() . '/include/blockform.php',
 XOOPS_ROOT_PATH . '/modules/' . $module->dirname() . '/class/utilities.php',
 ];
 foreach ($oldFiles as $file) {
 if (is_file($file)) {
 $delOk = unlink($file);
 if (!$delOk) {
 $module->setErrors(sprintf(_AM_ABOUT_ERROR_BAD_REMOVE, $file));
 } else {
 $module->setErrors(sprintf(_AM_ABOUT_DELETED, $file));
 }
 $success = $success && $delOk;
 }
 }
 // Create uploads folder
 $dirOk = mkdir(XOOPS_UPLOAD_PATH . '/' . $module->dirname());
 if (!$dirOk) {
 $module->setErrors(_AM_ABOUT_ERROR_BAD_UPLOAD_DIR);
 }
 
 return $dirOk && $success;
 }
 
 /**
 * Prepares system prior to attempting to install module
 *
 * @param \XoopsModule $module
 *
 * @return bool       true if ready to install, false if not
 */
 function xoops_module_pre_update_about(\XoopsModule $module)
 {
 $moduleDirName = basename(dirname(__DIR__));
 $helper  = Helper::getInstance();
 $utility = new Utility();
 
 $xoopsSuccess = $utility::checkVerXoops($module);
 $phpSuccess   = $utility::checkVerPhp($module);
 
 return $xoopsSuccess && $phpSuccess;
 }
 
 /**
 * @param XoopsModule $module
 * @param null        $prev_version
 * @return bool        true if update successful, false if not
 */
 function xoops_module_update_about(\XoopsModule $module, $prev_version = null)
 {
 $success = true;
 // Delete files from previous version (if they exist)
 $oldFiles = [
 XOOPS_ROOT_PATH . '/modules/' . $module->dirname() . '/include/xoopsformloader.php',
 XOOPS_ROOT_PATH . '/modules/' . $module->dirname() . '/include/blockform.php',
 XOOPS_ROOT_PATH . '/modules/' . $module->dirname() . '/class/utilities.php',
 ];
 foreach ($oldFiles as $file) {
 if (is_file($file)) {
 if (!$delOk = unlink($file)) {
 $module->setErrors(sprintf(_AM_ABOUT_ERROR_BAD_REMOVE, $file));
 }
 $success = $success && $delOk;
 }
 }
 
 // Delete files from previous version (if they exist)
 // this is only executed if this version copied over old version without running module update
 $oldFiles = [
 XOOPS_PATH . '/modules/' . $module->dirname() . '/include/xoopsformloader.php',
 XOOPS_PATH . '/modules/' . $module->dirname() . '/include/blockform.php',
 ];
 foreach ($oldFiles as $file) {
 if (is_file($file)) {
 if (!$delOk = unlink($file)) {
 $module->setErrors(sprintf(_AM_ABOUT_ERROR_BAD_REMOVE, $file));
 }
 $success = $success && $delOk;
 }
 }
 
 // Create uploads folder if it doesn't exist
 $dirOk = true;
 if (!is_dir(XOOPS_UPLOAD_PATH . '/' . $module->dirname())) {
 // File doesn't exist so try and create it
 $dirOk = mkdir(XOOPS_UPLOAD_PATH . '/' . $module->dirname());
 if (!$dirOk) {
 $module->setErrors(_AM_ABOUT_ERROR_BAD_UPLOAD_DIR);
 }
 }
 
 return $dirOk && $success;
 }
 
 /**
 * Function to complete upon module uninstall
 *
 * @param \XoopsModule $module
 *
 * @return bool       true if successfully executed uninstall of module, false if not
 */
 function xoops_module_uninstall_about(\XoopsModule $module)
 {
 $moduleDirName = $module->dirname();
 $helper  = Helper::getInstance();
 $utility = new Utility();
 
 $success = true;
 $helper->loadLanguage('admin');
 
 //------------------------------------------------------------------
 // Remove module uploads folder (and all subfolders) if they exist
 //------------------------------------------------------------------
 
 $old_directories = [XOOPS_UPLOAD_PATH . "/{$moduleDirName}"];
 foreach ($old_directories as $old_dir) {
 $dirInfo = new \SplFileInfo($old_dir);
 if ($dirInfo->isDir()) {
 // The directory exists so delete it
 if (!$utility::rrmdir($old_dir)) {
 $module->setErrors(sprintf(_AM_ABOUT_ERROR_BAD_DEL_PATH, $old_dir));
 $success = false;
 }
 }
 unset($dirInfo);
 }
 
 return $success;
 }
 
 |