Thread: [Phpsysinfo-subversion] SF.net SVN: phpsysinfo:[31]
Brought to you by:
namiltd
From: <Big...@us...> - 2008-12-08 08:26:38
|
Revision: 31 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=31&view=rev Author: BigMichi1 Date: 2008-12-08 08:26:34 +0000 (Mon, 08 Dec 2008) Log Message: ----------- import cvs Added Paths: ----------- COPYING README README_PLUGIN Added: COPYING =================================================================== --- COPYING (rev 0) +++ COPYING 2008-12-08 08:26:34 UTC (rev 31) @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. Property changes on: COPYING ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Id Added: svn:eol-style + LF Added: README =================================================================== --- README (rev 0) +++ README 2008-12-08 08:26:34 UTC (rev 31) @@ -0,0 +1,103 @@ +phpSysInfo 3.0-RC6 - http://phpsysinfo.sourceforge.net/ + +Copyright (c), 1999-2008, Uriah Welcome (pre...@us...) +Copyright (c), 1999-2008, Matthew Snelham (inf...@us...) +Copyright (c), 1999-2008, Michael Cramer (big...@us...) +Copyright (c), 2007-2008, Audun Larsen (xq...@us...) +Copyright (c), 2007-2008, Erkan Valentin (jac...@us...) + +CURRENT TESTED PLATFORMS +------------------------ + - Linux 2.2+ + - FreeBSD 4.x + - FreeBSD 6.x + - OpenBSD 2.8+ + - NetBSD + - Darwin/OSX + - Win2000 / Win2003 / WinXP / WinVista + - > PHP 5.2 or later + - With SimpleXML extension. + + If your platform is not here try checking out the mailing list archives or + the message boards on SourceForge. + +INSTALLATION AND CONFIGURATION +------------------------------ + Just decompress and untar the source (which you should have done by now, + if you're reading this...), into your webserver's document root. + + There is a configuration file called config.php.new. If this a brand new + installation, you should copy this file to config.php and edit it. + + - make sure your 'php.ini' file's include_path entry contains "." + - make sure your 'php.ini' has safe_mode set to 'off'. + + Please keep in the mind that because phpSysInfo requires access to many + files in /proc and other system binary you **MUST DISABLE** php's + safe_mode. Please see the PHP documentation for information on how you + can do this. + + If you use the apc pecl extension with apc.optimization="1" then + phpSysInfo will break in the XPath.class. Turn this option off, and it + will work with apc. + + That's it. Restart your webserver (if you changed php.ini), and voila. + +KNOWN PROBLEMS +-------------- + - phpSysInfo is not compatible with SELinux Systems + - small bug under FreeBSD with memory reporting + +PLATFORM SPECIFIC ISSUES +------------------------ + - FreeBSD + There is currently a bug in FreeBSD that if you boot your system up + and drop to single user mode and then again back to multiuser the + system removes /var/run/dmesg.boot. This will cause phpsysinfo to + fail. A bug has already been reported to the FreeBSD team. (PS, this + may exist in other *BSDs also) + !!! We need feedback if these issue is still alive !!! + - Windows with IIS + On Windows systems we get our informations through the WMI interface. + If you run phpsysinfo on the IIS webserver, phpsysinfo will not connect + to the WMI interface for security reasons. At this point you MUST set + an authentication mechanism for the directory in the IIS admin + interface for the directory where phpsysinfo is installed. Then you + will be asked for an user and a password when opening the page. At this + point it is necassary to log in with an user that will be able to + connect to the WMI interface. If you use the wrong user and/or password + you might get an "ACCESS DENIED ERROR". + +SENSOR RELATED INFORMATION +--------------------------- + - MBM5 + Make sure you set MBM5 Interval Logging to csv and to the data + directory of PHPSysInfo. The file must be called MBM5. Also make sure + MBM5 doesn't add symbols to the values. This is a Quick MBM5 log parser, + need more csv logs to make it better. + +WHAT TO DO IF IT DOESN'T WORK +----------------------------- + First make sure you've read this file completely, especially the + "INSTALLATION AND CONFIGURATION" section. If it still doesn't work then + you can: + + Submit a bug on SourceForge. (preferred) + (http://sourceforge.net/projects/phpsysinfo/) + Ask for help in the forum + (http://sourceforge.net/projects/phpsysinfo/) + + !! If you have any problems, please set PSI_DEBUG to true in config.php + and include any error messages in your bug report / help request !!! + +OTHER NOTES +----------- + If you have a great idea or want to help out, just drop by the project + page at SourceForge (http://sourceforge.net/projects/phpsysinfo/) + +LICENSING +--------- + This program and all associated files are released under the GNU Public + License, see COPYING for details. + +$Id$ Property changes on: README ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Id Added: svn:eol-style + LF Added: README_PLUGIN =================================================================== --- README_PLUGIN (rev 0) +++ README_PLUGIN 2008-12-08 08:26:34 UTC (rev 31) @@ -0,0 +1,131 @@ +phpSysInfo 3.0-RC6 - http://phpsysinfo.sourceforge.net/ +Document written by Michael Cramer (bigmichi1 at sourceforge.net) + +!!Please read if you want to develop a plugin to understand our plugin system!! + +Plugins +======= + +Beginning with phpSysInfo 3.0, phpSysInfo can be extended by Plugins. So here is +a description that a developer of a plugin must take care of. Plugins can be +enabled through the `config.php` in the PSI_PLUGINS variable. The name of the +plugin is essential for the function of the plgin system. Lets say you write a +plugin with the name 'hdd_status', then this name is added to the PSI_PLUGINS +variable in `config.php`. And this is also then the name which is everywhere in +the plugin system used, like creating the object, locate the needed files and +so on. + +So if the name is now specified, phpSysInfo needs a special directory structure +to find the needed files. The directory structure for the example 'hdd_status' +plugin can be seen here: + +-+ phpSysInfo root + | + +---+ plugins (directory in that plugins are installed) + | | + | +---+ hdd_stats (the real plugin directory, must have the same name like + | | | the plugin named in PSI_PLUGINS, else it won't be found) + | | | + | | +---+ js (directory in which the needed JavaScript file is located, + | | | | to generate the html output out of the xml) + | | | # hdd_stats.js (the js file must have the same name, like the + | | | plugin in PSI_PLUGINS with the extension js) + | | +---+ css (directory in which the needed style sheet information are + | | | | located, can exists, but it's up to the author) + | | | # hdd_stats.css (the css file must have the same name, like the + | | | plugin in PSI_PLUGINS with the extension css) + | | +---+ lang (directory where translations for the plugin are located) + | | | | + | | | # en.xml (at least an english translation file must exist) + | | | + | | # class.hdd_stats.inc.php (this is the core file of the plugin, + | | | name must consists of 'class' + + | | | name from PSI_PLUGINS + '.inc.php') + | | # hdd_stats.ini (configuration file for the plugin, name must have + | | the same name, like the plugin in PSI_PLUGINS with the + | | ini extension) + +other files or directorys can be included in the plugin directory, but then +its up to the developer to include them in the plugin. So it might be possible +to have a 'gfx' directory in which some pics are located that are used in the +output. + +If the directory structure is build up, then it's time to start programming. + +Files +===== + +An example implementation is the mdstat plugin, which is shipped with phpSysInfo + +en.xml - at least this file must exist to get the translation working, and the + the first entry in this file is normally the headline of the plugin. + So one translation migth exists everytime. Other translation files + are also in the same directory like the en.xml file. + The id's specified in the translation file SHOULD have the following + look 'plugin_hdd_status_001'. First we say that this is a plugin + translation, then the name of plugin and at last a increasing number + for each translation. Please create your id's in that way, so that + other plugins don't redefine your translations. At the time of writing + this, there is no check to verify the id's, so be carfull. + +hdd_stats.css - here can all custom style sheet informations written down. The + names of the id's and classes SHOULD also begin, like the translation + id's, with 'plugin_' + pluginname. If thats not the case it might be + possible that another plugin is overwriting your css definitions. + +class.hdd_stats.inc.php - this file MUST include a class with the plugin name + and also this class MUST extend the 'psi_plugin' class. A check that + such a class exist and also extends 'psi_plugin' will be included in + the near future. And if the check fails the plugin won't be loaded. + The psi_plugin class checks the existens of the js and the en.xml + files. Also an extra configuration file for the plugin is loaded + automatically, if present. This configuration file is a normal ini + file. Through the extension of the psi_plugin class there is a need to + include at least two public function. These are the execute() function + and the xml() function. Other functions can be exist, that depends on + the plugin needs or the author of the class. The execute() function is + called to get the required information that should be later included + in the xml file. The xml() function is called when the xml output + should be generated. This function must return a simplexml object. This + object is then included in another xml at the right position or as a + standalone xml. So there is no need to do some special things, only + create a xml object for the plugin. + +hdd_stats.js - this file is called when the page is loaded. A block for the + plugin is automatically created. This one is a div container with the + id 'plugin_'+ pluginname ("plugin_hdd_stats"). The entire output must be + placed in that container. + There is a helper function for creating the headline: buildBlock() that + can be called. This function returns a string with the html code of the + headline, this code can then be appended to the plugin block. The + generated headline can provide a reload icon for an ajax request. Only + the click action of that icon must be created. The id of this icon is + 'reload_' + pluginname + 'Table' ("reload_hdd_statsTable"). + Everything that then is done to get the html output out of the xml is up + to the author. + To get the xml document the ajax request url is 'xml.php?plugin=' + + pluginname (xml.php?plugin=hdd_stats). This xml includes only the xml + from the plugin nothing more. + The last two executed commands should/must be the translation call and + the unhide of the filled div container. + The translation function that needs to be called is named + plugin_traslate() with one argument, that is the pluginname like in + PSI_PLUGINS (plugin_translate("hdd_stats");). + To unhide the filled container call the .show() function of it. + $("plugin_" + pluginname).show() ($("plugin_hdd_stat").show()). + +FAQ +=== + +Q: Is the plugin system ready to use? +A: It can be used, but it might change slightly in the future, if there are some + special needs. + +SUGGESTION +========== + +If anybody out there has some suggestions in improving the plugin system let us +know. We are looking forward to get some feedback, suggestions and patches and +more. Feel free to contact us on our website: http://phpsysinfo.sourceforge.net. + +$Id$ \ No newline at end of file Property changes on: README_PLUGIN ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Id Added: svn:eol-style + LF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Big...@us...> - 2008-12-08 13:23:27
|
Revision: 46 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=46&view=rev Author: BigMichi1 Date: 2008-12-08 13:23:16 +0000 (Mon, 08 Dec 2008) Log Message: ----------- import cvs Added Paths: ----------- phpsysinfo.xsd phpsysinfo.xslt Added: phpsysinfo.xsd =================================================================== --- phpsysinfo.xsd (rev 0) +++ phpsysinfo.xsd 2008-12-08 13:23:16 UTC (rev 46) @@ -0,0 +1,521 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> + <!-- $Id$ --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + elementFormDefault="qualified"> + <!-- $Id$ --> + <xs:element name="phpsysinfo"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Generation" /> + <xs:element ref="Options" /> + <xs:element ref="Vitals" /> + <xs:element ref="Network" /> + <xs:element ref="Hardware" /> + <xs:element ref="Memory" /> + <xs:element ref="Swap" /> + <xs:element ref="Swapdevices" /> + <xs:element ref="FileSystem" /> + <xs:element ref="MBinfo" minOccurs="0" /> + <xs:element ref="HDDTemp" minOccurs="0" /> + <xs:element ref="UPSinfo" minOccurs="0" /> + <xs:element ref="Plugins" minOccurs="0" /> + <xs:element ref="Errors" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Generation"> + <xs:complexType> + <xs:attribute name="version" type="xs:string" use="required" /> + <xs:attribute name="timestamp" type="xs:unsignedLong" use="required" /> + </xs:complexType> + </xs:element> + <xs:element name="Options"> + <xs:complexType> + <xs:sequence> + <xs:element ref="tempFormat" /> + <xs:element ref="byteFormat" /> + <xs:element ref="refresh" /> + <xs:element ref="Used_Plugins" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="tempFormat" type="xs:string" default="c" /> + <xs:element name="byteFormat" type="xs:string" default="auto" /> + <xs:element name="Used_Plugins"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Plugin" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Plugin" type="xs:string" /> + <xs:element name="Vitals"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Hostname" /> + <xs:element ref="IPAddr" /> + <xs:element ref="Kernel" /> + <xs:element ref="Distro" /> + <xs:element ref="Distroicon" /> + <xs:element ref="Uptime" /> + <xs:element ref="Users" /> + <xs:element ref="LoadAvg" /> + <xs:element ref="CPULoad" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Hostname" type="xs:string" /> + <xs:element name="IPAddr"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern + value="(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Kernel" type="xs:string" /> + <xs:element name="Distro" type="xs:string" /> + <xs:element name="Distroicon" type="xs:string" /> + <xs:element name="Uptime"> + <xs:simpleType> + <xs:restriction base="xs:float"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Users"> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" fixed="false" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="LoadAvg" type="xs:string" /> + <xs:element name="CPULoad" type="xs:decimal" /> + <xs:element name="Network"> + <xs:complexType> + <xs:sequence> + <xs:element ref="NetDevice" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="NetDevice"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Name" /> + <xs:element ref="RxBytes" /> + <xs:element ref="TxBytes" /> + <xs:element ref="Err" /> + <xs:element ref="Drops" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Name" type="xs:string" /> + <xs:element name="RxBytes"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="TxBytes"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Err"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Drops"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Hardware"> + <xs:complexType> + <xs:sequence> + <xs:element ref="CPU" /> + <xs:element ref="PCI" /> + <xs:element ref="IDE" /> + <xs:element ref="SCSI" /> + <xs:element ref="USB" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="CPU"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Number" /> + <xs:element ref="Model" /> + <xs:element ref="Cputemp" minOccurs="0" /> + <xs:element ref="Cpuspeed" /> + <xs:element ref="Busspeed" minOccurs="0" /> + <xs:element ref="Cache" minOccurs="0" /> + <xs:element ref="Bogomips" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Number"> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Model" type="xs:string" /> + <xs:element name="Cputemp" type="xs:decimal" /> + <xs:element name="Cpuspeed"> + <xs:simpleType> + <xs:restriction base="xs:decimal"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Busspeed"> + <xs:simpleType> + <xs:restriction base="xs:decimal"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Cache"> + <xs:simpleType> + <xs:restriction base="xs:decimal"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Bogomips" type="xs:decimal" /> + <xs:element name="PCI"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Device" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Device"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Name" /> + <xs:element ref="Capacity" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Capacity"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="IDE"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Device" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="SCSI"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Device" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="USB"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Device" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Memory"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Free" /> + <xs:element ref="Used" /> + <xs:element ref="Total" /> + <xs:element ref="Percent" /> + <xs:element ref="App" minOccurs="0" /> + <xs:element ref="AppPercent" minOccurs="0" /> + <xs:element ref="Buffers" minOccurs="0" /> + <xs:element ref="BuffersPercent" minOccurs="0" /> + <xs:element ref="Cached" minOccurs="0" /> + <xs:element ref="CachedPercent" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Free"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Used"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Total"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Percent"> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="100" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="App"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="AppPercent"> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="100" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Buffers"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="BuffersPercent"> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="100" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Cached"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="CachedPercent"> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="100" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Swap"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Free" minOccurs="0" /> + <xs:element ref="Used" minOccurs="0" /> + <xs:element ref="Total" minOccurs="0" /> + <xs:element ref="Percent" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Swapdevices"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Mount" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="FileSystem"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Mount" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Mount"> + <xs:complexType> + <xs:sequence> + <xs:element ref="MountPointID" /> + <xs:element ref="MountPoint" minOccurs="0" /> + <xs:element ref="Type" /> + <xs:element ref="Device" /> + <xs:element ref="Percent" /> + <xs:element ref="Free" /> + <xs:element ref="Used" /> + <xs:element ref="Size" /> + <xs:element ref="MountOptions" minOccurs="0" /> + <xs:element ref="Inodes" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="MountPointID"> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="MountPoint" type="xs:string" /> + <xs:element name="Type" type="xs:string" /> + <xs:element name="Size"> + <xs:simpleType> + <xs:restriction base="xs:unsignedLong"> + <xs:minInclusive value="0" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="MountOptions" type="xs:string" /> + <xs:element name="Inodes"> + <xs:simpleType> + <xs:restriction base="xs:integer"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="100" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="MBinfo"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Temperature" minOccurs="0" /> + <xs:element ref="Fans" minOccurs="0" /> + <xs:element ref="Voltage" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Temperature"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Item" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Item"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Label" /> + <xs:element ref="Value" /> + <xs:element ref="Limit" minOccurs="0" /> + <xs:element ref="Min" minOccurs="0" /> + <xs:element ref="Max" minOccurs="0" /> + <xs:element ref="Model" minOccurs="0" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Label" type="xs:string" /> + <xs:element name="Value" type="xs:decimal" /> + <xs:element name="Limit" type="xs:decimal" /> + <xs:element name="Min" type="xs:decimal" /> + <xs:element name="Max" type="xs:decimal" /> + <xs:element name="Fans"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Item" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Voltage"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Item" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="HDDTemp"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Item" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="UPSinfo"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Ups" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Ups"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Name" /> + <xs:element ref="Model" /> + <xs:element ref="Mode" /> + <xs:element ref="StartTime" /> + <xs:element ref="Status" /> + <xs:element ref="UPSTemperature" /> + <xs:element ref="OutagesCount" /> + <xs:element ref="LastOutage" /> + <xs:element ref="LastOutageFinish" /> + <xs:element ref="LineVoltage" /> + <xs:element ref="LoadPercent" /> + <xs:element ref="BatteryVoltage" /> + <xs:element ref="BatteryChargePercent" /> + <xs:element ref="TimeLeftMinutes" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Mode" type="xs:string" /> + <xs:element name="StartTime" type="xs:string" /> + <xs:element name="Status" type="xs:string" /> + <xs:element name="UPSTemperature" type="xs:string" /> + <xs:element name="OutagesCount" type="xs:string" /> + <xs:element name="LastOutage" type="xs:string" /> + <xs:element name="LastOutageFinish" type="xs:string" /> + <xs:element name="LineVoltage" type="xs:decimal" /> + <xs:element name="LoadPercent"> + <xs:simpleType> + <xs:restriction base="xs:decimal"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="100" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="BatteryVoltage" type="xs:decimal" /> + <xs:element name="BatteryChargePercent"> + <xs:simpleType> + <xs:restriction base="xs:decimal"> + <xs:minInclusive value="0" /> + <xs:maxInclusive value="100" /> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="TimeLeftMinutes" type="xs:decimal" /> + <xs:element name="Errors"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Error" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Error"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Function" /> + <xs:element ref="Message" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Function" type="xs:string" /> + <xs:element name="Message" type="xs:string" /> + <xs:element name="Plugins" /> + <xs:element name="refresh" type="xs:string" /> +</xs:schema> \ No newline at end of file Property changes on: phpsysinfo.xsd ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:keywords + Id Added: svn:eol-style + LF Added: phpsysinfo.xslt =================================================================== --- phpsysinfo.xslt (rev 0) +++ phpsysinfo.xslt 2008-12-08 13:23:16 UTC (rev 46) @@ -0,0 +1,1195 @@ +<?xml version="1.0" encoding="UTF-8"?> + <!-- $Id$ --> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" + xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <xsl:output version="4.0" method="html" indent="no" encoding="UTF-8" + doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN" doctype-system="http://www.w3.org/TR/html4/loose.dtd" /> + <xsl:param name="SV_OutputFormat" select="'HTML'" /> + <xsl:variable name="XML" select="/" /> + <xsl:template match="/"> + <html> + <head> + <title> + <xsl:text>phpSysInfo STATIC</xsl:text> + </title> + <style type="text/css"> + <xsl:comment> + @import url("templates/phpsysinfo.css"); + </xsl:comment> + </style> + </head> + <body> + <xsl:for-each select="$XML"> + <xsl:for-each select="phpsysinfo"> + <div> + <xsl:for-each select="Vitals"> + <h1 id="title"> + <span> + <xsl:text>System Information: </xsl:text> + </span> + <xsl:for-each select="Hostname"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> (</xsl:text> + </span> + <xsl:for-each select="IPAddr"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text>)</xsl:text> + </span> + </h1> + </xsl:for-each> + <div id="vitals"> + <xsl:for-each select="Vitals"> + <h2> + <span> + <xsl:text>System Vital</xsl:text> + </span> + </h2> + <table border="0" cellspacing="0" class="stripMe" id="vitalsTable" + width="100%"> + <tbody> + <tr> + <td style="width:160px; "> + <span> + <xsl:text>Canonical Hostname</xsl:text> + </span> + </td> + <td> + <xsl:for-each select="Hostname"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + </tr> + <tr class="odd"> + <td style="width:160px; "> + <span> + <xsl:text>Listening IP</xsl:text> + </span> + </td> + <td> + <xsl:for-each select="IPAddr"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="width:160px; "> + <span> + <xsl:text>Kernel Version</xsl:text> + </span> + </td> + <td> + <xsl:for-each select="Kernel"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + </tr> + <tr class="odd"> + <td style="width:160px; "> + <span> + <xsl:text>Distro Name</xsl:text> + </span> + </td> + <td> + <xsl:for-each select="Distroicon"> + <img style="height:16px; width:16px; "> + <xsl:attribute name="src"> + <xsl:if + test="substring(string(concat('images/',.)), 2, 1) = ':'"> + <xsl:text>file:///</xsl:text> + </xsl:if> + <xsl:value-of + select="translate(string(concat('images/',.)), '\', '/')" /> + </xsl:attribute> + <xsl:attribute name="alt" /> + </img> + </xsl:for-each> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="Distro"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="width:160px; "> + <span> + <xsl:text>Uptime</xsl:text> + </span> + </td> + <td> + <span> + <xsl:value-of select="floor( Uptime div 60 div 60 div 24)" /> + </span> + <span> + <xsl:text> Days </xsl:text> + </span> + <span> + <xsl:value-of + select="floor( ( Uptime div 60 div 60) - ( floor( Uptime div 60 div 60 div 24) * 24) )" /> + </span> + <span> + <xsl:text> Hours </xsl:text> + </span> + <span> + <xsl:value-of + select="floor( Uptime div 60 - ( floor( Uptime div 60 div 60 div 24) * 60 * 24) - ( floor( ( Uptime div 60 div 60) - ( floor( Uptime div 60 div 60 div 24) * 24) ) * 60) )" /> + </span> + <span> + <xsl:text> Minutes</xsl:text> + </span> + </td> + </tr> + <tr class="odd"> + <td style="width:160px; "> + <span> + <xsl:text>Current Users</xsl:text> + </span> + </td> + <td> + <xsl:for-each select="Users"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="width:160px; "> + <span> + <xsl:text>Load Averages</xsl:text> + </span> + </td> + <td> + <xsl:for-each select="LoadAvg"> + <xsl:apply-templates /> + </xsl:for-each> + <xsl:if test="count(CPULoad )>0"> + <div + style="float:left; width:{concat( CPULoad , 'px' )}; " + class="bar"> + <span> + <xsl:text> </xsl:text> + </span> + </div> + <div style="float:left; "> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="CPULoad"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text>%</xsl:text> + </span> + </div> + </xsl:if> + </td> + </tr> + </tbody> + </table> + </xsl:for-each> + </div> + <div id="hardware"> + <xsl:for-each select="Hardware"> + <h2> + <span> + <xsl:text>Hardware Information</xsl:text> + </span> + </h2> + <xsl:for-each select="CPU"> + <table border="0" cellspacing="0" width="100%"> + <tbody> + <tr> + <td style="width:160px; "> + <span> + <xsl:text>Processors</xsl:text> + </span> + </td> + <td> + <xsl:for-each select="Number"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + </tr> + <tr class="odd"> + <td style="width:160px; "> + <span> + <xsl:text>Model</xsl:text> + </span> + </td> + <td> + <xsl:for-each select="Model"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="width:160px; "> + <span> + <xsl:text>CPU Speed</xsl:text> + </span> + </td> + <td> + <xsl:for-each select="Cpuspeed"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> Mhz</xsl:text> + </span> + </td> + </tr> + <tr class="odd"> + <td style="width:160px; "> + <span> + <xsl:text>Bus Speed</xsl:text> + </span> + </td> + <td> + <xsl:if test="count(Busspeed )>0"> + <xsl:for-each select="Busspeed"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> Mhz</xsl:text> + </span> + </xsl:if> + </td> + </tr> + <tr> + <td style="width:160px; "> + <span> + <xsl:text>Cache Size</xsl:text> + </span> + </td> + <td> + <xsl:if test="count( Cache )>0"> + <xsl:for-each select="Cache"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </xsl:if> + </td> + </tr> + <tr class="odd"> + <td style="width:160px; "> + <span> + <xsl:text>System Bogomips</xsl:text> + </span> + </td> + <td> + <xsl:if test="count( Bogomips ) >0"> + <xsl:for-each select="Bogomips"> + <xsl:apply-templates /> + </xsl:for-each> + </xsl:if> + </td> + </tr> + </tbody> + </table> + </xsl:for-each> + <xsl:for-each select="PCI"> + <h3> + <span> + <xsl:text>PCI Devices</xsl:text> + </span> + </h3> + <table style="display:block; " cellspacing="0" id="pciTable" + width="100%"> + <tbody> + <tr> + <td> + <ul style="margin-left:10px; "> + <xsl:for-each select="Device"> + <li> + <xsl:for-each select="Name"> + <xsl:apply-templates /> + </xsl:for-each> + </li> + </xsl:for-each> + </ul> + </td> + </tr> + </tbody> + </table> + </xsl:for-each> + <xsl:for-each select="IDE"> + <h3 class="odd"> + <span> + <xsl:text>IDE Devices</xsl:text> + </span> + </h3> + <table style="display:block; " cellspacing="0" class="odd" + id="ideTable" width="100%"> + <tbody> + <tr> + <td> + <ul style="margin-left:10px; "> + <xsl:for-each select="Device"> + <li> + <xsl:for-each select="Name"> + <xsl:apply-templates /> + </xsl:for-each> + <xsl:if test="count( Capacity )>0"> + <span> + <xsl:text> (</xsl:text> + </span> + <xsl:for-each select="Capacity"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB)</xsl:text> + </span> + </xsl:if> + </li> + </xsl:for-each> + </ul> + </td> + </tr> + </tbody> + </table> + </xsl:for-each> + <xsl:for-each select="SCSI"> + <h3> + <span> + <xsl:text>SCSI Devices</xsl:text> + </span> + </h3> + <table cellspacing="0" id="scsiTable" width="100%"> + <tbody> + <tr> + <td style="display:block; "> + <ul style="margin-left:10px; "> + <xsl:for-each select="Device"> + <li> + <xsl:for-each select="Name"> + <xsl:apply-templates /> + </xsl:for-each> + <xsl:if test="count( Capacity )>0"> + <span> + <xsl:text> (</xsl:text> + </span> + <xsl:for-each select="Capacity"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB)</xsl:text> + </span> + </xsl:if> + </li> + </xsl:for-each> + </ul> + </td> + </tr> + </tbody> + </table> + </xsl:for-each> + <xsl:for-each select="USB"> + <h3 class="odd"> + <span> + <xsl:text>USB Devices</xsl:text> + </span> + </h3> + <table cellspacing="0" class="odd" id="usbTable" + width="100%"> + <tbody> + <tr> + <td> + <ul style="margin-left:10px; "> + <xsl:for-each select="Device"> + <li> + <xsl:for-each select="Name"> + <xsl:apply-templates /> + </xsl:for-each> + </li> + </xsl:for-each> + </ul> + </td> + </tr> + </tbody> + </table> + </xsl:for-each> + </xsl:for-each> + </div> + <div id="memory"> + <xsl:for-each select="Memory"> + <h2> + <span> + <xsl:text>Memory Usage</xsl:text> + </span> + </h2> + <table border="0" cellspacing="0"> + <thead> + <tr> + <th style="width:200px; "> + <span> + <xsl:text>Type</xsl:text> + </span> + </th> + <th style="width:285px; "> + <span> + <xsl:text>Usage</xsl:text> + </span> + </th> + <th style="width:100px; " class="right"> + <span> + <xsl:text>Free</xsl:text> + </span> + </th> + <th style="width:100px; " class="right"> + <span> + <xsl:text>Used</xsl:text> + </span> + </th> + <th style="width:100px; " class="right"> + <span> + <xsl:text>Size</xsl:text> + </span> + </th> + </tr> + </thead> + <tbody> + <tr class="odd"> + <td style="width:200px; "> + <span> + <xsl:text>Physical Memory</xsl:text> + </span> + </td> + <td style="width:285px; "> + <div + style="float:left; width:{concat( Percent , 'px' )}; " + class="bar"> + <span> + <xsl:text> </xsl:text> + </span> + </div> + <div style="float:left; "> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="Percent"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text>%</xsl:text> + </span> + </div> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Free"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Used"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Total"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + </tr> + <tr> + <td style="width:200px; "> + <span> + <xsl:text>- Kernel + applications</xsl:text> + </span> + </td> + <td style="width:285px; "> + <div + style="float:left; width:{concat( AppPercent , 'px' )}; " + class="bar"> + <span> + <xsl:text> </xsl:text> + </span> + </div> + <div style="float:left; "> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="AppPercent"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text>%</xsl:text> + </span> + </div> + </td> + <td style="width:100px; " class="right" /> + <td style="width:100px; " class="right"> + <xsl:for-each select="App"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right" /> + </tr> + <tr> + <td style="width:200px; "> + <span> + <xsl:text>- Buffers</xsl:text> + </span> + </td> + <td style="width:285px; "> + <div + style="float:left; width:{concat( BuffersPercent , 'px' )}; " + class="bar"> + <span> + <xsl:text> </xsl:text> + </span> + </div> + <div> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="BuffersPercent"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text>%</xsl:text> + </span> + </div> + </td> + <td style="width:100px; " class="right" /> + <td style="width:100px; " class="right"> + <xsl:for-each select="Buffers"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right" /> + </tr> + <tr> + <td style="width:200px; "> + <span> + <xsl:text>- Cached</xsl:text> + </span> + </td> + <td style="width:285px; "> + <div + style="float:left; width:{concat( CachedPercent , 'px' )}; " + class="bar"> + <span> + <xsl:text> </xsl:text> + </span> + </div> + <div style="float:left; "> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="CachedPercent"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text>%</xsl:text> + </span> + </div> + </td> + <td style="width:100px; " class="right" /> + <td style="width:100px; " class="right"> + <xsl:for-each select="Cached"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right" /> + </tr> + </tbody> + </table> + </xsl:for-each> + <xsl:for-each select="Swap"> + <table border="0" cellspacing="0" width="100%"> + <tbody> + <tr class="odd"> + <td style="width:200px; "> + <span> + <xsl:text>Disk Swap</xsl:text> + </span> + </td> + <td style="width:285px; "> + <div style="float:left; " class="bar"> + <span> + <xsl:text> </xsl:text> + </span> + </div> + <div style="float:left; "> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="Percent"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text>%</xsl:text> + </span> + </div> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Free"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Used"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Total"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + </tr> + </tbody> + </table> + </xsl:for-each> + <xsl:for-each select="Swapdevices"> + <table border="0" cellspacing="0"> + <tbody> + <xsl:for-each select="Mount"> + <tr> + <td style="width:200px; "> + <span> + <xsl:text>- </xsl:text> + </span> + <xsl:for-each select="Device"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + <td style="width:285px; "> + <div style="float:left; " class="bar"> + <span> + <xsl:text> </xsl:text> + </span> + </div> + <div style="float:left; "> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="Percent"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text>%</xsl:text> + </span> + </div> + </td> + <td style="width:100px; " class="right" colspan="2"> + <xsl:for-each select="Free"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Used"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Size"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + </tr> + </xsl:for-each> + </tbody> + </table> + </xsl:for-each> + </div> + <div id="filesystem"> + <h2> + <span> + <xsl:text>Mounted Filesystems</xsl:text> + </span> + </h2> + <table cellspacing="0" class="stripMe" id="filesystemTable"> + <thead> + <tr> + <th style="width:100px; "> + <span> + <xsl:text>Mountpoint</xsl:text> + </span> + </th> + <th style="width:50px; "> + <span> + <xsl:text>Type</xsl:text> + </span> + </th> + <th style="width:120px; "> + <span> + <xsl:text>Partition</xsl:text> + </span> + </th> + <th> + <span> + <xsl:text>Usage</xsl:text> + </span> + </th> + <th style="width:100px; " class="right"> + <span> + <xsl:text>Free</xsl:text> + </span> + </th> + <th style="width:100px; " class="right"> + <span> + <xsl:text>Used</xsl:text> + </span> + </th> + <th style="width:100px; " class="right"> + <span> + <xsl:text>Size</xsl:text> + </span> + </th> + </tr> + </thead> + <tbody> + <xsl:for-each select="FileSystem"> + <xsl:for-each select="Mount"> + <tr> + <td style="width:100px; "> + <xsl:for-each select="MountPoint"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + <td style="width:50px; "> + <xsl:for-each select="Type"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + <td style="width:120px; "> + <xsl:for-each select="Device"> + <xsl:apply-templates /> + </xsl:for-each> + </td> + <td style="width:285px; "> + <div + style="float:left; width:{concat( Percent , 'px' )}; " + class="bar"> + <span> + <xsl:text> </xsl:text> + </span> + </div> + <div style="float:left; "> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="Percent"> + <xsl:apply-templates /> + </xsl:for-each> + <span> + <xsl:text>%</xsl:text> + </span> + <xsl:if test="count(Inodes )>0"> + <span> + <xsl:text> (</xsl:text> + </span> + <xsl:for-each select="Inodes"> + <span style="font-style:italic; "> + <xsl:apply-templates /> + </span> + </xsl:for-each> + <span> + <xsl:text>%)</xsl:text> + </span> + </xsl:if> + </div> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Free"> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Used"> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td style="width:100px; " class="right"> + <xsl:for-each select="Size"> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + </tr> + </xsl:for-each> + </xsl:for-each> + </tbody> + </table> + </div> + <div id="network"> + <h2> + <span> + <xsl:text>Network Usage</xsl:text> + </span> + </h2> + <table cellspacing="0" class="stripMe" id="networkTable"> + <thead> + <tr> + <th> + <span> + <xsl:text>Device</xsl:text> + </span> + </th> + <th class="right" width="60px"> + <span> + <xsl:text>Received</xsl:text> + </span> + </th> + <th class="right" width="60px"> + <span> + <xsl:text>Send</xsl:text> + </span> + </th> + <th class="right" width="60px"> + <span> + <xsl:text>Err/Drop</xsl:text> + </span> + </th> + </tr> + </thead> + <tbody> + <xsl:for-each select="Network"> + <xsl:for-each select="NetDevice"> + <tr> + <td> + <xsl:for-each select="Name"> + <xsl:apply-templates/> + </xsl:for-each> + </td> + <td class="right" width="60px"> + <span> + <xsl:value-of select="round(RxBytes div 1024)"/> + </span> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td class="right" width="60px"> + <span> + <xsl:text> </xsl:text> + </span> + <span> + <xsl:value-of select="round(TxBytes div 1024)"/> + </span> + <span> + <xsl:text> KB</xsl:text> + </span> + </td> + <td class="right" width="60px"> + <xsl:for-each select="Err"> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text>/</xsl:text> + </span> + <xsl:for-each select="Drops"> + <xsl:apply-templates/> + </xsl:for-each> + </td> + </tr> + </xsl:for-each> + </xsl:for-each> + </tbody> + </table> + </div> + <xsl:if test="count( MBinfo/Voltage ) > 0"> + <div id="voltage"> + <h2> + <span> + <xsl:text>Voltage</xsl:text> + </span> + </h2> + <table cellspacing="0" class="stripMe" id="voltageTable"> + <thead> + <tr> + <th> + <span> + <xsl:text>Label</xsl:text> + </span> + </th> + <th class="right"> + <span> + <xsl:text>Value</xsl:text> + </span> + </th> + <th class="right" width="60px"> + <span> + <xsl:text>Min</xsl:text> + </span> + </th> + <th class="right" width="60px"> + <span> + <xsl:text>Max</xsl:text> + </span> + </th> + </tr> + </thead> + <tbody> + <xsl:for-each select="MBinfo"> + <xsl:for-each select="Voltage"> + <xsl:for-each select="Item"> + <tr> + <td> + <xsl:for-each select="Label"> + <xsl:apply-templates/> + </xsl:for-each> + </td> + <td class="right"> + <xsl:for-each select="Value"> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text> V</xsl:text> + </span> + </td> + <td class="right" width="60px"> + <xsl:for-each select="Min"> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text> V</xsl:text> + </span> + </td> + <td class="right" width="60px"> + <xsl:for-each select="Max"> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text> V</xsl:text> + </span> + </td> + </tr> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </tbody> + </table> + </div> + </xsl:if> + <xsl:if test="(count( MBinfo/Temperature ) > 0) or (count( HDDTemp/Item ) > 0)"> + <div id="temp"> + <h2> + <span> + <xsl:text>Temperature</xsl:text> + </span> + </h2> + <table cellspacing="0" class="stripMe" id="tempTable"> + <thead> + <tr> + <th> + <span> + <xsl:text>Label</xsl:text> + </span> + </th> + <th class="right" width="60px"> + <span>... [truncated message content] |
From: <jac...@us...> - 2008-12-28 10:18:58
|
Revision: 60 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=60&view=rev Author: jacky672 Date: 2008-12-28 10:18:54 +0000 (Sun, 28 Dec 2008) Log Message: ----------- Add some 32x32 png distro icon Modified Paths: -------------- distros.ini includes/os/class.WINNT.inc.php Added Paths: ----------- gfx/images/OpenSolaris.png gfx/images/ReactOS.png gfx/images/Trustix.png gfx/images/Ubuntu.png gfx/images/XandrOS.png gfx/images/vista.png gfx/images/xp.png Modified: distros.ini =================================================================== --- distros.ini 2008-12-28 08:43:29 UTC (rev 59) +++ distros.ini 2008-12-28 10:18:54 UTC (rev 60) @@ -41,7 +41,7 @@ Files = "/etc/slackware-release;/etc/slackware-version" [Trustix] -Image = "Trustix.gif" +Image = "Trustix.png" Files = "/etc/trustix-release;/etc/trustix-version" [FreeEOS] @@ -65,7 +65,7 @@ Files = "/etc/rubix-version" [Ubuntu] -Image = "Ubuntu.gif" +Image = "Ubuntu.png" Files = "/etc/lsb-release" [PLD] Added: gfx/images/OpenSolaris.png =================================================================== (Binary files differ) Property changes on: gfx/images/OpenSolaris.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: gfx/images/ReactOS.png =================================================================== (Binary files differ) Property changes on: gfx/images/ReactOS.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: gfx/images/Trustix.png =================================================================== (Binary files differ) Property changes on: gfx/images/Trustix.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: gfx/images/Ubuntu.png =================================================================== (Binary files differ) Property changes on: gfx/images/Ubuntu.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: gfx/images/XandrOS.png =================================================================== (Binary files differ) Property changes on: gfx/images/XandrOS.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: gfx/images/vista.png =================================================================== (Binary files differ) Property changes on: gfx/images/vista.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: gfx/images/xp.png =================================================================== (Binary files differ) Property changes on: gfx/images/xp.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: includes/os/class.WINNT.inc.php =================================================================== --- includes/os/class.WINNT.inc.php 2008-12-28 08:43:29 UTC (rev 59) +++ includes/os/class.WINNT.inc.php 2008-12-28 10:18:54 UTC (rev 60) @@ -381,7 +381,7 @@ return $buffer[0]["Caption"]; } public function distroicon() { - return 'xp.gif'; + return 'xp.png'; } } ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jac...@us...> - 2009-01-12 20:47:04
|
Revision: 78 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=78&view=rev Author: jacky672 Date: 2009-01-12 20:46:59 +0000 (Mon, 12 Jan 2009) Log Message: ----------- Stop JavaScript alert popup when XML loading errors occurs (EXPERIMENTAL) Modified Paths: -------------- ChangeLog index.php js/README phpsysinfo.js Added Paths: ----------- js/jquery.jgrowl.pack.js templates/plugin/jquery.jgrowl.css Modified: ChangeLog =================================================================== --- ChangeLog 2009-01-12 10:45:54 UTC (rev 77) +++ ChangeLog 2009-01-12 20:46:59 UTC (rev 78) @@ -18,6 +18,7 @@ - [FIX] Fixed Bug [ 2005665 ] Re: [ 1956114 ] BSD with zero swap space - [FIX] Some fixes for recent /proc/mdstat files, also new sample file for tests - [FIX] Fedore distro must be read before Redhat + - [FIX] Stop JavaScript alert popup when XML loading errors occurs - [UPD] Updated jquery plugin nyroModal to 1.3.1 - [UPD] Remove of the hide_* functions, useless calls because of the new config.php style Modified: index.php =================================================================== --- index.php 2009-01-12 10:45:54 UTC (rev 77) +++ index.php 2009-01-12 20:46:59 UTC (rev 78) @@ -84,12 +84,14 @@ } } echo " <link type=\"text/css\" rel=\"stylesheet\" href=\"./templates/plugin/nyroModal.full.css\" />\n"; +echo " <link type=\"text/css\" rel=\"stylesheet\" href=\"./templates/plugin/jquery.jgrowl.css\" />\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.pack.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.metadata.pack.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.tablesorter.pack.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.mousewheel.pack.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.color.pack.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.nyroModal.pack.js\"></script>\n"; +echo " <script type=\"text/JavaScript\" src=\"./js/jquery.jgrowl.pack.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.timers.pack.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./phpsysinfo.js\"></script>\n"; foreach ($plugins as $plugin) { Modified: js/README =================================================================== --- js/README 2009-01-12 10:45:54 UTC (rev 77) +++ js/README 2009-01-12 20:46:59 UTC (rev 78) @@ -58,4 +58,11 @@ DESC : This plugin is capable of extracting metadata from classes, random attributes, and child elements. USED : helper for tablesorter to determine column data types, because autodetecting no longer works +jquery.jgrowl.pack.js +----------------------- +VERSION : 1.1.2 +URL : http://plugins.jquery.com/project/jGrowl +DESC : jGrowl is a jQuery plugin that raises unobtrusive messages within the browser, similar to the way that OS X's Growl Framework works +USED : show alert and error message + $Id$ Added: js/jquery.jgrowl.pack.js =================================================================== --- js/jquery.jgrowl.pack.js (rev 0) +++ js/jquery.jgrowl.pack.js 2009-01-12 20:46:59 UTC (rev 78) @@ -0,0 +1,5 @@ + +(function($){$.jGrowl=function(m,o){if($("#jGrowl").size()==0){$("<div id=\"jGrowl\"></div>").addClass($.jGrowl.defaults.position).appendTo("body");} +$("#jGrowl").jGrowl(m,o);};$.fn.jGrowl=function(m,o){if($.isFunction(this.each)){var _6=arguments;return this.each(function(){var _7=this;if($(this).data("jGrowl.instance")==undefined){$(this).data("jGrowl.instance",new $.fn.jGrowl());$(this).data("jGrowl.instance").startup(this);} +if($.isFunction($(this).data("jGrowl.instance")[m])){$(this).data("jGrowl.instance")[m].apply($(this).data("jGrowl.instance"),$.makeArray(_6).slice(1));}else{$(this).data("jGrowl.instance").notification(m,o);}});}};$.extend($.fn.jGrowl.prototype,{defaults:{header:"",sticky:false,position:"top-right",glue:"after",theme:"default",corners:"10px",check:500,life:3000,speed:"normal",easing:"swing",closer:true,closerTemplate:"<div>[ close all ]</div>",log:function(e,m,o){},beforeOpen:function(e,m,o){},open:function(e,m,o){},beforeClose:function(e,m,o){},close:function(e,m,o){},animateOpen:{opacity:"show"},animateClose:{opacity:"hide"}},element:null,interval:null,notification:function(_17,o){var _19=this;var o=$.extend({},this.defaults,o);o.log.apply(this.element,[this.element,_17,o]);var _1a=$("<div class=\"jGrowl-notification\"><div class=\"close\">×</div><div class=\"header\">"+o.header+"</div><div class=\"message\">"+_17+"</div></div>").data("jGrowl",o).addClass(o.theme).children("div.close").bind("click.jGrowl",function(){$(this).unbind("click.jGrowl").parent().trigger("jGrowl.beforeClose").animate(o.animateClose,o.speed,o.easing,function(){$(this).trigger("jGrowl.close").remove();});}).parent();(o.glue=="after")?$("div.jGrowl-notification:last",this.element).after(_1a):$("div.jGrowl-notification:first",this.element).before(_1a);$(_1a).bind("mouseover.jGrowl",function(){$(this).data("jGrowl").pause=true;}).bind("mouseout.jGrowl",function(){$(this).data("jGrowl").pause=false;}).bind("jGrowl.beforeOpen",function(){o.beforeOpen.apply(_19.element,[_19.element,_17,o]);}).bind("jGrowl.open",function(){o.open.apply(_19.element,[_19.element,_17,o]);}).bind("jGrowl.beforeClose",function(){o.beforeClose.apply(_19.element,[_19.element,_17,o]);}).bind("jGrowl.close",function(){o.close.apply(_19.element,[_19.element,_17,o]);}).trigger("jGrowl.beforeOpen").animate(o.animateOpen,o.speed,o.easing,function(){$(this).data("jGrowl").created=new Date();}).trigger("jGrowl.open");if($.fn.corner!=undefined){$(_1a).corner(o.corners);} +if($("div.jGrowl-notification:parent",this.element).size()>1&&$("div.jGrowl-closer",this.element).size()==0&&this.defaults.closer!=false){$(this.defaults.closerTemplate).addClass("jGrowl-closer").addClass(this.defaults.theme).appendTo(this.element).animate(this.defaults.animateOpen,this.defaults.speed,this.defaults.easing).bind("click.jGrowl",function(){$(this).siblings().children("div.close").trigger("click.jGrowl");if($.isFunction(_19.defaults.closer)){_19.defaults.closer.apply($(this).parent()[0],[$(this).parent()[0]]);}});}},update:function(){$(this.element).find("div.jGrowl-notification:parent").each(function(){if($(this).data("jGrowl")!=undefined&&$(this).data("jGrowl").created!=undefined&&($(this).data("jGrowl").created.getTime()+$(this).data("jGrowl").life)<(new Date()).getTime()&&$(this).data("jGrowl").sticky!=true&&($(this).data("jGrowl").pause==undefined||$(this).data("jGrowl").pause!=true)){$(this).children("div.close").trigger("click.jGrowl");}});if($(this.element).find("div.jGrowl-notification:parent").size()<2){$(this.element).find("div.jGrowl-closer").animate(this.defaults.animateClose,this.defaults.speed,this.defaults.easing,function(){$(this).remove();});}},startup:function(e){this.element=$(e).addClass("jGrowl").append("<div class=\"jGrowl-notification\"></div>");this.interval=setInterval(function(){jQuery(e).data("jGrowl.instance").update();},this.defaults.check);if($.browser.msie&&parseInt($.browser.version)<7){$(this.element).addClass("ie6");}},shutdown:function(){$(this.element).removeClass("jGrowl").find("div.jGrowl-notification").remove();clearInterval(this.interval);}});$.jGrowl.defaults=$.fn.jGrowl.prototype.defaults;})(jQuery); \ No newline at end of file Property changes on: js/jquery.jgrowl.pack.js ___________________________________________________________________ Added: svn:mime-type + text/javascript Added: svn:eol-style + LF Modified: phpsysinfo.js =================================================================== --- phpsysinfo.js 2009-01-12 10:45:54 UTC (rev 77) +++ phpsysinfo.js 2009-01-12 20:46:59 UTC (rev 78) @@ -33,7 +33,7 @@ url: 'xml.php', dataType: 'xml', error: function(){ - alert('Error loading XML document'); + $.jGrowl("Error loading XML document!", { sticky: true }); }, success: function(xml){ populateErrors(xml); @@ -72,7 +72,7 @@ url: 'xml.php', dataType: 'xml', error: function(){ - alert('Error loading XML document'); + $.jGrowl("Error loading XML document!"); }, success: function(xml){ refreshVitals(xml); @@ -172,7 +172,7 @@ dataType: 'xml', timeout: 100000, error: function(){ - alert('Error loading language.'); + $.jGrowl("Error loading language!"); }, success: function(xml) { langxml = xml; Added: templates/plugin/jquery.jgrowl.css =================================================================== --- templates/plugin/jquery.jgrowl.css (rev 0) +++ templates/plugin/jquery.jgrowl.css 2009-01-12 20:46:59 UTC (rev 78) @@ -0,0 +1,119 @@ + +div.jGrowl { + padding: 10px; + z-index: 9999; +} + +/** Special IE6 Style Positioning **/ +div.ie6 { + position: absolute; +} + +div.ie6.top-right { + right: auto; + bottom: auto; + left: expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); +} + +div.ie6.top-left { + left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); +} + +div.ie6.bottom-right { + left: expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); +} + +div.ie6.bottom-left { + left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); +} + +div.ie6.center { + left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' ); + top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' ); + width: 100%; +} + +/** Normal Style Positions **/ +body > div.jGrowl { + position: fixed; +} + +body > div.jGrowl.top-left { + left: 0px; + top: 0px; +} + +body > div.jGrowl.top-right { + right: 0px; + top: 0px; +} + +body > div.jGrowl.bottom-left { + left: 0px; + bottom: 0px; +} + +body > div.jGrowl.bottom-right { + right: 0px; + bottom: 0px; +} + +body > div.jGrowl.center { + top: 0px; + width: 50%; + left: 25%; +} + +/** Cross Browser Styling **/ +div.center div.jGrowl-notification, div.center div.jGrowl-closer { + margin-left: auto; + margin-right: auto; +} + +div.jGrowl div.jGrowl-notification, div.jGrowl div.jGrowl-closer { + background-color: #000; + color: #fff; + opacity: .85; + filter: alpha(opacity = 85); + zoom: 1; + width: 235px; + padding: 10px; + margin-top: 5px; + margin-bottom: 5px; + font-family: Tahoma, Arial, Helvetica, sans-serif; + font-size: 12px; + text-align: left; + display: none; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.jGrowl div.jGrowl-notification { + min-height: 40px; +} + +div.jGrowl div.jGrowl-notification div.header { + font-weight: bold; + font-size: 10px; +} + +div.jGrowl div.jGrowl-notification div.close { + float: right; + font-weight: bold; + font-size: 12px; + cursor: pointer; +} + +div.jGrowl div.jGrowl-closer { + height: 15px; + padding-top: 4px; + padding-bottom: 4px; + cursor: pointer; + font-size: 11px; + font-weight: bold; + text-align: center; +} Property changes on: templates/plugin/jquery.jgrowl.css ___________________________________________________________________ Added: svn:mime-type + text/css Added: svn:keywords + Id Added: svn:eol-style + LF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jac...@us...> - 2009-01-12 22:29:44
|
Revision: 79 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=79&view=rev Author: jacky672 Date: 2009-01-12 21:50:37 +0000 (Mon, 12 Jan 2009) Log Message: ----------- Add a title and a meta description Modified Paths: -------------- ChangeLog index.php Modified: ChangeLog =================================================================== --- ChangeLog 2009-01-12 20:46:59 UTC (rev 78) +++ ChangeLog 2009-01-12 21:50:37 UTC (rev 79) @@ -19,13 +19,14 @@ - [FIX] Some fixes for recent /proc/mdstat files, also new sample file for tests - [FIX] Fedore distro must be read before Redhat - [FIX] Stop JavaScript alert popup when XML loading errors occurs + - [FIX] Add a title and a meta description - [UPD] Updated jquery plugin nyroModal to 1.3.1 - [UPD] Remove of the hide_* functions, useless calls because of the new config.php style - [UPD] Some internal changes in the generated xml file - [UPD] New changelog format : [ADD] = ADDED, [FIX] = FIXED, [UPD] = UPDATED, [SEC] = SECURITY - [UPD] Language files (de) - - [UPD] refresh only values not the entire page + - [UPD] Refresh only values not the entire page - [UPD] Fedore, FreeBSD, Suse icon phpSysInfo 3.0 RC-6, 2008-06-05 Modified: index.php =================================================================== --- index.php 2009-01-12 20:46:59 UTC (rev 78) +++ index.php 2009-01-12 21:50:37 UTC (rev 79) @@ -61,6 +61,7 @@ echo " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n"; echo " <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n"; echo " <meta http-equiv=\"Content-Script-Type\" content=\"text/javascript\" />\n"; +echo " <meta name=\"Description\" content=\"PHPSysInfo is a customizable PHP Script that parses /proc, and formats information nicely. It will display information about system facts like Uptime, CPU, Memory, PCI devices, SCSI devices, IDE devices, Network adapters, Disk usage, and more.\">\n"; foreach ($plugins as $plugin) { $filename = "/plugins/" . $plugin . "/css/" . $plugin . ".css"; if (file_exists(APP_ROOT . $filename)) { @@ -100,7 +101,7 @@ echo " <script type=\"text/JavaScript\" src=\"" . $filename . "\"></script>\n"; } } -echo " <title>Loading... please wait!</title>\n"; +echo " <title>PhpSysInfo " . PSI_VERSION . "</title>\n"; echo " </head>\n"; echo " <body>\n"; echo " <div id=\"loader\">\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Big...@us...> - 2009-01-13 11:06:51
|
Revision: 83 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=83&view=rev Author: BigMichi1 Date: 2009-01-13 11:06:43 +0000 (Tue, 13 Jan 2009) Log Message: ----------- added process status plugin closes FR 1400478, 1941354 Modified Paths: -------------- ChangeLog Added Paths: ----------- plugins/ps/ plugins/ps/class.ps.inc.php plugins/ps/css/ plugins/ps/css/jquery.treeTable.css plugins/ps/gfx/ plugins/ps/gfx/toggle-collapse-dark.png plugins/ps/gfx/toggle-collapse-light.png plugins/ps/gfx/toggle-expand-dark.png plugins/ps/gfx/toggle-expand-light.png plugins/ps/js/ plugins/ps/js/jquery.treeTable.min.js plugins/ps/js/ps.js plugins/ps/lang/ plugins/ps/lang/de.xml plugins/ps/lang/en.xml sample/ps.txt Modified: ChangeLog =================================================================== --- ChangeLog 2009-01-13 10:35:11 UTC (rev 82) +++ ChangeLog 2009-01-13 11:06:43 UTC (rev 83) @@ -11,6 +11,8 @@ - [ADD] Added FR [ 1664157 ] DragonFlyBSD support - [ADD] Added FR [ 1869891 ] mbmon TCP support - [ADD] Added FR [ 1568822 ] IPIM Support + - [ADD] Added FR [ 1941354 ] process memory usage + - [ADD] Added FR [ 1400478 ] Process and packets? - [ADD] Option to hide picklist (language and/or template) - [FIX] Fixed hidenetworkinterfaces config option Added: plugins/ps/class.ps.inc.php =================================================================== --- plugins/ps/class.ps.inc.php (rev 0) +++ plugins/ps/class.ps.inc.php 2009-01-13 11:06:43 UTC (rev 83) @@ -0,0 +1,126 @@ +<?php +/*************************************************************************** + * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * + * http://phpsysinfo.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. * + ***************************************************************************/ +// +// $Id$ +// +class ps extends psi_plugin { + private $filecontent = array(); + private $result = array(); + private $debug = false; + + /** + * read the data into an internal array and also call the parent constructor + * + * @access public + */ + public function __construct() { + $buffer = ""; + parent :: __construct(__CLASS__); + if (execute_program("ps", "-eo pid,ppid,pmem,args", $buffer, $this->debug) { + $this->filecontent = explode("\n", $buffer); + unset($this->filecontent[0]); + } else { + $this->filecontent = array(); + } + } + + /** + * doing all tasks to get the required informations that the plugin needs + * result is stored in an internal array<br>the array is build like a tree, + * so that it is possible to get only a specific process with the childs + * + * @access public + */ + public function execute() { + if (empty ($this->filecontent)) { + return; + } + foreach($this->filecontent as $roworig) { + $row = preg_split("/[\s]+/", trim($roworig), 4); + if(count($row) != 4){ + break; + } + foreach($row as $key => $val) { + $items[$row[0]][$key] = $val; + } + $items[$row[1]]['childs'][$row[0]] =& $items[$row[0]]; + } + $this->result = $items[0]; + } + + /** + * generates the XML content for the plugin + * + * @access public + * @return SimpleXMLObject entire XML content for the plugin + */ + public function xml() { + $rootelement = "plugin_" . __CLASS__; + $xml = simplexml_load_string("<?xml version='1.0'?>\n<" . $rootelement . "/>"); + if (empty ($this->result)) { + return $xml; + } + $xml = $this->addchild($this->result['childs'], $xml); + return $xml; + } + + /** + * recursive function to allow appending child processes to a parent process + * + * @access private + * @param array $child part of the array which should be appended to the XML + * @param SimpleXMLObject $xml Object to which the array content is appended + * @return SimpleXMLObject Object with the appended array content + */ + private function addchild($child, &$xml) { + foreach($child as $key => $value) { + $xmlnode = $xml->addChild("Process"); + foreach($value as $key2 => $value2) { + if(!is_array($value2)) { + switch($key2) { + case 0: + $keyname = 'PID'; + break; + case 1: + $keyname = 'PPID'; + break; + case 3: + $keyname = 'Name'; + break; + case 2: + $keyname = 'MemoryUsage'; + break; + default: + $keyname = ""; + break; + } + if($keyname != "") { + $xmlnode->addChild($keyname, htmlspecialchars(($value2))); + } + } else { + $this->addchild($value2, $xml); + } + } + } + return $xml; + } +} +?> \ No newline at end of file Property changes on: plugins/ps/class.ps.inc.php ___________________________________________________________________ Added: svn:mime-type + text/x-php Added: svn:keywords + Id Added: svn:eol-style + LF Added: plugins/ps/css/jquery.treeTable.css =================================================================== --- plugins/ps/css/jquery.treeTable.css (rev 0) +++ plugins/ps/css/jquery.treeTable.css 2009-01-13 11:06:43 UTC (rev 83) @@ -0,0 +1,47 @@ +/* + $Id$ +*/ + +/* jQuery TreeTable Core 2.0 stylesheet + * + * This file contains styles that are used to display the tree table. Each tree + * table is assigned the +treeTable+ class. + * ========================================================================= */ + +/* jquery.treeTable.collapsible + * ------------------------------------------------------------------------- */ +.treeTable tr td .expander { + background-position: left center; + background-repeat: no-repeat; + cursor: pointer; + padding: 0; + zoom: 1; /* IE7 Hack */ +} + +.treeTable tr.collapsed td .expander { + background-image: url(../gfx/toggle-expand-dark.png); +} + +.treeTable tr.expanded td .expander { + background-image: url(../gfx/toggle-collapse-dark.png); +} + +/* jquery.treeTable.sortable + * ------------------------------------------------------------------------- */ +.treeTable tr.selected, .treeTable tr.accept { + background-color: #3875d7; + color: #fff; +} + +.treeTable tr.collapsed.selected td .expander, .treeTable tr.collapsed.accept td .expander { + background-image: url(../gfx/toggle-expand-light.png); +} + +.treeTable tr.expanded.selected td .expander, .treeTable tr.expanded.accept td .expander { + background-image: url(../gfx/toggle-collapse-light.png); +} + +.treeTable .ui-draggable-dragging { + color: #000; + z-index: 1; +} \ No newline at end of file Property changes on: plugins/ps/css/jquery.treeTable.css ___________________________________________________________________ Added: svn:mime-type + text/css Added: svn:keywords + Id Added: svn:eol-style + LF Added: plugins/ps/gfx/toggle-collapse-dark.png =================================================================== (Binary files differ) Property changes on: plugins/ps/gfx/toggle-collapse-dark.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: plugins/ps/gfx/toggle-collapse-light.png =================================================================== (Binary files differ) Property changes on: plugins/ps/gfx/toggle-collapse-light.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: plugins/ps/gfx/toggle-expand-dark.png =================================================================== (Binary files differ) Property changes on: plugins/ps/gfx/toggle-expand-dark.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: plugins/ps/gfx/toggle-expand-light.png =================================================================== (Binary files differ) Property changes on: plugins/ps/gfx/toggle-expand-light.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: plugins/ps/js/jquery.treeTable.min.js =================================================================== --- plugins/ps/js/jquery.treeTable.min.js (rev 0) +++ plugins/ps/js/jquery.treeTable.min.js 2009-01-13 11:06:43 UTC (rev 83) @@ -0,0 +1,10 @@ +/* jQuery treeTable Plugin 2.1 - http://ludo.cubicphuse.nl/jquery-plugins/treeTable/ */ +(function($){var options;$.fn.treeTable=function(opts){options=$.extend({},$.fn.treeTable.defaults,opts);return this.each(function(){$(this).addClass("treeTable").find("tbody tr").each(function(){if(!options.expandable||$(this)[0].className.search("child-of-")==-1){initialize($(this));}});});};$.fn.treeTable.defaults={childPrefix:"child-of-",expandable:true,indent:19,initialState:"collapsed",treeColumn:0};$.fn.collapse=function(){$(this).addClass("collapsed");childrenOf($(this)).each(function(){if(!$(this).hasClass("collapsed")){$(this).collapse();} +$(this).hide();});return this;};$.fn.expand=function(){$(this).removeClass("collapsed").addClass("expanded");childrenOf($(this)).each(function(){initialize($(this));if($(this).is(".expanded.parent")){$(this).expand();} +$(this).show();});return this;};$.fn.appendBranchTo=function(destination){var node=$(this);var parent=parentOf(node);var ancestorNames=$.map(ancestorsOf($(destination)),function(a){return a.id;});if($.inArray(node[0].id,ancestorNames)==-1&&(!parent||(destination.id!=parent[0].id))&&destination.id!=node[0].id){indent(node,ancestorsOf(node).length*options.indent*-1);if(parent){node.removeClass(options.childPrefix+parent[0].id);} +node.addClass(options.childPrefix+destination.id);move(node,destination);indent(node,ancestorsOf(node).length*options.indent);} +return this;};$.fn.reverse=function(){return this.pushStack(this.get().reverse(),arguments);};$.fn.toggleBranch=function(){if($(this).hasClass("collapsed")){$(this).expand();}else{$(this).removeClass("expanded").collapse();} +return this;};function ancestorsOf(node){var ancestors=[];while(node=parentOf(node)){ancestors[ancestors.length]=node[0];} +return ancestors;};function childrenOf(node){return $("table.treeTable tbody tr."+options.childPrefix+node[0].id);};function indent(node,value){var cell=$(node.children("td")[options.treeColumn]);var padding=parseInt(cell.css("padding-left"),10)+value;cell.css("padding-left",+padding+"px");childrenOf(node).each(function(){indent($(this),value);});};function initialize(node){if(!node.hasClass("initialized")){node.addClass("initialized");var childNodes=childrenOf(node);if(!node.hasClass("parent")&&childNodes.length>0){node.addClass("parent");} +if(node.hasClass("parent")){var cell=$(node.children("td")[options.treeColumn]);var padding=parseInt(cell.css("padding-left"),10)+options.indent;childNodes.each(function(){$($(this).children("td")[options.treeColumn]).css("padding-left",padding+"px");});if(options.expandable){cell.prepend('<span style="margin-left: -'+options.indent+'px; padding-left: '+options.indent+'px" class="expander"></span>');$(cell[0].firstChild).click(function(){node.toggleBranch();});if(!(node.hasClass("expanded")||node.hasClass("collapsed"))){node.addClass(options.initialState);} +if(node.hasClass("collapsed")){node.collapse();}else if(node.hasClass("expanded")){node.expand();}}}}};function move(node,destination){node.insertAfter(destination);childrenOf(node).reverse().each(function(){move($(this),node[0]);});};function parentOf(node){var classNames=node[0].className.split(' ');for(key in classNames){if(classNames[key].match("child-of-")){return $("#"+classNames[key].substring(9));}}};})(jQuery); \ No newline at end of file Property changes on: plugins/ps/js/jquery.treeTable.min.js ___________________________________________________________________ Added: svn:mime-type + text/javascript Added: svn:eol-style + LF Added: plugins/ps/js/ps.js =================================================================== --- plugins/ps/js/ps.js (rev 0) +++ plugins/ps/js/ps.js 2009-01-13 11:06:43 UTC (rev 83) @@ -0,0 +1,110 @@ +/*************************************************************************** + * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * + * http://phpsysinfo.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. * + ***************************************************************************/ +// +// $Id$ +// + +$(document).ready(function(){ + var show = false; + + appendjs("./plugins/ps/js/jquery.treeTable.min.js"); + appendcss("./plugins/ps/css/jquery.treeTable.css"); + + $("#plugin_ps").append(buildBlock("ps", "Process Status", "001", true)); + $("#plugin_ps").css("width","915px"); + + request(); + + $("#reload_psTable").click(function(id) { + request(); + $("#DateTime").html("(<span id=\"lang_plugin_ps_002\">Last Refresh</span>: " + datetime() + ")"); + }); + + function request(){ + $.ajax({ + url: "xml.php?plugin=ps", + dataType: "xml", + error: function() { + $.jGrowl("Error loading XML document for Plugin ps!"); + }, + success: function(xml) { + populatePs(xml); + if(show) { + plugin_translate("ps"); + $("#plugin_ps").show(); + } + } + }); + } + + function populatePs(xml) { + var plugins, ps; + + $("#plugin_psTable").html(" "); + $("Plugins",xml).each(function(id){ + plugins = $("Plugins", xml).get(id); + $("plugin_ps", plugins).each(function(id){ + ps = $("plugin_ps", plugins).get(id); + $("#plugin_psTable").append(buildTable(ps)); + $("#tree_ps").treeTable(); + show = true; + }); + }); + } + + function buildTable(xml) { + var html = ""; + var ps, pid, ppid, name, percent; + + html += "<table id=\"tree_ps\">\n"; + html += " <thead>\n"; + html += " <th><span id=\"lang_plugin_ps_003\">Command</span></th>\n"; + html += " <th style=\"width:80px;\"><span id=\"lang_plugin_ps_004\">Process ID</span></th>\n"; + html += " <th style=\"width:80px;\"><span id=\"lang_plugin_ps_005\">Parent ID</span></th>\n"; + html += " <th style=\"width:110px;\"><span id=\"lang_plugin_ps_006\">Memory Usage</span></th>\n"; + html += " </thead>\n"; + html += " <tbody>\n" + html += " <tr id=\"node-0\">\n"; + html += " <td>[ROOT]</td>\n"; + html += " <td> </td>\n"; + html += " <td> </td>\n"; + html += " <td> </td>\n"; + html += " </tr>\n"; + + $("Process",xml).each(function(id) { + ps = $("Process",xml).get(id); + pid = $("PID",ps).text(); + ppid = $("PPID",ps).text(); + name = $("Name",ps).text(); + percent = $("MemoryUsage",ps).text(); + + html += " <tr id=\"node-" + pid + "\" class=\"child-of-node-" + ppid + "\">\n"; + html += " <td>" + name + "</td>\n"; + html += " <td>" + pid + "</td>\n"; + html += " <td>" + ppid + "</td>\n"; + html += " <td>" + createBar(percent) + "</td>\n"; + html += " </tr>\n"; + }); + + html += " </tbody>\n"; + html += "</table>\n"; + return html; + } +}); \ No newline at end of file Property changes on: plugins/ps/js/ps.js ___________________________________________________________________ Added: svn:mime-type + text/javascript Added: svn:keywords + Id Added: svn:eol-style + LF Added: plugins/ps/lang/de.xml =================================================================== --- plugins/ps/lang/de.xml (rev 0) +++ plugins/ps/lang/de.xml 2009-01-13 11:06:43 UTC (rev 83) @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> + <!-- $Id$ --> + <!-- + phpSysInfo language file Language: German Created by: Michael Cramer + --> +<tns:translationPlugin language="german" charset="utf-8" + xmlns:tns="http://phpsysinfo.sourceforge.net/translation-plugin" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://phpsysinfo.sourceforge.net/translation-plugin ../../../language/translation-plugin.xsd"> + <expression id="plugin_ps_001" name="ps_title"> + <exp>Prozess Status</exp> + </expression> + <expression id="plugin_ps_002" name="ps_date"> + <exp>Letzte Aktualisierung</exp> + </expression> + <expression id="plugin_ps_003" name="ps_command"> + <exp>Befehl</exp> + </expression> + <expression id="plugin_ps_004" name="ps_pid"> + <exp>Prozess ID</exp> + </expression> + <expression id="plugin_ps_005" name="ps_ppid"> + <exp>Eltern ID</exp> + </expression> + <expression id="plugin_ps_006" name="ps_mem"> + <exp>Speichernutzung</exp> + </expression> +</tns:translationPlugin> \ No newline at end of file Property changes on: plugins/ps/lang/de.xml ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:keywords + Id Added: svn:eol-style + LF Added: plugins/ps/lang/en.xml =================================================================== --- plugins/ps/lang/en.xml (rev 0) +++ plugins/ps/lang/en.xml 2009-01-13 11:06:43 UTC (rev 83) @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> + <!-- $Id$ --> + <!-- + phpSysInfo language file Language: English Created by: Michael Cramer + --> +<tns:translationPlugin language="english" charset="utf-8" + xmlns:tns="http://phpsysinfo.sourceforge.net/translation-plugin" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://phpsysinfo.sourceforge.net/translation-plugin ../../../language/translation-plugin.xsd"> + <expression id="plugin_ps_001" name="ps_title"> + <exp>Process Status</exp> + </expression> + <expression id="plugin_ps_002" name="ps_date"> + <exp>Last refresh</exp> + </expression> + <expression id="plugin_ps_003" name="ps_command"> + <exp>Command</exp> + </expression> + <expression id="plugin_ps_004" name="ps_pid"> + <exp>Process ID</exp> + </expression> + <expression id="plugin_ps_005" name="ps_ppid"> + <exp>Parent ID</exp> + </expression> + <expression id="plugin_ps_006" name="ps_mem"> + <exp>Memory Usage</exp> + </expression> +</tns:translationPlugin> \ No newline at end of file Property changes on: plugins/ps/lang/en.xml ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:keywords + Id Added: svn:eol-style + LF Added: sample/ps.txt =================================================================== (Binary files differ) Property changes on: sample/ps.txt ___________________________________________________________________ Added: svn:mime-type + plain/text This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Big...@us...> - 2009-01-13 14:36:13
|
Revision: 84 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=84&view=rev Author: BigMichi1 Date: 2009-01-13 14:36:08 +0000 (Tue, 13 Jan 2009) Log Message: ----------- made page html compatible some translation changes Modified Paths: -------------- index.php phpsysinfo.js Modified: index.php =================================================================== --- index.php 2009-01-13 11:06:43 UTC (rev 83) +++ index.php 2009-01-13 14:36:08 UTC (rev 84) @@ -118,17 +118,17 @@ echo " <img id=\"warn\" style=\"vertical-align: middle; display:none; border:0px;\" src=\"./gfx/attention.gif\" alt=\"warning\" />\n"; echo " </a>\n"; echo " <span id=\"title\">\n"; -echo " <span lang=\"001\">System information</span>\n"; +echo " <span id=\"lang001\">System information</span>\n"; echo " : <span id=\"s_hostname_title\"></span>\n"; -echo " (<span id='s_ip_title'></span>)\n"; +echo " (<span id=\"s_ip_title\"></span>)\n"; echo " </span>\n"; echo " </h1>\n"; echo " <div id=\"select\">\n"; -echo " <span lang='044'>Template</span>\n"; +echo " <span id=\"lang044\">Template</span>\n"; echo " <select id=\"template\" name=\"template\">\n"; echo $tpl_option_list; echo " </select>\n"; -echo " <span lang='045'>Language</span>\n"; +echo " <span id=\"lang045\">Language</span>\n"; echo " <select id=\"lang\" name=\"lang\">\n"; $dirlist = gdc('./language/'); sort($dirlist); @@ -146,89 +146,89 @@ echo " </select>\n"; echo " </div>\n"; echo " <div id=\"vitals\">\n"; -echo " <h2 lang=\"002\">System vitals</h2>\n"; +echo " <h2><span id=\"lang002\">System vitals</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"vitalsTable\" cellspacing=\"0\">\n"; echo " <tr>\n"; -echo " <td lang=\"003\" style=\"width:160px;\">Hostname</td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang003\">Hostname</span></td>\n"; echo " <td><span id=\"s_hostname\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"004\" style=\"width:160px;\">Listening IP</td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang004\">Listening IP</span></td>\n"; echo " <td><span id=\"s_ip\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"005\" style=\"width:160px;\">Kernel Version</td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang005\">Kernel Version</span></td>\n"; echo " <td><span id=\"s_kernel\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"006\" style=\"width:160px;\">Distro Name</td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang006\">Distro Name</span></td>\n"; echo " <td><span id=\"s_distro\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"007\" style=\"width:160px;\">Uptime</td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang007\">Uptime</span></td>\n"; echo " <td><span id=\"s_uptime\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"008\" style=\"width:160px;\">Current Users</td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang008\">Current Users</span></td>\n"; echo " <td><span id=\"s_users\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"009\" style=\"width:160px;\">Load Averages</td>\n"; -echo " <td><span id=\"s_loadavg\"></span></td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang009\">Load Averages</span></td>\n"; +echo " <td id=\"s_loadavg\"></td>\n"; echo " </tr>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"hardware\">\n"; -echo " <h2 lang=\"010\">Hardware Information</h2>\n"; +echo " <h2><span id=\"lang010\">Hardware Information</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"cpuTable\" cellspacing=\"0\">\n"; echo " <tr>\n"; -echo " <td lang=\"011\" style=\"width:160px\">Processors</td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang011\">Processors</span></td>\n"; echo " <td><span id=\"s_num\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"012\" style=\"width:160px\">Model</td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang012\">Model</span></td>\n"; echo " <td><span id=\"s_model\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"013\" style=\"width:160px\">CPU Speed</td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang013\">CPU Speed</span></td>\n"; echo " <td><span id=\"s_speed\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"014\" style=\"width:160px\">BUS Speed</td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang014\">BUS Speed</span></td>\n"; echo " <td><span id=\"s_bus\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"015\" style=\"width:160px\">Cache Size</td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang015\">Cache Size</span></td>\n"; echo " <td><span id=\"s_cache\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td lang=\"016\" style=\"width:160px\">Bogomips</td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang016\">Bogomips</span></td>\n"; echo " <td><span id=\"s_bogo\"></span></td>\n"; echo " </tr>\n"; echo " </table>\n"; -echo " <h3 style=\"cursor: pointer\" id=\"sPci\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span lang=\"017\">PCI devices</span></h3>\n"; -echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hPci\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span lang=\"017\">PCI devices</span></h3>\n"; +echo " <h3 style=\"cursor: pointer\" id=\"sPci\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang017_1\">PCI devices</span></h3>\n"; +echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hPci\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang017_2\">PCI devices</span></h3>\n"; echo " <table id=\"pciTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sIde\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span lang=\"018\">IDE devices</span></h3>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hIde\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span lang=\"018\">IDE devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sIde\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang018_3\">IDE devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hIde\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang018_4\">IDE devices</span></h3>\n"; echo " <table class=\"odd\" id=\"ideTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; -echo " <h3 style=\"cursor: pointer\" id=\"sScsi\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span lang=\"019\">SCSI devices</span></h3>\n"; -echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hScsi\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span lang=\"019\">SCSI device</span></h3>\n"; +echo " <h3 style=\"cursor: pointer\" id=\"sScsi\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang019_5\">SCSI devices</span></h3>\n"; +echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hScsi\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang019_6\">SCSI device</span></h3>\n"; echo " <table id=\"scsiTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sUsb\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span lang=\"020\">USB devices</span></h3>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hUsb\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span lang=\"020\">USB devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sUsb\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang020_7\">USB devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hUsb\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang020_8\">USB devices</span></h3>\n"; echo " <table class=\"odd\" id=\"usbTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; echo " </div>\n"; echo " <div id=\"memory\">\n"; -echo " <h2 lang=\"027\">Memory Usage</h2>\n"; +echo " <h2><span id=\"lang027\">Memory Usage</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"memoryTable\" cellspacing=\"0\">\n"; echo " <thead>\n"; echo " <tr>\n"; -echo " <th lang=\"034\" style=\"width:200px;\">Type</th>\n"; -echo " <th lang=\"033\" style=\"width:285px;\">Percent</th>\n"; -echo " <th class=\"right\" lang=\"035\" style=\"width:100px;\">Free</th>\n"; -echo " <th class=\"right\" lang=\"036\" style=\"width:100px;\">Used</th>\n"; -echo " <th class=\"right\" lang=\"037\" style=\"width:100px;\">Total</th>\n"; +echo " <th style=\"width:200px;\"><span id=\"lang034_9\">Type</span></th>\n"; +echo " <th style=\"width:285px;\"><span id=\"lang033_10\">Percent</span></th>\n"; +echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang035_11\">Free</span></th>\n"; +echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang036_12\">Used</span></th>\n"; +echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang037_13\">Total</span></th>\n"; echo " </tr>\n"; echo " </thead>\n"; echo " <tbody id=\"tbody_memory\">\n"; @@ -241,38 +241,38 @@ echo " <thead>\n"; echo " <tr>\n"; echo " <th class=\"{sorter: 'text'}\" style=\"width:100px;\"><span id=\"lang031\">Mount</span></th>\n"; -echo " <th class=\"{sorter: 'text'}\" style=\"width:50px;\"><span id=\"lang034\">Type</span></th>\n"; +echo " <th class=\"{sorter: 'text'}\" style=\"width:50px;\"><span id=\"lang034_14\">Type</span></th>\n"; echo " <th class=\"{sorter: 'text'}\" style=\"width:120px;\"><span id=\"lang032\">Partition</span></th>\n"; echo " <th class=\"{sorter: 'digit'}\"><span id=\"lang033\">Percent used</span></th>\n"; -echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang035\">Free</span></th>\n"; -echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang036\">Used</span></th>\n"; -echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang037\">Total</span></th>\n"; +echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang035_15\">Free</span></th>\n"; +echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang036_16\">Used</span></th>\n"; +echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang037_17\">Total</span></th>\n"; echo " </tr>\n"; echo " </thead>\n"; -echo " <tbody>\n"; -echo " </tbody>\n"; echo " <tfoot>\n"; echo " <tr style=\"font-weight : bold\">\n"; echo " <td> </td>\n"; echo " <td> </td>\n"; echo " <td><span id=\"lang038\">Totals</span></td>\n"; -echo " <td><span id=\"s_fs_total\"></span></td>\n"; +echo " <td id=\"s_fs_total\"></td>\n"; echo " <td class=\"right\"><span id=\"s_fs_tfree\"></span></td>\n"; echo " <td class=\"right\"><span id=\"s_fs_tused\"></span></td>\n"; echo " <td class=\"right\"><span id=\"s_fs_tsize\"></span></td>\n"; echo " </tr>\n"; echo " </tfoot>\n"; +echo " <tbody>\n"; +echo " </tbody>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"network\">\n"; -echo " <h2 lang=\"021\">Network Usage</h2>\n"; +echo " <h2><span id=\"lang021\">Network Usage</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"networkTable\" cellspacing=\"0\">\n"; echo " <thead>\n"; echo " <tr>\n"; -echo " <th lang=\"022\">Interface</th>\n"; -echo " <th class=\"right\" lang=\"023\" style=\"width:60px;\">Recieved</th>\n"; -echo " <th class=\"right\" lang=\"024\" style=\"width:60px;\">Transfered</th>\n"; -echo " <th class=\"right\" lang=\"025\" style=\"width:60px;\">Error/Drops</th>\n"; +echo " <th><span id=\"lang022\">Interface</span></th>\n"; +echo " <th class=\"right\" style=\"width:60px;\"><span id=\"lang023\">Recieved</span></th>\n"; +echo " <th class=\"right\" style=\"width:60px;\"><span id=\"lang024\">Transfered</span></th>\n"; +echo " <th class=\"right\" style=\"width:60px;\"><span id=\"lang025\">Error/Drops</span></th>\n"; echo " </tr>\n"; echo " </thead>\n"; echo " <tbody id=\"tbody_network\">\n"; @@ -280,25 +280,25 @@ echo " </table>\n"; echo " </div>\n"; echo " <div id=\"voltage\" style=\"display: none;\">\n"; -echo " <h2 lang=\"052\">Voltage</h2>\n"; +echo " <h2><span id=\"lang052\">Voltage</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"voltageTable\" cellspacing=\"0\">\n"; -echo " <tr><th lang=\"059\">Label</th><th class=\"right\" lang=\"052\">Voltage</th><th class=\"right\" lang=\"055\" style=\"width: 60px;\">Min</th><th class=\"right\" lang=\"056\" style=\"width: 60px;\">Max</th></tr>\n"; +echo " <tr><th><span id=\"lang059\">Label</span></th><th class=\"right\"><span id=\"lang052\">Voltage</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang055\">Min</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang056\">Max</span></th></tr>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"temp\" style=\"display: none;\">\n"; -echo " <h2 lang=\"051\">Temperature</h2>\n"; +echo " <h2><span id=\"lang051\">Temperature</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"tempTable\" cellspacing=\"0\">\n"; -echo " <tr><th lang=\"059\">Label</th><th class=\"right\" lang=\"054\" style=\"width: 60px;\">Value</th><th class=\"right\" lang=\"058\" style=\"width: 60px;\">Limit</th></tr>\n"; +echo " <tr><th><span id=\"lang059\">Label</span></th><th class=\"right\"style=\"width: 60px;\"><span id=\"lang054\">Value</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang058\">Limit</span></th></tr>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"fan\" style=\"display: none;\">\n"; -echo " <h2 lang=\"053\">Fan</h2>\n"; +echo " <h2><span id=\"lang053\">Fan</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"fanTable\" cellspacing=\"0\">\n"; -echo " <tr><th lang=\"059\">Label</th><th class=\"right\" lang=\"054\" style=\"width: 60px;\">Value</th><th class=\"right\" lang=\"055\" style=\"width: 60px;\">Min</th></tr>\n"; +echo " <tr><th><span id=\"lang059\">Label</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang054\">Value</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang055\">Min</span></th></tr>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"ups\" style=\"display: none;\">\n"; -echo " <h2 lang=\"068\">UPS information</h2>\n"; +echo " <h2><span id=\"lang068\">UPS information</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"upsTable\" cellspacing=\"0\">\n"; echo " <tr><td></td><td style=\"width: 250px;\"></td></tr>\n"; echo " </table>\n"; @@ -308,7 +308,7 @@ echo " </div>\n"; } echo " <div id=\"footer\">\n"; -echo " <span lang=\"047\">Generated by</span> <a href=\"http://phpsysinfo.sourceforge.net/\">phpSysInfo - <span id=\"version\"></span></a>\n"; +echo " <span id=\"lang047\">Generated by</span> <a href=\"http://phpsysinfo.sourceforge.net/\">phpSysInfo - <span id=\"version\"></span></a>\n"; echo " </div>\n"; echo " </div>\n"; echo " </body>\n"; Modified: phpsysinfo.js =================================================================== --- phpsysinfo.js 2009-01-13 11:06:43 UTC (rev 83) +++ phpsysinfo.js 2009-01-13 14:36:08 UTC (rev 84) @@ -26,6 +26,7 @@ var plugin_liste = new Array(); var langxml; var sorting; +var langcounter = 30; if(cookie_template) switchStyle(cookie_template); $(document).ready(function() { @@ -48,7 +49,6 @@ refreshTemp(xml); refreshVoltage(xml); refreshFan(xml); - refreshHddtemp(xml); refreshUps(xml); getLanguage(cookie_language); @@ -85,7 +85,6 @@ refreshVoltage(xml); refreshFan(xml); refreshTemp(xml); - refreshHddtemp(xml); refreshUps(xml); $('.stripeMe tr:nth-child(even)').addClass('odd'); @@ -189,19 +188,11 @@ */ function changeLanguage() { var langId = langStr = ""; - // TODO: old function, needs to be removed after all lang="???" are converted into <span id="lang???"></span> - $("[@lang]").each(function(i) { - langId = this.lang; - langStr = $("expression[@id="+langId+"]",langxml); - if(langStr.length > 0) { - this.innerHTML = trim(langStr.text()); - } - }); $('span[@id*=lang]').each(function(i) { - langId = this.getAttribute('id').substring(4); - langStr = $("expression[@id=" + langId + "]",langxml); + langId = this.getAttribute('id').substring(4,7); + langStr = $("expression[@id=" + langId + "] exp",langxml); if(langStr.length > 0) { - this.innerHTML = trim(langStr.text()); + this.innerHTML = langStr.text(); } }); } @@ -227,7 +218,7 @@ loadavg = $("LoadAvg",vital).text(); if($("CPULoad",vital).length == 1) { cpuload = $("CPULoad",vital).text(); - loadavg = loadavg + createBar(cpuload); + loadavg = loadavg + "<br/>" + createBar(cpuload); } document.title = "System information: " + hostname + " (" + ip + ")"; $("#s_hostname_title").html(hostname); @@ -274,11 +265,11 @@ var showPickListTemplate = $("showPickListTemplate",options).text(); if(showPickListTemplate == 'false') { $('#template').hide(); - $('span[@lang=044]').hide(); + $('span[@id=lang044]').hide(); } if(showPickListLang == 'false') { $('#lang').hide(); - $('span[@lang=045]').hide(); + $('span[@id=lang045]').hide(); } }); @@ -292,7 +283,7 @@ used = $("Used",vital).text(); total = $("Total",vital).text(); percent = $("Percent",vital).text(); - $("#tbody_memory").append("<tr><td style=\"width:200px;\"><span lang='028'>" + $("expression[id=028]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(percent) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(free, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(used, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(total, xml) + "</td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:200px;\"><span id=\"lang028\">" + $("expression[id=028]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(percent) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(free, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(used, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(total, xml) + "</td></tr>"); if($("App", vital).length > 0) { app = $("App", vital).text(); @@ -301,9 +292,9 @@ buffp = $("BuffersPercent", vital).text(); cached = $("Cached", vital).text(); cachedp = $("CachedPercent", vital).text(); - $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span lang='064'>" + $("expression[id=064]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(appp) + "</td><td class=\"right\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px\">" + formatBytes(app, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); - $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span lang='065'>" + $("expression[id=065]",langxml).text() + "</span></td><td style=\"width:285px\">" + createBar(buffp) + "</td><td class=\"rigth\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px;\">" + formatBytes(buff, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); - $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span lang='066'>" + $("expression[id=066]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(cachedp) + "</td><td class=\"right\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px;\">" + formatBytes(cached, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span id=\"lang064\">" + $("expression[id=064]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(appp) + "</td><td class=\"right\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px\">" + formatBytes(app, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span id=\"lang065\">" + $("expression[id=065]",langxml).text() + "</span></td><td style=\"width:285px\">" + createBar(buffp) + "</td><td class=\"rigth\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px;\">" + formatBytes(buff, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span id=\"lang066\">" + $("expression[id=066]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(cachedp) + "</td><td class=\"right\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px;\">" + formatBytes(cached, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); } }); @@ -314,7 +305,7 @@ used = $("Used",vital).text(); total = $("Total",vital).text(); percent = $("Percent",vital).text(); - $("#tbody_memory").append("<tr><td style=\"width:200px;\"><span lang='029'>" + $("expression[id=029]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(percent) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(free, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(used, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(total, xml) + "</td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:200px;\"><span id=\"lang029\">" + $("expression[id=029]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(percent) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(free, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(used, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(total, xml) + "</td></tr>"); if($("Swapdevices", xml).length > 0) { $("Swapdevices",xml).each(function(id) { @@ -461,12 +452,18 @@ }); $("#" + table).empty(); if(text == "") { - $("#" + table).append("<tr><td><ul style=\"margin-left:10px;\"><li><span lang='042'>" + $("expression[id=042]",langxml).text() + "</span></li></ul></td></tr>"); + $("#" + table).append("<tr><td><ul style=\"margin-left:10px;\"><li><span id=\"lang042\">" + $("expression[id=042]",langxml).text() + "</span></li></ul></td></tr>"); } else { $("#" + table).append("<tr><td><ul style=\"margin-left:10px;\">" + text + "</ul></td></tr>" ); } } +/** + * determine if we have Voltage information in the XML + * + * @param xml jQuery-Object of the xml file + * @return true if Voltage information are in XML, false if there are no information + */ function checkForVoltage(xml) { var voltage; voltage = $("Voltage",xml).length; @@ -476,6 +473,12 @@ return false; } +/** + * determine if we have Temp information in the XML + * + * @param xml jQuery-Object of the xml file + * @return true if Temp information are in XML, false if there are no information + */ function checkForTemp(xml) { var voltage; voltage = $("Temperature",xml).length; @@ -485,6 +488,12 @@ return false; } +/** + * determine if we have Fan information in the XML + * + * @param xml jQuery-Object of the xml file + * @return true if Fan information are in XML, false if there are no information + */ function checkForFan(xml) { var fan; fan = $("Fans",xml).length; @@ -494,6 +503,12 @@ return false; } +/** + * determine if we have HDDTemp information in the XML + * + * @param xml jQuery-Object of the xml file + * @return true if UPS information are in XML, false if there are no information + */ function checkForHddtemp(xml) { var voltage; voltage = $("HDDTemp",xml).length; @@ -503,6 +518,12 @@ return false; } +/** + * determine if we have UPS information in the XML + * + * @param xml jQuery-Object of the xml file + * @return true if UPS information are in XML, false if there are no information + */ function checkForUPSinfo(xml) { var voltage; voltage = $("UPSinfo",xml).length; @@ -512,8 +533,14 @@ return false; } +/** + * build the Voltage information into a separate block, if there is no UPS information available the + * entire table will be removed to avoid HTML warnings + * + * @param xml jQuery-Object of the xml file + */ function refreshVoltage(xml) { - var voltage, item; + var voltage, item, label, value, max, min; $("#voltageTable").empty(); if(checkForVoltage(xml)) { $("Voltage",xml).each(function(id) { @@ -524,15 +551,25 @@ value = $("Value",item).text(); max = $("Max",item).text(); min = $("Min",item).text(); - $("#voltageTable").append("<tr><td>" + label + "</td><td class=\"right\">" + round(value,2) + " <span lang='062'>" + $("expression[id=062]",langxml).text() + "</span></td><td class=\"right\">" + round(min,2) + " <span lang='062'>" + $("expression[id=062]",langxml).text() + "</span></td><td class=\"right\">" + round(max,2) + " <span lang='062'>" + $("expression[id=062]",langxml).text() + "</span></td></tr>"); + $("#voltageTable").append("<tr><td>" + label + "</td><td class=\"right\">" + round(value,2) + " <span id=\"lang062\">" + $("expression[id=062]",langxml).text() + "</span></td><td class=\"right\">" + round(min,2) + " <span id=\"lang062\">" + $("expression[id=062]",langxml).text() + "</span></td><td class=\"right\">" + round(max,2) + " <span id=\"lang062\">" + $("expression[id=062]",langxml).text() + "</span></td></tr>"); }); }); $("#voltage").show(); + } else { + $("#voltage").remove(); } } +/** + * build the block content for the temperature block, this includes normal temperature information in the XML + * and also the HDDTemp information, if there are no information in both subtrees the entire table will be removed + * to avoid HTML warnings + * + * @param xml jQuery-Object of the xml file + */ function refreshTemp(xml) { - var temp, item; + var temp, item, label, value, model, limit; + var values = false; $("#tempTable").empty(); if(checkForTemp(xml)) { $("Temperature",xml).each(function(id) { @@ -545,14 +582,40 @@ value = value.replace(/\+/g,""); limit = limit.replace(/\+/g,""); $("#tempTable").append("<tr><td>" + label + "</td><td class=\"right\">" + formatTemp(value, xml) + "</td><td class=\"right\">" + formatTemp(limit, xml) + "</td></tr>"); + values = true; }); }); - $("#temp").show(); } + if(checkForHddtemp(xml)) { + $("HDDTemp",xml).each(function(id) { + temp = $("HDDTemp",xml).get(id); + $("Item",temp).each(function(iid) { + item = $("Item",temp).get(iid); + label = $("Label",item).text(); + value = $("Value",item).text(); + model = $("Model",item).text(); + if(value != 'NA') { + $("#tempTable").append("<tr><td>" + model + "</td><td class=\"right\">" + formatTemp(value, xml) + "</td><td> </td></tr>"); + values = true; + } + }); + }); + } + if(values) { + $("#temp").show(); + } else { + $("#temp").remove(); + } } +/** + * build the Fan information into a separate block, if there is no UPS information available the + * entire table will be removed to avoid HTML warnings + * + * @param xml jQuery-Object of the xml file + */ function refreshFan(xml) { - var fan, item; + var fan, item, label, value, min; $("#fanTable").empty(); if(checkForFan(xml)) { $("Fans",xml).each(function(id) { @@ -562,34 +625,24 @@ label = $("Label",item).text(); value = $("Value",item).text(); min = $("Min",item).text(); - $("#fanTable").append("<tr><td>" + label + "</td><td class=\"right\">" + value + " <span lang='063'>" + $("expression[id=063]",langxml).text() + "</span></td><td class=\"right\">" + min + " <span lang='063'>" + $("expression[id=063]",langxml).text() + "</span></td></tr>"); + $("#fanTable").append("<tr><td>" + label + "</td><td class=\"right\">" + value + " <span id=\"lang063\">" + $("expression[id=063]",langxml).text() + "</span></td><td class=\"right\">" + min + " <span id=\"lang063\">" + $("expression[id=063]",langxml).text() + "</span></td></tr>"); }); }); $("#fan").show(); + } else { + $("#fan").remove(); } } -function refreshHddtemp(xml) { - var temp, item; - if(checkForHddtemp(xml)) { - $("HDDTemp",xml).each(function(id) { - temp = $("HDDTemp",xml).get(id); - $("Item",temp).each(function(iid) { - item = $("Item",temp).get(iid); - label = $("Label",item).text(); - value = $("Value",item).text(); - model = $("Model",item).text(); - if(value != 'NA') { - $("#tempTable").append("<tr><td>" + model + "</td><td class=\"right\">" + formatTemp(value, xml) + "</td><td> </td></tr>"); - } - }); - }); - $("#temp").show(); - } -} - +/** + * build the UPS information into a separate block, if there is no UPS information available the + * entire table will be removed to avoid HTML warnings + * + * @param xml jQuery-Object of the xml file + */ function refreshUps(xml) { - var upses, ups; + var upses, ups, name, model, mode, start_time, upsstatus, temperature, outages_count, last_outage, last_outage_finish; + var line_voltage, load_percent, battery_voltage, battery_charge_percent, time_left_minutes; $("#upsTable").empty(); if(checkForUPSinfo(xml)) { $("UPSinfo",xml).each(function(id) { @@ -612,23 +665,31 @@ time_left_minutes = $("TimeLeftMinutes", ups).text(); $("#upsTable").append('<tr><th colspan="2" style="text-align: center"><strong>' + name + ' (' + mode + ')</strong></th></tr>'); - $("#upsTable").append('<tr><td style="width:160px" lang="070">' + $("expression[id=070]",langxml).text() + '</td><td>' + model + '</td></tr>'); - $("#upsTable").append('<tr><td style="width:160px" lang="072">' + $("expression[id=072]",langxml).text() + '</td><td>' + start_time + '</td></tr>'); - $("#upsTable").append('<tr><td style="width:160px" lang="073">' + $("expression[id=073]",langxml).text() + '</td><td>' + upsstatus + '</td></tr>'); - - if (temperature != '') $("#upsTable").append('<tr><td style="width:160px" lang="084">' + $("expression[id=084]",langxml).text() + '</td><td>' + temperature + '</td></tr>'); - if (outages_count != '') $("#upsTable").append('<tr><td style="width:160px" lang="074">' + $("expression[id=074]",langxml).text() + '</td><td>' + outages_count + '</td></tr>'); - if (last_outage != '') $("#upsTable").append('<tr><td style="width:160px" lang="075">' + $("expression[id=075]",langxml).text() + '</td><td>' + last_outage + '</td></tr>'); - if (last_outage_finish != '') $("#upsTable").append('<tr><td style="width:160px" lang="076">' + $("expression[id=076]",langxml).text() + '</td><td>' + last_outage_finish + '</td></tr>'); - if (line_voltage != '') $("#upsTable").append('<tr><td style="width:160px" lang="077">' + $("expression[id=077]",langxml).text() + '</td><td>' + line_voltage + ' <span lang="082">' + $("expression[id=082]",langxml).text() + '</span></td></tr>'); - if (load_percent != '') $("#upsTable").append('<tr><td style="width:160px" lang="078">' + $("expression[id=078]",langxml).text() + '</td><td>' + createBar(load_percent) + '</td></tr>'); - if (battery_voltage != '') $("#upsTable").append('<tr><td style="width:160px" lang="079">' + $("expression[id=079]",langxml).text() + '</td><td>' + battery_voltage + ' <span lang="082">' + $("expression[id=082]",langxml).text() + '</span></td></tr>'); - $("#upsTable").append('<tr><td style="width:160px" lang="080">' + $("expression[id=080]",langxml).text() + '</td><td>' + createBar(battery_charge_percent) + '</td></tr>'); - $("#upsTable").append('<tr><td style="width:160px" lang="081">' + $("expression[id=081]",langxml).text() + '</td><td>' + time_left_minutes + ' <span lang="083">minutes</span></td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang070">' + $("expression[id=070]",langxml).text() + '</span></td><td>' + model + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang072">' + $("expression[id=072]",langxml).text() + '</span></td><td>' + start_time + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang073">' + $("expression[id=073]",langxml).text() + '</span></td><td>' + upsstatus + '</td></tr>'); + if (temperature != '') + $("#upsTable").append('<tr><td style="width:160px"><span id="lang084">' + $("expression[id=084]",langxml).text() + '</span></td><td>' + temperature + '</td></tr>'); + if (outages_count != '') + $("#upsTable").append('<tr><td style="width:160px"><span id="lang074">' + $("expression[id=074]",langxml).text() + '</span></td><td>' + outages_count + '</td></tr>'); + if (last_outage != '') + $("#upsTable").append('<tr><td style="width:160px"><span id="lang075">' + $("expression[id=075]",langxml).text() + '</span></td><td>' + last_outage + '</td></tr>'); + if (last_outage_finish != '') + $("#upsTable").append('<tr><td style="width:160px"><span id="lang076">' + $("expression[id=076]",langxml).text() + '</span></td><td>' + last_outage_finish + '</td></tr>'); + if (line_voltage != '') + $("#upsTable").append('<tr><td style="width:160px"><span id="lang077">' + $("expression[id=077]",langxml).text() + '</span></td><td>' + line_voltage + ' <span id="lang082">' + $("expression[id=082]",langxml).text() + '</span></td></tr>'); + if (load_percent != '') + $("#upsTable").append('<tr><td style="width:160px"><span id="lang078">' + $("expression[id=078]",langxml).text() + '</span></td><td>' + createBar(load_percent) + '</td></tr>'); + if (battery_voltage != '') + $("#upsTable").append('<tr><td style="width:160px"><span id="lang079">' + $("expression[id=079]",langxml).text() + '</span></td><td>' + battery_voltage + ' <span id="lang082">' + $("expression[id=082]",langxml).text() + '</span></td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang080">' + $("expression[id=080]",langxml).text() + '</span></td><td>' + createBar(battery_charge_percent) + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang081">' + $("expression[id=081]",langxml).text() + '</span></td><td>' + time_left_minutes + ' <span id="lang083">minutes</span></td></tr>'); }); }); $("#ups").show(); - } //if we have upses + } else { + $("#upsTable").remove(); + } } function populateErrors(xml) { @@ -658,12 +719,12 @@ intMin = Math.floor(intMin-(intDays*60*24)-(intHours*60)); if(intDays != 0 ) { - txt = txt + intDays + " <span lang='048'>" + $("expression[id=048]",langxml).text() + "</span> "; + txt = txt + intDays + " <span id=\"lang048\">" + $("expression[id=048]",langxml).text() + "</span> "; } if(intHours != 0 ) { - txt = txt + intHours + " <span lang='049'>" + $("expression[id=049]",langxml).text() + "</span> "; + txt = txt + intHours + " <span id=\"lang049\">" + $("expression[id=049]",langxml).text() + "</span> "; } - txt = txt + intMin + " <span lang='050'>" + $("expression[id=050]",langxml).text() + "</span>"; + txt = txt + intMin + " <span id=\"lang050\">" + $("expression[id=050]",langxml).text() + "</span>"; return txt; } @@ -689,79 +750,79 @@ switch( byteFormat ) { case "PiB": show += round(bytes/Math.pow(1024, 5), 2) - show += " <span id=\"lang090\">" + trim($("expression[id=090]",langxml).text()) + "</span>"; + show += " " + genlang(90) + $("expression[id=090]",langxml).text() + "</span>"; break; case "TiB": show += round(bytes/Math.pow(1024, 4), 2) - show += " <span id=\"lang086\">" + trim($("expression[id=086]",langxml).text()) + "</span>"; + show += " " + genlang(86) + $("expression[id=086]",langxml).text() + "</span>"; break; case "GiB": show += round(bytes/Math.pow(1024, 3), 2); - show += " <span id=\"lang087\">" + trim($("expression[id=087]",langxml).text()) + "</span>"; + show += " " + genlang(87) + $("expression[id=087]",langxml).text() + "</span>"; break; case "MiB": show += round(bytes/Math.pow(1024, 2), 2); - show += " <span id=\"lang088\">" + trim($("expression[id=088]",langxml).text()) + "</span>"; + show += " " + genlang(88) + $("expression[id=088]",langxml).text() + "</span>"; break; case "KiB": show += round(bytes/Math.pow(1024, 1), 2); - show += " <span id=\"lang089\">" + trim($("expression[id=089]",langxml).text()) + "</span>"; + show += " " + genlang(89) + $("expression[id=089]",langxml).text() + "</span>"; break; case "PB": show += round(bytes/Math.pow(1000, 5), 2) - show += " <span id=\"lang091\">" + trim($("expression[id=091]",langxml).text()) + "</span>"; + show += " " + genlang(91) + $("expression[id=091]",langxml).text() + "</span>"; break; case "TB": show += round(bytes/Math.pow(1000, 4), 2) - show += " <span lang='085'>" + trim($("expression[id=085]",langxml).text()) + "</span>"; + show += " " + genlang(85) + $("expression[id=085]",langxml).text() + "</span>"; break; case "GB": show += round(bytes/Math.pow(1000, 3), 2); - show += " <span id=\"lang041\">" + trim($("expression[id=041]",langxml).text()) + "</span>"; + show += " " + genlang(41) + $("expression[id=041]",langxml).text() + "</span>"; break; case "MB": show += round(bytes/Math.pow(1000, 2), 2); - show += " <span id=\"lang040\">" + trim($("expression[id=040]",langxml).text()) + "</span>"; + show += " " + genlang(40) + $("expression[id=040]",langxml).text() + "</span>"; break; case "KB": show += round(bytes/Math.pow(1000, 1), 2); - show += " <span id=\"lang039\">" + trim($("expression[id=039]",langxml).text()) + "</span>"; + show += " " + genlang(39) + $("expression[id=039]",langxml).text() + "</span>"; break; case "auto_decimal": if(bytes > Math.pow(1000, 5)) { show += round(bytes/Math.pow(1000, 5), 2); - show += " <span id=\"lang091\">" + trim($("expression[id=091]",langxml).text()) + "</span>"; + show += " " + genlang(91) + $("expression[id=091]",langxml).text() + "</span>"; } else if(bytes > Math.pow(1000, 4)) { show += round(bytes/Math.pow(1000, 4), 2); - show += " <span id=\"lang085\">" + trim($("expression[id=085]",langxml).text()) + "</span>"; + show += " " + genlang(85) + $("expression[id=085]",langxml).text() + "</span>"; } else if(bytes > Math.pow(1000, 3)) { show += round(bytes/Math.pow(1000, 3), 2); - show += " <span id=\"lang041\">" + trim($("expression[id=041]",langxml).text()) + "</span>"; + show += " " + genlang(41) + $("expression[id=041]",langxml).text() + "</span>"; } else if(bytes > Math.pow(1000, 2)) { show += round(bytes/Math.pow(1000, 2), 2); - show += " <span id=\"lang040\">" + trim($("expression[id=040]",langxml).text()) + "</span>"; + show += " " + genlang(40) + $("expression[id=040]",langxml).text() + "</span>"; } else { show += round(bytes/Math.pow(1000, 1), 2); - show += " <span id=\"lang039\">" + trim($("expression[id=039]",langxml).text()) + "</span>"; + show += " " + genlang(39) + $("expression[id=039]",langxml).text() + "</span>"; } break; case "auto_binary": default: if(bytes > Math.pow(1024, 5)) { show += round(bytes/Math.pow(1024, 5), 2); - show += " <span id=\"lang090\">" + trim($("expression[id=090]",langxml).text()) + "</span>"; + show += " " + genlang(90) + $("expression[id=090]",langxml).text() + "</span>"; } else if(bytes > Math.pow(1024, 4)) { show += round(bytes/Math.pow(1024, 4), 2); - show += " <span id=\"lang086\">" + trim($("expression[id=086]",langxml).text()) + "</span>"; + show += " " + genlang(86) + $("expression[id=086]",langxml).text() + "</span>"; } else if(bytes > Math.pow(1024, 3)) { show += round(bytes/Math.pow(1024, 3), 2); - show += " <span id=\"lang087\">" + trim($("expression[id=087]",langxml).text()) + "</span>"; + show += " " + genlang(87) + $("expression[id=087]",langxml).text() + "</span>"; } else if(bytes > Math.pow(1024, 2)) { show += round(bytes/Math.pow(1024, 2), 2); - show += " <span id=\"lang088\">" + trim($("expression[id=088]",langxml).text()) + "</span>"; + show += " " + genlang(88) + $("expression[id=088]",langxml).text() + "</span>"; } else { show += round(bytes/Math.pow(1024, 1), 2); - show += " <span id=\"lang089\">" + trim($("expression[id=089]",langxml).text()) + "</span>"; + show += " " + genlang(89) + $("expression[id=089]",langxml).text() + "</span>"; } } return show; @@ -789,16 +850,16 @@ if (parseFloat(1 * degreeC).toString() == "NaN") return "---"; if(tempFormat == "f"){ - return round(degreeF,1) + " <span lang='061'>" + $("expression[id=061]",langxml).text() + "</span>"; + return round(degreeF,1) + " <span id=\"lang061\">" + $("expression[id=061]",langxml).text() + "</span>"; } else if(tempFormat == "c-f"){ - return round(degreeC,1) + " <span lang='060'>" + $("expression[id=060]",langxml).text() + "</span> (" + round(degreeF,1) + " <span lang='061'>F</span>)"; + return round(degreeC,1) + " <span id=\"lang060\">" + $("expression[id=060]",langxml).text() + "</span> (" + round(degreeF,1) + " <span id=\"lang061\">F</span>)"; } else if(tempFormat == "f-c"){ - return round(degreeF,1) + " <span lang='061'>" + $("expression[id=061]",langxml).text() + "</span> (" + round(degreeC,1) + " <span lang='060'>" + $("expression[id=060]",langxml).text() + "</span>)"; + return round(degreeF,1) + " <span id=\"lang061\">" + $("expression[id=061]",langxml).text() + "</span> (" + round(degreeC,1) + " <span id=\"lang060\">" + $("expression[id=060]",langxml).text() + "</span>)"; } else{ - return round(degreeC,1) + " <span lang='060'>" + $("expression[id=060]",langxml).text() + "</span>"; + return round(degreeC,1) + " <span id=\"lang060\">" + $("expression[id=060]",langxml).text() + "</span>"; } } @@ -862,7 +923,7 @@ if(reload) { reloadpic = "<img id=\"reload_" + plugin + "Table\" src=\"./gfx/reload.png\" alt=\"reload\" style=\"vertical-align:middle;border=0px;\" /> "; } - block += " <h2>" + reloadpic + "<span lang=\"plugin_" + plugin + "_" + translationid + "\">" + headline + "</span></h2>\n<span id=\"DateTime\" style=\"margin-left:10px;\"></span>"; + block += " <h2>" + reloadpic + "<span id=\"lang_plugin_" + plugin + "_" + translationid + "\">" + headline + "</span></h2>\n<span id=\"DateTime\" style=\"margin-left:10px;\"></span>"; block += " <table id=\"plugin_" + plugin + "Table\" cellspacing=\"0\">\n"; block += " </table>\n"; return block; @@ -959,4 +1020,19 @@ scrptE.setAttribute("rel", "stylesheet"); scrptE.setAttribute("href", name); hdEl.appendChild(scrptE); +} + +/** + * generate a span tag with an unique identifier to be html valid + * + * @param id translation id in the xml file + * @return HTML string which contains generated span tag for translation string + */ +function genlang(id) { + var html = ""; + if(id < 100) + id = "0" + id; + html += "<span id=\"lang" + id + "_" + langcounter + "\">"; + langcounter++; + return html; } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Big...@us...> - 2009-01-14 11:13:56
|
Revision: 91 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=91&view=rev Author: BigMichi1 Date: 2009-01-14 11:13:50 +0000 (Wed, 14 Jan 2009) Log Message: ----------- document files config file for ps plugin to configure how to get the information Modified Paths: -------------- includes/class.psi_plugin.inc.php includes/interfaces/class.psi_plugin_interface.inc.php plugins/ps/class.ps.inc.php Added Paths: ----------- plugins/ps/ps.config.php Modified: includes/class.psi_plugin.inc.php =================================================================== --- includes/class.psi_plugin.inc.php 2009-01-14 09:18:26 UTC (rev 90) +++ includes/class.psi_plugin.inc.php 2009-01-14 11:13:50 UTC (rev 91) @@ -1,57 +1,91 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// +/** + * Basic Plugin Functions + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_plugin + */ + +/** + * basic functions to get a plugin working in phpSysinfo + * every plugin must implement this abstract class to be a valid plugin, main tasks + * of this class are reading the configuration file and check for the required files + * (*.js, lang/en.xml) to get everything working, if we have errors here we log them + * to our global error object + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_plugin + * @abstract + */ abstract class psi_plugin implements psi_plugin_interface { + /** + * name of the plugin (classname) + * @var string + */ private $plugin_name = ""; + + /** + * full directory path of the plugin + * @var string + */ private $plugin_base = ""; - protected $plugin_config = array (); + + /** + * global object for error handling + * @var Error + */ protected $global_error = ""; - + + /* + * build the global Error object, read the configuration and check if all files are available + * for a minimalistic function of the plugin + */ public function __construct($plugin_name = "") { + $this->global_error = Error::Singleton(); if (trim($plugin_name) != "") { - $this->global_error = Error :: Singleton(); $this->plugin_name = $plugin_name; - $this->plugin_base = "./plugins/" . $this->plugin_name . "/"; + $this->plugin_base = APP_ROOT . "/plugins/" . $this->plugin_name . "/"; $this->checkfiles(); $this->getconfig(); } else { $this->global_error->addError("__construct()", "Parent constructor called without Plugin-Name!"); } } - + + /** + * read the plugin configuration file, if we have one in the plugin directory + */ private function getconfig() { - $filename = $this->plugin_base . $this->plugin_name . ".ini"; + $filename = $this->plugin_base . $this->plugin_name . ".config.php"; if (file_exists($filename)) { - $this->plugin_config = parse_ini_file($filename, true); + if(is_readable($filename)) { + require_once($filename); + } else { + $this->global_error->addError("getconfig()", "Config-File for plugin " . $this->plugin_name . " exist but can't be read!"); + } } } - + + /* + * check if there is a default translation file availabe and also the required js file for + * appending the content of the plugin to the main webpage + */ private function checkfiles() { if (!file_exists($this->plugin_base . "js/" . $this->plugin_name . ".js")) { $this->global_error->addError("file_exists(" . $this->plugin_base . "js/" . $this->plugin_name . ".js)", "JS-File for Plugin '" . $this->plugin_name . "' is missing!"); + } else { + if(!is_readable($this->plugin_base . "js/" . $this->plugin_name . ".js")) { + $this->global_error->addError("is_readable(" . $this->plugin_base . "js/" . $this->plugin_name . ".js)", "JS-File for Plugin '" . $this->plugin_name . "' is not readable but present!"); + } } if (!file_exists($this->plugin_base . "lang/en.xml")) { $this->global_error->addError("file_exists(" . $this->plugin_base . "lang/en.xml)", "At least an english translation must exist for the plugin!"); + } else { + if(!is_readable($this->plugin_base . "lang/en.xml")) { + $this->global_error->addError("is_readable(" . $this->plugin_base . "js/" . $this->plugin_name . ".js)", "The english translation can't be read but is present!"); + } } } } Modified: includes/interfaces/class.psi_plugin_interface.inc.php =================================================================== --- includes/interfaces/class.psi_plugin_interface.inc.php 2009-01-14 09:18:26 UTC (rev 90) +++ includes/interfaces/class.psi_plugin_interface.inc.php 2009-01-14 11:13:50 UTC (rev 91) @@ -1,28 +1,35 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// +/** + * Basic Plugin Functions + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_plugin + */ + +/** + * define which methods a plugin for phpsysinfo must implement + * to be recognized and fully work without errors, these are the methods which + * are called outside the plugin to include it in the main application + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_plugin + */ interface psi_plugin_interface { + /** + * doing all tasks before the xml can be build + * + * @access public + */ public function execute(); + + /** + * build the xml + * + * @access public + * @return SimpleXMLObject entire XML content for the plugin which than can be appended to the main XML + */ public function xml(); } ?> Modified: plugins/ps/class.ps.inc.php =================================================================== --- plugins/ps/class.ps.inc.php 2009-01-14 09:18:26 UTC (rev 90) +++ plugins/ps/class.ps.inc.php 2009-01-14 11:13:50 UTC (rev 91) @@ -1,30 +1,42 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// +/** + * PS Plugin + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_plugin + */ + +/** + * process Plugin, which displays all running processes + * a simple tree view which is filled with the running processes which are determined by + * calling the "ps" command line utility, another way is to provide + * a file with the output of the ps utility, so there is no need to run a execute by the + * webserver, the format of the command is written down in the ps.config.php file, where also + * the method of getting the information is configured + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_plugin + */ class ps extends psi_plugin { + /** + * variable, which holds the content of the command + * @var array + */ private $filecontent = array(); + + /** + * variable, which holds the result before the xml is generated out of this array + * @var array + */ private $result = array(); - private $debug = false; + + /** + * controls if debugging is turned on or off, value is defined in the main config.php + * @var boolean + */ + private $debug = PSI_DEBUG; /** * read the data into an internal array and also call the parent constructor @@ -34,7 +46,18 @@ public function __construct() { $buffer = ""; parent :: __construct(__CLASS__); - if (execute_program("ps", "-eo pid,ppid,pmem,args", $buffer, $this->debug)) { + switch(PSI_PLUGIN_PS_ACCESS) { + case 'direct': + execute_program("ps", "-eo pid,ppid,pmem,args", $buffer, $this->debug); + break; + case 'file': + rfts("./data/ps.txt",$buffer); + break; + default: + $this->global_error->addError("switch(PSI_PLUGIN_PS_ACCESS)","Bad ps configuration in ps.config.php"); + break; + } + if(trim($buffer) != ""){ $this->filecontent = explode("\n", $buffer); unset($this->filecontent[0]); } else { @@ -86,8 +109,8 @@ * recursive function to allow appending child processes to a parent process * * @access private - * @param array $child part of the array which should be appended to the XML - * @param SimpleXMLObject $xml Object to which the array content is appended + * @param array part of the array which should be appended to the XML + * @param SimpleXMLObject XML-Object to which the array content is appended * @return SimpleXMLObject Object with the appended array content */ private function addchild($child, &$xml) { Added: plugins/ps/ps.config.php =================================================================== --- plugins/ps/ps.config.php (rev 0) +++ plugins/ps/ps.config.php 2009-01-14 11:13:50 UTC (rev 91) @@ -0,0 +1,18 @@ +<?php +/** + * PS Plugin Config File + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_plugin + */ + +/** + * define how to access the ps statistic data + * - direct ps command is run everytime the block gets refreshed or build + * - file (must be available in the data directory of the phpsysinfo installation with the filename "ps.txt"; content is the output from "ps -eo pid,ppid,pmem,args") + */ +define('PSI_PLUGIN_PS_ACCESS', 'file'); +?> \ No newline at end of file Property changes on: plugins/ps/ps.config.php ___________________________________________________________________ Added: svn:mime-type + text/x-php Added: svn:keywords + Id Added: svn:eol-style + LF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <big...@us...> - 2009-06-25 10:14:58
|
Revision: 277 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=277&view=rev Author: bigmichi1 Date: 2009-06-25 10:14:38 +0000 (Thu, 25 Jun 2009) Log Message: ----------- using css class instead id Modified Paths: -------------- js/phpSysInfo/phpsysinfo.js templates/plugin/jquery.treeTable.css Modified: js/phpSysInfo/phpsysinfo.js =================================================================== --- js/phpSysInfo/phpsysinfo.js 2009-06-25 10:07:59 UTC (rev 276) +++ js/phpSysInfo/phpsysinfo.js 2009-06-25 10:14:38 UTC (rev 277) @@ -664,7 +664,7 @@ $("#hardware").empty(); html += " <h2>" + genlang(10, false) + "</h2>\n"; html += " <table id=\"HardwareTree\" class=\"tablemain\" style=\"width:100%;\">\n"; - html += " <tbody id=\"treet1\">\n"; + html += " <tbody class=\"tree\">\n"; html += " <tr><td colspan=\"2\"><b>" + genlang(11, false) + "</b></td></tr>\n"; html += fillCpu(xml, tree, tree.push(0), closed); @@ -746,7 +746,7 @@ html += " <th class=\"right\" style=\"width:100px;\">" + genlang(37, true) + "</th>\n"; html += " </tr>\n"; html += " </thead>\n"; - html += " <tbody id=\"treet2\">\n"; + html += " <tbody class=\"tree\">\n"; $("Memory", xml).each(function getMemory(id) { var free = 0, total = 0, used = 0, percent = 0, memoryindex = 0; @@ -967,7 +967,7 @@ var html = "", tree = [], closed = [], index = 0, values = false; html += " <h2><span id=\"lang_068\">UPS information</span></h2>\n"; html += " <table class=\"tablemain\" id=\"UPSTree\">\n"; - html += " <tbody id=\"treet3\">\n"; + html += " <tbody class=\"tree\">\n"; $("#ups").empty(); $("UPSInfo UPS", xml).each(function getUps(id) { Modified: templates/plugin/jquery.treeTable.css =================================================================== --- templates/plugin/jquery.treeTable.css 2009-06-25 10:07:59 UTC (rev 276) +++ templates/plugin/jquery.treeTable.css 2009-06-25 10:14:38 UTC (rev 277) @@ -7,6 +7,6 @@ .collapsed { display: none; } .tablemain {border-collapse: collapse; padding: 0px; text-align: left; } .tablemain td {margin-left:3px;} -#treet1 td, #treet2 td, #treet3 td { padding: 0px 2px 0px 0px; cursor: pointer;} +.tree td { padding: 0px 2px 0px 0px; cursor: pointer;} .adeimg, .ttimage, .parimg, .preimg { border: none; margin: 0px; padding: 0px; vertical-align: bottom; width: 16px; height: 16px; } .adeimg, .parimg {cursor: pointer; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jac...@us...> - 2009-06-27 08:08:36
|
Revision: 288 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=288&view=rev Author: jacky672 Date: 2009-06-27 08:08:35 +0000 (Sat, 27 Jun 2009) Log Message: ----------- Fix a bug with /proc/net/dev Modified Paths: -------------- includes/os/class.Linux.inc.php Added Paths: ----------- sample/dev.txt Modified: includes/os/class.Linux.inc.php =================================================================== --- includes/os/class.Linux.inc.php 2009-06-26 12:11:59 UTC (rev 287) +++ includes/os/class.Linux.inc.php 2009-06-27 08:08:35 UTC (rev 288) @@ -425,7 +425,7 @@ private function _network() { if (CommonFunctions::rfts('/proc/net/dev', $bufr)) { - $bufe = preg_split("/\n/", $bufr, 1, PREG_SPLIT_NO_EMPTY); + $bufe = preg_split("/\n/", $bufr, -1, PREG_SPLIT_NO_EMPTY); foreach ($bufe as $buf) { if (preg_match('/:/', $buf)) { list($dev_name, $stats_list) = preg_split('/:/', $buf, 2); Added: sample/dev.txt =================================================================== (Binary files differ) Property changes on: sample/dev.txt ___________________________________________________________________ Added: svn:mime-type + plain/text This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jac...@us...> - 2010-09-13 19:43:25
|
Revision: 375 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=375&view=rev Author: jacky672 Date: 2010-09-13 19:43:18 +0000 (Mon, 13 Sep 2010) Log Message: ----------- add an option to enable/disable JavaScript compression Modified Paths: -------------- config.php.new js.php Modified: config.php.new =================================================================== --- config.php.new 2010-06-06 16:40:13 UTC (rev 374) +++ config.php.new 2010-09-13 19:43:18 UTC (rev 375) @@ -25,6 +25,13 @@ define('PSI_DEBUG', false); /** + * Turn on/off compression for JavaScript file + * - false : desactivate JavaScript compression (recommended with slow processor) + * - true : activate JavaScript compression + */ +define('PSI_JS_COMPRESSION_ENABLE', true); + +/** * Additional paths where to look for installed programs * Example : define('PSI_ADD_PATHS', '/opt/bin,/opt/sbin'); */ Modified: js.php =================================================================== --- js.php 2010-06-06 16:40:13 UTC (rev 374) +++ js.php 2010-09-13 19:43:18 UTC (rev 375) @@ -45,8 +45,12 @@ if (defined("PSI_DEBUG") && PSI_DEBUG === true) { echo $filecontent; } else { - $packer = new JavaScriptPacker($filecontent); - echo $packer->pack(); + if(defined("PSI_JS_COMPRESSION_ENABLE") && PSI_JS_COMPRESSION_ENABLE === true ) { + $packer = new JavaScriptPacker($filecontent); + echo $packer->pack(); + } else { + echo $filecontent; + } } } ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jac...@us...> - 2010-11-11 11:56:53
|
Revision: 386 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=386&view=rev Author: jacky672 Date: 2010-11-11 11:56:46 +0000 (Thu, 11 Nov 2010) Log Message: ----------- FIX CSS Modified Paths: -------------- ChangeLog plugins/SMART/js/SMART.js plugins/ipmi/js/ipmi.js templates/aqua.css templates/cream.css templates/jstyle_blue.css templates/jstyle_green.css templates/phpsysinfo.css Modified: ChangeLog =================================================================== --- ChangeLog 2010-11-05 20:58:03 UTC (rev 385) +++ ChangeLog 2010-11-11 11:56:46 UTC (rev 386) @@ -7,6 +7,7 @@ - [FIX] Fix bug [ 3077928 ] Dynamic view stops refreshing after a while (thanks to willelwood) - [FIX] Fix uptime calculation parse error with Mac OS X 10.6 - [FIX] Fix processor detection for ARM + - [FIX] Fix CSS problem with odd/even - [UPD] New Ubuntu logo - [UPD] New Apple logo Modified: plugins/SMART/js/SMART.js =================================================================== --- plugins/SMART/js/SMART.js 2010-11-05 20:58:03 UTC (rev 385) +++ plugins/SMART/js/SMART.js 2010-11-11 11:56:46 UTC (rev 386) @@ -50,7 +50,7 @@ $("#Plugin_SMART").append(html); - smart_table = $("#Plugin_SMART").dataTable({ + smart_table = $("#Plugin_SMARTTable").dataTable({ "bPaginate": false, "bLengthChange": false, "bFilter": false, Modified: plugins/ipmi/js/ipmi.js =================================================================== --- plugins/ipmi/js/ipmi.js 2010-11-05 20:58:03 UTC (rev 385) +++ plugins/ipmi/js/ipmi.js 2010-11-11 11:56:46 UTC (rev 386) @@ -39,44 +39,44 @@ $("Plugins Plugin_ipmi Temperature Item", xml).each(function ipmi_getitem(idp) { if(idp==0) { - html += "<tr><th style=\"font-weight:bold\">" + genlang(3, true, "ipmi") + "</th></tr>\n"; + html += "<tr><th colspan=\"2\" style=\"font-weight:bold\">" + genlang(3, true, "ipmi") + "</th></tr>\n"; } html += " <tr>\n"; - html += " <th style=\"font-weight:normal\">" + $(this).attr("Label") + "</th>\n"; - html += " <th style=\"font-weight:normal\">" + $(this).attr("Value") + "</th>\n"; + html += " <td style=\"font-weight:normal\">" + $(this).attr("Label") + "</td>\n"; + html += " <td style=\"font-weight:normal\">" + $(this).attr("Value") + "</td>\n"; html += " </tr>\n"; ipmi_show = true; }); $("Plugins Plugin_ipmi Fans Item", xml).each(function ipmi_getitem(idp) { if(idp==0) { - html += "<tr><th style=\"font-weight:bold\">" + genlang(4, true, "ipmi") + "</th></tr>\n"; + html += "<tr><th colspan=\"2\" style=\"font-weight:bold\">" + genlang(4, true, "ipmi") + "</th></tr>\n"; } html += " <tr>\n"; - html += " <th style=\"font-weight:normal\">" + $(this).attr("Label") + "</th>\n"; - html += " <th style=\"font-weight:normal\">" + $(this).attr("Value") + "</th>\n"; + html += " <td style=\"font-weight:normal\">" + $(this).attr("Label") + "</td>\n"; + html += " <td style=\"font-weight:normal\">" + $(this).attr("Value") + "</td>\n"; html += " </tr>\n"; ipmi_show = true; }); $("Plugins Plugin_ipmi Voltage Item", xml).each(function ipmi_getitem(idp) { if(idp==0) { - html += "<tr><th style=\"font-weight:bold\">" + genlang(5, true, "ipmi") + "</th></tr>\n"; + html += "<tr><th colspan=\"2\" style=\"font-weight:bold\">" + genlang(5, true, "ipmi") + "</th></tr>\n"; } html += " <tr>\n"; - html += " <th style=\"font-weight:normal\">" + $(this).attr("Label") + "</th>\n"; - html += " <th style=\"font-weight:normal\">" + $(this).attr("Value") + "</th>\n"; + html += " <td style=\"font-weight:normal\">" + $(this).attr("Label") + "</td>\n"; + html += " <td style=\"font-weight:normal\">" + $(this).attr("Value") + "</td>\n"; html += " </tr>\n"; ipmi_show = true; }); $("Plugins Plugin_ipmi Misc Item", xml).each(function ipmi_getitem(idp) { if(idp==0) { - html += "<tr><th style=\"font-weight:bold\">" + genlang(6, true, "ipmi") + "</th></tr>\n"; + html += "<tr><th colspan=\"2\" style=\"font-weight:bold\">" + genlang(6, true, "ipmi") + "</th></tr>\n"; } html += " <tr>\n"; - html += " <th style=\"font-weight:normal\">" + $(this).attr("Label") + "</th>\n"; - html += " <th style=\"font-weight:normal\">" + $(this).attr("Value") + "</th>\n"; + html += " <td style=\"font-weight:normal\">" + $(this).attr("Label") + "</td>\n"; + html += " <td style=\"font-weight:normal\">" + $(this).attr("Value") + "</td>\n"; html += " </tr>\n"; ipmi_show = true; }); @@ -88,7 +88,7 @@ function ipmi_buildTable() { var html = ""; - html += "<table id=\"Plugin_ipmiTable\" cellspacing=\"0\">\n"; + html += "<table id=\"Plugin_ipmiTable\" class=\"stripeMe\" cellspacing=\"0\">\n"; html += " <thead>\n"; html += " </thead>\n"; html += " <tbody>\n"; Modified: templates/aqua.css =================================================================== --- templates/aqua.css 2010-11-05 20:58:03 UTC (rev 385) +++ templates/aqua.css 2010-11-11 11:56:46 UTC (rev 386) @@ -74,8 +74,21 @@ table { width: 100%; font-size: 1.2em; + background-color: #fff; } +div[id ^=Plugin] { + margin: 10px 0 0 8px; + padding: 1px; + border: 2px solid #2971a7; + background: #fff; +} + +.dataTables_wrapper{ + margin: 0 0 0 0 !important; + border: 0px !important; +} + th, td, h3 { padding: 4px 10px 2px 10px; text-align: left; @@ -86,17 +99,11 @@ font-size: 120%; } -.odd { - background: #E4EBF3; -} .even { background: #E4EBF3; } -#filesystemTable .odd { - background: #fff; -} #footer { clear: both; @@ -158,4 +165,4 @@ #pciTable, #ideTable, #scsiTable, #usbTable { padding: 0px 30px; -} \ No newline at end of file +} Modified: templates/cream.css =================================================================== --- templates/cream.css 2010-11-05 20:58:03 UTC (rev 385) +++ templates/cream.css 2010-11-11 11:56:46 UTC (rev 386) @@ -52,8 +52,14 @@ table { width: 100%; + background-color: #fff; } +div[id ^=Plugin] { + background: #fff; +} + + th, td, h3 { font-size: 100%; padding: 4px 10px 2px 10px; @@ -94,9 +100,6 @@ width: 915px; } -#filesystemTable .odd { - background: #FFF; -} #filesystemTable thead tr .header { background-image: url("../gfx/bg.gif"); @@ -125,9 +128,6 @@ text-align: center; } -.odd { - background-color: #FBFBF9; -} .even { background-color: #FBFBF9; @@ -140,4 +140,4 @@ .right { padding-right: 20px; text-align: right; -} \ No newline at end of file +} Modified: templates/jstyle_blue.css =================================================================== --- templates/jstyle_blue.css 2010-11-05 20:58:03 UTC (rev 385) +++ templates/jstyle_blue.css 2010-11-11 11:56:46 UTC (rev 386) @@ -80,18 +80,10 @@ font-size: 100%; } -.odd { - background: #EBE8DA; -} - .even { background: #EBE8DA; } -#filesystemTable .odd { - background: #f3f1e9; -} - #footer { clear: both; color: #5C5C5C; @@ -141,4 +133,4 @@ #pciTable, #ideTable, #scsiTable, #usbTable { padding: 0px 30px; -} \ No newline at end of file +} Modified: templates/jstyle_green.css =================================================================== --- templates/jstyle_green.css 2010-11-05 20:58:03 UTC (rev 385) +++ templates/jstyle_green.css 2010-11-11 11:56:46 UTC (rev 386) @@ -80,18 +80,10 @@ font-size: 100%; } -.odd { - background: #EBE8DA; -} - .even { background: #EBE8DA; } -#filesystemTable .odd { - background: #f3f1e9; -} - #footer { clear: both; color: #5C5C5C; @@ -141,4 +133,4 @@ #pciTable, #ideTable, #scsiTable, #usbTable { padding: 0px 30px; -} \ No newline at end of file +} Modified: templates/phpsysinfo.css =================================================================== --- templates/phpsysinfo.css 2010-11-05 20:58:03 UTC (rev 385) +++ templates/phpsysinfo.css 2010-11-11 11:56:46 UTC (rev 386) @@ -76,6 +76,19 @@ width: 100%; } +div[id ^=Plugin] { + margin: 10px 0 0 8px; + padding: 1px; + padding: 1px; + border: 1px solid #5A7E8A; +} + +.dataTables_wrapper{ + margin: 0 0 0 0 !important; + border: 0px !important; +} + + th, td, h3 { padding: 4px 10px 2px 10px; text-align: left; @@ -120,4 +133,4 @@ #pciTable, #ideTable, #scsiTable, #usbTable { padding: 0px 30px; -} \ No newline at end of file +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <na...@us...> - 2012-07-28 19:48:52
|
Revision: 616 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=616&view=rev Author: namiltd Date: 2012-07-28 19:48:46 +0000 (Sat, 28 Jul 2012) Log Message: ----------- Modified Paths: -------------- trunk/includes/os/class.BSDCommon.inc.php Added Paths: ----------- branches/namiltd/gfx/images/haiku.png Added: branches/namiltd/gfx/images/haiku.png =================================================================== (Binary files differ) Property changes on: branches/namiltd/gfx/images/haiku.png ___________________________________________________________________ Added: svn:mime-type + image/png Modified: trunk/includes/os/class.BSDCommon.inc.php =================================================================== --- trunk/includes/os/class.BSDCommon.inc.php 2012-07-28 10:05:45 UTC (rev 615) +++ trunk/includes/os/class.BSDCommon.inc.php 2012-07-28 19:48:46 UTC (rev 616) @@ -295,7 +295,11 @@ break; } } - $this->sys->setCpus($dev); + $ncpu=$this->grabkey('hw.ncpu'); + if (is_null($ncpu)||(trim($ncpu)=="")||(!($ncpu>=1))) $ncpu=1; + for ($ncpu;$ncpu>0;$ncpu--) { + $this->sys->setCpus($dev); + } } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Big...@us...> - 2009-01-15 13:21:20
|
Revision: 105 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=105&view=rev Author: BigMichi1 Date: 2009-01-15 13:21:11 +0000 (Thu, 15 Jan 2009) Log Message: ----------- change lang??? to lang_??? to be plugin compatible and better readable :) Modified Paths: -------------- index.php phpsysinfo.js Modified: index.php =================================================================== --- index.php 2009-01-15 13:19:30 UTC (rev 104) +++ index.php 2009-01-15 13:21:11 UTC (rev 105) @@ -118,17 +118,17 @@ echo " <img id=\"warn\" style=\"vertical-align: middle; display:none; border:0px;\" src=\"./gfx/attention.gif\" alt=\"warning\" />\n"; echo " </a>\n"; echo " <span id=\"title\">\n"; -echo " <span id=\"lang001\">System information</span>\n"; +echo " <span id=\"lang_001\">System information</span>\n"; echo " : <span id=\"s_hostname_title\"></span>\n"; echo " (<span id=\"s_ip_title\"></span>)\n"; echo " </span>\n"; echo " </h1>\n"; echo " <div id=\"select\">\n"; -echo " <span id=\"lang044\">Template</span>\n"; +echo " <span id=\"lang_044\">Template</span>\n"; echo " <select id=\"template\" name=\"template\">\n"; echo $tpl_option_list; echo " </select>\n"; -echo " <span id=\"lang045\">Language</span>\n"; +echo " <span id=\"lang_045\">Language</span>\n"; echo " <select id=\"lang\" name=\"lang\">\n"; $dirlist = gdc('./language/'); sort($dirlist); @@ -146,89 +146,89 @@ echo " </select>\n"; echo " </div>\n"; echo " <div id=\"vitals\">\n"; -echo " <h2><span id=\"lang002\">System vitals</span></h2>\n"; +echo " <h2><span id=\"lang_002\">System vitals</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"vitalsTable\" cellspacing=\"0\">\n"; echo " <tr>\n"; -echo " <td style=\"width:160px;\"><span id=\"lang003\">Hostname</span></td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang_003\">Hostname</span></td>\n"; echo " <td><span id=\"s_hostname\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px;\"><span id=\"lang004\">Listening IP</span></td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang_004\">Listening IP</span></td>\n"; echo " <td><span id=\"s_ip\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px;\"><span id=\"lang005\">Kernel Version</span></td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang_005\">Kernel Version</span></td>\n"; echo " <td><span id=\"s_kernel\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px;\"><span id=\"lang006\">Distro Name</span></td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang_006\">Distro Name</span></td>\n"; echo " <td><span id=\"s_distro\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px;\"><span id=\"lang007\">Uptime</span></td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang_007\">Uptime</span></td>\n"; echo " <td><span id=\"s_uptime\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px;\"><span id=\"lang008\">Current Users</span></td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang_008\">Current Users</span></td>\n"; echo " <td><span id=\"s_users\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px;\"><span id=\"lang009\">Load Averages</span></td>\n"; +echo " <td style=\"width:160px;\"><span id=\"lang_009\">Load Averages</span></td>\n"; echo " <td id=\"s_loadavg\"></td>\n"; echo " </tr>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"hardware\">\n"; -echo " <h2><span id=\"lang010\">Hardware Information</span></h2>\n"; +echo " <h2><span id=\"lang_010\">Hardware Information</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"cpuTable\" cellspacing=\"0\">\n"; echo " <tr>\n"; -echo " <td style=\"width:160px\"><span id=\"lang011\">Processors</span></td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang_011\">Processors</span></td>\n"; echo " <td><span id=\"s_num\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px\"><span id=\"lang012\">Model</span></td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang_012\">Model</span></td>\n"; echo " <td><span id=\"s_model\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px\"><span id=\"lang013\">CPU Speed</span></td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang_013\">CPU Speed</span></td>\n"; echo " <td><span id=\"s_speed\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px\"><span id=\"lang014\">BUS Speed</span></td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang_014\">BUS Speed</span></td>\n"; echo " <td><span id=\"s_bus\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px\"><span id=\"lang015\">Cache Size</span></td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang_015\">Cache Size</span></td>\n"; echo " <td><span id=\"s_cache\"></span></td>\n"; echo " </tr>\n"; echo " <tr>\n"; -echo " <td style=\"width:160px\"><span id=\"lang016\">Bogomips</span></td>\n"; +echo " <td style=\"width:160px\"><span id=\"lang_016\">Bogomips</span></td>\n"; echo " <td><span id=\"s_bogo\"></span></td>\n"; echo " </tr>\n"; echo " </table>\n"; -echo " <h3 style=\"cursor: pointer\" id=\"sPci\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang017_1\">PCI devices</span></h3>\n"; -echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hPci\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang017_2\">PCI devices</span></h3>\n"; +echo " <h3 style=\"cursor: pointer\" id=\"sPci\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_017_1\">PCI devices</span></h3>\n"; +echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hPci\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_017_2\">PCI devices</span></h3>\n"; echo " <table id=\"pciTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sIde\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang018_3\">IDE devices</span></h3>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hIde\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang018_4\">IDE devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sIde\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_018_3\">IDE devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hIde\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_018_4\">IDE devices</span></h3>\n"; echo " <table class=\"odd\" id=\"ideTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; -echo " <h3 style=\"cursor: pointer\" id=\"sScsi\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang019_5\">SCSI devices</span></h3>\n"; -echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hScsi\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang019_6\">SCSI device</span></h3>\n"; +echo " <h3 style=\"cursor: pointer\" id=\"sScsi\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_019_5\">SCSI devices</span></h3>\n"; +echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hScsi\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_019_6\">SCSI device</span></h3>\n"; echo " <table id=\"scsiTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sUsb\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang020_7\">USB devices</span></h3>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hUsb\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang020_8\">USB devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sUsb\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_020_7\">USB devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hUsb\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_020_8\">USB devices</span></h3>\n"; echo " <table class=\"odd\" id=\"usbTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; echo " </div>\n"; echo " <div id=\"memory\">\n"; -echo " <h2><span id=\"lang027\">Memory Usage</span></h2>\n"; +echo " <h2><span id=\"lang_027\">Memory Usage</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"memoryTable\" cellspacing=\"0\">\n"; echo " <thead>\n"; echo " <tr>\n"; -echo " <th style=\"width:200px;\"><span id=\"lang034_9\">Type</span></th>\n"; -echo " <th style=\"width:285px;\"><span id=\"lang033_10\">Percent</span></th>\n"; -echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang035_11\">Free</span></th>\n"; -echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang036_12\">Used</span></th>\n"; -echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang037_13\">Total</span></th>\n"; +echo " <th style=\"width:200px;\"><span id=\"lang_034_9\">Type</span></th>\n"; +echo " <th style=\"width:285px;\"><span id=\"lang_033_10\">Percent</span></th>\n"; +echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang_035_11\">Free</span></th>\n"; +echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang_036_12\">Used</span></th>\n"; +echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang_037_13\">Total</span></th>\n"; echo " </tr>\n"; echo " </thead>\n"; echo " <tbody id=\"tbody_memory\">\n"; @@ -236,24 +236,24 @@ echo " </table>\n"; echo " </div>\n"; echo " <div id=\"filesystem\">\n"; -echo " <h2><span id=\"lang030\">Mounted Filesystems</span></h2>\n"; +echo " <h2><span id=\"lang_030\">Mounted Filesystems</span></h2>\n"; echo " <table class=\"stripeMe tablesorter\" id=\"filesystemTable\" cellspacing=\"0\">\n"; echo " <thead>\n"; echo " <tr>\n"; -echo " <th class=\"{sorter: 'text'}\" style=\"width:100px;\"><span id=\"lang031\">Mount</span></th>\n"; -echo " <th class=\"{sorter: 'text'}\" style=\"width:50px;\"><span id=\"lang034_14\">Type</span></th>\n"; -echo " <th class=\"{sorter: 'text'}\" style=\"width:120px;\"><span id=\"lang032\">Partition</span></th>\n"; -echo " <th class=\"{sorter: 'digit'}\"><span id=\"lang033\">Percent used</span></th>\n"; -echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang035_15\">Free</span></th>\n"; -echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang036_16\">Used</span></th>\n"; -echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang037_17\">Total</span></th>\n"; +echo " <th class=\"{sorter: 'text'}\" style=\"width:100px;\"><span id=\"lang_031\">Mount</span></th>\n"; +echo " <th class=\"{sorter: 'text'}\" style=\"width:50px;\"><span id=\"lang_034_14\">Type</span></th>\n"; +echo " <th class=\"{sorter: 'text'}\" style=\"width:120px;\"><span id=\"lang_032\">Partition</span></th>\n"; +echo " <th class=\"{sorter: 'digit'}\"><span id=\"lang_033\">Percent used</span></th>\n"; +echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang_035_15\">Free</span></th>\n"; +echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang_036_16\">Used</span></th>\n"; +echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang_037_17\">Total</span></th>\n"; echo " </tr>\n"; echo " </thead>\n"; echo " <tfoot>\n"; echo " <tr style=\"font-weight : bold\">\n"; echo " <td> </td>\n"; echo " <td> </td>\n"; -echo " <td><span id=\"lang038\">Totals</span></td>\n"; +echo " <td><span id=\"lang_038\">Totals</span></td>\n"; echo " <td id=\"s_fs_total\"></td>\n"; echo " <td class=\"right\"><span id=\"s_fs_tfree\"></span></td>\n"; echo " <td class=\"right\"><span id=\"s_fs_tused\"></span></td>\n"; @@ -265,14 +265,14 @@ echo " </table>\n"; echo " </div>\n"; echo " <div id=\"network\">\n"; -echo " <h2><span id=\"lang021\">Network Usage</span></h2>\n"; +echo " <h2><span id=\"lang_021\">Network Usage</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"networkTable\" cellspacing=\"0\">\n"; echo " <thead>\n"; echo " <tr>\n"; -echo " <th><span id=\"lang022\">Interface</span></th>\n"; -echo " <th class=\"right\" style=\"width:60px;\"><span id=\"lang023\">Recieved</span></th>\n"; -echo " <th class=\"right\" style=\"width:60px;\"><span id=\"lang024\">Transfered</span></th>\n"; -echo " <th class=\"right\" style=\"width:60px;\"><span id=\"lang025\">Error/Drops</span></th>\n"; +echo " <th><span id=\"lang_022\">Interface</span></th>\n"; +echo " <th class=\"right\" style=\"width:60px;\"><span id=\"lang_023\">Recieved</span></th>\n"; +echo " <th class=\"right\" style=\"width:60px;\"><span id=\"lang_024\">Transfered</span></th>\n"; +echo " <th class=\"right\" style=\"width:60px;\"><span id=\"lang_025\">Error/Drops</span></th>\n"; echo " </tr>\n"; echo " </thead>\n"; echo " <tbody id=\"tbody_network\">\n"; @@ -280,31 +280,31 @@ echo " </table>\n"; echo " </div>\n"; echo " <div id=\"voltage\" style=\"display: none;\">\n"; -echo " <h2><span id=\"lang052\">Voltage</span></h2>\n"; +echo " <h2><span id=\"lang_052\">Voltage</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"voltageTable\" cellspacing=\"0\">\n"; -echo " <tr><th><span id=\"lang059\">Label</span></th><th class=\"right\"><span id=\"lang052\">Voltage</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang055\">Min</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang056\">Max</span></th></tr>\n"; +echo " <tr><th><span id=\"lang_059\">Label</span></th><th class=\"right\"><span id=\"lang_052\">Voltage</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang_055\">Min</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang_056\">Max</span></th></tr>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"temp\" style=\"display: none;\">\n"; -echo " <h2><span id=\"lang051\">Temperature</span></h2>\n"; +echo " <h2><span id=\"lang_051\">Temperature</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"tempTable\" cellspacing=\"0\">\n"; -echo " <tr><th><span id=\"lang059\">Label</span></th><th class=\"right\"style=\"width: 60px;\"><span id=\"lang054\">Value</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang058\">Limit</span></th></tr>\n"; +echo " <tr><th><span id=\"lang_059\">Label</span></th><th class=\"right\"style=\"width: 60px;\"><span id=\"lang_054\">Value</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang_058\">Limit</span></th></tr>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"fan\" style=\"display: none;\">\n"; -echo " <h2><span id=\"lang053\">Fan</span></h2>\n"; +echo " <h2><span id=\"lang_053\">Fan</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"fanTable\" cellspacing=\"0\">\n"; -echo " <tr><th><span id=\"lang059\">Label</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang054\">Value</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang055\">Min</span></th></tr>\n"; +echo " <tr><th><span id=\"lang_059\">Label</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang_054\">Value</span></th><th class=\"right\" style=\"width: 60px;\"><span id=\"lang_055\">Min</span></th></tr>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"ups\" style=\"display: none;\">\n"; -echo " <h2><span id=\"lang068\">UPS information</span></h2>\n"; +echo " <h2><span id=\"lang_068\">UPS information</span></h2>\n"; echo " <table class=\"stripeMe\" id=\"upsTable\" cellspacing=\"0\">\n"; echo " <tr><td></td><td style=\"width: 250px;\"></td></tr>\n"; echo " </table>\n"; echo " </div>\n"; echo " <div id=\"footer\">\n"; -echo " <span id=\"lang047\">Generated by</span> <a href=\"http://phpsysinfo.sourceforge.net/\">phpSysInfo - <span id=\"version\"></span></a>\n"; +echo " <span id=\"lang_047\">Generated by</span> <a href=\"http://phpsysinfo.sourceforge.net/\">phpSysInfo - <span id=\"version\"></span></a>\n"; echo " </div>\n"; echo " </div>\n"; echo " </body>\n"; Modified: phpsysinfo.js =================================================================== --- phpsysinfo.js 2009-01-15 13:19:30 UTC (rev 104) +++ phpsysinfo.js 2009-01-15 13:21:11 UTC (rev 105) @@ -188,8 +188,8 @@ */ function changeLanguage() { var langId = langStr = ""; - $('span[@id*=lang]').each(function(i) { - langId = this.getAttribute('id').substring(4,7); + $('span[@id*=lang_]').each(function(i) { + langId = this.getAttribute('id').substring(5); langStr = $("expression[@id=" + langId + "] exp",langxml); if(langStr.length > 0) { this.innerHTML = langStr.text(); @@ -265,11 +265,11 @@ var showPickListTemplate = $("showPickListTemplate",options).text(); if(showPickListTemplate == 'false') { $('#template').hide(); - $('span[@id=lang044]').hide(); + $('span[@id=lang_044]').hide(); } if(showPickListLang == 'false') { $('#lang').hide(); - $('span[@id=lang045]').hide(); + $('span[@id=lang_045]').hide(); } }); @@ -283,7 +283,7 @@ used = $("Used",vital).text(); total = $("Total",vital).text(); percent = $("Percent",vital).text(); - $("#tbody_memory").append("<tr><td style=\"width:200px;\"><span id=\"lang028\">" + $("expression[id=028]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(percent) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(free, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(used, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(total, xml) + "</td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:200px;\"><span id=\"lang_028\">" + $("expression[id=028]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(percent) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(free, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(used, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(total, xml) + "</td></tr>"); if($("App", vital).length > 0) { app = $("App", vital).text(); @@ -292,9 +292,9 @@ buffp = $("BuffersPercent", vital).text(); cached = $("Cached", vital).text(); cachedp = $("CachedPercent", vital).text(); - $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span id=\"lang064\">" + $("expression[id=064]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(appp) + "</td><td class=\"right\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px\">" + formatBytes(app, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); - $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span id=\"lang065\">" + $("expression[id=065]",langxml).text() + "</span></td><td style=\"width:285px\">" + createBar(buffp) + "</td><td class=\"rigth\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px;\">" + formatBytes(buff, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); - $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span id=\"lang066\">" + $("expression[id=066]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(cachedp) + "</td><td class=\"right\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px;\">" + formatBytes(cached, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span id=\"lang_064\">" + $("expression[id=064]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(appp) + "</td><td class=\"right\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px\">" + formatBytes(app, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span id=\"lang_065\">" + $("expression[id=065]",langxml).text() + "</span></td><td style=\"width:285px\">" + createBar(buffp) + "</td><td class=\"rigth\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px;\">" + formatBytes(buff, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:184px;padding-left:26px;\"><span id=\"lang_066\">" + $("expression[id=066]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(cachedp) + "</td><td class=\"right\" style=\"width:100px;\"> </td><td class=\"right\" style=\"width:100px;\">" + formatBytes(cached, xml) + "</td><td class=\"right\" style=\"width:100px;\"> </td></tr>"); } }); @@ -305,7 +305,7 @@ used = $("Used",vital).text(); total = $("Total",vital).text(); percent = $("Percent",vital).text(); - $("#tbody_memory").append("<tr><td style=\"width:200px;\"><span id=\"lang029\">" + $("expression[id=029]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(percent) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(free, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(used, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(total, xml) + "</td></tr>"); + $("#tbody_memory").append("<tr><td style=\"width:200px;\"><span id=\"lang_029\">" + $("expression[id=029]",langxml).text() + "</span></td><td style=\"width:285px;\">" + createBar(percent) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(free, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(used, xml) + "</td><td class=\"right\" style=\"width:100px;\">" + formatBytes(total, xml) + "</td></tr>"); if($("Swapdevices", xml).length > 0) { $("Swapdevices",xml).each(function(id) { @@ -452,7 +452,7 @@ }); $("#" + table).empty(); if(text == "") { - $("#" + table).append("<tr><td><ul style=\"margin-left:10px;\"><li><span id=\"lang042\">" + $("expression[id=042]",langxml).text() + "</span></li></ul></td></tr>"); + $("#" + table).append("<tr><td><ul style=\"margin-left:10px;\"><li><span id=\"lang_042\">" + $("expression[id=042]",langxml).text() + "</span></li></ul></td></tr>"); } else { $("#" + table).append("<tr><td><ul style=\"margin-left:10px;\">" + text + "</ul></td></tr>" ); } @@ -551,7 +551,7 @@ value = $("Value",item).text(); max = $("Max",item).text(); min = $("Min",item).text(); - $("#voltageTable").append("<tr><td>" + label + "</td><td class=\"right\">" + round(value,2) + " <span id=\"lang062\">" + $("expression[id=062]",langxml).text() + "</span></td><td class=\"right\">" + round(min,2) + " <span id=\"lang062\">" + $("expression[id=062]",langxml).text() + "</span></td><td class=\"right\">" + round(max,2) + " <span id=\"lang062\">" + $("expression[id=062]",langxml).text() + "</span></td></tr>"); + $("#voltageTable").append("<tr><td>" + label + "</td><td class=\"right\">" + round(value,2) + " <span id=\"lang_062\">" + $("expression[id=062]",langxml).text() + "</span></td><td class=\"right\">" + round(min,2) + " <span id=\"lang_062\">" + $("expression[id=062]",langxml).text() + "</span></td><td class=\"right\">" + round(max,2) + " <span id=\"lang_062\">" + $("expression[id=062]",langxml).text() + "</span></td></tr>"); }); }); $("#voltage").show(); @@ -625,7 +625,7 @@ label = $("Label",item).text(); value = $("Value",item).text(); min = $("Min",item).text(); - $("#fanTable").append("<tr><td>" + label + "</td><td class=\"right\">" + value + " <span id=\"lang063\">" + $("expression[id=063]",langxml).text() + "</span></td><td class=\"right\">" + min + " <span id=\"lang063\">" + $("expression[id=063]",langxml).text() + "</span></td></tr>"); + $("#fanTable").append("<tr><td>" + label + "</td><td class=\"right\">" + value + " <span id=\"lang_063\">" + $("expression[id=063]",langxml).text() + "</span></td><td class=\"right\">" + min + " <span id=\"lang_063\">" + $("expression[id=063]",langxml).text() + "</span></td></tr>"); }); }); $("#fan").show(); @@ -665,25 +665,25 @@ time_left_minutes = $("TimeLeftMinutes", ups).text(); $("#upsTable").append('<tr><th colspan="2" style="text-align: center"><strong>' + name + ' (' + mode + ')</strong></th></tr>'); - $("#upsTable").append('<tr><td style="width:160px"><span id="lang070">' + $("expression[id=070]",langxml).text() + '</span></td><td>' + model + '</td></tr>'); - $("#upsTable").append('<tr><td style="width:160px"><span id="lang072">' + $("expression[id=072]",langxml).text() + '</span></td><td>' + start_time + '</td></tr>'); - $("#upsTable").append('<tr><td style="width:160px"><span id="lang073">' + $("expression[id=073]",langxml).text() + '</span></td><td>' + upsstatus + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_070">' + $("expression[id=070]",langxml).text() + '</span></td><td>' + model + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_072">' + $("expression[id=072]",langxml).text() + '</span></td><td>' + start_time + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_073">' + $("expression[id=073]",langxml).text() + '</span></td><td>' + upsstatus + '</td></tr>'); if (temperature != '') - $("#upsTable").append('<tr><td style="width:160px"><span id="lang084">' + $("expression[id=084]",langxml).text() + '</span></td><td>' + temperature + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_084">' + $("expression[id=084]",langxml).text() + '</span></td><td>' + temperature + '</td></tr>'); if (outages_count != '') - $("#upsTable").append('<tr><td style="width:160px"><span id="lang074">' + $("expression[id=074]",langxml).text() + '</span></td><td>' + outages_count + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_074">' + $("expression[id=074]",langxml).text() + '</span></td><td>' + outages_count + '</td></tr>'); if (last_outage != '') - $("#upsTable").append('<tr><td style="width:160px"><span id="lang075">' + $("expression[id=075]",langxml).text() + '</span></td><td>' + last_outage + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_075">' + $("expression[id=075]",langxml).text() + '</span></td><td>' + last_outage + '</td></tr>'); if (last_outage_finish != '') - $("#upsTable").append('<tr><td style="width:160px"><span id="lang076">' + $("expression[id=076]",langxml).text() + '</span></td><td>' + last_outage_finish + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_076">' + $("expression[id=076]",langxml).text() + '</span></td><td>' + last_outage_finish + '</td></tr>'); if (line_voltage != '') - $("#upsTable").append('<tr><td style="width:160px"><span id="lang077">' + $("expression[id=077]",langxml).text() + '</span></td><td>' + line_voltage + ' <span id="lang082">' + $("expression[id=082]",langxml).text() + '</span></td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_077">' + $("expression[id=077]",langxml).text() + '</span></td><td>' + line_voltage + ' <span id="lang_082">' + $("expression[id=082]",langxml).text() + '</span></td></tr>'); if (load_percent != '') - $("#upsTable").append('<tr><td style="width:160px"><span id="lang078">' + $("expression[id=078]",langxml).text() + '</span></td><td>' + createBar(load_percent) + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_078">' + $("expression[id=078]",langxml).text() + '</span></td><td>' + createBar(load_percent) + '</td></tr>'); if (battery_voltage != '') - $("#upsTable").append('<tr><td style="width:160px"><span id="lang079">' + $("expression[id=079]",langxml).text() + '</span></td><td>' + battery_voltage + ' <span id="lang082">' + $("expression[id=082]",langxml).text() + '</span></td></tr>'); - $("#upsTable").append('<tr><td style="width:160px"><span id="lang080">' + $("expression[id=080]",langxml).text() + '</span></td><td>' + createBar(battery_charge_percent) + '</td></tr>'); - $("#upsTable").append('<tr><td style="width:160px"><span id="lang081">' + $("expression[id=081]",langxml).text() + '</span></td><td>' + time_left_minutes + ' <span id="lang083">minutes</span></td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_079">' + $("expression[id=079]",langxml).text() + '</span></td><td>' + battery_voltage + ' <span id="lang_082">' + $("expression[id=082]",langxml).text() + '</span></td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_080">' + $("expression[id=080]",langxml).text() + '</span></td><td>' + createBar(battery_charge_percent) + '</td></tr>'); + $("#upsTable").append('<tr><td style="width:160px"><span id="lang_081">' + $("expression[id=081]",langxml).text() + '</span></td><td>' + time_left_minutes + ' <span id="lang_083">minutes</span></td></tr>'); }); }); $("#ups").show(); @@ -719,12 +719,12 @@ intMin = Math.floor(intMin-(intDays*60*24)-(intHours*60)); if(intDays != 0 ) { - txt = txt + intDays + " <span id=\"lang048\">" + $("expression[id=048]",langxml).text() + "</span> "; + txt = txt + intDays + " <span id=\"lang_048\">" + $("expression[id=048]",langxml).text() + "</span> "; } if(intHours != 0 ) { - txt = txt + intHours + " <span id=\"lang049\">" + $("expression[id=049]",langxml).text() + "</span> "; + txt = txt + intHours + " <span id=\"lang_049\">" + $("expression[id=049]",langxml).text() + "</span> "; } - txt = txt + intMin + " <span id=\"lang050\">" + $("expression[id=050]",langxml).text() + "</span>"; + txt = txt + intMin + " <span id=\"lang_050\">" + $("expression[id=050]",langxml).text() + "</span>"; return txt; } @@ -850,16 +850,16 @@ if (parseFloat(1 * degreeC).toString() == "NaN") return "---"; if(tempFormat == "f"){ - return round(degreeF,1) + " <span id=\"lang061\">" + $("expression[id=061]",langxml).text() + "</span>"; + return round(degreeF,1) + " <span id=\"lang_061\">" + $("expression[id=061]",langxml).text() + "</span>"; } else if(tempFormat == "c-f"){ - return round(degreeC,1) + " <span id=\"lang060\">" + $("expression[id=060]",langxml).text() + "</span> (" + round(degreeF,1) + " <span id=\"lang061\">F</span>)"; + return round(degreeC,1) + " <span id=\"lang_060\">" + $("expression[id=060]",langxml).text() + "</span> (" + round(degreeF,1) + " <span id=\"lang_061\">F</span>)"; } else if(tempFormat == "f-c"){ - return round(degreeF,1) + " <span id=\"lang061\">" + $("expression[id=061]",langxml).text() + "</span> (" + round(degreeC,1) + " <span id=\"lang060\">" + $("expression[id=060]",langxml).text() + "</span>)"; + return round(degreeF,1) + " <span id=\"lang_061\">" + $("expression[id=061]",langxml).text() + "</span> (" + round(degreeC,1) + " <span id=\"lang_060\">" + $("expression[id=060]",langxml).text() + "</span>)"; } else{ - return round(degreeC,1) + " <span id=\"lang060\">" + $("expression[id=060]",langxml).text() + "</span>"; + return round(degreeC,1) + " <span id=\"lang_060\">" + $("expression[id=060]",langxml).text() + "</span>"; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jac...@us...> - 2009-01-17 08:32:45
|
Revision: 114 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=114&view=rev Author: jacky672 Date: 2009-01-17 08:32:35 +0000 (Sat, 17 Jan 2009) Log Message: ----------- revision 113 broke plugin translation : change unique identifier separator Revision Links: -------------- http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=113&view=rev Modified Paths: -------------- index.php phpsysinfo.js Modified: index.php =================================================================== --- index.php 2009-01-16 20:09:01 UTC (rev 113) +++ index.php 2009-01-17 08:32:35 UTC (rev 114) @@ -206,17 +206,17 @@ echo " <td><span id=\"s_bogo\"></span></td>\n"; echo " </tr>\n"; echo " </table>\n"; -echo " <h3 style=\"cursor: pointer\" id=\"sPci\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_017_1\">PCI devices</span></h3>\n"; -echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hPci\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_017_2\">PCI devices</span></h3>\n"; +echo " <h3 style=\"cursor: pointer\" id=\"sPci\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_017-1\">PCI devices</span></h3>\n"; +echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hPci\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_017-2\">PCI devices</span></h3>\n"; echo " <table id=\"pciTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sIde\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_018_3\">IDE devices</span></h3>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hIde\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_018_4\">IDE devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sIde\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_018-3\">IDE devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hIde\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_018-4\">IDE devices</span></h3>\n"; echo " <table class=\"odd\" id=\"ideTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; -echo " <h3 style=\"cursor: pointer\" id=\"sScsi\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_019_5\">SCSI devices</span></h3>\n"; -echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hScsi\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_019_6\">SCSI device</span></h3>\n"; +echo " <h3 style=\"cursor: pointer\" id=\"sScsi\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_019-5\">SCSI devices</span></h3>\n"; +echo " <h3 style=\"cursor: pointer; display: none;\" id=\"hScsi\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_019-6\">SCSI device</span></h3>\n"; echo " <table id=\"scsiTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sUsb\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_020_7\">USB devices</span></h3>\n"; -echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hUsb\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_020_8\">USB devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer\" id=\"sUsb\"><img src=\"./gfx/bullet_toggle_plus.png\" alt=\"plus\" style=\"vertical-align:middle;\" /><span id=\"lang_020-7\">USB devices</span></h3>\n"; +echo " <h3 class=\"odd\" style=\"cursor: pointer; display: none;\" id=\"hUsb\"><img src=\"./gfx/bullet_toggle_minus.png\" alt=\"minus\" style=\"vertical-align:middle;\" /><span id=\"lang_020-8\">USB devices</span></h3>\n"; echo " <table class=\"odd\" id=\"usbTable\" cellspacing=\"0\" style=\"display: none;\"></table>\n"; echo " </div>\n"; echo " <div id=\"memory\">\n"; @@ -224,11 +224,11 @@ echo " <table class=\"stripeMe\" id=\"memoryTable\" cellspacing=\"0\">\n"; echo " <thead>\n"; echo " <tr>\n"; -echo " <th style=\"width:200px;\"><span id=\"lang_034_9\">Type</span></th>\n"; -echo " <th style=\"width:285px;\"><span id=\"lang_033_10\">Percent</span></th>\n"; -echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang_035_11\">Free</span></th>\n"; -echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang_036_12\">Used</span></th>\n"; -echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang_037_13\">Total</span></th>\n"; +echo " <th style=\"width:200px;\"><span id=\"lang_034-9\">Type</span></th>\n"; +echo " <th style=\"width:285px;\"><span id=\"lang_033-10\">Percent</span></th>\n"; +echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang_035-11\">Free</span></th>\n"; +echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang_036-12\">Used</span></th>\n"; +echo " <th class=\"right\" style=\"width:100px;\"><span id=\"lang_037-13\">Total</span></th>\n"; echo " </tr>\n"; echo " </thead>\n"; echo " <tbody id=\"tbody_memory\">\n"; @@ -241,12 +241,12 @@ echo " <thead>\n"; echo " <tr>\n"; echo " <th class=\"{sorter: 'text'}\" style=\"width:100px;\"><span id=\"lang_031\">Mount</span></th>\n"; -echo " <th class=\"{sorter: 'text'}\" style=\"width:50px;\"><span id=\"lang_034_14\">Type</span></th>\n"; +echo " <th class=\"{sorter: 'text'}\" style=\"width:50px;\"><span id=\"lang_034-14\">Type</span></th>\n"; echo " <th class=\"{sorter: 'text'}\" style=\"width:120px;\"><span id=\"lang_032\">Partition</span></th>\n"; echo " <th class=\"{sorter: 'digit'}\"><span id=\"lang_033\">Percent used</span></th>\n"; -echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang_035_15\">Free</span></th>\n"; -echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang_036_16\">Used</span></th>\n"; -echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang_037_17\">Total</span></th>\n"; +echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang_035-15\">Free</span></th>\n"; +echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang_036-16\">Used</span></th>\n"; +echo " <th class=\"{sorter: 'digit'} right\" style=\"width:100px;\"><span id=\"lang_037-17\">Total</span></th>\n"; echo " </tr>\n"; echo " </thead>\n"; echo " <tfoot>\n"; Modified: phpsysinfo.js =================================================================== --- phpsysinfo.js 2009-01-16 20:09:01 UTC (rev 113) +++ phpsysinfo.js 2009-01-17 08:32:35 UTC (rev 114) @@ -191,8 +191,8 @@ $('span[id*=lang_]').each(function(i) { langId = this.getAttribute('id').substring(5); - if(langId.indexOf('_') != -1) - langId = langId.substring(0,langId.indexOf('_')); //remove the unique identifier + if(langId.indexOf('-') != -1) + langId = langId.substring(0,langId.indexOf('-')); //remove the unique identifier langStr = $("expression[id=" + langId + "] exp",langxml); if(langStr.length > 0) { @@ -1038,7 +1038,7 @@ var html = ""; if(id < 100) id = "0" + id; - html += "<span id=\"lang_" + id + "_" + langcounter + "\">"; + html += "<span id=\"lang_" + id + "-" + langcounter + "\">"; langcounter++; return html; } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Big...@us...> - 2009-01-26 14:11:26
|
Revision: 126 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=126&view=rev Author: BigMichi1 Date: 2009-01-26 14:11:19 +0000 (Mon, 26 Jan 2009) Log Message: ----------- Fixed Bug [ 2529373 ] Is update of README required? (details inside) Modified Paths: -------------- ChangeLog README Modified: ChangeLog =================================================================== --- ChangeLog 2009-01-26 14:02:10 UTC (rev 125) +++ ChangeLog 2009-01-26 14:11:19 UTC (rev 126) @@ -23,6 +23,7 @@ - [FIX] Fixed Bug [ 1744664 ] unreachable mounted fs - [FIX] Fixed Bug [ 1870546 ] Localized device names on Russian Windows - [FIX] Fixed Bug [ 2529374 ] Unnecessary graphic files in SVN + - [FIX] Fixed Bug [ 2529373 ] Is update of README required? (details inside) - [FIX] Some fixes for recent /proc/mdstat files, also new sample file for tests - [FIX] Fedore distro must be read before Redhat - [FIX] Stop JavaScript alert popup when XML loading errors occurs Modified: README =================================================================== --- README 2009-01-26 14:02:10 UTC (rev 125) +++ README 2009-01-26 14:11:19 UTC (rev 126) @@ -1,22 +1,20 @@ phpSysInfo 3.0-RC6 - http://phpsysinfo.sourceforge.net/ Copyright (c), 1999-2008, Uriah Welcome (pre...@us...) -Copyright (c), 1999-2008, Matthew Snelham (inf...@us...) -Copyright (c), 1999-2008, Michael Cramer (big...@us...) +Copyright (c), 1999-2009, Michael Cramer (big...@us...) Copyright (c), 2007-2008, Audun Larsen (xq...@us...) -Copyright (c), 2007-2008, Erkan Valentin (jac...@us...) +Copyright (c), 2007-2009, Erkan Valentin (jac...@us...) CURRENT TESTED PLATFORMS ------------------------ - - Linux 2.2+ - - FreeBSD 4.x - - FreeBSD 6.x + - Linux 2.6.x + - FreeBSD 7.x - OpenBSD 2.8+ - NetBSD - Darwin/OSX - Win2000 / Win2003 / WinXP / WinVista - > PHP 5.2 or later - - With SimpleXML extension. + - With PCRE, XML, XSL, MBString and SimpleXML extension. If your platform is not here try checking out the mailing list archives or the message boards on SourceForge. @@ -37,10 +35,6 @@ safe_mode. Please see the PHP documentation for information on how you can do this. - If you use the apc pecl extension with apc.optimization="1" then - phpSysInfo will break in the XPath.class. Turn this option off, and it - will work with apc. - That's it. Restart your webserver (if you changed php.ini), and voila. KNOWN PROBLEMS @@ -50,13 +44,6 @@ PLATFORM SPECIFIC ISSUES ------------------------ - - FreeBSD - There is currently a bug in FreeBSD that if you boot your system up - and drop to single user mode and then again back to multiuser the - system removes /var/run/dmesg.boot. This will cause phpsysinfo to - fail. A bug has already been reported to the FreeBSD team. (PS, this - may exist in other *BSDs also) - !!! We need feedback if these issue is still alive !!! - Windows with IIS On Windows systems we get our informations through the WMI interface. If you run phpsysinfo on the IIS webserver, phpsysinfo will not connect This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Big...@us...> - 2009-02-03 14:24:14
|
Revision: 129 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=129&view=rev Author: BigMichi1 Date: 2009-02-03 14:24:05 +0000 (Tue, 03 Feb 2009) Log Message: ----------- documentation, documentation, documentation Modified Paths: -------------- includes/class.Error.inc.php includes/common_functions.php includes/interfaces/class.psi_os_interface.inc.php includes/interfaces/class.psi_plugin_interface.inc.php includes/interfaces/class.psi_sensor_interface.inc.php includes/os/class.Darwin.inc.php includes/os/class.DragonFly.inc.php includes/os/class.FreeBSD.inc.php includes/os/class.HP-UX.inc.php includes/os/class.Linux.inc.php includes/os/class.NetBSD.inc.php includes/os/class.OpenBSD.inc.php includes/os/class.SunOS.inc.php includes/os/class.WINNT.inc.php includes/os/class.bsd_common.inc.php includes/os/class.parser.inc.php includes/redir.php language/language.php xml.php Added Paths: ----------- includes/class.xml.inc.php Removed Paths: ------------- includes/xml.class.php Modified: includes/class.Error.inc.php =================================================================== --- includes/class.Error.inc.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/class.Error.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -1,27 +1,21 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// -class Error { +/** + * Error class + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi + */ + +/** + * class for the error handling through phpsysinfo + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi + */ +class Error +{ /** * holds the instance of this class * @@ -30,84 +24,95 @@ * @var object */ private static $instance; + /** * holds the error messages * * @access private * @var array */ - private $arrErrorList; + private $arrErrorList = array(); + /** * current number ob errors * * @access private * @var integer */ - private $errors; + private $errors = 0; + /** * initalize some used vars * * @access private */ - private function __construct() { + private function __construct() + { $this->errors = 0; - $this->arrErrorList = array (); + $this->arrErrorList = array(); } + /** * Singleton function * * @access public - * @return object instance of the class + * @return Error instance of the class */ - public static function singleton() { - if (!isset (self :: $instance)) { + public static function singleton() + { + if (!isset(self::$instance)) { $c = __CLASS__; - self :: $instance = new $c; + self::$instance = new $c; } - return self :: $instance; + return self::$instance; } + /** * triggers an error when somebody tries to clone the object * * @access public */ - public function __clone() { + public function __clone() + { trigger_error("Can't be cloned", E_USER_ERROR); } + /** * adds an error to the internal list * * @access public * @param string Command, which cause the Error * @param string additional Message, to describe the Error - * */ - public function addError($strCommand, $strMessage) { + public function addError($strCommand, $strMessage) + { $index = count($this->arrErrorList) + 1; $this->arrErrorList[$index]['command'] = $strCommand; $this->arrErrorList[$index]['message'] = $this->trace($strMessage); $this->errors++; } + /** * adds a waraning to the internal list * * @access public * @param string Warning message to display - * */ - public function addWarning($strMessage) { + public function addWarning($strMessage) + { $index = count($this->arrErrorList) + 1; $this->arrErrorList[$index]['command'] = "WARN"; $this->arrErrorList[$index]['message'] = $strMessage; } + /** * converts the internal error and warning list in a html table * * @access public * @return string contains a HTML table which can be used to echo out the errors - * */ - public function ErrorsAsHTML() { + public function ErrorsAsHTML() + { $strHTMLString = ""; $strWARNString = ""; $strHTMLhead = "<table width=\"100%\" border=\"0\">\n" . "\t<tr>\n" . "\t\t<td><font size=\"-1\"><b>Command</b></font></td>\n" . "\t\t<td><font size=\"-1\"><b>Message</b></font></td>\n" . "\t</tr>\n"; @@ -121,13 +126,14 @@ } } } - if (!empty ($strHTMLString)) { + if (!empty($strHTMLString)) { $strHTMLString = $strWARNString . $strHTMLhead . $strHTMLString . $strHTMLfoot; } else { $strHTMLString = $strWARNString; } return $strHTMLString; } + /** * converts the internal error and warning list to a XML file * @@ -135,7 +141,8 @@ * @return XML data containing the errors * */ - public function ErrorsAsXML() { + public function ErrorsAsXML() + { $xml = simplexml_load_string("<?xml version='1.0'?>\n<phpsysinfo></phpsysinfo>"); $generation = $xml->addChild('Generation'); $generation->addAttribute('version', PSI_VERSION); @@ -149,6 +156,7 @@ } return $xml->asXML(); } + /** * add the errors to an existing xml document * @@ -156,7 +164,8 @@ * @param SimpleXMLObject reference existing simplexmlobject to which errors are added if present * */ - public function ErrorsAddToXML(& $xml) { + public function ErrorsAddToXML(&$xml) + { if ($this->errors > 0) { $xmlerr = $xml->addChild('Errors'); foreach ($this->arrErrorList as $arrLine) { @@ -166,6 +175,7 @@ } } } + /** * check if errors exists * @@ -173,20 +183,23 @@ * @return boolean true if are errors logged, false if not * */ - public function ErrorsExist() { + public function ErrorsExist() + { if ($this->errors > 0) { return true; } else { return false; } } + /** * generate a function backtrace for error diagnostic, function is genearally based on code submitted in the php reference page * * @param string additional message to display * @return string formatted string of the backtrace */ - private function trace($strMessage) { + private function trace($strMessage) + { $arrTrace = array_reverse(debug_backtrace()); $strFunc = ''; $strBacktrace = htmlspecialchars($strMessage) . "\n\n"; @@ -203,7 +216,7 @@ $strFunc = ''; } else { $strFunc = $val['function'] . '('; - if (isset ($val['args'][0])) { + if (isset($val['args'][0])) { $strFunc .= ' '; $strComma = ''; foreach ($val['args'] as $val) { @@ -218,36 +231,24 @@ } return $strBacktrace; } + /** * convert some special vars into better readable output * * @param mixed value, which should be formatted * @return string formatted string */ - private function print_var($var) { + private function print_var($var) + { if (is_string($var)) { - return ('"' . str_replace(array ( - "\x00", - "\x0a", - "\x0d", - "\x1a", - "\x09" - ), array ( - '\0', - '\n', - '\r', - '\Z', - '\t' - ), $var) . '"'); - } - elseif (is_bool($var)) { + return('"' . str_replace(array("\x00", "\x0a", "\x0d", "\x1a", "\x09"), array('\0', '\n', '\r', '\Z', '\t'), $var) . '"'); + } elseif (is_bool($var)) { if ($var) { - return ('true'); + return('true'); } else { - return ('false'); + return('false'); } - } - elseif (is_array($var)) { + } elseif (is_array($var)) { $strResult = 'array( '; $strComma = ''; foreach ($var as $key => $val) { @@ -255,10 +256,10 @@ $strComma = ', '; } $strResult .= ' )'; - return ($strResult); + return($strResult); } // anything else, just let php try to print it - return (var_export($var, true)); + return(var_export($var, true)); } } -?> +?> \ No newline at end of file Copied: includes/class.xml.inc.php (from rev 126, includes/xml.class.php) =================================================================== --- includes/class.xml.inc.php (rev 0) +++ includes/class.xml.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -0,0 +1,501 @@ +<?php +/** + * XML Generation class + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_xml + */ + +/** + * class for generation of the xml + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_xml + */ +class xml { + /** + * Sysinfo object where the information retrieval methods are included + * + * @access private + * @var Sysinfo + */ + private $sysinfo; + + /** + * xml object with the xml content + * + * @access private + * @var SimpleXMLElement + */ + private $xml; + + /** + * object for error handling + * + * @access private + * @var Error + */ + private $errors; + + /** + * array with all enabled plugins (name) + * + * @access private + * @var array + */ + private $plugins; + + /** + * generate a xml for a plugin or for the main app + * + * @access private + * @var boolean + */ + private $plugin_request = false; + + /** + * generate the entire xml with all plugins or only a part of the xml (main or plugin) + * + * @access private + * @var boolean + */ + private $complete_request = false; + + /** + * doing some initial tasks + * - generate the xml structure with the right header elements + * - get the error object for error output + * - get a instance of the sysinfo object + * + * @param string name of the plugin + * @param boolean generate xml with all plugins or not + */ + public function __construct($pluginname = "", $complete = false) { + ($pluginname == "") ? $this->plugin_request = false : $this->plugin_request = true; + ($complete) ? $this->complete_request = true : $this->complete_request = false; + $this->errors = Error::singleton(); + if(!$this->plugin_request || $this->complete_request) { + $os = PHP_OS; + $this->sysinfo = new $os(); + } + $this->xmlbody($pluginname); + } + + /** + * generate common information + * + * @access private + */ + private function buildVitals() { + $strLoadavg = ''; + $arrBuf = $this->sysinfo->loadavg(PSI_LOAD_BAR); + foreach($arrBuf['avg'] as $strValue) { + $strLoadavg .= $strValue . ' '; + } + $vitals = $this->xml->addChild('Vitals'); + if(PSI_USE_VHOST === true) { + $vitals->addChild('Hostname', $this->toUTF8(htmlspecialchars($this->sysinfo->vhostname()))); + $vitals->addChild('IPAddr', $this->sysinfo->vip_addr()); + } else { + $vitals->addChild('Hostname', $this->toUTF8(htmlspecialchars($this->sysinfo->chostname()))); + $vitals->addChild('IPAddr', $this->sysinfo->ip_addr()); + } + $vitals->addChild('Kernel', $this->toUTF8(htmlspecialchars($this->sysinfo->kernel()))); + $vitals->addChild('Distro', $this->toUTF8(htmlspecialchars($this->sysinfo->distro()))); + $vitals->addChild('Distroicon', $this->toUTF8(htmlspecialchars($this->sysinfo->distroicon()))); + $vitals->addChild('Uptime', $this->sysinfo->uptime()); + $vitals->addChild('Users', $this->sysinfo->users()); + $vitals->addChild('LoadAvg', $strLoadavg); + if(isset($arrBuf['cpupercent'])) { + $vitals->addChild('CPULoad', round($arrBuf['cpupercent'], 2)); + } + } + + /** + * generate the network information + * + * @access private + */ + private function buildNetwork() { + $arrNet = $this->sysinfo->network(); + $network = $this->xml->addChild('Network'); + $hideDevices = preg_split("/[\s]?,[\s]?/", PSI_HIDE_NETWORK_INTERFACE, -1, PREG_SPLIT_NO_EMPTY); + foreach($arrNet as $strDev => $arrStats) { + if(!in_array($strDev, $hideDevices)) { + $device = $network->addChild('NetDevice'); + $device->addChild('Name', $this->toUTF8(htmlspecialchars($strDev))); + $device->addChild('RxBytes', $arrStats['rx_bytes']); + $device->addChild('TxBytes', $arrStats['tx_bytes']); + $device->addChild('Err', $arrStats['errs']); + $device->addChild('Drops', $arrStats['drop']); + } + } + } + + /** + * generate the hardware information + * + * @access private + */ + private function buildHardware() { + $hardware = $this->xml->addChild('Hardware'); + $cpu = $hardware->addChild('CPU'); + $pci = $hardware->addChild('PCI'); + $ide = $hardware->addChild('IDE'); + $scsi = $hardware->addChild('SCSI'); + $usb = $hardware->addChild('USB'); + $arrSys = $this->sysinfo->cpu_info(); + $arrBuf = finddups($this->sysinfo->pci()); + if(count($arrBuf)) { + for ($i = 0, $max = sizeof($arrBuf); $i < $max; $i++) { + if ($arrBuf[$i]) { + $tmp = $pci->addChild('Device'); + $tmp->addChild('Name', $this->toUTF8($arrBuf[$i])); + } + } + } + $arrBuf = $this->sysinfo->ide(); + if(count($arrBuf)) { + foreach($arrBuf as $strKey => $arrValue) { + $tmp = $ide->addChild('Device'); + $tmp->addChild('Name', $strKey . ': ' . $this->toUTF8($arrValue['model'])); + if(isset($arrValue['capacity'])) { + $tmp->addChild('Capacity', $arrValue['capacity']); + } + } + } + $arrBuf = $this->sysinfo->scsi(); + if(count($arrBuf)) { + foreach($arrBuf as $strKey => $arrValue) { + $tmp = $scsi->addChild('Device'); + if($strKey >= '0' && $strKey <= '9') { + $tmp->addChild('Name', $this->toUTF8($arrValue['model'])); + } else { + $tmp->addChild('Name', $strKey . ': ' . $this->toUTF8($arrValue['model'])); + } + if(isset ($arrrValue['capacity'])) { + $tmp->addChild('Capacity', $arrValue['capacity']); + } + } + } + $arrBuf = finddups($this->sysinfo->usb()); + if(count($arrBuf)) { + for($i = 0, $max = sizeof($arrBuf); $i < $max; $i++) { + if(trim($arrBuf[$i]) != "") { + $tmp = $usb->addChild('Device'); + $tmp->addChild('Name', $this->toUTF8($arrBuf[$i])); + } + } + } + $cpu->addChild('Number', $arrSys['cpus']); + $cpu->addChild('Model', $this->toUTF8($arrSys['model'])); + if(isset ($arrSys['temp'])) { + $cpu->addChild('Cputemp', $arrSys['temp']); + } + $cpu->addChild('Cpuspeed', $arrSys['cpuspeed']); + if(isset ($arrSys['busspeed'])) { + $cpu->addChild('Busspeed', $arrSys['busspeed']); + } + if(isset ($arrSys['cache'])) { + $cpu->addChild('Cache', $arrSys['cache']); + } + if(isset ($arrSys['bogomips'])) { + $cpu->addChild('Bogomips', $arrSys['bogomips']); + } + } + + /** + * generate the memory information + * + * @access private + */ + private function buildMemory() { + $arrMem = $this->sysinfo->memory(); + $i = 0; + $memory = $this->xml->addChild('Memory'); + $memory->addChild('Free', $arrMem['ram']['free']); + $memory->addChild('Used', $arrMem['ram']['used']); + $memory->addChild('Total', $arrMem['ram']['total']); + $memory->addChild('Percent', $arrMem['ram']['percent']); + if (isset ($arrMem['ram']['app'])) { + $memory->addChild('App', $arrMem['ram']['app']); + $memory->addChild('AppPercent', $arrMem['ram']['app_percent']); + $memory->addChild('Buffers', $arrMem['ram']['buffers']); + $memory->addChild('BuffersPercent', $arrMem['ram']['buffers_percent']); + $memory->addChild('Cached', $arrMem['ram']['cached']); + $memory->addChild('CachedPercent', $arrMem['ram']['cached_percent']); + } + $swap = $this->xml->addChild('Swap'); + $swapDev = $this->xml->addChild('Swapdevices'); + if (count($arrMem['devswap']) > 0) { + $swap->addChild('Free', $arrMem['swap']['free']); + $swap->addChild('Used', $arrMem['swap']['used']); + $swap->addChild('Total', $arrMem['swap']['total']); + $swap->addChild('Percent', $arrMem['swap']['percent']); + foreach ($arrMem['devswap'] as $arrDevice) { + $swapMount = $swapDev->addChild('Mount'); + $swapMount->addChild('MountPointID', $i++); + $swapMount->addChild('Type', 'Swap'); + $dev = $swapMount->addChild('Device'); + $dev->addChild('Name', $this->toUTF8($arrDevice['dev'])); + $swapMount->addChild('Percent', $arrDevice['percent']); + $swapMount->addChild('Free', $arrDevice['free']); + $swapMount->addChild('Used', $arrDevice['used']); + $swapMount->addChild('Size', $arrDevice['total']); + } + } + } + + /** + * generate the filesysteminformation + * + * @access private + */ + private function buildFilesystems() { + $hideMounts = array (); + $hideFstypes = array (); + $hideDisks = array (); + if(PSI_HIDE_MOUNTS != "") { + $hideMounts = explode(',', PSI_HIDE_MOUNTS); + } + if(PSI_HIDE_FS_TYPES != "") { + $hideFstypes = explode(',', PSI_HIDE_FS_TYPES); + } + if(PSI_HIDE_DISKS != "") { + $hideDisks = explode(',', PSI_HIDE_DISKS); + } + $arrFs = $this->sysinfo->filesystems(); + $fs = $this->xml->addChild('FileSystem'); + for($i = 0, $max = sizeof($arrFs); $i < $max; $i++) { + if(!in_array($arrFs[$i]['mount'], $hideMounts, true) && !in_array($arrFs[$i]['fstype'], $hideFstypes, true) && !in_array($arrFs[$i]['disk'], $hideDisks, true)) { + $mount = $fs->addChild('Mount'); + $mount->addchild('MountPointID', $i); + if(PSI_SHOW_MOUNT_POINT === true) { + $mount->addchild('MountPoint', $this->toUTF8($arrFs[$i]['mount'])); + } + $mount->addchild('Type', $arrFs[$i]['fstype']); + $dev = $mount->addchild('Device'); + $dev->addChild('Name', $this->toUTF8($arrFs[$i]['disk'])); + $mount->addchild('Percent', $arrFs[$i]['percent']); + $mount->addchild('Free', $arrFs[$i]['free']); + $mount->addchild('Used', $arrFs[$i]['used']); + $mount->addchild('Size', $arrFs[$i]['size']); + if(isset ($arrFs[$i]['options'])) { + $mount->addchild('MountOptions', $arrFs[$i]['options']); + } + if(isset ($arrFs[$i]['inodes'])) { + $mount->addchild('Inodes', $arrFs[$i]['inodes']); + } + } + } + } + + /** + * generate the motherboard information + * + * @access private + */ + private function buildMbinfo() { + $mbinfo_data = new mbinfo(); + $mbinfo = $this->xml->addChild('MBinfo'); + $arrBuff = $mbinfo_data->temperature(); + if (sizeof($arrBuff) > 0) { + $temp = $mbinfo->addChild('Temperature'); + foreach ($arrBuff as $arrValue) { + $item = $temp->addChild('Item'); + $item->addChild('Label', $arrValue['label']); + $item->addChild('Value', $arrValue['value']); + $item->addChild('Limit', $arrValue['limit']); + } + } + $arrBuff = $mbinfo_data->fans(); + if (sizeof($arrBuff) > 0) { + $fan = $mbinfo->addChild('Fans'); + foreach ($arrBuff as $arrValue) { + $item = $fan->addChild('Item'); + $item->addChild('Label', $this->toUTF8($arrValue['label'])); + $item->addChild('Value', $arrValue['value']); + $item->addChild('Min', $arrValue['min']); + } + } + $arrBuff = $mbinfo_data->voltage(); + if (sizeof($arrBuff) > 0) { + $volt = $mbinfo->addChild('Voltage'); + foreach ($arrBuff as $arrValue) { + $item = $volt->addChild('Item'); + $item->addChild('Label', $this->toUTF8($arrValue['label'])); + $item->addChild('Value', $arrValue['value']); + $item->addChild('Min', $arrValue['min']); + $item->addChild('Max', $arrValue['max']); + } + } + } + + /** + * generate the hddtemp information + * + * @access private + */ + private function buildHddtemp() { + $hddtemp_data = new hddtemp(); + $arrBuf = $hddtemp_data->temperature(); + $hddtemp = $this->xml->addChild('HDDTemp'); + for($i = 0, $max = sizeof($arrBuf); $i < $max; $i++) { + $item = $hddtemp->addChild('Item'); + $item->addChild('Label', $this->toUTF8($arrBuf[$i]['label'])); + $item->addChild('Value', $arrBuf[$i]['value']); + $item->addChild('Model', $this->toUTF8($arrBuf[$i]['model'])); + } + } + + /** + * generate the ups information + * + * @access private + */ + private function buildUpsinfo() { + $upsinfo_data = new upsinfo(); + $arrBuf = $upsinfo_data->info(); + if(isset($arrBuf) && !empty($arrBuf)) { + $upsinfo = $this->xml->addChild('UPSinfo'); + for($i = 0, $max = sizeof($arrBuf); $i < $max; $i++) { + $item = $upsinfo->addChild('Ups'); + $item->addChild('Name', $this->toUTF8($arrBuf[$i]['name'])); + $item->addChild('Model', $this->toUTF8($arrBuf[$i]['model'])); + $item->addChild('Mode', $arrBuf[$i]['mode']); + $item->addChild('StartTime', $arrBuf[$i]['start_time']); + $item->addChild('Status', $this->toUTF8($arrBuf[$i]['status'])); + $item->addChild('UPSTemperature', $this->toUTF8($arrBuf[$i]['temperature'])); + $item->addChild('OutagesCount', $arrBuf[$i]['outages_count']); + $item->addChild('LastOutage', $this->toUTF8($arrBuf[$i]['last_outage'])); + $item->addChild('LastOutageFinish', $this->toUTF8($arrBuf[$i]['last_outage_finish'])); + $item->addChild('LineVoltage', $arrBuf[$i]['line_voltage']); + $item->addChild('LoadPercent', $arrBuf[$i]['load_percent']); + $item->addChild('BatteryVoltage', $arrBuf[$i]['battery_voltage']); + $item->addChild('BatteryChargePercent', $arrBuf[$i]['battery_charge_percent']); + $item->addChild('TimeLeftMinutes', $arrBuf[$i]['time_left_minutes']); + } + } + } + + /** + * generate the xml document + * + * @access public + */ + public function buildXml() { + if (!$this->plugin_request || $this->complete_request) { + $this->buildVitals(); + $this->buildNetwork(); + $this->buildHardware(); + $this->buildMemory(); + $this->buildFilesystems(); + if(PSI_MBINFO) { + $this->buildMbinfo(); + } + if(PSI_HDDTEMP) { + $this->buildHddtemp(); + } + if(PSI_UPSINFO) { + $this->buildUpsinfo(); + } + } + $this->buildPlugins(); + $this->errors->ErrorsAddToXML($this->xml); + } + + /** + * print the xml content as xml document with the correct headers for webservers + * + * @access public + */ + public function printXml() { + header("Cache-Control: no-cache, must-revalidate\n"); + header("Content-Type: text/xml\n\n"); + echo $this->xml->asXML(); + } + + /** + * get the xml content as string + * + * @access public + * @return string + */ + public function getXml() { + return $this->xml->asXML(); + } + + /** + * include xml-trees of the plugins to the main xml + * + * @access private + */ + private function buildPlugins() { + $pluginroot = $this->xml->addChild("Plugins"); + if ($this->plugin_request || $this->complete_request) { + if (defined('PSI_PLUGINS')) { + foreach ($this->plugins as $plugin) { + $object = new $plugin (); + $object->execute(); + $this->combinexml($pluginroot, $object->xml()); + } + } + } + } + + /** + * append a xml-tree to another xml-tree + * + * @access private + * @param SimpleXMLElement parent to which should be appended + * @param SimpleXMLElement child that should be appended + */ + private function combinexml(SimpleXMLElement $parent, SimpleXMLElement $new_child) { + $node1 = dom_import_simplexml($parent); + $dom_sxe = dom_import_simplexml($new_child); + $node2 = $node1->ownerDocument->importNode($dom_sxe, true); + $node1->appendChild($node2); + } + + /** + * convert a string into an UTF-8 string + * + * @access private + * @param string string to convert + * @return string UTF-8 string + */ + private function toUTF8($str) { + return htmlspecialchars(mb_detect_encoding($str) == 'UTF-8' ? trim($str) : trim(mb_convert_encoding($str, 'UTF-8'))); + } + + /** + * build the xml structure where the content can be inserted + * + * @access private + * @param string name of the plugin + */ + private function xmlbody($pluginname) { + $this->xml = simplexml_load_string("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpsysinfo xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"phpsysinfo.xsd\"></phpsysinfo>"); + $generation = $this->xml->addChild('Generation'); + $generation->addAttribute('version', PSI_VERSION); + $generation->addAttribute('timestamp', time()); + $options = $this->xml->addChild('Options'); + $options->addChild('tempFormat', defined('PSI_TEMP_FORMAT') ? PSI_TEMP_FORMAT : 'c'); + $options->addChild('byteFormat', defined('PSI_BYTE_FORMAT') ? PSI_BYTE_FORMAT : 'auto_binary'); + $options->addChild('refresh', defined('PSI_REFRESH') ? PSI_REFRESH : 'false'); + $options->addChild('showPickListTemplate', defined('PSI_SHOW_PICKLIST_TEMPLATE') ? PSI_SHOW_PICKLIST_TEMPLATE : 'false'); + $options->addChild('showPickListLang', defined('PSI_SHOW_PICKLIST_LANG') ? PSI_SHOW_PICKLIST_LANG : 'false'); + $plug = $options->addChild('Used_Plugins'); + if((!$this->plugin_request || $this->complete_request) && PSI_PLUGINS !== false) { + $this->plugins = preg_split("/[\s]?,[\s]?/", PSI_PLUGINS, -1, PREG_SPLIT_NO_EMPTY); + foreach($this->plugins as $plugin) { + $plug->addChild('Plugin', $plugin); + } + } else { + $this->plugins = array($pluginname); + } + } +} +?> Property changes on: includes/class.xml.inc.php ___________________________________________________________________ Added: svn:mime-type + text/x-php Added: svn:keywords + Id Added: svn:mergeinfo + Added: svn:eol-style + LF Modified: includes/common_functions.php =================================================================== --- includes/common_functions.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/common_functions.php 2009-02-03 14:24:05 UTC (rev 129) @@ -203,12 +203,17 @@ */ function __autoload($class_name) { $dirs = array( '/plugins/' . $class_name . '/', '/includes/', '/includes/interfaces/', '/includes/os/' ); + $found = false; foreach ($dirs as $dir) { - if (file_exists(APP_ROOT . $dir . 'class.' . $class_name . '.inc.php')) { - require_once (APP_ROOT . $dir . 'class.' . $class_name . '.inc.php'); - return; + if(file_exists(APP_ROOT . $dir . 'class.' . $class_name . '.inc.php')) { + require_once(APP_ROOT . $dir . 'class.' . $class_name . '.inc.php'); + $found = true; } } + if(!$found) { + $error = Error::singleton(); + $error->addError("_autoload(" . $class_name . ")", "autoloading of class file (class." . $class_name . ".inc.php) failed!"); + } } /** Modified: includes/interfaces/class.psi_os_interface.inc.php =================================================================== --- includes/interfaces/class.psi_os_interface.inc.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/interfaces/class.psi_os_interface.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -1,44 +1,167 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// +/** + * Basic OS Functions + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_interfaces + */ + +/** + * define which methods every os class for phpsysinfo must implement + * to be recognized and fully work without errors, these are the methods which + * are called from outside to include the information it in the main application + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_interfaces + */ interface psi_os_interface { + /** + * Virtual Host Name + * + * @access public + * @return string + */ public function vhostname(); + + /** + * IP of the Virtual Host Name + * + * @access public + * @return string + */ public function vip_addr(); + + /** + * Canonical Host Name + * + @access public + @return string + */ public function chostname(); + + /** + * IP of the Canonical Host Name + * + * @access public + * @return string + */ public function ip_addr(); + + /** + * Kernel Version + * + * @access public + * @return string + */ public function kernel(); + + /** + * UpTime + * time the system is running + * + * @access public + * @return integer + */ public function uptime(); + + /** + * Number of Users + * + * @access public + * @return integer + */ public function users(); + + /** + * Processor Load + * optionally create a loadbar + * + * @access public + * @param boolean include a bar + * @return array + */ public function loadavg($bar = false); + + /** + * CPU information + * + * @access public + * @return array + */ public function cpu_info(); + + /** + * PCI devices + * + * @access public + * @return array + */ public function pci(); + + /** + * IDE devices + * + * @access public + * @return array + */ public function ide(); + + /** + * SCSI devices + * + * @access public + * @return array + */ public function scsi(); + + /** + * USB devices + * + * @access public + * @return array + */ public function usb(); + + /** + * Network devices + * + * @access public + * @return array + */ public function network(); + + /** + * Physical memory information and Swap Space information + * + * @access public + * @return array + */ public function memory(); + + /** + * filesystem information + * + * @access public + * @return array + */ public function filesystems(); + + /** + * Distribution + * + * @access public + * @return string + */ public function distro(); + + /** + * Distribution Icon + * + * @access public + * @return string + */ public function distroicon(); } ?> Modified: includes/interfaces/class.psi_plugin_interface.inc.php =================================================================== --- includes/interfaces/class.psi_plugin_interface.inc.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/interfaces/class.psi_plugin_interface.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -3,7 +3,7 @@ * Basic Plugin Functions * * @license http://opensource.org/licenses/gpl-2.0.php - * @package psi_plugin + * @package psi_interfaces */ /** @@ -14,7 +14,7 @@ * @author Michael Cramer (Big...@us...) * @version $Id$ * @copyright Copyright (C) 2008 by phpSysInfo - * @package psi_plugin + * @package psi_interfaces */ interface psi_plugin_interface { /** Modified: includes/interfaces/class.psi_sensor_interface.inc.php =================================================================== --- includes/interfaces/class.psi_sensor_interface.inc.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/interfaces/class.psi_sensor_interface.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -1,29 +1,44 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// +/** + * Basic Sesnor Functions + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_interfaces + */ + +/** + * define which methods every sensor class for phpsysinfo must implement + * to be recognized and fully work without errors, these are the methods which + * are called from outside to include the information it in the main application + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_interfaces + */ interface psi_sensor_interface { + /** + * get temperature information + * + * @access public + * @return array + */ public function temperature(); + + /** + * get voltage information + * + * @access public + * @return array + */ public function voltage(); + + /** + * get fan information + * + * @access public + * @return array + */ public function fans(); } ?> Modified: includes/os/class.Darwin.inc.php =================================================================== --- includes/os/class.Darwin.inc.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/os/class.Darwin.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -1,85 +1,126 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// -if (!defined('IN_PHPSYSINFO')) { - die("No Hacking"); -} -$error->addWarning("The Darwin version of phpSysInfo is work in progress, some things currently don't work"); -class sysinfo extends bsd_common implements psi_os_interface { +/** + * Darwin System Class + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_os + */ + +/** + * Darwin sysinfo class + * get all the required information from Darwin system + * information may be incomplete + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_os + */ +class Darwin extends bsd_common implements psi_os_interface { + /** + * object for error handling + * + * @access private + * @var Error + */ + private $error; + + /** + * controls if debugging is turned on or off, value is defined in the main config.php + * + * @access private + * @var boolean + */ private $debug = PSI_DEBUG; - // Our contstructor - // this function is run on the initialization of this class + + /** + * build the global Error object and define the regexp for log parser + * + * @access public + */ public function __construct() { - parent :: __construct(); + parent::__construct(); + $this->error = Error :: singleton(); + $error->addWarning("The Darwin version of phpSysInfo is work in progress, some things currently don't work!"); $this->set_cpuregexp1 = ("CPU: (.*) \((.*)-MHz (.*)\)"); $this->set_cpuregexp2("/(.*) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)/"); $this->set_scsiregexp1("^(.*): <(.*)> .*SCSI.*device"); } + + /** + * get a value from sysctl command + * + * @access protected + * @param string key + * @return string + */ protected function grab_key($key) { $s = ""; if (execute_program('sysctl', $key, $s, $this->debug)) { $s = ereg_replace($key . ': ', '', $s); - $s = ereg_replace($key . ' = ', '', $s); // fix Apple set keys + $s = ereg_replace($key . ' = ', '', $s); return $s; } else { return ''; } } + + /** + * get a value from ioreg command + * + * @access private + * @param string key + * @return string + */ private function grab_ioreg($key) { $s = ""; - if (execute_program('ioreg', '-cls "' . $key . '" | grep "' . $key . '"', $s, $this->debug)) { //ioreg -cls "$key" | grep "$key" + if (execute_program('ioreg', '-cls "' . $key . '" | grep "' . $key . '"', $s, $this->debug)) { $s = ereg_replace('\|', '', $s); $s = ereg_replace('\+\-\o', '', $s); $s = ereg_replace('[ ]+', '', $s); - $s = ereg_replace('<[^>]+>', '', $s); // remove possible XML conflicts + $s = ereg_replace('<[^>]+>', '', $s); return $s; } else { return ''; } } + + /** + * get uptime information + * + * @access protected + * @return integer + */ protected function get_sys_ticks() { $a = ""; if (execute_program('sysctl', '-n kern.boottime', $a, $this->debug)) { - // get boottime (value in seconds) $sys_ticks = time() - $a; return $sys_ticks; } else { - return 'N.A.'; + return 0; } } + + /** + * get CPU information + * + * @access public + * @return array + */ public function cpu_info() { $results = array (); $buf = ""; - // $results['model'] = $this->grab_key('hw.model'); // need to expand this somehow... - // $results['model'] = $this->grab_key('hw.machine'); if (!execute_program('hostinfo', '| grep "Processor type"', $buf, $this->debug)) { $buf = 'N.A.'; } - $results['model'] = ereg_replace('Processor type: ', '', $buf); // get processor type + $results['model'] = ereg_replace('Processor type: ', '', $buf); $results['cpus'] = $this->grab_key('hw.ncpu'); - $results['cpuspeed'] = round($this->grab_key('hw.cpufrequency') / 1000000); // return cpu speed - Mhz - $results['busspeed'] = round($this->grab_key('hw.busfrequency') / 1000000); // return bus speed - Mhz - $results['cache'] = round($this->grab_key('hw.l2cachesize') / 1024); // return l2 cache + // return cpu speed - Mhz + $results['cpuspeed'] = round($this->grab_key('hw.cpufrequency') / 1000000); + // return bus speed - Mhz + $results['busspeed'] = round($this->grab_key('hw.busfrequency') / 1000000); + // return l2 cache + $results['cache'] = round($this->grab_key('hw.l2cachesize') / 1024); if (($this->grab_key('hw.model') == "PowerMac3,6") && ($results['cpus'] == "2")) { $results['model'] = 'Dual G4 - (PowerPC 7450)'; } // is Dual G4 @@ -91,7 +132,13 @@ } // is B&W G3 return $results; } - // get the pci device information out of ioreg + + /** + * get the pci device information out of ioreg + * + * @access public + * @return array + */ public function pci() { $results = array (); $s = $this->grab_ioreg('IOPCIDevice'); @@ -103,10 +150,15 @@ asort($results); return array_values(array_unique($results)); } - // get the ide device information out of ioreg + + /** + * get the ide device information out of ioreg + * + * @access public + * @return array + */ public function ide() { $results = array (); - // ioreg | grep "Media <class IOMedia>" $s = $this->grab_ioreg('IOATABlockStorageDevice'); $lines = split("\n", $s); $j = 0; @@ -119,6 +171,13 @@ asort($results); return array_values(array_unique($results)); } + + /** + * get memory and swap information + * + * @access public + * @return array + */ public function memory() { $pstat = ""; $s = $this->grab_key('hw.memsize'); @@ -142,8 +201,6 @@ $results['ram']['used'] = $results['ram']['total'] - $results['ram']['free']; $results['ram']['cached'] = 0; $results['ram']['percent'] = round(($results['ram']['used'] * 100) / $results['ram']['total']); - // need to fix the swap info... - // meanwhile silence and / or disable the swap information if (execute_program('swapinfo', '-k', $pstat, $this->debug)) { $lines = split("\n", $pstat); for ($i = 0, $max = sizeof($lines); $i < $max; $i++) { @@ -163,6 +220,13 @@ } return $results; } + + /** + * get network information + * + * @access public + * @return array + */ public function network() { $netstat = ""; if (execute_program('netstat', '-nbdi | cut -c1-24,42- | grep Link', $netstat, $this->debug)) { @@ -183,9 +247,16 @@ return array (); } } + + /** + * get icon name + * + * @access public + * @return string + */ public function distroicon() { $result = 'Darwin.png'; - return ($result); + return $result; } } ?> Modified: includes/os/class.DragonFly.inc.php =================================================================== --- includes/os/class.DragonFly.inc.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/os/class.DragonFly.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -1,51 +1,65 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// -if (!defined('IN_PHPSYSINFO')) { - die("No Hacking"); -} -class sysinfo extends bsd_common implements psi_os_interface { - // Our contstructor - // this function is run on the initialization of this class +/** + * DragonFly System Class + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_os + */ + +/** + * DragonFly sysinfo class + * get all the required information from DragonFly system + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_os + */ +class DragonFly extends bsd_common implements psi_os_interface { + /** + * define the regexp for log parser + * + * @access public + */ public function __construct() { - parent :: __construct(); + parent::__construct(); $this->set_cpuregexp1("^cpu(.*)\, (.*) MHz"); - // TODO : scsi needs to be verified $this->set_scsiregexp1("^(.*) at scsibus.*: <(.*)> .*"); $this->set_scsiregexp2("^(da[0-9]): (.*)MB "); $this->set_pciregexp1("/(.*): <(.*)>(.*) (pci|legacypci)[0-9]$/"); $this->set_pciregexp2("/(.*): <(.*)>.* at [0-9\.]+$/"); } + + /** + * get uptime information + * + * @access protected + * @return integer + */ protected function get_sys_ticks() { $a = $this->grab_key('kern.boottime'); preg_match("/sec = ([0-9]+)/", $a, $buf); $sys_ticks = time() - $buf[1]; return $sys_ticks; } + + /** + * load bar not implemented yet, so call everytime with false + * + * @access public + * @param boolean + * @return array + */ public function loadavg($bar = false) { - // TODO : bar not implemented yet, so call everytime with false - return parent :: loadavg(false); + return parent::loadavg(false); } + + /** + * get network information + * + * @access public + * @return array + */ public function network() { $netstat_b = ""; $netstat_n = ""; @@ -67,7 +81,13 @@ } return $results; } - // get the ide device information out of dmesg + + /** + * get the ide information + * + * @access public + * @return array + */ public function ide() { $results = array (); $s = 0; @@ -87,6 +107,13 @@ asort($results); return $results; } + + /** + * get icon name + * + * @access public + * @return string + */ public function distroicon() { $result = 'DragonFly.png'; return ($result); Modified: includes/os/class.FreeBSD.inc.php =================================================================== --- includes/os/class.FreeBSD.inc.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/os/class.FreeBSD.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -1,35 +1,36 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// -if (!defined('IN_PHPSYSINFO')) { - die("No Hacking"); -} -class sysinfo extends bsd_common implements psi_os_interface { +/** + * FreeBSD System Class + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_os + */ + +/** + * FreeBSD sysinfo class + * get all the required information from FreeBSD system + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_os + */ +class FreeBSD extends bsd_common implements psi_os_interface { + /** + * controls if debugging is turned on or off, value is defined in the main config.php + * + * @access private + * @var boolean + */ private $debug = PSI_DEBUG; - // Our contstructor - // this function is run on the initialization of this class + + /** + * define the regexp for log parser + * + * @access public + */ public function __construct() { - parent :: __construct(); + parent::__construct(); $this->set_cpuregexp1("CPU: (.*) \((.*)-MHz (.*)\)"); $this->set_cpuregexp2("/(.*) ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)/"); $this->set_scsiregexp1("^(.*): <(.*)> .*SCSI.*device"); @@ -37,12 +38,26 @@ $this->set_pciregexp1("/(.*): <(.*)>(.*) pci[0-9]$/"); $this->set_pciregexp2("/(.*): <(.*)>.* at [.0-9]+ irq/"); } + + /** + * get uptime information + * + * @access protected + * @return integer + */ protected function get_sys_ticks() { $s = explode(' ', $this->grab_key('kern.boottime')); $a = ereg_replace('{ ', '', $s[3]); $sys_ticks = time() - $a; return $sys_ticks; } + + /** + * get network information + * + * @access public + * @return array + */ public function network() { $netstat = ""; if (!execute_program('netstat', '-nibd | grep Link', $netstat, $this->debug)) { @@ -69,10 +84,25 @@ } return $results; } + + /** + * get icon name + * + * @access public + * @return string + */ public function distroicon() { $result = 'FreeBSD.png'; - return ($result); + return $result; } + + /** + * extend the memory information with additional values + * + * @access private + * @param array memory array to which the additional information are added + * @return array memory array with the additional information + */ private function memory_additional($results) { $pagesize = $this->grab_key("hw.pagesize"); $results['ram']['cached'] = $this->grab_key("vm.stats.vm.v_cache_count") * $pagesize; Modified: includes/os/class.HP-UX.inc.php =================================================================== --- includes/os/class.HP-UX.inc.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/os/class.HP-UX.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -1,39 +1,50 @@ <?php -/*************************************************************************** - * Copyright (C) 2008 by phpSysInfo - A PHP System Information Script * - * http://phpsysinfo.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. * - ***************************************************************************/ -// -// $Id$ -// -class sysinfo implements psi_os_interface { - // get our apache SERVER_NAME or vhost +/** + * HP-UX System Class + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_os + */ + +/** + * HP-UX sysinfo class + * get all the required information from HP-UX system + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_os + */ +class HP-UX implements psi_os_interface { + /** + * Virtual Host Name + * + * @access public + * @return string + */ public function vhostname() { if (!($result = getenv('SERVER_NAME'))) { $result = 'N.A.'; } return $result; } - // get the IP address of our vhost name + + /** + * IP of the Virtual Host Name + * + * @access public + * @return string + */ public function vip_addr() { return gethostbyname($this->vhostname()); } - // get our canonical hostname + + /** + * Canonical Host Name + * + @access public + @return string + */ public function chostname() { $ret = ""; if (execute_program('hostname', '', $ret)) { @@ -42,13 +53,26 @@ return 'N.A.'; } } - // get the IP address of our canonical hostname + + /** + * IP of the Canonical Host Name + * + * @access public + * @return string + */ public function ip_addr() { if (!($result = getenv('SERVER_ADDR'))) { $result = gethostbyname($this->chostname()); } return $result; } + + /** + * HP-UX Version + * + * @access public + * @return string + */ public function kernel() { $ret = ""; if (execute_program('uname', '-srvm', $ret)) { @@ -57,9 +81,17 @@ return 'N.A.'; } } + + /** + * UpTime + * time the system is running + * + * @access public + * @return integer + */ public function uptime() { $buf = ""; - $result = 0; + $result = -1; $ar_buf = array (); if (execute_program('uptime', '', $buf)) { if (preg_match("/up (\d+) days,\s*(\d+):(\d+),/", $buf, $ar_buf)) { @@ -68,11 +100,16 @@ $days = $ar_buf[1]; $result = $days * 86400 + $hours * 3600 + $min * 60; } - return $result; - } else { - return 'N.A.'; } + return $result; } + + /** + * Number of Users + * + * @access public + * @return integer + */ public function users() { $ret = ""; if (execute_program('who', '-q', $ret)) { @@ -80,31 +117,37 @@ $result = $who[1]; return $result; } else { - return 'N.A.'; + return -1; } } + + /** + * Processor Load + * optionally create a loadbar + * + * @access public + * @param boolean include a bar + * @return array + */ public function loadavg($bar = false) { $buf = ""; $ar_buf = array (); + $results['avg'] = array ('N.A.','N.A.','N.A.'); if (execute_program('uptime', '', $buf)) { if (preg_match("/average: (.*), (.*), (.*)$/", $buf, $ar_buf)) { - $results['avg'] = array ( - $ar_buf[1], - $ar_buf[2], - $ar_buf[3] - ); - } else { - $results['avg'] = array ( - 'N.A.', - 'N.A.', - 'N.A.' - ); + $results['avg'] = array ($ar_buf[1],$ar_buf[2],$ar_buf[3]); } - return $results; - } else { - return 'N.A.'; } + return $results; } + + /** + * CPU information + * All of the tags here are highly architecture dependant + * + * @access public + * @return array + */ public function cpu_info() { $results = array (); $ar_buf = array (); @@ -113,10 +156,6 @@ $bufe = explode("\n", $bufr); foreach ($bufe as $buf) { list ($key, $value) = preg_split('/\s+:\s+/', trim($buf), 2); - // All of the tags here are highly architecture dependant. - // the only way I could reconstruct them for machines I don't - // have is to browse the kernel source. So if your arch isn't - // supported, tell me you want it written in. switch ($key) { case 'model name' : $results['model'] = $value; @@ -167,13 +206,7 @@ } } $keys = array_keys($results); - $keys2be = array ( - 'model', - 'cpuspeed', - 'cache', - 'bogomips', - 'cpus' - ); + $keys2be = array ('model','cpuspeed','cache','bogomips','cpus'); while ($ar_buf = each($keys2be)) { if (!in_array($ar_buf[1], $keys)) { $results[$ar_buf[1]] = 'N.A.'; @@ -181,6 +214,13 @@ } return $results; } + + /** + * PCI devices + * + * @access public + * @return array + */ public function pci() { $bufr = ""; $results = array (); @@ -203,6 +243,13 @@ asort($results); return $results; } + + /** + * IDE devices + * + * @access public + * @return array + */ public function ide() { $buf = ""; $results = array (); @@ -245,6 +292,13 @@ asort($results); return $results; } + + /** + * SCSI devices + * + * @access public + * @return array + */ public function scsi() { $bufr = ""; $results = array (); @@ -275,6 +329,13 @@ asort($results); return $results; } + + /** + * USB devices + * + * @access public + * @return array + */ public function usb() { $bufr = ""; $results = array (); @@ -299,6 +360,14 @@ } return $results; } + + /** + * Network devices + * includes also rx/tx bytes + * + * @access public + * @return array + */ public function network() { $netstat = ""; if (execute_program('netstat', '-ni | tail -n +2', $netstat)) { @@ -319,6 +388,13 @@ return array (); } } + + /** + * Physical memory information and Swap Space information + * + * @access public + * @return array + */ public function memory() { $bufr = ""; $results['swap'] = array (); @@ -334,8 +410,6 @@ $results['ram']['shared'] = $ar_buf[3]; $results['ram']['buffers'] = $ar_buf[4]; $results['ram']['cached'] = $ar_buf[5]; - // I don't like this since buffers and cache really aren't - // 'used' per say, but I get too many emails about it. $results['ram']['percent'] = round(($results['ram']['used'] * 100) / $results['ram']['total']); } if (preg_match('/Swap:\s+(.*)$/', $buf, $ar_buf)) { @@ -364,6 +438,13 @@ } return $results; } + + /** + * filesystem information + * + * @access public + * @return array + */ public function filesystems() { $df = ""; if (execute_program('df', '-kP', $df)) { @@ -397,13 +478,27 @@ } return $results; } + + /** + * Distribution + * + * @access public + * @return string + */ public function distro() { $result = 'HP-UX'; - return ($result); + return $result; } + + /** + * Distribution Icon + * + * @access public + * @return string + */ public function distroicon() { $result = 'unknown.png'; - return ($result); + return $result; } } ?> Modified: includes/os/class.Linux.inc.php =================================================================== --- includes/os/class.Linux.inc.php 2009-02-03 14:21:29 UTC (rev 128) +++ includes/os/class.Linux.inc.php 2009-02-03 14:24:05 UTC (rev 129) @@ -1,42 +1,73 @@ <?php -/**************************************... [truncated message content] |
From: <Big...@us...> - 2009-02-17 10:03:40
|
Revision: 139 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=139&view=rev Author: BigMichi1 Date: 2009-02-17 10:03:35 +0000 (Tue, 17 Feb 2009) Log Message: ----------- update dataTables, jgrowl, nyroModal remove metadata Modified Paths: -------------- index.php js/README js/jquery.dataTables.min.js js/jquery.nyroModal.min.js templates/plugin/nyroModal.full.css Added Paths: ----------- js/jquery.jgrowl.min.js Removed Paths: ------------- js/jquery.jgrowl.pack.js js/jquery.metadata.pack.js Modified: index.php =================================================================== --- index.php 2009-02-17 09:47:38 UTC (rev 138) +++ index.php 2009-02-17 10:03:35 UTC (rev 139) @@ -90,7 +90,7 @@ echo " <script type=\"text/JavaScript\" src=\"./js/jquery.min.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.dataTables.min.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.nyroModal.min.js\"></script>\n"; -echo " <script type=\"text/JavaScript\" src=\"./js/jquery.jgrowl.pack.js\"></script>\n"; +echo " <script type=\"text/JavaScript\" src=\"./js/jquery.jgrowl.min.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./js/jquery.timers.pack.js\"></script>\n"; echo " <script type=\"text/JavaScript\" src=\"./phpsysinfo.js\"></script>\n"; foreach ($plugins as $plugin) { Modified: js/README =================================================================== --- js/README 2009-02-17 09:47:38 UTC (rev 138) +++ js/README 2009-02-17 10:03:35 UTC (rev 139) @@ -12,7 +12,7 @@ jquery.dataTables.min.js -------------------------- -VERSION : 1.4 beta 5 +VERSION : 1.4 beta 7 URL : http://plugins.jquery.com/project/DataTables DESC : dataTables is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. @@ -20,7 +20,7 @@ jquery.nyroModal.min.js ------------------------ -VERSION : 1.3.1 +VERSION : 1.4.1 URL : http://plugins.jquery.com/project/nyroModal DESC : nyroModal is a high customizable modal window plugin. USED : provide a modal dialog, that is shown when errors are found during execution of the php parsers, or lets say @@ -35,7 +35,7 @@ jquery.jgrowl.pack.js ----------------------- -VERSION : 1.1.2 +VERSION : 1.2.0 beta 3 URL : http://plugins.jquery.com/project/jGrowl DESC : jGrowl is a jQuery plugin that raises unobtrusive messages within the browser, similar to the way that OS X's Growl Framework works USED : show alert and error message Modified: js/jquery.dataTables.min.js =================================================================== --- js/jquery.dataTables.min.js 2009-02-17 09:47:38 UTC (rev 138) +++ js/jquery.dataTables.min.js 2009-02-17 10:03:35 UTC (rev 139) @@ -1,4 +1,19 @@ -(function($){$.fn.dataTableSettings=new Array();$.fn.dataTableExt=new Object();$.fn.dataTableExt.oPagination={"two_button":{"fnInit":function(oSettings,fnCallbackDraw){oSettings.nPrevious=document.createElement("div"); +/* + * File: jquery.dataTables.min.js + * Version: 1.4.0 beta 7 + * Author: Allan Jardine (www.sprymedia.co.uk) + * + * Copyright 2008-2009 Allan Jardine, all rights reserved. + * + * This source file is free software, under either the GPL v2 license or a + * BSD style license, as supplied with this software. + * + * This source file 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 license files for details. + */ +(function($){$.fn.dataTableSettings=new Array();$.fn.dataTableExt=new Object();$.fn.dataTableExt.oApi={}; +$.fn.dataTableExt.oPagination={two_button:{fnInit:function(oSettings,fnCallbackDraw){oSettings.nPrevious=document.createElement("div"); oSettings.nNext=document.createElement("div");if(oSettings.sTableId!=""){oSettings.nPaginate.setAttribute("id",oSettings.sTableId+"_paginate"); oSettings.nPrevious.setAttribute("id",oSettings.sTableId+"_previous");oSettings.nNext.setAttribute("id",oSettings.sTableId+"_next") }oSettings.nPrevious.className="paginate_disabled_previous";oSettings.nNext.className="paginate_disabled_next"; @@ -6,9 +21,9 @@ $(oSettings.nPaginate).insertAfter(oSettings.nTable);$(oSettings.nPrevious).click(function(){oSettings.iDisplayStart-=oSettings.iDisplayLength; if(oSettings.iDisplayStart<0){oSettings.iDisplayStart=0}fnCallbackDraw(oSettings) });$(oSettings.nNext).click(function(){if(oSettings.iDisplayStart+oSettings.iDisplayLength<oSettings.aiDisplay.length){oSettings.iDisplayStart+=oSettings.iDisplayLength -}fnCallbackDraw(oSettings)})},"fnUpdate":function(oSettings,fnCallbackDraw){oSettings.nPrevious.className=(oSettings.iDisplayStart==0)?"paginate_disabled_previous":"paginate_enabled_previous"; +}fnCallbackDraw(oSettings)})},fnUpdate:function(oSettings,fnCallbackDraw){oSettings.nPrevious.className=(oSettings.iDisplayStart==0)?"paginate_disabled_previous":"paginate_enabled_previous"; oSettings.nNext.className=(oSettings.iDisplayEnd==oSettings.aiDisplay.length)?"paginate_disabled_next":"paginate_enabled_next" -}},"full_numbers":{"fnInit":function(oSettings,fnCallbackDraw){var nFirst=document.createElement("span"); +}},iFullNumbersShowPages:5,full_numbers:{fnInit:function(oSettings,fnCallbackDraw){var nFirst=document.createElement("span"); var nPrevious=document.createElement("span");var nList=document.createElement("span"); var nNext=document.createElement("span");var nLast=document.createElement("span"); nFirst.appendChild(document.createTextNode(oSettings.oLanguage.oPaginate.sFirst)); @@ -23,13 +38,13 @@ });$(nNext).click(function(){if(oSettings.iDisplayStart+oSettings.iDisplayLength<oSettings.aiDisplay.length){oSettings.iDisplayStart+=oSettings.iDisplayLength }fnCallbackDraw(oSettings)});$(nLast).click(function(){var iPages=parseInt((oSettings.aiDisplay.length-1)/oSettings.iDisplayLength)+1; oSettings.iDisplayStart=(iPages-1)*oSettings.iDisplayLength;fnCallbackDraw(oSettings) -});oSettings.nPaginateList=nList},"fnUpdate":function(oSettings,fnCallbackDraw){var iPages=parseInt((oSettings.aiDisplay.length-1)/oSettings.iDisplayLength)+1; +});oSettings.nPaginateList=nList},fnUpdate:function(oSettings,fnCallbackDraw){var iPageCount=jQuery.fn.dataTableExt.oPagination.iFullNumbersShowPages; +var iPageCountHalf=Math.floor(iPageCount/2);var iPages=parseInt((oSettings.aiDisplay.length-1)/oSettings.iDisplayLength)+1; var iCurrentPage=parseInt(oSettings.iDisplayStart/oSettings.iDisplayLength)+1;var sList=""; -var iStartButton=iCurrentPage-5<1?1:iCurrentPage-5;var iEndButton=iCurrentPage+5>iPages?iPages:iCurrentPage+5; -if(iPages<5){iStartButton=1;iEndButton=iPages}else{if(iCurrentPage<3){iStartButton=1; -iEndButton=5}else{if(iCurrentPage>iPages-3){iStartButton=iPages-4;iEndButton=iPages -}else{iStartButton=iCurrentPage-2;iEndButton=iCurrentPage+2}}}for(var i=iStartButton; -i<=iEndButton;i++){if(iCurrentPage!=i){sList+='<span class="paginate_button">'+i+"</span>" +var iStartButton;var iEndButton;if(iPages<iPageCount){iStartButton=1;iEndButton=iPages +}else{if(iCurrentPage<=iPageCountHalf){iStartButton=1;iEndButton=iPageCount}else{if(iCurrentPage>=(iPages-iPageCountHalf)){iStartButton=iPages-iPageCount+1; +iEndButton=iPages}else{iStartButton=iCurrentPage-Math.ceil(iPageCount/2)+1;iEndButton=iStartButton+iPageCount-1 +}}}for(var i=iStartButton;i<=iEndButton;i++){if(iCurrentPage!=i){sList+='<span class="paginate_button">'+i+"</span>" }else{sList+='<span class="paginate_active">'+i+"</span>"}}oSettings.nPaginateList.innerHTML=sList; $("span",oSettings.nPaginateList).click(function(){var iTarget=(this.innerHTML*1)-1; oSettings.iDisplayStart=iTarget*oSettings.iDisplayLength;fnCallbackDraw(oSettings) @@ -45,9 +60,9 @@ return y-x}};$.fn.dataTableExt.aTypes=new Array(function(sData){var sValidChars="0123456789.-"; var Char;for(i=0;i<sData.length;i++){Char=sData.charAt(i);if(sValidChars.indexOf(Char)==-1){return null }}return"numeric"},function(sData){if(!isNaN(Date.parse(sData))){return"date"}return null -});$.fn.dataTableExt._oExternConfig={"iNextUnique":0};$.fn.dataTable=function(oInit){var _aoSettings=$.fn.dataTableSettings; -function classSettings(){this.sInstance=null;this.oFeatures={"bPaginate":true,"bLengthChange":true,"bFilter":true,"bSort":true,"bInfo":true,"bAutoWidth":true,"bProcessing":false,"bSortClasses":true,"bStateSave":false}; -this.oLanguage={"sProcessing":"Processing...","sLengthMenu":"Show _MENU_ entries","sZeroRecords":"No matching records found","sInfo":"Showing _START_ to _END_ of _TOTAL_ entries","sInfoEmpty":"Showing 0 to 0 of 0 entries","sInfoFiltered":"(filtered from _MAX_ total entries)","sInfoPostFix":"","sSearch":"Search:","sUrl":"","oPaginate":{"sFirst":"First","sPrevious":"Previous","sNext":"Next","sLast":"Last"}}; +});$.fn.dataTableExt._oExternConfig={iNextUnique:0};$.fn.dataTable=function(oInit){var _aoSettings=$.fn.dataTableSettings; +function classSettings(){this.sInstance=null;this.oFeatures={bPaginate:true,bLengthChange:true,bFilter:true,bSort:true,bInfo:true,bAutoWidth:true,bProcessing:false,bSortClasses:true,bStateSave:false}; +this.oLanguage={sProcessing:"Processing...",sLengthMenu:"Show _MENU_ entries",sZeroRecords:"No matching records found",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sSearch:"Search:",sUrl:"",oPaginate:{sFirst:"First",sPrevious:"Previous",sNext:"Next",sLast:"Last"}}; this.aoData=new Array();this.aiDisplay=new Array();this.aiDisplayMaster=new Array(); this.aoColumns=new Array();this.iNextId=0;this.asDataSearch=new Array();this.sPreviousSearch=""; this.asPreSearchCols=new Array();this.nInfo=null;this.nProcessing=null;this.iDisplayLength=10; @@ -56,7 +71,7 @@ this.fnInitComplete=null;this.nFooter=null;this.sTableId="";this.nTable=null;this.iDefaultSortIndex=0; this.bInitialised=false;this.nOpenRow=null;this.nPaginate=null;this.nPrevious=null; this.nNext=null;this.sDomPositioning="lfrtip";this.sPaginationType="two_button";this.sAjaxSource=null; -this.iCookieDuration=60*60*2}this.fnDraw=function(){var oSettings=_fnSettingsFromNode(this[0]); +this.iCookieDuration=60*60*2}this.oApi={};this.fnDraw=function(){var oSettings=_fnSettingsFromNode(this[0]); _fnCalculateEnd(oSettings);_fnDraw(oSettings)};this.fnFilter=function(sInput,iColumn,bEscapeRegex){var oSettings=_fnSettingsFromNode(this[0]); if(typeof iColumn=="undefined"||iColumn==null){_fnFilterComplete(oSettings,sInput,1,bEscapeRegex) }else{oSettings.asPreSearchCols[iColumn]=sInput;_fnFilterComplete(oSettings,oSettings.sPreviousSearch,1,bEscapeRegex) @@ -88,8 +103,9 @@ i<oSettings.aoData.length;i++){if(oSettings.aoData[i].nTr==nNode){return i}}}else{if(nNode.nodeName=="TD"){for(var i=0; i<oSettings.aoData.length;i++){var iCorrector=0;for(var j=0;j<oSettings.aoColumns.length; j++){if(oSettings.aoColumns[j].bVisible){if(oSettings.aoData[i].nTr.getElementsByTagName("td")[j-iCorrector]==nNode){return[i,j-iCorrector] -}}else{iCorrector++}}}}}return null};function _fnInitalise(oSettings){if(oSettings.bInitialised==false){setTimeout(function(){_fnInitalise(oSettings) -},200);return }_fnAddOptionsHtml(oSettings);_fnDrawHead(oSettings);if(oSettings.oFeatures.bSort){_fnSort(oSettings) +}}else{iCorrector++}}}}}return null};var bApi=false;for(var sFunc in $.fn.dataTableExt.oApi){this[sFunc]=function(){return $.fn.dataTableExt.oApi[sFunc].call(this,_fnSettingsFromNode(this[0])) +};bApi=true}function _fnInitalise(oSettings){if(oSettings.bInitialised==false){setTimeout(function(){_fnInitalise(oSettings) +},200);return}_fnAddOptionsHtml(oSettings);_fnDrawHead(oSettings);if(oSettings.oFeatures.bSort){_fnSort(oSettings) }else{oSettings.aiDisplay=oSettings.aiDisplayMaster.slice();_fnCalculateEnd(oSettings); _fnDraw(oSettings)}if(oSettings.sAjaxSource!=null){_fnProcessingDisplay(oSettings,true); $.getJSON(oSettings.sAjaxSource,null,function(json){for(var i=0;i<json.aaData.length; @@ -108,7 +124,7 @@ }if(typeof oLanguage.oPaginate!="undefined"){oSettings.oLanguage.oPaginate.sPrevious=oLanguage.oPaginate.sPrevious }if(typeof oLanguage.oPaginate!="undefined"){oSettings.oLanguage.oPaginate.sNext=oLanguage.oPaginate.sNext }if(typeof oLanguage.oPaginate!="undefined"){oSettings.oLanguage.oPaginate.sLast=oLanguage.oPaginate.sLast -}}_fnInitalise(oSettings)}function _fnAddColumn(oSettings,oOptions){oSettings.aoColumns[oSettings.aoColumns.length++]={"sType":null,"_bAutoType":true,"bVisible":true,"bSearchable":true,"bSortable":true,"sTitle":null,"sWidth":null,"sClass":null,"fnRender":null,"iDataSort":oSettings.aoColumns.length-1}; +}}_fnInitalise(oSettings)}function _fnAddColumn(oSettings,oOptions){oSettings.aoColumns[oSettings.aoColumns.length++]={sType:null,_bAutoType:true,bVisible:true,bSearchable:true,bSortable:true,sTitle:null,sWidth:null,sClass:null,fnRender:null,iDataSort:oSettings.aoColumns.length-1}; if(typeof oOptions!="undefined"&&oOptions!=null){var iLength=oSettings.aoColumns.length-1; if(typeof oOptions.sType!="undefined"){oSettings.aoColumns[iLength].sType=oOptions.sType; oSettings.aoColumns[iLength]._bAutoType=false}if(typeof oOptions.bVisible!="undefined"){oSettings.aoColumns[iLength].bVisible=oOptions.bVisible @@ -120,9 +136,9 @@ }if(typeof oOptions.fnRender!="undefined"){oSettings.aoColumns[iLength].fnRender=oOptions.fnRender }if(typeof oOptions.iDataSort!="undefined"){oSettings.aoColumns[iLength].iDataSort=oOptions.iDataSort }}oSettings.asPreSearchCols[oSettings.asPreSearchCols.length++]=""}function _fnAddData(oSettings,aData){if(aData.length!=oSettings.aoColumns.length){return 1 -}var iThisIndex=oSettings.aoData.length;oSettings.aoData.push({"_iId":oSettings.iNextId++,"_aData":aData.slice(),"nTr":document.createElement("tr")}); +}var iThisIndex=oSettings.aoData.length;oSettings.aoData.push({_iId:oSettings.iNextId++,_aData:aData.slice(),nTr:document.createElement("tr")}); var nTd;for(var i=0;i<aData.length;i++){if(oSettings.aoColumns[i].bVisible){nTd=document.createElement("td"); -nTd.innerHTML=(typeof oSettings.aoColumns[i].fnRender=="function")?oSettings.aoColumns[i].fnRender({"iDataRow":iThisIndex,"iDataColumn":i,"aData":_fnGetDataMaster(oSettings)}):nTd.innerHTML=aData[i]; +nTd.innerHTML=(typeof oSettings.aoColumns[i].fnRender=="function")?oSettings.aoColumns[i].fnRender({iDataRow:iThisIndex,iDataColumn:i,aData:_fnGetDataMaster(oSettings)}):nTd.innerHTML=aData[i]; if(oSettings.aoColumns[i].sClass!=null){nTd.className=oSettings.aoColumns[i].sClass }if(oSettings.aoColumns[i]._bAutoType&&oSettings.aoColumns[i].sType!="string"){if(oSettings.aoColumns[i].sType==null){oSettings.aoColumns[i].sType=_fnDetectType(aData[i]) }else{if(oSettings.aoColumns[i].sType=="date"||oSettings.aoColumns[i].sType=="numeric"){oSettings.aoColumns[i].sType=_fnDetectType(aData[i]) @@ -131,15 +147,14 @@ if($("thead th",oSettings.nTable).length!=oSettings.aoColumns.length){alert("Warning - columns do not match") }oSettings.nHeader=$("thead",oSettings.nTable)[0];if(typeof $("tfoot",oSettings.nTable)[0]!="undefined"){oSettings.nFooter=$("tfoot",oSettings.nTable)[0] }$("tbody tr",oSettings.nTable).each(function(){var iThisIndex=oSettings.aoData.length; -oSettings.aoData.push({"_iId":oSettings.iNextId++,"_aData":new Array(),"nTr":this}); -oSettings.aiDisplayMaster.push(iThisIndex);var aLocalData=oSettings.aoData[iThisIndex]._aData; -$("td",this).each(function(i){aLocalData[i]=this.innerHTML})});var iCorrector=0;for(var i=0; -i<oSettings.aoColumns.length;i++){if(oSettings.aoColumns[i].sTitle==null){oSettings.aoColumns[i].sTitle=$("thead th:nth-child("+(i+1)+")",oSettings.nTable).html() +oSettings.aoData.push({_iId:oSettings.iNextId++,_aData:new Array(),nTr:this});oSettings.aiDisplayMaster.push(iThisIndex); +var aLocalData=oSettings.aoData[iThisIndex]._aData;$("td",this).each(function(i){aLocalData[i]=this.innerHTML +})});var iCorrector=0;for(var i=0;i<oSettings.aoColumns.length;i++){if(oSettings.aoColumns[i].sTitle==null){oSettings.aoColumns[i].sTitle=$("thead th:nth-child("+(i+1)+")",oSettings.nTable).html() }if(oSettings.aoColumns[i]._bAutoType){var iLoop=oSettings.aoData.length;if(iLoop==0){oSettings.aoColumns[i].sType="string" }for(var j=0;j<iLoop;j++){if(oSettings.aoColumns[i].sType==null){oSettings.aoColumns[i].sType=_fnDetectType(oSettings.aoData[j]._aData[i]) }else{if(oSettings.aoColumns[i].sType=="date"||oSettings.aoColumns[i].sType=="numeric"){oSettings.aoColumns[i].sType=_fnDetectType(oSettings.aoData[j]._aData[i]) }}}}if(typeof oSettings.aoColumns[i].fnRender=="function"){var iLoop=oSettings.aoData.length; -var aData=_fnGetDataMaster(oSettings);for(var j=0;j<iLoop;j++){oSettings.aoData[j].nTr.getElementsByTagName("td")[i-iCorrector].innerHTML=oSettings.aoColumns[i].fnRender({"iDataRow":j,"iDataColumn":i,"aData":aData}) +var aData=_fnGetDataMaster(oSettings);for(var j=0;j<iLoop;j++){oSettings.aoData[j].nTr.getElementsByTagName("td")[i-iCorrector].innerHTML=oSettings.aoColumns[i].fnRender({iDataRow:j,iDataColumn:i,aData:aData}) }}if(!oSettings.aoColumns[i].bVisible){var iLoop=oSettings.aoData.length;for(var j=0; j<iLoop;j++){var nRemove=oSettings.aoData[j].nTr.getElementsByTagName("td")[i-iCorrector]; nRemove.parentNode.removeChild(nRemove)}iCorrector++}}}function _fnDrawHead(oSettings){var nThOriginals=$("thead th",oSettings.nTable); @@ -152,7 +167,7 @@ }if(oSettings.aoColumns[i].sWidth!=null){nTh.style.width=oSettings.aoColumns[i].sWidth }nTh.innerHTML=oSettings.aoColumns[i].sTitle;nTr.appendChild(nTh)}}$("thead",oSettings.nTable).html("")[0].appendChild(nTr) }if(oSettings.oFeatures.bSort){$("thead th",oSettings.nTable).click(function(e){var iDataIndex=$("thead th",oSettings.nTable).index(this); -iDataIndex=_fnVisibleToColumnIndex(oSettings,iDataIndex);if(oSettings.aoColumns[iDataIndex].bSortable==false){return +iDataIndex=_fnVisibleToColumnIndex(oSettings,iDataIndex);if(oSettings.aoColumns[iDataIndex].bSortable==false){return }_fnProcessingDisplay(oSettings,true);setTimeout(function(){if(e.shiftKey){var bFound=false; for(var i=0;i<oSettings.aaSorting.length;i++){if(oSettings.aaSorting[i][0]==iDataIndex){if(oSettings.aaSorting[i][1]=="asc"){oSettings.aaSorting[i][1]="desc" }else{oSettings.aaSorting.splice(i,1)}bFound=true;break}}if(bFound==false){oSettings.aaSorting.push(new Array(iDataIndex,"asc")) @@ -215,7 +230,7 @@ }else{oSettings.nProcessing.style.visibility="hidden"}}}function _fnFilterComplete(oSettings,sInput,iForce,bEscapeRegex){if(typeof bEscapeRegex=="undefined"){bEscapeRegex=true }_fnFilter(oSettings,sInput,iForce,bEscapeRegex);for(var i=0;i<oSettings.asPreSearchCols.length; i++){_fnFilterColumn(oSettings,oSettings.asPreSearchCols[i],i,bEscapeRegex)}oSettings.iDisplayStart=0; -_fnCalculateEnd(oSettings);_fnDraw(oSettings);_fnBuildSearchArray(oSettings,0)}function _fnFilterColumn(oSettings,sInput,iColumn,bEscapeRegex){if(sInput==""){return +_fnCalculateEnd(oSettings);_fnDraw(oSettings);_fnBuildSearchArray(oSettings,0)}function _fnFilterColumn(oSettings,sInput,iColumn,bEscapeRegex){if(sInput==""){return }var iIndexCorrector=0;var sRegexMatch=bEscapeRegex?_fnEscapeRegex(sInput):sInput; var rpSearch=new RegExp(sRegexMatch,"i");for(i=oSettings.aiDisplay.length-1;i>=0; i--){if(!rpSearch.test(oSettings.aoData[oSettings.aiDisplay[i]]._aData[iColumn])){oSettings.aiDisplay.splice(i,1); @@ -287,22 +302,35 @@ }function _fnGetTrNodes(oSettings){var aNodes=new Array();for(var i=0;i<oSettings.aoData.length; i++){aNodes.push(oSettings.aoData[i].nTr)}return aNodes}function _fnEscapeRegex(sVal){var acEscape=["/",".","*","+","?","|","(",")","[","]","{","}","\\"]; var reReplace=new RegExp("(\\"+acEscape.join("|\\")+")","g");return sVal.replace(reReplace,"\\$1") -}function _fnSaveState(oSettings){if(!oSettings.oFeatures.bStateSave){return }var sValue="{"; +}function _fnSaveState(oSettings){if(!oSettings.oFeatures.bStateSave){return}var sValue="{"; sValue+='"iStart": '+oSettings.iDisplayStart+",";sValue+='"iEnd": '+oSettings.iDisplayEnd+","; sValue+='"iLength": '+oSettings.iDisplayLength+",";sValue+='"sFilter": "'+oSettings.sPreviousSearch.replace('"','\\"')+'",'; sValue+='"aaSorting": [';for(var i=0;i<oSettings.aaSorting.length;i++){sValue+="["+oSettings.aaSorting[i][0]+",'"+oSettings.aaSorting[i][1]+"']," }sValue=sValue.substring(0,sValue.length-1);sValue+="]}";_fnCreateCookie("SpryMedia_DataTables_"+oSettings.sInstance,sValue,oSettings.iCookieDuration) -}function _fnLoadState(oSettings){if(!oSettings.oFeatures.bStateSave){return }var sData=_fnReadCookie("SpryMedia_DataTables_"+oSettings.sInstance); +}function _fnLoadState(oSettings){if(!oSettings.oFeatures.bStateSave){return}var sData=_fnReadCookie("SpryMedia_DataTables_"+oSettings.sInstance); if(sData!=null&&sData!=""){oData=eval("("+sData+")");oSettings.iDisplayStart=oData.iStart; oSettings.iDisplayEnd=oData.iEnd;oSettings.iDisplayLength=oData.iLength;oSettings.sPreviousSearch=oData.sFilter; oSettings.aaSorting=oData.aaSorting.slice()}}function _fnCreateCookie(sName,sValue,iSecs){var date=new Date(); -date.setTime(date.getTime()+(iSecs*1000));var sExpires="; expires="+date.toGMTString(); -var sLocation=window.location.href.replace("http://","");document.cookie=sName+"="+sValue+sExpires+"; path="+sLocation.substring(sLocation.indexOf("/"),sLocation.length) -}function _fnReadCookie(sName){var sNameEQ=sName+"=";var sCookieContents=document.cookie.split(";"); -for(var i=0;i<sCookieContents.length;i++){var c=sCookieContents[i];while(c.charAt(0)==" "){c=c.substring(1,c.length) -}if(c.indexOf(sNameEQ)==0){return c.substring(sNameEQ.length,c.length)}}return null -}return this.each(function(){var oSettings=new classSettings();_aoSettings.push(oSettings); -var bInitHandedOff=false;var bUsePassedData=false;var sId=this.getAttribute("id"); +date.setTime(date.getTime()+(iSecs*1000));sName+="_"+window.location.pathname;document.cookie=sName+"="+sValue+"; expires="+date.toGMTString()+"; path=/" +}function _fnReadCookie(sName){var sNameEQ=sName+"_"+window.location.pathname+"="; +var sCookieContents=document.cookie.split(";");for(var i=0;i<sCookieContents.length; +i++){var c=sCookieContents[i];while(c.charAt(0)==" "){c=c.substring(1,c.length)}if(c.indexOf(sNameEQ)==0){return c.substring(sNameEQ.length,c.length) +}}return null}if(bApi){this.oApi._fnInitalise=_fnInitalise;this.oApi._fnLanguageProcess=_fnLanguageProcess; +this.oApi._fnAddColumn=_fnAddColumn;this.oApi._fnAddData=_fnAddData;this.oApi._fnGatherData=_fnGatherData; +this.oApi._fnDrawHead=_fnDrawHead;this.oApi._fnDraw=_fnDraw;this.oApi._fnAddOptionsHtml=_fnAddOptionsHtml; +this.oApi._fnFeatureHtmlFilter=_fnFeatureHtmlFilter;this.oApi._fnFeatureHtmlInfo=_fnFeatureHtmlInfo; +this.oApi._fnFeatureHtmlPaginate=_fnFeatureHtmlPaginate;this.oApi._fnFeatureHtmlLength=_fnFeatureHtmlLength; +this.oApi._fnFeatureHtmlProcessing=_fnFeatureHtmlProcessing;this.oApi._fnProcessingDisplay=_fnProcessingDisplay; +this.oApi._fnFilterComplete=_fnFilterComplete;this.oApi._fnFilterColumn=_fnFilterColumn; +this.oApi._fnFilter=_fnFilter;this.oApi._fnSortingClasses=_fnSortingClasses;this.oApi._fnVisibleToColumnIndex=_fnVisibleToColumnIndex; +this.oApi._fnColumnIndexToVisible=_fnColumnIndexToVisible;this.oApi._fnBuildSearchArray=_fnBuildSearchArray; +this.oApi._fnCalculateEnd=_fnCalculateEnd;this.oApi._fnConvertToWidth=_fnConvertToWidth; +this.oApi._fnCalculateColumnWidths=_fnCalculateColumnWidths;this.oApi._fnArrayCmp=_fnArrayCmp; +this.oApi._fnMasterIndexFromDisplay=_fnMasterIndexFromDisplay;this.oApi._fnDetectType=_fnDetectType; +this.oApi._fnGetDataMaster=_fnGetDataMaster;this.oApi._fnGetTrNodes=_fnGetTrNodes; +this.oApi._fnEscapeRegex=_fnEscapeRegex;this.oApi._fnSaveState=_fnSaveState;this.oApi._fnLoadState=_fnLoadState; +this.oApi._fnCreateCookie=_fnCreateCookie;this.oApi._fnReadCookie=_fnReadCookie}return this.each(function(){var oSettings=new classSettings(); +_aoSettings.push(oSettings);var bInitHandedOff=false;var bUsePassedData=false;var sId=this.getAttribute("id"); if(sId!=null){oSettings.sTableId=sId;oSettings.sInstance=sId}else{oSettings.sInstance=$.fn.dataTableExt._oExternConfig.iNextUnique++ }oSettings.nTable=this;if(typeof oInit!="undefined"&&oInit!=null){if(typeof oInit.bPaginate!="undefined"){oSettings.oFeatures.bPaginate=oInit.bPaginate }if(typeof oInit.bLengthChange!="undefined"){oSettings.oFeatures.bLengthChange=oInit.bLengthChange @@ -330,4 +358,4 @@ }if($("thead",this).length==0){this.appendChild(document.createElement("thead"))}if($("tbody",this).length==0){this.appendChild(document.createElement("tbody")) }}else{_fnGatherData(oSettings)}oSettings.aiDisplay=oSettings.aiDisplayMaster.slice(); if(oSettings.oFeatures.bAutoWidth){_fnCalculateColumnWidths(oSettings)}oSettings.bInitialised=true; -if(bInitHandedOff==false){_fnInitalise(oSettings)}})}})(jQuery) \ No newline at end of file +if(bInitHandedOff==false){_fnInitalise(oSettings)}})}})(jQuery); \ No newline at end of file Added: js/jquery.jgrowl.min.js =================================================================== --- js/jquery.jgrowl.min.js (rev 0) +++ js/jquery.jgrowl.min.js 2009-02-17 10:03:35 UTC (rev 139) @@ -0,0 +1,4 @@ + +(function($){$.jGrowl=function(m,o){if($('#jGrowl').size()==0)$('<div id="jGrowl"></div>').addClass($.jGrowl.defaults.position).appendTo('body');$('#jGrowl').jGrowl(m,o);};$.fn.jGrowl=function(m,o){if($.isFunction(this.each)){var args=arguments;return this.each(function(){var self=this;if($(this).data('jGrowl.instance')==undefined){$(this).data('jGrowl.instance',new $.fn.jGrowl());$(this).data('jGrowl.instance').startup(this);} +if($.isFunction($(this).data('jGrowl.instance')[m])){$(this).data('jGrowl.instance')[m].apply($(this).data('jGrowl.instance'),$.makeArray(args).slice(1));}else{$(this).data('jGrowl.instance').create(m,o);}});};};$.extend($.fn.jGrowl.prototype,{defaults:{pool:0,header:'',sticky:false,position:'top-right',glue:'after',theme:'default',corners:'10px',check:250,life:3000,speed:'normal',easing:'swing',closer:true,closeTemplate:'×',closerTemplate:'<div>[ close all ]</div>',log:function(e,m,o){},beforeOpen:function(e,m,o){},open:function(e,m,o){},beforeClose:function(e,m,o){},close:function(e,m,o){},animateOpen:{opacity:'show'},animateClose:{opacity:'hide'}},notifications:[],element:null,interval:null,create:function(message,o){var o=$.extend({},this.defaults,o);this.notifications[this.notifications.length]={message:message,options:o};o.log.apply(this.element,[this.element,message,o]);},render:function(notification){var self=this;var message=notification.message;var o=notification.options;var notification=$('<div class="jGrowl-notification"><div class="close">'+o.closeTemplate+'</div><div class="header">'+o.header+'</div><div class="message">'+message+'</div></div>').data("jGrowl",o).addClass(o.theme).children('div.close').bind("click.jGrowl",function(){$(this).parent().trigger('jGrowl.close');}).parent();(o.glue=='after')?$('div.jGrowl-notification:last',this.element).after(notification):$('div.jGrowl-notification:first',this.element).before(notification);$(notification).bind("mouseover.jGrowl",function(){$(this).data("jGrowl").pause=true;}).bind("mouseout.jGrowl",function(){$(this).data("jGrowl").pause=false;}).bind('jGrowl.beforeOpen',function(){o.beforeOpen.apply(self.element,[self.element,message,o]);}).bind('jGrowl.open',function(){o.open.apply(self.element,[self.element,message,o]);}).bind('jGrowl.beforeClose',function(){o.beforeClose.apply(self.element,[self.element,message,o]);}).bind('jGrowl.close',function(){$(this).trigger('jGrowl.beforeClose').animate(o.animateClose,o.speed,o.easing,function(){$(this).remove();o.close.apply(self.element,[self.element,message,o]);});}).trigger('jGrowl.beforeOpen').animate(o.animateOpen,o.speed,o.easing,function(){$(this).data("jGrowl").created=new Date();}).trigger('jGrowl.open');if($.fn.corner!=undefined)$(notification).corner(o.corners);if($('div.jGrowl-notification:parent',this.element).size()>1&&$('div.jGrowl-closer',this.element).size()==0&&this.defaults.closer!=false){$(this.defaults.closerTemplate).addClass('jGrowl-closer').addClass(this.defaults.theme).appendTo(this.element).animate(this.defaults.animateOpen,this.defaults.speed,this.defaults.easing).bind("click.jGrowl",function(){$(this).siblings().children('div.close').trigger("click.jGrowl");if($.isFunction(self.defaults.closer))self.defaults.closer.apply($(this).parent()[0],[$(this).parent()[0]]);});};},update:function(){$(this.element).find('div.jGrowl-notification:parent').each(function(){if($(this).data("jGrowl")!=undefined&&$(this).data("jGrowl").created!=undefined&&($(this).data("jGrowl").created.getTime()+$(this).data("jGrowl").life)<(new Date()).getTime()&&$(this).data("jGrowl").sticky!=true&&($(this).data("jGrowl").pause==undefined||$(this).data("jGrowl").pause!=true)){$(this).trigger('jGrowl.close');}});if(this.notifications.length>0&&(this.defaults.pool==0||$(this.element).find('div.jGrowl-notification:parent').size()<this.defaults.pool)){this.render(this.notifications.shift());} +if($(this.element).find('div.jGrowl-notification:parent').size()<2){$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateClose,this.defaults.speed,this.defaults.easing,function(){$(this).remove();});};},startup:function(e){this.element=$(e).addClass('jGrowl').append('<div class="jGrowl-notification"></div>');this.interval=setInterval(function(){jQuery(e).data('jGrowl.instance').update();},this.defaults.check);if($.browser.msie&&parseInt($.browser.version)<7&&!window["XMLHttpRequest"])$(this.element).addClass('ie6');},shutdown:function(){$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').remove();clearInterval(this.interval);}});$.jGrowl.defaults=$.fn.jGrowl.prototype.defaults;})(jQuery); \ No newline at end of file Property changes on: js/jquery.jgrowl.min.js ___________________________________________________________________ Added: svn:mime-type + text/javascript Added: svn:eol-style + LF Deleted: js/jquery.jgrowl.pack.js =================================================================== --- js/jquery.jgrowl.pack.js 2009-02-17 09:47:38 UTC (rev 138) +++ js/jquery.jgrowl.pack.js 2009-02-17 10:03:35 UTC (rev 139) @@ -1,5 +0,0 @@ - -(function($){$.jGrowl=function(m,o){if($("#jGrowl").size()==0){$("<div id=\"jGrowl\"></div>").addClass($.jGrowl.defaults.position).appendTo("body");} -$("#jGrowl").jGrowl(m,o);};$.fn.jGrowl=function(m,o){if($.isFunction(this.each)){var _6=arguments;return this.each(function(){var _7=this;if($(this).data("jGrowl.instance")==undefined){$(this).data("jGrowl.instance",new $.fn.jGrowl());$(this).data("jGrowl.instance").startup(this);} -if($.isFunction($(this).data("jGrowl.instance")[m])){$(this).data("jGrowl.instance")[m].apply($(this).data("jGrowl.instance"),$.makeArray(_6).slice(1));}else{$(this).data("jGrowl.instance").notification(m,o);}});}};$.extend($.fn.jGrowl.prototype,{defaults:{header:"",sticky:false,position:"top-right",glue:"after",theme:"default",corners:"10px",check:500,life:3000,speed:"normal",easing:"swing",closer:true,closerTemplate:"<div>[ close all ]</div>",log:function(e,m,o){},beforeOpen:function(e,m,o){},open:function(e,m,o){},beforeClose:function(e,m,o){},close:function(e,m,o){},animateOpen:{opacity:"show"},animateClose:{opacity:"hide"}},element:null,interval:null,notification:function(_17,o){var _19=this;var o=$.extend({},this.defaults,o);o.log.apply(this.element,[this.element,_17,o]);var _1a=$("<div class=\"jGrowl-notification\"><div class=\"close\">×</div><div class=\"header\">"+o.header+"</div><div class=\"message\">"+_17+"</div></div>").data("jGrowl",o).addClass(o.theme).children("div.close").bind("click.jGrowl",function(){$(this).unbind("click.jGrowl").parent().trigger("jGrowl.beforeClose").animate(o.animateClose,o.speed,o.easing,function(){$(this).trigger("jGrowl.close").remove();});}).parent();(o.glue=="after")?$("div.jGrowl-notification:last",this.element).after(_1a):$("div.jGrowl-notification:first",this.element).before(_1a);$(_1a).bind("mouseover.jGrowl",function(){$(this).data("jGrowl").pause=true;}).bind("mouseout.jGrowl",function(){$(this).data("jGrowl").pause=false;}).bind("jGrowl.beforeOpen",function(){o.beforeOpen.apply(_19.element,[_19.element,_17,o]);}).bind("jGrowl.open",function(){o.open.apply(_19.element,[_19.element,_17,o]);}).bind("jGrowl.beforeClose",function(){o.beforeClose.apply(_19.element,[_19.element,_17,o]);}).bind("jGrowl.close",function(){o.close.apply(_19.element,[_19.element,_17,o]);}).trigger("jGrowl.beforeOpen").animate(o.animateOpen,o.speed,o.easing,function(){$(this).data("jGrowl").created=new Date();}).trigger("jGrowl.open");if($.fn.corner!=undefined){$(_1a).corner(o.corners);} -if($("div.jGrowl-notification:parent",this.element).size()>1&&$("div.jGrowl-closer",this.element).size()==0&&this.defaults.closer!=false){$(this.defaults.closerTemplate).addClass("jGrowl-closer").addClass(this.defaults.theme).appendTo(this.element).animate(this.defaults.animateOpen,this.defaults.speed,this.defaults.easing).bind("click.jGrowl",function(){$(this).siblings().children("div.close").trigger("click.jGrowl");if($.isFunction(_19.defaults.closer)){_19.defaults.closer.apply($(this).parent()[0],[$(this).parent()[0]]);}});}},update:function(){$(this.element).find("div.jGrowl-notification:parent").each(function(){if($(this).data("jGrowl")!=undefined&&$(this).data("jGrowl").created!=undefined&&($(this).data("jGrowl").created.getTime()+$(this).data("jGrowl").life)<(new Date()).getTime()&&$(this).data("jGrowl").sticky!=true&&($(this).data("jGrowl").pause==undefined||$(this).data("jGrowl").pause!=true)){$(this).children("div.close").trigger("click.jGrowl");}});if($(this.element).find("div.jGrowl-notification:parent").size()<2){$(this.element).find("div.jGrowl-closer").animate(this.defaults.animateClose,this.defaults.speed,this.defaults.easing,function(){$(this).remove();});}},startup:function(e){this.element=$(e).addClass("jGrowl").append("<div class=\"jGrowl-notification\"></div>");this.interval=setInterval(function(){jQuery(e).data("jGrowl.instance").update();},this.defaults.check);if($.browser.msie&&parseInt($.browser.version)<7){$(this.element).addClass("ie6");}},shutdown:function(){$(this.element).removeClass("jGrowl").find("div.jGrowl-notification").remove();clearInterval(this.interval);}});$.jGrowl.defaults=$.fn.jGrowl.prototype.defaults;})(jQuery); \ No newline at end of file Deleted: js/jquery.metadata.pack.js =================================================================== --- js/jquery.metadata.pack.js 2009-02-17 09:47:38 UTC (rev 138) +++ js/jquery.metadata.pack.js 2009-02-17 10:03:35 UTC (rev 139) @@ -1,13 +0,0 @@ -/* - * Metadata - jQuery plugin for parsing metadata from elements - * - * Copyright (c) 2006 John Resig, Yehuda Katz, J�örn Zaefferer, Paul McLanahan - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * Revision: $Id: jquery.metadata.js 3620 2007-10-10 20:55:38Z pmclanahan $ - * - */ -eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(9($){$.r({3:{7:{8:\'l\',h:\'3\',q:/({.*})/,4:\'3\'},w:9(a,b){g.7.8=a;g.7.h=b},j:9(b,c){5 d=$.r({},g.7,c);2(!d.4.o)d.4=\'3\';5 a=$.n(b,d.4);2(a)6 a;a="{}";2(d.8=="l"){5 m=d.q.v(b.u);2(m)a=m[1]}k 2(d.8=="t"){2(!b.i)6;5 e=b.i(d.h);2(e.o)a=$.s(e[0].C)}k 2(b.p!=A){5 f=b.p(d.h);2(f)a=f}2(a.z(\'{\')<0)a="{"+a+"}";a=y("("+a+")");$.n(b,d.4,a);6 a}}});$.x.3=9(a){6 $.3.j(g[0],a)}})(B);',39,39,'||if|metadata|single|var|return|defaults|type|function|||||||this|name|getElementsByTagName|get|else|class||data|length|getAttribute|cre|extend|trim|elem|className|exec|setType|fn|eval|indexOf|undefined|jQuery|innerHTML'.split('|'),0,{})) \ No newline at end of file Modified: js/jquery.nyroModal.min.js =================================================================== --- js/jquery.nyroModal.min.js 2009-02-17 09:47:38 UTC (rev 138) +++ js/jquery.nyroModal.min.js 2009-02-17 10:03:35 UTC (rev 139) @@ -5,7 +5,7 @@ * Copyright (c) 2008 Cedric Nirousset (nyrodev.com) * Licensed under the MIT license * - * $Date: 2008-11-29 (Sat, 29 Nov 2008) $ - * $version: 1.3.1 + * $Date: 2009-02-12 (Wed, 12 Feb 2009) $ + * $version: 1.4.1 */ -jQuery(function($){var isIE6=($.browser.msie&&parseInt($.browser.version.substr(0,1))<7);var body=$('body');var currentSettings;var fixFF=false;var contentElt;var contentEltLast;var modal={started:false,ready:false,dataReady:false,anim:false,loadingShown:false,transition:false,error:false,full:null,bg:null,loading:null,tmp:null,content:null,wrapper:null,closing:false,contentWrapper:null,scripts:new Array()};var resized={width:false,height:false};$.fn.nyroModal=function(settings){if(!this)return false;return this.each(function(){if(this.nodeName.toLowerCase()=='form'){$(this).submit(function(e){if(this.enctype=='multipart/form-data'){processModal($.extend(settings,{from:this}));return true}e.preventDefault();processModal($.extend(settings,{from:this}));return false})}else{$(this).click(function(e){e.preventDefault();processModal($.extend(settings,{from:this}));return false})}})};$.fn.nyroModalManual=function(settings){if(!this.length)processModal(settings);return this.each(function(){processModal($.extend(settings,{from:this}))})};$.nyroModalManual=function(settings){processModal(settings)};$.nyroModalSettings=function(settings,deep1,deep2){setCurrentSettings(settings,deep1,deep2);if(!deep1&&modal.started){if(modal.bg&&settings.bgColor)currentSettings.updateBgColor(modal,currentSettings,function(){});if(modal.contentWrapper&&settings.title){title=$('h1#nyroModalTitle',modal.contentWrapper);if(title.length)title.text(settings.title);else modal.contentWrapper.prepend('<h1 id="nyroModalTitle">'+settings.title+'</h1>')}if(modal.content&&(modal.dataReady&&!modal.anim&&!modal.transition)&&(settings.width||settings.height)){calculateSize(true);if(fixFF)modal.content.css({position:''});currentSettings.resize(modal,currentSettings,function(){if(fixFF)modal.content.css({position:'fixed'});if($.isFunction(currentSettings.endResize))currentSettings.endResize(modal,currentSettings)})}}};$.nyroModalRemove=function(){removeModal()};$.nyroModalNext=function(){var link=getGalleryLink(1);if(link)return link.nyroModalManual(currentSettings);return false};$.nyroModalPrev=function(){var link=getGalleryLink(-1);if(link)return link.nyroModalManual(currentSettings);return false};$.fn.nyroModal.settings={debug:false,modal:false,type:'',from:'',hash:'',processHandler:null,selIndicator:'nyroModalSel',formIndicator:'nyroModal',content:null,bgColor:'#000000',ajax:{},swf:{wmode:'transparent'},width:null,height:null,minWidth:400,minHeight:300,resizable:true,autoSizable:true,padding:25,regexImg:'[^\.]\.(jpg|jpeg|png|tiff|gif|bmp)\s*$',defaultImgAlt:'Image',setWidthImgTitle:true,ltr:true,css:{bg:{zIndex:100,position:'fixed',top:0,left:0,height:'100%',width:'100%'},wrapper:{zIndex:101,position:'fixed',top:'50%',left:'50%'},wrapper2:{},content:{overflow:'auto'},loading:{zIndex:102,position:'fixed',top:'50%',left:'50%',marginTop:'-50px',marginLeft:'-50px'}},wrap:{div:'<div class="wrapper"></div>',ajax:'<div class="wrapper"></div>',form:'<div class="wrapper"></div>',formData:'<div class="wrapper"></div>',image:'<div class="wrapperImg"></div>',gallery:'<div class="wrapperImg"><a href="#" class="nyroModalPrev">Prev</a><a href="#" class="nyroModalNext">Next</a></div>',swf:'<div class="wrapperSwf"></div>',iframe:'<div class="wrapperIframe"></div>',manual:'<div class="wrapper"></div>'},closeButton:'<a href="#" class="nyroModalClose" id="closeBut" title="close">Close</a>',title:null,titleFromIframe:true,openSelector:'.nyroModal',closeSelector:'.nyroModalClose',contentLoading:'<a href="#" class="nyroModalClose">Cancel</a>',errorClass:'error',contentError:'The requested content cannot be loaded.<br />Please try again later.<br /><a href="#" class="nyroModalClose">Close</a>',handleError:null,showBackground:showBackground,hideBackground:hideBackground,endFillContent:null,showContent:showContent,endShowContent:null,beforeHideContent:null,hideContent:hideContent,showTransition:showTransition,hideTransition:hideTransition,showLoading:showLoading,hideLoading:hideLoading,resize:resize,endResize:null,updateBgColor:updateBgColor,endRemove:null};function processModal(settings){if(modal.loadingShown||modal.transition||modal.anim)return;debug('processModal');modal.started=true;setDefaultCurrentSettings(settings);modal.error=false;modal.closing=false;modal.dataReady=false;modal.scripts=new Array();currentSettings.type=fileType();if($.isFunction(currentSettings.processHandler))currentSettings.processHandler(currentSettings);from=currentSettings.from;url=currentSettings.url;if(currentSettings.type=='swf'){currentSettings.resizable=false;setCurrentSettings({overflow:'hidden'},'css','content');currentSettings.content='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+currentSettings.width+'" height="'+currentSettings.height+'"><param name="movie" value="'+url+'"></param>';var tmp='';$.each(currentSettings.swf,function(name,val){currentSettings.content+='<param name="'+name+'" value="'+val+'"></param>';tmp+=' '+name+'="'+val+'"'});currentSettings.content+='<embed src="'+url+'" type="application/x-shockwave-flash" width="'+currentSettings.width+'" height="'+currentSettings.height+'"'+tmp+'></embed></object>'}if(from){var jFrom=$(from);if(currentSettings.type=='form'){var data=$(from).serializeArray();data.push({name:currentSettings.formIndicator,value:1});if(currentSettings.selector)data.push({name:currentSettings.selIndicator,value:currentSettings.selector.substring(1)});$.ajax($.extend({},currentSettings.ajax,{url:url,data:data,type:from.method,success:ajaxLoaded,error:loadingError}));debug('Form Ajax Load: '+jFrom.attr('action'));showModal()}else if(currentSettings.type=='formData'){initModal();jFrom.attr('target','nyroModalIframe');jFrom.attr('action',url);jFrom.prepend('<input type="hidden" name="'+currentSettings.formIndicator+'" value="1" />');if(currentSettings.selector)jFrom.prepend('<input type="hidden" name="'+currentSettings.selIndicator+'" value="'+currentSettings.selector.substring(1)+'" />');modal.tmp.html('<iframe frameborder="0" hspace="0" name="nyroModalIframe"></iframe>');$('iframe',modal.tmp).css({width:currentSettings.width,height:currentSettings.height}).error(loadingError).load(formDataLoaded);debug('Form Data Load: '+jFrom.attr('action'));showModal();showContentOrLoading()}else if(currentSettings.type=='image'||currentSettings.type=='gallery'){var title=jFrom.attr('title')||currentSettings.defaultImgAlt;initModal();modal.tmp.html('<img id="nyroModalImg" />').find('img').attr('alt',title);debug('Image Load: '+url);modal.tmp.css({lineHeight:0});$('img',modal.tmp).error(loadingError).load(function(){debug('Image Loaded: '+this.src);$(this).unbind('load');var w=modal.tmp.width();var h=modal.tmp.height();modal.tmp.css({lineHeight:''});setCurrentSettings({width:w,height:h,imgWidth:w,imgHeight:h});setCurrentSettings({overflow:'hidden'},'css','content');modal.dataReady=true;if(modal.loadingShown||modal.transition)showContentOrLoading()}).attr('src',url);showModal()}else if(currentSettings.type=='iframe'){initModal();modal.tmp.html('<iframe frameborder="0" hspace="0" src="'+url+'" name="nyroModalIframe"></iframe>');debug('Iframe Load: '+url);$('iframe',modal.tmp).eq(0).css({width:'100%',height:isDoctypeStrict()?'99%':'100%'}).load(function(e){if(currentSettings.titleFromIframe&&url.indexOf(window.location.hostname)>-1)$.nyroModalSettings({title:$('iframe',modal.full).contents().find('title').text()})});currentSettings.autoSizable=false;modal.dataReady=true;showModal()}else if(currentSettings.type){debug('Content: '+currentSettings.type);initModal();modal.tmp.html(currentSettings.content);var w=modal.tmp.width();var h=modal.tmp.height();var div=$(currentSettings.type);if(div.length){setCurrentSettings({type:'div'});w=div.width();h=div.height();if(contentElt)contentEltLast=contentElt;contentElt=div;modal.tmp.append(div.contents())}setCurrentSettings({width:w,height:h});if(modal.tmp.html())modal.dataReady=true;else loadingError();showModal();showContentOrLoading()}else{debug('Ajax Load: '+url);setCurrentSettings({type:'ajax'});var data=currentSettings.ajax.data||{};if(currentSettings.selector){if(typeof data=="string"){data+='&'+currentSettings.selIndicator+'='+currentSettings.selector.substring(1)}else{data[currentSettings.selIndicator]=currentSettings.selector.substring(1)}}$.ajax($.extend(true,currentSettings.ajax,{url:url,success:ajaxLoaded,error:loadingError,data:data}));showModal()}}else if(currentSettings.content){debug('Content: '+currentSettings.type);setCurrentSettings({type:'manual'});initModal();modal.tmp.html($('<div/>').html(currentSettings.content).contents());if(modal.tmp.html())modal.dataReady=true;else loadingError();showModal()}else{}}function setDefaultCurrentSettings(settings){debug('setDefaultCurrentSettings');currentSettings=$.extend({},$.fn.nyroModal.settings,settings);currentSettings.selector='';currentSettings.borderW=0;currentSettings.borderH=0;currentSettings.resizable=true;setMargin()}function setCurrentSettings(settings,deep1,deep2){if(modal.started){if(deep1&&deep2){$.extend(currentSettings[deep1][deep2],settings)}else if(deep1){$.extend(currentSettings[deep1],settings)}else{$.extend(currentSettings,settings)}}else{if(deep1&&deep2){$.extend($.fn.nyroModal.settings[deep1][deep2],settings)}else if(deep1){$.extend($.fn.nyroModal.settings[deep1],settings)}else{$.extend($.fn.nyroModal.settings,settings)}}}function setMarginScroll(){if(isIE6){if(document.documentElement){currentSettings.marginScrollLeft=document.documentElement.scrollLeft;currentSettings.marginScrollTop=document.documentElement.scrollTop}else{currentSettings.marginScrollLeft=document.body.scrollLeft;currentSettings.marginScrollTop=document.body.scrollTop}}else{currentSettings.marginScrollLeft=0;currentSettings.marginScrollTop=0}}function setMargin(){setMarginScroll();currentSettings.marginLeft=-(currentSettings.width+currentSettings.borderW)/2+currentSettings.marginScrollLeft;currentSettings.marginTop=-(currentSettings.height+currentSettings.borderH)/2+currentSettings.marginScrollTop}function setMarginloading(){setMarginScroll();var outer=getOuter(modal.loading);currentSettings.marginTopLoading=-(modal.loading.height()+outer.h.border+outer.h.padding)/2+currentSettings.marginScrollTop;currentSettings.marginLeftLoading=-(modal.loading.width()+outer.w.border+outer.w.padding)/2+currentSettings.marginScrollLeft}function initModal(){debug('initModal');if(!modal.full){if(currentSettings.debug)setCurrentSettings({color:'white'},'css','bg');var iframeHideIE='';if(isIE6){body.css({height:body.height()+'px',width:body.width()+'px',position:'static',overflow:'hidden'});$('html').css({overflow:'hidden'});setCurrentSettings({position:'absolute',height:'110%',width:'110%',top:currentSettings.marginScrollTop+'px',left:currentSettings.marginScrollLeft+'px'},'css','bg');setCurrentSettings({position:'absolute'},'css','loading');setCurrentSettings({position:'absolute'},'css','wrapper');iframeHideIE=$('<iframe id="nyroModalIframeHideIe"></iframe>').css($.extend({},currentSettings.css.bg,{opacity:0,zIndex:50,border:'none'}))}body.append($('<div id="nyroModalFull"><div id="nyroModalBg"></div><div id="nyroModalWrapper"><div id="nyroModalContent"></div></div><div id="nyrModalTmp"></div><div id="nyroModalLoading"></div></div>').hide());modal.full=$('#nyroModalFull').show();modal.bg=$('#nyroModalBg').css($.extend({backgroundColor:currentSettings.bgColor},currentSettings.css.bg)).before(iframeHideIE);if(!currentSettings.modal)modal.bg.click(removeModal);modal.loading=$('#nyroModalLoading').css(currentSettings.css.loading).hide();modal.contentWrapper=$('#nyroModalWrapper').css(currentSettings.css.wrapper).hide();modal.content=$('#nyroModalContent');modal.tmp=$('#nyrModalTmp').hide();if($.isFunction($.fn.mousewheel)){modal.content.mousewheel(function(e,d){var elt=modal.content.get(0);if((d>0&&elt.scrollTop==0)||(d<0&&elt.scrollHeight-elt.scrollTop==elt.clientHeight)){e.preventDefault();e.stopPropagation()}})}$(document).keydown(keyHandler);modal.content.css({width:'auto',height:'auto'});modal.contentWrapper.css({width:'auto',height:'auto'})}}function showModal(){debug('showModal');if(!modal.ready){initModal();modal.anim=true;currentSettings.showBackground(modal,currentSettings,endBackground)}else{modal.anim=true;modal.transition=true;currentSettings.showTransition(modal,currentSettings,function(){endHideContent();modal.anim=false;showContentOrLoading()})}}function keyHandler(e){if(e.keyCode==27){if(!currentSettings.modal)removeModal()}else if(currentSettings.type=='gallery'&&modal.ready&&modal.dataReady&&!modal.anim&&!modal.transition){if(e.keyCode==39||e.keyCode==40){e.preventDefault();$('.nyroModalNext',modal.content).eq(0).trigger('click');return false}else if(e.keyCode==37||e.keyCode==38){e.preventDefault();$('.nyroModalPrev',modal.content).eq(0).trigger('click');return false}}}function fileType(){if(currentSettings.forceType){var tmp=currentSettings.forceType;if(!currentSettings.content)currentSettings.from=true;currentSettings.forceType=null;return tmp}var from=currentSettings.from;var url;if(from&&from.nodeName){var jFrom=$(from);currentSettings.url=url=from.nodeName.toLowerCase()=='form'?jFrom.attr('action'):from.href;if(jFrom.attr('rev')=='modal')currentSettings.modal=true;if(jFrom.attr('title'))currentSettings.title=jFrom.attr('title');var imgType=imageType(url,from);if(imgType)return imgType;if(from.target&&from.target.toLowerCase()=='_blank'||(from.hostname&&from.hostname.replace(/:\d*$/,'')!=window.location.hostname.replace(/:\d*$/,''))){return'iframe'}else if(from.nodeName.toLowerCase()=='form'){setCurrentSettings(extractUrlSel(url));if(jFrom.attr('enctype')=='multipart/form-data')return'formData';return'form'}}else{url=currentSettings.url;if(!currentSettings.content)currentSettings.from=true;if(!url)return null;var reg1=new RegExp("^http://","g");if(url.match(reg1))return'iframe'}var imgType=imageType(url,from);if(imgType)return imgType;var swf=new RegExp('[^\.]\.(swf)\s*$','i');if(swf.test(url))return'swf';var tmp=extractUrlSel(url);setCurrentSettings(tmp);if(!tmp.url)return tmp.selector}function imageType(url,from){var image=new RegExp(currentSettings.regexImg,'i');if(image.test(url)){if(from&&from.rel)return'gallery';else return'image'}}function extractUrlSel(url){var ret={url:null,selector:null};if(url){var hash=getHash(url);var hashLoc=getHash(window.location.href);var curLoc=window.location.href.substring(0,window.location.href.length-hashLoc.length);var req=url.substring(0,url.length-hash.length);if(req==curLoc){ret.selector=hash}else{ret.url=req;ret.selector=hash}}return ret}function loadingError(){debug('loadingError');modal.error=true;if(!modal.ready)return;if($.isFunction(currentSettings.handleError))currentSettings.handleError(modal,currentSettings);modal.loading.addClass(currentSettings.errorClass).html(currentSettings.contentError);$(currentSettings.closeSelector,modal.loading).click(removeModal);setMarginloading();modal.loading.css({marginTop:currentSettings.marginTopLoading+'px',marginLeft:currentSettings.marginLeftLoading+'px'})}function fillContent(){debug('fillContent');if(!modal.tmp.html())return;modal.content.html(modal.tmp.contents());modal.tmp.empty();wrapContent();if($.isFunction(currentSettings.endFillContent))currentSettings.endFillContent(modal,currentSettings);modal.content.append(modal.scripts);var currentSettingsNew=$.extend({},currentSettings);if(resized.width)currentSettingsNew.width=null;if(resized.height)currentSettingsNew.height=null;$(currentSettings.closeSelector,modal.contentWrapper).click(removeModal);$(currentSettings.openSelector,modal.contentWrapper).nyroModal(currentSettingsNew)}function wrapContent(){debug('wrapContent');var wrap=$(currentSettings.wrap[currentSettings.type]);modal.content.append(wrap.children().remove());modal.contentWrapper.wrapInner(wrap);if(currentSettings.type=='gallery'){var linkPrev=getGalleryLink(-1);if(linkPrev){$('.nyroModalPrev',modal.contentWrapper).attr('href',linkPrev.attr('href')).click(function(e){e.preventDefault();linkPrev.nyroModalManual(currentSettings);return false})}else{$('.nyroModalPrev',modal.contentWrapper).remove()}var linkNext=getGalleryLink(1);if(linkNext){$('.nyroModalNext',modal.contentWrapper).attr('href',linkNext.attr('href')).click(function(e){e.preventDefault();linkNext.nyroModalManual(currentSettings);return false})}else{$('.nyroModalNext',modal.contentWrapper).remove()}}calculateSize()}function getGalleryLink(dir){if(currentSettings.type=='gallery'){if(!currentSettings.ltr)dir*=-1;var gallery=$('[rel="'+currentSettings.from.rel+'"]');var currentIndex=gallery.index(currentSettings.from);var index=currentIndex+dir;if(index>=0&&index<gallery.length)return gallery.eq(index)}return false}function calculateSize(resizing){debug('calculateSize');if(!modal.wrapper)modal.wrapper=modal.contentWrapper.children(':first');resized.width=false;resized.height=false;if(currentSettings.autoSizable&&(!currentSettings.width||!currentSettings.height)){modal.contentWrapper.css({opacity:0}).show();var tmp={width:'auto',height:'auto'};if(currentSettings.width)tmp.width=currentSettings.width;if(currentSettings.height)tmp.height=currentSettings.height;modal.content.css(tmp);if(!currentSettings.width){currentSettings.width=modal.content.width();resized.width=true}if(!currentSettings.height){currentSettings.height=modal.content.height();resized.height=true}modal.contentWrapper.hide().css({opacity:1})}currentSettings.width=Math.max(currentSettings.width,currentSettings.minWidth);currentSettings.height=Math.max(currentSettings.height,currentSettings.minHeight);var outerWrapper=getOuter(modal.contentWrapper);var outerWrapper2=getOuter(modal.wrapper);var outerContent=getOuter(modal.content);var tmp={content:{width:currentSettings.width,height:currentSettings.height},wrapper2:{width:currentSettings.width+outerContent.w.total,height:currentSettings.height+outerContent.h.total},wrapper:{width:currentSettings.width+outerContent.w.total+outerWrapper2.w.total,height:currentSettings.height+outerContent.h.total+outerWrapper2.h.total}};if(currentSettings.resizable){var maxHeight=$(window).height()-currentSettings.padding*2-outerWrapper.h.border-(tmp.wrapper.height-currentSettings.height);var maxWidth=$(window).width()-currentSettings.padding*2-outerWrapper.w.border-(tmp.wrapper.width-currentSettings.width);if(tmp.content.height>maxHeight||tmp.content.width>maxWidth){if(currentSettings.type=='image'||currentSettings.type=='gallery'){var diffW=tmp.content.width-currentSettings.imgWidth;var diffH=tmp.content.height-currentSettings.imgHeight;if(diffH<0)diffH=0;if(diffW<0)diffW=0;var calcH=maxHeight-diffH;var calcW=maxWidth-diffW;var ratio=Math.min(calcH/currentSettings.imgHeight,calcW/currentSettings.imgWidth);calcH=Math.floor(currentSettings.imgHeight*ratio);calcW=Math.floor(currentSettings.imgWidth*ratio);$('img#nyroModalImg',modal.content).css({height:calcH+'px',width:calcW+'px'});tmp.content.height=calcH+diffH;tmp.content.width=calcW+diffW}else{tmp.content.height=Math.min(tmp.content.height,maxHeight);tmp.content.width=Math.min(tmp.content.width,maxWidth)}tmp.wrapper2={width:tmp.content.width+outerContent.w.total,height:tmp.content.height+outerContent.h.total};tmp.wrapper={width:tmp.content.width+outerContent.w.total+outerWrapper2.w.total,height:tmp.content.height+outerContent.h.total+outerWrapper2.h.total}}}modal.content.css($.extend({},tmp.content,currentSettings.css.content));modal.wrapper.css($.extend({},tmp.wrapper2,currentSettings.css.wrapper2));if(!resizing){modal.contentWrapper.css($.extend({},tmp.wrapper,currentSettings.css.wrapper));if(currentSettings.type=='image'||currentSettings.type=='gallery'){var title=$('img',modal.content).attr('alt');$('img',modal.content).removeAttr('alt');if(title!=currentSettings.defaultImgAlt){var divTitle=$('<div>'+title+'</div>');modal.content.append(divTitle);if(currentSettings.setWidthImgTitle){var outerDivTitle=getOuter(divTitle);divTitle.css({width:(tmp.content.width+outerContent.w.padding-outerDivTitle.w.total)+'px'})}}}if(!currentSettings.modal)modal.contentWrapper.prepend(currentSettings.closeButton)}if(currentSettings.title)modal.contentWrapper.prepend('<h1 id="nyroModalTitle">'+currentSettings.title+'</h1>');tmp.wrapper.borderW=outerWrapper.w.border;tmp.wrapper.borderH=outerWrapper.h.border;setCurrentSettings(tmp.wrapper);setMargin()}function removeModal(e){debug('removeModal');if(e)e.preventDefault();if(modal.full&&modal.ready){modal.ready=false;modal.anim=true;modal.closing=true;if(modal.loadingShown||modal.transition){currentSettings.hideLoading(modal,currentSettings,function(){modal.loading.hide();modal.loadingShown=false;modal.transition=false;currentSettings.hideBackground(modal,currentSettings,endRemove)})}else{if(fixFF)modal.content.css({position:''});modal.wrapper.css({overflow:'hidden'});modal.content.css({overflow:'hidden'});if($.isFunction(currentSettings.beforeHideContent)){currentSettings.beforeHideContent(modal,currentSettings,function(){currentSettings.hideContent(modal,currentSettings,function(){endHideContent();currentSettings.hideBackground(modal,currentSettings,endRemove)})})}else{currentSettings.hideContent(modal,currentSettings,function(){endHideContent();currentSettings.hideBackground(modal,currentSettings,endRemove)})}}}if(e)return false}function showContentOrLoading(){debug('showContentOrLoading');if(modal.ready&&!modal.anim){if(modal.dataReady){if(modal.tmp.html()){modal.anim=true;if(modal.transition){fillContent();currentSettings.hideTransition(modal,currentSettings,function(){modal.loading.hide();modal.transition=false;modal.loadingShown=false;endShowContent()})}else{currentSettings.hideLoading(modal,currentSettings,function(){modal.loading.hide();modal.loadingShown=false;fillContent();setMarginloading();currentSettings.showContent(modal,$.extend({},currentSettings),endShowContent)})}}}else if(!modal.loadingShown&&!modal.transition){modal.anim=true;modal.loadingShown=true;if(modal.error)loadingError();else modal.loading.html(currentSettings.contentLoading);$(currentSettings.closeSelector,modal.loading).click(removeModal);setMarginloading();currentSettings.showLoading(modal,currentSettings,function(){modal.anim=false;showContentOrLoading()})}}}function ajaxLoaded(data){debug('AjaxLoaded: '+this.url);modal.tmp.html(currentSettings.selector?filterScripts($('<div>'+data+'</div>').find(currentSettings.selector).contents()):filterScripts(data));if(modal.tmp.html()){modal.dataReady=true;showContentOrLoading()}else loadingError()}function formDataLoaded(){debug('formDataLoaded');var jFrom=$(currentSettings.from);jFrom.attr('action',jFrom.attr('action')+currentSettings.selector);jFrom.attr('target','');$('input[name='+currentSettings.formIndicator+']',currentSettings.from).remove();var iframe=modal.tmp.children('iframe');var iframeContent=iframe.unbind('load').contents().find(currentSettings.selector||'body').not('script[src]');iframe.attr('src','about:blank');modal.tmp.html(iframeContent.html());if(modal.tmp.html()){modal.dataReady=true;showContentOrLoading()}else loadingError()}function endHideContent(){debug('endHideContent');modal.anim=false;if(contentEltLast){contentEltLast.append(modal.content.contents());contentEltLast=null}else if(contentElt){contentElt.append(modal.content.contents());contentElt=null}modal.content.empty();modal.contentWrapper.empty().removeAttr('style');if(modal.closing||modal.transition)modal.contentWrapper.hide();modal.contentWrapper.css(currentSettings.css.wrapper).append(modal.content);showContentOrLoading()}function endRemove(){debug('endRemove');$(document).unbind('keydown',keyHandler);modal.anim=false;modal.full.remove();modal.full=null;if(isIE6){body.css({height:'',width:'',position:'',overflow:''});$('html').css({overflow:''})}if($.isFunction(currentSettings.endRemove))currentSettings.endRemove(modal,currentSettings)}function endBackground(){debug('endBackground');modal.ready=tr... [truncated message content] |
From: <big...@us...> - 2009-03-18 09:47:12
|
Revision: 147 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=147&view=rev Author: bigmichi1 Date: 2009-03-18 09:46:57 +0000 (Wed, 18 Mar 2009) Log Message: ----------- '-' not allowed in classname sl.xml language file correction Modified Paths: -------------- includes/common_functions.php language/sl.xml Added Paths: ----------- includes/os/class.HPUX.inc.php Removed Paths: ------------- includes/os/class.HP-UX.inc.php Modified: includes/common_functions.php =================================================================== --- includes/common_functions.php 2009-03-08 13:10:31 UTC (rev 146) +++ includes/common_functions.php 2009-03-18 09:46:57 UTC (rev 147) @@ -202,6 +202,7 @@ * @param string name of the class which must be loaded */ function __autoload($class_name) { + $class_name = str_replace('-', '', $class_name); $dirs = array( '/plugins/' . $class_name . '/', '/includes/', '/includes/interfaces/', '/includes/os/', '/includes/mb/' ); $found = false; foreach ($dirs as $dir) { Deleted: includes/os/class.HP-UX.inc.php =================================================================== --- includes/os/class.HP-UX.inc.php 2009-03-08 13:10:31 UTC (rev 146) +++ includes/os/class.HP-UX.inc.php 2009-03-18 09:46:57 UTC (rev 147) @@ -1,504 +0,0 @@ -<?php -/** - * HP-UX System Class - * - * @license http://opensource.org/licenses/gpl-2.0.php - * @package psi_os - */ - -/** - * HP-UX sysinfo class - * get all the required information from HP-UX system - * - * @author Michael Cramer (Big...@us...) - * @version $Id$ - * @copyright Copyright (C) 2008 by phpSysInfo - * @package psi_os - */ -class HP-UX implements psi_os_interface { - /** - * Virtual Host Name - * - * @access public - * @return string - */ - public function vhostname() { - if (!($result = getenv('SERVER_NAME'))) { - $result = 'N.A.'; - } - return $result; - } - - /** - * IP of the Virtual Host Name - * - * @access public - * @return string - */ - public function vip_addr() { - return gethostbyname($this->vhostname()); - } - - /** - * Canonical Host Name - * - @access public - @return string - */ - public function chostname() { - $ret = ""; - if (execute_program('hostname', '', $ret)) { - return $ret; - } else { - return 'N.A.'; - } - } - - /** - * IP of the Canonical Host Name - * - * @access public - * @return string - */ - public function ip_addr() { - if (!($result = getenv('SERVER_ADDR'))) { - $result = gethostbyname($this->chostname()); - } - return $result; - } - - /** - * HP-UX Version - * - * @access public - * @return string - */ - public function kernel() { - $ret = ""; - if (execute_program('uname', '-srvm', $ret)) { - return $ret; - } else { - return 'N.A.'; - } - } - - /** - * UpTime - * time the system is running - * - * @access public - * @return integer - */ - public function uptime() { - $buf = ""; - $result = -1; - $ar_buf = array (); - if (execute_program('uptime', '', $buf)) { - if (preg_match("/up (\d+) days,\s*(\d+):(\d+),/", $buf, $ar_buf)) { - $min = $ar_buf[3]; - $hours = $ar_buf[2]; - $days = $ar_buf[1]; - $result = $days * 86400 + $hours * 3600 + $min * 60; - } - } - return $result; - } - - /** - * Number of Users - * - * @access public - * @return integer - */ - public function users() { - $ret = ""; - if (execute_program('who', '-q', $ret)) { - $who = split('=', $ret); - $result = $who[1]; - return $result; - } else { - return -1; - } - } - - /** - * Processor Load - * optionally create a loadbar - * - * @access public - * @param boolean include a bar - * @return array - */ - public function loadavg($bar = false) { - $buf = ""; - $ar_buf = array (); - $results['avg'] = array ('N.A.','N.A.','N.A.'); - if (execute_program('uptime', '', $buf)) { - if (preg_match("/average: (.*), (.*), (.*)$/", $buf, $ar_buf)) { - $results['avg'] = array ($ar_buf[1],$ar_buf[2],$ar_buf[3]); - } - } - return $results; - } - - /** - * CPU information - * All of the tags here are highly architecture dependant - * - * @access public - * @return array - */ - public function cpu_info() { - $results = array (); - $ar_buf = array (); - $bufr = ""; - if (rfts('/proc/cpuinfo', $bufr)) { - $bufe = explode("\n", $bufr); - foreach ($bufe as $buf) { - list ($key, $value) = preg_split('/\s+:\s+/', trim($buf), 2); - switch ($key) { - case 'model name' : - $results['model'] = $value; - break; - case 'cpu MHz' : - $results['cpuspeed'] = sprintf('%.2f', $value); - break; - case 'cycle frequency [Hz]' : // For Alpha arch - 2.2.x - $results['cpuspeed'] = sprintf('%.2f', $value / 1000000); - break; - case 'clock' : // For PPC arch (damn borked POS) - $results['cpuspeed'] = sprintf('%.2f', $value); - break; - case 'cpu' : // For PPC arch (damn borked POS) - $results['model'] = $value; - break; - case 'revision' : // For PPC arch (damn borked POS) - $results['model'] .= ' ( rev: ' . $value . ')'; - break; - case 'cpu model' : // For Alpha arch - 2.2.x - $results['model'] .= ' (' . $value . ')'; - break; - case 'cache size' : - $results['cache'] = $value; - break; - case 'bogomips' : - $results['bogomips'] += $value; - break; - case 'BogoMIPS' : // For alpha arch - 2.2.x - $results['bogomips'] += $value; - break; - case 'BogoMips' : // For sparc arch - $results['bogomips'] += $value; - break; - case 'cpus detected' : // For Alpha arch - 2.2.x - $results['cpus'] += $value; - break; - case 'system type' : // Alpha arch - 2.2.x - $results['model'] .= ', ' . $value . ' '; - break; - case 'platform string' : // Alpha arch - 2.2.x - $results['model'] .= ' (' . $value . ')'; - break; - case 'processor' : - $results['cpus'] += 1; - break; - } - } - } - $keys = array_keys($results); - $keys2be = array ('model','cpuspeed','cache','bogomips','cpus'); - while ($ar_buf = each($keys2be)) { - if (!in_array($ar_buf[1], $keys)) { - $results[$ar_buf[1]] = 'N.A.'; - } - } - return $results; - } - - /** - * PCI devices - * - * @access public - * @return array - */ - public function pci() { - $bufr = ""; - $results = array (); - if (rfts('/proc/pci', $bufr)) { - $bufe = explode("\n", $bufr); - foreach ($bufe as $buf) { - if (preg_match('/Bus/', $buf)) { - $device = true; - continue; - } - if ($device) { - list ($key, $value) = split(': ', $buf, 2); - if (!preg_match('/bridge/i', $key) && !preg_match('/USB/i', $key)) { - $results[] = preg_replace('/\([^\)]+\)\.$/', '', trim($value)); - } - $device = false; - } - } - } - asort($results); - return $results; - } - - /** - * IDE devices - * - * @access public - * @return array - */ - public function ide() { - $buf = ""; - $results = array (); - $bufd = gdc('/proc/ide'); - foreach ($bufd as $file) { - if (preg_match('/^hd/', $file)) { - $results[$file] = array (); - // Check if device is CD-ROM (CD-ROM capacity shows as 1024 GB) - if (rfts("/proc/ide/" . $file . "/media", $buf, 1)) { - $results[$file]['media'] = trim($buf); - if ($results[$file]['media'] == 'disk') { - $results[$file]['media'] = 'Hard Disk'; - } - if ($results[$file]['media'] == 'cdrom') { - $results[$file]['media'] = 'CD-ROM'; - } - } - if (rfts("/proc/ide/" . $file . "/model", $buf, 1)) { - $results[$file]['model'] = trim($buf); - if (preg_match('/WDC/', $results[$file]['model'])) { - $results[$file]['manufacture'] = 'Western Digital'; - } - elseif (preg_match('/IBM/', $results[$file]['model'])) { - $results[$file]['manufacture'] = 'IBM'; - } - elseif (preg_match('/FUJITSU/', $results[$file]['model'])) { - $results[$file]['manufacture'] = 'Fujitsu'; - } else { - $results[$file]['manufacture'] = 'Unknown'; - } - } - if (rfts("/proc/ide/" . $file . "/capacity", $buf, 1)) { - $results[$file]['capacity'] = trim($buf); - if ($results[$file]['media'] == 'CD-ROM') { - unset ($results[$file]['capacity']); - } - } - } - } - asort($results); - return $results; - } - - /** - * SCSI devices - * - * @access public - * @return array - */ - public function scsi() { - $bufr = ""; - $results = array (); - $dev_vendor = ''; - $dev_model = ''; - $dev_rev = ''; - $dev_type = ''; - $s = 1; - if (rfts('/proc/scsi/scsi', $bufr)) { - $bufe = explode("\n", $bufr); - foreach ($bufe as $buf) { - if (preg_match('/Vendor/', $buf)) { - preg_match('/Vendor: (.*) Model: (.*) Rev: (.*)/i', $buf, $dev); - list ($key, $value) = split(': ', $buf, 2); - $dev_str = $value; - $get_type = 1; - continue; - } - if ($get_type) { - preg_match('/Type:\s+(\S+)/i', $buf, $dev_type); - $results[$s]['model'] = "$dev[1] $dev[2] ($dev_type[1])"; - $results[$s]['media'] = "Hard Disk"; - $s++; - $get_type = 0; - } - } - } - asort($results); - return $results; - } - - /** - * USB devices - * - * @access public - * @return array - */ - public function usb() { - $bufr = ""; - $results = array (); - $devstring = 0; - $devnum = -1; - if (rfts('/proc/bus/usb/devices', $bufr)) { - $bufe = explode("\n", $bufr); - foreach ($bufe as $buf) { - if (preg_match('/^T/', $buf)) { - $devnum += 1; - } - if (preg_match('/^S/', $buf)) { - $devstring = 1; - } - if ($devstring) { - list ($key, $value) = split(': ', $buf, 2); - list ($key, $value2) = split('=', $value, 2); - $results[$devnum] .= " " . trim($value2); - $devstring = 0; - } - } - } - return $results; - } - - /** - * Network devices - * includes also rx/tx bytes - * - * @access public - * @return array - */ - public function network() { - $netstat = ""; - if (execute_program('netstat', '-ni | tail -n +2', $netstat)) { - $lines = split("\n", $netstat); - $results = array (); - for ($i = 0, $max = sizeof($lines); $i < $max; $i++) { - $ar_buf = preg_split("/\s+/", $lines[$i]); - if (!empty ($ar_buf[0]) && !empty ($ar_buf[3])) { - $results[$ar_buf[0]] = array (); - $results[$ar_buf[0]]['rx_bytes'] = $ar_buf[4]; - $results[$ar_buf[0]]['tx_bytes'] = $ar_buf[6]; - $results[$ar_buf[0]]['errs'] = $ar_buf[5] + $ar_buf[7]; - $results[$ar_buf[0]]['drop'] = $ar_buf[8]; - } - } - return $results; - } else { - return array (); - } - } - - /** - * Physical memory information and Swap Space information - * - * @access public - * @return array - */ - public function memory() { - $bufr = ""; - $results['swap'] = array (); - $results['devswap'] = array (); - if (rfts('/proc/meminfo', $bufr)) { - $bufe = explode("\n", $bufr); - foreach ($bufe as $buf) { - if (preg_match('/Mem:\s+(.*)$/', $buf, $ar_buf)) { - $ar_buf = preg_split('/\s+/', $ar_buf[1], 6); - $results['ram']['total'] = $ar_buf[0]; - $results['ram']['used'] = $ar_buf[1]; - $results['ram']['free'] = $ar_buf[2]; - $results['ram']['shared'] = $ar_buf[3]; - $results['ram']['buffers'] = $ar_buf[4]; - $results['ram']['cached'] = $ar_buf[5]; - $results['ram']['percent'] = round(($results['ram']['used'] * 100) / $results['ram']['total']); - } - if (preg_match('/Swap:\s+(.*)$/', $buf, $ar_buf)) { - $ar_buf = preg_split('/\s+/', $ar_buf[1], 3); - $results['swap']['total'] = $ar_buf[0]; - $results['swap']['used'] = $ar_buf[1]; - $results['swap']['free'] = $ar_buf[2]; - $results['swap']['percent'] = ceil(($ar_buf[1] * 100) / (($ar_buf[0] <= 0) ? 1 : $ar_buf[0])); - // Get info on individual swap files - $swaps = ""; - if (rfts('/proc/swaps', $swaps)) { - $swapdevs = split("\n", $swaps); - for ($i = 1, $max = (sizeof($swapdevs) - 1); $i < $max; $i++) { - $ar_buf = preg_split('/\s+/', $swapdevs[$i], 6); - $results['devswap'][$i -1] = array (); - $results['devswap'][$i -1]['dev'] = $ar_buf[0]; - $results['devswap'][$i -1]['total'] = $ar_buf[2] * 1024; - $results['devswap'][$i -1]['used'] = $ar_buf[3] * 1024; - $results['devswap'][$i -1]['free'] = ($results['devswap'][$i -1]['total'] - $results['devswap'][$i -1]['used']); - $results['devswap'][$i -1]['percent'] = round(($ar_buf[3] * 100) / $ar_buf[2]); - } - break; - } - } - } - } - return $results; - } - - /** - * filesystem information - * - * @access public - * @return array - */ - public function filesystems() { - $df = ""; - if (execute_program('df', '-kP', $df)) { - $mounts = split("\n", $df); - } else { - $mounts = array (); - } - $fstype = array (); - $s = ""; - if (execute_program('mount', '-v', $s)) { - $lines = explode("\n", $s); - } else { - $lines = array (); - } - $i = 0; - while (list (, $line) = each($lines)) { - $a = split(' ', $line); - $fsdev[$a[0]] = $a[4]; - } - for ($i = 1, $j = 0, $max = sizeof($mounts); $i < $max; $i++) { - $ar_buf = preg_split("/\s+/", $mounts[$i], 6); - $results[$j] = array (); - $results[$j]['disk'] = $ar_buf[0]; - $results[$j]['size'] = $ar_buf[1] * 1024; - $results[$j]['used'] = $ar_buf[2] * 1024; - $results[$j]['free'] = $ar_buf[3] * 1024; - $results[$j]['percent'] = $ar_buf[4]; - $results[$j]['mount'] = $ar_buf[5]; - ($fstype[$ar_buf[5]]) ? $results[$j]['fstype'] = $fstype[$ar_buf[5]] : $results[$j]['fstype'] = $fsdev[$ar_buf[0]]; - $j++; - } - return $results; - } - - /** - * Distribution - * - * @access public - * @return string - */ - public function distro() { - $result = 'HP-UX'; - return $result; - } - - /** - * Distribution Icon - * - * @access public - * @return string - */ - public function distroicon() { - $result = 'unknown.png'; - return $result; - } -} -?> Copied: includes/os/class.HPUX.inc.php (from rev 146, includes/os/class.HP-UX.inc.php) =================================================================== --- includes/os/class.HPUX.inc.php (rev 0) +++ includes/os/class.HPUX.inc.php 2009-03-18 09:46:57 UTC (rev 147) @@ -0,0 +1,504 @@ +<?php +/** + * HP-UX System Class + * + * @license http://opensource.org/licenses/gpl-2.0.php + * @package psi_os + */ + +/** + * HP-UX sysinfo class + * get all the required information from HP-UX system + * + * @author Michael Cramer (Big...@us...) + * @version $Id$ + * @copyright Copyright (C) 2008 by phpSysInfo + * @package psi_os + */ +class HPUX implements psi_os_interface { + /** + * Virtual Host Name + * + * @access public + * @return string + */ + public function vhostname() { + if (!($result = getenv('SERVER_NAME'))) { + $result = 'N.A.'; + } + return $result; + } + + /** + * IP of the Virtual Host Name + * + * @access public + * @return string + */ + public function vip_addr() { + return gethostbyname($this->vhostname()); + } + + /** + * Canonical Host Name + * + @access public + @return string + */ + public function chostname() { + $ret = ""; + if (execute_program('hostname', '', $ret)) { + return $ret; + } else { + return 'N.A.'; + } + } + + /** + * IP of the Canonical Host Name + * + * @access public + * @return string + */ + public function ip_addr() { + if (!($result = getenv('SERVER_ADDR'))) { + $result = gethostbyname($this->chostname()); + } + return $result; + } + + /** + * HP-UX Version + * + * @access public + * @return string + */ + public function kernel() { + $ret = ""; + if (execute_program('uname', '-srvm', $ret)) { + return $ret; + } else { + return 'N.A.'; + } + } + + /** + * UpTime + * time the system is running + * + * @access public + * @return integer + */ + public function uptime() { + $buf = ""; + $result = -1; + $ar_buf = array (); + if (execute_program('uptime', '', $buf)) { + if (preg_match("/up (\d+) days,\s*(\d+):(\d+),/", $buf, $ar_buf)) { + $min = $ar_buf[3]; + $hours = $ar_buf[2]; + $days = $ar_buf[1]; + $result = $days * 86400 + $hours * 3600 + $min * 60; + } + } + return $result; + } + + /** + * Number of Users + * + * @access public + * @return integer + */ + public function users() { + $ret = ""; + if (execute_program('who', '-q', $ret)) { + $who = split('=', $ret); + $result = $who[1]; + return $result; + } else { + return -1; + } + } + + /** + * Processor Load + * optionally create a loadbar + * + * @access public + * @param boolean include a bar + * @return array + */ + public function loadavg($bar = false) { + $buf = ""; + $ar_buf = array (); + $results['avg'] = array ('N.A.','N.A.','N.A.'); + if (execute_program('uptime', '', $buf)) { + if (preg_match("/average: (.*), (.*), (.*)$/", $buf, $ar_buf)) { + $results['avg'] = array ($ar_buf[1],$ar_buf[2],$ar_buf[3]); + } + } + return $results; + } + + /** + * CPU information + * All of the tags here are highly architecture dependant + * + * @access public + * @return array + */ + public function cpu_info() { + $results = array (); + $ar_buf = array (); + $bufr = ""; + if (rfts('/proc/cpuinfo', $bufr)) { + $bufe = explode("\n", $bufr); + foreach ($bufe as $buf) { + list ($key, $value) = preg_split('/\s+:\s+/', trim($buf), 2); + switch ($key) { + case 'model name' : + $results['model'] = $value; + break; + case 'cpu MHz' : + $results['cpuspeed'] = sprintf('%.2f', $value); + break; + case 'cycle frequency [Hz]' : // For Alpha arch - 2.2.x + $results['cpuspeed'] = sprintf('%.2f', $value / 1000000); + break; + case 'clock' : // For PPC arch (damn borked POS) + $results['cpuspeed'] = sprintf('%.2f', $value); + break; + case 'cpu' : // For PPC arch (damn borked POS) + $results['model'] = $value; + break; + case 'revision' : // For PPC arch (damn borked POS) + $results['model'] .= ' ( rev: ' . $value . ')'; + break; + case 'cpu model' : // For Alpha arch - 2.2.x + $results['model'] .= ' (' . $value . ')'; + break; + case 'cache size' : + $results['cache'] = $value; + break; + case 'bogomips' : + $results['bogomips'] += $value; + break; + case 'BogoMIPS' : // For alpha arch - 2.2.x + $results['bogomips'] += $value; + break; + case 'BogoMips' : // For sparc arch + $results['bogomips'] += $value; + break; + case 'cpus detected' : // For Alpha arch - 2.2.x + $results['cpus'] += $value; + break; + case 'system type' : // Alpha arch - 2.2.x + $results['model'] .= ', ' . $value . ' '; + break; + case 'platform string' : // Alpha arch - 2.2.x + $results['model'] .= ' (' . $value . ')'; + break; + case 'processor' : + $results['cpus'] += 1; + break; + } + } + } + $keys = array_keys($results); + $keys2be = array ('model','cpuspeed','cache','bogomips','cpus'); + while ($ar_buf = each($keys2be)) { + if (!in_array($ar_buf[1], $keys)) { + $results[$ar_buf[1]] = 'N.A.'; + } + } + return $results; + } + + /** + * PCI devices + * + * @access public + * @return array + */ + public function pci() { + $bufr = ""; + $results = array (); + if (rfts('/proc/pci', $bufr)) { + $bufe = explode("\n", $bufr); + foreach ($bufe as $buf) { + if (preg_match('/Bus/', $buf)) { + $device = true; + continue; + } + if ($device) { + list ($key, $value) = split(': ', $buf, 2); + if (!preg_match('/bridge/i', $key) && !preg_match('/USB/i', $key)) { + $results[] = preg_replace('/\([^\)]+\)\.$/', '', trim($value)); + } + $device = false; + } + } + } + asort($results); + return $results; + } + + /** + * IDE devices + * + * @access public + * @return array + */ + public function ide() { + $buf = ""; + $results = array (); + $bufd = gdc('/proc/ide'); + foreach ($bufd as $file) { + if (preg_match('/^hd/', $file)) { + $results[$file] = array (); + // Check if device is CD-ROM (CD-ROM capacity shows as 1024 GB) + if (rfts("/proc/ide/" . $file . "/media", $buf, 1)) { + $results[$file]['media'] = trim($buf); + if ($results[$file]['media'] == 'disk') { + $results[$file]['media'] = 'Hard Disk'; + } + if ($results[$file]['media'] == 'cdrom') { + $results[$file]['media'] = 'CD-ROM'; + } + } + if (rfts("/proc/ide/" . $file . "/model", $buf, 1)) { + $results[$file]['model'] = trim($buf); + if (preg_match('/WDC/', $results[$file]['model'])) { + $results[$file]['manufacture'] = 'Western Digital'; + } + elseif (preg_match('/IBM/', $results[$file]['model'])) { + $results[$file]['manufacture'] = 'IBM'; + } + elseif (preg_match('/FUJITSU/', $results[$file]['model'])) { + $results[$file]['manufacture'] = 'Fujitsu'; + } else { + $results[$file]['manufacture'] = 'Unknown'; + } + } + if (rfts("/proc/ide/" . $file . "/capacity", $buf, 1)) { + $results[$file]['capacity'] = trim($buf); + if ($results[$file]['media'] == 'CD-ROM') { + unset ($results[$file]['capacity']); + } + } + } + } + asort($results); + return $results; + } + + /** + * SCSI devices + * + * @access public + * @return array + */ + public function scsi() { + $bufr = ""; + $results = array (); + $dev_vendor = ''; + $dev_model = ''; + $dev_rev = ''; + $dev_type = ''; + $s = 1; + if (rfts('/proc/scsi/scsi', $bufr)) { + $bufe = explode("\n", $bufr); + foreach ($bufe as $buf) { + if (preg_match('/Vendor/', $buf)) { + preg_match('/Vendor: (.*) Model: (.*) Rev: (.*)/i', $buf, $dev); + list ($key, $value) = split(': ', $buf, 2); + $dev_str = $value; + $get_type = 1; + continue; + } + if ($get_type) { + preg_match('/Type:\s+(\S+)/i', $buf, $dev_type); + $results[$s]['model'] = "$dev[1] $dev[2] ($dev_type[1])"; + $results[$s]['media'] = "Hard Disk"; + $s++; + $get_type = 0; + } + } + } + asort($results); + return $results; + } + + /** + * USB devices + * + * @access public + * @return array + */ + public function usb() { + $bufr = ""; + $results = array (); + $devstring = 0; + $devnum = -1; + if (rfts('/proc/bus/usb/devices', $bufr)) { + $bufe = explode("\n", $bufr); + foreach ($bufe as $buf) { + if (preg_match('/^T/', $buf)) { + $devnum += 1; + } + if (preg_match('/^S/', $buf)) { + $devstring = 1; + } + if ($devstring) { + list ($key, $value) = split(': ', $buf, 2); + list ($key, $value2) = split('=', $value, 2); + $results[$devnum] .= " " . trim($value2); + $devstring = 0; + } + } + } + return $results; + } + + /** + * Network devices + * includes also rx/tx bytes + * + * @access public + * @return array + */ + public function network() { + $netstat = ""; + if (execute_program('netstat', '-ni | tail -n +2', $netstat)) { + $lines = split("\n", $netstat); + $results = array (); + for ($i = 0, $max = sizeof($lines); $i < $max; $i++) { + $ar_buf = preg_split("/\s+/", $lines[$i]); + if (!empty ($ar_buf[0]) && !empty ($ar_buf[3])) { + $results[$ar_buf[0]] = array (); + $results[$ar_buf[0]]['rx_bytes'] = $ar_buf[4]; + $results[$ar_buf[0]]['tx_bytes'] = $ar_buf[6]; + $results[$ar_buf[0]]['errs'] = $ar_buf[5] + $ar_buf[7]; + $results[$ar_buf[0]]['drop'] = $ar_buf[8]; + } + } + return $results; + } else { + return array (); + } + } + + /** + * Physical memory information and Swap Space information + * + * @access public + * @return array + */ + public function memory() { + $bufr = ""; + $results['swap'] = array (); + $results['devswap'] = array (); + if (rfts('/proc/meminfo', $bufr)) { + $bufe = explode("\n", $bufr); + foreach ($bufe as $buf) { + if (preg_match('/Mem:\s+(.*)$/', $buf, $ar_buf)) { + $ar_buf = preg_split('/\s+/', $ar_buf[1], 6); + $results['ram']['total'] = $ar_buf[0]; + $results['ram']['used'] = $ar_buf[1]; + $results['ram']['free'] = $ar_buf[2]; + $results['ram']['shared'] = $ar_buf[3]; + $results['ram']['buffers'] = $ar_buf[4]; + $results['ram']['cached'] = $ar_buf[5]; + $results['ram']['percent'] = round(($results['ram']['used'] * 100) / $results['ram']['total']); + } + if (preg_match('/Swap:\s+(.*)$/', $buf, $ar_buf)) { + $ar_buf = preg_split('/\s+/', $ar_buf[1], 3); + $results['swap']['total'] = $ar_buf[0]; + $results['swap']['used'] = $ar_buf[1]; + $results['swap']['free'] = $ar_buf[2]; + $results['swap']['percent'] = ceil(($ar_buf[1] * 100) / (($ar_buf[0] <= 0) ? 1 : $ar_buf[0])); + // Get info on individual swap files + $swaps = ""; + if (rfts('/proc/swaps', $swaps)) { + $swapdevs = split("\n", $swaps); + for ($i = 1, $max = (sizeof($swapdevs) - 1); $i < $max; $i++) { + $ar_buf = preg_split('/\s+/', $swapdevs[$i], 6); + $results['devswap'][$i -1] = array (); + $results['devswap'][$i -1]['dev'] = $ar_buf[0]; + $results['devswap'][$i -1]['total'] = $ar_buf[2] * 1024; + $results['devswap'][$i -1]['used'] = $ar_buf[3] * 1024; + $results['devswap'][$i -1]['free'] = ($results['devswap'][$i -1]['total'] - $results['devswap'][$i -1]['used']); + $results['devswap'][$i -1]['percent'] = round(($ar_buf[3] * 100) / $ar_buf[2]); + } + break; + } + } + } + } + return $results; + } + + /** + * filesystem information + * + * @access public + * @return array + */ + public function filesystems() { + $df = ""; + if (execute_program('df', '-kP', $df)) { + $mounts = split("\n", $df); + } else { + $mounts = array (); + } + $fstype = array (); + $s = ""; + if (execute_program('mount', '-v', $s)) { + $lines = explode("\n", $s); + } else { + $lines = array (); + } + $i = 0; + while (list (, $line) = each($lines)) { + $a = split(' ', $line); + $fsdev[$a[0]] = $a[4]; + } + for ($i = 1, $j = 0, $max = sizeof($mounts); $i < $max; $i++) { + $ar_buf = preg_split("/\s+/", $mounts[$i], 6); + $results[$j] = array (); + $results[$j]['disk'] = $ar_buf[0]; + $results[$j]['size'] = $ar_buf[1] * 1024; + $results[$j]['used'] = $ar_buf[2] * 1024; + $results[$j]['free'] = $ar_buf[3] * 1024; + $results[$j]['percent'] = $ar_buf[4]; + $results[$j]['mount'] = $ar_buf[5]; + ($fstype[$ar_buf[5]]) ? $results[$j]['fstype'] = $fstype[$ar_buf[5]] : $results[$j]['fstype'] = $fsdev[$ar_buf[0]]; + $j++; + } + return $results; + } + + /** + * Distribution + * + * @access public + * @return string + */ + public function distro() { + $result = 'HP-UX'; + return $result; + } + + /** + * Distribution Icon + * + * @access public + * @return string + */ + public function distroicon() { + $result = 'unknown.png'; + return $result; + } +} +?> Modified: language/sl.xml =================================================================== --- language/sl.xml 2009-03-08 13:10:31 UTC (rev 146) +++ language/sl.xml 2009-03-18 09:46:57 UTC (rev 147) @@ -183,10 +183,10 @@ <expression id="059" name="s_label"> <exp>Polje</exp> </expression> - <expression id="060" name="degreeC"> + <expression id="060" name="degreec"> <exp>C</exp> </expression> - <expression id="061" name="degreeF"> + <expression id="061" name="degreef"> <exp>F</exp> </expression> <expression id="062" name="voltage_mark"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <big...@us...> - 2009-03-30 14:08:18
|
Revision: 172 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=172&view=rev Author: bigmichi1 Date: 2009-03-30 14:08:04 +0000 (Mon, 30 Mar 2009) Log Message: ----------- big refactoring all over the entire app, i hope i have found all function calls that have changed what has changed in this commit: - new directory layout - documentation can now be build with phpdoc - interfaces for all classes that can be extended by users or in the furture like new os support/sensors and so on - cleaning up the code from redundant functions in classes mainly - used phpcodesniffer to style each php file - all php files follow the PEAR style guide - case-sensitive class names for autoloading - some bugfixes that i found while looking over the code (e.g. wrong var usage in some os classes mainly bsd regexp usage) Modified Paths: -------------- ChangeLog config.php.new includes/os/class.Darwin.inc.php includes/os/class.DragonFly.inc.php includes/os/class.FreeBSD.inc.php includes/os/class.HPUX.inc.php includes/os/class.Linux.inc.php includes/os/class.NetBSD.inc.php includes/os/class.OpenBSD.inc.php includes/os/class.SunOS.inc.php includes/os/class.WINNT.inc.php js/phpSysInfo/phpsysinfo.js plugins/mdstatus/class.MDStatus.inc.php plugins/mdstatus/js/mdstatus.js plugins/ps/class.PS.inc.php plugins/ps/js/ps.js plugins/psstatus/class.PSStatus.inc.php plugins/psstatus/js/psstatus.js plugins/quotas/class.Quotas.inc.php plugins/quotas/js/quotas.js tools/check.sh tools/phpsysinfo.ini xml.php Added Paths: ----------- includes/autoloader.inc.php includes/class.CommonFunctions.inc.php includes/class.Parser.inc.php includes/error/ includes/error/class.Error.inc.php includes/interface/ includes/interface/class.PSI_Interface_OS.inc.php includes/interface/class.PSI_Interface_Output.inc.php includes/interface/class.PSI_Interface_Plugin.inc.php includes/interface/class.PSI_Interface_Sensor.inc.php includes/interface/class.PSI_Interface_UPS.inc.php includes/js/ includes/js/class.JavaScriptPacker.inc.php includes/mb/class.Coretemp.inc.php includes/mb/class.HDDTemp.inc.php includes/mb/class.HWSensors.inc.php includes/mb/class.Healthd.inc.php includes/mb/class.IPMI.inc.php includes/mb/class.LMSensors.inc.php includes/mb/class.MBM5.inc.php includes/mb/class.MBMon.inc.php includes/os/class.BSDCommon.inc.php includes/os/class.OS.inc.php includes/output/ includes/output/class.Output.inc.php includes/output/class.Webpage.inc.php includes/output/class.WebpageXML.inc.php includes/output/class.WebpageXSLT.inc.php includes/plugin/ includes/plugin/class.PSI_Plugin.inc.php includes/ups/class.Apcupsd.inc.php includes/xml/ includes/xml/class.XML.inc.php index.php js.php Removed Paths: ------------- includes/class.Error.inc.php includes/class.psi_plugin.inc.php includes/class.xml.inc.php includes/common_functions.php includes/interface/class.psi_os_interface.inc.php includes/interface/class.psi_plugin_interface.inc.php includes/interface/class.psi_sensor_interface.inc.php includes/interfaces/ includes/os/class.bsd_common.inc.php includes/os/class.parser.inc.php includes/redir.php index.php js/class.JavaScriptPacker.inc.php js/js.php phpsysinfo.js tools/class.JavaScriptPacker.php tools/jsfilepack.php Modified: ChangeLog =================================================================== --- ChangeLog 2009-03-27 09:39:51 UTC (rev 171) +++ ChangeLog 2009-03-30 14:08:04 UTC (rev 172) @@ -43,6 +43,9 @@ - [UPD] Language files (de) - [UPD] Refresh only values not the entire page - [UPD] Fedore, FreeBSD, Suse icon + - [UPD] PEAR coding style + - [UPD] refactoring internal structures (better extensibility in future) + - [UPD] documentation can now be build with phpDoc without warnings phpSysInfo 3.0 RC-6, 2008-06-05 - added the architecture to the kernel line for Linux systems Modified: config.php.new =================================================================== --- config.php.new 2009-03-27 09:39:51 UTC (rev 171) +++ config.php.new 2009-03-30 14:08:04 UTC (rev 172) @@ -1,11 +1,16 @@ <?php /** * PSI Config File - * - * @version $Id$ - * @copyright Copyright (C) 2008 by phpSysInfo - * @license http://opensource.org/licenses/gpl-2.0.php - * @package psi + * + * PHP version 5 + * + * @category PHP + * @package PSI + * @author Michael Cramer <Big...@us...> + * @copyright 2009 phpSysInfo + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @version SVN: $Id$ + * @link http://phpsysinfo.sourceforge.net */ // ******************************** @@ -26,7 +31,7 @@ define('PSI_ADD_PATHS', false); /** - * Plugins that should be included in xml and output + * Plugins that should be included in xml and output (!!!plugin names are case-sensitive!!!) * List of plugins should look like "plugin,plugin,plugin". See /plugins directory * - define('PSI_PLUGINS', 'plugin,plugin'); // list of plugins * - define('PSI_PLUGINS', false); //no plugins @@ -46,7 +51,7 @@ /** * Define the default template */ -define('PSI_DEFAULT_TEMPLATE', 'phpsysinfo.css'); +define('PSI_DEFAULT_TEMPLATE', 'phpsysinfo'); /** * Show or hide language picklist @@ -113,16 +118,16 @@ // ******************************** /** - * Define the motherboard monitoring program + * Define the motherboard monitoring program (!!!names are case-sensitive!!!) * We support the following programs so far - * - 1. lmsensors http://www.lm-sensors.org/ - * - 2. healthd http://healthd.thehousleys.net/ - * - 3. hwsensors http://www.openbsd.org/ - * - 4. mbmon http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/download.html - * - 5. mbm5 http://mbm.livewiredev.com/ - * - 6. coretemp - * - 7. ipmi http://openipmi.sourceforge.net/ - * Example: If you want to use lmsensors : define('PSI_SENSOR_PROGRAM', 'lmsensors'); + * - 1. LMSensors http://www.lm-sensors.org/ + * - 2. Healthd http://healthd.thehousleys.net/ + * - 3. HWSensors http://www.openbsd.org/ + * - 4. MBMon http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/download.html + * - 5. MBM5 http://mbm.livewiredev.com/ + * - 6. Coretemp + * - 7. IPMI http://openipmi.sourceforge.net/ + * Example: If you want to use lmsensors : define('PSI_SENSOR_PROGRAM', 'LMSensors'); */ define('PSI_SENSOR_PROGRAM', false); @@ -146,7 +151,7 @@ * If the hddtemp program is available we can read the temperature, if hdd is smart capable * !!ATTENTION!! hddtemp might be a security issue * - define('PSI_HDD_TEMP', 'tcp'); // read data from hddtemp deamon (localhost:7634) - * - define('PSI_HDD_TEMP', 'command'); // read data from hddtemp programm (must be set suid) + * - define('PSI_HDD_TEMP', 'command'); // read data from hddtemp programm (must be set suid) */ define('PSI_HDD_TEMP', false); @@ -211,9 +216,10 @@ // ******************************** /** - * UPS information - * We support the following programs at the moment : - * - 1. apcupsd http://www.apcupsd.com/ + * Define the ups monitoring program (!!!names are case-sensitive!!!) + * We support the following programs so far + * - 1. Apcupsd http://www.apcupsd.com/ + * Example: If you want to use lmsensors : define('PSI_UPS_PROGRAM', 'Apcupsd'); */ define('PSI_UPS_PROGRAM', false); @@ -222,6 +228,6 @@ * You can specify comma delimited list in the form <hostname>:<port> or <ip>:<port>. The defaults are: 127.0.0.1:3551 * See the following parameters in apcupsd.conf: NETSERVER, NISIP, NISPORT */ -define('PSI_APCUPSD_UPS_LIST', '127.0.0.1:3551'); +define('PSI_UPS_APCUPSD_LIST', '127.0.0.1:3551'); -?> \ No newline at end of file +?> Added: includes/autoloader.inc.php =================================================================== --- includes/autoloader.inc.php (rev 0) +++ includes/autoloader.inc.php 2009-03-30 14:08:04 UTC (rev 172) @@ -0,0 +1,41 @@ +<?php +/** + * class autoloader + * + * PHP version 5 + * + * @category PHP + * @package PSI + * @author Michael Cramer <Big...@us...> + * @copyright 2009 phpSysInfo + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @version SVN: $Id$ + * @link http://phpsysinfo.sourceforge.net + */ + /** + * automatic loading classes when using them + * + * @param string $class_name name of the class which must be loaded + * + * @return void + */ +function __autoload($class_name) +{ + $class_name = strtolower(str_replace('-', '', $class_name)); + $dirs = array ('/plugins/'.$class_name.'/', '/includes/', '/includes/interface/', '/includes/os/', '/includes/mb/', '/includes/plugin/', '/includes/xml/', '/includes/web/', '/includes/error/', '/includes/js/', '/includes/output/'); + $found = false; + foreach ($dirs as $dir) { + if (file_exists(APP_ROOT.$dir.'class.'.$class_name.'.inc.php')) { + include_once APP_ROOT.$dir.'class.'.$class_name.'.inc.php'; + $found = true; + } + } + if (!$found) { + $error = Error::singleton(); + $error->addError("_autoload(\"".$class_name."\")", "autoloading of class file (class.".$class_name.".inc.php) failed!"); + echo $error->errorsAsHTML(); + die (); + } +} + +?> Property changes on: includes/autoloader.inc.php ___________________________________________________________________ Added: svn:mime-type + text/x-php Added: svn:keywords + Id Added: svn:mergeinfo + Added: svn:eol-style + LF Copied: includes/class.CommonFunctions.inc.php (from rev 155, includes/common_functions.php) =================================================================== --- includes/class.CommonFunctions.inc.php (rev 0) +++ includes/class.CommonFunctions.inc.php 2009-03-30 14:08:04 UTC (rev 172) @@ -0,0 +1,306 @@ +<?php +/** + * common Functions class + * + * PHP version 5 + * + * @category PHP + * @package PSI + * @author Michael Cramer <Big...@us...> + * @copyright 2009 phpSysInfo + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @version SVN: $Id$ + * @link http://phpsysinfo.sourceforge.net + */ + /** + * class with common functions used in all places + * + * @category PHP + * @package PSI + * @author Michael Cramer <Big...@us...> + * @copyright 2009 phpSysInfo + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @version Release: 3.0 + * @link http://phpsysinfo.sourceforge.net + */ +class CommonFunctions +{ + + const PSI_VERSION = '3.0-rc6'; + + private static $_error; + + /** + * init the error object + */ + function __construct() + { + $this->_error = Error::singleton(); + } + + /** + * Find a system program, do also path checking when not running on WINNT + * on WINNT we simply return the name with the exe extension to the program name + * + * @param string $strProgram name of the program + * + * @return string complete path and name of the program + */ + private static function _findProgram($strProgram) + { + $arrPath = array ('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin'); + if (PSI_ADD_PATHS !== false) { + $addpaths = explode(',', PSI_ADD_PATHS); + $arrPath = array_merge($arrPath, $addpaths); + } + if (PHP_OS != 'WINNT') { + foreach ($arrPath as $strPath) { + $strProgrammpath = $strPath."/".$strProgram; + if (is_executable($strProgrammpath)) { + return $strProgrammpath; + } + } + } else { + return $strProgram.'.exe'; + } + } + + /** + * 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'); + * + * @param string $strProgramname name of the program + * @param string $strArgs arguments to the program + * @param string &$strBuffer output of the command + * @param boolean $booErrorRep en- or disables the reporting of errors which should be logged + * + * @return boolean command successfull or not + */ + public static function executeProgram($strProgramname, $strArgs, & $strBuffer, $booErrorRep = true) + { + $strBuffer = ''; + $strError = ''; + $pipes = array (); + $strProgram = $this->_findProgram($strProgramname); + if (!$strProgram) { + if ($booErrorRep) { + $this->_error->addError('find_program('.$strProgramname.')', 'program not found on the machine'); + } + return false; + } + // see if we've gotten a |, if we have we need to do path checking on the cmd + if ($strArgs) { + $arrArgs = split(' ', $strArgs); + for ($i = 0; $i < count($arrArgs); $i++) { + if ($arrArgs[$i] == '|') { + $strCmd = $arrArgs[$i+1]; + $strNewcmd = $this->_findProgram($strCmd); + $strArgs = ereg_replace("\| ".$strCmd, "| ".$strNewcmd, $strArgs); + } + } + } + $descriptorspec = array ( + 0=> array ("pipe", "r"), // stdin is a pipe that the child will read from + 1=> array ("pipe", "w"), // stdout is a pipe that the child will write to + 2=> array ("pipe", "w") // stderr is a pipe that the child will write to + ); + $process = proc_open($strProgram." ".$strArgs, $descriptorspec, $pipes); + if (is_resource($process)) { + $strBuffer .= timeout_fgets($pipes, $strBuffer, $strError); + $return_value = proc_close($process); + } + $strError = trim($strError); + $strBuffer = trim($strBuffer); + if (! empty($strError) && $return_value <> 0) { + if ($booErrorRep) { + $this->_error->addError($strProgram, $strError."\nReturn value: ".$return_value); + } + return false; + } + if (! empty($strError)) { + if ($booErrorRep) { + $this->_error->addError($strProgram, $strError."\nReturn value: ".$return_value); + } + return true; + } + return true; + } + + /** + * find duplicate entrys and count them, show this value befor the duplicated name + * + * @param array $arrInput source array that should be checked for duplicated names + * + * @return array array with duplicate entries removed and a appended value, how many times the entry has appeared + */ + public static function finddups($arrInput) + { + $arrResult = array (); + if (is_array($arrInput)) { + $arrBuffer = array_count_values($arrInput); + foreach ($arrBuffer as $strKey=>$intValue) { + if ($intValue > 1) { + $arrResult[] = "(".$intValue."x) ".$strKey; + } else { + $arrResult[] = $strKey; + } + } + } + return $arrResult; + } + + /** + * read a file and return the content as a string + * + * @param string $strFileName name of the file which should be read + * @param string &$strRet content of the file (reference) + * @param integer $intLines control how many lines should be read + * @param integer $intBytes control how many bytes of each line should be read + * @param boolean $booErrorRep en- or disables the reporting of errors which should be logged + * + * @return boolean command successfull or not + */ + public static function rfts($strFileName, & $strRet, $intLines = 0, $intBytes = 4096, $booErrorRep = true) + { + $strFile = ""; + $intCurLine = 1; + if (file_exists($strFileName)) { + if ($fd = fopen($strFileName, 'r')) { + while (!feof($fd)) { + $strFile .= fgets($fd, $intBytes); + if ($intLines <= $intCurLine && $intLines != 0) { + break; + } else { + $intCurLine++; + } + } + fclose($fd); + $strRet = $strFile; + } else { + if ($booErrorRep) { + $this->_error->addError('fopen('.$strFileName.')', 'file can not read by phpsysinfo'); + } + return false; + } + } else { + if ($booErrorRep) { + $this->_error->addError('file_exists('.$strFileName.')', 'the file does not exist on your machine'); + } + return false; + } + return true; + } + + /** + * reads a directory and return the name of the files and directorys in it + * + * @param string $strPath path of the directory which should be read + * @param boolean $booErrorRep en- or disables the reporting of errors which should be logged + * + * @return array content of the directory excluding . and .. + */ + public static function gdc($strPath, $booErrorRep = true) + { + $arrDirectoryContent = array (); + if (is_dir($strPath)) { + if ($handle = opendir($strPath)) { + while (($strFile = readdir($handle)) !== false) { + if ($strFile != "." && $strFile != "..") { + $arrDirectoryContent[] = $strFile; + } + } + closedir($handle); + } else { + if ($booErrorRep) { + $this->_error->addError('opendir('.$strPath.')', 'directory can not be read by phpsysinfo'); + } + } + } else { + if ($booErrorRep) { + $this->_error->addError('is_dir('.$strPath.')', 'directory does not exist on your machine'); + } + } + return $arrDirectoryContent; + } + + /** + * Check for needed php extensions + * + * We need that extensions for almost everything + * This function will return a hard coded + * XML string (with headers) if the SimpleXML extension isn't loaded. + * Then it will terminate the script. + * See bug #1787137 + * + * @return void + */ + public static function checkForExtensions() + { + $extensions = array ('simplexml', 'pcre', 'xml', 'xsl', 'mbstring'); + $text = ""; + $error = false; + $text .= "<?xml version='1.0'>\n"; + $text .= "<phpsysinfo>\n"; + $text .= " <Error>\n"; + foreach ($extensions as $extension) { + if (!extension_loaded($extension)) { + $text .= " <Function>checkForExtensions</Function>\n"; + $text .= " <Message>phpSysInfo requires the ".$extension." extension to php in order to work properly.</Message>\n"; + $error = true; + } + } + $text .= " </Error>\n"; + $text .= "</phpsysinfo>"; + if ($error) { + header("Content-Type: text/xml\n\n"); + echo $text; + die (); + } + } + + /** + * get the content of stdout/stderr with the option to set a timeout for reading + * + * @param array $pipes array of file pointers for stdin, stdout, stderr (proc_open()) + * @param string &$out target string for the output message (reference) + * @param string &$err target string for the error message (reference) + * @param integer $sek timeout value in seconds + * + * @return void + */ + private static function _timeoutfgets($pipes, & $out, & $err, $sek = 2) + { + // fill output string + $time = $sek; + while ($time >= 0) { + $read = array ($pipes[1]); + while (!feof($read[0]) && ($n = stream_select($read, $w = null, $e = null, $time)) !== false && $n > 0 && strlen($c = fgetc($read[0])) > 0) { + $out .= $c; + } + --$time; + } + // fill error string + $time = $sek; + while ($time >= 0) { + $read = array ($pipes[2]); + while (!feof($read[0]) && ($n = stream_select($read, $w = null, $e = null, $time)) !== false && $n > 0 && strlen($c = fgetc($read[0])) > 0) { + $err .= $c; + } + --$time; + } + } + + /** + * get all configured plugins from config.php (file must be included before calling this function) + * + * @return array + */ + public static function getPlugins() + { + $plugins = preg_split("/[\s]?,[\s]?/", PSI_PLUGINS, -1, PREG_SPLIT_NO_EMPTY); + return $plugins; + } +} +?> Property changes on: includes/class.CommonFunctions.inc.php ___________________________________________________________________ Added: svn:mime-type + text/x-php Added: svn:keywords + Id Added: svn:mergeinfo + Added: svn:eol-style + LF Deleted: includes/class.Error.inc.php =================================================================== --- includes/class.Error.inc.php 2009-03-27 09:39:51 UTC (rev 171) +++ includes/class.Error.inc.php 2009-03-30 14:08:04 UTC (rev 172) @@ -1,265 +0,0 @@ -<?php -/** - * Error class - * - * @license http://opensource.org/licenses/gpl-2.0.php - * @package psi - */ - -/** - * class for the error handling through phpsysinfo - * - * @author Michael Cramer (Big...@us...) - * @version $Id$ - * @copyright Copyright (C) 2008 by phpSysInfo - * @package psi - */ -class Error -{ - /** - * holds the instance of this class - * - * @access private - * @static - * @var object - */ - private static $instance; - - /** - * holds the error messages - * - * @access private - * @var array - */ - private $arrErrorList = array(); - - /** - * current number ob errors - * - * @access private - * @var integer - */ - private $errors = 0; - - /** - * initalize some used vars - * - * @access private - */ - private function __construct() - { - $this->errors = 0; - $this->arrErrorList = array(); - } - - /** - * Singleton function - * - * @access public - * @return Error instance of the class - */ - public static function singleton() - { - if (!isset(self::$instance)) { - $c = __CLASS__; - self::$instance = new $c; - } - return self::$instance; - } - - /** - * triggers an error when somebody tries to clone the object - * - * @access public - */ - public function __clone() - { - trigger_error("Can't be cloned", E_USER_ERROR); - } - - /** - * adds an error to the internal list - * - * @access public - * @param string Command, which cause the Error - * @param string additional Message, to describe the Error - */ - public function addError($strCommand, $strMessage) - { - $index = count($this->arrErrorList) + 1; - $this->arrErrorList[$index]['command'] = $strCommand; - $this->arrErrorList[$index]['message'] = $this->trace($strMessage); - $this->errors++; - } - - /** - * adds a waraning to the internal list - * - * @access public - * @param string Warning message to display - */ - public function addWarning($strMessage) - { - $index = count($this->arrErrorList) + 1; - $this->arrErrorList[$index]['command'] = "WARN"; - $this->arrErrorList[$index]['message'] = $strMessage; - } - - /** - * converts the internal error and warning list in a html table - * - * @access public - * @return string contains a HTML table which can be used to echo out the errors - */ - public function ErrorsAsHTML() - { - $strHTMLString = ""; - $strWARNString = ""; - $strHTMLhead = "<table width=\"100%\" border=\"0\">\n" . "\t<tr>\n" . "\t\t<td><font size=\"-1\"><b>Command</b></font></td>\n" . "\t\t<td><font size=\"-1\"><b>Message</b></font></td>\n" . "\t</tr>\n"; - $strHTMLfoot = "</table>\n"; - if ($this->errors > 0) { - foreach ($this->arrErrorList as $arrLine) { - if ($arrLine['command'] == "WARN") { - $strWARNString .= "<font size=\"-1\"><b>WARNING: " . str_replace("\n", "<br/>", htmlspecialchars($arrLine['message'])) . "</b></font><br/>\n"; - } else { - $strHTMLString .= "\t<tr>\n" . "\t\t<td><font size=\"-1\">" . htmlspecialchars($arrLine['command']) . "</font></td>\n" . "\t\t<td><font size=\"-1\">" . str_replace("\n", "<br/>", $arrLine['message']) . "</font></td>\n" . "\t</tr>\n"; - } - } - } - if (!empty($strHTMLString)) { - $strHTMLString = $strWARNString . $strHTMLhead . $strHTMLString . $strHTMLfoot; - } else { - $strHTMLString = $strWARNString; - } - return $strHTMLString; - } - - /** - * converts the internal error and warning list to a XML file - * - * @access public - * @return XML data containing the errors - * - */ - public function ErrorsAsXML() - { - $xml = simplexml_load_string("<?xml version='1.0'?>\n<phpsysinfo></phpsysinfo>"); - $generation = $xml->addChild('Generation'); - $generation->addAttribute('version', PSI_VERSION); - $generation->addAttribute('timestamp', time()); - if ($this->errors > 0) { - foreach ($this->arrErrorList as $arrLine) { - $error = $xml->addChild('Error'); - $error->addChild('Function', $arrLine['command']); - $error->addChild('Message', $arrLine['message']); - } - } - return $xml->asXML(); - } - - /** - * add the errors to an existing xml document - * - * @access public - * @param SimpleXMLObject reference existing simplexmlobject to which errors are added if present - * - */ - public function ErrorsAddToXML(&$xml) - { - if ($this->errors > 0) { - $xmlerr = $xml->addChild('Errors'); - foreach ($this->arrErrorList as $arrLine) { - $error = $xmlerr->addChild('Error'); - $error->addChild('Function', utf8_encode(trim(htmlspecialchars($arrLine['command'])))); - $error->addChild('Message', utf8_encode(trim(htmlspecialchars($arrLine['message'])))); - } - } - } - - /** - * check if errors exists - * - * @access public - * @return boolean true if are errors logged, false if not - * - */ - public function ErrorsExist() - { - if ($this->errors > 0) { - return true; - } else { - return false; - } - } - - /** - * generate a function backtrace for error diagnostic, function is genearally based on code submitted in the php reference page - * - * @param string additional message to display - * @return string formatted string of the backtrace - */ - private function trace($strMessage) - { - $arrTrace = array_reverse(debug_backtrace()); - $strFunc = ''; - $strBacktrace = htmlspecialchars($strMessage) . "\n\n"; - foreach ($arrTrace as $val) { - // avoid the last line, which says the error is from the error class - if ($val == $arrTrace[count($arrTrace) - 1]) { - break; - } - $strBacktrace .= str_replace(APP_ROOT, ".", $val['file']) . ' on line ' . $val['line']; - if ($strFunc) { - $strBacktrace .= ' in function ' . $strFunc; - } - if ($val['function'] == 'include' || $val['function'] == 'require' || $val['function'] == 'include_once' || $val['function'] == 'require_once') { - $strFunc = ''; - } else { - $strFunc = $val['function'] . '('; - if (isset($val['args'][0])) { - $strFunc .= ' '; - $strComma = ''; - foreach ($val['args'] as $val) { - $strFunc .= $strComma . $this->print_var($val); - $strComma = ', '; - } - $strFunc .= ' '; - } - $strFunc .= ')'; - } - $strBacktrace .= "\n"; - } - return $strBacktrace; - } - - /** - * convert some special vars into better readable output - * - * @param mixed value, which should be formatted - * @return string formatted string - */ - private function print_var($var) - { - if (is_string($var)) { - return('"' . str_replace(array("\x00", "\x0a", "\x0d", "\x1a", "\x09"), array('\0', '\n', '\r', '\Z', '\t'), $var) . '"'); - } elseif (is_bool($var)) { - if ($var) { - return('true'); - } else { - return('false'); - } - } elseif (is_array($var)) { - $strResult = 'array( '; - $strComma = ''; - foreach ($var as $key => $val) { - $strResult .= $strComma . $this->print_var($key) . ' => ' . $this->print_var($val); - $strComma = ', '; - } - $strResult .= ' )'; - return($strResult); - } - // anything else, just let php try to print it - return(var_export($var, true)); - } -} -?> \ No newline at end of file Copied: includes/class.Parser.inc.php (from rev 150, includes/os/class.parser.inc.php) =================================================================== --- includes/class.Parser.inc.php (rev 0) +++ includes/class.Parser.inc.php 2009-03-30 14:08:04 UTC (rev 172) @@ -0,0 +1,169 @@ +<?php +/** + * parser Class + * + * PHP version 5 + * + * @category PHP + * @package PSI + * @author Michael Cramer <Big...@us...> + * @copyright 2009 phpSysInfo + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @version SVN: $Id$ + * @link http://phpsysinfo.sourceforge.net + */ + /** + * parser class with common used parsing metods + * + * @category PHP + * @package PSI + * @author Michael Cramer <Big...@us...> + * @copyright 2009 phpSysInfo + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @version Release: 3.0 + * @link http://phpsysinfo.sourceforge.net + */ +class Parser +{ + /** + * parsing the output of lspci command + * + * @return mixed + */ + public static function lspci() + { + $arrResults = array (); + $strBuf = ""; + if (execute_program("lspci", "", $strBuf, PSI_DEBUG)) { + $arrLines = split("\n", $strBuf); + foreach ($arrLines as $strLine) { + list ($strAddr, $strName) = explode(' ', trim($strLine), 2); + $strName = preg_replace('/\(.*\)/', '', $strName); + $arrResults[] = $strName; + } + } + if ( empty($arrResults)) { + return false; + } else { + asort($arrResults); + return $arrResults; + } + } + + /** + * parsing the output of pciconf command + * + * @return mixed + */ + public static function pciconf() + { + $arrResults = array (); + $intS = 0; + $strBuf = ""; + if (execute_program("pciconf", "-lv", $strBuf, PSI_DEBUG)) { + $arrLines = explode("\n", $strBuf); + foreach ($arrLines as $strLine) { + if (preg_match("/(.*) = '(.*)'/", $strLine, $arrParts)) { + if (trim($arrParts[1]) == "vendor") { + $arrResults[$intS] = trim($arrParts[2]); + } elseif (trim($arrParts[1]) == "device") { + $arrResults[$intS] .= " - ".trim($arrParts[2]); + $intS++; + } + } + } + } + if ( empty($arrResults)) { + return false; + } else { + asort($arrResults); + return $arrResults; + } + } + + /** + * parsing the output of df command + * + * @param string $df_param additional parameter for df command + * + * @return array + */ + public static function df($df_param = "") + { + $results = array (); + $j = 0; + $df = ""; + $df2 = ""; + $mount = ""; + if (execute_program('df', '-k '.$df_param, $df, PSI_DEBUG) || ! empty($df)) { + $df = preg_split("/\n/", $df, -1, PREG_SPLIT_NO_EMPTY); + natsort($df); + if (PSI_SHOW_INODES) { + if (execute_program('df', '-i '.$df_param, $df2, PSI_DEBUG) || ! empty($df)) { + $df2 = preg_split("/\n/", $df2, -1, PREG_SPLIT_NO_EMPTY); + // Store inode use% in an associative array (df_inodes) for later use + foreach ($df2 as $df2_line) { + if (preg_match("/^(\S+).*\s([0-9]+)%/", $df2_line, $inode_buf)) { + $df_inodes[$inode_buf[1]] = $inode_buf[2]; + } + } + unset ($df2, $df2_line, $inode_buf); + } + } + if (execute_program('mount', '', $mount, PSI_DEBUG)) { + $mount = preg_split("/\n/", $mount, -1, PREG_SPLIT_NO_EMPTY); + foreach ($mount as $mount_line) { + if (preg_match("/\S+ on (\S+) type (.*) \((.*)\)/", $mount_line, $mount_buf)) { + $mount_parm[$mount_buf[1]]['fstype'] = $mount_buf[2]; + $mount_parm[$mount_buf[1]]['options'] = $mount_buf[3]; + } elseif (preg_match("/\S+ (.*) on (\S+) \((.*)\)/", $mount_line, $mount_buf)) { + $mount_parm[$mount_buf[2]]['fstype'] = $mount_buf[1]; + $mount_parm[$mount_buf[2]]['options'] = $mount_buf[3]; + } elseif (preg_match("/\S+ on (\S+) \((\S+)(,\s(.*))?\)/", $mount_line, $mount_buf)) { + $mount_parm[$mount_buf[1]]['fstype'] = $mount_buf[2]; + $mount_parm[$mount_buf[1]]['options'] = isset ($mount_buf[4])?$mount_buf[4]:''; + } + } + unset ($mount, $mount_line, $mount_buf); + foreach ($df as $df_line) { + $df_buf1 = preg_split("/(\%\s)/", $df_line, 2); + if (count($df_buf1) != 2) { + continue ; + } + preg_match("/(.*)(\s+)(([0-9]+)(\s+)([0-9]+)(\s+)([0-9]+)(\s+)([0-9]+)$)/", $df_buf1[0], $df_buf2); + $df_buf = array ($df_buf2[1], $df_buf2[4], $df_buf2[6], $df_buf2[8], $df_buf2[10], $df_buf1[1]); + if (count($df_buf) == 6) { + $df_buf[5] = trim($df_buf[5]); + $results[$j] = array (); + $results[$j]['disk'] = trim($df_buf[0]); + $results[$j]['size'] = $df_buf[1]*1024; + $results[$j]['used'] = $df_buf[2]*1024; + $results[$j]['free'] = $df_buf[3]*1024; + if ($results[$j]['used'] < 0) { + $results[$j]['size'] = $results[$j]['free']*1024; + $results[$j]['free'] = 0; + $results[$j]['used'] = $results[$j]['size']*1024; + } + if ($results[$j]['size'] == 0) { + continue ; + } + $results[$j]['percent'] = round(($results[$j]['used']*100)/$results[$j]['size']); + $results[$j]['mount'] = $df_buf[5]; + $results[$j]['fstype'] = $mount_parm[$df_buf[5]]['fstype']; + $results[$j]['options'] = $mount_parm[$df_buf[5]]['options']; + if (PSI_SHOW_INODES && isset ($df_inodes[$results[$j]['disk']])) { + $results[$j]['inodes'] = $df_inodes[$results[$j]['disk']]; + } + $j++; + } + } + return $results; + } else { + return array (); + } + } else { + return array (); + } + } +} +?> Property changes on: includes/class.Parser.inc.php ___________________________________________________________________ Added: svn:mime-type + text/x-php Added: svn:keywords + Id Added: svn:mergeinfo + Added: svn:eol-style + LF Deleted: includes/class.psi_plugin.inc.php =================================================================== --- includes/class.psi_plugin.inc.php 2009-03-27 09:39:51 UTC (rev 171) +++ includes/class.psi_plugin.inc.php 2009-03-30 14:08:04 UTC (rev 172) @@ -1,92 +0,0 @@ -<?php -/** - * Basic Plugin Functions - * - * @license http://opensource.org/licenses/gpl-2.0.php - * @package psi_plugin - */ - -/** - * basic functions to get a plugin working in phpSysinfo - * every plugin must implement this abstract class to be a valid plugin, main tasks - * of this class are reading the configuration file and check for the required files - * (*.js, lang/en.xml) to get everything working, if we have errors here we log them - * to our global error object - * - * @author Michael Cramer (Big...@us...) - * @version $Id$ - * @copyright Copyright (C) 2008 by phpSysInfo - * @package psi_plugin - * @abstract - */ -abstract class psi_plugin implements psi_plugin_interface { - /** - * name of the plugin (classname) - * @var string - */ - private $plugin_name = ""; - - /** - * full directory path of the plugin - * @var string - */ - private $plugin_base = ""; - - /** - * global object for error handling - * @var Error - */ - protected $global_error = ""; - - /* - * build the global Error object, read the configuration and check if all files are available - * for a minimalistic function of the plugin - */ - public function __construct($plugin_name = "") { - $this->global_error = Error::Singleton(); - if (trim($plugin_name) != "") { - $this->plugin_name = $plugin_name; - $this->plugin_base = APP_ROOT . "/plugins/" . $this->plugin_name . "/"; - $this->checkfiles(); - $this->getconfig(); - } else { - $this->global_error->addError("__construct()", "Parent constructor called without Plugin-Name!"); - } - } - - /** - * read the plugin configuration file, if we have one in the plugin directory - */ - private function getconfig() { - $filename = $this->plugin_base . $this->plugin_name . ".config.php"; - if (file_exists($filename)) { - if(is_readable($filename)) { - require_once($filename); - } else { - $this->global_error->addError("getconfig()", "Config-File for plugin " . $this->plugin_name . " exist but can't be read!"); - } - } - } - - /* - * check if there is a default translation file availabe and also the required js file for - * appending the content of the plugin to the main webpage - */ - private function checkfiles() { - if (!file_exists($this->plugin_base . "js/" . $this->plugin_name . ".js")) { - $this->global_error->addError("file_exists(" . $this->plugin_base . "js/" . $this->plugin_name . ".js)", "JS-File for Plugin '" . $this->plugin_name . "' is missing!"); - } else { - if(!is_readable($this->plugin_base . "js/" . $this->plugin_name . ".js")) { - $this->global_error->addError("is_readable(" . $this->plugin_base . "js/" . $this->plugin_name . ".js)", "JS-File for Plugin '" . $this->plugin_name . "' is not readable but present!"); - } - } - if (!file_exists($this->plugin_base . "lang/en.xml")) { - $this->global_error->addError("file_exists(" . $this->plugin_base . "lang/en.xml)", "At least an english translation must exist for the plugin!"); - } else { - if(!is_readable($this->plugin_base . "lang/en.xml")) { - $this->global_error->addError("is_readable(" . $this->plugin_base . "js/" . $this->plugin_name . ".js)", "The english translation can't be read but is present!"); - } - } - } -} -?> Deleted: includes/class.xml.inc.php =================================================================== --- includes/class.xml.inc.php 2009-03-27 09:39:51 UTC (rev 171) +++ includes/class.xml.inc.php 2009-03-30 14:08:04 UTC (rev 172) @@ -1,502 +0,0 @@ -<?php -/** - * XML Generation class - * - * @license http://opensource.org/licenses/gpl-2.0.php - * @package psi_xml - */ - -/** - * class for generation of the xml - * - * @author Michael Cramer (Big...@us...) - * @version $Id$ - * @copyright Copyright (C) 2008 by phpSysInfo - * @package psi_xml - */ -class xml { - /** - * Sysinfo object where the information retrieval methods are included - * - * @access private - * @var Sysinfo - */ - private $sysinfo; - - /** - * xml object with the xml content - * - * @access private - * @var SimpleXMLElement - */ - private $xml; - - /** - * object for error handling - * - * @access private - * @var Error - */ - private $errors; - - /** - * array with all enabled plugins (name) - * - * @access private - * @var array - */ - private $plugins; - - /** - * generate a xml for a plugin or for the main app - * - * @access private - * @var boolean - */ - private $plugin_request = false; - - /** - * generate the entire xml with all plugins or only a part of the xml (main or plugin) - * - * @access private - * @var boolean - */ - private $complete_request = false; - - /** - * doing some initial tasks - * - generate the xml structure with the right header elements - * - get the error object for error output - * - get a instance of the sysinfo object - * - * @param string name of the plugin - * @param boolean generate xml with all plugins or not - */ - public function __construct($pluginname = "", $complete = false) { - ($pluginname == "") ? $this->plugin_request = false : $this->plugin_request = true; - ($complete) ? $this->complete_request = true : $this->complete_request = false; - $this->errors = Error::singleton(); - if(!$this->plugin_request || $this->complete_request) { - $os = PHP_OS; - $this->sysinfo = new $os(); - } - $this->xmlbody($pluginname); - } - - /** - * generate common information - * - * @access private - */ - private function buildVitals() { - $strLoadavg = ''; - $arrBuf = $this->sysinfo->loadavg(PSI_LOAD_BAR); - foreach($arrBuf['avg'] as $strValue) { - $strLoadavg .= $strValue . ' '; - } - $vitals = $this->xml->addChild('Vitals'); - if(PSI_USE_VHOST === true) { - $vitals->addChild('Hostname', $this->toUTF8(htmlspecialchars($this->sysinfo->vhostname()))); - $vitals->addChild('IPAddr', $this->sysinfo->vip_addr()); - } else { - $vitals->addChild('Hostname', $this->toUTF8(htmlspecialchars($this->sysinfo->chostname()))); - $vitals->addChild('IPAddr', $this->sysinfo->ip_addr()); - } - $vitals->addChild('Kernel', $this->toUTF8(htmlspecialchars($this->sysinfo->kernel()))); - $vitals->addChild('Distro', $this->toUTF8(htmlspecialchars($this->sysinfo->distro()))); - $vitals->addChild('Distroicon', $this->toUTF8(htmlspecialchars($this->sysinfo->distroicon()))); - $vitals->addChild('Uptime', $this->sysinfo->uptime()); - $vitals->addChild('Users', $this->sysinfo->users()); - $vitals->addChild('LoadAvg', $strLoadavg); - if(isset($arrBuf['cpupercent'])) { - $vitals->addChild('CPULoad', round($arrBuf['cpupercent'], 2)); - } - } - - /** - * generate the network information - * - * @access private - */ - private function buildNetwork() { - $arrNet = $this->sysinfo->network(); - $network = $this->xml->addChild('Network'); - $hideDevices = preg_split("/[\s]?,[\s]?/", PSI_HIDE_NETWORK_INTERFACE, -1, PREG_SPLIT_NO_EMPTY); - foreach($arrNet as $strDev => $arrStats) { - if(!in_array(trim($strDev), $hideDevices)) { - $device = $network->addChild('NetDevice'); - $device->addChild('Name', $this->toUTF8(htmlspecialchars($strDev))); - $device->addChild('RxBytes', $arrStats['rx_bytes']); - $device->addChild('TxBytes', $arrStats['tx_bytes']); - $device->addChild('Err', $arrStats['errs']); - $device->addChild('Drops', $arrStats['drop']); - } - } - } - - /** - * generate the hardware information - * - * @access private - */ - private function buildHardware() { - $hardware = $this->xml->addChild('Hardware'); - $cpu = $hardware->addChild('CPU'); - $pci = $hardware->addChild('PCI'); - $ide = $hardware->addChild('IDE'); - $scsi = $hardware->addChild('SCSI'); - $usb = $hardware->addChild('USB'); - $arrSys = $this->sysinfo->cpu_info(); - $arrBuf = finddups($this->sysinfo->pci()); - if(count($arrBuf)) { - for ($i = 0, $max = sizeof($arrBuf); $i < $max; $i++) { - if ($arrBuf[$i]) { - $tmp = $pci->addChild('Device'); - $tmp->addChild('Name', $this->toUTF8($arrBuf[$i])); - } - } - } - $arrBuf = $this->sysinfo->ide(); - if(count($arrBuf)) { - foreach($arrBuf as $strKey => $arrValue) { - $tmp = $ide->addChild('Device'); - $tmp->addChild('Name', $strKey . ': ' . $this->toUTF8($arrValue['model'])); - if(isset($arrValue['capacity'])) { - $tmp->addChild('Capacity', $arrValue['capacity']); - } - } - } - $arrBuf = $this->sysinfo->scsi(); - if(count($arrBuf)) { - foreach($arrBuf as $strKey => $arrValue) { - $tmp = $scsi->addChild('Device'); - if($strKey >= '0' && $strKey <= '9') { - $tmp->addChild('Name', $this->toUTF8($arrValue['model'])); - } else { - $tmp->addChild('Name', $strKey . ': ' . $this->toUTF8($arrValue['model'])); - } - if(isset ($arrrValue['capacity'])) { - $tmp->addChild('Capacity', $arrValue['capacity']); - } - } - } - $arrBuf = finddups($this->sysinfo->usb()); - if(count($arrBuf)) { - for($i = 0, $max = sizeof($arrBuf); $i < $max; $i++) { - if(trim($arrBuf[$i]) != "") { - $tmp = $usb->addChild('Device'); - $tmp->addChild('Name', $this->toUTF8($arrBuf[$i])); - } - } - } - $cpu->addChild('Number', $arrSys['cpus']); - $cpu->addChild('Model', $this->toUTF8($arrSys['model'])); - if(isset ($arrSys['temp'])) { - $cpu->addChild('Cputemp', $arrSys['temp']); - } - $cpu->addChild('Cpuspeed', $arrSys['cpuspeed']); - if(isset ($arrSys['busspeed'])) { - $cpu->addChild('Busspeed', $arrSys['busspeed']); - } - if(isset ($arrSys['cache'])) { - $cpu->addChild('Cache', $arrSys['cache']); - } - if(isset ($arrSys['bogomips'])) { - $cpu->addChild('Bogomips', $arrSys['bogomips']); - } - } - - /** - * generate the memory information - * - * @access private - */ - private function buildMemory() { - $arrMem = $this->sysinfo->memory(); - $i = 0; - $memory = $this->xml->addChild('Memory'); - $memory->addChild('Free', $arrMem['ram']['free']); - $memory->addChild('Used', $arrMem['ram']['used']); - $memory->addChild('Total', $arrMem['ram']['total']); - $memory->addChild('Percent', $arrMem['ram']['percent']); - if (isset ($arrMem['ram']['app'])) { - $memory->addChild('App', $arrMem['ram']['app']); - $memory->addChild('AppPercent', $arrMem['ram']['app_percent']); - $memory->addChild('Buffers', $arrMem['ram']['buffers']); - $memory->addChild('BuffersPercent', $arrMem['ram']['buffers_percent']); - $memory->addChild('Cached', $arrMem['ram']['cached']); - $memory->addChild('CachedPercent', $arrMem['ram']['cached_percent']); - } - $swap = $this->xml->addChild('Swap'); - $swapDev = $this->xml->addChild('Swapdevices'); - if (count($arrMem['devswap']) > 0) { - $swap->addChild('Free', $arrMem['swap']['free']); - $swap->addChild('Used', $arrMem['swap']['used']); - $swap->addChild('Total', $arrMem['swap']['total']); - $swap->addChild('Percent', $arrMem['swap']['percent']); - foreach ($arrMem['devswap'] as $arrDevice) { - $swapMount = $swapDev->addChild('Mount'); - $swapMount->addChild('MountPointID', $i++); - $swapMount->addChild('Type', 'Swap'); - $dev = $swapMount->addChild('Device'); - $dev->addChild('Name', $this->toUTF8($arrDevice['dev'])); - $swapMount->addChild('Percent', $arrDevice['percent']); - $swapMount->addChild('Free', $arrDevice['free']); - $swapMount->addChild('Used', $arrDevice['used']); - $swapMount->addChild('Size', $arrDevice['total']); - } - } - } - - /** - * generate the filesysteminformation - * - * @access private - */ - private function buildFilesystems() { - $hideMounts = array (); - $hideFstypes = array (); - $hideDisks = array (); - if(PSI_HIDE_MOUNTS != "") { - $hideMounts = explode(',', PSI_HIDE_MOUNTS); - } - if(PSI_HIDE_FS_TYPES != "") { - $hideFstypes = explode(',', PSI_HIDE_FS_TYPES); - } - if(PSI_HIDE_DISKS != "") { - $hideDisks = explode(',', PSI_HIDE_DISKS); - } - $arrFs = $this->sysinfo->filesystems(); - $fs = $this->xml->addChild('FileSystem'); - for($i = 0, $max = sizeof($arrFs); $i < $max; $i++) { - if(!in_array($arrFs[$i]['mount'], $hideMounts, true) && !in_array($arrFs[$i]['fstype'], $hideFstypes, true) && !in_array($arrFs[$i]['disk'], $hideDisks, true)) { - $mount = $fs->addChild('Mount'); - $mount->addchild('MountPointID', $i); - if(PSI_SHOW_MOUNT_POINT === true) { - $mount->addchild('MountPoint', $this->toUTF8($arrFs[$i]['mount'])); - } - $mount->addchild('Type', $arrFs[$i]['fstype']); - $dev = $mount->addchild('Device'); - $dev->addChild('Name', $this->toUTF8($arrFs[$i]['disk'])); - $mount->addchild('Percent', $arrFs[$i]['percent']); - $mount->addchild('Free', $arrFs[$i]['free']); - $mount->addchild('Used', $arrFs[$i]['used']); - $mount->addchild('Size', $arrFs[$i]['size']); - if(isset ($arrFs[$i]['options'])) { - $mount->addchild('MountOptions', $arrFs[$i]['options']); - } - if(isset ($arrFs[$i]['inodes'])) { - $mount->addchild('Inodes', $arrFs[$i]['inodes']); - } - } - } - } - - /** - * generate the motherboard information - * - * @access private - */ - private function buildMbinfo() { - $mbinfoclass = PSI_SENSOR_PROGRAM; - $mbinfo_data = new $mbinfoclass(); - $mbinfo = $this->xml->addChild('MBinfo'); - $arrBuff = $mbinfo_data->temperature(); - if (sizeof($arrBuff) > 0) { - $temp = $mbinfo->addChild('Temperature'); - foreach ($arrBuff as $arrValue) { - $item = $temp->addChild('Item'); - $item->addChild('Label', $arrValue['label']); - $item->addChild('Value', $arrValue['value']); - $item->addChild('Limit', $arrValue['limit']); - } - } - $arrBuff = $mbinfo_data->fans(); - if (sizeof($arrBuff) > 0) { - $fan = $mbinfo->addChild('Fans'); - foreach ($arrBuff as $arrValue) { - $item = $fan->addChild('Item'); - $item->addChild('Label', $this->toUTF8($arrValue['label'])); - $item->addChild('Value', $arrValue['value']); - $item->addChild('Min', $arrValue['min']); - } - } - $arrBuff = $mbinfo_data->voltage(); - if (sizeof($arrBuff) > 0) { - $volt = $mbinfo->addChild('Voltage'); - foreach ($arrBuff as $arrValue) { - $item = $volt->addChild('Item'); - $item->addChild('Label', $this->toUTF8($arrValue['label'])); - $item->addChild('Value', $arrValue['value']); - $item->addChild('Min', $arrValue['min']); - $item->addChild('Max', $arrValue['max']); - } - } - } - - /** - * generate the hddtemp information - * - * @access private - */ - private function buildHddtemp() { - $hddtemp_data = new hddtemp(); - $arrBuf = $hddtemp_data->temperature(); - $hddtemp = $this->xml->addChild('HDDTemp'); - for($i = 0, $max = sizeof($arrBuf); $i < $max; $i++) { - $item = $hddtemp->addChild('Item'); - $item->addChild('Label', $this->toUTF8($arrBuf[$i]['label'])); - $item->addChild('Value', $arrBuf[$i]['value']); - $item->addChild('Model', $this->toUTF8($arrBuf[$i]['model'])); - } - } - - /** - * generate the ups information - * - * @access private - */ - private function buildUpsinfo() { - $upsinfo_data = new upsinfo(); - $arrBuf = $upsinfo_data->info(); - if(isset($arrBuf) && !empty($arrBuf)) { - $upsinfo = $this->xml->addChild('UPSinfo'); - for($i = 0, $max = sizeof($arrBuf); $i < $max; $i++) { - $item = $upsinfo->addChild('Ups'); - $item->addChild('Name', $this->toUTF8($arrBuf[$i]['name'])); - $item->addChild('Model', $this->toUTF8($arrBuf[$i]['model'])); - $item->addChild('Mode', $arrBuf[$i]['mode']); - $item->addChild('StartTime', $arrBuf[$i]['start_time']); - $item->addChild('Status', $this->toUTF8($arrBuf[$i]['status'])); - $item->addChild('UPSTemperature', $this->toUTF8($arrBuf[$i]['temperature'])); - $item->addChild('OutagesCount', $arrBuf[$i]['outages_count']); - $item->addChild('LastOutage', $this->toUTF8($arrBuf[$i]['last_outage'])); - $item->addChild('LastOutageFinish', $this->toUTF8($arrBuf[$i]['last_outage_finish'])); - $item->addChild('LineVoltage', $arrBuf[$i]['line_voltage']); - $item->addChild('LoadPercent', $arrBuf[$i]['load_percent']); - $item->addChild('BatteryVoltage', $arrBuf[$i]['battery_voltage']); - $item->addChild('BatteryChargePercent', $arrBuf[$i]['battery_charge_percent']); - $item->addChild('TimeLeftMinutes', $arrBuf[$i]['time_left_minutes']); - } - } - } - - /** - * generate the xml document - * - * @access public - */ - public function buildXml() { - if (!$this->plugin_request || $this->complete_request) { - $this->buildVitals(); - $this->buildNetwork(); - $this->buildHardware(); - $this->buildMemory(); - $this->buildFilesystems(); - if(PSI_MBINFO) { - $this->buildMbinfo(); - } - if(PSI_HDDTEMP) { - $this->buildHddtemp(); - } - if(PSI_UPSINFO) { - $this->buildUpsinfo(); - } - } - $this->buildPlugins(); - $this->errors->ErrorsAddToXML($this->xml); - } - - /** - * print the xml content as xml document with the correct headers for webservers - * - * @access public - */ - public function printXml() { - header("Cache-Control: no-cache, must-revalidate\n"); - header("Content-Type: text/xml\n\n"); - echo $this->xml->asXML(); - } - - /** - * get the xml content as string - * - * @access public - * @return string - */ - public function getXml() { - return $this->xml->asXML(); - } - - /** - * include xml-trees of the plugins to the main xml - * - * @access private - */ - private function buildPlugins() { - $pluginroot = $this->xml->addChild("Plugins"); - if ($this->plugin_request || $this->complete_request) { - if (defined('PSI_PLUGINS')) { - foreach ($this->plugins as $plugin) { - $object = new $plugin (); - $object->execute(); - $this->combinexml($pluginroot, $object->xml()); - } - } - } - } - - /** - * append a xml-tree to another xml-tree - * - * @access private - * @param SimpleXMLElement parent to which should be appended - * @param SimpleXMLElement child that should be appended - */ - private function combinexml(SimpleXMLElement $parent, SimpleXMLElement $new_child) { - $node1 = dom_import_simplexml($parent); - $dom_sxe = dom_import_simplexml($new_child); - $node2 = $node1->ownerDocument->importNode($dom_sxe, true); - $node1->appendChild($node2); - } - - /** - * convert a string into an UTF-8 string - * - * @access private - * @param string string to convert - * @return string UTF-8 string - */ - private function toUTF8($str) { - return htmlspecialchars(mb_detect_encoding($str) == 'UTF-8' ? trim($str) : trim(mb_convert_encoding($str, 'UTF-8'))); - } - - /** - * build the xml structure where the content can be inserted - * - * @access private - * @param string name of the plugin - */ - private function xmlbody($pluginname) { - $this->xml = simplexml_load_string("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpsysinfo xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"phpsysinfo.xsd\"></phpsysinfo>"); - $generation = $this->xml->addChild('Generation'); - $generation->addAttribute('version', PSI_VERSION); - $generation->addAttribute('timestamp', time()); - $options = $this->xml->addChild('Options'); - $options->addChild('tempFormat', defined('PSI_TEMP_FORMAT') ? PSI_TEMP_FORMAT : 'c'); - $options->addChild('byteFormat', defined('PSI_BYTE_FORMAT') ? PSI_BYTE_FORMAT : 'auto_binary'); - $options->addChild('refresh', defined('PSI_REFRESH') ? PSI_REFRESH : 'false'); - $options->addChild('showPickListTemplate', defined('PSI_SHOW_PICKLIST_TEMPLATE') ? PSI_SHOW_PICKLIST_TEMPLATE : 'false'); - $options->addChild('showPickListLang', defined('PSI_SHOW_PICKLIST_LANG') ? PSI_SHOW_PICKLIST_LANG : 'false'); - $plug = $options->addChild('Used_Plugins'); - if((!$this->plugin_request || $this->complete_request) && PSI_PLUGINS !== false) { - $this->plugins = preg_split("/[\s]?,[\s]?/", PSI_PLUGINS, -1, PREG_SPLIT_NO_EMPTY); - foreach($this->plugins as $plugin) { - $plug->addChild('Plugin', $plugin); - } - } else { - $this->plugins = array($pluginname); - } - } -} -?> Deleted: includes/common_functions.php =================================================================== --- includes/common_functions.php 2009-03-27 09:39:51 UTC (rev 171) +++ includes/common_functions.php 2009-03-30 14:08:04 UTC (rev 172) @@ -1,279 +0,0 @@ -<?php -/** - * common Functions - * - * @license http://opensource.org/licenses/gpl-2.0.php - * @author Michael Cramer (Big...@us...) - * @version $Id$ - * @copyright Copyright (C) 2008 by phpSysInfo - * @package psi - */ - -/** - * Version number - * @var string - */ -define('PSI_VERSION', '3.0-rc6'); - -/** - * Find a system program, do also path checking when not running on WINNT - * on WINNT we simply return the name with the exe extension to the program name - * - * @param string name of the program - * @return string complete path and name of the program - */ -function find_program($strProgram) { - $arrPath = array ( '/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin' ); - if (PSI_ADD_PATHS !== false) { - $addpaths = explode(',', PSI_ADD_PATHS); - $arrPath = array_merge($arrPath, $addpaths); - } - if (PHP_OS != 'WINNT') { - foreach ($arrPath as $strPath) { - $strProgrammpath = $strPath . "/" . $strProgram; - if (is_executable($strProgrammpath)) { - return $strProgrammpath; - } - } - } else { - return $strProgram . '.exe'; - } -} - -/** - * 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'); - * - * @param string name of the program - * @param string arguments to the program - * @param string output of the command - * @param boolean en- or disables the reporting of errors which should be logged - * @return boolean command successfull or not - */ -function execute_program($strProgramname, $strArgs = '', &$strBuffer, $booErrorRep = true) { - $error = Error :: singleton(); - $strBuffer = ''; - $strError = ''; - $pipes = array(); - $strProgram = find_program($strProgramname); - if (!$strProgram) { - if ($booErrorRep) { - $error->addError('find_program(' . $strProgramname . ')', 'program not found on the machine'); - } - return false; - } - // see if we've gotten a |, if we have we need to do path checking on the cmd - if ($strArgs) { - $arrArgs = split(' ', $strArgs); - for ($i = 0; $i < count($arrArgs); $i++) { - if ($arrArgs[$i] == '|') { - $strCmd = $arrArgs[$i +1]; - $strNewcmd = find_program($strCmd); - $strArgs = ereg_replace("\| " . $strCmd, "| " . $strNewcmd, $strArgs); - } - } - } - $descriptorspec = array ( - 0 => array ( "pipe", "r" ), // stdin is a pipe that the child will read from - 1 => array ( "pipe", "w" ), // stdout is a pipe that the child will write to - 2 => array ( "pipe", "w" ) // stderr is a pipe that the child will write to - ); - $process = proc_open($strProgram . " " . $strArgs, $descriptorspec, $pipes); - if (is_resource($process)) { - $strBuffer .= timeout_fgets($pipes, $strBuffer, $strError); - $return_value = proc_close($process); - } - $strError = trim($strError); - $strBuffer = trim($strBuffer); - if (!empty($strError) && $return_value <> 0) { - if ($booErrorRep) { - $error->addError($strProgram, $strError . "\nReturn value: " . $return_value); - } - return false; - } - if (!empty($strError)) { - if ($booErrorRep) { - $error->addError($strProgram, $strError . "\nReturn value: " . $return_value); - } - return true; - } - return true; -} - -/** - * find duplicate entrys and count them, show this value befor the duplicated name - * - * @param array source array that should be checked for duplicated names - * @return array array with duplicate entries removed and a appended value, how many times the entry has appeared - */ -function finddups($arrInput) { - $arrResult = array (); - if (is_array($arrInput)) { - $arrBuffer = array_count_values($arrInput); - foreach ($arrBuffer as $strKey => $intValue) { - if ($intValue > 1) { - $arrResult[] = "(" . $intValue . "x) " . $strKey; - } ... [truncated message content] |
From: <big...@us...> - 2009-03-31 08:27:53
|
Revision: 177 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=177&view=rev Author: bigmichi1 Date: 2009-03-31 08:27:32 +0000 (Tue, 31 Mar 2009) Log Message: ----------- better to have only bytes (no kb, mb and so on) in xml Modified Paths: -------------- includes/os/class.Darwin.inc.php includes/os/class.HPUX.inc.php includes/os/class.Linux.inc.php includes/os/class.SunOS.inc.php includes/os/class.WINNT.inc.php js/phpSysInfo/phpsysinfo.js Modified: includes/os/class.Darwin.inc.php =================================================================== --- includes/os/class.Darwin.inc.php 2009-03-30 18:57:53 UTC (rev 176) +++ includes/os/class.Darwin.inc.php 2009-03-31 08:27:32 UTC (rev 177) @@ -115,7 +115,7 @@ // return bus speed - Mhz $results['busspeed'] = round($this->grabkey('hw.busfrequency')/1000000); // return l2 cache - $results['cache'] = round($this->grabkey('hw.l2cachesize')/1024); + $results['cache'] = round($this->grabkey('hw.l2cachesize')); if (($this->grabkey('hw.model') == "PowerMac3,6") && ($results['cpus'] == "2")) { $results['model'] = 'Dual G4 - (PowerPC 7450)'; } // is Dual G4 Modified: includes/os/class.HPUX.inc.php =================================================================== --- includes/os/class.HPUX.inc.php 2009-03-30 18:57:53 UTC (rev 176) +++ includes/os/class.HPUX.inc.php 2009-03-31 08:27:32 UTC (rev 177) @@ -190,7 +190,7 @@ $results['model'] .= ' ('.$value.')'; break; case 'cache size': - $results['cache'] = $value; + $results['cache'] = $value*1024; break; case 'bogomips': $results['bogomips'] += $value; Modified: includes/os/class.Linux.inc.php =================================================================== --- includes/os/class.Linux.inc.php 2009-03-30 18:57:53 UTC (rev 176) +++ includes/os/class.Linux.inc.php 2009-03-31 08:27:32 UTC (rev 177) @@ -292,7 +292,7 @@ $results['model'] = $value; break; case 'L2 cache': // More for PPC - $results['cache'] = $value; + $results['cache'] = $value*1024; break; case 'revision': // For PPC arch (damn borked POS) $results['model'] .= ' ( rev: '.$value.')'; @@ -302,7 +302,7 @@ break; case 'cache size': $value = preg_replace("/[a-zA-Z]/", "", $value); - $results['cache'] = $value; + $results['cache'] = $value*1024; break; case 'bogomips': $results['bogomips'] = $value; @@ -344,7 +344,7 @@ $sparclist = array ('SUNW,UltraSPARC@0,0', 'SUNW,UltraSPARC-II@0,0', 'SUNW,UltraSPARC@1c,0', 'SUNW,UltraSPARC-IIi@1c,0', 'SUNW,UltraSPARC-II@1c,0', 'SUNW,UltraSPARC-IIe@0,0'); foreach ($sparclist as $name) { if (CommonFunctions::rfts('/proc/openprom/'.$name.'/ecache-size', $buf, 1, 32, false)) { - $results['cache'] = base_convert($buf, 16, 10)/1024; + $results['cache'] = base_convert($buf, 16, 10); } } // sparc64 specific code ends @@ -363,15 +363,14 @@ $results['cpuspeed'] = $value; break; case 'I size': - $results['cache'] = $value; + $results['cache'] = $value*1024; break; case 'D size': - $results['cache'] += $value; + $results['cache'] += $value*1024; break; } } } - $results['cache'] = $results['cache']/1024; } } $keys = array_keys($results); @@ -588,7 +587,7 @@ } elseif (preg_match('/^MemFree:\s+(.*)\s*kB/i', $buf, $ar_buf)) { $results['ram']['free'] = $ar_buf[1]*1024; } elseif (preg_match('/^Cached:\s+(.*)\s*kB/i', $buf, $ar_buf)) { - $results['ram']['cached'] = $ar_buf[1]*1204; + $results['ram']['cached'] = $ar_buf[1]*1024; } elseif (preg_match('/^Buffers:\s+(.*)\s*kB/i', $buf, $ar_buf)) { $results['ram']['buffers'] = $ar_buf[1]*1024; } Modified: includes/os/class.SunOS.inc.php =================================================================== --- includes/os/class.SunOS.inc.php 2009-03-30 18:57:53 UTC (rev 176) +++ includes/os/class.SunOS.inc.php 2009-03-31 08:27:32 UTC (rev 177) @@ -192,7 +192,7 @@ } $results['model'] = $buf; $results['cpuspeed'] = $this->_kstat('cpu_info:0:cpu_info0:clock_MHz'); - $results['cache'] = $this->_kstat('cpu_info:0:cpu_info0:cpu_type'); + $results['cache'] = $this->_kstat('cpu_info:0:cpu_info0:cpu_type')*1024; $results['cpus'] = $this->_kstat('unix:0:system_misc:ncpus'); return $results; } Modified: includes/os/class.WINNT.inc.php =================================================================== --- includes/os/class.WINNT.inc.php 2009-03-30 18:57:53 UTC (rev 176) +++ includes/os/class.WINNT.inc.php 2009-03-31 08:27:32 UTC (rev 177) @@ -291,7 +291,7 @@ $results['cpus']++; } $results['model'] = $cpu['Name']; - $results['cache'] = $cpu['L2CacheSize']; + $results['cache'] = $cpu['L2CacheSize']*1024; $results['cpuspeed'] = $cpu['CurrentClockSpeed']; $results['busspeed'] = $cpu['ExtClock']; } Modified: js/phpSysInfo/phpsysinfo.js =================================================================== --- js/phpSysInfo/phpsysinfo.js 2009-03-30 18:57:53 UTC (rev 176) +++ js/phpSysInfo/phpsysinfo.js 2009-03-31 08:27:32 UTC (rev 177) @@ -615,7 +615,7 @@ $("#s_model").html(model); $("#s_speed").html(speed.toString() === "NaN" ? 0 : formatHertz(speed)); $("#s_bus").html(bus.toString() === "NaN" ? 0 : formatHertz(bus)); - $("#s_cache").html(cache.toString() === "NaN" ? 0 : formatBytes(cache*1024)); + $("#s_cache").html(cache.toString() === "NaN" ? 0 : formatBytes(cache)); $("#s_bogo").html(bogo.toString() === "NaN" ? 0 : bogo.toString()); }); popDevices('pciTable', 'PCI', hardware); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Big...@us...> - 2009-04-01 17:44:29
|
Revision: 179 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=179&view=rev Author: BigMichi1 Date: 2009-04-01 17:44:09 +0000 (Wed, 01 Apr 2009) Log Message: ----------- Ditribution name missing action was lost for mdstatus Modified Paths: -------------- includes/os/class.Linux.inc.php plugins/mdstatus/js/MDStatus.js Modified: includes/os/class.Linux.inc.php =================================================================== --- includes/os/class.Linux.inc.php 2009-03-31 13:52:43 UTC (rev 178) +++ includes/os/class.Linux.inc.php 2009-04-01 17:44:09 UTC (rev 179) @@ -61,11 +61,11 @@ foreach ($distro_tmp as $info) { $info_tmp = split(':', $info, 2); $distro[$info_tmp[0]] = trim($info_tmp[1]); + if ( isset ($list[$distro['Distributor ID']]['Image'])) { + $this->_icon = $list[$distro['Distributor ID']]['Image']; + } + $this->_distro = $distro['Description']; } - if ( isset ($list[$distro['Distributor ID']]['Image'])) { - $this->_icon = $list[$distro['Distributor ID']]['Image']; - } - $this->_distro = $distro['Description']; } else { // Fall back in case 'lsb_release' does not exist ;) foreach ($list as $section=>$distribution) { if (! isset ($distribution["Files"])) { @@ -641,7 +641,7 @@ */ public function distro() { - return $this->distro; + return $this->_distro; } /** @@ -651,7 +651,7 @@ */ public function distroicon() { - return $this->icon; + return $this->_icon; } } ?> Modified: plugins/mdstatus/js/MDStatus.js =================================================================== --- plugins/mdstatus/js/MDStatus.js 2009-03-31 13:52:43 UTC (rev 178) +++ plugins/mdstatus/js/MDStatus.js 2009-04-01 17:44:09 UTC (rev 179) @@ -73,8 +73,8 @@ var html = "", entry, action = 0, time = "", tunit = "", percent = 0; $("Action", xml).each(function mdstatus_getaction(id) { entry = $("Action", xml).get(id); - action = parseInt($("Name", entry).text().toString(), 10); - if (action !== -1) { + action = $("Name", entry).text().toString(); + if (parseInt(action, 10) !== -1) { time = $("Time_To_Finish", entry).text().toString(); tunit = $("Time_Unit", entry).text().toString(); percent = parseInt($("Percent", entry).text().toString(), 10); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jac...@us...> - 2009-04-12 17:55:16
|
Revision: 181 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=181&view=rev Author: jacky672 Date: 2009-04-12 17:55:13 +0000 (Sun, 12 Apr 2009) Log Message: ----------- Fix a loop when PSI_REFRESH not set correctly Modified Paths: -------------- config.php.new includes/xml/class.XML.inc.php js/phpSysInfo/phpsysinfo.js Modified: config.php.new =================================================================== --- config.php.new 2009-04-12 17:39:09 UTC (rev 180) +++ config.php.new 2009-04-12 17:55:13 UTC (rev 181) @@ -64,7 +64,8 @@ define('PSI_SHOW_PICKLIST_TEMPLATE', true); /** - * Define the intervalle for refreshing data + * Define the intervalle for refreshing data in ms + * - 0 = disabled * - 1000 = 1 second * - Default is 10 seconds */ Modified: includes/xml/class.XML.inc.php =================================================================== --- includes/xml/class.XML.inc.php 2009-04-12 17:39:09 UTC (rev 180) +++ includes/xml/class.XML.inc.php 2009-04-12 17:55:13 UTC (rev 181) @@ -530,7 +530,7 @@ $options = $this->_xml->addChild('Options'); $options->addChild('tempFormat', defined('PSI_TEMP_FORMAT')?PSI_TEMP_FORMAT:'c'); $options->addChild('byteFormat', defined('PSI_BYTE_FORMAT')?PSI_BYTE_FORMAT:'auto_binary'); - $options->addChild('refresh', defined('PSI_REFRESH')?PSI_REFRESH:false); + $options->addChild('refresh', defined('PSI_REFRESH')?PSI_REFRESH:0); $options->addChild('showPickListTemplate', defined('PSI_SHOW_PICKLIST_TEMPLATE')?PSI_SHOW_PICKLIST_TEMPLATE:false); $options->addChild('showPickListLang', defined('PSI_SHOW_PICKLIST_LANG')?PSI_SHOW_PICKLIST_LANG:false); $plug = $options->addChild('Used_Plugins'); Modified: js/phpSysInfo/phpsysinfo.js =================================================================== --- js/phpSysInfo/phpsysinfo.js 2009-04-12 17:39:09 UTC (rev 180) +++ js/phpSysInfo/phpsysinfo.js 2009-04-12 17:55:13 UTC (rev 181) @@ -969,7 +969,7 @@ $("Options", xml).each(function getRefreshTime(id) { options = $("Options", xml).get(id); refresh = $("refresh", options).text(); - if (refresh !== 'false') { + if (refresh !== '0') { $.timer(refresh, reload); } }); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <big...@us...> - 2009-04-14 07:40:47
|
Revision: 185 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=185&view=rev Author: bigmichi1 Date: 2009-04-14 07:40:43 +0000 (Tue, 14 Apr 2009) Log Message: ----------- missing static class in method call Modified Paths: -------------- includes/class.CommonFunctions.inc.php includes/mb/class.Coretemp.inc.php includes/mb/class.HDDTemp.inc.php includes/mb/class.HWSensors.inc.php includes/mb/class.Healthd.inc.php includes/mb/class.IPMI.inc.php includes/mb/class.LMSensors.inc.php includes/mb/class.MBM5.inc.php includes/mb/class.MBMon.inc.php includes/os/class.BSDCommon.inc.php includes/os/class.Darwin.inc.php includes/os/class.DragonFly.inc.php includes/os/class.FreeBSD.inc.php includes/os/class.HPUX.inc.php includes/os/class.NetBSD.inc.php includes/os/class.OpenBSD.inc.php includes/os/class.SunOS.inc.php includes/ups/class.Apcupsd.inc.php plugins/quotas/class.Quotas.inc.php Modified: includes/class.CommonFunctions.inc.php =================================================================== --- includes/class.CommonFunctions.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/class.CommonFunctions.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -58,8 +58,8 @@ /** * 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'); + * ie $program = CommonFunctions::executeProgram('netstat', '-anp | grep LIST'); + * NOT $program = CommonFunctions::executeProgram('netstat', '-anp|grep LIST'); * * @param string $strProgramname name of the program * @param string $strArgs arguments to the program Modified: includes/mb/class.Coretemp.inc.php =================================================================== --- includes/mb/class.Coretemp.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/mb/class.Coretemp.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -35,10 +35,10 @@ { $results = array (); $smp = 1; - execute_program('sysctl', '-n kern.smp.cpus', $smp); + CommonFunctions::executeProgram('sysctl', '-n kern.smp.cpus', $smp); for ($i = 0; $i < $smp; $i++) { $temp = 0; - if (execute_program('sysctl', '-n dev.cpu.'.$i.'.temperature', $temp)) { + if (CommonFunctions::executeProgram('sysctl', '-n dev.cpu.'.$i.'.temperature', $temp)) { $results[$i]['label'] = "CPU ".($i+1); $results[$i]['value'] = $temp; $results[$i]['limit'] = '70.0'; Modified: includes/mb/class.HDDTemp.inc.php =================================================================== --- includes/mb/class.HDDTemp.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/mb/class.HDDTemp.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -73,7 +73,7 @@ $strDrives = ""; $strContent = ""; $hddtemp_value = ""; - if (rfts("/proc/diskstats", $strContent, 0, 4096, false)) { + if (CommonFunctions::rfts("/proc/diskstats", $strContent, 0, 4096, false)) { $arrContent = explode("\n", $strContent); foreach ($arrContent as $strLine) { preg_match("/^\s(.*)\s([a-z]*)\s(.*)/", $strLine, $arrSplit); @@ -85,7 +85,7 @@ } } } else { - if (rfts("/proc/partitions", $strContent, 0, 4096, false)) { + if (CommonFunctions::rfts("/proc/partitions", $strContent, 0, 4096, false)) { $arrContent = explode("\n", $strContent); foreach ($arrContent as $strLine) { if (!preg_match("/^\s(.*)\s([\/a-z0-9]*(\/disc))\s(.*)/", $strLine, $arrSplit)) { @@ -103,7 +103,7 @@ if (trim($strDrives) == "") { return array (); } - if (execute_program("hddtemp", $strDrives, $hddtemp_value)) { + if (CommonFunctions::executeProgram("hddtemp", $strDrives, $hddtemp_value)) { $hddtemp_value = explode("\n", $hddtemp_value); foreach ($hddtemp_value as $line) { $temp = preg_split("/:\s/", $line, 3); Modified: includes/mb/class.HWSensors.inc.php =================================================================== --- includes/mb/class.HWSensors.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/mb/class.HWSensors.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -49,7 +49,7 @@ { case 'tcp': $lines = ""; - execute_program('sysctl', '-w hw.sensors', $lines); + CommonFunctions::executeProgram('sysctl', '-w hw.sensors', $lines); $this->_lines = explode("\n", $lines); break; default: Modified: includes/mb/class.Healthd.inc.php =================================================================== --- includes/mb/class.Healthd.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/mb/class.Healthd.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -48,7 +48,7 @@ switch(strtolower(PSI_SENSOR_ACCESS)) { case 'command': $lines = ""; - execute_program('healthdc', '-t', $lines); + CommonFunctions::executeProgram('healthdc', '-t', $lines); $this->_lines = explode("\n", $lines); break; default: Modified: includes/mb/class.IPMI.inc.php =================================================================== --- includes/mb/class.IPMI.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/mb/class.IPMI.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -48,7 +48,7 @@ switch(strtolower(PSI_SENSOR_ACCESS)) { case 'command': $lines = ""; - execute_program('ipmitool', 'sensor', $lines); + CommonFunctions::executeProgram('ipmitool', 'sensor', $lines); $this->_lines = explode("\n", $lines); break; default: Modified: includes/mb/class.LMSensors.inc.php =================================================================== --- includes/mb/class.LMSensors.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/mb/class.LMSensors.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -48,7 +48,7 @@ switch(strtolower(PSI_SENSOR_ACCESS)) { case 'command': $lines = ""; - if (execute_program("sensors", "", $lines)) { + if (CommonFunctions::executeProgram("sensors", "", $lines)) { // Martijn Stolk: Dirty fix for misinterpreted output of sensors, // where info could come on next line when the label is too long. $lines = str_replace(":\n", ":", $lines); Modified: includes/mb/class.MBM5.inc.php =================================================================== --- includes/mb/class.MBM5.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/mb/class.MBM5.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -57,7 +57,7 @@ switch(strtolower(PSI_SENSOR_ACCESS)) { case 'file': $buffer = ""; - rfts(APP_ROOT."/data/MBM5.csv", $buffer); + CommonFunctions::rfts(APP_ROOT."/data/MBM5.csv", $buffer); if (strpos($buffer, ";") === false) { $delim = ","; } else { Modified: includes/mb/class.MBMon.inc.php =================================================================== --- includes/mb/class.MBMon.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/mb/class.MBMon.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -59,7 +59,7 @@ } break; case 'command': - execute_program('mbmon', '-c 1 -r', $lines); + CommonFunctions::executeProgram('mbmon', '-c 1 -r', $lines); $this->_lines = explode("\n", $lines); break; default: Modified: includes/os/class.BSDCommon.inc.php =================================================================== --- includes/os/class.BSDCommon.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/os/class.BSDCommon.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -189,7 +189,7 @@ protected function grabkey($key) { $buf = ""; - if (CommonFunctions::execute_program('sysctl', "-n $key", $buf, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('sysctl', "-n $key", $buf, PSI_DEBUG)) { return $buf; } else { return ''; @@ -217,7 +217,7 @@ public function chostname() { $buf = ""; - if (CommonFunctions::execute_program('hostname', '', $buf, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('hostname', '', $buf, PSI_DEBUG)) { return $buf; } else { return 'N.A.'; @@ -270,7 +270,7 @@ public function users() { $buf = ""; - if (CommonFunctions::execute_program('who', '| wc -l', $buf, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('who', '| wc -l', $buf, PSI_DEBUG)) { return $buf; } else { return -1; @@ -438,7 +438,7 @@ $pagesize = $this->grabkey('hw.pagesize'); } $results['ram'] = array (); - if (!CommonFunctions::execute_program('vmstat', '', $pstat, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('vmstat', '', $pstat, PSI_DEBUG)) { $pstat = ''; } $lines = split("\n", $pstat); @@ -459,11 +459,11 @@ $results['ram']['cached'] = 0; $results['ram']['percent'] = round(($results['ram']['used']*100)/$results['ram']['total']); if (PHP_OS == 'OpenBSD' || PHP_OS == 'NetBSD') { - if (!CommonFunctions::execute_program('swapctl', '-l -k', $pstat, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('swapctl', '-l -k', $pstat, PSI_DEBUG)) { $pstat = ''; } } else { - if (!CommonFunctions::execute_program('swapinfo', '-k', $pstat, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('swapinfo', '-k', $pstat, PSI_DEBUG)) { $pstat = ''; } } @@ -522,7 +522,7 @@ public function distro() { $result = ""; - if (CommonFunctions::execute_program('uname', '-s', $result, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('uname', '-s', $result, PSI_DEBUG)) { return $result; } else { return 'N.A.'; Modified: includes/os/class.Darwin.inc.php =================================================================== --- includes/os/class.Darwin.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/os/class.Darwin.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -49,7 +49,7 @@ protected function grabkey($key) { $s = ""; - if (CommonFunctions::execute_program('sysctl', $key, $s, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('sysctl', $key, $s, PSI_DEBUG)) { $s = ereg_replace($key.': ', '', $s); $s = ereg_replace($key.' = ', '', $s); return $s; @@ -68,7 +68,7 @@ private function _grabioreg($key) { $s = ""; - if (CommonFunctions::execute_program('ioreg', '-cls "'.$key.'" | grep "'.$key.'"', $s, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('ioreg', '-cls "'.$key.'" | grep "'.$key.'"', $s, PSI_DEBUG)) { $s = ereg_replace('\|', '', $s); $s = ereg_replace('\+\-\o', '', $s); $s = ereg_replace('[ ]+', '', $s); @@ -88,7 +88,7 @@ public function uptime() { $a = ""; - if (CommonFunctions::execute_program('sysctl', '-n kern.boottime', $a, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('sysctl', '-n kern.boottime', $a, PSI_DEBUG)) { $sys_ticks = time()-$a; return $sys_ticks; } else { @@ -105,7 +105,7 @@ { $results = array (); $buf = ""; - if (!CommonFunctions::execute_program('hostinfo', '| grep "Processor type"', $buf, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('hostinfo', '| grep "Processor type"', $buf, PSI_DEBUG)) { $buf = 'N.A.'; } $results['model'] = ereg_replace('Processor type: ', '', $buf); @@ -179,7 +179,7 @@ $results['ram'] = array (); $results['swap'] = array (); $results['devswap'] = array (); - if (!CommonFunctions::execute_program('vm_stat', '', $pstat, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('vm_stat', '', $pstat, PSI_DEBUG)) { $pstat = ''; } $lines = split("\n", $pstat); @@ -196,7 +196,7 @@ $results['ram']['used'] = $results['ram']['total']-$results['ram']['free']; $results['ram']['cached'] = 0; $results['ram']['percent'] = round(($results['ram']['used']*100)/$results['ram']['total']); - if (CommonFunctions::execute_program('swapinfo', '-k', $pstat, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('swapinfo', '-k', $pstat, PSI_DEBUG)) { $lines = split("\n", $pstat); for ($i = 0, $max = sizeof($lines); $i < $max; $i++) { $ar_buf = preg_split("/\s+/", $lines[$i], 6); @@ -224,7 +224,7 @@ public function network() { $netstat = ""; - if (CommonFunctions::execute_program('netstat', '-nbdi | cut -c1-24,42- | grep Link', $netstat, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('netstat', '-nbdi | cut -c1-24,42- | grep Link', $netstat, PSI_DEBUG)) { $lines = split("\n", $netstat); $results = array (); for ($i = 0, $max = sizeof($lines); $i < $max; $i++) { Modified: includes/os/class.DragonFly.inc.php =================================================================== --- includes/os/class.DragonFly.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/os/class.DragonFly.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -74,8 +74,8 @@ { $netstat_b = ""; $netstat_n = ""; - CommonFunctions::execute_program('netstat', '-nbdi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_b); - CommonFunctions::execute_program('netstat', '-ndi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_n); + CommonFunctions::executeProgram('netstat', '-nbdi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_b); + CommonFunctions::executeProgram('netstat', '-ndi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_n); $lines_b = split("\n", $netstat_b); $lines_n = split("\n", $netstat_n); $results = array (); Modified: includes/os/class.FreeBSD.inc.php =================================================================== --- includes/os/class.FreeBSD.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/os/class.FreeBSD.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -64,7 +64,7 @@ public function network() { $netstat = ""; - if (!CommonFunctions::execute_program('netstat', '-nibd | grep Link', $netstat, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('netstat', '-nibd | grep Link', $netstat, PSI_DEBUG)) { $netstat = ''; } $lines = split("\n", $netstat); Modified: includes/os/class.HPUX.inc.php =================================================================== --- includes/os/class.HPUX.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/os/class.HPUX.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -57,7 +57,7 @@ public function chostname() { $ret = ""; - if (CommonFunctions::execute_program('hostname', '', $ret)) { + if (CommonFunctions::executeProgram('hostname', '', $ret)) { return $ret; } else { return 'N.A.'; @@ -85,7 +85,7 @@ public function kernel() { $ret = ""; - if (CommonFunctions::execute_program('uname', '-srvm', $ret)) { + if (CommonFunctions::executeProgram('uname', '-srvm', $ret)) { return $ret; } else { return 'N.A.'; @@ -103,7 +103,7 @@ $buf = ""; $result = -1; $ar_buf = array (); - if (CommonFunctions::execute_program('uptime', '', $buf)) { + if (CommonFunctions::executeProgram('uptime', '', $buf)) { if (preg_match("/up (\d+) days,\s*(\d+):(\d+),/", $buf, $ar_buf)) { $min = $ar_buf[3]; $hours = $ar_buf[2]; @@ -122,7 +122,7 @@ public function users() { $ret = ""; - if (CommonFunctions::execute_program('who', '-q', $ret)) { + if (CommonFunctions::executeProgram('who', '-q', $ret)) { $who = split('=', $ret); $result = $who[1]; return $result; @@ -144,7 +144,7 @@ $buf = ""; $ar_buf = array (); $results['avg'] = array ('N.A.', 'N.A.', 'N.A.'); - if (CommonFunctions::execute_program('uptime', '', $buf)) { + if (CommonFunctions::executeProgram('uptime', '', $buf)) { if (preg_match("/average: (.*), (.*), (.*)$/", $buf, $ar_buf)) { $results['avg'] = array ($ar_buf[1], $ar_buf[2], $ar_buf[3]); } @@ -379,7 +379,7 @@ public function network() { $netstat = ""; - if (CommonFunctions::execute_program('netstat', '-ni | tail -n +2', $netstat)) { + if (CommonFunctions::executeProgram('netstat', '-ni | tail -n +2', $netstat)) { $lines = split("\n", $netstat); $results = array (); for ($i = 0, $max = sizeof($lines); $i < $max; $i++) { @@ -456,14 +456,14 @@ public function filesystems() { $df = ""; - if (CommonFunctions::execute_program('df', '-kP', $df, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('df', '-kP', $df, PSI_DEBUG)) { $mounts = split("\n", $df); } else { $mounts = array (); } $fstype = array (); $s = ""; - if (CommonFunctions::execute_program('mount', '-v', $s, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('mount', '-v', $s, PSI_DEBUG)) { $lines = explode("\n", $s); } else { $lines = array (); Modified: includes/os/class.NetBSD.inc.php =================================================================== --- includes/os/class.NetBSD.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/os/class.NetBSD.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -62,8 +62,8 @@ { $netstat_b = ""; $netstat_n = ""; - CommonFunctions::execute_program('netstat', '-nbdi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_b); - CommonFunctions::execute_program('netstat', '-ndi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_n); + CommonFunctions::executeProgram('netstat', '-nbdi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_b); + CommonFunctions::executeProgram('netstat', '-ndi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_n); $lines_b = split("\n", $netstat_b); $lines_n = split("\n", $netstat_n); $results = array (); Modified: includes/os/class.OpenBSD.inc.php =================================================================== --- includes/os/class.OpenBSD.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/os/class.OpenBSD.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -62,8 +62,8 @@ { $netstat_b = ""; $netstat_n = ""; - CommonFunctions::execute_program('netstat', '-nbdi | cut -c1-25,44- | grep Link | grep -v \'* \'', $netstat_b, PSI_DEBUG); - CommonFunctions::execute_program('netstat', '-ndi | cut -c1-25,44- | grep Link | grep -v \'* \'', $netstat_n, PSI_DEBUG); + CommonFunctions::executeProgram('netstat', '-nbdi | cut -c1-25,44- | grep Link | grep -v \'* \'', $netstat_b, PSI_DEBUG); + CommonFunctions::executeProgram('netstat', '-ndi | cut -c1-25,44- | grep Link | grep -v \'* \'', $netstat_n, PSI_DEBUG); $lines_b = split("\n", $netstat_b); $lines_n = split("\n", $netstat_n); $results = array (); Modified: includes/os/class.SunOS.inc.php =================================================================== --- includes/os/class.SunOS.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/os/class.SunOS.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -44,7 +44,7 @@ private function _kstat($key) { $m = ""; - if (CommonFunctions::execute_program('kstat', "-p d $key", $m, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('kstat', "-p d $key", $m, PSI_DEBUG)) { list ($key, $value) = split("\t", trim($m), 2); return $value; } else { @@ -83,7 +83,7 @@ public function chostname() { $result = ""; - if (CommonFunctions::execute_program('uname', '-n', $result, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('uname', '-n', $result, PSI_DEBUG)) { $ip = gethostbyname($result); if ($ip != $result) { $result = gethostbyaddr($ip); @@ -118,10 +118,10 @@ { $os = ""; $version = ""; - if (!CommonFunctions::execute_program('uname', '-s', $os, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('uname', '-s', $os, PSI_DEBUG)) { $os = 'N.A.'; } - if (!CommonFunctions::execute_program('uname', '-r', $version, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('uname', '-r', $version, PSI_DEBUG)) { $version = 'N.A.'; } return $os.' '.$version; @@ -147,7 +147,7 @@ public function users() { $buf = ""; - if (CommonFunctions::execute_program('who', '-q', $buf, PSI_DEBUG)) { + if (CommonFunctions::executeProgram('who', '-q', $buf, PSI_DEBUG)) { $who = split('=', $buf); $result = $who[1]; return $result; @@ -187,7 +187,7 @@ $results = array (); $ar_buf = array (); $buf = ""; - if (!CommonFunctions::execute_program('uname', '-i', $buf, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('uname', '-i', $buf, PSI_DEBUG)) { $buf = 'N.A.'; } $results['model'] = $buf; @@ -254,7 +254,7 @@ { $results = array (); $netstat = ""; - if (!CommonFunctions::execute_program('netstat', '-ni | awk \'(NF ==10){print;}\'', $netstat, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('netstat', '-ni | awk \'(NF ==10){print;}\'', $netstat, PSI_DEBUG)) { $netstat = ''; } $lines = split("\n", $netstat); @@ -320,11 +320,11 @@ { $df = ""; $dftypes = ""; - if (!CommonFunctions::execute_program('df', '-k', $df, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('df', '-k', $df, PSI_DEBUG)) { $df = ''; } $mounts = split("\n", $df); - if (!CommonFunctions::execute_program('df', '-n', $dftypes, PSI_DEBUG)) { + if (!CommonFunctions::executeProgram('df', '-n', $dftypes, PSI_DEBUG)) { $dftypes = ''; } $mounttypes = split("\n", $dftypes); Modified: includes/ups/class.Apcupsd.inc.php =================================================================== --- includes/ups/class.Apcupsd.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ includes/ups/class.Apcupsd.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -41,7 +41,7 @@ $upses = explode(',', PSI_UPS_APCUPSD_LIST); foreach ($upses as $ups) { $temp = ''; - execute_program('apcaccess', 'status '.trim($ups), $temp); + CommonFunctions::executeProgram('apcaccess', 'status '.trim($ups), $temp); if ( isset ($temp) && ! empty($temp)) { array_push($this->_output[$i], $temp); } Modified: plugins/quotas/class.Quotas.inc.php =================================================================== --- plugins/quotas/class.Quotas.inc.php 2009-04-13 18:10:48 UTC (rev 184) +++ plugins/quotas/class.Quotas.inc.php 2009-04-14 07:40:43 UTC (rev 185) @@ -57,7 +57,7 @@ parent::__construct(( __CLASS__ )); switch(PSI_PLUGIN_QUOTAS_ACCESS) { case 'command': - CommonFunctions::execute_program("repquota", "-au", $buffer, $this->_debug); + CommonFunctions::executeProgram("repquota", "-au", $buffer, $this->_debug); break; case 'data': CommonFunctions::rfts(APP_ROOT."/data/quotas.txt", $buffer); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <big...@us...> - 2009-04-14 08:26:57
|
Revision: 186 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=186&view=rev Author: bigmichi1 Date: 2009-04-14 08:26:52 +0000 (Tue, 14 Apr 2009) Log Message: ----------- Added patch 2735761 - Optimizations for PHP loops Modified Paths: -------------- ChangeLog includes/class.CommonFunctions.inc.php includes/os/class.Linux.inc.php includes/os/class.WINNT.inc.php includes/ups/class.Apcupsd.inc.php plugins/mdstatus/class.MDStatus.inc.php Modified: ChangeLog =================================================================== --- ChangeLog 2009-04-14 07:40:43 UTC (rev 185) +++ ChangeLog 2009-04-14 08:26:52 UTC (rev 186) @@ -16,6 +16,7 @@ - [ADD] Added FR [ 1400478 ] Process and packets? - [ADD] Added FR [ 2356664 ] Show Disk Quotas - [ADD] Added FR [ 1532092 ] Display FTP, MySQL, etc. server status + - [ADD] Added PA [ 2735761 ] Optimizations for PHP loops - [ADD] Option to hide picklist (language and/or template) - [FIX] Fixed hidenetworkinterfaces config option Modified: includes/class.CommonFunctions.inc.php =================================================================== --- includes/class.CommonFunctions.inc.php 2009-04-14 07:40:43 UTC (rev 185) +++ includes/class.CommonFunctions.inc.php 2009-04-14 08:26:52 UTC (rev 186) @@ -1,4 +1,4 @@ -<?php +<?php /** * common Functions class * @@ -84,19 +84,15 @@ // see if we've gotten a |, if we have we need to do path checking on the cmd if ($strArgs) { $arrArgs = split(' ', $strArgs); - for ($i = 0; $i < count($arrArgs); $i++) { + for ($i = 0, $cnt_args = count($arrArgs); $i < $cnt_args; $i++) { if ($arrArgs[$i] == '|') { - $strCmd = $arrArgs[$i+1]; + $strCmd = $arrArgs[$i + 1]; $strNewcmd = self::_findProgram($strCmd); $strArgs = ereg_replace("\| ".$strCmd, "| ".$strNewcmd, $strArgs); } } } - $descriptorspec = array ( - 0=> array ("pipe", "r"), // stdin is a pipe that the child will read from - 1=> array ("pipe", "w"), // stdout is a pipe that the child will write to - 2=> array ("pipe", "w") // stderr is a pipe that the child will write to - ); + $descriptorspec = array (0=> array ("pipe", "r"), 1=> array ("pipe", "w"), 2=> array ("pipe", "w")); $process = proc_open($strProgram." ".$strArgs, $descriptorspec, $pipes); if (is_resource($process)) { $strBuffer .= self::_timeoutfgets($pipes, $strBuffer, $strError); @@ -292,7 +288,7 @@ */ public static function getPlugins() { - $plugins = preg_split("/[\s]?,[\s]?/", PSI_PLUGINS, -1, PREG_SPLIT_NO_EMPTY); + $plugins = preg_split("/[\s]?,[\s]?/", PSI_PLUGINS, - 1, PREG_SPLIT_NO_EMPTY); return $plugins; } } Modified: includes/os/class.Linux.inc.php =================================================================== --- includes/os/class.Linux.inc.php 2009-04-14 07:40:43 UTC (rev 185) +++ includes/os/class.Linux.inc.php 2009-04-14 08:26:52 UTC (rev 186) @@ -1,4 +1,4 @@ -<?php +<?php /** * Linux System Class * @@ -242,15 +242,15 @@ // Find out the CPU load // user + sys = load // total = total - $load = $ab+$ac+$ad; // cpu.user + cpu.sys - $total = $ab+$ac+$ad+$ae; // cpu.total + $load = $ab + $ac + $ad; // cpu.user + cpu.sys + $total = $ab + $ac + $ad + $ae; // cpu.total // we need a second value, wait 1 second befor getting (< 1 second no good value will occour) sleep(1); CommonFunctions::rfts('/proc/stat', $buf, 1); sscanf($buf, "%*s %Ld %Ld %Ld %Ld", $ab, $ac, $ad, $ae); - $load2 = $ab+$ac+$ad; - $total2 = $ab+$ac+$ad+$ae; - $results['cpupercent'] = (100*($load2-$load))/($total2-$total); + $load2 = $ab + $ac + $ad; + $total2 = $ab + $ac + $ad + $ae; + $results['cpupercent'] = (100 * ($load2 - $load)) / ($total2 - $total); } } return $results; @@ -275,64 +275,45 @@ if (count($arrBuff) == 2) { $key = $arrBuff[0]; $value = $arrBuff[1]; - switch($key) { - case 'model name': - $results['model'] = $value; + switch ($key) { + case 'model name': $results['model'] = $value; break; - case 'cpu MHz': - $results['cpuspeed'] = sprintf('%.2f', $value); + case 'cpu MHz': $results['cpuspeed'] = sprintf('%.2f', $value); break; - case 'cycle frequency [Hz]': // For Alpha arch - 2.2.x - $results['cpuspeed'] = sprintf('%.2f', $value/1000000); + case 'cycle frequency [Hz]': $results['cpuspeed'] = sprintf('%.2f', $value / 1000000); // For Alpha arch - 2.2.x break; - case 'clock': // For PPC arch (damn borked POS) - $results['cpuspeed'] = sprintf('%.2f', $value); + case 'clock': $results['cpuspeed'] = sprintf('%.2f', $value); // For PPC arch (damn borked POS) break; - case 'cpu': // For PPC arch (damn borked POS) - $results['model'] = $value; + case 'cpu': $results['model'] = $value; // For PPC arch (damn borked POS) break; - case 'L2 cache': // More for PPC - $results['cache'] = $value*1024; + case 'L2 cache': $results['cache'] = $value * 1024; // More for PPC break; - case 'revision': // For PPC arch (damn borked POS) - $results['model'] .= ' ( rev: '.$value.')'; + case 'revision': $results['model'] .= ' ( rev: '.$value.')'; // For PPC arch (damn borked POS) break; - case 'cpu model': // For Alpha arch - 2.2.x - $results['model'] .= ' ('.$value.')'; + case 'cpu model': $results['model'] .= ' ('.$value.')'; // For Alpha arch - 2.2.x break; - case 'cache size': - $value = preg_replace("/[a-zA-Z]/", "", $value); - $results['cache'] = $value*1024; + case 'cache size': $value = preg_replace("/[a-zA-Z]/", "", $value); + $results['cache'] = $value * 1024; break; - case 'bogomips': - $results['bogomips'] = $value; + case 'bogomips': $results['bogomips'] = $value; break; - case 'BogoMIPS': // For alpha arch - 2.2.x - $results['bogomips'] += $value; + case 'BogoMIPS': $results['bogomips'] += $value; // For alpha arch - 2.2.x break; - case 'BogoMips': // For sparc arch - $results['bogomips'] += $value; + case 'BogoMips': $results['bogomips'] += $value; // For sparc arch break; - case 'cpus detected': // For Alpha arch - 2.2.x - $results['cpus'] += $value; + case 'cpus detected': $results['cpus'] += $value; // For Alpha arch - 2.2.x break; - case 'system type': // Alpha arch - 2.2.x - $results['model'] .= ', '.$value.' '; + case 'system type': $results['model'] .= ', '.$value.' '; // Alpha arch - 2.2.x break; - case 'platform string': // Alpha arch - 2.2.x - $results['model'] .= ' ('.$value.')'; + case 'platform string': $results['model'] .= ' ('.$value.')'; // Alpha arch - 2.2.x break; - case 'processor': - $results['cpus'] += 1; + case 'processor': $results['cpus'] += 1; break; - case 'Cpu0ClkTck': // Linux sparc64 - $results['cpuspeed'] = sprintf('%.2f', hexdec($value)/1000000); + case 'Cpu0ClkTck': $results['cpuspeed'] = sprintf('%.2f', hexdec($value) / 1000000); // Linux sparc64 break; - case 'Cpu0Bogo': // Linux sparc64 & sparc32 - $results['bogomips'] = $value; + case 'Cpu0Bogo': $results['bogomips'] = $value; // Linux sparc64 & sparc32 break; - case 'ncpus probed': // Linux sparc64 & sparc32 - $results['cpus'] = $value; + case 'ncpus probed': $results['cpus'] = $value; // Linux sparc64 & sparc32 break; } } @@ -353,20 +334,16 @@ foreach ($bufe as $buf) { $fields = preg_split('/\s*:\s*/', trim($buf), 2); if (sizeof($fields) == 2) { - list ($key, $value) = $fields; - switch($key) { - case 'Processor': - $results['cpus'] += 1; + list ($key,$value) = $fields; + switch ($key) { + case 'Processor': $results['cpus'] += 1; $results['model'] = $value; break; - case 'BogoMIPS': //BogoMIPS are not BogoMIPS on this CPU, it's the speed, no BogoMIPS available - $results['cpuspeed'] = $value; + case 'BogoMIPS': $results['cpuspeed'] = $value; //BogoMIPS are not BogoMIPS on this CPU, it's the speed, no BogoMIPS available break; - case 'I size': - $results['cache'] = $value*1024; + case 'I size': $results['cache'] = $value * 1024; break; - case 'D size': - $results['cache'] += $value*1024; + case 'D size': $results['cache'] += $value * 1024; break; } } @@ -405,7 +382,7 @@ continue ; } if ($booDevice) { - list ($strKey, $strValue) = split(': ', $strLine, 2); + list ($strKey,$strValue) = split(': ', $strLine, 2); if (!preg_match('/bridge/i', $strKey) && !preg_match('/USB/i ', $strKey)) { $arrResults[] = preg_replace('/\([^\)]+\)\.$/', '', trim($strValue)); } @@ -436,7 +413,7 @@ if ($results[$file]['media'] == 'disk') { $results[$file]['media'] = 'Hard Disk'; if (CommonFunctions::rfts("/proc/ide/".$file."/capacity", $buf, 1, 4096, false) || CommonFunctions::rfts("/sys/block/".$file."/size", $buf, 1, 4096, false)) { - $results[$file]['capacity'] = trim($buf)*512/1024; + $results[$file]['capacity'] = trim($buf) * 512 / 1024; } } elseif ($results[$file]['media'] == 'cdrom') { $results[$file]['media'] = 'CD-ROM'; @@ -483,7 +460,7 @@ foreach ($bufe as $buf) { if (preg_match('/Vendor/', $buf)) { preg_match('/Vendor: (.*) Model: (.*) Rev: (.*)/i', $buf, $dev); - list ($key, $value) = split(': ', $buf, 2); + list ($key,$value) = split(': ', $buf, 2); $dev_str = $value; $get_type = true; continue ; @@ -519,8 +496,8 @@ $devnum += 1; $results[$devnum] = ""; } elseif (preg_match('/^S:/', $buf)) { - list ($key, $value) = split(': ', $buf, 2); - list ($key, $value2) = split('=', $value, 2); + list ($key,$value) = split(': ', $buf, 2); + list ($key,$value2) = split('=', $value, 2); if (trim($key) != "SerialNumber") { $results[$devnum] .= " ".trim($value2); $devstring = 0; @@ -554,14 +531,14 @@ $bufe = explode("\n", $bufr); foreach ($bufe as $buf) { if (preg_match('/:/', $buf)) { - list ($dev_name, $stats_list) = preg_split('/:/', $buf, 2); + list ($dev_name,$stats_list) = preg_split('/:/', $buf, 2); $dev_name = trim($dev_name); $stats = preg_split('/\s+/', trim($stats_list)); $results[$dev_name] = array (); $results[$dev_name]['rx_bytes'] = $stats[0]; $results[$dev_name]['tx_bytes'] = $stats[8]; - $results[$dev_name]['errs'] = $stats[2]+$stats[10]; - $results[$dev_name]['drop'] = $stats[3]+$stats[11]; + $results[$dev_name]['errs'] = $stats[2] + $stats[10]; + $results[$dev_name]['drop'] = $stats[3] + $stats[11]; } } } @@ -583,40 +560,40 @@ $bufe = explode("\n", $bufr); foreach ($bufe as $buf) { if (preg_match('/^MemTotal:\s+(.*)\s*kB/i', $buf, $ar_buf)) { - $results['ram']['total'] = $ar_buf[1]*1024; + $results['ram']['total'] = $ar_buf[1] * 1024; } elseif (preg_match('/^MemFree:\s+(.*)\s*kB/i', $buf, $ar_buf)) { - $results['ram']['free'] = $ar_buf[1]*1024; + $results['ram']['free'] = $ar_buf[1] * 1024; } elseif (preg_match('/^Cached:\s+(.*)\s*kB/i', $buf, $ar_buf)) { - $results['ram']['cached'] = $ar_buf[1]*1024; + $results['ram']['cached'] = $ar_buf[1] * 1024; } elseif (preg_match('/^Buffers:\s+(.*)\s*kB/i', $buf, $ar_buf)) { - $results['ram']['buffers'] = $ar_buf[1]*1024; + $results['ram']['buffers'] = $ar_buf[1] * 1024; } } - $results['ram']['used'] = $results['ram']['total']-$results['ram']['free']; - $results['ram']['percent'] = round(($results['ram']['used']*100)/$results['ram']['total']); + $results['ram']['used'] = $results['ram']['total'] - $results['ram']['free']; + $results['ram']['percent'] = round(($results['ram']['used'] * 100) / $results['ram']['total']); // values for splitting memory usage if ( isset ($results['ram']['cached']) && isset ($results['ram']['buffers'])) { - $results['ram']['app'] = $results['ram']['used']-$results['ram']['cached']-$results['ram']['buffers']; - $results['ram']['app_percent'] = round(($results['ram']['app']*100)/$results['ram']['total']); - $results['ram']['buffers_percent'] = round(($results['ram']['buffers']*100)/$results['ram']['total']); - $results['ram']['cached_percent'] = round(($results['ram']['cached']*100)/$results['ram']['total']); + $results['ram']['app'] = $results['ram']['used'] - $results['ram']['cached'] - $results['ram']['buffers']; + $results['ram']['app_percent'] = round(($results['ram']['app'] * 100) / $results['ram']['total']); + $results['ram']['buffers_percent'] = round(($results['ram']['buffers'] * 100) / $results['ram']['total']); + $results['ram']['cached_percent'] = round(($results['ram']['cached'] * 100) / $results['ram']['total']); } $bufr = ""; if (CommonFunctions::rfts('/proc/swaps', $bufr)) { $swaps = explode("\n", $bufr); - for ($i = 1; $i < (sizeof($swaps)); $i++) { + for ($i = 1, $max = sizeof($swaps); $i < $max; $i++) { if (trim($swaps[$i]) != "") { $ar_buf = preg_split('/\s+/', $swaps[$i], 6); - $results['devswap'][$i-1] = array (); - $results['devswap'][$i-1]['dev'] = $ar_buf[0]; - $results['devswap'][$i-1]['total'] = $ar_buf[2]*1024; - $results['devswap'][$i-1]['used'] = $ar_buf[3]*1024; - $results['devswap'][$i-1]['free'] = ($results['devswap'][$i-1]['total']-$results['devswap'][$i-1]['used']); - $results['devswap'][$i-1]['percent'] = round(($ar_buf[3]*100)/$ar_buf[2]); - $results['swap']['total'] += $ar_buf[2]*1024; - $results['swap']['used'] += $ar_buf[3]*1024; - $results['swap']['free'] = $results['swap']['total']-$results['swap']['used']; - $results['swap']['percent'] = round(($results['swap']['used']*100)/(($results['swap']['total'] <= 0)?1:$results['swap']['total'])); + $results['devswap'][$i - 1] = array (); + $results['devswap'][$i - 1]['dev'] = $ar_buf[0]; + $results['devswap'][$i - 1]['total'] = $ar_buf[2] * 1024; + $results['devswap'][$i - 1]['used'] = $ar_buf[3] * 1024; + $results['devswap'][$i - 1]['free'] = ($results['devswap'][$i - 1]['total'] - $results['devswap'][$i - 1]['used']); + $results['devswap'][$i - 1]['percent'] = round(($ar_buf[3] * 100) / $ar_buf[2]); + $results['swap']['total'] += $ar_buf[2] * 1024; + $results['swap']['used'] += $ar_buf[3] * 1024; + $results['swap']['free'] = $results['swap']['total'] - $results['swap']['used']; + $results['swap']['percent'] = round(($results['swap']['used'] * 100) / (($results['swap']['total'] <= 0) ? 1 : $results['swap']['total'])); } } } Modified: includes/os/class.WINNT.inc.php =================================================================== --- includes/os/class.WINNT.inc.php 2009-04-14 07:40:43 UTC (rev 185) +++ includes/os/class.WINNT.inc.php 2009-04-14 08:26:52 UTC (rev 186) @@ -1,4 +1,4 @@ -<?php +<?php /** * WINNT System Class * @@ -92,7 +92,8 @@ { $arrData = array (); $value = ""; - try { + try + { $objWEBM = $this->_wmi->Get($strClass); $arrProp = $objWEBM->Properties_; $arrWEBMCol = $objWEBM->Instances_(); @@ -111,7 +112,8 @@ } $arrData[] = $arrInstance; } - } catch(Exception $e) { + } catch(Exception $e) + { if (PSI_DEBUG) { $this->error->addError($e->getCode(), $e->getMessage()); } @@ -133,7 +135,7 @@ } $list = array (); foreach ($this->_wmidevices as $device) { - if (substr($device['PNPDeviceID'], 0, strpos($device['PNPDeviceID'], "\\")+1) == ($strType."\\")) { + if (substr($device['PNPDeviceID'], 0, strpos($device['PNPDeviceID'], "\\") + 1) == ($strType."\\")) { $list[] = mb_convert_encoding($device['Name'], 'utf-8', 'windows-'.$this->_charset); } } @@ -233,7 +235,7 @@ $lseconds = intval(substr($buffer[0]['LocalDateTime'], 12, 2)); $boottime = mktime($bhour, $bminute, $bseconds, $bmonth, $bday, $byear); $localtime = mktime($lhour, $lminute, $lseconds, $lmonth, $lday, $lyear); - $result = $localtime-$boottime; + $result = $localtime - $boottime; return $result; } @@ -266,11 +268,11 @@ { $buffer = $this->_getWMI('Win32_Processor', array ('LoadPercentage')); $cpuload = array (); - for ($i = 0; $i < count($buffer); $i++) { + for ($i = 0, $cnt_buffer = count($buffer); $i < $cnt_buffer; $i++) { $cpuload['avg'][] = $buffer[$i]['LoadPercentage']; } if ($bar) { - $cpuload['cpupercent'] = array_sum($cpuload['avg'])/count($buffer); + $cpuload['cpupercent'] = array_sum($cpuload['avg']) / count($buffer); } return $cpuload; } @@ -291,7 +293,7 @@ $results['cpus']++; } $results['model'] = $cpu['Name']; - $results['cache'] = $cpu['L2CacheSize']*1024; + $results['cache'] = $cpu['L2CacheSize'] * 1024; $results['cpuspeed'] = $cpu['CurrentClockSpeed']; $results['busspeed'] = $cpu['ExtClock']; } @@ -362,12 +364,12 @@ // there is a possible bug in the wmi interfaceabout uint32 and uint64: http://www.ureader.com/message/1244948.aspx, so that // magative numbers would occour, try to calculate the nagative value from total - positive number if ($device['BytesSentPersec'] < 0) { - $results[$dev_name]['tx_bytes'] = $device['BytesTotalPersec']-$device['BytesReceivedPersec']; + $results[$dev_name]['tx_bytes'] = $device['BytesTotalPersec'] - $device['BytesReceivedPersec']; } else { $results[$dev_name]['tx_bytes'] = $device['BytesSentPersec']; } if ($device['BytesReceivedPersec'] < 0) { - $results[$dev_name]['rx_bytes'] = $device['BytesTotalPersec']-$device['BytesSentPersec']; + $results[$dev_name]['rx_bytes'] = $device['BytesTotalPersec'] - $device['BytesSentPersec']; } else { $results[$dev_name]['rx_bytes'] = $device['BytesReceivedPersec']; } @@ -387,12 +389,12 @@ public function memory() { $buffer = $this->_getWMI("Win32_OperatingSystem", array ('TotalVisibleMemorySize', 'FreePhysicalMemory')); - $results['ram']['total'] = $buffer[0]['TotalVisibleMemorySize']*1024; - $results['ram']['free'] = $buffer[0]['FreePhysicalMemory']*1024; + $results['ram']['total'] = $buffer[0]['TotalVisibleMemorySize'] * 1024; + $results['ram']['free'] = $buffer[0]['FreePhysicalMemory'] * 1024; // Calculate used physical memory. - $results['ram']['used'] = $results['ram']['total']-$results['ram']['free']; + $results['ram']['used'] = $results['ram']['total'] - $results['ram']['free']; // Calculate percent used. - $results['ram']['percent'] = ceil(($results['ram']['used']*100)/$results['ram']['total']); + $results['ram']['percent'] = ceil(($results['ram']['used'] * 100) / $results['ram']['total']); // Set the swap info to zero. Just in case, I guess. $results['swap']['total'] = 0; $results['swap']['used'] = 0; @@ -404,12 +406,12 @@ $results['devswap'] = array (); foreach ($buffer as $swapdevice) { $results['devswap'][$k]['dev'] = $swapdevice['Name']; - $results['devswap'][$k]['total'] = $swapdevice['AllocatedBaseSize']*1024*1024; - $results['devswap'][$k]['used'] = $swapdevice['CurrentUsage']*1024*1024; + $results['devswap'][$k]['total'] = $swapdevice['AllocatedBaseSize'] * 1024 * 1024; + $results['devswap'][$k]['used'] = $swapdevice['CurrentUsage'] * 1024 * 1024; // Calculate free swap. - $results['devswap'][$k]['free'] = ($swapdevice['AllocatedBaseSize']-$swapdevice['CurrentUsage'])*1024*1024; + $results['devswap'][$k]['free'] = ($swapdevice['AllocatedBaseSize'] - $swapdevice['CurrentUsage']) * 1024 * 1024; // Calculate percent used. - $results['devswap'][$k]['percent'] = ceil($swapdevice['CurrentUsage']*100/$swapdevice['AllocatedBaseSize']); + $results['devswap'][$k]['percent'] = ceil($swapdevice['CurrentUsage'] * 100 / $swapdevice['AllocatedBaseSize']); // Calculate the swap totals. $results['swap']['total'] += $results['devswap'][$k]['total']; $results['swap']['used'] += $results['devswap'][$k]['used']; @@ -419,7 +421,11 @@ } // Calculate the percent used of the total swap space. if ($k > 0) { - $results['swap']['percent'] = ceil($results['swap']['used']/(($results['swap']['total'] <= 0)?1:$results['swap']['total'])*100); + if ($results['swap']['total'] <= 0) { + $results['swap']['percent'] = 0; + } else { + $results['swap']['percent'] = ceil($results['swap']['used'] / $results['swap']['total'] * 100); + } } return $results; } @@ -444,7 +450,7 @@ $results[$k]['size'] = 0; } - $results[$k]['used'] = ($filesystem['Size']-$filesystem['FreeSpace']); + $results[$k]['used'] = ($filesystem['Size'] - $filesystem['FreeSpace']); if ($filesystem['FreeSpace']) { $results[$k]['free'] = $filesystem['FreeSpace']; @@ -453,7 +459,11 @@ } // silence this line, nobody is having a floppy in the drive everytime - @$results[$k]['percent'] = ceil($results[$k]['used']/$results[$k]['size']*100); + if ($results[$k]['size'] <= 0) { + $results[$k]['percent'] = 0; + } else { + $results[$k]['percent'] = ceil($results[$k]['used'] / $results[$k]['size'] * 100); + } $results[$k]['fstype'] = $filesystem['FileSystem']; $results[$k]['disk'] = $typearray[$filesystem['DriveType']]; if ($filesystem['MediaType'] != "" && $filesystem['DriveType'] == 2) { Modified: includes/ups/class.Apcupsd.inc.php =================================================================== --- includes/ups/class.Apcupsd.inc.php 2009-04-14 07:40:43 UTC (rev 185) +++ includes/ups/class.Apcupsd.inc.php 2009-04-14 08:26:52 UTC (rev 186) @@ -1,4 +1,4 @@ -<?php +<?php /** * Apcupsd class * @@ -56,8 +56,8 @@ public function info() { if ( isset ($this->_output) && count($this->_output) > 0) { - $results = Array(); - for ($i = 0; $i < count($this->_output); $i++) { + $results = array (); + for ($i = 0, $cnt_output = count($this->_output); $i < $cnt_output; $i++) { // General info if (preg_match('/^UPSNAME\s*:\s*(.*)$/m', $this->_output[$i], $data)) { $results[$i]['name'] = trim($data[1]); Modified: plugins/mdstatus/class.MDStatus.inc.php =================================================================== --- plugins/mdstatus/class.MDStatus.inc.php 2009-04-14 07:40:43 UTC (rev 185) +++ plugins/mdstatus/class.MDStatus.inc.php 2009-04-14 08:26:52 UTC (rev 186) @@ -1,4 +1,4 @@ -<?php +<?php /** * MDSTAT Plugin * @@ -49,15 +49,12 @@ { $buffer = ""; parent::__construct(( __CLASS__ )); - switch(PSI_PLUGIN_MDSTAT_ACCESS) { - case 'file': - CommonFunctions::rfts("/proc/mdstat", $buffer); + switch (PSI_PLUGIN_MDSTAT_ACCESS) { + case 'file': CommonFunctions::rfts("/proc/mdstat", $buffer); break; - case 'data': - CommonFunctions::rfts(APP_ROOT."/data/mdstat.txt", $buffer); + case 'data': CommonFunctions::rfts(APP_ROOT."/data/mdstat.txt", $buffer); break; - default: - $this->global_error->addConfigError("__construct()", "PSI_PLUGIN_MDSTAT_ACCESS"); + default: $this->global_error->addConfigError("__construct()", "PSI_PLUGIN_MDSTAT_ACCESS"); break; } if (trim($buffer) != "") { @@ -86,7 +83,7 @@ $count = 0; foreach ($parts as $types) { if (trim($types) != "") { - $this->_result['supported_types'][$count++] = substr(trim($types), 1, -1); + $this->_result['supported_types'][$count++] = substr(trim($types), 1, - 1); } } } @@ -96,6 +93,7 @@ } else { $count = 1; } + $cnt_filecontent = count($this->_filecontent); do { $parts = explode(" : ", $this->_filecontent[$count]); $dev = trim($parts[0]); @@ -105,21 +103,23 @@ $this->_result['devices'][$dev]['level'] = $details[1]; } $this->_result['devices'][$dev]['status'] = $details[0]; - for ($i = 2; $i < count($details); $i++) { + for ($i = 2, $cnt_details = count($details); $i < $cnt_details; $i++) { preg_match('/(([a-z0-9])+)(\[([0-9]+)\])(\([SF ]\))?/', trim($details[$i]), $partition); if (count($partition) == 5 || count($partition) == 6) { - $this->_result['devices'][$dev]['partitions'][$partition[1]]['raid_index'] = substr(trim($partition[3]), 1, -1); + $this->_result['devices'][$dev]['partitions'][$partition[1]]['raid_index'] = substr(trim($partition[3]), 1, - 1); if ( isset ($partition[5])) { - $this->_result['devices'][$dev]['partitions'][$partition[1]]['status'] = str_replace(array ("(", ")"), array ("", ""), trim($partition[5])); + $search = array ("(", ")"); + $replace = array ("", ""); + $this->_result['devices'][$dev]['partitions'][$partition[1]]['status'] = str_replace($search, $replace, trim($partition[5])); } else { $this->_result['devices'][$dev]['partitions'][$partition[1]]['status'] = " "; } } } $count++; - $optionline = $this->_filecontent[$count-1].$this->_filecontent[$count]; + $optionline = $this->_filecontent[$count - 1].$this->_filecontent[$count]; if ($pos = strpos($optionline, "k chunk")) { - $this->_result['devices'][$dev]['chunk_size'] = trim(substr($optionline, $pos-3, 3)); + $this->_result['devices'][$dev]['chunk_size'] = trim(substr($optionline, $pos - 3, 3)); } else { $this->_result['devices'][$dev]['chunk_size'] = -1; } @@ -129,23 +129,23 @@ $this->_result['devices'][$dev]['pers_superblock'] = 1; } if ($pos = strpos($optionline, "algorithm")) { - $this->_result['devices'][$dev]['algorithm'] = trim(substr($optionline, $pos+9, 2)); + $this->_result['devices'][$dev]['algorithm'] = trim(substr($optionline, $pos + 9, 2)); } else { $this->_result['devices'][$dev]['algorithm'] = -1; } if (preg_match('/(\[[0-9]?\/[0-9]\])/', $optionline, $res)) { $slashpos = strpos($res[0], '/'); - $this->_result['devices'][$dev]['registered'] = substr($res[0], 1, $slashpos-1); - $this->_result['devices'][$dev]['active'] = substr($res[0], $slashpos+1, strlen($res[0])-$slashpos-2); + $this->_result['devices'][$dev]['registered'] = substr($res[0], 1, $slashpos - 1); + $this->_result['devices'][$dev]['active'] = substr($res[0], $slashpos + 1, strlen($res[0]) - $slashpos - 2); } else { $this->_result['devices'][$dev]['registered'] = -1; $this->_result['devices'][$dev]['active'] = -1; } - if (preg_match(('/([a-z]+)([ ]?)=([ ]?)([0-9\.]+)%/'), $this->_filecontent[$count+1], $res) || (preg_match(('/([a-z]+)([ ]?)=([ ]?)([0-9\.]+)/'), $optionline, $res))) { - list ($this->_result['devices'][$dev]['action']['name'], $this->_result['devices'][$dev]['action']['percent']) = explode("=", str_replace("%", "", $res[0])); - if (preg_match(('/([a-z]*=[0-9\.]+[a-z]+)/'), $this->_filecontent[$count+1], $res)) { + if (preg_match(('/([a-z]+)([ ]?)=([ ]?)([0-9\.]+)%/'), $this->_filecontent[$count + 1], $res) || (preg_match(('/([a-z]+)([ ]?)=([ ]?)([0-9\.]+)/'), $optionline, $res))) { + list ($this->_result['devices'][$dev]['action']['name'],$this->_result['devices'][$dev]['action']['percent']) = explode("=", str_replace("%", "", $res[0])); + if (preg_match(('/([a-z]*=[0-9\.]+[a-z]+)/'), $this->_filecontent[$count + 1], $res)) { $time = explode("=", $res[0]); - list ($this->_result['devices'][$dev]['action']['finish_time'], $this->_result['devices'][$dev]['action']['finish_unit']) = sscanf($time[1], '%f%s'); + list ($this->_result['devices'][$dev]['action']['finish_time'],$this->_result['devices'][$dev]['action']['finish_unit']) = sscanf($time[1], '%f%s'); } else { $this->_result['devices'][$dev]['action']['finish_time'] = -1; $this->_result['devices'][$dev]['action']['finish_unit'] = -1; @@ -159,11 +159,13 @@ } else { $count++; } - } while (count($this->_filecontent) > $count); - $lastline = $this->_filecontent[count($this->_filecontent)-2]; + } while ($cnt_filecontent > $count); + $lastline = $this->_filecontent[$cnt_filecontent - 2]; if (strpos($lastline, "unused devices") !== false) { $parts = explode(":", $lastline); - $this->_result['unused_devs'] = trim(str_replace(array ("<", ">"), array ("", ""), $parts[1])); + $search = array ("<", ">"); + $replace = array ("", ""); + $this->_result['unused_devs'] = trim(str_replace($search, $replace, $parts[1])); } else { $this->_result['unused_devs'] = -1; } @@ -176,8 +178,9 @@ */ public function xml() { + $class = __CLASS__ ; $dom = new DOMDocument('1.0', 'UTF-8'); - $root = $dom->createElement("Plugin_". __CLASS__); + $root = $dom->createElement("Plugin_".$class); $dom->appendChild($root); $xml = simplexml_import_dom($dom); if ( empty($this->_result)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |