plugins: Add blog plugin so we can fix the news page

This commit is contained in:
Andy Williams 2017-12-19 14:46:30 +00:00
parent f1e9195b2f
commit 99d9fe0899
62 changed files with 2937 additions and 0 deletions

View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@ -0,0 +1,10 @@
====== Blog Plugin for DokuWiki ======
All documentation for the Blog Plugin is available online at:
* http://dokuwiki.org/plugin:blog
(c) 2005 - 2007 by Esther Brunner <wikidesign@gmail.com>
(c) 2008 - 2009 by Gina Häußge, Michael Klier <dokuwiki@chimeric.de>
(c) 2013 by Michael Hamann <michael@content-space.de>
See COPYING for license info.

View File

@ -0,0 +1,6 @@
====== @TITLE@ ======
@TAG@
@LINKBACK@
@DISCUSSION@

View File

@ -0,0 +1,245 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
*/
// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'action.php');
class action_plugin_blog extends DokuWiki_Action_Plugin {
/**
* register the eventhandlers
*/
function register(Doku_Event_Handler $contr) {
$contr->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'handle_act_preprocess', array());
$contr->register_hook('FEED_ITEM_ADD', 'BEFORE', $this, 'handle_feed_item');
$contr->register_hook('PARSER_CACHE_USE', 'BEFORE', $this, 'handle_cache');
}
/**
* Checks if 'newentry' was given as action, if so we
* do handle the event our self and no further checking takes place
*/
function handle_act_preprocess(Doku_Event $event, $param) {
if ($event->data != 'newentry') return; // nothing to do for us
$event->data = $this->_handle_newEntry($event);
}
/**
* Removes draft entries from feeds
*
* @author Michael Klier <chi@chimeric.de>
*/
function handle_feed_item(&$event, $param) {
global $conf;
$url = parse_url($event->data['item']->link);
$base_url = getBaseURL();
// determine page id by rewrite mode
switch($conf['userewrite']) {
case 0:
preg_match('#id=([^&]*)#', $url['query'], $match);
if($base_url != '/') {
$id = cleanID(str_replace($base_url, '', $match[1]));
} else {
$id = cleanID($match[1]);
}
break;
case 1:
if($base_url != '/') {
$id = cleanID(str_replace('/',':',str_replace($base_url, '', $url['path'])));
} else {
$id = cleanID(str_replace('/',':', $url['path']));
}
break;
case 2:
preg_match('#doku.php/([^&]*)#', $url['path'], $match);
if($base_url != '/') {
$id = cleanID(str_replace($base_url, '', $match[1]));
} else {
$id = cleanID($match[1]);
}
break;
}
// don't add drafts to the feed
if(p_get_metadata($id, 'type') == 'draft') {
$event->preventDefault();
return;
}
}
/**
* Creates a new entry page
*/
function _handle_newEntry(Doku_Event $event) {
global $ID, $INFO;
$ns = cleanID($_REQUEST['ns']);
$title = str_replace(':', '', $_REQUEST['title']);
$ID = $this->_newEntryID($ns, $title);
$INFO = pageinfo();
// check if we are allowed to create this file
if ($INFO['perm'] >= AUTH_CREATE) {
// prepare the new thread file with default stuff
if (!@file_exists($INFO['filepath'])) {
// prevent default edit action and further processing of the event
$event->preventDefault();
//check if locked by anyone - if not lock for my self
if ($INFO['locked']) return 'locked';
else lock($ID);
global $TEXT;
$TEXT = pageTemplate(array(($ns ? $ns.':' : '').$title));
if (!$TEXT) {
$data = array('id' => $ID, 'ns' => $ns, 'title' => $_REQUEST['title']);
$TEXT = $this->_pageTemplate($data);
}
return 'preview';
} else {
return 'edit';
}
} else {
return 'show';
}
}
/**
* Adapted version of pageTemplate() function
*/
function _pageTemplate($data) {
global $conf, $INFO;
$id = $data['id'];
$user = $_SERVER['REMOTE_USER'];
$tpl = io_readFile(DOKU_PLUGIN.'blog/_template.txt');
// standard replacements
$replace = array(
'@ID@' => $id,
'@NS@' => $data['ns'],
'@PAGE@' => strtr(noNS($id),'_',' '),
'@USER@' => $user,
'@NAME@' => $INFO['userinfo']['name'],
'@MAIL@' => $INFO['userinfo']['mail'],
'@DATE@' => strftime($conf['dformat']),
);
// additional replacements
$replace['@TITLE@'] = $data['title'];
// tag if tag plugin is available
if ((@file_exists(DOKU_PLUGIN.'tag/syntax/tag.php'))
&& (!plugin_isdisabled('tag'))) {
$replace['@TAG@'] = "\n\n{{tag>}}";
} else {
$replace['@TAG@'] = '';
}
// discussion if discussion plugin is available
if ((@file_exists(DOKU_PLUGIN.'discussion/syntax/comments.php'))
&& (!plugin_isdisabled('discussion'))) {
$replace['@DISCUSSION@'] = "~~DISCUSSION~~";
} else {
$replace['@DISCUSSION@'] = '';
}
// linkbacks if linkback plugin is available
if ((@file_exists(DOKU_PLUGIN.'linkback/syntax.php'))
&& (!plugin_isdisabled('linkback'))) {
$replace['@LINKBACK@'] = "~~LINKBACK~~";
} else {
$replace['@LINKBACK@'] = '';
}
// do the replace
$tpl = str_replace(array_keys($replace), array_values($replace), $tpl);
return $tpl;
}
/**
* Returns the ID of a new entry based on its namespace, title and the date prefix
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Michael Arlt <michael.arlt@sk-chwanstetten.de>
*/
function _newEntryID($ns, $title) {
$dateprefix = $this->getConf('dateprefix');
if (substr($dateprefix, 0, 1) == '<') {
// <9?%y1-%y2:%d.%m._ -> 05-06:31.08._ | 06-07:01.09._
list($newmonth, $dateprefix) = explode('?', substr($dateprefix, 1));
if (intval(strftime("%m")) < intval($newmonth)) {
$longyear2 = strftime("%Y");
$longyear1 = $longyear2 - 1;
} else {
$longyear1 = strftime("%Y");
$longyear2 = $longyear1 + 1;
}
$shortyear1 = substr($longyear1, 2);
$shortyear2 = substr($longyear2, 2);
$dateprefix = str_replace(
array('%Y1', '%Y2', '%y1', '%y2'),
array($longyear1, $longyear2, $shortyear1, $shortyear2),
$dateprefix
);
}
$pre = strftime($dateprefix);
return ($ns ? $ns.':' : '').$pre.cleanID($title);
}
/**
* Expire the renderer cache of archive pages whenever a page is updated or a comment or linkback is added
*
* @author Michael Hamann <michael@content-space.de>
*/
function handle_cache(Doku_Event $event, $params) {
global $conf;
/** @var cache_parser $cache */
$cache = $event->data;
if (!in_array($cache->mode, array('xhtml', 'metadata'))) return;
$page = $cache->page;
// try to extract the page id from the file if possible
if (empty($page)) {
if (strpos($cache->file, $conf['datadir']) === 0) {
$page = pathID(substr($cache->file, strlen($conf['datadir'])+1));
} else {
return;
}
}
$meta = p_get_metadata($page, 'plugin_blog');
if ($meta === null) return;
if (isset($meta['purgefile_cache'])) {
$cache->depends['files'][] = $conf['cachedir'].'/purgefile';
$cache->depends['files'][] = $conf['metadir'].'/_comments.changes';
$cache->depends['files'][] = $conf['metadir'].'/_linkbacks.changes';
}
// purge the cache when a page is listed that the current user can't access
if (isset($meta['archive_pages'])) {
foreach ($meta['archive_pages'] as $page) {
if (auth_quickaclcheck($page) < AUTH_READ) {
$cache->depends['purge'] = true;
return;
}
}
}
}
}
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,18 @@
<?php
/**
* Options for the Blog Plugin
*/
$conf['namespace'] = 'blog'; // default location for blog entries
$conf['formposition'] = 'bottom'; // position of new entry form
$conf['newentrytitle'] = ''; // Title text for the 'new entry' form
$conf['dateprefix'] = ''; // prefix date to new entry IDs
$conf['sortkey'] = 'cdate'; // sort key for blog entries
$conf['sortorder'] = 'descending'; // ascending or descending
$conf['showhistogram'] = 1; // show histogramm in archive
$conf['max_months'] = 100; // max months to show in the histogram
$conf['histogram_height'] = 50; // height of the histogram in pixels
$conf['excluded_pages'] = '!^blog:\d{4}(:\d{2})?$!'; // regex for pages to exclude from bloglisting
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,22 @@
<?php
/**
* Metadata for configuration manager plugin
* Additions for the blog plugin
*
* @author Esther Brunner <wikidesign@gmail.com>
*/
$meta['namespace'] = array('string');
$meta['formposition'] = array('multichoice',
'_choices' => array('top', 'bottom', 'none'));
$meta['newentrytitle'] = array('string');
$meta['dateprefix'] = array('string');
$meta['sortkey'] = array('multichoice',
'_choices' => array('cdate', 'mdate', 'pagename', 'id', 'title'));
$meta['sortorder'] = array('multichoice',
'_choices' => array('ascending', 'descending'));
$meta['excluded_pages'] = array('string');
$meta['showhistogram'] = array('onoff');
$meta['max_months'] = array('numeric');
$meta['histogram_height'] = array('numeric');
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,187 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
*/
// must be run within Dokuwiki
if (!defined('DOKU_INC')) die();
class helper_plugin_blog extends DokuWiki_Plugin {
var $sort = ''; // sort key
/**
* Constructor
*/
function helper_plugin_blog() {
global $conf;
// load sort key from settings
$this->sort = $this->getConf('sortkey');
}
function getMethods() {
$result = array();
$result[] = array(
'name' => 'getBlog',
'desc' => 'returns blog entries in reverse chronological order',
'params' => array(
'namespace' => 'string',
'number (optional)' => 'integer'),
'return' => array('pages' => 'array'),
);
$result[] = array(
'name' => 'getFlags',
'desc' => 'get values for flags, or defaults where not supplied',
'params' => array('flags' => 'array'),
'return' => array('flags' => 'array'),
);
return $result;
}
/**
* Get blog entries from a given namespace
*/
function getBlog($ns, $num = NULL, $author = NULL) {
global $conf;
// add pages in given namespace
$result = array();
global $conf;
require_once (DOKU_INC.'inc/search.php');
$pages = array();
$unique_keys_memoize = array();
$dir = str_replace(':', '/', $ns);
search($pages, $conf['datadir'], 'search_pagename', array('query' => '.txt'), $dir);
foreach ($pages as $page) {
$id = $page['id'];
$file = wikiFN($id);
// do some checks first
if (isHiddenPage($id)) continue; // skip excluded pages
$excluded_pages = $this->getConf('excluded_pages');
if (strlen($excluded_pages) > 0 && preg_match($excluded_pages, $id)) continue;
if (($ns) && (strpos($id, $ns.':') !== 0)) continue; // filter namespaces
if (!@file_exists($file)) continue; // skip deleted
$perm = auth_quickaclcheck($id);
if ($perm < AUTH_READ) continue; // check ACL
// skip drafts unless for users with create priviledge
$meta = p_get_metadata($id, '', false);
$draft = ($meta['type'] == 'draft');
if ($draft && ($perm < AUTH_CREATE)) continue;
// filter by author
if ($author && ($meta['user'] != $author)) continue;
$date = $meta['date']['modified'];
if (!$date) $date = filemtime(wikiFN($id));
if ($this->sort != 'mdate') {
$cdate = $meta['date']['created'];
if (!$cdate) $cdate = filectime(wikiFN($id));
// prefer the date further in the past:
$date = min($date, $cdate);
}
if (isset($meta['title'])) {
$title = $meta['title'];
} else {
$title = $id;
}
// determine the sort key
if ($this->sort == 'id') $key = $id;
elseif ($this->sort == 'pagename') $key = noNS($id);
elseif ($this->sort == 'title') $key = $title;
else $key = $date;
// get a unique sortable key
$key = $this->_uniqueKey($key, $unique_keys_memoize);
$result[$key] = array(
'id' => $id,
'title' => $title,
'date' => $date,
'user' => $meta['creator'],
'desc' => $meta['description']['abstract'],
'exists' => true,
'perm' => $perm,
'draft' => $draft,
);
}
// finally sort by sort key
if ($this->getConf('sortorder') == 'ascending') ksort($result);
else krsort($result);
if (is_numeric($num)) $result = array_slice($result, 0, $num);
return $result;
}
/**
* Turn a list of user-supplied flags into a complete list of all flags
* required by the Blog plugin (not including those for the Include plugin),
* using global configuration options or plugin defaults where flags have
* not been supplied.
*
* Currently handles 'formpos' and 'newentrytitle'.
*
* @author Sam Wilson <sam@samwilson.id.au>
* @param array $setflags Flags that have been set by the user
* @return array All flags required by the Blog plugin (only)
*/
function getFlags($setflags) {
$flags = array();
// Form Position
$flags['formpos'] = $this->getConf('formposition');
if(in_array('topform', $setflags)) {
$flags['formpos'] = 'top';
}elseif(in_array('bottomform', $setflags)) {
$flags['formpos'] = 'bottom';
}elseif(in_array('noform', $setflags)) {
$flags['formpos'] = 'none';
}
// New Entry Title
$newentrytitle = preg_grep('|newentrytitle=.*|', $setflags);
if (count($newentrytitle) > 0) {
$newentrytitle = array_pop(explode('=', array_pop($newentrytitle), 2));
if (!empty($newentrytitle)) {
$flags['newentrytitle'] = $newentrytitle;
}
} elseif ($conf_title = $this->getConf('newentrytitle')) {
$flags['newentrytitle'] = $conf_title;
} else {
$flags['newentrytitle'] = $this->getLang('newentry');
}
return $flags;
}
/**
* Function to create sortable, unique array keys
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Ilya S. Lebedev <ilya@lebedev.net>
* @author Balazs Attila-Mihaly <x_at_y_or_z@yahoo.com>
*/
function _uniqueKey($key, &$unique_keys_memoize){
//convert numeric keys to string
if (is_numeric($key))
$key = sprintf('%08x', $key);
if (!array_key_exists($key, $unique_keys_memoize))
$unique_keys_memoize[$key] = 0;
return sprintf('%s_%s', $key, $unique_keys_memoize[$key]++);
}
}
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,36 @@
<?php
/**
* Arabic language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author M. Bashir Al-Noimi <bashir.storm@gmail.com>
*/
// custom language strings for the plugin
$lang['blog'] = 'مدوّنة';
$lang['older'] = 'تدوينات قديمة';
$lang['newer'] = 'تدوينات جديدة';
$lang['newentry'] = 'إضافة تدوينة جديدة:';
$lang['missing_includeplugin'] = 'إضافة "Include" يجب أن تكون منزلّة ومفعّلة لتعمل المدونّة.';
$lang['missing_pagelistplugin'] = 'إضافة "Pagelist" يجب أن تكون منزلّة ومفعّلة لتعمل قوائم المدوّنات.';
$lang['missing_tagplugin'] = 'إضافة "Tag" يجب أن تكون منزلّة ومفعّلة لتعمل سحابة الوسوم.';
$lang['autoarchive'] = '%d مشاركة لشهر %s %s';
$lang['month_01'] = 'كانون الثاني';
$lang['month_02'] = 'شباط';
$lang['month_03'] = 'آذار';
$lang['month_04'] = 'نيسان';
$lang['month_05'] = 'أيار';
$lang['month_06'] = 'حزيران';
$lang['month_07'] = 'تموز';
$lang['month_08'] = 'آب';
$lang['month_09'] = 'أيلول';
$lang['month_10'] = 'تشرين الأول';
$lang['month_11'] = 'تشرين الثاني';
$lang['month_12'] = 'كانون الأول';
$lang['entries'] = 'مُدخلات';
$lang['entry'] = 'مُدخلة';
$lang['archive_title'] = 'أرشيف المدوّنة';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,35 @@
<?php
/**
* Arabic language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author M. Bashir Al-Noimi <bashir.storm@gmail.com>
*/
// for the configuration manager
$lang['namespace'] = 'فضاء أسماء إفتراضي للمدوّنة';
$lang['formposition'] = 'موقع التدوينة الجديدة';
$lang['formposition_o_top'] = 'أعلى';
$lang['formposition_o_bottom'] = 'أسفل';
$lang['dateprefix'] = 'بادئة التاريخ للتدوينات الجديدة';
$lang['sortkey'] = 'ترتيب التدوينات حسب:';
$lang['sortkey_o_cdate'] = 'تاريخ الإنشاء';
$lang['sortkey_o_pagename'] = 'إسم الصفحة';
$lang['sortkey_o_id'] = 'رقم الصفحة';
$lang['sortkey_o_mdate'] = 'تاريخ التعديل';
$lang['sortkey_o_title'] = 'العنوان';
$lang['sortorder'] = 'ترتيباً';
$lang['sortorder_o_ascending'] = 'تصاعدياً';
$lang['sortorder_o_descending'] = 'تنازلياً';
$lang['excluded_pages'] = 'استثناء صفحات معيّنة من قوائم المدوّنات (يتطلّب تعبيراً نمطيّاً RegEx)';
$lang['showhistorgram'] = 'عرض الرسم البياني عند عرض الأرشيف';
$lang['max_months'] = 'العدد الأقصى للأشهر المعروضة في الرسم البياني';
$lang['histogram_height'] = 'طول الرسم البياني (بكسل)';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,25 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Lukas Zapletal <lukas.zapletal at gmail dot com>
* @author Vojta Olsan <olsh0@seznam.cz>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'Starší zápisky';
$lang['newer'] = 'Novější zápisky';
$lang['newentry'] = 'Nový zápisek:';
$lang['month_01'] = 'leden';
$lang['month_02'] = 'únor';
$lang['month_03'] = 'březen';
$lang['month_04'] = 'duben';
$lang['month_05'] = 'květen';
$lang['month_06'] = 'červen';
$lang['month_07'] = 'červenec';
$lang['month_08'] = 'srpen';
$lang['month_09'] = 'září';
$lang['month_10'] = 'říjen';
$lang['month_11'] = 'listopad';
$lang['month_12'] = 'prosinec';
$lang['archive_title'] = 'Historie blogu';

View File

@ -0,0 +1,25 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Lukas Zapletal <lukas.zapletal at gmail dot com>
* @author Vojta Olsan <olsh0@seznam.cz>
*/
$lang['namespace'] = 'implicitní jmenný prostor pro blog';
$lang['formposition'] = 'pozice pole pro zadání nového příspěvku';
$lang['formposition_o_top'] = 'nahoře';
$lang['formposition_o_bottom'] = 'dole';
$lang['formposition_o_none'] = 'žádný';
$lang['dateprefix'] = 'přidat datumový prefix novým příspěvkům';
$lang['sortkey'] = 'razení zápisků podle';
$lang['sortkey_o_cdate'] = 'data vytvoření';
$lang['sortkey_o_mdate'] = 'data modifikace';
$lang['sortkey_o_pagename'] = 'názvu stránky';
$lang['sortkey_o_id'] = 'ID stránky';
$lang['sortkey_o_title'] = 'název';
$lang['sortorder'] = 'pořadí';
$lang['sortorder_o_ascending'] = 'vzestupné';
$lang['sortorder_o_descending'] = 'sestupné';
$lang['max_months'] = 'Maximální počet měsíců zobrazených v histogramu';
$lang['histogram_height'] = 'Výška histogramu (v pixelech)';

View File

@ -0,0 +1,31 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Soren Birk <soer9648@eucl.dk>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'Ældre indlæg';
$lang['newer'] = 'Nyere indlæg';
$lang['newentry'] = 'Nyt indlæg:';
$lang['missing_includeplugin'] = 'Include plugin skal være installeret for at bloggen virker.';
$lang['missing_pagelistplugin'] = 'Pagelist plugin skal være installeret for at arkivlister virker.';
$lang['missing_tagplugin'] = 'Tag plugin skal være installeret for at benytte denne funktion.';
$lang['autoarchive'] = '%1$d indlæg i %2$s %3$s';
$lang['month_01'] = 'januar';
$lang['month_02'] = 'februar';
$lang['month_03'] = 'marts';
$lang['month_04'] = 'april';
$lang['month_05'] = 'maj';
$lang['month_06'] = 'juni';
$lang['month_07'] = 'juli';
$lang['month_08'] = 'august';
$lang['month_09'] = 'september';
$lang['month_10'] = 'oktober';
$lang['month_11'] = 'november';
$lang['month_12'] = 'december';
$lang['entries'] = 'indlæg';
$lang['entry'] = 'indlæg';
$lang['archive_title'] = 'Blog Arkiv';

View File

@ -0,0 +1,24 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Soren Birk <soer9648@eucl.dk>
*/
$lang['namespace'] = 'standard navnerum til blog';
$lang['formposition'] = 'position af formular til nyt indlæg';
$lang['formposition_o_top'] = 'top';
$lang['formposition_o_bottom'] = 'bund';
$lang['formposition_o_none'] = 'intet';
$lang['dateprefix'] = 'foruddefineret dato for nye indlæg IDs';
$lang['sortkey'] = 'sortér blog indlæg efter';
$lang['sortkey_o_cdate'] = 'dato for oprettelse';
$lang['sortkey_o_mdate'] = 'dato for seneste ændring';
$lang['sortkey_o_pagename'] = 'sidenavn';
$lang['sortkey_o_id'] = 'side id';
$lang['sortkey_o_title'] = 'titel';
$lang['sortorder'] = 'sorteringsrækkefølge';
$lang['sortorder_o_ascending'] = 'stigende';
$lang['sortorder_o_descending'] = 'faldende';
$lang['excluded_pages'] = 'Udeluk bestemte sider fra blog listen (kræver regulært udtryk)';

View File

@ -0,0 +1,31 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Michael Hamann <michael@content-space.de>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'Ältere Einträge';
$lang['newer'] = 'Neuere Einträge';
$lang['newentry'] = 'Neuer Blogeintrag:';
$lang['missing_includeplugin'] = 'Ohne das Include Plugin funktioniert das Blog nicht.';
$lang['missing_pagelistplugin'] = 'Ohne das Pagelist Plugin funktionieren Archivlisten nicht.';
$lang['missing_tagplugin'] = 'Um Tag-Verfeinerungen zu verwenden, muss das Tag Plugin installiert sein.';
$lang['autoarchive'] = '%1$d Beiträge für den %2$s %3$s';
$lang['month_01'] = 'Januar';
$lang['month_02'] = 'Februar';
$lang['month_03'] = 'März';
$lang['month_04'] = 'April';
$lang['month_05'] = 'Mai';
$lang['month_06'] = 'Juni';
$lang['month_07'] = 'Juli';
$lang['month_08'] = 'August';
$lang['month_09'] = 'September';
$lang['month_10'] = 'Oktober';
$lang['month_11'] = 'November';
$lang['month_12'] = 'Dezember';
$lang['entries'] = 'Einträge';
$lang['entry'] = 'Eintrag';
$lang['archive_title'] = 'Blog-Archiv';

View File

@ -0,0 +1,29 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Michael Hamann <michael@content-space.de>
* @author Dominik Eckelmann <deckelmann@gmail.com>
*/
$lang['namespace'] = 'Standard-Namensraum für Blog';
$lang['formposition'] = 'Position des Formulars für neue Blogeinträge';
$lang['formposition_o_top'] = 'oben';
$lang['formposition_o_bottom'] = 'unten';
$lang['formposition_o_none'] = 'Keine';
$lang['newentrytitle'] = 'Titel des Formulars um neue Einträge anzulegen';
$lang['dateprefix'] = 'Datum den IDs neuer Seiten voranstellen';
$lang['sortkey'] = 'Blogeinträge sortieren nach:';
$lang['sortkey_o_cdate'] = 'Erstellungsdatum';
$lang['sortkey_o_mdate'] = 'Änderungsdatum';
$lang['sortkey_o_pagename'] = 'Seitenname';
$lang['sortkey_o_id'] = 'Seiten-ID';
$lang['sortkey_o_title'] = 'Titel';
$lang['sortorder'] = 'Sortierrichtung';
$lang['sortorder_o_ascending'] = 'aufsteigend';
$lang['sortorder_o_descending'] = 'absteigend';
$lang['excluded_pages'] = 'Seiten von den Blog-Auflistungen ausschließen (regulärer Ausdruck)';
$lang['showhistogram'] = 'Ein Histogramm auf den Archiv-Seiten anzeigen';
$lang['max_months'] = 'Maximale Anzahl an Monaten die im Histogramm angezeigt werden sollen';
$lang['histogram_height'] = 'Höhe des Histogramms (in Pixeln)';

View File

@ -0,0 +1,31 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Michael Hamann <michael@content-space.de>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'Ältere Einträge';
$lang['newer'] = 'Neuere Einträge';
$lang['newentry'] = 'Neuer Blogeintrag:';
$lang['missing_includeplugin'] = 'Ohne das Include Plugin funktioniert das Blog nicht.';
$lang['missing_pagelistplugin'] = 'Ohne das Pagelist Plugin funktionieren Archivlisten nicht.';
$lang['missing_tagplugin'] = 'Um Tag-Verfeinerungen zu verwenden, muss das Tag Plugin installiert sein.';
$lang['autoarchive'] = '%1$d Beiträge für den %2$s %3$s';
$lang['month_01'] = 'Januar';
$lang['month_02'] = 'Februar';
$lang['month_03'] = 'März';
$lang['month_04'] = 'April';
$lang['month_05'] = 'Mai';
$lang['month_06'] = 'Juni';
$lang['month_07'] = 'Juli';
$lang['month_08'] = 'August';
$lang['month_09'] = 'September';
$lang['month_10'] = 'Oktober';
$lang['month_11'] = 'November';
$lang['month_12'] = 'Dezember';
$lang['entries'] = 'Einträge';
$lang['entry'] = 'Eintrag';
$lang['archive_title'] = 'Blog-Archiv';

View File

@ -0,0 +1,29 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Michael Hamann <michael@content-space.de>
* @author Dominik Eckelmann <deckelmann@gmail.com>
*/
$lang['namespace'] = 'Standard-Namensraum für Blog';
$lang['formposition'] = 'Position des Formulars für neue Blogeinträge';
$lang['formposition_o_top'] = 'oben';
$lang['formposition_o_bottom'] = 'unten';
$lang['formposition_o_none'] = 'Keine';
$lang['newentrytitle'] = 'Titel des Formulars um neue Einträge anzulegen';
$lang['dateprefix'] = 'Datum den IDs neuer Seiten voranstellen';
$lang['sortkey'] = 'Blogeinträge sortieren nach:';
$lang['sortkey_o_cdate'] = 'Erstellungsdatum';
$lang['sortkey_o_mdate'] = 'Änderungsdatum';
$lang['sortkey_o_pagename'] = 'Seitenname';
$lang['sortkey_o_id'] = 'Seiten-ID';
$lang['sortkey_o_title'] = 'Titel';
$lang['sortorder'] = 'Sortierrichtung';
$lang['sortorder_o_ascending'] = 'aufsteigend';
$lang['sortorder_o_descending'] = 'absteigend';
$lang['excluded_pages'] = 'Seiten von den Blog-Auflistungen ausschließen (regulärer Ausdruck)';
$lang['showhistogram'] = 'Ein Histogramm auf den Archiv-Seiten anzeigen';
$lang['max_months'] = 'Maximale Anzahl an Monaten die im Histogramm angezeigt werden sollen';
$lang['histogram_height'] = 'Höhe des Histogramms (in Pixeln)';

View File

@ -0,0 +1,36 @@
<?php
/**
* English language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
*/
// custom language strings for the plugin
$lang['blog'] = 'Blog';
$lang['older'] = 'Older entries';
$lang['newer'] = 'Newer entries';
$lang['newentry'] = 'New blog entry:';
$lang['missing_includeplugin'] = 'The Include Plugin must be installed for the blog to work.';
$lang['missing_pagelistplugin'] = 'The Pagelist Plugin must be installed for archive lists to work.';
$lang['missing_tagplugin'] = 'The Tag Plugin must be installed to use tag refinements.';
$lang['autoarchive'] = '%1$d Post(s) for %2$s %3$s';
$lang['month_01'] = 'January';
$lang['month_02'] = 'February';
$lang['month_03'] = 'March';
$lang['month_04'] = 'April';
$lang['month_05'] = 'May';
$lang['month_06'] = 'June';
$lang['month_07'] = 'July';
$lang['month_08'] = 'August';
$lang['month_09'] = 'September';
$lang['month_10'] = 'October';
$lang['month_11'] = 'November';
$lang['month_12'] = 'December';
$lang['entries'] = 'entries';
$lang['entry'] = 'entry';
$lang['archive_title'] = 'Blog History';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,38 @@
<?php
/**
* English language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
*/
// for the configuration manager
$lang['namespace'] = 'default namespace for blog';
$lang['formposition'] = 'position of the new entry form';
$lang['formposition_o_top'] = 'top';
$lang['formposition_o_bottom'] = 'bottom';
$lang['formposition_o_none'] = 'none';
$lang['newentrytitle'] = 'title of the new entry form';
$lang['dateprefix'] = 'prefix date to new entry IDs';
$lang['sortkey'] = 'sort blog entries by';
$lang['sortkey_o_cdate'] = 'creation date';
$lang['sortkey_o_mdate'] = 'modification date';
$lang['sortkey_o_pagename'] = 'page name';
$lang['sortkey_o_id'] = 'page ID';
$lang['sortkey_o_title'] = 'title';
$lang['sortorder'] = 'sort order';
$lang['sortorder_o_ascending'] = 'ascending';
$lang['sortorder_o_descending'] = 'descending';
$lang['excluded_pages'] = 'exclude certain pages from blog listing (regular expression required)';
$lang['showhistogram'] = 'Display histogram on archive rendering';
$lang['max_months'] = 'Max months to show in the histogram';
$lang['histogram_height'] = 'Height of the histogram (in pixels)';
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,31 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Piotr Hołda <holda.piotr@gmail.com>
* @author Robert Bogenschneider <bogi@uea.org>
*/
$lang['blog'] = 'Blogo';
$lang['older'] = 'Pli malnovaj enskriboj';
$lang['newer'] = 'Pli novaj enskriboj';
$lang['newentry'] = 'Nova blog-enskribo:';
$lang['missing_includeplugin'] = 'La "Include"-kromaĵo devas esti instalita por uzi la blogon.';
$lang['missing_pagelistplugin'] = 'La "Pagelist"-kromaĵo devas esti instalita por uzi arkivlistojn.';
$lang['missing_tagplugin'] = 'La "Tag"-kromaĵo devas esti instalita por ŝanĝi etikedojn.';
$lang['autoarchive'] = '%1$d Enskribo(j) por %2$s %3$s';
$lang['month_01'] = 'Januaro';
$lang['month_02'] = 'Februaro';
$lang['month_03'] = 'Marto';
$lang['month_04'] = 'Aprilo';
$lang['month_05'] = 'Majo';
$lang['month_06'] = 'Junio';
$lang['month_07'] = 'Julio';
$lang['month_08'] = 'Aŭgusto';
$lang['month_09'] = 'Septembro';
$lang['month_10'] = 'Oktobro';
$lang['month_11'] = 'Novembro';
$lang['month_12'] = 'Decembro';
$lang['entries'] = 'enskriboj';
$lang['entry'] = 'enskribo';
$lang['archive_title'] = 'Blog-historio';

View File

@ -0,0 +1,28 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Piotr Hołda <holda.piotr@gmail.com>
* @author Robert Bogenschneider <bogi@uea.org>
*/
$lang['namespace'] = 'defaŭlta nomspaco por la blogo';
$lang['formposition'] = 'pozicio de formularo de nova blog-enskribo';
$lang['formposition_o_top'] = 'supro';
$lang['formposition_o_bottom'] = 'malsupro';
$lang['formposition_o_none'] = 'neniu';
$lang['newentrytitle'] = 'Titolo de nova enmet-formularo';
$lang['dateprefix'] = 'prefikso al novaj enskrib-ID-oj';
$lang['sortkey'] = 'ordigi blog-enskriboj laŭ';
$lang['sortkey_o_cdate'] = 'kreodato';
$lang['sortkey_o_mdate'] = 'modifodato';
$lang['sortkey_o_pagename'] = 'paĝ-nomo';
$lang['sortkey_o_id'] = 'paĝ-identigilo';
$lang['sortkey_o_title'] = 'titolo';
$lang['sortorder'] = 'ordiga ordo';
$lang['sortorder_o_ascending'] = 'kreskante';
$lang['sortorder_o_descending'] = 'malkreskante';
$lang['excluded_pages'] = 'ekskludi certajn paĝojn de bloglistado (per regula esprimo)';
$lang['showhistogram'] = 'Montri histogramon de arkivado';
$lang['max_months'] = 'Montri maksimume tiom da monatoj en la histogramo';
$lang['histogram_height'] = 'Alteco de la histogramo (en pikseloj)';

View File

@ -0,0 +1,30 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Herman Fabián Sandoval Manrique <hfsandovalm@emzac.com>
* @author r0sk <r0sk10@gmail.com>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'Entradas anteriores';
$lang['newer'] = 'Entradas nuevas';
$lang['newentry'] = 'Nueva entrada en el blog:';
$lang['missing_includeplugin'] = 'El plugin Include debe estar instalado para que el blog funcione.';
$lang['missing_pagelistplugin'] = 'El plugin Pagelist debe estar instalado para que funcionen los listados de archivo.';
$lang['missing_tagplugin'] = 'El plugin Tag debe estar instalado para que funcionen los tags.';
$lang['month_01'] = 'Enero';
$lang['month_02'] = 'Febrero';
$lang['month_03'] = 'Marzo';
$lang['month_04'] = 'Abril';
$lang['month_05'] = 'Mayo';
$lang['month_06'] = 'Junio';
$lang['month_07'] = 'Julio';
$lang['month_08'] = 'Agosto';
$lang['month_09'] = 'Septiembre';
$lang['month_10'] = 'Octubre';
$lang['month_11'] = 'Noviembre';
$lang['month_12'] = 'Diciembre';
$lang['entries'] = 'entradas';
$lang['entry'] = 'entrada';
$lang['archive_title'] = 'Histórico';

View File

@ -0,0 +1,23 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Herman Fabián Sandoval Manrique <hfsandovalm@emzac.com>
* @author r0sk <r0sk10@gmail.com>
*/
$lang['namespace'] = 'namespace predeterminado para el blog';
$lang['formposition'] = 'posición del formulario de nueva entrada';
$lang['formposition_o_top'] = 'arriba';
$lang['formposition_o_bottom'] = 'abajo';
$lang['formposition_o_none'] = 'ninguna';
$lang['newentrytitle'] = 'título del formulario de nueva entrada';
$lang['sortkey'] = 'ordenar entradas por';
$lang['sortkey_o_cdate'] = 'fecha de creación';
$lang['sortkey_o_mdate'] = 'fecha de modificación';
$lang['sortkey_o_pagename'] = 'nombre de página';
$lang['sortkey_o_id'] = 'ID de página';
$lang['sortkey_o_title'] = 'título';
$lang['sortorder'] = 'ordenamiento';
$lang['sortorder_o_ascending'] = 'ascendente';
$lang['sortorder_o_descending'] = 'descendente';

View File

@ -0,0 +1,30 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Sam01 <m.sajad079@gmail.com>
*/
$lang['blog'] = 'وبلاگ';
$lang['older'] = 'نوشته‌های قدیمی‌تر';
$lang['newer'] = 'نوشته‌های جدیدتر';
$lang['newentry'] = 'ثبت وبلاگ جدید:';
$lang['missing_includeplugin'] = 'برای کارکردن وبلاگ نیاز به نصب پلاگین است.';
$lang['missing_pagelistplugin'] = 'پلاگینPagelist باید برای آرشیوبندی نصب شود.';
$lang['missing_tagplugin'] = 'پلاگین برچسب باید نصب شود تا اصطلاحات آن استفاده شود.';
$lang['autoarchive'] = '%1$d مطلب (s) برای %2$s %3$s';
$lang['month_01'] = 'ژانویه';
$lang['month_02'] = 'فوریه';
$lang['month_03'] = 'مارس';
$lang['month_04'] = 'آوریل';
$lang['month_05'] = 'می';
$lang['month_06'] = 'ژوئن';
$lang['month_07'] = 'جولای';
$lang['month_08'] = 'اوت';
$lang['month_09'] = 'سپتامبر';
$lang['month_10'] = 'اکتبر';
$lang['month_11'] = 'نوامبر';
$lang['month_12'] = 'دسامبر';
$lang['entries'] = 'ورودی‌ها';
$lang['entry'] = 'ورودی';
$lang['archive_title'] = 'تاریخچه وبلاگ';

View File

@ -0,0 +1,27 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Sam01 <m.sajad079@gmail.com>
*/
$lang['namespace'] = 'فضای نام پیش‌فرض برای وبلاگ';
$lang['formposition'] = 'موقعیت فرم جدید وارد شده';
$lang['formposition_o_top'] = 'بالا';
$lang['formposition_o_bottom'] = 'پایین';
$lang['formposition_o_none'] = 'هیچ';
$lang['newentrytitle'] = 'عنوان فرم جدید وارد شده';
$lang['dateprefix'] = 'تاریخ پیشوند آیدی‌های ورودی‌های جدید';
$lang['sortkey'] = 'مرتب سازی مطالب وبلاگ براساس';
$lang['sortkey_o_cdate'] = 'تاریخ ایجاد';
$lang['sortkey_o_mdate'] = 'تاریخ اصلاح';
$lang['sortkey_o_pagename'] = 'نام صفحه';
$lang['sortkey_o_id'] = 'آیدی صفحه';
$lang['sortkey_o_title'] = 'عنوان';
$lang['sortorder'] = 'مرتب سازی سفارشی';
$lang['sortorder_o_ascending'] = 'صعودی';
$lang['sortorder_o_descending'] = 'نزولی';
$lang['excluded_pages'] = 'به غیر از صفحه‌های خاص از لیست وبلاگ (عبارت منظم مورد نیاز است)';
$lang['showhistogram'] = 'نمایش بافت‌نگار در تفسیر آرشیو';
$lang['max_months'] = 'حداکثر ماه‌ها برای نمایش بافت‌نگار';
$lang['histogram_height'] = 'ارتفاع بافت‌نگار (به پیکسل)';

View File

@ -0,0 +1,32 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Damien Raude-Morvan <drazzib@drazzib.com>
* @author Stanislas Reltgen <stanislas@reltgen.net>
* @author Florent Chabaud <fchabaud@free.fr>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'Anciens billets';
$lang['newer'] = 'Billets récents';
$lang['newentry'] = 'Nouveau billet :';
$lang['missing_includeplugin'] = 'Le module "include" doit être installé pour que le module "blog" puisse fonctionner.';
$lang['missing_pagelistplugin'] = 'Le module "pagelist" doit être installé pour que les archives puissent fonctionner.';
$lang['missing_tagplugin'] = 'Le module "tag" doit être installé pour pouvoir en bénéficier dans le module "blog".';
$lang['autoarchive'] = '%1$d billet(s) pour %2$s %3$s';
$lang['month_01'] = 'janvier';
$lang['month_02'] = 'février';
$lang['month_03'] = 'mars';
$lang['month_04'] = 'avril';
$lang['month_05'] = 'mai';
$lang['month_06'] = 'juin';
$lang['month_07'] = 'juillet';
$lang['month_08'] = 'août';
$lang['month_09'] = 'septembre';
$lang['month_10'] = 'octobre';
$lang['month_11'] = 'novembre';
$lang['month_12'] = 'décembre';
$lang['entries'] = 'billets';
$lang['entry'] = 'billet';
$lang['archive_title'] = 'Historique du blog';

View File

@ -0,0 +1,29 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Stanislas Reltgen <stanislas@reltgen.net>
* @author Florent Chabaud <fchabaud@free.fr>
* @author Nicolas Friedli <nicolas@theologique.ch>
*/
$lang['namespace'] = 'espace de nom par défaut pour le blog';
$lang['formposition'] = 'position du formulaire de saisie de nouveau billet';
$lang['formposition_o_top'] = 'haut';
$lang['formposition_o_bottom'] = 'bas';
$lang['formposition_o_none'] = 'aucun';
$lang['newentrytitle'] = 'titre de la nouvelle entrée de formulaire';
$lang['dateprefix'] = 'date préfixant les IDs des nouveaux billets';
$lang['sortkey'] = 'trier les billets du blog par:';
$lang['sortkey_o_cdate'] = 'date de création';
$lang['sortkey_o_mdate'] = 'date de modification';
$lang['sortkey_o_pagename'] = 'nom de la page';
$lang['sortkey_o_id'] = 'ID de la page';
$lang['sortkey_o_title'] = 'titre';
$lang['sortorder'] = 'ordre de tri';
$lang['sortorder_o_ascending'] = 'croissant';
$lang['sortorder_o_descending'] = 'décroissant';
$lang['excluded_pages'] = 'exclure certaines pages des archives du blog (expression régulière requise)';
$lang['showhistogram'] = 'Afficher l\'histogramme du rendu des archives';
$lang['max_months'] = 'Nombre maximal de mois à représenter dans l\'histogramme';
$lang['histogram_height'] = 'Hauteur de l\'histogramme (en pixels)';

View File

@ -0,0 +1,32 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Norbert Csík <norbert.csik@gmail.com>
* @author Serenity87HUN <anikototh87@gmail.com>
* @author Marina Vladi <deldadam@gmail.com>
*/
$lang['blog'] = 'Napló';
$lang['older'] = 'régi bejegyzések';
$lang['newer'] = 'új bejegyzések';
$lang['newentry'] = 'Új bejegyzés:';
$lang['missing_includeplugin'] = 'Az \'Include Plugin\'-t telepítenünk kell a napló (blog) működéséhez.';
$lang['missing_pagelistplugin'] = 'A \'Pagelist Plugin\'-t telepítenünk kell az archiválási listák működéséhez.';
$lang['missing_tagplugin'] = 'A \'Tag Plugin\'-t telepítenünk kell a címkék használatához.';
$lang['autoarchive'] = '%1$d hozzászólás ehhez: %2$s %3$s';
$lang['month_01'] = 'Január';
$lang['month_02'] = 'Február';
$lang['month_03'] = 'Március';
$lang['month_04'] = 'Április';
$lang['month_05'] = 'Május';
$lang['month_06'] = 'Június';
$lang['month_07'] = 'Július';
$lang['month_08'] = 'Augusztus';
$lang['month_09'] = 'Szeptember';
$lang['month_10'] = 'Október';
$lang['month_11'] = 'November';
$lang['month_12'] = 'December';
$lang['entries'] = 'bejegyzés';
$lang['entry'] = 'bejegyzés';
$lang['archive_title'] = 'Naplótörténet';

View File

@ -0,0 +1,29 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Norbert Csík <norbert.csik@gmail.com>
* @author Serenity87HUN <anikototh87@gmail.com>
* @author Marina Vladi <deldadam@gmail.com>
*/
$lang['namespace'] = 'napló alapértelmezett névtere';
$lang['formposition'] = 'új bejegyzés űrlapjának helye';
$lang['formposition_o_top'] = 'felül';
$lang['formposition_o_bottom'] = 'alul';
$lang['formposition_o_none'] = 'sehol';
$lang['newentrytitle'] = 'új bejegyzés űrlapcíme';
$lang['dateprefix'] = 'Dátumelőtag új bejegyzések ID-jéhez';
$lang['sortkey'] = 'naplóbejegyzések rendezése eszerint';
$lang['sortkey_o_cdate'] = 'készítés dátuma';
$lang['sortkey_o_mdate'] = 'módosítás dátuma';
$lang['sortkey_o_pagename'] = 'oldalnév';
$lang['sortkey_o_id'] = 'oldalazonosító';
$lang['sortkey_o_title'] = 'cím';
$lang['sortorder'] = 'rendezés iránya';
$lang['sortorder_o_ascending'] = 'növekvő';
$lang['sortorder_o_descending'] = 'csökkenő';
$lang['excluded_pages'] = 'bizonyos oldalak kihagyása a blog listázása esetén (regurális kifejezés használata szükséges)';
$lang['showhistogram'] = 'Grafikon megjelenítése archiváláskor';
$lang['max_months'] = 'Grafikonon megjelenítendő hónapok max. száma';
$lang['histogram_height'] = 'Grafikon magassága (pixelben)';

View File

@ -0,0 +1,36 @@
<?php
/**
* Italian language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Niccolo Rigacci <niccolo@rigacci.org>
*/
// custom language strings for the plugin
$lang['older'] = 'Articoli meno recenti';
$lang['newer'] = 'Articoli più recent';
$lang['newentry'] = 'Nuovo articolo:';
$lang['missing_includeplugin'] = 'Questo blog non funziona senza il plugin Include.';
$lang['missing_pagelistplugin'] = 'Questo blog non funziona senza il plugin Pagelist.';
$lang['missing_tagplugin'] = 'Per utilizare i tag è ncessario installare il Plugin Tag.';
$lang['autoarchive'] = '%1$d Articoli del %2$s %3$s';
$lang['month_01'] = 'Gennaio';
$lang['month_02'] = 'Febbraio';
$lang['month_03'] = 'Marzo';
$lang['month_04'] = 'Aprile';
$lang['month_05'] = 'Maggio';
$lang['month_06'] = 'Giugno';
$lang['month_07'] = 'Luglio';
$lang['month_08'] = 'Agosto';
$lang['month_09'] = 'Settembre';
$lang['month_10'] = 'Ottobre';
$lang['month_11'] = 'Novembre';
$lang['month_12'] = 'Dicembre';
$lang['entries'] = 'Voci';
$lang['entry'] = 'Voce';
$lang['archive_title'] = 'Archivio Blog';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,12 @@
<?php
/**
* Italian language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Niccolo Rigacci <niccolo@rigacci.org>
*/
// for the configuration manager
$lang['namespace'] = 'Namespace predefinito per il blog';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,30 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Hideaki SAWADA <chuno@live.jp>
*/
$lang['blog'] = 'ブログ';
$lang['older'] = '古い記事';
$lang['newer'] = '新しい記事';
$lang['newentry'] = '新しい記事の投稿:';
$lang['missing_includeplugin'] = 'blog 構文が動くために Include プラグインが必要';
$lang['missing_pagelistplugin'] = 'archive 構文が動くために Pagelist プラグインが必要';
$lang['missing_tagplugin'] = 'タグ機能を使用するために Tag プラグインが必要';
$lang['autoarchive'] = '%3$s年%2$sの%1$d記事';
$lang['month_01'] = '01月';
$lang['month_02'] = '02月';
$lang['month_03'] = '03月';
$lang['month_04'] = '04月';
$lang['month_05'] = '05月';
$lang['month_06'] = '06月';
$lang['month_07'] = '07月';
$lang['month_08'] = '08月';
$lang['month_09'] = '09月';
$lang['month_10'] = '10月';
$lang['month_11'] = '11月';
$lang['month_12'] = '12月';
$lang['entries'] = '記事';
$lang['entry'] = '記事';
$lang['archive_title'] = 'ブログ履歴';

View File

@ -0,0 +1,27 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Hideaki SAWADA <chuno@live.jp>
*/
$lang['namespace'] = 'ブログ用のデフォルト名前空間';
$lang['formposition'] = '新しい記事投稿用フォームの位置';
$lang['formposition_o_top'] = '上部';
$lang['formposition_o_bottom'] = '下部';
$lang['formposition_o_none'] = '非表示';
$lang['newentrytitle'] = '新しい記事投稿用フォームの題名';
$lang['dateprefix'] = '新しい記事のページIDの先頭に付加する日付形式';
$lang['sortkey'] = '記事のソート項目';
$lang['sortkey_o_cdate'] = '作成日';
$lang['sortkey_o_mdate'] = '変更日';
$lang['sortkey_o_pagename'] = 'ページ名';
$lang['sortkey_o_id'] = 'ページ ID';
$lang['sortkey_o_title'] = 'タイトル';
$lang['sortorder'] = 'ソート順';
$lang['sortorder_o_ascending'] = '昇順';
$lang['sortorder_o_descending'] = '降順';
$lang['excluded_pages'] = '記事一覧から除外するページ(正規表現)';
$lang['showhistogram'] = '記事一覧にヒストグラムを表示する';
$lang['max_months'] = 'ヒストグラムに表示する最大月数';
$lang['histogram_height'] = 'ヒストグラムの高さ(ピクセル)';

View File

@ -0,0 +1,30 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Myeongjin <aranet100@gmail.com>
*/
$lang['blog'] = '블로그';
$lang['older'] = '오래된 항목';
$lang['newer'] = '새 항목';
$lang['newentry'] = '새 블로그 항목:';
$lang['missing_includeplugin'] = 'Include 플러그인은 블로그가 작동하기 위해 설치되어야 합니다.';
$lang['missing_pagelistplugin'] = 'Pagelist 플러그인은 보존 목록이 작동하기 위해 설치되어야 합니다.';
$lang['missing_tagplugin'] = 'Tag 플러그인은 태그 분류를 사용하기 위해 설치되어야 합니다.';
$lang['autoarchive'] = '%3$s년 %2$s의 게시물 %1$d개';
$lang['month_01'] = '1월';
$lang['month_02'] = '2월';
$lang['month_03'] = '3월';
$lang['month_04'] = '4월';
$lang['month_05'] = '5월';
$lang['month_06'] = '6월';
$lang['month_07'] = '7월';
$lang['month_08'] = '8월';
$lang['month_09'] = '9월';
$lang['month_10'] = '10월';
$lang['month_11'] = '11월';
$lang['month_12'] = '12월';
$lang['entries'] = '항목';
$lang['entry'] = '항목';
$lang['archive_title'] = '블로그 역사';

View File

@ -0,0 +1,27 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Myeongjin <aranet100@gmail.com>
*/
$lang['namespace'] = '블로그에 대한 기본 이름공간';
$lang['formposition'] = '새 항목 양식의 위치';
$lang['formposition_o_top'] = '위';
$lang['formposition_o_bottom'] = '아래';
$lang['formposition_o_none'] = '없음';
$lang['newentrytitle'] = '새 항목 양식의 제목';
$lang['dateprefix'] = '새 항목 ID에 접두어 날짜';
$lang['sortkey'] = '블로그 항목 순서로 정렬';
$lang['sortkey_o_cdate'] = '만든 날짜';
$lang['sortkey_o_mdate'] = '수정한 날짜';
$lang['sortkey_o_pagename'] = '문서 이름';
$lang['sortkey_o_id'] = '문서 ID';
$lang['sortkey_o_title'] = '제목';
$lang['sortorder'] = '정렬 순서';
$lang['sortorder_o_ascending'] = '오름차순';
$lang['sortorder_o_descending'] = '내림차순';
$lang['excluded_pages'] = '블로그 목록에서 특정 문서를 제외 (정규 표현식 필요)';
$lang['showhistogram'] = '보존 렌더링에 히스토그램 표시';
$lang['max_months'] = '히스토그램에서 보여줄 최대 월';
$lang['histogram_height'] = '히스토그램의 높이 (픽셀)';

View File

@ -0,0 +1,31 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Gijs H. van Gemert <g.v.gemert@inter.nl.net>
* @author Mark Prins <mprins@users.sf.net>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'Oude berichten';
$lang['newer'] = 'Nieuwe berichten';
$lang['newentry'] = 'Nieuw bericht:';
$lang['missing_includeplugin'] = 'De Include Plugin dient geïnstalleerd te zijn om de blog te laten werken.';
$lang['missing_pagelistplugin'] = 'De Pagelist Plugin dient geïnstalleerd te zijn om archief lijsten te laten werken.';
$lang['missing_tagplugin'] = 'De Tag Plugin dient geïnstalleerd te zijn om label filters te laten werken.';
$lang['autoarchive'] = '%1$d artikel(en) voor %2$s %3$s';
$lang['month_01'] = 'januari';
$lang['month_02'] = 'februari';
$lang['month_03'] = 'maart';
$lang['month_04'] = 'april';
$lang['month_05'] = 'mei';
$lang['month_06'] = 'juni';
$lang['month_07'] = 'juli';
$lang['month_08'] = 'augustus';
$lang['month_09'] = 'september';
$lang['month_10'] = 'october';
$lang['month_11'] = 'november';
$lang['month_12'] = 'december';
$lang['entries'] = 'berichten';
$lang['entry'] = 'bericht';
$lang['archive_title'] = 'Blog geschiedenis';

View File

@ -0,0 +1,28 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Gijs van Gemert <gijsh@sherpanet.nl>
* @author Mark Prins <mprins@users.sf.net>
*/
$lang['namespace'] = 'default namespace voor blog';
$lang['formposition'] = 'positie van het nieuwe bericht formulier';
$lang['formposition_o_top'] = 'boven';
$lang['formposition_o_bottom'] = 'onder';
$lang['formposition_o_none'] = 'geen';
$lang['newentrytitle'] = 'titels van het nieuwe bericht formulier';
$lang['dateprefix'] = 'datum prefix aan nieuwe bericht IDs toevoegen';
$lang['sortkey'] = 'Sorteer blog berichten op';
$lang['sortkey_o_cdate'] = 'aanmaak datum';
$lang['sortkey_o_mdate'] = 'bewerkingsdatum';
$lang['sortkey_o_pagename'] = 'pagina naam';
$lang['sortkey_o_id'] = 'pagina ID';
$lang['sortkey_o_title'] = 'titel';
$lang['sortorder'] = 'sorteer volgorde';
$lang['sortorder_o_ascending'] = 'oplopend';
$lang['sortorder_o_descending'] = 'aflopend';
$lang['excluded_pages'] = 'bepaalde pagina\'s uitsluiten van blog lijst (vereist reguliere expressie)';
$lang['showhistogram'] = 'Histogram tonen in de archief weergave';
$lang['max_months'] = 'Maximum aantal te tonen maanden in het histogram';
$lang['histogram_height'] = 'Hoogte van het histogram (in pixels)';

View File

@ -0,0 +1,28 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Radoslaw Gorniak
* @author Tomasz Dworakowski <tomaszdworakowski@gmail.com>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'Wcześniejsze wpisy';
$lang['newer'] = 'Nowsze wpisy';
$lang['newentry'] = 'Nowy wpis';
$lang['missing_includeplugin'] = 'Wtyczka Include musi być zainstalowana, aby blog mógł działać poprawnie.';
$lang['missing_pagelistplugin'] = 'Wtyczka Pagelist musi być zainstalowana, aby archiwizacja mógła działać poprawnie.';
$lang['missing_tagplugin'] = 'Wtyczka Tag Plugin musi być zainstalowana, aby móc używać tagów.';
$lang['month_01'] = 'Styczeń';
$lang['month_02'] = 'Luty';
$lang['month_03'] = 'Marzec';
$lang['month_04'] = 'Kwiecień';
$lang['month_05'] = 'Maj';
$lang['month_06'] = 'Czerwiec';
$lang['month_07'] = 'Lipiec';
$lang['month_08'] = 'Sierpień';
$lang['month_09'] = 'Wrzesień';
$lang['month_10'] = 'Październik';
$lang['month_11'] = 'Listopad';
$lang['month_12'] = 'Grudzień';
$lang['archive_title'] = 'Historia bloga';

View File

@ -0,0 +1,23 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Radoslaw Gorniak
* @author Tomasz Dworakowski <tomaszdworakowski@gmail.com>
*/
$lang['namespace'] = 'Domyślna przestrzeń nazw dla bloga';
$lang['formposition'] = 'Pozycja formularza nowy wpis';
$lang['formposition_o_top'] = 'góra';
$lang['formposition_o_bottom'] = 'dół';
$lang['formposition_o_none'] = 'brak';
$lang['dateprefix'] = 'Dołącz datę do ID nowego wpisu (ciąg formatujący datę)';
$lang['sortkey'] = 'Sortuj wpisy używając';
$lang['sortkey_o_cdate'] = 'daty stworzenia';
$lang['sortkey_o_mdate'] = 'daty modifikacji';
$lang['sortkey_o_pagename'] = 'nazwy strony';
$lang['sortkey_o_id'] = 'ID strony';
$lang['sortkey_o_title'] = 'tytułu';
$lang['sortorder'] = 'Kolejność sortowania';
$lang['sortorder_o_ascending'] = 'rosnąca';
$lang['sortorder_o_descending'] = 'malejąca';

View File

@ -0,0 +1,30 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Flávio Roberto Santos <flavio.barata@gmail.com>
* @author Samory Pereira Santos <samory.santos@gmail.com>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'registros antigos';
$lang['newer'] = 'registros mais novos';
$lang['newentry'] = 'Novo registro do blog:';
$lang['missing_includeplugin'] = 'O plugin Inlude deve estar instalado para que o blog funcione.';
$lang['missing_pagelistplugin'] = 'O plugin Pagelist deve estar instalado para que a listagem de arquivo funcione,';
$lang['missing_tagplugin'] = 'O plugin Tag deve estar instalado para usar refinamentos de etiquetagem.';
$lang['month_01'] = 'Janeiro';
$lang['month_02'] = 'Fevereiro';
$lang['month_03'] = 'Março';
$lang['month_04'] = 'Abril';
$lang['month_05'] = 'Maio';
$lang['month_06'] = 'Junho';
$lang['month_07'] = 'Julho';
$lang['month_08'] = 'Agosto';
$lang['month_09'] = 'Setembro';
$lang['month_10'] = 'Outubro';
$lang['month_11'] = 'Novembro';
$lang['month_12'] = 'Dezembro';
$lang['entries'] = 'entradas';
$lang['entry'] = 'entrada';
$lang['archive_title'] = 'Histórico do Blog';

View File

@ -0,0 +1,23 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Flávio Roberto Santos <flavio.barata@gmail.com>
* @author Samory Pereira Santos <samory.santos@gmail.com>
*/
$lang['namespace'] = 'namespace padrão para o blog';
$lang['formposition_o_top'] = 'topo';
$lang['formposition_o_bottom'] = 'final';
$lang['formposition_o_none'] = 'nenhum';
$lang['sortkey'] = 'ordenar as entradas do blog por';
$lang['sortkey_o_cdate'] = 'data de criação';
$lang['sortkey_o_mdate'] = 'data de modificação';
$lang['sortkey_o_pagename'] = 'nome da página';
$lang['sortkey_o_id'] = 'ID da página';
$lang['sortkey_o_title'] = 'título';
$lang['sortorder'] = 'ordenação';
$lang['sortorder_o_ascending'] = 'ascendente';
$lang['sortorder_o_descending'] = 'descendente';
$lang['excluded_pages'] = 'excluir determinadas páginas da listagem do blog (requer expressões regulares)';
$lang['histogram_height'] = 'Altura do histograma (em pixels)';

View File

@ -0,0 +1,31 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Fernando Ribeiro <pinguim.ribeiro@gmail.com>
*/
$lang['blog'] = 'Blog';
$lang['older'] = 'Entradas mais antigas';
$lang['newer'] = 'Entradas mais recentes';
$lang['newentry'] = 'Nova entrada do blog:';
$lang['missing_includeplugin'] = 'O Plugin Include deve estar instalado para o blog funcionar.';
$lang['missing_pagelistplugin'] = 'O Plugin Pagelist deve estar instalado para as listas do arquivo funcionarem.';
$lang['missing_tagplugin'] = 'O Plugin Tag deve estar instalado para as etiquetas funcionarem.';
$lang['autoarchive'] = '%1$d Artigo(s) para %2$s %3$s';
$lang['month_01'] = 'Janeiro';
$lang['month_02'] = 'Fevereiro';
$lang['month_03'] = 'Março';
$lang['month_04'] = 'Abril';
$lang['month_05'] = 'Maio';
$lang['month_06'] = 'Junho';
$lang['month_07'] = 'Julho';
$lang['month_08'] = 'Agosto';
$lang['month_09'] = 'Setembro';
$lang['month_10'] = 'Outubro';
$lang['month_11'] = 'Novembro';
$lang['month_12'] = 'Dezembro';
$lang['entries'] = 'entradas';
$lang['entry'] = 'entrada';
$lang['archive_title'] = 'Histórico do Blog';

View File

@ -0,0 +1,28 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Esther Brunner <wikidesign@gmail.com>
* @author Fernando Ribeiro <pinguim.ribeiro@gmail.com>
*/
$lang['namespace'] = 'default namespace for blog';
$lang['formposition'] = 'posição do formulário de entrada nova';
$lang['formposition_o_top'] = 'topo';
$lang['formposition_o_bottom'] = 'fundo';
$lang['formposition_o_none'] = 'nenhum';
$lang['newentrytitle'] = 'título do formulário de entrada nova';
$lang['dateprefix'] = 'prefixo do ID para a nova entrada';
$lang['sortkey'] = 'ordenar entradas do blog por';
$lang['sortkey_o_cdate'] = 'data de criação';
$lang['sortkey_o_mdate'] = 'data de modificação';
$lang['sortkey_o_pagename'] = 'nome da página';
$lang['sortkey_o_id'] = 'ID da página';
$lang['sortkey_o_title'] = 'título';
$lang['sortorder'] = 'ordenação';
$lang['sortorder_o_ascending'] = 'ascendente';
$lang['sortorder_o_descending'] = 'descendente';
$lang['excluded_pages'] = 'excluir determinadas páginas da listagem do blog (requer expressão regular)';
$lang['showhistogram'] = 'Mostrar histograma na representação do arquivo';
$lang['max_months'] = 'Nº máximo de meses para mostrar no histograma';
$lang['histogram_height'] = 'Altura do histograma (em pixels)';

View File

@ -0,0 +1,32 @@
<?php
/**
* Romanian language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
* @author Florin Chitiul <florinko@gmail.com>
*/
// custom language strings for the plugin
$lang['blog'] = 'Blog';
$lang['older'] = 'Intrări vechi';
$lang['newer'] = 'Intrări mai noi';
$lang['newentry'] = 'Postare nouă:';
$lang['missing_includeplugin'] = 'Plugin-ul Include trebuie să fie instalat pentru ca blogul să fie funcțional.';
$lang['missing_pagelistplugin'] = 'The Pagelist Plugin must be installed for archive lists to work.';
$lang['missing_tagplugin'] = 'Plugin-ul Tag trebuie să fie instalat pentru a utiliza convocări subtile tag.';
$lang['autoarchive'] = '%1$d Post(ări) pentru %2$lea %3$lea';
$lang['month_01'] = 'Ianuarie';
$lang['month_02'] = 'Februarie';
$lang['month_03'] = 'Martie';
$lang['month_04'] = 'Aprilie';
$lang['month_05'] = 'Mai';
$lang['month_06'] = 'Iunie';
$lang['month_07'] = 'Iulie';
$lang['month_08'] = 'August';
$lang['month_09'] = 'Septembrie';
$lang['month_10'] = 'Octobrie';
$lang['month_11'] = 'Noiebrie';
$lang['month_12'] = 'Decembrie';
$lang['entries'] = 'intrări';
$lang['entry'] = 'intrare';
$lang['archive_title'] = 'Istoria blogului';

View File

@ -0,0 +1,30 @@
<?php
/**
* Romanian language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
* @author Florin Chitiul <florinko@gmail.com>
*/
// for the configuration manager
$lang['namespace'] = 'numele implicit al blogului';
$lang['formposition'] = 'poziția formularului de inserare nouă';
$lang['formposition_o_top'] = 'sus';
$lang['formposition_o_bottom'] = 'jos';
$lang['formposition_o_none'] = 'niciuna';
$lang['newentrytitle'] = 'titlul inserării formularului de inserare nouă';
$lang['dateprefix'] = 'prefixul datei identității noii inserări';
$lang['sortkey'] = 'sortează intrările blogului după data celei mai noi inserări';
$lang['sortkey_o_cdate'] = 'data creării';
$lang['sortkey_o_mdate'] = 'data modificării';
$lang['sortkey_o_pagename'] = 'numele paginii';
$lang['sortkey_o_id'] = 'ID-ul paginii';
$lang['sortkey_o_title'] = 'titlul';
$lang['sortorder'] = 'ordinea de sortare';
$lang['sortorder_o_ascending'] = 'crescatoare';
$lang['sortorder_o_descending'] = 'descrescatoare';
$lang['excluded_pages'] = 'exclude anumite pagini de la listarea în blog (sunt necesare expresii)';
$lang['showhistogram'] = 'Afișează histograma în redarea arhivei';
$lang['max_months'] = 'Maximul nr. de luni afișabile în histogramă';
$lang['histogram_height'] = 'Înălțimea histogramei (în pixeli)';

View File

@ -0,0 +1,31 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Spike <spike@foobar2000.ru>
* @author Aleksandr Selivanov <alexgearbox@gmail.com>
*/
$lang['blog'] = 'Блог';
$lang['older'] = 'Предыдущие записи';
$lang['newer'] = 'Новые записи';
$lang['newentry'] = 'Новая запись:';
$lang['missing_includeplugin'] = 'Для работы блога необходимо установить плагин Include.';
$lang['missing_pagelistplugin'] = 'Для создания архивного списка должен быть установлен плагин Pagelist.';
$lang['missing_tagplugin'] = 'Для использования меток должен быть установлен плагин Tag.';
$lang['autoarchive'] = '%1$d сообщ. за %2$s %3$s';
$lang['month_01'] = 'январь';
$lang['month_02'] = 'февраль';
$lang['month_03'] = 'март';
$lang['month_04'] = 'апрель';
$lang['month_05'] = 'май';
$lang['month_06'] = 'июнь';
$lang['month_07'] = 'июль';
$lang['month_08'] = 'август';
$lang['month_09'] = 'сентябрь';
$lang['month_10'] = 'октябрь';
$lang['month_11'] = 'ноябрь';
$lang['month_12'] = 'декабрь';
$lang['entries'] = 'записи';
$lang['entry'] = 'запись';
$lang['archive_title'] = 'Статистика';

View File

@ -0,0 +1,29 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Spike <spike@foobar2000.ru>
* @author Aleksandr Selivanov <alexgearbox@gmail.com>
* @author Aleksandr Selivanov <alexgearbox@yandex.ru>
*/
$lang['namespace'] = 'Пространство имён по умолчанию для блога';
$lang['formposition'] = 'Расположить форму для новой записи:';
$lang['formposition_o_top'] = 'вверху страницы';
$lang['formposition_o_bottom'] = 'внизу страницы';
$lang['formposition_o_none'] = 'скрыть';
$lang['newentrytitle'] = 'Заголовок формы для новой записи';
$lang['dateprefix'] = 'Префикс даты для ID новой записи';
$lang['sortkey'] = 'Сортировать записи по:';
$lang['sortkey_o_cdate'] = 'дате написания';
$lang['sortkey_o_mdate'] = 'дате редактирования';
$lang['sortkey_o_pagename'] = 'имени страницы';
$lang['sortkey_o_id'] = 'ID страницы';
$lang['sortkey_o_title'] = 'заголовку';
$lang['sortorder'] = 'Направление сортировки:';
$lang['sortorder_o_ascending'] = 'по возрастанию';
$lang['sortorder_o_descending'] = 'по убыванию';
$lang['excluded_pages'] = 'Исключить определённые страницы из перечня блога (задаётся регулярным выражением)';
$lang['showhistogram'] = 'Отображать гистограмму в режиме архива';
$lang['max_months'] = 'Максимальное количество месяцев для отображения на гистограмме';
$lang['histogram_height'] = 'Высота гистограммы (в пикселях)';

View File

@ -0,0 +1,15 @@
<?php
/**
* Slovenian language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Blaž Mertelj <Blaz.Mertelj@atol.si>
*/
// custom language strings for the plugin
$lang['blog'] = 'Blog';
$lang['older'] = 'Starejši vnosi';
$lang['newer'] = 'Novejši vnosi';
$lang['newentry'] = 'Nov blog vnos:';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,19 @@
<?php
/**
* Slovenian language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Blaž Mertelj <Blaz.Mertelj@atol.si>
*/
// for the configuration manager
$lang['namespace'] = 'privzeti namespace za blog';
$lang['sortkey'] = 'sortiraj blog vnose po:';
$lang['sortkey_o_cdate'] = 'ustvarjeno dne';
$lang['sortkey_o_pagename'] = 'ime strani';
$lang['sortkey_o_id'] = 'ID strani';
$lang['dateprefix'] = 'pripeti datum pred IDje novih vnosov';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,32 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Christer Nygren <wiki@fronet.fro.se>
* @author Tor Härnqvist <tor.harnqvist@gmail.com>
* @author Tor Härnqvist <tor@harnqvist.se>
*/
$lang['blog'] = 'Blogg';
$lang['older'] = 'Äldre inlägg';
$lang['newer'] = 'Nyare inlägg';
$lang['newentry'] = 'Nytt inlägg:';
$lang['missing_includeplugin'] = 'Include-pluginet måste vara installerat för att bloggen ska fungera.';
$lang['missing_pagelistplugin'] = 'Pagelist-pluginet måste vara installerat för att arkivlistningar ska fungera.';
$lang['missing_tagplugin'] = 'Tagg-pluginet måste vara installerat för att använda tagg-funktionen.';
$lang['autoarchive'] = '%1$d inlägg i %2$s %3$s';
$lang['month_01'] = 'januari';
$lang['month_02'] = 'februari';
$lang['month_03'] = 'mars';
$lang['month_04'] = 'april';
$lang['month_05'] = 'maj';
$lang['month_06'] = 'juni';
$lang['month_07'] = 'juli';
$lang['month_08'] = 'augusti';
$lang['month_09'] = 'september';
$lang['month_10'] = 'oktober';
$lang['month_11'] = 'november';
$lang['month_12'] = 'december';
$lang['entries'] = 'Inlägg';
$lang['entry'] = 'Inlägg';
$lang['archive_title'] = 'Blogghistorik';

View File

@ -0,0 +1,29 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Christer Nygren <wiki@fronet.fro.se>
* @author Tor Härnqvist <tor.harnqvist@gmail.com>
* @author hib <hibratt@gmail.com>
*/
$lang['namespace'] = 'standard vy för blogg';
$lang['formposition'] = 'nya formulärets position ';
$lang['formposition_o_top'] = 'längst upp';
$lang['formposition_o_bottom'] = 'längst ned';
$lang['formposition_o_none'] = 'inget';
$lang['newentrytitle'] = 'rubrik för nytt inläggsformulär';
$lang['dateprefix'] = 'sätt datum före nytt inläggs-ID';
$lang['sortkey'] = 'sortera inlägg efter:';
$lang['sortkey_o_cdate'] = 'skapat datum';
$lang['sortkey_o_mdate'] = 'ändringsdatum';
$lang['sortkey_o_pagename'] = 'sidnamn';
$lang['sortkey_o_id'] = 'sid-ID';
$lang['sortkey_o_title'] = 'rubrik';
$lang['sortorder'] = 'sorteringsordning';
$lang['sortorder_o_ascending'] = 'stigande';
$lang['sortorder_o_descending'] = 'fallande';
$lang['excluded_pages'] = 'uteslut vissa sidor från blogglistan (regular expresstion krävs)';
$lang['showhistogram'] = 'Visa histogram när arkivet skapas';
$lang['max_months'] = 'Maximalt antal månader att visa i histogramet';
$lang['histogram_height'] = 'Histogramets höjd (i pixlar)';

View File

@ -0,0 +1,30 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author İlker R. Kapaç <irifat@gmail.com>
*/
$lang['blog'] = 'Günce';
$lang['older'] = 'Daha eski girdiler';
$lang['newer'] = 'Daha yeni girdiler';
$lang['newentry'] = 'Yeni günce oluştur:';
$lang['missing_includeplugin'] = 'Güncenin (blog) çalışması için Include eklentisi yüklü olmalıdır.';
$lang['missing_pagelistplugin'] = 'Arşiv listelerinin çalışması için Pagelist eklentisi yüklü olmalıdır.';
$lang['missing_tagplugin'] = 'Etiket tanımlayabilmek için Tag eklentisi yüklü olmalıdır.';
$lang['autoarchive'] = 'Her %2$s %3$s için %1$d Gönderi(ler)';
$lang['month_01'] = 'Ocak';
$lang['month_02'] = 'Şubat';
$lang['month_03'] = 'Mart';
$lang['month_04'] = 'Nisan';
$lang['month_05'] = 'Mayıs';
$lang['month_06'] = 'Haziran';
$lang['month_07'] = 'Temmuz';
$lang['month_08'] = 'Ağustos';
$lang['month_09'] = 'Eylül';
$lang['month_10'] = 'Ekim';
$lang['month_11'] = 'Kasım';
$lang['month_12'] = 'Aralık';
$lang['entries'] = 'girdiler';
$lang['entry'] = 'girdi';
$lang['archive_title'] = 'Günce tarihçesi';

View File

@ -0,0 +1,27 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author İlker R. Kapaç <irifat@gmail.com>
*/
$lang['namespace'] = 'günce için varsayılan isimalanı';
$lang['formposition'] = 'yeni girdi formunun konumu';
$lang['formposition_o_top'] = 'üst';
$lang['formposition_o_bottom'] = 'alt';
$lang['formposition_o_none'] = 'yok';
$lang['newentrytitle'] = 'yeni girdi formunun başlığı';
$lang['dateprefix'] = 'yeni girdi kimliklerinde ön ek olarak kullanılacak tarih';
$lang['sortkey'] = 'günce girdilerinin sıralanma şekli';
$lang['sortkey_o_cdate'] = 'oluşturma tarihi';
$lang['sortkey_o_mdate'] = 'değiştirilme tarihi';
$lang['sortkey_o_pagename'] = 'sayfa adı';
$lang['sortkey_o_id'] = 'sayfa kimliği';
$lang['sortkey_o_title'] = 'başlık';
$lang['sortorder'] = 'sıralama şekli';
$lang['sortorder_o_ascending'] = 'artan';
$lang['sortorder_o_descending'] = 'azalan';
$lang['excluded_pages'] = 'bazı sayfaları günce listesinin dışında tut (kurallı tanımlama gereklidir)';
$lang['showhistogram'] = 'Arşivi sunarken grafik göster';
$lang['max_months'] = 'Grafikte gösterilecek en fazla ay sayısı';
$lang['histogram_height'] = 'Grafiğin yüksekliği (piksel olarak)';

View File

@ -0,0 +1,36 @@
<?php
/**
* English language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
*/
// custom language strings for the plugin
$lang['blog'] = '博客';
$lang['older'] = '更早的文章';
$lang['newer'] = '更新的文章';
$lang['newentry'] = '新建文章:';
$lang['missing_includeplugin'] = '要使用博客功能必须安装 Include 插件。';
$lang['missing_pagelistplugin'] = '要使用存档列表功能必须安装 Pagelist 插件。';
$lang['missing_tagplugin'] = '要使用标签 refinements 必须安装 Tag 插件。';
$lang['autoarchive'] = '%3$s年%2$s有%1$d篇文章';
$lang['month_01'] = '一月';
$lang['month_02'] = '二月';
$lang['month_03'] = '三月';
$lang['month_04'] = '四月';
$lang['month_05'] = '五月';
$lang['month_06'] = '六月';
$lang['month_07'] = '七月';
$lang['month_08'] = '八月';
$lang['month_09'] = '九月';
$lang['month_10'] = '十月';
$lang['month_11'] = '十一月';
$lang['month_12'] = '十二月';
$lang['entries'] = '文章';
$lang['entry'] = '文章';
$lang['archive_title'] = '文章历史';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,38 @@
<?php
/**
* English language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
*/
// for the configuration manager
$lang['namespace'] = '博客默认命名空间';
$lang['formposition'] = '新文章的表单位置';
$lang['formposition_o_top'] = '顶上';
$lang['formposition_o_bottom'] = '底下';
$lang['formposition_o_none'] = '不显示';
$lang['newentrytitle'] = '新文章表单的标题';
$lang['dateprefix'] = '为新文章 ID 添加日期前缀';
$lang['sortkey'] = '文章排序按';
$lang['sortkey_o_cdate'] = '创建时间';
$lang['sortkey_o_mdate'] = '修改时间';
$lang['sortkey_o_pagename'] = '页面名称';
$lang['sortkey_o_id'] = '页面 ID';
$lang['sortkey_o_title'] = '标题';
$lang['sortorder'] = '排序顺序';
$lang['sortorder_o_ascending'] = '升序';
$lang['sortorder_o_descending'] = '降序';
$lang['excluded_pages'] = '从博客列表中排除特定的页面 (要求是正则表达式)';
$lang['showhistogram'] = '在存档页面上显示直方图';
$lang['max_months'] = '在直方图上最多显示月份数';
$lang['histogram_height'] = '直方图的高度 (单位像素)';
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,8 @@
# General Plugin Info
base blog
author Michael Hamann, Michael Klier, Gina Haeussge
email michael@content-space.de
date 2017-08-24
name Blog
desc Use DokuWiki as blogging tool. (previous authors: Esther Brunner)
url http://www.dokuwiki.org/plugin:blog

View File

@ -0,0 +1,3 @@
#blog__newentry_form {
display:none;
}

View File

@ -0,0 +1,40 @@
div.dokuwiki div.newentry_form {
text-align: center;
margin-bottom: 1em;
}
div.dokuwiki #blog__newentry_form input.edit {
width: 95%;
}
div.dokuwiki tr.draft,
div.dokuwiki div.draft {
opacity: 0.5;
}
div.dokuwiki div.autoarchive_selector ul {
list-style-type: none;
clear: left;
margin: 0 0.5em 0 0;
}
div.dokuwiki div.autoarchive_selector ul div.li {
float: left;
margin: 0 1em 0 0;
}
div.dokuwiki div.autoarchive_selector ul ul {
float: left;
clear: none;
}
div.dokuwiki div.autoarchive_selector ul ul div.li {
margin: 0;
}
img.blog_archive_bar {
background-color: __border__;
width: 5px;
border: 0 none;
vertical-align: bottom;
}

View File

@ -0,0 +1,251 @@
<?php
/**
* Archive Plugin: displays links to all wiki pages from a given month
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
*/
// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
/**
* All DokuWiki plugins to extend the parser/rendering mechanism
* need to inherit from this class
*/
class syntax_plugin_blog_archive extends DokuWiki_Syntax_Plugin {
function getType() { return 'substition'; }
function getPType() { return 'block'; }
function getSort() { return 309; }
function connectTo($mode) {
$this->Lexer->addSpecialPattern('\{\{archive>.*?\}\}', $mode, 'plugin_blog_archive');
}
function handle($match, $state, $pos, Doku_Handler $handler) {
global $ID;
$match = substr($match, 10, -2); // strip {{archive> from start and }} from end
list($match, $flags) = explode('&', $match, 2);
$flags = explode('&', $flags);
list($match, $refine) = explode(' ', $match, 2);
list($ns, $rest) = explode('?', $match, 2);
$author = NULL;
foreach($flags as $i=>$flag) {
if(preg_match('/(\w+)\s*=(.+)/', $flag, $temp) == 1) {
if ($temp[1] == 'author') {
$author = trim($temp[2]);
unset($flags[$i]);
}
}
}
if (!$rest) {
$rest = $ns;
$ns = '';
}
if ($ns == '') $ns = cleanID($this->getConf('namespace'));
elseif (($ns == '*') || ($ns == ':')) $ns = '';
elseif ($ns == '.') $ns = getNS($ID);
else $ns = cleanID($ns);
// daily archive
if (preg_match("/\d{4}-\d{2}-\d{2}/", $rest)) {
list($year, $month, $day) = explode('-', $rest, 3);
$start = mktime(0, 0, 0, $month, $day, $year);
$end = $start + 24*60*60;
// monthly archive
} elseif (preg_match("/\d{4}-\d{2}/", $rest)) {
list($year, $month) = explode('-', $rest, 2);
// calculate start and end times
$nextmonth = $month + 1;
$year2 = $year;
if ($nextmonth > 12) {
$nextmonth = 1;
$year2 = $year + 1;
}
$start = mktime(0, 0, 0, $month, 1, $year);
$end = mktime(0, 0, 0, $nextmonth, 1, $year2);
// a whole year
} elseif (preg_match("/\d{4}/", $rest)) {
$start = mktime(0, 0, 0, 1, 1, $rest);
$end = mktime(0, 0, 0, 1, 1, $rest + 1);
// all entries from that namespace up to now
} elseif ($rest == '*') {
$start = 0;
$end = PHP_INT_MAX;
// unknown format
} else {
return false;
}
return array($ns, $start, $end, $flags, $refine, $author);
}
function render($mode, Doku_Renderer $renderer, $data) {
list($ns, $start, $end, $flags, $refine, $author) = $data;
// get the blog entries for our namespace
/** @var helper_plugin_blog $my */
if ($my =& plugin_load('helper', 'blog')) $entries = $my->getBlog($ns, NULL, $author);
else return false;
// use tag refinements?
if ($refine) {
/** @var helper_plugin_tag $tag */
if (plugin_isdisabled('tag') || (!$tag = plugin_load('helper', 'tag'))) {
msg($this->getLang('missing_tagplugin'), -1);
} else {
$entries = $tag->tagRefine($entries, $refine);
}
}
if (!$entries) return true; // nothing to display
if ($mode == 'xhtml') {
if ($this->getConf('showhistogram')) {
$alt_list = $this->_build_alternative_list($start, $end, $entries);
// Add histogram and posts list
$renderer->doc .= '<div class="level1">';
$renderer->doc .= '<h1>' . $this->getLang('archive_title') . '</h1>';
$renderer->doc .= $alt_list;
$renderer->doc .= '</div>' . DOKU_LF;
} else {
// let Pagelist Plugin do the work for us
if (plugin_isdisabled('pagelist')
|| (!$pagelist =& plugin_load('helper', 'pagelist'))) {
msg($this->getLang('missing_pagelistplugin'), -1);
return false;
}
/** @var helper_plugin_pagelist $pagelist */
$pagelist->setFlags($flags);
$pagelist->startList();
foreach ($entries as $entry) {
// entry in the right date range?
if (($start > $entry['date']) || ($entry['date'] >= $end)) continue;
$pagelist->addPage($entry);
}
$renderer->doc .= $pagelist->finishList();
}
return true;
// for metadata renderer
} elseif ($mode == 'metadata') {
/** @var Doku_Renderer_metadata $renderer */
// use the blog plugin cache handler in order to ensure that the cache is expired whenever a page, comment
// or linkback is added
if (time() < $end) $renderer->meta['plugin_blog']['purgefile_cache'] = true;
foreach ($entries as $entry) {
// entry in the right date range?
if (($start > $entry['date']) || ($entry['date'] >= $end)) continue;
$renderer->meta['relation']['references'][$entry['id']] = true;
$renderer->meta['plugin_blog']['archive_pages'][] = $entry['id'];
}
return true;
}
return false;
}
// Generate alternative posts list
function _build_alternative_list($start, $end, $entries) {
$current_year ='';
$current_month ='';
$ul_open = false;
$histogram_count = array();
$histogram_higher = 0;
$list = '';
foreach ($entries as $entry) {
// entry in the right date range?
if (($start > $entry['date']) || ($entry['date'] >= $end)) continue;
if ($current_year != date('o',$entry['date'])) {
if ($ul_open) {
$list .= '</ul>' . DOKU_LF;
$ul_open = false;
}
$current_year = date('o',$entry['date']);
$list .= '<h2>' . $current_year . '</h2>' . DOKU_LF;
$current_month = '';
}
if ($current_month != date('m',$entry['date'])) {
if ($ul_open) {
$list .= '</ul>' . DOKU_LF;
}
$current_month = date('m',$entry['date']);
$list .= '<h3 id="m' . date('o-m',$entry['date']) . '">' . $this->getLang('month_' . $current_month) . '</h3><ul>' . DOKU_LF;
$ul_open = true;
}
$histogram_count[date('o-m',$entry['date'])] += 1;
if ($histogram_higher < $histogram_count[date('o-m',$entry['date'])]) {
$histogram_higher = $histogram_count[date('o-m',$entry['date'])];
}
$list .= '<li>' . date('d',$entry['date']) . ' - <a href="' . wl($entry['id']) . '" title="' . $entry['id'] . '">' . $entry['title'] . '</a></li>' . DOKU_LF;
}
$list .= '</ul>' . DOKU_LF;
$histogram = $this->_build_histogram($histogram_count, $histogram_higher);
return $histogram . $list;
}
// Generate histogram
function _build_histogram($histogram_count, $histogram_higher) {
if (empty($histogram_count)) return '';
$histogram = '<p>';
$max_months = $this->getConf('max_months');
$histogram_height = $this->getConf('histogram_height');
$histogram_count = array_reverse($histogram_count);
$month_count = 0;
foreach ($histogram_count as $key => $month_reference) {
// Check the max_months parameter
if ($month_count >= $max_months) {
break;
}
if ($month_reference > 0) {
// Height in "px"
$current_height = $histogram_height / $histogram_higher * $month_reference;
} else {
// Height in "px"
$current_height = 1;
}
// Generate the alt attribute
$alt = $key.': '.$month_reference.' ';
if ($month_reference > 1) {
$alt .= $this->getLang('entries');
} else {
$alt .= $this->getLang('entry');
}
$histogram .= '<a href="#m' . $key . '" title="' . $alt . '">';
$histogram .= '<img class="blog_archive_bar" alt="' . $alt . '" style="height: ' . $current_height . 'px;" src="'.DOKU_BASE.'lib/images/blank.gif"/></a>' . DOKU_LF;
$month_count += 1;
}
$histogram .= '</p>';
return $histogram;
}
}
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,163 @@
<?php
/**
* Dynamic Archive Plugin: dynamically displays
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
*/
// must be run within Dokuwiki
if(!defined('DOKU_INC')) die();
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
/**
* All DokuWiki plugins to extend the parser/rendering mechanism
* need to inherit from this class
*/
class syntax_plugin_blog_autoarchive extends DokuWiki_Syntax_Plugin {
function getType() { return 'substition'; }
function getPType() { return 'block'; }
function getSort() { return 309; }
function connectTo($mode) {
$this->Lexer->addSpecialPattern('\{\{autoarchive>.*?\}\}', $mode, 'plugin_blog_autoarchive');
}
function handle($match, $state, $pos, Doku_Handler $handler) {
global $ID;
$match = substr($match, 14, -2); // strip {{autoarchive> from start and }} from end
list($match, $flags) = explode('?', $match, 2);
$flags = explode('&', $flags);
list($ns, $refine) = explode(' ', $match, 2);
if ($ns == '') $ns = cleanID($this->getConf('namespace'));
elseif (($ns == '*') || ($ns == ':')) $ns = '';
elseif ($ns == '.') $ns = getNS($ID);
else $ns = cleanID($ns);
return array($ns, $flags, $refine, $pos);
}
function render($mode, Doku_Renderer $renderer, $data) {
list($ns, $flags, $refine, $pos) = $data;
if ($mode != 'xhtml') return false;
// no caching for dynamic content
$renderer->info['cache'] = false;
// get the blog entries for our namespace
if ($my =& plugin_load('helper', 'blog')) $entries = $my->getBlog($ns);
// use tag refinements?
if ($refine) {
if (plugin_isdisabled('tag') || (!$tag = plugin_load('helper', 'tag'))) {
msg($this->getLang('missing_tagplugin'), -1);
} else {
$entries = $tag->tagRefine($entries, $refine);
}
}
if (!$entries) return true; // nothing to display
// what to display
if(preg_match('/^\d\d\d\d-\d\d$/',$_REQUEST['blogarchive'])){
$now = $_REQUEST['blogarchive'];
}else{
$now = strftime('%Y-%m'); // current month
}
list($y,$m) = explode('-',$now);
// display the archive overview
$cnt = $this->_buildTimeChooser($renderer, $entries, $now);
$renderer->header($this->_posts($cnt,$m,$y),2,$pos);
$renderer->section_open(2);
// let Pagelist Plugin do the work for us
if (plugin_isdisabled('pagelist')
|| (!$pagelist =& plugin_load('helper', 'pagelist'))) {
msg($this->getLang('missing_pagelistplugin'), -1);
return false;
}
$pagelist->setFlags($flags);
$pagelist->startList();
foreach ($entries as $entry) {
$date = strftime('%Y-%m',$entry['date']);
// entry in the right date range?
if($date < $now || $date > $now) continue;
$pagelist->addPage($entry);
}
$renderer->doc .= $pagelist->finishList();
$renderer->section_close();
return true;
}
/**
* Creates a list of monthly archive links
*
* @param object reference $R - the XHTML renderer
* @param array reference $entries - all entries metadata
* @param string $now - currently selected month ('YYYY-MM')
* @return int - number of posts for selected month
*/
function _buildTimeChooser(&$R, &$entries, $now){
global $ID;
// get the months where posts exist
$months = array();
foreach($entries as $entry){
$y = date('Y',$entry['date']);
$m = date('m',$entry['date']);
if(isset($months[$y][$m])) {
$months[$y][$m]++;
}else{
$months[$y][$m] = 1;
}
}
$ret = 0;
// output
$R->doc .= '<div class="autoarchive_selector">';
foreach($months as $y => $mdata){
$R->listu_open();
$R->listitem_open(1);
$R->listcontent_open();
$R->doc .= $y.'<span>:</span>';
$R->listcontent_close();
ksort($mdata);
foreach($mdata as $m => $cnt){
$R->listu_open();
$R->listitem_open(2);
$R->listcontent_open();
if("$y-$m" == $now) $R->doc .= '<span class="cur">';
$R->doc .= '<a href="'.wl($ID,array('blogarchive'=>"$y-$m")).'" class="wikilink1" title="'.$this->_posts($cnt,$m,$y).'">';
$R->doc .= $this->getLang('month_'.$m);
$R->doc .= '</a>';
if("$y-$m" == $now){
$R->doc .= '</span>';
$ret = $cnt;
}
$R->listcontent_close();
$R->listitem_close();
$R->listu_close();
}
$R->listitem_close();
$R->listu_close();
}
$R->doc .='</div>';
return $ret;
}
function _posts($num,$month,$year){
return sprintf($this->getLang('autoarchive'),
$num, $this->getLang("month_$month"),
$year);
}
}
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,212 @@
<?php
/**
* Blog Plugin: displays a number of recent entries from the blog subnamespace
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
* @author Robert Rackl <wiki@doogie.de>
*/
// must be run within Dokuwiki
if (!defined('DOKU_INC')) die();
if (!defined('DOKU_LF')) define('DOKU_LF', "\n");
if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t");
if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
class syntax_plugin_blog_blog extends DokuWiki_Syntax_Plugin {
private $included_pages = array();
function getType() { return 'substition'; }
function getPType() { return 'block'; }
function getSort() { return 307; }
function connectTo($mode) {
$this->Lexer->addSpecialPattern('\{\{blog>.*?\}\}',$mode,'plugin_blog_blog');
}
function handle($match, $state, $pos, Doku_Handler $handler) {
global $ID;
$match = substr($match, 7, -2); // strip {{blog> from start and }} from end
list($match, $flags) = explode('&', $match, 2);
$flags = explode('&', $flags);
array_unshift($flags, 'link'); // always make the first header of a blog entry a permalink (unless nolink is set)
list($match, $refine) = explode(' ', $match, 2);
list($ns, $num) = explode('?', $match, 2);
if (!is_numeric($num)) {
if (is_numeric($ns)) {
$num = $ns;
$ns = '';
} else {
$num = 5;
}
}
if ($ns == '') $ns = cleanID($this->getConf('namespace'));
elseif (($ns == '*') || ($ns == ':')) $ns = '';
elseif ($ns == '.') $ns = getNS($ID);
else $ns = cleanID($ns);
return array($ns, $num, $flags, $refine);
}
function render($mode, Doku_Renderer $renderer, $data) {
list($ns, $num, $flags, $refine) = $data;
$first = $_REQUEST['first'];
if (!is_numeric($first)) $first = 0;
// get the blog entries for our namespace
/** @var helper_plugin_blog $my */
if ($my =& plugin_load('helper', 'blog')) $entries = $my->getBlog($ns);
else return false;
// use tag refinements?
if ($refine) {
/** @var helper_plugin_tag $tag */
if (plugin_isdisabled('tag') || (!$tag =& plugin_load('helper', 'tag'))) {
msg($this->getLang('missing_tagplugin'), -1);
} else {
$entries = $tag->tagRefine($entries, $refine);
}
}
// Normalise flags
$blog_flags = $my->getFlags($flags);
$formpos = $blog_flags['formpos'];
$newentrytitle = $blog_flags['newentrytitle'];
if ($mode == 'xhtml') {
// prevent caching to ensure the included pages are always fresh
$renderer->info['cache'] = false;
}
if (!$entries) {
if ((auth_quickaclcheck($ns.':*') >= AUTH_CREATE) && ($mode == 'xhtml')) {
if($formpos != 'none') $renderer->doc .= $this->_newEntryForm($ns, $newentrytitle);
}
return true; // nothing to display
}
// slice the needed chunk of pages
$more = ((count($entries) > ($first + $num)) ? true : false);
$entries = array_slice($entries, $first, $num);
// load the include helper plugin
/** @var helper_plugin_include $include */
if (plugin_isdisabled('include') || (!$include =& plugin_load('helper', 'include'))) {
msg($this->getLang('missing_includeplugin'), -1);
return false;
}
// current section level
$clevel = 0;
$perm_create = (auth_quickaclcheck($ns.':*') >= AUTH_CREATE);
$include_flags = $include->get_flags($flags);
if ($mode == 'xhtml') {
// show new entry form
if ($perm_create && $formpos == 'top') {
$renderer->doc .= $this->_newEntryForm($ns, $newentrytitle);
}
// get current section level
preg_match_all('|<div class="level(\d)">|i', $renderer->doc, $matches, PREG_SET_ORDER);
$n = count($matches)-1;
if ($n > -1) $clevel = $matches[$n][1];
// close current section
if ($clevel && !$include_flags['inline']) $renderer->doc .= '</div>'.DOKU_LF;
$renderer->doc .= '<div class="hfeed">'.DOKU_LF;
}
// now include the blog entries
foreach ($entries as $entry) {
if ($mode == 'xhtml' || $mode == 'code') {
if(auth_quickaclcheck($entry['id']) >= AUTH_READ) {
// prevent blog include loops
if(!$this->included_pages[$entry['id']]) {
$this->included_pages[$entry['id']] = true;
$renderer->nest($include->_get_instructions($entry['id'], '', 'page', $clevel, $include_flags));
$this->included_pages[$entry['id']] = false;
}
}
} elseif ($mode == 'metadata') {
/** @var Doku_Renderer_metadata $renderer */
$renderer->meta['relation']['haspart'][$entry['id']] = true;
}
}
if ($mode == 'xhtml') {
// resume the section
$renderer->doc .= '</div>'.DOKU_LF;
if ($clevel && !$include_flags['inline']) $renderer->doc .= '<div class="level'.$clevel.'">'.DOKU_LF;
// show older / newer entries links
$renderer->doc .= $this->_browseEntriesLinks($more, $first, $num);
// show new entry form
if ($perm_create && $formpos == 'bottom') {
$renderer->doc .= $this->_newEntryForm($ns, $newentrytitle);
}
}
return in_array($mode, array('xhtml', 'metadata', 'code'));
}
/* ---------- (X)HTML Output Functions ---------- */
/**
* Displays links to older newer entries of the blog namespace
*/
function _browseEntriesLinks($more, $first, $num) {
global $ID;
$ret = '';
$last = $first+$num;
if ($first > 0) {
$first -= $num;
if ($first < 0) $first = 0;
$ret .= '<p class="centeralign">'.DOKU_LF.'<a href="'.wl($ID, 'first='.$first).'"'.
' class="wikilink1">&lt;&lt; '.$this->getLang('newer').'</a>';
if ($more) $ret .= ' | ';
else $ret .= '</p>';
} else if ($more) {
$ret .= '<p class="centeralign">'.DOKU_LF;
}
if ($more) {
$ret .= '<a href="'.wl($ID, 'first='.$last).'" class="wikilink1">'.
$this->getLang('older').' &gt;&gt;</a>'.DOKU_LF.'</p>'.DOKU_LF;
}
return $ret;
}
/**
* Displays a form to enter the title of a new entry in the blog namespace
* and then open that page in the edit mode
*/
function _newEntryForm($ns, $newentrytitle) {
global $lang;
global $ID;
return '<div class="newentry_form">'.DOKU_LF.
'<form id="blog__newentry_form" method="post" action="'.script().'" accept-charset="'.$lang['encoding'].'">'.DOKU_LF.
DOKU_TAB.'<fieldset>'.DOKU_LF.
DOKU_TAB.DOKU_TAB.'<legend>'.hsc($newentrytitle).'</legend>'.DOKU_LF.
DOKU_TAB.DOKU_TAB.'<input type="hidden" name="id" value="'.$ID.'" />'.DOKU_LF.
DOKU_TAB.DOKU_TAB.'<input type="hidden" name="do" value="newentry" />'.DOKU_LF.
DOKU_TAB.DOKU_TAB.'<input type="hidden" name="ns" value="'.$ns.'" />'.DOKU_LF.
DOKU_TAB.DOKU_TAB.'<input class="edit" type="text" name="title" id="blog__newentry_title" size="40" tabindex="1" />'.DOKU_LF.
DOKU_TAB.DOKU_TAB.'<input class="button" type="submit" value="'.$lang['btn_create'].'" tabindex="2" />'.DOKU_LF.
DOKU_TAB.'</fieldset>'.DOKU_LF.
'</form>'.DOKU_LF.
'</div>'.DOKU_LF;
}
}
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,39 @@
<?php
/**
* Blog Plugin, draft component: marks the current page as draft
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Esther Brunner <wikidesign@gmail.com>
*/
// must be run within Dokuwiki
if (!defined('DOKU_INC')) die();
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
class syntax_plugin_blog_draft extends DokuWiki_Syntax_Plugin {
function getType() { return 'substition'; }
function getSort() { return 99; }
function connectTo($mode) {
$this->Lexer->addSpecialPattern('~~DRAFT~~', $mode, 'plugin_blog_draft');
}
function handle($match, $state, $pos, Doku_Handler $handler) {
return true;
}
/**
* The only thing this plugin component does is to set the metadata 'type' to 'draft'
*/
function render($mode, Doku_Renderer $renderer, $data) {
if ($mode == 'xthml') {
return true; // don't output anything
} elseif ($mode == 'metadata') {
$renderer->meta['type'] = 'draft';
}
}
}
// vim:ts=4:sw=4:et:enc=utf-8: