From cc63bf53638f016ace4646fc5d7e043860c08688 Mon Sep 17 00:00:00 2001 From: jim Date: Wed, 17 May 2006 10:47:55 +0000 Subject: [PATCH] - updated dirlist.lib.php file with bug fixes and added item filtering options. - other minor changes/fixes/updates - added LICENSE file to svn tree. license is Creative Commons 2.5, more legal stuff has to be written in each individual php file. git-svn-id: file:///Users/jimeh/Desktop/dlist/trunk@20 a5845835-ea0f-0410-a762-dd0bfe9bfde8 --- LICENSE | 240 ++++++++++++++++++++++++ libs/dirlist.lib.php | 14 +- resources/init.php | 2 - templates/simple/stylesheets/screen.css | 2 +- 4 files changed, 251 insertions(+), 7 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2f5149a --- /dev/null +++ b/LICENSE @@ -0,0 +1,240 @@ +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE +COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY +COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS +AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE +TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE +RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS +AND CONDITIONS. + + +1. Definitions + + a. "Collective Work" means a work, such as a periodical issue, + anthology or encyclopedia, in which the Work in its entirety in + unmodified form, along with a number of other contributions, + constituting separate and independent works in themselves, are + assembled into a collective whole. A work that constitutes + Collective Work will not be considered a Derivative Work (as + defined below) for the purposes of this License. + + b. "Derivative Work" means a work based upon the Work or upon the + Work and other pre-existing works, such as a translation, musical + arrangement, dramatization, fictionalization, motion picture + version, sound recording, art reproduction, abridgment, + condensation, or any other form in which the Work may be recast, + transformed, or adapted, except that a work that constitutes a + Collective Work will not be considered a Derivative Work for the + purpose of this License. For the avoidance of doubt, where the + Work is a musical composition or sound recording, the + synchronization of the Work in timed-relation with a moving image + ("synching") will be considered a Derivative Work for the purpose + of this License. + + c. "Licensor" means the individual or entity that offers the Work + under the terms of this License. + + d. "Original Author" means the individual or entity who created the + Work. + + e. "Work" means the copyrightable work of authorship offered under + the terms of this License. + + f. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License + with respect to the Work, or who has received express permission + from the Licensor to exercise rights under this License despite a + previous violation. + + +2. Fair Use Rights. + + Nothing in this license is intended to reduce, limit, or restrict any + rights arising from fair use, first sale or other limitations on the + exclusive rights of the copyright owner under copyright law or other + applicable laws. + + +3. License Grant. + + Subject to the terms and conditions of this License, Licensor hereby + grants You a worldwide, royalty-free, non-exclusive, perpetual (for + the duration of the applicable copyright) license to exercise the + rights in the Work as stated below: + + a. to reproduce the Work, to incorporate the Work into one or more + Collective Works, and to reproduce the Work as incorporated in the + Collective Works; + + b. to create and reproduce Derivative Works; + + c. to distribute copies or phonorecords of, display publicly, perform + publicly, and perform publicly by means of a digital audio + transmission the Work including as incorporated in Collective + Works; + + d. to distribute copies or phonorecords of, display publicly, perform + publicly, and perform publicly by means of a digital audio + transmission Derivative Works. + + e. For the avoidance of doubt, where the work is a musical + composition: + + i. Performance Royalties Under Blanket Licenses. Licensor waives + the exclusive right to collect, whether individually or via a + performance rights society (e.g. ASCAP, BMI, SESAC), royalties + for the public performance or public digital performance (e.g. + webcast) of the Work. + + ii. Mechanical Rights and Statutory Royalties. Licensor waives the + exclusive right to collect, whether individually or via a + music rights agency or designated agent (e.g. Harry Fox + Agency), royalties for any phonorecord You create from the + Work ("cover version") and distribute, subject to the + compulsory license created by 17 USC Section 115 of the US + Copyright Act (or the equivalent in other jurisdictions). + + f. Webcasting Rights and Statutory Royalties. For the avoidance of + doubt, where the Work is a sound recording, Licensor waives the + exclusive right to collect, whether individually or via a + performance-rights society (e.g. SoundExchange), royalties for the + public digital performance (e.g. webcast) of the Work, subject to + the compulsory license created by 17 USC Section 114 of the US + Copyright Act (or the equivalent in other jurisdictions). + + The above rights may be exercised in all media and formats whether + now known or hereafter devised. The above rights include the right to + make such modifications as are technically necessary to exercise the + rights in other media and formats. All rights not expressly granted + by Licensor are hereby reserved. + + +4. Restrictions. + + The license granted in Section 3 above is expressly made subject to + and limited by the following restrictions: + + a. You may distribute, publicly display, publicly perform, or + publicly digitally perform the Work only under the terms of this + License, and You must include a copy of, or the Uniform Resource + Identifier for, this License with every copy or phonorecord of the + Work You distribute, publicly display, publicly perform, or + publicly digitally perform. You may not offer or impose any terms + on the Work that alter or restrict the terms of this License or + the recipients' exercise of the rights granted hereunder. You may + not sublicense the Work. You must keep intact all notices that + refer to this License and to the disclaimer of warranties. You may + not distribute, publicly display, publicly perform, or publicly + digitally perform the Work with any technological measures that + control access or use of the Work in a manner inconsistent with + the terms of this License Agreement. The above applies to the Work + as incorporated in a Collective Work, but this does not require + the Collective Work apart from the Work itself to be made subject + to the terms of this License. If You create a Collective Work, + upon notice from any Licensor You must, to the extent practicable, + remove from the Collective Work any credit as required by clause + 4(b), as requested. If You create a Derivative Work, upon notice + from any Licensor You must, to the extent practicable, remove from + the Derivative Work any credit as required by clause 4(b), as + requested. + + b. If you distribute, publicly display, publicly perform, or publicly + digitally perform the Work or any Derivative Works or Collective + Works, You must keep intact all copyright notices for the Work and + provide, reasonable to the medium or means You are utilizing: (i) + the name of the Original Author (or pseudonym, if applicable) if + supplied, and/or (ii) if the Original Author and/or Licensor + designate another party or parties (e.g. a sponsor institute, + publishing entity, journal) for attribution in Licensor's + copyright notice, terms of service or by other reasonable means, + the name of such party or parties; the title of the Work if + supplied; to the extent reasonably practicable, the Uniform + Resource Identifier, if any, that Licensor specifies to be + associated with the Work, unless such URI does not refer to the + copyright notice or licensing information for the Work; and in the + case of a Derivative Work, a credit identifying the use of the + Work in the Derivative Work (e.g., "French translation of the Work + by Original Author," or "Screenplay based on original Work by + Original Author"). Such credit may be implemented in any + reasonable manner; provided, however, that in the case of a + Derivative Work or Collective Work, at a minimum such credit will + appear where any other comparable authorship credit appears and in + a manner at least as prominent as such other comparable authorship + credit. + + +5. Representations, Warranties and Disclaimer + + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, + LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR + WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, + STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF + TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, + NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, + OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. + SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, + SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + + +6. Limitation on Liability. + + EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL + LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT + OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Derivative Works or + Collective Works from You under this License, however, will not + have their licenses terminated provided such individuals or + entities remain in full compliance with those licenses. Sections + 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + + b. Subject to the above terms and conditions, the license granted + here is perpetual (for the duration of the applicable copyright in + the Work). Notwithstanding the above, Licensor reserves the right + to release the Work under different license terms or to stop + distributing the Work at any time; provided, however that any such + election will not serve to withdraw this License (or any other + license that has been, or is required to be, granted under the + terms of this License), and this License will continue in full + force and effect unless terminated as stated above. + + +8. Miscellaneous + + a. Each time You distribute or publicly digitally perform the Work or + a Collective Work, the Licensor offers to the recipient a license + to the Work on the same terms and conditions as the license + granted to You under this License. + + b. Each time You distribute or publicly digitally perform a + Derivative Work, Licensor offers to the recipient a license to the + original Work on the same terms and conditions as the license + granted to You under this License. + + c. If any provision of this License is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability + of the remainder of the terms of this License, and without further + action by the parties to this agreement, such provision shall be + reformed to the minimum extent necessary to make such provision + valid and enforceable. + + d. No term or provision of this License shall be deemed waived and no + breach consented to unless such waiver or consent shall be in + writing and signed by the party to be charged with such waiver or + consent. + + e. This License constitutes the entire agreement between the parties + with respect to the Work licensed here. There are no + understandings, agreements or representations with respect to the + Work not specified here. Licensor shall not be bound by any + additional provisions that may appear in any communication from + You. This License may not be modified without the mutual written + agreement of the Licensor and You. \ No newline at end of file diff --git a/libs/dirlist.lib.php b/libs/dirlist.lib.php index efe084e..04c8b98 100644 --- a/libs/dirlist.lib.php +++ b/libs/dirlist.lib.php @@ -4,7 +4,7 @@ class dirList { /* - Class: dirList v2.0.9 beta + Class: dirList v2.1.1 beta Copyright © 2006 Jim Myhrberg. All rights reserved. zynode@gmail.com @@ -24,6 +24,10 @@ class dirList { # intended for dynamic changes from config files and more var $filter_out = ''; + # use regular expressions to match file & folders to show + # regardless of other filtering patterns + var $filter_show = ''; + # used by filtering to match whole directory structures # but needs to be set manually for now. var $dir_url = ''; @@ -98,7 +102,7 @@ class dirList { if($dh = @opendir($dir)) { $this->parent = $this->getDetails($dir); while(false !== ($item = readdir($dh))) { - if( $this->show_item($item) ) { + if( $this->show_item($item, $dir) ) { $item_details = $this->getDetails($dir.$item); // stats $this->stats_count++; @@ -143,11 +147,13 @@ class dirList { // ----- [ Internal Functions ] ----------------- // ============================================== - function show_item ($item) { + function show_item ($item, $dir='') { + if ( !is_readable($dir.$item) ) return false; $hidden_item = ( $this->show_hidden ) ? false : preg_match("/^\./", $item) ; $filter_out = ( empty($this->filter_out) ) ? false : preg_match($this->filter_out, $this->dir_url.$item) ; + $filter_show = ( empty($this->filter_show) ) ? false : !preg_match($this->filter_show, $this->dir_url.$item) ; $hide_self = ( empty($this->hide_self) ) ? false : preg_match($this->hide_self, $this->dir_url.$item) ; - if ( $item != '.' && $item != '..' && !$hidden_item && !$filter_out && !$hide_self ) return true; + if ( $item != '.' && $item != '..' && !$hidden_item && !$filter_out && !$filter_show && !$hide_self ) return true; return false; } diff --git a/resources/init.php b/resources/init.php index 314bb76..2c5fed7 100644 --- a/resources/init.php +++ b/resources/init.php @@ -17,10 +17,8 @@ $config['default_scheme'] = 'http'; // process requested path if ( preg_match("/^(.*?)\?(.*)$/i", $_SERVER['REQUEST_URI'], $dir_url) ) { - # $query_string = $dir_url[2]; $dir_url = urldecode($dir_url[1]); } else { - # $query_string = ''; $dir_url = urldecode($_SERVER['REQUEST_URI']); } diff --git a/templates/simple/stylesheets/screen.css b/templates/simple/stylesheets/screen.css index c76b7f3..3d36bbe 100644 --- a/templates/simple/stylesheets/screen.css +++ b/templates/simple/stylesheets/screen.css @@ -133,7 +133,7 @@ IMG { #icons LI { display: block; float: left; - margin: 8px; + margin: 6px; width: 140px; height: 100px; text-align: center;