- Adding SM2 panel [SME: 13004] - Upgrade to phpsysinfo 3.4.4 - Add code to delete inline styles and add css to make it look better. - version saved / built uses the static version, which means no drops downs and choices.
77 lines
2.8 KiB
PHP
77 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* DiskLoad Plugin, which displays disks load
|
|
*
|
|
* @category PHP
|
|
* @package PSI_Plugin_DiskLoad
|
|
* @author Mieczyslaw Nalewaj <namiltd@users.sourceforge.net>
|
|
* @copyright 2023 phpSysInfo
|
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version
|
|
* @version $Id: class.diskload.inc.php 661 2023-02-10 09:13:52Z namiltd $
|
|
* @link http://phpsysinfo.sourceforge.net
|
|
*/
|
|
class DiskLoad extends PSI_Plugin
|
|
{
|
|
/**
|
|
* variable, which holds the result before the xml is generated out of this array
|
|
* @var array
|
|
*/
|
|
private $_result;
|
|
|
|
/**
|
|
* read the data into an internal array and also call the parent constructor
|
|
*
|
|
* @param String $enc encoding
|
|
*/
|
|
public function __construct($enc)
|
|
{
|
|
parent::__construct(__CLASS__, $enc);
|
|
|
|
$this->_result = array();
|
|
}
|
|
|
|
/**
|
|
* doing all tasks to get the required informations that the plugin needs
|
|
* result is stored in an internal array
|
|
*
|
|
* @return void
|
|
*/
|
|
public function execute()
|
|
{
|
|
if (((PSI_OS == 'WINNT') && !defined('PSI_EMU_HOSTNAME')) || (defined('PSI_EMU_HOSTNAME') && !defined('PSI_EMU_PORT'))) {
|
|
$diskphys = array();
|
|
$disklogi = array();
|
|
try {
|
|
$wmi = WINNT::getcimv2wmi();
|
|
$diskphys = WINNT::getWMI($wmi, 'Win32_PerfFormattedData_PerfDisk_PhysicalDisk', array('Name', 'PercentIdleTime'));
|
|
$disklogi = WINNT::getWMI($wmi, 'Win32_PerfFormattedData_PerfDisk_LogicalDisk', array('Name', 'PercentIdleTime'));
|
|
|
|
} catch (Exception $e) {
|
|
}
|
|
foreach ($diskphys as $disk_item) if (isset($disk_item['Name']) && (trim($disk_item['Name']) !== '') && (trim($disk_item['Name']) !== '_Total') && isset($disk_item['PercentIdleTime']) && (trim($disk_item['PercentIdleTime']) !== '')) {
|
|
$this->_result[] = $disk_item;
|
|
}
|
|
foreach ($disklogi as $disk_item) if (isset($disk_item['Name']) && (trim($disk_item['Name']) !== '') && (trim($disk_item['Name']) !== '_Total') && isset($disk_item['PercentIdleTime']) && (trim($disk_item['PercentIdleTime']) !== '')) {
|
|
$this->_result[] = $disk_item;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* generates the XML content for the plugin
|
|
*
|
|
* @return SimpleXMLElement entire XML content for the plugin
|
|
*/
|
|
public function xml()
|
|
{
|
|
foreach ($this->_result as $disk_item) {
|
|
$xmldiskload_disk = $this->xml->addChild("Disk");
|
|
$xmldiskload_disk ->addAttribute('Name', trim($disk_item['Name']));
|
|
$xmldiskload_disk ->addAttribute('Load', min(max(100 - trim($disk_item['PercentIdleTime']), 0), 100));
|
|
}
|
|
|
|
return $this->xml->getSimpleXmlElement();
|
|
}
|
|
}
|