From 99d9fe0899db67b1b4223d54a09f69c558bc0ed1 Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Tue, 19 Dec 2017 14:46:30 +0000 Subject: [PATCH] plugins: Add blog plugin so we can fix the news page --- public_html/lib/plugins/blog/COPYING | 340 ++++++++++++++++++ public_html/lib/plugins/blog/README | 10 + public_html/lib/plugins/blog/_template.txt | 6 + public_html/lib/plugins/blog/action.php | 245 +++++++++++++ public_html/lib/plugins/blog/conf/default.php | 18 + .../lib/plugins/blog/conf/metadata.php | 22 ++ public_html/lib/plugins/blog/helper.php | 187 ++++++++++ public_html/lib/plugins/blog/lang/ar/lang.php | 36 ++ .../lib/plugins/blog/lang/ar/settings.php | 35 ++ public_html/lib/plugins/blog/lang/cs/lang.php | 25 ++ .../lib/plugins/blog/lang/cs/settings.php | 25 ++ public_html/lib/plugins/blog/lang/da/lang.php | 31 ++ .../lib/plugins/blog/lang/da/settings.php | 24 ++ .../plugins/blog/lang/de-informal/lang.php | 31 ++ .../blog/lang/de-informal/settings.php | 29 ++ public_html/lib/plugins/blog/lang/de/lang.php | 31 ++ .../lib/plugins/blog/lang/de/settings.php | 29 ++ public_html/lib/plugins/blog/lang/en/lang.php | 36 ++ .../lib/plugins/blog/lang/en/settings.php | 38 ++ public_html/lib/plugins/blog/lang/eo/lang.php | 31 ++ .../lib/plugins/blog/lang/eo/settings.php | 28 ++ public_html/lib/plugins/blog/lang/es/lang.php | 30 ++ .../lib/plugins/blog/lang/es/settings.php | 23 ++ public_html/lib/plugins/blog/lang/fa/lang.php | 30 ++ .../lib/plugins/blog/lang/fa/settings.php | 27 ++ public_html/lib/plugins/blog/lang/fr/lang.php | 32 ++ .../lib/plugins/blog/lang/fr/settings.php | 29 ++ public_html/lib/plugins/blog/lang/hu/lang.php | 32 ++ .../lib/plugins/blog/lang/hu/settings.php | 29 ++ public_html/lib/plugins/blog/lang/it/lang.php | 36 ++ .../lib/plugins/blog/lang/it/settings.php | 12 + public_html/lib/plugins/blog/lang/ja/lang.php | 30 ++ .../lib/plugins/blog/lang/ja/settings.php | 27 ++ public_html/lib/plugins/blog/lang/ko/lang.php | 30 ++ .../lib/plugins/blog/lang/ko/settings.php | 27 ++ public_html/lib/plugins/blog/lang/nl/lang.php | 31 ++ .../lib/plugins/blog/lang/nl/settings.php | 28 ++ public_html/lib/plugins/blog/lang/pl/lang.php | 28 ++ .../lib/plugins/blog/lang/pl/settings.php | 23 ++ .../lib/plugins/blog/lang/pt-br/lang.php | 30 ++ .../lib/plugins/blog/lang/pt-br/settings.php | 23 ++ public_html/lib/plugins/blog/lang/pt/lang.php | 31 ++ .../lib/plugins/blog/lang/pt/settings.php | 28 ++ public_html/lib/plugins/blog/lang/ro/lang.php | 32 ++ .../lib/plugins/blog/lang/ro/settings.php | 30 ++ public_html/lib/plugins/blog/lang/ru/lang.php | 31 ++ .../lib/plugins/blog/lang/ru/settings.php | 29 ++ public_html/lib/plugins/blog/lang/sl/lang.php | 15 + .../lib/plugins/blog/lang/sl/settings.php | 19 + public_html/lib/plugins/blog/lang/sv/lang.php | 32 ++ .../lib/plugins/blog/lang/sv/settings.php | 29 ++ public_html/lib/plugins/blog/lang/tr/lang.php | 30 ++ .../lib/plugins/blog/lang/tr/settings.php | 27 ++ public_html/lib/plugins/blog/lang/zh/lang.php | 36 ++ .../lib/plugins/blog/lang/zh/settings.php | 38 ++ public_html/lib/plugins/blog/plugin.info.txt | 8 + public_html/lib/plugins/blog/print.css | 3 + public_html/lib/plugins/blog/style.css | 40 +++ .../lib/plugins/blog/syntax/archive.php | 251 +++++++++++++ .../lib/plugins/blog/syntax/autoarchive.php | 163 +++++++++ public_html/lib/plugins/blog/syntax/blog.php | 212 +++++++++++ public_html/lib/plugins/blog/syntax/draft.php | 39 ++ 62 files changed, 2937 insertions(+) create mode 100644 public_html/lib/plugins/blog/COPYING create mode 100644 public_html/lib/plugins/blog/README create mode 100644 public_html/lib/plugins/blog/_template.txt create mode 100644 public_html/lib/plugins/blog/action.php create mode 100644 public_html/lib/plugins/blog/conf/default.php create mode 100644 public_html/lib/plugins/blog/conf/metadata.php create mode 100644 public_html/lib/plugins/blog/helper.php create mode 100644 public_html/lib/plugins/blog/lang/ar/lang.php create mode 100644 public_html/lib/plugins/blog/lang/ar/settings.php create mode 100644 public_html/lib/plugins/blog/lang/cs/lang.php create mode 100644 public_html/lib/plugins/blog/lang/cs/settings.php create mode 100644 public_html/lib/plugins/blog/lang/da/lang.php create mode 100644 public_html/lib/plugins/blog/lang/da/settings.php create mode 100644 public_html/lib/plugins/blog/lang/de-informal/lang.php create mode 100644 public_html/lib/plugins/blog/lang/de-informal/settings.php create mode 100644 public_html/lib/plugins/blog/lang/de/lang.php create mode 100644 public_html/lib/plugins/blog/lang/de/settings.php create mode 100644 public_html/lib/plugins/blog/lang/en/lang.php create mode 100644 public_html/lib/plugins/blog/lang/en/settings.php create mode 100644 public_html/lib/plugins/blog/lang/eo/lang.php create mode 100644 public_html/lib/plugins/blog/lang/eo/settings.php create mode 100644 public_html/lib/plugins/blog/lang/es/lang.php create mode 100644 public_html/lib/plugins/blog/lang/es/settings.php create mode 100644 public_html/lib/plugins/blog/lang/fa/lang.php create mode 100644 public_html/lib/plugins/blog/lang/fa/settings.php create mode 100644 public_html/lib/plugins/blog/lang/fr/lang.php create mode 100644 public_html/lib/plugins/blog/lang/fr/settings.php create mode 100644 public_html/lib/plugins/blog/lang/hu/lang.php create mode 100644 public_html/lib/plugins/blog/lang/hu/settings.php create mode 100644 public_html/lib/plugins/blog/lang/it/lang.php create mode 100644 public_html/lib/plugins/blog/lang/it/settings.php create mode 100644 public_html/lib/plugins/blog/lang/ja/lang.php create mode 100644 public_html/lib/plugins/blog/lang/ja/settings.php create mode 100644 public_html/lib/plugins/blog/lang/ko/lang.php create mode 100644 public_html/lib/plugins/blog/lang/ko/settings.php create mode 100644 public_html/lib/plugins/blog/lang/nl/lang.php create mode 100644 public_html/lib/plugins/blog/lang/nl/settings.php create mode 100644 public_html/lib/plugins/blog/lang/pl/lang.php create mode 100644 public_html/lib/plugins/blog/lang/pl/settings.php create mode 100644 public_html/lib/plugins/blog/lang/pt-br/lang.php create mode 100644 public_html/lib/plugins/blog/lang/pt-br/settings.php create mode 100644 public_html/lib/plugins/blog/lang/pt/lang.php create mode 100644 public_html/lib/plugins/blog/lang/pt/settings.php create mode 100644 public_html/lib/plugins/blog/lang/ro/lang.php create mode 100644 public_html/lib/plugins/blog/lang/ro/settings.php create mode 100644 public_html/lib/plugins/blog/lang/ru/lang.php create mode 100644 public_html/lib/plugins/blog/lang/ru/settings.php create mode 100644 public_html/lib/plugins/blog/lang/sl/lang.php create mode 100644 public_html/lib/plugins/blog/lang/sl/settings.php create mode 100644 public_html/lib/plugins/blog/lang/sv/lang.php create mode 100644 public_html/lib/plugins/blog/lang/sv/settings.php create mode 100644 public_html/lib/plugins/blog/lang/tr/lang.php create mode 100644 public_html/lib/plugins/blog/lang/tr/settings.php create mode 100644 public_html/lib/plugins/blog/lang/zh/lang.php create mode 100644 public_html/lib/plugins/blog/lang/zh/settings.php create mode 100644 public_html/lib/plugins/blog/plugin.info.txt create mode 100644 public_html/lib/plugins/blog/print.css create mode 100644 public_html/lib/plugins/blog/style.css create mode 100644 public_html/lib/plugins/blog/syntax/archive.php create mode 100644 public_html/lib/plugins/blog/syntax/autoarchive.php create mode 100644 public_html/lib/plugins/blog/syntax/blog.php create mode 100644 public_html/lib/plugins/blog/syntax/draft.php diff --git a/public_html/lib/plugins/blog/COPYING b/public_html/lib/plugins/blog/COPYING new file mode 100644 index 00000000..d60c31a9 --- /dev/null +++ b/public_html/lib/plugins/blog/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/public_html/lib/plugins/blog/README b/public_html/lib/plugins/blog/README new file mode 100644 index 00000000..86e31d71 --- /dev/null +++ b/public_html/lib/plugins/blog/README @@ -0,0 +1,10 @@ +====== Blog Plugin for DokuWiki ====== + +All documentation for the Blog Plugin is available online at: + + * http://dokuwiki.org/plugin:blog + +(c) 2005 - 2007 by Esther Brunner +(c) 2008 - 2009 by Gina Häußge, Michael Klier +(c) 2013 by Michael Hamann +See COPYING for license info. diff --git a/public_html/lib/plugins/blog/_template.txt b/public_html/lib/plugins/blog/_template.txt new file mode 100644 index 00000000..01fefa5f --- /dev/null +++ b/public_html/lib/plugins/blog/_template.txt @@ -0,0 +1,6 @@ +====== @TITLE@ ====== + +@TAG@ + +@LINKBACK@ +@DISCUSSION@ diff --git a/public_html/lib/plugins/blog/action.php b/public_html/lib/plugins/blog/action.php new file mode 100644 index 00000000..07045c07 --- /dev/null +++ b/public_html/lib/plugins/blog/action.php @@ -0,0 +1,245 @@ + + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); +require_once(DOKU_PLUGIN.'action.php'); + +class action_plugin_blog extends DokuWiki_Action_Plugin { + + /** + * register the eventhandlers + */ + function register(Doku_Event_Handler $contr) { + $contr->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_act_preprocess', array()); + $contr->register_hook('FEED_ITEM_ADD', 'BEFORE', $this, 'handle_feed_item'); + $contr->register_hook('PARSER_CACHE_USE', 'BEFORE', $this, 'handle_cache'); + } + + /** + * Checks if 'newentry' was given as action, if so we + * do handle the event our self and no further checking takes place + */ + function handle_act_preprocess(Doku_Event $event, $param) { + if ($event->data != 'newentry') return; // nothing to do for us + + $event->data = $this->_handle_newEntry($event); + } + + /** + * Removes draft entries from feeds + * + * @author Michael Klier + */ + function handle_feed_item(&$event, $param) { + global $conf; + + $url = parse_url($event->data['item']->link); + $base_url = getBaseURL(); + + // determine page id by rewrite mode + switch($conf['userewrite']) { + case 0: + preg_match('#id=([^&]*)#', $url['query'], $match); + if($base_url != '/') { + $id = cleanID(str_replace($base_url, '', $match[1])); + } else { + $id = cleanID($match[1]); + } + break; + + case 1: + if($base_url != '/') { + $id = cleanID(str_replace('/',':',str_replace($base_url, '', $url['path']))); + } else { + $id = cleanID(str_replace('/',':', $url['path'])); + } + break; + + case 2: + preg_match('#doku.php/([^&]*)#', $url['path'], $match); + if($base_url != '/') { + $id = cleanID(str_replace($base_url, '', $match[1])); + } else { + $id = cleanID($match[1]); + } + break; + } + + // don't add drafts to the feed + if(p_get_metadata($id, 'type') == 'draft') { + $event->preventDefault(); + return; + } + } + + /** + * Creates a new entry page + */ + function _handle_newEntry(Doku_Event $event) { + global $ID, $INFO; + + $ns = cleanID($_REQUEST['ns']); + $title = str_replace(':', '', $_REQUEST['title']); + $ID = $this->_newEntryID($ns, $title); + $INFO = pageinfo(); + + // check if we are allowed to create this file + if ($INFO['perm'] >= AUTH_CREATE) { + + // prepare the new thread file with default stuff + if (!@file_exists($INFO['filepath'])) { + + // prevent default edit action and further processing of the event + $event->preventDefault(); + + //check if locked by anyone - if not lock for my self + if ($INFO['locked']) return 'locked'; + else lock($ID); + + global $TEXT; + + $TEXT = pageTemplate(array(($ns ? $ns.':' : '').$title)); + if (!$TEXT) { + $data = array('id' => $ID, 'ns' => $ns, 'title' => $_REQUEST['title']); + $TEXT = $this->_pageTemplate($data); + } + return 'preview'; + } else { + return 'edit'; + } + } else { + return 'show'; + } + } + + /** + * Adapted version of pageTemplate() function + */ + function _pageTemplate($data) { + global $conf, $INFO; + + $id = $data['id']; + $user = $_SERVER['REMOTE_USER']; + $tpl = io_readFile(DOKU_PLUGIN.'blog/_template.txt'); + + // standard replacements + $replace = array( + '@ID@' => $id, + '@NS@' => $data['ns'], + '@PAGE@' => strtr(noNS($id),'_',' '), + '@USER@' => $user, + '@NAME@' => $INFO['userinfo']['name'], + '@MAIL@' => $INFO['userinfo']['mail'], + '@DATE@' => strftime($conf['dformat']), + ); + + // additional replacements + $replace['@TITLE@'] = $data['title']; + + // tag if tag plugin is available + if ((@file_exists(DOKU_PLUGIN.'tag/syntax/tag.php')) + && (!plugin_isdisabled('tag'))) { + $replace['@TAG@'] = "\n\n{{tag>}}"; + } else { + $replace['@TAG@'] = ''; + } + + // discussion if discussion plugin is available + if ((@file_exists(DOKU_PLUGIN.'discussion/syntax/comments.php')) + && (!plugin_isdisabled('discussion'))) { + $replace['@DISCUSSION@'] = "~~DISCUSSION~~"; + } else { + $replace['@DISCUSSION@'] = ''; + } + + // linkbacks if linkback plugin is available + if ((@file_exists(DOKU_PLUGIN.'linkback/syntax.php')) + && (!plugin_isdisabled('linkback'))) { + $replace['@LINKBACK@'] = "~~LINKBACK~~"; + } else { + $replace['@LINKBACK@'] = ''; + } + + // do the replace + $tpl = str_replace(array_keys($replace), array_values($replace), $tpl); + return $tpl; + } + + /** + * Returns the ID of a new entry based on its namespace, title and the date prefix + * + * @author Esther Brunner + * @author Michael Arlt + */ + function _newEntryID($ns, $title) { + $dateprefix = $this->getConf('dateprefix'); + if (substr($dateprefix, 0, 1) == '<') { + // <9?%y1-%y2:%d.%m._ -> 05-06:31.08._ | 06-07:01.09._ + list($newmonth, $dateprefix) = explode('?', substr($dateprefix, 1)); + if (intval(strftime("%m")) < intval($newmonth)) { + $longyear2 = strftime("%Y"); + $longyear1 = $longyear2 - 1; + } else { + $longyear1 = strftime("%Y"); + $longyear2 = $longyear1 + 1; + } + $shortyear1 = substr($longyear1, 2); + $shortyear2 = substr($longyear2, 2); + $dateprefix = str_replace( + array('%Y1', '%Y2', '%y1', '%y2'), + array($longyear1, $longyear2, $shortyear1, $shortyear2), + $dateprefix + ); + } + $pre = strftime($dateprefix); + return ($ns ? $ns.':' : '').$pre.cleanID($title); + } + + /** + * Expire the renderer cache of archive pages whenever a page is updated or a comment or linkback is added + * + * @author Michael Hamann + */ + function handle_cache(Doku_Event $event, $params) { + global $conf; + /** @var cache_parser $cache */ + $cache = $event->data; + if (!in_array($cache->mode, array('xhtml', 'metadata'))) return; + $page = $cache->page; + + // try to extract the page id from the file if possible + if (empty($page)) { + if (strpos($cache->file, $conf['datadir']) === 0) { + $page = pathID(substr($cache->file, strlen($conf['datadir'])+1)); + } else { + return; + } + } + + $meta = p_get_metadata($page, 'plugin_blog'); + if ($meta === null) return; + + if (isset($meta['purgefile_cache'])) { + $cache->depends['files'][] = $conf['cachedir'].'/purgefile'; + $cache->depends['files'][] = $conf['metadir'].'/_comments.changes'; + $cache->depends['files'][] = $conf['metadir'].'/_linkbacks.changes'; + } + + // purge the cache when a page is listed that the current user can't access + if (isset($meta['archive_pages'])) { + foreach ($meta['archive_pages'] as $page) { + if (auth_quickaclcheck($page) < AUTH_READ) { + $cache->depends['purge'] = true; + return; + } + } + } + } +} +// vim:ts=4:sw=4:et:enc=utf-8: diff --git a/public_html/lib/plugins/blog/conf/default.php b/public_html/lib/plugins/blog/conf/default.php new file mode 100644 index 00000000..80fb610e --- /dev/null +++ b/public_html/lib/plugins/blog/conf/default.php @@ -0,0 +1,18 @@ + + */ +$meta['namespace'] = array('string'); +$meta['formposition'] = array('multichoice', + '_choices' => array('top', 'bottom', 'none')); +$meta['newentrytitle'] = array('string'); +$meta['dateprefix'] = array('string'); +$meta['sortkey'] = array('multichoice', + '_choices' => array('cdate', 'mdate', 'pagename', 'id', 'title')); +$meta['sortorder'] = array('multichoice', + '_choices' => array('ascending', 'descending')); +$meta['excluded_pages'] = array('string'); + +$meta['showhistogram'] = array('onoff'); +$meta['max_months'] = array('numeric'); +$meta['histogram_height'] = array('numeric'); +// vim:ts=4:sw=4:et:enc=utf-8: diff --git a/public_html/lib/plugins/blog/helper.php b/public_html/lib/plugins/blog/helper.php new file mode 100644 index 00000000..f448fe47 --- /dev/null +++ b/public_html/lib/plugins/blog/helper.php @@ -0,0 +1,187 @@ + + */ + +// must be run within Dokuwiki +if (!defined('DOKU_INC')) die(); + +class helper_plugin_blog extends DokuWiki_Plugin { + + var $sort = ''; // sort key + + /** + * Constructor + */ + function helper_plugin_blog() { + global $conf; + + // load sort key from settings + $this->sort = $this->getConf('sortkey'); + } + + function getMethods() { + $result = array(); + $result[] = array( + 'name' => 'getBlog', + 'desc' => 'returns blog entries in reverse chronological order', + 'params' => array( + 'namespace' => 'string', + 'number (optional)' => 'integer'), + 'return' => array('pages' => 'array'), + ); + $result[] = array( + 'name' => 'getFlags', + 'desc' => 'get values for flags, or defaults where not supplied', + 'params' => array('flags' => 'array'), + 'return' => array('flags' => 'array'), + ); + return $result; + } + + /** + * Get blog entries from a given namespace + */ + function getBlog($ns, $num = NULL, $author = NULL) { + global $conf; + + // add pages in given namespace + $result = array(); + global $conf; + + require_once (DOKU_INC.'inc/search.php'); + + $pages = array(); + $unique_keys_memoize = array(); + + $dir = str_replace(':', '/', $ns); + search($pages, $conf['datadir'], 'search_pagename', array('query' => '.txt'), $dir); + + foreach ($pages as $page) { + $id = $page['id']; + $file = wikiFN($id); + + // do some checks first + if (isHiddenPage($id)) continue; // skip excluded pages + $excluded_pages = $this->getConf('excluded_pages'); + if (strlen($excluded_pages) > 0 && preg_match($excluded_pages, $id)) continue; + if (($ns) && (strpos($id, $ns.':') !== 0)) continue; // filter namespaces + if (!@file_exists($file)) continue; // skip deleted + + $perm = auth_quickaclcheck($id); + if ($perm < AUTH_READ) continue; // check ACL + + // skip drafts unless for users with create priviledge + $meta = p_get_metadata($id, '', false); + $draft = ($meta['type'] == 'draft'); + if ($draft && ($perm < AUTH_CREATE)) continue; + + // filter by author + if ($author && ($meta['user'] != $author)) continue; + + $date = $meta['date']['modified']; + if (!$date) $date = filemtime(wikiFN($id)); + if ($this->sort != 'mdate') { + $cdate = $meta['date']['created']; + if (!$cdate) $cdate = filectime(wikiFN($id)); + // prefer the date further in the past: + $date = min($date, $cdate); + } + + if (isset($meta['title'])) { + $title = $meta['title']; + } else { + $title = $id; + } + + // determine the sort key + if ($this->sort == 'id') $key = $id; + elseif ($this->sort == 'pagename') $key = noNS($id); + elseif ($this->sort == 'title') $key = $title; + else $key = $date; + + // get a unique sortable key + $key = $this->_uniqueKey($key, $unique_keys_memoize); + + $result[$key] = array( + 'id' => $id, + 'title' => $title, + 'date' => $date, + 'user' => $meta['creator'], + 'desc' => $meta['description']['abstract'], + 'exists' => true, + 'perm' => $perm, + 'draft' => $draft, + ); + } + + // finally sort by sort key + if ($this->getConf('sortorder') == 'ascending') ksort($result); + else krsort($result); + + if (is_numeric($num)) $result = array_slice($result, 0, $num); + + return $result; + } + + /** + * Turn a list of user-supplied flags into a complete list of all flags + * required by the Blog plugin (not including those for the Include plugin), + * using global configuration options or plugin defaults where flags have + * not been supplied. + * + * Currently handles 'formpos' and 'newentrytitle'. + * + * @author Sam Wilson + * @param array $setflags Flags that have been set by the user + * @return array All flags required by the Blog plugin (only) + */ + function getFlags($setflags) { + $flags = array(); + + // Form Position + $flags['formpos'] = $this->getConf('formposition'); + if(in_array('topform', $setflags)) { + $flags['formpos'] = 'top'; + }elseif(in_array('bottomform', $setflags)) { + $flags['formpos'] = 'bottom'; + }elseif(in_array('noform', $setflags)) { + $flags['formpos'] = 'none'; + } + + // New Entry Title + $newentrytitle = preg_grep('|newentrytitle=.*|', $setflags); + if (count($newentrytitle) > 0) { + $newentrytitle = array_pop(explode('=', array_pop($newentrytitle), 2)); + if (!empty($newentrytitle)) { + $flags['newentrytitle'] = $newentrytitle; + } + } elseif ($conf_title = $this->getConf('newentrytitle')) { + $flags['newentrytitle'] = $conf_title; + } else { + $flags['newentrytitle'] = $this->getLang('newentry'); + } + + return $flags; + } + + /** + * Function to create sortable, unique array keys + * + * @author Esther Brunner + * @author Ilya S. Lebedev + * @author Balazs Attila-Mihaly + */ + function _uniqueKey($key, &$unique_keys_memoize){ + //convert numeric keys to string + if (is_numeric($key)) + $key = sprintf('%08x', $key); + if (!array_key_exists($key, $unique_keys_memoize)) + $unique_keys_memoize[$key] = 0; + + return sprintf('%s_%s', $key, $unique_keys_memoize[$key]++); + } + +} +// vim:ts=4:sw=4:et:enc=utf-8: diff --git a/public_html/lib/plugins/blog/lang/ar/lang.php b/public_html/lib/plugins/blog/lang/ar/lang.php new file mode 100644 index 00000000..68c0ee7f --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ar/lang.php @@ -0,0 +1,36 @@ + + */ + +// custom language strings for the plugin +$lang['blog'] = 'مدوّنة'; +$lang['older'] = 'تدوينات قديمة'; +$lang['newer'] = 'تدوينات جديدة'; +$lang['newentry'] = 'إضافة تدوينة جديدة:'; + +$lang['missing_includeplugin'] = 'إضافة "Include" يجب أن تكون منزلّة ومفعّلة لتعمل المدونّة.'; +$lang['missing_pagelistplugin'] = 'إضافة "Pagelist" يجب أن تكون منزلّة ومفعّلة لتعمل قوائم المدوّنات.'; +$lang['missing_tagplugin'] = 'إضافة "Tag" يجب أن تكون منزلّة ومفعّلة لتعمل سحابة الوسوم.'; + +$lang['autoarchive'] = '%d مشاركة لشهر %s %s'; +$lang['month_01'] = 'كانون الثاني'; +$lang['month_02'] = 'شباط'; +$lang['month_03'] = 'آذار'; +$lang['month_04'] = 'نيسان'; +$lang['month_05'] = 'أيار'; +$lang['month_06'] = 'حزيران'; +$lang['month_07'] = 'تموز'; +$lang['month_08'] = 'آب'; +$lang['month_09'] = 'أيلول'; +$lang['month_10'] = 'تشرين الأول'; +$lang['month_11'] = 'تشرين الثاني'; +$lang['month_12'] = 'كانون الأول'; + +$lang['entries'] = 'مُدخلات'; +$lang['entry'] = 'مُدخلة'; +$lang['archive_title'] = 'أرشيف المدوّنة'; +//Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/public_html/lib/plugins/blog/lang/ar/settings.php b/public_html/lib/plugins/blog/lang/ar/settings.php new file mode 100644 index 00000000..65e5aab0 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ar/settings.php @@ -0,0 +1,35 @@ + + */ + +// for the configuration manager +$lang['namespace'] = 'فضاء أسماء إفتراضي للمدوّنة'; + +$lang['formposition'] = 'موقع التدوينة الجديدة'; +$lang['formposition_o_top'] = 'أعلى'; +$lang['formposition_o_bottom'] = 'أسفل'; + +$lang['dateprefix'] = 'بادئة التاريخ للتدوينات الجديدة'; + +$lang['sortkey'] = 'ترتيب التدوينات حسب:'; +$lang['sortkey_o_cdate'] = 'تاريخ الإنشاء'; +$lang['sortkey_o_pagename'] = 'إسم الصفحة'; +$lang['sortkey_o_id'] = 'رقم الصفحة'; + +$lang['sortkey_o_mdate'] = 'تاريخ التعديل'; +$lang['sortkey_o_title'] = 'العنوان'; + +$lang['sortorder'] = 'ترتيباً'; +$lang['sortorder_o_ascending'] = 'تصاعدياً'; +$lang['sortorder_o_descending'] = 'تنازلياً'; + +$lang['excluded_pages'] = 'استثناء صفحات معيّنة من قوائم المدوّنات (يتطلّب تعبيراً نمطيّاً RegEx)'; + +$lang['showhistorgram'] = 'عرض الرسم البياني عند عرض الأرشيف'; +$lang['max_months'] = 'العدد الأقصى للأشهر المعروضة في الرسم البياني'; +$lang['histogram_height'] = 'طول الرسم البياني (بكسل)'; +//Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/public_html/lib/plugins/blog/lang/cs/lang.php b/public_html/lib/plugins/blog/lang/cs/lang.php new file mode 100644 index 00000000..07af210f --- /dev/null +++ b/public_html/lib/plugins/blog/lang/cs/lang.php @@ -0,0 +1,25 @@ + + * @author Vojta Olsan + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'Starší zápisky'; +$lang['newer'] = 'Novější zápisky'; +$lang['newentry'] = 'Nový zápisek:'; +$lang['month_01'] = 'leden'; +$lang['month_02'] = 'únor'; +$lang['month_03'] = 'březen'; +$lang['month_04'] = 'duben'; +$lang['month_05'] = 'květen'; +$lang['month_06'] = 'červen'; +$lang['month_07'] = 'červenec'; +$lang['month_08'] = 'srpen'; +$lang['month_09'] = 'září'; +$lang['month_10'] = 'říjen'; +$lang['month_11'] = 'listopad'; +$lang['month_12'] = 'prosinec'; +$lang['archive_title'] = 'Historie blogu'; diff --git a/public_html/lib/plugins/blog/lang/cs/settings.php b/public_html/lib/plugins/blog/lang/cs/settings.php new file mode 100644 index 00000000..f27b53f4 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/cs/settings.php @@ -0,0 +1,25 @@ + + * @author Vojta Olsan + */ +$lang['namespace'] = 'implicitní jmenný prostor pro blog'; +$lang['formposition'] = 'pozice pole pro zadání nového příspěvku'; +$lang['formposition_o_top'] = 'nahoře'; +$lang['formposition_o_bottom'] = 'dole'; +$lang['formposition_o_none'] = 'žádný'; +$lang['dateprefix'] = 'přidat datumový prefix novým příspěvkům'; +$lang['sortkey'] = 'razení zápisků podle'; +$lang['sortkey_o_cdate'] = 'data vytvoření'; +$lang['sortkey_o_mdate'] = 'data modifikace'; +$lang['sortkey_o_pagename'] = 'názvu stránky'; +$lang['sortkey_o_id'] = 'ID stránky'; +$lang['sortkey_o_title'] = 'název'; +$lang['sortorder'] = 'pořadí'; +$lang['sortorder_o_ascending'] = 'vzestupné'; +$lang['sortorder_o_descending'] = 'sestupné'; +$lang['max_months'] = 'Maximální počet měsíců zobrazených v histogramu'; +$lang['histogram_height'] = 'Výška histogramu (v pixelech)'; diff --git a/public_html/lib/plugins/blog/lang/da/lang.php b/public_html/lib/plugins/blog/lang/da/lang.php new file mode 100644 index 00000000..2d2eee29 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/da/lang.php @@ -0,0 +1,31 @@ + + * @author Soren Birk + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'Ældre indlæg'; +$lang['newer'] = 'Nyere indlæg'; +$lang['newentry'] = 'Nyt indlæg:'; +$lang['missing_includeplugin'] = 'Include plugin skal være installeret for at bloggen virker.'; +$lang['missing_pagelistplugin'] = 'Pagelist plugin skal være installeret for at arkivlister virker.'; +$lang['missing_tagplugin'] = 'Tag plugin skal være installeret for at benytte denne funktion.'; +$lang['autoarchive'] = '%1$d indlæg i %2$s %3$s'; +$lang['month_01'] = 'januar'; +$lang['month_02'] = 'februar'; +$lang['month_03'] = 'marts'; +$lang['month_04'] = 'april'; +$lang['month_05'] = 'maj'; +$lang['month_06'] = 'juni'; +$lang['month_07'] = 'juli'; +$lang['month_08'] = 'august'; +$lang['month_09'] = 'september'; +$lang['month_10'] = 'oktober'; +$lang['month_11'] = 'november'; +$lang['month_12'] = 'december'; +$lang['entries'] = 'indlæg'; +$lang['entry'] = 'indlæg'; +$lang['archive_title'] = 'Blog Arkiv'; diff --git a/public_html/lib/plugins/blog/lang/da/settings.php b/public_html/lib/plugins/blog/lang/da/settings.php new file mode 100644 index 00000000..52ff3c2a --- /dev/null +++ b/public_html/lib/plugins/blog/lang/da/settings.php @@ -0,0 +1,24 @@ + + * @author Soren Birk + */ +$lang['namespace'] = 'standard navnerum til blog'; +$lang['formposition'] = 'position af formular til nyt indlæg'; +$lang['formposition_o_top'] = 'top'; +$lang['formposition_o_bottom'] = 'bund'; +$lang['formposition_o_none'] = 'intet'; +$lang['dateprefix'] = 'foruddefineret dato for nye indlæg IDs'; +$lang['sortkey'] = 'sortér blog indlæg efter'; +$lang['sortkey_o_cdate'] = 'dato for oprettelse'; +$lang['sortkey_o_mdate'] = 'dato for seneste ændring'; +$lang['sortkey_o_pagename'] = 'sidenavn'; +$lang['sortkey_o_id'] = 'side id'; +$lang['sortkey_o_title'] = 'titel'; +$lang['sortorder'] = 'sorteringsrækkefølge'; +$lang['sortorder_o_ascending'] = 'stigende'; +$lang['sortorder_o_descending'] = 'faldende'; +$lang['excluded_pages'] = 'Udeluk bestemte sider fra blog listen (kræver regulært udtryk)'; diff --git a/public_html/lib/plugins/blog/lang/de-informal/lang.php b/public_html/lib/plugins/blog/lang/de-informal/lang.php new file mode 100644 index 00000000..f4602eef --- /dev/null +++ b/public_html/lib/plugins/blog/lang/de-informal/lang.php @@ -0,0 +1,31 @@ + + * @author Michael Hamann + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'Ältere Einträge'; +$lang['newer'] = 'Neuere Einträge'; +$lang['newentry'] = 'Neuer Blogeintrag:'; +$lang['missing_includeplugin'] = 'Ohne das Include Plugin funktioniert das Blog nicht.'; +$lang['missing_pagelistplugin'] = 'Ohne das Pagelist Plugin funktionieren Archivlisten nicht.'; +$lang['missing_tagplugin'] = 'Um Tag-Verfeinerungen zu verwenden, muss das Tag Plugin installiert sein.'; +$lang['autoarchive'] = '%1$d Beiträge für den %2$s %3$s'; +$lang['month_01'] = 'Januar'; +$lang['month_02'] = 'Februar'; +$lang['month_03'] = 'März'; +$lang['month_04'] = 'April'; +$lang['month_05'] = 'Mai'; +$lang['month_06'] = 'Juni'; +$lang['month_07'] = 'Juli'; +$lang['month_08'] = 'August'; +$lang['month_09'] = 'September'; +$lang['month_10'] = 'Oktober'; +$lang['month_11'] = 'November'; +$lang['month_12'] = 'Dezember'; +$lang['entries'] = 'Einträge'; +$lang['entry'] = 'Eintrag'; +$lang['archive_title'] = 'Blog-Archiv'; diff --git a/public_html/lib/plugins/blog/lang/de-informal/settings.php b/public_html/lib/plugins/blog/lang/de-informal/settings.php new file mode 100644 index 00000000..c8d396a0 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/de-informal/settings.php @@ -0,0 +1,29 @@ + + * @author Michael Hamann + * @author Dominik Eckelmann + */ +$lang['namespace'] = 'Standard-Namensraum für Blog'; +$lang['formposition'] = 'Position des Formulars für neue Blogeinträge'; +$lang['formposition_o_top'] = 'oben'; +$lang['formposition_o_bottom'] = 'unten'; +$lang['formposition_o_none'] = 'Keine'; +$lang['newentrytitle'] = 'Titel des Formulars um neue Einträge anzulegen'; +$lang['dateprefix'] = 'Datum den IDs neuer Seiten voranstellen'; +$lang['sortkey'] = 'Blogeinträge sortieren nach:'; +$lang['sortkey_o_cdate'] = 'Erstellungsdatum'; +$lang['sortkey_o_mdate'] = 'Änderungsdatum'; +$lang['sortkey_o_pagename'] = 'Seitenname'; +$lang['sortkey_o_id'] = 'Seiten-ID'; +$lang['sortkey_o_title'] = 'Titel'; +$lang['sortorder'] = 'Sortierrichtung'; +$lang['sortorder_o_ascending'] = 'aufsteigend'; +$lang['sortorder_o_descending'] = 'absteigend'; +$lang['excluded_pages'] = 'Seiten von den Blog-Auflistungen ausschließen (regulärer Ausdruck)'; +$lang['showhistogram'] = 'Ein Histogramm auf den Archiv-Seiten anzeigen'; +$lang['max_months'] = 'Maximale Anzahl an Monaten die im Histogramm angezeigt werden sollen'; +$lang['histogram_height'] = 'Höhe des Histogramms (in Pixeln)'; diff --git a/public_html/lib/plugins/blog/lang/de/lang.php b/public_html/lib/plugins/blog/lang/de/lang.php new file mode 100644 index 00000000..f4602eef --- /dev/null +++ b/public_html/lib/plugins/blog/lang/de/lang.php @@ -0,0 +1,31 @@ + + * @author Michael Hamann + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'Ältere Einträge'; +$lang['newer'] = 'Neuere Einträge'; +$lang['newentry'] = 'Neuer Blogeintrag:'; +$lang['missing_includeplugin'] = 'Ohne das Include Plugin funktioniert das Blog nicht.'; +$lang['missing_pagelistplugin'] = 'Ohne das Pagelist Plugin funktionieren Archivlisten nicht.'; +$lang['missing_tagplugin'] = 'Um Tag-Verfeinerungen zu verwenden, muss das Tag Plugin installiert sein.'; +$lang['autoarchive'] = '%1$d Beiträge für den %2$s %3$s'; +$lang['month_01'] = 'Januar'; +$lang['month_02'] = 'Februar'; +$lang['month_03'] = 'März'; +$lang['month_04'] = 'April'; +$lang['month_05'] = 'Mai'; +$lang['month_06'] = 'Juni'; +$lang['month_07'] = 'Juli'; +$lang['month_08'] = 'August'; +$lang['month_09'] = 'September'; +$lang['month_10'] = 'Oktober'; +$lang['month_11'] = 'November'; +$lang['month_12'] = 'Dezember'; +$lang['entries'] = 'Einträge'; +$lang['entry'] = 'Eintrag'; +$lang['archive_title'] = 'Blog-Archiv'; diff --git a/public_html/lib/plugins/blog/lang/de/settings.php b/public_html/lib/plugins/blog/lang/de/settings.php new file mode 100644 index 00000000..c8d396a0 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/de/settings.php @@ -0,0 +1,29 @@ + + * @author Michael Hamann + * @author Dominik Eckelmann + */ +$lang['namespace'] = 'Standard-Namensraum für Blog'; +$lang['formposition'] = 'Position des Formulars für neue Blogeinträge'; +$lang['formposition_o_top'] = 'oben'; +$lang['formposition_o_bottom'] = 'unten'; +$lang['formposition_o_none'] = 'Keine'; +$lang['newentrytitle'] = 'Titel des Formulars um neue Einträge anzulegen'; +$lang['dateprefix'] = 'Datum den IDs neuer Seiten voranstellen'; +$lang['sortkey'] = 'Blogeinträge sortieren nach:'; +$lang['sortkey_o_cdate'] = 'Erstellungsdatum'; +$lang['sortkey_o_mdate'] = 'Änderungsdatum'; +$lang['sortkey_o_pagename'] = 'Seitenname'; +$lang['sortkey_o_id'] = 'Seiten-ID'; +$lang['sortkey_o_title'] = 'Titel'; +$lang['sortorder'] = 'Sortierrichtung'; +$lang['sortorder_o_ascending'] = 'aufsteigend'; +$lang['sortorder_o_descending'] = 'absteigend'; +$lang['excluded_pages'] = 'Seiten von den Blog-Auflistungen ausschließen (regulärer Ausdruck)'; +$lang['showhistogram'] = 'Ein Histogramm auf den Archiv-Seiten anzeigen'; +$lang['max_months'] = 'Maximale Anzahl an Monaten die im Histogramm angezeigt werden sollen'; +$lang['histogram_height'] = 'Höhe des Histogramms (in Pixeln)'; diff --git a/public_html/lib/plugins/blog/lang/en/lang.php b/public_html/lib/plugins/blog/lang/en/lang.php new file mode 100644 index 00000000..c3f63ee9 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/en/lang.php @@ -0,0 +1,36 @@ + + */ + +// custom language strings for the plugin +$lang['blog'] = 'Blog'; +$lang['older'] = 'Older entries'; +$lang['newer'] = 'Newer entries'; +$lang['newentry'] = 'New blog entry:'; + +$lang['missing_includeplugin'] = 'The Include Plugin must be installed for the blog to work.'; +$lang['missing_pagelistplugin'] = 'The Pagelist Plugin must be installed for archive lists to work.'; +$lang['missing_tagplugin'] = 'The Tag Plugin must be installed to use tag refinements.'; + +$lang['autoarchive'] = '%1$d Post(s) for %2$s %3$s'; +$lang['month_01'] = 'January'; +$lang['month_02'] = 'February'; +$lang['month_03'] = 'March'; +$lang['month_04'] = 'April'; +$lang['month_05'] = 'May'; +$lang['month_06'] = 'June'; +$lang['month_07'] = 'July'; +$lang['month_08'] = 'August'; +$lang['month_09'] = 'September'; +$lang['month_10'] = 'October'; +$lang['month_11'] = 'November'; +$lang['month_12'] = 'December'; + +$lang['entries'] = 'entries'; +$lang['entry'] = 'entry'; +$lang['archive_title'] = 'Blog History'; +//Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/public_html/lib/plugins/blog/lang/en/settings.php b/public_html/lib/plugins/blog/lang/en/settings.php new file mode 100644 index 00000000..a1128969 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/en/settings.php @@ -0,0 +1,38 @@ + + */ + +// for the configuration manager +$lang['namespace'] = 'default namespace for blog'; + +$lang['formposition'] = 'position of the new entry form'; +$lang['formposition_o_top'] = 'top'; +$lang['formposition_o_bottom'] = 'bottom'; +$lang['formposition_o_none'] = 'none'; + +$lang['newentrytitle'] = 'title of the new entry form'; + +$lang['dateprefix'] = 'prefix date to new entry IDs'; + +$lang['sortkey'] = 'sort blog entries by'; +$lang['sortkey_o_cdate'] = 'creation date'; +$lang['sortkey_o_mdate'] = 'modification date'; +$lang['sortkey_o_pagename'] = 'page name'; +$lang['sortkey_o_id'] = 'page ID'; +$lang['sortkey_o_title'] = 'title'; + +$lang['sortorder'] = 'sort order'; +$lang['sortorder_o_ascending'] = 'ascending'; +$lang['sortorder_o_descending'] = 'descending'; + +$lang['excluded_pages'] = 'exclude certain pages from blog listing (regular expression required)'; + +$lang['showhistogram'] = 'Display histogram on archive rendering'; +$lang['max_months'] = 'Max months to show in the histogram'; +$lang['histogram_height'] = 'Height of the histogram (in pixels)'; + +// vim:ts=4:sw=4:et:enc=utf-8: diff --git a/public_html/lib/plugins/blog/lang/eo/lang.php b/public_html/lib/plugins/blog/lang/eo/lang.php new file mode 100644 index 00000000..5af3c5df --- /dev/null +++ b/public_html/lib/plugins/blog/lang/eo/lang.php @@ -0,0 +1,31 @@ + + * @author Robert Bogenschneider + */ +$lang['blog'] = 'Blogo'; +$lang['older'] = 'Pli malnovaj enskriboj'; +$lang['newer'] = 'Pli novaj enskriboj'; +$lang['newentry'] = 'Nova blog-enskribo:'; +$lang['missing_includeplugin'] = 'La "Include"-kromaĵo devas esti instalita por uzi la blogon.'; +$lang['missing_pagelistplugin'] = 'La "Pagelist"-kromaĵo devas esti instalita por uzi arkivlistojn.'; +$lang['missing_tagplugin'] = 'La "Tag"-kromaĵo devas esti instalita por ŝanĝi etikedojn.'; +$lang['autoarchive'] = '%1$d Enskribo(j) por %2$s %3$s'; +$lang['month_01'] = 'Januaro'; +$lang['month_02'] = 'Februaro'; +$lang['month_03'] = 'Marto'; +$lang['month_04'] = 'Aprilo'; +$lang['month_05'] = 'Majo'; +$lang['month_06'] = 'Junio'; +$lang['month_07'] = 'Julio'; +$lang['month_08'] = 'Aŭgusto'; +$lang['month_09'] = 'Septembro'; +$lang['month_10'] = 'Oktobro'; +$lang['month_11'] = 'Novembro'; +$lang['month_12'] = 'Decembro'; +$lang['entries'] = 'enskriboj'; +$lang['entry'] = 'enskribo'; +$lang['archive_title'] = 'Blog-historio'; diff --git a/public_html/lib/plugins/blog/lang/eo/settings.php b/public_html/lib/plugins/blog/lang/eo/settings.php new file mode 100644 index 00000000..baee492c --- /dev/null +++ b/public_html/lib/plugins/blog/lang/eo/settings.php @@ -0,0 +1,28 @@ + + * @author Robert Bogenschneider + */ +$lang['namespace'] = 'defaŭlta nomspaco por la blogo'; +$lang['formposition'] = 'pozicio de formularo de nova blog-enskribo'; +$lang['formposition_o_top'] = 'supro'; +$lang['formposition_o_bottom'] = 'malsupro'; +$lang['formposition_o_none'] = 'neniu'; +$lang['newentrytitle'] = 'Titolo de nova enmet-formularo'; +$lang['dateprefix'] = 'prefikso al novaj enskrib-ID-oj'; +$lang['sortkey'] = 'ordigi blog-enskriboj laŭ'; +$lang['sortkey_o_cdate'] = 'kreodato'; +$lang['sortkey_o_mdate'] = 'modifodato'; +$lang['sortkey_o_pagename'] = 'paĝ-nomo'; +$lang['sortkey_o_id'] = 'paĝ-identigilo'; +$lang['sortkey_o_title'] = 'titolo'; +$lang['sortorder'] = 'ordiga ordo'; +$lang['sortorder_o_ascending'] = 'kreskante'; +$lang['sortorder_o_descending'] = 'malkreskante'; +$lang['excluded_pages'] = 'ekskludi certajn paĝojn de bloglistado (per regula esprimo)'; +$lang['showhistogram'] = 'Montri histogramon de arkivado'; +$lang['max_months'] = 'Montri maksimume tiom da monatoj en la histogramo'; +$lang['histogram_height'] = 'Alteco de la histogramo (en pikseloj)'; diff --git a/public_html/lib/plugins/blog/lang/es/lang.php b/public_html/lib/plugins/blog/lang/es/lang.php new file mode 100644 index 00000000..68ef65ab --- /dev/null +++ b/public_html/lib/plugins/blog/lang/es/lang.php @@ -0,0 +1,30 @@ + + * @author r0sk + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'Entradas anteriores'; +$lang['newer'] = 'Entradas nuevas'; +$lang['newentry'] = 'Nueva entrada en el blog:'; +$lang['missing_includeplugin'] = 'El plugin Include debe estar instalado para que el blog funcione.'; +$lang['missing_pagelistplugin'] = 'El plugin Pagelist debe estar instalado para que funcionen los listados de archivo.'; +$lang['missing_tagplugin'] = 'El plugin Tag debe estar instalado para que funcionen los tags.'; +$lang['month_01'] = 'Enero'; +$lang['month_02'] = 'Febrero'; +$lang['month_03'] = 'Marzo'; +$lang['month_04'] = 'Abril'; +$lang['month_05'] = 'Mayo'; +$lang['month_06'] = 'Junio'; +$lang['month_07'] = 'Julio'; +$lang['month_08'] = 'Agosto'; +$lang['month_09'] = 'Septiembre'; +$lang['month_10'] = 'Octubre'; +$lang['month_11'] = 'Noviembre'; +$lang['month_12'] = 'Diciembre'; +$lang['entries'] = 'entradas'; +$lang['entry'] = 'entrada'; +$lang['archive_title'] = 'Histórico'; diff --git a/public_html/lib/plugins/blog/lang/es/settings.php b/public_html/lib/plugins/blog/lang/es/settings.php new file mode 100644 index 00000000..d86f15a6 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/es/settings.php @@ -0,0 +1,23 @@ + + * @author r0sk + */ +$lang['namespace'] = 'namespace predeterminado para el blog'; +$lang['formposition'] = 'posición del formulario de nueva entrada'; +$lang['formposition_o_top'] = 'arriba'; +$lang['formposition_o_bottom'] = 'abajo'; +$lang['formposition_o_none'] = 'ninguna'; +$lang['newentrytitle'] = 'título del formulario de nueva entrada'; +$lang['sortkey'] = 'ordenar entradas por'; +$lang['sortkey_o_cdate'] = 'fecha de creación'; +$lang['sortkey_o_mdate'] = 'fecha de modificación'; +$lang['sortkey_o_pagename'] = 'nombre de página'; +$lang['sortkey_o_id'] = 'ID de página'; +$lang['sortkey_o_title'] = 'título'; +$lang['sortorder'] = 'ordenamiento'; +$lang['sortorder_o_ascending'] = 'ascendente'; +$lang['sortorder_o_descending'] = 'descendente'; diff --git a/public_html/lib/plugins/blog/lang/fa/lang.php b/public_html/lib/plugins/blog/lang/fa/lang.php new file mode 100644 index 00000000..ca6b600f --- /dev/null +++ b/public_html/lib/plugins/blog/lang/fa/lang.php @@ -0,0 +1,30 @@ + + */ +$lang['blog'] = 'وبلاگ'; +$lang['older'] = 'نوشته‌های قدیمی‌تر'; +$lang['newer'] = 'نوشته‌های جدیدتر'; +$lang['newentry'] = 'ثبت وبلاگ جدید:'; +$lang['missing_includeplugin'] = 'برای کارکردن وبلاگ نیاز به نصب پلاگین است.'; +$lang['missing_pagelistplugin'] = 'پلاگینPagelist باید برای آرشیوبندی نصب شود.'; +$lang['missing_tagplugin'] = 'پلاگین برچسب باید نصب شود تا اصطلاحات آن استفاده شود.'; +$lang['autoarchive'] = '%1$d مطلب (s) برای %2$s %3$s'; +$lang['month_01'] = 'ژانویه'; +$lang['month_02'] = 'فوریه'; +$lang['month_03'] = 'مارس'; +$lang['month_04'] = 'آوریل'; +$lang['month_05'] = 'می'; +$lang['month_06'] = 'ژوئن'; +$lang['month_07'] = 'جولای'; +$lang['month_08'] = 'اوت'; +$lang['month_09'] = 'سپتامبر'; +$lang['month_10'] = 'اکتبر'; +$lang['month_11'] = 'نوامبر'; +$lang['month_12'] = 'دسامبر'; +$lang['entries'] = 'ورودی‌ها'; +$lang['entry'] = 'ورودی'; +$lang['archive_title'] = 'تاریخچه وبلاگ'; diff --git a/public_html/lib/plugins/blog/lang/fa/settings.php b/public_html/lib/plugins/blog/lang/fa/settings.php new file mode 100644 index 00000000..4c72e67b --- /dev/null +++ b/public_html/lib/plugins/blog/lang/fa/settings.php @@ -0,0 +1,27 @@ + + */ +$lang['namespace'] = 'فضای نام پیش‌فرض برای وبلاگ'; +$lang['formposition'] = 'موقعیت فرم جدید وارد شده'; +$lang['formposition_o_top'] = 'بالا'; +$lang['formposition_o_bottom'] = 'پایین'; +$lang['formposition_o_none'] = 'هیچ'; +$lang['newentrytitle'] = 'عنوان فرم جدید وارد شده'; +$lang['dateprefix'] = 'تاریخ پیشوند آیدی‌های ورودی‌های جدید'; +$lang['sortkey'] = 'مرتب سازی مطالب وبلاگ براساس'; +$lang['sortkey_o_cdate'] = 'تاریخ ایجاد'; +$lang['sortkey_o_mdate'] = 'تاریخ اصلاح'; +$lang['sortkey_o_pagename'] = 'نام صفحه'; +$lang['sortkey_o_id'] = 'آیدی صفحه'; +$lang['sortkey_o_title'] = 'عنوان'; +$lang['sortorder'] = 'مرتب سازی سفارشی'; +$lang['sortorder_o_ascending'] = 'صعودی'; +$lang['sortorder_o_descending'] = 'نزولی'; +$lang['excluded_pages'] = 'به غیر از صفحه‌های خاص از لیست وبلاگ (عبارت منظم مورد نیاز است)'; +$lang['showhistogram'] = 'نمایش بافت‌نگار در تفسیر آرشیو'; +$lang['max_months'] = 'حداکثر ماه‌ها برای نمایش بافت‌نگار'; +$lang['histogram_height'] = 'ارتفاع بافت‌نگار (به پیکسل)'; diff --git a/public_html/lib/plugins/blog/lang/fr/lang.php b/public_html/lib/plugins/blog/lang/fr/lang.php new file mode 100644 index 00000000..c786d5f9 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/fr/lang.php @@ -0,0 +1,32 @@ + + * @author Stanislas Reltgen + * @author Florent Chabaud + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'Anciens billets'; +$lang['newer'] = 'Billets récents'; +$lang['newentry'] = 'Nouveau billet :'; +$lang['missing_includeplugin'] = 'Le module "include" doit être installé pour que le module "blog" puisse fonctionner.'; +$lang['missing_pagelistplugin'] = 'Le module "pagelist" doit être installé pour que les archives puissent fonctionner.'; +$lang['missing_tagplugin'] = 'Le module "tag" doit être installé pour pouvoir en bénéficier dans le module "blog".'; +$lang['autoarchive'] = '%1$d billet(s) pour %2$s %3$s'; +$lang['month_01'] = 'janvier'; +$lang['month_02'] = 'février'; +$lang['month_03'] = 'mars'; +$lang['month_04'] = 'avril'; +$lang['month_05'] = 'mai'; +$lang['month_06'] = 'juin'; +$lang['month_07'] = 'juillet'; +$lang['month_08'] = 'août'; +$lang['month_09'] = 'septembre'; +$lang['month_10'] = 'octobre'; +$lang['month_11'] = 'novembre'; +$lang['month_12'] = 'décembre'; +$lang['entries'] = 'billets'; +$lang['entry'] = 'billet'; +$lang['archive_title'] = 'Historique du blog'; diff --git a/public_html/lib/plugins/blog/lang/fr/settings.php b/public_html/lib/plugins/blog/lang/fr/settings.php new file mode 100644 index 00000000..21902e6b --- /dev/null +++ b/public_html/lib/plugins/blog/lang/fr/settings.php @@ -0,0 +1,29 @@ + + * @author Florent Chabaud + * @author Nicolas Friedli + */ +$lang['namespace'] = 'espace de nom par défaut pour le blog'; +$lang['formposition'] = 'position du formulaire de saisie de nouveau billet'; +$lang['formposition_o_top'] = 'haut'; +$lang['formposition_o_bottom'] = 'bas'; +$lang['formposition_o_none'] = 'aucun'; +$lang['newentrytitle'] = 'titre de la nouvelle entrée de formulaire'; +$lang['dateprefix'] = 'date préfixant les IDs des nouveaux billets'; +$lang['sortkey'] = 'trier les billets du blog par:'; +$lang['sortkey_o_cdate'] = 'date de création'; +$lang['sortkey_o_mdate'] = 'date de modification'; +$lang['sortkey_o_pagename'] = 'nom de la page'; +$lang['sortkey_o_id'] = 'ID de la page'; +$lang['sortkey_o_title'] = 'titre'; +$lang['sortorder'] = 'ordre de tri'; +$lang['sortorder_o_ascending'] = 'croissant'; +$lang['sortorder_o_descending'] = 'décroissant'; +$lang['excluded_pages'] = 'exclure certaines pages des archives du blog (expression régulière requise)'; +$lang['showhistogram'] = 'Afficher l\'histogramme du rendu des archives'; +$lang['max_months'] = 'Nombre maximal de mois à représenter dans l\'histogramme'; +$lang['histogram_height'] = 'Hauteur de l\'histogramme (en pixels)'; diff --git a/public_html/lib/plugins/blog/lang/hu/lang.php b/public_html/lib/plugins/blog/lang/hu/lang.php new file mode 100644 index 00000000..85f47c4a --- /dev/null +++ b/public_html/lib/plugins/blog/lang/hu/lang.php @@ -0,0 +1,32 @@ + + * @author Serenity87HUN + * @author Marina Vladi + */ +$lang['blog'] = 'Napló'; +$lang['older'] = 'régi bejegyzések'; +$lang['newer'] = 'új bejegyzések'; +$lang['newentry'] = 'Új bejegyzés:'; +$lang['missing_includeplugin'] = 'Az \'Include Plugin\'-t telepítenünk kell a napló (blog) működéséhez.'; +$lang['missing_pagelistplugin'] = 'A \'Pagelist Plugin\'-t telepítenünk kell az archiválási listák működéséhez.'; +$lang['missing_tagplugin'] = 'A \'Tag Plugin\'-t telepítenünk kell a címkék használatához.'; +$lang['autoarchive'] = '%1$d hozzászólás ehhez: %2$s %3$s'; +$lang['month_01'] = 'Január'; +$lang['month_02'] = 'Február'; +$lang['month_03'] = 'Március'; +$lang['month_04'] = 'Április'; +$lang['month_05'] = 'Május'; +$lang['month_06'] = 'Június'; +$lang['month_07'] = 'Július'; +$lang['month_08'] = 'Augusztus'; +$lang['month_09'] = 'Szeptember'; +$lang['month_10'] = 'Október'; +$lang['month_11'] = 'November'; +$lang['month_12'] = 'December'; +$lang['entries'] = 'bejegyzés'; +$lang['entry'] = 'bejegyzés'; +$lang['archive_title'] = 'Naplótörténet'; diff --git a/public_html/lib/plugins/blog/lang/hu/settings.php b/public_html/lib/plugins/blog/lang/hu/settings.php new file mode 100644 index 00000000..01a0aff7 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/hu/settings.php @@ -0,0 +1,29 @@ + + * @author Serenity87HUN + * @author Marina Vladi + */ +$lang['namespace'] = 'napló alapértelmezett névtere'; +$lang['formposition'] = 'új bejegyzés űrlapjának helye'; +$lang['formposition_o_top'] = 'felül'; +$lang['formposition_o_bottom'] = 'alul'; +$lang['formposition_o_none'] = 'sehol'; +$lang['newentrytitle'] = 'új bejegyzés űrlapcíme'; +$lang['dateprefix'] = 'Dátumelőtag új bejegyzések ID-jéhez'; +$lang['sortkey'] = 'naplóbejegyzések rendezése eszerint'; +$lang['sortkey_o_cdate'] = 'készítés dátuma'; +$lang['sortkey_o_mdate'] = 'módosítás dátuma'; +$lang['sortkey_o_pagename'] = 'oldalnév'; +$lang['sortkey_o_id'] = 'oldalazonosító'; +$lang['sortkey_o_title'] = 'cím'; +$lang['sortorder'] = 'rendezés iránya'; +$lang['sortorder_o_ascending'] = 'növekvő'; +$lang['sortorder_o_descending'] = 'csökkenő'; +$lang['excluded_pages'] = 'bizonyos oldalak kihagyása a blog listázása esetén (regurális kifejezés használata szükséges)'; +$lang['showhistogram'] = 'Grafikon megjelenítése archiváláskor'; +$lang['max_months'] = 'Grafikonon megjelenítendő hónapok max. száma'; +$lang['histogram_height'] = 'Grafikon magassága (pixelben)'; diff --git a/public_html/lib/plugins/blog/lang/it/lang.php b/public_html/lib/plugins/blog/lang/it/lang.php new file mode 100644 index 00000000..874253c7 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/it/lang.php @@ -0,0 +1,36 @@ + + */ + +// custom language strings for the plugin +$lang['older'] = 'Articoli meno recenti'; +$lang['newer'] = 'Articoli più recent'; +$lang['newentry'] = 'Nuovo articolo:'; + +$lang['missing_includeplugin'] = 'Questo blog non funziona senza il plugin Include.'; +$lang['missing_pagelistplugin'] = 'Questo blog non funziona senza il plugin Pagelist.'; +$lang['missing_tagplugin'] = 'Per utilizare i tag è ncessario installare il Plugin Tag.'; + +$lang['autoarchive'] = '%1$d Articoli del %2$s %3$s'; +$lang['month_01'] = 'Gennaio'; +$lang['month_02'] = 'Febbraio'; +$lang['month_03'] = 'Marzo'; +$lang['month_04'] = 'Aprile'; +$lang['month_05'] = 'Maggio'; +$lang['month_06'] = 'Giugno'; +$lang['month_07'] = 'Luglio'; +$lang['month_08'] = 'Agosto'; +$lang['month_09'] = 'Settembre'; +$lang['month_10'] = 'Ottobre'; +$lang['month_11'] = 'Novembre'; +$lang['month_12'] = 'Dicembre'; + +$lang['entries'] = 'Voci'; +$lang['entry'] = 'Voce'; +$lang['archive_title'] = 'Archivio Blog'; + +//Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/public_html/lib/plugins/blog/lang/it/settings.php b/public_html/lib/plugins/blog/lang/it/settings.php new file mode 100644 index 00000000..7026236b --- /dev/null +++ b/public_html/lib/plugins/blog/lang/it/settings.php @@ -0,0 +1,12 @@ + + */ + +// for the configuration manager +$lang['namespace'] = 'Namespace predefinito per il blog'; + +//Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/public_html/lib/plugins/blog/lang/ja/lang.php b/public_html/lib/plugins/blog/lang/ja/lang.php new file mode 100644 index 00000000..51ec9823 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ja/lang.php @@ -0,0 +1,30 @@ + + */ +$lang['blog'] = 'ブログ'; +$lang['older'] = '古い記事'; +$lang['newer'] = '新しい記事'; +$lang['newentry'] = '新しい記事の投稿:'; +$lang['missing_includeplugin'] = 'blog 構文が動くために Include プラグインが必要'; +$lang['missing_pagelistplugin'] = 'archive 構文が動くために Pagelist プラグインが必要'; +$lang['missing_tagplugin'] = 'タグ機能を使用するために Tag プラグインが必要'; +$lang['autoarchive'] = '%3$s年%2$sの%1$d記事'; +$lang['month_01'] = '01月'; +$lang['month_02'] = '02月'; +$lang['month_03'] = '03月'; +$lang['month_04'] = '04月'; +$lang['month_05'] = '05月'; +$lang['month_06'] = '06月'; +$lang['month_07'] = '07月'; +$lang['month_08'] = '08月'; +$lang['month_09'] = '09月'; +$lang['month_10'] = '10月'; +$lang['month_11'] = '11月'; +$lang['month_12'] = '12月'; +$lang['entries'] = '記事'; +$lang['entry'] = '記事'; +$lang['archive_title'] = 'ブログ履歴'; diff --git a/public_html/lib/plugins/blog/lang/ja/settings.php b/public_html/lib/plugins/blog/lang/ja/settings.php new file mode 100644 index 00000000..b8483587 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ja/settings.php @@ -0,0 +1,27 @@ + + */ +$lang['namespace'] = 'ブログ用のデフォルト名前空間'; +$lang['formposition'] = '新しい記事投稿用フォームの位置'; +$lang['formposition_o_top'] = '上部'; +$lang['formposition_o_bottom'] = '下部'; +$lang['formposition_o_none'] = '非表示'; +$lang['newentrytitle'] = '新しい記事投稿用フォームの題名'; +$lang['dateprefix'] = '新しい記事のページIDの先頭に付加する日付形式'; +$lang['sortkey'] = '記事のソート項目'; +$lang['sortkey_o_cdate'] = '作成日'; +$lang['sortkey_o_mdate'] = '変更日'; +$lang['sortkey_o_pagename'] = 'ページ名'; +$lang['sortkey_o_id'] = 'ページ ID'; +$lang['sortkey_o_title'] = 'タイトル'; +$lang['sortorder'] = 'ソート順'; +$lang['sortorder_o_ascending'] = '昇順'; +$lang['sortorder_o_descending'] = '降順'; +$lang['excluded_pages'] = '記事一覧から除外するページ(正規表現)'; +$lang['showhistogram'] = '記事一覧にヒストグラムを表示する'; +$lang['max_months'] = 'ヒストグラムに表示する最大月数'; +$lang['histogram_height'] = 'ヒストグラムの高さ(ピクセル)'; diff --git a/public_html/lib/plugins/blog/lang/ko/lang.php b/public_html/lib/plugins/blog/lang/ko/lang.php new file mode 100644 index 00000000..a97d074d --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ko/lang.php @@ -0,0 +1,30 @@ + + */ +$lang['blog'] = '블로그'; +$lang['older'] = '오래된 항목'; +$lang['newer'] = '새 항목'; +$lang['newentry'] = '새 블로그 항목:'; +$lang['missing_includeplugin'] = 'Include 플러그인은 블로그가 작동하기 위해 설치되어야 합니다.'; +$lang['missing_pagelistplugin'] = 'Pagelist 플러그인은 보존 목록이 작동하기 위해 설치되어야 합니다.'; +$lang['missing_tagplugin'] = 'Tag 플러그인은 태그 분류를 사용하기 위해 설치되어야 합니다.'; +$lang['autoarchive'] = '%3$s년 %2$s의 게시물 %1$d개'; +$lang['month_01'] = '1월'; +$lang['month_02'] = '2월'; +$lang['month_03'] = '3월'; +$lang['month_04'] = '4월'; +$lang['month_05'] = '5월'; +$lang['month_06'] = '6월'; +$lang['month_07'] = '7월'; +$lang['month_08'] = '8월'; +$lang['month_09'] = '9월'; +$lang['month_10'] = '10월'; +$lang['month_11'] = '11월'; +$lang['month_12'] = '12월'; +$lang['entries'] = '항목'; +$lang['entry'] = '항목'; +$lang['archive_title'] = '블로그 역사'; diff --git a/public_html/lib/plugins/blog/lang/ko/settings.php b/public_html/lib/plugins/blog/lang/ko/settings.php new file mode 100644 index 00000000..fc205153 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ko/settings.php @@ -0,0 +1,27 @@ + + */ +$lang['namespace'] = '블로그에 대한 기본 이름공간'; +$lang['formposition'] = '새 항목 양식의 위치'; +$lang['formposition_o_top'] = '위'; +$lang['formposition_o_bottom'] = '아래'; +$lang['formposition_o_none'] = '없음'; +$lang['newentrytitle'] = '새 항목 양식의 제목'; +$lang['dateprefix'] = '새 항목 ID에 접두어 날짜'; +$lang['sortkey'] = '블로그 항목 순서로 정렬'; +$lang['sortkey_o_cdate'] = '만든 날짜'; +$lang['sortkey_o_mdate'] = '수정한 날짜'; +$lang['sortkey_o_pagename'] = '문서 이름'; +$lang['sortkey_o_id'] = '문서 ID'; +$lang['sortkey_o_title'] = '제목'; +$lang['sortorder'] = '정렬 순서'; +$lang['sortorder_o_ascending'] = '오름차순'; +$lang['sortorder_o_descending'] = '내림차순'; +$lang['excluded_pages'] = '블로그 목록에서 특정 문서를 제외 (정규 표현식 필요)'; +$lang['showhistogram'] = '보존 렌더링에 히스토그램 표시'; +$lang['max_months'] = '히스토그램에서 보여줄 최대 월'; +$lang['histogram_height'] = '히스토그램의 높이 (픽셀)'; diff --git a/public_html/lib/plugins/blog/lang/nl/lang.php b/public_html/lib/plugins/blog/lang/nl/lang.php new file mode 100644 index 00000000..da4a889f --- /dev/null +++ b/public_html/lib/plugins/blog/lang/nl/lang.php @@ -0,0 +1,31 @@ + + * @author Mark Prins + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'Oude berichten'; +$lang['newer'] = 'Nieuwe berichten'; +$lang['newentry'] = 'Nieuw bericht:'; +$lang['missing_includeplugin'] = 'De Include Plugin dient geïnstalleerd te zijn om de blog te laten werken.'; +$lang['missing_pagelistplugin'] = 'De Pagelist Plugin dient geïnstalleerd te zijn om archief lijsten te laten werken.'; +$lang['missing_tagplugin'] = 'De Tag Plugin dient geïnstalleerd te zijn om label filters te laten werken.'; +$lang['autoarchive'] = '%1$d artikel(en) voor %2$s %3$s'; +$lang['month_01'] = 'januari'; +$lang['month_02'] = 'februari'; +$lang['month_03'] = 'maart'; +$lang['month_04'] = 'april'; +$lang['month_05'] = 'mei'; +$lang['month_06'] = 'juni'; +$lang['month_07'] = 'juli'; +$lang['month_08'] = 'augustus'; +$lang['month_09'] = 'september'; +$lang['month_10'] = 'october'; +$lang['month_11'] = 'november'; +$lang['month_12'] = 'december'; +$lang['entries'] = 'berichten'; +$lang['entry'] = 'bericht'; +$lang['archive_title'] = 'Blog geschiedenis'; diff --git a/public_html/lib/plugins/blog/lang/nl/settings.php b/public_html/lib/plugins/blog/lang/nl/settings.php new file mode 100644 index 00000000..24319489 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/nl/settings.php @@ -0,0 +1,28 @@ + + * @author Mark Prins + */ +$lang['namespace'] = 'default namespace voor blog'; +$lang['formposition'] = 'positie van het nieuwe bericht formulier'; +$lang['formposition_o_top'] = 'boven'; +$lang['formposition_o_bottom'] = 'onder'; +$lang['formposition_o_none'] = 'geen'; +$lang['newentrytitle'] = 'titels van het nieuwe bericht formulier'; +$lang['dateprefix'] = 'datum prefix aan nieuwe bericht IDs toevoegen'; +$lang['sortkey'] = 'Sorteer blog berichten op'; +$lang['sortkey_o_cdate'] = 'aanmaak datum'; +$lang['sortkey_o_mdate'] = 'bewerkingsdatum'; +$lang['sortkey_o_pagename'] = 'pagina naam'; +$lang['sortkey_o_id'] = 'pagina ID'; +$lang['sortkey_o_title'] = 'titel'; +$lang['sortorder'] = 'sorteer volgorde'; +$lang['sortorder_o_ascending'] = 'oplopend'; +$lang['sortorder_o_descending'] = 'aflopend'; +$lang['excluded_pages'] = 'bepaalde pagina\'s uitsluiten van blog lijst (vereist reguliere expressie)'; +$lang['showhistogram'] = 'Histogram tonen in de archief weergave'; +$lang['max_months'] = 'Maximum aantal te tonen maanden in het histogram'; +$lang['histogram_height'] = 'Hoogte van het histogram (in pixels)'; diff --git a/public_html/lib/plugins/blog/lang/pl/lang.php b/public_html/lib/plugins/blog/lang/pl/lang.php new file mode 100644 index 00000000..a88334b6 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/pl/lang.php @@ -0,0 +1,28 @@ + + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'Wcześniejsze wpisy'; +$lang['newer'] = 'Nowsze wpisy'; +$lang['newentry'] = 'Nowy wpis'; +$lang['missing_includeplugin'] = 'Wtyczka Include musi być zainstalowana, aby blog mógł działać poprawnie.'; +$lang['missing_pagelistplugin'] = 'Wtyczka Pagelist musi być zainstalowana, aby archiwizacja mógła działać poprawnie.'; +$lang['missing_tagplugin'] = 'Wtyczka Tag Plugin musi być zainstalowana, aby móc używać tagów.'; +$lang['month_01'] = 'Styczeń'; +$lang['month_02'] = 'Luty'; +$lang['month_03'] = 'Marzec'; +$lang['month_04'] = 'Kwiecień'; +$lang['month_05'] = 'Maj'; +$lang['month_06'] = 'Czerwiec'; +$lang['month_07'] = 'Lipiec'; +$lang['month_08'] = 'Sierpień'; +$lang['month_09'] = 'Wrzesień'; +$lang['month_10'] = 'Październik'; +$lang['month_11'] = 'Listopad'; +$lang['month_12'] = 'Grudzień'; +$lang['archive_title'] = 'Historia bloga'; diff --git a/public_html/lib/plugins/blog/lang/pl/settings.php b/public_html/lib/plugins/blog/lang/pl/settings.php new file mode 100644 index 00000000..c468d7f7 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/pl/settings.php @@ -0,0 +1,23 @@ + + */ +$lang['namespace'] = 'Domyślna przestrzeń nazw dla bloga'; +$lang['formposition'] = 'Pozycja formularza nowy wpis'; +$lang['formposition_o_top'] = 'góra'; +$lang['formposition_o_bottom'] = 'dół'; +$lang['formposition_o_none'] = 'brak'; +$lang['dateprefix'] = 'Dołącz datę do ID nowego wpisu (ciąg formatujący datę)'; +$lang['sortkey'] = 'Sortuj wpisy używając'; +$lang['sortkey_o_cdate'] = 'daty stworzenia'; +$lang['sortkey_o_mdate'] = 'daty modifikacji'; +$lang['sortkey_o_pagename'] = 'nazwy strony'; +$lang['sortkey_o_id'] = 'ID strony'; +$lang['sortkey_o_title'] = 'tytułu'; +$lang['sortorder'] = 'Kolejność sortowania'; +$lang['sortorder_o_ascending'] = 'rosnąca'; +$lang['sortorder_o_descending'] = 'malejąca'; diff --git a/public_html/lib/plugins/blog/lang/pt-br/lang.php b/public_html/lib/plugins/blog/lang/pt-br/lang.php new file mode 100644 index 00000000..84dce7ac --- /dev/null +++ b/public_html/lib/plugins/blog/lang/pt-br/lang.php @@ -0,0 +1,30 @@ + + * @author Samory Pereira Santos + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'registros antigos'; +$lang['newer'] = 'registros mais novos'; +$lang['newentry'] = 'Novo registro do blog:'; +$lang['missing_includeplugin'] = 'O plugin Inlude deve estar instalado para que o blog funcione.'; +$lang['missing_pagelistplugin'] = 'O plugin Pagelist deve estar instalado para que a listagem de arquivo funcione,'; +$lang['missing_tagplugin'] = 'O plugin Tag deve estar instalado para usar refinamentos de etiquetagem.'; +$lang['month_01'] = 'Janeiro'; +$lang['month_02'] = 'Fevereiro'; +$lang['month_03'] = 'Março'; +$lang['month_04'] = 'Abril'; +$lang['month_05'] = 'Maio'; +$lang['month_06'] = 'Junho'; +$lang['month_07'] = 'Julho'; +$lang['month_08'] = 'Agosto'; +$lang['month_09'] = 'Setembro'; +$lang['month_10'] = 'Outubro'; +$lang['month_11'] = 'Novembro'; +$lang['month_12'] = 'Dezembro'; +$lang['entries'] = 'entradas'; +$lang['entry'] = 'entrada'; +$lang['archive_title'] = 'Histórico do Blog'; diff --git a/public_html/lib/plugins/blog/lang/pt-br/settings.php b/public_html/lib/plugins/blog/lang/pt-br/settings.php new file mode 100644 index 00000000..51e4f4d9 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/pt-br/settings.php @@ -0,0 +1,23 @@ + + * @author Samory Pereira Santos + */ +$lang['namespace'] = 'namespace padrão para o blog'; +$lang['formposition_o_top'] = 'topo'; +$lang['formposition_o_bottom'] = 'final'; +$lang['formposition_o_none'] = 'nenhum'; +$lang['sortkey'] = 'ordenar as entradas do blog por'; +$lang['sortkey_o_cdate'] = 'data de criação'; +$lang['sortkey_o_mdate'] = 'data de modificação'; +$lang['sortkey_o_pagename'] = 'nome da página'; +$lang['sortkey_o_id'] = 'ID da página'; +$lang['sortkey_o_title'] = 'título'; +$lang['sortorder'] = 'ordenação'; +$lang['sortorder_o_ascending'] = 'ascendente'; +$lang['sortorder_o_descending'] = 'descendente'; +$lang['excluded_pages'] = 'excluir determinadas páginas da listagem do blog (requer expressões regulares)'; +$lang['histogram_height'] = 'Altura do histograma (em pixels)'; diff --git a/public_html/lib/plugins/blog/lang/pt/lang.php b/public_html/lib/plugins/blog/lang/pt/lang.php new file mode 100644 index 00000000..2816f054 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/pt/lang.php @@ -0,0 +1,31 @@ + + * @author Fernando Ribeiro + */ +$lang['blog'] = 'Blog'; +$lang['older'] = 'Entradas mais antigas'; +$lang['newer'] = 'Entradas mais recentes'; +$lang['newentry'] = 'Nova entrada do blog:'; +$lang['missing_includeplugin'] = 'O Plugin Include deve estar instalado para o blog funcionar.'; +$lang['missing_pagelistplugin'] = 'O Plugin Pagelist deve estar instalado para as listas do arquivo funcionarem.'; +$lang['missing_tagplugin'] = 'O Plugin Tag deve estar instalado para as etiquetas funcionarem.'; +$lang['autoarchive'] = '%1$d Artigo(s) para %2$s %3$s'; +$lang['month_01'] = 'Janeiro'; +$lang['month_02'] = 'Fevereiro'; +$lang['month_03'] = 'Março'; +$lang['month_04'] = 'Abril'; +$lang['month_05'] = 'Maio'; +$lang['month_06'] = 'Junho'; +$lang['month_07'] = 'Julho'; +$lang['month_08'] = 'Agosto'; +$lang['month_09'] = 'Setembro'; +$lang['month_10'] = 'Outubro'; +$lang['month_11'] = 'Novembro'; +$lang['month_12'] = 'Dezembro'; +$lang['entries'] = 'entradas'; +$lang['entry'] = 'entrada'; +$lang['archive_title'] = 'Histórico do Blog'; diff --git a/public_html/lib/plugins/blog/lang/pt/settings.php b/public_html/lib/plugins/blog/lang/pt/settings.php new file mode 100644 index 00000000..43720aee --- /dev/null +++ b/public_html/lib/plugins/blog/lang/pt/settings.php @@ -0,0 +1,28 @@ + + * @author Fernando Ribeiro + */ +$lang['namespace'] = 'default namespace for blog'; +$lang['formposition'] = 'posição do formulário de entrada nova'; +$lang['formposition_o_top'] = 'topo'; +$lang['formposition_o_bottom'] = 'fundo'; +$lang['formposition_o_none'] = 'nenhum'; +$lang['newentrytitle'] = 'título do formulário de entrada nova'; +$lang['dateprefix'] = 'prefixo do ID para a nova entrada'; +$lang['sortkey'] = 'ordenar entradas do blog por'; +$lang['sortkey_o_cdate'] = 'data de criação'; +$lang['sortkey_o_mdate'] = 'data de modificação'; +$lang['sortkey_o_pagename'] = 'nome da página'; +$lang['sortkey_o_id'] = 'ID da página'; +$lang['sortkey_o_title'] = 'título'; +$lang['sortorder'] = 'ordenação'; +$lang['sortorder_o_ascending'] = 'ascendente'; +$lang['sortorder_o_descending'] = 'descendente'; +$lang['excluded_pages'] = 'excluir determinadas páginas da listagem do blog (requer expressão regular)'; +$lang['showhistogram'] = 'Mostrar histograma na representação do arquivo'; +$lang['max_months'] = 'Nº máximo de meses para mostrar no histograma'; +$lang['histogram_height'] = 'Altura do histograma (em pixels)'; diff --git a/public_html/lib/plugins/blog/lang/ro/lang.php b/public_html/lib/plugins/blog/lang/ro/lang.php new file mode 100644 index 00000000..5a216db5 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ro/lang.php @@ -0,0 +1,32 @@ + + * @author Florin Chitiul + */ +// custom language strings for the plugin +$lang['blog'] = 'Blog'; +$lang['older'] = 'Intrări vechi'; +$lang['newer'] = 'Intrări mai noi'; +$lang['newentry'] = 'Postare nouă:'; +$lang['missing_includeplugin'] = 'Plugin-ul Include trebuie să fie instalat pentru ca blogul să fie funcțional.'; +$lang['missing_pagelistplugin'] = 'The Pagelist Plugin must be installed for archive lists to work.'; +$lang['missing_tagplugin'] = 'Plugin-ul Tag trebuie să fie instalat pentru a utiliza convocări subtile tag.'; +$lang['autoarchive'] = '%1$d Post(ări) pentru %2$lea %3$lea'; +$lang['month_01'] = 'Ianuarie'; +$lang['month_02'] = 'Februarie'; +$lang['month_03'] = 'Martie'; +$lang['month_04'] = 'Aprilie'; +$lang['month_05'] = 'Mai'; +$lang['month_06'] = 'Iunie'; +$lang['month_07'] = 'Iulie'; +$lang['month_08'] = 'August'; +$lang['month_09'] = 'Septembrie'; +$lang['month_10'] = 'Octobrie'; +$lang['month_11'] = 'Noiebrie'; +$lang['month_12'] = 'Decembrie'; +$lang['entries'] = 'intrări'; +$lang['entry'] = 'intrare'; +$lang['archive_title'] = 'Istoria blogului'; diff --git a/public_html/lib/plugins/blog/lang/ro/settings.php b/public_html/lib/plugins/blog/lang/ro/settings.php new file mode 100644 index 00000000..f5407dd7 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ro/settings.php @@ -0,0 +1,30 @@ + + * @author Florin Chitiul + */ + +// for the configuration manager +$lang['namespace'] = 'numele implicit al blogului'; +$lang['formposition'] = 'poziția formularului de inserare nouă'; +$lang['formposition_o_top'] = 'sus'; +$lang['formposition_o_bottom'] = 'jos'; +$lang['formposition_o_none'] = 'niciuna'; +$lang['newentrytitle'] = 'titlul inserării formularului de inserare nouă'; +$lang['dateprefix'] = 'prefixul datei identității noii inserări'; +$lang['sortkey'] = 'sortează intrările blogului după data celei mai noi inserări'; +$lang['sortkey_o_cdate'] = 'data creării'; +$lang['sortkey_o_mdate'] = 'data modificării'; +$lang['sortkey_o_pagename'] = 'numele paginii'; +$lang['sortkey_o_id'] = 'ID-ul paginii'; +$lang['sortkey_o_title'] = 'titlul'; +$lang['sortorder'] = 'ordinea de sortare'; +$lang['sortorder_o_ascending'] = 'crescatoare'; +$lang['sortorder_o_descending'] = 'descrescatoare'; +$lang['excluded_pages'] = 'exclude anumite pagini de la listarea în blog (sunt necesare expresii)'; +$lang['showhistogram'] = 'Afișează histograma în redarea arhivei'; +$lang['max_months'] = 'Maximul nr. de luni afișabile în histogramă'; +$lang['histogram_height'] = 'Înălțimea histogramei (în pixeli)'; diff --git a/public_html/lib/plugins/blog/lang/ru/lang.php b/public_html/lib/plugins/blog/lang/ru/lang.php new file mode 100644 index 00000000..13d6fac8 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ru/lang.php @@ -0,0 +1,31 @@ + + * @author Aleksandr Selivanov + */ +$lang['blog'] = 'Блог'; +$lang['older'] = 'Предыдущие записи'; +$lang['newer'] = 'Новые записи'; +$lang['newentry'] = 'Новая запись:'; +$lang['missing_includeplugin'] = 'Для работы блога необходимо установить плагин Include.'; +$lang['missing_pagelistplugin'] = 'Для создания архивного списка должен быть установлен плагин Pagelist.'; +$lang['missing_tagplugin'] = 'Для использования меток должен быть установлен плагин Tag.'; +$lang['autoarchive'] = '%1$d сообщ. за %2$s %3$s'; +$lang['month_01'] = 'январь'; +$lang['month_02'] = 'февраль'; +$lang['month_03'] = 'март'; +$lang['month_04'] = 'апрель'; +$lang['month_05'] = 'май'; +$lang['month_06'] = 'июнь'; +$lang['month_07'] = 'июль'; +$lang['month_08'] = 'август'; +$lang['month_09'] = 'сентябрь'; +$lang['month_10'] = 'октябрь'; +$lang['month_11'] = 'ноябрь'; +$lang['month_12'] = 'декабрь'; +$lang['entries'] = 'записи'; +$lang['entry'] = 'запись'; +$lang['archive_title'] = 'Статистика'; diff --git a/public_html/lib/plugins/blog/lang/ru/settings.php b/public_html/lib/plugins/blog/lang/ru/settings.php new file mode 100644 index 00000000..3e2c1bdf --- /dev/null +++ b/public_html/lib/plugins/blog/lang/ru/settings.php @@ -0,0 +1,29 @@ + + * @author Aleksandr Selivanov + * @author Aleksandr Selivanov + */ +$lang['namespace'] = 'Пространство имён по умолчанию для блога'; +$lang['formposition'] = 'Расположить форму для новой записи:'; +$lang['formposition_o_top'] = 'вверху страницы'; +$lang['formposition_o_bottom'] = 'внизу страницы'; +$lang['formposition_o_none'] = 'скрыть'; +$lang['newentrytitle'] = 'Заголовок формы для новой записи'; +$lang['dateprefix'] = 'Префикс даты для ID новой записи'; +$lang['sortkey'] = 'Сортировать записи по:'; +$lang['sortkey_o_cdate'] = 'дате написания'; +$lang['sortkey_o_mdate'] = 'дате редактирования'; +$lang['sortkey_o_pagename'] = 'имени страницы'; +$lang['sortkey_o_id'] = 'ID страницы'; +$lang['sortkey_o_title'] = 'заголовку'; +$lang['sortorder'] = 'Направление сортировки:'; +$lang['sortorder_o_ascending'] = 'по возрастанию'; +$lang['sortorder_o_descending'] = 'по убыванию'; +$lang['excluded_pages'] = 'Исключить определённые страницы из перечня блога (задаётся регулярным выражением)'; +$lang['showhistogram'] = 'Отображать гистограмму в режиме архива'; +$lang['max_months'] = 'Максимальное количество месяцев для отображения на гистограмме'; +$lang['histogram_height'] = 'Высота гистограммы (в пикселях)'; diff --git a/public_html/lib/plugins/blog/lang/sl/lang.php b/public_html/lib/plugins/blog/lang/sl/lang.php new file mode 100644 index 00000000..a1976461 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/sl/lang.php @@ -0,0 +1,15 @@ + + */ + +// custom language strings for the plugin +$lang['blog'] = 'Blog'; +$lang['older'] = 'Starejši vnosi'; +$lang['newer'] = 'Novejši vnosi'; +$lang['newentry'] = 'Nov blog vnos:'; + +//Setup VIM: ex: et ts=2 enc=utf-8 : \ No newline at end of file diff --git a/public_html/lib/plugins/blog/lang/sl/settings.php b/public_html/lib/plugins/blog/lang/sl/settings.php new file mode 100644 index 00000000..d4c4ffe6 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/sl/settings.php @@ -0,0 +1,19 @@ + + */ + +// for the configuration manager +$lang['namespace'] = 'privzeti namespace za blog'; + +$lang['sortkey'] = 'sortiraj blog vnose po:'; +$lang['sortkey_o_cdate'] = 'ustvarjeno dne'; +$lang['sortkey_o_pagename'] = 'ime strani'; +$lang['sortkey_o_id'] = 'ID strani'; + +$lang['dateprefix'] = 'pripeti datum pred IDje novih vnosov'; + +//Setup VIM: ex: et ts=2 enc=utf-8 : \ No newline at end of file diff --git a/public_html/lib/plugins/blog/lang/sv/lang.php b/public_html/lib/plugins/blog/lang/sv/lang.php new file mode 100644 index 00000000..b6a4046d --- /dev/null +++ b/public_html/lib/plugins/blog/lang/sv/lang.php @@ -0,0 +1,32 @@ + + * @author Tor Härnqvist + * @author Tor Härnqvist + */ +$lang['blog'] = 'Blogg'; +$lang['older'] = 'Äldre inlägg'; +$lang['newer'] = 'Nyare inlägg'; +$lang['newentry'] = 'Nytt inlägg:'; +$lang['missing_includeplugin'] = 'Include-pluginet måste vara installerat för att bloggen ska fungera.'; +$lang['missing_pagelistplugin'] = 'Pagelist-pluginet måste vara installerat för att arkivlistningar ska fungera.'; +$lang['missing_tagplugin'] = 'Tagg-pluginet måste vara installerat för att använda tagg-funktionen.'; +$lang['autoarchive'] = '%1$d inlägg i %2$s %3$s'; +$lang['month_01'] = 'januari'; +$lang['month_02'] = 'februari'; +$lang['month_03'] = 'mars'; +$lang['month_04'] = 'april'; +$lang['month_05'] = 'maj'; +$lang['month_06'] = 'juni'; +$lang['month_07'] = 'juli'; +$lang['month_08'] = 'augusti'; +$lang['month_09'] = 'september'; +$lang['month_10'] = 'oktober'; +$lang['month_11'] = 'november'; +$lang['month_12'] = 'december'; +$lang['entries'] = 'Inlägg'; +$lang['entry'] = 'Inlägg'; +$lang['archive_title'] = 'Blogghistorik'; diff --git a/public_html/lib/plugins/blog/lang/sv/settings.php b/public_html/lib/plugins/blog/lang/sv/settings.php new file mode 100644 index 00000000..34e82ccc --- /dev/null +++ b/public_html/lib/plugins/blog/lang/sv/settings.php @@ -0,0 +1,29 @@ + + * @author Tor Härnqvist + * @author hib + */ +$lang['namespace'] = 'standard vy för blogg'; +$lang['formposition'] = 'nya formulärets position '; +$lang['formposition_o_top'] = 'längst upp'; +$lang['formposition_o_bottom'] = 'längst ned'; +$lang['formposition_o_none'] = 'inget'; +$lang['newentrytitle'] = 'rubrik för nytt inläggsformulär'; +$lang['dateprefix'] = 'sätt datum före nytt inläggs-ID'; +$lang['sortkey'] = 'sortera inlägg efter:'; +$lang['sortkey_o_cdate'] = 'skapat datum'; +$lang['sortkey_o_mdate'] = 'ändringsdatum'; +$lang['sortkey_o_pagename'] = 'sidnamn'; +$lang['sortkey_o_id'] = 'sid-ID'; +$lang['sortkey_o_title'] = 'rubrik'; +$lang['sortorder'] = 'sorteringsordning'; +$lang['sortorder_o_ascending'] = 'stigande'; +$lang['sortorder_o_descending'] = 'fallande'; +$lang['excluded_pages'] = 'uteslut vissa sidor från blogglistan (regular expresstion krävs)'; +$lang['showhistogram'] = 'Visa histogram när arkivet skapas'; +$lang['max_months'] = 'Maximalt antal månader att visa i histogramet'; +$lang['histogram_height'] = 'Histogramets höjd (i pixlar)'; diff --git a/public_html/lib/plugins/blog/lang/tr/lang.php b/public_html/lib/plugins/blog/lang/tr/lang.php new file mode 100644 index 00000000..592c6aa9 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/tr/lang.php @@ -0,0 +1,30 @@ + + */ +$lang['blog'] = 'Günce'; +$lang['older'] = 'Daha eski girdiler'; +$lang['newer'] = 'Daha yeni girdiler'; +$lang['newentry'] = 'Yeni günce oluştur:'; +$lang['missing_includeplugin'] = 'Güncenin (blog) çalışması için Include eklentisi yüklü olmalıdır.'; +$lang['missing_pagelistplugin'] = 'Arşiv listelerinin çalışması için Pagelist eklentisi yüklü olmalıdır.'; +$lang['missing_tagplugin'] = 'Etiket tanımlayabilmek için Tag eklentisi yüklü olmalıdır.'; +$lang['autoarchive'] = 'Her %2$s %3$s için %1$d Gönderi(ler)'; +$lang['month_01'] = 'Ocak'; +$lang['month_02'] = 'Şubat'; +$lang['month_03'] = 'Mart'; +$lang['month_04'] = 'Nisan'; +$lang['month_05'] = 'Mayıs'; +$lang['month_06'] = 'Haziran'; +$lang['month_07'] = 'Temmuz'; +$lang['month_08'] = 'Ağustos'; +$lang['month_09'] = 'Eylül'; +$lang['month_10'] = 'Ekim'; +$lang['month_11'] = 'Kasım'; +$lang['month_12'] = 'Aralık'; +$lang['entries'] = 'girdiler'; +$lang['entry'] = 'girdi'; +$lang['archive_title'] = 'Günce tarihçesi'; diff --git a/public_html/lib/plugins/blog/lang/tr/settings.php b/public_html/lib/plugins/blog/lang/tr/settings.php new file mode 100644 index 00000000..d5498007 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/tr/settings.php @@ -0,0 +1,27 @@ + + */ +$lang['namespace'] = 'günce için varsayılan isimalanı'; +$lang['formposition'] = 'yeni girdi formunun konumu'; +$lang['formposition_o_top'] = 'üst'; +$lang['formposition_o_bottom'] = 'alt'; +$lang['formposition_o_none'] = 'yok'; +$lang['newentrytitle'] = 'yeni girdi formunun başlığı'; +$lang['dateprefix'] = 'yeni girdi kimliklerinde ön ek olarak kullanılacak tarih'; +$lang['sortkey'] = 'günce girdilerinin sıralanma şekli'; +$lang['sortkey_o_cdate'] = 'oluşturma tarihi'; +$lang['sortkey_o_mdate'] = 'değiştirilme tarihi'; +$lang['sortkey_o_pagename'] = 'sayfa adı'; +$lang['sortkey_o_id'] = 'sayfa kimliği'; +$lang['sortkey_o_title'] = 'başlık'; +$lang['sortorder'] = 'sıralama şekli'; +$lang['sortorder_o_ascending'] = 'artan'; +$lang['sortorder_o_descending'] = 'azalan'; +$lang['excluded_pages'] = 'bazı sayfaları günce listesinin dışında tut (kurallı tanımlama gereklidir)'; +$lang['showhistogram'] = 'Arşivi sunarken grafik göster'; +$lang['max_months'] = 'Grafikte gösterilecek en fazla ay sayısı'; +$lang['histogram_height'] = 'Grafiğin yüksekliği (piksel olarak)'; diff --git a/public_html/lib/plugins/blog/lang/zh/lang.php b/public_html/lib/plugins/blog/lang/zh/lang.php new file mode 100644 index 00000000..3bbcd501 --- /dev/null +++ b/public_html/lib/plugins/blog/lang/zh/lang.php @@ -0,0 +1,36 @@ + + */ + +// custom language strings for the plugin +$lang['blog'] = '博客'; +$lang['older'] = '更早的文章'; +$lang['newer'] = '更新的文章'; +$lang['newentry'] = '新建文章:'; + +$lang['missing_includeplugin'] = '要使用博客功能必须安装 Include 插件。'; +$lang['missing_pagelistplugin'] = '要使用存档列表功能必须安装 Pagelist 插件。'; +$lang['missing_tagplugin'] = '要使用标签 refinements 必须安装 Tag 插件。'; + +$lang['autoarchive'] = '%3$s年%2$s有%1$d篇文章'; +$lang['month_01'] = '一月'; +$lang['month_02'] = '二月'; +$lang['month_03'] = '三月'; +$lang['month_04'] = '四月'; +$lang['month_05'] = '五月'; +$lang['month_06'] = '六月'; +$lang['month_07'] = '七月'; +$lang['month_08'] = '八月'; +$lang['month_09'] = '九月'; +$lang['month_10'] = '十月'; +$lang['month_11'] = '十一月'; +$lang['month_12'] = '十二月'; + +$lang['entries'] = '文章'; +$lang['entry'] = '文章'; +$lang['archive_title'] = '文章历史'; +//Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/public_html/lib/plugins/blog/lang/zh/settings.php b/public_html/lib/plugins/blog/lang/zh/settings.php new file mode 100644 index 00000000..6ec12bbf --- /dev/null +++ b/public_html/lib/plugins/blog/lang/zh/settings.php @@ -0,0 +1,38 @@ + + */ + +// for the configuration manager +$lang['namespace'] = '博客默认命名空间'; + +$lang['formposition'] = '新文章的表单位置'; +$lang['formposition_o_top'] = '顶上'; +$lang['formposition_o_bottom'] = '底下'; +$lang['formposition_o_none'] = '不显示'; + +$lang['newentrytitle'] = '新文章表单的标题'; + +$lang['dateprefix'] = '为新文章 ID 添加日期前缀'; + +$lang['sortkey'] = '文章排序按'; +$lang['sortkey_o_cdate'] = '创建时间'; +$lang['sortkey_o_mdate'] = '修改时间'; +$lang['sortkey_o_pagename'] = '页面名称'; +$lang['sortkey_o_id'] = '页面 ID'; +$lang['sortkey_o_title'] = '标题'; + +$lang['sortorder'] = '排序顺序'; +$lang['sortorder_o_ascending'] = '升序'; +$lang['sortorder_o_descending'] = '降序'; + +$lang['excluded_pages'] = '从博客列表中排除特定的页面 (要求是正则表达式)'; + +$lang['showhistogram'] = '在存档页面上显示直方图'; +$lang['max_months'] = '在直方图上最多显示月份数'; +$lang['histogram_height'] = '直方图的高度 (单位像素)'; + +// vim:ts=4:sw=4:et:enc=utf-8: diff --git a/public_html/lib/plugins/blog/plugin.info.txt b/public_html/lib/plugins/blog/plugin.info.txt new file mode 100644 index 00000000..fe1a526b --- /dev/null +++ b/public_html/lib/plugins/blog/plugin.info.txt @@ -0,0 +1,8 @@ +# General Plugin Info +base blog +author Michael Hamann, Michael Klier, Gina Haeussge +email michael@content-space.de +date 2017-08-24 +name Blog +desc Use DokuWiki as blogging tool. (previous authors: Esther Brunner) +url http://www.dokuwiki.org/plugin:blog diff --git a/public_html/lib/plugins/blog/print.css b/public_html/lib/plugins/blog/print.css new file mode 100644 index 00000000..d912867e --- /dev/null +++ b/public_html/lib/plugins/blog/print.css @@ -0,0 +1,3 @@ +#blog__newentry_form { + display:none; +} \ No newline at end of file diff --git a/public_html/lib/plugins/blog/style.css b/public_html/lib/plugins/blog/style.css new file mode 100644 index 00000000..08c0a999 --- /dev/null +++ b/public_html/lib/plugins/blog/style.css @@ -0,0 +1,40 @@ +div.dokuwiki div.newentry_form { + text-align: center; + margin-bottom: 1em; +} + +div.dokuwiki #blog__newentry_form input.edit { + width: 95%; +} + +div.dokuwiki tr.draft, +div.dokuwiki div.draft { + opacity: 0.5; +} + +div.dokuwiki div.autoarchive_selector ul { + list-style-type: none; + clear: left; + margin: 0 0.5em 0 0; +} + +div.dokuwiki div.autoarchive_selector ul div.li { + float: left; + margin: 0 1em 0 0; +} + +div.dokuwiki div.autoarchive_selector ul ul { + float: left; + clear: none; +} + +div.dokuwiki div.autoarchive_selector ul ul div.li { + margin: 0; +} + +img.blog_archive_bar { + background-color: __border__; + width: 5px; + border: 0 none; + vertical-align: bottom; +} diff --git a/public_html/lib/plugins/blog/syntax/archive.php b/public_html/lib/plugins/blog/syntax/archive.php new file mode 100644 index 00000000..f21da11b --- /dev/null +++ b/public_html/lib/plugins/blog/syntax/archive.php @@ -0,0 +1,251 @@ + + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); +require_once(DOKU_PLUGIN.'syntax.php'); + +/** + * All DokuWiki plugins to extend the parser/rendering mechanism + * need to inherit from this class + */ +class syntax_plugin_blog_archive extends DokuWiki_Syntax_Plugin { + + function getType() { return 'substition'; } + function getPType() { return 'block'; } + function getSort() { return 309; } + + function connectTo($mode) { + $this->Lexer->addSpecialPattern('\{\{archive>.*?\}\}', $mode, 'plugin_blog_archive'); + } + + function handle($match, $state, $pos, Doku_Handler $handler) { + global $ID; + + $match = substr($match, 10, -2); // strip {{archive> from start and }} from end + list($match, $flags) = explode('&', $match, 2); + $flags = explode('&', $flags); + list($match, $refine) = explode(' ', $match, 2); + list($ns, $rest) = explode('?', $match, 2); + + $author = NULL; + foreach($flags as $i=>$flag) { + if(preg_match('/(\w+)\s*=(.+)/', $flag, $temp) == 1) { + if ($temp[1] == 'author') { + $author = trim($temp[2]); + unset($flags[$i]); + } + } + } + + if (!$rest) { + $rest = $ns; + $ns = ''; + } + + if ($ns == '') $ns = cleanID($this->getConf('namespace')); + elseif (($ns == '*') || ($ns == ':')) $ns = ''; + elseif ($ns == '.') $ns = getNS($ID); + else $ns = cleanID($ns); + + // daily archive + if (preg_match("/\d{4}-\d{2}-\d{2}/", $rest)) { + list($year, $month, $day) = explode('-', $rest, 3); + + $start = mktime(0, 0, 0, $month, $day, $year); + $end = $start + 24*60*60; + + // monthly archive + } elseif (preg_match("/\d{4}-\d{2}/", $rest)) { + list($year, $month) = explode('-', $rest, 2); + + // calculate start and end times + $nextmonth = $month + 1; + $year2 = $year; + if ($nextmonth > 12) { + $nextmonth = 1; + $year2 = $year + 1; + } + + $start = mktime(0, 0, 0, $month, 1, $year); + $end = mktime(0, 0, 0, $nextmonth, 1, $year2); + + // a whole year + } elseif (preg_match("/\d{4}/", $rest)) { + $start = mktime(0, 0, 0, 1, 1, $rest); + $end = mktime(0, 0, 0, 1, 1, $rest + 1); + + // all entries from that namespace up to now + } elseif ($rest == '*') { + $start = 0; + $end = PHP_INT_MAX; + + // unknown format + } else { + return false; + } + + return array($ns, $start, $end, $flags, $refine, $author); + } + + function render($mode, Doku_Renderer $renderer, $data) { + list($ns, $start, $end, $flags, $refine, $author) = $data; + + // get the blog entries for our namespace + /** @var helper_plugin_blog $my */ + if ($my =& plugin_load('helper', 'blog')) $entries = $my->getBlog($ns, NULL, $author); + else return false; + + // use tag refinements? + if ($refine) { + /** @var helper_plugin_tag $tag */ + if (plugin_isdisabled('tag') || (!$tag = plugin_load('helper', 'tag'))) { + msg($this->getLang('missing_tagplugin'), -1); + } else { + $entries = $tag->tagRefine($entries, $refine); + } + } + + if (!$entries) return true; // nothing to display + + if ($mode == 'xhtml') { + if ($this->getConf('showhistogram')) { + $alt_list = $this->_build_alternative_list($start, $end, $entries); + + // Add histogram and posts list + $renderer->doc .= '
'; + $renderer->doc .= '

' . $this->getLang('archive_title') . '

'; + $renderer->doc .= $alt_list; + $renderer->doc .= '
' . DOKU_LF; + } else { + // let Pagelist Plugin do the work for us + if (plugin_isdisabled('pagelist') + || (!$pagelist =& plugin_load('helper', 'pagelist'))) { + msg($this->getLang('missing_pagelistplugin'), -1); + return false; + } + /** @var helper_plugin_pagelist $pagelist */ + $pagelist->setFlags($flags); + $pagelist->startList(); + foreach ($entries as $entry) { + + // entry in the right date range? + if (($start > $entry['date']) || ($entry['date'] >= $end)) continue; + + $pagelist->addPage($entry); + } + $renderer->doc .= $pagelist->finishList(); + } + return true; + + // for metadata renderer + } elseif ($mode == 'metadata') { + /** @var Doku_Renderer_metadata $renderer */ + // use the blog plugin cache handler in order to ensure that the cache is expired whenever a page, comment + // or linkback is added + if (time() < $end) $renderer->meta['plugin_blog']['purgefile_cache'] = true; + + foreach ($entries as $entry) { + + // entry in the right date range? + if (($start > $entry['date']) || ($entry['date'] >= $end)) continue; + + $renderer->meta['relation']['references'][$entry['id']] = true; + $renderer->meta['plugin_blog']['archive_pages'][] = $entry['id']; + } + + return true; + } + return false; + } + + // Generate alternative posts list + function _build_alternative_list($start, $end, $entries) { + $current_year =''; + $current_month =''; + $ul_open = false; + + $histogram_count = array(); + $histogram_higher = 0; + + $list = ''; + foreach ($entries as $entry) { + // entry in the right date range? + if (($start > $entry['date']) || ($entry['date'] >= $end)) continue; + + if ($current_year != date('o',$entry['date'])) { + if ($ul_open) { + $list .= '' . DOKU_LF; + $ul_open = false; + } + $current_year = date('o',$entry['date']); + $list .= '

' . $current_year . '

' . DOKU_LF; + $current_month = ''; + } + if ($current_month != date('m',$entry['date'])) { + if ($ul_open) { + $list .= '' . DOKU_LF; + } + $current_month = date('m',$entry['date']); + $list .= '

' . $this->getLang('month_' . $current_month) . '

    ' . DOKU_LF; + $ul_open = true; + } + $histogram_count[date('o-m',$entry['date'])] += 1; + if ($histogram_higher < $histogram_count[date('o-m',$entry['date'])]) { + $histogram_higher = $histogram_count[date('o-m',$entry['date'])]; + } + $list .= '
  • ' . date('d',$entry['date']) . ' - ' . $entry['title'] . '
  • ' . DOKU_LF; + } + $list .= '
' . DOKU_LF; + + $histogram = $this->_build_histogram($histogram_count, $histogram_higher); + + return $histogram . $list; + } + + // Generate histogram + function _build_histogram($histogram_count, $histogram_higher) { + if (empty($histogram_count)) return ''; + + $histogram = '

'; + $max_months = $this->getConf('max_months'); + $histogram_height = $this->getConf('histogram_height'); + $histogram_count = array_reverse($histogram_count); + $month_count = 0; + foreach ($histogram_count as $key => $month_reference) { + // Check the max_months parameter + if ($month_count >= $max_months) { + break; + } + if ($month_reference > 0) { + // Height in "px" + $current_height = $histogram_height / $histogram_higher * $month_reference; + } else { + // Height in "px" + $current_height = 1; + } + // Generate the alt attribute + $alt = $key.': '.$month_reference.' '; + if ($month_reference > 1) { + $alt .= $this->getLang('entries'); + } else { + $alt .= $this->getLang('entry'); + } + $histogram .= ''; + $histogram .= '' . $alt . '' . DOKU_LF; + $month_count += 1; + } + $histogram .= '

'; + + return $histogram; + } + +} +// vim:ts=4:sw=4:et:enc=utf-8: diff --git a/public_html/lib/plugins/blog/syntax/autoarchive.php b/public_html/lib/plugins/blog/syntax/autoarchive.php new file mode 100644 index 00000000..5139fcf5 --- /dev/null +++ b/public_html/lib/plugins/blog/syntax/autoarchive.php @@ -0,0 +1,163 @@ + + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); +require_once(DOKU_PLUGIN.'syntax.php'); + +/** + * All DokuWiki plugins to extend the parser/rendering mechanism + * need to inherit from this class + */ +class syntax_plugin_blog_autoarchive extends DokuWiki_Syntax_Plugin { + + function getType() { return 'substition'; } + function getPType() { return 'block'; } + function getSort() { return 309; } + + function connectTo($mode) { + $this->Lexer->addSpecialPattern('\{\{autoarchive>.*?\}\}', $mode, 'plugin_blog_autoarchive'); + } + + function handle($match, $state, $pos, Doku_Handler $handler) { + global $ID; + + $match = substr($match, 14, -2); // strip {{autoarchive> from start and }} from end + list($match, $flags) = explode('?', $match, 2); + $flags = explode('&', $flags); + list($ns, $refine) = explode(' ', $match, 2); + + if ($ns == '') $ns = cleanID($this->getConf('namespace')); + elseif (($ns == '*') || ($ns == ':')) $ns = ''; + elseif ($ns == '.') $ns = getNS($ID); + else $ns = cleanID($ns); + + return array($ns, $flags, $refine, $pos); + } + + function render($mode, Doku_Renderer $renderer, $data) { + list($ns, $flags, $refine, $pos) = $data; + if ($mode != 'xhtml') return false; + + // no caching for dynamic content + $renderer->info['cache'] = false; + + // get the blog entries for our namespace + if ($my =& plugin_load('helper', 'blog')) $entries = $my->getBlog($ns); + + // use tag refinements? + if ($refine) { + if (plugin_isdisabled('tag') || (!$tag = plugin_load('helper', 'tag'))) { + msg($this->getLang('missing_tagplugin'), -1); + } else { + $entries = $tag->tagRefine($entries, $refine); + } + } + + if (!$entries) return true; // nothing to display + + // what to display + if(preg_match('/^\d\d\d\d-\d\d$/',$_REQUEST['blogarchive'])){ + $now = $_REQUEST['blogarchive']; + }else{ + $now = strftime('%Y-%m'); // current month + } + list($y,$m) = explode('-',$now); + + // display the archive overview + $cnt = $this->_buildTimeChooser($renderer, $entries, $now); + + $renderer->header($this->_posts($cnt,$m,$y),2,$pos); + $renderer->section_open(2); + + // let Pagelist Plugin do the work for us + if (plugin_isdisabled('pagelist') + || (!$pagelist =& plugin_load('helper', 'pagelist'))) { + msg($this->getLang('missing_pagelistplugin'), -1); + return false; + } + $pagelist->setFlags($flags); + $pagelist->startList(); + foreach ($entries as $entry) { + $date = strftime('%Y-%m',$entry['date']); + // entry in the right date range? + if($date < $now || $date > $now) continue; + $pagelist->addPage($entry); + } + $renderer->doc .= $pagelist->finishList(); + + $renderer->section_close(); + return true; + + } + + /** + * Creates a list of monthly archive links + * + * @param object reference $R - the XHTML renderer + * @param array reference $entries - all entries metadata + * @param string $now - currently selected month ('YYYY-MM') + * @return int - number of posts for selected month + */ + function _buildTimeChooser(&$R, &$entries, $now){ + global $ID; + + // get the months where posts exist + $months = array(); + foreach($entries as $entry){ + $y = date('Y',$entry['date']); + $m = date('m',$entry['date']); + if(isset($months[$y][$m])) { + $months[$y][$m]++; + }else{ + $months[$y][$m] = 1; + } + } + + $ret = 0; + // output + $R->doc .= '
'; + foreach($months as $y => $mdata){ + $R->listu_open(); + $R->listitem_open(1); + $R->listcontent_open(); + $R->doc .= $y.':'; + $R->listcontent_close(); + ksort($mdata); + foreach($mdata as $m => $cnt){ + $R->listu_open(); + $R->listitem_open(2); + $R->listcontent_open(); + if("$y-$m" == $now) $R->doc .= ''; + $R->doc .= ''; + $R->doc .= $this->getLang('month_'.$m); + $R->doc .= ''; + if("$y-$m" == $now){ + $R->doc .= ''; + $ret = $cnt; + } + $R->listcontent_close(); + $R->listitem_close(); + $R->listu_close(); + } + $R->listitem_close(); + $R->listu_close(); + } + $R->doc .='
'; + return $ret; + } + + function _posts($num,$month,$year){ + return sprintf($this->getLang('autoarchive'), + $num, $this->getLang("month_$month"), + $year); + } +} +// vim:ts=4:sw=4:et:enc=utf-8: diff --git a/public_html/lib/plugins/blog/syntax/blog.php b/public_html/lib/plugins/blog/syntax/blog.php new file mode 100644 index 00000000..57d31bbe --- /dev/null +++ b/public_html/lib/plugins/blog/syntax/blog.php @@ -0,0 +1,212 @@ + + * @author Robert Rackl + */ + +// must be run within Dokuwiki +if (!defined('DOKU_INC')) die(); + +if (!defined('DOKU_LF')) define('DOKU_LF', "\n"); +if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t"); +if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC.'lib/plugins/'); + +require_once(DOKU_PLUGIN.'syntax.php'); + +class syntax_plugin_blog_blog extends DokuWiki_Syntax_Plugin { + private $included_pages = array(); + + function getType() { return 'substition'; } + function getPType() { return 'block'; } + function getSort() { return 307; } + + function connectTo($mode) { + $this->Lexer->addSpecialPattern('\{\{blog>.*?\}\}',$mode,'plugin_blog_blog'); + } + + function handle($match, $state, $pos, Doku_Handler $handler) { + global $ID; + + $match = substr($match, 7, -2); // strip {{blog> from start and }} from end + list($match, $flags) = explode('&', $match, 2); + $flags = explode('&', $flags); + array_unshift($flags, 'link'); // always make the first header of a blog entry a permalink (unless nolink is set) + list($match, $refine) = explode(' ', $match, 2); + list($ns, $num) = explode('?', $match, 2); + + if (!is_numeric($num)) { + if (is_numeric($ns)) { + $num = $ns; + $ns = ''; + } else { + $num = 5; + } + } + + if ($ns == '') $ns = cleanID($this->getConf('namespace')); + elseif (($ns == '*') || ($ns == ':')) $ns = ''; + elseif ($ns == '.') $ns = getNS($ID); + else $ns = cleanID($ns); + + return array($ns, $num, $flags, $refine); + } + + function render($mode, Doku_Renderer $renderer, $data) { + list($ns, $num, $flags, $refine) = $data; + + $first = $_REQUEST['first']; + if (!is_numeric($first)) $first = 0; + + // get the blog entries for our namespace + /** @var helper_plugin_blog $my */ + if ($my =& plugin_load('helper', 'blog')) $entries = $my->getBlog($ns); + else return false; + + // use tag refinements? + if ($refine) { + /** @var helper_plugin_tag $tag */ + if (plugin_isdisabled('tag') || (!$tag =& plugin_load('helper', 'tag'))) { + msg($this->getLang('missing_tagplugin'), -1); + } else { + $entries = $tag->tagRefine($entries, $refine); + } + } + + // Normalise flags + $blog_flags = $my->getFlags($flags); + $formpos = $blog_flags['formpos']; + $newentrytitle = $blog_flags['newentrytitle']; + + if ($mode == 'xhtml') { + // prevent caching to ensure the included pages are always fresh + $renderer->info['cache'] = false; + } + + if (!$entries) { + if ((auth_quickaclcheck($ns.':*') >= AUTH_CREATE) && ($mode == 'xhtml')) { + if($formpos != 'none') $renderer->doc .= $this->_newEntryForm($ns, $newentrytitle); + } + return true; // nothing to display + } + + // slice the needed chunk of pages + $more = ((count($entries) > ($first + $num)) ? true : false); + $entries = array_slice($entries, $first, $num); + + // load the include helper plugin + /** @var helper_plugin_include $include */ + if (plugin_isdisabled('include') || (!$include =& plugin_load('helper', 'include'))) { + msg($this->getLang('missing_includeplugin'), -1); + return false; + } + + // current section level + $clevel = 0; + + $perm_create = (auth_quickaclcheck($ns.':*') >= AUTH_CREATE); + $include_flags = $include->get_flags($flags); + + if ($mode == 'xhtml') { + // show new entry form + if ($perm_create && $formpos == 'top') { + $renderer->doc .= $this->_newEntryForm($ns, $newentrytitle); + } + + // get current section level + preg_match_all('|
|i', $renderer->doc, $matches, PREG_SET_ORDER); + $n = count($matches)-1; + if ($n > -1) $clevel = $matches[$n][1]; + + // close current section + if ($clevel && !$include_flags['inline']) $renderer->doc .= '
'.DOKU_LF; + $renderer->doc .= '
'.DOKU_LF; + } + + + // now include the blog entries + foreach ($entries as $entry) { + if ($mode == 'xhtml' || $mode == 'code') { + if(auth_quickaclcheck($entry['id']) >= AUTH_READ) { + // prevent blog include loops + if(!$this->included_pages[$entry['id']]) { + $this->included_pages[$entry['id']] = true; + $renderer->nest($include->_get_instructions($entry['id'], '', 'page', $clevel, $include_flags)); + $this->included_pages[$entry['id']] = false; + } + } + } elseif ($mode == 'metadata') { + /** @var Doku_Renderer_metadata $renderer */ + $renderer->meta['relation']['haspart'][$entry['id']] = true; + } + } + + if ($mode == 'xhtml') { + // resume the section + $renderer->doc .= '
'.DOKU_LF; + if ($clevel && !$include_flags['inline']) $renderer->doc .= '
'.DOKU_LF; + + // show older / newer entries links + $renderer->doc .= $this->_browseEntriesLinks($more, $first, $num); + + // show new entry form + if ($perm_create && $formpos == 'bottom') { + $renderer->doc .= $this->_newEntryForm($ns, $newentrytitle); + } + } + + return in_array($mode, array('xhtml', 'metadata', 'code')); + } + + /* ---------- (X)HTML Output Functions ---------- */ + + /** + * Displays links to older newer entries of the blog namespace + */ + function _browseEntriesLinks($more, $first, $num) { + global $ID; + + $ret = ''; + $last = $first+$num; + if ($first > 0) { + $first -= $num; + if ($first < 0) $first = 0; + $ret .= '

'.DOKU_LF.'<< '.$this->getLang('newer').''; + if ($more) $ret .= ' | '; + else $ret .= '

'; + } else if ($more) { + $ret .= '

'.DOKU_LF; + } + if ($more) { + $ret .= ''. + $this->getLang('older').' >>'.DOKU_LF.'

'.DOKU_LF; + } + return $ret; + } + + /** + * Displays a form to enter the title of a new entry in the blog namespace + * and then open that page in the edit mode + */ + function _newEntryForm($ns, $newentrytitle) { + global $lang; + global $ID; + + return '
'.DOKU_LF. + '
'.DOKU_LF. + DOKU_TAB.'
'.DOKU_LF. + DOKU_TAB.DOKU_TAB.''.hsc($newentrytitle).''.DOKU_LF. + DOKU_TAB.DOKU_TAB.''.DOKU_LF. + DOKU_TAB.DOKU_TAB.''.DOKU_LF. + DOKU_TAB.DOKU_TAB.''.DOKU_LF. + DOKU_TAB.DOKU_TAB.''.DOKU_LF. + DOKU_TAB.DOKU_TAB.''.DOKU_LF. + DOKU_TAB.'
'.DOKU_LF. + '
'.DOKU_LF. + '
'.DOKU_LF; + } +} +// vim:ts=4:sw=4:et:enc=utf-8: diff --git a/public_html/lib/plugins/blog/syntax/draft.php b/public_html/lib/plugins/blog/syntax/draft.php new file mode 100644 index 00000000..8bd70f4f --- /dev/null +++ b/public_html/lib/plugins/blog/syntax/draft.php @@ -0,0 +1,39 @@ + + */ + +// must be run within Dokuwiki +if (!defined('DOKU_INC')) die(); + +if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); +require_once(DOKU_PLUGIN.'syntax.php'); + +class syntax_plugin_blog_draft extends DokuWiki_Syntax_Plugin { + + function getType() { return 'substition'; } + function getSort() { return 99; } + + function connectTo($mode) { + $this->Lexer->addSpecialPattern('~~DRAFT~~', $mode, 'plugin_blog_draft'); + } + + function handle($match, $state, $pos, Doku_Handler $handler) { + return true; + } + + /** + * The only thing this plugin component does is to set the metadata 'type' to 'draft' + */ + function render($mode, Doku_Renderer $renderer, $data) { + if ($mode == 'xthml') { + return true; // don't output anything + } elseif ($mode == 'metadata') { + $renderer->meta['type'] = 'draft'; + } + } +} +// vim:ts=4:sw=4:et:enc=utf-8: