Add page move plusin

This commit is contained in:
Andy Williams 2017-10-20 16:23:12 +01:00
parent e872d726cb
commit 4fc514aa25
27 changed files with 920 additions and 0 deletions

View File

@ -0,0 +1,414 @@
<?php
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Danny Lin <danny.0838@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');
require_once(DOKU_INC.'inc/fulltext.php');
class action_plugin_editx extends DokuWiki_Action_Plugin {
/**
* register the eventhandlers
*/
function register(Doku_Event_Handler $contr) {
$contr->register_hook('TPL_ACT_RENDER', 'AFTER', $this, '_append_to_edit', array());
$contr->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, '_handle_act', array());
$contr->register_hook('TPL_ACT_UNKNOWN', 'BEFORE', $this, '_handle_tpl_act', array());
}
/**
* main hooks
*/
function _append_to_edit(&$event, $param) {
global $ID;
if ($event->data != 'edit') return;
if (!$this->_auth_check_all($ID)) return;
$link = sprintf('<a href="%s" class="action editx" rel="nofollow">%s</a>', wl($ID,'do=editx'), $this->getLang('pagemanagement'));
$intro = $this->locale_xhtml('intro');
$intro = str_replace( '@LINK@', $link, $intro );
print $intro;
}
function _handle_act(&$event, $param) {
if($event->data != 'editx') return;
$event->preventDefault();
}
function _handle_tpl_act(&$event, $param) {
if($event->data != 'editx') return;
$event->preventDefault();
switch ($_REQUEST['work']) {
case 'rename':
$opts['oldpage'] = cleanID($_REQUEST['oldpage']);
$opts['newpage'] = cleanID($_REQUEST['newpage']);
$opts['summary'] = $_REQUEST['summary'];
$opts['rp_nr'] = $_REQUEST['rp_nr'];
$opts['confirm'] = $_REQUEST['rp_confirm'];
$this->_rename_page($opts);
break;
case 'delete':
$opts['oldpage'] = cleanID($_REQUEST['oldpage']);
$opts['summary'] = $_REQUEST['summary'];
$opts['purge'] = $_REQUEST['dp_purge'];
$opts['confirm'] = $_REQUEST['dp_confirm'];
$this->_delete_page($opts);
break;
default:
$this->_print_form();
break;
}
}
/**
* helper functions
*/
function _auth_check_list($list) {
global $conf;
global $USERINFO;
if(!$conf['useacl']) return true; //no ACL - then no checks
$allowed = explode(',',$list);
$allowed = array_map('trim', $allowed);
$allowed = array_unique($allowed);
$allowed = array_filter($allowed);
if(!count($allowed)) return true; //no restrictions
$user = $_SERVER['REMOTE_USER'];
$groups = (array) $USERINFO['grps'];
if(in_array($user,$allowed)) return true; //user explicitly mentioned
//check group memberships
foreach($groups as $group){
if(in_array('@'.$group,$allowed)) return true;
}
//still here? no access!
return false;
}
function _auth_check_all($id) {
return $this->_auth_can_rename($id) ||
$this->_auth_can_delete($id);
}
function _auth_can_rename($id) {
static $cache = null;
if (!$cache[$id]) {
$cache[$id] = auth_quickaclcheck($id)>=AUTH_EDIT &&
$this->_auth_check_list($this->getConf('user_rename'));
}
return $cache[$id];
}
function _auth_can_rename_nr($id) {
static $cache = null;
if (!$cache[$id]) {
$cache[$id] = auth_quickaclcheck($id)>=AUTH_DELETE &&
$this->_auth_check_list($this->getConf('user_rename_nr'));
}
return $cache[$id];
}
function _auth_can_delete($id) {
static $cache = null;
if (!$cache[$id]) {
$cache[$id] = auth_quickaclcheck($id)>=AUTH_DELETE &&
$this->_auth_check_list($this->getConf('user_delete'));
}
return $cache[$id];
}
function _locate_filepairs(&$opts, $dir, $regex ){
global $conf;
$oldpath = $conf[$dir].'/'.str_replace(':','/',$opts['oldns']);
$newpath = $conf[$dir].'/'.str_replace(':','/',$opts['newns']);
if (!$opts['oldfiles']) $opts['oldfiles'] = array();
if (!$opts['newfiles']) $opts['newfiles'] = array();
$dh = @opendir($oldpath);
if($dh) {
while(($file = readdir($dh)) !== false){
if ($file{0}=='.') continue;
$oldfile = $oldpath.$file;
if (is_file($oldfile) && preg_match($regex,$file)){
$opts['oldfiles'][] = $oldfile;
if ($opts['move']) {
$newfilebase = str_replace($opts['oldname'], $opts['newname'], $file);
$newfile = $newpath.$newfilebase;
if (@file_exists($newfile)) {
$this->errors[] = sprintf( $this->getLang('rp_msg_file_conflict'), '<a href="'. wl($opts['newpage']) . '">'.$opts['newpage'].'</a>', $newfilebase );
return false;
}
$opts['newfiles'][] = $newfile;
}
}
}
closedir($dh);
return true;
}
return false;
}
function _apply_moves(&$opts) {
foreach ($opts['oldfiles'] as $i => $oldfile) {
$newfile = $opts['newfiles'][$i];
$newdir = dirname($newfile);
if (!io_mkdir_p($newdir)) continue;
io_rename($oldfile, $newfile);
}
}
function _apply_deletes(&$opts) {
foreach ($opts['oldfiles'] as $oldfile) {
unlink($oldfile);
}
}
function _FN($id) {
$id = str_replace(':','/',$id);
$id = utf8_encodeFN($id);
return $id;
}
function _custom_delete_page($id, $summary) {
global $ID, $INFO, $conf;
// mark as nonexist to prevent indexerWebBug
if ($id==$ID) $INFO['exists'] = 0;
// delete page, meta and attic
$file = wikiFN($id);
$old = @filemtime($file); // from page
if (file_exists($file)) unlink($file);
$opts['oldname'] = $this->_FN(noNS($id));
$opts['oldns'] = $this->_FN(getNS($id));
if ($opts['oldns']) $opts['oldns'] .= '/';
$this->_locate_filepairs( $opts, 'metadir', '/^'.$opts['oldname'].'\.(?!mlist)\w*?$/' );
$this->_locate_filepairs( $opts, 'olddir', '/^'.$opts['oldname'].'\.\d{10}\.txt(\.gz|\.bz2)?$/' );
$this->_apply_deletes($opts);
io_sweepNS($id, 'datadir');
io_sweepNS($id, 'metadir');
io_sweepNS($id, 'olddir');
// send notify mails
notify($id,'admin',$old,$summary);
notify($id,'subscribers',$old,$summary);
// update the purgefile (timestamp of the last time anything within the wiki was changed)
io_saveFile($conf['cachedir'].'/purgefile',time());
// if useheading is enabled, purge the cache of all linking pages
if(useHeading('content')){
$pages = ft_backlinks($id);
foreach ($pages as $page) {
$cache = new cache_renderer($page, wikiFN($page), 'xhtml');
$cache->removeCache();
}
}
}
/**
* main functions
*/
function _rename_page(&$opts) {
// check confirmation
if (!$opts['confirm']) {
$this->errors[] = $this->getLang('rp_msg_unconfirmed');
}
// check old page
if (!$opts['oldpage']) {
$this->errors[] = $this->getLang('rp_msg_old_empty');
} else if (!page_exists($opts['oldpage'])) {
$this->errors[] = sprintf( $this->getLang('rp_msg_old_noexist'), $opts['oldpage'] );
} else if (!$this->_auth_can_rename($opts['oldpage'])) {
$this->errors[] = sprintf( $this->getLang('rp_msg_auth'), $opts['oldpage'] );
} else if (checklock($opts['oldpage'])) {
$this->errors[] = sprintf( $this->getLang('rp_msg_locked'), $opts['oldpage'] );
}
// check noredirect
if ($opts['rp_nr'] && !$this->_auth_can_rename_nr($opts['oldpage']))
$this->errors[] = $this->getLang('rp_msg_auth_nr');
// check new page
if (!$opts['newpage']) {
$this->errors[] = $this->getLang('rp_msg_new_empty');
} else if (page_exists($opts['newpage'])) {
$this->errors[] = sprintf( $this->getLang('rp_msg_new_exist'), '<a href="'. wl($opts['newpage']) . '">'.$opts['newpage'].'</a>' );
} else if (!$this->_auth_can_rename($opts['newpage'])) {
$this->errors[] = sprintf( $this->getLang('rp_msg_auth'), $opts['newpage'] );
} else if (checklock($opts['newpage'])) {
$this->errors[] = sprintf( $this->getLang('rp_msg_locked'), $opts['newpage'] );
}
// try to locate moves
if (!$this->errors) {
$opts['move'] = true;
$opts['oldname'] = $this->_FN(noNS($opts['oldpage']));
$opts['newname'] = $this->_FN(noNS($opts['newpage']));
$opts['oldns'] = $this->_FN(getNS($opts['oldpage']));
$opts['newns'] = $this->_FN(getNS($opts['newpage']));
if ($opts['oldns']) $opts['oldns'] .= '/';
if ($opts['newns']) $opts['newns'] .= '/';
$this->_locate_filepairs( $opts, 'metadir', '/^'.$opts['oldname'].'\.(?!mlist|meta|indexed)\w*?$/' );
$this->_locate_filepairs( $opts, 'olddir', '/^'.$opts['oldname'].'\.\d{10}\.txt(\.gz|\.bz2)?$/' );
}
// if no error do rename
if (!$this->errors) {
// move meta and attic
$this->_apply_moves($opts);
// save to newpage
$text = rawWiki($opts['oldpage']);
if ($opts['summary'])
$summary = sprintf( $this->getLang('rp_newsummaryx'), $opts['oldpage'], $opts['newpage'], $opts['summary'] );
else
$summary = sprintf( $this->getLang('rp_newsummary'), $opts['oldpage'], $opts['newpage'] );
saveWikiText($opts['newpage'],$text,$summary);
// purge or recreate old page
$summary = $opts['summary'] ?
sprintf( $this->getLang('rp_oldsummaryx'), $opts['oldpage'], $opts['newpage'], $opts['summary'] ) :
sprintf( $this->getLang('rp_oldsummary'), $opts['oldpage'], $opts['newpage'] );
if ($opts['rp_nr']) {
$this->_custom_delete_page( $opts['oldpage'], $summary );
// write change log afterwards, or it would be deleted
addLogEntry( null, $opts['oldpage'], DOKU_CHANGE_TYPE_DELETE, $summary ); // also writes to global changes
unlink(metaFN($opts['oldpage'],'.changes')); // purge page changes
}
else {
$text = $this->getConf('redirecttext');
if (!$text) $text = $this->getLang('redirecttext');
$text = str_replace( '@ID@', $opts['newpage'], $text );
@unlink(wikiFN($opts['oldpage'])); // remove old page file so no additional history
saveWikiText($opts['oldpage'],$text,$summary);
}
}
// show messages
if ($this->errors) {
foreach ($this->errors as $error) msg( $error, -1 );
}
else {
$msg = sprintf( $this->getLang('rp_msg_success'), $opts['oldpage'], '<a href="'. wl($opts['newpage']) . '">'.$opts['newpage'].'</a>' );
msg( $msg, 1 );
}
// display form and table
$data = array( rp_newpage => $opts['newpage'], rp_summary => $opts['summary'], rp_nr => $opts['rp_nr'] );
$this->_print_form($data);
}
function _delete_page(&$opts) {
// check confirm
if (!$opts['confirm']) {
$this->errors[] = $this->getLang('dp_msg_unconfirmed');
}
// check old page
if (!$opts['oldpage']) {
$this->errors[] = $this->getLang('dp_msg_old_empty');
} else if (!$this->_auth_can_delete($opts['oldpage'])) {
$this->errors[] = sprintf( $this->getLang('dp_msg_auth'), $opts['oldpage'] );
}
// if no error do delete
if (!$this->errors) {
$summary = $opts['summary'] ?
sprintf( $this->getLang('dp_oldsummaryx'), $opts['summary'] ) :
$this->getLang('dp_oldsummary');
$this->_custom_delete_page( $opts['oldpage'], $summary );
// write change log afterwards, or it would be deleted
addLogEntry( null, $opts['oldpage'], DOKU_CHANGE_TYPE_DELETE, $summary ); // also writes to global changes
if ($opts['purge']) unlink(metaFN($opts['oldpage'],'.changes')); // purge page changes
}
// show messages
if ($this->errors) {
foreach ($this->errors as $error) msg( $error, -1 );
}
else {
$msg = sprintf( $this->getLang('dp_msg_success'), $opts['oldpage'] );
msg( $msg, 1 );
}
// display form and table
$data = array( dp_purge => $opts['purge'], dp_summary => $opts['summary'] );
$this->_print_form($data);
}
function _print_form($data=null) {
global $ID, $lang;
$chk = ' checked="checked"';
?>
<h1><?php echo sprintf( $this->getLang('title'), $ID); ?></h1>
<div id="config__manager">
<?php
if ($this->_auth_can_rename($ID)) {
?>
<form action="<?php echo wl($ID); ?>" method="post">
<fieldset>
<legend><?php echo $this->getLang('rp_title'); ?></legend>
<input type="hidden" name="do" value="editx" />
<input type="hidden" name="work" value="rename" />
<input type="hidden" name="oldpage" value="<?php echo $ID; ?>" />
<table class="inline">
<tr>
<td class="label"><?php echo $this->getLang('rp_newpage'); ?></td>
<td class="value"><input class="edit" type="input" name="newpage" value="<?php echo $data['rp_newpage']; ?>" /></td>
</tr>
<tr>
<td class="label"><?php echo $this->getLang('rp_summary'); ?></td>
<td class="value"><input class="edit" type="input" name="summary" value="<?php echo $data['rp_summary']; ?>" /></td>
</tr>
<?php
if ($this->_auth_can_rename_nr($ID)) {
?>
<tr>
<td class="label"><?php echo $this->getLang('rp_nr'); ?></td>
<td class="value"><input type="checkbox" name="rp_nr" value="1"<?php if ($data['rp_nr']) echo $chk; ?> /></td>
</tr>
<?php
}
?>
<tr>
<td class="label"><?php echo $this->getLang('rp_confirm'); ?></td>
<td class="value"><input type="checkbox" name="rp_confirm" value="1" /></td>
</tr>
</table>
<p>
<input type="submit" class="button" value="<?php echo $lang['btn_save']; ?>" />
<input type="reset" class="button" value="<?php echo $lang['btn_reset']; ?>" />
</p>
</fieldset>
</form>
<?php
}
if ($this->_auth_can_delete($ID)) {
?>
<form action="<?php echo wl($ID); ?>" method="post">
<fieldset>
<legend><?php echo $this->getLang('dp_title'); ?></legend>
<input type="hidden" name="do" value="editx" />
<input type="hidden" name="work" value="delete" />
<input type="hidden" name="oldpage" value="<?php echo $ID; ?>" />
<table class="inline">
<tr>
<td class="label"><?php echo $this->getLang('dp_summary'); ?></td>
<td class="value"><input class="edit" type="input" name="summary" value="<?php echo $data['dp_summary']; ?>" /></td>
</tr>
<tr>
<td class="label"><?php echo $this->getLang('dp_purge'); ?></td>
<td class="value"><input type="checkbox" name="dp_purge" value="1"<?php if ($data['dp_purge']) echo $chk; ?> /></td>
</tr>
<tr>
<td class="label"><?php echo $this->getLang('dp_confirm'); ?></td>
<td class="value"><input type="checkbox" name="dp_confirm" value="1" /></td>
</tr>
</table>
<p>
<input type="submit" class="button" value="<?php echo $lang['btn_save']; ?>" />
<input type="reset" class="button" value="<?php echo $lang['btn_reset']; ?>" />
</p>
</fieldset>
</form>
<?php
}
?>
</div>
<?php
}
}
// vim:ts=4:sw=4:et:enc=utf-8:

View File

@ -0,0 +1,9 @@
<?php
/**
* Options for editx plugin
*/
$conf['user_rename'] = '';
$conf['user_rename_nr'] = '';
$conf['user_delete'] = '';
$conf['redirecttext'] = '';

View File

@ -0,0 +1,8 @@
<?php
/**
* Metadata for configuration manager plugin
*/
$meta['user_rename'] = array('string');
$meta['user_rename_nr'] = array('string');
$meta['user_delete'] = array('string');
$meta['redirecttext'] = array('string');

View File

@ -0,0 +1,3 @@
====== Seitenverwaltung ======
Wenn Sie diese Seite umbenennen oder verschieben wollen klicken sie hier: @LINK@.

View File

@ -0,0 +1,44 @@
<?php
/**
* German language file
* by vehtoh.de
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['title'] = 'Seitenverwaltung für: %s';
$lang['redirecttext'] = 'Diese Seite wurde [[:@ID@|hierhin]] verschoben.';
// rename page = rp
$lang['rp_title'] = 'Seitenumbenennung';
$lang['rp_newpage'] = 'Neuer Name';
$lang['rp_summary'] = 'Grund für die Umbenennung';
$lang['rp_nr'] = 'Keine Weiterleitung';
$lang['rp_oldsummary'] = '(Löschen) %s umbenannt in %s';
$lang['rp_oldsummaryx'] = '(Löschen) %s umbenannt in %s (%s)';
$lang['rp_newsummary'] = '%s umbenannt in %s';
$lang['rp_newsummaryx'] = '%s umbenann in %s (%s)';
$lang['rp_msg_old_empty'] = 'Sie müssen den alten Seitennamen angeben.';
$lang['rp_msg_old_noexist'] = 'Die alte Seite %s existiert nicht.';
$lang['rp_msg_new_empty'] = 'Sie müssen einen neuen Seitennamen angeben.';
$lang['rp_msg_new_exist'] = 'Die neue Seite %S existiert bereits.';
$lang['rp_msg_locked'] = 'Die Seite %s ist gesperrt.';
$lang['rp_msg_auth'] = 'Sie haben nicht die erforderlichen Berechtigungen um die Seite %s zu bearbeiten.';
$lang['rp_msg_auth_nr'] = 'Sie sind nicht berechtigt die Umleitung zu deaktivieren.';
#$lang['rp_msg_file_conflict'] = 'Es ist ein Konflikt mit der neuen Seite %s aufgetreten.';
$lang['rp_msg_success'] = 'Die Seite %s wurde in %s umbenannt.';
// delete page = dp
$lang['dp_title'] = 'Seitenlöschung';
$lang['dp_purge'] = 'Verlauf aufräumen';
$lang['dp_oldsummary'] = 'gelöscht';
$lang['dp_oldsummaryx'] = 'gelöscht (%s)';
$lang['dp_msg_old_empty'] = 'Sie müssen den alten Seitennamen angeben.';
$lang['dp_msg_auth'] = 'Sie haben nicht die erforderlichen Berechtigungen um die Seite %s zu löschen.';
$lang['dp_msg_auth_new'] = 'Sie haben nicht die erforderlichen Berechtigungen um %s zu speichern.';
$lang['dp_msg_success'] = 'Die Seite %s wurde erfolgreich gelöscht.';
//Setup VIM: ex: et ts=2 :

View File

@ -0,0 +1,12 @@
<?php
/**
* German language file
*
* @license: GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author: vehtoh <kontakt[at]vehtoh[dot]de>
*/
$lang['user_rename'] = 'Gruppen/Benutzer, die Seiten umbennen dürfen (Komma getrennt auflisten). Leer, für alle Benutzer.';
$lang['user_rename_nr'] = 'Gruppen/Benutzer, die Seiten umbennen dürfen, ohne Berechtigung für eine Weiterleitung (Komma getrennt auflisten). Leer, für alle Benutzer.';
$lang['user_delete'] = 'Gruppen oder Benutzer, die Seiten löschen dürfen (Komma getrennt auflisten). Leer, für alle Benutzer.';
$lang['redirecttext'] = 'Text, der nach einer Seitenverschiebung auf dem ursprünglichen Platz angezeigt werden soll. Leer für Standardtext.';

View File

@ -0,0 +1,3 @@
====== Page Management ======
Use @LINK@ to rename or delete this page.

View File

@ -0,0 +1,50 @@
<?php
/**
* English language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['title'] = '%s Management';
$lang['redirecttext'] = 'This page is redirected to [[:@ID@]].';
$lang['pagemanagement'] = 'page management';
// rename page = rp
$lang['rp_title'] = 'Page Rename';
$lang['rp_newpage'] = 'New name';
$lang['rp_summary'] = 'Reason';
$lang['rp_nr'] = 'Don\'t leave redirection';
$lang['rp_confirm'] = 'Confirm page rename';
$lang['rp_oldsummary'] = '(Delete) %s renamed to %s';
$lang['rp_oldsummaryx'] = '(Delete) %s renamed to %s (%s)';
$lang['rp_newsummary'] = '%s renamed to %s';
$lang['rp_newsummaryx'] = '%s renamed to %s (%s)';
$lang['rp_msg_unconfirmed'] = 'The confirm box must be checked to rename a page.';
$lang['rp_msg_old_empty'] = 'The old pagename cannot be empty.';
$lang['rp_msg_old_noexist'] = 'The old page %s does not exist.';
$lang['rp_msg_new_empty'] = 'The new pagename cannot be empty.';
$lang['rp_msg_new_exist'] = 'The new page %s already exists.';
$lang['rp_msg_locked'] = 'The page %s is locked now.';
$lang['rp_msg_auth'] = 'You are not authorized to edit page %s.';
$lang['rp_msg_auth_nr'] = 'You are not authorized to suppress redirect.';
$lang['rp_msg_file_conflict'] = 'The new page %s has a conflicting file %s.';
$lang['rp_msg_success'] = 'Page %s successfully renamed to %s.';
// delete page = dp
$lang['dp_title'] = 'Page Deletion';
$lang['dp_purge'] = 'Don\'t create delete history';
$lang['dp_confirm'] = 'Confirm page delete';
$lang['dp_summary'] = 'Reason';
$lang['dp_oldsummary'] = 'Deleted';
$lang['dp_oldsummaryx'] = 'Deleted (%s)';
$lang['dp_msg_unconfirmed'] = 'The confirm box must be checked to delete a page.';
$lang['dp_msg_old_empty'] = 'The old pagename cannot be empty.';
$lang['dp_msg_auth'] = 'You are not authorized to delete page %s.';
$lang['dp_msg_auth_new'] = 'You are not authorized to write %s.';
$lang['dp_msg_success'] = 'Page %s successfully deleted.';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,11 @@
<?php
/**
* English language file
*
* @license: GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['user_rename'] = 'Groups or users that are allowed to rename a page (comma seperated). Leave blank to allow all.';
$lang['user_rename_nr'] = 'Groups or users that are allowed to rename a page without creating redirect (comma seperated). Leave blank to allow all.';
$lang['user_delete'] = 'Groups or users that are allowed to delete a page (comma seperated). Leave blank to allow all.';
$lang['redirecttext'] = 'Text left after moving a page. (blank for default text)';

View File

@ -0,0 +1,3 @@
====== Page Management ======
If you want to do a page management such as renaming, go here: @LINK@.

View File

@ -0,0 +1,45 @@
<?php
/**
* English language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['title'] = '%s Manager';
$lang['redirecttext'] = 'Esta página es redireccionada a [[:@ID@]].';
// rename page = rp
$lang['rp_title'] = 'Renombrar página';
$lang['rp_newpage'] = 'Nombre nuevo';
$lang['rp_summary'] = 'Motivo';
$lang['rp_nr'] = 'No redireccionar';
$lang['rp_oldsummary'] = '(Borrar) %s renombrar a %s';
$lang['rp_oldsummaryx'] = '(Borrar) %s renombrar a %s (%s)';
$lang['rp_newsummary'] = '%s renombrar a %s';
$lang['rp_newsummaryx'] = '%s renombrar a %s (%s)';
$lang['rp_msg_old_empty'] = 'La página antigüa no puede estar vacía.';
$lang['rp_msg_old_noexist'] = 'La página antigüa %s no existe.';
$lang['rp_msg_new_empty'] = 'El nombre de la página no puede estar vacía.';
$lang['rp_msg_new_exist'] = 'La nueva página %s ya existe.';
$lang['rp_msg_locked'] = 'La página %s está en estos momentos bloqueada.';
$lang['rp_msg_auth'] = 'No estas autorizado para editar la página %s.';
$lang['rp_msg_auth_nr'] = 'No estas autorizado para suprimir el enlace.';
#$lang['rp_msg_file_conflict'] = 'Ha ocurrido un error con el fichero de la página %s.';
$lang['rp_msg_success'] = 'La página %s se ha renombrado correctamente %s.';
// delete page = dp
$lang['dp_title'] = 'Borrar página';
$lang['dp_purge'] = 'No borrar historial';
$lang['dp_summary'] = 'Motivo';
$lang['dp_oldsummary'] = 'Eliminada';
$lang['dp_oldsummaryx'] = 'Eliminada (%s)';
$lang['dp_msg_old_empty'] = 'El nombre de la página antigüa no puede estar vacía.';
$lang['dp_msg_auth'] = 'No estas autorizado para eliminar páginas %s.';
$lang['dp_msg_auth_new'] = 'No estas autorizado para escribir %s.';
$lang['dp_msg_success'] = 'Página %s eliminada correctamente.';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,11 @@
<?php
/**
* English language file
*
* @license: GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['user_rename'] = 'Grupo o usuarios que pueden renombrar una página (comma seperated). Dejar en blanco para permitir todos.';
$lang['user_rename_nr'] = 'Grupos o usuario que pueden renombrar la página sin crear enlaces de redireccionamientos (separados por comas). Dejar en blanco para permitir todos.';
$lang['user_delete'] = 'Grupos o usuarios que pueden eliminar una página (separados por comas). Dejar en blanco para permitir todos.';
$lang['redirecttext'] = 'Dejar el texto a la izquierda después de mover la página (dejar en blanco para poner el texto por defecto)';

View File

@ -0,0 +1,3 @@
====== Upravljanje stranicama ======
Koristi @LINK@ za preimenovanje ili brisanje ove stranice.

View File

@ -0,0 +1,50 @@
<?php
/**
* Croatian language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['title'] = '%s upravljanje';
$lang['redirecttext'] = 'Ova stranica je preusmjerena na [[:@ID@]].';
$lang['pagemanagement'] = 'upravljanje stranicom';
// rename page = rp
$lang['rp_title'] = 'Preimenovanje stranice';
$lang['rp_newpage'] = 'Novo ime';
$lang['rp_summary'] = 'Razlog';
$lang['rp_nr'] = 'Ne ostavi preusmjerenje';
$lang['rp_confirm'] = 'Potvrdi preimenovanje stranice';
$lang['rp_oldsummary'] = '(Obriši) %s preimenovan u %s';
$lang['rp_oldsummaryx'] = '(Obriši) %s preimenovan u %s (%s)';
$lang['rp_newsummary'] = '%s preimenovan u %s';
$lang['rp_newsummaryx'] = '%s preimenovan u %s (%s)';
$lang['rp_msg_unconfirmed'] = 'Uključi kvačicu potvrde da bi preimenovali stranicu.';
$lang['rp_msg_old_empty'] = 'Staro ime stranice nemože biti prazno.';
$lang['rp_msg_old_noexist'] = 'Stara stranica %s ne postoji.';
$lang['rp_msg_new_empty'] = 'Novo ime stranice nemože biti prazno.';
$lang['rp_msg_new_exist'] = 'Nova stranica %s već postoji.';
$lang['rp_msg_locked'] = 'Stranica %s je trenutno zaključana.';
$lang['rp_msg_auth'] = 'Niste autorizirani da uređujete stranicu %s.';
$lang['rp_msg_auth_nr'] = 'Niste autorizirani da You are not authorized to suzbijete redirekciju.';
$lang['rp_msg_file_conflict'] = 'Nova stranica %s ima konfliktnu datoteku %s.';
$lang['rp_msg_success'] = 'Stranica %s uspješno preimenovana u %s.';
// delete page = dp
$lang['dp_title'] = 'Brisanje stranice';
$lang['dp_purge'] = 'Ne stvaraj povijest brisanja';
$lang['dp_confirm'] = 'Potvrdi brisanje stranice';
$lang['dp_summary'] = 'Razlog';
$lang['dp_oldsummary'] = 'Obrisano';
$lang['dp_oldsummaryx'] = 'Obrisano (%s)';
$lang['dp_msg_unconfirmed'] = 'Uključi kvačicu potvrde da bi obrisali stranicu.';
$lang['dp_msg_old_empty'] = 'Staro ime stranice nemože biti prazno.';
$lang['dp_msg_auth'] = 'Niste autorizirani da obrišete stranicu %s.';
$lang['dp_msg_auth_new'] = 'Niste autorizirani da pišete u %s.';
$lang['dp_msg_success'] = 'Stranica %s uspješno obrisana.';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,11 @@
<?php
/**
* Croatian language file
*
* @license: GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['user_rename'] = 'Grupe ili korisnici kojima je dopušteno preimenovanje stranica (zarezom odvojena lista). Ostavi prazno za sve.';
$lang['user_rename_nr'] = 'Grupe ili korisnici kojima je dopušteno preimenovanje stranica bez kreiranja redirekcije (zarezom odvojena lista). Ostavi prazno za sve.';
$lang['user_delete'] = 'Grupe ili korisnici kojima je dopušteno brisanje stranica (zarezom odvojena lista). Ostavi prazno za sve.';
$lang['redirecttext'] = 'Tekst koji se postavlja nakon pomicanja stranice. (ostavi prazno za podrazumjevani tekst)';

View File

@ -0,0 +1,3 @@
====== Paginabeheer ======
Gebruik @LINK@ om deze pagina te verplaatsen of verwijderen.

View File

@ -0,0 +1,51 @@
<?php
/**
* Dutch language file by Theo Klein
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['title'] = '%s Beheer';
$lang['redirecttext'] = 'Deze pagina is verplaatst naar [[:@ID@]].';
$lang['pagemanagement'] = 'paginabeheer';
// rename page = rp
$lang['rp_title'] = 'Pagina hernoemen';
$lang['rp_newpage'] = 'Nieuwe naam';
$lang['rp_summary'] = 'Reden';
$lang['rp_nr'] = 'Laat geen verwijzing achter op de oude pagina.';
$lang['rp_confirm'] = 'Verplaatsing bevestigen';
$lang['rp_oldsummary'] = '(Verwijderen) %s verplaatst naar %s';
$lang['rp_oldsummaryx'] = '(Verwijderen) %s verplaatst naar %s (%s)';
$lang['rp_newsummary'] = '%s verplaatst naar %s';
$lang['rp_newsummaryx'] = '%s verplaatst naar %s (%s)';
$lang['rp_msg_unconfirmed'] = 'De optie "Verplaatsing bevestigen" moet aangevinkt zijn om een pagina te verplaatsen.';
$lang['rp_msg_old_empty'] = 'De oude paginanaam kan niet leeg zijn.';
$lang['rp_msg_old_noexist'] = 'De oude pagina %s bestaat niet.';
$lang['rp_msg_new_empty'] = 'De nieuwe paginanaam kan niet leeg zijn.';
$lang['rp_msg_new_exist'] = 'De nieuwe pagina %s bestaat reeds.';
$lang['rp_msg_new_hx_exist']= 'De nieuwe pagina %s heeft reeds een historie.';
$lang['rp_msg_locked'] = 'Pagina %s is nu vergrendeld.';
$lang['rp_msg_auth'] = 'U bent niet bevoegd om de volgende pagina te wijzigen: %s.';
$lang['rp_msg_auth_nr'] = 'U bent niet bevoegd om de verwijzing weg te laten.';
#$lang['rp_msg_file_conflict'] = 'Er is een conflict ontstaan met het bestand %s van de nieuwe pagina. <a href="%s">Bekijk de eerdere revisies van deze pagina</a> of gebruik <a href="%s">Paginabeheer</a> om de historie van deze pagina te verwijderen.';
$lang['rp_msg_success'] = 'Pagina %s succesvol verplaatst naar %s.';
// delete page = dp
$lang['dp_title'] = 'Pagina verwijderen';
$lang['dp_purge'] = 'Pagina verwijderen inclusief historie';
$lang['dp_confirm'] = 'Verwijderen bevestigen';
$lang['dp_summary'] = 'Reden';
$lang['dp_oldsummary'] = 'Verwijderd';
$lang['dp_oldsummaryx'] = '(%s) verwijderd';
$lang['dp_msg_unconfirmed'] = 'De optie "Verwijderen bevestigen" moet aangevinkt zijn om een pagina te verwijderen.';
$lang['dp_msg_old_empty'] = 'De oude paginanaam kan niet leeg zijn.';
$lang['dp_msg_auth'] = 'U bent niet bevoegd om de volgende pagina te verwijderen: %s.';
$lang['dp_msg_auth_new'] = 'U bent niet bevoegd om de volgende pagina te wijzigen: %s.';
$lang['dp_msg_success'] = 'Pagina %s succesvol verwijderd.';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,3 @@
====== Zarządzanie stroną ======
Jeżeli chcesz zarządzać tą stroną, np. zmienić jej nazwę, przejdź tutaj: @LINK@.

View File

@ -0,0 +1,43 @@
<?php
/**
* Polish language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['title'] = 'Zarządzanie: %s';
$lang['redirecttext'] = 'Ta strona została przeniesiona do [[:@ID@]].';
// rename page = rp
$lang['rp_title'] = 'Zmiana nazwy strony';
$lang['rp_newpage'] = 'Nowa nazwa';
$lang['rp_summary'] = 'Powód zmiany';
$lang['rp_nr'] = 'Nie przekierowywuj z obecnej nazwy';
$lang['rp_oldsummary'] = '(Usunięto) %s zmieniono na %s';
$lang['rp_oldsummaryx'] = '(Usunięto) %s zmieniono na %s (%s)';
$lang['rp_newsummary'] = '%s zmieniono na %s';
$lang['rp_newsummaryx'] = '%s zmieniono na %s (%s)';
$lang['rp_msg_old_empty'] = 'Obecna nazwa strony nie może być pusta.';
$lang['rp_msg_old_noexist'] = 'Obecnie nie istnieje strona pod nazwą %s.';
$lang['rp_msg_new_empty'] = 'Nowa nazwa strony nie może być pusta.';
$lang['rp_msg_new_exist'] = 'Strona o proponowanej nazwie %s już istnieje.';
$lang['rp_msg_locked'] = 'Strona %s jest w tej chwili zablokowana.';
$lang['rp_msg_auth'] = 'Nie masz uprawnień do zmiany %s.';
$lang['rp_msg_auth_nr'] = 'Nie masz uprawnień, aby usunąć przekierowanie.';
#$lang['rp_msg_file_conflict'] = 'Wystąpił błąd związany z nową stroną %s.';
$lang['rp_msg_success'] = 'Pomyślnie zmnieniono nazwę strony %s do %s.';
// delete page = dp
$lang['dp_title'] = 'Usuwanie strony';
$lang['dp_purge'] = 'Usuń również historię zmian';
$lang['dp_summary'] = 'Powód usunięcia';
$lang['dp_oldsummary'] = 'Usunięto';
$lang['dp_oldsummaryx'] = 'Usunięto (%s)';
$lang['dp_msg_old_empty'] = 'Obecna nazwa strony nie może być pusta.';
$lang['dp_msg_auth'] = 'Nie masz uprawnień do usunięcia strony %s.';
$lang['dp_msg_auth_new'] = 'Nie masz uprawnień do zmiany %s.'; //'write'? jak to ładnie przetłumaczyć? chyba 'zmiana' będzie ok
$lang['dp_msg_success'] = 'Strona %s została usunięta.';

View File

@ -0,0 +1,11 @@
<?php
/**
* Polish language file
*
* @license: GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['user_rename'] = 'Grupy lub użytkownicy, którzy mogą zmieniać nazwę strony (oddzieleni przecinkiem). Pozostaw puste, aby pozwolić wszyskim.';
$lang['user_rename_nr'] = 'Grupy lub użytkownicy, którzy mogą zmieniać nazwę strony bez tworzenia przekierowania (oddzieleni przecinkiem). Pozostaw puste, aby pozwolić wszyskim.';
$lang['user_delete'] = 'Grupy lub użytkownicy, którzy mogą usuwać strony (oddzieleni przecinkiem). Pozostaw puste, aby pozwolić wszyskim.';
$lang['redirecttext'] = 'Tekst pozostawiony po przeniesieniu strony. Pozostaw puste dla domyślnego tekstu.';

View File

@ -0,0 +1,3 @@
====== Управление страницой ======
Если вы хотите переименовать или удалить страницу, перейдите по ссылке: @LINK@.

View File

@ -0,0 +1,45 @@
<?php
/**
* Russian language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['title'] = 'Управление %s';
$lang['redirecttext'] = 'Данная страница перемещена сюда [[:@ID@]].';
// rename page = rp
$lang['rp_title'] = 'Переименовать страницу';
$lang['rp_newpage'] = 'Новое имя';
$lang['rp_summary'] = 'Причина';
$lang['rp_nr'] = 'Не устанавливать переадресацию';
$lang['rp_oldsummary'] = '(Удалить) %s переименовано в %s';
$lang['rp_oldsummaryx'] = '(Удалить) %s переименовано в %s (%s)';
$lang['rp_newsummary'] = '%s переименовано в %s';
$lang['rp_newsummaryx'] = '%s переименовано в %s (%s)';
$lang['rp_msg_old_empty'] = 'Имя старой страницы не может быть пустым.';
$lang['rp_msg_old_noexist'] = 'Старая страница %s не существует.';
$lang['rp_msg_new_empty'] = 'Имя новой страницы не может быть пустым.';
$lang['rp_msg_new_exist'] = 'Страница с именем %s уже существует.';
$lang['rp_msg_locked'] = 'Страница %s сейчас заблокированна.';
$lang['rp_msg_auth'] = 'У вас нет прав на редактирование данной страницы %s.';
$lang['rp_msg_auth_nr'] = 'У вас нет прав на отключение переадресации.';
#$lang['rp_msg_file_conflict'] = 'Конфликт с файлом новой страницы %s.';
$lang['rp_msg_success'] = 'Страница %s успешно переименована в %s.';
// delete page = dp
$lang['dp_title'] = 'Удалить страницу';
$lang['dp_purge'] = 'Не удалять историю';
$lang['dp_summary'] = 'Причина';
$lang['dp_oldsummary'] = 'Удалено';
$lang['dp_oldsummaryx'] = 'Удалено (%s)';
$lang['dp_msg_old_empty'] = 'Имя старой страницы не может быть пустым.';
$lang['dp_msg_auth'] = 'У вас нет прав на удаление данной страницы %s.';
$lang['dp_msg_auth_new'] = 'У вас нет прав на запись %s.';
$lang['dp_msg_success'] = 'Страница %s успешно удалена.';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,13 @@
<?php
/**
* Russian language file
*
* @license: GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* Russian translation by hatifnatt
*/
$lang['user_rename'] = 'Пользователи или группы которым разрешено переименовывать страницы (разделяйте запятой). Оставьте пустым чтоб разрешить всем.';
$lang['user_rename_nr'] = 'Пользователи или группы которым разрешено переименовывать страницы с отключением переадресации (разделяйте запятой). Оставьте пустым чтоб разрешить всем.';
$lang['user_delete'] = 'Пользователи или группы которым разрешено удаление страниц. Оставьте пустым чтоб разрешить всем.';
$lang['redirecttext'] = 'Задайте текст переадресации, (оставьте пустым для стандартного текста).';

View File

@ -0,0 +1,3 @@
====== 頁面管理 ======
用@LINK@更名或刪除頁面。

View File

@ -0,0 +1,50 @@
<?php
/**
* Traditional Chinese language file
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['title'] = '%s 管理';
$lang['redirecttext'] = '本頁已重定向至 [[:@ID@]]。';
$lang['pagemanagement'] = '頁面管理';
// rename page = rp
$lang['rp_title'] = '頁面更名';
$lang['rp_newpage'] = '新頁名';
$lang['rp_summary'] = '原因';
$lang['rp_nr'] = '不建立重定向';
$lang['rp_confirm'] = '確認更名頁面';
$lang['rp_oldsummary'] = '(刪除) %s 更名為 %s';
$lang['rp_oldsummaryx'] = '(刪除) %s 更名為 %s (%s)';
$lang['rp_newsummary'] = '%s 更名為 %s';
$lang['rp_newsummaryx'] = '%s 更名為 %s (%s)';
$lang['rp_msg_unconfirmed'] = '必須勾選確認才能執行移動。';
$lang['rp_msg_old_empty'] = '舊頁名不可為空。';
$lang['rp_msg_old_noexist'] = '舊頁面 %s 不存在。';
$lang['rp_msg_new_empty'] = '新頁名不可為空。';
$lang['rp_msg_new_exist'] = '新頁面 %s 已存在。';
$lang['rp_msg_locked'] = '頁面 %s 目前正被鎖定。';
$lang['rp_msg_auth'] = '您沒有編輯頁面 %s 的權限。';
$lang['rp_msg_auth_nr'] = '您沒有不建立重定向的權限。';
$lang['rp_msg_file_conflict'] = '新頁面 %s 存在衝突的檔案 %s。';
$lang['rp_msg_success'] = '頁面 %s 已成功更名為 %s。';
// delete page = dp
$lang['dp_title'] = '頁面刪除';
$lang['dp_purge'] = '不建立刪除歷史';
$lang['dp_confirm'] = '確認刪除頁面';
$lang['dp_summary'] = '原因';
$lang['dp_oldsummary'] = '刪除';
$lang['dp_oldsummaryx'] = '刪除 (%s)';
$lang['dp_msg_unconfirmed'] = '必須勾選確認才能執行刪除。';
$lang['dp_msg_old_empty'] = '舊頁名不可為空。';
$lang['dp_msg_auth'] = '您沒有刪除頁面 %s 的權限。';
$lang['dp_msg_auth_new'] = '您沒有寫入頁面 %s 的權限。';
$lang['dp_msg_success'] = '已成功刪除頁面 %s。';
//Setup VIM: ex: et ts=2 enc=utf-8 :

View File

@ -0,0 +1,11 @@
<?php
/**
* Traditional Chinese language file
*
* @license: GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
$lang['user_rename'] = '允許更改頁面名稱的群組或使用者 (逗號分隔),空白代表全部允許。';
$lang['user_rename_nr'] = '允許更改頁面名稱不留下重定向的群組或使用者 (逗號分隔),空白代表全部允許。';
$lang['user_delete'] = '允許刪除頁面的群組或使用者 (逗號分隔),空白代表全部允許。';
$lang['redirecttext'] = '移動頁面後留下的訊息 (留白使用預設訊息)';

View File

@ -0,0 +1,7 @@
base editx
author Danny Lin
email danny0838@gmail.com
date 2014-09-19
name editx
desc Extended edit functions such as renaming or deleting a page
url http://www.dokuwiki.org/plugin:editx