pax_global_header00006660000000000000000000000064115413162200014505gustar00rootroot0000000000000052 comment=dc5ff84bab53849fb650a4c30d864fd42ffd6b2b extplorer-2.1.0b6+dfsg.3/000077500000000000000000000000001154131622000150415ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/CHANGELOG.txt000066400000000000000000000261701154131622000170770ustar00rootroot00000000000000**************************** Changelog for eXtplorer Version $Id: CHANGELOG.txt 160 2009-11-16 05:58:30Z soeren $ **************************** - updated to ExtJS 3.0.3 --- version 2.1.0 beta5 released --- - added nice slide-in message box for success messages - removed deprecated ZIP library --- version 2.1.0 beta4 released --- - changed Save/Reopen/Cancel buttons in Edit View to appear in the top toolbar - changed directory drop-down lists to a vista-like location bar - new: Flash Upload! Using SWFUploadPanel - added pluggable authentication system --- version 2.1.0 beta3 released --- - changed default state of "Show Directories" to enabled - changed Edit Window to appear in a new Tab per File - assigned Keyboard Events to the Grid (Delete, Ctrl-A, Ctrl-C, Ctrl-X) - updated to ExtJS3 RC2 - updated EditArea to version 0.8.1.1 (loads faster and is more stable) --- version 2.1.0 beta released --- - allowing Download by users with "view" permission - updated Services-JSON class to version 0.9.0 - updated GeSHi to version 1.0.8.3 - moved from ExtJS 1.1 to ExtJS 2.2 -- version 2.0.1 released (2009-01-15) ---- - added script for WebDAV access (disabled by default, requires 2 database tables and DB login credentials) - fixed a security issue within script initialization -- version 2.0.0 stable released (2008-08-05) ---- - added .csv to the editable file types - when copying/moving multiple directories, only the first directory was processed - fixed failing extraction of larger archives ("Failed to connect to the server") - updated Editarea to 0.7.1.3 - fixed browsing & working on external FTP servers - fixed dirselectors not working in FTP mode - fixed file-mode switch link -- version 2.0.0 RC4 released (2008-05-31) ---- - fixed installation package for Joomla! 1.5 - added Danish Language Files (thanks to Ronny Buelund!) -- version 2.0.0 RC3 released (2008-05-31) ---- - [ 1944163 ] In germanf.php fehlt ein Eintrag - fixed compatibility problem with JomComment+MyBlog (Services_JSON was redeclared) - switched from "Codepress" to "EditArea" (http://www.cdolivet.net/index.php?page=editArea), which gives a lot of advantages: * faster loading of large files * built-in toggle feature * built-in Find, Search+Replace and Jump-To-Line Features -- version 2.0.0 RC3 released (2008-05-26) ---- - fixed Cross-Site Scripting & File Disclosure Vulnerability - fixed MimeType detection for search results -- version 2.0.0 RC2 released (2008-02-10) ---- - fixed Standalone scripts.zip extraction error - re-added System Info (moved to "About" Window) - implemented basic UTF-8 support for file mode - changed [ 1800028 ] Need to enlarge file edit box, or allow for full screen - fixed [ 1791706 ] incorrect error reporting - fixed [ 1790536 ] Browsing directory incorrect - fixed [ 1782937 ] when unzipping a zip containing a zip: zip not present! -- version 2.0.0 RC1 released ---- - fixed [ 1755938 ] status bar messages truncated when path is too long - fixed [ 1759450 ] No textfield and browse button in upload file on IE7 - fixed [ 1762000 ] copy a file from a subfolder to "root" folder doesn't work - fixed [ 1766233 ] Chmod error in FTP mode - fixed [ 1761083 ] IE7 closing button & seach action (file search - subdirectories weren't included) --- version 2.0.0 beta5 released ---- - added Swedish and Slovenian Language Files - set "zip" as default archive type - added message box that prevents eXtplorer usage on Joomla! 1.0.x versions >= 1.0.13 and explains why. - added Joomla! version check - implemented some changes for compatibility on Windows Systems with IIS running --- version 2.0.0 beta4 released ---- - fixed header-only problems on Mambo/Joomla! < 1.0.10 - added Server-to-Server transfer capabilities (using fopen, cURL or fsockopen) - fixed [#6092] Some strings remained hardcoded - fixed [ 1754755 ] Save button when uploading file not translated - fixed the Frontend Browsing part (when being used as a Joomla! component) - updated finnish and french language file - updated ExtJS to 1.1 RC1, included Konqueror Patch - fixed [ 1752904 ] error on admin dialog opening - fixed [ 1752901 ] Combo on Login page doesn't work in IE6 and 7 - fixed [ 1752534 ] Non-static method ext_Lang::msg() - removed dialog_status from onHide function for the dialog - fixed bugs in the language files with undefined properties of non-existant var $_VERSION - fixed bug with undefined var $acl --- version 2.0.0 beta4 released ---- - fixed a bug which caused that a maximum of 50 directories in the same level were listed in the tree, not all - fixed a bug with CodePress - didn't allow to edit files (when used in Joomla!) - added a check to the standalone version to extract the contents of the file "scripts.zip" online and throw a warning if it doesn't succeed. - removed the status bar from the Dialogs, moved the status bat into the Paging Toolbar - added CSS styles to make the dropdown lists smaller --- version 2.0.0 beta3 released ---- - re-activated User Management for the stand-alone version - fixed a critical error which caused deletion of directories although "Cancel" was clicked - fixed an error which prevented correct listing of numeric directories/files --- version 2.0.0 beta2 released ---- - added double-click action which opens the Context Menu in the grid (Opera and Konqueror don't allow custom right-click menus) - applied patches to ExtJS to allow usage with Konqueror - added new ext_Lang class to be able to escape quotes and line endings for using it in JavaScript Strings - fixed node context menu displaying outside of view - added the fetchscript.php file to bundle and compress javascript and stylesheet files (Sending compressed js and css files significantly reduces the download size for ExtJS) --- version 2.0.0 beta1 released ---- - fixed the "symlink points to target which can't be accessed" problem - fixed "out of memory" problems - directory names changed (no directories starting with a '.' anymore now) - completely changed layout: directory tree, file grid with renaming, context menu, drag&drop - added the ExtJS 1.0.1a library --- version 1.6.0 released ---- - archives do not contain the whole file path anymore now, but only the relative one - added possibility to specify a directory where an archive file is saved to (allows to create archives even when the currenty directory is not writable) - added the great CodePress Sytnax Highlighting Editor (http://codepress.fermads.net/) - removed the extra spaces in the directory path - fixed the "Strict Standards" error (non-static method called statically) --- version 1.5.1 released ---- - added ftp logout function to allow different ftp logins during one admin session - added possibility to specify an FTP host name and port (other than localhost:21) - bookmark functionality fixes (thanks to pokemon!) - fixed a critical error where wrong permissions would be applied to an uploaded file in FTP mode (leading to a 403 error on some servers) --- version 1.5.0 released --- - changed the way errors are displayed (+nice styling). - added support for *symbolic links*. You can create and delete links, but not change the target. You will have to create a new link to do so. - joomlaXplorer is an FTP client now! - added PEAR'S Net_FTP package to allow local FTP access/transactions - changed Archiving Section to ajax-based step-by-step system to prevent time-outs - added PEAR Package File_Archive to allow better archive handling - changed file links in the directory list to "Edit" or "Download" - added a simple file-based bookmark system - changed the download function to allow larger downloads (100MB+) - replaced hardcoded english strings with new variables (thanks to Paulino Michelazzo!) --- version 1.4.0 released --- - added a new "View File" feature to dispay a file's source code with GeSHi syntax highlighting - checking now, if a remembered directory exists (it might have been deleted meanwhile) - added line number / column monitoring on the "Edit file" form it also allows to jump to a certain line number - added feature to allow overwriting existing files on upload - fixed directory chmod issues Details: when running a *chmod* command on files and directories with permissions that do not include "execute", directories would become inaccessible (e.g. d--------- (root). Tip by John, thanks!) - added basic frontend directory browsing and file download feature (not comparable to Docman or ReMOSitory, it's just a directory browser, no descriptions, no download counter!) !DISABLED BY DEFAULT! Enable by editing the file /components/com_extplorer/configuration.jx.php --- version 1.3.3 released --- - fixed a wrong image source (menu_divider.gif => png) - fixed a fatal error when using joomlaXplorer on installations with the SafeMode hack - added Bulgarian language (thanks to Ivo Apostolov) - fixed download problems under Mambo 4.5.2.3 with gzip compression = On --- version 1.3.2 released --- - fixed various problems (create file/directory, archiving, download) with $mosConfig_absolute_path --- version 1.3.1 released --- - last visited directory is stored in the session for quick go-back - updated finnish language - added Icelandic language - fixed an error which caused icons not to display in directories outside of the Joomla/Mambo root directory --- version 1.3.0 released --- - the home directory is now ONE LEVEL ABOVE the joomla/mambo directory. If you have joomla inside /public_html/ You will be able to browse to the root directory / ! Check if you want this behaviour. When not, see /config/conf.php line 41.... - created archives don't contain the full path anymore, but the relative path from the mosConfig_absolute_path - converted transparent .png to .gif - removed the IE transparency fix, which caused IE to slow down (really long load times!) - updated the language files - "Chmod", "Edit" and "Delete" links are not active now, when the file is not chmodable, writable or deletable - delete alert box will display the name of the file that is to be deleted - added a checkbox to chmod form, so the user can decide wether to chmod rescursively or not - added a rename feature - current user ID and group ID (on a *nix OS) are displayed correctly now - component name changed to "joomlaXplorer" --- version 1.2.1 released --- - bug fix: File Upload Icon is grey although file uploads are allowed - bug fix: [#4944] mamboXplorer strips \r\n to just rn - added Unzip / Unarchive Feature (Feature Request #6171) to unpack archive types: zip, gz, bz2 directly on your webspace. - fix for the PNG Fix. --- version 1.2a released --- - new language variables + more languages - nice X - Icon for components Menu. thanks to Michael! - added PNG transparency fix for IE - added Owner / Group information to File List - bug fix: "$ok @cmod" changed to "$ok = @chmod" --- version 1.2 released --- - removed full path from Archive ( tar.gz /bzip2 Archive Creation) - added ability to change permissions recursiveley through all subdirectories --- version 1.1 released --- extplorer-2.1.0b6+dfsg.3/LICENSE_GPL.txt000066400000000000000000000447031154131622000173760ustar00rootroot00000000000000GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 Library 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. Copyright (C) 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 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. , 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 Library General Public License instead of this License. Linking Joomla! statically or dynamically with other modules is making a combined work based on Joomla!. Thus, the terms and conditions of the GNU General Public License cover the whole combination. In addition, as a special exception, the copyright holders of Joomla! give you permission to combine Joomla! with free software programs or libraries that are released under the GNU LGPL and with independent extensions that communicate with Joomla! solely through the Joomla! extension interface. You may copy and distribute such a system following the terms of the GNU GPL for Joomla! and the licenses of the extension, even if you do not include the source code of that extension. Note that people who make modified versions of Joomla! are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception. extplorer-2.1.0b6+dfsg.3/LICENSE_MPL.txt000066400000000000000000000622311154131622000174000ustar00rootroot00000000000000 MOZILLA PUBLIC LICENSE Version 1.1 --------------- 1. Definitions. 1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. 1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. 1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. 1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. 1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. 1.5. "Executable" means Covered Code in any form other than Source Code. 1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. 1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. 1.8. "License" means this document. 1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. 1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. B. Any new file that contains any part of the Original Code or previous Modifications. 1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. 1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. 1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. 1.12. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. Source Code License. 2.1. The Initial Developer Grant. The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. 2.2. Contributor Grant. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. 3. Distribution Obligations. 3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. 3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. 3.3. Description of Modifications. You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. 3.4. Intellectual Property Matters (a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. (b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. (c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. 3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.6. Distribution of Executable Versions. You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. 3.7. Larger Works. You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. 4. Inability to Comply Due to Statute or Regulation. If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Application of this License. This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. 6. Versions of the License. 6.1. New Versions. Netscape Communications Corporation ("Netscape") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. 6.2. Effect of New Versions. Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License. 6.3. Derivative Works. If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) 7. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 8. TERMINATION. 8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. 8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as "Participant") alleging that: (a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. (b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. 8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. 8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. 9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. 10. U.S. GOVERNMENT END USERS. The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. 11. MISCELLANEOUS. This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. 12. RESPONSIBILITY FOR CLAIMS. As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. 13. MULTIPLE-LICENSED CODE. Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the NPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. EXHIBIT A -Mozilla Public License. ``The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is ______________________________________. The Initial Developer of the Original Code is ________________________. Portions created by ______________________ are Copyright (C) ______ _______________________. All Rights Reserved. Contributor(s): ______________________________________. Alternatively, the contents of this file may be used under the terms of the _____ license (the "[___] License"), in which case the provisions of [______] License are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the [___] License." [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.]extplorer-2.1.0b6+dfsg.3/README.txt000066400000000000000000000151351154131622000165440ustar00rootroot00000000000000---------------------------------------------------------------------------------------------------- eXtplorer 2.1.0 - README ---------------------------------------------------------------------------------------------------- Requirements: ------------------- * PHP > 4.3 Supported Browsers: ------------------- * Internet Explorer >= 6.0 * Firefox >= 2 * Safari >= 2 * Google Chrome/Iron >= 1 * Konqueror (KDE > 3.5) * Opera 9+ Opera and Konqueror don't allow custom Context Menus. Use Double Click on a record in the grid instead. Installation as Standalone Script ------------------- 1. Unpack the Archive (where this README.txt is contained) to a local directory 2. Login to your server via FTP and create a subdirectory for eXtplorer 3. Upload all eXtplorer files from your computer into the subdirectory on the server 4. Browse to the URL http:/// and login. Remember to immediately change the admin password. 5. If you can't change your admin password, this is most likely because the user file is not writable. With your FTP program browse to the eXtplorer directory /config and make the file ".htusers.php" writable (CHMOD 666). Done. Installation into Joomla!/Mambo: ------------------- 1. Login to Joomla!'s Administration Backend /administrator 2. Go to "Components", "Install/Uninstall". 3. Browse to the file "com_eXtplorer_xx.tar.gz" on your computer and click on "Upload File & Install". Done. You can now access eXtplorer through "Components" => "eXtplorer" License: -------------------- The software is dual-licensed and subject to the - Mozilla Public License Version 1.1 (the "License") or - to the terms of the GNU General Public License Version 2 or later (the "GPL"); You may not use this software except in compliance with one of these Licenses. You may obtain a copy of the Mozilla Public License at http://www.mozilla.org/MPL/. You may obtain a copy of the GNU General Public License at http://www.gnu.org/copyleft/gpl.html. Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. Alternatively, the software may be used under the terms of the GNU General Public License Version 2 or later (the "GPL"), in which case the provisions of the GPL are applicable instead of those above. If you wish to allow use of your version of this software only under the terms of the GPL and not to allow others to use your version of this file under the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL. If you do not delete the provisions above, a recipient may use your version of this software under either the MPL or the GPL. Credits: -------------------- eXtplorer is based on QuiXplorer 2.3.1 (available at http://quixplorer.sourceforge.net/). eXtplorer makes use of the fabulous ExtJS Javascript Library by Jack Slocum, Ext JS, LCC (http://extjs.com/), and that does indeed explain the name eXtplorer. Please note that ExtJS is released under the terms of the GNU General Public license version 3 (GPL v3). Because the MPL and the GPL are not compliant to each other, you are not allowed to use the ExtJS library in eXtplorer if you decide to use and/or distribute eXtplorer under the terms of the MPL. ---------------------------------------------------------------------------------------------------- Facts, you should know of: * If you're running in trouble, because you don't have permissions to chmod() or write to files: That's a fact! Switch to FTP mode (or file mode if you're in ftp mode) * eXtplorer is a multi-language Script. The Language is automatically picked from the browser (or from the global language in Joomla!/Mambo) * eXtplorer comes with an User Management feature. As Joomla!/Mambo have their own framework, User Management isn't available in non-standalone mode. * All users must login to access eXtplorer. You can allow visitors to view files by creating a "guest" account with "View" permissions. * In Joomla!/Mambo the access to this script is restricted to Super Administrators by default. If you want to change this, edit the file header of "admin.extplorer.php" and change the following: **** if (!$acl->acl_check( 'administration', 'config', 'users', $my->usertype )) { mosRedirect( 'index2.php', _NOT_AUTH ); } **** to something different. ---------------------------------------------------------------------------------------------------- Troubleshooting: * Some browsers (e.g. Konqueror) may want to save a download as index.php. To solve this, just supply the correct name when saving. * Internet Explorer may behave strangely when downloading files. If you open the php-file download, the real download window should open. * Mozilla may add the extension 'php' to a file being downloaded. Save as 'any file (*.*)' and remove the 'php' extension to get the proper name. (NOTE: for php-files, this extension is correct) * If you are unable to perform certain operations, try using an FTP-chmod to set the directories to 755 and the files to 644. * If you don't know the full name of a directory on your website, you can use a php-script containing '' to get it. * The Search Function uses PCRE regex syntax to search; though wildcards like * and ? should work (like with 'ls' on Linux), it may show unexpected behaviour. * User-management may logout unexpectedly or show other strange behaviour. This is due to a bug in PHP 4.1.2; we would advise you to upgrade to a higher version. ---------------------------------------------------------------------------------------------------- Users: * You can easily magage users using the "admin" section of eXtplorer. * Standard, there is only one user: "admin", with password "admin"; you should change this password immediately. ---------------------------------------------------------------------------------------------------- Languages: * Users can select one of all available languages on login. ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- adapted for Joomla!: Soeren Eberhardt original author: the QuiX project ---------------------------------------------------------------------------------------------------- extplorer-2.1.0b6+dfsg.3/admin.extplorer.php000066400000000000000000000160651154131622000206750ustar00rootroot00000000000000usertype != 'Super Administrator') { $url = htmlspecialchars($_SERVER['PHP_SELF']); if (headers_sent()) { echo "\n"; } else { @ob_end_clean(); // clear output buffer header( 'HTTP/1.1 403 Forbidden' ); header( "Location: ". $url ); } } } // The joomlaXplorer version number $GLOBALS['ext_version'] = '2.1.0'; $GLOBALS['ext_home'] = 'http://extplorer.sourceforge.net'; //------------------------------------------------------------------------------ if( defined( 'E_STRICT' ) ) { // Suppress Strict Standards Warnings error_reporting(E_ALL); } //------------------------------------------------------------------------------ umask(0002); // Added to make created files/dirs group writable //------------------------------------------------------------------------------ require_once( dirname( __FILE__) . "/include/init.php" ); // Init /** Needed to keep the filelist in the XML installer file up-to-date $path = dirname(__FILE__); $filelist = extReadDirectory( $path, '.', true, true ); $contents =''; foreach($filelist as $file ) { if( is_dir( $file ) || strstr(dirname($file), "scripts" )) continue; $filepath = str_replace( $path.'/', '', $file ); $contents .= ''.$filepath."\n"; } file_put_contents( 'extplorer_filelist.txt', $contents ); */ //------------------------------------------------------------------------------ if( $action == "post" ) $action = extGetParam( $_REQUEST, "do_action" ); elseif( empty( $action )) $action = "list"; if( $action != 'show_error') { ext_Result::init(); } if( defined( '_LOGIN_REQUIRED')) return; // Empty the output buffer if this is a XMLHttpRequest if( ext_isXHR() ) { error_reporting(0); while( @ob_end_clean() ); } if( file_exists( _EXT_PATH . '/include/'. strtolower(basename( $action )) .'.php') ) { require_once( _EXT_PATH . '/include/'. strtolower(basename( $action )) .'.php'); } $classname = 'ext_'.$action; if( class_exists(strtolower($classname)) && is_callable(array($classname,'execaction'))) { $handler = new $classname(); $handler->execAction( $dir, $item ); } else { switch($action) { // Execute actions, which are not in class file //------------------------------------------------------------------------------ // COPY/MOVE FILE(S)/DIR(S) case "copy": case "move": require_once( _EXT_PATH ."/include/copy_move.php" ); copy_move_items($dir); break; //------------------------------------------------------------------------------ // SEARCH FOR FILE(S)/DIR(S) case "search": require_once( _EXT_PATH ."/include/search.php" ); search_items($dir); break; //------------------------------------------------------------------------------ // USER-ADMINISTRATION case "admin": require_once( _EXT_PATH . "/include/admin.php" ); show_admin($dir); break; //------------------------------------------------------------------------------ // BOOKMARKS case 'modify_bookmark': $task = extGetParam( $_REQUEST, 'task' ); require_once( _EXT_PATH.'/include/bookmarks.php' ); modify_bookmark( $task, $dir ); break; //------------------------------------------------------------------------------ case 'show_error': ext_Result::sendResult('', false, ''); break; case'get_about': require_once( _EXT_PATH . "/include/system_info.php" ); system_info(); break; //------------------------------------------------------------------------------ // DEFAULT: LIST FILES & DIRS case "getdircontents": require_once( _EXT_PATH . "/include/list.php" ); $requestedDir = stripslashes(str_replace( '_RRR_', '/', extGetParam( $_REQUEST, 'node' ))); if( empty($requestedDir) || $requestedDir == 'ext_root') { $requestedDir = $dir; } send_dircontents( $requestedDir, extGetParam($_REQUEST,'sendWhat','files') ); break; case 'get_dir_selects': echo get_dir_selects( $dir ); break; case 'chdir_event': require_once( _EXT_PATH.'/include/bookmarks.php' ); $response = Array( 'bookmarks' => list_bookmarks($dir) ); $classname = class_exists('ext_Json') ? 'ext_Json' : 'Services_JSON'; $json = new $classname(); echo $json->encode( $response ); break; case 'get_image': require_once( _EXT_PATH . "/include/view.php" ); ext_View::sendImage( $dir, $item ); case 'ftp_authentication': case 'ssh2_authentication': case 'extplorer_authentication': $auth_info = explode('_', $action); $auth_classname = 'ext_'.$action; require_once(_EXT_PATH.'/include/authentication/'.$auth_info[0].'.php'); $auth_plugin = new $auth_classname(); $auth_plugin->onShowLoginForm(); break; default: require_once( _EXT_PATH . "/include/list.php" ); ext_List::execAction($dir); //------------------------------------------------------------------------------ } // end switch-statement } //------------------------------------------------------------------------------ // Disconnect from ftp server if( ext_isFTPMode() ) { $GLOBALS['FTPCONNECTION']->disconnect(); } // Empty the output buffer if this is a XMLHttpRequest if( ext_isXHR() ) { ext_exit(); } extplorer-2.1.0b6+dfsg.3/application.php000066400000000000000000000122141154131622000200550ustar00rootroot00000000000000 $lang) { if(strpos($_AL, $K)===0) return file_exists( _EXT_PATH.'/languages/'.$lang.'.php' ) ? $lang : $default; } // Try to detect any language if not yet detected', foreach($GLOBALS['_LANG'] as $K => $lang) { if(strpos($_AL, $K)!==false) return file_exists( _EXT_PATH.'/languages/'.$lang.'.php' ) ? $lang : $default; } foreach($GLOBALS['_LANG'] as $K => $lang) { if(preg_match("/[\[\( ]{$K}[;,_\-\)]/",$_UA)) return file_exists( _EXT_PATH.'/languages/'.$lang.'.php' ) ? $lang : $default; } // Return default language if language is not yet detected', return $default; } } // Define all available languages', // WARNING: uncomment all available languages $GLOBALS['_LANG'] = array( 'af' => 'afrikaans', 'ar' => 'arabic', 'bg' => 'bulgarian', 'ca' => 'catalan', 'cs' => 'czech', 'da' => 'danish', 'de' => 'german', 'el' => 'greek', 'en' => 'english', 'es' => 'spanish', 'et' => 'estonian', 'fi' => 'finnish', 'fr' => 'french', 'gl' => 'galician', 'he' => 'hebrew', 'hi' => 'hindi', 'hr' => 'croatian', 'hu' => 'hungarian', 'id' => 'indonesian', 'it' => 'italian', 'ja' => 'japanese', 'ko' => 'korean', 'ka' => 'georgian', 'lt' => 'lithuanian', 'lv' => 'latvian', 'ms' => 'malay', 'nl' => 'dutch', 'no' => 'norwegian', 'pl' => 'polish', 'pt' => 'portuguese', 'ro' => 'romanian', 'ru' => 'russian', 'sk' => 'slovak', 'sl' => 'slovenian', 'sq' => 'albanian', 'sr' => 'serbian', 'sv' => 'swedish', 'th' => 'thai', 'tr' => 'turkish', 'uk' => 'ukrainian', 'zh' => 'simplified_chinese' ); extplorer-2.1.0b6+dfsg.3/config/000077500000000000000000000000001154131622000163065ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/config/.htaccess000066400000000000000000000000161154131622000201010ustar00rootroot00000000000000deny from all extplorer-2.1.0b6+dfsg.3/config/.htusers.php000066400000000000000000000006551154131622000206000ustar00rootroot00000000000000 extplorer-2.1.0b6+dfsg.3/config/conf.php000066400000000000000000000054241154131622000177510ustar00rootroot00000000000000 extplorer-2.1.0b6+dfsg.3/config/index.html000066400000000000000000000000541154131622000203020ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/config/mimes.php000066400000000000000000000165341154131622000201420ustar00rootroot00000000000000 array(extGetParam( $GLOBALS["mimes"], 'dir', 'Dir' ),"extension/folder.png"), "exe" => array(extGetParam( $GLOBALS["mimes"], 'exe', 'exe' ),"extension/exe.png","\.exe$|\.com$|\.bin$"), "file" => array(extGetParam( $GLOBALS["mimes"], 'file', 'file' ),"extension/document.png") ); $GLOBALS["used_mime_types"]=array( // text "text" => array(extGetParam( $GLOBALS["mimes"], 'text', 'Text' ), "extension/txt.png", "\.txt$"), // programming "php" => array(extGetParam( $GLOBALS["mimes"], 'php', 'php' ), "extension/php.png", "\.php$"), "php3" => array(extGetParam( $GLOBALS["mimes"], 'php3', 'php3' ), "extension/php3.png", "\.php3$"), "php4" => array(extGetParam( $GLOBALS["mimes"], 'php4', 'php4' ), "extension/php4.png", "\.php4$"), "php5" => array(extGetParam( $GLOBALS["mimes"], 'php5', 'php5' ), "extension/php5.png", "\.php5$"), "phtml" => array(extGetParam( $GLOBALS["mimes"], 'phtml', 'phtml' ), "extension/phtml.png", "\.phtml$"), "inc" => array(extGetParam( $GLOBALS["mimes"], 'inc', 'inc' ), "extension/inc.png", "\.inc$"), "sql" => array(extGetParam( $GLOBALS["mimes"], 'sql', 'SQL' ), "extension/sql.png", "\.sql$"), "pl" => array(extGetParam( $GLOBALS["mimes"], 'pl', 'Perl' ), "extension/pl.png", "\.pl$"), "cgi" => array(extGetParam( $GLOBALS["mimes"], 'cgi', 'CGI' ), "extension/cgi.png", "\.cgi$"), "py" => array(extGetParam( $GLOBALS["mimes"], 'py', 'Python' ), "extension/py.png", "\.py$"), "sh" => array(extGetParam( $GLOBALS["mimes"], 'sh', 'Shell' ), "extension/sh.png", "\.sh$"), "c" => array(extGetParam( $GLOBALS["mimes"], 'c', 'C' ), "extension/c.png", "\.c$"), "cc" => array(extGetParam( $GLOBALS["mimes"], 'cc', 'CC' ), "extension/cc.png", "\.cc$"), "cpp" => array(extGetParam( $GLOBALS["mimes"], 'cpp', 'CPP' ), "extension/cpp.png", "\.cpp$"), "cxx" => array(extGetParam( $GLOBALS["mimes"], 'cxx', 'CXX' ), "extension/cxx.png", "\.cxx$"), "h" => array(extGetParam( $GLOBALS["mimes"], 'h', 'H' ), "extension/h.png", "\.h$"), "hpp" => array(extGetParam( $GLOBALS["mimes"], 'hpp', 'hpp' ), "extension/hpp.png", "\.hpp$"), "java" => array(extGetParam( $GLOBALS["mimes"], 'java', 'Java' ), "extension/java.png", "\.java$"), "class" => array(extGetParam( $GLOBALS["mimes"], 'class', 'Class' ), "extension/class.png", "\.class$"), "jar" => array(extGetParam( $GLOBALS["mimes"], 'jar', 'Jar' ), "extension/jar.png", "\.jar$"), // browser "htm" => array(extGetParam( $GLOBALS["mimes"], 'htm', 'HTML' ), "extension/htm.png", "\.htm$"), "html" => array(extGetParam( $GLOBALS["mimes"], 'html', 'HTML' ), "extension/html.png", "\.html$"), "shtml" => array(extGetParam( $GLOBALS["mimes"], 'shtml', 'sHTML' ), "extension/shtml.png", "\.shtml$"), "dhtml" => array(extGetParam( $GLOBALS["mimes"], 'dhtml', 'dHTML' ), "extension/dhtml.png", "\.dhtml$"), "xhtml" => array(extGetParam( $GLOBALS["mimes"], 'xhtml', 'XHTML' ), "extension/xhtml.png", "\.xhtml$"), "xml" => array(extGetParam( $GLOBALS["mimes"], 'xml', 'XML' ), "extension/xml.png", "\.xml$"), "js" => array(extGetParam( $GLOBALS["mimes"], 'js', 'JS' ), "extension/js.png", "\.js$"), "css" => array(extGetParam( $GLOBALS["mimes"], 'css', 'CSS' ), "extension/css.png", "\.css$"), // images "gif" => array(extGetParam( $GLOBALS["mimes"], 'gif', 'GIF' ), "extension/gif.png", "\.gif$"), "jpg" => array(extGetParam( $GLOBALS["mimes"], 'jpg', 'JPG' ), "extension/jpg.png", "\.jpg$"), "jpeg" => array(extGetParam( $GLOBALS["mimes"], 'jpeg', 'JPEG' ), "extension/jpeg.png", "\.jpeg$"), "bmp" => array(extGetParam( $GLOBALS["mimes"], 'bmp', 'Bitmap' ), "extension/bmp.png", "\.bmp$"), "png" => array(extGetParam( $GLOBALS["mimes"], 'png', 'PNG' ), "extension/png.png", "\.png$"), // compressed "zip" => array(extGetParam( $GLOBALS["mimes"], 'zip', 'ZIP' ), "extension/zip.png", "\.zip$"), "tar" => array(extGetParam( $GLOBALS["mimes"], 'tar', 'TAR' ), "extension/tar.png", "\.tar$"), "tgz" => array(extGetParam( $GLOBALS["mimes"], 'tgz', 'Tar/GZ' ), "extension/tgz.png", "\.tgz$"), "gz" => array(extGetParam( $GLOBALS["mimes"], 'gz', 'GZip' ), "extension/gz.png", "\.gz$"), "bz2" => array(extGetParam( $GLOBALS["mimes"], 'bz2', 'Bzip2' ), "extension/bz2.png", "\.bz2$"), "tbz" => array(extGetParam( $GLOBALS["mimes"], 'tbz', 'Tar/Bz2' ), "extension/tbz.png", "\.tbz$"), "rar" => array(extGetParam( $GLOBALS["mimes"], 'rar', 'RAR' ), "extension/rar.png", "\.rar$"), // music "mp3" => array(extGetParam( $GLOBALS["mimes"], 'mp3', 'Mp3' ), "extension/mp3.png", "\.mp3$"), "wav" => array(extGetParam( $GLOBALS["mimes"], 'wav', 'WAV' ), "extension/wav.png", "\.wav$"), "midi" => array(extGetParam( $GLOBALS["mimes"], 'midi', 'Midi' ), "extension/midi.png", "\.mid$"), "rm" => array(extGetParam( $GLOBALS["mimes"], 'real', 'Real Media' ), "extension/rm.png", "\.rm$"), "ra" => array(extGetParam( $GLOBALS["mimes"], 'real', 'Real Audio' ), "extension/ra.png", "\.ra$"), "ram" => array(extGetParam( $GLOBALS["mimes"], 'real', 'Real Media' ), "extension/ram.png", "\.ram$"), "pls" => array(extGetParam( $GLOBALS["mimes"], 'pls', 'pls' ), "extension/pls.png", "\.pls$"), "m3u" => array(extGetParam( $GLOBALS["mimes"], 'm3u', 'm3u' ), "extension/m3u.png", "\.m3u$"), // movie "mpg" => array(extGetParam( $GLOBALS["mimes"], 'mpg', 'MPG' ), "extension/mpg.png", "\.mpg$"), "mpeg" => array(extGetParam( $GLOBALS["mimes"], 'mpeg', 'MPG'), "extension/mpeg.png", "\.mpeg$"), "mov" => array(extGetParam( $GLOBALS["mimes"], 'mov', 'MOV' ), "extension/mov.png", "\.mov$"), "avi" => array(extGetParam( $GLOBALS["mimes"], 'avi', 'AVI' ), "extension/avi.png", "\.avi$"), "swf" => array(extGetParam( $GLOBALS["mimes"], 'swf', 'SWF' ), "extension/swf.png", "\.swf$"), // Micosoft / Adobe "doc" => array(extGetParam( $GLOBALS["mimes"], 'doc', 'Word' ), "extension/doc.png", "\.doc$"), "docx" => array(extGetParam( $GLOBALS["mimes"], 'docx', 'Word' ), "extension/docx.png", "\.docx$"), "xls" => array(extGetParam( $GLOBALS["mimes"], 'xls', 'Excel' ), "extension/xls.png", "\.xls$"), "xlsx" => array(extGetParam( $GLOBALS["mimes"], 'xlsx', 'Excel' ), "extension/xlsx.png", "\.xlsx$"), "pdf" => array(extGetParam( $GLOBALS["mimes"], 'pdf', 'PDF' ), "extension/pdf.png", "\.pdf$") ); //------------------------------------------------------------------------------ extplorer-2.1.0b6+dfsg.3/configuration.ext.php000066400000000000000000000012111154131622000212130ustar00rootroot00000000000000 extplorer-2.1.0b6+dfsg.3/eXtplorer.ico000066400000000000000000000021761154131622000175270ustar00rootroot00000000000000 h(  2ȌؿzԶfԷfؿzȌ2ΚԵeѰYѰYѰYѰYѰYѰYԵeΚڿwͫKͫK׾w̘͙͚ϝѡ͘ѲZؿydžʥ<ɤ;άNΠΟΟΟΟǓɤ<džۼ2á@ƦIٺΤ4Ŏǝ1á@ۼ2©a/мҴdêkêkêkbUÜ--īcF¦,˹ƢðYͼν++F*ĝ*ǶͿ¡Xɹȸ~)~)*ę|)Ě}*Ƶ̾˼{WȸĴ{({(|)ĥD›~+Ƿɰd^AA3Xɹò{({(D³]~+°}]{({(Xɹò{({(_ѷ27Bť{({(ʼ{(7ַ2}~,Sx(x(ʻIJ0|*}a,WŵBo7o7{:{(|*b±;7=~+ښ{(ڟ5{(9±ּ2cHš|*Ě|*ĨHµeּ2extplorer-2.1.0b6+dfsg.3/extplorer.init.php000066400000000000000000000070771154131622000205530ustar00rootroot00000000000000". $GLOBALS["messages"]["btnlogout"].""; } else { $extra=NULL; } $GLOBALS['ERROR'] = $GLOBALS["error_msg"]["home"]; } } if(!down_home($abs_dir)) { ext_Result::sendResult('', false, $GLOBALS["dir"]." : ".$GLOBALS["error_msg"]["abovehome"]); $dir = $GLOBALS['dir'] = $_SESSION['ext_dir'] = ''; return false; } if(!is_dir($abs_dir) && !is_dir($abs_dir.$GLOBALS["separator"])) { $GLOBALS['ERROR'] = $abs_dir." : ".$GLOBALS["error_msg"]["direxist"]; $dir = $GLOBALS['dir'] = $_SESSION['ext_dir'] = ''; } //------------------------------------------------------------------------------ extplorer-2.1.0b6+dfsg.3/extplorer.j15.xml000066400000000000000000000542521154131622000202150ustar00rootroot00000000000000 eXtplorer 10.11.2009 soeren, QuiX Project Soeren Eberhardt-Biermann, QuiX Project GNU/GPL, alternative: MPL soeren|at|virtuemart.net http://joomlacode.org/gf/project/joomlaxplorer/ 2.1.0b5 eXtplorer Logo

Successfully installed eXtplorer 

eXtplorer is a powerful File- and FTP/WebDAV Manager script.
It allows
  • Browsing Directories & Files,
  • Editing, Copying, Moving and Deleting files,
  • Searching, Uploading and Downloading files,
  • Creating new Files and Directories,
  • Creating and Extracting Archives with Files and Directories,
  • Changing file permissions (chmod)

and much more.

By default restricted to Superadministrators! ]]>
configuration.ext.php extplorer.php extplorer.init.php extplorer.list.php CREATE TABLE IF NOT EXISTS `#__extwebdav_locks` ( token varchar(255) NOT NULL default '', path varchar(200) NOT NULL default '', expires int(11) NOT NULL default '0', owner varchar(200) default NULL, recursive int(11) default '0', writelock int(11) default '0', exclusivelock int(11) NOT NULL default 0, PRIMARY KEY (token), UNIQUE KEY token (token), KEY path (path), KEY expires (expires) ) TYPE=MyISAM; CREATE TABLE IF NOT EXISTS `#__extwebdav_properties` ( path varchar(255) NOT NULL default '', name varchar(120) NOT NULL default '', ns varchar(120) NOT NULL default 'DAV:', value text, PRIMARY KEY ( `ns` ( 100 ) , `path` ( 100 ) , `name` ( 50 ) ), KEY path (path) ) TYPE=MyISAM; DROP TABLE IF EXISTS `#__extwebdav_locks`; DROP TABLE IF EXISTS `#__extwebdav_properties`; install.extplorer.php eXtplorer scripts.tar.gz CHANGELOG.txt README.txt admin.extplorer.php application.php config/.htaccess config/.htusers.php config/conf.php config/index.html config/mimes.php eXtplorer.ico fetchscript.php ftp_tmp/index.html images/_.gif images/_admin.gif images/_accept.png images/_archive.png images/_arrowdown.gif images/_arrowup.gif images/_bookmark_add.png images/_cancel.png images/_chmod.png images/_down.png images/_edit.png images/_editcopy.png images/_editdelete.png images/_extract.gif images/_extract.png images/_filefind.png images/_filenew.png images/_folder_new.png images/_fonts.png images/_help.png images/_home.gif images/_home.png images/_indicator.gif images/_log_error.png images/_logout.png images/_messagebox_warning.png images/_move.png images/_reload.png images/_remove.png images/_rename.gif images/_rename_.gif images/_save.png images/_up.png images/_view.png images/eXtplorer.gif images/extension/avi.png images/extension/bmp.png images/extension/bz2.png images/extension/c.png images/extension/cc.png images/extension/cgi.png images/extension/class.png images/extension/cpp.png images/extension/css.png images/extension/cxx.png images/extension/dhtml.png images/extension/doc.png images/extension/document.png images/extension/docx.png images/extension/exe.png images/extension/folder.png images/extension/fon.png images/extension/gif.png images/extension/gz.png images/extension/h.png images/extension/hpp.png images/extension/htm.png images/extension/html.png images/extension/inc.png images/extension/index.html images/extension/jar.png images/extension/java.png images/extension/jpeg.png images/extension/jpg.png images/extension/js.png images/extension/m3u.png images/extension/midi.png images/extension/mov.png images/extension/mp3.png images/extension/mpeg.png images/extension/mpg.png images/extension/pdf.png images/extension/php.png images/extension/php3.png images/extension/php4.png images/extension/php5.png images/extension/phtml.png images/extension/pl.png images/extension/pls.png images/extension/png.png images/extension/py.png images/extension/ra.png images/extension/ram.png images/extension/rar.png images/extension/rm.png images/extension/sh.png images/extension/shtml.png images/extension/sql.png images/extension/swf.png images/extension/tar.png images/extension/tbz.png images/extension/tgz.png images/extension/txt.gif images/extension/txt.png images/extension/wav.png images/extension/xhtml.png images/extension/xls.png images/extension/xlsx.png images/extension/xml.png images/extension/zip.png images/index.html images/joomla_x_icon.png images/logo.gif images/systeminfo.gif include/.htaccess include/admin.php include/archive.php include/bookmarks.php include/chmod.php include/copy_move.php include/delete.php include/download.php include/edit.php include/extract.php include/ftp_authentication.php include/functions.php include/header.php include/index.html include/init.php include/list.php include/login.php include/mkitem.php include/rename.php include/result.class.php include/search.php include/system_info.php include/transfer.php include/upload.php include/users.php include/view.php index.php languages/arabic.php languages/arabic_mimes.php languages/brazilian_portuguese.php languages/brazilian_portuguese_mimes.php languages/bulgarian.php languages/bulgarian_mimes.php languages/danish.php languages/danish_mimes.php languages/dutch.php languages/dutch_mimes.php languages/english.php languages/english_mimes.php languages/finnish.php languages/finnish_mimes.php languages/french.php languages/french_mimes.php languages/german.php languages/german_mimes.php languages/germanf.php languages/germanf_mimes.php languages/germani.php languages/germani_mimes.php languages/greek.php languages/greek_mimes.php languages/hungarian.php languages/hungarian_mimes.php languages/hungariani.php languages/index.html languages/islenska.php languages/islenska_mimes.php languages/italian.php languages/italian_mimes.php languages/norwegian.php languages/norwegian_mimes.php languages/polish.php languages/polish_mimes.php languages/portuguese.php languages/portuguese_mimes.php languages/romanian.php languages/romanian_mimes.php languages/russian.php languages/russian_mimes.php languages/simplified_chinese.php languages/simplified_chinese_mimes.php languages/slovenian.php languages/slovenian_mimes.php languages/spanish.php languages/spanish_mimes.php languages/swedish.php languages/swedish_mimes.php languages/traditional_chinese.php languages/traditional_chinese_mimes.php languages/turkish.php languages/turkish_mimes.php libraries/Archive/adapter/index.html libraries/Archive/adapter/zip.php libraries/Archive/archive.php libraries/Archive/file.php libraries/Archive/folder.php libraries/Archive/index.html libraries/Archive/path.php libraries/Auth/Auth.php libraries/Auth/HTTP/HTTP.php libraries/Console/Getopt.php libraries/FTP.php libraries/FTP/Observer.php libraries/FTP/Socket.php libraries/FTP/index.html libraries/File_Operations.php libraries/HTTP/WebDAV/Server.php libraries/HTTP/WebDAV/Server/Filesystem.php libraries/HTTP/WebDAV/Tools/_parse_lockinfo.php libraries/HTTP/WebDAV/Tools/_parse_propfind.php libraries/HTTP/WebDAV/Tools/_parse_proppatch.php libraries/JSON.php libraries/MIME/Parameter.php libraries/MIME/Type.php libraries/MIME/index.html libraries/PEAR.php libraries/System.php libraries/Tar.php libraries/compat.php41x.php libraries/compat.php42x.php libraries/compat.php50x.php libraries/geshi/geshi.php libraries/geshi/geshi/abap.php libraries/geshi/geshi/actionscript.php libraries/geshi/geshi/actionscript3.php libraries/geshi/geshi/ada.php libraries/geshi/geshi/apache.php libraries/geshi/geshi/applescript.php libraries/geshi/geshi/apt_sources.php libraries/geshi/geshi/asm.php libraries/geshi/geshi/asp.php libraries/geshi/geshi/autoit.php libraries/geshi/geshi/avisynth.php libraries/geshi/geshi/bash.php libraries/geshi/geshi/basic4gl.php libraries/geshi/geshi/bf.php libraries/geshi/geshi/blitzbasic.php libraries/geshi/geshi/bnf.php libraries/geshi/geshi/boo.php libraries/geshi/geshi/c.php libraries/geshi/geshi/c_mac.php libraries/geshi/geshi/caddcl.php libraries/geshi/geshi/cadlisp.php libraries/geshi/geshi/cfdg.php libraries/geshi/geshi/cfm.php libraries/geshi/geshi/cil.php libraries/geshi/geshi/cobol.php libraries/geshi/geshi/cpp-qt.php libraries/geshi/geshi/cpp.php libraries/geshi/geshi/csharp.php libraries/geshi/geshi/css.php libraries/geshi/geshi/d.php libraries/geshi/geshi/dcs.php libraries/geshi/geshi/delphi.php libraries/geshi/geshi/diff.php libraries/geshi/geshi/div.php libraries/geshi/geshi/dos.php libraries/geshi/geshi/dot.php libraries/geshi/geshi/eiffel.php libraries/geshi/geshi/email.php libraries/geshi/geshi/fortran.php libraries/geshi/geshi/freebasic.php libraries/geshi/geshi/genero.php libraries/geshi/geshi/gettext.php libraries/geshi/geshi/glsl.php libraries/geshi/geshi/gml.php libraries/geshi/geshi/gnuplot.php libraries/geshi/geshi/groovy.php libraries/geshi/geshi/haskell.php libraries/geshi/geshi/hq9plus.php libraries/geshi/geshi/html4strict.php libraries/geshi/geshi/idl.php libraries/geshi/geshi/index.html libraries/geshi/geshi/ini.php libraries/geshi/geshi/inno.php libraries/geshi/geshi/intercal.php libraries/geshi/geshi/io.php libraries/geshi/geshi/java.php libraries/geshi/geshi/java5.php libraries/geshi/geshi/javascript.php libraries/geshi/geshi/kixtart.php libraries/geshi/geshi/klonec.php libraries/geshi/geshi/klonecpp.php libraries/geshi/geshi/latex.php libraries/geshi/geshi/lisp.php libraries/geshi/geshi/locobasic.php libraries/geshi/geshi/lolcode.php libraries/geshi/geshi/lotusformulas.php libraries/geshi/geshi/lotusscript.php libraries/geshi/geshi/lscript.php libraries/geshi/geshi/lsl2.php libraries/geshi/geshi/lua.php libraries/geshi/geshi/m68k.php libraries/geshi/geshi/make.php libraries/geshi/geshi/matlab.php libraries/geshi/geshi/mirc.php libraries/geshi/geshi/modula3.php libraries/geshi/geshi/mpasm.php libraries/geshi/geshi/mxml.php libraries/geshi/geshi/mysql.php libraries/geshi/geshi/nsis.php libraries/geshi/geshi/oberon2.php libraries/geshi/geshi/objc.php libraries/geshi/geshi/ocaml-brief.php libraries/geshi/geshi/ocaml.php libraries/geshi/geshi/oobas.php libraries/geshi/geshi/oracle11.php libraries/geshi/geshi/oracle8.php libraries/geshi/geshi/pascal.php libraries/geshi/geshi/per.php libraries/geshi/geshi/perl.php libraries/geshi/geshi/php-brief.php libraries/geshi/geshi/php.php libraries/geshi/geshi/pic16.php libraries/geshi/geshi/pixelbender.php libraries/geshi/geshi/plsql.php libraries/geshi/geshi/povray.php libraries/geshi/geshi/powershell.php libraries/geshi/geshi/progress.php libraries/geshi/geshi/prolog.php libraries/geshi/geshi/providex.php libraries/geshi/geshi/python.php libraries/geshi/geshi/qbasic.php libraries/geshi/geshi/rails.php libraries/geshi/geshi/rebol.php libraries/geshi/geshi/reg.php libraries/geshi/geshi/robots.php libraries/geshi/geshi/ruby.php libraries/geshi/geshi/sas.php libraries/geshi/geshi/scala.php libraries/geshi/geshi/scheme.php libraries/geshi/geshi/scilab.php libraries/geshi/geshi/sdlbasic.php libraries/geshi/geshi/smalltalk.php libraries/geshi/geshi/smarty.php libraries/geshi/geshi/sql.php libraries/geshi/geshi/tcl.php libraries/geshi/geshi/teraterm.php libraries/geshi/geshi/text.php libraries/geshi/geshi/thinbasic.php libraries/geshi/geshi/tsql.php libraries/geshi/geshi/typoscript.php libraries/geshi/geshi/vb.php libraries/geshi/geshi/vbnet.php libraries/geshi/geshi/verilog.php libraries/geshi/geshi/vhdl.php libraries/geshi/geshi/vim.php libraries/geshi/geshi/visualfoxpro.php libraries/geshi/geshi/visualprolog.php libraries/geshi/geshi/whitespace.php libraries/geshi/geshi/winbatch.php libraries/geshi/geshi/xml.php libraries/geshi/geshi/xorg_conf.php libraries/geshi/geshi/xpp.php libraries/geshi/geshi/z80.php libraries/geshi/index.html libraries/index.html libraries/inputfilter.php libraries/lib_zip.php libraries/standalone.php style/index.html style/opacity.js style/style.css style/tablebg.gif webdav.php webdav_authenticate.php
extplorer-2.1.0b6+dfsg.3/extplorer.list.php000066400000000000000000000417631154131622000205630ustar00rootroot00000000000000"; echo "  ..\n"; echo "   "; echo ""; } $i = 0; while(list($item,) = each($list)){ if( $item == 'index.html') { continue; } $abs_item=get_abs_item($dir,$item); $is_writable = is_writable( $abs_item ); $is_chmodable = $GLOBALS['ext_File']->is_chmodable( $abs_item ); $is_readable = is_readable( $abs_item ); $is_deletable = $GLOBALS['ext_File']->is_deletable( $abs_item ); $file_info = @stat( $abs_item ); $is_file = false; //if(is_link($abs_item)) $extra=" -> ".@readlink($abs_item); if(@is_dir($abs_item)) { $link = make_link("list",get_rel_item($dir, $item),NULL); } else { //if(get_is_editable($dir,$item) || get_is_image($dir,$item)) { $link = make_link("download",$dir,$item); $is_file = true; } //else $link = ""; $class = $i % 2 ? 'sectiontableentry1' : 'sectiontableentry2'; //echo "" echo ''; // Icon + Link echo ""; if($is_readable) { echo ""; } //else echo ""; echo "\"\" "; $s_item=$item; if(strlen($s_item)>50) $s_item=substr($s_item,0,47)."..."; $s_item = htmlspecialchars($s_item); if( !$is_file ) { echo ''.$s_item.''; } else { echo $s_item; } if( $is_readable ) { echo ""; // ...$extra... } echo "\n"; // Size echo "".parse_file_size(get_file_size($abs_item))."\n"; // type echo "".get_mime_type($abs_item, "type")."\n"; // modified echo "".parse_file_date(get_file_date($abs_item))."\n"; // actions echo "\n"; $i++; } } //------------------------------------------------------------------------------ // MAIN FUNCTION function list_dir($dir) { // list directory contents global $dir_up, $mosConfig_live_site, $_VERSION; $allow=($GLOBALS["permissions"]&01)==01; $admin=((($GLOBALS["permissions"]&04)==04) || (($GLOBALS["permissions"]&02)==02)); $dir_up = dirname($dir); if($dir_up==".") $dir_up = ""; if(!get_show_item($dir_up,basename($dir))) ext_Result::sendResult('', false, $dir." : ".$GLOBALS["error_msg"]["accessdir"]); // make file & dir tables, & get total filesize & number of items make_tables($dir, $dir_list, $file_list, $tot_file_size, $num_items); $dirs = explode( "/", $dir ); $implode = ""; $dir_links = ".. / "; foreach( $dirs as $directory ) { if( $directory != "" ) { $implode .= $directory."/"; $dir_links .= "$directory / "; } } echo '
'.$GLOBALS["messages"]["actdir"].": ".$dir_links.'
'; // Sorting of items $images = " \"^\""; } else { $_srt = "ASC"; $images .= "_arrowdown.gif\" alt=\"v\">"; } // Toolbar /*echo "
\n"; // Create File / Dir if($allow && is_writable($GLOBALS['home_dir'].'/'.$dir)) { echo "\n"; } echo "
\n"; // PARENT DIR echo "\n"; // HOME DIR echo "\n"; // RELOAD echo "\n"; // SEARCH echo "\n"; echo ""; // Joomla Sysinfo echo "\n"; echo ""; if($allow) { // COPY echo "\n"; // MOVE echo "\n"; // DELETE echo "\n"; // CHMOD echo "\n"; // UPLOAD if(ini_get("file_uploads")) { echo "\n"; } else { echo "\n"; } // ARCHIVE if($GLOBALS["zip"] || $GLOBALS["tar"] || $GLOBALS["tgz"]) { echo "\n"; } } else { // COPY echo "\n"; // MOVE echo "\n"; // DELETE echo "\n"; // UPLOAD echo "\n"; } // ADMIN & LOGOUT if($GLOBALS["require_login"]) { echo ""; // ADMIN if($admin) { echo "\n"; } // LOGOUT echo "\n"; } // Logo echo "\n"; echo "
"; if( $dir != "" ) { echo ""; echo ""; } echo ""; echo "\"".$GLOBALS["messages"]["reloadlink"];"; echo "\"|\""; echo "\"|\"\"".$GLOBALS["messages"]["copylink"];\"".$GLOBALS["messages"]["movelink"];\"".$GLOBALS["messages"]["dellink"];\"chmod\""; echo "\"".$GLOBALS["messages"]["uploadlink"];\"".$GLOBALS["messages"]["uploadlink"];\"".$GLOBALS["messages"]["comprlink"];\"".$GLOBALS["messages"]["copylink"]."\"\"".$GLOBALS["messages"]["movelink"]."\"\"".$GLOBALS["messages"]["dellink"]."\"\"".$GLOBALS["messages"]["uplink"];::"; echo "\"".$GLOBALS["messages"]["adminlink"]."\""; echo "\"".$GLOBALS["messages"]["logoutlink"]."\""; //echo "
"; echo "\"""; //echo "
"; echo "
\n
"; echo "\n"; echo ""; echo "
\n"; */ // End Toolbar // Begin Table + Form for checkboxes echo"\n"; echo "\n\n\n"; // make & print Table using lists print_table($dir, make_list($dir_list, $file_list), $allow); // print number of items & total filesize echo "\n"; echo "\n"; echo ""; echo "\n
\n"; if($GLOBALS["order"]=="name") $new_srt = $_srt; else $new_srt = "yes"; echo "".$GLOBALS["messages"]["nameheader"]; if($GLOBALS["order"]=="name") echo $images; echo "\n"; if($GLOBALS["order"]=="size") $new_srt = $_srt; else $new_srt = "yes"; echo "".$GLOBALS["messages"]["sizeheader"]; if($GLOBALS["order"]=="size") echo $images; echo ""; if($GLOBALS["order"]=="type") $new_srt = $_srt; else $new_srt = "yes"; echo "".$GLOBALS["messages"]["typeheader"]; if($GLOBALS["order"]=="type") echo $images; echo ""; if($GLOBALS["order"]=="mod") $new_srt = $_srt; else $new_srt = "yes"; echo "".$GLOBALS["messages"]["modifheader"]; if($GLOBALS["order"]=="mod") echo $images; echo "

 ".$num_items." ".$GLOBALS["messages"]["miscitems"]." ".parse_file_size($tot_file_size)."  

\n"; } //------------------------------------------------------------------------------ ?> extplorer-2.1.0b6+dfsg.3/extplorer.php000066400000000000000000000062521154131622000176030ustar00rootroot00000000000000'.$GLOBALS['ERROR'].''; return; } if( !is_object( $database )) { $database = JFactory::getDBO(); } $res = new StdClass(); $database->setQuery( 'SELECT id, name FROM `#__menu` WHERE link LIKE \'%option=com_extplorer%\' ORDER BY `id` LIMIT 1'); $database->loadObject( $res ); if( is_object( $res ) && !empty( $res->name )) { $name = $res->name; } else { $name = ''; } if( $name || $dir ) { $mainframe->setPageTitle( $name.' - '.$dir ); } $action = extGetParam( $_REQUEST, 'action', 'list'); $item = extGetParam( $_REQUEST, 'item', ''); // Here we allow *download* and *directory listing*, nothing more, nothing less switch( $action ) { case 'download': require _EXT_PATH . "/include/download.php"; ext_Download::execAction($dir, $item); exit; case 'list': default: list_dir($dir); break; } // A small nice footer. Remove if you don't want to give credit to the developer. echo '
powered by eXtplorer '; ?> extplorer-2.1.0b6+dfsg.3/extplorer.xml000066400000000000000000000540461154131622000176200ustar00rootroot00000000000000 eXtplorer 10.11.2009 soeren, QuiX Project Soeren Eberhardt-Biermann, QuiX Project soeren|-at|-virtuemart.net http://joomlacode.org/gf/project/joomlaxplorer/ 2.1.0b5 eXtplorer Logo

Successfully installed eXtplorer 

eXtplorer is a powerful File- and FTP/WebDAV Manager script.
It allows
  • Browsing Directories & Files,
  • Editing, Copying, Moving and Deleting files,
  • Searching, Uploading and Downloading files,
  • Creating new Files and Directories,
  • Creating and Extracting Archives with Files and Directories,
  • Changing file permissions (chmod)

and much more.

By default restricted to Superadministrators! ]]>
configuration.ext.php extplorer.php extplorer.init.php extplorer.list.php CREATE TABLE IF NOT EXISTS `#__extwebdav_locks` ( token varchar(255) NOT NULL default '', path varchar(200) NOT NULL default '', expires int(11) NOT NULL default '0', owner varchar(200) default NULL, recursive int(11) default '0', writelock int(11) default '0', exclusivelock int(11) NOT NULL default 0, PRIMARY KEY (token), UNIQUE KEY token (token), KEY path (path), KEY expires (expires) ) TYPE=MyISAM CREATE TABLE IF NOT EXISTS `#__extwebdav_properties` ( path varchar(255) NOT NULL default '', name varchar(120) NOT NULL default '', ns varchar(120) NOT NULL default 'DAV:', value text, PRIMARY KEY ( `ns` ( 100 ) , `path` ( 100 ) , `name` ( 50 ) ), KEY path (path) ) TYPE=MyISAM DROP TABLE IF EXISTS `#__extwebdav_locks` DROP TABLE IF EXISTS `#__extwebdav_properties` install.extplorer.php eXtplorer scripts.tar.gz CHANGELOG.txt README.txt admin.extplorer.php application.php config/.htaccess config/.htusers.php config/conf.php config/index.html config/mimes.php eXtplorer.ico fetchscript.php ftp_tmp/index.html images/_.gif images/_admin.gif images/_accept.png images/_archive.png images/_arrowdown.gif images/_arrowup.gif images/_bookmark_add.png images/_cancel.png images/_chmod.png images/_down.png images/_edit.png images/_editcopy.png images/_editdelete.png images/_extract.gif images/_extract.png images/_filefind.png images/_filenew.png images/_folder_new.png images/_fonts.png images/_help.png images/_home.gif images/_home.png images/_indicator.gif images/_log_error.png images/_logout.png images/_messagebox_warning.png images/_move.png images/_reload.png images/_remove.png images/_rename.gif images/_rename_.gif images/_save.png images/_up.png images/_view.png images/eXtplorer.gif images/extension/avi.png images/extension/bmp.png images/extension/bz2.png images/extension/c.png images/extension/cc.png images/extension/cgi.png images/extension/class.png images/extension/cpp.png images/extension/css.png images/extension/cxx.png images/extension/dhtml.png images/extension/doc.png images/extension/document.png images/extension/docx.png images/extension/exe.png images/extension/folder.png images/extension/fon.png images/extension/gif.png images/extension/gz.png images/extension/h.png images/extension/hpp.png images/extension/htm.png images/extension/html.png images/extension/inc.png images/extension/index.html images/extension/jar.png images/extension/java.png images/extension/jpeg.png images/extension/jpg.png images/extension/js.png images/extension/m3u.png images/extension/midi.png images/extension/mov.png images/extension/mp3.png images/extension/mpeg.png images/extension/mpg.png images/extension/pdf.png images/extension/php.png images/extension/php3.png images/extension/php4.png images/extension/php5.png images/extension/phtml.png images/extension/pl.png images/extension/pls.png images/extension/png.png images/extension/py.png images/extension/ra.png images/extension/ram.png images/extension/rar.png images/extension/rm.png images/extension/sh.png images/extension/shtml.png images/extension/sql.png images/extension/swf.png images/extension/tar.png images/extension/tbz.png images/extension/tgz.png images/extension/txt.gif images/extension/txt.png images/extension/wav.png images/extension/xhtml.png images/extension/xls.png images/extension/xlsx.png images/extension/xml.png images/extension/zip.png images/index.html images/joomla_x_icon.png images/logo.gif images/systeminfo.gif include/.htaccess include/admin.php include/archive.php include/bookmarks.php include/chmod.php include/copy_move.php include/delete.php include/download.php include/edit.php include/extract.php include/ftp_authentication.php include/functions.php include/header.php include/index.html include/init.php include/list.php include/login.php include/mkitem.php include/rename.php include/result.class.php include/search.php include/system_info.php include/transfer.php include/upload.php include/users.php include/view.php index.php languages/arabic.php languages/arabic_mimes.php languages/brazilian_portuguese.php languages/brazilian_portuguese_mimes.php languages/bulgarian.php languages/bulgarian_mimes.php languages/danish.php languages/danish_mimes.php languages/dutch.php languages/dutch_mimes.php languages/english.php languages/english_mimes.php languages/finnish.php languages/finnish_mimes.php languages/french.php languages/french_mimes.php languages/german.php languages/german_mimes.php languages/germanf.php languages/germanf_mimes.php languages/germani.php languages/germani_mimes.php languages/greek.php languages/greek_mimes.php languages/hungarian.php languages/hungarian_mimes.php languages/hungariani.php languages/index.html languages/islenska.php languages/islenska_mimes.php languages/italian.php languages/italian_mimes.php languages/norwegian.php languages/norwegian_mimes.php languages/polish.php languages/polish_mimes.php languages/portuguese.php languages/portuguese_mimes.php languages/romanian.php languages/romanian_mimes.php languages/russian.php languages/russian_mimes.php languages/simplified_chinese.php languages/simplified_chinese_mimes.php languages/slovenian.php languages/slovenian_mimes.php languages/spanish.php languages/spanish_mimes.php languages/swedish.php languages/swedish_mimes.php languages/traditional_chinese.php languages/traditional_chinese_mimes.php languages/turkish.php languages/turkish_mimes.php libraries/Archive/adapter/index.html libraries/Archive/adapter/zip.php libraries/Archive/archive.php libraries/Archive/file.php libraries/Archive/folder.php libraries/Archive/index.html libraries/Archive/path.php libraries/Auth/Auth.php libraries/Auth/HTTP/HTTP.php libraries/Console/Getopt.php libraries/FTP.php libraries/FTP/Observer.php libraries/FTP/Socket.php libraries/FTP/index.html libraries/File_Operations.php libraries/HTTP/WebDAV/Server.php libraries/HTTP/WebDAV/Server/Filesystem.php libraries/HTTP/WebDAV/Tools/_parse_lockinfo.php libraries/HTTP/WebDAV/Tools/_parse_propfind.php libraries/HTTP/WebDAV/Tools/_parse_proppatch.php libraries/JSON.php libraries/MIME/Parameter.php libraries/MIME/Type.php libraries/MIME/index.html libraries/PEAR.php libraries/System.php libraries/Tar.php libraries/compat.php41x.php libraries/compat.php42x.php libraries/compat.php50x.php libraries/geshi/geshi.php libraries/geshi/geshi/abap.php libraries/geshi/geshi/actionscript.php libraries/geshi/geshi/actionscript3.php libraries/geshi/geshi/ada.php libraries/geshi/geshi/apache.php libraries/geshi/geshi/applescript.php libraries/geshi/geshi/apt_sources.php libraries/geshi/geshi/asm.php libraries/geshi/geshi/asp.php libraries/geshi/geshi/autoit.php libraries/geshi/geshi/avisynth.php libraries/geshi/geshi/bash.php libraries/geshi/geshi/basic4gl.php libraries/geshi/geshi/bf.php libraries/geshi/geshi/blitzbasic.php libraries/geshi/geshi/bnf.php libraries/geshi/geshi/boo.php libraries/geshi/geshi/c.php libraries/geshi/geshi/c_mac.php libraries/geshi/geshi/caddcl.php libraries/geshi/geshi/cadlisp.php libraries/geshi/geshi/cfdg.php libraries/geshi/geshi/cfm.php libraries/geshi/geshi/cil.php libraries/geshi/geshi/cobol.php libraries/geshi/geshi/cpp-qt.php libraries/geshi/geshi/cpp.php libraries/geshi/geshi/csharp.php libraries/geshi/geshi/css.php libraries/geshi/geshi/d.php libraries/geshi/geshi/dcs.php libraries/geshi/geshi/delphi.php libraries/geshi/geshi/diff.php libraries/geshi/geshi/div.php libraries/geshi/geshi/dos.php libraries/geshi/geshi/dot.php libraries/geshi/geshi/eiffel.php libraries/geshi/geshi/email.php libraries/geshi/geshi/fortran.php libraries/geshi/geshi/freebasic.php libraries/geshi/geshi/genero.php libraries/geshi/geshi/gettext.php libraries/geshi/geshi/glsl.php libraries/geshi/geshi/gml.php libraries/geshi/geshi/gnuplot.php libraries/geshi/geshi/groovy.php libraries/geshi/geshi/haskell.php libraries/geshi/geshi/hq9plus.php libraries/geshi/geshi/html4strict.php libraries/geshi/geshi/idl.php libraries/geshi/geshi/index.html libraries/geshi/geshi/ini.php libraries/geshi/geshi/inno.php libraries/geshi/geshi/intercal.php libraries/geshi/geshi/io.php libraries/geshi/geshi/java.php libraries/geshi/geshi/java5.php libraries/geshi/geshi/javascript.php libraries/geshi/geshi/kixtart.php libraries/geshi/geshi/klonec.php libraries/geshi/geshi/klonecpp.php libraries/geshi/geshi/latex.php libraries/geshi/geshi/lisp.php libraries/geshi/geshi/locobasic.php libraries/geshi/geshi/lolcode.php libraries/geshi/geshi/lotusformulas.php libraries/geshi/geshi/lotusscript.php libraries/geshi/geshi/lscript.php libraries/geshi/geshi/lsl2.php libraries/geshi/geshi/lua.php libraries/geshi/geshi/m68k.php libraries/geshi/geshi/make.php libraries/geshi/geshi/matlab.php libraries/geshi/geshi/mirc.php libraries/geshi/geshi/modula3.php libraries/geshi/geshi/mpasm.php libraries/geshi/geshi/mxml.php libraries/geshi/geshi/mysql.php libraries/geshi/geshi/nsis.php libraries/geshi/geshi/oberon2.php libraries/geshi/geshi/objc.php libraries/geshi/geshi/ocaml-brief.php libraries/geshi/geshi/ocaml.php libraries/geshi/geshi/oobas.php libraries/geshi/geshi/oracle11.php libraries/geshi/geshi/oracle8.php libraries/geshi/geshi/pascal.php libraries/geshi/geshi/per.php libraries/geshi/geshi/perl.php libraries/geshi/geshi/php-brief.php libraries/geshi/geshi/php.php libraries/geshi/geshi/pic16.php libraries/geshi/geshi/pixelbender.php libraries/geshi/geshi/plsql.php libraries/geshi/geshi/povray.php libraries/geshi/geshi/powershell.php libraries/geshi/geshi/progress.php libraries/geshi/geshi/prolog.php libraries/geshi/geshi/providex.php libraries/geshi/geshi/python.php libraries/geshi/geshi/qbasic.php libraries/geshi/geshi/rails.php libraries/geshi/geshi/rebol.php libraries/geshi/geshi/reg.php libraries/geshi/geshi/robots.php libraries/geshi/geshi/ruby.php libraries/geshi/geshi/sas.php libraries/geshi/geshi/scala.php libraries/geshi/geshi/scheme.php libraries/geshi/geshi/scilab.php libraries/geshi/geshi/sdlbasic.php libraries/geshi/geshi/smalltalk.php libraries/geshi/geshi/smarty.php libraries/geshi/geshi/sql.php libraries/geshi/geshi/tcl.php libraries/geshi/geshi/teraterm.php libraries/geshi/geshi/text.php libraries/geshi/geshi/thinbasic.php libraries/geshi/geshi/tsql.php libraries/geshi/geshi/typoscript.php libraries/geshi/geshi/vb.php libraries/geshi/geshi/vbnet.php libraries/geshi/geshi/verilog.php libraries/geshi/geshi/vhdl.php libraries/geshi/geshi/vim.php libraries/geshi/geshi/visualfoxpro.php libraries/geshi/geshi/visualprolog.php libraries/geshi/geshi/whitespace.php libraries/geshi/geshi/winbatch.php libraries/geshi/geshi/xml.php libraries/geshi/geshi/xorg_conf.php libraries/geshi/geshi/xpp.php libraries/geshi/geshi/z80.php libraries/geshi/index.html libraries/index.html libraries/inputfilter.php libraries/lib_zip.php libraries/standalone.php style/index.html style/opacity.js style/style.css style/tablebg.gif webdav.php webdav_authenticate.php
extplorer-2.1.0b6+dfsg.3/fetchscript.php000066400000000000000000000175771154131622000201110ustar00rootroot00000000000000= '4.0.4pl1' && ( strpos($useragent,'compatible') !== false || strpos($useragent,'Gecko') !== false ) ) { // Check for gzip header or norton internet securities if ( ( $gzip_check || isset( $_SERVER['---------------']) ) && $zlib_check && $gz_check && !$zlibO_check ) { // You cannot specify additional output handlers if // zlib.output_compression is activated here ob_start( 'ob_gzhandler' ); return; } } else if ( $phpver > '4.0' ) { if ( $gzip_check ) { if ( $zlib_check ) { $do_gzip_compress = TRUE; ob_start(); ob_implicit_flush(0); header( 'Content-Encoding: gzip' ); return; } } } } ob_start(); } /** * Perform GZIP * @author Mambo / Joomla! project */ function doGzip() { global $do_gzip_compress; if ( $do_gzip_compress ) { /** *Borrowed from php.net! */ $gzip_contents = ob_get_contents(); ob_end_clean(); $gzip_size = strlen($gzip_contents); $gzip_crc = crc32($gzip_contents); $gzip_contents = gzcompress($gzip_contents, 9); $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; echo $gzip_contents; echo pack('V', $gzip_crc); echo pack('V', $gzip_size); } else { ob_end_flush(); } } /** * This function fixes the URLs used in the CSS file * This is necessary, because this file is (usually) located somewhere else than the CSS file! That makes * relative URL references point to wrong directories - so we need to fix that! */ function cssUrl( $ref, $subdir ) { $ref = str_replace( "'", '', stripslashes( $ref )); $ref = trim( str_replace( '"', '', $ref) ); // Absolute References don't need to be fixed if( substr( $ref, 0, 4 ) == 'http' ) { return 'url( "'. $ref.'" )'; } chdir( dirname( __FILE__ ).'/'.$subdir ); $ref = str_replace( dirname( __FILE__ ), '', realpath( $ref )); $ref = str_replace( "\\", '/', $ref ); return 'url( "'. substr( $ref, 1 ).'" )'; } /** * Checks and sets HTTP headers for conditional HTTP requests * Borrowed from DokuWiki (/lib/exe/fetch.php) * @author Simon Willison * @link http://simon.incutio.com/archive/2003/04/23/conditionalGet */ function http_conditionalRequest($timestamp){ // A PHP implementation of conditional get, see // http://fishbowl.pastiche.org/archives/001132.html $last_modified = gmdate( 'D, d M Y H:i:s', $timestamp ) . ' GMT'; $etag = '"'.md5($last_modified).'"'; // Send the headers header("Last-Modified: $last_modified"); header("ETag: $etag"); // See if the client has provided the required headers $if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? stripslashes($_SERVER['HTTP_IF_MODIFIED_SINCE']) : false; $if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? stripslashes($_SERVER['HTTP_IF_NONE_MATCH']) : false; if (!$if_modified_since && !$if_none_match) { return; } // At least one of the headers is there - check them if ($if_none_match && $if_none_match != $etag) { return; // etag is there but doesn't match } if ($if_modified_since && $if_modified_since != $last_modified) { return; // if-modified-since is there but doesn't match } // Nothing has changed since their last request - serve a 304 and exit header('HTTP/1.0 304 Not Modified'); exit; } initGzip(); $base_dir = dirname( __FILE__ ); $subdirs = @$_GET['subdir']; if( !is_array( $subdirs ) && !empty( $subdirs )) { $subdirs = array( $subdirs ); } $files = @$_GET['file']; if( !is_array( $files ) && !empty( $files )) { $files = array( $files ); } if( empty( $files ) || sizeof($files) != sizeof( $subdirs )) { header("HTTP/1.0 400 Bad Request"); echo 'Bad request'; exit; } $countFiles = sizeof($files); $newest_mdate = 0; for( $i = 0; $i < $countFiles; $i++ ) { if( empty( $files[$i] )) continue; $file = $files[$i]; $subdir = $subdirs[$i]; $dir = realpath( $base_dir . '/' . $subdir ); $file = $dir . '/' . basename( $file ); if( !file_exists( $file ) || (!stristr( $dir, $base_dir ) && !stristr( $dir, "/usr/share/javascript") && !stristr( $dir, "/usr/share/yui")) ) { if( $countFiles == 1 ) { header("HTTP/1.0 404 Not Found"); echo 'Not Found'; exit; } continue; } $newest_mdate = max( filemtime( $file ), $newest_mdate ); } // This function quits the page load if the browser has a cached version of the requested script. // It then returns a 304 Not Modified header http_conditionalRequest( $newest_mdate ); // here we need to send the script or stylesheet $processed_files = 0; for( $i = 0; $i < $countFiles; $i++ ) { $file = $files[$i]; $subdir = $subdirs[$i]; $dir = realpath( $base_dir . '/' . $subdir ); $file = $dir . '/' . basename( $file ); if( !file_exists( $file ) || (!stristr( $dir, $base_dir ) && !stristr( $dir, "/usr/share/javascript") && !stristr( $dir, "/usr/share/yui")) || !is_readable( $file )) { continue; } $processed_files++; $fileinfo = pathinfo( $file ); switch ( $fileinfo['extension']) { case 'css': $mime_type = 'text/css'; header( 'Content-Type: '.$mime_type.';'); $css = implode( '', file( $file )); $str_css = preg_replace("/url\((.+?)\)/ie","cssUrl('\\1', '$subdir')", $css); echo $str_css; break; case 'js': $mime_type = 'application/x-javascript'; header( 'Content-Type: '.$mime_type.';'); readfile( $file ); break; default: continue; } } if( $processed_files == 0 ) { if( !file_exists( $file ) ) { header("HTTP/1.0 404 Not Found"); echo 'Not Found'; exit; } if( !is_readable( $file ) ) { header("HTTP/1.0 500 Internal Server Error"); echo "Could not read ".basename($file)." - bad permissions?"; exit; } } // Tell the user agent to cache this script/stylesheet for an hour $age = 3600; header( 'Expires: '.gmdate( 'D, d M Y H:i:s', time()+ $age ) . ' GMT' ); header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s', @filemtime( $file ) ) . ' GMT' ); header( 'Cache-Control: public, max-age='.$age.', must-revalidate, post-check=0, pre-check=0' ); header( 'Pragma: public' ); doGzip(); exit; ?>extplorer-2.1.0b6+dfsg.3/ftp_tmp/000077500000000000000000000000001154131622000165125ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/ftp_tmp/index.html000066400000000000000000000000541154131622000205060ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/images/000077500000000000000000000000001154131622000163065ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/images/_.gif000066400000000000000000000000531154131622000172110ustar00rootroot00000000000000GIF89a!,D;extplorer-2.1.0b6+dfsg.3/images/_accept.png000066400000000000000000000033611154131622000204150ustar00rootroot00000000000000PNG  IHDRw= pHYs   cHRMz%u0`:o_FwIDATxt[l3mo]mX/,07@%\JPEҠJ$JASՇ$jjR!Q B!jhJAm6ח]}3}H89sfgęӧ0ZB) Ch[$^mf fsѳ h|-s s,۟?>֚PS6-M-,۷zo !f良V DJbA /}LOn_2,W–Uul_m;KWT.[|?BOT,Iu0iL&'Z)\a[ȋlM-|&RN&=MLsyk˒ÇnJlp9]dEc+j#QB>PBڂh$e^޸zĺgY[8!H6ꓟI2},EIښzmHښY"uujy/8WkE7$)&أ²m籗%! ԘȩJSR=mOVմgvgs`N}];K!9wo>ǽԙ>&(b&h$fO.,1@Ԏ!N(r45 kFB %[7vo&Iؚp$؆&00@PREb+xi{ Y^:[% ;}'_t(^Tƪ^~I}f)q IP:Da#B"0ض{Ү~z jA6+!1Imue$Y9AvYqxI26ч[X#_bMRtEK2pDLAsܐHp8hY/6-lIr5<8w3k zƾ1ұ4;*ײs5p Eo4 !>,iFf.}MMX~i/;4 (/2FbH0!}( A)&[хidϘ(<BMYij |ߟEfJqK#{9re&_,Y8R,r״D.+^ aQ(gɗ)Yޑ|jUv! `VE>OnyZ!ɸHgq|9ّҝȟ0<uJ> f;qf@ rM&6f%0RhZc$Ɍ nC65L6 `F9?>\z*NS&k[AORɑ)X(q癕q׹}sP.R:'(h|P:}<Œ:^;-^$sR {;Чt gؽL Ɛ 4t#Nje߸R i BT!S$ 4Ie[zF^I#J~qCy;( <;extplorer-2.1.0b6+dfsg.3/images/_archive.png000066400000000000000000000021461154131622000205770ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9{) L򗙛K(%_xz~S3df?@ *z# PsOOc`P,@f 0>  ,p <@aa|@ @Y#p{>2dcx7Ë5f` ,M<' n͠" OACF ?п@ 3 |be~-YùMN̽ "' l&6b@'35x޿p+3 dƠd'Б; @mh ߿ r 6V O.>fp,a2QbPvë@̒290J103aagPu1dj dqmb4吾G+&+/^c&_>xpjE{/ֳϾa*@1+2k`*Wb40u72`y8z͕;~ǰt3y ,x d sI3)b``H΍IENDB`extplorer-2.1.0b6+dfsg.3/images/_arrowdown.gif000066400000000000000000000001061154131622000211530ustar00rootroot00000000000000GIF89a Ȁ!, k "9UǮT;extplorer-2.1.0b6+dfsg.3/images/_arrowup.gif000066400000000000000000000001061154131622000206300ustar00rootroot00000000000000GIF89a !, !GeF͉;extplorer-2.1.0b6+dfsg.3/images/_bookmark_add.png000066400000000000000000000012311154131622000215650ustar00rootroot00000000000000PNG  IHDRa`IDAT8MHTQy<Ѵ)m*Ԣcp#ZX D HlQaP9TRL'yXyoM:ds󻇡[N ׏Y=j29:P':~pXR!mm ?+ly޽#/ $&@Ⴧ'l@7321H= _"ܸx42|)3KtP!@1۰_~}ׯ^beTb` )8P3#T3g.lѣE@v<< Ǐ^{YDx \ L@|ɓ gos…Ne m~g6ß?_yAo2 abb`Ǐ ߁;I !+PP6}:ˋ `_PeaP A ]YYl1]c#Ws?~}@w&669fAׯ^=`b&^jjK>}?HNjd`tO+8g323G #;oy?zx.{#?%ff?@_t y޾ j3NΟGpppPg &&&p @L?~}L&`x($ܷo[tߧ>;'0@Q ~1|@1}t/33e~?g^*Tf ^yV..O99(>~''oiK) NfE0A<=x̌' -H^IENDB`extplorer-2.1.0b6+dfsg.3/images/_chmod.png000066400000000000000000000014061154131622000202460ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@D&c|h, 6I+.K+ ziow?{a 2R Nq ?0<``vAD-Zwf8?C6@KGA(,') +')6v&1/sq1|U d@ fc)8P E0ܿA\^_ Ǐ ">eАNa` ~3p 0!߿`-6=/ ?y ? 2pm ֌A.pC% g2=u{'l}b3%@\@LP˅ s^] <a6p@1/w2|g?3 Qq@1!(1N~c `T N(\@ p@"ͫ B &xGv6+@ 10H#AH';3Q4p2033s $cPon ׏sŁq*IpsYY [P0LfsNd '&'# a""IENDB`extplorer-2.1.0b6+dfsg.3/images/_down.png000066400000000000000000000016201154131622000201210ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<"IDATxb?% X@t `bb5k_,Pǟ'߿,B/d0_~άלea-1q031zVC, lKg̠l`s#[@o>30\yo ^g:d!z .$?" @u20w b߾dG U6N@l/6]1Y?1 ? <\ 6F_y@6?P[ ïĸO ?IA1l2o?a)-[a K>1l|??^~ps]a^٫n2 AS2GH*%Iz( %ZU &A5 :>  +x0Ch, YALO/;\J MX0|zA;ã k2TLw֯1A  \lƧudCk￿{me6Sa` 03c  1 3e*~/(U3\c}'Ѕ\<\ , _gpt`ึk ۯe1<p\ Ĥ$iӫ 01<}aE 7^|eXaŋHvgw`3 Db 0B[w[c%aF @0=ib?dXX> +;ܛ ~^beage Pf`snF]|0fdŏ~``}Ĩ5/GfE 2ANffddjayV hVzbIENDB`extplorer-2.1.0b6+dfsg.3/images/_editcopy.png000066400000000000000000000013321154131622000207720ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<lIDATxbdЎg`Ij?1`a#33ӑS H_ l||NeRF2 Ă"Zd?bUh??!?@e\ @ 糲1 faF@ 2  n:^^KfF&gn0x%`ۀl# Y_ b pLrg㧯 @gl'o.'t);? X$Exqub_D ?a`aaka&<@i~}3+~]?H8@E3PT Rz_~  [Bd< d@ 0Ph`j0@0Bli2b0C`l3"FboA526h*H@dd Vff. @Af-@G1A sp@IJŇI@Y9 Ncp&w?3<?@[LgN`#bƠY IENDB`extplorer-2.1.0b6+dfsg.3/images/_editdelete.png000066400000000000000000000015341154131622000212660ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?ZhǞo{ǀ1g=yBKbP0c$A@MgHa /ftbkó'~}r_ Og'N1#@ @L6 Z[̞ ŏ,e9w6ûE7B17 gbJMe~ĉ w|Γ'T"b!koC| Ox7l`ZAVTUD^ 슊 1bA6A&..#ÚyqQP1<۸u~p\,ÿ/ Aŀ@@>{й xx/(!16@30&0蒿 ,L {:>ձ17 a>z;=A{1.NiS{ %(?;!I?kDK3~U2xὓ+40&. @*k913 /GJ=c}3&?$ j0ZŸ $ec:0P=?VM&AI ޙAbAbcgI^':?ߌt?,fY?fFf&]c1f0Hv;׎IENDB`extplorer-2.1.0b6+dfsg.3/images/_extract.gif000066400000000000000000000020701154131622000206050ustar00rootroot00000000000000GIF89aвkԹcńԹmrֻͯaγhS>}w˯Y˯rвrɨ[~<6pҸf뎞\檽ӷnгeܻ̫bʨW8MynjcĤ^ӵmɩX`ñy]gpJuѩQֻ``ʩ[Dž _!m]Db̫akͮUջr^[.ukS>{WKsհгZʩ\ݫ߫~f2w4x&o\ʨ\jʩZ֘׋քΕd)qŒڽXσteɸl[c˨YʨY{oaʯ^ή`ɦXʄys̙ȥWϓ̍ġY^ǤV]k_Pv!, Hp0 H` >A ,\A;x"$J0qE +h2fШa:v A !R$I,Ȥ T'OD2J+Wde .^ #f2e̜A#05lڸy'9tعD ׿ no dl](v[kc f?k Vs20Y(Hbc? qY@"ïE\Q*߿?`{6Xlۑ#G^ Wmۺ<-4tնV*0aǕ6֦֡@` v9mP"@]L}[C4TU T5nsw޴M &G ~ ?+aKn)/(QT)Nޜ;99ܬ Q/XPYYvwΞ(XXj寫nc/ifIENDB`extplorer-2.1.0b6+dfsg.3/images/_filefind.png000066400000000000000000000014551154131622000207400ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@DII1 +B##˧ofo?f޼yaڴi {erbYJ(ʈ20112<}U3^ܿjӧtҿVVV @wv@ vU3ȡ`%( ?;o&?۷ 333br5?500~e`᧠c++Ǐ^~O6[@?>߁5P㫯o 0HH"@@L@j:_~]-@"@  >}qQ  ~B/ A/Ƿ?}P}s@  ۶n"0LdXQ̰eyֿ T/ UPlM7NQAƯ @Xk'|~km3S #( 4}|T55Y?lm BEx"ym{6BǟV/ ,IU] fQ(ҍ8O|ZY>h bgpp؀߁@  秏ZAO^m`YDL ? rp1o@m/P~ .`eafdg/ إ%xb~Y)g893p 0xo6L^_@]30^0>~pAE.oeLz~a wnz:f&@q-Ll̥On^P_MjIGIENDB`extplorer-2.1.0b6+dfsg.3/images/_folder_new.png000066400000000000000000000013161154131622000213000ustar00rootroot00000000000000PNG  IHDRaIDAT8uMk]Us=nhjsKGKXqfAE'3 ":[0ЁRRsܳ{/i\ϴZ F\gO`S1Y58:}yf0>z[ȟ,Nj< P8G9ukO-^~ud8ܰ$R߻{H̘oNaf m!DT<*Çm:{N!ޣ"O8H)*@'QKy$ Pb@7pR "f]@ ``\ !*`%׈xz4 `*P~)F{{RZX__ϫk>39 *B-5m?!>!tQPUpݞ3 ᄊ:337S+W?JtA#!|cc̊Rc l5ܹe^>˯GUT0KeY" yN9QeW2C &C̲Lzq xr ܫq? "+GfιM/wqb;_?g?h'Ӄݏwao5Ͼzi?5z̝:[l~qcϿr\gi~b2o\z/|}2HIENDB`extplorer-2.1.0b6+dfsg.3/images/_fonts.png000066400000000000000000000015741154131622000203130ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (ec`LTVךv{%?HK100z32|ga``7G?@11*/ "QU1B@.t@E2@11 OQNHUBAPY؝ fj_̿E`4yݸE?<Ơg 󿬲1/e^ Dt2 ^ 'ukU52| r bUu?abdvtScbi@L:IQQ7 w_PƜE.p|7\-,a 'badafCI^YYIO "B,9٬f9ix0* 3?f|Qۇ?}|&b*ȬkW+XPTt$_?tA]P~A&.0/L0ڰ ." >*,*@ɑA"Y.V[S KF +$M?$ A ,1'Pba`d  T@ ~d`aa`cv`23+70%~Z @F87^x<|.IENDB`extplorer-2.1.0b6+dfsg.3/images/_help.png000066400000000000000000000022431154131622000201040ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxbdНd`ft̑?û7_?2`[S(^ 00W gX_>xrק/rn3f9Y!>* ߾ex P b`daefQVz7o103AG  loIH>4[>* 8' %-A6AF0\:13$  [C1<<RA j+1% 3& kETZK^2h'# dx7'wU1w_0|, ?CDH Xx^~p 69!Fdggi, !0o#;< ,\lA1 ,cH _f`/wl2y/PO` L@@18˯ L 10^jZp#ÝG_3o`Pٯׯӗw}zpAZ 䀊~mao),LL!' :_ĸ2`à`J@~8߸y߯UA EF$ Z G?}3%~n5> !3FNFnƷd~oF5@12A2$?gf3(}׫7~x3caK̢ZtIENDB`extplorer-2.1.0b6+dfsg.3/images/_home.gif000066400000000000000000000021651154131622000200700ustar00rootroot00000000000000GIF89aRSw   {*  !#uK""##xO**##*.,,((2[33//77336:88==??GE]??E7AEO'K.FFK1JIIIFFj rMINNMQuZ5PPpSSm\<`=ZC`=rYMX[ZZY]hB]];da?x}cc fiwK?gg{GmmqsnnqqrsOvvwz*zzVit/vpt\n|pN۞ؓmܼfmf㾊b~ͮͬmuίtǓsÁymˆИףρωԎЍҎ،ӌҒԔاګګؘ܊ܑٝٞ݉ڠޱߑܣߤ!Created with The GIMP! , H*\HP `J3`(*[,JmHj)ϟixtɭn,SY'B-,:$hdʜ}fP/h Ujx!!aGh#L-TC 6 ;extplorer-2.1.0b6+dfsg.3/images/_home.png000066400000000000000000000011521154131622000201020ustar00rootroot00000000000000PNG  IHDRa1IDAT8_HSQe6ɭ9w9lƦAйpP+X#"^*§" {zsEHc{ hyݲP99 V-t;g,ujkĿr!n^]˩$-g# 之/2  ZP {"3Ff@a~=>:r|nwO%棛z R!!,c $PxB +*-[dඁ+i@ )`L ?'I`JGb Ph XB)0׸XQ# } No "tI+ZI!!,\ $P`8* 1h0rx8BQaV  !MDl!4%BBe PDY00!!,] $$I>Q] d"28 GqH9 A2ȀB", DH('4C \0`UL"r(!! ,d $dI`ìkBB m A72, (PX鲪 8@R%a K*D2E {$ft5C%!;extplorer-2.1.0b6+dfsg.3/images/_log_error.png000066400000000000000000000025201154131622000211440ustar00rootroot00000000000000PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbdih00pM >0a#.j){ >t'O7owIN_-,|j91<5Q@R0iWwp9/<@D9O# g0d`_? 42Y/Gw3L9d@1 6f`;e9çO ߾10| #=ûw`AVDD g@P$&NB1t >eE1 WϜaPb`x?~]n d0?@c,;;.lplV+?.ܿ \TĠ7-hǏ~ߺ`?4 w x W;`|98-Xd RY2h`1030l<|}=$^D 0ABWlȠ ~DP\X`p"+0}A;``x@˗ @A.w/5DG JH@I+q LA S̙ G.f+HX? '7- Ԉlʤ$ <>Ch { @p''<K ge1\%=(OPa-|h&@1sOW, o`_PA`&ZAX.˅3\w/^0%?`X$ o0 P(rK;LL 4 ҜH4e @.Hx;еL10 pYd|C .ĠRh O~BDV$> G^]d` ,?M'd̥ C10nf`U@ȑ,N.0KK v.$CG@s@B 3 $  j R2@1h'@|3 W&.T@m` ,I ؁0@\ X^LP  ɨ@-IENDB`extplorer-2.1.0b6+dfsg.3/images/_logout.png000066400000000000000000000017431154131622000204710ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<uIDATxb?% X@JFF1 3S>?ȿ?=|ų۾TsTm;rbA6 (.cfܧ% 0#S7^ub@ k0>EDӣG /]e' ++ U_i %Zg7o`gxw" ~=7P \1,ݾ/?@L`Ss4 ]YN10O3ܹw7 VRp 2^3߿3 ' 304{W.1 @0m Ë$6fxf( 33䗯 /;;d 1p= @`wF6@'=}?oO ?N`[@ bO_30 0ym wodۯ Bֶ ,<| _do O_l{ï#[;Xť~`fߟ ~gx L7~[0q5B^ `^*/ :#P+  FJ3@c튢BIENDB`extplorer-2.1.0b6+dfsg.3/images/_messagebox_warning.png000066400000000000000000000025141154131622000230370ustar00rootroot00000000000000PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@bd$C8/l&f/?2sCX&Z47Zspsa`P& QQ\?A֙Aّ'C3ƒ 0ej) ~00zà "lb1V @La'ӧ ϟ3p 3h۲f`b9V @LlzK@RC-""" ?^e26a2+( 8pjP+8 ut8LLx~f72h6V5T]>}f̰jf+W28wrA0@1%mcblbd=CMe%CeI . f** l,%@9Ѓ 0"hp% ll@y898x܀>afaPAKZJ &T ƒR @W0 300R^0X 9b10# P(Шhj {Gh-e >1|{uASF   hJ+Iq1|ޱ3'_a"&-- E1~A bi DX[30s00L&VVV%%%0/o`Ȫ^߷02A p[D^Fs=gGH i/sÙ:~h/_s1g1Ay>m`O @˜?s"3 _KÏwXz!<*!08G @ . \ _s$';# (ՔEb3/7 $P ;377CmSϟ?x) a'0ٱi0Aw5n.<^/1|}/O%l FL, ܼ@6ÇO_~( ?2|~ raoM h?QIfA`zC`L/CXFm@y-abd O-V$ 7P i`Rf5@C1A| &Կ Xp:?@ iU8g#%IENDB`extplorer-2.1.0b6+dfsg.3/images/_move.png000066400000000000000000000020401154131622000201150ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% <6]fgf}_ yvn>>b``fc`aaeŗl- L `;rbPPXa*/+ʱ?+А_, ?3eWcg1/@9Fv^b񯚱C}J?x 0_vz;{ -a`A \p  --!96<&A<EAXL 0,# (= MBA A"\D6.)IQB AX&#_>d~B | "< ]NTYX!Iw ?X~ccf5S RYXX9fP<쌿ǰ7%VvNVvb#ÿLm5֯aÝo0ps41|?6e3;L >1Xw?*¤d )2}cbf`w8>>| =CR ^׏ LcW>9, ?2<fX_| I9ef |w_ 7#@1gbݗgf`f}9ߟ*$ _~(c`b w`R h+_wn2{x&0020Ǐߏ^{ǿ`_l3_LL'xǯVzf$@fgKTĠeIENDB`extplorer-2.1.0b6+dfsg.3/images/_reload.png000066400000000000000000000020541154131622000204220ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?, /3 3.RtuEϯ2f`B&@11 _Y~eJmxNK~gO8;G8(3## 3ꃏl  gޙxaW^];@1`4ߩfڶ: B ,L`;#';;P˯ /]e8/G₟,5~}g?10332 0|hP˯ o~eH+@ / I6fb`8s_cVpA^1.w>0wϵc𭙑 H/@ dۛ>חVpHv38X!A@0(dg&^X'k8o&5ef$` h?{! ϿbX T&F?zP<~F{8b*͎+[+Erir@8æ@g <Zeǫ+O \1O7~/>  1OMPgx 4o/FVpo?2 3p}W LLb ]^N&qK39|K;ޭ H,a3F\^,Q_Z 68|w߿Wo~˪,,Stbfj*ׯq??;Gj; ʖP>V́|R--76,/eF9V7J$Im5m <ϻϻ >>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~!Created with The GIMP!, Hߺu×PaH7%Rh#A\9R\9pQrMQ,fM7iNMXğOhosN)&E//b5uPN Kqlg+6ϸPMGM뷞).ޮy2Ȓ''Gwf=O>tiͨS{ ;extplorer-2.1.0b6+dfsg.3/images/_save.png000066400000000000000000000016021154131622000201100ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?Z\~11004@az{>r /_/ ğ?/ (AU'7[*xvkwѰA !ŪDZ?e>,q6cd``b;?# 7P7L@^>A.~baFF@El@H8L@ 8@`db2Clg`27P32102C ؘA 85yh.'T@Af?mF#P߿ /! _??3|_w3WY|v@À/$Z33;?0FX fc7 ˯ L _12 F~3L`3e`gf@Aߟ@ge0w_S&s}6@qr220Xjb_P4 Vq2pbPt67;#ODy^- 4j@A4   X Y3|AT/F &l| ٘0ewt30ДU>ad VHL؀ /6}3p]Fh"bFWp|afxo參 KC4>Sg%IENDB`extplorer-2.1.0b6+dfsg.3/images/_up.png000066400000000000000000000016121154131622000175770ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% X@#cF%&RullL,ǎ?jb``@1ARL @;/פ09j!r`P@`035e`8-դxgUw>``hmg!K+8X2 @YiU0[1ܹlXV3B  _Ex̚u Ò 8baO |d>َEVAoIX8FtxDZ10Ϗ gC g2Z@`- Du~ /P~T` <{/Fa/ ?|f`b }Ʈ$1ITxg_? YXDM`5y/?2(L ! @20.c`drGahAD*5vx)08.B)p*&YwWF|'~)@,/8?|Ó c/HO5?ß JPg^w@Y_`l_`d`7pGouJ @ 0"w?@w221$  `ÕgTD,<o3av@A ?^~O_e(P=Py=U胺9T&H \۸oa*s*DلcC 95CED rkoe@\X *EHE^ɉO(`-Iiz<2 bQdn3P+ӎ?FXvʀJvX(UP@(/ UIpIu91'lCe ?Y褴 aq#-YDVD6-PCäce]J"+vM'g8gɬep^E6CBwҕ'">v:)Ac!CT oIBD֜$q#ze>p'b+PzmP0W]d +:\G?γ&C1,tȡ8 /P4t) )jYz B$P)ův0<)Io(&0@#K@0Ѵ9(r`|p84 \"쳏 Q"bb)uD==sI||PRlP4Q@ϥl3 Ap_ KIBDT$ $hDt飏 .;"*3e$AE| 3r]4!+Ud'%GXmP'L'Hr0 %IAK%&PI0^C]ZAp"]v*"m"h78@! 'AnXD~A)($+Z %@UHH\c 8C@D>/"(蒏|`Ȣ|N2c"`X_a,\`FD` Pci4@a‹ a Ő>i,1 3i@< H`H#)!{A VYE,e,mwP2X.K່ cq&!>%+H3!@N%Œ X׈02P:4C :LAP48(: idBrP2!> ('#AU-"x X*D'j &@ChzGC&aa)ɐY&uH#Bh4H&'~h#h 84! $‹IAcC H]CBH2ȅ=k_S jbEԓ!(!B "dFOh|dȴ"K8zrhtX$Ho?h`؄*#>oCp:t &|]hZ@p[_q1EV%ZQ 7z @05aDSX.AaoSZQ\W;B8DU`  PP {pq ~Af! p isA=Դ% ATpi uPp 0P *(y"aaI`0cKx@qM2[An x 8@\e%A al0a`pcbp( &:9W3  fn ilmPi  {qQ ȍ.a f`gg` ' %4A ` gЏg za sxC W sV9,lvّ "9$Y&iextplorer-2.1.0b6+dfsg.3/images/extension/000077500000000000000000000000001154131622000203225ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/images/extension/avi.png000066400000000000000000000020551154131622000216110ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`666uuuFF>>>V&&f1(tQUU=YOOP X e7 ufdd677 cYh :Íw /] @0JϞ=wrw0| kyyáC6mڕ??~ ߿QZZODDMWWO)--sӦ@Ĥa׏=8ԴYĘ̂{5 zz 7s֍ϓ@5; C1|A !.!!!221'%!!]))& YJJ2Aϟ ))a`eKOK|). فaw6;w˗/rrrzAFF?_DX8 ,,ʠpaw7 _~`aa0117+#O `xΠ- (🅃 hagt<(_(0#ׯ @À ×o?n`aˍ f< xxy8~qq33hf a{/3/0}7v]a@ `)?@C~ (>_?0~{`-Aۏ`u@`8 A/ÿ%35;8÷ _b`t?p  & 2Ϟ2*2+103|:3+;;!@ [71| ,@/fcd~6eu6P_f* f&FP]|`9]IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/bmp.png000066400000000000000000000014701154131622000216100ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ Ȁx---İcǎIӗ.]/// XA+ógOؙAna` ?_$0߿0 ϟ=cxß ߾;`G  `gedaE?r |~~2cȏ``af5 lVbiAW^f`އ >2]P/ , -(A/NwP̂&'.\8op @3;ȟȡ w0 Ab j1@#""vŧOo  ,,txJ fffFPdۈPd 031prr\@,Νnnn$A9a?d|2ϟ#77wTP?ȭhY Y^~ nsyJIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/bz2.png000066400000000000000000000020321154131622000215220ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9 OOg` \" _30+3;PPZ/.00|{#P&~l 3 \@@Oc``d*| 9K10z  | ?@@x }=@M@63:hD# ̬@}&b7< @C??B B ÿ ?P\lP0P@] 5Gd 0^ `5oqBl@/0Ubacc+/PdĿp +V6 RFF&bdGTDW lf?@4Hs.; bqmb4吾G+&Т_2>7^1{a c @押 0+ 1ExJYyyaʝw?cXT< @ J \pdbPX2$Ey֊slcX 0&ݞxIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/c.png000066400000000000000000000014611154131622000212540ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  MhywFp rFFx4hP )qi@g. @,eee;bgt:Ý;DE~ 4 22$@,070(01=zNl/_c A~₻ݻO : >;;tGEE9`f s}9 Z5p7eb@/ 0lzF;QJJ* ?$# %ffH b X^~ NlIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/cc.png000066400000000000000000000014611154131622000214170ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  MhywFp rFFx4hP )qi@g. @,eee;bgt:Ý;DE~ 4 22$@,070(01=zNl/_c A~₻ݻO : >;;tGEE9`f s}9 Z5p7eb@/ 0lzF;QJJ* ?$# %ffH b X^~ NlIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/cgi.png000066400000000000000000000017331154131622000215760ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<mIDATxb?% X@^^\\ ^b`g`a)/ 4%%}xy Ο9SߩL@} ̤2b`97+J  w @`%&a`g&ii)ni#f g~޼_0Ȳ>]5H/@ `/+Lll b>~a{~ e58-x3H/@]͛lpO_~0KF c޿cf_=P lk7=~m.R ώdxyw^"$>O 痟?3c9~zO ?al;##ׯ{oף?n^Fƛ_߼~%-_w t5# ތt԰IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/class.png000066400000000000000000000014461154131622000221420ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a###:`bbb`ccc}ax#''(^Cbp 3}g> !% ""àaD _]=1ûOn#C1:@ϟ zzMvꟿpex tȂwv@8EXgϞ1,hĄF&Fto`@0~8P ,X(üh$]0 Op Z[[] KNEWdee|VV~ax98L X1@>:YZZC[@,ΝnaaPTGߠffk@7@ _=QJJ* h?XFegbׯ_}$Fɕ!IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/cpp.png000066400000000000000000000014611154131622000216140ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  MhywFp rFFx4hP )qi@g. @,eee;bgt:Ý;DE~ 4 22$@,070(01=zNl/_c A~₻ݻO : >;;tGEE9`f s}9 Z5p7eb@/ 0lzF;QJJ* ?$# %ffH b X^~ NlIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/css.png000066400000000000000000000016551154131622000216270ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxb:a### [ZZ aǎ?/?|yyC(c@bd_S!\d\ Z$.rCsP"//D?~> ؐPз @,`_~ `i"a3@ 102̼ ^fxrh?o}'@y D=/Á};$EDDn~ +w>0213s^b0dY1̘1 Nj Wa Cn'Pi`%t8L@ 4O L1| L <\ o\gS``ba|N002mad֏Oon2ANZAZAK O eOxfx3'#40?? Qr~l L ggAɝ6`B @~ğϿ=2c!0ng`| @C1 6 ;%p-fv0 = V J@2b`bN @,`Sc=/S ,@ d??߿x(@,t qN6^En '''''(1˹s[XXp/Y д s̿6?.__͝(%%gSѳ8H Y^~ ×IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/cxx.png000066400000000000000000000014611154131622000216340ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  MhywFp rFFx4hP )qi@g. @,eee;bgt:Ý;DE~ 4 22$@,070(01=zNl/_c A~₻ݻO : >;;tGEE9`f s}9 Z5p7eb@/ 0lzF;QJJ* ?$# %ffH b X^~ NlIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/dhtml.png000066400000000000000000000016671154131622000221520ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb:a### [ZZ aǎ???/__^^@ auu֞rZ3GHCx嫂Gcf@,P c`ef`xO_1218 ÷@or @ `e_W13+r30 |v\`A0 8N}`x\ >`p;Y{?b؀'o2l=AMC{+.0\v ec3`c@2bbxx.ÑC| bSf9ñ}20h1H 3< @ X+o nĠ K~n&@Wü@,! zfF Z o?301DE{1J0|_ RB\ .X @, S鄁 hH þ{xgoW2p3r/b^b(cgfpWpSO>db HA^| _ L$ <,  ?> 2^>VPA\ ʸ  fd RFNNN0f4&b9ww ߿380 _͝(%%J!Qѳ8H Y^~ J^TIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/doc.png000066400000000000000000000016571154131622000216060ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<AIDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{| (`56,10̩)g'c zTorJ``Eg3#R2~rܹ,A /030 FnnD`Ni __Y`@`~s.-IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/document.png000066400000000000000000000016641154131622000226550ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<FIDATxb:ataXX Xtmmm?V&9A4 $5uXbZ K2 _&2,*ff9?@aA E62v#;ʂV59Q݈avAgXs+X~ _zfF>!.h$r0~b8|uaӠ V @,L@'uۯ؁?@\dbfWoR?96F Cgx 7E,@?FFl@4΃o __}fd"@(3s-";@?iL @:h(Ó$[0!?0Acdt'cdcb`ffFPXg b`zaf`` f[Ͽ1| &~fjp?)@A_ 4v_'?A^A#?$?8+0 & b{~`/F&FIfJk?3ï_@'ea` F@ݜ~31{ #@9{ow F3 Y0u3=wϿ;QJJ* (?c $,_IV(Le IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/docx.png000066400000000000000000000016571154131622000217760ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<AIDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{| (`56,10̩)g'c zTorJ``Eg3#R2~rܹ,A /030 FnnD`Ni __Y`@`~s.-IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/exe.png000066400000000000000000000017331154131622000216150ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<mIDATxb?% X@^^\\ ^b`g`a)/ 4%%}xy Ο9SߩL@} ̤2b`97+J  w @`%&a`g&ii)ni#f g~޼_0Ȳ>]5H/@ `/+Lll b>~a{~ e58-x3H/@]͛lpO_~0KF c޿cf_=P lk7=~m.R ώdxyw^"$>O 痟?3c9~zO ?al;##ׯ{oף?n^Fƛ_߼~%-_w t5# ތt԰IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/folder.png000066400000000000000000000010561154131622000223050ustar00rootroot00000000000000PNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxbd```bpcC@15@@y' b(fbFdd8;ݷ%2+Tx- W8GA؀W_d`蚲(u?AnI02 ^~.   _~@/PlӬg R0 P}1H@_30|0@ xjWH2jO( "Ll ~ȩ _ODx$&b<`Ca?D3H d$loH.I  ( Pi*`*  @!;Ap,chvaP *b%*J@ .^IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/fon.png000066400000000000000000000015741154131622000216210ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?% (ec`LTVךv{%?HK100z32|ga``7G?@11*/ "QU1B@.t@E2@11 OQNHUBAPY؝ fj_̿E`4yݸE?<Ơg 󿬲1/e^ Dt2 ^ 'ukU52| r bUu?abdvtScbi@L:IQQ7 w_PƜE.p|7\-,a 'badafCI^YYIO "B,9٬f9ix0* 3?f|Qۇ?}|&b*ȬkW+XPTt$_?tA]P~A&.0/L0ڰ ." >*,*@ɑA"Y.V[S KF +$M?$ A ,1'Pba`d  T@ ~d`aa`cv`23+70%~Z @F87^x<|.IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/gif.png000066400000000000000000000014701154131622000215770ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ Ȁx---İcǎIӗ.]/// XA+ógOؙAna` ?_$0߿0 ϟ=cxß ߾;`G  `gedaE?r |~~2cȏ``af5 lVbiAW^f`އ >2]P/ , -(A/NwP̂&'.\8op @3;ȟȡ w0 Ab j1@#""vŧOo  ,,txJ fffFPdۈPd 031prr\@,Νnnn$A9a?d|2ϟ#77wTP?ȭhY Y^~ nsyJIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/gz.png000066400000000000000000000021461154131622000214530ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9{) L򗙛K(%_xz~S3df?@ *z# PsOOc`P,@f 0>  ,p <@aa|@ @Y#p{>2dcx7Ë5f` ,M<' n͠" OACF ?п@ 3 |be~-YùMN̽ "' l&6b@'35x޿p+3 dƠd'Б; @mh ߿ r 6V O.>fp,a2QbPvë@̒290J103aagPu1dj dqmb4吾G+&+/^c&_>xpjE{/ֳϾa*@1+2k`*Wb40u72`y8z͕;~ǰt3y ,x d sI3)b``H΍IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/h.png000066400000000000000000000014101154131622000212530ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  Mhy& M lɃԃ @,58A~7ȱ`CY05@,i X2 0vh@ACɓ >|a6|a6`p;Y{?b؀'o2l=AMC{+.0\v ec3`c@2bbxx.ÑC| bSf9ñ}20h1H 3< @ X+o nĠ K~n&@Wü@,! zfF Z o?301DE{1J0|_ RB\ .X @, S鄁 hH þ{xgoW2p3r/b^b(cgfpWpSO>db HA^| _ L$ <,  ?> 2^>VPA\ ʸ  fd RFNNN0f4&b9ww ߿380 _͝(%%J!Qѳ8H Y^~ J^TIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/html.png000066400000000000000000000016671154131622000220060ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb:a### [ZZ aǎ???/__^^@ auu֞rZ3GHCx嫂Gcf@,P c`ef`xO_1218 ÷@or @ `e_W13+r30 |v\`A0 8N}`x\ >`p;Y{?b؀'o2l=AMC{+.0\v ec3`c@2bbxx.ÑC| bSf9ñ}20h1H 3< @ X+o nĠ K~n&@Wü@,! zfF Z o?301DE{1J0|_ RB\ .X @, S鄁 hH þ{xgoW2p3r/b^b(cgfpWpSO>db HA^| _ L$ <,  ?> 2^>VPA\ ʸ  fd RFNNN0f4&b9ww ߿380 _͝(%%J!Qѳ8H Y^~ J^TIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/inc.png000066400000000000000000000017241154131622000216050ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxb:a### [ZZ aǎ?/ tyyC(@EQ_n=PBG)0z!03B@,P@ @3~  +r0p120g`cg 2g/ö 4y{| 'Ġn񋁙? @x?; 19ѝS ?~=&3#vGw_1(]`3v @l}̠p+é]nnAZJ o~b`~Af`?h}t]c3 !.^6J B| ?002()0z+mbb'+/ Х< 10d`7We Wj /`c701 0AiA?* B Q 2R _?~e?;÷bb$0?C Á l xYXgm]N.`|? >fw_ dFY ? E1H s 0A4@L ~2mUaaЗ6`fe`_S$0@ b`F`x1 ~NyL` hLrܹ& b{ WHvc˗/3|@1rss'JIIRHde,bׯ_}$R fIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/index.html000066400000000000000000000000541154131622000223160ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/images/extension/jar.png000066400000000000000000000022211154131622000216010ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<#IDATxAm Na$,2Ը  AH g84;/;&:% @^Z޽ Am a%,#.   ޑwAŇ/8Ul  QgL00U-8o\ ĥ%s00|}(g >}ax#''(^Cbp 3}g> !% ""àaD _]=1ûOn#C1:@ϟ zzMvꟿpex tȂwv@8EXgϞ1,hĄF&Fto`@0~8P ,X(üh$]0 Op Z[[] KNEWdee|VV~ax98L X1@>:YZZC[@,ΝnaaPTGߠffk@7@ _=QJJ* h?XFegbׯ_}$Fɕ!IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/jpeg.png000066400000000000000000000014701154131622000217570ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ Ȁx---İcǎIӗ.]/// XA+ógOؙAna` ?_$0߿0 ϟ=cxß ߾;`G  `gedaE?r |~~2cȏ``af5 lVbiAW^f`އ >2]P/ , -(A/NwP̂&'.\8op @3;ȟȡ w0 Ab j1@#""vŧOo  ,,txJ fffFPdۈPd 031prr\@,Νnnn$A9a?d|2ϟ#77wTP?ȭhY Y^~ nsyJIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/jpg.png000066400000000000000000000014701154131622000216120ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ Ȁx---İcǎIӗ.]/// XA+ógOؙAna` ?_$0߿0 ϟ=cxß ߾;`G  `gedaE?r |~~2cȏ``af5 lVbiAW^f`އ >2]P/ , -(A/NwP̂&'.\8op @3;ȟȡ w0 Ab j1@#""vŧOo  ,,txJ fffFPdۈPd 031prr\@,Νnnn$A9a?d|2ϟ#77wTP?ȭhY Y^~ nsyJIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/js.png000066400000000000000000000004061154131622000214440ustar00rootroot00000000000000PNG  IHDRRPLTETtRNS@fbKGDH pHYs  tIME +,6KjIDAT% @ DGV|澬z6`sz5\ߎ>hs' 9^EFM7^Oe'-ۙ@U뚆K9RmIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/m3u.png000066400000000000000000000020201154131622000215260ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxba!Y20IHkH9u?11誉301I303|rAՕ P\i3S1a?' M?cg @ _eQѲ+G3AXAH  gcA >?# .=NF^&   (Ï^ Tɠ/]}F , _1P /O ueso_ B @޽Ç7 "œw m 3 x;'089XYA'G e ƗO2031|a?#@1]<#?O o> /6f ;8ó'/޽{  10e A z%6/XYSV+;K`ep<, cbcx=Āh11qp/7ykmc ( >e LY pu99 LGyGB[ "V 5b |P0pq0 6d (oo7Qs]"@&2331]/]@tCpp5>b3{60* @ e`g9?×8^bf[@@c X@+01̘>`Ho`u"" ޽@tx1(QB d`ea{ aJ~dd Oyl(4 fp56...xjÖalf99-&b4a·_RRRi@yVPDY$,_Ifc{mIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/mov.png000066400000000000000000000020551154131622000216330ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`666uuuFF>>>V&&f1(tQUU=YOOP X e7 ufdd677 cYh :Íw /] @0JϞ=wrw0| kyyáC6mڕ??~ ߿QZZODDMWWO)--sӦ@Ĥa׏=8ԴYĘ̂{5 zz 7s֍ϓ@5; C1|A !.!!!221'%!!]))& YJJ2Aϟ ))a`eKOK|). فaw6;w˗/rrrzAFF?_DX8 ,,ʠpaw7 _~`aa0117+#O `xΠ- (🅃 hagt<(_(0#ׯ @À ×o?n`aˍ f< xxy8~qq33hf a{/3/0}7v]a@ `)?@C~ (>_?0~{`-Aۏ`u@`8 A/ÿ%35;8÷ _b`t?p  & 2Ϟ2*2+103|:3+;;!@ [71| ,@/fcd~6eu6P_f* f&FP]|`9]IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/mp3.png000066400000000000000000000020201154131622000215210ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxba!Y20IHkH9u?11誉301I303|rAՕ P\i3S1a?' M?cg @ _eQѲ+G3AXAH  gcA >?# .=NF^&   (Ï^ Tɠ/]}F , _1P /O ueso_ B @޽Ç7 "œw m 3 x;'089XYA'G e ƗO2031|a?#@1]<#?O o> /6f ;8ó'/޽{  10e A z%6/XYSV+;K`ep<, cbcx=Āh11qp/7ykmc ( >e LY pu99 LGyGB[ "V 5b |>>V&&f1(tQUU=YOOP X e7 ufdd677 cYh :Íw /] @0JϞ=wrw0| kyyáC6mڕ??~ ߿QZZODDMWWO)--sӦ@Ĥa׏=8ԴYĘ̂{5 zz 7s֍ϓ@5; C1|A !.!!!221'%!!]))& YJJ2Aϟ ))a`eKOK|). فaw6;w˗/rrrzAFF?_DX8 ,,ʠpaw7 _~`aa0117+#O `xΠ- (🅃 hagt<(_(0#ׯ @À ×o?n`aˍ f< xxy8~qq33hf a{/3/0}7v]a@ `)?@C~ (>_?0~{`-Aۏ`u@`8 A/ÿ%35;8÷ _b`t?p  & 2Ϟ2*2+103|:3+;;!@ [71| ,@/fcd~6eu6P_f* f&FP]|`9]IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/mpg.png000066400000000000000000000020551154131622000216150ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb`666uuuFF>>>V&&f1(tQUU=YOOP X e7 ufdd677 cYh :Íw /] @0JϞ=wrw0| kyyáC6mڕ??~ ߿QZZODDMWWO)--sӦ@Ĥa׏=8ԴYĘ̂{5 zz 7s֍ϓ@5; C1|A !.!!!221'%!!]))& YJJ2Aϟ ))a`eKOK|). فaw6;w˗/rrrzAFF?_DX8 ,,ʠpaw7 _~`aa0117+#O `xΠ- (🅃 hagt<(_(0#ׯ @À ×o?n`aˍ f< xxy8~qq33hf a{/3/0}7v]a@ `)?@C~ (>_?0~{`-Aۏ`u@`8 A/ÿ%35;8÷ _b`t?p  & 2Ϟ2*2+103|:3+;;!@ [71| ,@/fcd~6eu6P_f* f&FP]|`9]IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/pdf.png000066400000000000000000000015311154131622000216010ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a#`󙘘8𽥥 v?. ٿ~O˗ @2ϟ? & $v?2``d'///X=H-@@5f``|yJ/010 y?@a5삿30&!Q~"\U@LqP $e20s09f@Y ?/_e`4P3H/H̵c Lb~_L] _ @L0'ct..0xKψֵ 8q2Pv33Ɵa/%=W6NXr: -22c XNE ; g`޽ ٌ o\ecdx C2 00- @?d`\5/ \g6APP0Ȍᣁ%÷ĥNo ?]bCk.`j#?X!? 脥Dba$Woq?0&]DB@1222˹翛[Zr ̏!i031|@1rss'JIIYA%+Ab@߿`+KIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/php.png000066400000000000000000000017451154131622000216260ustar00rootroot00000000000000PNG  IHDR(-StIME8 ?8itEXtSoftwareGLDPNG ver 3.4qtpNGGLD3J)gAMA aPLTE """)))UUUMMMBBB999|PP֭3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f̙333f3̙333f3ffffff3f̙̙3f̙3f3f333f3333f3fff̙fff3f̙3f3f̙fffffffff!___www˲𠠤X"NFIDATxc؊H( @\HQ``@ @vpAm9b@8"9>]dE_IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/php3.png000066400000000000000000000017451154131622000217110ustar00rootroot00000000000000PNG  IHDR(-StIME8 ?8itEXtSoftwareGLDPNG ver 3.4qtpNGGLD3J)gAMA aPLTE """)))UUUMMMBBB999|PP֭3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f̙333f3̙333f3ffffff3f̙̙3f̙3f3f333f3333f3fff̙fff3f̙3f3f̙fffffffff!___www˲𠠤X"NFIDATxc؊H( @\HQ``@ @vpAm9b@8"9>]dE_IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/php4.png000066400000000000000000000017451154131622000217120ustar00rootroot00000000000000PNG  IHDR(-StIME8 ?8itEXtSoftwareGLDPNG ver 3.4qtpNGGLD3J)gAMA aPLTE """)))UUUMMMBBB999|PP֭3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f̙333f3̙333f3ffffff3f̙̙3f̙3f3f333f3333f3fff̙fff3f̙3f3f̙fffffffff!___www˲𠠤X"NFIDATxc؊H( @\HQ``@ @vpAm9b@8"9>]dE_IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/php5.png000066400000000000000000000017451154131622000217130ustar00rootroot00000000000000PNG  IHDR(-StIME8 ?8itEXtSoftwareGLDPNG ver 3.4qtpNGGLD3J)gAMA aPLTE """)))UUUMMMBBB999|PP֭3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f̙333f3̙333f3ffffff3f̙̙3f̙3f3f333f3333f3fff̙fff3f̙3f3f̙fffffffff!___www˲𠠤X"NFIDATxc؊H( @\HQ``@ @vpAm9b@8"9>]dE_IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/phtml.png000066400000000000000000000017451154131622000221630ustar00rootroot00000000000000PNG  IHDR(-StIME8 ?8itEXtSoftwareGLDPNG ver 3.4qtpNGGLD3J)gAMA aPLTE """)))UUUMMMBBB999|PP֭3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f̙333f3̙333f3ffffff3f̙̙3f̙3f3f333f3333f3fff̙fff3f̙3f3f̙fffffffff!___www˲𠠤X"NFIDATxc؊H( @\HQ``@ @vpAm9b@8"9>]dE_IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/pl.png000066400000000000000000000012351154131622000214440ustar00rootroot00000000000000PNG  IHDRatIME7KtEXtSoftwareGLDPNG ver 3.4qtpNGGLD3J)gAMA a IDATx͋QvV,(e7e[IV4K /lB򚒲bČ&0:6sܹR[gqyyy$w8_z՟+Zzjc: Z x0͘_ N Tonn`ِdNa0ǿ~D"bLf(T*$HWL&h4 VP(h4~@.\.: b1J%B!|>%6L&/1$hDp8#zt: T*c'RPjux<j(J$D"\\\`ݢP( ;(@R"LBVf~%b1) fÁܘ)`XX,v6^/5T@vtʈF>y$&P,+9"@8y'Nk|C&M2IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/pls.png000066400000000000000000000020201154131622000216200ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxba!Y20IHkH9u?11誉301I303|rAՕ P\i3S1a?' M?cg @ _eQѲ+G3AXAH  gcA >?# .=NF^&   (Ï^ Tɠ/]}F , _1P /O ueso_ B @޽Ç7 "œw m 3 x;'089XYA'G e ƗO2031|a?#@1]<#?O o> /6f ;8ó'/޽{  10e A z%6/XYSV+;K`ep<, cbcx=Āh11qp/7ykmc ( >e LY pu99 LGyGB[ "V 5b |2]P/ , -(A/NwP̂&'.\8op @3;ȟȡ w0 Ab j1@#""vŧOo  ,,txJ fffFPdۈPd 031prr\@,Νnnn$A9a?d|2ϟ#77wTP?ȭhY Y^~ nsyJIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/py.png000066400000000000000000000015411154131622000214610ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:a߿ ( 8𽥥 v??.ׯ?]|!1 CяZPஈ8&GʽZ0K̹8j9@L LL ,,L@@05b&F@\@,XY}WF668((,@, Ћ _~ #X3f&k@^AȆϟw2?po@󗁓ׯ?`@~9b_ A X@@ 8l`BTfZA  Mhy& M.b(05 X Nk6pHocX7?n&X4@,eee;`,,l `xk6 vAVf8 0x `2 lfOKy)v>fn3X 10Let%3#(z?1芨0ɺ2 j0y}_{=Q ON30122˹s[XXp pï "D~p2}z+ãO.^Ͽ;QJJ* ?$#r, L y Ñ V %% +(uwu1qcHsYf@1 |fvgʠ)A% j/n3bfx7;+a塏 .V v]iVF Y'o2K303031|@1rss'JIIYâ)+gq~'zв}IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/ram.png000066400000000000000000000016341154131622000216130ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<.IDATxb:a### [ZZ aǎ?ׯ?_|!A :j!C(TP33KtOQ;$ۯ/XllL b8s+Ó@ 9X>y Ñ V %% +(uwu1qcHsYf@1 |fvgʠ)A% j/n3bfx7;+a塏 .V v]iVF Y'o2K303031|@1rss'JIIYâ)+gq~'zв}IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/rar.png000066400000000000000000000020321154131622000216110ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9 OOg` \" _30+3;PPZ/.00|{#P&~l 3 \@@Oc``d*| 9K10z  | ?@@x }=@M@63:hD# ̬@}&b7< @C??B B ÿ ?P\lP0P@] 5Gd 0^ `5oqBl@/0Ubacc+/PdĿp +V6 RFF&bdGTDW lf?@4Hs.; bqmb4吾G+&Т_2>7^1{a c @押 0+ 1ExJYyyaʝw?cXT< @ J \pdbPX2$Ey֊slcX 0&ݞxIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/rm.png000066400000000000000000000016341154131622000214520ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<.IDATxb:a### [ZZ aǎ?ׯ?_|!A :j!C(TP33KtOQ;$ۯ/XllL b8s+Ó@ 9X>y Ñ V %% +(uwu1qcHsYf@1 |fvgʠ)A% j/n3bfx7;+a塏 .V v]iVF Y'o2K303031|@1rss'JIIYâ)+gq~'zв}IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/sh.png000066400000000000000000000017211154131622000214430ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<cIDATxb:i߿ c`dddd6118p{KKK@1ڵǟ?~_c@,vhÿ/_2;wAEY_ o޾e$;;߿.4 X@ I5uMn@A66VS~20  A ߿>bx4s+32dzg lfl _1<󄁙ADL??>@ۀ /_~C\@@}ye)AI _}agz/ ۀ]2 3 /@CRTAo >@l`{ zn 0 ~}cx- 8 3+_~mc BOA XMd7 1px?wbzPv  ~`xMÃgdx8~0''8 C X@;0;GFn  >a`cfb`~?0V||` @,!#g7E }e w@  AKX@CANh*0Y8Xy30*6Ff&b9}ws @1@Ph&$> Ҁ@Ya~Eb`IлUaIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/shtml.png000066400000000000000000000016671154131622000221710ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IIDATxb:a### [ZZ aǎ???/__^^@ auu֞rZ3GHCx嫂Gcf@,P c`ef`xO_1218 ÷@or @ `e_W13+r30 |v\`A0 8N}`x\ >`p;Y{?b؀'o2l=AMC{+.0\v ec3`c@2bbxx.ÑC| bSf9ñ}20h1H 3< @ X+o nĠ K~n&@Wü@,! zfF Z o?301DE{1J0|_ RB\ .X @, S鄁 hH þ{xgoW2p3r/b^b(cgfpWpSO>db HA^| _ L$ <,  ?> 2^>VPA\ ʸ  fd RFNNN0f4&b9ww ߿380 _͝(%%J!Qѳ8H Y^~ J^TIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/sql.png000066400000000000000000000017211154131622000216300ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<cIDATxb:i߿ c`dddd6118p{KKK@1ڵǟ?~_c@,vhÿ/_2;wAEY_ o޾e$;;߿.4 X@ I5uMn@A66VS~20  A ߿>bx4s+32dzg lfl _1<󄁙ADL??>@ۀ /_~C\@@}ye)AI _}agz/ ۀ]2 3 /@CRTAo >@l`{ zn 0 ~}cx- 8 3+_~mc BOA XMd7 1px?wbzPv  ~`xMÃgdx8~0''8 C X@;0;GFn  >a`cfb`~?0V||` @,!#g7E }e w@  AKX@CANh*0Y8Xy30*6Ff&b9}ws @1@Ph&$> Ҁ@Ya~Eb`IлUaIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/swf.png000066400000000000000000000020131154131622000216230ustar00rootroot00000000000000GIF89aǒѼфbw~ @ =^ <^󠮼j{ẻw0Pk՞l{k~ct.Me󋓜#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9 OOg` \" _30+3;PPZ/.00|{#P&~l 3 \@@Oc``d*| 9K10z  | ?@@x }=@M@63:hD# ̬@}&b7< @C??B B ÿ ?P\lP0P@] 5Gd 0^ `5oqBl@/0Ubacc+/PdĿp +V6 RFF&bdGTDW lf?@4Hs.; bqmb4吾G+&Т_2>7^1{a c @押 0+ 1ExJYyyaʝw?cXT< @ J \pdbPX2$Ey֊slcX 0&ݞxIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/tbz.png000066400000000000000000000020321154131622000216240ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9 OOg` \" _30+3;PPZ/.00|{#P&~l 3 \@@Oc``d*| 9K10z  | ?@@x }=@M@63:hD# ̬@}&b7< @C??B B ÿ ?P\lP0P@] 5Gd 0^ `5oqBl@/0Ubacc+/PdĿp +V6 RFF&bdGTDW lf?@4Hs.; bqmb4吾G+&Т_2>7^1{a c @押 0+ 1ExJYyyaʝw?cXT< @ J \pdbPX2$Ey֊slcX 0&ݞxIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/tgz.png000066400000000000000000000021461154131622000216370ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9{) L򗙛K(%_xz~S3df?@ *z# PsOOc`P,@f 0>  ,p <@aa|@ @Y#p{>2dcx7Ë5f` ,M<' n͠" OACF ?п@ 3 |be~-YùMN̽ "' l&6b@'35x޿p+3 dƠd'Б; @mh ߿ r 6V O.>fp,a2QbPvë@̒290J103aagPu1dj dqmb4吾G+&+/^c&_>xpjE{/ֳϾa*@1+2k`*Wb40u72`y8z͕;~ǰt3y ,x d sI3)b``H΍IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/txt.gif000066400000000000000000000022531154131622000216320ustar00rootroot00000000000000GIF89a <+&&&=>?@-K/ YK3wNeO'AAABBBGGGTTT\\\e\Eeeefffgggiiijjjlllmmnoooppprrrssstttuuuvvvwwwxxxyyyzzz{{{}}}~~~n1{`yD[uexIF^eȊ1ժ]/?11誉301I303|rAՕ P\i3S1a?' M?cg @ _eQѲ+G3AXAH  gcA >?# .=NF^&   (Ï^ Tɠ/]}F , _1P /O ueso_ B @޽Ç7 "œw m 3 x;'089XYA'G e ƗO2031|a?#@1]<#?O o> /6f ;8ó'/޽{  10e A z%6/XYSV+;K`ep<, cbcx=Āh11qp/7ykmc ( >e LY pu99 LGyGB[ "V 5b |`p;Y{?b؀'o2l=AMC{+.0\v ec3`c@2bbxx.ÑC| bSf9ñ}20h1H 3< @ X+o nĠ K~n&@Wü@,! zfF Z o?301DE{1J0|_ RB\ .X @, S鄁 hH þ{xgoW2p3r/b^b(cgfpWpSO>db HA^| _ L$ <,  ?> 2^>VPA\ ʸ  fd RFNNN0f4&b9ww ߿380 _͝(%%J!Qѳ8H Y^~ J^TIENDB`extplorer-2.1.0b6+dfsg.3/images/extension/xls.png000066400000000000000000000017701154131622000216430ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{~ǰ, 00},0\ig?+  ۓ m |bb@E ^0^b(APo/1s3 ]@,C x> {fYxؿ g@ ){ l@.#_> ̠. IZ2$d`?*%/.\ L~|`xv_՛A֌p8~PePƠyCa] e/v tdT0@  Xqd-W _}c`cfcbb;) XΝ;‚@(A2^}xFXne&`n@܉ D 2Y^~&{{`IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/xlsx.png000066400000000000000000000017701154131622000220330ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:c򟑑 f`fff3 q666oii) ƽ{d|2Ç$%%TTTΟ?p}{{{R{ X6kz=ý{~ǰ, 00},0\ig?+  ۓ m |bb@E ^0^b(APo/1s3 ]@,C x> {fYxؿ g@ ){ l@.#_> ̠. IZ2$d`?*%/.\ L~|`xv_՛A֌p8~PePƠyCa] e/v tdT0@  Xqd-W _}c`cfcbb;) XΝ;‚@(A2^}xFXne&`n@܉ D 2Y^~&{{`IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/xml.png000066400000000000000000000011211154131622000216230ustar00rootroot00000000000000PNG  IHDRaIDATxuKUA?3I -ޢ?@jf"-۷ iB "6jDfPwj1W}^f· _/JPJFkV12rf[ݺ= >vm{/n\h{_$ly;:=)~.};'݀x D9xYD΁7BQ1^:  ȩk)šk;^`=.km2\VmaWPJAxDR|v!D,uyGput>C|9{ s a9NEZ@`iXk)%.7G 9hg GA*xZ2$bbbvauuB/"DH$]]eK`ǯjr!r\%"IENDB`extplorer-2.1.0b6+dfsg.3/images/extension/zip.png000066400000000000000000000020321154131622000216270ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxAhQ "Y#*-ֹ A] \%06/>#5'Tc^߻ An !R'.$.  ۍwtǿzމL |`-=1)&F&vNq d``gfx{n7CHƼkL ߿20r2K300|KAD20<9 OOg` \" _30+3;PPZ/.00|{#P&~l 3 \@@Oc``d*| 9K10z  | ?@@x }=@M@63:hD# ̬@}&b7< @C??B B ÿ ?P\lP0P@] 5Gd 0^ `5oqBl@/0Ubacc+/PdĿp +V6 RFF&bdGTDW lf?@4Hs.; bqmb4吾G+&Т_2>7^1{a c @押 0+ 1ExJYyyaʝw?cXT< @ J \pdbPX2$Ey֊slcX 0&ݞxIENDB`extplorer-2.1.0b6+dfsg.3/images/index.html000066400000000000000000000000541154131622000203020ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/images/joomla_x_icon.png000066400000000000000000000012111154131622000216270ustar00rootroot00000000000000PNG  IHDR_*?gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEȞFaEtRNS8IDATxbpqapq a @@ 3@9@q&6'0  7@181EU,z .<Μ@:H @1(3 H5 P)X& ddȺh;;+300 Pʔ b> 38d,,j1EBI.a ;pp,V;ٜf"PK] h3IIENDB`extplorer-2.1.0b6+dfsg.3/images/logo.gif000066400000000000000000000111101154131622000177270ustar00rootroot00000000000000GIF89a9,!"#"#$%&'#$%&'('())*+,-.*+,./0/01345567123841952;74=96==>;;;789A=:DA>>?@DEFCCBMIHNJIJKLJGFQNLTPNRRSSTUVTS\[[YWUOPQa^\c`^__`abcedciedkhflkjqnmspnopqrssutsyvu|z{{{xxx4061;6=9B=@7~}LBFBYRZTSNh]jf|mzu^8_8b:elElJgCuKyVpF~`[lciu@ACEFJN[RZed}~khldvw{oyqrt$v(x-|%y4~|/3:\HToXLciv}Ԇ鈆뙗ӧҚіبܰ‡ȐǙ۰ͨ¼շ༄ӗٜڣݶ! ,9, H*\ȰÇ#JloI4^$ nǏ CIɓ(CA˗>JI͛8s̟*E<תƉv*֔nId'L 4gz[ʵkz=4ޥ/y]kp7ú 图zM05L!:b]~(ǐ܉/ W˸XP\XB&Ӆ?%v)c?I۷$ɥKWu&Lܚ-i+2k sewJDb-c:.Y|ŋ3봴Zy SGĂ KDDVtN,lh#LaxEYh! a4VbT?m 8Y8:xgd | )d\9H=4Rd$DN#0C$L;tI8y`8&qUACD(0@IP: I(@%xbC (CA 99?wPHᄛhKr] ^aB@B% (*De&6AA5'bzJ7nz:)j|,# B͝%뮽"k9餃4@M0&@֛O=&.bFi* Aᑼ@ ;Rt O*@=z  *F.sb|A"c D0E#k #L-d9 Ĺܲ^GbI㐃# <R2*2#]b'8#>p -̐($3BPp"u8x(tM(T` -5z>.P.H/U s\@" 7gRt3P!L4e3H!P"ʌ&c (r$PSP<ʨ#ط Tă V3!" {%6"p@$0@G;DA@   ل?at4BqN;%5$E .-e2 ŵZk u@*Aj[fv>ʹ ts(@A*G MxAE`a4 Omt! @ |4Qm`5Q!oՑ4K,+*AŠZ H+D:S>r8 WgxC̈́!A J8 8[#B04{8pyB>A'ECQ$C 7g1VD 5G Iʯ|00 WH*f;i0 RXϼgB ֤ $wnQ Q@U "7 O,6;=CfaAV ;!ݰ|@ZgH"KdD:_|BB'?ta,A{@ w7{A u,%p}p 0q@b0|Q| vw 1Jk$Q \m_ _%CpC#Bx7 M  0 l~q` a{w Pwe@@@v* ZW R i 5R G|f|h5p qPjFP%% \":qe@g *d>6p-25Pl iP ~P8<`BGĠ ](`d;7 u`pi$~a06 ׇx| ]e! G.W- gB'PV%m3~0  $`OA Q6 ̀ p@P @* 6 5p؀t1@u  )p`vsH`Z)0 hհ *`(U6  /J`5B M` r0WW6W3p.`/pQu-?X@ p / ,IzzB'~@ @ |tuJ @9=7cF@ **6  P1`0@R @@(e- @*%Hv(Xf 00e(Vuk(G RƗT 8Br $D+iaYC4`Gx )B@fp '|`@ {ЋyOI9P C@@nGpLI   5$I 1FU_p|y{tbзmfؐ Q P P  |@:Wr JVZ;@ b 0 ^` ` P@ a z "e _YM` p |.?p p pSeѰa\b@30m7aw ꄡW -FaD+% )V۱trвAJ @:В8PْB~ *^5@ACW0 @ iD0[شhrp^bQ f&03%bPzۀ ;1s&` H+0t@x j ]E{"5tq/L)v0:̰.q . k#=x{p80LӛK,x+#㛾;+B8;extplorer-2.1.0b6+dfsg.3/images/systeminfo.gif000066400000000000000000000023101154131622000211710ustar00rootroot00000000000000GIF89a (%'xۘaZiEH@^wxxQ7DgLY!yB|tKG+<7I|P RMr MGrqV4(J%v=-hle 3f3Υ_[uJh?%eC7.AuLHlWG(2!NJkD@X?`;G':%=b`ڊ&XS|(o'Otkvo cM?1]-{ʹ.fA4I/٦*{Vff"źB8UGb>f3333="&4q-O=][#95Cxm@6\Wjk>ZHKGd،#~nP}B!Created with The GIMP! , H FP@#(e *ᅖZHЃ ^RɁ)O.XdJ2bD!I"<=xЇ@P̑%# c?%zAFǙj$U!#(v1#)HTE%IbŒ7n0qJ,X(Pp80t#V(HKnҀ!O|@5"݃A<<"\c#K_S8:<@ѤX8>Y8H {p oF 'B8d p MpBpPk1A D  4" T g!ČT9 DB4 @pP;extplorer-2.1.0b6+dfsg.3/include/000077500000000000000000000000001154131622000164645ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/include/.htaccess000066400000000000000000000000161154131622000202570ustar00rootroot00000000000000deny from all extplorer-2.1.0b6+dfsg.3/include/admin.php000066400000000000000000000505101154131622000202660ustar00rootroot00000000000000 { "xtype": "tabpanel", "width": "450", "renderTo": Ext.getBody(), "id": "dialog_tabpanel", "dialogtitle": "", "activeTab": "", "items": [{ "xtype": "form", "id": "passform", "autoHeight": "true", "headerAsText": false, "labelWidth": 125, "url":"", "title": "", "frame": true, "items": [{ "xtype": "textfield", "fieldLabel": "", "name": "oldpwd", "inputType": "password", "allowBlank":false }, { "xtype": "textfield", "fieldLabel": "", "name": "newpwd1", "hiddenName": "newpwd1", "inputType": "password", "allowBlank":false }, { "xtype": "textfield", "fieldLabel": "", "name": "newpwd2", "hiddenName": "newpwd2", "inputType": "password", "allowBlank":false }], "buttons": [{ "text": "", "handler": function() { frm = Ext.getCmp("passform").getForm(); if(frm.findField('newpwd1').getValue() != frm.findField('newpwd2').getValue() ) { Ext.Msg.alert("Error!", ""); return false; } if(frm.findField('oldpwd').getValue() ==frm.findField('newpwd1').getValue()) { Ext.Msg.alert("Error!", ""); return false; } statusBarMessage( "Please wait...", true ); frm.submit({ //reset: true, reset: false, "success": function(form, action) { statusBarMessage( action.result.message, false, true ); Ext.getCmp("dialog").destroy(); }, "failure": function(form, action) { if( !action.result ) return; Ext.MessageBox.alert("Error!", action.result.error); statusBarMessage( action.result.error, false, false ); }, "scope": Ext.getCmp("passform"), // add some vars to the request, similar to hidden fields "params": { option: "com_extplorer", "action": "admin", "action2": "chpwd" } }) } }] } ,{ "xtype": "form", "id": "userlist", "autoHeight": "true", "headerAsText": false, "labelWidth": 125, "url":"", title: "", "frame": true, "items": [{ 15) $user=substr($user,0,12)."..."; $home=$GLOBALS["users"][$i][2]; if(strlen($home)>30) $home=substr($home,0,27)."..."; ?> "xtype": "radio", "name": "nuser", "inputValue": "", "fieldLabel": "", "boxLabel": "Homedir: '.$home.'; ' .($GLOBALS["users"][$i][4] ? $GLOBALS["messages"]["miscyesno"][2]:$GLOBALS["messages"]["miscyesno"][3]).'; ' .$GLOBALS["users"][$i][6].'; ' .($GLOBALS["users"][$i][7] ? $GLOBALS["messages"]["miscyesno"][2]:$GLOBALS["messages"]["miscyesno"][3]); ?>" } ], "buttons": [{ "text": "", "handler": function() { Ext.Ajax.request( { url: "", "params": { "option": "com_extplorer","action": "admin","action2": "adduser" }, "callback": function(oElement, bSuccess, oResponse) { if( !bSuccess ) { Ext.Msg.alert( "Ajax communication failure!"); } if( oResponse && oResponse.responseText ) { try{ json = Ext.decode( oResponse.responseText ); if( json.error && typeof json.error != 'xml' ) { Ext.Msg.alert( "", json.error ); dialog.destroy(); return false; } } catch(e) { return false; } Ext.getCmp("dialog_tabpanel").add( json ); Ext.getCmp("dialog_tabpanel").activate(json.id); Ext.getCmp("dialog").syncSize(); } } }); } }, { "text": "", "handler": function() { frm = Ext.getCmp("userlist").getForm(); try { theUser = frm.findField(0).getGroupValue(); } catch(e) { Ext.Msg.alert( "Error", "" ); return; } Ext.Ajax.request( { url: "", "params": { option: "com_extplorer","action": "admin","action2": "edituser","nuser":theUser }, "callback": function(oElement, bSuccess, oResponse) { if( !bSuccess ) { Ext.Msg.alert( "Ajax communication failure!"); } if( oResponse && oResponse.responseText ) { try{ json = Ext.decode( oResponse.responseText ); if( json.error && typeof json.error != 'xml' ) { Ext.Msg.alert( "", json.error ); dialog.destroy(); return false; } } catch(e) { return false; } Ext.getCmp("dialog_tabpanel").add( json ); Ext.getCmp("dialog_tabpanel").activate(json.id); Ext.getCmp("dialog").syncSize(); } } }); } }, { "text": "", "handler": function() { frm = Ext.getCmp("userlist").getForm(); try { theUser = frm.findField(0).getGroupValue(); } catch(e) { Ext.Msg.alert( "Error", "" ); return; } Ext.Msg.confirm( "", String.format( "", theUser ), function( btn ) { if( btn != 'yes') return; statusBarMessage( "Please wait...", true ); frm.submit({ "success": function(form, action) { statusBarMessage( action.result.message, false, true ); }, "failure": function(form, action) { if( !action.result ) return; Ext.MessageBox.alert("Error!", action.result.error); statusBarMessage( action.result.error, false, false ); }, "scope": Ext.getCmp("userlist").getForm(), // add some vars to the request, similar to hidden fields "params": { "option": "com_extplorer", "action": "admin", "action2": "rmuser", "user": theUser } }); }); } } ] }] } onAuthenticate(array('username'=>$data[0],'password'=>$data[1])); ext_Result::sendResult('changepwd', true, ext_Lang::msg('change_password_success')); } //------------------------------------------------------------------------------ function adduser($dir) { // Add User if(isset($GLOBALS['__POST']["confirm"]) && $GLOBALS['__POST']["confirm"]=="true") { $user=stripslashes($GLOBALS['__POST']["nuser"]); if($user=="" || $GLOBALS['__POST']["home_dir"]=="") { ext_Result::sendResult('adduser', false, $GLOBALS["error_msg"]["miscfieldmissed"]); } if($GLOBALS['__POST']["pass1"]!=$GLOBALS['__POST']["pass2"]) { ext_Result::sendResult('adduser', false, $GLOBALS["error_msg"]["miscnopassmatch"]); } $data=find_user($user,NULL); if($data!=NULL) { ext_Result::sendResult('adduser', false, $user.": ".$GLOBALS["error_msg"]["miscuserexist"]); } $data=array($user,extEncodePassword(stripslashes($GLOBALS['__POST']["pass1"])), stripslashes($GLOBALS['__POST']["home_dir"]),stripslashes($GLOBALS['__POST']["home_url"]), $GLOBALS['__POST']["show_hidden"],stripslashes($GLOBALS['__POST']["no_access"]), $GLOBALS['__POST']["permissions"],$GLOBALS['__POST']["active"]); if(!add_user($data)) { ext_Result::sendResult('adduser', false, $user.": ".$GLOBALS["error_msg"]["adduser"]); } ext_Result::sendResult('adduser', true, $user.": The user has been added"); return; } show_userform(); } //------------------------------------------------------------------------------ function edituser($dir) { // Edit User $user=stripslashes($GLOBALS['__POST']["nuser"]); $data=find_user($user,NULL); if($data==NULL) { ext_Result::sendResult('edituser', false, $user.": ".$GLOBALS["error_msg"]["miscnofinduser"]); } if($self=($user==$GLOBALS['__SESSION']['credentials_extplorer']['username'])) $dir=""; if(isset($GLOBALS['__POST']["confirm"]) && $GLOBALS['__POST']["confirm"]=="true") { $nuser=stripslashes($GLOBALS['__POST']["nuser"]); if($nuser=="" || $GLOBALS['__POST']["home_dir"]=="") { ext_Result::sendResult('edituser', false, $GLOBALS["error_msg"]["miscfieldmissed"]); } if(isset($GLOBALS['__POST']["chpass"]) && $GLOBALS['__POST']["chpass"]=="true") { if($GLOBALS['__POST']["pass1"]!=$GLOBALS['__POST']["pass2"]) ext_Result::sendResult('edituser', false, $GLOBALS["error_msg"]["miscnopassmatch"]); $pass=extEncodePassword(stripslashes($GLOBALS['__POST']["pass1"])); } else { $pass=$data[1]; } if($self) $GLOBALS['__POST']["active"]=1; $data=array($nuser,$pass,stripslashes($GLOBALS['__POST']["home_dir"]), stripslashes($GLOBALS['__POST']["home_url"]),$GLOBALS['__POST']["show_hidden"], stripslashes($GLOBALS['__POST']["no_access"]),$GLOBALS['__POST']["permissions"],$GLOBALS['__POST']["active"]); if(!update_user($user,$data)) { ext_Result::sendResult('edituser', false, $user.": ".$GLOBALS["error_msg"]["saveuser"]); } if($self) { activate_user($nuser,NULL); } ext_Result::sendResult('edituser', true, $user.": ".$GLOBALS["error_msg"]["saveuser"]); } show_userform( $data); } function show_userform( $data = null ) { if( $data == null ) { $data = array('', '', '', '', '', '', '' ); } $formname = @$data[0] ? 'frmedituser' : 'frmadduser'; ?> { "xtype": "form", "id" : "", "renderTo": Ext.getCmp("dialog_tabpanel").getEl(), "hidden": true, "closable":true, "labelWidth": 125, "url":"", "title": "" , items: [{ "xtype": "textfield", "fieldLabel": "", "name": "nuser", "value": "", "width":175, "allowBlank":false },{ "xtype": "textfield", "fieldLabel": "", "name": "pass1", "inputType": "password", "width":175 }, { "xtype": "textfield", "fieldLabel": "", "name": "pass2", "inputType": "password", "width":175 }, { "xtype": "checkbox", "fieldLabel": "", "name": "chpass", "hiddenValue": "true" }, { "xtype": "textfield", "fieldLabel": "", "name": "home_dir", "value": "", "width":175, "allowBlank":false }, { "xtype": "textfield", "fieldLabel": "", "name": "home_url", "value": "", "width":175, "allowBlank":false },{ "xtype": "combo", "fieldLabel": "", "store": [ ["1", " 0), true ) ?>"], ["0", " 1), true ) ?>"] ], "hiddenName": "show_hidden", "disableKeyFilter": true, "value": "", "editable": false, "triggerAction": "all", "mode": "local", "allowBlank": false, "selectOnFocus":true }, { "xtype": "textfield", "fieldLabel": "", "name": "no_access", "value": "", "width":175, "allowBlank":true }, { "xtype": "combo", "fieldLabel": "", "store": [ $index)).'" ]'."\n"; if( $i+1<$permcount) echo ','; } ?> ], "hiddenName": "permissions", "disableKeyFilter": true, "value": "", "editable": false, "triggerAction": "all", "mode": "local" }, { "xtype": "combo", "fieldLabel": "", "store": [ ["1", " 0), true ) ?>"], ["0", " 1), true ) ?>"] ], "hiddenName": "active", "disableKeyFilter": true, "value": "", "disabled": , "editable": false, "triggerAction": "all", "mode": "local", "allowBlank": false, "selectOnFocus":true } ], "buttons": [ { "text": "", "handler": function() { userform = Ext.getCmp("").getForm(); if(userform.findField('nuser').getValue()=="" || userform.findField('home_dir').getValue()=="") { Ext.Msg.alert('Status', ""); return false; } if(userform.findField('chpass').getValue() && userform.findField('pass1').getValue() != userform.findField('pass2').getValue()) { Ext.Msg.alert('Status', ""); return false; } statusBarMessage( 'Please wait...', true ); userform.submit({ "success": function(form, action) { statusBarMessage( action.result.message, false, true ); Ext.getCmp("dialog_tabpanel").remove(""); }, "failure": function(form, action) { if( !action.result ) return; Ext.Msg.alert('Error!', action.result.error); statusBarMessage( action.result.error, false, true ); }, "scope": userform, // add some vars to the request, similar to hidden fields "params": {option: 'com_extplorer', user: "", "action": 'admin', "action2": "", "confirm": "true" } }) } },{ "text": "", "handler": function() { Ext.getCmp("dialog_tabpanel").remove(""); } }] } $files_per_step ) { if( file_put_contents($dir_contents_cache_file, implode("\n", $v_list )) == false ) { ext_Result::sendResult('archive', false, 'Failed to create a temporary list of the directory contents' ); } } } else { $file_list_string = file_get_contents($dir_contents_cache_file); if( empty( $file_list_string )) { ext_Result::sendResult('archive', false, 'Failed to retrieve the temporary list of the directory contents' ); } $v_list = explode("\n", $file_list_string ); } $cnt_filelist = count( $v_list ); // Now we go to the right range of files and "slice" the array $v_list = array_slice( $v_list, $startfrom, $files_per_step-1 ); $remove_path = $GLOBALS["home_dir"]; if( $dir ) { $remove_path .= $dir; } $remove_path = str_replace( '\\', '/', realpath($remove_path) ).'/'; $debug = 'Starting from: '.$startfrom."\n"; $debug .= 'Files to process: '.$cnt_filelist."\n"; $debug .= implode( "\n", $v_list ); //file_put_contents( 'log.txt', $debug, FILE_APPEND ); // Do some setup stuff ini_set('memory_limit', '128M'); @set_time_limit( 0 ); error_reporting( E_ERROR | E_PARSE ); $result = extArchive::create( $archive_name, $v_list, $GLOBALS['__POST']["type"], '', $remove_path ); if( PEAR::isError( $result ) ) { ext_Result::sendResult('archive', false, $name.': '.ext_Lang::err('archive_creation_failed').' ('.$result->getMessage().$archive_name.')' ); } $json = new ext_Json(); if( $cnt_filelist > $startfrom+$files_per_step ) { $response = Array( 'startfrom' => $startfrom + $files_per_step, 'totalitems' => $cnt_filelist, 'success' => true, 'action' => 'archive', 'message' => sprintf( ext_Lang::msg('processed_x_files'), $startfrom + $files_per_step, $cnt_filelist ) ); } else { @unlink($dir_contents_cache_file); if( $GLOBALS['__POST']["type"] == 'tgz' || $GLOBALS['__POST']["type"] == 'tbz') { chmod( $archive_name, 0644 ); } $response = Array( 'action' => 'archive', 'success' => true, 'message' => ext_Lang::msg('archive_created'), 'newlocation' => make_link( 'download', $dir, basename($archive_name) ) ); } echo $json->encode( $response ); ext_exit(); } $default_archive_type = 'zip'; ?> { "xtype": "form", "id": "simpleform", "height": "200", "width": "350", "labelWidth": 125, "url":"", "dialogtitle": "", "frame": true, "items": [{ "xtype": "textfield", "fieldLabel": "", "name": "name", "value": "", "width": "200" }, { "xtype": "combo", "fieldLabel": "", "store": [ ['zip', 'Zip ()'], ['tgz', 'Tar/Gz ()'], ['tar', 'Tar ()'] ], "displayField":"typename", "valueField": "type", "name": "type", "value": "", "triggerAction": "all", "hiddenName": "type", "disableKeyFilter": "true", "editable": "false", "mode": "local", "allowBlank": "false", "selectOnFocus":"true", "width": "200", "listeners": { "select": { fn: function(o, record ) { form = Ext.getCmp("simpleform").getForm(); var nameField = form.findField("name").getValue(); if( nameField.indexOf( '.' ) > 0 ) { form.findField('name').setValue( nameField.substring( 0, nameField.indexOf('.')+1 ) + o.getValue() ); } else { form.findField('name').setValue( nameField + '.'+ o.getValue()); } } } } }, { "xtype": "textfield", "fieldLabel": "", "name": "saveToDir", "value": "", "width": "200" },{ "xtype": "checkbox", "fieldLabel": "?", "name": "download", "checked": "true" } ], "buttons": [{ "text": "", "type": "submit", "handler": function() { Ext.ux.OnDemandLoad.load( "?option=com_extplorer&action=include_javascript&file=archive.js", function(options) { submitArchiveForm(0) } ); } },{ "text": "", "handler": function() { Ext.getCmp("dialog").destroy() } }] } extplorer-2.1.0b6+dfsg.3/include/authentication/000077500000000000000000000000001154131622000215035ustar00rootroot00000000000000extplorer-2.1.0b6+dfsg.3/include/authentication/extplorer.php000066400000000000000000000135251154131622000242460ustar00rootroot00000000000000 { xtype: "form", renderTo: "adminForm", title: "", id: "simpleform", labelWidth: 125, // label settings here cascade unless overridden url: "", frame: true, keys: { key: Ext.EventObject.ENTER, fn : function(){ if (simple.getForm().isValid()) { Ext.get( "statusBar").update( "Please wait..." ); Ext.getCmp("simpleform").getForm().submit({ reset: false, success: function(form, action) { location.reload() }, failure: function(form, action) { if( !action.result ) return; Ext.Msg.alert('', action.result.error); Ext.get( 'statusBar').update( action.result.error ); form.findField( 'password').setValue(''); form.findField( 'username').focus(); }, scope: Ext.getCmp("simpleform").getForm(), params: { option: "com_extplorer", action: "login", type : "extplorer" } }); } else { return false; } } }, items: [{ xtype:"textfield", fieldLabel: "", name: "username", width:175, allowBlank:false },{ xtype:"textfield", fieldLabel: "", name: "password", inputType: "password", width:175, allowBlank:false }, new Ext.form.ComboBox({ fieldLabel: "", store: new Ext.data.SimpleStore({ fields: ['language', 'langname'], data : [ $name ) { echo "['$language', '$name' ]"; if( ++$i < $c ) echo ','; } ?> ] }), displayField:"langname", valueField: "language", value: "", hiddenName: "lang", disableKeyFilter: true, editable: false, triggerAction: "all", mode: "local", allowBlank: false, selectOnFocus:true }), { xtype: "displayfield", id: "statusBar" } ], buttons: [{ text: "", type: "submit", handler: function() { Ext.get( "statusBar").update( "Please wait..." ); Ext.getCmp("simpleform").getForm().submit({ reset: false, success: function(form, action) { location.reload() }, failure: function(form, action) { if( !action.result ) return; Ext.Msg.alert('', action.result.error); Ext.get( 'statusBar').update( action.result.error ); form.findField( 'password').setValue(''); form.findField( 'username').focus(); }, scope: Ext.getCmp("simpleform").getForm(), params: { option: "com_extplorer", action: "login", type : "extplorer" } }); } }, { text: '', handler: function() { simple.getForm().reset(); } } { text: "", handler: function() { Ext.getCmp("dialog").destroy(); } } ] } extplorer-2.1.0b6+dfsg.3/include/authentication/ftp.php000066400000000000000000000144341154131622000230130ustar00rootroot00000000000000connect(); if( PEAR::isError( $res )) { ext_Result::sendResult('ftp_authentication', false, ext_Lang::msg('ftp_connection_failed').' ('.$url['host'].')' ); } else { $res = $GLOBALS['FTPCONNECTION']->login( $ftp_login, $ftp_pass ); if( PEAR::isError( $res )) { ext_Result::sendResult('ftp_authentication', false, ext_Lang::msg('ftp_login_failed') ); } $_SESSION['credentials_ftp']['username'] = $ftp_login; $_SESSION['credentials_ftp']['password'] = $ftp_pass; $_SESSION['ftp_host'] = $ftp_host; $_SESSION['file_mode'] = 'ftp'; return true; } } return false; } function onShowLoginForm() { ?> { xtype: "form", renderTo: "adminForm", id: "simpleform", labelWidth: 125, url:"", dialogtitle: "", title: "", frame: true, keys: { key: Ext.EventObject.ENTER, fn : function(){ if (Ext.getCmp("simpleform").getForm().isValid()) { Ext.get( 'statusBar').update( '' ); Ext.getCmp("simpleform").getForm().submit({ reset: false, success: function(form, action) { location.reload() }, failure: function(form, action) { if( !action.result ) return; Ext.Msg.alert('', action.result.error); Ext.get( 'statusBar').update( action.result.error ); }, scope: Ext.getCmp("simpleform").getForm(), params: { option: "com_extplorer", action: "login", type: "ftp" } }); } else { return false; } } }, items: [{ xtype: "textfield", fieldLabel: "", name: "username", width:175, allowBlank:false },{ xtype: "textfield", fieldLabel: "", name: "password", inputType: "password", width:175, allowBlank:false },{ xtype: "combo", fieldLabel: "", hiddenName: "ftp_host", triggerAction: "all", value: "", store: [""], width:175, editable: false, forceSelection: true, allowBlank:false }, { xtype: "displayfield", id: "statusBar" }], buttons: [{ text: "", type: "submit", handler: function() { Ext.get( 'statusBar').update( '' ); Ext.getCmp("simpleform").getForm().submit({ reset: false, success: function(form, action) { location.reload() }, failure: function(form, action) { if( !action.result ) return; Ext.Msg.alert('', action.result.error); Ext.get( 'statusBar').update( action.result.error ); }, scope: Ext.getCmp("simpleform").getForm(), params: { option: "com_extplorer", action: "login", type: "ftp" } }); } }, { text: '', handler: function() { simple.getForm().reset(); } } { text: "", handler: function() { Ext.getCmp("dialog").destroy(); } } ] } connect($url['host'], $port); if( PEAR::isError( $res )) { return $res; } $res = $GLOBALS['FTPCONNECTION']->login( $ssh2_user, $ssh2_pass ); if( PEAR::isError( $res )) { return $res; } $_SESSION['credentials_ssh2']['username'] = $ssh2_user; $_SESSION['credentials_ssh2']['password'] = $ssh2_pass; $_SESSION['ssh2_host'] = $ssh2_host; $_SESSION['file_mode'] = 'ssh2'; return true; } return false; } function onShowLoginForm() { ?> { xtype: "form", renderTo: "adminForm", id: "simpleform", labelWidth: 125, url:"", dialogtitle: "", title: "", frame: true, keys: { key: Ext.EventObject.ENTER, fn : function(){ if (Ext.getCmp("simpleform").getForm().isValid()) { statusBarMessage( '', true ); Ext.getCmp("simpleform").getForm().submit({ reset: false, success: function(form, action) { location.href = '?ssh2' }, failure: function(form, action) { if( !action.result ) return; msgbox = Ext.Msg.alert('', action.result.error); msgbox.setIcon( Ext.MessageBox.ERROR ); statusBarMessage( action.result.error, false, false ); }, scope: Ext.getCmp("simpleform").getForm(), params: { option: "com_extplorer", action: "ssh2_authentication" } }); } else { return false; } } }, items: [{ xtype: "textfield", fieldLabel: "", name: "username", width:175, allowBlank:false },{ xtype: "textfield", fieldLabel: "", name: "password", inputType: "password", width:175, allowBlank:false },{ xtype: "combo", fieldLabel: "", name: "ssh2_host", value: "", store: [""], width:175, triggerAction: "all", editable: false, forceSelection: true, allowBlank:false }, { xtype: "displayfield", id: "statusBar" }], buttons: [{ text: "", type: "submit", handler: function() { Ext.get( 'statusBar').update( '' ); Ext.getCmp("simpleform").getForm().submit({ reset: false, success: function(form, action) { location.reload() }, failure: function(form, action) { if( !action.result ) return; msgbox = Ext.Msg.alert('', action.result.error); msgbox.setIcon( Ext.MessageBox.ERROR ); Ext.get( 'statusBar').update( action.result.error ); }, scope: Ext.getCmp("simpleform").getForm(), params: { option: "com_extplorer", action: "login", type : "ssh2" } }); } }, { text: '', handler: function() { simple.getForm().reset(); } } { text: "", handler: function() { Ext.getCmp("dialog").destroy(); } } ] } id )) { if( class_exists('jfactory') ) { $user = JFactory::getUser(); $bookmarkfile .= $user->get('id').'.php'; } else { $bookmarkfile .= $mainframe->getUserName().'.php'; } } else { $bookmarkfile .= $my->id . '.php'; } if( file_exists( $bookmarkfile )) { return parse_ini_file( $bookmarkfile ); } else { if( !is_writable( dirname( $bookmarkfile ) ) && !chmod( dirname( $bookmarkfile ), 0777 )) { return array( $GLOBALS['messages']['homelink'] => '' ); } else { file_put_contents( $bookmarkfile, ";\n{$GLOBALS['messages']['homelink']}=\n" ); return array( $GLOBALS['messages']['homelink'] => '' ); } } } function strip_invalid_key_char($s, $replacement ="") { return preg_replace('/[{}|&~![()"]/u', $replacement, $s); } /** * Adds a new bookmark to the bookmark ini file * * @param string $dir */ function modify_bookmark( $task, $dir ) { global $my, $user, $mainframe; $alias = substr( extGetParam($_REQUEST,'alias'), 0, 150 ); $bookmarks = read_bookmarks(); $bookmarkfile = _EXT_PATH.'/config/bookmarks_'.$GLOBALS['file_mode'].'_'; if( empty( $my->id )) { if( class_exists('jfactory') ) { $user = JFactory::getUser(); $bookmarkfile .= $user->get('id').'.php'; } else { $bookmarkfile .= $mainframe->getUserName().'.php'; } } else { $bookmarkfile .= $my->id . '.php'; } while( @ob_end_clean() ); header( "Status: 200 OK" ); switch ( $task ) { case 'add': if( in_array( $dir, $bookmarks )) { echo ext_alertBox( $GLOBALS['messages']['already_bookmarked'] ); exit; } //$alias = preg_replace('~[^\w-.\/\\\]~','', $alias ); // Make the alias ini-safe by removing all non-word characters $alias = strip_invalid_key_char($alias, "_"); $bookmarks[$alias] = $dir; //we deal with the flippped array here $msg = ext_successBox( $GLOBALS['messages']['bookmark_was_added'] ); break; case 'remove': if( !in_array( $dir, $bookmarks )) { echo ext_alertBox( $GLOBALS['messages']['not_a_bookmark'] ); exit; } $bookmarks = array_flip( $bookmarks ); unset( $bookmarks[$dir] ); $bookmarks = array_flip( $bookmarks ); $msg = ext_successBox( $GLOBALS['messages']['bookmark_was_removed'] ); } $inifile = "; \n"; $inifile .= $GLOBALS['messages']['homelink']."=\n"; foreach( $bookmarks as $alias => $directory ) { //changed by pokemon if( empty( $directory ) || empty( $alias ) ) continue; if( $directory[0] == $GLOBALS['separator']) $directory = substr( $directory, 1 ); $inifile .= "$alias=$directory\n"; } if( !is_writable( $bookmarkfile )) { echo ext_alertBox( sprintf( $GLOBALS['messages']['bookmarkfile_not_writable'], $task, $bookmarkfile ) ); exit; } file_put_contents( $bookmarkfile, $inifile ); echo $msg; echo list_bookmarks($dir); exit; } /** * Lists all bookmarked directories in a dropdown list. * * @param string $dir */ function list_bookmarks( $dir ) { $bookmarks = read_bookmarks(); $bookmarks = array_flip($bookmarks); foreach( $bookmarks as $bookmark ) { $len = strlen( $bookmark ); if( $len > 40 ) { $first_part = substr( $bookmark, 0, 20 ); $last_part = substr( $bookmark, -20 ); $bookmarks[$bookmark] = $first_part . '...' . $last_part; } } $html = $GLOBALS['messages']['quick_jump'].': '; if( !empty($dir[0]) && @$dir[0] == '/' ) { $dir = substr( $dir, 1); } $html .= ext_selectList( 'favourites', $dir, $bookmarks, 1, '', 'onchange="chDir( this.options[this.options.selectedIndex].value);" style="max-width: 200px;"'); $img_add = ''.$GLOBALS['messages']['lbl_add_bookmark'].''; $img_remove = ''.$GLOBALS['messages']['lbl_remove_bookmark'].''; $addlink=$removelink=''; if( !isset( $bookmarks[$dir] ) && $dir != '' && $dir != '/' ) { $addlink = ''.$img_add.''; } elseif( $dir != '' && $dir != '/' ) { $removelink = ''.$img_remove.''; } $html .= $addlink .' '.$removelink; return $html; } ?>extplorer-2.1.0b6+dfsg.3/include/chmod.php000066400000000000000000000164251154131622000202770ustar00rootroot00000000000000file_exists( $abs_item )) { ext_Result::sendResult('chmod', false, $item.": ".$GLOBALS["error_msg"]["fileexist"]); } if(!get_show_item($dir, $item)) { ext_Result::sendResult('chmod', false, $item.": ".$GLOBALS["error_msg"]["accessfile"]); } if( $do_recurse ) { $ok = $GLOBALS['ext_File']->chmodRecursive( $abs_item, $mode ); } else { if( get_is_dir( $abs_item )) { // when we chmod a directory we must care for the permissions // to prevent that the directory becomes not readable (when the "execute bits" are removed) $bin = substr_replace( $bin, '1', 2, 1 ); // set 1st x bit to 1 $bin = substr_replace( $bin, '1', 5, 1 );// set 2nd x bit to 1 $bin = substr_replace( $bin, '1', 8, 1 );// set 3rd x bit to 1 if( ext_isFTPMode() ) { $mode = decoct(bindec($bin)); } else { $mode = bindec($bin); } } //ext_Result::sendResult('chmod', false, $GLOBALS['FTPCONNECTION']->pwd()); $ok = @$GLOBALS['ext_File']->chmod( $abs_item, $mode ); } $bin = $old_bin; } if($ok===false || PEAR::isError( $ok ) ) { $msg = $item.": ".$GLOBALS["error_msg"]["permchange"]; $msg .= PEAR::isError( $ok ) ? ' [' . $ok->getMessage().']' : ''; ext_Result::sendResult('chmod', false, $msg ); } ext_Result::sendResult('chmod', true, ext_Lang::msg('permchange') ); return; } if( ext_isFTPMode() ) { $abs_item = get_item_info( $dir, $GLOBALS['__POST']["selitems"][0]); } else { $abs_item = get_abs_item( $dir, $GLOBALS['__POST']["selitems"][0]); $abs_item = utf8_decode($abs_item); } $mode = parse_file_perms(get_file_perms( $abs_item )); if($mode===false) { ext_Result::sendResult('chmod', false, $item.": ".$GLOBALS["error_msg"]["permread"]); } $pos = "rwx"; $text = ""; for($i=0;$i<$cnt;++$i) { $s_item=get_rel_item($dir,$GLOBALS['__POST']["selitems"][$i]); if(strlen($s_item)>50) $s_item="...".substr($s_item,-47); $text .= $s_item.($i+1<$cnt ? ', ':''); } ?> { "xtype": "form", "id": "simpleform", "width": "300", "labelWidth": 125, "url":"", "dialogtitle": "", "title" : "", "frame": true, "items": [{ "layout": "column", "items": [{ "width":80, "title":" $i ), true ) ?>", "items": [{ "xtype": "checkbox", "boxLabel":"", "name":"" } ] } ,{ "width":400, "style":"margin-left:10px", "clear":true, "html": " " }] },{ "xtype": "checkbox", "fieldLabel":"", "name":"do_recurse" }], "buttons": [{ "text": "", "handler": function() { statusBarMessage( '', true ); form = Ext.getCmp("simpleform").getForm(); form.submit({ //reset: true, reset: false, success: function(form, action) { statusBarMessage( action.result.message, false, true ); datastore.reload(); Ext.getCmp("dialog").destroy(); }, failure: function(form, action) { statusBarMessage( action.result.error, false, false ); Ext.Msg.alert('', action.result.error); }, scope: form, params: { "option": "com_extplorer", "action": "chmod", "dir": "", "selitems[]": [''], confirm: 'true' } }); } },{ "text": "", "handler": function() { Ext.getCmp("dialog").destroy(); } }] } extplorer-2.1.0b6+dfsg.3/include/copy_move.php000066400000000000000000000152211154131622000211760ustar00rootroot00000000000000file_exists(get_abs_dir($new_dir))) { ext_Result::sendResult( $action, false, get_abs_dir($new_dir).": ".$GLOBALS["error_msg"]["targetexist"]); } if(!get_show_item($new_dir,"")) { ext_Result::sendResult( $action, false, $new_dir.": ".$GLOBALS["error_msg"]["accesstarget"]); } if(!down_home(get_abs_dir($new_dir))) { ext_Result::sendResult( $action, false, $new_dir.": ".$GLOBALS["error_msg"]["targetabovehome"]); } // copy / move files $err=false; for($i=0;$i<$cnt;++$i) { $tmp = basename(stripslashes($GLOBALS['__POST']["selitems"][$i])); $new = basename(stripslashes($GLOBALS['__POST']["selitems"][$i])); if( ext_isFTPMode() ) { $abs_item = get_item_info($dir,$tmp); $abs_new_item = get_item_info('/'.$new_dir,$new); } else { $abs_item = get_abs_item($dir,$tmp); $abs_new_item = get_abs_item($new_dir,$new); } $items[$i] = $tmp; // Check if($new=="") { $error[$i]= $GLOBALS["error_msg"]["miscnoname"]; $err=true; continue; } if(!@$GLOBALS['ext_File']->file_exists($abs_item)) { $error[$i]= $GLOBALS["error_msg"]["itemexist"]; $err=true; continue; } if(!get_show_item($dir, $tmp)) { $error[$i]= $GLOBALS["error_msg"]["accessitem"]; $err=true; continue; } if(@$GLOBALS['ext_File']->file_exists($abs_new_item)) { $error[$i]= $GLOBALS["error_msg"]["targetdoesexist"]; $err=true; continue; } // Copy / Move if($action=="copy") { if(@is_link($abs_item) || get_is_file($abs_item)) { // check file-exists to avoid error with 0-size files (PHP 4.3.0) if( ext_isFTPMode() ) $abs_item = '/'.$dir.'/'.$abs_item['name']; $ok=@$GLOBALS['ext_File']->copy( $abs_item ,$abs_new_item); //||@file_exists($abs_new_item); } elseif(@get_is_dir($abs_item)) { $copy_dir = ext_isFTPMode() ? '/'.$dir.'/'.$abs_item['name'].'/' : $abs_item; if( ext_isFTPMode() ) $abs_new_item .= '/'; $ok=$GLOBALS['ext_File']->copy_dir( $copy_dir, $abs_new_item); } } else { $ok= $GLOBALS['ext_File']->rename($abs_item,$abs_new_item); } if($ok===false || PEAR::isError( $ok ) ) { $error[$i]=($action=="copy"? $GLOBALS["error_msg"]["copyitem"]: $GLOBALS["error_msg"]["moveitem"] ); if( PEAR::isError( $ok ) ) { $error[$i].= ' ['.$ok->getMessage().']'; } $err=true; continue; } $error[$i]=NULL; } if($err) { // there were errors $err_msg=""; for($i=0;$i<$cnt;++$i) { if($error[$i]==NULL) continue; $err_msg .= $items[$i]." : ".$error[$i]."\n"; } ext_Result::sendResult( $action, false, $err_msg); } ext_Result::sendResult( $action, true, 'The File(s)/Directory(s) were successfully '.($action=='copy'?'copied':'moved').'.' ); } function copy_move_dialog($dir='') { $action = extGetParam( $_REQUEST, 'action' ); ?> { "xtype": "form", "id": "simpleform", "labelWidth": 125, "width": "340", "url":"", "dialogtitle": "", "frame": true, "items": [{ "xtype": "textfield", "fieldLabel": "Destination", "name": "new_dir", "value": "/", "width":175, "allowBlank":false }], "buttons": [{ text: '', handler: function() { form = Ext.getCmp('simpleform').getForm(); statusBarMessage( 'Please wait...', true ); var requestParams = getRequestParams(); requestParams.confirm = 'true'; requestParams.action = ''; form.submit({ //reset: true, reset: false, success: function(form, action) { statusBarMessage( action.result.message, false, true ); try{ dirTree.getSelectionModel().getSelectedNode().reload(); } catch(e) {} datastore.reload(); Ext.getCmp("dialog").destroy(); }, failure: function(form, action) { if( !action.result ) return; Ext.MessageBox.alert('Error!', action.result.error); statusBarMessage( action.result.error, false, false ); }, scope: form, // add some vars to the request, similar to hidden fields params: requestParams }); } },{ text: '', handler: function() { Ext.getCmp("dialog").destroy(); } } ] } extplorer-2.1.0b6+dfsg.3/include/delete.php000066400000000000000000000063561154131622000204510ustar00rootroot00000000000000file_exists( $abs )) { $error[$i] = $GLOBALS["error_msg"]["itemexist"]; $err=true; continue; } if(!get_show_item($dir, $items[$i])) { $error[$i] = $GLOBALS["error_msg"]["accessitem"]; $err=true; continue; } // Delete if( ext_isFTPMode() ) $abs = str_replace('\\', '/', get_abs_item($dir,$abs) ); $ok= $GLOBALS['ext_File']->remove( $abs ); if($ok===false || PEAR::isError( $ok )) { $error[$i]=$GLOBALS["error_msg"]["delitem"]; if( PEAR::isError( $ok ) ) { $error[$i].= ' ['.$ok->getMessage().']'; } $err=true; continue; } $error[$i]=NULL; } if($err) { // there were errors $err_msg=""; for($i=0;$i<$cnt;++$i) { if($error[$i]==NULL) continue; $err_msg .= $items[$i]." : ".$error[$i].".\n"; } ext_Result::sendResult('delete', false, $err_msg); } ext_Result::sendResult('delete', true, $GLOBALS['messages']['success_delete_file'] ); } } //------------------------------------------------------------------------------ ?> extplorer-2.1.0b6+dfsg.3/include/download.php000066400000000000000000000075561154131622000210210ustar00rootroot00000000000000file_exists($abs_item)) { ext_Result::sendResult( 'download', false, $item.": ".$GLOBALS["error_msg"]["fileexist"]); } if (!get_show_item($dir, $item)) { ext_Result::sendResult( 'download', false, $item.": ".$GLOBALS["error_msg"]["accessfile"]); } @set_time_limit( 0 ); if (ext_isFTPMode()) { $abs_item = ext_ftp_make_local_copy( $abs_item ); $unlink = true; } $browser = id_browser(); if ($browser=='IE' || $browser=='OPERA') { header('Content-Type: application/octetstream; Charset=' . $GLOBALS["system_charset"]); } else { header('Content-Type: application/octet-stream; Charset=' . $GLOBALS["system_charset"]); } header('Expires: '.gmdate('D, d M Y H:i:s').' GMT'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.filesize(realpath($abs_item))); //header("Content-Encoding: none"); if($browser=='IE') { // http://support.microsoft.com/kb/436616/ja header('Content-Disposition: attachment; filename="'.urlencode($item).'"'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); } else { header('Content-Disposition: attachment; filename="'.$item.'"'); header('Cache-Control: no-cache, must-revalidate'); header('Pragma: no-cache'); } if($GLOBALS['use_mb']) { if (mb_detect_encoding($abs_item) == 'ASCII') { @readFileChunked(utf8_decode($abs_item)); } else { @readFileChunked($abs_item); } } else { @readFileChunked(utf8_decode($abs_item)); } if( $unlink==true ) { unlink( utf8_decode($abs_item) ); } ob_end_flush(); ext_exit(); } } //------------------------------------------------------------------------------ ?> extplorer-2.1.0b6+dfsg.3/include/edit.php000066400000000000000000000256561154131622000201400ustar00rootroot00000000000000 'cs', 'german' => 'de', 'danish' => 'dk', 'english' => 'en', 'esperanto' => 'eo', 'spanish' => 'es', 'french' => 'fr', 'croatian' => 'hr', 'italian' => 'it', 'japanese' => 'ja', 'macedonian' => 'mk', 'dutch' => 'nl', 'polish' => 'pl', 'portuguese' => 'pt', 'russian' => 'ru', 'slovenian' => 'sk' ); function execAction($dir, $item) { // edit file global $mainframe, $mosConfig_live_site; if(($GLOBALS["permissions"]&01)!=01) { ext_Result::sendResult('edit', false, ext_Lang::err('accessfunc' )); } $fname = get_abs_item($dir, $item); if(!get_is_file(utf8_decode($fname))) { ext_Result::sendResult('edit', false, $item.": ".ext_Lang::err('fileexist' )); } if(!get_show_item($dir, $item)) { ext_Result::sendResult('edit', false, $item.": ".ext_Lang::err('accessfile' )); } if(isset($GLOBALS['__POST']["dosave"]) && $GLOBALS['__POST']["dosave"]=="yes") { // Save / Save As $item=basename(stripslashes($GLOBALS['__POST']["fname"])); $fname2=get_abs_item($dir, $item); if(!isset($item) || $item=="") { ext_Result::sendResult('edit', false, ext_Lang::err('miscnoname' )); } if($fname!=$fname2 && @$GLOBALS['ext_File']->file_exists($fname2)) { ext_Result::sendResult('edit', false, $item.": ".ext_Lang::err('itemdoesexist' )); } $this->savefile($fname2); $fname=$fname2; ext_Result::sendResult('edit', true, ext_Lang::msg('savefile').': '.$item ); } if(isset($GLOBALS['__POST']["doreopen"]) && $GLOBALS['__POST']["doreopen"]=="yes") { // File Reopen $extra = Array(); $content = $GLOBALS['ext_File']->file_get_contents( $fname ); if( get_magic_quotes_runtime()) { $content = stripslashes( $content ); } $langs = $GLOBALS["language"]; if ($langs == "japanese"){ $_encoding = $GLOBALS['__POST']["file_encoding"]; if ($content){ $content = mb_convert_encoding($content, "UTF-8", $_encoding); } $extra["file_encoding"] = $_encoding; } $extra["content"] = $content; ext_Result::sendResult('edit', true, ext_Lang::msg('reopenfile').': '.$item, $extra); } // header $s_item=get_rel_item($dir,$item); if(strlen($s_item)>50) $s_item="...".substr($s_item,-47); $id_hash = substr('f'.md5($s_item),0, 10); $s_info = pathinfo( $s_item ); $s_extension = str_replace('.', '', $s_info['extension'] ); switch (strtolower($s_extension)) { case 'txt': $cp_lang = 'text'; break; case 'cs': $cp_lang = 'csharp'; break; case 'css': $cp_lang = 'css'; break; case 'html': case 'htm': case 'xhtml': $cp_lang = 'html'; break; case 'java': $cp_lang = 'java'; break; case 'js': $cp_lang = 'js'; break; case 'pl': $cp_lang = 'perl'; break; case 'py': $cp_lang = 'python'; break; case 'ruby': $cp_lang = 'ruby'; break; case 'sql': $cp_lang = 'sql'; break; case 'vb': case 'vbs': $cp_lang = 'vb'; break; case 'php': $cp_lang = 'php'; break; case 'xml': $cp_lang = 'xml'; break; default: $cp_lang = ''; } $content = $GLOBALS['ext_File']->file_get_contents( $fname ); if( get_magic_quotes_runtime()) { $content = stripslashes( $content ); } $cw = 250; $langs = $GLOBALS["language"]; if ($langs == "japanese"){ $cw = 200; if ($content){ $_encoding = strtoupper(mb_detect_encoding($content, Array("ASCII", "ISO-2022-JP", "UTF-8", "EUCJP-WIN", "SJIS-WIN"), true)); $content = mb_convert_encoding($content, "UTF-8", $_encoding); if ($_encoding == "SJIS-WIN"){ $_encoding_label = "SJIS"; } elseif ($_encoding == "EUCJP-WIN"){ $_encoding_label = "EUC-JP"; } elseif ($_encoding == "ISO-2022-JP"){ $_encoding_label = "JIS"; } elseif ($_encoding == "ASCII"){ $_encoding_label = "UTF-8"; } else { $_encoding_label = $_encoding; } } else { $_encoding_label = "UTF-8"; } } ?> { "xtype": "form", "id": "", "labelWidth": "300", "autoScroll": "true", "url":"", "title": " 50 ? substr( $s_item, strlen($s_item)-30, 30 ) : $s_item; ?>", "frame": "true", "closable": "true", "tbar": [{ "text": "", "handler": function() { statusBarMessage( '', true ); form = Ext.getCmp("").getForm(); form.submit({ waitMsg: 'Saving the File, please wait...', reset: false, success: function(form, action) { datastore.reload(); statusBarMessage( action.result.message, false, true ); }, failure: function(form, action) { statusBarMessage( action.result.error, false, false ); Ext.Msg.alert('!', action.result.error); }, scope: form, // add some vars to the request, similar to hidden fields params: {option: 'com_extplorer', action: 'edit', code: editAreaLoader.getValue("ext_codefield"), dir: '', item: '', dosave: 'yes' } }); }, "cls":"x-btn-text-icon", "icon": "/images/_save.png" },{ "text": "", "handler": function() { statusBarMessage( '', true ); form = Ext.getCmp("").getForm(); form.submit({ waitMsg: 'Processing Data, please wait...', reset: false, success: function(form, action) { statusBarMessage( action.result.message, false, true ); editAreaLoader.setValue("ext_codefield", action.result.content); }, failure: function(form, action) { statusBarMessage( action.result.error, false, false ); Ext.Msg.alert('!', action.result.error); }, scope: form, // add some vars to the request, similar to hidden fields params: { option: 'com_extplorer', action: 'edit', dir: '', item: '', doreopen: 'yes' } }); }, "cls":"x-btn-text-icon", "icon": "/images/_reload.png" }, { "text": "", "handler": function() { Ext.getCmp("mainpanel").remove( Ext.getCmp("mainpanel").getActiveTab() ); }, "cls":"x-btn-text-icon", "icon": "/images/_cancel.png" }], "items": [{ "xtype": "displayfield", "value": "" }, { "xtype": "textarea", "hideLabel": true, "name": "thecode", "id": "ext_codefield", "fieldClass": "x-form-field", "value": "", "width": "100%", "height": 300, "plugins": new Ext.ux.plugins.EditAreaEditor({ "id" : "ext_codefield", "syntax": "", "start_highlight": true, "display": "later", "toolbar": "search, go_to_line, |, undo, redo, |, select_font,|, change_smooth_selection, highlight, reset_highlight, |, help" lang_tbl)){?> ,"language": "lang_tbl[$langs] ?>" }) }, { "width": "", "xtype": "textfield", "fieldLabel": "", "name": "fname", "value": "", "clear": "true" } ,{ "width": "", "style":"margin-left:10px", "clear":"true", "xtype": "combo", "fieldLabel": "", "name": "file_encoding", "store": [ ["UTF-8", "UTF-8"], ["SJIS-WIN", "SJIS"], ["EUCJP-WIN", "EUC-JP"], ["ISO-2022-JP","JIS"] ], "value" : "", "typeAhead": "true", "mode": "local", "triggerAction": "all", "editable": "false", "forceSelection": "true" } ] } file_put_contents( $file_name, $code ); if( $res==false || PEAR::isError( $res )) { $err = basename($file_name).": ".ext_Lang::err('savefile' ); if( PEAR::isError( $res ) ) { $err .= $res->getMessage(); } ext_Result::sendResult( 'edit', false, $err ); } } } //------------------------------------------------------------------------------ ?> extplorer-2.1.0b6+dfsg.3/include/extract.php000066400000000000000000000052551154131622000206560ustar00rootroot00000000000000getMessage() ); } if( $res === false ) { ext_Result::sendResult( 'extract', false, ext_Lang::err( 'extract_failure' )); } else { ext_Result::sendResult( 'extract', true, ext_Lang::msg( 'extract_success' )); } ext_Result::sendResult( 'extract', true, ext_Lang::msg( 'extract_success' ) ) ; } } } ?>extplorer-2.1.0b6+dfsg.3/include/ftp_authentication.php000066400000000000000000000136611154131622000230740ustar00rootroot00000000000000connect(); if( PEAR::isError( $res )) { ext_Result::sendResult('ftp_authentication', false, $GLOBALS['messages']['ftp_connection_failed'].' ('.$url['host'].')' ); } else { $res = $ftp->login( $ftp_login, $ftp_pass ); $ftp->disconnect(); if( PEAR::isError( $res )) { ext_Result::sendResult('ftp_authentication', false, $GLOBALS['messages']['ftp_login_failed'] ); } $_SESSION['ftp_login'] = $ftp_login; $_SESSION['ftp_pass'] = $ftp_pass; $_SESSION['ftp_host'] = $ftp_host; $_SESSION['file_mode'] = 'ftp'; session_write_close(); ext_Result::sendResult('ftp_authentication', true, ext_Lang::msg('actlogin_success') ); } } else { ?> { "xtype": "form", "id": "simpleform", "labelWidth": 125, "url":"", "dialogtitle": "", "title": "", "frame": true, "keys": { "key": Ext.EventObject.ENTER, "fn" : function(){ if (Ext.getCmp("simpleform").getForm().isValid()) { statusBarMessage( '', true ); Ext.getCmp("simpleform").getForm().submit({ "reset": false, "success": function(form, action) { location.reload() }, "failure": function(form, action) { if( !action.result ) return; Ext.Msg.alert('', action.result.error); statusBarMessage( action.result.error, false, false ); }, "scope": Ext.getCmp("simpleform").getForm(), "params": { "option": "com_extplorer", "action": "ftp_authentication" } }); } else { return false; } } }, "items": [{ "xtype": "textfield", "fieldLabel": "", "name": "ftp_login_name", "width":175, "allowBlank":false },{ "xtype": "textfield", "fieldLabel": "", "name": "ftp_login_pass", "inputType": "password", "width":175, "allowBlank":false },{ "xtype": "textfield", "fieldLabel": "", "name": "ftp_hostname_port", "value": "", "width":175, "allowBlank":false }], "buttons": [{ "text": "", "type": "submit", "handler": function() { statusBarMessage( '', true ); Ext.getCmp("simpleform").getForm().submit({ "reset": false, "success": function(form, action) { location.reload() }, "failure": function(form, action) { if( !action.result ) return; Ext.Msg.alert('', action.result.error); statusBarMessage( action.result.error, false, false ); }, "scope": Ext.getCmp("simpleform").getForm(), "params": { "option": "com_extplorer", "action": "ftp_authentication" } }); } },{ "text": "", "handler": function() { Ext.getCmp("dialog").destroy(); } }] } filesize( $abs_item ); } //------------------------------------------------------------------------------ function parse_file_size($bytes, $precision = 2) { $units = array('B', 'KB', 'MB', 'GB', 'TB'); if( !is_float($bytes)) { $bytes = (int)sprintf("%u", $bytes); } $bytes = max($bytes, 0); $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); $pow = min($pow, count($units) - 1); $bytes /= pow(1024, $pow); return round($bytes, $precision) . ' ' . $units[$pow]; } //------------------------------------------------------------------------------ function get_file_date( $item) { // file date return @$GLOBALS['ext_File']->filemtime( $item ); } //------------------------------------------------------------------------------ function parse_file_date($date) { // parsed file date if ($date) { return @date($GLOBALS["date_fmt"],$date); } else { return " (unknown) "; } } //------------------------------------------------------------------------------ function get_is_image( $abs_item ) { // is this file an image? if(!get_is_file($abs_item)) return false; if( isset($abs_item['name'])) { $abs_item = $abs_item['name']; } return @eregi($GLOBALS["images_ext"], $abs_item); } //----------------------------------------------------------------------------- function get_is_editable( $abs_item ) { // is this file editable? if(!get_is_file( $abs_item )) return false; if( is_array( $abs_item ) ) { $abs_item = $abs_item['name']; } foreach($GLOBALS["editable_ext"] as $pat) if(@eregi($pat,$abs_item)) return true; return strpos( basename($abs_item), "." ) ? false : true; } //----------------------------------------------------------------------------- function get_mime_type( $abs_item, $query) { // get file's mimetype if(get_is_dir( $abs_item )) { // directory $mime_type = $GLOBALS["super_mimes"]["dir"][0]; $image = $GLOBALS["super_mimes"]["dir"][1]; if($query=="img") return $image; else return $mime_type; } $extra = $GLOBALS['ext_File']->is_link( $abs_item ) ? ' ('.$GLOBALS['mimes']['symlink'].')' : ''; if( ext_isFTPMode() && isset($abs_item['name']) ) { $abs_item=$abs_item['name']; } // mime_type foreach($GLOBALS["used_mime_types"] as $mime) { list($desc,$img,$ext) = $mime; if(@eregi($ext,basename($abs_item) )) { $mime_type = $desc; $image = $img; if($query=="img") return $image; else return $mime_type . $extra; } } if((function_exists("is_executable") && @is_executable( $abs_item )) || @eregi($GLOBALS["super_mimes"]["exe"][2],$abs_item)) { // executable $mime_type = $GLOBALS["super_mimes"]["exe"][0]; $image = $GLOBALS["super_mimes"]["exe"][1]; } else { // unknown file $mime_type = $GLOBALS["super_mimes"]["file"][0]; $image = $GLOBALS["super_mimes"]["file"][1]; } if($query=="img") return $image; else return $mime_type . $extra; } //------------------------------------------------------------------------------ function get_show_item($dir, $item) { // show this file? if( is_array( $item )) { $item = $item['name']; } if($item == "." || $item == ".." || (substr($item,0,1)=="." && $GLOBALS["show_hidden"]==false)) return false; if($GLOBALS["no_access"]!="" && @eregi($GLOBALS["no_access"],$item)) return false; if($GLOBALS["show_hidden"]==false) { $dirs=explode("/",$dir); foreach($dirs as $i) if(substr($i,0,1)==".") return false; } return true; } //------------------------------------------------------------------------------ function get_dir_list( $dir='' ) { if( ext_isFTPMode()) { $files = getCachedFTPListing(empty($dir) ? '.' : $dir); } else { $files = extReadDirectory( get_abs_dir( $dir), '.', false, true ); } $dirs =array(); foreach( $files as $item) { $itemname = ext_isFTPMode() ? (empty($dir) ? '' : $dir.'/') .$item['name'] : $item; $itemname = str_replace( '\\', '/', $itemname ); if( get_is_dir($item)) { $index = str_replace( str_replace('\\', '/', $GLOBALS['home_dir'].$GLOBALS['separator']), '', $itemname ); $dirs[$index]= basename($index); } } return $dirs; } /** * Returns select lists with all the subdirectories along the current directory path * * @param string $dir * @return string */ function get_dir_selects( $dir ) { $dirs = explode( "/", str_replace( "\\", '/', $dir ) ); $subdirs = get_dir_list(); if( sizeof( $subdirs ) > 0) { $subdirs = array_merge(Array('ext_disabled' => '-'), $subdirs ); } if( empty($dirs[0]) ) array_shift($dirs); $dirsCopy = $dirs; $implode = ''; $selectedDir = @$dirs[0]; foreach( $subdirs as $index => $val ) { if ($GLOBALS['use_mb']) { if (mb_detect_encoding($val) == 'ASCII') { $subdirs[$index] = utf8_encode($val); } else { $subdirs[$index] = $val; } } else { $subdirs[$index] = utf8_encode($val); } } $dir_links = ext_selectList('dirselect1', $selectedDir, $subdirs, 1, '', 'onchange="theDir=this.options[this.selectedIndex].value;if(theDir!=\'ext_disabled\' ) chDir(theDir);"' ); $i = 2; foreach( $dirs as $directory ) { if( $directory != "" ) { $implode .= $directory; $next = next($dirsCopy); $subdirs = get_dir_list( $implode ); foreach( $subdirs as $index => $val ) { unset( $subdirs[$index]); if ($GLOBALS['use_mb']) { if (mb_detect_encoding($index) == 'ASCII') { if (mb_detect_encoding($val) == 'ASCII') { $subdirs[utf8_encode($index)] = utf8_encode($val); } else { $subdirs[utf8_encode($index)] = $val; } } else { if (mb_detect_encoding($val) == 'ASCII') { $subdirs[$index] = utf8_encode($val); } else { $subdirs[$index] = $val; } } } else { $subdirs[utf8_encode($index)] = utf8_encode($val); } } if( $next !== false ) { $selectedDir .= '/'.$next; } else { if( sizeof( $subdirs ) > 0) { $subdirs = array_merge(Array('ext_disabled' => '-'), $subdirs ); } } $dir_links .= ' / '.ext_selectList('dirselect'.$i++, $selectedDir, $subdirs, 1, '', 'onchange="theDir=this.options[this.selectedIndex].value;if(theDir!=\'ext_disabled\' ) chDir(theDir);"' ); $implode .= '/'; } } //echo '
'.htmlspecialchars($dir_links).'
';exit; return $dir_links; } //------------------------------------------------------------------------------ function copy_dir($source,$dest) { // copy dir $ok = true; $source = str_replace( '\\', '/', $source ); $dest = str_replace( '\\', '/', $dest ); if(!@mkdir($dest,0777)) return false; $itemlist = extReadDirectory( $source, '.', true, true ); if( empty( $itemlist )) return true; foreach( $itemlist as $file ) { if(($file==".." || $file==".")) continue; $file = str_replace( '\\', '/', $file ); $new_dest = str_replace( $source, $dest, $file ); if(@is_dir($file)) { @mkdir($new_dest,0777); } else { $ok=@copy($file,$new_dest); } } return $ok; } //------------------------------------------------------------------------------ function remove($item) { // remove file / dir if( !is_link( $item )) { $item = realpath($item); } $ok = true; if( is_link($item) || is_file($item)) $ok = unlink($item); elseif( @is_dir($item)) { if(($handle= opendir($item))===false) ext_Result::sendResult('delete', false, basename($item).": ".$GLOBALS["error_msg"]["opendir"]); while(($file=readdir($handle))!==false) { if(($file==".." || $file==".")) continue; $new_item = $item."/".$file; if(!file_exists($new_item)) ext_Result::sendResult('delete', false, basename($item).": ".$GLOBALS["error_msg"]["readdir"]); //if(!get_show_item($item, $new_item)) continue; if( @is_dir($new_item)) { $ok=remove($new_item); } else { $ok= unlink($new_item); } } closedir($handle); $ok=@rmdir($item); } return $ok; } function chmod_recursive($item, $mode) { // chmod file / dir $ok = true; if(@is_link($item) || @is_file($item)) { $ok=@chmod( $item, $mode ); if($ok) ext_Result::add_message($GLOBALS['messages']['permchange'].' '.$new_item); else ext_Result::add_error($GLOBALS['error_msg']['permchange'].' '.$new_item); } elseif(@is_dir($item)) { if(($handle=@opendir($item))===false) { ext_Result::add_error(basename($item).": ".$GLOBALS["error_msg"]["opendir"]); return false; } while(($file=readdir($handle))!==false) { if(($file==".." || $file==".")) continue; $new_item = $item."/".$file; if(!@file_exists($new_item)) { ext_Result::add_error(basename($item).": ".$GLOBALS["error_msg"]["readdir"]); continue; } //if(!get_show_item($item, $new_item)) continue; if(@is_dir($new_item)) { $ok=chmod_recursive($new_item, $mode); } else { $ok=@chmod($new_item, $mode); if($ok) ext_Result::add_message($GLOBALS['messages']['permchange'].' '.$new_item); else ext_Result::add_error($GLOBALS['error_msg']['permchange'].' '.$new_item); } } closedir($handle); if( @is_dir( $item )) { $bin = decbin( $mode ); // when we chmod a directory we must care for the permissions // to prevent that the directory becomes not readable (when the "execute bits" are removed) $bin = substr_replace( $bin, '1', 2, 1 ); // set 1st x bit to 1 $bin = substr_replace( $bin, '1', 5, 1 );// set 2nd x bit to 1 $bin = substr_replace( $bin, '1', 8, 1 );// set 3rd x bit to 1 $mode = bindec( $bin ); } $ok=@chmod( $item, $mode ); if($ok) ext_Result::add_message($GLOBALS['messages']['permchange'].' '.$item); else ext_Result::add_error($GLOBALS['error_msg']['permchange'].' '.$item); } return $ok; } //------------------------------------------------------------------------------ function get_max_file_size() { // get php max_upload_file_size return calc_php_setting_bytes( ini_get("upload_max_filesize") ); } function get_max_upload_limit() { return calc_php_setting_bytes( ini_get('post_max_size')); } function calc_php_setting_bytes( $value ) { if(@eregi("G$",$value)) { $value = substr($value,0,-1); $value = round($value*1073741824); } elseif(@eregi("M$",$value)) { $value = substr($value,0,-1); $value = round($value*1048576); } elseif(@eregi("K$",$value)) { $value = substr($value,0,-1); $value = round($value*1024); } return $value; } //------------------------------------------------------------------------------ function down_home($abs_dir) { // dir deeper than home? if( ext_isFTPMode() ) { return true; } $real_home = @realpath($GLOBALS["home_dir"]); $real_dir = @realpath($abs_dir); if($real_home===false || $real_dir===false) { if(@eregi("\\.\\.",$abs_dir)) return false; } else if(strcmp($real_home,@substr($real_dir,0,strlen($real_home)))) { return false; } return true; } //------------------------------------------------------------------------------ function id_browser() { $browser=$GLOBALS['__SERVER']['HTTP_USER_AGENT']; if(ereg('Opera(/| )([0-9].[0-9]{1,2})', $browser)) { return 'OPERA'; } else if(ereg('MSIE ([0-9].[0-9]{1,2})', $browser)) { return 'IE'; } else if(ereg('OmniWeb/([0-9].[0-9]{1,2})', $browser)) { return 'OMNIWEB'; } else if(ereg('(Konqueror/)(.*)', $browser)) { return 'KONQUEROR'; } else if(ereg('Mozilla/([0-9].[0-9]{1,2})', $browser)) { return 'MOZILLA'; } else { return 'OTHER'; } } function ext_isArchive( $file ) { $file_info = pathinfo($file); $ext = @$file_info["extension"]; if( $ext == "tar" || $ext == "gz" || $ext == "tgz" || $ext == "zip" || $ext == "bzip2" || $ext == "bz2" || $ext == "tbz") { return true; } return false; } if( !extension_loaded('posix') ) { function posix_geteuid() { return false; } function posix_getpwnam() { } } //------------------------------------------------------------------------------ /** * Checks if the User Agent String identifies the browser as Internet Explorer * * @return boolean */ function ext_isWindows() { if(empty($GLOBALS['isWindows'])) { $GLOBALS['isWindows'] = substr(PHP_OS, 0, 3) == 'WIN'; } return $GLOBALS['isWindows']; } /** * Returns the valid directory separator for this OS & Webserver combination * * @return string */ function ext_getSeparator() { if( defined( 'DIRECTORY_SEPARATOR')) { return DIRECTORY_SEPARATOR; } elseif (@preg_match('/Microsoft|WebSTAR|Xitami/', $_SERVER['SERVER_SOFTWARE']) ) { return '\\'; } else { return '/'; } } /** * Checks if the User Agent String identifies the browser as Internet Explorer * * @return boolean */ function ext_isIE() { return (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'])); } /** * Prints an HTML dropdown box named $name using $arr to * load the drop down. If $value is in $arr, then $value * will be the selected option in the dropdown. * @author gday * @author soeren * * @param string $name The name of the select element * @param string $value The pre-selected value * @param array $arr The array containting $key and $val * @param int $size The size of the select element * @param string $multiple use "multiple=\"multiple\" to have a multiple choice select list * @param string $extra More attributes when needed * @return string HTML drop-down list */ function ext_selectList($name, $value, $arr, $size=1, $multiple="", $extra="") { $html = ''; if( !empty( $arr ) ) { $html = "\n"; } return $html; } function ext_scriptTag( $src = '', $script = '') { if( $src!='') { return ''; } if( $script != '') { return ''; } } function ext_alertBox( $msg ) { return ext_scriptTag('', 'Ext.Msg.alert( \''.$GLOBALS["error_msg"]['message'].'\', \''. @mysql_escape_string( $msg ) .'\' );' ); } function ext_successBox( $msg ) { return ext_scriptTag('', 'Ext.msgBoxSlider.msg( \''.ext_Lang::msg('success', true ).'\', \''. @mysql_escape_string( $msg ) .'\' );' ); } function ext_docLocation( $url ) { return ext_scriptTag('', 'document.location=\''. $url .'\';' ); } function ext_isXHR() { return strtolower(extGetParam($_SERVER,'HTTP_X_REQUESTED_WITH')) == 'xmlhttprequest' || strtolower(extGetParam($_POST,'requestType')) == 'xmlhttprequest'; } function ext_exit() { global $mainframe; if( is_callable( array( $mainframe, 'close' ) ) ) { $mainframe->close(); } else { session_write_close(); exit; } } function ext_isJoomla( $version='', $operator='=', $compare_minor_versions=true) { $this_version = ''; if( !empty($GLOBALS['_VERSION']) && is_object($GLOBALS['_VERSION'])) { $jversion =& $GLOBALS['_VERSION']; $this_version = $jversion->RELEASE .'.'. $jversion->DEV_LEVEL; } elseif ( defined('JVERSION')) { $jversion = new JVersion(); $this_version = $jversion->RELEASE .'.'. $jversion->DEV_LEVEL; } else { return false; } if( empty( $version ) ) { return empty($this_version); } $allowed_operators = array( '<', 'lt', '<=', 'le', '>', 'gt', '>=', 'ge', '==', '=', 'eq', '!=', '<>', 'ne' ); if( $compare_minor_versions ) { if( $jversion->RELEASE != substr($version, 0, 3 ) ) { return false; } } if( in_array($operator, $allowed_operators )) { return version_compare( $this_version, $version, $operator ); } return false; } /** * Raise the memory limit when it is lower than the needed value * * @param string $setLimit Example: 16M */ function ext_RaiseMemoryLimit( $setLimit ) { $memLimit = @ini_get('memory_limit'); if( stristr( $memLimit, 'k') ) { $memLimit = str_replace( 'k', '', str_replace( 'K', '', $memLimit )) * 1024; } elseif( stristr( $memLimit, 'm') ) { $memLimit = str_replace( 'm', '', str_replace( 'M', '', $memLimit )) * 1024 * 1024; } if( stristr( $setLimit, 'k') ) { $setLimitB = str_replace( 'k', '', str_replace( 'K', '', $setLimit )) * 1024; } elseif( stristr( $setLimit, 'm') ) { $setLimitB = str_replace( 'm', '', str_replace( 'M', '', $setLimit )) * 1024 * 1024; } if( $memLimit < $setLimitB ) { @ini_set('memory_limit', $setLimit ); } } /** * Reads a file and sends them in chunks to the browser * This should overcome memory problems * http://www.php.net/manual/en/function.readfile.php#54295 * * @since 1.4.1 * @param string $filename * @param boolean $retbytes * @return mixed */ function readFileChunked($filename,$retbytes=true) { $chunksize = 1*(1024*1024); // how many bytes per chunk $buffer = ''; $cnt =0; // $handle = fopen($filename, 'rb'); $handle = fopen($filename, 'rb'); if ($handle === false) { return false; } while (!feof($handle)) { $buffer = fread($handle, $chunksize); echo $buffer; sleep(1); ob_flush(); flush(); if ($retbytes) { $cnt += strlen($buffer); } } $status = fclose($handle); if ($retbytes && $status) { return $cnt; // return num. bytes delivered like readfile() does. } return $status; } //implements file_put_contents function for compatability with PHP < 4.3 if ( ! function_exists('file_put_contents') ) { function file_put_contents ( $filename, $filecont ){ $handle = fopen( $filename, 'w' ); if ( is_array($filecont) ) { $size = 0; foreach ( $filecont as $filestring ) { fwrite( $handle, $filestring ); $size += strlen( $filestring ); } fclose($handle); return $size; } else { fwrite( $handle, $filecont ); fclose($handle); return strlen( $filecont ); } } } if ( ! function_exists('scandir') ) { function scandir($dir,$listDirectories=false, $skipDots=true) { $dirArray = array(); if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if (($file != "." && $file != "..") || $skipDots == true) { if($listDirectories == false) { if(@is_dir($file)) { continue; } } array_push($dirArray,basename($file)); } } closedir($handle); } return $dirArray; } } /** * Page generation time * @package Joomla */ class extProfiler { /** @var int Start time stamp */ var $start=0; /** @var string A prefix for mark messages */ var $prefix=''; /** * Constructor * @param string A prefix for mark messages */ function extProfiler( $prefix='' ) { $this->start = $this->getmicrotime(); $this->prefix = $prefix; } /** * @return string A format message of the elapsed time */ function mark( $label ) { return sprintf ( "\n
$this->prefix %.3f $label
", $this->getmicrotime() - $this->start ); } /** * @return float The current time in milliseconds */ function getmicrotime(){ list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } } /** * Utility class for all HTML drawing classes * @package eXtplorer */ class extHTML { function makeOption( $value, $text='', $value_name='value', $text_name='text' ) { $obj = new stdClass; $obj->$value_name = $value; $obj->$text_name = trim( $text ) ? $text : $value; return $obj; } function writableCell( $folder, $relative=1, $text='', $visible=1 ) { $writeable = 'Writeable'; $unwriteable = 'Unwriteable'; echo ''; echo ''; echo $text; if ( $visible ) { echo $folder . '/'; } echo ''; echo ''; if ( $relative ) { echo is_writable( "../$folder" ) ? $writeable : $unwriteable; } else { echo is_writable( "$folder" ) ? $writeable : $unwriteable; } echo ''; echo ''; } /** * Generates an HTML select list * @param array An array of objects * @param string The value of the HTML name attribute * @param string Additional HTML attributes for the "; $count = count( $arr ); for ($i=0, $n=$count; $i < $n; $i++ ) { $k = $arr[$i]->$key; $t = $arr[$i]->$text; $id = ( isset($arr[$i]->id) ? @$arr[$i]->id : null); $extra = ''; $extra .= $id ? " id=\"" . $arr[$i]->id . "\"" : ''; if (is_array( $selected )) { foreach ($selected as $obj) { $k2 = $obj->$key; if ($k == $k2) { $extra .= " selected=\"selected\""; break; } } } else { $extra .= ($k == $selected ? " selected=\"selected\"" : ''); } $html .= "\n\t"; } $html .= "\n\n"; return $html; } /** * Writes a select list of integers * @param int The start integer * @param int The end integer * @param int The increment * @param string The value of the HTML name attribute * @param string Additional HTML attributes for the tag * @param mixed The key that is selected * @returns string HTML for the select list values */ function monthSelectList( $tag_name, $tag_attribs, $selected ) { $arr = array( extHTML::makeOption( '01', _JAN ), extHTML::makeOption( '02', _FEB ), extHTML::makeOption( '03', _MAR ), extHTML::makeOption( '04', _APR ), extHTML::makeOption( '05', _MAY ), extHTML::makeOption( '06', _JUN ), extHTML::makeOption( '07', _JUL ), extHTML::makeOption( '08', _AUG ), extHTML::makeOption( '09', _SEP ), extHTML::makeOption( '10', _OCT ), extHTML::makeOption( '11', _NOV ), extHTML::makeOption( '12', _DEC ) ); return extHTML::selectList( $arr, $tag_name, $tag_attribs, 'value', 'text', $selected ); } /** * Writes a yes/no select list * @param string The value of the HTML name attribute * @param string Additional HTML attributes for the tag * @param mixed The key that is selected * @param string The name of the object variable for the option value * @param string The name of the object variable for the option text * @returns string HTML for the select list */ function radioList( &$arr, $tag_name, $tag_attribs, $selected=null, $key='value', $text='text' ) { reset( $arr ); $html = ""; for ($i=0, $n=count( $arr ); $i < $n; $i++ ) { $k = $arr[$i]->$key; $t = $arr[$i]->$text; $id = ( isset($arr[$i]->id) ? @$arr[$i]->id : null); $extra = ''; $extra .= $id ? " id=\"" . $arr[$i]->id . "\"" : ''; if (is_array( $selected )) { foreach ($selected as $obj) { $k2 = $obj->$key; if ($k == $k2) { $extra .= " selected=\"selected\""; break; } } } else { $extra .= ($k == $selected ? " checked=\"checked\"" : ''); } $html .= "\n\t"; $html .= "\n\t"; } $html .= "\n"; return $html; } /** * Writes a yes/no radio list * @param string The value of the HTML name attribute * @param string Additional HTML attributes for the