Online Code
* libclass.php * libheader.php
libclass.php
<? // // phpMount - A PHP mount Interface // http://phpmount.sourceforge.net/ // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // //
// Read the configuration file include_once($HTTP_SERVER_VARS["DOCUMENT_ROOT"]."/phpmount.conf");
// Class phpMountConfig // // Koen Van Impe - cudeso.be // phpMount 13/5/2003
// Public Methods
// Public Properties // copytoGroup // copytoTempBaseDir (copy in a temp-directory)
class phpMountConfig { var $_copytoGroup; var $_copytoTempBaseDir; var $intUseCopyToDir;
function phpMountConfig($strCopytoGroup,$intUseCopyToDir,$strCopytoTempBaseDir) { $this->copytoGroup = $strCopytoGroup; $this->copytoTempBaseDir = $strCopytoTempBaseDir; $this->copytoUseDir = $intUseCopyToDir; } }
// Class MountDevice // // Koen Van Impe - cudeso.be // phpMount 10/5/2003
// Public Methods // MountDevice($intid,$strName,$strDevice,$strMountPoint,$strType,$strCopyTo,$clsBaseConfig) Constructor // refresh // getStatus // setStatus // copyAll
// Public properties // id // name // device // mountpoint // type // copyto // filesystem // size // free // lastaction // icon // localtransferpath
class MountDevice { // user defined var $id; var $name; var $device; var $mountpoint; var $type; var $copyto; var $config; var $localtransferpath;
// generated var $filesystem; var $size; var $free; var $lastaction; var $icon;
var $_mount_error_returncode = array (0 => 'succes' , 1 => 'incorrect invocation or permissions' , 2 => 'system error (out of memory, cannot fork, no more loop devices)' , 4 => 'internal mount bug or missing nfs support in mount' , 8 => 'user interrupt' , 16 => 'problems writing or locking /etc/mtab' , 32 => 'mount failure' , 64 => 'some mount succeeded' );
var $_copytoTempBaseDir = ""; var $_copytoGroup = "";
// Constructor-function function MountDevice($intid,$strName,$strDevice,$strMountPoint,$strType,$strCopyTo,$strLocalTransferPath,$clsBaseConfig) { $unknown = "** unknown **";
$this->config = $clsBaseConfig;
// local transferpath is given by the user and should be at least 1 char, otherwise we default to nothing // if there's no value we won't return a link in the device-content if (strlen(trim($strLocalTransferPath)) > 0) $this->localtransferpath = trim($strLocalTransferPath); else $this->localtransferpath = "";
// copyto is given by the user and should be at least 1 char, otherwise we default to "/tmp" if (strlen(trim($strCopyTo)) > 0) $this->copyto = trim($strCopyTo); else $this->copyto = "/tmp";
// ID is given by the calling user (ex. record-id or array-id) if ((is_numeric($intid)) && ($intid > 0)) $this->id = $intid; else $this->id = -1;
// name is given by the user and should be at least 1 char, otherwise we default to unknown if (strlen(trim($strName)) > 0) $this->name = trim($strName); else $this->name = $unknown;
// Device is the hardware-device and is given by the calling user if (strlen(trim($strDevice)) > 0) $this->device = trim($strDevice); else $this->device = $unknown;
// mountpoint is the mountpoint and is given by the calling user if (strlen(trim($strMountPoint)) > 0) $this->mountpoint = trim($strMountPoint); else $this->mountpoint = $unknown;
$this->lastaction = "";
// If this object is mounted we get the size, free space and filesystem if ($this->getStatus() == "mount") { $this->size = $this->_getDeviceInfo("SIZE"); $this->free = $this->_getDeviceInfo("FREE"); $this->filesystem = $this->_getDeviceInfo("FILESYSTEM"); } else // It is not mounted, go back to the defaults { $this->size = $unknown; $this->free = $unknown; $this->filesystem = $unknown; }
// Type is a user-defined string and is given by the calling user if (strlen(trim($strType)) > 0) $this->type =$strType; else { // check if we can define the type ourself if (trim($this->filesystem) == "smbfs") $this->type = "smb"; elseif ((trim($this->mountpoint) == "/mnt/cdrom") || (trim($this->mountpoint) == "/mnt/cdrom1")) $this->type = "cd"; else $this->type = $unknown; }
$this->_copytoTempBaseDir = $clsBaseConfig->copytoTempBaseDir; $this->_copytoGroup = $clsBaseConfig->copytoGroup;
$this->icon = $this->_getIcon(); }
// Refresh all stats on a device function refresh() { $this->icon = $this->_getIcon(); // If this object is mounted we get the size, free space and filesystem if ($this->getStatus() == "mount") { $this->size = $this->_getDeviceInfo("SIZE"); $this->free = $this->_getDeviceInfo("FREE"); $this->filesystem = $this->_getDeviceInfo("FILESYSTEM"); } else // It is not mounted, go back to the defaults { $this->size = $unknown; $this->free = $unknown; $this->filesystem = $unknown; } }
// Get the current status (mount/umount) // No variables because we only allow the device/mountpoint attached to this class function getStatus() { if ($this->_status($this->device,$this->mountpoint)) return "mount"; else return "umount"; }
// Set the new status function setStatus($strNewStatus) { if (strtoupper(trim($strNewStatus)) == "MOUNT") { $this->lastaction = "[mount::<strong>".$this->name."</strong>] - ".$this->device." on ".$this->mountpoint; return $this->_my_mount(); } elseif (strtoupper(trim($strNewStatus)) == "UMOUNT") { $this->lastaction = "[unmount::<strong>".$this->name."</strong>] - ".$this->device." from ".$this->mountpoint; return $this->_my_umount(); } else return "Unknown status"; }
function deleteAll($strDeleteType) { if (strtoupper(trim($strDeleteType)) == "DEVICE") return $this->_delete($this->mountpoint); else return $this->_delete($this->copyto); }
function copyAll($strCopyType) { if (strtoupper(trim($strCopyType)) == "DEVICE") return $this->_copy($this->mountpoint,$this->copyto,"from "); else return $this->_copy($this->copyto,$this->mountpoint,"to "); }
// PRIVATE // delete function _delete($strLocation) { $strResult = ""; if (strlen(trim($strLocation)) > 0) { if (substr($strLocation,strlen($strLocation) - 1,1) == "/") $strPath = $strLocation; else $strPath = $strLocation."/";
$shellcmd = "rm -rf ".$strPath."* "; system($shellcmd,$mysyscall); if ($mysyscall == 0) $strResult = "[delete::<strong>".$strPath."</strong>]<br>"; else $strResult = "[delete::<strong>".$strPath."</strong>] - failed to delete files<br>". "shellcommand issued : ".$shellcmd; } return $strResult; }
// PRIVATE // copy function _copy($strCopySource,$strCopyDst,$strCopyAction) { $strResult = ""; if ($this->getStatus() == "mount") { if (substr($strCopyDst,strlen($strCopyDst) - 1,1) == "/") $strPath = $strCopyDst; else $strPath = $strCopyDst."/"; if ($clsBaseConfig->copytoUseDir == 1) { // first we make a subdir as a destination for the copy $tempFileName = $this->_copytoTempBaseDir."-".date("Ymd"); $tempIndex = 1; $blnDirExist = true; while($blnDirExist) { $tempDir = $strPath.$tempFileName."-".$tempIndex; if (file_exists($tempDir)) $tempIndex++; else { $blnDirExist = false; break; } }
$resmkdir = @mkdir($tempDir); } else { $tempDir = $strPath; $resmkdir = true; }
if ($resmkdir) { $shellcmd = "cp -R ".$strCopySource."/* ".$tempDir; system($shellcmd,$mysyscall); if ($mysyscall == 0) { $shellcmd = "chgrp -R ".$this->_copytoGroup." ".$tempDir; system($shellcmd,$mysyscall); if ($mysyscall == 0) $strResult .= "[copy::<strong>".$this->name."</strong>] - all to ".$tempDir."<br>"; else $strResult .= "Unable to copy all ".$strCopyAction.$this->name."<br>". "returned error : unable to change group-membership on directory ".$tempDir."<br>"; } else $strResult .= "Unable to copy all ".$strCopyAction.$this->name."<br>". "returned error : unable to copy files to directory ".$tempDir."<br>";
} else $strResult .= "Unable to copy all ".$strCopyAction.$this->name."<br>". "returned error : unable to create directory ".$tempDir."<br>"; } else $strResult .= "Unable to copy all ".$this->name."<br>". "returned error : device not mounted<br>"; return $strResult; }
// PRIVATE // what icon do we need to show? function _getIcon() { if ($this->getStatus() == "mount") $icon_postfix = "mount.gif"; else $icon_postfix = "umount.gif";
if ($this->type == "smb") return "smb".$icon_postfix; elseif ($this->type == "cd") return "cd".$icon_postfix; elseif ($this->type == "memstick") return $icon_postfix; else return $icon_postfix; }
// PRIVATE // get the current status, returns true/false function _status($strDev,$strMount) { $mylocalSysInfo = new sysinfo(); $localfilesystems = $mylocalSysInfo->filesystems(); $tempresult = false; foreach ($localfilesystems as $fsitem) { if (($fsitem['disk'] == $strDev) && ($fsitem['mount'] == $strMount)) { $tempresult = true; break; } } return $tempresult; }
// PRIVATE // get some kind of info from the device function _getDeviceInfo($strTypeInfo) { $mylocalSysInfo = new sysinfo(); $localfilesystems = $mylocalSysInfo->filesystems(); $tempresult = false; $strTypeInfo = strtoupper(trim($strTypeInfo)); foreach ($localfilesystems as $fsitem) { if (($fsitem['disk'] == $this->device) && ($fsitem['mount'] == $this->mountpoint)) { if ($strTypeInfo == "SIZE") $tempresult = $fsitem["size"]; elseif ($strTypeInfo == "FREE") $tempresult = $fsitem["free"]; elseif ($strTypeInfo = "FILESYSTEM") $tempresult = $fsitem["fstype"]; else $tempresult = ""; break; } } return $tempresult; }
// PRIVATE // Set the new umount status function _my_umount() { system("umount ".$this->mountpoint,$mysyscall); if (!($mysyscall == 64 || $mysyscall == 0)) return $this->_mount_error_returncode[$mysyscall]; else return ""; }
// PRIVATE // Set the new mount status function _my_mount() { system("mount ".$this->device,$mysyscall); if (!($mysyscall == 64 || $mysyscall == 0)) return $this->_mount_error_returncode[$mysyscall]; else return ""; }
}
// Class phpFile_Folder // // Koen Van Impe - cudeso.be // phpMount 10/5/2003
// Public Methods // phpFile_Folder($strName,$strType,$strLink,$strSize,$strDate) Constructor
// Public properties // name // size // date // type // link
class phpFile_Folder { var $name; var $link; var $type; var $date; var $size; function phpFile_Folder($strName,$strType,$strLink,$strSize,$strDate) { $this->name = $strName; $this->size = $strSize; $this->date = $strDate; $this->type = $strType; $this->link = $strLink; } }
// Class phpFolder // // Koen Van Impe - cudeso.be // phpMount 10/5/2003
// Public Methods // phpFolder($strPrefix,$strPostfix,$strRootDir,$strTypeOfDir) Constructor // getSortLink($_GET) // getList($_GET) // getTypeOfDir // // // Public properties // startdir // currentdir // sortmethod // sort_byname // sort_bysize // sort_bydate // sort_bydir // par_currentdir // par_sortmethod // linkprefix // linkpostfix // files // file_content
class phpFolder { var $startdir; var $currentdir; var $sortmethod;
var $sort_byname = "name"; var $sort_bysize = "size"; var $sort_bydate = "date"; var $sort_bydir = "dir";
var $par_currentdir = ""; var $par_sortmethod = "";
var $linkprefix; var $linkpostfix;
var $files = array(); var $file_content = "";
var $_icon_folder = "/images/FolderClosed.gif"; var $_icon_root = "/images/FolderOpened.gif"; var $_icon_file = "/images/file.gif";
var $_typeofdir; var $_localtransferpath; // // Constructor function phpFolder($strPrefix,$strPostfix,$strRootDir,$strTypeOfDir,$strlocaltransferpath) { $this->linkprefix = $strPrefix; $this->linkpostfix = $strPostfix; $this->startdir = $strRootDir;
if (strlen(trim($strlocaltransferpath)) > 0) $this->_localtransferpath = trim($strlocaltransferpath); else $this->_localtransferpath = "";
if (strlen(trim($strTypeOfDir)) > 0) $this->_typeofdir = trim($strTypeOfDir); else $this->_typeofdir = "device";
if ($this->_typeofdir == "device") { $this->par_currentdir = "currentdir"; $this->par_sortmethod = "sortmethod"; } else { $this->par_currentdir = "transfercurrentdir"; $this->par_sortmethod = "transfersortmethod"; } } // // Get the link for the top-caption that holds all the sort-methods function getSortLink($strGet) { $this->_readGetArray($strGet);
if ($this->sortmethod == $this->sort_byname) $strResult .= $this->_buildLink("sortby-bold",$this->currentdir,$this->sort_byname,"by name").whitespace(15,1); else $strResult .= $this->_buildLink("sortby",$this->currentdir,$this->sort_byname,"by name").whitespace(15,1);
if ($this->sortmethod == $this->sort_bydir) $strResult .= $this->_buildLink("sortby-bold",$this->currentdir,$this->sort_bydir,"by directory/file").whitespace(15,1); else $strResult .= $this->_buildLink("sortby",$this->currentdir,$this->sort_bydir,"by directory/file").whitespace(15,1);
if (empty($strResult)) $strResult = " "; return $strResult; }
function getTypeOfDir() { if ($this->_typeofdir == "device") return "device"; else { if (strlen(trim($this->_localtransferpath)) > 0) return "<a class='dir-typeofdir' href='file:".$this->_localtransferpath."' target='_blank'>transfer ". "<img src='/images/smalldetails.gif' hspace='5' border='0' alt='' align='middle' ></a>"; else return "transfer"; } }
// // get the directory content and return a string function getList($strGet) { $strResultList = ""; $this->_readGetArray($strGet); $this->_getFiles(); $this->_sortFiles();
$strResultList .= "<table border='0' cellpadding='0'>";
if (!($this->currentdir == $this->startdir)) $strResultList .= "<tr>". "<td colspan='4' class='dir-content2'>". $this->_buildLink('dir',$this->_getParentDir($this->currentdir),$this->sortmethod,"..",$this->_icon_root). "</td>". "</tr>"; else $strResultList .= "<tr>". "<td colspan='4' class='dir-content2'>". " ". "</td>". "</tr>"; if (sizeof($this->files) > 0) { foreach ($this->files as $myFile) { if ($myFile->type == "dir") { $strIcon = $this->_icon_folder; $strSize = " "; $strLink = $this->_buildLink('dir',$myFile->link,$this->sortmethod,$myFile->name,$strIcon); } elseif ($myfile->type == "file") { $strIcon = $this->_icon_file; $strSize = number_format(($myFile->size / 1024),0,',','.')." kB"; $strLink = $this->_buildLink('dir',$myFile->link,$this->sortmethod,$myFile->name,$strIcon); } else { $strIcon = $this->_icon_file; $strSize = number_format(($myFile->size / 1024),0,',','.')." kB"; $strLink = $this->_buildLink('dir',$myFile->link,$this->sortmethod,$myFile->name,$strIcon); }
$strResultList .= "<tr>". "<td class='dir-content2'>". " ". "</td>". "<td class='dir-content2'>".$strLink."</td>". "<td class='dir-content3'>".$strSize."</td>". "<td class='dir-content3'>".date("d/m/Y G:H",$myFile->date)."</td>". "</tr>"; } } else { $strResultList .= "<tr>". "<td colspan='4' class='dir-content2'>". $this->file_content. "</td>". "</tr>"; } $strResultList .= "</table>";
return $strResultList; }
// PRIVATE // get the parent-directory function _getParentDir($folder) { $temp = explode("/",$folder);
if (sizeof($temp) > 0) { // first element will be empty as it starts with "/" if (empty($temp[0])) array_shift($temp); array_pop($temp); $folder = $temp[0]; for ($i=1;$i <= sizeof($temp) -1;$i++) { if (!empty($temp[$i])) $folder .= "/".$temp[$i]; } if (strpos($folder,"/") != 1) $folder = "/".$folder; if ($folder == "/") $folder = ""; } return $folder; }
// PRIVATE // get all files in the files-array function _getFiles() { if (is_dir($this->currentdir)) { $filehandle = opendir($this->currentdir); if ($filehandle) { while (false !== ($filename = readdir($filehandle)) ) { if ($filename != "." && $filename != "..") { if (is_dir($this->currentdir."/".$filename)) { if (substr($this->currentdir,strlen($this->currentdir) - 1) == "/") $link = $this->currentdir.$filename; else $link = $this->currentdir."/".$filename; $myphpFile_Folder = new phpFile_Folder($filename,"dir",$link,filesize($link),filemtime($link)); $this->files[] = $myphpFile_Folder; unset($myphpFile_Folder); } else { $link = $this->currentdir."/".$filename;
$myphpFile_Folder = new phpFile_Folder($filename,"file",$link,filesize($link),filemtime($link)); $this->files[] = $myphpFile_Folder; unset($myphpFile_Folder); } } } closedir($filehandle); } return true; } else // this is not a directory but a file { $this->file_content = nl2br(file_get_contents($this->currentdir)); return false; } }
// PRIVATE // read the query-string function _readGetArray($strGet) { if (isset($strGet[$this->par_currentdir]) && !(empty($strGet[$this->par_currentdir]))) { $this->currentdir = $strGet[$this->par_currentdir]; } else $this->currentdir = $this->startdir;
if (isset($strGet[$this->par_sortmethod]) && !(empty($strGet[$this->par_sortmethod]))) { $this->sortmethod = $strGet[$this->par_sortmethod]; } else $this->sortmethod = $this->sort_bydir;
}
// PRIVATE // build the href-link for a file or directory function _buildLink($strCSSClass,$strCurrentDir,$strSortType,$strCaption,$strImage = "") { if (empty($strImage)) $strLinkCaption = $strCaption; else $strLinkCaption = "<img src='".$strImage."' alt='' border='0' hspace='5' align='top' >". $strCaption;
return "<a class='".$strCSSClass."' href='".$this->linkprefix."?". $this->par_currentdir."=".$strCurrentDir."&". $this->par_sortmethod."=".$strSortType."&". $this->linkpostfix."'>". $strLinkCaption. "</a>"; }
// PRIVATE // sort all the files function _sortFiles() { // If there are no files we don't need to sort anything if (sizeof($this->files) > 0) { if ($this->sortmethod == $this->sort_bydir) { $file_arr = array(); $dir_arr = array(); foreach ($this->files as $file) { // seperate dir from files if ($file->type == "dir") $dir_arr[sizeof($dir_arr) + 1] = $file; else $file_arr[sizeof($file_arr) + 1] = $file; } $this->_bubblesort($dir_arr,"name"); $this->_bubblesort($file_arr,"name");
$this->files = array_merge($dir_arr,$file_arr);
} } }
// PRIVATE // Bubblesort function _bubblesort(&$array_obj,$property) { # passed an array of objects and the name of the variable to sort # array is by reference # We don't use the built-in sort of php because sorting objects doesn't seem to work for($i = sizeof($array_obj); $i >= 1; $i--) { for($j = 1; $j < $i; $j++) { if(strtoupper($array_obj[$j-1]->$property) > strtoupper($array_obj[$j]->$property)) { $t = $array_obj[$j-1]; $array_obj[$j-1] = $array_obj[$j]; $array_obj[$j] = $t; } } } } }
// // phpSysInfo - A PHP System Information Script // http://phpsysinfo.sourceforge.net/ // // The class 'sysinfo' is a stripped-down version of the class // used in phpSysInfo //
class sysinfo { function filesystems () { $df = execute_program('df', '-kP'); $mounts = split("\n", $df); $fstype = array();
if ($fd = fopen('/proc/mounts', 'r')) { while ($buf = fgets($fd, 4096)) { list($dev, $mpoint, $type) = preg_split('/\s+/', trim($buf), 4); $fstype[$mpoint] = $type; $fsdev[$dev] = $type; } fclose($fd); }
for ($i = 1; $i < sizeof($mounts); $i++) { $ar_buf = preg_split('/\s+/', $mounts[$i], 6);
$results[$i - 1] = array();
$results[$i - 1]['disk'] = $ar_buf[0]; $results[$i - 1]['size'] = $ar_buf[1]; $results[$i - 1]['used'] = $ar_buf[2]; $results[$i - 1]['free'] = $ar_buf[3]; $results[$i - 1]['percent'] = round(($results[$i - 1]['used'] * 100) / $results[$i - 1]['size']) . '%'; $results[$i - 1]['mount'] = $ar_buf[5]; ($fstype[$ar_buf[5]]) ? $results[$i - 1]['fstype'] = $fstype[$ar_buf[5]] : $results[$i - 1]['fstype'] = $fsdev[$ar_buf[0]]; } return $results; } } // End of class
?>
|
libheader.php
<? // // phpMount // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // // session_start();
$phpMountVersion = "0.0.1 - alpha - 2";
/***************************************************************************************************/ // Function: strip_query_action // Paramaters: $strBaseURL // Purpose: strip of possible 'action' from url // Date: 12/5/2003 - Koen Van Impe function strip_query_action($strBaseURL) { $p = strpos($strBaseURL,"&action="); if (!($p === false)) // we have an action { $leftURL = substr($strBaseURL,0,$p); $p2 = strpos(substr($strBaseURL,$p + 1),"&"); if (!($p2 === false)) $rightURL = substr(substr($strBaseURL,$p + 1),$p2 + 1); else $rightURL = ""; $strBaseURL = $leftURL.$rightURL; } return $strBaseURL; }
/***************************************************************************************************/ // Function: print_panel_device // Paramaters: $strBaseURL // Purpose: Print the buttons on top of each detail-page // Date: 11/5/2003 - Koen Van Impe function print_panel_device($strBaseURL) { $strBaseURL = strip_query_action($strBaseURL); echo "<table border='0' cellpadding='0' cellspacing='0'>". "<tr><td>".whitespace(20,1)."</td><td class='dir-action'>". "<table border='0' cellpadding='3' cellspacing='0' >". "<tr>". "<td class='dir-action'>". "<a href='".$strBaseURL."' class='dir-action'>". "<img src='/images/bigrefresh.gif' vspace='5' alt='' border='0'><br>refresh</a>". "</td>". "<td class='dir-action'>". whitespace(40,1). "</td>". "<td class='dir-action'>". "<a href='".$strBaseURL."&action=copy' class='dir-action'>". "<img src='/images/bigcopy.gif' vspace='5' alt='' border='0'><br>copy <strong>from</strong> device<br>to transfer</a>". "</td>". "<td class='dir-action'>". whitespace(40,1). "</td>". "<td class='dir-action'>". "<a href='".$strBaseURL."&action=transfercopy' class='dir-action'>". "<img src='/images/bigcopytransfer.gif' vspace='5' alt='' border='0'><br>copy <strong>to</strong> device<br>from transfer</a>". "</td>". "<td class='dir-action'>". whitespace(40,1). "</td>". "<td class='dir-action'>". "<a href='".$strBaseURL."&action=deleteall' class='dir-action'>". "<img src='/images/bigdelete.gif' vspace='5' alt='' border='0'><br>delete all on <strong>device</strong></a>". "</td>". "<td class='dir-action'>". whitespace(40,1). "</td>". "<td class='dir-action'>". "<a href='".$strBaseURL."&action=transferdeleteall' class='dir-action'>". "<img src='/images/bigdeletetransfer.gif' vspace='5' alt='' border='0'><br>delete all on <strong>transfer</strong></a>". "</td>".
"</tr>". "</table>". "</td></tr>". "</table>"; }
/***************************************************************************************************/ // Function: print_title // Paramaters: $strTitle // Purpose: Print the title on each page // Date: 8/5/2003 - Koen Van Impe function print_title($strTitle) { if (strlen(trim($strTitle)) > 0) { echo "<h1 class='pagetitle'>".$strTitle."</h1>"; } }
/***************************************************************************************************/ // Function: print_panel_footer // Paramaters: / // Purpose: Print the footer-panel // Date: 8/5/2003 - Koen Van Impe function print_panel_footer($urlThisPage) { $urlThisPage = strip_query_action($urlThisPage); echo "<br>";
echo "<table border='0' cellpadding='0' cellspacing='0'>". "<tr>". "<td class='panel-footer'>". "<a href='".$urlThisPage."' class='panel-footer'><img src='/images/reload.gif' border='0' align='middle' hspace='5'><br>refresh</a>". "</td>". "</tr>". "</table>"; }
/***************************************************************************************************/ // Function: print_device_statuslist // Paramaters: / // Purpose: Print the last messages // Date: 8/5/2003 - Koen Van Impe function print_device_statuslist($strTekst) { if (strlen(trim($strTekst)) > 0) echo "<table border='0' cellpadding='0' cellspacing='0'><tr><td class='shellwindow'>". $strTekst."</td></tr></table>"; }
/***************************************************************************************************/ // Function: print_device_list // Paramaters: / // Purpose: Print the status // Date: 8/5/2003 - Koen Van Impe function print_device_list($phpMountDevice,$urlThisPage,$intKey = "ALL") { // We can only mount/unmount from the main-page if (strtoupper(trim($urlThisPage)) == "/INDEX.PHP") $blnActionCell = true; else $blnActionCell = false;
echo "<table border='0' cellpadding='0' cellspacing='10' width='100%'>". "<tr><td class='device-container'>";
echo "<table border='0' cellpadding='3' cellspacing='0' width='100%'>";
echo "<tr>". "<td class='device-header'>description</td>". "<td class='device-header'>device</td>". "<td class='device-header'>mountpoint</td>". "<td class='device-header'>fs</td>". "<td class='device-header'>status</td>". "<td class='device-header-right'>action</td>". "</tr>"; $blnRowCount = true;
if ($intKey == "ALL") { foreach($phpMountDevice as $device) { if ($blnRowCount) $strExtraClass = ""; else $strExtraClass = "-alt"; $blnRowCount = !($blnRowCount); print_device_list_details($device,$blnActionCell,$strExtraClass); } } else print_device_list_details($phpMountDevice[$intKey],$blnActionCell);
echo "</table>";
echo "</td></tr>". "</table>"; }
/***************************************************************************************************/ // Function: print_device_list_details // Paramaters: $device // $strExtraClass // Purpose: print details for one device // Date: 3/5/2003 - Koen Van Impe function print_device_list_details($device,$blnActionCell,$strExtraClass = "") { echo "<tr>". "<td class='device".$strExtraClass."-name'>". "<a class='device-name' href='details.php?devid=".$device->id."'>".$device->name."</a></td>". "<td class='device".$strExtraClass."-data1'>".$device->device."</td>". "<td class='device".$strExtraClass."-data1'>".$device->mountpoint."</td>". "<td class='device".$strExtraClass."-status'>".$device->filesystem."</td>";
if ($device->getStatus() == "mount") { $strActie = "<a href='index.php?action=umount&devid=".$device->id."'><img src='/images/close.gif' alt='unmount' border='0'></a>"; $strCopy = "<a href='index.php?action=copy&devid=".$device->id."'>". "<img src='/images/copy.gif' alt='Copy All from device to transfer' border='0'></a>"; $strCopyTransfer = "<a href='index.php?action=transfercopy&devid=".$device->id."'>". "<img src='/images/copytransfer.gif' alt='Copy All from transfer to device' border='0'></a>";
$strDetail = "<a href='details.php?devid=".$device->id."'><img src='/images/details.gif' alt='details' border='0'></a>"; $strExtraInfo = "<font class='info'>size</font> <strong>".number_format($device->size,0,',','.')." kB</strong>". whitespace(15,1). "<font class='info'>free space</font> <strong>".number_format($device->free,0,',','.')." kB</strong>". whitespace(15,1). return_bar($device->size,$device->free); } else { $strActie = "<a href='index.php?action=mount&devid=".$device->id."'><img src='/images/open.gif' alt='mount' border='0'></a>"; $strDetail = "<img src='/images/pixel.gif' alt='' width='22' height='22' border='0'>"; $strCopy = "<img src='/images/pixel.gif' alt='' width='22' height='22' border='0'>"; $strCopyTransfer = "<img src='/images/pixel.gif' alt='' width='22' height='22' border='0'>"; $strExtraInfo = " "; } $strPrint = "<img src='/images/".$device->icon."' alt='' border='0'>"; echo "<td class='device".$strExtraClass."-status'>".$strPrint."</td>"; if ($blnActionCell) echo "<td class='device".$strExtraClass."-actie'>".$strDetail.whitespace(20,1).$strCopy.whitespace(20,1). $strCopyTransfer.whitespace(20,1).$strActie."</td>"; else echo "<td class='device".$strExtraClass."-actie'><img src='/images/details.gif' alt='details' border='0'></td>"; echo "</tr>";
echo "<tr>". "<td colspan='6' class='device".$strExtraClass."-extrainfo'>".$strExtraInfo."</td>". "</tr>"; }
/***************************************************************************************************/ // Function: find_program // Copied from phpSysInfo // Find a system program. Do path checking function find_program ($program) { $path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin'); while ($this_path = current($path)) { if (is_executable("$this_path/$program")) { return "$this_path/$program"; } next($path); } return; }
/***************************************************************************************************/ // Function: execute_program // Copied from phpSysInfo // Execute a system program. return a trim()'d result. // does very crude pipe checking. you need ' | ' for it to work // ie $program = execute_program('netstat', '-anp | grep LIST'); // NOT $program = execute_program('netstat', '-anp|grep LIST'); function execute_program ($program, $args = '') { $buffer = ''; $program = find_program($program);
if (!$program) { return; }
// see if we've gotten a |, if we have we need to do patch checking on the cmd if ($args) { $args_list = split(' ', $args); for ($i = 0; $i < count($args_list); $i++) { if ($args_list[$i] == '|') { $cmd = $args_list[$i+1]; $new_cmd = find_program($cmd); $args = ereg_replace("\| $cmd", "| $new_cmd", $args); } } }
//print "program: $program $args<br>";
// we've finally got a good cmd line.. execute it if ($fp = popen("$program $args", 'r')) { while (!feof($fp)) { $buffer .= fgets($fp, 4096); } return trim($buffer); } }
/***************************************************************************************************/ // Function: return_bar // Paramaters: $intMax = maximum value // $intFree = current free value // Purpose: print a progress bar // Date: 3/5/2003 - Koen Van Impe function return_bar($intMax = 1,$intFree = 0) { if ($intMax > 0) { if ($intMax == 0) $intMax = 1; $intInUse = $intMax - $intFree; $intPerc = round($intInUse / $intMax,5); $intLength = round(($intPerc * 100),0); if ($intPerc > .80) { $barLeft = "redbar_left.gif"; $barMiddle = "redbar_middle.gif"; $barRight = "redbar_right.gif"; } else { $barLeft = "bar_left.gif"; $barMiddle = "bar_middle.gif"; $barRight = "bar_right.gif"; } $strResult = "<table border='0' cellpadding='0' cellspacing='0'>". "<tr><td><img src='/images/".$barLeft."' alt='' border='0'>". "<img src='/images/".$barMiddle."' alt='' border='0' width='".$intLength."' height='16'>". "<img src='/images/".$barRight."' alt='' border='0'>". "</td><td> ".round($intPerc * 100,2)."% in use</td>". "</tr>". "</table>"; } return $strResult; }
/***************************************************************************************************/ // Function: whitespace // Paramaters: $intWidth = width // $intHeigth = height // Purpose: Print whitespace between text // Date: 3/5/2003 - Koen Van Impe function whitespace($intWidth = 1, $intHeigth = 2) { return "<img src='/images/pixel.gif' alt='' border='0' height='".$intHeigth."' width='".$intWidth."'>"; }
/***************************************************************************************************/ // Function: print_footer // Paramaters: $strURL = current URL // $strScriptName = php-scriptname // $strMenuSection = menusection // Purpose: print the footer // Date: 3/5/2003 - Koen Van Impe function print_footer($strURL,$strScriptName,$strMenuSection = 'HOME') { global $menu_bgcolor,$page_bgcolor,$menuleft_headercolor,$menuleft_bgcolor; @clearstatcache();
echo "<table border='0' cellspacing='0' cellpadding='0' width='100%'>"; echo "<tr>". "<td class='footerphpMount'>". "(c) Copyright 2003 - <a href='http://solution.cudeso.be' class='footer' target='_blank'>cudeso.be</a>". whitespace(35,1). "phpMount is free software". whitespace(35,1). "<a href='http://www.gnu.org/licenses/gpl.html' class='footer' target='_blank'>GPL</a>". "</td>". "</tr>"; echo "</table>";
print_comment_in_html("End",1); print_comment_in_html("Web Created by cudeso.be",1);
echo "</body>". "</html>"; }
/***************************************************************************************************/ // Function: print_header // Paramaters: $strURL = current URL // $strMenuSection = menusection // Purpose: print header // Date: 3/5/2003 - Koen Van Impe function print_header($strURL,$strMenuSection = 'HOME') { global $main_bgcolor,$page_bgcolor,$content_bgcolor,$phpMountVersion;
print_comment_in_html("Main",1);
echo "<body>\n". "<table border='0' cellpadding='0' cellspacing='0' width='100%'>\n";
print_comment_in_html("Menubar",1);
echo "<tr>". "<td colspan='2' class='menubar' align='center' valign='top' width='100%'>\n". "<a class='menubar' href='index.php'>..:: Home ::..</a>". whitespace(35,1). "<a class='menubar' href='settings.php'>..:: Settings ::..</a>". whitespace(35,1). "<a class='menubar' href='log.php'>..:: Log ::..</a>". "</td>". "</tr>". "<tr>". "<td class='pagecontent' align='left'>".return_cudesologo()."</td>". "<td rowspan='2' class='projectTitle' width='100%'><img src='/images/logo.gif'></td>". "</tr>". "<tr>". "<td class='sysinfo-container'>". "<table border='0' cellpadding='0' cellspacing='0' width='100%'>". "<tr><td class='sysinfo-data' nowrap>". "The current time is <strong>".date("H:i:s")."</strong><br>". "You are connected to <strong>".$_SERVER["HTTP_HOST"]."</strong> running <strong>phpMount</strong> ".$phpMountVersion."<br>". "</td></tr>". "</table>". "</td>". "</tr>";
print_comment_in_html("Body Start"); }
/***************************************************************************************************/ // Function: return_cudesologo // Paramaters: / // Purpose: return cudeso-logo // Date: 3/5/2003 - Koen Van Impe function return_cudesologo() { ?>
<script language='JavaScript' type='text/javascript'> <!-- hide script from old browsers imglogo = new Image(); imglogo_over = new Image(); imglogo.src = '/images/logo2.png'; imglogo_over.src = '/images/logo2_over.png'; //--> </script>
<? $strHomeURL = "/index.php"; $strObjName = "logo"; $strObjImageOver = "imglogo_over"; $strObjImage = "imglogo"; $strImage = "/images/logo2.png";
return "<a href='".$strHomeURL."' onmouseover='document.".$strObjName.".src=".$strObjImageOver.".src;'". " onmouseout='document.".$strObjName.".src=".$strObjImage.".src;'>\n\n". "<img src='".$strImage."' name='".$strObjName."' border='0' alt='".$strAlt."' hspace='15'></a>\n"; }
/***************************************************************************************************/ // Function: print_metadata // Paramaters: $strTitle = title // strDescription = description // $strKeywords = keywords // $strLanguage = language // Purpose: print meta data on each html-page // Date: 3/5/2003 - Koen Van Impe function print_metadata($strTitle,$strDescription,$strKeywords,$strLanguage) { //<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'> ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- phpMount -->
<!-- http://solution.cudeso.be ..::.. contact us for all your internet-services -->
<head> <? if (strlen($strLanguage) < 1) $strLanguage = 'nl';
echo "<title>".$strTitle."</title>\n"; echo "<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=iso-8859-1'>\n". "<META HTTP-EQUIV='Content-Script-Type' CONTENT='text/javascript'>\n". "<META HTTP-EQUIV='reply-to' CONTENT='info@cudeso.be'>\n".
"<META NAME='distribution' CONTENT='GLOBAL'>\n". "<META NAME='objecttype' CONTENT='document'>\n". "<META NAME='rating' CONTENT='GENERAL'>\n". "<META NAME='copyright' content='Copyright (c) 2003 by Cudeso'>\n". "<META NAME='Author' content='http://www.cudeso.be'>\n". "<META NAME='Classification' content='Internet Services'>\n\n". "<META NAME='description' CONTENT='".$strDescription."'>\n". "<META NAME='keywords' CONTENT='".$strKeywords."'>\n\n". "<META NAME='revisit-after' CONTENT='3 days'>\n". "<META NAME='language' CONTENT='".$strLanguage."'>\n". "<META HTTP-EQUIV='content-style-type' CONTENT='text/css'>\n\n";
echo "<LINK REL='StyleSheet' HREF='/phpmount.css' TYPE='text/css'>\n"; echo "<LINK REL='icon' HREF='/favicon.ico' type='image/x-icon'>\n"; echo "</head>\n\n\n";
print_comment_in_html("Real Start of this page",1); }
/***************************************************************************************************/ // Function: print_comment_in_html // Paramaters: $strCommentString = what string to print out // $intSupSeperator = print seperator, 1 = yes ; 0 = no // Purpose: print seperator-comment in HTML // Date: 3/5/2003 - Koen Van Impe function print_comment_in_html($strCommentString,$intSupSeperator = 0) { echo "\n\n\n\n"; if ($intSupSeperator == 1) echo "\n<!-- *********************************************************************** -->\n\n"; echo "<!-- ".$strCommentString." -->". "\n\n\n\n"; }
/***************************************************************************************************/ // Function: print_contentstop // Paramaters: / // Purpose: stop the content // Date: 3/5/2003 - Koen Van Impe function print_contentstop() { print_comment_in_html("Stop of the real content",1); echo "</td></tr></table>\n\n". "</td></tr></table>"; }
/***************************************************************************************************/ // Function: print_contentstart // Paramaters: / // Purpose: start the content // Date: 3/5/2003 - Koen Van Impe function print_contentstart($intHeight = 500) { print_comment_in_html("Start of the real content",1);
if ($intHeight == 0) $strHeight = ""; else $strHeight = " height='".$intHeight."'"; echo "<tr><td class='pagecontent2' colspan='2' align='left' valign='top' width='97%' ".$strHeight.">"; }
?>
|
|