PHP Classes

File: drives.php

Recommend this page to a friend!
  Classes of ASCOOS CMS   Drives Info   drives.php   Download  
File: drives.php
Role: Auxiliary script
Content type: text/plain
Description: Implementation script
Class: Drives Info
Display the size and free space of disk drives
Author: By
Last change:
Date: 18 days ago
Size: 4,687 bytes
 

Contents

Class file image Download
<?php
/**
 * @package : Disk Drives Informations
 * @source : /drives-info/drives.php
 * @version : 1.0.0
 * @created : 2024-11-27 07:00:00 UTC+3
 * @updated :
 * @author : Drogidis Christos
 * @authorSite : www.alexsoft.gr
 * @license : AGL-F
 *
 * @since PHP 8.2.0
 */
declare(strict_types=1);
//require_once "[YOUR ROOT SITE PATH]/afw/autoload.php";
//require_once "../afw/autoload.php";

require_once "libs/functions.php";



use
ASCOOS\FRAMEWORK\Kernel\Core\TError;
use
ASCOOS\FRAMEWORK\Kernel\Disks\TDriveInfo;
 
$script_path = str_replace('\\', '/', __DIR__);

// It contains a table with the block settings.
$conf = require "$script_path/conf/config.php";

// It contains a table with the texts in the selected language.
$lang = require "$script_path/langs/".$conf['lang'].".php";

// Contains a table with error messages in the selected language.
$errors = require "$script_path/langs/".$conf['lang'].".error.php";

$user = null; // OR User. If null, in Linux = /home/

try {
   
$objDriveInfo = new TDriveInfo; //
   
$objDriveInfo->setUser($user); // Set user. If null, in Linux = /home/ else /home/$user
   
$info = $objDriveInfo->execute(); // Execute and return Drives data
   
$dsizes = $objDriveInfo->getDrivesSize(); // ????????? ???? ?????? ??? ???????? ?? ?????? ??? ??????.
} catch (TError $e) {
    echo
$e; // Display Error Message
   
$e->Free($e); // Free memory for object $e<TError>
} finally {
   
$objDriveInfo->Free($objDriveInfo); // Free memory for object $objDriveInfo<TDriveInfo>
}
   

$text = '';
$text .= '<div class="block-drives-info-'.$conf['theme'].'">';
if (
$conf['show_title']) {
   
$text .= '<div class="header"><h3>'.$lang['title'].'</h3></div><div class="clear"></div>';
}

$text .= '<div class="text"><div class="table">';

$text .= '<div class="th">';
$text .= '<div class="cell">'.$lang['title_drives'].'</div>';
if (
$conf['show_total_size']) $text .= '<div class="cell right">'.$lang['total_size'].'</div>';
$text .= '</div>'; // row

//print_r($dsizes);

foreach ($info as $drive => $sizes) {
    if (
is_array($sizes)) {
        if (
strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
           
$type = $lang['drive'].' ';
           
$text2 = $errors['NotValidDisk'];
        } else {
           
$type = $lang['directory'].' ';
           
$text2 = $errors['NotValidDirectory'];
        }
       

       
$free_percentage = (int) (($dsizes[$drive]['free'] / $dsizes[$drive]['total']) * 100);
       
$text_percentage = ' (Free : '.$free_percentage.'%)';
       
$disk_icon = GetPercentageIcon($free_percentage);

       
$text .= '<div class="row">';
       
$text .= '<div class="cell"><details><summary>'.$disk_icon.$type.'<b>'.$drive.'</b>'.$text_percentage.'</summary>';
       
$text .= '<div class="row"><div class="cell">'.$lang['used_space'].'</div><div class="cell right">'.$sizes['used'].'</div></div>';
       
$text .= '<div class="row"><div class="cell">'.$lang['free_space'].'</div><div class="cell right">'.$sizes['free'].'</div></div>';
       
$text .= '</details></div>'; // details
       
if ($conf['show_total_size']) $text .= '<div class="cell right">'.$sizes['total'].'</div>';
       
$text .= '</div>'; // row
   
} else { // Error Data
       
$free_percentage = -1;
       
$text_percentage = $errors['NoFoundData'];
       
$disk_icon = GetPercentageIcon($free_percentage);

       
$text .= '<div class="row">';
       
$text .= '<div class="cell"><details><summary>'.$disk_icon.$type.'<b>'.$drive.'</b>'.$text_percentage.'</summary>';
       
$text .= '<div class="row"><div class="cell">'.$text2.'</div>';
       
$text .= '</details></div>'; // details
       
if ($conf['show_total_size']) $text .= '<div class="cell right"> ----- </div>';
       
$text .= '</div>'; // row
   
}
}

$text .= '</div></div>'; // table/text
$text .= '<div class="more"><a target="_blank" href="https://extensions.ascoos.com/"><strong>...'.$lang['more'].'</strong></a></div>';
$text .= '</div>'; // block
echo $text;
?>

<script type="text/javascript">
$(document).ready(function() {
    $('head').append('<link rel="stylesheet" type="text/css" href="<?php echo 'themes/'.$conf['theme'].'/theme.css';?>">');
    $('details').on('toggle', function() {
        if (this.open) {
            $(this).find('summary').addClass('open');
        } else {
            $(this).find('summary').removeClass('open');
        }
    });
});
</script>