summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Williams <andy@andywilliams.me>2017-12-19 14:46:30 +0000
committerAndy Williams <andy@andywilliams.me>2017-12-19 14:46:30 +0000
commit99d9fe0899db67b1b4223d54a09f69c558bc0ed1 (patch)
tree0285295262be8483b3e335e6520b1abe6562be30
parentf1e9195b2ff61709e74950e836b64e005aacdf91 (diff)
plugins: Add blog plugin so we can fix the news page
-rw-r--r--public_html/lib/plugins/blog/COPYING340
-rw-r--r--public_html/lib/plugins/blog/README10
-rw-r--r--public_html/lib/plugins/blog/_template.txt6
-rw-r--r--public_html/lib/plugins/blog/action.php245
-rw-r--r--public_html/lib/plugins/blog/conf/default.php18
-rw-r--r--public_html/lib/plugins/blog/conf/metadata.php22
-rw-r--r--public_html/lib/plugins/blog/helper.php187
-rw-r--r--public_html/lib/plugins/blog/lang/ar/lang.php36
-rw-r--r--public_html/lib/plugins/blog/lang/ar/settings.php35
-rw-r--r--public_html/lib/plugins/blog/lang/cs/lang.php25
-rw-r--r--public_html/lib/plugins/blog/lang/cs/settings.php25
-rw-r--r--public_html/lib/plugins/blog/lang/da/lang.php31
-rw-r--r--public_html/lib/plugins/blog/lang/da/settings.php24
-rw-r--r--public_html/lib/plugins/blog/lang/de-informal/lang.php31
-rw-r--r--public_html/lib/plugins/blog/lang/de-informal/settings.php29
-rw-r--r--public_html/lib/plugins/blog/lang/de/lang.php31
-rw-r--r--public_html/lib/plugins/blog/lang/de/settings.php29
-rw-r--r--public_html/lib/plugins/blog/lang/en/lang.php36
-rw-r--r--public_html/lib/plugins/blog/lang/en/settings.php38
-rw-r--r--public_html/lib/plugins/blog/lang/eo/lang.php31
-rw-r--r--public_html/lib/plugins/blog/lang/eo/settings.php28
-rw-r--r--public_html/lib/plugins/blog/lang/es/lang.php30
-rw-r--r--public_html/lib/plugins/blog/lang/es/settings.php23
-rw-r--r--public_html/lib/plugins/blog/lang/fa/lang.php30
-rw-r--r--public_html/lib/plugins/blog/lang/fa/settings.php27
-rw-r--r--public_html/lib/plugins/blog/lang/fr/lang.php32
-rw-r--r--public_html/lib/plugins/blog/lang/fr/settings.php29
-rw-r--r--public_html/lib/plugins/blog/lang/hu/lang.php32
-rw-r--r--public_html/lib/plugins/blog/lang/hu/settings.php29
-rw-r--r--public_html/lib/plugins/blog/lang/it/lang.php36
-rw-r--r--public_html/lib/plugins/blog/lang/it/settings.php12
-rw-r--r--public_html/lib/plugins/blog/lang/ja/lang.php30
-rw-r--r--public_html/lib/plugins/blog/lang/ja/settings.php27
-rw-r--r--public_html/lib/plugins/blog/lang/ko/lang.php30
-rw-r--r--public_html/lib/plugins/blog/lang/ko/settings.php27
-rw-r--r--public_html/lib/plugins/blog/lang/nl/lang.php31
-rw-r--r--public_html/lib/plugins/blog/lang/nl/settings.php28
-rw-r--r--public_html/lib/plugins/blog/lang/pl/lang.php28
-rw-r--r--public_html/lib/plugins/blog/lang/pl/settings.php23
-rw-r--r--public_html/lib/plugins/blog/lang/pt-br/lang.php30
-rw-r--r--public_html/lib/plugins/blog/lang/pt-br/settings.php23
-rw-r--r--public_html/lib/plugins/blog/lang/pt/lang.php31
-rw-r--r--public_html/lib/plugins/blog/lang/pt/settings.php28
-rw-r--r--public_html/lib/plugins/blog/lang/ro/lang.php32
-rw-r--r--public_html/lib/plugins/blog/lang/ro/settings.php30
-rw-r--r--public_html/lib/plugins/blog/lang/ru/lang.php31
-rw-r--r--public_html/lib/plugins/blog/lang/ru/settings.php29
-rw-r--r--public_html/lib/plugins/blog/lang/sl/lang.php15
-rw-r--r--public_html/lib/plugins/blog/lang/sl/settings.php19
-rw-r--r--public_html/lib/plugins/blog/lang/sv/lang.php32
-rw-r--r--public_html/lib/plugins/blog/lang/sv/settings.php29
-rw-r--r--public_html/lib/plugins/blog/lang/tr/lang.php30
-rw-r--r--public_html/lib/plugins/blog/lang/tr/settings.php27
-rw-r--r--public_html/lib/plugins/blog/lang/zh/lang.php36
-rw-r--r--public_html/lib/plugins/blog/lang/zh/settings.php38
-rw-r--r--public_html/lib/plugins/blog/plugin.info.txt8
-rw-r--r--public_html/lib/plugins/blog/print.css3
-rw-r--r--public_html/lib/plugins/blog/style.css40
-rw-r--r--public_html/lib/plugins/blog/syntax/archive.php251
-rw-r--r--public_html/lib/plugins/blog/syntax/autoarchive.php163
-rw-r--r--public_html/lib/plugins/blog/syntax/blog.php212
-rw-r--r--public_html/lib/plugins/blog/syntax/draft.php39
62 files changed, 2937 insertions, 0 deletions
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 @@
1 GNU GENERAL PUBLIC LICENSE
2 Version 2, June 1991
3
4 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6 Everyone is permitted to copy and distribute verbatim copies
7 of this license document, but changing it is not allowed.
8
9 Preamble
10
11 The licenses for most software are designed to take away your
12freedom to share and change it. By contrast, the GNU General Public
13License is intended to guarantee your freedom to share and change free
14software--to make sure the software is free for all its users. This
15General Public License applies to most of the Free Software
16Foundation's software and to any other program whose authors commit to
17using it. (Some other Free Software Foundation software is covered by
18the GNU Library General Public License instead.) You can apply it to
19your programs, too.
20
21 When we speak of free software, we are referring to freedom, not
22price. Our General Public Licenses are designed to make sure that you
23have the freedom to distribute copies of free software (and charge for
24this service if you wish), that you receive source code or can get it
25if you want it, that you can change the software or use pieces of it
26in new free programs; and that you know you can do these things.
27
28 To protect your rights, we need to make restrictions that forbid
29anyone to deny you these rights or to ask you to surrender the rights.
30These restrictions translate to certain responsibilities for you if you
31distribute copies of the software, or if you modify it.
32
33 For example, if you distribute copies of such a program, whether
34gratis or for a fee, you must give the recipients all the rights that
35you have. You must make sure that they, too, receive or can get the
36source code. And you must show them these terms so they know their
37rights.
38
39 We protect your rights with two steps: (1) copyright the software, and
40(2) offer you this license which gives you legal permission to copy,
41distribute and/or modify the software.
42
43 Also, for each author's protection and ours, we want to make certain
44that everyone understands that there is no warranty for this free
45software. If the software is modified by someone else and passed on, we
46want its recipients to know that what they have is not the original, so
47that any problems introduced by others will not reflect on the original
48authors' reputations.
49
50 Finally, any free program is threatened constantly by software
51patents. We wish to avoid the danger that redistributors of a free
52program will individually obtain patent licenses, in effect making the
53program proprietary. To prevent this, we have made it clear that any
54patent must be licensed for everyone's free use or not licensed at all.
55
56 The precise terms and conditions for copying, distribution and
57modification follow.
58
59 GNU GENERAL PUBLIC LICENSE
60 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
62 0. This License applies to any program or other work which contains
63a notice placed by the copyright holder saying it may be distributed
64under the terms of this General Public License. The "Program", below,
65refers to any such program or work, and a "work based on the Program"
66means either the Program or any derivative work under copyright law:
67that is to say, a work containing the Program or a portion of it,
68either verbatim or with modifications and/or translated into another
69language. (Hereinafter, translation is included without limitation in
70the term "modification".) Each licensee is addressed as "you".
71
72Activities other than copying, distribution and modification are not
73covered by this License; they are outside its scope. The act of
74running the Program is not restricted, and the output from the Program
75is covered only if its contents constitute a work based on the
76Program (independent of having been made by running the Program).
77Whether that is true depends on what the Program does.
78
79 1. You may copy and distribute verbatim copies of the Program's
80source code as you receive it, in any medium, provided that you
81conspicuously and appropriately publish on each copy an appropriate
82copyright notice and disclaimer of warranty; keep intact all the
83notices that refer to this License and to the absence of any warranty;
84and give any other recipients of the Program a copy of this License
85along with the Program.
86
87You may charge a fee for the physical act of transferring a copy, and
88you may at your option offer warranty protection in exchange for a fee.
89
90 2. You may modify your copy or copies of the Program or any portion
91of it, thus forming a work based on the Program, and copy and
92distribute such modifications or work under the terms of Section 1
93above, provided that you also meet all of these conditions:
94
95 a) You must cause the modified files to carry prominent notices
96 stating that you changed the files and the date of any change.
97
98 b) You must cause any work that you distribute or publish, that in
99 whole or in part contains or is derived from the Program or any
100 part thereof, to be licensed as a whole at no charge to all third
101 parties under the terms of this License.
102
103 c) If the modified program normally reads commands interactively
104 when run, you must cause it, when started running for such
105 interactive use in the most ordinary way, to print or display an
106 announcement including an appropriate copyright notice and a
107 notice that there is no warranty (or else, saying that you provide
108 a warranty) and that users may redistribute the program under
109 these conditions, and telling the user how to view a copy of this
110 License. (Exception: if the Program itself is interactive but
111 does not normally print such an announcement, your work based on
112 the Program is not required to print an announcement.)
113
114These requirements apply to the modified work as a whole. If
115identifiable sections of that work are not derived from the Program,
116and can be reasonably considered independent and separate works in
117themselves, then this License, and its terms, do not apply to those
118sections when you distribute them as separate works. But when you
119distribute the same sections as part of a whole which is a work based
120on the Program, the distribution of the whole must be on the terms of
121this License, whose permissions for other licensees extend to the
122entire whole, and thus to each and every part regardless of who wrote it.
123
124Thus, it is not the intent of this section to claim rights or contest
125your rights to work written entirely by you; rather, the intent is to
126exercise the right to control the distribution of derivative or
127collective works based on the Program.
128
129In addition, mere aggregation of another work not based on the Program
130with the Program (or with a work based on the Program) on a volume of
131a storage or distribution medium does not bring the other work under
132the scope of this License.
133
134 3. You may copy and distribute the Program (or a work based on it,
135under Section 2) in object code or executable form under the terms of
136Sections 1 and 2 above provided that you also do one of the following:
137
138 a) Accompany it with the complete corresponding machine-readable
139 source code, which must be distributed under the terms of Sections
140 1 and 2 above on a medium customarily used for software interchange; or,
141
142 b) Accompany it with a written offer, valid for at least three
143 years, to give any third party, for a charge no more than your
144 cost of physically performing source distribution, a complete
145 machine-readable copy of the corresponding source code, to be
146 distributed under the terms of Sections 1 and 2 above on a medium
147 customarily used for software interchange; or,
148
149 c) Accompany it with the information you received as to the offer
150 to distribute corresponding source code. (This alternative is
151 allowed only for noncommercial distribution and only if you
152 received the program in object code or executable form with such
153 an offer, in accord with Subsection b above.)
154
155The source code for a work means the preferred form of the work for
156making modifications to it. For an executable work, complete source
157code means all the source code for all modules it contains, plus any
158associated interface definition files, plus the scripts used to
159control compilation and installation of the executable. However, as a
160special exception, the source code distributed need not include
161anything that is normally distributed (in either source or binary
162form) with the major components (compiler, kernel, and so on) of the
163operating system on which the executable runs, unless that component
164itself accompanies the executable.
165
166If distribution of executable or object code is made by offering
167access to copy from a designated place, then offering equivalent
168access to copy the source code from the same place counts as
169distribution of the source code, even though third parties are not
170compelled to copy the source along with the object code.
171
172 4. You may not copy, modify, sublicense, or distribute the Program
173except as expressly provided under this License. Any attempt
174otherwise to copy, modify, sublicense or distribute the Program is
175void, and will automatically terminate your rights under this License.
176However, parties who have received copies, or rights, from you under
177this License will not have their licenses terminated so long as such
178parties remain in full compliance.
179
180 5. You are not required to accept this License, since you have not
181signed it. However, nothing else grants you permission to modify or
182distribute the Program or its derivative works. These actions are
183prohibited by law if you do not accept this License. Therefore, by
184modifying or distributing the Program (or any work based on the
185Program), you indicate your acceptance of this License to do so, and
186all its terms and conditions for copying, distributing or modifying
187the Program or works based on it.
188
189 6. Each time you redistribute the Program (or any work based on the
190Program), the recipient automatically receives a license from the
191original licensor to copy, distribute or modify the Program subject to
192these terms and conditions. You may not impose any further
193restrictions on the recipients' exercise of the rights granted herein.
194You are not responsible for enforcing compliance by third parties to
195this License.
196
197 7. If, as a consequence of a court judgment or allegation of patent
198infringement or for any other reason (not limited to patent issues),
199conditions are imposed on you (whether by court order, agreement or
200otherwise) that contradict the conditions of this License, they do not
201excuse you from the conditions of this License. If you cannot
202distribute so as to satisfy simultaneously your obligations under this
203License and any other pertinent obligations, then as a consequence you
204may not distribute the Program at all. For example, if a patent
205license would not permit royalty-free redistribution of the Program by
206all those who receive copies directly or indirectly through you, then
207the only way you could satisfy both it and this License would be to
208refrain entirely from distribution of the Program.
209
210If any portion of this section is held invalid or unenforceable under
211any particular circumstance, the balance of the section is intended to
212apply and the section as a whole is intended to apply in other
213circumstances.
214
215It is not the purpose of this section to induce you to infringe any
216patents or other property right claims or to contest validity of any
217such claims; this section has the sole purpose of protecting the
218integrity of the free software distribution system, which is
219implemented by public license practices. Many people have made
220generous contributions to the wide range of software distributed
221through that system in reliance on consistent application of that
222system; it is up to the author/donor to decide if he or she is willing
223to distribute software through any other system and a licensee cannot
224impose that choice.
225
226This section is intended to make thoroughly clear what is believed to
227be a consequence of the rest of this License.
228
229 8. If the distribution and/or use of the Program is restricted in
230certain countries either by patents or by copyrighted interfaces, the
231original copyright holder who places the Program under this License
232may add an explicit geographical distribution limitation excluding
233those countries, so that distribution is permitted only in or among
234countries not thus excluded. In such case, this License incorporates
235the limitation as if written in the body of this License.
236
237 9. The Free Software Foundation may publish revised and/or new versions
238of the General Public License from time to time. Such new versions will
239be similar in spirit to the present version, but may differ in detail to
240address new problems or concerns.
241
242Each version is given a distinguishing version number. If the Program
243specifies a version number of this License which applies to it and "any
244later version", you have the option of following the terms and conditions
245either of that version or of any later version published by the Free
246Software Foundation. If the Program does not specify a version number of
247this License, you may choose any version ever published by the Free Software
248Foundation.
249
250 10. If you wish to incorporate parts of the Program into other free
251programs whose distribution conditions are different, write to the author
252to ask for permission. For software which is copyrighted by the Free
253Software Foundation, write to the Free Software Foundation; we sometimes
254make exceptions for this. Our decision will be guided by the two goals
255of preserving the free status of all derivatives of our free software and
256of promoting the sharing and reuse of software generally.
257
258 NO WARRANTY
259
260 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268REPAIR OR CORRECTION.
269
270 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278POSSIBILITY OF SUCH DAMAGES.
279
280 END OF TERMS AND CONDITIONS
281
282 How to Apply These Terms to Your New Programs
283
284 If you develop a new program, and you want it to be of the greatest
285possible use to the public, the best way to achieve this is to make it
286free software which everyone can redistribute and change under these terms.
287
288 To do so, attach the following notices to the program. It is safest
289to attach them to the start of each source file to most effectively
290convey the exclusion of warranty; and each file should have at least
291the "copyright" line and a pointer to where the full notice is found.
292
293 <one line to give the program's name and a brief idea of what it does.>
294 Copyright (C) <year> <name of author>
295
296 This program is free software; you can redistribute it and/or modify
297 it under the terms of the GNU General Public License as published by
298 the Free Software Foundation; either version 2 of the License, or
299 (at your option) any later version.
300
301 This program is distributed in the hope that it will be useful,
302 but WITHOUT ANY WARRANTY; without even the implied warranty of
303 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 GNU General Public License for more details.
305
306 You should have received a copy of the GNU General Public License
307 along with this program; if not, write to the Free Software
308 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
309
310
311Also add information on how to contact you by electronic and paper mail.
312
313If the program is interactive, make it output a short notice like this
314when it starts in an interactive mode:
315
316 Gnomovision version 69, Copyright (C) year name of author
317 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318 This is free software, and you are welcome to redistribute it
319 under certain conditions; type `show c' for details.
320
321The hypothetical commands `show w' and `show c' should show the appropriate
322parts of the General Public License. Of course, the commands you use may
323be called something other than `show w' and `show c'; they could even be
324mouse-clicks or menu items--whatever suits your program.
325
326You should also get your employer (if you work as a programmer) or your
327school, if any, to sign a "copyright disclaimer" for the program, if
328necessary. Here is a sample; alter the names:
329
330 Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331 `Gnomovision' (which makes passes at compilers) written by James Hacker.
332
333 <signature of Ty Coon>, 1 April 1989
334 Ty Coon, President of Vice
335
336This General Public License does not permit incorporating your program into
337proprietary programs. If your program is a subroutine library, you may
338consider it more useful to permit linking proprietary applications with the
339library. If this is what you want to do, use the GNU Library General
340Public 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 @@
1====== Blog Plugin for DokuWiki ======
2
3All documentation for the Blog Plugin is available online at:
4
5 * http://dokuwiki.org/plugin:blog
6
7(c) 2005 - 2007 by Esther Brunner <wikidesign@gmail.com>
8(c) 2008 - 2009 by Gina Häußge, Michael Klier <dokuwiki@chimeric.de>
9(c) 2013 by Michael Hamann <michael@content-space.de>
10See 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 @@
1====== @TITLE@ ======
2
3@TAG@
4
5@LINKBACK@
6@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 @@
1<?php
2/**
3 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
4 * @author Esther Brunner <wikidesign@gmail.com>
5 */
6
7// must be run within Dokuwiki
8if(!defined('DOKU_INC')) die();
9
10if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
11require_once(DOKU_PLUGIN.'action.php');
12
13class action_plugin_blog extends DokuWiki_Action_Plugin {
14
15 /**
16 * register the eventhandlers
17 */
18 function register(Doku_Event_Handler $contr) {
19 $contr->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_act_preprocess', array());
20 $contr->register_hook('FEED_ITEM_ADD', 'BEFORE', $this, 'handle_feed_item');
21 $contr->register_hook('PARSER_CACHE_USE', 'BEFORE', $this, 'handle_cache');
22 }
23
24 /**
25 * Checks if 'newentry' was given as action, if so we
26 * do handle the event our self and no further checking takes place
27 */
28 function handle_act_preprocess(Doku_Event $event, $param) {
29 if ($event->data != 'newentry') return; // nothing to do for us
30
31 $event->data = $this->_handle_newEntry($event);
32 }
33
34 /**
35 * Removes draft entries from feeds
36 *
37 * @author Michael Klier <chi@chimeric.de>
38 */
39 function handle_feed_item(&$event, $param) {
40 global $conf;
41
42 $url = parse_url($event->data['item']->link);
43 $base_url = getBaseURL();
44
45 // determine page id by rewrite mode
46 switch($conf['userewrite']) {
47 case 0:
48 preg_match('#id=([^&]*)#', $url['query'], $match);
49 if($base_url != '/') {
50 $id = cleanID(str_replace($base_url, '', $match[1]));
51 } else {
52 $id = cleanID($match[1]);
53 }
54 break;
55
56 case 1:
57 if($base_url != '/') {
58 $id = cleanID(str_replace('/',':',str_replace($base_url, '', $url['path'])));
59 } else {
60 $id = cleanID(str_replace('/',':', $url['path']));
61 }
62 break;
63
64 case 2:
65 preg_match('#doku.php/([^&]*)#', $url['path'], $match);
66 if($base_url != '/') {
67 $id = cleanID(str_replace($base_url, '', $match[1]));
68 } else {
69 $id = cleanID($match[1]);
70 }
71 break;
72 }
73
74 // don't add drafts to the feed
75 if(p_get_metadata($id, 'type') == 'draft') {
76 $event->preventDefault();
77 return;
78 }
79 }
80
81 /**
82 * Creates a new entry page
83 */
84 function _handle_newEntry(Doku_Event $event) {
85 global $ID, $INFO;
86
87 $ns = cleanID($_REQUEST['ns']);
88 $title = str_replace(':', '', $_REQUEST['title']);
89 $ID = $this->_newEntryID($ns, $title);
90 $INFO = pageinfo();
91
92 // check if we are allowed to create this file
93 if ($INFO['perm'] >= AUTH_CREATE) {
94
95 // prepare the new thread file with default stuff
96 if (!@file_exists($INFO['filepath'])) {
97
98 // prevent default edit action and further processing of the event
99 $event->preventDefault();
100
101 //check if locked by anyone - if not lock for my self
102 if ($INFO['locked']) return 'locked';
103 else lock($ID);
104
105 global $TEXT;
106
107 $TEXT = pageTemplate(array(($ns ? $ns.':' : '').$title));
108 if (!$TEXT) {
109 $data = array('id' => $ID, 'ns' => $ns, 'title' => $_REQUEST['title']);
110 $TEXT = $this->_pageTemplate($data);
111 }
112 return 'preview';
113 } else {
114 return 'edit';
115 }
116 } else {
117 return 'show';
118 }
119 }
120
121 /**
122 * Adapted version of pageTemplate() function
123 */
124 function _pageTemplate($data) {
125 global $conf, $INFO;
126
127 $id = $data['id'];
128 $user = $_SERVER['REMOTE_USER'];
129 $tpl = io_readFile(DOKU_PLUGIN.'blog/_template.txt');
130
131 // standard replacements
132 $replace = array(
133 '@ID@' => $id,
134 '@NS@' => $data['ns'],
135 '@PAGE@' => strtr(noNS($id),'_',' '),
136 '@USER@' => $user,
137 '@NAME@' => $INFO['userinfo']['name'],
138 '@MAIL@' => $INFO['userinfo']['mail'],
139 '@DATE@' => strftime($conf['dformat']),
140 );
141
142 // additional replacements
143 $replace['@TITLE@'] = $data['title'];
144
145 // tag if tag plugin is available
146 if ((@file_exists(DOKU_PLUGIN.'tag/syntax/tag.php'))
147 && (!plugin_isdisabled('tag'))) {
148 $replace['@TAG@'] = "\n\n{{tag>}}";
149 } else {
150 $replace['@TAG@'] = '';
151 }
152
153 // discussion if discussion plugin is available
154 if ((@file_exists(DOKU_PLUGIN.'discussion/syntax/comments.php'))
155 && (!plugin_isdisabled('discussion'))) {
156 $replace['@DISCUSSION@'] = "~~DISCUSSION~~";
157 } else {
158 $replace['@DISCUSSION@'] = '';
159 }
160
161 // linkbacks if linkback plugin is available
162 if ((@file_exists(DOKU_PLUGIN.'linkback/syntax.php'))
163 && (!plugin_isdisabled('linkback'))) {
164 $replace['@LINKBACK@'] = "~~LINKBACK~~";
165 } else {
166 $replace['@LINKBACK@'] = '';
167 }
168
169 // do the replace
170 $tpl = str_replace(array_keys($replace), array_values($replace), $tpl);
171 return $tpl;
172 }
173
174 /**
175 * Returns the ID of a new entry based on its namespace, title and the date prefix
176 *
177 * @author Esther Brunner <wikidesign@gmail.com>
178 * @author Michael Arlt <michael.arlt@sk-chwanstetten.de>
179 */
180 function _newEntryID($ns, $title) {
181 $dateprefix = $this->getConf('dateprefix');
182 if (substr($dateprefix, 0, 1) == '<') {
183 // <9?%y1-%y2:%d.%m._ -> 05-06:31.08._ | 06-07:01.09._
184 list($newmonth, $dateprefix) = explode('?', substr($dateprefix, 1));
185 if (intval(strftime("%m")) < intval($newmonth)) {
186 $longyear2 = strftime("%Y");
187 $longyear1 = $longyear2 - 1;
188 } else {
189 $longyear1 = strftime("%Y");
190 $longyear2 = $longyear1 + 1;
191 }
192 $shortyear1 = substr($longyear1, 2);
193 $shortyear2 = substr($longyear2, 2);
194 $dateprefix = str_replace(
195 array('%Y1', '%Y2', '%y1', '%y2'),
196 array($longyear1, $longyear2, $shortyear1, $shortyear2),
197 $dateprefix
198 );
199 }
200 $pre = strftime($dateprefix);
201 return ($ns ? $ns.':' : '').$pre.cleanID($title);
202 }
203
204 /**
205 * Expire the renderer cache of archive pages whenever a page is updated or a comment or linkback is added
206 *
207 * @author Michael Hamann <michael@content-space.de>
208 */
209 function handle_cache(Doku_Event $event, $params) {
210 global $conf;
211 /** @var cache_parser $cache */
212 $cache = $event->data;
213 if (!in_array($cache->mode, array('xhtml', 'metadata'))) return;
214 $page = $cache->page;
215
216 // try to extract the page id from the file if possible
217 if (empty($page)) {
218 if (strpos($cache->file, $conf['datadir']) === 0) {
219 $page = pathID(substr($cache->file, strlen($conf['datadir'])+1));
220 } else {
221 return;
222 }
223 }
224
225 $meta = p_get_metadata($page, 'plugin_blog');
226 if ($meta === null) return;
227
228 if (isset($meta['purgefile_cache'])) {
229 $cache->depends['files'][] = $conf['cachedir'].'/purgefile';
230 $cache->depends['files'][] = $conf['metadir'].'/_comments.changes';
231 $cache->depends['files'][] = $conf['metadir'].'/_linkbacks.changes';
232 }
233
234 // purge the cache when a page is listed that the current user can't access
235 if (isset($meta['archive_pages'])) {
236 foreach ($meta['archive_pages'] as $page) {
237 if (auth_quickaclcheck($page) < AUTH_READ) {
238 $cache->depends['purge'] = true;
239 return;
240 }
241 }
242 }
243 }
244}
245// 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 @@
1<?php
2/**
3 * Options for the Blog Plugin
4 */
5$conf['namespace'] = 'blog'; // default location for blog entries
6$conf['formposition'] = 'bottom'; // position of new entry form
7$conf['newentrytitle'] = ''; // Title text for the 'new entry' form
8$conf['dateprefix'] = ''; // prefix date to new entry IDs
9$conf['sortkey'] = 'cdate'; // sort key for blog entries
10$conf['sortorder'] = 'descending'; // ascending or descending
11
12$conf['showhistogram'] = 1; // show histogramm in archive
13$conf['max_months'] = 100; // max months to show in the histogram
14$conf['histogram_height'] = 50; // height of the histogram in pixels
15
16$conf['excluded_pages'] = '!^blog:\d{4}(:\d{2})?$!'; // regex for pages to exclude from bloglisting
17
18// vim:ts=4:sw=4:et:enc=utf-8:
diff --git a/public_html/lib/plugins/blog/conf/metadata.php b/public_html/lib/plugins/blog/conf/metadata.php
new file mode 100644
index 00000000..822d3c43
--- /dev/null
+++ b/public_html/lib/plugins/blog/conf/metadata.php
@@ -0,0 +1,22 @@
1<?php
2/**
3 * Metadata for configuration manager plugin
4 * Additions for the blog plugin
5 *
6 * @author Esther Brunner <wikidesign@gmail.com>
7 */
8$meta['namespace'] = array('string');
9$meta['formposition'] = array('multichoice',
10 '_choices' => array('top', 'bottom', 'none'));
11$meta['newentrytitle'] = array('string');
12$meta['dateprefix'] = array('string');
13$meta['sortkey'] = array('multichoice',
14 '_choices' => array('cdate', 'mdate', 'pagename', 'id', 'title'));
15$meta['sortorder'] = array('multichoice',
16 '_choices' => array('ascending', 'descending'));
17$meta['excluded_pages'] = array('string');
18
19$meta['showhistogram'] = array('onoff');
20$meta['max_months'] = array('numeric');
21$meta['histogram_height'] = array('numeric');
22// 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 @@
1<?php
2/**
3 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
4 * @author Esther Brunner <wikidesign@gmail.com>
5 */
6
7// must be run within Dokuwiki
8if (!defined('DOKU_INC')) die();
9
10class helper_plugin_blog extends DokuWiki_Plugin {
11
12 var $sort = ''; // sort key
13
14 /**
15 * Constructor
16 */
17 function helper_plugin_blog() {
18 global $conf;
19
20 // load sort key from settings
21 $this->sort = $this->getConf('sortkey');
22 }
23
24 function getMethods() {
25 $result = array();
26 $result[] = array(
27 'name' => 'getBlog',
28 'desc' => 'returns blog entries in reverse chronological order',
29 'params' => array(
30 'namespace' => 'string',
31 'number (optional)' => 'integer'),
32 'return' => array('pages' => 'array'),
33 );
34 $result[] = array(
35 'name' => 'getFlags',
36 'desc' => 'get values for flags, or defaults where not supplied',
37 'params' => array('flags' => 'array'),
38 'return' => array('flags' => 'array'),
39 );
40 return $result;
41 }
42
43 /**
44 * Get blog entries from a given namespace
45 */
46 function getBlog($ns, $num = NULL, $author = NULL) {
47 global $conf;
48
49 // add pages in given namespace
50 $result = array();
51 global $conf;
52
53 require_once (DOKU_INC.'inc/search.php');
54
55 $pages = array();
56 $unique_keys_memoize = array();
57
58 $dir = str_replace(':', '/', $ns);
59 search($pages, $conf['datadir'], 'search_pagename', array('query' => '.txt'), $dir);
60
61 foreach ($pages as $page) {
62 $id = $page['id'];
63 $file = wikiFN($id);
64
65 // do some checks first
66 if (isHiddenPage($id)) continue; // skip excluded pages
67 $excluded_pages = $this->getConf('excluded_pages');
68 if (strlen($excluded_pages) > 0 && preg_match($excluded_pages, $id)) continue;
69 if (($ns) && (strpos($id, $ns.':') !== 0)) continue; // filter namespaces
70 if (!@file_exists($file)) continue; // skip deleted
71
72 $perm = auth_quickaclcheck($id);
73 if ($perm < AUTH_READ) continue; // check ACL
74
75 // skip drafts unless for users with create priviledge
76 $meta = p_get_metadata($id, '', false);
77 $draft = ($meta['type'] == 'draft');
78 if ($draft && ($perm < AUTH_CREATE)) continue;
79
80 // filter by author
81 if ($author && ($meta['user'] != $author)) continue;
82
83 $date = $meta['date']['modified'];
84 if (!$date) $date = filemtime(wikiFN($id));
85 if ($this->sort != 'mdate') {
86 $cdate = $meta['date']['created'];
87 if (!$cdate) $cdate = filectime(wikiFN($id));
88 // prefer the date further in the past:
89 $date = min($date, $cdate);
90 }
91
92 if (isset($meta['title'])) {
93 $title = $meta['title'];
94 } else {
95 $title = $id;
96 }
97
98 // determine the sort key
99 if ($this->sort == 'id') $key = $id;
100 elseif ($this->sort == 'pagename') $key = noNS($id);
101 elseif ($this->sort == 'title') $key = $title;
102 else $key = $date;
103
104 // get a unique sortable key
105 $key = $this->_uniqueKey($key, $unique_keys_memoize);
106
107 $result[$key] = array(
108 'id' => $id,
109 'title' => $title,
110 'date' => $date,
111 'user' => $meta['creator'],
112 'desc' => $meta['description']['abstract'],
113 'exists' => true,
114 'perm' => $perm,
115 'draft' => $draft,
116 );
117 }
118
119 // finally sort by sort key
120 if ($this->getConf('sortorder') == 'ascending') ksort($result);
121 else krsort($result);
122
123 if (is_numeric($num)) $result = array_slice($result, 0, $num);
124
125 return $result;
126 }
127
128 /**
129 * Turn a list of user-supplied flags into a complete list of all flags
130 * required by the Blog plugin (not including those for the Include plugin),
131 * using global configuration options or plugin defaults where flags have
132 * not been supplied.
133 *
134 * Currently handles 'formpos' and 'newentrytitle'.
135 *
136 * @author Sam Wilson <sam@samwilson.id.au>
137 * @param array $setflags Flags that have been set by the user
138 * @return array All flags required by the Blog plugin (only)
139 */
140 function getFlags($setflags) {
141 $flags = array();
142
143 // Form Position
144 $flags['formpos'] = $this->getConf('formposition');
145 if(in_array('topform', $setflags)) {
146 $flags['formpos'] = 'top';
147 }elseif(in_array('bottomform', $setflags)) {
148 $flags['formpos'] = 'bottom';
149 }elseif(in_array('noform', $setflags)) {
150 $flags['formpos'] = 'none';
151 }
152
153 // New Entry Title
154 $newentrytitle = preg_grep('|newentrytitle=.*|', $setflags);
155 if (count($newentrytitle) > 0) {
156 $newentrytitle = array_pop(explode('=', array_pop($newentrytitle), 2));
157 if (!empty($newentrytitle)) {
158 $flags['newentrytitle'] = $newentrytitle;
159 }
160 } elseif ($conf_title = $this->getConf('newentrytitle')) {
161 $flags['newentrytitle'] = $conf_title;
162 } else {
163 $flags['newentrytitle'] = $this->getLang('newentry');
164 }
165
166 return $flags;
167 }
168
169 /**
170 * Function to create sortable, unique array keys
171 *
172 * @author Esther Brunner <wikidesign@gmail.com>
173 * @author Ilya S. Lebedev <ilya@lebedev.net>
174 * @author Balazs Attila-Mihaly <x_at_y_or_z@yahoo.com>
175 */
176 function _uniqueKey($key, &$unique_keys_memoize){
177 //convert numeric keys to string
178 if (is_numeric($key))
179 $key = sprintf('%08x', $key);
180 if (!array_key_exists($key, $unique_keys_memoize))
181 $unique_keys_memoize[$key] = 0;
182
183 return sprintf('%s_%s', $key, $unique_keys_memoize[$key]++);
184 }
185
186}
187// 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 @@
1<?php
2/**
3 * Arabic language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author M. Bashir Al-Noimi <bashir.storm@gmail.com>
7 */
8
9// custom language strings for the plugin
10$lang['blog'] = 'مدوّنة';
11$lang['older'] = 'تدوينات قديمة';
12$lang['newer'] = 'تدوينات جديدة';
13$lang['newentry'] = 'إضافة تدوينة جديدة:';
14
15$lang['missing_includeplugin'] = 'إضافة "Include" يجب أن تكون منزلّة ومفعّلة لتعمل المدونّة.';
16$lang['missing_pagelistplugin'] = 'إضافة "Pagelist" يجب أن تكون منزلّة ومفعّلة لتعمل قوائم المدوّنات.';
17$lang['missing_tagplugin'] = 'إضافة "Tag" يجب أن تكون منزلّة ومفعّلة لتعمل سحابة الوسوم.';
18
19$lang['autoarchive'] = '%d مشاركة لشهر %s %s';
20$lang['month_01'] = 'كانون الثاني';
21$lang['month_02'] = 'شباط';
22$lang['month_03'] = 'آذار';
23$lang['month_04'] = 'نيسان';
24$lang['month_05'] = 'أيار';
25$lang['month_06'] = 'حزيران';
26$lang['month_07'] = 'تموز';
27$lang['month_08'] = 'آب';
28$lang['month_09'] = 'أيلول';
29$lang['month_10'] = 'تشرين الأول';
30$lang['month_11'] = 'تشرين الثاني';
31$lang['month_12'] = 'كانون الأول';
32
33$lang['entries'] = 'مُدخلات';
34$lang['entry'] = 'مُدخلة';
35$lang['archive_title'] = 'أرشيف المدوّنة';
36//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 @@
1<?php
2/**
3 * Arabic language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author M. Bashir Al-Noimi <bashir.storm@gmail.com>
7 */
8
9// for the configuration manager
10$lang['namespace'] = 'فضاء أسماء إفتراضي للمدوّنة';
11
12$lang['formposition'] = 'موقع التدوينة الجديدة';
13$lang['formposition_o_top'] = 'أعلى';
14$lang['formposition_o_bottom'] = 'أسفل';
15
16$lang['dateprefix'] = 'بادئة التاريخ للتدوينات الجديدة';
17
18$lang['sortkey'] = 'ترتيب التدوينات حسب:';
19$lang['sortkey_o_cdate'] = 'تاريخ الإنشاء';
20$lang['sortkey_o_pagename'] = 'إسم الصفحة';
21$lang['sortkey_o_id'] = 'رقم الصفحة';
22
23$lang['sortkey_o_mdate'] = 'تاريخ التعديل';
24$lang['sortkey_o_title'] = 'العنوان';
25
26$lang['sortorder'] = 'ترتيباً';
27$lang['sortorder_o_ascending'] = 'تصاعدياً';
28$lang['sortorder_o_descending'] = 'تنازلياً';
29
30$lang['excluded_pages'] = 'استثناء صفحات معيّنة من قوائم المدوّنات (يتطلّب تعبيراً نمطيّاً RegEx)';
31
32$lang['showhistorgram'] = 'عرض الرسم البياني عند عرض الأرشيف';
33$lang['max_months'] = 'العدد الأقصى للأشهر المعروضة في الرسم البياني';
34$lang['histogram_height'] = 'طول الرسم البياني (بكسل)';
35//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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Lukas Zapletal <lukas.zapletal at gmail dot com>
7 * @author Vojta Olsan <olsh0@seznam.cz>
8 */
9$lang['blog'] = 'Blog';
10$lang['older'] = 'Starší zápisky';
11$lang['newer'] = 'Novější zápisky';
12$lang['newentry'] = 'Nový zápisek:';
13$lang['month_01'] = 'leden';
14$lang['month_02'] = 'únor';
15$lang['month_03'] = 'březen';
16$lang['month_04'] = 'duben';
17$lang['month_05'] = 'květen';
18$lang['month_06'] = 'červen';
19$lang['month_07'] = 'červenec';
20$lang['month_08'] = 'srpen';
21$lang['month_09'] = 'září';
22$lang['month_10'] = 'říjen';
23$lang['month_11'] = 'listopad';
24$lang['month_12'] = 'prosinec';
25$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Lukas Zapletal <lukas.zapletal at gmail dot com>
7 * @author Vojta Olsan <olsh0@seznam.cz>
8 */
9$lang['namespace'] = 'implicitní jmenný prostor pro blog';
10$lang['formposition'] = 'pozice pole pro zadání nového příspěvku';
11$lang['formposition_o_top'] = 'nahoře';
12$lang['formposition_o_bottom'] = 'dole';
13$lang['formposition_o_none'] = 'žádný';
14$lang['dateprefix'] = 'přidat datumový prefix novým příspěvkům';
15$lang['sortkey'] = 'razení zápisků podle';
16$lang['sortkey_o_cdate'] = 'data vytvoření';
17$lang['sortkey_o_mdate'] = 'data modifikace';
18$lang['sortkey_o_pagename'] = 'názvu stránky';
19$lang['sortkey_o_id'] = 'ID stránky';
20$lang['sortkey_o_title'] = 'název';
21$lang['sortorder'] = 'pořadí';
22$lang['sortorder_o_ascending'] = 'vzestupné';
23$lang['sortorder_o_descending'] = 'sestupné';
24$lang['max_months'] = 'Maximální počet měsíců zobrazených v histogramu';
25$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Soren Birk <soer9648@eucl.dk>
8 */
9$lang['blog'] = 'Blog';
10$lang['older'] = 'Ældre indlæg';
11$lang['newer'] = 'Nyere indlæg';
12$lang['newentry'] = 'Nyt indlæg:';
13$lang['missing_includeplugin'] = 'Include plugin skal være installeret for at bloggen virker.';
14$lang['missing_pagelistplugin'] = 'Pagelist plugin skal være installeret for at arkivlister virker.';
15$lang['missing_tagplugin'] = 'Tag plugin skal være installeret for at benytte denne funktion.';
16$lang['autoarchive'] = '%1$d indlæg i %2$s %3$s';
17$lang['month_01'] = 'januar';
18$lang['month_02'] = 'februar';
19$lang['month_03'] = 'marts';
20$lang['month_04'] = 'april';
21$lang['month_05'] = 'maj';
22$lang['month_06'] = 'juni';
23$lang['month_07'] = 'juli';
24$lang['month_08'] = 'august';
25$lang['month_09'] = 'september';
26$lang['month_10'] = 'oktober';
27$lang['month_11'] = 'november';
28$lang['month_12'] = 'december';
29$lang['entries'] = 'indlæg';
30$lang['entry'] = 'indlæg';
31$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Soren Birk <soer9648@eucl.dk>
8 */
9$lang['namespace'] = 'standard navnerum til blog';
10$lang['formposition'] = 'position af formular til nyt indlæg';
11$lang['formposition_o_top'] = 'top';
12$lang['formposition_o_bottom'] = 'bund';
13$lang['formposition_o_none'] = 'intet';
14$lang['dateprefix'] = 'foruddefineret dato for nye indlæg IDs';
15$lang['sortkey'] = 'sortér blog indlæg efter';
16$lang['sortkey_o_cdate'] = 'dato for oprettelse';
17$lang['sortkey_o_mdate'] = 'dato for seneste ændring';
18$lang['sortkey_o_pagename'] = 'sidenavn';
19$lang['sortkey_o_id'] = 'side id';
20$lang['sortkey_o_title'] = 'titel';
21$lang['sortorder'] = 'sorteringsrækkefølge';
22$lang['sortorder_o_ascending'] = 'stigende';
23$lang['sortorder_o_descending'] = 'faldende';
24$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Michael Hamann <michael@content-space.de>
8 */
9$lang['blog'] = 'Blog';
10$lang['older'] = 'Ältere Einträge';
11$lang['newer'] = 'Neuere Einträge';
12$lang['newentry'] = 'Neuer Blogeintrag:';
13$lang['missing_includeplugin'] = 'Ohne das Include Plugin funktioniert das Blog nicht.';
14$lang['missing_pagelistplugin'] = 'Ohne das Pagelist Plugin funktionieren Archivlisten nicht.';
15$lang['missing_tagplugin'] = 'Um Tag-Verfeinerungen zu verwenden, muss das Tag Plugin installiert sein.';
16$lang['autoarchive'] = '%1$d Beiträge für den %2$s %3$s';
17$lang['month_01'] = 'Januar';
18$lang['month_02'] = 'Februar';
19$lang['month_03'] = 'März';
20$lang['month_04'] = 'April';
21$lang['month_05'] = 'Mai';
22$lang['month_06'] = 'Juni';
23$lang['month_07'] = 'Juli';
24$lang['month_08'] = 'August';
25$lang['month_09'] = 'September';
26$lang['month_10'] = 'Oktober';
27$lang['month_11'] = 'November';
28$lang['month_12'] = 'Dezember';
29$lang['entries'] = 'Einträge';
30$lang['entry'] = 'Eintrag';
31$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Michael Hamann <michael@content-space.de>
8 * @author Dominik Eckelmann <deckelmann@gmail.com>
9 */
10$lang['namespace'] = 'Standard-Namensraum für Blog';
11$lang['formposition'] = 'Position des Formulars für neue Blogeinträge';
12$lang['formposition_o_top'] = 'oben';
13$lang['formposition_o_bottom'] = 'unten';
14$lang['formposition_o_none'] = 'Keine';
15$lang['newentrytitle'] = 'Titel des Formulars um neue Einträge anzulegen';
16$lang['dateprefix'] = 'Datum den IDs neuer Seiten voranstellen';
17$lang['sortkey'] = 'Blogeinträge sortieren nach:';
18$lang['sortkey_o_cdate'] = 'Erstellungsdatum';
19$lang['sortkey_o_mdate'] = 'Änderungsdatum';
20$lang['sortkey_o_pagename'] = 'Seitenname';
21$lang['sortkey_o_id'] = 'Seiten-ID';
22$lang['sortkey_o_title'] = 'Titel';
23$lang['sortorder'] = 'Sortierrichtung';
24$lang['sortorder_o_ascending'] = 'aufsteigend';
25$lang['sortorder_o_descending'] = 'absteigend';
26$lang['excluded_pages'] = 'Seiten von den Blog-Auflistungen ausschließen (regulärer Ausdruck)';
27$lang['showhistogram'] = 'Ein Histogramm auf den Archiv-Seiten anzeigen';
28$lang['max_months'] = 'Maximale Anzahl an Monaten die im Histogramm angezeigt werden sollen';
29$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Michael Hamann <michael@content-space.de>
8 */
9$lang['blog'] = 'Blog';
10$lang['older'] = 'Ältere Einträge';
11$lang['newer'] = 'Neuere Einträge';
12$lang['newentry'] = 'Neuer Blogeintrag:';
13$lang['missing_includeplugin'] = 'Ohne das Include Plugin funktioniert das Blog nicht.';
14$lang['missing_pagelistplugin'] = 'Ohne das Pagelist Plugin funktionieren Archivlisten nicht.';
15$lang['missing_tagplugin'] = 'Um Tag-Verfeinerungen zu verwenden, muss das Tag Plugin installiert sein.';
16$lang['autoarchive'] = '%1$d Beiträge für den %2$s %3$s';
17$lang['month_01'] = 'Januar';
18$lang['month_02'] = 'Februar';
19$lang['month_03'] = 'März';
20$lang['month_04'] = 'April';
21$lang['month_05'] = 'Mai';
22$lang['month_06'] = 'Juni';
23$lang['month_07'] = 'Juli';
24$lang['month_08'] = 'August';
25$lang['month_09'] = 'September';
26$lang['month_10'] = 'Oktober';
27$lang['month_11'] = 'November';
28$lang['month_12'] = 'Dezember';
29$lang['entries'] = 'Einträge';
30$lang['entry'] = 'Eintrag';
31$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Michael Hamann <michael@content-space.de>
8 * @author Dominik Eckelmann <deckelmann@gmail.com>
9 */
10$lang['namespace'] = 'Standard-Namensraum für Blog';
11$lang['formposition'] = 'Position des Formulars für neue Blogeinträge';
12$lang['formposition_o_top'] = 'oben';
13$lang['formposition_o_bottom'] = 'unten';
14$lang['formposition_o_none'] = 'Keine';
15$lang['newentrytitle'] = 'Titel des Formulars um neue Einträge anzulegen';
16$lang['dateprefix'] = 'Datum den IDs neuer Seiten voranstellen';
17$lang['sortkey'] = 'Blogeinträge sortieren nach:';
18$lang['sortkey_o_cdate'] = 'Erstellungsdatum';
19$lang['sortkey_o_mdate'] = 'Änderungsdatum';
20$lang['sortkey_o_pagename'] = 'Seitenname';
21$lang['sortkey_o_id'] = 'Seiten-ID';
22$lang['sortkey_o_title'] = 'Titel';
23$lang['sortorder'] = 'Sortierrichtung';
24$lang['sortorder_o_ascending'] = 'aufsteigend';
25$lang['sortorder_o_descending'] = 'absteigend';
26$lang['excluded_pages'] = 'Seiten von den Blog-Auflistungen ausschließen (regulärer Ausdruck)';
27$lang['showhistogram'] = 'Ein Histogramm auf den Archiv-Seiten anzeigen';
28$lang['max_months'] = 'Maximale Anzahl an Monaten die im Histogramm angezeigt werden sollen';
29$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 @@
1<?php
2/**
3 * English language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 */
8
9// custom language strings for the plugin
10$lang['blog'] = 'Blog';
11$lang['older'] = 'Older entries';
12$lang['newer'] = 'Newer entries';
13$lang['newentry'] = 'New blog entry:';
14
15$lang['missing_includeplugin'] = 'The Include Plugin must be installed for the blog to work.';
16$lang['missing_pagelistplugin'] = 'The Pagelist Plugin must be installed for archive lists to work.';
17$lang['missing_tagplugin'] = 'The Tag Plugin must be installed to use tag refinements.';
18
19$lang['autoarchive'] = '%1$d Post(s) for %2$s %3$s';
20$lang['month_01'] = 'January';
21$lang['month_02'] = 'February';
22$lang['month_03'] = 'March';
23$lang['month_04'] = 'April';
24$lang['month_05'] = 'May';
25$lang['month_06'] = 'June';
26$lang['month_07'] = 'July';
27$lang['month_08'] = 'August';
28$lang['month_09'] = 'September';
29$lang['month_10'] = 'October';
30$lang['month_11'] = 'November';
31$lang['month_12'] = 'December';
32
33$lang['entries'] = 'entries';
34$lang['entry'] = 'entry';
35$lang['archive_title'] = 'Blog History';
36//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 @@
1<?php
2/**
3 * English language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 */
8
9// for the configuration manager
10$lang['namespace'] = 'default namespace for blog';
11
12$lang['formposition'] = 'position of the new entry form';
13$lang['formposition_o_top'] = 'top';
14$lang['formposition_o_bottom'] = 'bottom';
15$lang['formposition_o_none'] = 'none';
16
17$lang['newentrytitle'] = 'title of the new entry form';
18
19$lang['dateprefix'] = 'prefix date to new entry IDs';
20
21$lang['sortkey'] = 'sort blog entries by';
22$lang['sortkey_o_cdate'] = 'creation date';
23$lang['sortkey_o_mdate'] = 'modification date';
24$lang['sortkey_o_pagename'] = 'page name';
25$lang['sortkey_o_id'] = 'page ID';
26$lang['sortkey_o_title'] = 'title';
27
28$lang['sortorder'] = 'sort order';
29$lang['sortorder_o_ascending'] = 'ascending';
30$lang['sortorder_o_descending'] = 'descending';
31
32$lang['excluded_pages'] = 'exclude certain pages from blog listing (regular expression required)';
33
34$lang['showhistogram'] = 'Display histogram on archive rendering';
35$lang['max_months'] = 'Max months to show in the histogram';
36$lang['histogram_height'] = 'Height of the histogram (in pixels)';
37
38// 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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Piotr Hołda <holda.piotr@gmail.com>
7 * @author Robert Bogenschneider <bogi@uea.org>
8 */
9$lang['blog'] = 'Blogo';
10$lang['older'] = 'Pli malnovaj enskriboj';
11$lang['newer'] = 'Pli novaj enskriboj';
12$lang['newentry'] = 'Nova blog-enskribo:';
13$lang['missing_includeplugin'] = 'La "Include"-kromaĵo devas esti instalita por uzi la blogon.';
14$lang['missing_pagelistplugin'] = 'La "Pagelist"-kromaĵo devas esti instalita por uzi arkivlistojn.';
15$lang['missing_tagplugin'] = 'La "Tag"-kromaĵo devas esti instalita por ŝanĝi etikedojn.';
16$lang['autoarchive'] = '%1$d Enskribo(j) por %2$s %3$s';
17$lang['month_01'] = 'Januaro';
18$lang['month_02'] = 'Februaro';
19$lang['month_03'] = 'Marto';
20$lang['month_04'] = 'Aprilo';
21$lang['month_05'] = 'Majo';
22$lang['month_06'] = 'Junio';
23$lang['month_07'] = 'Julio';
24$lang['month_08'] = 'Aŭgusto';
25$lang['month_09'] = 'Septembro';
26$lang['month_10'] = 'Oktobro';
27$lang['month_11'] = 'Novembro';
28$lang['month_12'] = 'Decembro';
29$lang['entries'] = 'enskriboj';
30$lang['entry'] = 'enskribo';
31$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Piotr Hołda <holda.piotr@gmail.com>
7 * @author Robert Bogenschneider <bogi@uea.org>
8 */
9$lang['namespace'] = 'defaŭlta nomspaco por la blogo';
10$lang['formposition'] = 'pozicio de formularo de nova blog-enskribo';
11$lang['formposition_o_top'] = 'supro';
12$lang['formposition_o_bottom'] = 'malsupro';
13$lang['formposition_o_none'] = 'neniu';
14$lang['newentrytitle'] = 'Titolo de nova enmet-formularo';
15$lang['dateprefix'] = 'prefikso al novaj enskrib-ID-oj';
16$lang['sortkey'] = 'ordigi blog-enskriboj laŭ';
17$lang['sortkey_o_cdate'] = 'kreodato';
18$lang['sortkey_o_mdate'] = 'modifodato';
19$lang['sortkey_o_pagename'] = 'paĝ-nomo';
20$lang['sortkey_o_id'] = 'paĝ-identigilo';
21$lang['sortkey_o_title'] = 'titolo';
22$lang['sortorder'] = 'ordiga ordo';
23$lang['sortorder_o_ascending'] = 'kreskante';
24$lang['sortorder_o_descending'] = 'malkreskante';
25$lang['excluded_pages'] = 'ekskludi certajn paĝojn de bloglistado (per regula esprimo)';
26$lang['showhistogram'] = 'Montri histogramon de arkivado';
27$lang['max_months'] = 'Montri maksimume tiom da monatoj en la histogramo';
28$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Herman Fabián Sandoval Manrique <hfsandovalm@emzac.com>
7 * @author r0sk <r0sk10@gmail.com>
8 */
9$lang['blog'] = 'Blog';
10$lang['older'] = 'Entradas anteriores';
11$lang['newer'] = 'Entradas nuevas';
12$lang['newentry'] = 'Nueva entrada en el blog:';
13$lang['missing_includeplugin'] = 'El plugin Include debe estar instalado para que el blog funcione.';
14$lang['missing_pagelistplugin'] = 'El plugin Pagelist debe estar instalado para que funcionen los listados de archivo.';
15$lang['missing_tagplugin'] = 'El plugin Tag debe estar instalado para que funcionen los tags.';
16$lang['month_01'] = 'Enero';
17$lang['month_02'] = 'Febrero';
18$lang['month_03'] = 'Marzo';
19$lang['month_04'] = 'Abril';
20$lang['month_05'] = 'Mayo';
21$lang['month_06'] = 'Junio';
22$lang['month_07'] = 'Julio';
23$lang['month_08'] = 'Agosto';
24$lang['month_09'] = 'Septiembre';
25$lang['month_10'] = 'Octubre';
26$lang['month_11'] = 'Noviembre';
27$lang['month_12'] = 'Diciembre';
28$lang['entries'] = 'entradas';
29$lang['entry'] = 'entrada';
30$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Herman Fabián Sandoval Manrique <hfsandovalm@emzac.com>
7 * @author r0sk <r0sk10@gmail.com>
8 */
9$lang['namespace'] = 'namespace predeterminado para el blog';
10$lang['formposition'] = 'posición del formulario de nueva entrada';
11$lang['formposition_o_top'] = 'arriba';
12$lang['formposition_o_bottom'] = 'abajo';
13$lang['formposition_o_none'] = 'ninguna';
14$lang['newentrytitle'] = 'título del formulario de nueva entrada';
15$lang['sortkey'] = 'ordenar entradas por';
16$lang['sortkey_o_cdate'] = 'fecha de creación';
17$lang['sortkey_o_mdate'] = 'fecha de modificación';
18$lang['sortkey_o_pagename'] = 'nombre de página';
19$lang['sortkey_o_id'] = 'ID de página';
20$lang['sortkey_o_title'] = 'título';
21$lang['sortorder'] = 'ordenamiento';
22$lang['sortorder_o_ascending'] = 'ascendente';
23$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Sam01 <m.sajad079@gmail.com>
7 */
8$lang['blog'] = 'وبلاگ';
9$lang['older'] = 'نوشته‌های قدیمی‌تر';
10$lang['newer'] = 'نوشته‌های جدیدتر';
11$lang['newentry'] = 'ثبت وبلاگ جدید:';
12$lang['missing_includeplugin'] = 'برای کارکردن وبلاگ نیاز به نصب پلاگین است.';
13$lang['missing_pagelistplugin'] = 'پلاگینPagelist باید برای آرشیوبندی نصب شود.';
14$lang['missing_tagplugin'] = 'پلاگین برچسب باید نصب شود تا اصطلاحات آن استفاده شود.';
15$lang['autoarchive'] = '%1$d مطلب (s) برای %2$s %3$s';
16$lang['month_01'] = 'ژانویه';
17$lang['month_02'] = 'فوریه';
18$lang['month_03'] = 'مارس';
19$lang['month_04'] = 'آوریل';
20$lang['month_05'] = 'می';
21$lang['month_06'] = 'ژوئن';
22$lang['month_07'] = 'جولای';
23$lang['month_08'] = 'اوت';
24$lang['month_09'] = 'سپتامبر';
25$lang['month_10'] = 'اکتبر';
26$lang['month_11'] = 'نوامبر';
27$lang['month_12'] = 'دسامبر';
28$lang['entries'] = 'ورودی‌ها';
29$lang['entry'] = 'ورودی';
30$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Sam01 <m.sajad079@gmail.com>
7 */
8$lang['namespace'] = 'فضای نام پیش‌فرض برای وبلاگ';
9$lang['formposition'] = 'موقعیت فرم جدید وارد شده';
10$lang['formposition_o_top'] = 'بالا';
11$lang['formposition_o_bottom'] = 'پایین';
12$lang['formposition_o_none'] = 'هیچ';
13$lang['newentrytitle'] = 'عنوان فرم جدید وارد شده';
14$lang['dateprefix'] = 'تاریخ پیشوند آیدی‌های ورودی‌های جدید';
15$lang['sortkey'] = 'مرتب سازی مطالب وبلاگ براساس';
16$lang['sortkey_o_cdate'] = 'تاریخ ایجاد';
17$lang['sortkey_o_mdate'] = 'تاریخ اصلاح';
18$lang['sortkey_o_pagename'] = 'نام صفحه';
19$lang['sortkey_o_id'] = 'آیدی صفحه';
20$lang['sortkey_o_title'] = 'عنوان';
21$lang['sortorder'] = 'مرتب سازی سفارشی';
22$lang['sortorder_o_ascending'] = 'صعودی';
23$lang['sortorder_o_descending'] = 'نزولی';
24$lang['excluded_pages'] = 'به غیر از صفحه‌های خاص از لیست وبلاگ (عبارت منظم مورد نیاز است)';
25$lang['showhistogram'] = 'نمایش بافت‌نگار در تفسیر آرشیو';
26$lang['max_months'] = 'حداکثر ماه‌ها برای نمایش بافت‌نگار';
27$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Damien Raude-Morvan <drazzib@drazzib.com>
7 * @author Stanislas Reltgen <stanislas@reltgen.net>
8 * @author Florent Chabaud <fchabaud@free.fr>
9 */
10$lang['blog'] = 'Blog';
11$lang['older'] = 'Anciens billets';
12$lang['newer'] = 'Billets récents';
13$lang['newentry'] = 'Nouveau billet :';
14$lang['missing_includeplugin'] = 'Le module "include" doit être installé pour que le module "blog" puisse fonctionner.';
15$lang['missing_pagelistplugin'] = 'Le module "pagelist" doit être installé pour que les archives puissent fonctionner.';
16$lang['missing_tagplugin'] = 'Le module "tag" doit être installé pour pouvoir en bénéficier dans le module "blog".';
17$lang['autoarchive'] = '%1$d billet(s) pour %2$s %3$s';
18$lang['month_01'] = 'janvier';
19$lang['month_02'] = 'février';
20$lang['month_03'] = 'mars';
21$lang['month_04'] = 'avril';
22$lang['month_05'] = 'mai';
23$lang['month_06'] = 'juin';
24$lang['month_07'] = 'juillet';
25$lang['month_08'] = 'août';
26$lang['month_09'] = 'septembre';
27$lang['month_10'] = 'octobre';
28$lang['month_11'] = 'novembre';
29$lang['month_12'] = 'décembre';
30$lang['entries'] = 'billets';
31$lang['entry'] = 'billet';
32$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Stanislas Reltgen <stanislas@reltgen.net>
7 * @author Florent Chabaud <fchabaud@free.fr>
8 * @author Nicolas Friedli <nicolas@theologique.ch>
9 */
10$lang['namespace'] = 'espace de nom par défaut pour le blog';
11$lang['formposition'] = 'position du formulaire de saisie de nouveau billet';
12$lang['formposition_o_top'] = 'haut';
13$lang['formposition_o_bottom'] = 'bas';
14$lang['formposition_o_none'] = 'aucun';
15$lang['newentrytitle'] = 'titre de la nouvelle entrée de formulaire';
16$lang['dateprefix'] = 'date préfixant les IDs des nouveaux billets';
17$lang['sortkey'] = 'trier les billets du blog par:';
18$lang['sortkey_o_cdate'] = 'date de création';
19$lang['sortkey_o_mdate'] = 'date de modification';
20$lang['sortkey_o_pagename'] = 'nom de la page';
21$lang['sortkey_o_id'] = 'ID de la page';
22$lang['sortkey_o_title'] = 'titre';
23$lang['sortorder'] = 'ordre de tri';
24$lang['sortorder_o_ascending'] = 'croissant';
25$lang['sortorder_o_descending'] = 'décroissant';
26$lang['excluded_pages'] = 'exclure certaines pages des archives du blog (expression régulière requise)';
27$lang['showhistogram'] = 'Afficher l\'histogramme du rendu des archives';
28$lang['max_months'] = 'Nombre maximal de mois à représenter dans l\'histogramme';
29$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Norbert Csík <norbert.csik@gmail.com>
7 * @author Serenity87HUN <anikototh87@gmail.com>
8 * @author Marina Vladi <deldadam@gmail.com>
9 */
10$lang['blog'] = 'Napló';
11$lang['older'] = 'régi bejegyzések';
12$lang['newer'] = 'új bejegyzések';
13$lang['newentry'] = 'Új bejegyzés:';
14$lang['missing_includeplugin'] = 'Az \'Include Plugin\'-t telepítenünk kell a napló (blog) működéséhez.';
15$lang['missing_pagelistplugin'] = 'A \'Pagelist Plugin\'-t telepítenünk kell az archiválási listák működéséhez.';
16$lang['missing_tagplugin'] = 'A \'Tag Plugin\'-t telepítenünk kell a címkék használatához.';
17$lang['autoarchive'] = '%1$d hozzászólás ehhez: %2$s %3$s';
18$lang['month_01'] = 'Január';
19$lang['month_02'] = 'Február';
20$lang['month_03'] = 'Március';
21$lang['month_04'] = 'Április';
22$lang['month_05'] = 'Május';
23$lang['month_06'] = 'Június';
24$lang['month_07'] = 'Július';
25$lang['month_08'] = 'Augusztus';
26$lang['month_09'] = 'Szeptember';
27$lang['month_10'] = 'Október';
28$lang['month_11'] = 'November';
29$lang['month_12'] = 'December';
30$lang['entries'] = 'bejegyzés';
31$lang['entry'] = 'bejegyzés';
32$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Norbert Csík <norbert.csik@gmail.com>
7 * @author Serenity87HUN <anikototh87@gmail.com>
8 * @author Marina Vladi <deldadam@gmail.com>
9 */
10$lang['namespace'] = 'napló alapértelmezett névtere';
11$lang['formposition'] = 'új bejegyzés űrlapjának helye';
12$lang['formposition_o_top'] = 'felül';
13$lang['formposition_o_bottom'] = 'alul';
14$lang['formposition_o_none'] = 'sehol';
15$lang['newentrytitle'] = 'új bejegyzés űrlapcíme';
16$lang['dateprefix'] = 'Dátumelőtag új bejegyzések ID-jéhez';
17$lang['sortkey'] = 'naplóbejegyzések rendezése eszerint';
18$lang['sortkey_o_cdate'] = 'készítés dátuma';
19$lang['sortkey_o_mdate'] = 'módosítás dátuma';
20$lang['sortkey_o_pagename'] = 'oldalnév';
21$lang['sortkey_o_id'] = 'oldalazonosító';
22$lang['sortkey_o_title'] = 'cím';
23$lang['sortorder'] = 'rendezés iránya';
24$lang['sortorder_o_ascending'] = 'növekvő';
25$lang['sortorder_o_descending'] = 'csökkenő';
26$lang['excluded_pages'] = 'bizonyos oldalak kihagyása a blog listázása esetén (regurális kifejezés használata szükséges)';
27$lang['showhistogram'] = 'Grafikon megjelenítése archiváláskor';
28$lang['max_months'] = 'Grafikonon megjelenítendő hónapok max. száma';
29$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 @@
1<?php
2/**
3 * Italian language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Niccolo Rigacci <niccolo@rigacci.org>
7 */
8
9// custom language strings for the plugin
10$lang['older'] = 'Articoli meno recenti';
11$lang['newer'] = 'Articoli più recent';
12$lang['newentry'] = 'Nuovo articolo:';
13
14$lang['missing_includeplugin'] = 'Questo blog non funziona senza il plugin Include.';
15$lang['missing_pagelistplugin'] = 'Questo blog non funziona senza il plugin Pagelist.';
16$lang['missing_tagplugin'] = 'Per utilizare i tag è ncessario installare il Plugin Tag.';
17
18$lang['autoarchive'] = '%1$d Articoli del %2$s %3$s';
19$lang['month_01'] = 'Gennaio';
20$lang['month_02'] = 'Febbraio';
21$lang['month_03'] = 'Marzo';
22$lang['month_04'] = 'Aprile';
23$lang['month_05'] = 'Maggio';
24$lang['month_06'] = 'Giugno';
25$lang['month_07'] = 'Luglio';
26$lang['month_08'] = 'Agosto';
27$lang['month_09'] = 'Settembre';
28$lang['month_10'] = 'Ottobre';
29$lang['month_11'] = 'Novembre';
30$lang['month_12'] = 'Dicembre';
31
32$lang['entries'] = 'Voci';
33$lang['entry'] = 'Voce';
34$lang['archive_title'] = 'Archivio Blog';
35
36//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 @@
1<?php
2/**
3 * Italian language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Niccolo Rigacci <niccolo@rigacci.org>
7 */
8
9// for the configuration manager
10$lang['namespace'] = 'Namespace predefinito per il blog';
11
12//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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Hideaki SAWADA <chuno@live.jp>
7 */
8$lang['blog'] = 'ブログ';
9$lang['older'] = '古い記事';
10$lang['newer'] = '新しい記事';
11$lang['newentry'] = '新しい記事の投稿:';
12$lang['missing_includeplugin'] = 'blog 構文が動くために Include プラグインが必要';
13$lang['missing_pagelistplugin'] = 'archive 構文が動くために Pagelist プラグインが必要';
14$lang['missing_tagplugin'] = 'タグ機能を使用するために Tag プラグインが必要';
15$lang['autoarchive'] = '%3$s年%2$sの%1$d記事';
16$lang['month_01'] = '01月';
17$lang['month_02'] = '02月';
18$lang['month_03'] = '03月';
19$lang['month_04'] = '04月';
20$lang['month_05'] = '05月';
21$lang['month_06'] = '06月';
22$lang['month_07'] = '07月';
23$lang['month_08'] = '08月';
24$lang['month_09'] = '09月';
25$lang['month_10'] = '10月';
26$lang['month_11'] = '11月';
27$lang['month_12'] = '12月';
28$lang['entries'] = '記事';
29$lang['entry'] = '記事';
30$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Hideaki SAWADA <chuno@live.jp>
7 */
8$lang['namespace'] = 'ブログ用のデフォルト名前空間';
9$lang['formposition'] = '新しい記事投稿用フォームの位置';
10$lang['formposition_o_top'] = '上部';
11$lang['formposition_o_bottom'] = '下部';
12$lang['formposition_o_none'] = '非表示';
13$lang['newentrytitle'] = '新しい記事投稿用フォームの題名';
14$lang['dateprefix'] = '新しい記事のページIDの先頭に付加する日付形式';
15$lang['sortkey'] = '記事のソート項目';
16$lang['sortkey_o_cdate'] = '作成日';
17$lang['sortkey_o_mdate'] = '変更日';
18$lang['sortkey_o_pagename'] = 'ページ名';
19$lang['sortkey_o_id'] = 'ページ ID';
20$lang['sortkey_o_title'] = 'タイトル';
21$lang['sortorder'] = 'ソート順';
22$lang['sortorder_o_ascending'] = '昇順';
23$lang['sortorder_o_descending'] = '降順';
24$lang['excluded_pages'] = '記事一覧から除外するページ(正規表現)';
25$lang['showhistogram'] = '記事一覧にヒストグラムを表示する';
26$lang['max_months'] = 'ヒストグラムに表示する最大月数';
27$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Myeongjin <aranet100@gmail.com>
7 */
8$lang['blog'] = '블로그';
9$lang['older'] = '오래된 항목';
10$lang['newer'] = '새 항목';
11$lang['newentry'] = '새 블로그 항목:';
12$lang['missing_includeplugin'] = 'Include 플러그인은 블로그가 작동하기 위해 설치되어야 합니다.';
13$lang['missing_pagelistplugin'] = 'Pagelist 플러그인은 보존 목록이 작동하기 위해 설치되어야 합니다.';
14$lang['missing_tagplugin'] = 'Tag 플러그인은 태그 분류를 사용하기 위해 설치되어야 합니다.';
15$lang['autoarchive'] = '%3$s년 %2$s의 게시물 %1$d개';
16$lang['month_01'] = '1월';
17$lang['month_02'] = '2월';
18$lang['month_03'] = '3월';
19$lang['month_04'] = '4월';
20$lang['month_05'] = '5월';
21$lang['month_06'] = '6월';
22$lang['month_07'] = '7월';
23$lang['month_08'] = '8월';
24$lang['month_09'] = '9월';
25$lang['month_10'] = '10월';
26$lang['month_11'] = '11월';
27$lang['month_12'] = '12월';
28$lang['entries'] = '항목';
29$lang['entry'] = '항목';
30$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Myeongjin <aranet100@gmail.com>
7 */
8$lang['namespace'] = '블로그에 대한 기본 이름공간';
9$lang['formposition'] = '새 항목 양식의 위치';
10$lang['formposition_o_top'] = '위';
11$lang['formposition_o_bottom'] = '아래';
12$lang['formposition_o_none'] = '없음';
13$lang['newentrytitle'] = '새 항목 양식의 제목';
14$lang['dateprefix'] = '새 항목 ID에 접두어 날짜';
15$lang['sortkey'] = '블로그 항목 순서로 정렬';
16$lang['sortkey_o_cdate'] = '만든 날짜';
17$lang['sortkey_o_mdate'] = '수정한 날짜';
18$lang['sortkey_o_pagename'] = '문서 이름';
19$lang['sortkey_o_id'] = '문서 ID';
20$lang['sortkey_o_title'] = '제목';
21$lang['sortorder'] = '정렬 순서';
22$lang['sortorder_o_ascending'] = '오름차순';
23$lang['sortorder_o_descending'] = '내림차순';
24$lang['excluded_pages'] = '블로그 목록에서 특정 문서를 제외 (정규 표현식 필요)';
25$lang['showhistogram'] = '보존 렌더링에 히스토그램 표시';
26$lang['max_months'] = '히스토그램에서 보여줄 최대 월';
27$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Gijs H. van Gemert <g.v.gemert@inter.nl.net>
7 * @author Mark Prins <mprins@users.sf.net>
8 */
9$lang['blog'] = 'Blog';
10$lang['older'] = 'Oude berichten';
11$lang['newer'] = 'Nieuwe berichten';
12$lang['newentry'] = 'Nieuw bericht:';
13$lang['missing_includeplugin'] = 'De Include Plugin dient geïnstalleerd te zijn om de blog te laten werken.';
14$lang['missing_pagelistplugin'] = 'De Pagelist Plugin dient geïnstalleerd te zijn om archief lijsten te laten werken.';
15$lang['missing_tagplugin'] = 'De Tag Plugin dient geïnstalleerd te zijn om label filters te laten werken.';
16$lang['autoarchive'] = '%1$d artikel(en) voor %2$s %3$s';
17$lang['month_01'] = 'januari';
18$lang['month_02'] = 'februari';
19$lang['month_03'] = 'maart';
20$lang['month_04'] = 'april';
21$lang['month_05'] = 'mei';
22$lang['month_06'] = 'juni';
23$lang['month_07'] = 'juli';
24$lang['month_08'] = 'augustus';
25$lang['month_09'] = 'september';
26$lang['month_10'] = 'october';
27$lang['month_11'] = 'november';
28$lang['month_12'] = 'december';
29$lang['entries'] = 'berichten';
30$lang['entry'] = 'bericht';
31$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Gijs van Gemert <gijsh@sherpanet.nl>
7 * @author Mark Prins <mprins@users.sf.net>
8 */
9$lang['namespace'] = 'default namespace voor blog';
10$lang['formposition'] = 'positie van het nieuwe bericht formulier';
11$lang['formposition_o_top'] = 'boven';
12$lang['formposition_o_bottom'] = 'onder';
13$lang['formposition_o_none'] = 'geen';
14$lang['newentrytitle'] = 'titels van het nieuwe bericht formulier';
15$lang['dateprefix'] = 'datum prefix aan nieuwe bericht IDs toevoegen';
16$lang['sortkey'] = 'Sorteer blog berichten op';
17$lang['sortkey_o_cdate'] = 'aanmaak datum';
18$lang['sortkey_o_mdate'] = 'bewerkingsdatum';
19$lang['sortkey_o_pagename'] = 'pagina naam';
20$lang['sortkey_o_id'] = 'pagina ID';
21$lang['sortkey_o_title'] = 'titel';
22$lang['sortorder'] = 'sorteer volgorde';
23$lang['sortorder_o_ascending'] = 'oplopend';
24$lang['sortorder_o_descending'] = 'aflopend';
25$lang['excluded_pages'] = 'bepaalde pagina\'s uitsluiten van blog lijst (vereist reguliere expressie)';
26$lang['showhistogram'] = 'Histogram tonen in de archief weergave';
27$lang['max_months'] = 'Maximum aantal te tonen maanden in het histogram';
28$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Radoslaw Gorniak
7 * @author Tomasz Dworakowski <tomaszdworakowski@gmail.com>
8 */
9$lang['blog'] = 'Blog';
10$lang['older'] = 'Wcześniejsze wpisy';
11$lang['newer'] = 'Nowsze wpisy';
12$lang['newentry'] = 'Nowy wpis';
13$lang['missing_includeplugin'] = 'Wtyczka Include musi być zainstalowana, aby blog mógł działać poprawnie.';
14$lang['missing_pagelistplugin'] = 'Wtyczka Pagelist musi być zainstalowana, aby archiwizacja mógła działać poprawnie.';
15$lang['missing_tagplugin'] = 'Wtyczka Tag Plugin musi być zainstalowana, aby móc używać tagów.';
16$lang['month_01'] = 'Styczeń';
17$lang['month_02'] = 'Luty';
18$lang['month_03'] = 'Marzec';
19$lang['month_04'] = 'Kwiecień';
20$lang['month_05'] = 'Maj';
21$lang['month_06'] = 'Czerwiec';
22$lang['month_07'] = 'Lipiec';
23$lang['month_08'] = 'Sierpień';
24$lang['month_09'] = 'Wrzesień';
25$lang['month_10'] = 'Październik';
26$lang['month_11'] = 'Listopad';
27$lang['month_12'] = 'Grudzień';
28$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Radoslaw Gorniak
7 * @author Tomasz Dworakowski <tomaszdworakowski@gmail.com>
8 */
9$lang['namespace'] = 'Domyślna przestrzeń nazw dla bloga';
10$lang['formposition'] = 'Pozycja formularza nowy wpis';
11$lang['formposition_o_top'] = 'góra';
12$lang['formposition_o_bottom'] = 'dół';
13$lang['formposition_o_none'] = 'brak';
14$lang['dateprefix'] = 'Dołącz datę do ID nowego wpisu (ciąg formatujący datę)';
15$lang['sortkey'] = 'Sortuj wpisy używając';
16$lang['sortkey_o_cdate'] = 'daty stworzenia';
17$lang['sortkey_o_mdate'] = 'daty modifikacji';
18$lang['sortkey_o_pagename'] = 'nazwy strony';
19$lang['sortkey_o_id'] = 'ID strony';
20$lang['sortkey_o_title'] = 'tytułu';
21$lang['sortorder'] = 'Kolejność sortowania';
22$lang['sortorder_o_ascending'] = 'rosnąca';
23$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Flávio Roberto Santos <flavio.barata@gmail.com>
7 * @author Samory Pereira Santos <samory.santos@gmail.com>
8 */
9$lang['blog'] = 'Blog';
10$lang['older'] = 'registros antigos';
11$lang['newer'] = 'registros mais novos';
12$lang['newentry'] = 'Novo registro do blog:';
13$lang['missing_includeplugin'] = 'O plugin Inlude deve estar instalado para que o blog funcione.';
14$lang['missing_pagelistplugin'] = 'O plugin Pagelist deve estar instalado para que a listagem de arquivo funcione,';
15$lang['missing_tagplugin'] = 'O plugin Tag deve estar instalado para usar refinamentos de etiquetagem.';
16$lang['month_01'] = 'Janeiro';
17$lang['month_02'] = 'Fevereiro';
18$lang['month_03'] = 'Março';
19$lang['month_04'] = 'Abril';
20$lang['month_05'] = 'Maio';
21$lang['month_06'] = 'Junho';
22$lang['month_07'] = 'Julho';
23$lang['month_08'] = 'Agosto';
24$lang['month_09'] = 'Setembro';
25$lang['month_10'] = 'Outubro';
26$lang['month_11'] = 'Novembro';
27$lang['month_12'] = 'Dezembro';
28$lang['entries'] = 'entradas';
29$lang['entry'] = 'entrada';
30$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Flávio Roberto Santos <flavio.barata@gmail.com>
7 * @author Samory Pereira Santos <samory.santos@gmail.com>
8 */
9$lang['namespace'] = 'namespace padrão para o blog';
10$lang['formposition_o_top'] = 'topo';
11$lang['formposition_o_bottom'] = 'final';
12$lang['formposition_o_none'] = 'nenhum';
13$lang['sortkey'] = 'ordenar as entradas do blog por';
14$lang['sortkey_o_cdate'] = 'data de criação';
15$lang['sortkey_o_mdate'] = 'data de modificação';
16$lang['sortkey_o_pagename'] = 'nome da página';
17$lang['sortkey_o_id'] = 'ID da página';
18$lang['sortkey_o_title'] = 'título';
19$lang['sortorder'] = 'ordenação';
20$lang['sortorder_o_ascending'] = 'ascendente';
21$lang['sortorder_o_descending'] = 'descendente';
22$lang['excluded_pages'] = 'excluir determinadas páginas da listagem do blog (requer expressões regulares)';
23$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Fernando Ribeiro <pinguim.ribeiro@gmail.com>
8 */
9$lang['blog'] = 'Blog';
10$lang['older'] = 'Entradas mais antigas';
11$lang['newer'] = 'Entradas mais recentes';
12$lang['newentry'] = 'Nova entrada do blog:';
13$lang['missing_includeplugin'] = 'O Plugin Include deve estar instalado para o blog funcionar.';
14$lang['missing_pagelistplugin'] = 'O Plugin Pagelist deve estar instalado para as listas do arquivo funcionarem.';
15$lang['missing_tagplugin'] = 'O Plugin Tag deve estar instalado para as etiquetas funcionarem.';
16$lang['autoarchive'] = '%1$d Artigo(s) para %2$s %3$s';
17$lang['month_01'] = 'Janeiro';
18$lang['month_02'] = 'Fevereiro';
19$lang['month_03'] = 'Março';
20$lang['month_04'] = 'Abril';
21$lang['month_05'] = 'Maio';
22$lang['month_06'] = 'Junho';
23$lang['month_07'] = 'Julho';
24$lang['month_08'] = 'Agosto';
25$lang['month_09'] = 'Setembro';
26$lang['month_10'] = 'Outubro';
27$lang['month_11'] = 'Novembro';
28$lang['month_12'] = 'Dezembro';
29$lang['entries'] = 'entradas';
30$lang['entry'] = 'entrada';
31$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Fernando Ribeiro <pinguim.ribeiro@gmail.com>
8 */
9$lang['namespace'] = 'default namespace for blog';
10$lang['formposition'] = 'posição do formulário de entrada nova';
11$lang['formposition_o_top'] = 'topo';
12$lang['formposition_o_bottom'] = 'fundo';
13$lang['formposition_o_none'] = 'nenhum';
14$lang['newentrytitle'] = 'título do formulário de entrada nova';
15$lang['dateprefix'] = 'prefixo do ID para a nova entrada';
16$lang['sortkey'] = 'ordenar entradas do blog por';
17$lang['sortkey_o_cdate'] = 'data de criação';
18$lang['sortkey_o_mdate'] = 'data de modificação';
19$lang['sortkey_o_pagename'] = 'nome da página';
20$lang['sortkey_o_id'] = 'ID da página';
21$lang['sortkey_o_title'] = 'título';
22$lang['sortorder'] = 'ordenação';
23$lang['sortorder_o_ascending'] = 'ascendente';
24$lang['sortorder_o_descending'] = 'descendente';
25$lang['excluded_pages'] = 'excluir determinadas páginas da listagem do blog (requer expressão regular)';
26$lang['showhistogram'] = 'Mostrar histograma na representação do arquivo';
27$lang['max_months'] = 'Nº máximo de meses para mostrar no histograma';
28$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 @@
1<?php
2/**
3 * Romanian language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Florin Chitiul <florinko@gmail.com>
8 */
9// custom language strings for the plugin
10$lang['blog'] = 'Blog';
11$lang['older'] = 'Intrări vechi';
12$lang['newer'] = 'Intrări mai noi';
13$lang['newentry'] = 'Postare nouă:';
14$lang['missing_includeplugin'] = 'Plugin-ul Include trebuie să fie instalat pentru ca blogul să fie funcțional.';
15$lang['missing_pagelistplugin'] = 'The Pagelist Plugin must be installed for archive lists to work.';
16$lang['missing_tagplugin'] = 'Plugin-ul Tag trebuie să fie instalat pentru a utiliza convocări subtile tag.';
17$lang['autoarchive'] = '%1$d Post(ări) pentru %2$lea %3$lea';
18$lang['month_01'] = 'Ianuarie';
19$lang['month_02'] = 'Februarie';
20$lang['month_03'] = 'Martie';
21$lang['month_04'] = 'Aprilie';
22$lang['month_05'] = 'Mai';
23$lang['month_06'] = 'Iunie';
24$lang['month_07'] = 'Iulie';
25$lang['month_08'] = 'August';
26$lang['month_09'] = 'Septembrie';
27$lang['month_10'] = 'Octobrie';
28$lang['month_11'] = 'Noiebrie';
29$lang['month_12'] = 'Decembrie';
30$lang['entries'] = 'intrări';
31$lang['entry'] = 'intrare';
32$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 @@
1<?php
2/**
3 * Romanian language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Florin Chitiul <florinko@gmail.com>
8 */
9
10// for the configuration manager
11$lang['namespace'] = 'numele implicit al blogului';
12$lang['formposition'] = 'poziția formularului de inserare nouă';
13$lang['formposition_o_top'] = 'sus';
14$lang['formposition_o_bottom'] = 'jos';
15$lang['formposition_o_none'] = 'niciuna';
16$lang['newentrytitle'] = 'titlul inserării formularului de inserare nouă';
17$lang['dateprefix'] = 'prefixul datei identității noii inserări';
18$lang['sortkey'] = 'sortează intrările blogului după data celei mai noi inserări';
19$lang['sortkey_o_cdate'] = 'data creării';
20$lang['sortkey_o_mdate'] = 'data modificării';
21$lang['sortkey_o_pagename'] = 'numele paginii';
22$lang['sortkey_o_id'] = 'ID-ul paginii';
23$lang['sortkey_o_title'] = 'titlul';
24$lang['sortorder'] = 'ordinea de sortare';
25$lang['sortorder_o_ascending'] = 'crescatoare';
26$lang['sortorder_o_descending'] = 'descrescatoare';
27$lang['excluded_pages'] = 'exclude anumite pagini de la listarea în blog (sunt necesare expresii)';
28$lang['showhistogram'] = 'Afișează histograma în redarea arhivei';
29$lang['max_months'] = 'Maximul nr. de luni afișabile în histogramă';
30$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Spike <spike@foobar2000.ru>
7 * @author Aleksandr Selivanov <alexgearbox@gmail.com>
8 */
9$lang['blog'] = 'Блог';
10$lang['older'] = 'Предыдущие записи';
11$lang['newer'] = 'Новые записи';
12$lang['newentry'] = 'Новая запись:';
13$lang['missing_includeplugin'] = 'Для работы блога необходимо установить плагин Include.';
14$lang['missing_pagelistplugin'] = 'Для создания архивного списка должен быть установлен плагин Pagelist.';
15$lang['missing_tagplugin'] = 'Для использования меток должен быть установлен плагин Tag.';
16$lang['autoarchive'] = '%1$d сообщ. за %2$s %3$s';
17$lang['month_01'] = 'январь';
18$lang['month_02'] = 'февраль';
19$lang['month_03'] = 'март';
20$lang['month_04'] = 'апрель';
21$lang['month_05'] = 'май';
22$lang['month_06'] = 'июнь';
23$lang['month_07'] = 'июль';
24$lang['month_08'] = 'август';
25$lang['month_09'] = 'сентябрь';
26$lang['month_10'] = 'октябрь';
27$lang['month_11'] = 'ноябрь';
28$lang['month_12'] = 'декабрь';
29$lang['entries'] = 'записи';
30$lang['entry'] = 'запись';
31$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Spike <spike@foobar2000.ru>
7 * @author Aleksandr Selivanov <alexgearbox@gmail.com>
8 * @author Aleksandr Selivanov <alexgearbox@yandex.ru>
9 */
10$lang['namespace'] = 'Пространство имён по умолчанию для блога';
11$lang['formposition'] = 'Расположить форму для новой записи:';
12$lang['formposition_o_top'] = 'вверху страницы';
13$lang['formposition_o_bottom'] = 'внизу страницы';
14$lang['formposition_o_none'] = 'скрыть';
15$lang['newentrytitle'] = 'Заголовок формы для новой записи';
16$lang['dateprefix'] = 'Префикс даты для ID новой записи';
17$lang['sortkey'] = 'Сортировать записи по:';
18$lang['sortkey_o_cdate'] = 'дате написания';
19$lang['sortkey_o_mdate'] = 'дате редактирования';
20$lang['sortkey_o_pagename'] = 'имени страницы';
21$lang['sortkey_o_id'] = 'ID страницы';
22$lang['sortkey_o_title'] = 'заголовку';
23$lang['sortorder'] = 'Направление сортировки:';
24$lang['sortorder_o_ascending'] = 'по возрастанию';
25$lang['sortorder_o_descending'] = 'по убыванию';
26$lang['excluded_pages'] = 'Исключить определённые страницы из перечня блога (задаётся регулярным выражением)';
27$lang['showhistogram'] = 'Отображать гистограмму в режиме архива';
28$lang['max_months'] = 'Максимальное количество месяцев для отображения на гистограмме';
29$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 @@
1<?php
2/**
3 * Slovenian language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Blaž Mertelj <Blaz.Mertelj@atol.si>
7 */
8
9// custom language strings for the plugin
10$lang['blog'] = 'Blog';
11$lang['older'] = 'Starejši vnosi';
12$lang['newer'] = 'Novejši vnosi';
13$lang['newentry'] = 'Nov blog vnos:';
14
15//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 @@
1<?php
2/**
3 * Slovenian language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Blaž Mertelj <Blaz.Mertelj@atol.si>
7 */
8
9// for the configuration manager
10$lang['namespace'] = 'privzeti namespace za blog';
11
12$lang['sortkey'] = 'sortiraj blog vnose po:';
13$lang['sortkey_o_cdate'] = 'ustvarjeno dne';
14$lang['sortkey_o_pagename'] = 'ime strani';
15$lang['sortkey_o_id'] = 'ID strani';
16
17$lang['dateprefix'] = 'pripeti datum pred IDje novih vnosov';
18
19//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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Christer Nygren <wiki@fronet.fro.se>
7 * @author Tor Härnqvist <tor.harnqvist@gmail.com>
8 * @author Tor Härnqvist <tor@harnqvist.se>
9 */
10$lang['blog'] = 'Blogg';
11$lang['older'] = 'Äldre inlägg';
12$lang['newer'] = 'Nyare inlägg';
13$lang['newentry'] = 'Nytt inlägg:';
14$lang['missing_includeplugin'] = 'Include-pluginet måste vara installerat för att bloggen ska fungera.';
15$lang['missing_pagelistplugin'] = 'Pagelist-pluginet måste vara installerat för att arkivlistningar ska fungera.';
16$lang['missing_tagplugin'] = 'Tagg-pluginet måste vara installerat för att använda tagg-funktionen.';
17$lang['autoarchive'] = '%1$d inlägg i %2$s %3$s';
18$lang['month_01'] = 'januari';
19$lang['month_02'] = 'februari';
20$lang['month_03'] = 'mars';
21$lang['month_04'] = 'april';
22$lang['month_05'] = 'maj';
23$lang['month_06'] = 'juni';
24$lang['month_07'] = 'juli';
25$lang['month_08'] = 'augusti';
26$lang['month_09'] = 'september';
27$lang['month_10'] = 'oktober';
28$lang['month_11'] = 'november';
29$lang['month_12'] = 'december';
30$lang['entries'] = 'Inlägg';
31$lang['entry'] = 'Inlägg';
32$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author Christer Nygren <wiki@fronet.fro.se>
7 * @author Tor Härnqvist <tor.harnqvist@gmail.com>
8 * @author hib <hibratt@gmail.com>
9 */
10$lang['namespace'] = 'standard vy för blogg';
11$lang['formposition'] = 'nya formulärets position ';
12$lang['formposition_o_top'] = 'längst upp';
13$lang['formposition_o_bottom'] = 'längst ned';
14$lang['formposition_o_none'] = 'inget';
15$lang['newentrytitle'] = 'rubrik för nytt inläggsformulär';
16$lang['dateprefix'] = 'sätt datum före nytt inläggs-ID';
17$lang['sortkey'] = 'sortera inlägg efter:';
18$lang['sortkey_o_cdate'] = 'skapat datum';
19$lang['sortkey_o_mdate'] = 'ändringsdatum';
20$lang['sortkey_o_pagename'] = 'sidnamn';
21$lang['sortkey_o_id'] = 'sid-ID';
22$lang['sortkey_o_title'] = 'rubrik';
23$lang['sortorder'] = 'sorteringsordning';
24$lang['sortorder_o_ascending'] = 'stigande';
25$lang['sortorder_o_descending'] = 'fallande';
26$lang['excluded_pages'] = 'uteslut vissa sidor från blogglistan (regular expresstion krävs)';
27$lang['showhistogram'] = 'Visa histogram när arkivet skapas';
28$lang['max_months'] = 'Maximalt antal månader att visa i histogramet';
29$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author İlker R. Kapaç <irifat@gmail.com>
7 */
8$lang['blog'] = 'Günce';
9$lang['older'] = 'Daha eski girdiler';
10$lang['newer'] = 'Daha yeni girdiler';
11$lang['newentry'] = 'Yeni günce oluştur:';
12$lang['missing_includeplugin'] = 'Güncenin (blog) çalışması için Include eklentisi yüklü olmalıdır.';
13$lang['missing_pagelistplugin'] = 'Arşiv listelerinin çalışması için Pagelist eklentisi yüklü olmalıdır.';
14$lang['missing_tagplugin'] = 'Etiket tanımlayabilmek için Tag eklentisi yüklü olmalıdır.';
15$lang['autoarchive'] = 'Her %2$s %3$s için %1$d Gönderi(ler)';
16$lang['month_01'] = 'Ocak';
17$lang['month_02'] = 'Şubat';
18$lang['month_03'] = 'Mart';
19$lang['month_04'] = 'Nisan';
20$lang['month_05'] = 'Mayıs';
21$lang['month_06'] = 'Haziran';
22$lang['month_07'] = 'Temmuz';
23$lang['month_08'] = 'Ağustos';
24$lang['month_09'] = 'Eylül';
25$lang['month_10'] = 'Ekim';
26$lang['month_11'] = 'Kasım';
27$lang['month_12'] = 'Aralık';
28$lang['entries'] = 'girdiler';
29$lang['entry'] = 'girdi';
30$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 @@
1<?php
2
3/**
4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
5 *
6 * @author İlker R. Kapaç <irifat@gmail.com>
7 */
8$lang['namespace'] = 'günce için varsayılan isimalanı';
9$lang['formposition'] = 'yeni girdi formunun konumu';
10$lang['formposition_o_top'] = 'üst';
11$lang['formposition_o_bottom'] = 'alt';
12$lang['formposition_o_none'] = 'yok';
13$lang['newentrytitle'] = 'yeni girdi formunun başlığı';
14$lang['dateprefix'] = 'yeni girdi kimliklerinde ön ek olarak kullanılacak tarih';
15$lang['sortkey'] = 'günce girdilerinin sıralanma şekli';
16$lang['sortkey_o_cdate'] = 'oluşturma tarihi';
17$lang['sortkey_o_mdate'] = 'değiştirilme tarihi';
18$lang['sortkey_o_pagename'] = 'sayfa adı';
19$lang['sortkey_o_id'] = 'sayfa kimliği';
20$lang['sortkey_o_title'] = 'başlık';
21$lang['sortorder'] = 'sıralama şekli';
22$lang['sortorder_o_ascending'] = 'artan';
23$lang['sortorder_o_descending'] = 'azalan';
24$lang['excluded_pages'] = 'bazı sayfaları günce listesinin dışında tut (kurallı tanımlama gereklidir)';
25$lang['showhistogram'] = 'Arşivi sunarken grafik göster';
26$lang['max_months'] = 'Grafikte gösterilecek en fazla ay sayısı';
27$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 @@
1<?php
2/**
3 * English language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 */
8
9// custom language strings for the plugin
10$lang['blog'] = '博客';
11$lang['older'] = '更早的文章';
12$lang['newer'] = '更新的文章';
13$lang['newentry'] = '新建文章:';
14
15$lang['missing_includeplugin'] = '要使用博客功能必须安装 Include 插件。';
16$lang['missing_pagelistplugin'] = '要使用存档列表功能必须安装 Pagelist 插件。';
17$lang['missing_tagplugin'] = '要使用标签 refinements 必须安装 Tag 插件。';
18
19$lang['autoarchive'] = '%3$s年%2$s有%1$d篇文章';
20$lang['month_01'] = '一月';
21$lang['month_02'] = '二月';
22$lang['month_03'] = '三月';
23$lang['month_04'] = '四月';
24$lang['month_05'] = '五月';
25$lang['month_06'] = '六月';
26$lang['month_07'] = '七月';
27$lang['month_08'] = '八月';
28$lang['month_09'] = '九月';
29$lang['month_10'] = '十月';
30$lang['month_11'] = '十一月';
31$lang['month_12'] = '十二月';
32
33$lang['entries'] = '文章';
34$lang['entry'] = '文章';
35$lang['archive_title'] = '文章历史';
36//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 @@
1<?php
2/**
3 * English language file
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 */
8
9// for the configuration manager
10$lang['namespace'] = '博客默认命名空间';
11
12$lang['formposition'] = '新文章的表单位置';
13$lang['formposition_o_top'] = '顶上';
14$lang['formposition_o_bottom'] = '底下';
15$lang['formposition_o_none'] = '不显示';
16
17$lang['newentrytitle'] = '新文章表单的标题';
18
19$lang['dateprefix'] = '为新文章 ID 添加日期前缀';
20
21$lang['sortkey'] = '文章排序按';
22$lang['sortkey_o_cdate'] = '创建时间';
23$lang['sortkey_o_mdate'] = '修改时间';
24$lang['sortkey_o_pagename'] = '页面名称';
25$lang['sortkey_o_id'] = '页面 ID';
26$lang['sortkey_o_title'] = '标题';
27
28$lang['sortorder'] = '排序顺序';
29$lang['sortorder_o_ascending'] = '升序';
30$lang['sortorder_o_descending'] = '降序';
31
32$lang['excluded_pages'] = '从博客列表中排除特定的页面 (要求是正则表达式)';
33
34$lang['showhistogram'] = '在存档页面上显示直方图';
35$lang['max_months'] = '在直方图上最多显示月份数';
36$lang['histogram_height'] = '直方图的高度 (单位像素)';
37
38// 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 @@
1# General Plugin Info
2base blog
3author Michael Hamann, Michael Klier, Gina Haeussge
4email michael@content-space.de
5date 2017-08-24
6name Blog
7desc Use DokuWiki as blogging tool. (previous authors: Esther Brunner)
8url 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 @@
1#blog__newentry_form {
2 display:none;
3} \ 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 @@
1div.dokuwiki div.newentry_form {
2 text-align: center;
3 margin-bottom: 1em;
4}
5
6div.dokuwiki #blog__newentry_form input.edit {
7 width: 95%;
8}
9
10div.dokuwiki tr.draft,
11div.dokuwiki div.draft {
12 opacity: 0.5;
13}
14
15div.dokuwiki div.autoarchive_selector ul {
16 list-style-type: none;
17 clear: left;
18 margin: 0 0.5em 0 0;
19}
20
21div.dokuwiki div.autoarchive_selector ul div.li {
22 float: left;
23 margin: 0 1em 0 0;
24}
25
26div.dokuwiki div.autoarchive_selector ul ul {
27 float: left;
28 clear: none;
29}
30
31div.dokuwiki div.autoarchive_selector ul ul div.li {
32 margin: 0;
33}
34
35img.blog_archive_bar {
36 background-color: __border__;
37 width: 5px;
38 border: 0 none;
39 vertical-align: bottom;
40}
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 @@
1<?php
2/**
3 * Archive Plugin: displays links to all wiki pages from a given month
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 */
8
9// must be run within Dokuwiki
10if(!defined('DOKU_INC')) die();
11
12if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
13require_once(DOKU_PLUGIN.'syntax.php');
14
15/**
16 * All DokuWiki plugins to extend the parser/rendering mechanism
17 * need to inherit from this class
18 */
19class syntax_plugin_blog_archive extends DokuWiki_Syntax_Plugin {
20
21 function getType() { return 'substition'; }
22 function getPType() { return 'block'; }
23 function getSort() { return 309; }
24
25 function connectTo($mode) {
26 $this->Lexer->addSpecialPattern('\{\{archive>.*?\}\}', $mode, 'plugin_blog_archive');
27 }
28
29 function handle($match, $state, $pos, Doku_Handler $handler) {
30 global $ID;
31
32 $match = substr($match, 10, -2); // strip {{archive> from start and }} from end
33 list($match, $flags) = explode('&', $match, 2);
34 $flags = explode('&', $flags);
35 list($match, $refine) = explode(' ', $match, 2);
36 list($ns, $rest) = explode('?', $match, 2);
37
38 $author = NULL;
39 foreach($flags as $i=>$flag) {
40 if(preg_match('/(\w+)\s*=(.+)/', $flag, $temp) == 1) {
41 if ($temp[1] == 'author') {
42 $author = trim($temp[2]);
43 unset($flags[$i]);
44 }
45 }
46 }
47
48 if (!$rest) {
49 $rest = $ns;
50 $ns = '';
51 }
52
53 if ($ns == '') $ns = cleanID($this->getConf('namespace'));
54 elseif (($ns == '*') || ($ns == ':')) $ns = '';
55 elseif ($ns == '.') $ns = getNS($ID);
56 else $ns = cleanID($ns);
57
58 // daily archive
59 if (preg_match("/\d{4}-\d{2}-\d{2}/", $rest)) {
60 list($year, $month, $day) = explode('-', $rest, 3);
61
62 $start = mktime(0, 0, 0, $month, $day, $year);
63 $end = $start + 24*60*60;
64
65 // monthly archive
66 } elseif (preg_match("/\d{4}-\d{2}/", $rest)) {
67 list($year, $month) = explode('-', $rest, 2);
68
69 // calculate start and end times
70 $nextmonth = $month + 1;
71 $year2 = $year;
72 if ($nextmonth > 12) {
73 $nextmonth = 1;
74 $year2 = $year + 1;
75 }
76
77 $start = mktime(0, 0, 0, $month, 1, $year);
78 $end = mktime(0, 0, 0, $nextmonth, 1, $year2);
79
80 // a whole year
81 } elseif (preg_match("/\d{4}/", $rest)) {
82 $start = mktime(0, 0, 0, 1, 1, $rest);
83 $end = mktime(0, 0, 0, 1, 1, $rest + 1);
84
85 // all entries from that namespace up to now
86 } elseif ($rest == '*') {
87 $start = 0;
88 $end = PHP_INT_MAX;
89
90 // unknown format
91 } else {
92 return false;
93 }
94
95 return array($ns, $start, $end, $flags, $refine, $author);
96 }
97
98 function render($mode, Doku_Renderer $renderer, $data) {
99 list($ns, $start, $end, $flags, $refine, $author) = $data;
100
101 // get the blog entries for our namespace
102 /** @var helper_plugin_blog $my */
103 if ($my =& plugin_load('helper', 'blog')) $entries = $my->getBlog($ns, NULL, $author);
104 else return false;
105
106 // use tag refinements?
107 if ($refine) {
108 /** @var helper_plugin_tag $tag */
109 if (plugin_isdisabled('tag') || (!$tag = plugin_load('helper', 'tag'))) {
110 msg($this->getLang('missing_tagplugin'), -1);
111 } else {
112 $entries = $tag->tagRefine($entries, $refine);
113 }
114 }
115
116 if (!$entries) return true; // nothing to display
117
118 if ($mode == 'xhtml') {
119 if ($this->getConf('showhistogram')) {
120 $alt_list = $this->_build_alternative_list($start, $end, $entries);
121
122 // Add histogram and posts list
123 $renderer->doc .= '<div class="level1">';
124 $renderer->doc .= '<h1>' . $this->getLang('archive_title') . '</h1>';
125 $renderer->doc .= $alt_list;
126 $renderer->doc .= '</div>' . DOKU_LF;
127 } else {
128 // let Pagelist Plugin do the work for us
129 if (plugin_isdisabled('pagelist')
130 || (!$pagelist =& plugin_load('helper', 'pagelist'))) {
131 msg($this->getLang('missing_pagelistplugin'), -1);
132 return false;
133 }
134 /** @var helper_plugin_pagelist $pagelist */
135 $pagelist->setFlags($flags);
136 $pagelist->startList();
137 foreach ($entries as $entry) {
138
139 // entry in the right date range?
140 if (($start > $entry['date']) || ($entry['date'] >= $end)) continue;
141
142 $pagelist->addPage($entry);
143 }
144 $renderer->doc .= $pagelist->finishList();
145 }
146 return true;
147
148 // for metadata renderer
149 } elseif ($mode == 'metadata') {
150 /** @var Doku_Renderer_metadata $renderer */
151 // use the blog plugin cache handler in order to ensure that the cache is expired whenever a page, comment
152 // or linkback is added
153 if (time() < $end) $renderer->meta['plugin_blog']['purgefile_cache'] = true;
154
155 foreach ($entries as $entry) {
156
157 // entry in the right date range?
158 if (($start > $entry['date']) || ($entry['date'] >= $end)) continue;
159
160 $renderer->meta['relation']['references'][$entry['id']] = true;
161 $renderer->meta['plugin_blog']['archive_pages'][] = $entry['id'];
162 }
163
164 return true;
165 }
166 return false;
167 }
168
169 // Generate alternative posts list
170 function _build_alternative_list($start, $end, $entries) {
171 $current_year ='';
172 $current_month ='';
173 $ul_open = false;
174
175 $histogram_count = array();
176 $histogram_higher = 0;
177
178 $list = '';
179 foreach ($entries as $entry) {
180 // entry in the right date range?
181 if (($start > $entry['date']) || ($entry['date'] >= $end)) continue;
182
183 if ($current_year != date('o',$entry['date'])) {
184 if ($ul_open) {
185 $list .= '</ul>' . DOKU_LF;
186 $ul_open = false;
187 }
188 $current_year = date('o',$entry['date']);
189 $list .= '<h2>' . $current_year . '</h2>' . DOKU_LF;
190 $current_month = '';
191 }
192 if ($current_month != date('m',$entry['date'])) {
193 if ($ul_open) {
194 $list .= '</ul>' . DOKU_LF;
195 }
196 $current_month = date('m',$entry['date']);
197 $list .= '<h3 id="m' . date('o-m',$entry['date']) . '">' . $this->getLang('month_' . $current_month) . '</h3><ul>' . DOKU_LF;
198 $ul_open = true;
199 }
200 $histogram_count[date('o-m',$entry['date'])] += 1;
201 if ($histogram_higher < $histogram_count[date('o-m',$entry['date'])]) {
202 $histogram_higher = $histogram_count[date('o-m',$entry['date'])];
203 }
204 $list .= '<li>' . date('d',$entry['date']) . ' - <a href="' . wl($entry['id']) . '" title="' . $entry['id'] . '">' . $entry['title'] . '</a></li>' . DOKU_LF;
205 }
206 $list .= '</ul>' . DOKU_LF;
207
208 $histogram = $this->_build_histogram($histogram_count, $histogram_higher);
209
210 return $histogram . $list;
211 }
212
213 // Generate histogram
214 function _build_histogram($histogram_count, $histogram_higher) {
215 if (empty($histogram_count)) return '';
216
217 $histogram = '<p>';
218 $max_months = $this->getConf('max_months');
219 $histogram_height = $this->getConf('histogram_height');
220 $histogram_count = array_reverse($histogram_count);
221 $month_count = 0;
222 foreach ($histogram_count as $key => $month_reference) {
223 // Check the max_months parameter
224 if ($month_count >= $max_months) {
225 break;
226 }
227 if ($month_reference > 0) {
228 // Height in "px"
229 $current_height = $histogram_height / $histogram_higher * $month_reference;
230 } else {
231 // Height in "px"
232 $current_height = 1;
233 }
234 // Generate the alt attribute
235 $alt = $key.': '.$month_reference.' ';
236 if ($month_reference > 1) {
237 $alt .= $this->getLang('entries');
238 } else {
239 $alt .= $this->getLang('entry');
240 }
241 $histogram .= '<a href="#m' . $key . '" title="' . $alt . '">';
242 $histogram .= '<img class="blog_archive_bar" alt="' . $alt . '" style="height: ' . $current_height . 'px;" src="'.DOKU_BASE.'lib/images/blank.gif"/></a>' . DOKU_LF;
243 $month_count += 1;
244 }
245 $histogram .= '</p>';
246
247 return $histogram;
248 }
249
250}
251// 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 @@
1<?php
2/**
3 * Dynamic Archive Plugin: dynamically displays
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 */
8
9// must be run within Dokuwiki
10if(!defined('DOKU_INC')) die();
11
12if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
13require_once(DOKU_PLUGIN.'syntax.php');
14
15/**
16 * All DokuWiki plugins to extend the parser/rendering mechanism
17 * need to inherit from this class
18 */
19class syntax_plugin_blog_autoarchive extends DokuWiki_Syntax_Plugin {
20
21 function getType() { return 'substition'; }
22 function getPType() { return 'block'; }
23 function getSort() { return 309; }
24
25 function connectTo($mode) {
26 $this->Lexer->addSpecialPattern('\{\{autoarchive>.*?\}\}', $mode, 'plugin_blog_autoarchive');
27 }
28
29 function handle($match, $state, $pos, Doku_Handler $handler) {
30 global $ID;
31
32 $match = substr($match, 14, -2); // strip {{autoarchive> from start and }} from end
33 list($match, $flags) = explode('?', $match, 2);
34 $flags = explode('&', $flags);
35 list($ns, $refine) = explode(' ', $match, 2);
36
37 if ($ns == '') $ns = cleanID($this->getConf('namespace'));
38 elseif (($ns == '*') || ($ns == ':')) $ns = '';
39 elseif ($ns == '.') $ns = getNS($ID);
40 else $ns = cleanID($ns);
41
42 return array($ns, $flags, $refine, $pos);
43 }
44
45 function render($mode, Doku_Renderer $renderer, $data) {
46 list($ns, $flags, $refine, $pos) = $data;
47 if ($mode != 'xhtml') return false;
48
49 // no caching for dynamic content
50 $renderer->info['cache'] = false;
51
52 // get the blog entries for our namespace
53 if ($my =& plugin_load('helper', 'blog')) $entries = $my->getBlog($ns);
54
55 // use tag refinements?
56 if ($refine) {
57 if (plugin_isdisabled('tag') || (!$tag = plugin_load('helper', 'tag'))) {
58 msg($this->getLang('missing_tagplugin'), -1);
59 } else {
60 $entries = $tag->tagRefine($entries, $refine);
61 }
62 }
63
64 if (!$entries) return true; // nothing to display
65
66 // what to display
67 if(preg_match('/^\d\d\d\d-\d\d$/',$_REQUEST['blogarchive'])){
68 $now = $_REQUEST['blogarchive'];
69 }else{
70 $now = strftime('%Y-%m'); // current month
71 }
72 list($y,$m) = explode('-',$now);
73
74 // display the archive overview
75 $cnt = $this->_buildTimeChooser($renderer, $entries, $now);
76
77 $renderer->header($this->_posts($cnt,$m,$y),2,$pos);
78 $renderer->section_open(2);
79
80 // let Pagelist Plugin do the work for us
81 if (plugin_isdisabled('pagelist')
82 || (!$pagelist =& plugin_load('helper', 'pagelist'))) {
83 msg($this->getLang('missing_pagelistplugin'), -1);
84 return false;
85 }
86 $pagelist->setFlags($flags);
87 $pagelist->startList();
88 foreach ($entries as $entry) {
89 $date = strftime('%Y-%m',$entry['date']);
90 // entry in the right date range?
91 if($date < $now || $date > $now) continue;
92 $pagelist->addPage($entry);
93 }
94 $renderer->doc .= $pagelist->finishList();
95
96 $renderer->section_close();
97 return true;
98
99 }
100
101 /**
102 * Creates a list of monthly archive links
103 *
104 * @param object reference $R - the XHTML renderer
105 * @param array reference $entries - all entries metadata
106 * @param string $now - currently selected month ('YYYY-MM')
107 * @return int - number of posts for selected month
108 */
109 function _buildTimeChooser(&$R, &$entries, $now){
110 global $ID;
111
112 // get the months where posts exist
113 $months = array();
114 foreach($entries as $entry){
115 $y = date('Y',$entry['date']);
116 $m = date('m',$entry['date']);
117 if(isset($months[$y][$m])) {
118 $months[$y][$m]++;
119 }else{
120 $months[$y][$m] = 1;
121 }
122 }
123
124 $ret = 0;
125 // output
126 $R->doc .= '<div class="autoarchive_selector">';
127 foreach($months as $y => $mdata){
128 $R->listu_open();
129 $R->listitem_open(1);
130 $R->listcontent_open();
131 $R->doc .= $y.'<span>:</span>';
132 $R->listcontent_close();
133 ksort($mdata);
134 foreach($mdata as $m => $cnt){
135 $R->listu_open();
136 $R->listitem_open(2);
137 $R->listcontent_open();
138 if("$y-$m" == $now) $R->doc .= '<span class="cur">';
139 $R->doc .= '<a href="'.wl($ID,array('blogarchive'=>"$y-$m")).'" class="wikilink1" title="'.$this->_posts($cnt,$m,$y).'">';
140 $R->doc .= $this->getLang('month_'.$m);
141 $R->doc .= '</a>';
142 if("$y-$m" == $now){
143 $R->doc .= '</span>';
144 $ret = $cnt;
145 }
146 $R->listcontent_close();
147 $R->listitem_close();
148 $R->listu_close();
149 }
150 $R->listitem_close();
151 $R->listu_close();
152 }
153 $R->doc .='</div>';
154 return $ret;
155 }
156
157 function _posts($num,$month,$year){
158 return sprintf($this->getLang('autoarchive'),
159 $num, $this->getLang("month_$month"),
160 $year);
161 }
162}
163// 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 @@
1<?php
2/**
3 * Blog Plugin: displays a number of recent entries from the blog subnamespace
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 * @author Robert Rackl <wiki@doogie.de>
8 */
9
10// must be run within Dokuwiki
11if (!defined('DOKU_INC')) die();
12
13if (!defined('DOKU_LF')) define('DOKU_LF', "\n");
14if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t");
15if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC.'lib/plugins/');
16
17require_once(DOKU_PLUGIN.'syntax.php');
18
19class syntax_plugin_blog_blog extends DokuWiki_Syntax_Plugin {
20 private $included_pages = array();
21
22 function getType() { return 'substition'; }
23 function getPType() { return 'block'; }
24 function getSort() { return 307; }
25
26 function connectTo($mode) {
27 $this->Lexer->addSpecialPattern('\{\{blog>.*?\}\}',$mode,'plugin_blog_blog');
28 }
29
30 function handle($match, $state, $pos, Doku_Handler $handler) {
31 global $ID;
32
33 $match = substr($match, 7, -2); // strip {{blog> from start and }} from end
34 list($match, $flags) = explode('&', $match, 2);
35 $flags = explode('&', $flags);
36 array_unshift($flags, 'link'); // always make the first header of a blog entry a permalink (unless nolink is set)
37 list($match, $refine) = explode(' ', $match, 2);
38 list($ns, $num) = explode('?', $match, 2);
39
40 if (!is_numeric($num)) {
41 if (is_numeric($ns)) {
42 $num = $ns;
43 $ns = '';
44 } else {
45 $num = 5;
46 }
47 }
48
49 if ($ns == '') $ns = cleanID($this->getConf('namespace'));
50 elseif (($ns == '*') || ($ns == ':')) $ns = '';
51 elseif ($ns == '.') $ns = getNS($ID);
52 else $ns = cleanID($ns);
53
54 return array($ns, $num, $flags, $refine);
55 }
56
57 function render($mode, Doku_Renderer $renderer, $data) {
58 list($ns, $num, $flags, $refine) = $data;
59
60 $first = $_REQUEST['first'];
61 if (!is_numeric($first)) $first = 0;
62
63 // get the blog entries for our namespace
64 /** @var helper_plugin_blog $my */
65 if ($my =& plugin_load('helper', 'blog')) $entries = $my->getBlog($ns);
66 else return false;
67
68 // use tag refinements?
69 if ($refine) {
70 /** @var helper_plugin_tag $tag */
71 if (plugin_isdisabled('tag') || (!$tag =& plugin_load('helper', 'tag'))) {
72 msg($this->getLang('missing_tagplugin'), -1);
73 } else {
74 $entries = $tag->tagRefine($entries, $refine);
75 }
76 }
77
78 // Normalise flags
79 $blog_flags = $my->getFlags($flags);
80 $formpos = $blog_flags['formpos'];
81 $newentrytitle = $blog_flags['newentrytitle'];
82
83 if ($mode == 'xhtml') {
84 // prevent caching to ensure the included pages are always fresh
85 $renderer->info['cache'] = false;
86 }
87
88 if (!$entries) {
89 if ((auth_quickaclcheck($ns.':*') >= AUTH_CREATE) && ($mode == 'xhtml')) {
90 if($formpos != 'none') $renderer->doc .= $this->_newEntryForm($ns, $newentrytitle);
91 }
92 return true; // nothing to display
93 }
94
95 // slice the needed chunk of pages
96 $more = ((count($entries) > ($first + $num)) ? true : false);
97 $entries = array_slice($entries, $first, $num);
98
99 // load the include helper plugin
100 /** @var helper_plugin_include $include */
101 if (plugin_isdisabled('include') || (!$include =& plugin_load('helper', 'include'))) {
102 msg($this->getLang('missing_includeplugin'), -1);
103 return false;
104 }
105
106 // current section level
107 $clevel = 0;
108
109 $perm_create = (auth_quickaclcheck($ns.':*') >= AUTH_CREATE);
110 $include_flags = $include->get_flags($flags);
111
112 if ($mode == 'xhtml') {
113 // show new entry form
114 if ($perm_create && $formpos == 'top') {
115 $renderer->doc .= $this->_newEntryForm($ns, $newentrytitle);
116 }
117
118 // get current section level
119 preg_match_all('|<div class="level(\d)">|i', $renderer->doc, $matches, PREG_SET_ORDER);
120 $n = count($matches)-1;
121 if ($n > -1) $clevel = $matches[$n][1];
122
123 // close current section
124 if ($clevel && !$include_flags['inline']) $renderer->doc .= '</div>'.DOKU_LF;
125 $renderer->doc .= '<div class="hfeed">'.DOKU_LF;
126 }
127
128
129 // now include the blog entries
130 foreach ($entries as $entry) {
131 if ($mode == 'xhtml' || $mode == 'code') {
132 if(auth_quickaclcheck($entry['id']) >= AUTH_READ) {
133 // prevent blog include loops
134 if(!$this->included_pages[$entry['id']]) {
135 $this->included_pages[$entry['id']] = true;
136 $renderer->nest($include->_get_instructions($entry['id'], '', 'page', $clevel, $include_flags));
137 $this->included_pages[$entry['id']] = false;
138 }
139 }
140 } elseif ($mode == 'metadata') {
141 /** @var Doku_Renderer_metadata $renderer */
142 $renderer->meta['relation']['haspart'][$entry['id']] = true;
143 }
144 }
145
146 if ($mode == 'xhtml') {
147 // resume the section
148 $renderer->doc .= '</div>'.DOKU_LF;
149 if ($clevel && !$include_flags['inline']) $renderer->doc .= '<div class="level'.$clevel.'">'.DOKU_LF;
150
151 // show older / newer entries links
152 $renderer->doc .= $this->_browseEntriesLinks($more, $first, $num);
153
154 // show new entry form
155 if ($perm_create && $formpos == 'bottom') {
156 $renderer->doc .= $this->_newEntryForm($ns, $newentrytitle);
157 }
158 }
159
160 return in_array($mode, array('xhtml', 'metadata', 'code'));
161 }
162
163 /* ---------- (X)HTML Output Functions ---------- */
164
165 /**
166 * Displays links to older newer entries of the blog namespace
167 */
168 function _browseEntriesLinks($more, $first, $num) {
169 global $ID;
170
171 $ret = '';
172 $last = $first+$num;
173 if ($first > 0) {
174 $first -= $num;
175 if ($first < 0) $first = 0;
176 $ret .= '<p class="centeralign">'.DOKU_LF.'<a href="'.wl($ID, 'first='.$first).'"'.
177 ' class="wikilink1">&lt;&lt; '.$this->getLang('newer').'</a>';
178 if ($more) $ret .= ' | ';
179 else $ret .= '</p>';
180 } else if ($more) {
181 $ret .= '<p class="centeralign">'.DOKU_LF;
182 }
183 if ($more) {
184 $ret .= '<a href="'.wl($ID, 'first='.$last).'" class="wikilink1">'.
185 $this->getLang('older').' &gt;&gt;</a>'.DOKU_LF.'</p>'.DOKU_LF;
186 }
187 return $ret;
188 }
189
190 /**
191 * Displays a form to enter the title of a new entry in the blog namespace
192 * and then open that page in the edit mode
193 */
194 function _newEntryForm($ns, $newentrytitle) {
195 global $lang;
196 global $ID;
197
198 return '<div class="newentry_form">'.DOKU_LF.
199 '<form id="blog__newentry_form" method="post" action="'.script().'" accept-charset="'.$lang['encoding'].'">'.DOKU_LF.
200 DOKU_TAB.'<fieldset>'.DOKU_LF.
201 DOKU_TAB.DOKU_TAB.'<legend>'.hsc($newentrytitle).'</legend>'.DOKU_LF.
202 DOKU_TAB.DOKU_TAB.'<input type="hidden" name="id" value="'.$ID.'" />'.DOKU_LF.
203 DOKU_TAB.DOKU_TAB.'<input type="hidden" name="do" value="newentry" />'.DOKU_LF.
204 DOKU_TAB.DOKU_TAB.'<input type="hidden" name="ns" value="'.$ns.'" />'.DOKU_LF.
205 DOKU_TAB.DOKU_TAB.'<input class="edit" type="text" name="title" id="blog__newentry_title" size="40" tabindex="1" />'.DOKU_LF.
206 DOKU_TAB.DOKU_TAB.'<input class="button" type="submit" value="'.$lang['btn_create'].'" tabindex="2" />'.DOKU_LF.
207 DOKU_TAB.'</fieldset>'.DOKU_LF.
208 '</form>'.DOKU_LF.
209 '</div>'.DOKU_LF;
210 }
211}
212// 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 @@
1<?php
2/**
3 * Blog Plugin, draft component: marks the current page as draft
4 *
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Esther Brunner <wikidesign@gmail.com>
7 */
8
9// must be run within Dokuwiki
10if (!defined('DOKU_INC')) die();
11
12if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
13require_once(DOKU_PLUGIN.'syntax.php');
14
15class syntax_plugin_blog_draft extends DokuWiki_Syntax_Plugin {
16
17 function getType() { return 'substition'; }
18 function getSort() { return 99; }
19
20 function connectTo($mode) {
21 $this->Lexer->addSpecialPattern('~~DRAFT~~', $mode, 'plugin_blog_draft');
22 }
23
24 function handle($match, $state, $pos, Doku_Handler $handler) {
25 return true;
26 }
27
28 /**
29 * The only thing this plugin component does is to set the metadata 'type' to 'draft'
30 */
31 function render($mode, Doku_Renderer $renderer, $data) {
32 if ($mode == 'xthml') {
33 return true; // don't output anything
34 } elseif ($mode == 'metadata') {
35 $renderer->meta['type'] = 'draft';
36 }
37 }
38}
39// vim:ts=4:sw=4:et:enc=utf-8: