PHP Classes

File: include/action.module.php

Recommend this page to a friend!
  Classes of Michael Beck   XOOPS PHP About Page   include/action.module.php   Download  
File: include/action.module.php
Role: Example script
Content type: text/plain
Description: Example script
Class: XOOPS PHP About Page
Show the about page in a site managed using XOOPS
Author: By
Last change:
Date: 2 years ago
Size: 5,993 bytes
 

Contents

Class file image Download
<?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;
}