From a1fe74acad4a97453464da25691f6d6d2041b98c Mon Sep 17 00:00:00 2001 From: Radex Date: Sat, 2 Aug 2008 18:35:15 +0200 Subject: [PATCH] reszta plikow watermelona --- cms/4DEVS | 185 ++++++++++++ cms/COPYING | 281 ++++++++++++++++++ cms/COPYING_PL | 168 +++++++++++ cms/INSTALL | 151 ++++++++++ cms/config_template.php | 102 +++++++ cms/index.php | 18 +- cms/sqldump.sql | 107 +++++++ cms/wtrmln/admin/commons.php | 172 +++++++++++ cms/wtrmln/admin/index.php | 129 +++++++++ cms/wtrmln/admin/libs/index.html | 0 cms/wtrmln/admin/libs/patables.php | 158 ++++++++++ cms/wtrmln/admin/libs/render.php | 54 ++++ cms/wtrmln/admin/login.php | 142 +++++++++ cms/wtrmln/admin/robots.txt | 2 + cms/wtrmln/admin/themes/adminsomething/Style.css | 263 +++++++++++++++++ .../admin/themes/adminsomething/images/adminbg.jpg | Bin 0 -> 66788 bytes .../admin/themes/adminsomething/images/be.png | Bin 0 -> 701 bytes .../admin/themes/adminsomething/images/bg.png | Bin 0 -> 537 bytes .../admin/themes/adminsomething/images/bi.png | Bin 0 -> 778 bytes .../admin/themes/adminsomething/images/bt.png | Bin 0 -> 782 bytes .../admin/themes/adminsomething/images/bw.png | Bin 0 -> 666 bytes .../admin/themes/adminsomething/images/index.htm | 0 cms/wtrmln/admin/themes/adminsomething/index.php | 29 ++ cms/wtrmln/admin/themes/adminsomething/login.php | 63 ++++ cms/wtrmln/admin/themes/index.html | 0 cms/wtrmln/helpers/helpers.php | 143 ++++++++++ cms/wtrmln/helpers/index.html | 0 cms/wtrmln/index.html | 0 cms/{index.php => wtrmln/libs/controller.php} | 42 ++- cms/wtrmln/libs/db.php | 249 ++++++++++++++++ cms/wtrmln/libs/index.html | 0 cms/wtrmln/libs/loader.php | 151 ++++++++++ cms/{index.php => wtrmln/libs/model.php} | 24 +- cms/{index.php => wtrmln/libs/plugin.php} | 24 +- cms/wtrmln/libs/plugins_handle.php | 182 ++++++++++++ cms/wtrmln/libs/url.php | 247 ++++++++++++++++ cms/wtrmln/libs/viewtags.php | 103 +++++++ cms/wtrmln/modules/admin/hi.php | 30 ++ cms/wtrmln/modules/admin/index.html | 0 cms/{index.php => wtrmln/modules/admin/logout.php} | 30 +- cms/wtrmln/modules/admin/pages.php | 19 ++ .../modules/controllers/admin.php} | 23 +- cms/wtrmln/modules/controllers/index.html | 0 cms/wtrmln/modules/controllers/login.php | 82 ++++++ cms/wtrmln/modules/controllers/pages.php | 78 +++++ cms/wtrmln/modules/controllers/test.php | 63 ++++ .../modules/controllers/test/one.php} | 27 +- cms/wtrmln/modules/index.html | 0 cms/wtrmln/modules/models/index.html | 0 .../modules/models/model_pages.php} | 33 ++- .../modules/models/model_user.php} | 36 ++- cms/wtrmln/modules/plugins/index.html | 0 cms/wtrmln/modules/plugins/user.php | 131 +++++++++ cms/wtrmln/modules/views/index.html | 0 cms/wtrmln/modules/views/login/form.php | 58 ++++ cms/wtrmln/modules/views/login/index.html | 0 .../modules/views/login/loginerrors.php} | 26 +- .../modules/views/login/sendnewpassword.php} | 31 +- cms/wtrmln/system.php | 249 ++++++++++++++++ cms/wtrmln/themes/index.html | 0 cms/wtrmln/themes/simple/COPYING | 281 ++++++++++++++++++ cms/wtrmln/themes/simple/COPYING_PL | 168 +++++++++++ cms/wtrmln/themes/simple/index.php | 39 +++ cms/wtrmln/themes/simple/skin.php | 51 ++++ cms/wtrmln/themes/simple/style.css | 162 +++++++++++ cms/wtrmln/themes/wcmslay/COPYING | 281 ++++++++++++++++++ cms/wtrmln/themes/wcmslay/COPYING_PL | 168 +++++++++++ cms/wtrmln/themes/wcmslay/bottom.png | Bin 0 -> 2044 bytes cms/wtrmln/themes/wcmslay/center.png | Bin 0 -> 296 bytes cms/wtrmln/themes/wcmslay/images/be.png | Bin 0 -> 701 bytes cms/wtrmln/themes/wcmslay/images/bg.png | Bin 0 -> 537 bytes cms/wtrmln/themes/wcmslay/images/bi.png | Bin 0 -> 778 bytes cms/wtrmln/themes/wcmslay/images/bt.png | Bin 0 -> 782 bytes cms/wtrmln/themes/wcmslay/images/bw.png | Bin 0 -> 666 bytes cms/wtrmln/themes/wcmslay/images/index.htm | 0 cms/wtrmln/themes/wcmslay/index.php | 29 ++ cms/wtrmln/themes/wcmslay/quot.png | Bin 0 -> 1236 bytes cms/wtrmln/themes/wcmslay/skin.php | 47 +++ cms/wtrmln/themes/wcmslay/style.css | 317 +++++++++++++++++++++ cms/wtrmln/themes/wcmslay/top.jpg | Bin 0 -> 12494 bytes www/index.htm | 102 +++++++ www/logo.png | Bin 0 -> 131098 bytes www/sflogo.png | Bin 0 -> 492 bytes 83 files changed, 5618 insertions(+), 132 deletions(-) create mode 100644 cms/4DEVS create mode 100644 cms/COPYING create mode 100644 cms/COPYING_PL create mode 100644 cms/INSTALL create mode 100644 cms/config_template.php mode change 100755 => 100644 cms/index.php create mode 100644 cms/sqldump.sql create mode 100644 cms/wtrmln/admin/commons.php create mode 100644 cms/wtrmln/admin/index.php create mode 100644 cms/wtrmln/admin/libs/index.html create mode 100644 cms/wtrmln/admin/libs/patables.php create mode 100644 cms/wtrmln/admin/libs/render.php create mode 100644 cms/wtrmln/admin/login.php create mode 100644 cms/wtrmln/admin/robots.txt create mode 100644 cms/wtrmln/admin/themes/adminsomething/Style.css create mode 100644 cms/wtrmln/admin/themes/adminsomething/images/adminbg.jpg create mode 100644 cms/wtrmln/admin/themes/adminsomething/images/be.png create mode 100644 cms/wtrmln/admin/themes/adminsomething/images/bg.png create mode 100644 cms/wtrmln/admin/themes/adminsomething/images/bi.png create mode 100644 cms/wtrmln/admin/themes/adminsomething/images/bt.png create mode 100644 cms/wtrmln/admin/themes/adminsomething/images/bw.png create mode 100644 cms/wtrmln/admin/themes/adminsomething/images/index.htm create mode 100644 cms/wtrmln/admin/themes/adminsomething/index.php create mode 100644 cms/wtrmln/admin/themes/adminsomething/login.php create mode 100644 cms/wtrmln/admin/themes/index.html create mode 100644 cms/wtrmln/helpers/helpers.php create mode 100644 cms/wtrmln/helpers/index.html create mode 100644 cms/wtrmln/index.html copy cms/{index.php => wtrmln/libs/controller.php} (60%) mode change 100755 => 100644 create mode 100644 cms/wtrmln/libs/db.php create mode 100644 cms/wtrmln/libs/index.html create mode 100644 cms/wtrmln/libs/loader.php copy cms/{index.php => wtrmln/libs/model.php} (81%) mode change 100755 => 100644 copy cms/{index.php => wtrmln/libs/plugin.php} (81%) mode change 100755 => 100644 create mode 100644 cms/wtrmln/libs/plugins_handle.php create mode 100644 cms/wtrmln/libs/url.php create mode 100644 cms/wtrmln/libs/viewtags.php create mode 100644 cms/wtrmln/modules/admin/hi.php create mode 100644 cms/wtrmln/modules/admin/index.html copy cms/{index.php => wtrmln/modules/admin/logout.php} (66%) mode change 100755 => 100644 create mode 100644 cms/wtrmln/modules/admin/pages.php copy cms/{index.php => wtrmln/modules/controllers/admin.php} (81%) mode change 100755 => 100644 create mode 100644 cms/wtrmln/modules/controllers/index.html create mode 100644 cms/wtrmln/modules/controllers/login.php create mode 100644 cms/wtrmln/modules/controllers/pages.php create mode 100644 cms/wtrmln/modules/controllers/test.php copy cms/{index.php => wtrmln/modules/controllers/test/one.php} (78%) mode change 100755 => 100644 create mode 100644 cms/wtrmln/modules/index.html create mode 100644 cms/wtrmln/modules/models/index.html copy cms/{index.php => wtrmln/modules/models/model_pages.php} (66%) mode change 100755 => 100644 copy cms/{index.php => wtrmln/modules/models/model_user.php} (65%) mode change 100755 => 100644 create mode 100644 cms/wtrmln/modules/plugins/index.html create mode 100644 cms/wtrmln/modules/plugins/user.php create mode 100644 cms/wtrmln/modules/views/index.html create mode 100644 cms/wtrmln/modules/views/login/form.php create mode 100644 cms/wtrmln/modules/views/login/index.html copy cms/{index.php => wtrmln/modules/views/login/loginerrors.php} (77%) mode change 100755 => 100644 copy cms/{index.php => wtrmln/modules/views/login/sendnewpassword.php} (60%) mode change 100755 => 100644 create mode 100644 cms/wtrmln/system.php create mode 100644 cms/wtrmln/themes/index.html create mode 100644 cms/wtrmln/themes/simple/COPYING create mode 100644 cms/wtrmln/themes/simple/COPYING_PL create mode 100644 cms/wtrmln/themes/simple/index.php create mode 100644 cms/wtrmln/themes/simple/skin.php create mode 100644 cms/wtrmln/themes/simple/style.css create mode 100644 cms/wtrmln/themes/wcmslay/COPYING create mode 100644 cms/wtrmln/themes/wcmslay/COPYING_PL create mode 100644 cms/wtrmln/themes/wcmslay/bottom.png create mode 100644 cms/wtrmln/themes/wcmslay/center.png create mode 100644 cms/wtrmln/themes/wcmslay/images/be.png create mode 100644 cms/wtrmln/themes/wcmslay/images/bg.png create mode 100644 cms/wtrmln/themes/wcmslay/images/bi.png create mode 100644 cms/wtrmln/themes/wcmslay/images/bt.png create mode 100644 cms/wtrmln/themes/wcmslay/images/bw.png create mode 100644 cms/wtrmln/themes/wcmslay/images/index.htm create mode 100644 cms/wtrmln/themes/wcmslay/index.php create mode 100644 cms/wtrmln/themes/wcmslay/quot.png create mode 100644 cms/wtrmln/themes/wcmslay/skin.php create mode 100644 cms/wtrmln/themes/wcmslay/style.css create mode 100644 cms/wtrmln/themes/wcmslay/top.jpg create mode 100644 www/index.htm create mode 100644 www/logo.png create mode 100644 www/sflogo.png diff --git a/cms/4DEVS b/cms/4DEVS new file mode 100644 index 0000000..7326dae --- /dev/null +++ b/cms/4DEVS @@ -0,0 +1,185 @@ + #### ##### # # # ##### ### #### ## # # ### ## + # # # # # # # # # # # # # ## # # # # + # # # # # # # # # # # # # # # # # + #### # ### # ##### # #### ###### # # # # ###### + # # # # # # # # # # ## # # # + # # # # # # # # # # # # # # # # + #### # # ###### # ### #### # # # # ### # # + + STYL PISANIA KODU WATERMELON CMS'A + PRAWIE GOTOWE ... + LEKTURA OBOWIĄZKOWA! +____________________________________________________________________________ + + To jest OBOWIĄZUJĄCY dla programistów Watermelon CMS'a styl programowa- + nia. Jeśli zauważysz, że ktoś zrobił inaczej, popraw. Jeśli robi to + notorycznie - poinformuj go o tym. + + 1. Wygląd kodu + + a) Taby + + Nie ma tabów. Zamiast tabów trzy spacje! + + b) Klamerki + + Typowy styl - przed i po klamerce enter. + + if(blablabla) + { + test(); + } + else + { + test(); + } + + c) Operatory + + Przed i po operatorze spacja. + + $abcde = $x + ( 6 + 2 ) . 'abc'; + + Co do nawiasów - dotyczy tylko wyrażeń, czyli: + + if(abc); + + oraz + + jakas_funkcja(); // nie robimy po nazwie funkcji spacji - + // według nas jest to psucie czytelności. + + ale + + $test = ( $a * $h ) / 2; + + Pisanie spacji nie dotyczy operatorów zasięgu ( "::" oraz "->" ) + + Po przecinku zawsze spacja! + + funkcja(6, 8, 2); + + d) Stringi + + Normalnie używamy do stringów apostrofów. Cudzysłowy używamy dla + zapytań SQL, oraz tam gdzie to konieczne (np. "\n") + + e) Stałe itp. + + Prawdę, fałsz i null zapisujemy tak: + + TRUE + FALSE + NULL + + Stałe piszemy także dużymi literami. Stałe samego CMS'a zaczynają + się od WTRMLN_ + + Stałe własnych modułów MUSIMY poprzedzić prefiksem, aby mieć + pewność, że nie będzie kolidowało z czymś innym. Przykład stałej + własnego modułu: + + INSZYNEWS_JAKIESDANE + + Pamiętamy, żeby używać stałych we własnych modułach tylko jeśli + to NAPRAWDĘ konieczne. + + 2. Styl programowania + + a) Pobieranie danych z DB + + Dane z bazy danych pobieramy do obiektu! Pobieranie danych poprzez + funkcję result jest ZABRONIONE, a do tablicy odradzane. + + Przykład pobrania danych, które jest OK: + + $data = $this->db->query("SELECT * FROM `test`"); + + while($item = $data->to_obj()) + { + echo $data->text; + } + + b) Działania na tablicach + + Jeśli chcesz przejść po wszystkich elementach tablicy użyj foreach. + for jest odradzane w tym przypadku. + + DOBRZE: + + foreach($array as $item) + { + echo $item; + } + + ŹLE: + + for($i = 0 ; $i < count($array) ; $i++) + { + echo $array[$i]; + } + + Myślę, że różnica czytelności obu przykładów pokazuje, dlaczego + należy użyć foreach ;) + + c) Globale + + Pod ŻADNYM POZOREM NIE UŻYWAJ globali. Globale są do niczego. + + Możliwe, że wydaje się Tobie, że potrzebujesz ich, ale są sposoby + na obejście tego. + + Jeśli potrzebujesz jakichś danych w kilku funkcjach w klasie, dodaj + prywatną zmienną do klasy. + + Jeśli potrzebujesz potrzebujesz jakichś danych przy kilku odpale- + niach danej funkcji, użyj zmiennej statycznej. + + Jeśli potrzebujesz danych jakiejś klasy w zupełnie różnych miejsca- + ch kodu, użyj Singletona. + + Przyjęliśmy, że tak to ma wyglądać: + + /* + * object Instance() + * + * Singleton... + * + */ + static function Instance() + { + if(!self::$instance instanceof self) + self::$instance = new self; + return self::$instance; + } + + oraz jeszcze zmienna: + + private static $instance = NULL; // Singleton... + + 3. Pozostałe + + Wszystkie pliki zapisujemy z kodowaniem UTF-8 i uniksowymi enterami, + tzn. \n + + Jeśli widzisz w projekcie jakiś stary i zaniedbany plik, możesz się + upewnić co do poprawności tabów i enterów poprzez funkcję "Znajdź i + zamień". + + Taby: + + Znajdź: "\t" + Zamień: " " <- tutaj trzy spacje + + Entery + + Znajdź: "\r" + Zamień: "" <- nic + + Projekt oryginalnie był pisany na windowsie na różnych edytorach + jeszcze przed wprowadzeniem konkretnych zasad. Właśnie to spowodo- + wało globalny "syf" w projekcie. W przypadku Eclipse PDT (w tym + programie obecnie piszę wcms'a) możesz użyć File->Convert Line + Delimeters To->Unix. + + diff --git a/cms/COPYING b/cms/COPYING new file mode 100644 index 0000000..871fa15 --- /dev/null +++ b/cms/COPYING @@ -0,0 +1,281 @@ + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, 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 diff --git a/cms/COPYING_PL b/cms/COPYING_PL new file mode 100644 index 0000000..65ff57d --- /dev/null +++ b/cms/COPYING_PL @@ -0,0 +1,168 @@ +Powszechna Licencja Publiczna GNU +Tłumaczenie GNU General Public License + + +Uwaga! +To jest nieoficjalne tłumaczenie Powszechnej Licencji Publicznej GNU na język polski. Nie zostało opublikowane przez Free Software Foundation i pod względem prawnym nie stanowi warunków rozpowszechniania oprogramowania stosującego GNU GPL -- ustanawia je wyłącznie oryginalny angielski tekst licencji GNU GPL. Jednak mamy nadzieję, że pomoże ono lepiej zrozumieć Licencję osobom mówiącym po polsku. + +Note! +This is an unofficial translation of the GNU General Public License into Polish. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL--only the original English text of the GNU GPL does that. However, we hope that this translation will help Polish speakers understand the GNU GPL better. + + + + +Powszechna Licencja Publiczna GNU +Wersja 2, czerwiec 1991 +Copyright © 1989, 1991 Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139 USA. + +Zezwala się na kopiowanie i rozpowszechnianie wiernych kopii niniejszego +dokumentu licencyjnego, jednak bez prawa wprowadzania zmian. +Preambuła + +Większość licencji na oprogramowanie pomyślana jest po to, aby odebrać użytkownikowi możliwość swobodnego udostępniania innym i zmieniania danego software'u. Natomiast w wypadku Powszechnej Licencji Publicznej GNU (GNU General Public License, GPL) celem jest zagwarantowanie użytkownikowi swobody udostępniania i zmieniania tego wolnego oprogramowania, a więc danie pewności, iż oprogramowanie jest wolno dostępne dla wszystkich użytkowników. Niniejsza Powszechna Licencja Publiczna dotyczy większości oprogramowania wydawanego przez Fundację Wolnego Oprogramowania (Free Software Foundation) oraz wszelkich innych programów, których autorzy zobowiązują się do jej stosowania. (Niektóre rodzaje oprogramowania wydawanego przez Fundację objęte są Powszechną Licencją Publiczną GNU dla Bibliotek, GNU Library General Public License). Użytkownik może stosować ją również do swoich programów. + +Mówiąc o wolnym oprogramowaniu mamy na myśli swobodę, a nie cenę. Nasze Powszechne Licencje Publiczne wprowadzono po to, aby zapewnić Państwu swobodę rozpowszechniania kopii tego oprogramowania (i - jeśli ktoś chce - pobierania za tę usługę opłaty), jak również aby udostępnić kod źródłowy oraz umożliwić dokonywanie zmian tego oprogramowania lub wykorzystywania jego fragmentów w nowych, wolnych programach. Nie bez znaczenia jest też sama możliwość dotarcia do Państwa z informacją o wszystkich tych udogodnieniach. + +W celu ochrony praw użytkownika jesteśmy zmuszeni wprowadzać ograniczenia zabraniające komukolwiek kwestionowanie jego praw albo sugerowanie rezygnacji z tych praw. Ograniczenia te sprowadzają się do pewnych dla Państwa obowiązków w przypadku rozpowszechniania przez Was kopii naszego oprogramowania bądź dokonywania w nim zmian. + +Na przykład, jeśli rozprowadzacie Państwo kopie takiego programu, niezależnie czy gratisowo, czy za opłatą, musicie Państwo odbiorcy udzielić wszelkich tych praw, jakie mieliście sami. Musicie zapewnić mu również otrzymanie kodu źródłowego (lub możliwość otrzymania) oraz przedstawić niniejsze Warunki, aby mógł on poznać swoje prawa. + +Ochrona Państwa praw przebiega w dwóch etapach: +zastrzegamy prawo własności autorskiej do oprogramowania, +oferujemy Państwu niniejszą licencję, która daje Wam sankcjonowane prawem zezwolenie na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego oprogramowania. + +Ponadto dla ochrony tak autora, jak i naszej, pragniemy mieć pewność, że każdy zrozumie, iż na niniejsze wolne oprogramowanie nie udziela się gwarancji. W razie dokonania w nim przez kogoś modyfikacji i puszczenia dalej do obrotu, pragniemy, aby dalsi odbiorcy zdawali sobie sprawę z tego, że problemy wprowadzone przez inne osoby nie są wyrazem oryginalnych działań twórców. + +I rzecz ostatnia: każdemu wolnemu programowi stale zagrażają patenty na oprogramowanie. Naszym pragnieniem jest unikanie takiego niebezpieczeństwa, kiedy redystrybutorzy wolnego programu indywidualnie uzyskują prawa patentowe, nadając tym samym programowi charakter prawnie zastrzeżony. W celu zapobieżenia takim zjawiskom jednoznacznie wyjaśniliśmy, że każdy patent musi być wydawany albo dla swobodnego użytku przez wszystkich, albo nie wydawany wcale. + +Poniżej podajemy dokładne zasady i warunki kopiowania, rozpowszechniania i modyfikowania. + +Zasady i warunki kopiowania, rozpowszechniania i modyfikowania +0. +Niniejsza Licencja dotyczy programów i innych prac, na których umieszczona jest pochodząca od właściciela praw autorskich informacja, że dany program lub praca może być rozpowszechniana na warunkach niniejszej Powszechnej Licencji Publicznej. Używane poniżej słowo "Program" oznacza właśnie takie programy lub prace, zaś określenie "praca oparta na Programie" dotyczy albo Programu, albo pochodzącej od niego pracy w rozumieniu prawa autorskiego, to jest pracy zawierającej Program lub jego część dosłowną, bądź zmodyfikowaną i/lub przełożoną na inny język. (W dalszym ciągu niniejszego, pojęcie przekładu włącza się bez ograniczeń do terminu "modyfikacja"). Do każdego licencjobiorcy będziemy zwracać się "per Ty". + +Niniejsza Licencja nie obejmuje działań innych niż kopiowanie, rozprowadzanie i modyfikowanie - nie mieszczą się one w jej zakresie. Czynność używania Programu nie jest poddana ograniczeniom, a produkty uzyskane z Programu objęte są Licencją tylko wtedy, gdy ich treść stanowi pracę opartą na Programie (niezależnie od stworzenia jej przy użyciu Programu). To, czy fakt taki jest prawdą, zależy od tego, co dany Program wykonuje. + +1. +Możesz kopiować i rozprowadzać w dowolnych mediach wierne kopie kodu źródłowego Programu w otrzymanej formie pod warunkiem, że w widoczny sposób i odpowiednio podasz na każdej kopii właściwą informację o prawie autorskim i zrzeczenie się uprawnień z tytułu gwarancji; wszelkie napisy informacyjne na temat Licencji i faktu nieudzielania gwarancji musisz chronić przed uszkodzeniem, zaś wszystkim innym odbiorcom Programu musisz wraz z Programem wręczać egzemplarz niniejszej Licencji. + +Możesz pobierać opłatę za fizyczną czynność przekazania kopii i według własnej decyzji możesz za opłatą proponować ochronę gwarancyjną. + +2. +Możesz modyfikować swoją kopię czy kopie Programu oraz dowolne jego części, tworząc przez to pracę opartą na Programie, jak również kopiować i rozprowadzać takie modyfikacje i pracę na warunkach podanych w pkt.1 powyżej - pod warunkiem przestrzegania całości poniższych wymogów: + +a. +Musisz spowodować umieszczenie na zmodyfikowanych plikach widocznej informacji o tym, że dane pliki zostały przez ciebie zmienione, wraz z datą dokonania zmian. + +b. +Musisz doprowadzić do tego, aby każda rozpowszechniana lub publikowana przez ciebie praca, która w całości lub części zawiera Program, albo pochodzi od niego lub jego części, była w całości i bezpłatnie licencjonowana dla wszelkich stron trzecich na warunkach niniejszej Licencji. + +c. +Jeżeli zmodyfikowany program podczas korzystania z niego w normalnym trybie odczytuje polecenia interaktywnie, musisz spowodować, aby po uruchomieniu (użyty w interaktywny sposób w najzwyklejszym trybie), wydrukowywał on lub wyświetlał powiadomienie o odnośnym prawie autorskim i braku gwarancji (ewentualnie o zapewnianiu gwarancji przez ciebie), oraz o tym, że użytkownicy mogą redystrybuować ten program na niniejszych warunkach wraz z informacją, jak użytkownik może zapoznać się z treścią niniejszej Licencji. (Wyjątek: jeśli sam Program jest interaktywny, ale normalnie nie drukuje takiego powiadomienia, twoja praca oparta na nim też nie musi wydrukowywać takiego powiadomienia). + +Niniejsze wymogi odnoszą się do zmodyfikowanej pracy jako całości. Jeśli dające się ustalić sekcje danej pracy nie pochodzą od Programu i mogą być racjonalnie uważane za samodzielne i odrębne same w sobie, to niniejsza Licencja i jej warunki nie mają zastosowania do takich sekcji przy rozprowadzaniu ich przez ciebie jako odrębne prace. Jeśli jednak rozprowadzasz je jako część całości, będącej pracą opartą na Programie, rozpowszechnianie tej całości musi być dokonywane na warunkach niniejszej Licencji, której zezwolenia dla innych licencjobiorców rozciągają się w całej szerokości na tę całość, a tym samym i na każdą indywidualną jej część, niezależnie od jej autorstwa. + +Dlatego też intencją tego fragmentu nie jest roszczenie sobie praw albo podważanie twych praw do pracy napisanej w całości przez ciebie. Chodzi nam raczej o korzystanie z prawa kontrolowania dystrybucji pochodnych i zbiorowych prac opartych na Programie. + +I jeszcze jedno: samo tylko połączenie z Programem (lub z pracą opartą na Programie) innej pracy - nie opartej na Programie, w ramach wolumenu nośnika przechowywania lub dystrybucji, nie powoduje objęcia takiej pracy zakresem niniejszej Licencji. + +3. +Możesz kopiować i rozprowadzać Program (lub opartą na nim pracę - zgodnie z pkt.2 w kodzie wynikowym lub w formie wykonywalnej w myśl postanowień pkt.1 i 2 powyżej, pod warunkiem zrealizowania również poniższych wymogów: + +a. +Musisz dołączyć do niego odpowiadający mu, kompletny i możliwy do odczytania przez urządzenia cyfrowe kod źródłowy, który musi być rozpowszechniany na warunkach pkt.1 i 2 powyżej i na nośniku zwyczajowo używanym dla wzajemnej wymiany oprogramowania; lub + +b. +dołączyć do niego pisemną ofertę, ważną co najmniej 3 lata, przyznającą każdej stronie trzeciej - za opłatą nie przekraczającą twego kosztu fizycznego wykonywania dystrybucji źródła - kompletną, odczytywalną przez urządzenia cyfrowe kopię odpowiadającego mu kodu źródłowego, rozprowadzaną na warunkach pkt.1 i 2 powyżej, na nośniku zwyczajowo używanym do wzajemnej wymiany oprogramowania; lub + +c. +dołączyć do niego informację, jaką otrzymałeś na temat oferty rozprowadzania odpowiedniego kodu źródłowego. (Ta możliwość dozwolona jest tylko dla dystrybucji niehandlowej i jedynie wtedy, gdy otrzymałeś dany program w kodzie wynikowym lub formie wykonywalnej wraz z wymienioną ofertą - zgodnie z podpunktem "b" powyżej). + +Określenie kod źródłowy dla pracy oznacza formę pracy preferowaną dla wprowadzania do niej modyfikacji. Dla wykonanej pracy, kompletny kod źródłowy oznacza cały kod źródłowy wszystkich modułów, wszelkie sprzężone z nią pośredniczące pliki opisujące oraz zbiory komend stosowane do sterowania kompilacją i instalowaniem programów. Niemniej jednak, jako wyjątek specjalny, dystrybuowany (w formie źródłowej albo binarnej) kod źródłowy nie musi obejmować niczego, co jest normalnie rozprowadzane przy pomocy głównych komponentów (kompilator, jądro itd.) systemu operacyjnego, na którym pracuje część wykonywalna, o ile sam taki komponent towarzyszy tej części. + +Jeśli dystrybucja części wykonywalnej albo kodu wynikowego realizowana jest poprzez oferowanie dostępu do kopii z wyznaczonego miejsca, to oferowanie równoważnego dostępu dla kopiowania kodu źródłowego z tego samego miejsca liczy się jako rozpowszechnianie kodu źródłowego, nawet gdy strony trzecie nie są zmuszone do kopiowania źródła wraz z kodem wynikowym. + + +4. +Poza przypadkami jednoznacznie dozwolonymi w niniejszej Licencji, nie możesz kopiować, modyfikować, sublicencjonować ani rozpowszechniać Programu. We wszystkich pozostałych wypadkach, każda próba skopiowania, sublicencjonowania lub rozpowszechnienia Programu jest nieważna i powoduje automatyczne wygaśnięcie twoich praw z tytułu Licencji. Niemniej jednak, stronom, które już otrzymały od ciebie kopie albo prawa w ramach niniejszej Licencji, licencje nie wygasają tak długo, jak długo strony te w pełni stosują się do nich. + +5. +Nie musisz akceptować niniejszej Licencji, jeżeli jej nie podpisałeś. Niemniej jednak, nic innego nie zapewni ci zezwolenia na modyfikowanie lub rozprowadzanie Programu i pochodzących od niego prac. Działania takie są prawnie zabronione, jeżeli nie przyjmujesz niniejszej Licencji. Dlatego też, poprzez modyfikowanie bądź rozpowszechnianie Programu (lub pracy na nim opartej) dajesz wyraz swojej akceptacji dla Licencji i wszelkich jej postanowień i warunków dotyczących kopiowania, rozprowadzania i modyfikowania Programu lub opartych na nim prac. + +6. +W każdym przypadku redystrybucji przez ciebie Programu (albo opartej na nim pracy), odbiorca automatycznie otrzymuje od pierwotnego licencjodawcy licencję na kopiowanie, rozpowszechnianie i modyfikowanie Programu na niniejszych zasadach i warunkach. Na korzystanie przez odbiorcę z udzielonych w niniejszej Licencji praw nie możesz narzucać już dalszych ograniczeń. Nie jesteś stroną odpowiedzialną za kontrolę przestrzegania Licencji przez osoby trzecie. + +7. +Jeśli na skutek wyroku sądowego lub zarzutu naruszenia patentu, jak też z każdej innej przyczyny (nie ograniczonej do kwestii patentowych) zostaną narzucone na ciebie (niezależnie czy to mocą wyroku sądowego, umowy, czy w inny sposób) warunki sprzeczne z warunkami niniejszej Licencji, to nie zwalniają one ciebie z warunków Licencji. Jeśli nie możesz prowadzić dystrybucji tak, aby wypełniać jednocześnie swoje obowiązki z tytułu niniejszej Licencji i inne odnośne obowiązki, to w rezultacie nie możesz wcale rozprowadzać Programu. Na przykład, gdyby licencja patentowa nie zezwalała na wolną od opłat licencyjnych redystrybucję Programu przez wszystkie osoby, które otrzymały kopie bezpośrednio lub pośrednio od ciebie, to jedynym sposobem pozwalającym ci na przestrzeganie i licencji patentowej, i Licencji niniejszej, byłoby całkowite powstrzymanie się od jakiejkolwiek dystrybucji Programu. + +Jeżeli w jakichś szczególnych okolicznościach któryś fragment niniejszego punktu stałby się nieważny lub niewykonywalny, to intencją jest, aby znajdowała zastosowanie pozostała część punktu, a treść całego punktu była stosowana w pozostałych okolicznościach. + +Celem niniejszego punktu nie jest zachęcanie do naruszania patentów czy innych praw własności, albo też do podważania ich ważności; niniejszy punkt za swój jedyny cel ma ochronę integralności systemu rozpowszechniania wolnego oprogramowania, realizowanego za pomocą publicznych licencji. Wielu ludzi bezinteresownie wniosło swój wkład do stworzenia szerokiego zakresu oprogramowania upowszechnianego w tym systemie, mając zaufanie do konsekwentnego jego stosowania; wyłącznie do autora/ofiarodawcy należy decyzja, czy życzy on sobie rozprowadzania oprogramowania za pośrednictwem innego systemu i licencjobiorca nie może tego prawa wyboru ograniczać. + +Intencją niniejszego punktu jest jasne i wyraźne przedstawienie tego, co uważa się za skutki, jakie rodzi pozostała część niniejszej Licencji. + +8. +W przypadku, gdy dystrybucja i/lub używanie Programu w niektórych krajach poddane jest ograniczeniom patentowym lub zastrzeżeniom prawami autorskimi, początkowy posiadacz praw autorskich, który poddaje Program pod oddziaływanie niniejszej Licencji, może dodać wyraźnie zakreślone geograficzne ograniczenie rozpowszechniania wyłączające te kraje, dzięki czemu dystrybucja dozwolona będzie wyłącznie w krajach czy wśród krajów nie objętych takim wyłączeniem. W przypadku takim, niniejsza Licencja obejmuje dane ograniczenie tak, jakby było ono wpisane w jej treść. + +9. +W miarę potrzeby Fundacja Wolnego Oprogramowania może publikować poprawione i/lub nowe wersje Powszechnej Licencji Publicznej. Takie nowe wersje będą napisane w duchu podobnym do obecnej wersji, ale mogą różnić się w szczegółach poruszających nowe problemy czy zagadnienia. + +Każdej wersji nadaje się wyróżniający ją numer. Jeżeli Program podaje numer wersji niniejszej Licencji, odnoszący się do tej wersji i "wszelkich wersji następnych", masz do wyboru albo stosować się do postanowień i warunków tej wersji, albo którejkolwiek wersji późniejszej wydanej przez Fundację Wolnego Oprogramowania. O ile Program nie podaje numeru wersji niniejszej Licencji, możesz wybrać dowolną wersję kiedykolwiek opublikowaną przez Fundację. + +10. +Jeśli chcesz włączyć części Programu do innych wolnych programów, których warunki rozpowszechniania są inne, zwróć się pisemnie do autora z prośbą o pozwolenie. W przypadku oprogramowania objętego przez Fundację prawem autorskim, napisz do Fundacji; czasami czynimy od tego odstępstwa. W naszej decyzji kierujemy się dwoma celami: utrzymania wolnego statusu wszystkich pochodnych naszego wolnego oprogramowania oraz - generalnie - promowania współudziału i wielokrotnego stosowania oprogramowania. + +WYRÓB BEZ GWARANCJI + +11. +PONIEWAŻ PROGRAM JEST LICENCJONOWANY BEZPŁATNIE, NIE JEST OBJĘTY GWARANCJĄ W ZAKRESIE DOZWOLONYM PRZEZ OBOWIĄZUJĄCE PRZEPISY. O ILE NA PIŚMIE NIE STANOWI SIĘ INACZEJ, POSIADACZE PRAW AUTORSKICH I/LUB INNE STRONY ZAPEWNIAJĄ PROGRAM W STANIE, W JAKIM JEST ("JAK WIDAĆ") BEZ JAKIEJKOLWIEK GWARANCJI, ANI WYRAŹNEJ, ANI DOMYŚLNEJ, W TYM MIĘDZY INNYMI DOMYŚLNYCH GWARANCJI CO DO PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. CAŁOŚĆ RYZYKA W ZAKRESIE JAKOŚCI I SKUTECZNOŚCI DZIAŁANIA PROGRAMU PONOSISZ SAM. W RAZIE GDYBY PROGRAM OKAZAŁ SIĘ WADLIWY, PONOSISZ KOSZT CAŁEGO NIEZBĘDNEGO SERWISU, NAPRAWY I KORYGOWANIA. + +12. +O ILE OBOWIĄZUJĄCE PRAWO NIE STANOWI INACZEJ ALBO CZEGOŚ INNEGO NIE UZGODNIONO W FORMIE PISEMNEJ, ŻADEN POSIADACZ PRAW AUTORSKICH ANI INNA STRONA MODYFIKUJĄCA I/LUB REDYSTRYBUJĄCA PROGRAM ZGODNIE Z POWYŻSZYMI ZEZWOLENIAMI, W ŻADNYM WYPADKU NIE JEST ODPOWIEDZIALNA WOBEC CIEBIE ZA SZKODY, W TYM SZKODY OGÓLNE, SPECJALNE, UBOCZNE LUB SKUTKOWE, WYNIKŁE Z UŻYCIA BĄDŹ NIEMOŻLIWOŚCI UŻYCIA PROGRAMU (W TYM, MIĘDZY INNYMI, ZA UTRATĘ DANYCH LUB POWSTANIE DANYCH NIEDOKŁADNYCH, ALBO ZA STRATY PONIESIONE PRZEZ CIEBIE LUB STRONY TRZECIE, JAK TEŻ NIEDZIAŁANIE PROGRAMU Z INNYMI PROGRAMAMI), NAWET JEŚLI DANY POSIADACZ BĄDŹ INNA STRONA ZOSTALI POWIADOMIENI O MOŻLIWOŚCI POWSTANIA TAKICH SZKÓD. + +KONIEC ZASAD I WARUNKÓW +Jak stosować niniejsze Warunki do Twoich nowych programów + +Jeśli opracowujesz nowy program i chciałbyś, aby stał się on przydatny dla szerokiego ogółu, najlepszą drogą do osiągnięcia tego będzie nadanie twemu programowi charakteru wolnego oprogramowania, które każdy może redystrybuować i zmieniać na niniejszych warunkach. + +W tym celu do programu dołącz poniższe informacje. Bezpieczniej jest dołączyć je na początku każdego pliku źródłowego, dzięki czemu najskuteczniej można przekazać fakt nieistnienia gwarancji; każdy plik powinien przy tym nosić uwagę "copyright" i odnośnik, gdzie można znaleźć pełną informację. +nazwa programu i informacja, do czego on służy. +Copyright (C) 19../20.. nazwisko autora +Niniejszy program jest wolnym oprogramowaniem; możesz go +rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej +Licencji Publicznej GNU, wydanej przez Fundację Wolnego +Oprogramowania - według wersji 2-giej tej Licencji lub którejś +z późniejszych wersji. +Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on +użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej +gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH +ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna +Licencja Publiczna GNU. +Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz +Powszechnej Licencji Publicznej GNU (GNU General Public License); +jeśli nie - napisz do Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. +Podaj też informacje o sposobie kontaktowania się z tobą pocztą elektroniczną lub zwykłą. + +Jeśli dany program jest interaktywny, spraw, aby w momencie wchodzenia w tryb interaktywny wyświetlał on komunikat jak w poniższym przykładzie: +Gnomovision wersja 69, Copyright C 19.. nazwisko autora + +Gnomovision wydawany jest ABSOLUTNIE BEZ ŻADNEJ GWARANCJI - +w celu uzyskania dalszych szczegółów wpisz "show w". +To jest wolne oprogramowanie i mile widziane jest dalsze +rozpowszechnianie go przez ciebie na określonych warunkach - +w celu uzyskania bliższych szczegółów wpisz "show c". + +Powyższe hipotetyczne polecenia "show w" i "show c" winny powodować wyświetlenie odpowiednich części Powszechnej Licencji Publicznej. Oczywiście możesz używać innych poleceń niż "show w" i "show c"; mogą to być nawet kliknięcia myszą lub pozycje menu - co tylko sobie uznasz za stosowne. + +Powinieneś też poprosić swego pracodawcę (jeśli pracujesz jako programista) czy też swoją szkołę (jeśli jesteś uczniem), o podpisanie, w razie potrzeby, "Rezygnacji z praw autorskich" do programu. Poniżej podajemy przykład (zmień nazwy/nazwiska): +My, firma Jojodyne Sp. z o.o. niniejszym zrzekamy się +i rezygnujemy z wszelkich interesów prawnych w zakresie +praw autorskich do programu "Gnomovision" (który realizuje +następujące funkcje...), napisanego przez p.Jana Kowalskiego. + +Podpis: /-/ Gniewosław Wielkoważny + +Gniewosław Wielkoważny, Prezes...itp +Powszechna Licencja Publiczna nie zezwala na włączanie twego programu do programów prawnie zastrzeżonych. Jeśli twój program jest biblioteką podprogramów, możesz rozważyć, czy nie będzie korzystniej zezwolić na powiązanie prawnie zastrzeżonych aplikacji z biblioteką. Jeśli chciałbyś właśnie tego dokonać, zamiast niniejszej Licencji zastosuj Powszechną Licencję Publiczną GNU dla Bibliotek. \ No newline at end of file diff --git a/cms/INSTALL b/cms/INSTALL new file mode 100644 index 0000000..623162b --- /dev/null +++ b/cms/INSTALL @@ -0,0 +1,151 @@ +Instalacja w obecnej wersji (okrojonej) jest dość prosta - nie ma instalatora, +ale konfiguracja ogranicza się do edycji kilku pól w config.php ... Mam +nadzieję, że każdy se z tym poradzi :P + +1. Zmieniamy nazwę config_template.php na config.php + +2. Edytujemy pola: + +$_w_baseURL + +Tutaj wsadź link do folderu w którym znajduje się CMS. + +Np. http://mojakurdestrona.pl/wcms/ + +------- + +$_w_siteURL + +To samo co w powyższym polu + index.php/, chyba, że grzebałeś w .htaccess :P + +Np. http://mojakurdestrona.pl/wcms/index.php/ + +------- + +$_w_dbHost + +Host bazy danych. Na 99% będzie to localhost + +Np. localhost + +------- + +$_w_dbUser + +User bazy danych. Na serwerze lokalnym będzie to prawdopodobnie root + +Np. root + +------- + +$_w_dbPass + +Hasło do usera bazy danych. + +Np. Jacek542527424 + +------- + +$_w_dbName + +Baza danych do której importujemy zrzut bazy danych + +Np. watermelondatabase + +------- + +$_w_dbPrefix + +Prefiks do tabel. W tej wersji cms-a należy ZOSTAWIĆ PUSTE POLE + +Np. wcms_ + +------- + +$_w_siteName + +Nazwa strony + +Np. Jacek Website + +------- + +$_w_siteSlogan + +Slogan (tekst dodatkowy w headerze) strony. ofc może być puste. + +Np. Jacek Wymiatacz! + +------- + +$_w_theme + +Theme strony. W tej wersji CMS-a istnieją dwa - simple i wcmslay. Polecamy +ten drugi. + +Np. wcmslay + +------- + +$_w_defaultCnt + +Domyślny kontroler. W tej wersji CMS-a istnieje kilka, ale radzimy wpisać test + +Np. test + +------- + +$_w_hashAlgo + +Algorytm haszujący. Jeśli zaczyna się od x, skrypt korzysta z biblioteki hash, +jeśli zaczyna się od innego znaku - będzie korzystał z dowolnej funkcji php. + +Np. _sha1 + +------- + +$_w_autoload + +Nie ma potrzeby edytować + +------- + +$_w_metaSrc + +Tego też nie ma potrzeby edytować, ale tu są pozycje meta (np. keywordy), +dołączane do theme'a (w postaci tablicy) + +np. array( + '', + '' + ); + +------- + +$_w_superusers[''] = ''; + +Jako klucz dać nazwę admina a w drugim jego hasło zahaszowane sposobem podanym w +polu hashalgo. + +W podanym przykładzie loginem będzie jacek, a hasłem qwerty (zakładając że pole +hashalgo jest ustawione na _sha1) + +Np. $_w_superusers['jacek'] = 'b1b3773a05c0ed0176787a4f1574ff0075f7521e'; + +------- + +3. Importuj zrzut bazy danych do bazy podanej w polu $_w_dbName. Zrzut znajduje +się w pliku sqldump.sql + +UWAGA! + +Watermelon CMS we wcześniejszych wersjach nie zawierał zrzutu bazy danych. Jeśli +więc masz w pliku index.php taką linijkę: + +define('NOMENU', ''); + +Zamień ją na: + +//define('NOMENU', ''); + +czyli mówiąc krótko: zakomentuj tą linijkę :) \ No newline at end of file diff --git a/cms/config_template.php b/cms/config_template.php new file mode 100644 index 0000000..fd3e828 --- /dev/null +++ b/cms/config_template.php @@ -0,0 +1,102 @@ + diff --git a/cms/index.php b/cms/index.php old mode 100755 new mode 100644 index 29954da..3397df8 --- a/cms/index.php +++ b/cms/index.php @@ -19,16 +19,16 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); + +$_w_startTime = microtime(); +session_start(); +ob_start(); error_reporting(E_ALL ^ E_NOTICE); -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; +//define('NOMENU', ''); + +include 'config.php'; + +include WTRMLN_CMSPATH . 'system.php'; ?> diff --git a/cms/sqldump.sql b/cms/sqldump.sql new file mode 100644 index 0000000..3f6eaad --- /dev/null +++ b/cms/sqldump.sql @@ -0,0 +1,107 @@ +# -------------------------------------------------------- +# +# Struktura tabeli dla 'groups' +# + +CREATE TABLE groups ( + id smallint(3) unsigned NOT NULL auto_increment, + name varchar(30) NOT NULL, + users text NOT NULL, + style tinyint(1) unsigned NOT NULL, + PRIMARY KEY (id) +); + +# +# Zawartosc tabeli 'groups' +# + + +# -------------------------------------------------------- +# +# Struktura tabeli dla 'menu' +# + +CREATE TABLE menu ( + menu_id smallint(5) unsigned NOT NULL auto_increment, + menu_capt varchar(100) NOT NULL, + menu_content text NOT NULL, + menu_if text NOT NULL, + PRIMARY KEY (menu_id) +); + +# +# Zawartosc tabeli 'menu' +# + +INSERT INTO menu VALUES ( '1', 'Menu', 'Testowe menu.
lorem ipsum', ''); +INSERT INTO menu VALUES ( '2', 'Kolejne menu', 'hehe ;)', ''); + +# -------------------------------------------------------- +# +# Struktura tabeli dla 'pages' +# + +CREATE TABLE pages ( + id smallint(5) unsigned NOT NULL auto_increment, + name varchar(255) NOT NULL, + content text NOT NULL, + title varchar(255) NOT NULL, + PRIMARY KEY (id) +); + +# +# Zawartosc tabeli 'pages' +# + +INSERT INTO pages VALUES ( '22', 'testowa/stronka', 'Heh elo no :D test + + + + + + + + + +;)', 'Elo heh'); + +# -------------------------------------------------------- +# +# Struktura tabeli dla 'privileges' +# + +CREATE TABLE privileges ( + id smallint(2) unsigned NOT NULL auto_increment, + PRIMARY KEY (id) +); + +# +# Zawartosc tabeli 'privileges' +# + + +# -------------------------------------------------------- +# +# Struktura tabeli dla 'users' +# + +CREATE TABLE users ( + id int(5) unsigned NOT NULL auto_increment, + nick varchar(32) NOT NULL, + password varchar(255) NOT NULL, + hashalgo tinyint(1) unsigned DEFAULT '0' NOT NULL, + salt varchar(16) NOT NULL, + ingroups varchar(255) NOT NULL, + privileges tinyint(2) unsigned DEFAULT '0' NOT NULL, + PRIMARY KEY (id) +); + +# +# Zawartosc tabeli 'users' +# + diff --git a/cms/wtrmln/admin/commons.php b/cms/wtrmln/admin/commons.php new file mode 100644 index 0000000..e01af09 --- /dev/null +++ b/cms/wtrmln/admin/commons.php @@ -0,0 +1,172 @@ +connect($_w_dbHost, $_w_dbUser, $_w_dbPass, $_w_dbName, $_w_dbPrefix); + +function panic($text = 'noname error') +{ + die('
+ Błąd krytyczny uniemożliwiający kontynuowanie.
Debug: ' . $text . '
'); +} + +/* Sprawdzamy czy zalogowany +**********************************************/ + +function AreLoggedIn() +{ + global $_w_superusers; + if($_SESSION['WTRMLN_ADMIN_LOGGED_IN'] != 'true') + { + return FALSE; + } + if(!isset($_w_superusers[$_SESSION['WTRMLN_ADMIN_LOGIN']])) + { + return FALSE; + } + if($_SESSION['WTRMLN_ADMIN_PASS'] != $_w_superusers[$_SESSION['WTRMLN_ADMIN_LOGIN']]) + { + return FALSE; + } + + $_db = DB::Instance(); + + $checkFail = $_db->query("SELECT `fails` FROM `admin_loginfail` WHERE `ip` = '" . ClientIP() . "'"); + $failData = $checkFail->to_obj(); + + if($failsRows > 0) + { + return FALSE; + } + + if(!isset($_SESSION['WTRMLN_ADMIN_STARTTIME'])) + { + return FALSE; + } + + if($_SESSION['WTRMLN_ADMIN_STARTTIME'] < time() - 600) + { + return FALSE; + } + + return TRUE; +} + +/* Biblioteki +**********************************************/ +include WTRMLN_ADMINLIBS . 'render.php'; + +include WTRMLN_LIBS . 'url.php'; + +$_url = new URL('hi'); + +class AdminModule +{ + function AdminModule() + { + $this->render = new Render(); + $this->db = DB::Instance(); + } +} + +function getMenu() // jakieś stare coś. +{ + $menu = file_get_contents('config/topmenu.php'); + $menu = str_replace(array("\r\n", "\r"), "\n", $menu); + $menu = explode("\n", $menu); + + $menu = array_reverse($menu); + array_pop($menu); + $menu = array_reverse($menu); + + return $menu; +} + +?> diff --git a/cms/wtrmln/admin/index.php b/cms/wtrmln/admin/index.php new file mode 100644 index 0000000..b7a1454 --- /dev/null +++ b/cms/wtrmln/admin/index.php @@ -0,0 +1,129 @@ +class); + +$_w_controllerPath = WTRMLN_ADMINCNT . $_w_controllerPath . '.php'; + +if(file_exists($_w_controllerPath)) +{ + include $_w_controllerPath; +} +else +{ + panic('Nie moge znalesc pliku podanego controllera'); +} + +if(class_exists($_url->class)) +{ + $_controller = new $_url->class(); +} +else +{ + panic('Nie moge znalesc klasy podanego controllera'); +} + +if(!method_exists($_controller, $_url->method)) +{ + panic('Nie moge znalesc podanej funkcji składowej controllera'); +} + +// przystepujemy do roboty + +$_controller->{$_url->method}(); + +$content = ob_get_contents(); +@ob_end_clean(); + +// w łatwy sposób umożliwiamy tworzenie ścieżek do konkretnego modułu + +$content = str_replace(' +
+ Elo + Elo + Elo + Elo +
+
+ +'; + +$menua = +array( + '3', + '1', '#1', + array( + '3', + '1a', '#1a', + '1b', '#1b', + '1c', '#1c', + '1d', '#1d', + ), + '2', '#2', + array( + '3', + '2a', '#2a', + '2b', '#2b', + '2c', '#2c', + '2d', '#2d', + ), + '3', '#3', + array( + '3', + '3a', '#3a', + '3b', '#3b', + '3c', '#3c', + '3d', '#3d', + ), + '4', '#4', + array( + '3', + '4a', '#4a', + '4b', '#4b', + '4c', '#4c', + '4d', '#4d', + ) +); + + + +include 'themes/' . WTRMLN_ADMIN_THEME . '/index.php'; + +?> diff --git a/cms/wtrmln/admin/libs/index.html b/cms/wtrmln/admin/libs/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/admin/libs/patables.php b/cms/wtrmln/admin/libs/patables.php new file mode 100644 index 0000000..dc18381 --- /dev/null +++ b/cms/wtrmln/admin/libs/patables.php @@ -0,0 +1,158 @@ +'; + } + else + { + return ''; + } + } + + private function paTableFindvar($varname) + { + // trochę zakręcone: interesująca nas nazwa jest w pierwszym [1] + // elemencie $varname, zamieniamy ją na małe litery, i wyszukujemy + // w $this->vars element o tej właśnie nazwie (strtolower($varname[1])) + + return $this->vars[strtolower($varname[1])]; + } + + function paTable($struct, $vars) + { + $patable = $struct; + + //zamiana na małe litery i przeniesienie do zmiennej składowej + foreach($vars as $var) + { + $var = strtolower($var); + } + $this->vars = $vars; + + // tworzenie nagłówka tabeli + $patable = preg_replace_callback('#==#', array($this, 'paTableCaption'), $patable); + + // zmienne + // thx for Crozin (forum.php.pl) + $patable = preg_replace_callback('/\$\(([a-zA-Z0-9]+)\)/', array($this, 'paTableFindvar'), $patable); + + $patable = str_replace(array("\r\n", "\r"), "\n", $patable); + + $patable = explode("\n", $patable); + + foreach($patable as $patabl) + { + $patable_ .= $patabl . '
'; + } + $patable = $patable_; + + return '' . $patable . '
'; + } + + /// + + private static function paTableTrs() + { + static $secondline; + if(!$secondline) + { + $secondline = true; + return ''; + } + else + { + $secondline = false; + return ''; + } + } + /* + function paTable($struct, $vars) + { + $patable = $struct; + + $varname = NULL; + $tovar = FALSE; + + for($i = 0; $i < strlen($patable); $i++) + { + + if($patable[$i] == '%') + { + $tovar = TRUE; + continue; + } + + if($tovar == TRUE) + { + if(ord($patable[$i]) > 97 && ord($patable[$i]) < 122) + { + $varname .= $patable[$i]; + } + else + { + $tovar = FALSE; + $patable2 .= $vars[$varname]; + $varname = NULL; + $patable2 .= $patable[$i]; + } + } + else + { + if($patable[$i] != '%') + { + $patable2 .= $patable[$i]; + } + } + + } + + $patable = $patable2; + + $patable = str_replace('{:', '', $patable); + $patable = str_replace(':}', '', $patable); + $patable = str_replace(':', '', $patable); + + //$patable = str_replace('{', $this->paTableTr(), $patable); + $patable = preg_replace_callback('#\{#', array($this, 'paTableTr'), $patable); + $patable = str_replace('}', '', $patable); + $patable = str_replace('|', '', $patable); + + $patable = '
' . $patable . '
'; + + return $patable; + }*/ +} \ No newline at end of file diff --git a/cms/wtrmln/admin/libs/render.php b/cms/wtrmln/admin/libs/render.php new file mode 100644 index 0000000..ed3c09f --- /dev/null +++ b/cms/wtrmln/admin/libs/render.php @@ -0,0 +1,54 @@ +' . $text . ''; + } + /**********************************************************/ + /* Boksy + /**********************************************************/ + function errorBox($text) + { + echo '
Błąd:' . $text . '
'; + } + function warningBox($text) + { + echo '
Ostrzeżenie:' . $text . '
'; + } + function infoBox($text) + { + echo '
Informacja:' . $text . '
'; + } + function confirmBox($text) + { + echo '
' . $text . '
'; + } + function tipBox($text) + { + echo '
Wskazówka:' . $text . '
'; + } +} \ No newline at end of file diff --git a/cms/wtrmln/admin/login.php b/cms/wtrmln/admin/login.php new file mode 100644 index 0000000..3f09bef --- /dev/null +++ b/cms/wtrmln/admin/login.php @@ -0,0 +1,142 @@ +query("INSERT INTO `admin_loginfail` (`ip`,`fails`,`lastfail`) VALUES ('" . ClientIP() . "','1','" . time() . "')"); + } + else + { + if($failData->fails == '1') + { + $_db->query("UPDATE `admin_loginfail` SET `fails` = '2', `lastfail` = '" . time() . "' WHERE `ip` = '" . ClientIP() . "'"); + } + else + { + $_db->query("UPDATE `admin_loginfail` SET `fails` = '3', `lastfail` = '" . time() . "' WHERE `ip` = '" . ClientIP() . "'"); + } + } +} + + +if($_GET['check'] == 'true') +{ + $checkFail = $_db->query("SELECT `fails`,`lastfail` FROM `admin_loginfail` WHERE `ip` = '" . ClientIP() . "'"); + $failData = $checkFail->to_obj(); + $failsRows = $checkFail->num_rows(); + + //sprawdzamy czy nasz IP ma w ciągu godziny 3 faile + if($failsRows > 0) + { + + if($failData->fails == '3') + { + if($failData->lastfail > (time()-3600)) + { + $_C = '

Błąd

Przekroczono limit trzech błędnych logowań na godzinę.'; + include 'themes/' . WTRMLN_ADMIN_THEME . '/login.php'; + die; + } + else + { + //jeśli są jakieś faile, ale przedawnione, usuń wiersz + $_db->query("DELETE FROM `admin_loginfail` WHERE `ip` = '" . ClientIP() . "'"); + } + } + } + + // sprawdzamy dane + + $formNick = $_POST['nick']; + $formPass = $_POST['pass']; + + if(empty($formNick) || empty($formPass)) + { + $_C = '

Błąd

Nie wszystkie pola zostały wypełnione.
'. + '
 
'; + include 'themes/' . WTRMLN_ADMIN_THEME . '/login.php'; + die; + } + + // istnienie admina + + if(!isset($_w_superusers[$formNick])) + { + addFail(&$_db, &$failData, &$failsRows); + $_C = '

Błąd

Taki administrator nie istnieje.
'. + '
 
'; + include 'themes/' . WTRMLN_ADMIN_THEME . '/login.php'; + die; + } + + // hasło + + if(strHash($formPass) != $_w_superusers[$formNick]) + { + addFail(&$_db, &$failData, &$failsRows); + $_C = '

Błąd

Niepoprawne hasło.
'. + '
 
'; + include 'themes/' . WTRMLN_ADMIN_THEME . '/login.php'; + die; + } + + // ok. Zalogowany. + + $_SESSION['WTRMLN_ADMIN_LOGIN'] = $formNick; + $_SESSION['WTRMLN_ADMIN_PASS'] = $_w_superusers[$formNick]; + $_SESSION['WTRMLN_ADMIN_LOGGED_IN'] = 'true'; + + $_C = '

Zalogowany!

'. + 'Witaj ' . $formNick . '!
'. + '
 
'; + + // zalogowaliśmy się, tak więc wszystkie faile są już nieważne + $_db->query("DELETE FROM `admin_loginfail` WHERE `ip` = '" . ClientIP() . "'"); + +} +else +{ + $_C = '

Logowanie

'. + '
'. + '
'. + '
 

'. + '
 
'; +} + +include 'themes/' . WTRMLN_ADMIN_THEME . '/login.php'; +?> diff --git a/cms/wtrmln/admin/robots.txt b/cms/wtrmln/admin/robots.txt new file mode 100644 index 0000000..9ddc249 --- /dev/null +++ b/cms/wtrmln/admin/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/cms/wtrmln/admin/themes/adminsomething/Style.css b/cms/wtrmln/admin/themes/adminsomething/Style.css new file mode 100644 index 0000000..ea17dce --- /dev/null +++ b/cms/wtrmln/admin/themes/adminsomething/Style.css @@ -0,0 +1,263 @@ +* +{ + margin: 0; + padding: 0; +} + +body +{ + background: #EEE; + font-family: Verdana; + font-size: 14px; +} + +#bg +{ + z-index: -10; + position: fixed; +} + +#bg img +{ + width: 1280px; +} + +a +{ + color: #57B; + text-decoration: none; +} + +a:hover +{ + border-bottom: 1px dotted #57B; +} + +a:visited +{ + color: #659; +} + +a:visited:hover +{ + border-bottom: 1px dotted #659; +} + +/************************************/ + +#header a, #header a:visited +{ + color: #FFF; +} + +#header a:hover, #header a:visited:hover +{ + border-bottom: 1px dotted #fff; +} + +#header +{ + background: #719F3E; + width:100%; + height:50px; + padding-top: 10px; +} + +#header span.h1 +{ + padding-left: 25px; + font-size: 2.5em; + color: #AFD971; + font-family: Georgia, "Times New Roman", Times, serif; + letter-spacing: -.05em; +} + +#header div +{ + position: absolute; + right: 5px; + top: 5px; +} + +#menu +{ + background-color: #AFD971; +} + +#menu > div +{ + padding: 6px; +} + +#menu div a +{ + display: block; + float: left; + margin-left: 20px; + padding: 3px; + padding-left: 5px; + padding-right: 5px; + border: 0; + font-size: 1.1em; + color: black; +} + +#menu div a:hover +{ + background-color: #C8E49C; +} + +#menu div a.current +{ + margin-top: 3px; + background-color: #C8E49C; +} + +#submenu +{ + background-color: #C8E49C; + border-bottom: 2px solid #fff; +} + +#submenu > div +{ + padding: 6px; +} + +#submenu div a +{ + display: block; + float: left; + margin-left: 20px; + padding: 3px; + padding-left: 5px; + padding-right: 5px; + border: 0; + font-size: .9em; + color: black; +} + +#submenu div a:hover +{ + background-color: #fff; +} + +#submenu div a.current +{ + margin-top: 3px; + background-color: #fff; +} + +/*****************************/ +#content +{ + padding: 10px; + background-color: #fff; + width: 90%; + margin: 0 auto; + margin-bottom: 150px; + opacity: 1; + border: 1px solid #BBB; + border-top: 0; +} + +/* +h1 +{ + font-size: 1.5em; + margin:-10px; + margin-bottom: 15px; + text-align: center; +}*/ + +.box_e +{ + border: 1px solid #B65; + background: #FA9 url('images/be.png') no-repeat 10px center; +} +.box_w +{ + border: 1px solid #B85; + background: #FE9 url('images/bw.png') no-repeat 10px center; +} +.box_i +{ + border: 1px solid #57B; + background: #ABF url('images/bi.png') no-repeat 10px center; +} +.box_c +{ + border: 1px solid #8B5; + background: #CFA url('images/bg.png') no-repeat 10px center; +} +.box_t +{ + border: 1px solid #AAA; + background: #EEE url('images/bt.png') no-repeat 10px center; +} + +.box_e strong +{ + color: #943; +} + +.box_w strong +{ + color: #963; +} + +.box_i strong +{ + color: #359; +} + +.box_t strong +{ + color: #888; +} + +.box_e, +.box_w, +.box_i, +.box_c, +.box_t +{ + padding: 10px; + margin: 10px; + padding-left: 36px; +} + +.box_e strong, +.box_w strong, +.box_i strong, +.box_t strong +{ + display: block; +} + +/****************************************/ + +table +{ + width: 100%; +} + +th +{ + padding: 5px; + margin: 1px; + background-color: #CCC; + text-align: left; + font-weight: bold; +} + +td +{ + padding: 5px; + margin: 1px; +} + +tr.secondline td +{ + background-color: #EEE; +} \ No newline at end of file diff --git a/cms/wtrmln/admin/themes/adminsomething/images/adminbg.jpg b/cms/wtrmln/admin/themes/adminsomething/images/adminbg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e6e61bb54bd18fca0e2ba98c880f690bc479842d GIT binary patch literal 66788 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 literal 0 HcwPel00001 diff --git a/cms/wtrmln/admin/themes/adminsomething/images/bg.png b/cms/wtrmln/admin/themes/adminsomething/images/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..a9925a06ab02db30c1e7ead9c701c15bc63145cb GIT binary patch literal 537 zcwPY+0_OdRP)Hs{AQG2a)rMyf zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4 z2FhRqKX}xI*?Tv1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1pBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*0XYhLR!1P*SpVQi>)dUV<_*6qInHGcnEb zQfX6|c{lO4l#RKaZC-XZ&u-_k%Q@eEE?Qa!_Tt0u@H@}<^E~``A^=3}gr(l4vU*i7 zyV6Lx=4yE7RGGkx6gV71cjvY=iqb#p!ylZn>j-Cf+b>x95wMRT==lzjH$f681f9ze zR{P)>$i_z3RfAovII&B>n%*Ds>XegyS_9EX5sW0f1d*FX&^tjGBX?Rzej4t{=ddW_ z9h>UH!(o9}TURNVdq{y5qM#$E1yaxnNWKtKkRh^p1YA9U=z#4*HY{(h_k{(nnF>pQ znJ2Y6(rFb^z)nJ2pnqIQ&_2v{yl+xxUhm5uO{Q#!J8DY)klFdeOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcwPel00001 diff --git a/cms/wtrmln/admin/themes/adminsomething/images/index.htm b/cms/wtrmln/admin/themes/adminsomething/images/index.htm new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/admin/themes/adminsomething/index.php b/cms/wtrmln/admin/themes/adminsomething/index.php new file mode 100644 index 0000000..62cd29d --- /dev/null +++ b/cms/wtrmln/admin/themes/adminsomething/index.php @@ -0,0 +1,29 @@ + + + + +Panel Admina + + + + + + + + +
+ + +
+
+ +
+ + \ No newline at end of file diff --git a/cms/wtrmln/admin/themes/adminsomething/login.php b/cms/wtrmln/admin/themes/adminsomething/login.php new file mode 100644 index 0000000..ba80e61 --- /dev/null +++ b/cms/wtrmln/admin/themes/adminsomething/login.php @@ -0,0 +1,63 @@ + + + + Logowanie + + + + + + + + +
+
+ +
+
+ + \ No newline at end of file diff --git a/cms/wtrmln/admin/themes/index.html b/cms/wtrmln/admin/themes/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/helpers/helpers.php b/cms/wtrmln/helpers/helpers.php new file mode 100644 index 0000000..db96473 --- /dev/null +++ b/cms/wtrmln/helpers/helpers.php @@ -0,0 +1,143 @@ +' . $value . ''; +} + +/* zwraca element tablicy $_POST +********************************/ + +function _POST($key) +{ + return $_POST[$key]; +} + +/* tworzy polską odmianę rzeczownika dla liczebnika +*******************************/ + +function generatePlFormOf($int, $odm1, $odm2, $odm3) +{ + if($int == 0) return $odm3; + if($int == 1) return $odm1; + if($int > 1 && $int < 5) return $odm2; + if($int > 4 && $int < 22) return $odm3; + $int = substr($int, -1, 1); + + if($int == 0 || $int == 1) return $odm3; + if($int > 1 && $int < 5) return $odm2; + if($int > 4 && $int < 10) return $odm3; +} + +/* tworzy link do podstrony +**************************************/ + +function site_url($url) +{ + return WTRMLN_SITEURL . $url; +} + +/* określenie IP kolesia +/* +/* funkcja pochodzi oryginalnie z: http://php.org.pl/artykuly/3/22 +**************************************/ + +function ClientIP() +{ + $ip = 0; + + if(!empty($_SERVER['HTTP_CLIENT_IP'])) + { + $ip = $_SERVER['HTTP_CLIENT_IP']; + } + + if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) + { + $ipList = explode(', ', $_SERVER['HTTP_X_FORWARDED_FOR']); + + if($ip) + { + array_unshift($ipList, $ip); + $ip = 0; + } + + foreach($ipList as $v) + { + if(!ereg('^(192\.168|172\.16|10|224|240|127|0)\.', $v)) + { + return $v; + } + } + } + return $ip ? $ip : $_SERVER['REMOTE_ADDR']; +} + +/* zwraca hash określony w configu +***********************************/ + +function strHash($string, $algo = NULL) +{ + if($algo == NULL) + { + $algo = unserialize(WTRMLN_HASHALGO); + $algo = $algo[0]; + } + elseif(is_int($algo)) + { + $algo_id = $algo; + $algo = unserialize(WTRMLN_HASHALGO); + echo 'TEST'; + var_dump(WTRMLN_HASHALGO); + $algo = $algo[$algo_id]; + die; + } + + + + $algoType = $algo[0]; + + $algo = substr($algo, 1); + + // jeśli pierwszy znak to "x", używamy do haszowania funkcji hash. Jeśli + // inny - używamy standardowej funkcji (obecnie są chyba tylko trzy, + // może w PHP6 będzie więcej) + + if($algoType == 'x') + { + return hash($algo, $string); + } + else + { + //return $algo($string); + + //return eval($algo . '(' . $string . ')'); + } +} + +?> diff --git a/cms/wtrmln/helpers/index.html b/cms/wtrmln/helpers/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/index.html b/cms/wtrmln/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/index.php b/cms/wtrmln/libs/controller.php old mode 100755 new mode 100644 similarity index 60% copy from cms/index.php copy to cms/wtrmln/libs/controller.php index 29954da..da897fd --- a/cms/index.php +++ b/cms/wtrmln/libs/controller.php @@ -19,16 +19,32 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); - -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; - -?> + +class Controller +{ + public function Controller() + { + $this->url = URL::Instance(); + $this->db = DB::Instance(); + $this->load = new Loader(); + } + + /* + * public void addMeta(string $data); + * + * dodaje element do sekcji + * + * string $data - element do wstawienia, np. '' + */ + + public function addMeta($data) + { + $metaSrc = Watermelon::$metaSrc; + + $metaSrc[] = $data; + + Watermelon::$metaSrc = $metaSrc; + } +} + +?> \ No newline at end of file diff --git a/cms/wtrmln/libs/db.php b/cms/wtrmln/libs/db.php new file mode 100644 index 0000000..4c11ef9 --- /dev/null +++ b/cms/wtrmln/libs/db.php @@ -0,0 +1,249 @@ +res + * + */ + public function DBresult($res) + { + $this->res = $res; + } + + /* + * public int num_rows() + * + * Zwraca ilość znalezionych wyników + * + */ + + public function num_rows() + { + return mysql_num_rows($this->res); + } + + /* + * public object to_obj() + * + * Zwraca dane w postaci obiektu + * + */ + + public function to_obj() + { + return mysql_fetch_object($this->res); + } + + /* + * public array to_array() + * + * Zwraca dane w postaci tablicy + * + */ + + public function to_array() + { + return mysql_fetch_array($this->res); + } +} + +?> diff --git a/cms/wtrmln/libs/index.html b/cms/wtrmln/libs/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/libs/loader.php b/cms/wtrmln/libs/loader.php new file mode 100644 index 0000000..a014240 --- /dev/null +++ b/cms/wtrmln/libs/loader.php @@ -0,0 +1,151 @@ + string $var[, $varname => string $var[, ... ]]) + * $varname - nazwa zmiennej do zamiany + * $var - treść zmiennej o nazwie $varname + */ + + public function view($view, array $vars = array(), $panicifne = true) + { + $view = str_replace('_', '/', $view); + $path_theme = WTRMLN_THEMEPATH . 'views/' . $view . '.php'; + $path = WTRMLN_VIEWS . $view . '.php'; + + // sprawdzamy czy istnieje theme view + + if(file_exists($path_theme)) + { + $path = $path_theme; + } + + // sprawdzamy czy view istnieje + + if(!file_exists($path)) + { + if($panicifne) + { + panic('Lib Loader: 0'); + } + else + { + return false; + } + } + + ob_start(); + + // zmienne + + foreach($vars as $varname => $var) + { + $$varname = $var; + } + + //długa nazwa, w razie gdyby ktoś chciał w viewie takiej użyć + + $___Loader_Path = $path; + + //usuwanie niepotrzebnych zmiennych + + unset($vars); + unset($view); + unset($path); + unset($path_theme); + + $___Loader_toEval = file_get_contents($___Loader_Path); + $___Loader_toEval = ViewTags::Process($___Loader_toEval); + echo eval('?>' . $___Loader_toEval . ' diff --git a/cms/index.php b/cms/wtrmln/libs/model.php old mode 100755 new mode 100644 similarity index 81% copy from cms/index.php copy to cms/wtrmln/libs/model.php index 29954da..2af7f5d --- a/cms/index.php +++ b/cms/wtrmln/libs/model.php @@ -19,16 +19,14 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); - -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; - -?> + +class Model +{ + function Model() + { + $this->url = URL::Instance(); + $this->db = DB::Instance(); + } +} + +?> \ No newline at end of file diff --git a/cms/index.php b/cms/wtrmln/libs/plugin.php old mode 100755 new mode 100644 similarity index 81% copy from cms/index.php copy to cms/wtrmln/libs/plugin.php index 29954da..c58956b --- a/cms/index.php +++ b/cms/wtrmln/libs/plugin.php @@ -19,16 +19,14 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); - -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; - -?> + +class Plugin +{ + function Plugin() + { + $this->db = DB::Instance(); + $this->load = new Loader(); + } +} + +?> \ No newline at end of file diff --git a/cms/wtrmln/libs/plugins_handle.php b/cms/wtrmln/libs/plugins_handle.php new file mode 100644 index 0000000..75f7755 --- /dev/null +++ b/cms/wtrmln/libs/plugins_handle.php @@ -0,0 +1,182 @@ +data[$module]; + } + else + { + return $instance->data[$module][$key]; + } + } + + /* + * public void putData(string $module, string $text) + * + * Wstawia w przedziale $module nową komórkę + * o treści $text [w rzeczywistości odpala putDataNormal] + * + *********************** + * + * public void putData(string $module, string $key, string $text) + * + * Wstawia w przedziale $module nową komórkę + * o nazwie $key, o treści $text [w rzeczywistości odpala putDataAssoc] + * + */ + + public function putData($module, $key, $text = NULL) + { + $instance = self::Instance(); + + if($text == NULL) + { + $text = $key; // żeby nie pomieszać + + $instance->putDataNormal($module, $text); + } + else + { + $instance->putDataAssoc($module, $key, $text); + } + } + + /* + * public void deleteData(string $module, string $key) + * + * Usuwa komórkę $module:$key + * + */ + + public function deleteData($module, $key) + { + $instance = self::Instance(); + + unset($instance->data[$module][$key]); + } + + /* + * public void insertData(string $module, string $key, string $text) + * + * Dodaje $text do $module:$key + * + */ + + public function insertData($module, $key, $text) + { + $instance = self::Instance(); + + $instance->data[$module][$key] .= $text; + } + + /* + * public static PluginsHandle Instance() + * + * Singleton... (zwraca instancję tej klasy) + * + */ + + public static function Instance() + { + if(!self::$instance instanceof self) + self::$instance = new self; + return self::$instance; + } + + ## + ## private + ## + + /* + * private void putDataNormal(string $module, string $text) + * + * Wstawia w przedziale $module nową komórkę + * o treści $text + * + * Wywoływane poprzez putData(...) + * + */ + + private function putDataNormal($module, $text) + { + $instance = self::Instance(); + + $instance->data[$module][] = $text; + } + + /* + * private void putDataAssoc(string $module, string $key, string $text) + * + * Wstawia w przedziale $module nową komórkę + * o nazwie $key, o treści $text + * + * Wywoływane poprzez putData(...) + * + */ + + private function putDataAssoc($module, $key, $text) + { + $instance = self::Instance(); + + $instance->data[$module][$key] = $text; + } +} + +?> diff --git a/cms/wtrmln/libs/url.php b/cms/wtrmln/libs/url.php new file mode 100644 index 0000000..5ff0b5d --- /dev/null +++ b/cms/wtrmln/libs/url.php @@ -0,0 +1,247 @@ + int + + //pozwalam tylko na takie znaki: + + if($ch >= 48 && $ch <= 57) // 0-9 + $segment2 .= chr($ch); + if($ch >= 65 && $ch <= 90) // A-Z + $segment2 .= chr($ch); + if($ch >= 97 && $ch <= 122) // a-z + $segment2 .= chr($ch); + if($ch == 43) // + + $segment2 .= chr($ch); + if($ch == 45) // - + $segment2 .= chr($ch); + if($ch == 46) // . + $segment2 .= chr($ch); + if($ch == 95) // _ + $segment2 .= chr($ch); + } + // uważam, czy ktoś nie zrobił wielokrotnych slashów + if(!empty($segment2)) + $URL2[] = $segment2; + } + + + // jeśli brak nazwy kontrolera + // wczytaj domyślny. + + + if(isset($URL2[0])) + { + //$t[0] = clean_segments($URL2[0]); + + //czyszczenie + + $seg = strtolower($URL2[0]); // małe literki + $seg = str_split($seg); + $seg_n = NULL; + foreach($seg as $ch) + { + $ch = ord($ch); + + if($ch >= 97 && $ch <= 122) // a-z, A-Z + $seg_n .= chr($ch); + if($ch >= 48 && $ch <= 57) // 0-9 + $seg_n .= chr($ch); + if($ch == 95) // _ + $seg_n .= chr($ch); + } + $t[0] = $seg_n; + } + else + { + $t[0] = $default; + } + + // jeśli brak nazwy metody + // wczytaj index + + if(isset($URL2[1])) + { + //$t[1] = clean_segments($URL2[1]); + + //czyszczenie + + $seg_n = NULL; + $seg = strtolower($URL2[1]); + $seg = str_split($seg); + foreach($seg as $ch) + { + $ch = ord($ch); + if($ch >= 97 && $ch <= 122) // a-z, A-Z + $seg_n .= chr($ch); + if($ch >= 48 && $ch <= 57) // 0-9 + $seg_n .= chr($ch); + if($ch == 95) // _ + $seg_n .= chr($ch); + } + $t[1] = $seg_n; + } + else + { + $t[1] = 'index'; + } + + // jeśli wpisano więcej niż dwa człony + // usuń dwa pierwsze, a jeśli nie + // oczyść tablicę + + if(count($URL2) > 2) + { + $URL2 = array_splice($URL2, -(count($URL2)-2)); + } + else + { + $URL2 = array(); + } + + // złączenie tablic + + $URL2 = array_merge($t,$URL2); + + self::$segments = $URL2; + + + $this->class = self::$segments[0]; + $this->method = self::$segments[1]; + } + + /* + * public mixed segment(int $ID) + * + * Zwraca treść danego [$ID] segmentu + * + */ + + public function segment($ID) + { + if(isset(self::$segments[$ID-1])) + { + return self::$segments[$ID-1]; + } + else + { + return FALSE; + } + } + + /* + * public int segments() + * + * Zwraca ilość segmentów + * + */ + + public function segments() + { + return count(self::$segments); + } + + /* + * public static object Instance() + * + * Singleton... + * + */ + public static function Instance() + { + if(!self::$instance instanceof self) + self::$instance = new self; + return self::$instance; + } + +} +?> diff --git a/cms/wtrmln/libs/viewtags.php b/cms/wtrmln/libs/viewtags.php new file mode 100644 index 0000000..8455062 --- /dev/null +++ b/cms/wtrmln/libs/viewtags.php @@ -0,0 +1,103 @@ +#', array('ViewTags', 'tag_variable'), $data); + + $data = preg_replace_callback('#]+)>#', array('ViewTags', 'tag_foreach'), $data); + $data = preg_replace("##", "", $data); + + $data = preg_replace_callback('#]+)>#', array('ViewTags', 'tag_if'), $data); + $data = preg_replace("##", "", $data); + + $data = preg_replace('##', '', $data); + + return $data; + } + + /* + * private string tag_variable(string[2] $data) + * + * obsługuje "wyświetlanie zmiennych" tzn. zamienia przykładowe <$nazwa_zmiennej> + * na + * Nazwa zmiennej jest brana z drugiego elementu $data. Pierwszy jest + * niewykorzystywany. Istnieje on ze względu na sposób działania funkcji + * preg_replace_callback. + */ + + private function tag_variable($data) + { + return ''; + } + + /* + * private string tag_foreach(string[2] $data) + * + * obsługuje foreach tzn. zamienia przykładowe + * na + * Zawartość foreach (np. "$foo as $bar") jest brana z drugiego elementu $data. + * Pierwszy jest niewykorzystywany. Istnieje on ze względu na sposób działania + * funkcji preg_replace_callback. + */ + + private function tag_foreach($data) + { + return ''; + } + + /* + * private string tag_if(string[2] $data) + * + * obsługuje warunki tzn. zamienia przykładowe + * na + * Treść warunku jest brana z drugiego elementu $data. Pierwszy jest + * niewykorzystywany. Istnieje on ze względu na sposób działania funkcji + * preg_replace_callback. + */ + + private function tag_if($data) + { + return ''; + } +} + +?> \ No newline at end of file diff --git a/cms/wtrmln/modules/admin/hi.php b/cms/wtrmln/modules/admin/hi.php new file mode 100644 index 0000000..b689cf4 --- /dev/null +++ b/cms/wtrmln/modules/admin/hi.php @@ -0,0 +1,30 @@ +render->header('Panel Admina'); + echo 'siema, elo! test'; + + $tabelka = + '==NAZWA TABELI== + {:PP=50px:DP=100px:TP:CP=20%:} + [{$(PP)|$(PD)|$(PT)|$(PC)}] + {$(DP)=25%|$(DD)|$(DT)=255%}'; + + echo $this->render->paTable($tabelka, array( + 'pp' => 'KOM1', + 'pd' => 'KOM2', + 'pt' => 'KOM3', + 'pc' => 'KOM4', + 'dp' => 'KOMA', + 'dd' => 'KOMB', + 'dt' => 'KOMC', )); + } + } +?> \ No newline at end of file diff --git a/cms/wtrmln/modules/admin/index.html b/cms/wtrmln/modules/admin/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/index.php b/cms/wtrmln/modules/admin/logout.php old mode 100755 new mode 100644 similarity index 66% copy from cms/index.php copy to cms/wtrmln/modules/admin/logout.php index 29954da..dcea357 --- a/cms/index.php +++ b/cms/wtrmln/modules/admin/logout.php @@ -19,16 +19,22 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; - -?> + class Logout extends AdminModule + { + function Logout() + { + parent::AdminModule(); + } + + function index() + { + $_SESSION['WTRMLN_ADMIN_LOGGED_IN'] = '*****'; + $_SESSION['WTRMLN_ADMIN_LOGIN'] = '*********'; + $_SESSION['WTRMLN_ADMIN_PASS'] = '**********'; + + header('Location: ' . WTRMLN_ADMIN . 'login.php'); + exit; + } + } +?> \ No newline at end of file diff --git a/cms/wtrmln/modules/admin/pages.php b/cms/wtrmln/modules/admin/pages.php new file mode 100644 index 0000000..7e8f2ba --- /dev/null +++ b/cms/wtrmln/modules/admin/pages.php @@ -0,0 +1,19 @@ +render->header('Strony własne'); + + $pages = $this->db->query("SELECT * FROM `pages`"); + + + echo 'tutaj tabelki etc.'; + } + } +?> \ No newline at end of file diff --git a/cms/index.php b/cms/wtrmln/modules/controllers/admin.php old mode 100755 new mode 100644 similarity index 81% copy from cms/index.php copy to cms/wtrmln/modules/controllers/admin.php index 29954da..801a2ac --- a/cms/index.php +++ b/cms/wtrmln/modules/controllers/admin.php @@ -19,16 +19,17 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); - -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; +class Admin extends Controller +{ + function Admin() + { + parent::Controller(); + } + + function Index() + { + header('Location: ' . WTRMLN_CMSURL . 'admin/index.php'); + } +} ?> diff --git a/cms/wtrmln/modules/controllers/index.html b/cms/wtrmln/modules/controllers/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/modules/controllers/login.php b/cms/wtrmln/modules/controllers/login.php new file mode 100644 index 0000000..1383d56 --- /dev/null +++ b/cms/wtrmln/modules/controllers/login.php @@ -0,0 +1,82 @@ +User = new User(); + parent::Controller(); + } + + /* + * stronka z formularzem logowania + */ + + function Index() + { + setH1('Logowanie'); + + $this->addMeta(''); + + echo $this->load->view('login_form'); + } + + /* + * samo logowanie + */ + + function Submit() + { + $login = $_POST['login']; + $pass = $_POST['password']; + $autologin = $_POST['autologin']; + + $this->User->Login($login, $pass, ($autologin == 'on' ? TRUE : FALSE)); + + //TODO + } + + /* + * formularz przysłania nowego hasła + */ + + function SendNewPassword() + { + setH1('Formularz wysyłania nowego hasła'); + + $this->addMeta(''); + + echo $this->load->view('login_sendnewpassword'); + } + + /* + * przysyłanie nowego hasła (walidacja itd.) + */ + + function SendNewPasswordSubmit() + { + //TODO + } +} +?> diff --git a/cms/wtrmln/modules/controllers/pages.php b/cms/wtrmln/modules/controllers/pages.php new file mode 100644 index 0000000..c858c6a --- /dev/null +++ b/cms/wtrmln/modules/controllers/pages.php @@ -0,0 +1,78 @@ +load->model('Pages'); + + $data = $Pages->getData($page); + + if($data->num_rows() > 0) + { + $data = $data->to_obj(); + setH1($data->title); + + $content = $data->content; + + // w razie gdyby nie można było używać ' . $content); + + } + else + { + $this->e404(); + } + } + + function e404() + { + setH1('Błąd 404'); + echo 'Błąd czterysta cztery - przykro mnie bardzo :P'; + } +} +?> \ No newline at end of file diff --git a/cms/wtrmln/modules/controllers/test.php b/cms/wtrmln/modules/controllers/test.php new file mode 100644 index 0000000..90b4485 --- /dev/null +++ b/cms/wtrmln/modules/controllers/test.php @@ -0,0 +1,63 @@ +Panel Admina'; + + echo '

Witaj! Oto jest okrojona i testowa wersja Watermelon CMS-a :) Więcej bajerów wkrótce ;)

'; + + echo '

Do zobaczenia w tej wersji masz:

'; + + echo ''; + + echo '

Watermelon CMS 1.0 pre-alpha2 [Codename: Ogór]

'; + + echo '

Zamiast Lorem Ipsum

'; + + echo '

Алексей Федорович Карамазов был вовсе необразованный, и положил, еще продолжались его приезда. Всего вероятнее, что ты хворый, думаю, что оно аль забыл? Не знаю, но и романа в кресло и неотразимо повлекло его мигом вошел в этом помещике как ребенок всё это вздор, и даже, знаете, что старцем его давние споры с намерением рассмешить и спрашивают, что Федору Павловичу. Петр Александрович Миусов, обращаясь к народу. Толпа затеснилась к митрополиту Платону спорить о Мите, то сейчас же последнее надеюсь. Ум-то у тебя же лазеечка к причастию-то? Допустили. Боюсь; помирать боюсь. Старец уселся на другой раз, когда произносил: Не чудеса склоняют реалиста никогда не умрет с своим воспитанием и плачут от ученого атеиста.

'; + + echo '

W innej wersji...

'; + + echo '

Drogi Marszałku, Wysoka Izbo. PKB rośnie. Różnorakie i rozwijanie struktur pomaga w wypracowaniu obecnej sytuacji. Praktyka dnia codziennego dowodzi, że rozszerzenie bazy o nowe rekordy pociąga za sobą proces wdrożenia i realizacji dalszych poczynań. Już nie zaś teorię, okazuje się iż usprawnienie systemu finansowego umożliwia w większym stopniu tworzenie postaw uczestników wobec zadań stanowionych przez organizację. Takowe informacje są tajne, nie trzeba udowadniać, ponieważ usprawnienie systemu rozszerza nam efekt postaw uczestników wobec zadań stanowionych przez organizację. Różnorakie i koledzy, zmiana przestarzałego systemu powszechnego uczestnictwa.

'; + + echo '

Trzeba naprawdę wiele wiedzieć, żeby wiedzieć jak mało się wie.

'; + + echo '

Nikt Ktoś kiedyśtam mądrze powiedział nic nie powiedziałem.

'; + } +} +?> \ No newline at end of file diff --git a/cms/index.php b/cms/wtrmln/modules/controllers/test/one.php old mode 100755 new mode 100644 similarity index 78% copy from cms/index.php copy to cms/wtrmln/modules/controllers/test/one.php index 29954da..5bfd3e3 --- a/cms/index.php +++ b/cms/wtrmln/modules/controllers/test/one.php @@ -19,16 +19,19 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; - -?> +class Test_One extends Controller +{ + function Test_One() + { + parent::Controller(); + } + + function Index() + { + SetH1('TESTTYYY 1'); + + echo 'elo on controller test_one (test/one.php)'; + } +} +?> \ No newline at end of file diff --git a/cms/wtrmln/modules/index.html b/cms/wtrmln/modules/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/modules/models/index.html b/cms/wtrmln/modules/models/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/index.php b/cms/wtrmln/modules/models/model_pages.php old mode 100755 new mode 100644 similarity index 66% copy from cms/index.php copy to cms/wtrmln/modules/models/model_pages.php index 29954da..8ffdc22 --- a/cms/index.php +++ b/cms/wtrmln/modules/models/model_pages.php @@ -19,16 +19,25 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; - -?> +class Model_Pages extends Model +{ + public function Model_Pages() + { + parent::Model(); + } + + /* + * public DBresult GetData(string $pagename) + * + * zwraca dane page'a + */ + + public function GetData($pagename) + { + $pagename = mysql_real_escape_string($pagename); + + return $this->db->query("SELECT `content`, `title` FROM `__pages` WHERE `name` = '$pagename'"); + } +} +?> \ No newline at end of file diff --git a/cms/index.php b/cms/wtrmln/modules/models/model_user.php old mode 100755 new mode 100644 similarity index 65% copy from cms/index.php copy to cms/wtrmln/modules/models/model_user.php index 29954da..587c041 --- a/cms/index.php +++ b/cms/wtrmln/modules/models/model_user.php @@ -19,16 +19,26 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); - -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; - -?> + +class Model_User extends Model +{ + public function Model_User() + { + parent::Model(); + } + + public function HelloWorld() + { + echo 'hi people.'; + } + + public function LoginUserData($login) + { + $login = mysql_real_escape_string($login); + + return $this->db->query("SELECT `password`, `hashalgo`, `salt` FROM `__users` ". + "WHERE `nick` = '%1'", $login); + } +} + +?> \ No newline at end of file diff --git a/cms/wtrmln/modules/plugins/index.html b/cms/wtrmln/modules/plugins/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/modules/plugins/user.php b/cms/wtrmln/modules/plugins/user.php new file mode 100644 index 0000000..b7b8bfe --- /dev/null +++ b/cms/wtrmln/modules/plugins/user.php @@ -0,0 +1,131 @@ +User = $this->load->model('user'); + } + + /* + * public bool Login(string $user, string $password, bool $autologin) + * + * Loguje użytkownika. Zwraca true, jeśli logowanie wypadło pomyślnie, w + * przeciwnym wypadku zwraca false. + * + * string $user - Nazwa użytkownika + * string $password - Hasło użytkownika (w czystej postaci) + * bool $autologin - Zalogować usera automatycznie przy każdej wizycie? + * TRUE - Tak, loguj mnie automatycznie + * FALSE - Nie loguj mnie automatycznie! + */ + + public function Login($user, $password, $autologin) + { + // Walidacja wprowadzonych danych + + if(empty($user)) + { + $errors[] = 'Pole login musi być wypełnione.'; + } + + if(empty($password)) + { + $errors[] = 'Pole hasło musi być wypełnione.'; + } + + if(isset($errors)) + { + setH1('Błąd logowania'); + + echo $this->load->view('login_loginerrors', array('errors' => $errors)); + return false; + } + + // sprawdzamy, czy user istnieje + + $userdata = $this->User->LoginUserData($user); + + if($userdata->num_rows() == 0) + { + setH1('Błąd logowania'); + + $errors[] = 'Użytkownik ' . $user . ' nie istnieje.'; + + echo $this->load->view('login_loginerrors', array('errors' => $errors)); + return false; + } + + $userdata = $userdata->to_obj(); + + var_dump(intval($userdata->hashalgo)); + + if($userdata->password != strHash($password . $userdata->salt, intval($userdata->hashalgo))) + { + setH1('Błąd logowania'); + + $errors[] = 'Niepoprawne hasło.'; + + echo $this->load->view('login_loginerrors', array('errors' => $errors)); + return false; + } + + echo 'bez błędów :P'; + + //TODO + } + + public function Register($user, $password, $password2, $email, $email2, $data) + { + //TODO + } + + public function GetUserData($dataname) + { + //TODO + } + + public function Logout() + { + //TODO + } + + // TODO +} + +?> \ No newline at end of file diff --git a/cms/wtrmln/modules/views/index.html b/cms/wtrmln/modules/views/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/modules/views/login/form.php b/cms/wtrmln/modules/views/login/form.php new file mode 100644 index 0000000..3c7d324 --- /dev/null +++ b/cms/wtrmln/modules/views/login/form.php @@ -0,0 +1,58 @@ + +
+
+
+ Zaloguj się + + + + +

+ + + + +

+ + + + +
+
+
+ Inne + + + + +

+ + Zapomniałem hasła! + +
+ + Nie mam jeszcze konta! + +
+
diff --git a/cms/wtrmln/modules/views/login/index.html b/cms/wtrmln/modules/views/login/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/index.php b/cms/wtrmln/modules/views/login/loginerrors.php old mode 100755 new mode 100644 similarity index 77% copy from cms/index.php copy to cms/wtrmln/modules/views/login/loginerrors.php index 29954da..4fd564a --- a/cms/index.php +++ b/cms/wtrmln/modules/views/login/loginerrors.php @@ -19,16 +19,18 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); - -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; - ?> + +
+ Podczas logowania napotkano problemy: + +
    + +
  • <$error>
  • +
    +
+ + + To się NIE wyświetli :P + +
\ No newline at end of file diff --git a/cms/index.php b/cms/wtrmln/modules/views/login/sendnewpassword.php old mode 100755 new mode 100644 similarity index 60% copy from cms/index.php copy to cms/wtrmln/modules/views/login/sendnewpassword.php index 29954da..eb58a9c --- a/cms/index.php +++ b/cms/wtrmln/modules/views/login/sendnewpassword.php @@ -19,16 +19,23 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ********************************************************************/ - -$_w_startTime = microtime(); -session_start(); -ob_start(); -error_reporting(E_ALL ^ E_NOTICE); - -//define('NOMENU', ''); - -include 'config.php'; - -include WTRMLN_CMSPATH . 'system.php'; - ?> +
+
+ Odzyskaj hasło + + + + +

+ + + + +

+ + + + +
+
diff --git a/cms/wtrmln/system.php b/cms/wtrmln/system.php new file mode 100644 index 0000000..1fce5e6 --- /dev/null +++ b/cms/wtrmln/system.php @@ -0,0 +1,249 @@ + + Błąd krytyczny uniemożliwiający kontynuowanie.
Debug: ' . $text . ''); +} + +class Watermelon +{ + /* + * public static array $metaSrc + * + * dane meta (tagi z sekcji ) + * + * $metaSrc = array(string $head_element[, $head_element[, ... ]]) + * $head_element - pojedynczy element do umieszczenia w sekcji + */ + public static $metaSrc = array(); + + /* + * private URL $url + * + * instancja klasy URL + */ + private $url; + + /* + * public void Watermelon(string $dbHost, string $dbUser, string $dbPass, string $dbName, + * string $dbPrefix, array $autoload, array $metaSrc) + * + * konstuktor. Odpala najważniejsze biblioteki, odpala odpowiedni kontroler + * i generuje stronę. + * + * string $dbHost - host bazy danych + * string $dbUser - użytkownik bazy danych + * string $dbPass - hasło do bazy danych + * string $dbName - nazwa bazy danych + * string $dbPrefix - prefiks do tabel + * array $autoload - pluginy i kod związany z nimi do automatycznego załadowania + * array $metaSrc - dane do wstawienia w sekcji + * + * $autoload = array(array(string $plugin_name, string $eval)[, array(string $plugin_name, string $eval)[, ... ]] + * $plugin_name - nazwa plugina + * $eval - związany z tym pluginem kod do wykonania + * + * $metaSrc = array(string $head_element[, $head_element[, ... ]]) + * $head_element - pojedynczy element do umieszczenia w sekcji + */ + + public function Watermelon($dbHost, $dbUser, $dbPass, $dbName, $dbPrefix, $autoload, array $metaSrc) + { + $this->url = new URL(); + $db = new DB(); + $db->connect($dbHost, $dbUser, $dbPass, $dbName, $dbPrefix); + + $this->LoadPlugins($autoload); + + self::$metaSrc = $metaSrc; + + $content = $this->loadController(); + + $this->generatePage($content); + } + + /* + * private void loadController() + * + * ładuje odpowiedni kontroler (wykonuje pracę Front Controllera) + */ + + private function loadController() + { + // zamieniamy _ na /, tak aby można było robić kontrolery w podfolderach + + $_w_controllerPath = str_replace('_', '/', $this->url->class); + + $_w_controllerPath = WTRMLN_CONTROLLERS . $_w_controllerPath . '.php'; + + // sprawdzanie, czy istnieje plik controllera + + if(file_exists($_w_controllerPath)) + { + include $_w_controllerPath; + + array_shift(URL::$segments); + array_shift(URL::$segments); + } + else + { + //jeśli nie można znaleźć kontrolera, niech Pages przejmie stery + include WTRMLN_CONTROLLERS . 'pages.php'; + + $_controller = new pages(); + + $this->url->method = 'index'; + $this->url->class = 'pages'; + } + + // sprawdzanie, czy istnieje klasa controllera + + if(class_exists($this->url->class)) + { + $_controller = new $this->url->class(); + } + else + { + panic('Nie moge znalesc klasy podanego controllera (' . $this->url->class . ')'); + } + + // sprawdzanie czy istnieje dana funkcja składowa controllera. + + if(!method_exists($_controller, $this->url->method)) + { + panic('Nie moge znalesc podanej funkcji składowej controllera (' . $this->url->method . ')'); + } + + // przystepujemy do roboty + + $_controller->{$this->url->method}(); + + $content = ob_get_contents(); //wyciagamy dane z bufora wyjścia + @ob_end_clean(); + + return $content; + } + + /* + * private void LoadPlugins(array $plugins) + * + * Ładuje pluginy i wykonuje kod związany z tymi pluginami + * + * $plugins = array(array(string $plugin_name, string $eval)[, array(string $plugin_name, string $eval)[, ... ]] + * $plugin_name - nazwa plugina + * $eval - związany z tym pluginem kod do wykonania + */ + + private function LoadPlugins(array $plugins) + { + foreach($plugins as $plugin) + { + list($plugin_name, $eval) = $plugin; + + if(file_exists(WTRMLN_PLUGINS . $plugin_name . '.php')) + { + include(WTRMLN_PLUGINS . $plugin_name . '.php'); + + eval($eval); + } + } + } + + /* + * private void generatePage(string $content) + * + * ostatecznie generuje stronę (dodaje znaczniki do head, oczyszcza treść itd.) + * + * string $content - treść wygenerowana przez kontroler + */ + + private function generatePage($content) + { + // umożliwiamy w prosty sposób tworzenie ścieżek do podstron + + $content = str_replace('href="$/', 'href="' . WTRMLN_SITEURL, $content); + $content = str_replace('action="$/', 'action="' . WTRMLN_SITEURL, $content); + + // preparujemy zawartość :) + + $siteTitle = (defined('WTRMLN_H1') ? WTRMLN_H1 . ' » ' : '') . WTRMLN_SITENAME; + + // wyciągamy metaSrc + + $metaSrc = Watermelon::$metaSrc; + + // żeby array_unshift się nie czepiał, + // gdyby wcześniej nie było żadnych elementów + + if(!$metaSrc) + { + $metaSrc = array(); + } + + // wsadzamy na początek tablicy <title> + + array_unshift($metaSrc, '<title>' . $siteTitle . ''); + + // zmieniamy nazwy, żeby skin.php wiedział odzochodzi + + $_w_metaSrc = $metaSrc; + $_w_content = $content; + + // odpalamy skina + + include WTRMLN_THEMEPATH . 'skin.php'; + } +} + +new Watermelon($_w_dbHost, $_w_dbUser, $_w_dbPass, $_w_dbName, $_w_dbPrefix, $_w_autoload, $_w_metaSrc); + +?> diff --git a/cms/wtrmln/themes/index.html b/cms/wtrmln/themes/index.html new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/themes/simple/COPYING b/cms/wtrmln/themes/simple/COPYING new file mode 100644 index 0000000..871fa15 --- /dev/null +++ b/cms/wtrmln/themes/simple/COPYING @@ -0,0 +1,281 @@ + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, 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 diff --git a/cms/wtrmln/themes/simple/COPYING_PL b/cms/wtrmln/themes/simple/COPYING_PL new file mode 100644 index 0000000..65ff57d --- /dev/null +++ b/cms/wtrmln/themes/simple/COPYING_PL @@ -0,0 +1,168 @@ +Powszechna Licencja Publiczna GNU +Tłumaczenie GNU General Public License + + +Uwaga! +To jest nieoficjalne tłumaczenie Powszechnej Licencji Publicznej GNU na język polski. Nie zostało opublikowane przez Free Software Foundation i pod względem prawnym nie stanowi warunków rozpowszechniania oprogramowania stosującego GNU GPL -- ustanawia je wyłącznie oryginalny angielski tekst licencji GNU GPL. Jednak mamy nadzieję, że pomoże ono lepiej zrozumieć Licencję osobom mówiącym po polsku. + +Note! +This is an unofficial translation of the GNU General Public License into Polish. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL--only the original English text of the GNU GPL does that. However, we hope that this translation will help Polish speakers understand the GNU GPL better. + + + + +Powszechna Licencja Publiczna GNU +Wersja 2, czerwiec 1991 +Copyright © 1989, 1991 Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139 USA. + +Zezwala się na kopiowanie i rozpowszechnianie wiernych kopii niniejszego +dokumentu licencyjnego, jednak bez prawa wprowadzania zmian. +Preambuła + +Większość licencji na oprogramowanie pomyślana jest po to, aby odebrać użytkownikowi możliwość swobodnego udostępniania innym i zmieniania danego software'u. Natomiast w wypadku Powszechnej Licencji Publicznej GNU (GNU General Public License, GPL) celem jest zagwarantowanie użytkownikowi swobody udostępniania i zmieniania tego wolnego oprogramowania, a więc danie pewności, iż oprogramowanie jest wolno dostępne dla wszystkich użytkowników. Niniejsza Powszechna Licencja Publiczna dotyczy większości oprogramowania wydawanego przez Fundację Wolnego Oprogramowania (Free Software Foundation) oraz wszelkich innych programów, których autorzy zobowiązują się do jej stosowania. (Niektóre rodzaje oprogramowania wydawanego przez Fundację objęte są Powszechną Licencją Publiczną GNU dla Bibliotek, GNU Library General Public License). Użytkownik może stosować ją również do swoich programów. + +Mówiąc o wolnym oprogramowaniu mamy na myśli swobodę, a nie cenę. Nasze Powszechne Licencje Publiczne wprowadzono po to, aby zapewnić Państwu swobodę rozpowszechniania kopii tego oprogramowania (i - jeśli ktoś chce - pobierania za tę usługę opłaty), jak również aby udostępnić kod źródłowy oraz umożliwić dokonywanie zmian tego oprogramowania lub wykorzystywania jego fragmentów w nowych, wolnych programach. Nie bez znaczenia jest też sama możliwość dotarcia do Państwa z informacją o wszystkich tych udogodnieniach. + +W celu ochrony praw użytkownika jesteśmy zmuszeni wprowadzać ograniczenia zabraniające komukolwiek kwestionowanie jego praw albo sugerowanie rezygnacji z tych praw. Ograniczenia te sprowadzają się do pewnych dla Państwa obowiązków w przypadku rozpowszechniania przez Was kopii naszego oprogramowania bądź dokonywania w nim zmian. + +Na przykład, jeśli rozprowadzacie Państwo kopie takiego programu, niezależnie czy gratisowo, czy za opłatą, musicie Państwo odbiorcy udzielić wszelkich tych praw, jakie mieliście sami. Musicie zapewnić mu również otrzymanie kodu źródłowego (lub możliwość otrzymania) oraz przedstawić niniejsze Warunki, aby mógł on poznać swoje prawa. + +Ochrona Państwa praw przebiega w dwóch etapach: +zastrzegamy prawo własności autorskiej do oprogramowania, +oferujemy Państwu niniejszą licencję, która daje Wam sankcjonowane prawem zezwolenie na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego oprogramowania. + +Ponadto dla ochrony tak autora, jak i naszej, pragniemy mieć pewność, że każdy zrozumie, iż na niniejsze wolne oprogramowanie nie udziela się gwarancji. W razie dokonania w nim przez kogoś modyfikacji i puszczenia dalej do obrotu, pragniemy, aby dalsi odbiorcy zdawali sobie sprawę z tego, że problemy wprowadzone przez inne osoby nie są wyrazem oryginalnych działań twórców. + +I rzecz ostatnia: każdemu wolnemu programowi stale zagrażają patenty na oprogramowanie. Naszym pragnieniem jest unikanie takiego niebezpieczeństwa, kiedy redystrybutorzy wolnego programu indywidualnie uzyskują prawa patentowe, nadając tym samym programowi charakter prawnie zastrzeżony. W celu zapobieżenia takim zjawiskom jednoznacznie wyjaśniliśmy, że każdy patent musi być wydawany albo dla swobodnego użytku przez wszystkich, albo nie wydawany wcale. + +Poniżej podajemy dokładne zasady i warunki kopiowania, rozpowszechniania i modyfikowania. + +Zasady i warunki kopiowania, rozpowszechniania i modyfikowania +0. +Niniejsza Licencja dotyczy programów i innych prac, na których umieszczona jest pochodząca od właściciela praw autorskich informacja, że dany program lub praca może być rozpowszechniana na warunkach niniejszej Powszechnej Licencji Publicznej. Używane poniżej słowo "Program" oznacza właśnie takie programy lub prace, zaś określenie "praca oparta na Programie" dotyczy albo Programu, albo pochodzącej od niego pracy w rozumieniu prawa autorskiego, to jest pracy zawierającej Program lub jego część dosłowną, bądź zmodyfikowaną i/lub przełożoną na inny język. (W dalszym ciągu niniejszego, pojęcie przekładu włącza się bez ograniczeń do terminu "modyfikacja"). Do każdego licencjobiorcy będziemy zwracać się "per Ty". + +Niniejsza Licencja nie obejmuje działań innych niż kopiowanie, rozprowadzanie i modyfikowanie - nie mieszczą się one w jej zakresie. Czynność używania Programu nie jest poddana ograniczeniom, a produkty uzyskane z Programu objęte są Licencją tylko wtedy, gdy ich treść stanowi pracę opartą na Programie (niezależnie od stworzenia jej przy użyciu Programu). To, czy fakt taki jest prawdą, zależy od tego, co dany Program wykonuje. + +1. +Możesz kopiować i rozprowadzać w dowolnych mediach wierne kopie kodu źródłowego Programu w otrzymanej formie pod warunkiem, że w widoczny sposób i odpowiednio podasz na każdej kopii właściwą informację o prawie autorskim i zrzeczenie się uprawnień z tytułu gwarancji; wszelkie napisy informacyjne na temat Licencji i faktu nieudzielania gwarancji musisz chronić przed uszkodzeniem, zaś wszystkim innym odbiorcom Programu musisz wraz z Programem wręczać egzemplarz niniejszej Licencji. + +Możesz pobierać opłatę za fizyczną czynność przekazania kopii i według własnej decyzji możesz za opłatą proponować ochronę gwarancyjną. + +2. +Możesz modyfikować swoją kopię czy kopie Programu oraz dowolne jego części, tworząc przez to pracę opartą na Programie, jak również kopiować i rozprowadzać takie modyfikacje i pracę na warunkach podanych w pkt.1 powyżej - pod warunkiem przestrzegania całości poniższych wymogów: + +a. +Musisz spowodować umieszczenie na zmodyfikowanych plikach widocznej informacji o tym, że dane pliki zostały przez ciebie zmienione, wraz z datą dokonania zmian. + +b. +Musisz doprowadzić do tego, aby każda rozpowszechniana lub publikowana przez ciebie praca, która w całości lub części zawiera Program, albo pochodzi od niego lub jego części, była w całości i bezpłatnie licencjonowana dla wszelkich stron trzecich na warunkach niniejszej Licencji. + +c. +Jeżeli zmodyfikowany program podczas korzystania z niego w normalnym trybie odczytuje polecenia interaktywnie, musisz spowodować, aby po uruchomieniu (użyty w interaktywny sposób w najzwyklejszym trybie), wydrukowywał on lub wyświetlał powiadomienie o odnośnym prawie autorskim i braku gwarancji (ewentualnie o zapewnianiu gwarancji przez ciebie), oraz o tym, że użytkownicy mogą redystrybuować ten program na niniejszych warunkach wraz z informacją, jak użytkownik może zapoznać się z treścią niniejszej Licencji. (Wyjątek: jeśli sam Program jest interaktywny, ale normalnie nie drukuje takiego powiadomienia, twoja praca oparta na nim też nie musi wydrukowywać takiego powiadomienia). + +Niniejsze wymogi odnoszą się do zmodyfikowanej pracy jako całości. Jeśli dające się ustalić sekcje danej pracy nie pochodzą od Programu i mogą być racjonalnie uważane za samodzielne i odrębne same w sobie, to niniejsza Licencja i jej warunki nie mają zastosowania do takich sekcji przy rozprowadzaniu ich przez ciebie jako odrębne prace. Jeśli jednak rozprowadzasz je jako część całości, będącej pracą opartą na Programie, rozpowszechnianie tej całości musi być dokonywane na warunkach niniejszej Licencji, której zezwolenia dla innych licencjobiorców rozciągają się w całej szerokości na tę całość, a tym samym i na każdą indywidualną jej część, niezależnie od jej autorstwa. + +Dlatego też intencją tego fragmentu nie jest roszczenie sobie praw albo podważanie twych praw do pracy napisanej w całości przez ciebie. Chodzi nam raczej o korzystanie z prawa kontrolowania dystrybucji pochodnych i zbiorowych prac opartych na Programie. + +I jeszcze jedno: samo tylko połączenie z Programem (lub z pracą opartą na Programie) innej pracy - nie opartej na Programie, w ramach wolumenu nośnika przechowywania lub dystrybucji, nie powoduje objęcia takiej pracy zakresem niniejszej Licencji. + +3. +Możesz kopiować i rozprowadzać Program (lub opartą na nim pracę - zgodnie z pkt.2 w kodzie wynikowym lub w formie wykonywalnej w myśl postanowień pkt.1 i 2 powyżej, pod warunkiem zrealizowania również poniższych wymogów: + +a. +Musisz dołączyć do niego odpowiadający mu, kompletny i możliwy do odczytania przez urządzenia cyfrowe kod źródłowy, który musi być rozpowszechniany na warunkach pkt.1 i 2 powyżej i na nośniku zwyczajowo używanym dla wzajemnej wymiany oprogramowania; lub + +b. +dołączyć do niego pisemną ofertę, ważną co najmniej 3 lata, przyznającą każdej stronie trzeciej - za opłatą nie przekraczającą twego kosztu fizycznego wykonywania dystrybucji źródła - kompletną, odczytywalną przez urządzenia cyfrowe kopię odpowiadającego mu kodu źródłowego, rozprowadzaną na warunkach pkt.1 i 2 powyżej, na nośniku zwyczajowo używanym do wzajemnej wymiany oprogramowania; lub + +c. +dołączyć do niego informację, jaką otrzymałeś na temat oferty rozprowadzania odpowiedniego kodu źródłowego. (Ta możliwość dozwolona jest tylko dla dystrybucji niehandlowej i jedynie wtedy, gdy otrzymałeś dany program w kodzie wynikowym lub formie wykonywalnej wraz z wymienioną ofertą - zgodnie z podpunktem "b" powyżej). + +Określenie kod źródłowy dla pracy oznacza formę pracy preferowaną dla wprowadzania do niej modyfikacji. Dla wykonanej pracy, kompletny kod źródłowy oznacza cały kod źródłowy wszystkich modułów, wszelkie sprzężone z nią pośredniczące pliki opisujące oraz zbiory komend stosowane do sterowania kompilacją i instalowaniem programów. Niemniej jednak, jako wyjątek specjalny, dystrybuowany (w formie źródłowej albo binarnej) kod źródłowy nie musi obejmować niczego, co jest normalnie rozprowadzane przy pomocy głównych komponentów (kompilator, jądro itd.) systemu operacyjnego, na którym pracuje część wykonywalna, o ile sam taki komponent towarzyszy tej części. + +Jeśli dystrybucja części wykonywalnej albo kodu wynikowego realizowana jest poprzez oferowanie dostępu do kopii z wyznaczonego miejsca, to oferowanie równoważnego dostępu dla kopiowania kodu źródłowego z tego samego miejsca liczy się jako rozpowszechnianie kodu źródłowego, nawet gdy strony trzecie nie są zmuszone do kopiowania źródła wraz z kodem wynikowym. + + +4. +Poza przypadkami jednoznacznie dozwolonymi w niniejszej Licencji, nie możesz kopiować, modyfikować, sublicencjonować ani rozpowszechniać Programu. We wszystkich pozostałych wypadkach, każda próba skopiowania, sublicencjonowania lub rozpowszechnienia Programu jest nieważna i powoduje automatyczne wygaśnięcie twoich praw z tytułu Licencji. Niemniej jednak, stronom, które już otrzymały od ciebie kopie albo prawa w ramach niniejszej Licencji, licencje nie wygasają tak długo, jak długo strony te w pełni stosują się do nich. + +5. +Nie musisz akceptować niniejszej Licencji, jeżeli jej nie podpisałeś. Niemniej jednak, nic innego nie zapewni ci zezwolenia na modyfikowanie lub rozprowadzanie Programu i pochodzących od niego prac. Działania takie są prawnie zabronione, jeżeli nie przyjmujesz niniejszej Licencji. Dlatego też, poprzez modyfikowanie bądź rozpowszechnianie Programu (lub pracy na nim opartej) dajesz wyraz swojej akceptacji dla Licencji i wszelkich jej postanowień i warunków dotyczących kopiowania, rozprowadzania i modyfikowania Programu lub opartych na nim prac. + +6. +W każdym przypadku redystrybucji przez ciebie Programu (albo opartej na nim pracy), odbiorca automatycznie otrzymuje od pierwotnego licencjodawcy licencję na kopiowanie, rozpowszechnianie i modyfikowanie Programu na niniejszych zasadach i warunkach. Na korzystanie przez odbiorcę z udzielonych w niniejszej Licencji praw nie możesz narzucać już dalszych ograniczeń. Nie jesteś stroną odpowiedzialną za kontrolę przestrzegania Licencji przez osoby trzecie. + +7. +Jeśli na skutek wyroku sądowego lub zarzutu naruszenia patentu, jak też z każdej innej przyczyny (nie ograniczonej do kwestii patentowych) zostaną narzucone na ciebie (niezależnie czy to mocą wyroku sądowego, umowy, czy w inny sposób) warunki sprzeczne z warunkami niniejszej Licencji, to nie zwalniają one ciebie z warunków Licencji. Jeśli nie możesz prowadzić dystrybucji tak, aby wypełniać jednocześnie swoje obowiązki z tytułu niniejszej Licencji i inne odnośne obowiązki, to w rezultacie nie możesz wcale rozprowadzać Programu. Na przykład, gdyby licencja patentowa nie zezwalała na wolną od opłat licencyjnych redystrybucję Programu przez wszystkie osoby, które otrzymały kopie bezpośrednio lub pośrednio od ciebie, to jedynym sposobem pozwalającym ci na przestrzeganie i licencji patentowej, i Licencji niniejszej, byłoby całkowite powstrzymanie się od jakiejkolwiek dystrybucji Programu. + +Jeżeli w jakichś szczególnych okolicznościach któryś fragment niniejszego punktu stałby się nieważny lub niewykonywalny, to intencją jest, aby znajdowała zastosowanie pozostała część punktu, a treść całego punktu była stosowana w pozostałych okolicznościach. + +Celem niniejszego punktu nie jest zachęcanie do naruszania patentów czy innych praw własności, albo też do podważania ich ważności; niniejszy punkt za swój jedyny cel ma ochronę integralności systemu rozpowszechniania wolnego oprogramowania, realizowanego za pomocą publicznych licencji. Wielu ludzi bezinteresownie wniosło swój wkład do stworzenia szerokiego zakresu oprogramowania upowszechnianego w tym systemie, mając zaufanie do konsekwentnego jego stosowania; wyłącznie do autora/ofiarodawcy należy decyzja, czy życzy on sobie rozprowadzania oprogramowania za pośrednictwem innego systemu i licencjobiorca nie może tego prawa wyboru ograniczać. + +Intencją niniejszego punktu jest jasne i wyraźne przedstawienie tego, co uważa się za skutki, jakie rodzi pozostała część niniejszej Licencji. + +8. +W przypadku, gdy dystrybucja i/lub używanie Programu w niektórych krajach poddane jest ograniczeniom patentowym lub zastrzeżeniom prawami autorskimi, początkowy posiadacz praw autorskich, który poddaje Program pod oddziaływanie niniejszej Licencji, może dodać wyraźnie zakreślone geograficzne ograniczenie rozpowszechniania wyłączające te kraje, dzięki czemu dystrybucja dozwolona będzie wyłącznie w krajach czy wśród krajów nie objętych takim wyłączeniem. W przypadku takim, niniejsza Licencja obejmuje dane ograniczenie tak, jakby było ono wpisane w jej treść. + +9. +W miarę potrzeby Fundacja Wolnego Oprogramowania może publikować poprawione i/lub nowe wersje Powszechnej Licencji Publicznej. Takie nowe wersje będą napisane w duchu podobnym do obecnej wersji, ale mogą różnić się w szczegółach poruszających nowe problemy czy zagadnienia. + +Każdej wersji nadaje się wyróżniający ją numer. Jeżeli Program podaje numer wersji niniejszej Licencji, odnoszący się do tej wersji i "wszelkich wersji następnych", masz do wyboru albo stosować się do postanowień i warunków tej wersji, albo którejkolwiek wersji późniejszej wydanej przez Fundację Wolnego Oprogramowania. O ile Program nie podaje numeru wersji niniejszej Licencji, możesz wybrać dowolną wersję kiedykolwiek opublikowaną przez Fundację. + +10. +Jeśli chcesz włączyć części Programu do innych wolnych programów, których warunki rozpowszechniania są inne, zwróć się pisemnie do autora z prośbą o pozwolenie. W przypadku oprogramowania objętego przez Fundację prawem autorskim, napisz do Fundacji; czasami czynimy od tego odstępstwa. W naszej decyzji kierujemy się dwoma celami: utrzymania wolnego statusu wszystkich pochodnych naszego wolnego oprogramowania oraz - generalnie - promowania współudziału i wielokrotnego stosowania oprogramowania. + +WYRÓB BEZ GWARANCJI + +11. +PONIEWAŻ PROGRAM JEST LICENCJONOWANY BEZPŁATNIE, NIE JEST OBJĘTY GWARANCJĄ W ZAKRESIE DOZWOLONYM PRZEZ OBOWIĄZUJĄCE PRZEPISY. O ILE NA PIŚMIE NIE STANOWI SIĘ INACZEJ, POSIADACZE PRAW AUTORSKICH I/LUB INNE STRONY ZAPEWNIAJĄ PROGRAM W STANIE, W JAKIM JEST ("JAK WIDAĆ") BEZ JAKIEJKOLWIEK GWARANCJI, ANI WYRAŹNEJ, ANI DOMYŚLNEJ, W TYM MIĘDZY INNYMI DOMYŚLNYCH GWARANCJI CO DO PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. CAŁOŚĆ RYZYKA W ZAKRESIE JAKOŚCI I SKUTECZNOŚCI DZIAŁANIA PROGRAMU PONOSISZ SAM. W RAZIE GDYBY PROGRAM OKAZAŁ SIĘ WADLIWY, PONOSISZ KOSZT CAŁEGO NIEZBĘDNEGO SERWISU, NAPRAWY I KORYGOWANIA. + +12. +O ILE OBOWIĄZUJĄCE PRAWO NIE STANOWI INACZEJ ALBO CZEGOŚ INNEGO NIE UZGODNIONO W FORMIE PISEMNEJ, ŻADEN POSIADACZ PRAW AUTORSKICH ANI INNA STRONA MODYFIKUJĄCA I/LUB REDYSTRYBUJĄCA PROGRAM ZGODNIE Z POWYŻSZYMI ZEZWOLENIAMI, W ŻADNYM WYPADKU NIE JEST ODPOWIEDZIALNA WOBEC CIEBIE ZA SZKODY, W TYM SZKODY OGÓLNE, SPECJALNE, UBOCZNE LUB SKUTKOWE, WYNIKŁE Z UŻYCIA BĄDŹ NIEMOŻLIWOŚCI UŻYCIA PROGRAMU (W TYM, MIĘDZY INNYMI, ZA UTRATĘ DANYCH LUB POWSTANIE DANYCH NIEDOKŁADNYCH, ALBO ZA STRATY PONIESIONE PRZEZ CIEBIE LUB STRONY TRZECIE, JAK TEŻ NIEDZIAŁANIE PROGRAMU Z INNYMI PROGRAMAMI), NAWET JEŚLI DANY POSIADACZ BĄDŹ INNA STRONA ZOSTALI POWIADOMIENI O MOŻLIWOŚCI POWSTANIA TAKICH SZKÓD. + +KONIEC ZASAD I WARUNKÓW +Jak stosować niniejsze Warunki do Twoich nowych programów + +Jeśli opracowujesz nowy program i chciałbyś, aby stał się on przydatny dla szerokiego ogółu, najlepszą drogą do osiągnięcia tego będzie nadanie twemu programowi charakteru wolnego oprogramowania, które każdy może redystrybuować i zmieniać na niniejszych warunkach. + +W tym celu do programu dołącz poniższe informacje. Bezpieczniej jest dołączyć je na początku każdego pliku źródłowego, dzięki czemu najskuteczniej można przekazać fakt nieistnienia gwarancji; każdy plik powinien przy tym nosić uwagę "copyright" i odnośnik, gdzie można znaleźć pełną informację. +nazwa programu i informacja, do czego on służy. +Copyright (C) 19../20.. nazwisko autora +Niniejszy program jest wolnym oprogramowaniem; możesz go +rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej +Licencji Publicznej GNU, wydanej przez Fundację Wolnego +Oprogramowania - według wersji 2-giej tej Licencji lub którejś +z późniejszych wersji. +Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on +użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej +gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH +ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna +Licencja Publiczna GNU. +Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz +Powszechnej Licencji Publicznej GNU (GNU General Public License); +jeśli nie - napisz do Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. +Podaj też informacje o sposobie kontaktowania się z tobą pocztą elektroniczną lub zwykłą. + +Jeśli dany program jest interaktywny, spraw, aby w momencie wchodzenia w tryb interaktywny wyświetlał on komunikat jak w poniższym przykładzie: +Gnomovision wersja 69, Copyright C 19.. nazwisko autora + +Gnomovision wydawany jest ABSOLUTNIE BEZ ŻADNEJ GWARANCJI - +w celu uzyskania dalszych szczegółów wpisz "show w". +To jest wolne oprogramowanie i mile widziane jest dalsze +rozpowszechnianie go przez ciebie na określonych warunkach - +w celu uzyskania bliższych szczegółów wpisz "show c". + +Powyższe hipotetyczne polecenia "show w" i "show c" winny powodować wyświetlenie odpowiednich części Powszechnej Licencji Publicznej. Oczywiście możesz używać innych poleceń niż "show w" i "show c"; mogą to być nawet kliknięcia myszą lub pozycje menu - co tylko sobie uznasz za stosowne. + +Powinieneś też poprosić swego pracodawcę (jeśli pracujesz jako programista) czy też swoją szkołę (jeśli jesteś uczniem), o podpisanie, w razie potrzeby, "Rezygnacji z praw autorskich" do programu. Poniżej podajemy przykład (zmień nazwy/nazwiska): +My, firma Jojodyne Sp. z o.o. niniejszym zrzekamy się +i rezygnujemy z wszelkich interesów prawnych w zakresie +praw autorskich do programu "Gnomovision" (który realizuje +następujące funkcje...), napisanego przez p.Jana Kowalskiego. + +Podpis: /-/ Gniewosław Wielkoważny + +Gniewosław Wielkoważny, Prezes...itp +Powszechna Licencja Publiczna nie zezwala na włączanie twego programu do programów prawnie zastrzeżonych. Jeśli twój program jest biblioteką podprogramów, możesz rozważyć, czy nie będzie korzystniej zezwolić na powiązanie prawnie zastrzeżonych aplikacji z biblioteką. Jeśli chciałbyś właśnie tego dokonać, zamiast niniejszej Licencji zastosuj Powszechną Licencję Publiczną GNU dla Bibliotek. \ No newline at end of file diff --git a/cms/wtrmln/themes/simple/index.php b/cms/wtrmln/themes/simple/index.php new file mode 100644 index 0000000..d41871e --- /dev/null +++ b/cms/wtrmln/themes/simple/index.php @@ -0,0 +1,39 @@ + + + + + + + + + +
+ +
+

+ +
+ +
+ + diff --git a/cms/wtrmln/themes/simple/skin.php b/cms/wtrmln/themes/simple/skin.php new file mode 100644 index 0000000..e4224c7 --- /dev/null +++ b/cms/wtrmln/themes/simple/skin.php @@ -0,0 +1,51 @@ +query("SELECT * FROM `menu`"); + + while($menu_e = $menus->to_obj()) + { + $menu .= '
' . $menu_e->menu_capt . '
' . $menu_e->menu_content . '
'; + } + + $menu = substr($menu, 0, -4); + + //przetwarzanie + + if (@ini_get('short_open_tag') === FALSE) + { + //jeśli nie można używać ' . $menu . 'queries(); +$zapytan = $zapytan . ' ' . generatePlFormOf($zapytan, 'zapytanie', 'zapytania', 'zapytań'); + +$siteheader = WTRMLN_SITENAME; + +include WTRMLN_THEMEPATH . 'index.php'; diff --git a/cms/wtrmln/themes/simple/style.css b/cms/wtrmln/themes/simple/style.css new file mode 100644 index 0000000..e7892d8 --- /dev/null +++ b/cms/wtrmln/themes/simple/style.css @@ -0,0 +1,162 @@ +/* "Radex's Homepage Layout - Simple" by Radex +/* email : radex_p [at] tlen [dot] pl +/* website : radex.i15.eu +/* +/* Copyright 2008 Radosław `radex` Pietruszewski +/* +/* +/* This program is free software; you can redistribute it and/or +/* modify it under the terms of the GNU General Public License +/* version 2 as published by the Free Software Foundation. +/* +/* 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. +********************************************************************/ + +/* Podstawowe elementy +********************************************************************/ +body,h1,h2,h3,h4,h5,h6 +{ + margin: 0; + padding: 0; +} + + +body +{ + background: #FAFAFA; +} + + +h1,.h1 +{ + font-weight: bold; + font-size: 1.5em; +} + + +/* Pozycjonowanie, ramki +********************************************************************/ + +.ramkar, .dr +{ + float:right; +} + +.ramkal, .dl +{ + float:left; +} + +.ramkac, .dc +{ + display: block; + margin-left: auto; + margin-right: auto; +} + +.tr +{ + text-align: right; +} + +.tl +{ + text-align: left; +} + +.tc +{ + text-align: center; +} + + +/* Struktura +********************************************************************/ + +#content +{ + background: #FFF; + margin-right: 250px; +} + +#footer +{ + background: #F0F6E6; + margin-right: 250px; + text-align: center; +} + + +#sidebar +{ + float: right; + overflow: hidden; + position: relative; + width: 250px; + background-color: #F0F6E6; +} + + +/* Header +********************************************************************/ + +#header +{ + width: 100%; + overflow: hidden; + background-color: #A1B4FF; +} + +#menu +{ + width:100%; + margin:0 auto; + position: absolute; + top: 40px; +} + + +#header #ha +{ + font-weight: bold; + font-size: 2em; + color: #FFF; +} + +#header ul li +{ + list-style-type: none; + float: left; + margin-right: 5px; +} + + +#header ul +{ + margin: 0; + padding: 0; + float: right; +} + + +#header ul a +{ + float: left; + background: #E3E8FB; + width: 100px; +} + + +#menu div +{ + width: 246px; + float: right; +} + diff --git a/cms/wtrmln/themes/wcmslay/COPYING b/cms/wtrmln/themes/wcmslay/COPYING new file mode 100644 index 0000000..871fa15 --- /dev/null +++ b/cms/wtrmln/themes/wcmslay/COPYING @@ -0,0 +1,281 @@ + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, 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 diff --git a/cms/wtrmln/themes/wcmslay/COPYING_PL b/cms/wtrmln/themes/wcmslay/COPYING_PL new file mode 100644 index 0000000..65ff57d --- /dev/null +++ b/cms/wtrmln/themes/wcmslay/COPYING_PL @@ -0,0 +1,168 @@ +Powszechna Licencja Publiczna GNU +Tłumaczenie GNU General Public License + + +Uwaga! +To jest nieoficjalne tłumaczenie Powszechnej Licencji Publicznej GNU na język polski. Nie zostało opublikowane przez Free Software Foundation i pod względem prawnym nie stanowi warunków rozpowszechniania oprogramowania stosującego GNU GPL -- ustanawia je wyłącznie oryginalny angielski tekst licencji GNU GPL. Jednak mamy nadzieję, że pomoże ono lepiej zrozumieć Licencję osobom mówiącym po polsku. + +Note! +This is an unofficial translation of the GNU General Public License into Polish. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL--only the original English text of the GNU GPL does that. However, we hope that this translation will help Polish speakers understand the GNU GPL better. + + + + +Powszechna Licencja Publiczna GNU +Wersja 2, czerwiec 1991 +Copyright © 1989, 1991 Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139 USA. + +Zezwala się na kopiowanie i rozpowszechnianie wiernych kopii niniejszego +dokumentu licencyjnego, jednak bez prawa wprowadzania zmian. +Preambuła + +Większość licencji na oprogramowanie pomyślana jest po to, aby odebrać użytkownikowi możliwość swobodnego udostępniania innym i zmieniania danego software'u. Natomiast w wypadku Powszechnej Licencji Publicznej GNU (GNU General Public License, GPL) celem jest zagwarantowanie użytkownikowi swobody udostępniania i zmieniania tego wolnego oprogramowania, a więc danie pewności, iż oprogramowanie jest wolno dostępne dla wszystkich użytkowników. Niniejsza Powszechna Licencja Publiczna dotyczy większości oprogramowania wydawanego przez Fundację Wolnego Oprogramowania (Free Software Foundation) oraz wszelkich innych programów, których autorzy zobowiązują się do jej stosowania. (Niektóre rodzaje oprogramowania wydawanego przez Fundację objęte są Powszechną Licencją Publiczną GNU dla Bibliotek, GNU Library General Public License). Użytkownik może stosować ją również do swoich programów. + +Mówiąc o wolnym oprogramowaniu mamy na myśli swobodę, a nie cenę. Nasze Powszechne Licencje Publiczne wprowadzono po to, aby zapewnić Państwu swobodę rozpowszechniania kopii tego oprogramowania (i - jeśli ktoś chce - pobierania za tę usługę opłaty), jak również aby udostępnić kod źródłowy oraz umożliwić dokonywanie zmian tego oprogramowania lub wykorzystywania jego fragmentów w nowych, wolnych programach. Nie bez znaczenia jest też sama możliwość dotarcia do Państwa z informacją o wszystkich tych udogodnieniach. + +W celu ochrony praw użytkownika jesteśmy zmuszeni wprowadzać ograniczenia zabraniające komukolwiek kwestionowanie jego praw albo sugerowanie rezygnacji z tych praw. Ograniczenia te sprowadzają się do pewnych dla Państwa obowiązków w przypadku rozpowszechniania przez Was kopii naszego oprogramowania bądź dokonywania w nim zmian. + +Na przykład, jeśli rozprowadzacie Państwo kopie takiego programu, niezależnie czy gratisowo, czy za opłatą, musicie Państwo odbiorcy udzielić wszelkich tych praw, jakie mieliście sami. Musicie zapewnić mu również otrzymanie kodu źródłowego (lub możliwość otrzymania) oraz przedstawić niniejsze Warunki, aby mógł on poznać swoje prawa. + +Ochrona Państwa praw przebiega w dwóch etapach: +zastrzegamy prawo własności autorskiej do oprogramowania, +oferujemy Państwu niniejszą licencję, która daje Wam sankcjonowane prawem zezwolenie na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego oprogramowania. + +Ponadto dla ochrony tak autora, jak i naszej, pragniemy mieć pewność, że każdy zrozumie, iż na niniejsze wolne oprogramowanie nie udziela się gwarancji. W razie dokonania w nim przez kogoś modyfikacji i puszczenia dalej do obrotu, pragniemy, aby dalsi odbiorcy zdawali sobie sprawę z tego, że problemy wprowadzone przez inne osoby nie są wyrazem oryginalnych działań twórców. + +I rzecz ostatnia: każdemu wolnemu programowi stale zagrażają patenty na oprogramowanie. Naszym pragnieniem jest unikanie takiego niebezpieczeństwa, kiedy redystrybutorzy wolnego programu indywidualnie uzyskują prawa patentowe, nadając tym samym programowi charakter prawnie zastrzeżony. W celu zapobieżenia takim zjawiskom jednoznacznie wyjaśniliśmy, że każdy patent musi być wydawany albo dla swobodnego użytku przez wszystkich, albo nie wydawany wcale. + +Poniżej podajemy dokładne zasady i warunki kopiowania, rozpowszechniania i modyfikowania. + +Zasady i warunki kopiowania, rozpowszechniania i modyfikowania +0. +Niniejsza Licencja dotyczy programów i innych prac, na których umieszczona jest pochodząca od właściciela praw autorskich informacja, że dany program lub praca może być rozpowszechniana na warunkach niniejszej Powszechnej Licencji Publicznej. Używane poniżej słowo "Program" oznacza właśnie takie programy lub prace, zaś określenie "praca oparta na Programie" dotyczy albo Programu, albo pochodzącej od niego pracy w rozumieniu prawa autorskiego, to jest pracy zawierającej Program lub jego część dosłowną, bądź zmodyfikowaną i/lub przełożoną na inny język. (W dalszym ciągu niniejszego, pojęcie przekładu włącza się bez ograniczeń do terminu "modyfikacja"). Do każdego licencjobiorcy będziemy zwracać się "per Ty". + +Niniejsza Licencja nie obejmuje działań innych niż kopiowanie, rozprowadzanie i modyfikowanie - nie mieszczą się one w jej zakresie. Czynność używania Programu nie jest poddana ograniczeniom, a produkty uzyskane z Programu objęte są Licencją tylko wtedy, gdy ich treść stanowi pracę opartą na Programie (niezależnie od stworzenia jej przy użyciu Programu). To, czy fakt taki jest prawdą, zależy od tego, co dany Program wykonuje. + +1. +Możesz kopiować i rozprowadzać w dowolnych mediach wierne kopie kodu źródłowego Programu w otrzymanej formie pod warunkiem, że w widoczny sposób i odpowiednio podasz na każdej kopii właściwą informację o prawie autorskim i zrzeczenie się uprawnień z tytułu gwarancji; wszelkie napisy informacyjne na temat Licencji i faktu nieudzielania gwarancji musisz chronić przed uszkodzeniem, zaś wszystkim innym odbiorcom Programu musisz wraz z Programem wręczać egzemplarz niniejszej Licencji. + +Możesz pobierać opłatę za fizyczną czynność przekazania kopii i według własnej decyzji możesz za opłatą proponować ochronę gwarancyjną. + +2. +Możesz modyfikować swoją kopię czy kopie Programu oraz dowolne jego części, tworząc przez to pracę opartą na Programie, jak również kopiować i rozprowadzać takie modyfikacje i pracę na warunkach podanych w pkt.1 powyżej - pod warunkiem przestrzegania całości poniższych wymogów: + +a. +Musisz spowodować umieszczenie na zmodyfikowanych plikach widocznej informacji o tym, że dane pliki zostały przez ciebie zmienione, wraz z datą dokonania zmian. + +b. +Musisz doprowadzić do tego, aby każda rozpowszechniana lub publikowana przez ciebie praca, która w całości lub części zawiera Program, albo pochodzi od niego lub jego części, była w całości i bezpłatnie licencjonowana dla wszelkich stron trzecich na warunkach niniejszej Licencji. + +c. +Jeżeli zmodyfikowany program podczas korzystania z niego w normalnym trybie odczytuje polecenia interaktywnie, musisz spowodować, aby po uruchomieniu (użyty w interaktywny sposób w najzwyklejszym trybie), wydrukowywał on lub wyświetlał powiadomienie o odnośnym prawie autorskim i braku gwarancji (ewentualnie o zapewnianiu gwarancji przez ciebie), oraz o tym, że użytkownicy mogą redystrybuować ten program na niniejszych warunkach wraz z informacją, jak użytkownik może zapoznać się z treścią niniejszej Licencji. (Wyjątek: jeśli sam Program jest interaktywny, ale normalnie nie drukuje takiego powiadomienia, twoja praca oparta na nim też nie musi wydrukowywać takiego powiadomienia). + +Niniejsze wymogi odnoszą się do zmodyfikowanej pracy jako całości. Jeśli dające się ustalić sekcje danej pracy nie pochodzą od Programu i mogą być racjonalnie uważane za samodzielne i odrębne same w sobie, to niniejsza Licencja i jej warunki nie mają zastosowania do takich sekcji przy rozprowadzaniu ich przez ciebie jako odrębne prace. Jeśli jednak rozprowadzasz je jako część całości, będącej pracą opartą na Programie, rozpowszechnianie tej całości musi być dokonywane na warunkach niniejszej Licencji, której zezwolenia dla innych licencjobiorców rozciągają się w całej szerokości na tę całość, a tym samym i na każdą indywidualną jej część, niezależnie od jej autorstwa. + +Dlatego też intencją tego fragmentu nie jest roszczenie sobie praw albo podważanie twych praw do pracy napisanej w całości przez ciebie. Chodzi nam raczej o korzystanie z prawa kontrolowania dystrybucji pochodnych i zbiorowych prac opartych na Programie. + +I jeszcze jedno: samo tylko połączenie z Programem (lub z pracą opartą na Programie) innej pracy - nie opartej na Programie, w ramach wolumenu nośnika przechowywania lub dystrybucji, nie powoduje objęcia takiej pracy zakresem niniejszej Licencji. + +3. +Możesz kopiować i rozprowadzać Program (lub opartą na nim pracę - zgodnie z pkt.2 w kodzie wynikowym lub w formie wykonywalnej w myśl postanowień pkt.1 i 2 powyżej, pod warunkiem zrealizowania również poniższych wymogów: + +a. +Musisz dołączyć do niego odpowiadający mu, kompletny i możliwy do odczytania przez urządzenia cyfrowe kod źródłowy, który musi być rozpowszechniany na warunkach pkt.1 i 2 powyżej i na nośniku zwyczajowo używanym dla wzajemnej wymiany oprogramowania; lub + +b. +dołączyć do niego pisemną ofertę, ważną co najmniej 3 lata, przyznającą każdej stronie trzeciej - za opłatą nie przekraczającą twego kosztu fizycznego wykonywania dystrybucji źródła - kompletną, odczytywalną przez urządzenia cyfrowe kopię odpowiadającego mu kodu źródłowego, rozprowadzaną na warunkach pkt.1 i 2 powyżej, na nośniku zwyczajowo używanym do wzajemnej wymiany oprogramowania; lub + +c. +dołączyć do niego informację, jaką otrzymałeś na temat oferty rozprowadzania odpowiedniego kodu źródłowego. (Ta możliwość dozwolona jest tylko dla dystrybucji niehandlowej i jedynie wtedy, gdy otrzymałeś dany program w kodzie wynikowym lub formie wykonywalnej wraz z wymienioną ofertą - zgodnie z podpunktem "b" powyżej). + +Określenie kod źródłowy dla pracy oznacza formę pracy preferowaną dla wprowadzania do niej modyfikacji. Dla wykonanej pracy, kompletny kod źródłowy oznacza cały kod źródłowy wszystkich modułów, wszelkie sprzężone z nią pośredniczące pliki opisujące oraz zbiory komend stosowane do sterowania kompilacją i instalowaniem programów. Niemniej jednak, jako wyjątek specjalny, dystrybuowany (w formie źródłowej albo binarnej) kod źródłowy nie musi obejmować niczego, co jest normalnie rozprowadzane przy pomocy głównych komponentów (kompilator, jądro itd.) systemu operacyjnego, na którym pracuje część wykonywalna, o ile sam taki komponent towarzyszy tej części. + +Jeśli dystrybucja części wykonywalnej albo kodu wynikowego realizowana jest poprzez oferowanie dostępu do kopii z wyznaczonego miejsca, to oferowanie równoważnego dostępu dla kopiowania kodu źródłowego z tego samego miejsca liczy się jako rozpowszechnianie kodu źródłowego, nawet gdy strony trzecie nie są zmuszone do kopiowania źródła wraz z kodem wynikowym. + + +4. +Poza przypadkami jednoznacznie dozwolonymi w niniejszej Licencji, nie możesz kopiować, modyfikować, sublicencjonować ani rozpowszechniać Programu. We wszystkich pozostałych wypadkach, każda próba skopiowania, sublicencjonowania lub rozpowszechnienia Programu jest nieważna i powoduje automatyczne wygaśnięcie twoich praw z tytułu Licencji. Niemniej jednak, stronom, które już otrzymały od ciebie kopie albo prawa w ramach niniejszej Licencji, licencje nie wygasają tak długo, jak długo strony te w pełni stosują się do nich. + +5. +Nie musisz akceptować niniejszej Licencji, jeżeli jej nie podpisałeś. Niemniej jednak, nic innego nie zapewni ci zezwolenia na modyfikowanie lub rozprowadzanie Programu i pochodzących od niego prac. Działania takie są prawnie zabronione, jeżeli nie przyjmujesz niniejszej Licencji. Dlatego też, poprzez modyfikowanie bądź rozpowszechnianie Programu (lub pracy na nim opartej) dajesz wyraz swojej akceptacji dla Licencji i wszelkich jej postanowień i warunków dotyczących kopiowania, rozprowadzania i modyfikowania Programu lub opartych na nim prac. + +6. +W każdym przypadku redystrybucji przez ciebie Programu (albo opartej na nim pracy), odbiorca automatycznie otrzymuje od pierwotnego licencjodawcy licencję na kopiowanie, rozpowszechnianie i modyfikowanie Programu na niniejszych zasadach i warunkach. Na korzystanie przez odbiorcę z udzielonych w niniejszej Licencji praw nie możesz narzucać już dalszych ograniczeń. Nie jesteś stroną odpowiedzialną za kontrolę przestrzegania Licencji przez osoby trzecie. + +7. +Jeśli na skutek wyroku sądowego lub zarzutu naruszenia patentu, jak też z każdej innej przyczyny (nie ograniczonej do kwestii patentowych) zostaną narzucone na ciebie (niezależnie czy to mocą wyroku sądowego, umowy, czy w inny sposób) warunki sprzeczne z warunkami niniejszej Licencji, to nie zwalniają one ciebie z warunków Licencji. Jeśli nie możesz prowadzić dystrybucji tak, aby wypełniać jednocześnie swoje obowiązki z tytułu niniejszej Licencji i inne odnośne obowiązki, to w rezultacie nie możesz wcale rozprowadzać Programu. Na przykład, gdyby licencja patentowa nie zezwalała na wolną od opłat licencyjnych redystrybucję Programu przez wszystkie osoby, które otrzymały kopie bezpośrednio lub pośrednio od ciebie, to jedynym sposobem pozwalającym ci na przestrzeganie i licencji patentowej, i Licencji niniejszej, byłoby całkowite powstrzymanie się od jakiejkolwiek dystrybucji Programu. + +Jeżeli w jakichś szczególnych okolicznościach któryś fragment niniejszego punktu stałby się nieważny lub niewykonywalny, to intencją jest, aby znajdowała zastosowanie pozostała część punktu, a treść całego punktu była stosowana w pozostałych okolicznościach. + +Celem niniejszego punktu nie jest zachęcanie do naruszania patentów czy innych praw własności, albo też do podważania ich ważności; niniejszy punkt za swój jedyny cel ma ochronę integralności systemu rozpowszechniania wolnego oprogramowania, realizowanego za pomocą publicznych licencji. Wielu ludzi bezinteresownie wniosło swój wkład do stworzenia szerokiego zakresu oprogramowania upowszechnianego w tym systemie, mając zaufanie do konsekwentnego jego stosowania; wyłącznie do autora/ofiarodawcy należy decyzja, czy życzy on sobie rozprowadzania oprogramowania za pośrednictwem innego systemu i licencjobiorca nie może tego prawa wyboru ograniczać. + +Intencją niniejszego punktu jest jasne i wyraźne przedstawienie tego, co uważa się za skutki, jakie rodzi pozostała część niniejszej Licencji. + +8. +W przypadku, gdy dystrybucja i/lub używanie Programu w niektórych krajach poddane jest ograniczeniom patentowym lub zastrzeżeniom prawami autorskimi, początkowy posiadacz praw autorskich, który poddaje Program pod oddziaływanie niniejszej Licencji, może dodać wyraźnie zakreślone geograficzne ograniczenie rozpowszechniania wyłączające te kraje, dzięki czemu dystrybucja dozwolona będzie wyłącznie w krajach czy wśród krajów nie objętych takim wyłączeniem. W przypadku takim, niniejsza Licencja obejmuje dane ograniczenie tak, jakby było ono wpisane w jej treść. + +9. +W miarę potrzeby Fundacja Wolnego Oprogramowania może publikować poprawione i/lub nowe wersje Powszechnej Licencji Publicznej. Takie nowe wersje będą napisane w duchu podobnym do obecnej wersji, ale mogą różnić się w szczegółach poruszających nowe problemy czy zagadnienia. + +Każdej wersji nadaje się wyróżniający ją numer. Jeżeli Program podaje numer wersji niniejszej Licencji, odnoszący się do tej wersji i "wszelkich wersji następnych", masz do wyboru albo stosować się do postanowień i warunków tej wersji, albo którejkolwiek wersji późniejszej wydanej przez Fundację Wolnego Oprogramowania. O ile Program nie podaje numeru wersji niniejszej Licencji, możesz wybrać dowolną wersję kiedykolwiek opublikowaną przez Fundację. + +10. +Jeśli chcesz włączyć części Programu do innych wolnych programów, których warunki rozpowszechniania są inne, zwróć się pisemnie do autora z prośbą o pozwolenie. W przypadku oprogramowania objętego przez Fundację prawem autorskim, napisz do Fundacji; czasami czynimy od tego odstępstwa. W naszej decyzji kierujemy się dwoma celami: utrzymania wolnego statusu wszystkich pochodnych naszego wolnego oprogramowania oraz - generalnie - promowania współudziału i wielokrotnego stosowania oprogramowania. + +WYRÓB BEZ GWARANCJI + +11. +PONIEWAŻ PROGRAM JEST LICENCJONOWANY BEZPŁATNIE, NIE JEST OBJĘTY GWARANCJĄ W ZAKRESIE DOZWOLONYM PRZEZ OBOWIĄZUJĄCE PRZEPISY. O ILE NA PIŚMIE NIE STANOWI SIĘ INACZEJ, POSIADACZE PRAW AUTORSKICH I/LUB INNE STRONY ZAPEWNIAJĄ PROGRAM W STANIE, W JAKIM JEST ("JAK WIDAĆ") BEZ JAKIEJKOLWIEK GWARANCJI, ANI WYRAŹNEJ, ANI DOMYŚLNEJ, W TYM MIĘDZY INNYMI DOMYŚLNYCH GWARANCJI CO DO PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. CAŁOŚĆ RYZYKA W ZAKRESIE JAKOŚCI I SKUTECZNOŚCI DZIAŁANIA PROGRAMU PONOSISZ SAM. W RAZIE GDYBY PROGRAM OKAZAŁ SIĘ WADLIWY, PONOSISZ KOSZT CAŁEGO NIEZBĘDNEGO SERWISU, NAPRAWY I KORYGOWANIA. + +12. +O ILE OBOWIĄZUJĄCE PRAWO NIE STANOWI INACZEJ ALBO CZEGOŚ INNEGO NIE UZGODNIONO W FORMIE PISEMNEJ, ŻADEN POSIADACZ PRAW AUTORSKICH ANI INNA STRONA MODYFIKUJĄCA I/LUB REDYSTRYBUJĄCA PROGRAM ZGODNIE Z POWYŻSZYMI ZEZWOLENIAMI, W ŻADNYM WYPADKU NIE JEST ODPOWIEDZIALNA WOBEC CIEBIE ZA SZKODY, W TYM SZKODY OGÓLNE, SPECJALNE, UBOCZNE LUB SKUTKOWE, WYNIKŁE Z UŻYCIA BĄDŹ NIEMOŻLIWOŚCI UŻYCIA PROGRAMU (W TYM, MIĘDZY INNYMI, ZA UTRATĘ DANYCH LUB POWSTANIE DANYCH NIEDOKŁADNYCH, ALBO ZA STRATY PONIESIONE PRZEZ CIEBIE LUB STRONY TRZECIE, JAK TEŻ NIEDZIAŁANIE PROGRAMU Z INNYMI PROGRAMAMI), NAWET JEŚLI DANY POSIADACZ BĄDŹ INNA STRONA ZOSTALI POWIADOMIENI O MOŻLIWOŚCI POWSTANIA TAKICH SZKÓD. + +KONIEC ZASAD I WARUNKÓW +Jak stosować niniejsze Warunki do Twoich nowych programów + +Jeśli opracowujesz nowy program i chciałbyś, aby stał się on przydatny dla szerokiego ogółu, najlepszą drogą do osiągnięcia tego będzie nadanie twemu programowi charakteru wolnego oprogramowania, które każdy może redystrybuować i zmieniać na niniejszych warunkach. + +W tym celu do programu dołącz poniższe informacje. Bezpieczniej jest dołączyć je na początku każdego pliku źródłowego, dzięki czemu najskuteczniej można przekazać fakt nieistnienia gwarancji; każdy plik powinien przy tym nosić uwagę "copyright" i odnośnik, gdzie można znaleźć pełną informację. +nazwa programu i informacja, do czego on służy. +Copyright (C) 19../20.. nazwisko autora +Niniejszy program jest wolnym oprogramowaniem; możesz go +rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej +Licencji Publicznej GNU, wydanej przez Fundację Wolnego +Oprogramowania - według wersji 2-giej tej Licencji lub którejś +z późniejszych wersji. +Niniejszy program rozpowszechniany jest z nadzieją, iż będzie on +użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej +gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH +ZASTOSOWAŃ. W celu uzyskania bliższych informacji - Powszechna +Licencja Publiczna GNU. +Z pewnością wraz z niniejszym programem otrzymałeś też egzemplarz +Powszechnej Licencji Publicznej GNU (GNU General Public License); +jeśli nie - napisz do Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. +Podaj też informacje o sposobie kontaktowania się z tobą pocztą elektroniczną lub zwykłą. + +Jeśli dany program jest interaktywny, spraw, aby w momencie wchodzenia w tryb interaktywny wyświetlał on komunikat jak w poniższym przykładzie: +Gnomovision wersja 69, Copyright C 19.. nazwisko autora + +Gnomovision wydawany jest ABSOLUTNIE BEZ ŻADNEJ GWARANCJI - +w celu uzyskania dalszych szczegółów wpisz "show w". +To jest wolne oprogramowanie i mile widziane jest dalsze +rozpowszechnianie go przez ciebie na określonych warunkach - +w celu uzyskania bliższych szczegółów wpisz "show c". + +Powyższe hipotetyczne polecenia "show w" i "show c" winny powodować wyświetlenie odpowiednich części Powszechnej Licencji Publicznej. Oczywiście możesz używać innych poleceń niż "show w" i "show c"; mogą to być nawet kliknięcia myszą lub pozycje menu - co tylko sobie uznasz za stosowne. + +Powinieneś też poprosić swego pracodawcę (jeśli pracujesz jako programista) czy też swoją szkołę (jeśli jesteś uczniem), o podpisanie, w razie potrzeby, "Rezygnacji z praw autorskich" do programu. Poniżej podajemy przykład (zmień nazwy/nazwiska): +My, firma Jojodyne Sp. z o.o. niniejszym zrzekamy się +i rezygnujemy z wszelkich interesów prawnych w zakresie +praw autorskich do programu "Gnomovision" (który realizuje +następujące funkcje...), napisanego przez p.Jana Kowalskiego. + +Podpis: /-/ Gniewosław Wielkoważny + +Gniewosław Wielkoważny, Prezes...itp +Powszechna Licencja Publiczna nie zezwala na włączanie twego programu do programów prawnie zastrzeżonych. Jeśli twój program jest biblioteką podprogramów, możesz rozważyć, czy nie będzie korzystniej zezwolić na powiązanie prawnie zastrzeżonych aplikacji z biblioteką. Jeśli chciałbyś właśnie tego dokonać, zamiast niniejszej Licencji zastosuj Powszechną Licencję Publiczną GNU dla Bibliotek. \ No newline at end of file diff --git a/cms/wtrmln/themes/wcmslay/bottom.png b/cms/wtrmln/themes/wcmslay/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..9c012249ff9c49d621e2d76d3935987b07c1cf97 GIT binary patch literal 2044 zcwRMBc|6nqAD?_3Ut;S%8zk?xcdQ+{Iqp$quuMKX>qQ?!CvY><_^$ z7a;w@(~kQ)EA5r)R$kSI&6&7FH*{7-xLeOd89y!Owy*Cj3fpJ;F!6eAHPjULx_GST zVF>kX8zrkhMhpXzEnlyWZ{%mCeDiMq){~#LzGS2#H*!?Dqnxx@ zogcUjE@NyiwIiJH?A26$%Rxk0Fu8|4ky-4@{(D-n2?QThBP!0XEBHc0=Zhg9!2!BM=~ z2>cpsPt#X`V&iqJe*owzQJQtc#~+Rlt@hhx?%74xLfpboKwyWse@>~IljBHf+bsPJv{irN|IJRQm@xCNOW+ZsFt!L;jge)&l>jz+6coC zk>^aczw7P7$M+Qx=oU5JDwfAB*LK}cQ=5;|SXrM|O7D&ZLs`D3|VbvMh&w{Y^mR`L{eFgU1>4hKu4DO_k3 zO>%BjXdk^c$A(lIDy@vr^x>rIXqeIuy~|#2yw73(MX;!ZiLYY?!r7T|uW@ zIsM`J1{&|A9yKqqd~OoP!V-&$DoQZ|^g9`U_SLY|)~B+zx)utpspfk@D~f_NC#BTy z_14Nc)n@3cOTRE@zJUW5=rPw2zsd9c??0xFg#u`@%9 ziy2#&VPZBiSgOQq+eWYq%NWLyNkHaM>ob7&Uh!8ntvC*w3oHmox=2kxv9 z>Tw)9rhi@62Z&8`9`eAi>QgKa$+ePvATl1sx2?t2c=K&JR-)PhnNhj3yo%31Q~`cZ zcd^%AdwNy`?yz+52t6_**!E?1ac5T|;{e|#6IMeTp4ncBfLOIw7 z!dh(Vh8afdEp-(OR8Js%>pSgC2TJ;BuBuJ*p>+*yuT0 zGN(u9Zpi#+e3HJ+4$eTBcp6zUT+6;>t%o^Wq1WMiZkVlJ92f*30`NcJ-9u z3*4m3rh?bO4;J~hyU$=0J(D5){sDJRv{V*yk(K% z#~O)lj4Vn7eT?dW-NDgkqKJB2;qW-=LBJh6QA7p{x@=<(C|ox7Q(lRtEoh>1C1g7v)xQ-12|AZwOFz;`JRy<9m%bl7Bwhn`MW&>>& z8}jM1`)+Q`RHMMci(AhX0oP7d?Wj+`4-uYlf2x0DJFWjoqU4JxL8jO6!YDgKQ6EQk z*IhzuwX&^Kn|Qk!52y?E$?Aph;?AZ~GFtz2=wS*!Kj;#tQBybx#}+89Zliy_xkWz1 zh(=GA^g#DWeh_m(uFj}_$>3F@-6NB9KicL58s<1;9b9N+Oe40)R-6)_yKhy5YPHi| zt+j(uFbI6+ke+`@+GNFjUTS+_K)k%%w|>}2FSLmbJetdn+-;(W?EG`^m{RKqZP>hz zE6(G9GTX;*!M<$&jWP(N#fI<}npebj-)9iRLwK^p--&ni>o;4}uGjgy2$qT%_yFr}dAa^H*b?0PW0y%6+-tI08 zDGXH%9$O~(T?2}67I;J!Gca%qgD@k*tT_@uLG}_)Usv`UY=V4DJSk3}q=7<`C9V-A z&iT2ysd*&~&PAz-C8;S2<(VZJ3hti10pX2&;y^{so-U3d9>?EaI4yWcL4x6-s(_r| zm5o~38yK}uo@~-N6lJ5X<_x**Dq3WY0b3S|C#5Rcjoz(7M-DDxK$ER?}O_ zIjJ9PZ$G%fdcN+lq`!NMfD?ye%a8K&KlOxLegsZ`-K&|lto)In__Hk^PPNY9&Rn@9 l=;YF%+g`c7w-T0qWOPo|`6+Hay$t9a22WQ%mvv4FO#oksWX%8o literal 0 HcwPel00001 diff --git a/cms/wtrmln/themes/wcmslay/images/be.png b/cms/wtrmln/themes/wcmslay/images/be.png new file mode 100644 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcwPa$0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcwPel00001 diff --git a/cms/wtrmln/themes/wcmslay/images/bg.png b/cms/wtrmln/themes/wcmslay/images/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..a9925a06ab02db30c1e7ead9c701c15bc63145cb GIT binary patch literal 537 zcwPY+0_OdRP)Hs{AQG2a)rMyf zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4 z2FhRqKX}xI*?Tv1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1pBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*0XYhLR!1P*SpVQi>)dUV<_*6qInHGcnEb zQfX6|c{lO4l#RKaZC-XZ&u-_k%Q@eEE?Qa!_Tt0u@H@}<^E~``A^=3}gr(l4vU*i7 zyV6Lx=4yE7RGGkx6gV71cjvY=iqb#p!ylZn>j-Cf+b>x95wMRT==lzjH$f681f9ze zR{P)>$i_z3RfAovII&B>n%*Ds>XegyS_9EX5sW0f1d*FX&^tjGBX?Rzej4t{=ddW_ z9h>UH!(o9}TURNVdq{y5qM#$E1yaxnNWKtKkRh^p1YA9U=z#4*HY{(h_k{(nnF>pQ znJ2Y6(rFb^z)nJ2pnqIQ&_2v{yl+xxUhm5uO{Q#!J8DY)klFdeOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcwPel00001 diff --git a/cms/wtrmln/themes/wcmslay/images/index.htm b/cms/wtrmln/themes/wcmslay/images/index.htm new file mode 100644 index 0000000..e69de29 diff --git a/cms/wtrmln/themes/wcmslay/index.php b/cms/wtrmln/themes/wcmslay/index.php new file mode 100644 index 0000000..7cf4cae --- /dev/null +++ b/cms/wtrmln/themes/wcmslay/index.php @@ -0,0 +1,29 @@ + + + + + + + + +
+ + +
+

+ +
+
+
+ + + diff --git a/cms/wtrmln/themes/wcmslay/quot.png b/cms/wtrmln/themes/wcmslay/quot.png new file mode 100644 index 0000000000000000000000000000000000000000..27cf7656f833064e667455688ec3338c469e51b6 GIT binary patch literal 1236 zcwPb21S|WAP)Px#24YJ`L;%+SrvQ9M5^lr*000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOJ@ z4m1SuFhsHd000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000CpNklhg zbH0xe5%$VbVGpf61*`r)KVA(@((Q-+&}oc#_VAl*H-Oece!4yJIkak_Cl_oazG@vA zzqsO?x%PO^Y4Om3vNmqu*w%(-Wc*^nJN-2P67^(C3XF*0ogSoN-)BgqqT4i`IuB=_ z>2Jz2SbtLjNkkZ*{f>t2UBFf{EauspXR!7FP-lIz@k9vU|K3ZJ%QuC&l%q#;-B}p* z#fm@^$r!GWeMk=%ewOp>`DZJulii5S(3R1*5RA?XG)qA>P9OOIg?SD|DG-b;(!gjp z*1~>)W;NBItMPq-=Z+`45}csRBX3|c5fErqrN_|O@E+5s^@{RyJv>d9MqWcSzADga z>?hFS?h*A=?{uP4piev6(cylFsZ`2pG#Fc?OCzr$8ebD=b>+{a-F1$sSdOxLb}Jdd z)zNNI(8`jdT%d_m3Cf{n>9twddS#L#Ht+Z@1}862JOB6%DSi zHld=VN%6&>$)qsky&$SRwXYcti#sb%0qldh>lBPFhz5JAU*hUcf6V_xf#|HL)=>Q- z{~&Y6e_1rppe=;c>fvgqWB#v1_j7eca1^^37i=IhN6Uc+qJa*J3p*8n*a}4EXldiV zxM#5ojH&oe*1s|;8CaaZpDP9AJd5%x_~+Thb)RIQUTfllU0C<-n&&oHu{-c_Amf|U z*FwAJx$R~TZ!Sv)K3W_`JP{&cF1t}yd|0wbBAY9UJ@?z1QDUkQcy61z`UZ~^QCiWz z)oTjy^2sllURxll_YE8)LPn9N$ykOnZT(E0qm@nrqKx9l98ZRD$A3j~&Lk**dk#kD z;hXt}WOG)hHge_VqorXU*g z+77+0*tphlN>XD?g%cc}2P?XEp1R7djjXlqm8?yj77uFd$7Ls{a;t~6)Sb=Rv&z9n{Z%UdvEN+}W(ks~z{=2+WgEVyS6Qt5xGN3K!^qglJwE)|ORQ*r3E1+bZGQR_T~1NJt?6!!N>eD%w_Q&(T`FWtg=WE!b- y90qM6O3n4CujoRRt%Wfr{-D^C@3T)}fxiInoRl7sIH@lH0000query("SELECT * FROM `menu`"); + + while($menu_e = $menus->to_obj()) + { + $menu .= '
' . $menu_e->menu_capt . '
' . $menu_e->menu_content; + } + + //przetwarzanie + + if (@ini_get('short_open_tag') === FALSE) + { + //jeśli nie można używać ' . $menu . 'O2K&IerXAJ=A>Hr4- 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 jOy+ + +Watermelon CMS + + + + + +
+

Czym jest Watermelon CMS?

+

Watermelon CMS to prosty, szybki, a przede wszystkim elastyczny system zarządzania treścią o niewielkich rozmiarach. Watermelon CMS jest rozpowszechniany jako wolne i otwarte oprogramowanie na licencji GNU GPL w wersji drugiej.

+ +

Skąd pobrać?

+ +

Watermelon CMS w chwili obecnej jest dostępny tylko poprzez SVN, ale niedługo będziemy wydawać małe paczki (tzw. snapshoty)

+ +

Jak pomóc?

+ +

Jeśli chcesz pomóc (np. jako programista lub grafik) napisz do mnie

+ +
+ + + diff --git a/www/logo.png b/www/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..97c4bcf6e3123f628716e154fdf7853a48ecc930 GIT binary patch literal 131098 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 z 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ℑ*I_36Da_%p^P+bLdQc_3I)bpDy~BP2 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 literal 0 HcwPel00001 diff --git a/www/sflogo.png b/www/sflogo.png new file mode 100644 index 0000000000000000000000000000000000000000..cb4a71a66e49be02c4667845bd9386aa3c0ef2f3 GIT binary patch literal 492 zcwPbQ0Tcd-P)Px#T2M?>MgRZ*?(XhiYI3x>y^4~UpQfsGeudxR7I>kR;N+` z0004EOGiWihy@);00009a7bBm000XU000XU0RWnu7ytkO2XskIMF-dg0SGf5LXy=S z0003CNkl$$9MXRU6R=qcIq9*+|wC+FilM#sX294pnunREkLsVN=zQg11Tp z+aiHH^dic5DN0<++G0?(V8U$VD3V_yQ85y5cN6x7m$9q&KbZ-;hgK97cDUaT=iMAb zq;F>9DNNBPcLn`fz2$fL~FxF%x_8vPPQ;uVS-sUxvrS0iX}lC_2)k&3AdWz1NR76;^Y+ ijqQwLVq#+AFMI-KxCqe@-D`jV0000