From 9d2e1be699d573eebda922cf67f030d3d2aa462d Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 16 Feb 2013 18:29:20 +0100 Subject: introduced http_status() for sending HTTP status code FS#1698 It seems, some servers require a special Status: header for sending the HTTP status code from PHP (F)CGI to the server. This patch introduces a new function (adopted from CodeIgniter) for simplifying the status handling. --- inc/actions.php | 6 ++-- inc/auth.php | 2 +- inc/httputils.php | 71 ++++++++++++++++++++++++++++++++++++++++++++++++ inc/parser/code.php | 2 +- lib/exe/detail.php | 2 +- lib/exe/fetch.php | 4 +-- lib/exe/mediamanager.php | 4 +-- lib/exe/xmlrpc.php | 4 +-- 8 files changed, 83 insertions(+), 12 deletions(-) diff --git a/inc/actions.php b/inc/actions.php index e0ad908b7..da3414eb2 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -172,7 +172,7 @@ function act_dispatch(){ $evt->advise_after(); // Make sure plugs can handle 'denied' if($conf['send404'] && $ACT == 'denied') { - header('HTTP/1.0 403 Forbidden'); + http_status(403); } unset($evt); @@ -658,7 +658,7 @@ function act_sitemap($act) { global $conf; if ($conf['sitemap'] < 1 || !is_numeric($conf['sitemap'])) { - header("HTTP/1.0 404 Not Found"); + http_status(404); print "Sitemap generation is disabled."; exit; } @@ -690,7 +690,7 @@ function act_sitemap($act) { exit; } - header("HTTP/1.0 500 Internal Server Error"); + http_status(500); print "Could not read the sitemap file - bad permissions?"; exit; } diff --git a/inc/auth.php b/inc/auth.php index 7f427bd8d..9566a2615 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -267,7 +267,7 @@ function auth_login($user, $pass, $sticky = false, $silent = false) { function auth_validateToken($token) { if(!$token || $token != $_SESSION[DOKU_COOKIE]['auth']['token']) { // bad token - header("HTTP/1.0 401 Unauthorized"); + http_status(401); print 'Invalid auth token - maybe the session timed out'; unset($_SESSION[DOKU_COOKIE]['auth']['token']); // no second chance exit; diff --git a/inc/httputils.php b/inc/httputils.php index 4ba287eb5..d3f3cdde2 100644 --- a/inc/httputils.php +++ b/inc/httputils.php @@ -250,6 +250,11 @@ function http_cached_finish($file, $content) { } } +/** + * Fetches raw, unparsed POST data + * + * @return string + */ function http_get_raw_post_data() { static $postData = null; if ($postData === null) { @@ -257,3 +262,69 @@ function http_get_raw_post_data() { } return $postData; } + +/** + * Set the HTTP response status and takes care of the used PHP SAPI + * + * Inspired by CodeIgniter's set_status_header function + * + * @param int $code + * @param string $text + */ +function http_status($code = 200, $text = '') { + static $stati = array( + 200 => 'OK', + 201 => 'Created', + 202 => 'Accepted', + 203 => 'Non-Authoritative Information', + 204 => 'No Content', + 205 => 'Reset Content', + 206 => 'Partial Content', + + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Found', + 304 => 'Not Modified', + 305 => 'Use Proxy', + 307 => 'Temporary Redirect', + + 400 => 'Bad Request', + 401 => 'Unauthorized', + 403 => 'Forbidden', + 404 => 'Not Found', + 405 => 'Method Not Allowed', + 406 => 'Not Acceptable', + 407 => 'Proxy Authentication Required', + 408 => 'Request Timeout', + 409 => 'Conflict', + 410 => 'Gone', + 411 => 'Length Required', + 412 => 'Precondition Failed', + 413 => 'Request Entity Too Large', + 414 => 'Request-URI Too Long', + 415 => 'Unsupported Media Type', + 416 => 'Requested Range Not Satisfiable', + 417 => 'Expectation Failed', + + 500 => 'Internal Server Error', + 501 => 'Not Implemented', + 502 => 'Bad Gateway', + 503 => 'Service Unavailable', + 504 => 'Gateway Timeout', + 505 => 'HTTP Version Not Supported' + ); + + if($text == '' && isset($stati[$code])) { + $text = $stati[$code]; + } + + $server_protocol = (isset($_SERVER['SERVER_PROTOCOL'])) ? $_SERVER['SERVER_PROTOCOL'] : false; + + if(substr(php_sapi_name(), 0, 3) == 'cgi') { + header("Status: {$code} {$text}", true); + } elseif($server_protocol == 'HTTP/1.1' OR $server_protocol == 'HTTP/1.0') { + header($server_protocol." {$code} {$text}", true, $code); + } else { + header("HTTP/1.1 {$code} {$text}", true, $code); + } +} diff --git a/inc/parser/code.php b/inc/parser/code.php index 21fb0dc3c..43d8d703f 100644 --- a/inc/parser/code.php +++ b/inc/parser/code.php @@ -43,7 +43,7 @@ class Doku_Renderer_code extends Doku_Renderer { * This should never be reached, if it is send a 404 */ function document_end() { - header("HTTP/1.0 404 Not Found"); + http_status(404); echo '404 - Not found'; exit; } diff --git a/lib/exe/detail.php b/lib/exe/detail.php index e597db3a2..db635c016 100644 --- a/lib/exe/detail.php +++ b/lib/exe/detail.php @@ -31,7 +31,7 @@ if($AUTH >= AUTH_READ){ $SRC = mediaFN($IMG); if(!@file_exists($SRC)){ //doesn't exist! - header("HTTP/1.0 404 File not Found"); + http_status(404); $ERROR = 'File not found'; } }else{ diff --git a/lib/exe/fetch.php b/lib/exe/fetch.php index 73e74af40..9bac4d272 100644 --- a/lib/exe/fetch.php +++ b/lib/exe/fetch.php @@ -58,7 +58,7 @@ if(!defined('SIMPLE_TEST')) { } // send any non 200 status if($data['status'] != 200) { - header('HTTP/1.0 '.$data['status'].' '.$data['statusmessage']); + http_status($data['status'], $data['statusmessage']); } // die on errors if($data['status'] > 203) { @@ -137,7 +137,7 @@ function sendFile($file, $mime, $dl, $cache) { if($fp) { http_rangeRequest($fp, filesize($file), $mime); } else { - header("HTTP/1.0 500 Internal Server Error"); + http_status(500); print "Could not read $file - bad permissions?"; } } diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index 04dd178cc..e0a90a291 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -36,7 +36,7 @@ // do not display the manager if user does not have read access if($AUTH < AUTH_READ && !$fullscreen) { - header('HTTP/1.0 403 Forbidden'); + http_status(403); die($lang['accessdenied']); } @@ -48,7 +48,7 @@ $_FILES['upload'] =& $_FILES['Filedata']; $JUMPTO = media_upload($NS,$AUTH); if($JUMPTO == false){ - header("HTTP/1.0 400 Bad Request"); + http_status(400); echo 'Upload failed'; } echo 'ok'; diff --git a/lib/exe/xmlrpc.php b/lib/exe/xmlrpc.php index 5e6c197d0..c09daa17c 100644 --- a/lib/exe/xmlrpc.php +++ b/lib/exe/xmlrpc.php @@ -29,10 +29,10 @@ class dokuwiki_xmlrpc_server extends IXR_Server { return $result; } catch (RemoteAccessDeniedException $e) { if (!isset($_SERVER['REMOTE_USER'])) { - header('HTTP/1.1 401 Unauthorized'); + http_status(401); return new IXR_Error(-32603, "server error. not authorized to call method $methodname"); } else { - header('HTTP/1.1 403 Forbidden'); + http_status(403); return new IXR_Error(-32604, "server error. forbidden to call the method $methodname"); } } catch (RemoteException $e) { -- cgit v1.2.3 From 994211890f92c1678536b003354146fbb44b8f2f Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 16 Feb 2013 18:38:11 +0100 Subject: disabled JavaScript compatibility layer this disables the JavaScript compatibility layer which let pre-jQuery migration plugins run with their old code. This will break plugins using outdated JavaScript. These plugins have to be updated according to https://www.dokuwiki.org/devel:jqueryfaq As a courtesy to users, the compatibility.js is not deleted, yet. Undoing this single patch can be used as a temporary workaround. --- lib/exe/js.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/exe/js.php b/lib/exe/js.php index 41d3e735c..4ff48133e 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -62,7 +62,7 @@ function js_out(){ DOKU_INC.'lib/scripts/locktimer.js', DOKU_INC.'lib/scripts/linkwiz.js', DOKU_INC.'lib/scripts/media.js', - DOKU_INC.'lib/scripts/compatibility.js', +# deprecated DOKU_INC.'lib/scripts/compatibility.js', # disabled for FS#1958 DOKU_INC.'lib/scripts/hotkeys.js', DOKU_INC.'lib/scripts/behaviour.js', DOKU_INC.'lib/scripts/page.js', -- cgit v1.2.3 From 80faa902000c2bcf4602999e24a6016e1fafb997 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sat, 16 Feb 2013 16:58:31 +0000 Subject: corrected some inline documentation in template's js --- lib/tpl/dokuwiki/script.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/tpl/dokuwiki/script.js b/lib/tpl/dokuwiki/script.js index 3ed8dbabe..375500f78 100644 --- a/lib/tpl/dokuwiki/script.js +++ b/lib/tpl/dokuwiki/script.js @@ -1,11 +1,10 @@ /** * We handle several device classes based on browser width. - * see http://twitter.github.com/bootstrap/scaffolding.html#responsive * - * - desktop: 980+ - * - mobile: < 980 - * - tablet 481 - 979 (ostensibly for tablets in portrait mode) - * - phone <= 480 + * - desktop: > __tablet_width__ (as set in style.ini) + * - mobile: + * - tablet <= __tablet_width__ + * - phone <= __phone_width__ */ var device_class = ''; // not yet known var device_classes = 'desktop mobile tablet phone'; -- cgit v1.2.3 From 25c4afb8d352fa02fddec2253b301c13d0cd3fb2 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sat, 16 Feb 2013 17:02:05 +0000 Subject: FS#2111, improve security check --- inc/html.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/inc/html.php b/inc/html.php index ddaed2261..c2723bceb 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1636,11 +1636,16 @@ function html_admin(){ } // data security check - // @todo: could be checked and only displayed if $conf['savedir'] is under the web root - echo ' - Your data directory seems to be protected properly.'; + // simple check if the 'savedir' is relative and accessible when appended to DOKU_URL + // it verifies either: + // 'savedir' has been moved elsewhere, or + // has protection to prevent the webserver serving files from it + if (substr($conf['savedir'],0,2) == './'){ + echo ' + Your data directory seems to be protected properly.'; + } print p_locale_xhtml('admin'); -- cgit v1.2.3 From 71f791fff9c3912682e5e0c8866e695a0749aa82 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 16 Feb 2013 19:08:57 +0100 Subject: removed deprecated ACL wrapper object --- lib/plugins/acl/script.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lib/plugins/acl/script.js b/lib/plugins/acl/script.js index 0ba91cdc9..c3763dc8d 100644 --- a/lib/plugins/acl/script.js +++ b/lib/plugins/acl/script.js @@ -117,11 +117,3 @@ var dw_acl = { }; jQuery(dw_acl.init); - -var acl = { - init: DEPRECATED_WRAP(dw_acl.init, dw_acl), - userselhandler: DEPRECATED_WRAP(dw_acl.userselhandler, dw_acl), - loadinfo: DEPRECATED_WRAP(dw_acl.loadinfo, dw_acl), - parseatt: DEPRECATED_WRAP(dw_acl.parseatt, dw_acl), - treehandler: DEPRECATED_WRAP(dw_acl.treehandler, dw_acl) -}; -- cgit v1.2.3 From dd90013a5a9ce204250f4d94072e089f617e09db Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sat, 16 Feb 2013 18:06:47 +0100 Subject: Media manager: don't create empty namespaces FS#2642 Previously the media manager created an empty namespace whenever you opened a non-existing namespace with upload permissions. Now the current namespace is only displayed in the tree but not actually created. --- inc/media.php | 26 ++++++++++++++++++++++---- lib/exe/mediamanager.php | 3 --- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/inc/media.php b/inc/media.php index bd80db577..db1ca0d57 100644 --- a/inc/media.php +++ b/inc/media.php @@ -1686,18 +1686,36 @@ function media_nstree($ns){ $ns = cleanID($ns); if(empty($ns)){ global $ID; - $ns = dirname(str_replace(':','/',$ID)); - if($ns == '.') $ns =''; + $ns = (string)getNS($ID); } - $ns = utf8_encodeFN(str_replace(':','/',$ns)); + + $ns_dir = utf8_encodeFN(str_replace(':','/',$ns)); $data = array(); - search($data,$conf['mediadir'],'search_index',array('ns' => $ns, 'nofiles' => true)); + search($data,$conf['mediadir'],'search_index',array('ns' => $ns_dir, 'nofiles' => true)); // wrap a list with the root level around the other namespaces array_unshift($data, array('level' => 0, 'id' => '', 'open' =>'true', 'label' => '['.$lang['mediaroot'].']')); + // insert the current ns into the hierarchy if it isn't already part of it + $ns_parts = explode(':', $ns); + $tmp_ns = ''; + $pos = 0; + foreach ($ns_parts as $level => $part) { + if ($tmp_ns) $tmp_ns .= ':'.$part; + else $tmp_ns = $part; + + // find the namespace parts or insert them + while ($data[$pos]['id'] != $tmp_ns) { + if ($pos >= count($data) || ($data[$pos]['level'] <= $level+1 && strnatcmp(utf8_encodeFN($data[$pos]['id']), utf8_encodeFN($tmp_ns)) > 0)) { + array_splice($data, $pos, 0, array(array('level' => $level+1, 'id' => $tmp_ns, 'open' => 'true'))); + break; + } + ++$pos; + } + } + echo html_buildlist($data,'idx','media_nstree_item','media_nstree_li'); } diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php index e0a90a291..53d438321 100644 --- a/lib/exe/mediamanager.php +++ b/lib/exe/mediamanager.php @@ -40,9 +40,6 @@ die($lang['accessdenied']); } - // create the given namespace (just for beautification) - if($AUTH >= AUTH_UPLOAD) { io_createNamespace("$NS:xxx", 'media'); } - // handle flash upload if(isset($_FILES['Filedata'])){ $_FILES['upload'] =& $_FILES['Filedata']; -- cgit v1.2.3 From b480dd4215925c5e9aaecaa5c086346b009692b4 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sat, 16 Feb 2013 18:10:00 +0100 Subject: Abort old quick search requests when starting new ones This prevents old requests that need longer than the newer ones (likely, as if you type more less results are returned) from overriding the results list. --- lib/scripts/qsearch.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/scripts/qsearch.js b/lib/scripts/qsearch.js index 0c3609ada..e5cc73b49 100644 --- a/lib/scripts/qsearch.js +++ b/lib/scripts/qsearch.js @@ -12,6 +12,7 @@ var dw_qsearch = { $inObj: null, $outObj: null, timer: null, + curRequest: null, /** * initialize the quick search @@ -35,12 +36,16 @@ var dw_qsearch = { // attach eventhandler to search field do_qsearch = function () { + // abort any previous request + if (dw_qsearch.curRequest != null) { + dw_qsearch.curRequest.abort(); + } var value = dw_qsearch.$inObj.val(); if (value === '') { dw_qsearch.clear_results(); return; } - jQuery.post( + dw_qsearch.curRequest = jQuery.post( DOKU_BASE + 'lib/exe/ajax.php', { call: 'qsearch', @@ -84,6 +89,8 @@ var dw_qsearch = { onCompletion: function(data) { var max, $links, too_big; + dw_qsearch.curRequest = null; + if (data === '') { dw_qsearch.clear_results(); return; -- cgit v1.2.3 From 87bba75a4043643511c89cb89ef9cf11e59fbf2c Mon Sep 17 00:00:00 2001 From: Tom N Harris Date: Sat, 16 Feb 2013 12:53:24 -0500 Subject: Add django compatible hashes to the config options. --- lib/plugins/config/settings/config.metadata.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php index 663eab9dd..bdbc4311f 100644 --- a/lib/plugins/config/settings/config.metadata.php +++ b/lib/plugins/config/settings/config.metadata.php @@ -127,7 +127,7 @@ $meta['_authentication'] = array('fieldset'); $meta['useacl'] = array('onoff'); $meta['autopasswd'] = array('onoff'); $meta['authtype'] = array('authtype'); -$meta['passcrypt'] = array('multichoice','_choices' => array('smd5','md5','apr1','sha1','ssha','lsmd5','crypt','mysql','my411','kmd5','pmd5','hmd5','mediawiki','bcrypt','sha512')); +$meta['passcrypt'] = array('multichoice','_choices' => array('smd5','md5','apr1','sha1','ssha','lsmd5','crypt','mysql','my411','kmd5','pmd5','hmd5','mediawiki','bcrypt','djangomd5','djangosha1','sha512')); $meta['defaultgroup']= array('string'); $meta['superuser'] = array('string'); $meta['manager'] = array('string'); -- cgit v1.2.3 From 5398a7b652eabdd0a20f154b97b60f89cad72f8c Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 16 Feb 2013 19:57:01 +0100 Subject: fixed language file placeholders FS#2682 --- inc/lang/af/lang.php | 2 +- inc/lang/ar/lang.php | 4 +--- inc/lang/az/lang.php | 2 +- inc/lang/bg/lang.php | 2 +- inc/lang/ca-valencia/lang.php | 2 +- inc/lang/ca/lang.php | 2 +- inc/lang/cs/lang.php | 2 +- inc/lang/da/lang.php | 2 +- inc/lang/el/lang.php | 6 ++---- inc/lang/eo/lang.php | 2 +- inc/lang/es/lang.php | 4 +--- inc/lang/et/lang.php | 2 +- inc/lang/eu/lang.php | 2 +- inc/lang/fa/lang.php | 4 +--- inc/lang/fi/lang.php | 2 +- inc/lang/fo/lang.php | 2 +- inc/lang/gl/lang.php | 4 +--- inc/lang/he/lang.php | 3 +-- inc/lang/hi/lang.php | 1 - inc/lang/hr/lang.php | 2 +- inc/lang/hu/lang.php | 2 +- inc/lang/ia/lang.php | 4 +--- inc/lang/id/lang.php | 2 +- inc/lang/is/lang.php | 2 +- inc/lang/it/lang.php | 4 +--- inc/lang/ja/lang.php | 2 +- inc/lang/km/lang.php | 2 -- inc/lang/ku/lang.php | 2 +- inc/lang/la/lang.php | 4 +--- inc/lang/lb/lang.php | 2 +- inc/lang/lt/lang.php | 2 +- inc/lang/lv/lang.php | 2 +- inc/lang/mg/lang.php | 2 +- inc/lang/mk/lang.php | 4 +--- inc/lang/mr/lang.php | 1 - inc/lang/ms/lang.php | 2 +- inc/lang/ne/lang.php | 1 - inc/lang/nl/lang.php | 2 +- inc/lang/no/lang.php | 5 ++--- inc/lang/pl/lang.php | 4 +--- inc/lang/pt/lang.php | 2 +- inc/lang/ro/lang.php | 2 +- inc/lang/ru/lang.php | 4 +--- inc/lang/sl/lang.php | 2 +- inc/lang/sq/lang.php | 4 +--- inc/lang/sr/lang.php | 2 +- inc/lang/th/lang.php | 2 +- inc/lang/tr/lang.php | 2 +- inc/lang/uk/lang.php | 2 +- inc/lang/vi/lang.php | 2 +- inc/lang/zh-tw/lang.php | 2 +- lib/plugins/plugin/lang/ar/lang.php | 2 +- lib/plugins/plugin/lang/hi/lang.php | 1 - lib/plugins/plugin/lang/pl/lang.php | 2 +- lib/plugins/plugin/lang/zh-tw/lang.php | 2 +- lib/plugins/usermanager/lang/ca-valencia/lang.php | 2 +- 56 files changed, 53 insertions(+), 85 deletions(-) diff --git a/inc/lang/af/lang.php b/inc/lang/af/lang.php index 6de891a63..ab8e5177b 100644 --- a/inc/lang/af/lang.php +++ b/inc/lang/af/lang.php @@ -55,7 +55,7 @@ $lang['current'] = 'huidige'; $lang['line'] = 'Streak'; $lang['youarehere'] = 'Jy is hier'; $lang['by'] = 'by'; -$lang['restored'] = 'Het terug gegaan na vroeëre weergawe'; +$lang['restored'] = 'Het terug gegaan na vroeëre weergawe (%s)'; $lang['summary'] = 'Voorskou'; $lang['qb_bold'] = 'Vetdruk'; $lang['qb_italic'] = 'Skuinsdruk'; diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index 4928b3dbd..5b72e0a51 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -181,7 +181,7 @@ $lang['lastmod'] = 'آخر تعديل'; $lang['by'] = 'بواسطة'; $lang['deleted'] = 'حذفت'; $lang['created'] = 'اُنشئت'; -$lang['restored'] = 'استعيدت نسخة قديمة'; +$lang['restored'] = 'استعيدت نسخة قديمة (%s)'; $lang['external_edit'] = 'تحرير خارجي'; $lang['summary'] = 'ملخص التحرير'; $lang['noflash'] = 'تحتاج إلىملحق فلاش أدوبي لعرض هذا المحتوى.'; @@ -258,8 +258,6 @@ $lang['subscr_m_unsubscribe'] = 'ألغ الاشتراك'; $lang['subscr_m_subscribe'] = 'اشترك'; $lang['subscr_m_receive'] = 'استقبال'; $lang['subscr_style_every'] = 'بريدا على كل تغيير'; -$lang['subscr_style_digest'] = 'بريد ملخص عن تغييرات كل صفحة'; -$lang['subscr_style_list'] = 'قائمة بالصفحات المتغيرة منذ آخر بريد'; $lang['authmodfailed'] = 'إعدادات تصريح فاسدة، يرجى مراسلة المدير.'; $lang['authtempfail'] = 'تصريح المشترك غير متوفر مؤقتاً، إن استمرت هذه الحالة يرجى مراسلة المدير'; $lang['authpwdexpire'] = 'ستنتهي صلاحية كلمة السر في %d . عليك بتغييرها سريعا.'; diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php index 6df15a83e..5084d9f60 100644 --- a/inc/lang/az/lang.php +++ b/inc/lang/az/lang.php @@ -136,7 +136,7 @@ $lang['lastmod'] = 'Son dəyişiklər'; $lang['by'] = ' Kimdən'; $lang['deleted'] = 'silinib'; $lang['created'] = 'yaranıb'; -$lang['restored'] = 'köhnə versiya qaytarıldı'; +$lang['restored'] = 'köhnə versiya qaytarıldı (%s)'; $lang['external_edit'] = 'bayırdan dəyişik'; $lang['summary'] = 'Dəyişiklər xülasəsi'; $lang['noflash'] = 'Bu məzmuna baxmaq üçün Adobe Flash Plugin tələb olunur.'; diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index 47d83c62f..3c0a17a72 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -190,7 +190,7 @@ $lang['lastmod'] = 'Последна промяна'; $lang['by'] = 'от'; $lang['deleted'] = 'изтрита'; $lang['created'] = 'създадена'; -$lang['restored'] = 'възстановена предишна версия'; +$lang['restored'] = 'възстановена предишна версия (%s)'; $lang['external_edit'] = 'външна редакция'; $lang['summary'] = 'Обобщение'; $lang['noflash'] = 'Необходим е Adobe Flash Plugin за изобразяване на съдържанието.'; diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php index 532f6c73d..6e7438f53 100644 --- a/inc/lang/ca-valencia/lang.php +++ b/inc/lang/ca-valencia/lang.php @@ -137,7 +137,7 @@ $lang['lastmod'] = 'Última modificació el'; $lang['by'] = 'per'; $lang['deleted'] = 'borrat'; $lang['created'] = 'creat'; -$lang['restored'] = 'restaurada l\'última versió'; +$lang['restored'] = 'restaurada l\'última versió (%s)'; $lang['external_edit'] = 'edició externa'; $lang['summary'] = 'Editar sumari'; $lang['noflash'] = 'Necessita el plúgin d\'Adobe Flash per a vore este contingut.'; diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index cb2b64686..a429dc06a 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -180,7 +180,7 @@ $lang['lastmod'] = 'Darrera modificació'; $lang['by'] = 'per'; $lang['deleted'] = 'suprimit'; $lang['created'] = 'creat'; -$lang['restored'] = 's\'ha restaurat una versió anterior'; +$lang['restored'] = 's\'ha restaurat una versió anterior %s'; $lang['external_edit'] = 'edició externa'; $lang['summary'] = 'Resum d\'edició'; $lang['noflash'] = 'Per a visualitzar aquest contingut necessiteu el connector d\'Adobe Flash.'; diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index af94424ac..f0b8f3ba4 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -188,7 +188,7 @@ $lang['lastmod'] = 'Poslední úprava'; $lang['by'] = 'autor:'; $lang['deleted'] = 'odstraněno'; $lang['created'] = 'vytvořeno'; -$lang['restored'] = 'stará verze byla obnovena'; +$lang['restored'] = 'stará verze byla obnovena (%s)'; $lang['external_edit'] = 'upraveno mimo DokuWiki'; $lang['summary'] = 'Komentář k úpravám'; $lang['noflash'] = 'Pro přehrání obsahu potřebujete Adobe Flash Plugin.'; diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index f132c133b..022de8127 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -188,7 +188,7 @@ $lang['lastmod'] = 'Sidst ændret'; $lang['by'] = 'af'; $lang['deleted'] = 'slettet'; $lang['created'] = 'oprettet'; -$lang['restored'] = 'gammel udgave reetableret'; +$lang['restored'] = 'gammel udgave reetableret (%s)'; $lang['external_edit'] = 'ekstern redigering'; $lang['summary'] = 'Redigerings resumé'; $lang['noflash'] = 'Den Adobe Flash Plugin er nødvendig til at vise denne indehold.'; diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index 55b70074f..0fe343026 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -148,7 +148,6 @@ $lang['uploadsucc'] = 'Επιτυχής φόρτωση'; $lang['uploadfail'] = 'Η μεταφόρτωση απέτυχε. Πιθανόν αυτό να οφείλεται στις ρυθμίσεις πρόσβασης του αρχείου.'; $lang['uploadwrong'] = 'Η μεταφόρτωση δεν έγινε δεκτή. Δεν επιτρέπονται αρχεία αυτού του τύπου!'; $lang['uploadexist'] = 'Το αρχείο ήδη υπάρχει. Δεν έγινε καμία αλλαγή.'; -$lang['uploadbadcontent'] = 'Το περιεχόμενο του αρχείου δεν ταιριάζει με την επέκτασή του.'; $lang['uploadspam'] = 'Η μεταφόρτωση ακυρώθηκε από το φίλτρο spam.'; $lang['uploadxss'] = 'Η μεταφόρτωση ακυρώθηκε λόγω πιθανού επικίνδυνου περιεχομένου.'; $lang['uploadsize'] = 'Το αρχείο ήταν πολύ μεγάλο. (μέγιστο %s)'; @@ -184,7 +183,7 @@ $lang['lastmod'] = 'Τελευταία τροποποίηση'; $lang['by'] = 'από'; $lang['deleted'] = 'διαγράφηκε'; $lang['created'] = 'δημιουργήθηκε'; -$lang['restored'] = 'παλαιότερη έκδοση επαναφέρθηκε'; +$lang['restored'] = 'παλαιότερη έκδοση επαναφέρθηκε (%s)'; $lang['external_edit'] = 'εξωτερική τροποποίηση'; $lang['summary'] = 'Επεξεργασία σύνοψης'; $lang['noflash'] = 'Το Adobe Flash Plugin απαιτείται για την προβολή αυτού του στοιχείου.'; @@ -314,8 +313,7 @@ $lang['media_upload'] = 'Φόρτωση στο %s φά $lang['media_search'] = 'Αναζήτηση στο %s φάκελο.'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s στα %s'; -$lang['media_edit'] = 'Επεξεργασία'; -$lang['media_history'] = 'Αυτές είναι οι παλαιότερες αναθεωρήσεις του αρχείου.'; +$lang['media_edit'] = 'Επεξεργασία %s'; $lang['media_meta_edited'] = 'τα μεταδεδομένα επεξεργάστηκαν'; $lang['media_perm_read'] = 'Συγνώμη, δεν έχετε επαρκή διακαιώματα για να διαβάσετε αυτά τα αρχεία.'; $lang['media_perm_upload'] = 'Συγνώμη, δεν έχετε επαρκή διακαιώματα για να φορτώσετε αυτά τα αρχεία.'; diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index 1c3b6f519..2d9b03148 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -184,7 +184,7 @@ $lang['lastmod'] = 'Lastaj ŝanĝoj'; $lang['by'] = 'de'; $lang['deleted'] = 'forigita'; $lang['created'] = 'kreita'; -$lang['restored'] = 'malnova revizio restarigita'; +$lang['restored'] = 'malnova revizio restarigita (%s)'; $lang['external_edit'] = 'ekstera redakto'; $lang['summary'] = 'Bulteno de ŝanĝoj'; $lang['noflash'] = 'La Adobe Flash Plugin necesas por montri tiun ĉi enhavon.'; diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 20d0284bc..193ec9a7d 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -203,7 +203,7 @@ $lang['lastmod'] = 'Última modificación'; $lang['by'] = 'por'; $lang['deleted'] = 'borrado'; $lang['created'] = 'creado'; -$lang['restored'] = 'se ha restaurado la vieja versión'; +$lang['restored'] = 'se ha restaurado la vieja versión (%s)'; $lang['external_edit'] = 'editor externo'; $lang['summary'] = 'Resumen de la edición'; $lang['noflash'] = 'Para mostrar este contenido es necesario el Plugin Adobe Flash.'; @@ -280,8 +280,6 @@ $lang['subscr_m_unsubscribe'] = 'Darse de baja'; $lang['subscr_m_subscribe'] = 'Suscribirse'; $lang['subscr_m_receive'] = 'Recibir'; $lang['subscr_style_every'] = 'enviar correo en cada cambio'; -$lang['subscr_style_digest'] = 'recopilar correo de cambios por cada página'; -$lang['subscr_style_list'] = 'lista de páginas con cambios desde el último correo'; $lang['authmodfailed'] = 'Está mal configurada la autenticación de usuarios. Por favor, avisa al administrador del wiki.'; $lang['authtempfail'] = 'La autenticación de usuarios no está disponible temporalmente. Si esta situación persiste, por favor avisa al administrador del wiki.'; $lang['authpwdexpire'] = 'Su contraseña caducara en %d días, debería cambiarla lo antes posible'; diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php index 8ae61558a..0a0310832 100644 --- a/inc/lang/et/lang.php +++ b/inc/lang/et/lang.php @@ -163,7 +163,7 @@ $lang['lastmod'] = 'Viimati muutnud'; $lang['by'] = 'persoon'; $lang['deleted'] = 'eemaldatud'; $lang['created'] = 'tekitatud'; -$lang['restored'] = 'vana versioon taastatud'; +$lang['restored'] = 'vana versioon taastatud (%s)'; $lang['external_edit'] = 'väline muutmine'; $lang['summary'] = 'kokkuvõte muudatustest'; $lang['mail_newpage'] = 'leht lisatud:'; diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php index 5b03dcb97..7aab8b44c 100644 --- a/inc/lang/eu/lang.php +++ b/inc/lang/eu/lang.php @@ -178,7 +178,7 @@ $lang['lastmod'] = 'Azken aldaketa'; $lang['by'] = 'egilea:'; $lang['deleted'] = 'ezabatua'; $lang['created'] = 'sortua'; -$lang['restored'] = 'bertsio zaharra berrezarria'; +$lang['restored'] = 'bertsio zaharra berrezarria (%s)'; $lang['external_edit'] = 'kanpoko aldaketa'; $lang['summary'] = 'Aldatu laburpena'; $lang['noflash'] = 'Adobe Flash Plugin beharrezkoa da eduki hau bistaratzeko.'; diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 026d6499a..eb828a472 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -189,7 +189,7 @@ $lang['lastmod'] = 'آخرین ویرایش'; $lang['by'] = 'توسط'; $lang['deleted'] = 'حذف شد'; $lang['created'] = 'ایجاد شد'; -$lang['restored'] = 'یک نگارش پیشین واگردانی شد.'; +$lang['restored'] = 'یک نگارش پیشین واگردانی شد. (%s)'; $lang['external_edit'] = 'ویرایش خارجی'; $lang['summary'] = 'پیش‌نمایش'; $lang['noflash'] = 'برای نمایش محتویات افزونه‌ی فلش مورد نیاز است.'; @@ -266,8 +266,6 @@ $lang['subscr_m_unsubscribe'] = 'لغو آبونه'; $lang['subscr_m_subscribe'] = 'آبونه شدن'; $lang['subscr_m_receive'] = 'دریافت کردن'; $lang['subscr_style_every'] = 'ارسال رای‌نامه در تمامی تغییرات'; -$lang['subscr_style_digest'] = 'ارسال ایمیل‌های فشرده برای تغییرات هر صفحه'; -$lang['subscr_style_list'] = 'لیست صفحات تغییر داده شده از آخرین رای‌نامه'; $lang['authmodfailed'] = 'اشکال در نوع معتبرسازی کاربران، مدیر ویکی را باخبر سازید.'; $lang['authtempfail'] = 'معتبرسازی کابران موقتن مسدود می‌باشد. اگر این حالت پایدار بود، مدیر ویکی را باخبر سازید.'; $lang['authpwdexpire'] = 'کلمه عبور شما در %d روز منقضی خواهد شد ، شما باید آن را زود تغییر دهید'; diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 73eb3d4cc..59e4dc6cb 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -183,7 +183,7 @@ $lang['lastmod'] = 'Viimeksi muutettu'; $lang['by'] = '/'; $lang['deleted'] = 'poistettu'; $lang['created'] = 'luotu'; -$lang['restored'] = 'vanha versio palautettu'; +$lang['restored'] = 'vanha versio palautettu (%s)'; $lang['external_edit'] = 'ulkoinen muokkaus'; $lang['summary'] = 'Yhteenveto muokkauksesta'; $lang['noflash'] = 'Tarvitset Adobe Flash-liitännäisen nähdäksesi tämän sisällön.'; diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php index 14ec8c56b..9f51824db 100644 --- a/inc/lang/fo/lang.php +++ b/inc/lang/fo/lang.php @@ -130,7 +130,7 @@ $lang['lastmod'] = 'Seinast broytt'; $lang['by'] = 'av'; $lang['deleted'] = 'strika'; $lang['created'] = 'stovna'; -$lang['restored'] = 'gomul útgáva endurstovna'; +$lang['restored'] = 'gomul útgáva endurstovna (%s)'; $lang['summary'] = 'Samandráttur'; $lang['mail_newpage'] = 'skjal skoyta uppí:'; $lang['mail_changed'] = 'skjal broytt:'; diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index 7cc06a833..fa49c1121 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -181,7 +181,7 @@ $lang['lastmod'] = 'Última modificación'; $lang['by'] = 'por'; $lang['deleted'] = 'eliminado'; $lang['created'] = 'creado'; -$lang['restored'] = 'revisión antiga restaurada'; +$lang['restored'] = 'revisión antiga restaurada (%s)'; $lang['external_edit'] = 'edición externa'; $lang['summary'] = 'Resumo da edición'; $lang['noflash'] = 'Precísase o Extensión Adobe Flash para amosar este contido.'; @@ -258,8 +258,6 @@ $lang['subscr_m_unsubscribe'] = 'Desubscribir'; $lang['subscr_m_subscribe'] = 'Subscribir'; $lang['subscr_m_receive'] = 'Recibir'; $lang['subscr_style_every'] = 'correo-e en cada troco'; -$lang['subscr_style_digest'] = 'correo-e con resumo de trocos para cada páxina'; -$lang['subscr_style_list'] = 'lista de páxinas mudadas dende o último correo-e'; $lang['authmodfailed'] = 'Configuración de autenticación de usuario incorrecta. Por favor, informa ao Administrador do teu Wiki.'; $lang['authtempfail'] = 'A autenticación de usuario non está dispoñible de xeito temporal. De persistir esta situación, por favor, informa ao Administrador do teu Wiki.'; $lang['authpwdexpire'] = 'A túa contrasinal expirará en %d días, deberías cambiala pronto.'; diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index e474501ae..4853a0e2b 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -165,7 +165,7 @@ $lang['lastmod'] = 'מועד השינוי האחרון'; $lang['by'] = 'על ידי'; $lang['deleted'] = 'נמחק'; $lang['created'] = 'נוצר'; -$lang['restored'] = 'שוחזר'; +$lang['restored'] = 'שוחזר (%s)'; $lang['external_edit'] = 'עריכה חיצונית'; $lang['summary'] = 'תקציר העריכה'; $lang['noflash'] = 'תוסף פלאש לדפדפן נדרש כדי להציג תוכן זה.'; @@ -243,7 +243,6 @@ $lang['i_modified'] = 'משיקולי אבטחה סקריפט זה י עליך לחלץ שנית את הקבצים מהחבילה שהורדה או להיעזר בדף Dokuwiki installation instructions'; $lang['i_funcna'] = 'פונקציית ה-PHP‏ %s אינה זמינה. יתכן כי מארח האתר חסם אותה מסיבה כלשהי?'; -$lang['i_phpver'] = 'גרסת ה־PHP שלך %s נמוכה מהדרוש. עליך לשדרג את התקנת ה־PHP שלך.'; $lang['i_permfail'] = '%s אינה ניתנת לכתיבה על ידי DokuWiki. עליך לשנות הרשאות תיקייה זו!'; $lang['i_confexists'] = '%s כבר קיים'; $lang['i_writeerr'] = 'אין אפשרות ליצור את %s. נא לבדוק את הרשאות הקובץ/תיקייה וליצור את הקובץ ידנית.'; diff --git a/inc/lang/hi/lang.php b/inc/lang/hi/lang.php index 893457066..d2021fcae 100644 --- a/inc/lang/hi/lang.php +++ b/inc/lang/hi/lang.php @@ -84,7 +84,6 @@ $lang['lastmod'] = 'अंतिम बार संशोधि $lang['by'] = 'के द्वारा'; $lang['deleted'] = 'हटाया'; $lang['created'] = 'निर्मित'; -$lang['restored'] = 'पुराने संशोधन बहाल'; $lang['external_edit'] = 'बाह्य सम्पादित'; $lang['summary'] = 'सारांश संपादित करें'; $lang['mail_newpage'] = 'पृष्ठ जोड़ा:'; diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index 97f4cf0c2..a607210d7 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -165,7 +165,7 @@ $lang['lastmod'] = 'Zadnja izmjena'; $lang['by'] = 'od'; $lang['deleted'] = 'obrisano'; $lang['created'] = 'stvoreno'; -$lang['restored'] = 'vraćena prijašnja inačica'; +$lang['restored'] = 'vraćena prijašnja inačica (%s)'; $lang['external_edit'] = 'vanjsko uređivanje'; $lang['summary'] = 'Sažetak izmjena'; $lang['noflash'] = 'Za prikazivanje ovog sadržaja potreban je Adobe Flash Plugin'; diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index c59cace77..275fb15d5 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -169,7 +169,7 @@ $lang['lastmod'] = 'Utolsó módosítás'; $lang['by'] = 'szerkesztette:'; $lang['deleted'] = 'eltávolítva'; $lang['created'] = 'létrehozva'; -$lang['restored'] = 'az előző változat helyreállítva'; +$lang['restored'] = 'az előző változat helyreállítva (%s)'; $lang['external_edit'] = 'külső szerkesztés'; $lang['summary'] = 'A változások összefoglalása'; $lang['noflash'] = 'Ennek a tartalomnak a megtekintéséhez Adobe Flash Plugin szükséges.'; diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php index a9d5c376c..fd63fb5ef 100644 --- a/inc/lang/ia/lang.php +++ b/inc/lang/ia/lang.php @@ -163,7 +163,7 @@ $lang['lastmod'] = 'Ultime modification'; $lang['by'] = 'per'; $lang['deleted'] = 'removite'; $lang['created'] = 'create'; -$lang['restored'] = 'ancian version restaurate'; +$lang['restored'] = 'ancian version restaurate (%s)'; $lang['external_edit'] = 'modification externe'; $lang['summary'] = 'Modificar summario'; $lang['noflash'] = 'Le plug-in Flash de Adobe es necessari pro monstrar iste contento.'; @@ -227,8 +227,6 @@ $lang['subscr_m_unsubscribe'] = 'Cancellar subscription'; $lang['subscr_m_subscribe'] = 'Subscriber'; $lang['subscr_m_receive'] = 'Reciper'; $lang['subscr_style_every'] = 'un message pro cata modification'; -$lang['subscr_style_digest'] = 'un digesto de modificationes pro cata pagina'; -$lang['subscr_style_list'] = 'lista de paginas modificate depost le ultime e-mail'; $lang['authmodfailed'] = 'Configuration incorrecte de authentication de usator. Per favor informa le administrator de tu wiki.'; $lang['authtempfail'] = 'Le authentication de usator temporarimente non es disponibile. Si iste situation persiste, per favor informa le administrator de tu wiki.'; $lang['i_chooselang'] = 'Selige tu lingua'; diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index 91ed38e31..e14b9d9f5 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -125,7 +125,7 @@ $lang['lastmod'] = 'Terakhir diubah'; $lang['by'] = 'oleh'; $lang['deleted'] = 'terhapus'; $lang['created'] = 'dibuat'; -$lang['restored'] = 'revisi lama ditampilkan kembali'; +$lang['restored'] = 'revisi lama ditampilkan kembali (%s)'; $lang['external_edit'] = 'Perubahan eksternal'; $lang['summary'] = 'Edit summary'; $lang['mail_newpage'] = 'Halaman ditambahkan:'; diff --git a/inc/lang/is/lang.php b/inc/lang/is/lang.php index be20da6b3..78ae7e249 100644 --- a/inc/lang/is/lang.php +++ b/inc/lang/is/lang.php @@ -134,7 +134,7 @@ $lang['lastmod'] = 'Síðast breytt'; $lang['by'] = 'af'; $lang['deleted'] = 'eytt'; $lang['created'] = 'myndað'; -$lang['restored'] = 'Breytt aftur til fyrri útgáfu'; +$lang['restored'] = 'Breytt aftur til fyrri útgáfu (%s)'; $lang['external_edit'] = 'utanaðkomandi breyta'; $lang['summary'] = 'Forskoða'; $lang['noflash'] = 'Það þarf Adobe Flash viðbót til að sýna sumt efnið á þessari síðu'; diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 1ad5ae1bb..307e7292f 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -187,7 +187,7 @@ $lang['lastmod'] = 'Ultima modifica'; $lang['by'] = 'da'; $lang['deleted'] = 'eliminata'; $lang['created'] = 'creata'; -$lang['restored'] = 'versione precedente ripristinata'; +$lang['restored'] = 'versione precedente ripristinata (%s)'; $lang['external_edit'] = 'modifica esterna'; $lang['summary'] = 'Oggetto della modifica'; $lang['noflash'] = 'E\' necessario il plugin Adobe Flash per visualizzare questo contenuto.'; @@ -263,8 +263,6 @@ $lang['subscr_m_unsubscribe'] = 'Rimuovi sottoscrizione'; $lang['subscr_m_subscribe'] = 'Sottoscrivi'; $lang['subscr_m_receive'] = 'Ricevi'; $lang['subscr_style_every'] = 'email per ogni modifica'; -$lang['subscr_style_digest'] = 'email riassuntiva delle modifiche di ogni pagina'; -$lang['subscr_style_list'] = 'elenco delle pagine modificate dall\'ultima email'; $lang['authmodfailed'] = 'La configurazione dell\'autenticazione non è corretta. Informa l\'amministratore di questo wiki.'; $lang['authtempfail'] = 'L\'autenticazione è temporaneamente non disponibile. Se questa situazione persiste, informa l\'amministratore di questo wiki.'; $lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.'; diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 66de0dab5..7997889e4 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -181,7 +181,7 @@ $lang['lastmod'] = '最終更新'; $lang['by'] = 'by'; $lang['deleted'] = '削除'; $lang['created'] = '作成'; -$lang['restored'] = '以前のバージョンを復元'; +$lang['restored'] = '以前のバージョンを復元 (%s)'; $lang['external_edit'] = '外部編集'; $lang['summary'] = '編集の概要'; $lang['noflash'] = 'この内容を表示するためには Adobe Flash Plugin が必要です。'; diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php index 6a5fa223f..85bb6afba 100644 --- a/inc/lang/km/lang.php +++ b/inc/lang/km/lang.php @@ -132,7 +132,6 @@ $lang['lastmod'] = 'ពេលកែចុងក្រោយ'; $lang['by'] = 'និពន្ឋដោយ'; $lang['deleted'] = 'យកចេញ'; $lang['created'] = 'បង្កើត'; -$lang['restored'] = 'ស្ដារបុនរាព្រឹតចាស់'; $lang['external_edit'] = 'កំរេពីក្រៅ'; $lang['summary'] = 'កែតម្រា'; @@ -207,7 +206,6 @@ $lang['i_superuser'] = 'អ្នកកំពូល'; $lang['i_problems'] = 'កម្មវិធី​ដំឡើងបានប៉ះឧបសគ្គ។ អ្នកមិនអាចបន្តទៅទៀត ដល់អ្នកជួសជុលវា។'; $lang['i_modified'] = ''; $lang['i_funcna'] = '%s '; -$lang['i_phpver'] = 'PHP ប្រវត់លេខ%s ជា'; $lang['i_permfail'] = '%s មិនអាចសាស'; $lang['i_confexists'] = '%s មានហាយ'; $lang['i_writeerr'] = 'មិនអាចបណ្កើ%s។ អ្នកត្រវការពិនិត្យអធិក្រឹតិរបស់ថតនឹងឯកសារ។'; diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php index 63ccafa35..c9d658c6d 100644 --- a/inc/lang/ku/lang.php +++ b/inc/lang/ku/lang.php @@ -95,7 +95,7 @@ $lang['lastmod'] = 'Guherandina dawî'; $lang['by'] = 'by'; $lang['deleted'] = 'hat jê birin'; $lang['created'] = 'hat afirandin'; -$lang['restored'] = 'old revision restored'; +$lang['restored'] = 'old revision restored (%s)'; $lang['summary'] = 'Kurteya guhartinê'; $lang['mail_newpage'] = 'page added:'; diff --git a/inc/lang/la/lang.php b/inc/lang/la/lang.php index 77fec8362..bea921abc 100644 --- a/inc/lang/la/lang.php +++ b/inc/lang/la/lang.php @@ -131,7 +131,6 @@ $lang['uploadsucc'] = 'Oneratum perfectum'; $lang['uploadfail'] = 'Error onerandi.'; $lang['uploadwrong'] = 'Onerare non potest. Genus documenti non legitimum!'; $lang['uploadexist'] = 'Documentum iam est.'; -$lang['uploadbadcontent'] = 'Documentum oneratum cum genere documenti non congruit.'; $lang['uploadspam'] = 'Onerare non potest: nam in indice perscriptionis documentum est.'; $lang['uploadxss'] = 'Onerare non potest: nam forsitan malum scriptum in documento est.'; $lang['uploadsize'] = 'Documentum onerandum ponderosius est. (Maxime "%s")'; @@ -164,7 +163,7 @@ $lang['lastmod'] = 'Extrema mutatio'; $lang['by'] = 'a(b)'; $lang['deleted'] = 'deletur'; $lang['created'] = 'creatur'; -$lang['restored'] = 'Recensio uetus restituta'; +$lang['restored'] = 'Recensio uetus restituta (%s)'; $lang['external_edit'] = 'Externe recensere'; $lang['summary'] = 'Indicem recensere'; $lang['noflash'] = 'Adobe Flash Plugin necessarium est.'; @@ -254,7 +253,6 @@ $lang['i_pol1'] = 'Publicus uicis (omnes legere, Sodales scribere $lang['i_pol2'] = 'Clausus uicis (Soli Sodales legere scribere et onerare poccunt)'; $lang['i_retry'] = 'Rursum temptas'; $lang['i_license'] = 'Elige facultatem sub qua tuus uicis est:'; -$lang['recent_global'] = 'Mutatione in hoc genere uides. Recentiores mutationes quoque uidere potes'; $lang['years'] = 'ab annis %d'; $lang['months'] = 'a mensibus %d'; $lang['weeks'] = 'a septimanis %d'; diff --git a/inc/lang/lb/lang.php b/inc/lang/lb/lang.php index e6409b7ff..bced5a50a 100644 --- a/inc/lang/lb/lang.php +++ b/inc/lang/lb/lang.php @@ -124,7 +124,7 @@ $lang['lastmod'] = 'Fir d\'lescht g\'ännert'; $lang['by'] = 'vun'; $lang['deleted'] = 'geläscht'; $lang['created'] = 'erstallt'; -$lang['restored'] = 'al Versioun zeréckgeholl'; +$lang['restored'] = 'al Versioun zeréckgeholl (%s)'; $lang['external_edit'] = 'extern Ännerung'; $lang['summary'] = 'Resumé vun den Ännerungen'; $lang['noflash'] = 'Den Adobe Flash Plugin get gebraucht fir dësen Inhalt unzeweisen.'; diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php index 13ff8c305..8a4c4e6a5 100644 --- a/inc/lang/lt/lang.php +++ b/inc/lang/lt/lang.php @@ -132,7 +132,7 @@ $lang['lastmod'] = 'Keista'; $lang['by'] = 'vartotojo'; $lang['deleted'] = 'ištrintas'; $lang['created'] = 'sukurtas'; -$lang['restored'] = 'atstatyta sena versija'; +$lang['restored'] = 'atstatyta sena versija (%s)'; $lang['external_edit'] = 'redaguoti papildomomis priemonėmis'; $lang['summary'] = 'Redaguoti santrauką'; $lang['noflash'] = 'Adobe Flash Plugin reikalingas šios medžiagos peržiūrai.'; diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php index 671e5f52a..2027b87ba 100644 --- a/inc/lang/lv/lang.php +++ b/inc/lang/lv/lang.php @@ -178,7 +178,7 @@ $lang['lastmod'] = 'Labota'; $lang['by'] = ', labojis'; $lang['deleted'] = 'dzēsts'; $lang['created'] = 'izveidots'; -$lang['restored'] = 'vecā versija atjaunota'; +$lang['restored'] = 'vecā versija atjaunota (%s)'; $lang['external_edit'] = 'ārpussistēmas labojums'; $lang['summary'] = 'Anotācija'; $lang['noflash'] = 'Lai attēlotu lapas saturu, vajag Adobe Flash Plugin.'; diff --git a/inc/lang/mg/lang.php b/inc/lang/mg/lang.php index 4142f00d0..95589ab21 100644 --- a/inc/lang/mg/lang.php +++ b/inc/lang/mg/lang.php @@ -88,7 +88,7 @@ $lang['lastmod'] = 'Novaina farany:'; $lang['by'] = '/'; $lang['deleted'] = 'voafafa'; $lang['created'] = 'Voamboatra'; -$lang['restored'] = 'Naverina tamin\'ny kinova taloha'; +$lang['restored'] = 'Naverina tamin\'ny kinova taloha (%s)'; $lang['summary'] = 'Fanovana teo'; $lang['mail_newpage'] = 'pejy niampy:'; diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php index 7482f2512..44bd489b7 100644 --- a/inc/lang/mk/lang.php +++ b/inc/lang/mk/lang.php @@ -136,7 +136,7 @@ $lang['lastmod'] = 'Последно изменета'; $lang['by'] = 'од'; $lang['deleted'] = 'отстранета'; $lang['created'] = 'креирана'; -$lang['restored'] = 'обновена е стара ревизија'; +$lang['restored'] = 'обновена е стара ревизија (%s)'; $lang['external_edit'] = 'надворешно уредување'; $lang['summary'] = 'Уреди го изводот'; $lang['noflash'] = 'Adobe Flash приклучокот е потребен за да се прикаже оваа содржина.'; @@ -196,8 +196,6 @@ $lang['subscr_m_unsubscribe'] = 'Отплатување'; $lang['subscr_m_subscribe'] = 'Претплата'; $lang['subscr_m_receive'] = 'Прими'; $lang['subscr_style_every'] = 'е-пошта за секоја промена'; -$lang['subscr_style_digest'] = 'е-пошта со преглед од промените за секоја страница'; -$lang['subscr_style_list'] = 'листа на променети страници од последната е-пошта'; $lang['authmodfailed'] = 'Лоша конфигурација за автентикација на корисник. Ве молам информирајте го вики администратор.'; $lang['authtempfail'] = 'Автентикација на корисник е привремено недостапна. Ако оваа ситуација истрајува, ве молам известете го вики администратор.'; $lang['i_chooselang'] = 'Избере јазик'; diff --git a/inc/lang/mr/lang.php b/inc/lang/mr/lang.php index b754a3f1c..d95813efa 100644 --- a/inc/lang/mr/lang.php +++ b/inc/lang/mr/lang.php @@ -180,7 +180,6 @@ $lang['lastmod'] = 'सर्वात शेवटचा बद $lang['by'] = 'द्वारा'; $lang['deleted'] = 'काढून टाकले'; $lang['created'] = 'निर्माण केले'; -$lang['restored'] = 'जुनी आवृत्ति पुनर्स्थापित केली'; $lang['external_edit'] = 'बाहेरून संपादित'; $lang['summary'] = 'सारांश बदला'; $lang['noflash'] = 'ही माहिती दाखवण्यासाठी अडोब फ्लॅश प्लेअर ची गरज आहे.'; diff --git a/inc/lang/ms/lang.php b/inc/lang/ms/lang.php index 92dc86b5a..02c0e2c91 100644 --- a/inc/lang/ms/lang.php +++ b/inc/lang/ms/lang.php @@ -93,5 +93,5 @@ $lang['uploadfail'] = 'Ralat muat naik'; $lang['uploadxss'] = 'Fail ini mengandungi kod HTML atau kod skrip yang mungkin boleh disalah tafsir oleh pelayar web.'; $lang['toc'] = 'Jadual Kandungan'; $lang['current'] = 'kini'; -$lang['restored'] = 'Telah dikembalikan ke semakan sebelumnya'; +$lang['restored'] = 'Telah dikembalikan ke semakan sebelumnya (%s)'; $lang['summary'] = 'Paparan'; diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php index fa6d2f705..b7ca14b0a 100644 --- a/inc/lang/ne/lang.php +++ b/inc/lang/ne/lang.php @@ -128,7 +128,6 @@ $lang['lastmod'] = 'अन्तिम पटक सच्या $lang['by'] = 'द्वारा '; $lang['deleted'] = 'हटाइएको'; $lang['created'] = 'निर्माण गरिएको'; -$lang['restored'] = 'पुरानो संस्करण पुनर्‌प्रयोग गरिएको'; $lang['external_edit'] = 'बाह्य सम्पादन'; $lang['summary'] = 'सम्पादनको बारेमा'; $lang['mail_newpage'] = 'थपिएको पृष्ठ'; diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 0241eab2f..f6192a99b 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -192,7 +192,7 @@ $lang['lastmod'] = 'Laatst gewijzigd'; $lang['by'] = 'door'; $lang['deleted'] = 'verwijderd'; $lang['created'] = 'aangemaakt'; -$lang['restored'] = 'oude revisie hersteld'; +$lang['restored'] = 'oude revisie hersteld (%s)'; $lang['external_edit'] = 'Externe bewerking'; $lang['summary'] = 'Samenvatting wijziging'; $lang['noflash'] = 'De Adobe Flash Plugin is vereist om de pagina te kunnen weergeven.'; diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index 9aa11ac87..8235bfb91 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -190,7 +190,7 @@ $lang['lastmod'] = 'Sist endret'; $lang['by'] = 'av'; $lang['deleted'] = 'fjernet'; $lang['created'] = 'opprettet'; -$lang['restored'] = 'gjenopprettet til en tidligere versjon'; +$lang['restored'] = 'gjenopprettet til en tidligere versjon (%s)'; $lang['external_edit'] = 'ekstern redigering'; $lang['summary'] = 'Redigeringskommentar'; $lang['noflash'] = 'For at dette innholdet skal vises må du ha Adobe Flash Plugin.'; @@ -316,8 +316,7 @@ $lang['media_upload'] = 'Last opp til navnerommet %s.' $lang['media_search'] = 'Søk i navnerommet %s.'; $lang['media_view'] = '%s'; $lang['media_viewold'] = '%s på %s'; -$lang['media_edit'] = 'Rediger'; -$lang['media_history'] = 'Dette er de tidligere versjonene av filen.'; +$lang['media_edit'] = 'Rediger %s'; $lang['media_meta_edited'] = 'metadata er endra'; $lang['media_perm_read'] = 'Beklager, du har ikke tilgang til å lese filer.'; $lang['media_perm_upload'] = 'Beklager, du har ikke tilgang til å laste opp filer.'; diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index cf9fc6a16..51149e88f 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -189,7 +189,7 @@ $lang['lastmod'] = 'ostatnio zmienione'; $lang['by'] = 'przez'; $lang['deleted'] = 'usunięto'; $lang['created'] = 'utworzono'; -$lang['restored'] = 'przywrócono poprzednią wersję'; +$lang['restored'] = 'przywrócono poprzednią wersję (%s)'; $lang['external_edit'] = 'edycja zewnętrzna'; $lang['summary'] = 'Opis zmian'; $lang['noflash'] = 'Plugin Adobe Flash Plugin jest niezbędny do obejrzenia tej zawartości.'; @@ -265,8 +265,6 @@ $lang['subscr_m_unsubscribe'] = 'Zrezygnuj z subskrypcji'; $lang['subscr_m_subscribe'] = 'Subskrybuj'; $lang['subscr_m_receive'] = 'Otrzymuj'; $lang['subscr_style_every'] = 'email przy każdej zmianie'; -$lang['subscr_style_digest'] = 'email ze streszczeniem zmian dla każdej ze stron'; -$lang['subscr_style_list'] = 'lista zmienionych stron od czasu ostatniego emaila'; $lang['authmodfailed'] = 'Błąd uwierzytelnienia. Powiadom administratora tego wiki.'; $lang['authtempfail'] = 'Uwierzytelnienie użytkownika jest w tej chwili niemożliwe. Jeśli ta sytuacja się powtórzy, powiadom administratora tego wiki.'; $lang['authpwdexpire'] = 'Twoje hasło wygaśnie za %d dni. Należy je zmienić w krótkim czasie.'; diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index 1555889f6..ac9c59c3e 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -179,7 +179,7 @@ $lang['lastmod'] = 'Esta página foi modificada pela última vez e $lang['by'] = 'por'; $lang['deleted'] = 'Documento automaticamente removido.'; $lang['created'] = 'Criação deste novo documento.'; -$lang['restored'] = 'Versão anterior restaurada.'; +$lang['restored'] = 'Versão anterior restaurada (%s)'; $lang['external_edit'] = 'Edição externa'; $lang['summary'] = 'Sumário da Edição'; $lang['noflash'] = 'O Plugin Adobe Flash é necessário para exibir este conteúdo.'; diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index d6bfcad3a..8b2483daf 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -184,7 +184,7 @@ $lang['lastmod'] = 'Ultima modificare'; $lang['by'] = 'de către'; $lang['deleted'] = 'şters'; $lang['created'] = 'creat'; -$lang['restored'] = 'versiune veche restaurată'; +$lang['restored'] = 'versiune veche restaurată (%s)'; $lang['external_edit'] = 'editare externă'; $lang['summary'] = 'Editează sumarul'; $lang['noflash'] = 'Plugin-ul Adobe Flash Plugin este necesar pentru afişarea corectă a conţinutului.'; diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index c391bc6a5..52e0ef3d6 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -193,7 +193,7 @@ $lang['lastmod'] = 'Последние изменения'; $lang['by'] = ' —'; $lang['deleted'] = 'удалено'; $lang['created'] = 'создано'; -$lang['restored'] = 'старая ревизия восстановлена'; +$lang['restored'] = 'старая ревизия восстановлена (%s)'; $lang['external_edit'] = 'внешнее изменение'; $lang['summary'] = 'Сводка изменений'; $lang['noflash'] = 'Для просмотра этого содержимого требуется Adobe Flash Plugin.'; @@ -270,8 +270,6 @@ $lang['subscr_m_unsubscribe'] = 'Отменить подписку'; $lang['subscr_m_subscribe'] = 'Подписаться'; $lang['subscr_m_receive'] = 'Получить'; $lang['subscr_style_every'] = 'уведомлять о каждом изменении'; -$lang['subscr_style_digest'] = 'сводка изменений по каждой странице'; -$lang['subscr_style_list'] = 'перечислять изменившиеся страницы с прошлого уведомления'; $lang['authmodfailed'] = 'Неправильная конфигурация аутентификации пользователя. Пожалуйста, сообщите об этом своему администратору вики.'; $lang['authtempfail'] = 'Аутентификация пользователей временно недоступна. Если проблема продолжается какое-то время, пожалуйста, сообщите об этом своему администратору вики.'; $lang['authpwdexpire'] = 'Действие вашего пароля истекает через %d дней. Вы должны изменить его как можно скорее'; diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php index 81220b8a2..5c4316b01 100644 --- a/inc/lang/sl/lang.php +++ b/inc/lang/sl/lang.php @@ -177,7 +177,7 @@ $lang['lastmod'] = 'Zadnja sprememba'; $lang['by'] = 'uporabnika'; $lang['deleted'] = 'odstranjena'; $lang['created'] = 'ustvarjena'; -$lang['restored'] = 'povrnjena stara različica'; +$lang['restored'] = 'povrnjena stara različica (%s)'; $lang['external_edit'] = 'urejanje v zunanjem urejevalniku'; $lang['summary'] = 'Povzetek urejanja'; $lang['noflash'] = 'Za prikaz vsebine je treba namestiti Adobe Flash Plugin'; diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php index e190d8404..212f10607 100644 --- a/inc/lang/sq/lang.php +++ b/inc/lang/sq/lang.php @@ -140,7 +140,7 @@ $lang['lastmod'] = 'Redaktuar për herë të fundit'; $lang['by'] = 'nga'; $lang['deleted'] = 'u fshi'; $lang['created'] = 'u krijua'; -$lang['restored'] = 'Kthehu tek një version i vjetër'; +$lang['restored'] = 'Kthehu tek një version i vjetër (%s)'; $lang['external_edit'] = 'redaktim i jashtëm'; $lang['summary'] = 'Përmbledhja redaktimit'; $lang['noflash'] = 'Nevojitet Adobe Flash Plugin për të paraqitur këtë përmbajtje.'; @@ -204,8 +204,6 @@ $lang['subscr_m_unsubscribe'] = 'Fshi Abonimin'; $lang['subscr_m_subscribe'] = 'Abonohu'; $lang['subscr_m_receive'] = 'Mer'; $lang['subscr_style_every'] = 'email mbi çdo ndryshim'; -$lang['subscr_style_digest'] = 'pasqyro email-e ndryshimi pér çdo faqe'; -$lang['subscr_style_list'] = 'listë e faqeve të ndryshuara që nga emaili i fundit'; $lang['authmodfailed'] = 'Konfigurim i gabuar i autentikimit të përdoruesit. Ju lutem informoni Administratorin tuaj të Wiki-it.'; $lang['authtempfail'] = 'Autentikimi i përdoruesve është përkohësisht i padisponueshëm. Nëse kjo gjendje vazhdon, ju lutemi të informoni Administratorin tuaj të Wiki-it.'; $lang['i_chooselang'] = 'Zgjidhni gjuhën tuaj'; diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php index d7f594511..7fbdf1985 100644 --- a/inc/lang/sr/lang.php +++ b/inc/lang/sr/lang.php @@ -162,7 +162,7 @@ $lang['lastmod'] = 'Последњи пут мењано'; $lang['by'] = 'од'; $lang['deleted'] = 'избрисано'; $lang['created'] = 'направљено'; -$lang['restored'] = 'стара верзија повраћена'; +$lang['restored'] = 'стара верзија повраћена (%s)'; $lang['external_edit'] = 'спољна измена'; $lang['summary'] = 'Сажетак измене'; $lang['noflash'] = 'За приказивање ове врсте материјала потребан вам је Adobe Flash Plugin.'; diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php index c9d526436..627484eab 100644 --- a/inc/lang/th/lang.php +++ b/inc/lang/th/lang.php @@ -144,7 +144,7 @@ $lang['lastmod'] = 'แก้ไขครั้งล่าสุ $lang['by'] = 'โดย'; $lang['deleted'] = 'ถูกถอดออก'; $lang['created'] = 'ถูกสร้าง'; -$lang['restored'] = 'ย้อนไปรุ่นก่อนหน้า'; +$lang['restored'] = 'ย้อนไปรุ่นก่อนหน้า (%s)'; $lang['external_edit'] = 'แก้ไขภายนอก'; $lang['summary'] = 'สรุป(หมายเหตุ)การแก้ไขนี้'; $lang['noflash'] = 'ต้องการตัวเล่นแฟลช Adobe Flash Plugin เพื่อแสดงผลเนื้อหานี้'; diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index 5430905b1..c6edf74c6 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -176,7 +176,7 @@ $lang['lastmod'] = 'Son değiştirilme'; $lang['by'] = 'Değiştiren:'; $lang['deleted'] = 'silindi'; $lang['created'] = 'oluşturuldu'; -$lang['restored'] = 'eski sürüme dönüldü'; +$lang['restored'] = 'eski sürüme dönüldü (%s)'; $lang['external_edit'] = 'Dışarıdan düzenle'; $lang['summary'] = 'Özeti düzenle'; $lang['noflash'] = 'Bu içeriği göstermek için Adobe Flash Eklentisi gerekmektedir.'; diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index 5274a4210..6aa468c50 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -169,7 +169,7 @@ $lang['lastmod'] = 'В останнє змінено'; $lang['by'] = ' '; $lang['deleted'] = 'знищено'; $lang['created'] = 'створено'; -$lang['restored'] = 'відновлено стару ревізію'; +$lang['restored'] = 'відновлено стару ревізію (%s)'; $lang['external_edit'] = 'зовнішнє редагування'; $lang['summary'] = 'Підсумок змін'; $lang['noflash'] = 'Для перегляду цієї сторінки необхідно встановити Adobe Flash Plugin.'; diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php index 99c4d47e4..c439ca534 100644 --- a/inc/lang/vi/lang.php +++ b/inc/lang/vi/lang.php @@ -176,7 +176,7 @@ $lang['lastmod'] = 'Thời điểm thay đổi'; $lang['by'] = 'do'; $lang['deleted'] = 'bị xoá'; $lang['created'] = 'được tạo ra'; -$lang['restored'] = 'phiên bản cũ đã được khôi phục'; +$lang['restored'] = 'phiên bản cũ đã được khôi phục (%s)'; $lang['external_edit'] = 'external edit'; $lang['summary'] = 'Tóm tắt biên soạn'; $lang['noflash'] = 'Adobe Flash Plugin cần được cài để có thể xem nội dung này.'; diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index ddb35617e..536266971 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -186,7 +186,7 @@ $lang['lastmod'] = '上一次變更'; $lang['by'] = '由'; $lang['deleted'] = '移除'; $lang['created'] = '建立'; -$lang['restored'] = '恢復為舊版'; +$lang['restored'] = '恢復為舊版 (%s)'; $lang['external_edit'] = '外部編輯'; $lang['summary'] = '編輯摘要'; $lang['noflash'] = '顯示此內容需要 Adobe Flash 附加元件。'; diff --git a/lib/plugins/plugin/lang/ar/lang.php b/lib/plugins/plugin/lang/ar/lang.php index 8327e5ce3..a1a778131 100644 --- a/lib/plugins/plugin/lang/ar/lang.php +++ b/lib/plugins/plugin/lang/ar/lang.php @@ -50,4 +50,4 @@ $lang['enabled'] = 'الاضافة %s فُعلت. '; $lang['notenabled'] = 'تعذر تفعيل الاضافة %s، تحقق من اذونات الملف.'; $lang['disabled'] = 'عُطلت الإضافة %s.'; $lang['notdisabled'] = 'تعذر تعطيل الإضافة %s، تحقق من اذونات الملف.'; -$lang['packageinstalled'] = 'حزمة الإضافة (%d plugin(s): %Xs) ثبتت بنجاج.'; +$lang['packageinstalled'] = 'حزمة الإضافة (%d plugin(s): %s) ثبتت بنجاج.'; diff --git a/lib/plugins/plugin/lang/hi/lang.php b/lib/plugins/plugin/lang/hi/lang.php index ab29c6550..67b177256 100644 --- a/lib/plugins/plugin/lang/hi/lang.php +++ b/lib/plugins/plugin/lang/hi/lang.php @@ -6,7 +6,6 @@ * @author yndesai@gmail.com */ $lang['unknown'] = 'अज्ञात'; -$lang['deleted'] = 'मिटाया हुआ'; $lang['date'] = 'दिनांक:'; $lang['author'] = 'लेखक:'; $lang['error'] = 'अज्ञात त्रुटि हुइ'; diff --git a/lib/plugins/plugin/lang/pl/lang.php b/lib/plugins/plugin/lang/pl/lang.php index 1d3bbbc03..faaa69630 100644 --- a/lib/plugins/plugin/lang/pl/lang.php +++ b/lib/plugins/plugin/lang/pl/lang.php @@ -60,4 +60,4 @@ $lang['enabled'] = 'Wtyczka %s włączona.'; $lang['notenabled'] = 'Nie udało się uruchomić wtyczki %s, sprawdź uprawnienia dostępu do plików.'; $lang['disabled'] = 'Wtyczka %s wyłączona.'; $lang['notdisabled'] = 'Nie udało się wyłączyć wtyczki %s, sprawdź uprawnienia dostępu do plików.'; -$lang['packageinstalled'] = 'Pakiet wtyczek (%d wtyczki:% s) zainstalowany pomyślnie.'; +$lang['packageinstalled'] = 'Pakiet wtyczek (%d wtyczki: %s) zainstalowany pomyślnie.'; diff --git a/lib/plugins/plugin/lang/zh-tw/lang.php b/lib/plugins/plugin/lang/zh-tw/lang.php index 7b38a02c8..56149e79e 100644 --- a/lib/plugins/plugin/lang/zh-tw/lang.php +++ b/lib/plugins/plugin/lang/zh-tw/lang.php @@ -56,4 +56,4 @@ $lang['enabled'] = '附加元件 %s 已啟用。'; $lang['notenabled'] = '附加元件 %s 無法啟用,請檢查檔案權限。'; $lang['disabled'] = '附加元件 %s 已停用。'; $lang['notdisabled'] = '附加元件 %s 無法停用,請檢查檔案權限。'; -$lang['packageinstalled'] = '附加元件 (%d 附加元件%s: %s) 已安裝好。'; +$lang['packageinstalled'] = '附加元件 (%d 附加元件: %s) 已安裝好。'; diff --git a/lib/plugins/usermanager/lang/ca-valencia/lang.php b/lib/plugins/usermanager/lang/ca-valencia/lang.php index 5b0c628ed..c39c2f9b3 100644 --- a/lib/plugins/usermanager/lang/ca-valencia/lang.php +++ b/lib/plugins/usermanager/lang/ca-valencia/lang.php @@ -33,7 +33,7 @@ $lang['delete_ok'] = '%d usuaris borrats'; $lang['delete_fail'] = 'Erro borrant %d.'; $lang['update_ok'] = 'Usuari actualisat correctament'; $lang['update_fail'] = 'Erro actualisant usuari'; -$lang['update_exists'] = 'Erro canviant el nom de l\'usuari, el nom d\'usuari que ha donat ya existix (els demés canvis s\'aplicaran).'; +$lang['update_exists'] = 'Erro canviant el nom de l\'usuari (%s), el nom d\'usuari que ha donat ya existix (els demés canvis s\'aplicaran).'; $lang['start'] = 'primera'; $lang['prev'] = 'anterior'; $lang['next'] = 'següent'; -- cgit v1.2.3 From c70d6cee34ddc4be4dc136fe8421929100a13fd8 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 16 Feb 2013 20:24:25 +0100 Subject: disable additional auth plugins in installer --- install.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/install.php b/install.php index f54c25207..2db25bd2f 100644 --- a/install.php +++ b/install.php @@ -54,7 +54,8 @@ $dokuwiki_hash = array( '2011-05-25' => '4241865472edb6fa14a1227721008072', '2011-11-10' => 'b46ff19a7587966ac4df61cbab1b8b31', '2012-01-25' => '72c083c73608fc43c586901fd5dabb74', - '2012-09-10' => 'eb0b3fc90056fbc12bac6f49f7764df3' + '2012-09-10' => 'eb0b3fc90056fbc12bac6f49f7764df3', + 'devel' => '7b62b75245f57f122d3e0f8ed7989623', ); @@ -391,6 +392,24 @@ EOT; @touch(DOKU_INC.'data/cache/autosubmit.txt'); } + // disable auth plugins til needed + $output = << Date: Sat, 16 Feb 2013 16:07:00 -0500 Subject: Move inline diff headers into a vertical column. --- inc/DifferenceEngine.php | 19 +++++++++++-------- inc/html.php | 27 +++++++++++++++++++++------ 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php index 1b68cf6d3..1099f40eb 100644 --- a/inc/DifferenceEngine.php +++ b/inc/DifferenceEngine.php @@ -1070,11 +1070,13 @@ class TableDiffFormatter extends DiffFormatter { } function addedLine($line) { - return '+' . $line.''; + return '+'. + '' . $line.''; } function deletedLine($line) { - return '-' . $line.''; + return '-'. + '' . $line.''; } function emptyLine() { @@ -1082,7 +1084,8 @@ class TableDiffFormatter extends DiffFormatter { } function contextLine($line) { - return ' '.$line.''; + return ' '. + ''.$line.''; } function _added($lines) { @@ -1121,7 +1124,7 @@ class TableDiffFormatter extends DiffFormatter { * */ class InlineDiffFormatter extends DiffFormatter { - var $colspan = 4; + var $colspan = 2; function __construct() { $this->leading_context_lines = 2; @@ -1167,19 +1170,19 @@ class InlineDiffFormatter extends DiffFormatter { function _added($lines) { foreach ($lines as $line) { - print(''. $line . "\n"); + print('+'. $line . "\n"); } } function _deleted($lines) { foreach ($lines as $line) { - print('' . $line . "\n"); + print('-' . $line . "\n"); } } function _context($lines) { foreach ($lines as $line) { - print(''.$line."\n"); + print(' '.$line."\n"); } } @@ -1188,7 +1191,7 @@ class InlineDiffFormatter extends DiffFormatter { $add = $diff->inline(); foreach ($add as $line) - print(''.$line."\n"); + print('!'.$line."\n"); } } diff --git a/inc/html.php b/inc/html.php index c2723bceb..78042cb8b 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1003,14 +1003,16 @@ function html_backlinks(){ * @param string $r_rev Right revision * @param string $id Page id, if null $ID is used * @param bool $media If it is for media files + * @param bool $inline Return the header on a single line * @return array HTML snippets for diff header */ -function html_diff_head($l_rev, $r_rev, $id = null, $media = false) { +function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = false) { global $lang; if ($id === null) { global $ID; $id = $ID; } + $head_separator = $inline ? ' ' : '
'; $media_or_wikiFN = $media ? 'mediaFN' : 'wikiFN'; $ml_or_wl = $media ? 'ml' : 'wl'; $l_minor = $r_minor = ''; @@ -1032,7 +1034,7 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false) { $l_head_title = ($media) ? dformat($l_rev) : $id.' ['.dformat($l_rev).']'; $l_head = ''. $l_head_title.''. - '
'.$l_user.' '.$l_sum; + $head_separator.$l_user.' '.$l_sum; } if($r_rev){ @@ -1050,7 +1052,7 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false) { $r_head_title = ($media) ? dformat($r_rev) : $id.' ['.dformat($r_rev).']'; $r_head = ''. $r_head_title.''. - '
'.$r_user.' '.$r_sum; + $head_separator.$r_user.' '.$r_sum; }elseif($_rev = @filemtime($media_or_wikiFN($id))){ $_info = getRevisionInfo($id,$_rev,true, $media); if($_info['user']){ @@ -1067,7 +1069,7 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false) { $r_head = ''. $r_head_title.' '. '('.$lang['current'].')'. - '
'.$_user.' '.$_sum; + $head_separator.$_user.' '.$_sum; }else{ $r_head = '— ('.$lang['current'].')'; } @@ -1160,7 +1162,7 @@ function html_diff($text='',$intro=true,$type=null){ } $r_text = rawWiki($ID,$r_rev); - list($l_head, $r_head, $l_minor, $r_minor) = html_diff_head($l_rev, $r_rev); + list($l_head, $r_head, $l_minor, $r_minor) = html_diff_head($l_rev, $r_rev, null, false, $type == 'inline'); } $df = new Diff(explode("\n",hsc($l_text)),explode("\n",hsc($r_text))); @@ -1205,6 +1207,18 @@ function html_diff($text='',$intro=true,$type=null){ ?>
+ + + + + + + + - format($df)); ?> + format($df)); ?>
---> + +
+++> + +
> @@ -1213,7 +1227,8 @@ function html_diff($text='',$intro=true,$type=null){
Date: Sat, 16 Feb 2013 21:11:40 +0000 Subject: fix a couple of diff issues: shouldn't be any need to html encode before finding diffs; move quantifier outside regex condition --- inc/html.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/html.php b/inc/html.php index c2723bceb..6c42f6e7b 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1163,7 +1163,7 @@ function html_diff($text='',$intro=true,$type=null){ list($l_head, $r_head, $l_minor, $r_minor) = html_diff_head($l_rev, $r_rev); } - $df = new Diff(explode("\n",hsc($l_text)),explode("\n",hsc($r_text))); + $df = new Diff(explode("\n",$l_text),explode("\n",$r_text)); if($type == 'inline'){ $tdf = new InlineDiffFormatter(); @@ -1238,8 +1238,8 @@ function html_softbreak_callback($match){ &\#?\\w{1,6};) # ... for html entities - we don't want to split them (ok to catch some invalid combinations) &\#?\\w{1,6}; # yes pattern - a quicker match for the html entity, since we know we have one | -[?/,&\#;:]+ # no pattern - any other group of 'special' characters to insert a breaking character after -) # end conditional expression +[?/,&\#;:] # no pattern - any other group of 'special' characters to insert a breaking character after +)+ # end conditional expression REGEX; return preg_replace('<'.$regex.'>xu','\0​',$match[0]); -- cgit v1.2.3 From c0e94f2ae82b91c9a8af05eea8443b37eef52ba7 Mon Sep 17 00:00:00 2001 From: Tom N Harris Date: Sat, 16 Feb 2013 16:28:01 -0500 Subject: Monospace font for header prefix. --- inc/html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/html.php b/inc/html.php index 78042cb8b..420efd633 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1209,12 +1209,12 @@ function html_diff($text='',$intro=true,$type=null){ - - -- cgit v1.2.3 From 45970804e69e3d087fe19ad9cefaff0ef44be795 Mon Sep 17 00:00:00 2001 From: Klap-in Date: Sat, 16 Feb 2013 22:53:38 +0100 Subject: Complete metadata and defaults of auth plugin configs --- lib/plugins/authad/conf/default.php | 14 +++++++++++++ lib/plugins/authldap/conf/default.php | 20 ++++++++++++++---- lib/plugins/authldap/conf/metadata.php | 1 + lib/plugins/authldap/lang/en/settings.php | 5 ++++- lib/plugins/authmysql/conf/default.php | 33 +++++++++++++++++++++++++++++- lib/plugins/authmysql/conf/metadata.php | 1 + lib/plugins/authmysql/lang/en/settings.php | 1 + lib/plugins/authpgsql/conf/default.php | 32 ++++++++++++++++++++++++++++- 8 files changed, 100 insertions(+), 7 deletions(-) create mode 100644 lib/plugins/authad/conf/default.php diff --git a/lib/plugins/authad/conf/default.php b/lib/plugins/authad/conf/default.php new file mode 100644 index 000000000..05d6c328e --- /dev/null +++ b/lib/plugins/authad/conf/default.php @@ -0,0 +1,14 @@ + array('sub','one','base')); $meta['groupscope'] = array('multichoice','_choices' => array('sub','one','base')); +$meta['groupkey'] = array('string'); $meta['debug'] = array('onoff'); \ No newline at end of file diff --git a/lib/plugins/authldap/lang/en/settings.php b/lib/plugins/authldap/lang/en/settings.php index e3f4bab31..f20b7d2a3 100644 --- a/lib/plugins/authldap/lang/en/settings.php +++ b/lib/plugins/authldap/lang/en/settings.php @@ -12,4 +12,7 @@ $lang['binddn'] = 'DN of an ptional bind user if anonymous bind is not suff $lang['bindpw'] = 'Password of above user'; $lang['userscope'] = 'Limit search scope for user search'; $lang['groupscope'] = 'Limit search scope for group search'; -$lang['debug'] = 'Display additional debug information on errors'; \ No newline at end of file +$lang['groupkey'] = 'Group member ship from any user attribute (instead of standard AD groups) e.g. group from department or telephone number'; +$lang['debug'] = 'Display additional debug information on errors'; + + diff --git a/lib/plugins/authmysql/conf/default.php b/lib/plugins/authmysql/conf/default.php index ea2cdad72..4add3f57c 100644 --- a/lib/plugins/authmysql/conf/default.php +++ b/lib/plugins/authmysql/conf/default.php @@ -1,3 +1,34 @@ array(0,1,2)); $meta['forwardClearPass'] = array('onoff'); $meta['TablesToLock'] = array('array'); diff --git a/lib/plugins/authmysql/lang/en/settings.php b/lib/plugins/authmysql/lang/en/settings.php index dcdbbb16b..7b409ee1c 100644 --- a/lib/plugins/authmysql/lang/en/settings.php +++ b/lib/plugins/authmysql/lang/en/settings.php @@ -4,6 +4,7 @@ $lang['server'] = 'Your MySQL server'; $lang['user'] = 'MySQL user name'; $lang['password'] = 'Password for above user'; $lang['database'] = 'Database to use'; +$lang['charset'] = 'Character set used in database'; $lang['debug'] = 'Display additional debug information'; $lang['forwardClearPass'] = 'Pass user passwords as cleartext to the SQL statements below, instead of using the passcrypt option'; $lang['TablesToLock'] = 'Comma separated list of tables that should be locked on write operations'; diff --git a/lib/plugins/authpgsql/conf/default.php b/lib/plugins/authpgsql/conf/default.php index 401da80b7..7f78280f9 100644 --- a/lib/plugins/authpgsql/conf/default.php +++ b/lib/plugins/authpgsql/conf/default.php @@ -1,3 +1,33 @@ Date: Sat, 16 Feb 2013 23:03:01 +0100 Subject: separate default settings from non-existing settings setting type read from metadata eqaul to empty string is default 'setting' class (a textarea), everything else should be a existing class otherwise 'setting_no_class' is loaded --- lib/plugins/config/settings/config.class.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 16be9a689..a3cfae9f8 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -70,9 +70,14 @@ if (!class_exists('configuration')) { foreach ($keys as $key) { if (isset($this->_metadata[$key])) { $class = $this->_metadata[$key][0]; - $class = ($class && class_exists('setting_'.$class)) ? 'setting_'.$class : 'setting'; - if ($class=='setting') { - $this->setting[] = new setting_no_class($key,$param); + + if($class && class_exists('setting_'.$class)){ + $class = 'setting_'.$class; + } else { + if($class != '') { + $this->setting[] = new setting_no_class($key,$param); + } + $class = 'setting'; } $param = $this->_metadata[$key]; -- cgit v1.2.3 From 4005b0809260fbd36cb8652c7d726a5ee417c6f6 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sat, 16 Feb 2013 19:42:38 +0000 Subject: fixed html error in plugin lang file --- lib/plugins/authldap/lang/en/settings.php | 4 ++-- lib/plugins/config/lang/en/intro.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/plugins/authldap/lang/en/settings.php b/lib/plugins/authldap/lang/en/settings.php index e3f4bab31..cc9143169 100644 --- a/lib/plugins/authldap/lang/en/settings.php +++ b/lib/plugins/authldap/lang/en/settings.php @@ -3,8 +3,8 @@ $lang['server'] = 'Your LDAP server. Either hostname (localhost Date: Sat, 16 Feb 2013 23:55:52 +0100 Subject: litte fixes --- lib/plugins/authldap/lang/en/settings.php | 2 -- lib/plugins/authmysql/conf/default.php | 2 +- lib/plugins/authmysql/lang/en/settings.php | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/plugins/authldap/lang/en/settings.php b/lib/plugins/authldap/lang/en/settings.php index bca666e9f..0bb397be5 100644 --- a/lib/plugins/authldap/lang/en/settings.php +++ b/lib/plugins/authldap/lang/en/settings.php @@ -14,5 +14,3 @@ $lang['userscope'] = 'Limit search scope for user search'; $lang['groupscope'] = 'Limit search scope for group search'; $lang['groupkey'] = 'Group member ship from any user attribute (instead of standard AD groups) e.g. group from department or telephone number'; $lang['debug'] = 'Display additional debug information on errors'; - - diff --git a/lib/plugins/authmysql/conf/default.php b/lib/plugins/authmysql/conf/default.php index 4add3f57c..647f3d96c 100644 --- a/lib/plugins/authmysql/conf/default.php +++ b/lib/plugins/authmysql/conf/default.php @@ -2,7 +2,7 @@ $conf['charset'] = 'utf8'; $conf['server'] = ''; -$conf['user'] =''; +$conf['user'] = ''; $conf['password'] = ''; $conf['database'] = ''; $conf['debug'] = 0; diff --git a/lib/plugins/authmysql/lang/en/settings.php b/lib/plugins/authmysql/lang/en/settings.php index 7b409ee1c..77e4806b9 100644 --- a/lib/plugins/authmysql/lang/en/settings.php +++ b/lib/plugins/authmysql/lang/en/settings.php @@ -21,7 +21,7 @@ $lang['addUser'] = 'SQL statement to add a new user'; $lang['addGroup'] = 'SQL statement to add a new group'; $lang['addUserGroup'] = 'SQL statment to add a user to an existing group'; $lang['delGroup'] = 'SQL statement to remove a group'; -$lang['getUserID'] = 'SQL statement to get the primary ey of a user'; +$lang['getUserID'] = 'SQL statement to get the primary key of a user'; $lang['delUser'] = 'SQL statement to delete a user'; $lang['delUserRefs'] = 'SQL statement to remove a user from all groups'; $lang['updateUser'] = 'SQL statement to update a user profile'; -- cgit v1.2.3 From 56133a04d1c5dcd4825f4c0c978b8a9336d603d0 Mon Sep 17 00:00:00 2001 From: Tom N Harris Date: Sat, 16 Feb 2013 18:15:13 -0500 Subject: Fix width of indicator column. --- inc/DifferenceEngine.php | 10 +++++----- inc/html.php | 4 ++-- lib/tpl/default/design.css | 12 +++++++++++- lib/tpl/dokuwiki/css/_diff.css | 12 +++++++++++- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php index 1099f40eb..2125ad879 100644 --- a/inc/DifferenceEngine.php +++ b/inc/DifferenceEngine.php @@ -1151,7 +1151,7 @@ class InlineDiffFormatter extends DiffFormatter { $xbeg .= "," . $xlen; if ($ylen != 1) $ybeg .= "," . $ylen; - $r = '\n"; @@ -1170,19 +1170,19 @@ class InlineDiffFormatter extends DiffFormatter { function _added($lines) { foreach ($lines as $line) { - print('\n"); + print('\n"); } } function _deleted($lines) { foreach ($lines as $line) { - print('\n"); + print('\n"); } } function _context($lines) { foreach ($lines as $line) { - print('\n"); + print('\n"); } } @@ -1191,7 +1191,7 @@ class InlineDiffFormatter extends DiffFormatter { $add = $diff->inline(); foreach ($add as $line) - print('\n"); + print('\n"); } } diff --git a/inc/html.php b/inc/html.php index 420efd633..e657d2c78 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1209,12 +1209,12 @@ function html_diff($text='',$intro=true,$type=null){
---> + --->
+++> + +++>
@@ '.$lang['line']." -$xbeg +$ybeg @@"; + $r = '
@@ '.$lang['line']." -$xbeg +$ybeg @@"; $r .= ' '.$lang['deleted'].''; $r .= ' '.$lang['created'].''; $r .= "
+'. $line . "
+'. $line . "
-' . $line . "
-' . $line . "
 '.$line."
 '.$line."
!'.$line."
!'.$line."
- - diff --git a/lib/tpl/default/design.css b/lib/tpl/default/design.css index 3405ec258..4772fd2a5 100644 --- a/lib/tpl/default/design.css +++ b/lib/tpl/default/design.css @@ -632,7 +632,6 @@ div.dokuwiki td.diff-blockheader { div.dokuwiki table.diff th { border-bottom: 1px solid __border__; font-size: 110%; - width: 50%; font-weight: normal; text-align: left; } @@ -650,6 +649,17 @@ div.dokuwiki table.diff th span.sum { div.dokuwiki table.diff th.minor { font-style: italic; } +.dokuwiki table.diff_sidebyside th { + width: 50%; +} +.dokuwiki table.diff .diff-lineheader { + width: .7em; + text-align: right; +} +[dir=rtl] .dokuwiki table.diff .diff-lineheader { + text-align: left; +} +.dokuwiki table.diff .diff-lineheader, div.dokuwiki table.diff td { font-family: monospace; font-size: 100%; diff --git a/lib/tpl/dokuwiki/css/_diff.css b/lib/tpl/dokuwiki/css/_diff.css index 62f831213..58c24b5c7 100644 --- a/lib/tpl/dokuwiki/css/_diff.css +++ b/lib/tpl/dokuwiki/css/_diff.css @@ -21,7 +21,6 @@ .dokuwiki table.diff th { border-bottom: 1px solid __border__; font-size: 110%; - width: 50%; font-weight: normal; } .dokuwiki table.diff th a { @@ -37,8 +36,19 @@ .dokuwiki table.diff th.minor { color: #999; } +.dokuwiki table.diff_sidebyside th { + width: 50%; +} /* table body */ +.dokuwiki table.diff .diff-lineheader { + width: .7em; + text-align: right; +} +[dir=rtl] .dokuwiki table.diff .diff-lineheader { + text-align: left; +} +.dokuwiki table.diff .diff-lineheader, .dokuwiki table.diff td { font-family: Consolas, "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace; } -- cgit v1.2.3 From a69506c52fbd9c92500be4f380acc7e68d4d6560 Mon Sep 17 00:00:00 2001 From: Tom N Harris Date: Sat, 16 Feb 2013 18:27:12 -0500 Subject: Remove the prefix from inline diffs. The line prefix was not actually indicating what it should indicate. In particular, anything in a "changed" block would show a "!" even if the entire line was added or deleted. Better to print nothing than something that's wrong. --- inc/DifferenceEngine.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php index 2125ad879..c15c8b163 100644 --- a/inc/DifferenceEngine.php +++ b/inc/DifferenceEngine.php @@ -1170,13 +1170,13 @@ class InlineDiffFormatter extends DiffFormatter { function _added($lines) { foreach ($lines as $line) { - print('\n"); + print('\n"); } } function _deleted($lines) { foreach ($lines as $line) { - print('\n"); + print('\n"); } } @@ -1191,7 +1191,7 @@ class InlineDiffFormatter extends DiffFormatter { $add = $diff->inline(); foreach ($add as $line) - print('\n"); + print('\n"); } } -- cgit v1.2.3 From 60056e697fb1666e9b491b6f9f5654b694e3b8c9 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 17 Feb 2013 14:56:12 +0000 Subject: ensure diff formatters escape their output --- inc/DifferenceEngine.php | 58 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php index 1b68cf6d3..42975b208 100644 --- a/inc/DifferenceEngine.php +++ b/inc/DifferenceEngine.php @@ -797,7 +797,7 @@ class DiffFormatter { function _lines($lines, $prefix = ' ') { foreach ($lines as $line) - echo "$prefix $line\n"; + echo "$prefix ".$this->_escape($line)."\n"; } function _context($lines) { @@ -816,6 +816,10 @@ class DiffFormatter { echo "---\n"; $this->_added($closing); } + + function _escape($str){ + return $str; + } } /** @@ -871,13 +875,13 @@ class _HWLDF_WordAccumulator { function _flushGroup($new_tag) { if ($this->_group !== '') { if ($this->_tag == 'mark') - $this->_line .= ''.$this->_group.''; + $this->_line .= ''.$this->_escape($this->_group).''; elseif ($this->_tag == 'add') - $this->_line .= ''.$this->_group.''; + $this->_line .= ''.$this->_escape($this->_group).''; elseif ($this->_tag == 'del') - $this->_line .= ''.$this->_group.''; + $this->_line .= ''.$this->_escape($this->_group).''; else - $this->_line .= $this->_group; + $this->_line .= $this->_escape($this->_group); } $this->_group = ''; $this->_tag = $new_tag; @@ -912,6 +916,10 @@ class _HWLDF_WordAccumulator { $this->_flushLine('~done'); return $this->_lines; } + + function _escape($str){ + return hsc($str); + } } class WordLevelDiff extends MappedDiff { @@ -1069,11 +1077,17 @@ class TableDiffFormatter extends DiffFormatter { function _lines($lines, $prefix=' ', $color="white") { } - function addedLine($line) { + function addedLine($line,$escaped=false) { + if (!$escaped){ + $line = $this->_escape($line); + } return ''; } - function deletedLine($line) { + function deletedLine($line,$escaped=false) { + if (!$escaped){ + $line = $this->_escape($line); + } return ''; } @@ -1082,12 +1096,16 @@ class TableDiffFormatter extends DiffFormatter { } function contextLine($line) { - return ''; + return ''; } function _added($lines) { + $this->_addedLines($lines,false); + } + + function _addedLines($lines,$escaped=false){ foreach ($lines as $line) { - print('' . $this->emptyLine() . $this->addedLine($line) . "\n"); + print('' . $this->emptyLine() . $this->addedLine($line,$escaped) . "\n"); } } @@ -1104,15 +1122,19 @@ class TableDiffFormatter extends DiffFormatter { } function _changed($orig, $closing) { - $diff = new WordLevelDiff($orig, $closing); + $diff = new WordLevelDiff($orig, $closing); // this escapes the diff data $del = $diff->orig(); $add = $diff->closing(); while ($line = array_shift($del)) { $aline = array_shift($add); - print('' . $this->deletedLine($line) . $this->addedLine($aline) . "\n"); + print('' . $this->deletedLine($line,true) . $this->addedLine($aline,true) . "\n"); } - $this->_added($add); # If any leftovers + $this->_addedLines($add,true); # If any leftovers + } + + function _escape($str) { + return hsc($str); } } @@ -1167,29 +1189,33 @@ class InlineDiffFormatter extends DiffFormatter { function _added($lines) { foreach ($lines as $line) { - print('\n"); + print('\n"); } } function _deleted($lines) { foreach ($lines as $line) { - print('\n"); + print('\n"); } } function _context($lines) { foreach ($lines as $line) { - print('\n"); + print('\n"); } } function _changed($orig, $closing) { - $diff = new InlineWordLevelDiff($orig, $closing); + $diff = new InlineWordLevelDiff($orig, $closing); // this escapes the diff data $add = $diff->inline(); foreach ($add as $line) print('\n"); } + + function _escape($str) { + return hsc($str); + } } -- cgit v1.2.3 From 0fc50f81064736071e053d874b60a990fd1af8c2 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 17 Feb 2013 15:47:42 +0000 Subject: add property to show disabled plugins, set it to false (to hide by default) --- lib/plugins/config/settings/config.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 5b81be782..46e27654b 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -20,6 +20,7 @@ if (!class_exists('configuration')) { var $_metadata = array(); // holds metadata describing the settings var $setting = array(); // array of setting objects var $locked = false; // configuration is considered locked if it can't be updated + var $show_disabled_plugins = false; // configuration filenames var $_default_files = array(); @@ -262,7 +263,7 @@ if (!class_exists('configuration')) { function get_plugin_list() { if (is_null($this->_plugin_list)) { - $list = plugin_list('',true); // all plugins, including disabled ones + $list = plugin_list('',$this->show_disabled_plugins); // remove this plugin from the list $idx = array_search('config',$list); -- cgit v1.2.3 From aae735fc981470a44856ec34a838c4910ac68062 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 17 Feb 2013 16:54:23 +0000 Subject: tidy up authtype setting class (incl. fix issue with auth change/logoff occurring when only one auth plugin is enabled and other settings are updated) --- lib/plugins/config/settings/extra.class.php | 74 +++++++++++++---------------- 1 file changed, 34 insertions(+), 40 deletions(-) diff --git a/lib/plugins/config/settings/extra.class.php b/lib/plugins/config/settings/extra.class.php index 6998e1fbf..e4b97eb01 100644 --- a/lib/plugins/config/settings/extra.class.php +++ b/lib/plugins/config/settings/extra.class.php @@ -43,56 +43,50 @@ if (!class_exists('setting_authtype')) { class setting_authtype extends setting_multichoice { function initialize($default,$local,$protected) { - global $plugin_controller; + global $plugin_controller; - // retrive auth types provided by plugins - foreach ($plugin_controller->getList('auth') as $plugin) { - $this->_choices[] = $plugin; - } + // retrieve auth types provided by plugins + foreach ($plugin_controller->getList('auth') as $plugin) { + $this->_choices[] = $plugin; + } - parent::initialize($default,$local,$protected); + parent::initialize($default,$local,$protected); } function update($input) { - global $plugin_controller; - - // is an update posible? - $mayUpdate = parent::update($input); - - // is it an auth plugin? - if (in_array($input, $plugin_controller->getList('auth'))) { - // reject disabled plugins - if ($plugin_controller->isdisabled($input)) { - $this->_error = true; - msg('Auth type ' . $input . ' is disabled.', -1); - return false; - } - - // load the plugin - $auth_plugin = $plugin_controller->load('auth', $input); - - // @TODO: throw an error in plugin controller instead of returning null - if (is_null($auth_plugin)) { - $this->_error = true; - msg('Cannot load Auth Plugin "' . $input . '"', -1); - return false; - } - - // verify proper instanciation (is this really a plugin?) @TODO use instanceof? impement interface? - if (is_object($auth_plugin) && !method_exists($auth_plugin, 'getPluginName')) { - $this->_error = true; - msg('Cannot create Auth Plugin "' . $input . '"', -1); - return false; - } - } + global $plugin_controller; + + // is an update possible/requested? + $local = $this->_local; // save this, parent::update() may change it + if (!parent::update($input)) return false; // nothing changed or an error caught by parent + $this->_local = $local; // restore original, more error checking to come + + // attempt to load the plugin + $auth_plugin = $plugin_controller->load('auth', $input); + + // @TODO: throw an error in plugin controller instead of returning null + if (is_null($auth_plugin)) { + $this->_error = true; + msg('Cannot load Auth Plugin "' . $input . '"', -1); + return false; + } + + // verify proper instantiation (is this really a plugin?) @TODO use instanceof? implement interface? + if (is_object($auth_plugin) && !method_exists($auth_plugin, 'getPluginName')) { + $this->_error = true; + msg('Cannot create Auth Plugin "' . $input . '"', -1); + return false; + } // did we change the auth type? logout global $conf; if($conf['authtype'] != $input) { - msg('Authentication system changed. Please re-login.'); - auth_logoff(); + msg('Authentication system changed. Please re-login.'); + auth_logoff(); } - return true; + + $this->_local = $input; + return true; } } } -- cgit v1.2.3 From 22b77eded0c1fe0f6866972d97895a9e9dc26a1f Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 17 Feb 2013 16:55:12 +0000 Subject: improve comments on settings::update() method --- lib/plugins/config/settings/config.class.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index 46e27654b..8be53b145 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -388,10 +388,12 @@ if (!class_exists('setting')) { } /** - * update setting with user provided value $input - * if value fails error check, save it + * update changed setting with user provided value $input + * - if changed value fails error check, save it to $this->_input (to allow echoing later) + * - if changed value passes error check, set $this->_local to the new value * - * @return boolean true if changed, false otherwise (incl. on error) + * @param mixed $input the new value + * @return boolean true if changed, false otherwise (incl. on error) */ function update($input) { if (is_null($input)) return false; -- cgit v1.2.3 From 3a4ea35cfcc40e754577cb6a1e41442d14b6a0a6 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 17 Feb 2013 19:30:55 +0000 Subject: replace remaining hardcoded 'colspan' values with ->colspan --- inc/DifferenceEngine.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php index f6ed9aa13..e0fbf8e03 100644 --- a/inc/DifferenceEngine.php +++ b/inc/DifferenceEngine.php @@ -1037,6 +1037,7 @@ class UnifiedDiffFormatter extends DiffFormatter { * */ class TableDiffFormatter extends DiffFormatter { + var $colspan = 2; function __construct() { $this->leading_context_lines = 2; @@ -1061,8 +1062,8 @@ class TableDiffFormatter extends DiffFormatter { global $lang; $l1 = $lang['line'].' '.$xbeg; $l2 = $lang['line'].' '.$ybeg; - $r = '\n". - '\n". + $r = '\n". + '\n". "\n"; return $r; } @@ -1094,7 +1095,7 @@ class TableDiffFormatter extends DiffFormatter { } function emptyLine() { - return ''; + return ''; } function contextLine($line) { @@ -1173,7 +1174,7 @@ class InlineDiffFormatter extends DiffFormatter { $xbeg .= "," . $xlen; if ($ylen != 1) $ybeg .= "," . $ylen; - $r = '\n"; -- cgit v1.2.3 From 91328684db89e336404aff4644f8a53a1db64cad Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sun, 17 Feb 2013 20:32:29 +0100 Subject: Display media file size only if file exists (prevents PHP warning) --- inc/parser/xhtml.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 71f3aa4bf..4dd8c5e78 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -803,7 +803,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $class = preg_replace('/[^_\-a-z0-9]+/i','_',$ext); $link['class'] .= ' mediafile mf_'.$class; $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache),true); - $link['title'] .= ' (' . filesize_h(filesize(mediaFN($src))).')'; + if ($exists) $link['title'] .= ' (' . filesize_h(filesize(mediaFN($src))).')'; } if($hash) $link['url'] .= '#'.$hash; -- cgit v1.2.3 From 1947d1b49884a38ff63ed13d434b64dc4bb777a6 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 17 Feb 2013 21:57:53 +0000 Subject: force screen_mode to string type (IE returns a number which is always triggering the default option in the following switch/case block --- lib/tpl/dokuwiki/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tpl/dokuwiki/script.js b/lib/tpl/dokuwiki/script.js index 375500f78..4eb92a417 100644 --- a/lib/tpl/dokuwiki/script.js +++ b/lib/tpl/dokuwiki/script.js @@ -12,7 +12,7 @@ var device_classes = 'desktop mobile tablet phone'; function tpl_dokuwiki_mobile(){ // the z-index in mobile.css is (mis-)used purely for detecting the screen mode here - var screen_mode = jQuery('#screen__mode').css('z-index'); + var screen_mode = jQuery('#screen__mode').css('z-index') + ''; // determine our device pattern // TODO: consider moving into dokuwiki core -- cgit v1.2.3 From e5f0efe2a3ff34ae70388fe8d068935416174f1c Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 17 Feb 2013 22:52:28 +0000 Subject: improved disabled acl permission styling (FS#2714) --- lib/plugins/acl/style.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/plugins/acl/style.css b/lib/plugins/acl/style.css index f4277c341..f8574fe58 100644 --- a/lib/plugins/acl/style.css +++ b/lib/plugins/acl/style.css @@ -116,7 +116,8 @@ div#acl_manager .aclns { } div#acl_manager label.disabled { - color: __text_neu__!important; + opacity: .5; + cursor: auto; } #acl_manager label { -- cgit v1.2.3 From eda319e6664ad3c786312ffee7ce7cfbfa4eda1c Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 17 Feb 2013 22:55:55 +0000 Subject: removed unnecessary css parts --- lib/plugins/acl/style.css | 58 +++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/lib/plugins/acl/style.css b/lib/plugins/acl/style.css index f8574fe58..d8f0b53f3 100644 --- a/lib/plugins/acl/style.css +++ b/lib/plugins/acl/style.css @@ -1,5 +1,5 @@ -div#acl_manager div#acl__tree { +#acl__tree { font-size: 90%; width: 25%; height: 300px; @@ -8,61 +8,61 @@ div#acl_manager div#acl__tree { border: 1px solid __border__; text-align: left; } -[dir=rtl] div#acl_manager div#acl__tree { +[dir=rtl] #acl__tree { float: right; text-align: right; } -div#acl_manager div#acl__tree a.cur { +#acl__tree a.cur { background-color: __highlight__; font-weight: bold; } -div#acl_manager div#acl__tree ul { +#acl__tree ul { list-style-type: none; margin: 0; padding: 0; } -div#acl_manager div#acl__tree li { +#acl__tree li { padding-left: 1em; list-style-image: none; } -[dir=rtl] div#acl_manager div#acl__tree li { +[dir=rtl] #acl__tree li { padding-left: 0em; padding-right: 1em; } -div#acl_manager div#acl__tree ul img { +#acl__tree ul img { margin-right: 0.25em; cursor: pointer; } -[dir=rtl] div#acl_manager div#acl__tree ul img { +[dir=rtl] #acl__tree ul img { margin-left: 0.25em; margin-right: 0em; } -div#acl_manager div#acl__detail { +#acl__detail { width: 73%; height: 300px; float: right; overflow: auto; } -[dir=rtl] div#acl_manager div#acl__detail { +[dir=rtl] #acl__detail { float: left; } -div#acl_manager div#acl__detail fieldset { +#acl__detail fieldset { width: 90%; } -div#acl_manager div#acl__detail div#acl__user { +#acl__detail div#acl__user { border: 1px solid __border__; padding: 0.5em; margin-bottom: 0.6em; } -div#acl_manager table.inline { +#acl_manager table.inline { width: 100%; margin: 0; } @@ -75,60 +75,60 @@ div#acl_manager table.inline { text-align: right; } -div#acl_manager .aclgroup { +#acl_manager .aclgroup { background: transparent url(pix/group.png) 0px 1px no-repeat; padding: 1px 0px 1px 18px; } -[dir=rtl] div#acl_manager .aclgroup { +[dir=rtl] #acl_manager .aclgroup { background: transparent url(pix/group.png) right 1px no-repeat; padding: 1px 18px 1px 0px; display: inline-block; /* needed for IE7 */ } -div#acl_manager .acluser { +#acl_manager .acluser { background: transparent url(pix/user.png) 0px 1px no-repeat; padding: 1px 0px 1px 18px; } -[dir=rtl] div#acl_manager .acluser { +[dir=rtl] #acl_manager .acluser { background: transparent url(pix/user.png) right 1px no-repeat; padding: 1px 18px 1px 0px; display: inline-block; /* needed for IE7 */ } -div#acl_manager .aclpage { +#acl_manager .aclpage { background: transparent url(pix/page.png) 0px 1px no-repeat; padding: 1px 0px 1px 18px; } -[dir=rtl] div#acl_manager .aclpage { +[dir=rtl] #acl_manager .aclpage { background: transparent url(pix/page.png) right 1px no-repeat; padding: 1px 18px 1px 0px; display: inline-block; /* needed for IE7 */ } -div#acl_manager .aclns { +#acl_manager .aclns { background: transparent url(pix/ns.png) 0px 1px no-repeat; padding: 1px 0px 1px 18px; } -[dir=rtl] div#acl_manager .aclns { +[dir=rtl] #acl_manager .aclns { background: transparent url(pix/ns.png) right 1px no-repeat; padding: 1px 18px 1px 0px; display: inline-block; /* needed for IE7 */ } -div#acl_manager label.disabled { - opacity: .5; - cursor: auto; +#acl_manager label.disabled { + opacity: .5; + cursor: auto; } #acl_manager label { - text-align: left; - font-weight: normal; - display: inline; + text-align: left; + font-weight: normal; + display: inline; } #acl_manager table { - margin-left: 10%; - width: 80%; + margin-left: 10%; + width: 80%; } #acl_manager table tr { -- cgit v1.2.3 From c33b315b06b3a52a61cb1ecc2b3beadd4ecd0311 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Mon, 18 Feb 2013 01:08:40 +0000 Subject: removed a bunch of functions which were deprecated in 2005/2006 --- .../Sniffs/PHP/DeprecatedFunctionsSniff.php | 1 + inc/common.php | 21 --- inc/io.php | 19 --- inc/parserutils.php | 78 --------- inc/plugin.php | 7 - inc/search.php | 188 ++------------------- lib/plugins/config/settings/config.metadata.php | 8 - 7 files changed, 15 insertions(+), 307 deletions(-) diff --git a/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php b/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php index ecd4093b8..c5d14377b 100644 --- a/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php +++ b/_cs/DokuWiki/Sniffs/PHP/DeprecatedFunctionsSniff.php @@ -49,6 +49,7 @@ class DokuWiki_Sniffs_PHP_DeprecatedFunctionsSniff extends Generic_Sniffs_PHP_Fo 'search_fulltext' => 'Fulltext Indexer', 'search_regex' => 'Fulltext Indexer', 'tpl_getFavicon' => 'tpl_getMediaFile', + 'p_cached_xhtml' => 'p_cached_output', ); /** diff --git a/inc/common.php b/inc/common.php index 28b527633..471eb91b5 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1174,27 +1174,6 @@ function getGoogleQuery() { return $q; } -/** - * Try to set correct locale - * - * @deprecated No longer used - * @author Andreas Gohr - */ -function setCorrectLocale() { - global $conf; - global $lang; - - $enc = strtoupper($lang['encoding']); - foreach($lang['locales'] as $loc) { - //try locale - if(@setlocale(LC_ALL, $loc)) return; - //try loceale with encoding - if(@setlocale(LC_ALL, "$loc.$enc")) return; - } - //still here? try to set from environment - @setlocale(LC_ALL, ""); -} - /** * Return the human readable size of a file * diff --git a/inc/io.php b/inc/io.php index 5ecc79703..4bd7c3364 100644 --- a/inc/io.php +++ b/inc/io.php @@ -529,25 +529,6 @@ function io_rename($from,$to){ return true; } - -/** - * Runs an external command and returns its output as string - * - * @author Harry Brueckner - * @author Andreas Gohr - * @deprecated - */ -function io_runcmd($cmd){ - $fh = popen($cmd, "r"); - if(!$fh) return false; - $ret = ''; - while (!feof($fh)) { - $ret .= fread($fh, 8192); - } - pclose($fh); - return $ret; -} - /** * Runs an external command with input and output pipes. * Returns the exit code from the process. diff --git a/inc/parserutils.php b/inc/parserutils.php index 1733fcf09..56161af44 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -85,67 +85,6 @@ function p_wiki_xhtml($id, $rev='', $excuse=true){ return $ret; } -/** - * Returns starting summary for a page (e.g. the first few - * paragraphs), marked up in XHTML. - * - * If $excuse is true an explanation is returned if the file - * wasn't found - * - * @param string $id wiki page id - * @param string $title populated with page title from heading or page id - * @param string $rev revision string - * @param bool $excuse if an excuse shall be renderer when no content is found - * @return string xhtml code - * @deprecated - * @author Harry Fuecks - */ -function p_wiki_xhtml_summary($id, &$title, $rev='', $excuse=true){ - $file = wikiFN($id,$rev); - $ret = ''; - $ins = null; - - //ensure $id is in global $ID (needed for parsing) - global $ID; - $keep = $ID; - $ID = $id; - - if($rev){ - if(@file_exists($file)){ - //no caching on old revisions - $ins = p_get_instructions(io_readWikiPage($file,$id,$rev)); - }elseif($excuse){ - $ret = p_locale_xhtml('norev'); - //restore ID (just in case) - $ID = $keep; - return $ret; - } - - }else{ - - if(@file_exists($file)){ - // The XHTML for a summary is not cached so use the instruction cache - $ins = p_cached_instructions($file); - }elseif($excuse){ - $ret = p_locale_xhtml('newpage'); - //restore ID (just in case) - $ID = $keep; - return $ret; - } - } - - $ret = p_render('xhtmlsummary',$ins,$info); - - if ( $info['sum_pagetitle'] ) { - $title = $info['sum_pagetitle']; - } else { - $title = $id; - } - - $ID = $keep; - return $ret; -} - /** * Returns the specified local text in parsed format * @@ -157,23 +96,6 @@ function p_locale_xhtml($id){ return $html; } -/** - * *** DEPRECATED *** - * - * use p_cached_output() - * - * Returns the given file parsed to XHTML - * - * Uses and creates a cachefile - * - * @deprecated - * @author Andreas Gohr - * @todo rewrite to use mode instead of hardcoded XHTML - */ -function p_cached_xhtml($file){ - return p_cached_output($file); -} - /** * Returns the given file parsed into the requested output format * diff --git a/inc/plugin.php b/inc/plugin.php index cd6bd5ac7..4d3d45f62 100644 --- a/inc/plugin.php +++ b/inc/plugin.php @@ -258,11 +258,4 @@ class DokuWiki_Plugin { function isSingleton() { return true; } - - // deprecated functions - function plugin_localFN($id) { return $this->localFN($id); } - function plugin_locale_xhtml($id) { return $this->locale_xhtml($id); } - function plugin_email($e, $n='', $c='', $m='') { return $this->email($e, $n, $c, $m); } - function plugin_link($l, $t='', $c='', $to='', $m='') { return $this->external_link($l, $t, $c, $to, $m); } - function plugin_render($t, $f='xhtml') { return $this->render($t, $f); } } diff --git a/inc/search.php b/inc/search.php index cc3e79006..e4aa3b9eb 100644 --- a/inc/search.php +++ b/inc/search.php @@ -61,15 +61,6 @@ function search(&$data,$base,$func,$opts,$dir='',$lvl=1,$sort='natural'){ } } -/** - * Wrapper around call_user_func_array. - * - * @deprecated - */ -function search_callback($func,&$data,$base,$file,$type,$lvl,$opts){ - return call_user_func_array($func, array(&$data,$base,$file,$type,$lvl,$opts)); -} - /** * The following functions are userfunctions to use with the search * function above. This function is called for every found file or @@ -283,125 +274,25 @@ function search_allpages(&$data,$base,$file,$type,$lvl,$opts){ } /** - * Search for backlinks to a given page + * Reference search + * This fuction searches for existing references to a given media file + * and returns an array with the found pages. It doesn't pay any + * attention to ACL permissions to find every reference. The caller + * must check if the user has the appropriate rights to see the found + * page and eventually have to prevent the result from displaying. * - * $opts['ns'] namespace of the page - * $opts['name'] name of the page without namespace + * @param array $data Reference to the result data structure + * @param string $base Base usually $conf['datadir'] + * @param string $file current file or directory relative to $base + * @param char $type Type either 'd' for directory or 'f' for file + * @param int $lvl Current recursion depht + * @param mixed $opts option array as given to search() * - * @author Andreas Gohr - * @deprecated Replaced by ft_backlinks() - */ -function search_backlinks(&$data,$base,$file,$type,$lvl,$opts){ - //we do nothing with directories - if($type == 'd') return true; - //only search txt files - if(substr($file,-4) != '.txt') return true; - - //absolute search id - $sid = cleanID($opts['ns'].':'.$opts['name']); - - //current id and namespace - $cid = pathID($file); - $cns = getNS($cid); - - //check ACL - if(auth_quickaclcheck($cid) < AUTH_READ){ - return false; - } - - //fetch instructions - $instructions = p_cached_instructions($base.$file,true); - if(is_null($instructions)) return false; - - global $conf; - //check all links for match - foreach($instructions as $ins){ - if($ins[0] == 'internallink' || ($conf['camelcase'] && $ins[0] == 'camelcaselink') ){ - $mid = $ins[1][0]; - resolve_pageid($cns,$mid,$exists); //exists is not used - if($mid == $sid){ - //we have a match - finish - $data[]['id'] = $cid; - break; - } - } - } - - return false; -} - -/** - * Fulltextsearch - * - * $opts['query'] is the search query + * $opts['query'] is the demanded media file name * * @author Andreas Gohr - * @deprecated - fulltext indexer is used instead + * @author Matthias Grimm */ -function search_fulltext(&$data,$base,$file,$type,$lvl,$opts){ - //we do nothing with directories - if($type == 'd') return true; - //only search txt files - if(substr($file,-4) != '.txt') return true; - - //check ACL - $id = pathID($file); - if(auth_quickaclcheck($id) < AUTH_READ){ - return false; - } - - //create regexp from queries - $poswords = array(); - $negwords = array(); - $qpreg = preg_split('/\s+/',$opts['query']); - - foreach($qpreg as $word){ - switch(substr($word,0,1)){ - case '-': - if(strlen($word) > 1){ // catch single '-' - array_push($negwords,preg_quote(substr($word,1),'#')); - } - break; - case '+': - if(strlen($word) > 1){ // catch single '+' - array_push($poswords,preg_quote(substr($word,1),'#')); - } - break; - default: - array_push($poswords,preg_quote($word,'#')); - break; - } - } - - // a search without any posword is useless - if (!count($poswords)) return true; - - $reg = '^(?=.*?'.join(')(?=.*?',$poswords).')'; - $reg .= count($negwords) ? '((?!'.join('|',$negwords).').)*$' : '.*$'; - search_regex($data,$base,$file,$reg,$poswords); - return true; - } - - /** - * Reference search - * This fuction searches for existing references to a given media file - * and returns an array with the found pages. It doesn't pay any - * attention to ACL permissions to find every reference. The caller - * must check if the user has the appropriate rights to see the found - * page and eventually have to prevent the result from displaying. - * - * @param array $data Reference to the result data structure - * @param string $base Base usually $conf['datadir'] - * @param string $file current file or directory relative to $base - * @param char $type Type either 'd' for directory or 'f' for file - * @param int $lvl Current recursion depht - * @param mixed $opts option array as given to search() - * - * $opts['query'] is the demanded media file name - * - * @author Andreas Gohr - * @author Matthias Grimm - */ function search_reference(&$data,$base,$file,$type,$lvl,$opts){ global $conf; @@ -423,57 +314,6 @@ function search_reference(&$data,$base,$file,$type,$lvl,$opts){ /* ------------- helper functions below -------------- */ -/** - * fulltext search helper - * searches a text file with a given regular expression - * no ACL checks are performed. This have to be done by - * the caller if necessary. - * - * @param array $data reference to array for results - * @param string $base base directory - * @param string $file file name to search in - * @param string $reg regular expression to search for - * @param array $words words that should be marked in the results - * - * @author Andreas Gohr - * @author Matthias Grimm - * - * @deprecated - fulltext indexer is used instead - */ -function search_regex(&$data,$base,$file,$reg,$words){ - - //get text - $text = io_readfile($base.'/'.$file); - //lowercase text (u modifier does not help with case) - $lctext = utf8_strtolower($text); - - //do the fulltext search - $matches = array(); - if($cnt = preg_match_all('#'.$reg.'#usi',$lctext,$matches)){ - //this is not the best way for snippet generation but the fastest I could find - $q = $words[0]; //use first word for snippet creation - $p = utf8_strpos($lctext,$q); - $f = $p - 100; - $l = utf8_strlen($q) + 200; - if($f < 0) $f = 0; - $snippet = ' ... '. - htmlspecialchars(utf8_substr($text,$f,$l)). - ' ... '; - $mark = '('.join('|', $words).')'; - $snippet = preg_replace('#'.$mark.'#si','\\1',$snippet); - - $data[] = array( - 'id' => pathID($file), - 'count' => preg_match_all('#'.$mark.'#usi',$lctext,$matches), - 'poswords' => join(' ',$words), - 'snippet' => $snippet, - ); - } - - return true; -} - - /** * fulltext sort * diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php index bdbc4311f..22e76a013 100644 --- a/lib/plugins/config/settings/config.metadata.php +++ b/lib/plugins/config/settings/config.metadata.php @@ -70,14 +70,6 @@ $config['varname'] = 'conf'; // name of the config variable, sans $ // this value can be overriden when calling save_settings() method $config['heading'] = 'Dokuwiki\'s Main Configuration File - Local Settings'; -/* DEPRECATED -// ---------------[ setting files ]-------------------------------------- -// these values can be string expressions, they will be eval'd before use -$file['local'] = "DOKU_CONF.'local.php'"; // mandatory (file doesn't have to exist) -$file['default'] = "DOKU_CONF.'dokuwiki.php'"; // optional -$file['protected'] = "DOKU_CONF.'local.protected.php'"; // optional - */ - // test value (FIXME, remove before publishing) //$meta['test'] = array('multichoice','_choices' => array('')); -- cgit v1.2.3 From 07a30891fae578fc908dc88ad4ee02ee336fffe7 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Mon, 18 Feb 2013 01:21:07 +0000 Subject: fixed line endings --- bin/.htaccess | 4 ++-- lib/plugins/acl/lang/vi/help.txt | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/bin/.htaccess b/bin/.htaccess index 9c96d3742..281d5c33d 100644 --- a/bin/.htaccess +++ b/bin/.htaccess @@ -1,2 +1,2 @@ -order allow,deny -deny from all +order allow,deny +deny from all diff --git a/lib/plugins/acl/lang/vi/help.txt b/lib/plugins/acl/lang/vi/help.txt index 23e258678..816e5ee71 100644 --- a/lib/plugins/acl/lang/vi/help.txt +++ b/lib/plugins/acl/lang/vi/help.txt @@ -1,12 +1,12 @@ -=== Trợ giúp nhanh: === - -Trang này giúp bạn thêm hoặc xóa quyền được cấp cho 1 thư mục hoặc trang wiki của bạn. - -Của sổ bên trái hiển thị tất cả các thư mục và trang văn bản. - -Khung trên đây cho phép bạn xem và sửa quyền của một nhóm hoặc thành viên đã chọn. - -Bảng bên dưới hiển thị tất cả các quyền được cấp. Bạn có thể sửa hoặc hóa các quyền đó một cách nhanh chóng. - -Đọc [[doku>acl|tài liệu chính thức về ACL]] sẽ giúp bạn hiểu hơn về cách phân quyền ở DokuWiki. - +=== Trợ giúp nhanh: === + +Trang này giúp bạn thêm hoặc xóa quyền được cấp cho 1 thư mục hoặc trang wiki của bạn. + +Của sổ bên trái hiển thị tất cả các thư mục và trang văn bản. + +Khung trên đây cho phép bạn xem và sửa quyền của một nhóm hoặc thành viên đã chọn. + +Bảng bên dưới hiển thị tất cả các quyền được cấp. Bạn có thể sửa hoặc hóa các quyền đó một cách nhanh chóng. + +Đọc [[doku>acl|tài liệu chính thức về ACL]] sẽ giúp bạn hiểu hơn về cách phân quyền ở DokuWiki. + -- cgit v1.2.3 From 7a4d121f8568b0aee5f0e117737f3675dcc85100 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Mon, 18 Feb 2013 18:51:01 +0000 Subject: change tpl_actiondropdown request method to 'get' --- inc/template.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/template.php b/inc/template.php index a5bcabf1e..e9c0f1699 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1373,7 +1373,7 @@ function tpl_actiondropdown($empty = '', $button = '>') { global $REV; global $lang; - echo '
'; + echo ''; echo '
'; echo ''; if($REV) echo ''; -- cgit v1.2.3 From a02e0d0ea02e11f105aeb3b9cc4dabdd5a1bc217 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Mon, 18 Feb 2013 18:55:33 +0000 Subject: remove security token from tpl_actiondropdown - its not necessary, we're not posting any system change --- inc/template.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/template.php b/inc/template.php index e9c0f1699..1734b08a0 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1377,7 +1377,6 @@ function tpl_actiondropdown($empty = '', $button = '>') { echo '
'; echo ''; if($REV) echo ''; - echo ''; echo ''; if($REV) echo ''; + if ($_SERVER['REMOTE_USER']) { + echo ''; + } echo ''; -- cgit v1.2.3 From 6416b708d3d115a6d7529b6c388c796fcb651d55 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Wed, 20 Feb 2013 19:43:29 +0100 Subject: Fix handling of failed authentication loading In the case of a failed authentication initialization, the authentication setup was simply continued with an unset $auth object. This restores the previous behavior (before merging #141) of simply returning after unsetting $auth. Furthermore this re-introduces the check if $auth is set before checking $auth and removes a useless check if $auth is true (could never be false). --- inc/auth.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/inc/auth.php b/inc/auth.php index d82b8b5dd..92a56e163 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -54,16 +54,17 @@ function auth_setup() { } } - if(!$auth){ + if(!isset($auth) || !$auth){ msg($lang['authtempfail'], -1); return false; } - if ($auth && $auth->success == false) { + if ($auth->success == false) { // degrade to unauthenticated user unset($auth); auth_logoff(); msg($lang['authtempfail'], -1); + return false; } // do the login either by cookie or provided credentials XXX -- cgit v1.2.3 From 5737a81e37e630de02f54e4e6304ede226159306 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Wed, 20 Feb 2013 20:18:59 +0100 Subject: Revert the search depth behavior changes from #154 This reverts parts of the changes from #154: Before merging the pull request, a depth of 1 returned just the pages in the root namespace. With the changes in the pull request, a depth of 1 also returned pages in subnamespaces of the root namespace (as it was also tested in the test case). This reverts this part of the changes and a depth of 1 returns just the pages in the root namespace again. --- _test/tests/inc/search/search.test.php | 4 ++-- inc/search.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_test/tests/inc/search/search.test.php b/_test/tests/inc/search/search.test.php index 9c854a661..33d4e9d8d 100644 --- a/_test/tests/inc/search/search.test.php +++ b/_test/tests/inc/search/search.test.php @@ -22,9 +22,9 @@ class search_test extends DokuWikiTest { search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 1), 'ns1/ns3'); $this->assertEquals(0, count($data)); - //depth is 1 so I should get only pages from ns1 + //depth is 2 so I should get only pages from ns1 $data = array(); - search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 1), 'ns1'); + search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 2), 'ns1'); $this->assertEquals(2, count($data)); } diff --git a/inc/search.php b/inc/search.php index e4aa3b9eb..6927fff5f 100644 --- a/inc/search.php +++ b/inc/search.php @@ -243,8 +243,8 @@ function search_pagename(&$data,$base,$file,$type,$lvl,$opts){ function search_allpages(&$data,$base,$file,$type,$lvl,$opts){ if(isset($opts['depth']) && $opts['depth']){ $parts = explode('/',ltrim($file,'/')); - if(($type == 'd' && count($parts) > $opts['depth']) - || ($type != 'd' && count($parts) > $opts['depth'] + 1)){ + if(($type == 'd' && count($parts) >= $opts['depth']) + || ($type != 'd' && count($parts) > $opts['depth'])){ return false; // depth reached } } -- cgit v1.2.3 From 00d58927261c5bed6f093ca4aa2064a18139a228 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Wed, 20 Feb 2013 20:26:05 +0100 Subject: Fix remaining missing $INPUT uses FS#2577 This adds $INPUT in all places where it was still missing and available. $INPUT is now also used in places where using $_REQUEST/... was okay in order to make the code consistent. --- doku.php | 2 +- inc/auth.php | 2 +- lib/plugins/authad/auth.php | 5 +++-- lib/plugins/plugin/admin.php | 3 ++- lib/plugins/revert/admin.php | 13 +++++++------ lib/plugins/usermanager/admin.php | 25 +++++++++++++------------ 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/doku.php b/doku.php index 607303ca4..68976ebb3 100644 --- a/doku.php +++ b/doku.php @@ -29,7 +29,7 @@ if(isset($_SERVER['HTTP_X_DOKUWIKI_DO'])) { require_once(DOKU_INC.'inc/init.php'); //import variables -$_REQUEST['id'] = str_replace("\xC2\xAD", '', $INPUT->str('id')); //soft-hyphen +$INPUT->set('id', str_replace("\xC2\xAD", '', $INPUT->str('id'))); //soft-hyphen $QUERY = trim($INPUT->str('id')); $ID = getID(); diff --git a/inc/auth.php b/inc/auth.php index 92a56e163..68b6b438d 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -92,7 +92,7 @@ function auth_setup() { // apply cleaning if (true === $auth->success) { - $_REQUEST['u'] = $auth->cleanUser($_REQUEST['u']); + $INPUT->set('u', $auth->cleanUser($INPUT->str('u'))); } if($INPUT->str('authtok')) { diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index f651d87a1..6c49eafbb 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -71,6 +71,7 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * Constructor */ public function __construct() { + global $INPUT; parent::__construct(); // we load the config early to modify it a bit here @@ -99,8 +100,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { // we need to simulate a login if(empty($_COOKIE[DOKU_COOKIE])) { - $_REQUEST['u'] = $_SERVER['REMOTE_USER']; - $_REQUEST['p'] = 'sso_only'; + $INPUT->set('u', $_SERVER['REMOTE_USER']); + $INPUT->set('p', 'sso_only'); } } diff --git a/lib/plugins/plugin/admin.php b/lib/plugins/plugin/admin.php index 8b1ee3c7d..de4de6aef 100644 --- a/lib/plugins/plugin/admin.php +++ b/lib/plugins/plugin/admin.php @@ -61,11 +61,12 @@ class admin_plugin_plugin extends DokuWiki_Admin_Plugin { * handle user request */ function handle() { + global $INPUT; // enable direct access to language strings $this->setupLocale(); - $fn = $_REQUEST['fn']; + $fn = $INPUT->param('fn'); if (is_array($fn)) { $this->cmd = key($fn); $this->plugin = is_array($fn[$this->cmd]) ? key($fn[$this->cmd]) : null; diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php index fcdaa230d..847e38876 100644 --- a/lib/plugins/revert/admin.php +++ b/lib/plugins/revert/admin.php @@ -44,15 +44,16 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin { * output appropriate html */ function html() { + global $INPUT; echo $this->plugin_locale_xhtml('intro'); $this->_searchform(); - if(is_array($_REQUEST['revert']) && checkSecurityToken()){ - $this->_revert($_REQUEST['revert'],$_REQUEST['filter']); - }elseif(isset($_REQUEST['filter'])){ - $this->_list($_REQUEST['filter']); + if(is_array($INPUT->param('revert')) && checkSecurityToken()){ + $this->_revert($INPUT->arr('revert'),$INPUT->str('filter')); + }elseif($INPUT->has('filter')){ + $this->_list($INPUT->str('filter')); } } @@ -60,10 +61,10 @@ class admin_plugin_revert extends DokuWiki_Admin_Plugin { * Display the form for searching spam pages */ function _searchform(){ - global $lang; + global $lang, $INPUT; echo '
'; echo ''; - echo ''; + echo ''; echo ' '; echo ' '.$this->getLang('note1').''; echo '


'; diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php index cf8963e64..01f4a4cdb 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -73,11 +73,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * handle user request */ function handle() { + global $INPUT; if (is_null($this->_auth)) return false; // extract the command and any specific parameters // submit button name is of the form - fn[cmd][param(s)] - $fn = $_REQUEST['fn']; + $fn = $INPUT->param('fn'); if (is_array($fn)) { $cmd = key($fn); @@ -88,8 +89,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } if ($cmd != "search") { - if (!empty($_REQUEST['start'])) - $this->_start = $_REQUEST['start']; + $this->_start = $INPUT->int('start', 0); $this->_filter = $this->_retrieveFilter(); } @@ -345,6 +345,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } function _addUser(){ + global $INPUT; if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('addUser')) return false; @@ -353,7 +354,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($this->_auth->canDo('modPass')){ if (empty($pass)){ - if(!empty($_REQUEST['usernotify'])){ + if($INPUT->has('usernotify')){ $pass = auth_pwgen(); } else { msg($this->lang['add_fail'], -1); @@ -393,7 +394,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { msg($this->lang['add_ok'], 1); - if (!empty($_REQUEST['usernotify']) && $pass) { + if ($INPUT->has('usernotify') && $pass) { $this->_notifyUser($user,$pass); } } else { @@ -407,13 +408,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * Delete user */ function _deleteUser(){ - global $conf; + global $conf, $INPUT; if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('delUser')) return false; - $selected = $_REQUEST['delete']; - if (!is_array($selected) || empty($selected)) return false; + $selected = $INPUT->arr('delete'); + if (empty($selected)) return false; $selected = array_keys($selected); if(in_array($_SERVER['REMOTE_USER'], $selected)) { @@ -463,13 +464,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { * Modify user (modified user data has been recieved) */ function _modifyUser(){ - global $conf; + global $conf, $INPUT; if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('UserMod')) return false; // get currently valid user data - $olduser = cleanID(preg_replace('/.*:/','',$_REQUEST['userid_old'])); + $olduser = cleanID(preg_replace('/.*:/','',$INPUT->str('userid_old'))); $oldinfo = $this->_auth->getUserData($olduser); // get new user data subject to change @@ -494,7 +495,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } // generate password if left empty and notification is on - if(!empty($_REQUEST['usernotify']) && empty($newpass)){ + if($INPUT->has('usernotify') && empty($newpass)){ $newpass = auth_pwgen(); } @@ -510,7 +511,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($ok = $this->_auth->triggerUserMod('modify', array($olduser, $changes))) { msg($this->lang['update_ok'],1); - if (!empty($_REQUEST['usernotify']) && $newpass) { + if ($INPUT->has('usernotify') && $newpass) { $notify = empty($changes['user']) ? $olduser : $newuser; $this->_notifyUser($notify,$newpass); } -- cgit v1.2.3 From af2cfd7b82393672123fde194798dbf00541588a Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 21 Feb 2013 21:59:05 +0000 Subject: add unit test for pageinfo() --- _test/tests/inc/common_pageinfo.test.php | 299 +++++++++++++++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 _test/tests/inc/common_pageinfo.test.php diff --git a/_test/tests/inc/common_pageinfo.test.php b/_test/tests/inc/common_pageinfo.test.php new file mode 100644 index 000000000..c54fbce26 --- /dev/null +++ b/_test/tests/inc/common_pageinfo.test.php @@ -0,0 +1,299 @@ + + */ +class common_pageinfo_test extends DokuWikiTest { + + function setup(){ + parent::setup(); + + global $USERINFO; + $USERINFO = array( + 'pass' => '179ad45c6ce2cb97cf1029e212046e81', + 'name' => 'Arthur Dent', + 'mail' => 'arthur@example.com', + 'grps' => array ('admin','user'), + ); + $_SERVER['REMOTE_USER'] = 'testuser'; + $_SERVER['REMOTE_ADDR'] = '1.2.3.4'; + } + + function _get_expected_pageinfo() { + global $USERINFO; + $info = array ( + 'isadmin' => true, + 'ismanager' => true, + 'userinfo' => $USERINFO, + 'perm' => 255, + 'namespace' => false, + 'ismobile' => false, + 'client' => 'testuser', + ); + $info['rev'] = null; + $info['subscribed'] = false; + $info['locked'] = false; + $info['exists'] = false; + $info['writable'] = true; + $info['editable'] = true; + $info['lastmod'] = false; + $info['meta'] = array(); + $info['ip'] = null; + $info['user'] = null; + $info['sum'] = null; + $info['editor'] = null; + + return $info; + } + + /** + * check info keys and values for a non-existent page & admin user + */ + function test_basic_nonexistentpage(){ + global $ID,$conf; + $ID = 'wiki:start'; + + $info = $this->_get_expected_pageinfo(); + $info['id'] = 'wiki:start'; + $info['namespace'] = 'wiki'; + $info['filepath'] = $conf['datadir'].'/wiki/start.txt'; + + $this->assertEquals($info, pageinfo()); + } + + /** + * check info keys and values for a existing page & admin user + */ + function test_basic_existingpage(){ + global $ID,$conf; + $ID = 'wiki:syntax'; + $filename = $conf['datadir'].'/wiki/syntax.txt'; + $rev = filemtime($filename); + + $info = $this->_get_expected_pageinfo(); + $info['id'] = 'wiki:syntax'; + $info['namespace'] = 'wiki'; + $info['filepath'] = $filename; + $info['exists'] = true; + $info['lastmod'] = $rev; + $info['meta'] = p_get_metadata($ID); + + $this->assertEquals($info, pageinfo()); + } + + /** + * check info keys and values for anonymous user + */ + function test_anonymoususer(){ + global $ID,$conf,$REV; + + unset($_SERVER['REMOTE_USER']); + global $USERINFO; $USERINFO = array(); + + $ID = 'wiki:syntax'; + $filename = $conf['datadir'].'/wiki/syntax.txt'; + $rev = filemtime($filename); + + $info = $this->_get_expected_pageinfo(); + $info['id'] = 'wiki:syntax'; + $info['namespace'] = 'wiki'; + $info['filepath'] = $filename; + $info['exists'] = true; + $info['lastmod'] = $rev; + $info['meta'] = p_get_metadata($ID); + $info['rev'] = ''; + + $info = array_merge($info, array( + 'isadmin' => false, + 'ismanager' => false, + 'perm' => 8, + 'client' => '1.2.3.4', + )); + unset($info['userinfo']); + $this->assertEquals($info, pageinfo()); + } + + /** + * check info keys and values with $REV + * (also see $RANGE tests) + */ + function test_rev(){ + global $ID,$conf,$REV; + + $ID = 'wiki:syntax'; + $filename = $conf['datadir'].'/wiki/syntax.txt'; + $rev = filemtime($filename); + $REV = $rev - 100; + + $info = $this->_get_expected_pageinfo(); + $info['id'] = 'wiki:syntax'; + $info['namespace'] = 'wiki'; + $info['meta'] = p_get_metadata($ID); + $info['rev'] = $REV; + $info['filepath'] = str_replace('pages','attic',substr($filename,0,-3).$REV.'.txt.gz'); + + $this->assertEquals($info, pageinfo()); + $this->assertEquals($rev-100, $REV); + } + + /** + * check info keys and values with $RANGE + */ + function test_range(){ + global $ID,$conf,$REV,$RANGE; + + $ID = 'wiki:syntax'; + $filename = $conf['datadir'].'/wiki/syntax.txt'; + $rev = filemtime($filename); + $range = '1000-2000'; + + $info = $this->_get_expected_pageinfo(); + $info['id'] = 'wiki:syntax'; + $info['namespace'] = 'wiki'; + $info['exists'] = true; + $info['lastmod'] = $rev; + $info['meta'] = p_get_metadata($ID); + $info['filepath'] = $filename; + + // check $RANGE without $REV + // expected result $RANGE unchanged + $RANGE = $range; + + $this->assertEquals($info, pageinfo()); + $this->assertFalse(isset($REV)); + $this->assertEquals($range,$RANGE); + + // check $RANGE with $REV = current + // expected result: $RANGE unchanged, $REV cleared + $REV = $rev; + $info['rev'] = ''; + + $this->assertEquals($info, pageinfo()); + $this->assertEquals('',$REV); + $this->assertEquals($range,$RANGE); + + // check with a real $REV + // expected result: $REV and $RANGE are cleared + $REV = $rev - 100; + + $this->assertEquals($info, pageinfo()); + $this->assertEquals('',$REV); + $this->assertEquals('',$RANGE); + } + + /** + * test editor entry and external edit + */ + function test_editor_and_externaledits(){ + global $ID,$conf; + $ID = 'wiki:syntax'; + $filename = $conf['datadir'].'/wiki/syntax.txt'; + $rev = filemtime($filename); + + $info = $this->_get_expected_pageinfo(); + $info['id'] = 'wiki:syntax'; + $info['namespace'] = 'wiki'; + $info['filepath'] = $filename; + $info['exists'] = true; + $info['lastmod'] = $rev; + $info['meta'] = p_get_metadata($ID); // need $INFO set correctly for addLogEntry() + + global $INFO; + $INFO = $info; + + // add an editor for the current version of $ID + addLogEntry($rev, $ID); + + $info['meta'] = p_get_metadata($ID); + $info['editor'] = $_SERVER['REMOTE_USER']; + $info['user'] = $_SERVER['REMOTE_USER']; + $info['ip'] = $_SERVER['REMOTE_ADDR']; + $info['sum'] = ''; + + // with an editor ... + $this->assertEquals($info, pageinfo()); + + // clear the meta['last_change'] value, pageinfo should restore it + p_set_metadata($ID,array('last_change' => false)); + + $this->assertEquals($info, pageinfo()); + $this->assertEquals($info['meta']['last_change'], p_get_metadata($ID,'last_change')); + + // fake an external edit, pageinfo should clear the last change from meta data + // and not return any editor data + $now = time()+10; + touch($filename,$now); + + $info['lastmod'] = $now; + $info['meta']['last_change'] = false; + $info['ip'] = null; + $info['user'] = null; + $info['sum'] = null; + $info['editor'] = null; + + $this->assertEquals($info, pageinfo()); + $this->assertEquals($info['meta'], p_get_metadata($ID)); // check metadata has been updated correctly + } + + /** + * check draft + */ + function test_draft(){ + global $ID,$conf; + $ID = 'wiki:syntax'; + $filename = $conf['datadir'].'/wiki/syntax.txt'; + $rev = filemtime($filename); + + $info = $this->_get_expected_pageinfo(); + $info['id'] = 'wiki:syntax'; + $info['namespace'] = 'wiki'; + $info['filepath'] = $filename; + $info['exists'] = true; + $info['lastmod'] = $rev; + $info['meta'] = p_get_metadata($ID); + + // setup a draft, make it more recent than the current page + // - pageinfo should recognise it and keep it + $draft = getCacheName($info['client'].$ID,'.draft'); + touch($draft,$rev + 10); + + $info['draft'] = $draft; + + $this->assertEquals($info, pageinfo()); + $this->assertFileExists($draft); + + // make the draft older than the current page + // - pageinfo should remove it and not return the 'draft' key + touch($draft,$rev - 10); + unset($info['draft']); + + $this->assertEquals($info, pageinfo()); + $this->assertFalse(file_exists($draft)); + } + + /** + * check ismobile + */ + function test_ismobile(){ + global $ID,$conf; + $ID = 'wiki:start'; + + $info = $this->_get_expected_pageinfo(); + $info['id'] = 'wiki:start'; + $info['namespace'] = 'wiki'; + $info['filepath'] = $conf['datadir'].'/wiki/start.txt'; + + // overkill, ripped from clientismobile() as we aren't testing detection - but forcing it + $_SERVER['HTTP_X_WAP_PROFILE'] = 'a fake url'; + $_SERVER['HTTP_ACCEPT'] .= ';wap'; + $_SERVER['HTTP_USER_AGENT'] = 'blackberry,symbian,hand,mobi,phone'; + + $info['ismobile'] = clientismobile(); + + $this->assertTrue(clientismobile()); // ensure THIS test fails if clientismobile() returns false + $this->assertEquals($info, pageinfo()); // it would be a test failure not a pageinfo failure. + } +} + +//Setup VIM: ex: et ts=4 : -- cgit v1.2.3 From f00926dd85886b81600997f6b4fbc69af9deacad Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 22 Feb 2013 09:46:43 +0100 Subject: little change to syntax we had on the life site --- data/pages/wiki/syntax.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/pages/wiki/syntax.txt b/data/pages/wiki/syntax.txt index 55bbabab2..f2c2864ed 100644 --- a/data/pages/wiki/syntax.txt +++ b/data/pages/wiki/syntax.txt @@ -83,9 +83,9 @@ Windows shares like [[\\server\share|this]] are recognized, too. Please note tha Notes: * For security reasons direct browsing of windows shares only works in Microsoft Internet Explorer per default (and only in the "local zone"). - * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/local.protected.php'': + * For Mozilla and Firefox it can be enabled through different workaround mentioned in the [[http://kb.mozillazine.org/Links_to_local_pages_do_not_work|Mozilla Knowledge Base]]. However, there will still be a JavaScript warning about trying to open a Windows Share. To remove this warning (for all users), put the following line in ''conf/userscript.js'': - $lang['js']['nosmblinks'] = ''; + LANG.nosmblinks = ''; ==== Image Links ==== -- cgit v1.2.3 From b9b9b28b2edb54f9a3b3c5b9c69fd37a729007ec Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sat, 23 Feb 2013 12:35:57 +0100 Subject: Fix double encoding in rss syntax FS#2731 --- inc/parser/xhtml.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 4dd8c5e78..84a999e56 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -889,7 +889,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { // title is escaped by SimplePie, we unescape here because it // is escaped again in externallink() FS#1705 $this->externallink($item->get_permalink(), - htmlspecialchars_decode($item->get_title())); + html_entity_decode($item->get_title(), ENT_QUOTES, 'UTF-8')); }else{ $this->doc .= ' '.$item->get_title(); } -- cgit v1.2.3 From d00152be83dd30024aa5dd89b9ad9a70eb25d80f Mon Sep 17 00:00:00 2001 From: Lorenzo Radaelli Date: Sun, 24 Feb 2013 10:36:18 +0100 Subject: Italian language update --- inc/lang/it/lang.php | 8 ++++++++ lib/plugins/authad/lang/it/settings.php | 5 +++++ lib/plugins/authldap/lang/it/settings.php | 5 +++++ lib/plugins/authmysql/lang/it/settings.php | 5 +++++ lib/plugins/authpgsql/lang/it/settings.php | 5 +++++ lib/plugins/config/lang/it/lang.php | 1 + 6 files changed, 29 insertions(+) create mode 100644 lib/plugins/authad/lang/it/settings.php create mode 100644 lib/plugins/authldap/lang/it/settings.php create mode 100644 lib/plugins/authmysql/lang/it/settings.php create mode 100644 lib/plugins/authpgsql/lang/it/settings.php diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 307e7292f..92bf5fea8 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -205,6 +205,7 @@ $lang['mail_new_user'] = 'nuovo utente:'; $lang['mail_upload'] = 'file caricato:'; $lang['changes_type'] = 'Guarda cambiamenti di'; $lang['pages_changes'] = 'Pagine'; +$lang['media_changes'] = 'File multimediali'; $lang['both_changes'] = 'Sia pagine che media files'; $lang['qb_bold'] = 'Grassetto'; $lang['qb_italic'] = 'Corsivo'; @@ -263,6 +264,8 @@ $lang['subscr_m_unsubscribe'] = 'Rimuovi sottoscrizione'; $lang['subscr_m_subscribe'] = 'Sottoscrivi'; $lang['subscr_m_receive'] = 'Ricevi'; $lang['subscr_style_every'] = 'email per ogni modifica'; +$lang['subscr_style_digest'] = 'email di riassunto dei cambiamenti per ogni pagina (ogni %.2f giorni)'; +$lang['subscr_style_list'] = 'lista delle pagine cambiate dall\'ultima email (ogni %.2f giorni)'; $lang['authmodfailed'] = 'La configurazione dell\'autenticazione non è corretta. Informa l\'amministratore di questo wiki.'; $lang['authtempfail'] = 'L\'autenticazione è temporaneamente non disponibile. Se questa situazione persiste, informa l\'amministratore di questo wiki.'; $lang['authpwdexpire'] = 'La tua password scadrà in %d giorni, dovresti cambiarla quanto prima.'; @@ -290,6 +293,9 @@ $lang['i_pol1'] = 'Wiki Pubblico (lettura per tutti, scrittura e $lang['i_pol2'] = 'Wiki Chiuso (lettura, scrittura, caricamento file solamente per gli utenti registrati)'; $lang['i_retry'] = 'Riprova'; $lang['i_license'] = 'Per favore scegli la licenza sotto cui vuoi rilasciare il contenuto:'; +$lang['i_license_none'] = 'Non mostrare informazioni sulla licenza'; +$lang['i_pop_field'] = 'Per favore, aiutaci ad incrementare la conoscenza di DokuWiki:'; +$lang['i_pop_label'] = 'Mensilmente invia una statistica d\'uso anonima di DokuWiki agli sviluppatori'; $lang['recent_global'] = 'Stai attualmente vedendo le modifiche effettuate nell\'area %s. Puoi anche vedere le modifiche recenti dell\'intero wiki.'; $lang['years'] = '%d anni fa'; $lang['months'] = '%d mesi fa'; @@ -314,8 +320,10 @@ $lang['media_files'] = 'File in %s'; $lang['media_upload'] = 'Upload al %s'; $lang['media_search'] = 'Cerca in %s'; $lang['media_view'] = '%s'; +$lang['media_viewold'] = '%s a %s'; $lang['media_edit'] = 'Modifica %s'; $lang['media_history'] = 'Storia di %s'; +$lang['media_meta_edited'] = 'metadata modificati'; $lang['media_perm_read'] = 'Spiacente, non hai abbastanza privilegi per leggere i files.'; $lang['media_perm_upload'] = 'Spiacente, non hai abbastanza privilegi per caricare files.'; $lang['media_update'] = 'Carica nuova versione'; diff --git a/lib/plugins/authad/lang/it/settings.php b/lib/plugins/authad/lang/it/settings.php new file mode 100644 index 000000000..10ae72f87 --- /dev/null +++ b/lib/plugins/authad/lang/it/settings.php @@ -0,0 +1,5 @@ + Date: Sun, 24 Feb 2013 10:37:45 +0100 Subject: Simplified Chinese language update --- inc/lang/zh/lang.php | 3 +++ lib/plugins/authad/lang/zh/settings.php | 18 ++++++++++++++ lib/plugins/authldap/lang/zh/settings.php | 20 +++++++++++++++ lib/plugins/authmysql/lang/zh/settings.php | 40 ++++++++++++++++++++++++++++++ lib/plugins/authpgsql/lang/zh/settings.php | 37 +++++++++++++++++++++++++++ 5 files changed, 118 insertions(+) create mode 100644 lib/plugins/authad/lang/zh/settings.php create mode 100644 lib/plugins/authldap/lang/zh/settings.php create mode 100644 lib/plugins/authmysql/lang/zh/settings.php create mode 100644 lib/plugins/authpgsql/lang/zh/settings.php diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index e6e568cb5..f404010ba 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -298,6 +298,9 @@ $lang['i_pol1'] = '公共的维基(任何人都有读的权限 $lang['i_pol2'] = '关闭的维基(只有注册用户才有读、写、上传的权限)'; $lang['i_retry'] = '重试'; $lang['i_license'] = '请选择您希望的内容发布许可协议:'; +$lang['i_license_none'] = '不要显示任何许可协议信息'; +$lang['i_pop_field'] = '请帮助我们改进 Dokuwiki 的体验:'; +$lang['i_pop_label'] = '每个月向 Dokuwiki 开发者发送匿名的使用数据'; $lang['recent_global'] = '您当前看到的是%s 名称空间的变动。你还可以在查看整个维基的近期变动。'; $lang['years'] = '%d年前'; $lang['months'] = '%d月前'; diff --git a/lib/plugins/authad/lang/zh/settings.php b/lib/plugins/authad/lang/zh/settings.php new file mode 100644 index 000000000..9fd3c4e35 --- /dev/null +++ b/lib/plugins/authad/lang/zh/settings.php @@ -0,0 +1,18 @@ + + */ +$lang['account_suffix'] = '您的账户后缀。例如 @my.domain.org'; +$lang['base_dn'] = '您的基本分辨名。例如 DC=my,DC=domain,DC=org'; +$lang['domain_controllers'] = '逗号分隔的域名控制器列表。例如 srv1.domain.org,srv2.domain.org'; +$lang['ad_username'] = '一个活动目录的特权用户,可以查看其他所有用户的数据。可选,但对某些活动例如发送订阅邮件是必须的。'; +$lang['ad_password'] = '上述用户的密码。'; +$lang['sso'] = '是否使用经由 Kerberos 和 NTLM 的 Single-Sign-On?'; +$lang['real_primarygroup'] = ' 是否解析真实的主要组,而不是假设为“域用户” (较慢)'; +$lang['use_ssl'] = '使用 SSL 连接?如果是,不要激活下面的 TLS。'; +$lang['use_tls'] = '使用 TLS 连接?如果是 ,不要激活上面的 SSL。'; +$lang['debug'] = '有错误时显示额外的调试信息?'; +$lang['expirywarn'] = '提前多少天警告用户密码即将到期。0 则禁用。'; +$lang['additional'] = '需要从用户数据中获取的额外 AD 属性的列表,以逗号分隔。用于某些插件。'; diff --git a/lib/plugins/authldap/lang/zh/settings.php b/lib/plugins/authldap/lang/zh/settings.php new file mode 100644 index 000000000..e84511b42 --- /dev/null +++ b/lib/plugins/authldap/lang/zh/settings.php @@ -0,0 +1,20 @@ + + */ +$lang['server'] = '您的 LDAP 服务器。填写主机名 (localhost) 或者完整的 URL (ldap://server.tld:389)'; +$lang['port'] = 'LDAP 服务器端口 (如果上面没有给出完整的 URL)'; +$lang['usertree'] = '何处查找用户账户。例如 ou=People, dc=server, dc=tld'; +$lang['grouptree'] = '何处查找用户组。例如 ou=Group, dc=server, dc=tld'; +$lang['userfilter'] = '用于搜索用户账户的 LDAP 筛选器。例如 (&(uid=%{user})(objectClass=posixAccount))'; +$lang['groupfilter'] = '用于搜索组的 LDAP 筛选器。例如 (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; +$lang['version'] = '使用的协议版本。您或许需要设置为 3'; +$lang['starttls'] = '使用 TLS 连接?'; +$lang['referrals'] = '是否允许引用 (referrals)?'; +$lang['binddn'] = '一个可选的绑定用户的 DN (如果匿名绑定不满足要求)。例如 Eg. cn=admin, dc=my, dc=home'; +$lang['bindpw'] = '上述用户的密码'; +$lang['userscope'] = '限制用户搜索的范围'; +$lang['groupscope'] = '限制组搜索的范围'; +$lang['debug'] = '有错误时显示额外的调试信息'; diff --git a/lib/plugins/authmysql/lang/zh/settings.php b/lib/plugins/authmysql/lang/zh/settings.php new file mode 100644 index 000000000..43cfbb3c0 --- /dev/null +++ b/lib/plugins/authmysql/lang/zh/settings.php @@ -0,0 +1,40 @@ + + */ +$lang['server'] = '您的 MySQL 服务器'; +$lang['user'] = 'MySQL 用户名'; +$lang['password'] = '上述用户的密码'; +$lang['database'] = '使用的数据库'; +$lang['debug'] = '显示额外调试信息'; +$lang['forwardClearPass'] = '将用户密码以明文形式传送给下面的 SQL 语句,而不使用 passcrypt 密码加密选项'; +$lang['TablesToLock'] = '在写操作时需要锁定的数据表列表,以逗号分隔'; +$lang['checkPass'] = '检查密码的 SQL 语句'; +$lang['getUserInfo'] = '获取用户信息的 SQL 语句'; +$lang['getGroups'] = '或许用户的组成员身份的 SQL 语句'; +$lang['getUsers'] = '列出所有用户的 SQL 语句'; +$lang['FilterLogin'] = '根据登录名筛选用户的 SQL 子句'; +$lang['FilterName'] = '根据全名筛选用户的 SQL 子句'; +$lang['FilterEmail'] = '根据电子邮件地址筛选用户的 SQL 子句'; +$lang['FilterGroup'] = '根据组成员身份筛选用户的 SQL 子句'; +$lang['SortOrder'] = '对用户排序的 SQL 子句'; +$lang['addUser'] = '添加新用户的 SQL 语句'; +$lang['addGroup'] = '添加新组的 SQL 语句'; +$lang['addUserGroup'] = '将用户添加到现有组的 SQL 语句'; +$lang['delGroup'] = '删除组的 SQL 语句'; +$lang['getUserID'] = '获取用户主键的 SQL 语句'; +$lang['delUser'] = '删除用户的 SQL 语句'; +$lang['delUserRefs'] = '从所有组中删除一个用户的 SQL 语句'; +$lang['updateUser'] = '更新用户信息的 SQL 语句'; +$lang['UpdateLogin'] = '更新用户登录名的 Update 子句'; +$lang['UpdatePass'] = '更新用户密码的 Update 子句'; +$lang['UpdateEmail'] = '更新用户电子邮件地址的 Update 子句'; +$lang['UpdateName'] = '更新用户全名的 Update 子句'; +$lang['UpdateTarget'] = '更新时识别用户的 Limit 子句'; +$lang['delUserGroup'] = '从指定组删除用户的 SQL 语句'; +$lang['getGroupID'] = '获取指定组主键的 SQL 语句'; +$lang['debug_o_0'] = '无'; +$lang['debug_o_1'] = '仅在有错误时'; +$lang['debug_o_2'] = '所有 SQL 查询'; diff --git a/lib/plugins/authpgsql/lang/zh/settings.php b/lib/plugins/authpgsql/lang/zh/settings.php new file mode 100644 index 000000000..dc7223d89 --- /dev/null +++ b/lib/plugins/authpgsql/lang/zh/settings.php @@ -0,0 +1,37 @@ + + */ +$lang['server'] = '您的 PostgreSQL 服务器'; +$lang['port'] = '您的 PostgreSQL 服务器端口'; +$lang['user'] = 'PostgreSQL 用户名'; +$lang['password'] = '上述用户的密码'; +$lang['database'] = '使用的数据库'; +$lang['debug'] = '显示额外调试信息'; +$lang['forwardClearPass'] = '将用户密码以明文形式传送给下面的 SQL 语句,而不使用 passcrypt 密码加密选项'; +$lang['checkPass'] = '检查密码的 SQL 语句'; +$lang['getUserInfo'] = '获取用户信息的 SQL 语句'; +$lang['getGroups'] = '获取用户的组成员身份的 SQL 语句'; +$lang['getUsers'] = '列出所有用户的 SQL 语句'; +$lang['FilterLogin'] = '根据登录名筛选用户的 SQL 子句'; +$lang['FilterName'] = '根据全名筛选用户的 SQL 子句'; +$lang['FilterEmail'] = '根据电子邮件地址筛选用户的 SQL 子句'; +$lang['FilterGroup'] = '根据组成员身份筛选用户的 SQL 子句'; +$lang['SortOrder'] = '对用户排序的 SQL 子句'; +$lang['addUser'] = '添加新用户的 SQL 语句'; +$lang['addGroup'] = '添加新组的 SQL 语句'; +$lang['addUserGroup'] = '将用户添加到现有组的 SQL 语句'; +$lang['delGroup'] = '删除组的 SQL 语句'; +$lang['getUserID'] = '获取用户主键的 SQL 语句'; +$lang['delUser'] = '删除用户的 SQL 语句'; +$lang['delUserRefs'] = '从所有组中删除一个用户的 SQL 语句'; +$lang['updateUser'] = '更新用户信息的 SQL 语句'; +$lang['UpdateLogin'] = '更新用户登录名的 Update 子句'; +$lang['UpdatePass'] = '更新用户密码的 Update 子句'; +$lang['UpdateEmail'] = '更新用户电子邮件地址的 Update 子句'; +$lang['UpdateName'] = '更新用户全名的 Update 子句'; +$lang['UpdateTarget'] = '更新时识别用户的 Limit 子句'; +$lang['delUserGroup'] = '从指定组删除用户的 SQL 语句'; +$lang['getGroupID'] = '获取指定组主键的 SQL 语句'; -- cgit v1.2.3 From 338ac38c748d94f32ca394dc604dda97ce6762e3 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 24 Feb 2013 10:39:52 +0100 Subject: fixed typos --- lib/plugins/authldap/lang/en/settings.php | 4 ++-- lib/plugins/authpgsql/lang/en/settings.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/plugins/authldap/lang/en/settings.php b/lib/plugins/authldap/lang/en/settings.php index 0bb397be5..ddedf8ae3 100644 --- a/lib/plugins/authldap/lang/en/settings.php +++ b/lib/plugins/authldap/lang/en/settings.php @@ -1,14 +1,14 @@ localhost) or full qualified URL (ldap://server.tld:389)'; $lang['port'] = 'LDAP server port if no full URL was given above'; -$lang['usertree'] = 'Where to finde the user accounts. Eg. ou=People, dc=server, dc=tld'; +$lang['usertree'] = 'Where to find the user accounts. Eg. ou=People, dc=server, dc=tld'; $lang['grouptree'] = 'Where to find the user groups. Eg. ou=Group, dc=server, dc=tld'; $lang['userfilter'] = 'LDAP filter to search for user accounts. Eg. (&(uid=%{user})(objectClass=posixAccount))'; $lang['groupfilter'] = 'LDAP filter to search for groups. Eg. (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))'; $lang['version'] = 'The protocol version to use. You may need to set this to 3'; $lang['starttls'] = 'Use TLS connections?'; $lang['referrals'] = 'Shall referrals be followed?'; -$lang['binddn'] = 'DN of an ptional bind user if anonymous bind is not sufficient. Eg. cn=admin, dc=my, dc=home'; +$lang['binddn'] = 'DN of an optional bind user if anonymous bind is not sufficient. Eg. cn=admin, dc=my, dc=home'; $lang['bindpw'] = 'Password of above user'; $lang['userscope'] = 'Limit search scope for user search'; $lang['groupscope'] = 'Limit search scope for group search'; diff --git a/lib/plugins/authpgsql/lang/en/settings.php b/lib/plugins/authpgsql/lang/en/settings.php index 74a1c1cc9..8c048fa0f 100644 --- a/lib/plugins/authpgsql/lang/en/settings.php +++ b/lib/plugins/authpgsql/lang/en/settings.php @@ -20,7 +20,7 @@ $lang['addUser'] = 'SQL statement to add a new user'; $lang['addGroup'] = 'SQL statement to add a new group'; $lang['addUserGroup'] = 'SQL statment to add a user to an existing group'; $lang['delGroup'] = 'SQL statement to remove a group'; -$lang['getUserID'] = 'SQL statement to get the primary ey of a user'; +$lang['getUserID'] = 'SQL statement to get the primary key of a user'; $lang['delUser'] = 'SQL statement to delete a user'; $lang['delUserRefs'] = 'SQL statement to remove a user from all groups'; $lang['updateUser'] = 'SQL statement to update a user profile'; -- cgit v1.2.3 From e0d6578c4fcc8130316f82645446333b06849a0e Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Mon, 18 Feb 2013 17:32:13 +0000 Subject: fix security caution for 'remote' setting (was 'xmlrpc') --- lib/plugins/config/settings/config.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index e5e09d8f8..8eb99284d 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -370,7 +370,7 @@ if (!class_exists('setting')) { var $_cautionList = array( 'basedir' => 'danger', 'baseurl' => 'danger', 'savedir' => 'danger', 'cookiedir' => 'danger', 'useacl' => 'danger', 'authtype' => 'danger', 'superuser' => 'danger', 'userewrite' => 'danger', 'start' => 'warning', 'camelcase' => 'warning', 'deaccent' => 'warning', 'sepchar' => 'warning', 'compression' => 'warning', 'xsendfile' => 'warning', 'renderer_xhtml' => 'warning', 'fnencode' => 'warning', - 'allowdebug' => 'security', 'htmlok' => 'security', 'phpok' => 'security', 'iexssprotect' => 'security', 'xmlrpc' => 'security', 'fullpath' => 'security' + 'allowdebug' => 'security', 'htmlok' => 'security', 'phpok' => 'security', 'iexssprotect' => 'security', 'remote' => 'security', 'fullpath' => 'security' ); function setting($key, $params=null) { -- cgit v1.2.3 From fd215c0fad082b21c598826c70aa0c5f1e078440 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sun, 24 Feb 2013 14:03:13 +0100 Subject: Fix sample handling in toolbar in tb_format FS#2691 The previous fix in e38f3066cedb80722b3488e7ab3b2809b6db5363 fixed this bug only in tb_formatln. --- lib/scripts/toolbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/scripts/toolbar.js b/lib/scripts/toolbar.js index 059a4ba5c..6d75215e0 100644 --- a/lib/scripts/toolbar.js +++ b/lib/scripts/toolbar.js @@ -72,7 +72,7 @@ function initToolbar(tbid,edid,tb, allowblock){ * @author Andreas Gohr */ function tb_format(btn, props, edid) { - var sample = props.title || props.sample; + var sample = props.sample || props.title; insertTags(edid, fixtxt(props.open), fixtxt(props.close), -- cgit v1.2.3 From 8770796f2519e41d394b3d774bc831b9315e10a8 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 24 Feb 2013 19:10:48 +0000 Subject: make scrolling possible in media manager on smaller screens (FS#2723) --- lib/tpl/dokuwiki/css/mobile.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/tpl/dokuwiki/css/mobile.css b/lib/tpl/dokuwiki/css/mobile.css index 88333c012..e1d4dda72 100644 --- a/lib/tpl/dokuwiki/css/mobile.css +++ b/lib/tpl/dokuwiki/css/mobile.css @@ -89,6 +89,10 @@ .dokuwiki div.page { padding: 1em; } +/* enable horizontal scrolling in media manager */ +.mode_media div.page { + overflow: auto; +} /* _edit */ .dokuwiki div.section_highlight { -- cgit v1.2.3 From aaec90e43993614263ee747a827f0c8555698958 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Mon, 25 Feb 2013 00:42:45 +0100 Subject: Fix search button in rtl languages in Chrome For some reason without position: relative the search button is hidden in rtl languages. --- lib/tpl/dokuwiki/css/design.css | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/tpl/dokuwiki/css/design.css b/lib/tpl/dokuwiki/css/design.css index 2c2109228..2eb357a59 100644 --- a/lib/tpl/dokuwiki/css/design.css +++ b/lib/tpl/dokuwiki/css/design.css @@ -205,6 +205,7 @@ background-position: 5px 0; margin-left: 0; margin-right: -20px; + position: relative; } #dokuwiki__sitetools ul { -- cgit v1.2.3 From 058fd09655df42c72f3c447e3b9561e4909e978d Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Mon, 25 Feb 2013 00:45:46 +0100 Subject: Fix current mode icons in rtl languages --- lib/tpl/dokuwiki/css/pagetools.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/tpl/dokuwiki/css/pagetools.css b/lib/tpl/dokuwiki/css/pagetools.css index 60dc43fb1..0c31e283f 100644 --- a/lib/tpl/dokuwiki/css/pagetools.css +++ b/lib/tpl/dokuwiki/css/pagetools.css @@ -222,7 +222,7 @@ [dir=rtl] #dokuwiki__pagetools ul li a.revs:hover, [dir=rtl] #dokuwiki__pagetools ul li a.revs:active, [dir=rtl] #dokuwiki__pagetools ul li a.revs:focus, -.mode_revisions [dir=rtl] #dokuwiki__pagetools ul li a.revs { +[dir=rtl] .mode_revisions #dokuwiki__pagetools ul li a.revs { background-position: left -585px; } @@ -241,7 +241,7 @@ [dir=rtl] #dokuwiki__pagetools ul li a.backlink:hover, [dir=rtl] #dokuwiki__pagetools ul li a.backlink:active, [dir=rtl] #dokuwiki__pagetools ul li a.backlink:focus, -.mode_backlink [dir=rtl] #dokuwiki__pagetools ul li a.backlink { +[dir=rtl] .mode_backlink #dokuwiki__pagetools ul li a.backlink { background-position: left -675px; } @@ -277,7 +277,7 @@ [dir=rtl] #dokuwiki__pagetools ul li a.revert:hover, [dir=rtl] #dokuwiki__pagetools ul li a.revert:active, [dir=rtl] #dokuwiki__pagetools ul li a.revert:focus, -.mode_revert [dir=rtl] #dokuwiki__pagetools ul li a.revert { +[dir=rtl] .mode_revert #dokuwiki__pagetools ul li a.revert { background-position: left -495px; } @@ -296,7 +296,7 @@ [dir=rtl] #dokuwiki__pagetools ul li a.subscribe:hover, [dir=rtl] #dokuwiki__pagetools ul li a.subscribe:active, [dir=rtl] #dokuwiki__pagetools ul li a.subscribe:focus, -.mode_subscribe [dir=rtl] #dokuwiki__pagetools ul li a.subscribe { +[dir=rtl] .mode_subscribe #dokuwiki__pagetools ul li a.subscribe { background-position: left -765px; } -- cgit v1.2.3
---> + ->
+++> + +>
+'. $line . "
 '. $line . "
-' . $line . "
 ' . $line . "
!'.$line."
 '.$line."
+' . $line.'-' . $line.' '.$line.' '.$this->_escape($line).'
'. $line . "
'. $this->_escape($line) . "
' . $line . "
' . $this->_escape($line) . "
'.$line."
'.$this->_escape($line)."
'.$line."
'.$l1.":'.$l2.":
'.$l1.":'.$l2.":
  
@@ '.$lang['line']." -$xbeg +$ybeg @@"; + $r = '
@@ '.$lang['line']." -$xbeg +$ybeg @@"; $r .= ' '.$lang['deleted'].''; $r .= ' '.$lang['created'].''; $r .= "