summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnika Henke <anika@selfthinker.org>2013-07-21 18:52:40 +0100
committerAnika Henke <anika@selfthinker.org>2013-07-21 18:52:40 +0100
commit8c7670b52dc523860f442a628ae7d226988e96d7 (patch)
treed99053d878efb0829f99a35bb77cb02c1ae3c524
parent20beef63b4694afdc3d6c434c3d27c982b6a986b (diff)
parentfbd8067eeeb9f424981aad8b283e17f734c738c3 (diff)
downloadrpg-8c7670b52dc523860f442a628ae7d226988e96d7.tar.gz
rpg-8c7670b52dc523860f442a628ae7d226988e96d7.tar.bz2
Merge remote-tracking branch 'origin/master' into loggedin-class
-rw-r--r--_test/tests/inc/common_basicinfo.test.php64
-rw-r--r--_test/tests/inc/common_mediainfo.test.php49
-rw-r--r--_test/tests/inc/common_ml.test.php53
-rw-r--r--_test/tests/inc/media_isexternal.test.php22
-rw-r--r--_test/tests/inc/pageutils_clean_id.test.php4
-rw-r--r--conf/wordblock.conf1
-rw-r--r--doku.php2
-rw-r--r--inc/DifferenceEngine.php11
-rw-r--r--inc/Mailer.class.php2
-rw-r--r--inc/auth.php62
-rw-r--r--inc/common.php84
-rw-r--r--inc/feedcreator.class.php2
-rw-r--r--inc/fetch.functions.php11
-rw-r--r--inc/fulltext.php2
-rw-r--r--inc/lang/de-informal/lang.php1
-rw-r--r--inc/lang/ko/draft.txt2
-rw-r--r--inc/lang/ko/lang.php10
-rw-r--r--inc/lang/ko/login.txt2
-rw-r--r--inc/lang/ko/newpage.txt2
-rw-r--r--inc/lang/ko/norev.txt2
-rw-r--r--inc/lang/ko/read.txt2
-rw-r--r--inc/lang/ko/searchpage.txt2
-rw-r--r--inc/lang/ko/subscr_digest.txt2
-rw-r--r--inc/lang/ko/subscr_list.txt2
-rw-r--r--inc/lang/ko/subscr_single.txt2
-rw-r--r--inc/lang/sv/lang.php65
-rw-r--r--inc/lang/sv/mailwrap.html13
-rw-r--r--inc/lang/sv/resetpwd.txt3
-rw-r--r--inc/lang/sv/subscr_form.txt3
-rw-r--r--inc/lang/sv/subscr_single.txt23
-rw-r--r--inc/media.php14
-rw-r--r--inc/parser/handler.php2
-rw-r--r--inc/parser/metadata.php2
-rw-r--r--lib/exe/detail.php15
-rw-r--r--lib/exe/mediamanager.php16
-rw-r--r--lib/plugins/acl/lang/de-informal/lang.php1
-rw-r--r--lib/plugins/acl/lang/ko/lang.php2
-rw-r--r--lib/plugins/acl/lang/sv/lang.php1
-rw-r--r--lib/plugins/authad/auth.php5
-rw-r--r--lib/plugins/authad/conf/default.php4
-rw-r--r--lib/plugins/authad/lang/de-informal/settings.php1
-rw-r--r--lib/plugins/authad/lang/pt-br/settings.php2
-rw-r--r--lib/plugins/authad/lang/sv/settings.php11
-rw-r--r--lib/plugins/authldap/auth.php10
-rw-r--r--lib/plugins/authldap/conf/default.php1
-rw-r--r--lib/plugins/authldap/conf/metadata.php1
-rw-r--r--lib/plugins/authldap/lang/de-informal/settings.php6
-rw-r--r--lib/plugins/authldap/lang/en/settings.php9
-rw-r--r--lib/plugins/authldap/lang/pt-br/settings.php7
-rw-r--r--lib/plugins/authldap/lang/sv/settings.php16
-rw-r--r--lib/plugins/authmysql/lang/de-informal/settings.php1
-rw-r--r--lib/plugins/authmysql/lang/sv/settings.php25
-rw-r--r--lib/plugins/authpgsql/lang/de-informal/settings.php1
-rw-r--r--lib/plugins/authpgsql/lang/sv/settings.php28
-rw-r--r--lib/plugins/authplain/auth.php8
-rw-r--r--lib/plugins/config/lang/de-informal/lang.php1
-rw-r--r--lib/plugins/config/lang/ko/intro.txt2
-rw-r--r--lib/plugins/config/lang/ko/lang.php22
-rw-r--r--lib/plugins/config/lang/sv/lang.php100
-rw-r--r--lib/plugins/info/syntax.php6
-rw-r--r--lib/plugins/plugin/lang/de-informal/lang.php1
-rw-r--r--lib/plugins/plugin/lang/sv/lang.php2
-rw-r--r--lib/plugins/popularity/lang/de-informal/lang.php1
-rw-r--r--lib/plugins/popularity/lang/ko/intro.txt2
-rw-r--r--lib/plugins/popularity/lang/sv/lang.php1
-rw-r--r--lib/plugins/revert/lang/de-informal/lang.php1
-rw-r--r--lib/plugins/revert/lang/ko/lang.php2
-rw-r--r--lib/plugins/revert/lang/sv/lang.php1
-rw-r--r--lib/plugins/usermanager/admin.php4
-rw-r--r--lib/plugins/usermanager/lang/de-informal/lang.php1
-rw-r--r--lib/plugins/usermanager/lang/ko/lang.php4
-rw-r--r--lib/plugins/usermanager/lang/sv/lang.php1
-rw-r--r--lib/scripts/jquery/jquery.cookie.js59
-rw-r--r--lib/tpl/dokuwiki/css/basic.css3
74 files changed, 714 insertions, 194 deletions
diff --git a/_test/tests/inc/common_basicinfo.test.php b/_test/tests/inc/common_basicinfo.test.php
new file mode 100644
index 000000000..0369474c9
--- /dev/null
+++ b/_test/tests/inc/common_basicinfo.test.php
@@ -0,0 +1,64 @@
+<?php
+
+class common_infofunctions_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_info() {
+ global $USERINFO;
+ $info = array (
+ 'isadmin' => true,
+ 'ismanager' => true,
+ 'userinfo' => $USERINFO,
+ 'perm' => 255,
+ 'namespace' => false,
+ 'ismobile' => false,
+ 'client' => 'testuser',
+ );
+
+ return $info;
+ }
+
+ /**
+ * Its important to have the correct set of keys.
+ * Other functions provide the values
+ */
+ function test_basicinfo(){
+ // test with REMOTE_USER set and the user an admin user
+ $info = $this->_get_info();
+ $this->assertEquals(basicinfo($ID,true),$info);
+
+ // with $httpclient parameter set to false
+ unset($info['ismobile']);
+ $this->assertEquals(basicinfo($ID,false),$info);
+
+ // with anonymous user
+ unset($_SERVER['REMOTE_USER']);
+ global $USERINFO; $USERINFO = array();
+
+ $info = array(
+ 'isadmin' => false,
+ 'ismanager' => false,
+ 'perm' => 8,
+ 'namespace' => false,
+ 'ismobile' => false,
+ 'client' => '1.2.3.4',
+ );
+ $this->assertEquals(basicinfo($ID,true),$info);
+ }
+
+}
+
+//Setup VIM: ex: et ts=4 :
diff --git a/_test/tests/inc/common_mediainfo.test.php b/_test/tests/inc/common_mediainfo.test.php
new file mode 100644
index 000000000..0e67fbcd9
--- /dev/null
+++ b/_test/tests/inc/common_mediainfo.test.php
@@ -0,0 +1,49 @@
+<?php
+
+class common_basicinfo_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_info() {
+ global $USERINFO;
+ $info = array (
+ 'isadmin' => true,
+ 'ismanager' => true,
+ 'userinfo' => $USERINFO,
+ 'perm' => 255,
+ 'namespace' => false,
+ 'ismobile' => false,
+ 'client' => 'testuser',
+ );
+
+ return $info;
+ }
+
+ /**
+ * We're interested in the extra keys for $INFO when its a media request
+ */
+ function test_mediainfo(){
+ global $NS, $IMG;
+ $NS = '';
+ $IMG = 'testimage.png';
+
+ $info = $this->_get_info();
+ $info['image'] = 'testimage.png';
+
+ $this->assertEquals(mediainfo(),$info);
+ }
+}
+
+//Setup VIM: ex: et ts=4 :
diff --git a/_test/tests/inc/common_ml.test.php b/_test/tests/inc/common_ml.test.php
index 0abfde37a..6f3b71db4 100644
--- a/_test/tests/inc/common_ml.test.php
+++ b/_test/tests/inc/common_ml.test.php
@@ -20,8 +20,8 @@ class common_ml_test extends DokuWikiTest {
$args = array('a' => 'b', 'c' => 'd', 'q' => '&ä');
- $expect = DOKU_BASE . $this->script . '?a=b&amp;c=d&amp;q=%26%C3%A4&amp;media=some:';
- $this->assertEquals($expect, ml('some:', $args));
+ $expect = DOKU_BASE . $this->script . '?a=b&amp;c=d&amp;q=%26%C3%A4&amp;media=some:img.jpg';
+ $this->assertEquals($expect, ml('some:img.jpg', $args));
}
function test_ml_args_string() {
@@ -31,8 +31,8 @@ class common_ml_test extends DokuWikiTest {
$args = 'a=b&c=d';
- $expect = DOKU_BASE . $this->script . '?a=b&c=d&amp;media=some:';
- $this->assertEquals($expect, ml('some:', $args));
+ $expect = DOKU_BASE . $this->script . '?a=b&c=d&amp;media=some:img.png';
+ $this->assertEquals($expect, ml('some:img.png', $args));
}
function test_ml_args_comma_string() {
@@ -42,8 +42,8 @@ class common_ml_test extends DokuWikiTest {
$args = 'a=b,c=d';
- $expect = DOKU_BASE . $this->script . '?a=b&amp;c=d&amp;media=some:';
- $this->assertEquals($expect, ml('some:', $args));
+ $expect = DOKU_BASE . $this->script . '?a=b&amp;c=d&amp;media=some:img.gif';
+ $this->assertEquals($expect, ml('some:img.gif', $args));
}
@@ -52,7 +52,7 @@ class common_ml_test extends DokuWikiTest {
$conf['useslash'] = 0;
$conf['userewrite'] = 0;
- $id = 'some:';
+ $id = 'some:img.png';
$w = 80;
$args = array('w' => $w);
$tok = media_get_token($id,$w,0);
@@ -66,7 +66,7 @@ class common_ml_test extends DokuWikiTest {
$conf['useslash'] = 0;
$conf['userewrite'] = 0;
- $id = 'some:';
+ $id = 'some:img.png';
$w = 80;
$args = 'w='.$w;
$tok = media_get_token($id,$w,0);
@@ -74,4 +74,41 @@ class common_ml_test extends DokuWikiTest {
$expect = DOKU_BASE . $this->script . '?w='.$w.'&amp;tok='.$tok.'&amp;media='.$id;
$this->assertEquals($expect, ml($id, $args));
}
+
+ function test_ml_imgresize_array_rootid() {
+ global $conf;
+ $conf['useslash'] = 0;
+ $conf['userewrite'] = 0;
+
+ $id = ':wiki:dokuwiki-128.png';
+ $cleanid = 'wiki:dokuwiki-128.png';
+ $w = 80;
+ $args = array('w' => $w);
+ $tok = media_get_token($cleanid, $w, 0);
+
+ $expect = DOKU_BASE.$this->script.'?w='.$w.'&amp;tok='.$tok.'&amp;media='.$cleanid;
+ $this->assertEquals($expect, ml($id, $args));
+ }
+
+ function test_ml_imgresize_array_external() {
+ global $conf;
+ $conf['useslash'] = 0;
+ $conf['userewrite'] = 0;
+
+ $ids = array(
+ 'https://example.com/lib/tpl/dokuwiki/images/logo.png',
+ 'http://example.com/lib/tpl/dokuwiki/images/logo.png',
+ 'ftp://example.com/lib/tpl/dokuwiki/images/logo.png'
+ );
+ $w = 80;
+ $args = array('w' => $w);
+
+ foreach($ids as $id) {
+ $tok = media_get_token($id, $w, 0);
+ $hash = substr(PassHash::hmac('md5', $id, auth_cookiesalt()), 0, 6);
+
+ $expect = DOKU_BASE.$this->script.'?hash='.$hash.'&amp;w='.$w.'&amp;tok='.$tok.'&amp;media='.rawurlencode($id);
+ $this->assertEquals($expect, ml($id, $args));
+ }
+ }
}
diff --git a/_test/tests/inc/media_isexternal.test.php b/_test/tests/inc/media_isexternal.test.php
new file mode 100644
index 000000000..cf5f793e4
--- /dev/null
+++ b/_test/tests/inc/media_isexternal.test.php
@@ -0,0 +1,22 @@
+<?php
+
+class media_isexternal_test extends DokuWikiTest {
+
+
+ public function test_external(){
+ $this->assertTrue(media_isexternal('http://www.example.com/foo.png'));
+ $this->assertTrue(media_isexternal('https://www.example.com/foo.png'));
+ $this->assertTrue(media_isexternal('ftp://www.example.com/foo.png'));
+ $this->assertTrue(media_isexternal('hTTp://www.example.com/foo.png'));
+ $this->assertTrue(media_isexternal('hTTps://www.example.com/foo.png'));
+ $this->assertTrue(media_isexternal('Ftp://www.example.com/foo.png'));
+ }
+
+ public function test_internal(){
+ $this->assertFalse(media_isexternal('wiki:logo.png'));
+ $this->assertFalse(media_isexternal('private:logo.png'));
+ $this->assertFalse(media_isexternal('ftp:private:logo.png'));
+
+ }
+
+} \ No newline at end of file
diff --git a/_test/tests/inc/pageutils_clean_id.test.php b/_test/tests/inc/pageutils_clean_id.test.php
index 9c5781b24..478fd2bc4 100644
--- a/_test/tests/inc/pageutils_clean_id.test.php
+++ b/_test/tests/inc/pageutils_clean_id.test.php
@@ -43,6 +43,10 @@ class init_clean_id_test extends DokuWikiTest {
$tests[] = array('ns._#!ns:page','false','ns._ns:page');
$tests[] = array('ns_:page',false,'ns:page');
$tests[] = array('page...page','false','page...page');
+ $tests[] = array(':page',false,'page');
+ $tests[] = array(':ns:page',false,'ns:page');
+ $tests[] = array('page:',false,'page');
+ $tests[] = array('ns:page:',false,'ns:page');
$conf['useslash'] = 0;
$tests[] = array('page/page',false,'page_page');
diff --git a/conf/wordblock.conf b/conf/wordblock.conf
index fe451f278..fc939a4d4 100644
--- a/conf/wordblock.conf
+++ b/conf/wordblock.conf
@@ -30,3 +30,4 @@ https?:\/\/(\S*?)(2-pay-secure|911essay|academia-research|anypapers|applicatione
flatsinmumbai\.co\.in
https?:\/\/(\S*?)penny-?stock
mattressreview\.biz
+(just|simply) (my|a) profile (site|webpage|page)
diff --git a/doku.php b/doku.php
index 9aeb30013..777a68df8 100644
--- a/doku.php
+++ b/doku.php
@@ -9,7 +9,7 @@
*/
// update message version
-$updateVersion = 40;
+$updateVersion = 40.1;
// xdebug_start_profiling();
diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php
index 783d6bea5..07df7a4be 100644
--- a/inc/DifferenceEngine.php
+++ b/inc/DifferenceEngine.php
@@ -817,7 +817,16 @@ class DiffFormatter {
$this->_added($closing);
}
- function _escape($str){
+ /**
+ * Escape string
+ *
+ * Override this method within other formatters if escaping required.
+ * Base class requires $str to be returned WITHOUT escaping.
+ *
+ * @param $str string Text string to escape
+ * @return string The escaped string.
+ */
+ function _escape($str){
return $str;
}
}
diff --git a/inc/Mailer.class.php b/inc/Mailer.class.php
index f87d7dd84..cb5f22f54 100644
--- a/inc/Mailer.class.php
+++ b/inc/Mailer.class.php
@@ -192,7 +192,7 @@ class Mailer {
// copy over all replacements missing for HTML (autolink URLs)
foreach($textrep as $key => $value) {
if(isset($htmlrep[$key])) continue;
- if(preg_match('/^https?:\/\//i', $value)) {
+ if(media_isexternal($value)) {
$htmlrep[$key] = '<a href="'.hsc($value).'">'.hsc($value).'</a>';
} else {
$htmlrep[$key] = hsc($value);
diff --git a/inc/auth.php b/inc/auth.php
index 1f8489f03..47b29eff7 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -59,18 +59,18 @@ function auth_setup() {
}
}
- if(!isset($auth) || !$auth){
+ if(!isset($auth) || !$auth){
msg($lang['authtempfail'], -1);
return false;
}
if ($auth->success == false) {
- // degrade to unauthenticated user
- unset($auth);
- auth_logoff();
- msg($lang['authtempfail'], -1);
+ // degrade to unauthenticated user
+ unset($auth);
+ auth_logoff();
+ msg($lang['authtempfail'], -1);
return false;
- }
+ }
// do the login either by cookie or provided credentials XXX
$INPUT->set('http_credentials', false);
@@ -678,27 +678,41 @@ function auth_nameencode($name, $skip_group = false) {
/**
* Create a pronouncable password
*
- * @author Andreas Gohr <andi@splitbrain.org>
- * @link http://www.phpbuilder.com/annotate/message.php3?id=1014451
+ * The $foruser variable might be used by plugins to run additional password
+ * policy checks, but is not used by the default implementation
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ * @link http://www.phpbuilder.com/annotate/message.php3?id=1014451
+ * @triggers AUTH_PASSWORD_GENERATE
*
+ * @param string $foruser username for which the password is generated
* @return string pronouncable password
*/
-function auth_pwgen() {
- $pw = '';
- $c = 'bcdfghjklmnprstvwz'; //consonants except hard to speak ones
- $v = 'aeiou'; //vowels
- $a = $c.$v; //both
-
- //use two syllables...
- for($i = 0; $i < 2; $i++) {
- $pw .= $c[rand(0, strlen($c) - 1)];
- $pw .= $v[rand(0, strlen($v) - 1)];
- $pw .= $a[rand(0, strlen($a) - 1)];
+function auth_pwgen($foruser = '') {
+ $data = array(
+ 'password' => '',
+ 'foruser' => $foruser
+ );
+
+ $evt = new Doku_Event('AUTH_PASSWORD_GENERATE', $data);
+ if($evt->advise_before(true)) {
+ $c = 'bcdfghjklmnprstvwz'; //consonants except hard to speak ones
+ $v = 'aeiou'; //vowels
+ $a = $c.$v; //both
+ $s = '!$%&?+*~#-_:.;,'; // specials
+
+ //use thre syllables...
+ for($i = 0; $i < 3; $i++) {
+ $data['password'] .= $c[mt_rand(0, strlen($c) - 1)];
+ $data['password'] .= $v[mt_rand(0, strlen($v) - 1)];
+ $data['password'] .= $a[mt_rand(0, strlen($a) - 1)];
+ }
+ //... and add a nice number and special
+ $data['password'] .= mt_rand(10, 99).$s[mt_rand(0, strlen($s) - 1)];
}
- //... and add a nice number
- $pw .= rand(10, 99);
+ $evt->advise_after();
- return $pw;
+ return $data['password'];
}
/**
@@ -765,7 +779,7 @@ function register() {
}
if($conf['autopasswd']) {
- $pass = auth_pwgen(); // automatically generate password
+ $pass = auth_pwgen($login); // automatically generate password
} elseif(empty($pass) || empty($passchk)) {
msg($lang['regmissing'], -1); // complain about missing passwords
return false;
@@ -958,7 +972,7 @@ function act_resendpwd() {
} else { // autogenerate the password and send by mail
- $pass = auth_pwgen();
+ $pass = auth_pwgen($user);
if(!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) {
msg('error modifying user data', -1);
return false;
diff --git a/inc/common.php b/inc/common.php
index 55c5b5ac4..1b4d9e8e4 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -86,32 +86,20 @@ function formSecurityToken($print = true) {
}
/**
- * Return info about the current document as associative
- * array.
+ * Determine basic information for a request of $id
*
* @author Andreas Gohr <andi@splitbrain.org>
+ * @author Chris Smith <chris@jalakai.co.uk>
*/
-function pageinfo() {
- global $ID;
- global $REV;
- global $RANGE;
+function basicinfo($id, $htmlClient=true){
global $USERINFO;
- global $lang;
-
- // include ID & REV not redundant, as some parts of DokuWiki may temporarily change $ID, e.g. p_wiki_xhtml
- // FIXME ... perhaps it would be better to ensure the temporary changes weren't necessary
- $info['id'] = $ID;
- $info['rev'] = $REV;
// set info about manager/admin status.
$info['isadmin'] = false;
$info['ismanager'] = false;
if(isset($_SERVER['REMOTE_USER'])) {
- $sub = new Subscription();
-
$info['userinfo'] = $USERINFO;
- $info['perm'] = auth_quickaclcheck($ID);
- $info['subscribed'] = $sub->user_subscription();
+ $info['perm'] = auth_quickaclcheck($id);
$info['client'] = $_SERVER['REMOTE_USER'];
if($info['perm'] == AUTH_ADMIN) {
@@ -127,12 +115,46 @@ function pageinfo() {
}
} else {
- $info['perm'] = auth_aclcheck($ID, '', null);
- $info['subscribed'] = false;
+ $info['perm'] = auth_aclcheck($id, '', null);
$info['client'] = clientIP(true);
}
- $info['namespace'] = getNS($ID);
+ $info['namespace'] = getNS($id);
+
+ // mobile detection
+ if ($htmlClient) {
+ $info['ismobile'] = clientismobile();
+ }
+
+ return $info;
+ }
+
+/**
+ * Return info about the current document as associative
+ * array.
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+function pageinfo() {
+ global $ID;
+ global $REV;
+ global $RANGE;
+ global $lang;
+
+ $info = basicinfo($ID);
+
+ // include ID & REV not redundant, as some parts of DokuWiki may temporarily change $ID, e.g. p_wiki_xhtml
+ // FIXME ... perhaps it would be better to ensure the temporary changes weren't necessary
+ $info['id'] = $ID;
+ $info['rev'] = $REV;
+
+ if(isset($_SERVER['REMOTE_USER'])) {
+ $sub = new Subscription();
+ $info['subscribed'] = $sub->user_subscription();
+ } else {
+ $info['subscribed'] = false;
+ }
+
$info['locked'] = checklock($ID);
$info['filepath'] = fullpath(wikiFN($ID));
$info['exists'] = @file_exists($info['filepath']);
@@ -210,8 +232,18 @@ function pageinfo() {
}
}
- // mobile detection
- $info['ismobile'] = clientismobile();
+ return $info;
+}
+
+/**
+ * Return information about the current media item as an associative array.
+ */
+function mediainfo(){
+ global $NS;
+ global $IMG;
+
+ $info = basicinfo("$NS:*");
+ $info['image'] = $IMG;
return $info;
}
@@ -435,6 +467,11 @@ function exportlink($id = '', $format = 'raw', $more = '', $abs = false, $sep =
*/
function ml($id = '', $more = '', $direct = true, $sep = '&amp;', $abs = false) {
global $conf;
+ $isexternalimage = media_isexternal($id);
+ if(!$isexternalimage) {
+ $id = cleanID($id);
+ }
+
if(is_array($more)) {
// add token for resized images
if($more['w'] || $more['h']){
@@ -467,7 +504,7 @@ function ml($id = '', $more = '', $direct = true, $sep = '&amp;', $abs = false)
}
// external URLs are always direct without rewriting
- if(preg_match('#^(https?|ftp)://#i', $id)) {
+ if($isexternalimage) {
$xlink .= 'lib/exe/fetch.php';
// add hash:
$xlink .= '?hash='.substr(PassHash::hmac('md5', $id, auth_cookiesalt()), 0, 6);
@@ -552,12 +589,13 @@ function checkwordblock($text = '') {
global $TEXT;
global $PRE;
global $SUF;
+ global $SUM;
global $conf;
global $INFO;
if(!$conf['usewordblock']) return false;
- if(!$text) $text = "$PRE $TEXT $SUF";
+ if(!$text) $text = "$PRE $TEXT $SUF $SUM";
// we prepare the text a tiny bit to prevent spammers circumventing URL checks
$text = preg_replace('!(\b)(www\.[\w.:?\-;,]+?\.[\w.:?\-;,]+?[\w/\#~:.?+=&%@\!\-.:?\-;,]+?)([.:?\-;,]*[^\w/\#~:.?+=&%@\!\-.:?\-;,])!i', '\1http://\2 \2\3', $text);
diff --git a/inc/feedcreator.class.php b/inc/feedcreator.class.php
index ea8cc7b15..670a1bc29 100644
--- a/inc/feedcreator.class.php
+++ b/inc/feedcreator.class.php
@@ -599,7 +599,7 @@ class FeedCreator extends HtmlDescribable {
header("Content-Type: ".$this->contentType."; charset=".$this->encoding."; filename=".utf8_basename($filename));
header("Content-Disposition: inline; filename=".utf8_basename($filename));
- readfile($filename, "r");
+ readfile($filename);
die();
}
diff --git a/inc/fetch.functions.php b/inc/fetch.functions.php
index ea524a37a..53ade3555 100644
--- a/inc/fetch.functions.php
+++ b/inc/fetch.functions.php
@@ -89,15 +89,18 @@ function sendFile($file, $mime, $dl, $cache, $public = false) {
* WRITE: MEDIA, FILE, array( STATUS, STATUSMESSAGE )
*
* @author Gerry Weissbach <gerry.w@gammaproduction.de>
- * @param $media reference to the media id
- * @param $file reference to the file variable
- * @returns array(STATUS, STATUSMESSAGE)
+ * @param string $media reference to the media id
+ * @param string $file reference to the file variable
+ * @param string $rev
+ * @param int $width
+ * @param int $height
+ * @return array(STATUS, STATUSMESSAGE)
*/
function checkFileStatus(&$media, &$file, $rev = '', $width=0, $height=0) {
global $MIME, $EXT, $CACHE, $INPUT;
//media to local file
- if(preg_match('#^(https?)://#i', $media)) {
+ if(media_isexternal($media)) {
//check hash
if(substr(PassHash::hmac('md5', $media, auth_cookiesalt()), 0, 6) !== $INPUT->str('hash')) {
return array(412, 'Precondition Failed');
diff --git a/inc/fulltext.php b/inc/fulltext.php
index 7ee386063..2f073acea 100644
--- a/inc/fulltext.php
+++ b/inc/fulltext.php
@@ -172,7 +172,7 @@ function ft_mediause($id,$max){
preg_match_all('/\{\{([^|}]*'.$pcre.'[^|}]*)(|[^}]+)?\}\}/i',rawWiki($doc),$matches);
foreach($matches[1] as $img){
$img = trim($img);
- if(preg_match('/^https?:\/\//i',$img)) continue; // skip external images
+ if(media_isexternal($img)) continue; // skip external images
list($img) = explode('?',$img); // remove any parameters
resolve_mediaid($ns,$img,$exists); // resolve the possibly relative img
diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php
index 8a954c0e8..9a6e6f72c 100644
--- a/inc/lang/de-informal/lang.php
+++ b/inc/lang/de-informal/lang.php
@@ -20,6 +20,7 @@
* @author Christian Wichmann <nospam@zone0.de>
* @author Pierre Corell <info@joomla-praxis.de>
* @author Frank Loizzi <contact@software.bacal.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
diff --git a/inc/lang/ko/draft.txt b/inc/lang/ko/draft.txt
index f7787f981..b655d7c92 100644
--- a/inc/lang/ko/draft.txt
+++ b/inc/lang/ko/draft.txt
@@ -1,5 +1,5 @@
====== 문서 초안 있음 ======
-이 문서의 마지막 편집 세션은 정상적으로 끝나지 않았습니다. DokuWiki는 작업 도중 자동으로 저장된 문서 초안을 사용하여 편집을 계속 할 수 있습니다. 마지막 세션 동안 저장된 문서 초안을 아래에서 볼 수 있습니다.
+이 문서의 마지막 편집 세션은 정상적으로 끝나지 않았습니다. DokuWiki는 작업 도중 자동으로 저장된 문서 초안을 사용해 편집을 계속 할 수 있습니다. 마지막 세션 동안 저장된 문서 초안을 아래에서 볼 수 있습니다.
비정상적으로 끝난 편집 세션을 **되돌릴**지 여부를 결정하고, 자동으로 저장되었던 초안을 **삭제**하거나 편집 과정을 **취소**하세요. \ No newline at end of file
diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php
index 76d6a535d..76684659c 100644
--- a/inc/lang/ko/lang.php
+++ b/inc/lang/ko/lang.php
@@ -160,7 +160,7 @@ $lang['accessdenied'] = '이 문서를 볼 권한이 없습니다.';
$lang['mediausage'] = '이 파일을 참고하려면 다음 문법을 사용하세요:';
$lang['mediaview'] = '원본 파일 보기';
$lang['mediaroot'] = '루트 (root)';
-$lang['mediaupload'] = '파일을 현재 이름공간으로 올립니다. 하위 이름공간으로 만들려면 선택한 파일 이름 앞에 쌍점(:)으로 구분되는 이름을 붙이면 됩니다. 파일을 드래그 앤 드롭하여 선택할 수 있습니다.';
+$lang['mediaupload'] = '파일을 현재 이름공간으로 올립니다. 하위 이름공간으로 만들려면 선택한 파일 이름 앞에 쌍점(:)으로 구분되는 이름을 붙이면 됩니다. 파일을 드래그 앤 드롭해 선택할 수 있습니다.';
$lang['mediaextchange'] = '파일 확장자가 .%s에서 .%s(으)로 바뀌었습니다!';
$lang['reference'] = '참고';
$lang['ref_inuse'] = '다음 문서에서 아직 사용 중이므로 파일을 삭제할 수 없습니다:';
@@ -218,7 +218,7 @@ $lang['qb_hs'] = '문단 제목 선택';
$lang['qb_hplus'] = '상위 문단 제목';
$lang['qb_hminus'] = '하위 문단 제목';
$lang['qb_hequal'] = '동급 문단 제목';
-$lang['qb_link'] = '내부 링크';
+$lang['qb_link'] = '안쪽 링크';
$lang['qb_extlink'] = '바깥 링크';
$lang['qb_hr'] = '가로줄';
$lang['qb_ol'] = '순서 있는 목록';
@@ -231,7 +231,7 @@ $lang['upperns'] = '상위 이름공간으로 이동';
$lang['admin_register'] = '새 사용자 추가';
$lang['metaedit'] = '메타 데이터 편집';
$lang['metasaveerr'] = '메타 데이터 쓰기 실패';
-$lang['metasaveok'] = '메타 데이타 저장됨';
+$lang['metasaveok'] = '메타 데이터 저장됨';
$lang['img_backto'] = '뒤로';
$lang['img_title'] = '이름';
$lang['img_caption'] = '설명';
@@ -304,7 +304,7 @@ $lang['media_uploadtab'] = '올리기';
$lang['media_searchtab'] = '찾기';
$lang['media_file'] = '파일';
$lang['media_viewtab'] = '보기';
-$lang['media_edittab'] = '수정';
+$lang['media_edittab'] = '편집';
$lang['media_historytab'] = '역사';
$lang['media_list_thumbs'] = '섬네일';
$lang['media_list_rows'] = '목록';
@@ -318,7 +318,7 @@ $lang['media_view'] = '%s';
$lang['media_viewold'] = '%s (%s에 있음)';
$lang['media_edit'] = '%s 편집';
$lang['media_history'] = '%s 바뀜 내역';
-$lang['media_meta_edited'] = '메타데이터가 수정됨';
+$lang['media_meta_edited'] = '메타 데이터 편집됨';
$lang['media_perm_read'] = '이 파일을 읽을 권한이 없습니다.';
$lang['media_perm_upload'] = '파일을 올릴 권한이 없습니다.';
$lang['media_update'] = '새 판 올리기';
diff --git a/inc/lang/ko/login.txt b/inc/lang/ko/login.txt
index 160b899d3..f8af4100f 100644
--- a/inc/lang/ko/login.txt
+++ b/inc/lang/ko/login.txt
@@ -1,3 +1,3 @@
====== 로그인 ======
-로그인하지 않았습니다! 아래에서 로그인하세요. 로그인하려면 쿠키를 받도록 설정하여야 합니다. \ No newline at end of file
+로그인하지 않았습니다! 아래에서 로그인하세요. 로그인하려면 쿠키를 활성화해야 합니다. \ No newline at end of file
diff --git a/inc/lang/ko/newpage.txt b/inc/lang/ko/newpage.txt
index 8db34f9cf..fa7864610 100644
--- a/inc/lang/ko/newpage.txt
+++ b/inc/lang/ko/newpage.txt
@@ -1,3 +1,3 @@
====== 이 주제는 아직 없습니다 ======
-아직 없는 주제에 대한 링크를 따라왔습니다. **문서 만들기** 버튼을 클릭하여 새로 만들 수 있습니다. \ No newline at end of file
+아직 없는 주제에 대한 링크를 따라왔습니다. **문서 만들기** 버튼을 클릭해 새로 만들 수 있습니다. \ No newline at end of file
diff --git a/inc/lang/ko/norev.txt b/inc/lang/ko/norev.txt
index 3e203b235..246f3e4f6 100644
--- a/inc/lang/ko/norev.txt
+++ b/inc/lang/ko/norev.txt
@@ -1,3 +1,3 @@
====== 지정한 판 없음 ======
-지정한 판이 존재하지 않습니다. **이전 판** 버튼을 사용하여 이 문서의 이전 판 목록을 보세요. \ No newline at end of file
+지정한 판이 존재하지 않습니다. **이전 판** 버튼을 사용해 이 문서의 이전 판 목록을 보세요. \ No newline at end of file
diff --git a/inc/lang/ko/read.txt b/inc/lang/ko/read.txt
index c510b598e..8f080fcb1 100644
--- a/inc/lang/ko/read.txt
+++ b/inc/lang/ko/read.txt
@@ -1 +1 @@
-이 문서는 읽기 전용입니다. 내용을 볼 수는 있지만 수정할 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요. \ No newline at end of file
+이 문서는 읽기 전용입니다. 내용을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요. \ No newline at end of file
diff --git a/inc/lang/ko/searchpage.txt b/inc/lang/ko/searchpage.txt
index 8cc003950..d3b37ec7c 100644
--- a/inc/lang/ko/searchpage.txt
+++ b/inc/lang/ko/searchpage.txt
@@ -1,5 +1,5 @@
====== 찾기 ======
-아래에서 찾기 결과를 볼 수 있습니다. 만일 원하는 문서를 찾지 못하였다면, **문서 만들기**나 **문서 편집** 버튼을 사용하여 쿼리 내용과 같은 이름의 문서를 만들거나 편집할 수 있습니다.
+아래에서 찾기 결과를 볼 수 있습니다. 만일 원하는 문서를 찾지 못하였다면, **문서 만들기**나 **문서 편집** 버튼을 사용해 쿼리 내용과 같은 이름의 문서를 만들거나 편집할 수 있습니다.
===== 결과 ===== \ No newline at end of file
diff --git a/inc/lang/ko/subscr_digest.txt b/inc/lang/ko/subscr_digest.txt
index b67cc9bbc..6db7b963c 100644
--- a/inc/lang/ko/subscr_digest.txt
+++ b/inc/lang/ko/subscr_digest.txt
@@ -12,7 +12,7 @@
이 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
-@SUBSCRIBE@ 문서를 방문하여 문서나 이름공간의 구독을 취소하세요.
+@SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요.
--
@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
diff --git a/inc/lang/ko/subscr_list.txt b/inc/lang/ko/subscr_list.txt
index 03ca86d2a..c13e0097a 100644
--- a/inc/lang/ko/subscr_list.txt
+++ b/inc/lang/ko/subscr_list.txt
@@ -8,7 +8,7 @@
--------------------------------------------------------
이 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
-@SUBSCRIBE@ 문서를 방문하여 문서나 이름공간의 구독을 취소하세요.
+@SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요.
--
@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
diff --git a/inc/lang/ko/subscr_single.txt b/inc/lang/ko/subscr_single.txt
index 5f8b43b98..d4e38e044 100644
--- a/inc/lang/ko/subscr_single.txt
+++ b/inc/lang/ko/subscr_single.txt
@@ -14,7 +14,7 @@
새 판 : @NEWPAGE@
이 문서의 알림을 취소하려면, @DOKUWIKIURL@에 로그인한 뒤
-@SUBSCRIBE@ 문서를 방문하여 문서나 이름공간의 구독을 취소하세요.
+@SUBSCRIBE@ 문서를 방문해 문서나 이름공간의 구독을 취소하세요.
--
@DOKUWIKIURL@의 DokuWiki가 자동으로 만들어낸 메일입니다. \ No newline at end of file
diff --git a/inc/lang/sv/lang.php b/inc/lang/sv/lang.php
index 4c4e060b4..9608784c6 100644
--- a/inc/lang/sv/lang.php
+++ b/inc/lang/sv/lang.php
@@ -17,6 +17,7 @@
* @author Bogge Bogge <bogge@bogge.com>
* @author Peter Åström <eaustreum@gmail.com>
* @author mikael@mallander.net
+ * @author Smorkster Andersson smorkster@gmail.com
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -52,11 +53,14 @@ $lang['btn_backtomedia'] = 'Tillbaka till val av Mediafil';
$lang['btn_subscribe'] = 'Prenumerera på ändringar';
$lang['btn_profile'] = 'Uppdatera profil';
$lang['btn_reset'] = 'Återställ';
+$lang['btn_resendpwd'] = 'Skapa nytt lösenord';
$lang['btn_draft'] = 'Redigera utkast';
$lang['btn_recover'] = 'Återskapa utkast';
$lang['btn_draftdel'] = 'Radera utkast';
$lang['btn_revert'] = 'Återställ';
$lang['btn_register'] = 'Registrera';
+$lang['btn_apply'] = 'Verkställ';
+$lang['btn_media'] = 'Media Hanteraren';
$lang['loggedinas'] = 'Inloggad som';
$lang['user'] = 'Användarnamn';
$lang['pass'] = 'Lösenord';
@@ -86,6 +90,7 @@ $lang['profnoempty'] = 'Namn och e-postadress måste fyllas i.';
$lang['profchanged'] = 'Användarprofilen uppdaterad.';
$lang['pwdforget'] = 'Glömt ditt lösenord? Ordna ett nytt';
$lang['resendna'] = 'Den här wikin stödjer inte utskick av lösenord.';
+$lang['resendpwd'] = 'Sätt lösenord för';
$lang['resendpwdmissing'] = 'Du måste fylla i alla fält.';
$lang['resendpwdnouser'] = 'Den här användaren hittas inte i databasen.';
$lang['resendpwdbadauth'] = 'Den här verifieringskoden är inte giltig. Kontrollera att du använde hela verifieringslänken.';
@@ -98,9 +103,10 @@ $lang['searchmedia_in'] = 'Sök i %s';
$lang['txt_upload'] = 'Välj fil att ladda upp';
$lang['txt_filename'] = 'Ladda upp som (ej obligatoriskt)';
$lang['txt_overwrt'] = 'Skriv över befintlig fil';
+$lang['maxuploadsize'] = 'Max %s per uppladdad fil.';
$lang['lockedby'] = 'Låst av';
$lang['lockexpire'] = 'Lås upphör att gälla';
-$lang['js']['willexpire'] = 'Ditt redigeringslås för detta dokument kommer snart att upphöra.\nFör att undvika versionskonflikter bör du förhandsgranska ditt dokument för att förlänga redigeringslåset.';
+$lang['js']['willexpire'] = 'Ditt redigeringslås för detta dokument kommer snart att upphöra.\nFör att undvika versionskonflikter bör du förhandsgranska ditt dokument för att förlänga redigeringslåset.';
$lang['js']['notsavedyet'] = 'Det finns ändringar som inte är sparade.
Är du säker på att du vill fortsätta?';
$lang['js']['searchmedia'] = 'Sök efter filer';
@@ -112,12 +118,14 @@ $lang['js']['mediaalign'] = 'Justering';
$lang['js']['mediasize'] = 'Bildstorlek';
$lang['js']['mediatarget'] = 'Länköppning';
$lang['js']['mediaclose'] = 'Stäng';
+$lang['js']['mediainsert'] = 'Infoga';
$lang['js']['mediadisplayimg'] = 'Visa bilden.';
$lang['js']['mediadisplaylnk'] = 'Visa endast länken.';
$lang['js']['mediasmall'] = 'Liten storlek';
$lang['js']['mediamedium'] = 'Mellanstor storlek';
$lang['js']['medialarge'] = 'Stor storlek';
$lang['js']['mediaoriginal'] = 'Originalstorlek';
+$lang['js']['medialnk'] = 'Länk till detalj sida';
$lang['js']['mediadirect'] = 'Direktlänk till originalet';
$lang['js']['medianolnk'] = 'Ingen länk';
$lang['js']['medianolink'] = 'Länka inte bilden';
@@ -129,6 +137,15 @@ Du kan fortfarande klippa och klistra in länken om du använder en annan webbl
$lang['js']['linkwiz'] = 'Snabbguide Länkar';
$lang['js']['linkto'] = 'Länk till:';
$lang['js']['del_confirm'] = 'Vill du verkligen radera?';
+$lang['js']['restore_confirm'] = 'Återställa denna version?';
+$lang['js']['media_diff'] = 'Se skillnader:';
+$lang['js']['media_diff_both'] = 'Sida vid sida';
+$lang['js']['media_select'] = 'Välj filer...';
+$lang['js']['media_upload_btn'] = 'Ladda upp';
+$lang['js']['media_done_btn'] = 'Färdig';
+$lang['js']['media_drop'] = 'Släpp filer här för att ladda upp';
+$lang['js']['media_cancel'] = 'ta bort';
+$lang['js']['media_overwrt'] = 'Skriv över existerande filer';
$lang['rssfailed'] = 'Ett fel uppstod när detta RSS-flöde skulle hämtas: ';
$lang['nothingfound'] = 'Inga filer hittades.';
$lang['mediaselect'] = 'Mediafiler';
@@ -177,10 +194,19 @@ $lang['external_edit'] = 'extern redigering';
$lang['summary'] = 'Redigeringskommentar';
$lang['noflash'] = '<a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Plugin</a> behövs för att visa detta innehåll.';
$lang['download'] = 'Ladda ner kodfragmentet';
+$lang['tools'] = 'Verktyg';
+$lang['user_tools'] = 'Användarverktyg';
+$lang['page_tools'] = 'Sidverktyg';
+$lang['skip_to_content'] = 'hoppa till innehåll';
$lang['mail_newpage'] = 'sida tillagd:';
$lang['mail_changed'] = 'sida ändrad:';
+$lang['mail_subscribe_list'] = 'sidor ändrade i namnrymd:';
$lang['mail_new_user'] = 'Ny användare:';
$lang['mail_upload'] = 'fil uppladdad:';
+$lang['changes_type'] = 'Se ändringar av';
+$lang['pages_changes'] = 'Sidor';
+$lang['media_changes'] = 'Mediafiler';
+$lang['both_changes'] = 'Både sidor och mediafiler';
$lang['qb_bold'] = 'Fet text';
$lang['qb_italic'] = 'Kursiv text';
$lang['qb_underl'] = 'Understruken text';
@@ -221,14 +247,26 @@ $lang['img_copyr'] = 'Copyright';
$lang['img_format'] = 'Format';
$lang['img_camera'] = 'Kamera';
$lang['img_keywords'] = 'Nyckelord';
+$lang['img_width'] = 'Bredd';
+$lang['img_height'] = 'Höjd';
+$lang['img_manager'] = 'Se mediahanteraren';
+$lang['subscr_subscribe_success'] = 'La till %s till prenumerationslista %s';
+$lang['subscr_subscribe_noaddress'] = 'Det finns ingen adress associerad med din inloggning, du kan inte bli tillagd i prenumerationslistan';
+$lang['subscr_unsubscribe_success'] = '% borttagen från prenumerationslistan för %';
+$lang['subscr_unsubscribe_error'] = 'Fel vid borttagning av %s från prenumerationslista %s';
+$lang['subscr_already_subscribed'] = '%s prenumererar redan på %s';
+$lang['subscr_not_subscribed'] = '%s prenumererar inte på %s';
+$lang['subscr_m_not_subscribed'] = 'Du prenumererar inte på denna sida eller namnrymd.';
$lang['subscr_m_new_header'] = 'Lägg till prenumeration';
$lang['subscr_m_current_header'] = 'Nuvarande prenumerationer';
$lang['subscr_m_unsubscribe'] = 'Avsluta prenumeration';
$lang['subscr_m_subscribe'] = 'Prenumerera';
$lang['subscr_m_receive'] = 'Ta emot';
$lang['subscr_style_every'] = 'skicka epost vid varje ändring';
+$lang['subscr_style_list'] = 'lista över ändrade sidor sedan senaste e-post (varje %.2f dag)';
$lang['authmodfailed'] = 'Felaktiga inställningar för användarautentisering. Var vänlig meddela wikiadministratören.';
$lang['authtempfail'] = 'Tillfälligt fel på användarautentisering. Om felet kvarstår, var vänlig meddela wikiadministratören.';
+$lang['authpwdexpire'] = 'Ditt lösenord kommer att bli ogiltigt om %d dagar, du bör ändra det snart.';
$lang['i_chooselang'] = 'Välj språk';
$lang['i_installer'] = 'Installation av DokuWiki';
$lang['i_wikiname'] = 'Wikins namn';
@@ -254,6 +292,10 @@ $lang['i_pol0'] = 'Öppen wiki (alla får läsa, skriva och ladda
$lang['i_pol1'] = 'Publik wiki (alla får läsa, registrerade användare för skriva och ladda upp filer)';
$lang['i_pol2'] = 'Sluten wiki (endast registrerade användare får läsa, skriva och ladda upp filer)';
$lang['i_retry'] = 'Försök igen';
+$lang['i_license'] = 'Vänligen välj licens du vill använda för ditt innehåll:';
+$lang['i_license_none'] = 'Visa ingen licensinformation';
+$lang['i_pop_field'] = 'Hjälp oss förbättra DokuWiki upplevelsen:';
+$lang['i_pop_label'] = 'Sänd anonym användarinformation en gång i månaden till DokuWikis utvecklare';
$lang['recent_global'] = 'Du bevakar ändringar i namnrymden <b>%s</b>. Du kan också titta på <a href="%s">senaste ändringar för hela wikin</a>.';
$lang['years'] = '%d år sedan';
$lang['months'] = '%d månader sedan';
@@ -263,3 +305,24 @@ $lang['hours'] = '%d timmar sedan';
$lang['minutes'] = '%d minuter sedan';
$lang['seconds'] = '%d sekunder sedan';
$lang['wordblock'] = 'Din ändring sparades inte för att den innehåller otillåten text (spam).';
+$lang['media_uploadtab'] = 'Ladda upp';
+$lang['media_searchtab'] = 'Sök';
+$lang['media_file'] = 'Fil';
+$lang['media_viewtab'] = 'Visa';
+$lang['media_edittab'] = 'Redigera';
+$lang['media_list_thumbs'] = 'Miniatyrbild';
+$lang['media_list_rows'] = 'Rader';
+$lang['media_sort_name'] = 'Namn';
+$lang['media_sort_date'] = 'Datum';
+$lang['media_namespaces'] = 'Visa namnrymd';
+$lang['media_files'] = 'Filer i %s';
+$lang['media_upload'] = 'Ladda upp till %s';
+$lang['media_search'] = 'Sök i %s';
+$lang['media_view'] = '%s';
+$lang['media_viewold'] = '%s vid %s';
+$lang['media_edit'] = 'Redigera %s';
+$lang['media_meta_edited'] = 'metadata redigerat';
+$lang['media_perm_read'] = 'Du har tyvärr inte tillräckliga behörigheter för att läsa filer.';
+$lang['media_perm_upload'] = 'Du har tyvärr inte tillräckliga behörigheter för att ladda upp filer.';
+$lang['media_update'] = 'Ladda upp ny version';
+$lang['media_restore'] = 'Återställ denna version';
diff --git a/inc/lang/sv/mailwrap.html b/inc/lang/sv/mailwrap.html
new file mode 100644
index 000000000..d8ab9ba5b
--- /dev/null
+++ b/inc/lang/sv/mailwrap.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<title>@TITLE@</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+
+@HTMLBODY@
+
+<br /><hr />
+<small>Denna e-post har genererats av DokuWiki vid @DOKUWIKIURL@.</small>
+</body>
+</html> \ No newline at end of file
diff --git a/inc/lang/sv/resetpwd.txt b/inc/lang/sv/resetpwd.txt
new file mode 100644
index 000000000..a329ce571
--- /dev/null
+++ b/inc/lang/sv/resetpwd.txt
@@ -0,0 +1,3 @@
+====== Sätt nytt lösenord ======
+
+Vänligen skriv ett nytt lösenord för ditt konto på denna wiki. \ No newline at end of file
diff --git a/inc/lang/sv/subscr_form.txt b/inc/lang/sv/subscr_form.txt
new file mode 100644
index 000000000..bfb8fa3cd
--- /dev/null
+++ b/inc/lang/sv/subscr_form.txt
@@ -0,0 +1,3 @@
+====== Prenumerations hantering ======
+
+Denna sida låter dig hantera dina prenumerationer för nuvarande sida och namnrymd. \ No newline at end of file
diff --git a/inc/lang/sv/subscr_single.txt b/inc/lang/sv/subscr_single.txt
new file mode 100644
index 000000000..dff88343e
--- /dev/null
+++ b/inc/lang/sv/subscr_single.txt
@@ -0,0 +1,23 @@
+Hej!
+
+Sidan @PAGE@ i wikin @TITLE@ har ändrats.
+Detta är ändringarna:
+
+--------------------------------------------------------
+@DIFF@
+--------------------------------------------------------
+
+Datum: @DATE@
+Användare: @USER@
+Ändrings sammanfattning: @SUMMARY@
+Gammal version: @OLDPAGE@
+Ny version: @NEWPAGE@
+
+För att avsluta noteringar om sidor, logga in på wikin vid
+@DOKUWIKIURL@ gå sedan till
+@SUBSCRIBE@
+och avsluta prenumerationen av sida och/eller namnrymd ändringar.
+
+--
+Denna e-post har genererats av DokuWiki vid
+@DOKUWIKIURL@ \ No newline at end of file
diff --git a/inc/media.php b/inc/media.php
index 18148a446..fbe1363ec 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -83,6 +83,18 @@ function media_metasave($id,$auth,$data){
}
/**
+ * check if a media is external source
+ *
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
+ * @param string $id the media ID or URL
+ * @return bool
+ */
+function media_isexternal($id){
+ if (preg_match('#^(https?|ftp)://#i', $id)) return true;
+ return false;
+}
+
+/**
* Check if a media item is public (eg, external URL or readable by @ALL)
*
* @author Andreas Gohr <andi@splitbrain.org>
@@ -90,7 +102,7 @@ function media_metasave($id,$auth,$data){
* @return bool
*/
function media_ispublic($id){
- if(preg_match('/^https?:\/\//i',$id)) return true;
+ if(media_isexternal($id)) return true;
$id = cleanID($id);
if(auth_aclcheck(getNS($id).':*', '', array()) >= AUTH_READ) return true;
return false;
diff --git a/inc/parser/handler.php b/inc/parser/handler.php
index 55b715ad9..1cf32aaed 100644
--- a/inc/parser/handler.php
+++ b/inc/parser/handler.php
@@ -680,7 +680,7 @@ function Doku_Handler_Parse_Media($match) {
}
// Check whether this is a local or remote image
- if ( preg_match('#^(https?|ftp)#i',$src) ) {
+ if ( media_isexternal($src) ) {
$call = 'externalmedia';
} else {
$call = 'internalmedia';
diff --git a/inc/parser/metadata.php b/inc/parser/metadata.php
index 8638ffa6a..e17b82f8b 100644
--- a/inc/parser/metadata.php
+++ b/inc/parser/metadata.php
@@ -432,7 +432,7 @@ class Doku_Renderer_metadata extends Doku_Renderer {
global $ID;
list($src,$hash) = explode('#',$src,2);
- if(!preg_match('/^https?:\/\//i',$src)){
+ if(!media_isexternal($src)){
resolve_mediaid(getNS($ID),$src, $exists);
}
if(preg_match('/.(jpe?g|gif|png)$/i',$src)){
diff --git a/lib/exe/detail.php b/lib/exe/detail.php
index db635c016..7008b126f 100644
--- a/lib/exe/detail.php
+++ b/lib/exe/detail.php
@@ -2,13 +2,18 @@
if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../');
define('DOKU_MEDIADETAIL',1);
require_once(DOKU_INC.'inc/init.php');
-trigger_event('DETAIL_STARTED', $tmp=array());
-//close session
-session_write_close();
$IMG = getID('media');
$ID = cleanID($INPUT->str('id'));
+// this makes some general infos available as well as the info about the
+// "parent" page
+$INFO = array_merge(pageinfo(),mediainfo());
+trigger_event('DETAIL_STARTED', $tmp=array());
+
+//close session
+session_write_close();
+
if($conf['allowdebug'] && $INPUT->has('debug')){
print '<pre>';
foreach(explode(' ','basedir userewrite baseurl useslash') as $x){
@@ -39,10 +44,6 @@ if($AUTH >= AUTH_READ){
$ERROR = p_locale_xhtml('denied');
}
-// this makes some general infos available as well as the info about the
-// "parent" page
-$INFO = pageinfo();
-
//start output and load template
header('Content-Type: text/html; charset=utf-8');
include(template('detail.php'));
diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php
index 53d438321..66e5ddc82 100644
--- a/lib/exe/mediamanager.php
+++ b/lib/exe/mediamanager.php
@@ -7,15 +7,12 @@
require_once(DOKU_INC.'inc/init.php');
- trigger_event('MEDIAMANAGER_STARTED',$tmp=array());
- session_write_close(); //close session
-
global $INPUT;
// handle passed message
if($INPUT->str('msg1')) msg(hsc($INPUT->str('msg1')),1);
if($INPUT->str('err')) msg(hsc($INPUT->str('err')),-1);
-
+ global $DEL;
// get namespace to display (either direct or from deletion order)
if($INPUT->str('delete')){
$DEL = cleanID($INPUT->str('delete'));
@@ -29,10 +26,15 @@
$NS = getNS($IMG);
}else{
$NS = cleanID($INPUT->str('ns'));
+ $IMG = null;
}
- // check auth
- $AUTH = auth_quickaclcheck("$NS:*");
+ global $INFO;
+ $INFO = !empty($INFO) ? array_merge($INFO, mediainfo()) : mediainfo();
+ $AUTH = $INFO['perm']; // shortcut for historical reasons
+
+ trigger_event('MEDIAMANAGER_STARTED',$tmp=array());
+ session_write_close(); //close session
// do not display the manager if user does not have read access
if($AUTH < AUTH_READ && !$fullscreen) {
@@ -52,7 +54,7 @@
exit;
}
- // give info on PHP catched upload errors
+ // give info on PHP caught upload errors
if($_FILES['upload']['error']){
switch($_FILES['upload']['error']){
case 1:
diff --git a/lib/plugins/acl/lang/de-informal/lang.php b/lib/plugins/acl/lang/de-informal/lang.php
index 8b1416137..45a993982 100644
--- a/lib/plugins/acl/lang/de-informal/lang.php
+++ b/lib/plugins/acl/lang/de-informal/lang.php
@@ -9,6 +9,7 @@
* @author Christian Wichmann <nospam@zone0.de>
* @author Pierre Corell <info@joomla-praxis.de>
* @author Frank Loizzi <contact@software.bacal.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['admin_acl'] = 'Zugangsverwaltung';
$lang['acl_group'] = 'Gruppe';
diff --git a/lib/plugins/acl/lang/ko/lang.php b/lib/plugins/acl/lang/ko/lang.php
index 5cec4b8fd..7c1e9a43d 100644
--- a/lib/plugins/acl/lang/ko/lang.php
+++ b/lib/plugins/acl/lang/ko/lang.php
@@ -40,4 +40,4 @@ $lang['acl_perm4'] = '만들기';
$lang['acl_perm8'] = '올리기';
$lang['acl_perm16'] = '삭제';
$lang['acl_new'] = '새 항목 추가';
-$lang['acl_mod'] = '선택 항목 수정';
+$lang['acl_mod'] = '항목 수정';
diff --git a/lib/plugins/acl/lang/sv/lang.php b/lib/plugins/acl/lang/sv/lang.php
index 7f963d5e1..388672fc0 100644
--- a/lib/plugins/acl/lang/sv/lang.php
+++ b/lib/plugins/acl/lang/sv/lang.php
@@ -16,6 +16,7 @@
* @author Peter Åström <eaustreum@gmail.com>
* @author Håkan Sandell <hakan.sandell@home.se>
* @author mikael@mallander.net
+ * @author Smorkster Andersson smorkster@gmail.com
*/
$lang['admin_acl'] = 'Hantera behörighetslistan (ACL)';
$lang['acl_group'] = 'Grupp';
diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php
index b6b5dd268..fcbd2eeef 100644
--- a/lib/plugins/authad/auth.php
+++ b/lib/plugins/authad/auth.php
@@ -489,6 +489,11 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin {
$this->cando['modPass'] = false;
}
+ // adLDAP expects empty user/pass as NULL, we're less strict FS#2781
+ if(empty($opts['admin_username'])) $opts['admin_username'] = null;
+ if(empty($opts['admin_password'])) $opts['admin_password'] = null;
+
+ // user listing needs admin priviledges
if(!empty($opts['admin_username']) && !empty($opts['admin_password'])) {
$this->cando['getUsers'] = true;
} else {
diff --git a/lib/plugins/authad/conf/default.php b/lib/plugins/authad/conf/default.php
index 9274db209..f71202cfc 100644
--- a/lib/plugins/authad/conf/default.php
+++ b/lib/plugins/authad/conf/default.php
@@ -4,8 +4,8 @@ $conf['account_suffix'] = '';
$conf['base_dn'] = '';
$conf['domain_controllers'] = '';
$conf['sso'] = 0;
-$conf['admin_username'] = '';
-$conf['admin_password'] = '';
+$conf['admin_username'] = '';
+$conf['admin_password'] = '';
$conf['real_primarygroup'] = 0;
$conf['use_ssl'] = 0;
$conf['use_tls'] = 0;
diff --git a/lib/plugins/authad/lang/de-informal/settings.php b/lib/plugins/authad/lang/de-informal/settings.php
index 4d0b93e5d..a458617b8 100644
--- a/lib/plugins/authad/lang/de-informal/settings.php
+++ b/lib/plugins/authad/lang/de-informal/settings.php
@@ -4,6 +4,7 @@
*
* @author Frank Loizzi <contact@software.bacal.de>
* @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['account_suffix'] = 'Dein Account-Suffix. Z.B. <code>@my.domain.org</code>';
$lang['base_dn'] = 'Dein Base-DN. Z.B. <code>DC=my,DC=domain,DC=org</code>';
diff --git a/lib/plugins/authad/lang/pt-br/settings.php b/lib/plugins/authad/lang/pt-br/settings.php
index 29f8db4ad..308d122dd 100644
--- a/lib/plugins/authad/lang/pt-br/settings.php
+++ b/lib/plugins/authad/lang/pt-br/settings.php
@@ -7,8 +7,10 @@
$lang['account_suffix'] = 'Sufixo de sua conta. Eg. <code>@meu.domínio.org</code>';
$lang['base_dn'] = 'Sua base DN. Eg. <code>DC=meu,DC=domínio,DC=org</code>';
$lang['domain_controllers'] = 'Uma lista de controles de domínios separada por vírgulas. Eg. <code>srv1.domínio.org,srv2.domínio.org</code>';
+$lang['admin_username'] = 'Um usuário com privilégios do Active Directory com acesso a todos os dados dos outros usuários. Opcional, mas necessário para certas ações como enviar emails de inscrição.';
$lang['admin_password'] = 'A senha do usuário acima.';
$lang['sso'] = 'Usar Single-Sign-On através do Kerberos ou NTLM?';
+$lang['real_primarygroup'] = 'Deverá o grupo real primário ser resolvido ao invés de assumir "Usuários de domínio" (mais lento) ';
$lang['use_ssl'] = 'Usar conexão SSL? Se usar, não habilitar TLS abaixo.';
$lang['use_tls'] = 'Usar conexão TLS? se usar, não habilitar SSL acima.';
$lang['debug'] = 'Mostrar saída adicional de depuração em mensagens de erros?';
diff --git a/lib/plugins/authad/lang/sv/settings.php b/lib/plugins/authad/lang/sv/settings.php
new file mode 100644
index 000000000..b1eb1cb96
--- /dev/null
+++ b/lib/plugins/authad/lang/sv/settings.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Swedish language file
+ *
+ * @author Smorkster Andersson smorkster@gmail.com
+ */
+$lang['account_suffix'] = 'Ditt konto suffix. T.ex. <code>min.domän.org</code>';
+$lang['admin_password'] = 'Lösenord för användare ovan.';
+$lang['sso'] = 'Ska Single-Sign-On via Kerberos eller NTLM användas?';
+$lang['use_ssl'] = 'Använda SSL anslutning? Om använd, möjliggör inte TLS nedan.';
+$lang['use_tls'] = 'Använda TLS anslutning? Om använd, möjliggör inte SSL ovan.';
diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php
index b49aa4792..6a967a6d4 100644
--- a/lib/plugins/authldap/auth.php
+++ b/lib/plugins/authldap/auth.php
@@ -248,7 +248,7 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin {
}
// always add the default group to the list of groups
- if(!in_array($conf['defaultgroup'], $info['grps'])) {
+ if(!$info['grps'] or !in_array($conf['defaultgroup'], $info['grps'])) {
$info['grps'][] = $conf['defaultgroup'];
}
return $info;
@@ -502,23 +502,23 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin {
* @return resource
*/
protected function _ldapsearch($link_identifier, $base_dn, $filter, $scope = 'sub', $attributes = null,
- $attrsonly = 0, $sizelimit = 0, $timelimit = 0, $deref = LDAP_DEREF_NEVER) {
+ $attrsonly = 0, $sizelimit = 0) {
if(is_null($attributes)) $attributes = array();
if($scope == 'base') {
return @ldap_read(
$link_identifier, $base_dn, $filter, $attributes,
- $attrsonly, $sizelimit, $timelimit, $deref
+ $attrsonly, $sizelimit
);
} elseif($scope == 'one') {
return @ldap_list(
$link_identifier, $base_dn, $filter, $attributes,
- $attrsonly, $sizelimit, $timelimit, $deref
+ $attrsonly, $sizelimit
);
} else {
return @ldap_search(
$link_identifier, $base_dn, $filter, $attributes,
- $attrsonly, $sizelimit, $timelimit, $deref
+ $attrsonly, $sizelimit
);
}
}
diff --git a/lib/plugins/authldap/conf/default.php b/lib/plugins/authldap/conf/default.php
index d530d59c9..2c295eeeb 100644
--- a/lib/plugins/authldap/conf/default.php
+++ b/lib/plugins/authldap/conf/default.php
@@ -9,6 +9,7 @@ $conf['groupfilter'] = '';
$conf['version'] = 2;
$conf['starttls'] = 0;
$conf['referrals'] = 0;
+$conf['deref'] = 0;
$conf['binddn'] = '';
$conf['bindpw'] = '';
//$conf['mapping']['name'] unsupported in config manager
diff --git a/lib/plugins/authldap/conf/metadata.php b/lib/plugins/authldap/conf/metadata.php
index fc5b2e63c..a3256628c 100644
--- a/lib/plugins/authldap/conf/metadata.php
+++ b/lib/plugins/authldap/conf/metadata.php
@@ -8,6 +8,7 @@ $meta['groupfilter'] = array('string');
$meta['version'] = array('numeric');
$meta['starttls'] = array('onoff');
$meta['referrals'] = array('onoff');
+$meta['deref'] = array('multichoice','_choices' => array(0,1,2,3));
$meta['binddn'] = array('string');
$meta['bindpw'] = array('password');
//$meta['mapping']['name'] unsupported in config manager
diff --git a/lib/plugins/authldap/lang/de-informal/settings.php b/lib/plugins/authldap/lang/de-informal/settings.php
index fa0fc1521..15e4d8129 100644
--- a/lib/plugins/authldap/lang/de-informal/settings.php
+++ b/lib/plugins/authldap/lang/de-informal/settings.php
@@ -4,6 +4,7 @@
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['server'] = 'Adresse zum LDAP-Server. Entweder als Hostname (<code>localhost</code>) oder als FQDN (<code>ldap://server.tld:389</code>).';
$lang['port'] = 'Port des LDAP-Servers, falls kein Port angegeben wurde.';
@@ -14,9 +15,14 @@ $lang['groupfilter'] = 'LDAP-Filter, um die Benutzergruppen zu suchen.
$lang['version'] = 'Zu verwendende Protokollversion von LDAP.';
$lang['starttls'] = 'Verbindung über TLS aufbauen?';
$lang['referrals'] = 'Weiterverfolgen von LDAP-Referrals (Verweise)?';
+$lang['deref'] = 'Wie sollen Aliasse derefernziert werden?';
$lang['binddn'] = 'DN eines optionalen Benutzers, wenn der anonyme Zugriff nicht ausreichend ist. Zum Beispiel: <code>cn=admin, dc=my, dc=home</code>.';
$lang['bindpw'] = 'Passwort des angegebenen Benutzers.';
$lang['userscope'] = 'Die Suchweite nach Benutzeraccounts.';
$lang['groupscope'] = 'Die Suchweite nach Benutzergruppen.';
$lang['groupkey'] = 'Gruppieren der Benutzeraccounts anhand eines beliebigen Benutzerattributes z. B. Telefonnummer oder Abteilung, anstelle der Standard-Gruppen).';
$lang['debug'] = 'Debug-Informationen beim Auftreten von Fehlern anzeigen?';
+$lang['deref_o_0'] = 'LDAP_DEREF_NIEMALS';
+$lang['deref_o_1'] = 'LDAP_DEREF_SUCHEN';
+$lang['deref_o_2'] = 'LDAP_DEREF_FINDEN';
+$lang['deref_o_3'] = 'LDAP_DEREF_IMMER';
diff --git a/lib/plugins/authldap/lang/en/settings.php b/lib/plugins/authldap/lang/en/settings.php
index ddedf8ae3..e3f385f99 100644
--- a/lib/plugins/authldap/lang/en/settings.php
+++ b/lib/plugins/authldap/lang/en/settings.php
@@ -8,9 +8,16 @@ $lang['groupfilter'] = 'LDAP filter to search for groups. Eg. <code>(&amp;(objec
$lang['version'] = 'The protocol version to use. You may need to set this to <code>3</code>';
$lang['starttls'] = 'Use TLS connections?';
$lang['referrals'] = 'Shall referrals be followed?';
+$lang['deref'] = 'How to dereference aliases?';
$lang['binddn'] = 'DN of an optional bind user if anonymous bind is not sufficient. Eg. <code>cn=admin, dc=my, dc=home</code>';
$lang['bindpw'] = 'Password of above user';
$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['groupkey'] = 'Group membership 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';
+
+
+$lang['deref_o_0'] = 'LDAP_DEREF_NEVER';
+$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING';
+$lang['deref_o_2'] = 'LDAP_DEREF_FINDING';
+$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS'; \ No newline at end of file
diff --git a/lib/plugins/authldap/lang/pt-br/settings.php b/lib/plugins/authldap/lang/pt-br/settings.php
index daf9efd00..70b68b289 100644
--- a/lib/plugins/authldap/lang/pt-br/settings.php
+++ b/lib/plugins/authldap/lang/pt-br/settings.php
@@ -8,12 +8,19 @@ $lang['server'] = 'Seu servidor LDAP. Ou hostname (<code>localhos
$lang['port'] = 'Porta LDAP do servidor se nenhuma URL completa tiver sido fornecida acima';
$lang['usertree'] = 'Onde encontrar as contas de usuários. Eg. <code>ou=Pessoas, dc=servidor, dc=tld</code>';
$lang['grouptree'] = 'Onde encontrar os grupos de usuários. Eg. <code>ou=Pessoas, dc=servidor, dc=tld</code>';
+$lang['userfilter'] = 'Filtro do LDAP para procurar por contas de usuários. Eg. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = 'Filtro do LDAP 0ara procurar por grupos. Eg. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
$lang['version'] = 'A versão do protocolo para usar. Você talvez deva definir isto para <code>3</code>';
$lang['starttls'] = 'Usar conexões TLS?';
$lang['referrals'] = 'Permitir referências serem seguidas?';
+$lang['deref'] = 'Como respeitar aliases ?';
$lang['binddn'] = 'DN de um vínculo opcional de usuário se vínculo anônimo não for suficiente. Eg. <code>cn=admin, dc=my, dc=home</code>';
$lang['bindpw'] = 'Senha do usuário acima';
$lang['userscope'] = 'Limitar escopo da busca para busca de usuário';
$lang['groupscope'] = 'Limitar escopo da busca para busca de grupo';
$lang['groupkey'] = 'Membro de grupo vem de qualquer atributo do usuário (ao invés de grupos padrões AD) e.g. departamento de grupo ou número de telefone';
$lang['debug'] = 'Mostrar informações adicionais de depuração em erros';
+$lang['deref_o_0'] = 'LDAP_DEREF_NEVER';
+$lang['deref_o_1'] = 'LDAP_DEREF_SEARCHING';
+$lang['deref_o_2'] = 'LDAP_DEREF_FINDING';
+$lang['deref_o_3'] = 'LDAP_DEREF_ALWAYS';
diff --git a/lib/plugins/authldap/lang/sv/settings.php b/lib/plugins/authldap/lang/sv/settings.php
new file mode 100644
index 000000000..0fdcad147
--- /dev/null
+++ b/lib/plugins/authldap/lang/sv/settings.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Swedish language file
+ *
+ * @author Smorkster Andersson smorkster@gmail.com
+ */
+$lang['server'] = 'Din LDAO server. Antingen värdnamn (<code>localhost</code>) eller giltig full URL (<code>ldap://server.tld:389</code>)';
+$lang['port'] = 'LDAP server port, om det inte angavs full URL ovan';
+$lang['usertree'] = 'Specificera var användarkonton finns. T.ex. <code>ou=Användare, dc=server, dc=tld</code>';
+$lang['grouptree'] = 'Specificera var grupper finns. T.ex. <code>ou=Grupp, dc=server, dc=tld</code>';
+$lang['userfilter'] = 'LDAP filter för att söka efter användarkonton. T.ex. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = 'LDAP filter för att söka efter grupper. T.ex. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
+$lang['version'] = 'Version av protokoll att använda. Du kan behöva sätta detta till <code>3</code>';
+$lang['bindpw'] = 'Lösenord för användare ovan';
+$lang['groupkey'] = 'Gruppmedlemskap från något användarattribut (istället för standard AD grupp) t.ex. grupp från avdelning eller telefonnummer';
+$lang['debug'] = 'Visa ytterligare felsökningsinformation vid fel';
diff --git a/lib/plugins/authmysql/lang/de-informal/settings.php b/lib/plugins/authmysql/lang/de-informal/settings.php
index 0c9bc85fe..540979cf4 100644
--- a/lib/plugins/authmysql/lang/de-informal/settings.php
+++ b/lib/plugins/authmysql/lang/de-informal/settings.php
@@ -4,6 +4,7 @@
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['server'] = 'MySQL-Server';
$lang['user'] = 'Benutzername für den Zugriff auf den MySQL-Server.';
diff --git a/lib/plugins/authmysql/lang/sv/settings.php b/lib/plugins/authmysql/lang/sv/settings.php
new file mode 100644
index 000000000..027c64025
--- /dev/null
+++ b/lib/plugins/authmysql/lang/sv/settings.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Swedish language file
+ *
+ * @author Smorkster Andersson smorkster@gmail.com
+ */
+$lang['server'] = 'Din MySQL server';
+$lang['user'] = 'Användarnamn för MySQL';
+$lang['password'] = 'Lösenord för användare ovan';
+$lang['database'] = 'Databas att använda';
+$lang['debug'] = 'Visa ytterligare felsökningsinformation';
+$lang['forwardClearPass'] = 'Skicka användares lösenord i klartext till SQL sats nedan, istället för att använda passcrypt alternativet';
+$lang['checkPass'] = 'SQL sats för kontroll av lösenord';
+$lang['getUserInfo'] = 'SQL sats för att hämta användarinformation';
+$lang['getGroups'] = 'SQL sats för att hämta en användares gruppmedlemskap';
+$lang['getUsers'] = 'SQL sats för att lista alla användare';
+$lang['addUser'] = 'SQL sats för att lägga till en användare';
+$lang['addGroup'] = 'SQL sats för att lägga till en grupp';
+$lang['addUserGroup'] = 'SQL sats för att lägga till en användare i en existerande grupp';
+$lang['delGroup'] = 'SQL sats för att ta bort en grupp';
+$lang['delUser'] = 'SQL sats för att ta bort en användare';
+$lang['delUserRefs'] = 'SQL sats för att ta bort en användare från alla grupper';
+$lang['updateUser'] = 'SQL sats för att uppdatera en användarprofil';
+$lang['delUserGroup'] = 'SQL sats för att ta bort en användare från en angiven grupp';
+$lang['debug_o_0'] = 'ingen';
diff --git a/lib/plugins/authpgsql/lang/de-informal/settings.php b/lib/plugins/authpgsql/lang/de-informal/settings.php
index 4c80245d6..d864d14d4 100644
--- a/lib/plugins/authpgsql/lang/de-informal/settings.php
+++ b/lib/plugins/authpgsql/lang/de-informal/settings.php
@@ -4,6 +4,7 @@
*
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
* @author Matthias Schulte <dokuwiki@lupo49.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['server'] = 'PostgreSQL-Server';
$lang['port'] = 'Port des PostgreSQL-Servers.';
diff --git a/lib/plugins/authpgsql/lang/sv/settings.php b/lib/plugins/authpgsql/lang/sv/settings.php
new file mode 100644
index 000000000..27cb2601d
--- /dev/null
+++ b/lib/plugins/authpgsql/lang/sv/settings.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Swedish language file
+ *
+ * @author Smorkster Andersson smorkster@gmail.com
+ */
+$lang['server'] = 'Din PostgreSQL server';
+$lang['port'] = 'Din PostgreSQL servers port';
+$lang['user'] = 'PostgreSQL användarnamn';
+$lang['password'] = 'Lösenord för användaren ovan';
+$lang['database'] = 'Databas att använda';
+$lang['debug'] = 'Visa ytterligare felsökningsinformation';
+$lang['forwardClearPass'] = 'Skicka lösenord för användare som klartext till SQL satserna nedan, istället för att använda krypteringsalternativet';
+$lang['checkPass'] = 'SQL sats för kontroll av lösenord';
+$lang['getUserInfo'] = 'SQL sats för att hämta användarinformation';
+$lang['getGroups'] = 'SQL sats för att hämta en användares gruppmedlemskap';
+$lang['getUsers'] = 'SQL sats för att lista alla användare';
+$lang['FilterLogin'] = 'SQL klausul för att filtrera användare efter inloggningsnamn';
+$lang['FilterName'] = 'SQL klausul för att filtrera användare efter fullt namn';
+$lang['FilterEmail'] = 'SQL klausul för att filtrera användare efter e-post adress';
+$lang['addUser'] = 'SQL sats för att lägga till en ny användare';
+$lang['addGroup'] = 'SQL sats för att lägga till en ny grupp';
+$lang['addUserGroup'] = 'SQL sats för att lägga till en användare i en existerande grupp';
+$lang['delGroup'] = 'SQL sats för att ta bort en grupp';
+$lang['delUser'] = 'SQL sats för att ta bort en användare';
+$lang['delUserRefs'] = 'SQL sats för att ta bort en användare från alla grupper';
+$lang['updateUser'] = 'SQL sats för att uppdatera en användarprofil';
+$lang['delUserGroup'] = 'SQL sats för att ta bort en användare från angiven grupp';
diff --git a/lib/plugins/authplain/auth.php b/lib/plugins/authplain/auth.php
index 3416ede89..8c4ce0dd9 100644
--- a/lib/plugins/authplain/auth.php
+++ b/lib/plugins/authplain/auth.php
@@ -198,13 +198,9 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin {
if(empty($deleted)) return 0;
$pattern = '/^('.join('|', $deleted).'):/';
+ io_deleteFromFile($config_cascade['plainauth.users']['default'], $pattern, true);
- if(io_deleteFromFile($config_cascade['plainauth.users']['default'], $pattern, true)) {
- foreach($deleted as $user) unset($this->users[$user]);
- return count($deleted);
- }
-
- // problem deleting, reload the user list and count the difference
+ // reload the user list and count the difference
$count = count($this->users);
$this->_loadUserData();
$count -= count($this->users);
diff --git a/lib/plugins/config/lang/de-informal/lang.php b/lib/plugins/config/lang/de-informal/lang.php
index ac61e4c85..10fa363dc 100644
--- a/lib/plugins/config/lang/de-informal/lang.php
+++ b/lib/plugins/config/lang/de-informal/lang.php
@@ -10,6 +10,7 @@
* @author Pierre Corell <info@joomla-praxis.de>
* @author Frank Loizzi <contact@software.bacal.de>
* @author Mateng Schimmerlos <mateng@firemail.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['menu'] = 'Konfiguration';
$lang['error'] = 'Konfiguration wurde nicht aktualisiert auf Grund eines ungültigen Wertes. Bitte überprüfe deine Änderungen und versuche es erneut.<br />Die/der ungültige(n) Wert(e) werden durch eine rote Umrandung hervorgehoben.';
diff --git a/lib/plugins/config/lang/ko/intro.txt b/lib/plugins/config/lang/ko/intro.txt
index a2dc7b6f6..b9eb763a4 100644
--- a/lib/plugins/config/lang/ko/intro.txt
+++ b/lib/plugins/config/lang/ko/intro.txt
@@ -2,6 +2,6 @@
DokuWiki 설치할 때 설정을 바꾸기 위해 사용하는 페이지입니다. 각 설정에 대한 자세한 도움말이 필요하다면 [[doku>ko:config|설정 문서 (한국어)]]와 [[doku>config|설정 문서 (영어)]]를 참고하세요.
-플러그인에 대한 자세한 정보가 필요하다면 [[doku>plugin:config|플러그인 설정]] 문서를 참고하세요. 빨간 배경색으로 보이는 설정은 이 플러그인에서 바꾸지 못하도록 되어있습니다. 파란 배경색으로 보이는 설정은 기본 설정값을 가지고 있습니다. 하얀 배경색으로 보이는 설정은 특별한 설치를 위해 설정되어 있습니다. 파란색과 하얀색 배경으로 된 설정은 수정이 가능합니다.
+플러그인에 대한 자세한 정보가 필요하다면 [[doku>plugin:config|플러그인 설정]] 문서를 참고하세요. 빨간 배경색으로 보이는 설정은 이 플러그인에서 바꾸지 못하도록 되어있습니다. 파란 배경색으로 보이는 설정은 기본 설정값을 가지고 있습니다. 하얀 배경색으로 보이는 설정은 특별한 설치를 위해 설정되어 있습니다. 파란색과 하얀색 배경으로 된 설정은 바꿀 수 있습니다.
이 페이지를 떠나기 전에 **저장** 버튼을 누르지 않으면 바뀐 값은 적용되지 않습니다. \ No newline at end of file
diff --git a/lib/plugins/config/lang/ko/lang.php b/lib/plugins/config/lang/ko/lang.php
index f69af2df6..da155bcef 100644
--- a/lib/plugins/config/lang/ko/lang.php
+++ b/lib/plugins/config/lang/ko/lang.php
@@ -11,14 +11,14 @@
* @author Myeongjin <aranet100@gmail.com>
*/
$lang['menu'] = '환경 설정';
-$lang['error'] = '잘못된 값 때문에 설정을 바꿀 수 없습니다. 수정한 값을 검토하고 확인을 누르세요.
+$lang['error'] = '잘못된 값 때문에 설정을 바꿀 수 없습니다. 바뀜을 검토하고 확인을 누르세요.
<br />잘못된 값은 빨간 선으로 둘러싸여 있습니다.';
$lang['updated'] = '설정이 성공적으로 바뀌었습니다.';
$lang['nochoice'] = '(다른 선택이 불가능합니다)';
-$lang['locked'] = '환경 설정 파일을 수정할 수 없습니다. 의도한 행동이 아니라면,<br />
+$lang['locked'] = '환경 설정 파일을 바꿀 수 없습니다. 의도한 행동이 아니라면,<br />
파일 이름과 권한이 맞는지 확인하세요.';
-$lang['danger'] = '위험: 이 옵션을 잘못 수정하면 환경설정 메뉴를 사용할 수 없을 수도 있습니다.';
-$lang['warning'] = '경고: 이 옵션을 잘못 수정하면 잘못 동작할 수 있습니다.';
+$lang['danger'] = '위험: 이 옵션을 잘못 바꾸면 환경 설정 메뉴를 사용할 수 없을 수도 있습니다.';
+$lang['warning'] = '경고: 이 옵션을 잘못 바꾸면 잘못 동작할 수 있습니다.';
$lang['security'] = '보안 경고: 이 옵션은 보안에 위험이 있을 수 있습니다.';
$lang['_configuration_manager'] = '환경 설정 관리자';
$lang['_header_dokuwiki'] = 'DokuWiki 설정';
@@ -48,13 +48,13 @@ $lang['template'] = '템플릿 (위키 디자인)';
$lang['tagline'] = '태그 라인 (템플릿이 지원할 때에 한함)';
$lang['sidebar'] = '사이드바 문서 이름 (템플릿이 지원할 때에 한함), 비워두면 사이드바를 비활성화';
$lang['license'] = '콘텐츠에 어떤 라이선스를 적용하겠습니까?';
-$lang['savedir'] = '데이타 저장 디렉토리';
+$lang['savedir'] = '데이터 저장 디렉토리';
$lang['basedir'] = '서버 경로 (예를 들어 <code>/dokuwiki/</code>). 자동 감지를 하려면 비우세요.';
$lang['baseurl'] = '서버 URL (예를 들어 <code>http://www.yourserver.com</code>). 자동 감지를 하려면 비우세요.';
$lang['cookiedir'] = '쿠키 위치. 비워두면 기본 URL 위치로 지정됩니다.';
$lang['dmode'] = '디렉토리 만들기 모드';
$lang['fmode'] = '파일 만들기 모드';
-$lang['allowdebug'] = '디버그 허용 <b>필요하지 않으면 비활성화할 것!</b>';
+$lang['allowdebug'] = '디버그 허용 <b>필요하지 않으면 비활성화하세요!</b>';
$lang['recent'] = '최근 바뀐 문서당 항목 수';
$lang['recent_days'] = '최근 바뀐 문서 기준 시간 (일)';
$lang['breadcrumbs'] = '위치 "추적" 수. 0으로 설정하면 비활성화합니다.';
@@ -63,7 +63,7 @@ $lang['fullpath'] = '문서 하단에 전체 경로 보여주기';
$lang['typography'] = '기호 대체';
$lang['dformat'] = '날짜 형식 (PHP <a href="http://www.php.net/strftime">strftime</a> 기능 참고)';
$lang['signature'] = '편집기에서 서명 버튼을 누를 때 삽입할 내용';
-$lang['showuseras'] = '마지막에 문서를 수정한 사용자를 보여줄지 여부';
+$lang['showuseras'] = '마지막에 문서를 편집한 사용자를 보여줄지 여부';
$lang['toptoclevel'] = '목차 최상위 항목';
$lang['tocminheads'] = '목차 표시 여부를 결정할 최소한의 문단 제목 항목의 수';
$lang['maxtoclevel'] = '목차 최대 단계';
@@ -102,7 +102,7 @@ $lang['htmlok'] = 'HTML 내장 허용';
$lang['phpok'] = 'PHP 내장 허용';
$lang['locktime'] = '최대 파일 잠금 시간(초)';
$lang['cachetime'] = '최대 캐시 생존 시간 (초)';
-$lang['target____wiki'] = '내부 링크에 대한 타겟 창';
+$lang['target____wiki'] = '안쪽 링크에 대한 타겟 창';
$lang['target____interwiki'] = '인터위키 링크에 대한 타겟 창';
$lang['target____extern'] = '바깥 링크에 대한 타겟 창';
$lang['target____media'] = '미디어 링크에 대한 타겟 창';
@@ -133,7 +133,7 @@ $lang['userewrite'] = '멋진 URL 사용';
$lang['useslash'] = 'URL에서 이름 구분자로 슬래시 문자 사용';
$lang['sepchar'] = '문서 이름 단어 구분자';
$lang['canonical'] = '완전한 canonical URL 사용';
-$lang['fnencode'] = '아스키가 아닌 파일 이름을 인코딩 하는 방법.';
+$lang['fnencode'] = 'ASCII가 아닌 파일 이름을 인코딩 하는 방법.';
$lang['autoplural'] = '링크 연결시 복수 양식 검사';
$lang['compression'] = '첨부 파일 압축 방법 선택';
$lang['gzip_output'] = 'xhml 내용 gzip 압축 사용';
@@ -143,9 +143,9 @@ $lang['send404'] = '존재하지 않는 페이지에 대해 "HTTP
$lang['broken_iua'] = '설치된 시스템에서 ignore_user_abort 기능에 문제가 있습니까? 문제가 있다면 색인이 정상적으로 동작하지 않습니다. 이 기능이 IIS+PHP/CGI에서 문제가 있는 것으로 알려졌습니다. 자세한 정보는 <a href="http://bugs.dokuwiki.org/?do=details&amp;task_id=852">버그 852</a>를 참고하시기 바랍니다.';
$lang['xsendfile'] = '웹 서버가 정적 파일을 제공하도록 X-Sendfile 헤더를 사용하겠습니까? 웹 서버가 이 기능을 지원해야 합니다.';
$lang['renderer_xhtml'] = '주 (xhtml) 위키 출력 처리기';
-$lang['renderer__core'] = '%s (DokuWiki 내부 기능)';
+$lang['renderer__core'] = '%s (DokuWiki 내부)';
$lang['renderer__plugin'] = '%s (플러그인)';
-$lang['dnslookups'] = '이 옵션을 활성화하면 DokuWiki가 문서를 수정하는 사용자의 호스트 네임과 원격 IP 주소를 확인합니다. 서버가 느리거나, DNS를 운영하지 않거나 이 기능을 원치 않으면 비활성화하세요';
+$lang['dnslookups'] = '이 옵션을 활성화하면 DokuWiki가 문서를 편집하는 사용자의 호스트 네임과 원격 IP 주소를 확인합니다. 서버가 느리거나, DNS를 운영하지 않거나 이 기능을 원치 않으면 비활성화하세요';
$lang['proxy____host'] = '프록시 서버 이름';
$lang['proxy____port'] = '프록시 서버 포트';
$lang['proxy____user'] = '프록시 사용자 이름';
diff --git a/lib/plugins/config/lang/sv/lang.php b/lib/plugins/config/lang/sv/lang.php
index 3d8392840..d59b4b17e 100644
--- a/lib/plugins/config/lang/sv/lang.php
+++ b/lib/plugins/config/lang/sv/lang.php
@@ -16,6 +16,7 @@
* @author Peter Åström <eaustreum@gmail.com>
* @author Håkan Sandell <hakan.sandell@home.se>
* @author mikael@mallander.net
+ * @author Smorkster Andersson smorkster@gmail.com
*/
$lang['menu'] = 'Hantera inställningar';
$lang['error'] = 'Inställningarna uppdaterades inte på grund av ett felaktigt värde. Titta igenom dina ändringar och försök sedan spara igen.
@@ -39,6 +40,8 @@ $lang['_anti_spam'] = 'Inställningar för anti-spam';
$lang['_editing'] = 'Inställningar för redigering';
$lang['_links'] = 'Inställningar för länkar';
$lang['_media'] = 'Inställningar för medier';
+$lang['_notifications'] = 'Noterings inställningar';
+$lang['_syndication'] = 'Syndikats inställningar';
$lang['_advanced'] = 'Avancerade inställningar';
$lang['_network'] = 'Nätverksinställningar';
$lang['_plugin_sufix'] = '(inställningar för insticksmodul)';
@@ -46,25 +49,27 @@ $lang['_template_sufix'] = '(inställningar för mall)';
$lang['_msg_setting_undefined'] = 'Ingen inställningsmetadata.';
$lang['_msg_setting_no_class'] = 'Ingen inställningsklass.';
$lang['_msg_setting_no_default'] = 'Inget standardvärde.';
-$lang['fmode'] = 'Filskydd för nya filer';
-$lang['dmode'] = 'Filskydd för nya kataloger';
-$lang['lang'] = 'Språk';
-$lang['basedir'] = 'Grundkatalog';
-$lang['baseurl'] = 'Grund-webbadress';
-$lang['savedir'] = 'Katalog för att spara data';
-$lang['start'] = 'Startsidans namn';
$lang['title'] = 'Wikins namn';
+$lang['start'] = 'Startsidans namn';
+$lang['lang'] = 'Språk';
$lang['template'] = 'Mall';
$lang['license'] = 'Under vilken licens skall ditt innehåll publiceras?';
-$lang['fullpath'] = 'Visa fullständig sökväg i sidfoten';
+$lang['savedir'] = 'Katalog för att spara data';
+$lang['basedir'] = 'Grundkatalog';
+$lang['baseurl'] = 'Grund-webbadress';
+$lang['cookiedir'] = 'Cookie sökväg. Lämna blankt för att använda basurl.';
+$lang['dmode'] = 'Filskydd för nya kataloger';
+$lang['fmode'] = 'Filskydd för nya filer';
+$lang['allowdebug'] = 'Tillåt felsökning <b>stäng av om det inte behövs!</b>';
$lang['recent'] = 'Antal poster under "Nyligen ändrat"';
+$lang['recent_days'] = 'Hur många ändringar som ska sparas (dagar)';
$lang['breadcrumbs'] = 'Antal spår';
$lang['youarehere'] = 'Hierarkiska spår';
+$lang['fullpath'] = 'Visa fullständig sökväg i sidfoten';
$lang['typography'] = 'Aktivera typografiska ersättningar';
-$lang['htmlok'] = 'Tillåt inbäddad HTML';
-$lang['phpok'] = 'Tillåt inbäddad PHP';
$lang['dformat'] = 'Datumformat (se PHP:s <a href="http://www.php.net/strftime">strftime</a>-funktion)';
$lang['signature'] = 'Signatur';
+$lang['showuseras'] = 'Vad som skall visas när man visar den användare som senast redigerade en sida';
$lang['toptoclevel'] = 'Toppnivå för innehållsförteckning';
$lang['tocminheads'] = 'Minimalt antal rubriker för att avgöra om innehållsförteckning byggs';
$lang['maxtoclevel'] = 'Maximal nivå för innehållsförteckning';
@@ -72,15 +77,8 @@ $lang['maxseclevel'] = 'Maximal nivå för redigering av rubriker';
$lang['camelcase'] = 'Använd CamelCase för länkar';
$lang['deaccent'] = 'Rena sidnamn';
$lang['useheading'] = 'Använda första rubriken som sidnamn';
-$lang['refcheck'] = 'Kontrollera referenser till mediafiler';
-$lang['refshow'] = 'Antal mediareferenser som ska visas';
-$lang['allowdebug'] = 'Tillåt felsökning <b>stäng av om det inte behövs!</b>';
-$lang['usewordblock'] = 'Blockera spam baserat på ordlista';
-$lang['indexdelay'] = 'Tidsfördröjning före indexering (sek)';
-$lang['relnofollow'] = 'Använd rel="nofollow" för externa länkar';
-$lang['mailguard'] = 'Koda e-postadresser';
-$lang['iexssprotect'] = 'Kontrollera om uppladdade filer innehåller eventuellt skadlig JavaScript eller HTML-kod';
-$lang['showuseras'] = 'Vad som skall visas när man visar den användare som senast redigerade en sida';
+$lang['sneaky_index'] = 'Som standard visar DokuWiki alla namnrymder på indexsidan. Genom att aktivera det här valet döljer man namnrymder som användaren inte har behörighet att läsa. Det kan leda till att man döljer åtkomliga undernamnrymder, och gör indexet oanvändbart med vissa ACL-inställningar.';
+$lang['hidepages'] = 'Dölj matchande sidor (reguljära uttryck)';
$lang['useacl'] = 'Använd behörighetslista (ACL)';
$lang['autopasswd'] = 'Autogenerera lösenord';
$lang['authtype'] = 'System för autentisering';
@@ -89,60 +87,69 @@ $lang['defaultgroup'] = 'Förvald grupp';
$lang['superuser'] = 'Huvudadministratör - en grupp eller en användare med full tillgång till alla sidor och funktioner, oavsett behörighetsinställningars';
$lang['manager'] = 'Administratör -- en grupp eller användare med tillgång till vissa administrativa funktioner.';
$lang['profileconfirm'] = 'Bekräfta ändringarna i profilen med lösenordet';
+$lang['rememberme'] = 'Tillåt permanenta inloggningscookies (kom ihåg mig)';
$lang['disableactions'] = 'Stäng av funktioner i DokuWiki';
$lang['disableactions_check'] = 'Kontroll';
$lang['disableactions_subscription'] = 'Prenumerera/Säg upp prenumeration';
$lang['disableactions_wikicode'] = 'Visa källkod/Exportera råtext';
$lang['disableactions_other'] = 'Andra funktioner (kommaseparerade)';
-$lang['sneaky_index'] = 'Som standard visar DokuWiki alla namnrymder på indexsidan. Genom att aktivera det här valet döljer man namnrymder som användaren inte har behörighet att läsa. Det kan leda till att man döljer åtkomliga undernamnrymder, och gör indexet oanvändbart med vissa ACL-inställningar.';
$lang['auth_security_timeout'] = 'Autentisieringssäkerhets timeout (sekunder)';
$lang['securecookie'] = 'Skall cookies som sätts via HTTPS endast skickas via HTTPS från webbläsaren? Avaktivera detta alternativ endast om inloggningen till din wiki är säkrad med SSL men läsning av wikin är osäkrad.';
-$lang['updatecheck'] = 'Kontrollera uppdateringar och säkerhetsvarningar? DokuWiki behöver kontakta update.dokuwiki.org för den här funktionen.';
-$lang['userewrite'] = 'Använd rena webbadresser';
-$lang['useslash'] = 'Använd snedstreck för att separera namnrymder i webbadresser';
+$lang['usewordblock'] = 'Blockera spam baserat på ordlista';
+$lang['relnofollow'] = 'Använd rel="nofollow" för externa länkar';
+$lang['indexdelay'] = 'Tidsfördröjning före indexering (sek)';
+$lang['mailguard'] = 'Koda e-postadresser';
+$lang['iexssprotect'] = 'Kontrollera om uppladdade filer innehåller eventuellt skadlig JavaScript eller HTML-kod';
$lang['usedraft'] = 'Spara utkast automatiskt under redigering';
-$lang['sepchar'] = 'Ersätt blanktecken i webbadresser med';
-$lang['canonical'] = 'Använd fullständiga webbadresser';
-$lang['autoplural'] = 'Leta efter pluralformer av länkar';
-$lang['compression'] = 'Metod för komprimering av gamla versioner';
-$lang['cachetime'] = 'Maximal livslängd för cache (sek)';
+$lang['htmlok'] = 'Tillåt inbäddad HTML';
+$lang['phpok'] = 'Tillåt inbäddad PHP';
$lang['locktime'] = 'Maximal livslängd för fillåsning (sek)';
+$lang['cachetime'] = 'Maximal livslängd för cache (sek)';
+$lang['target____wiki'] = 'Målfönster för interna länkar';
+$lang['target____interwiki'] = 'Målfönster för interwiki-länkar';
+$lang['target____extern'] = 'Målfönster för externa länkar';
+$lang['target____media'] = 'Målfönster för medialänkar';
+$lang['target____windows'] = 'Målfönster för windowslänkar';
+$lang['refcheck'] = 'Kontrollera referenser till mediafiler';
+$lang['refshow'] = 'Antal mediareferenser som ska visas';
+$lang['gdlib'] = 'Version av GD-biblioteket';
+$lang['im_convert'] = 'Sökväg till ImageMagicks konverteringsverktyg';
+$lang['jpg_quality'] = 'Kvalitet för JPG-komprimering (0-100)';
$lang['fetchsize'] = 'Maximal storlek (bytes) som fetch.php får ladda ned externt';
+$lang['subscribers'] = 'Aktivera stöd för prenumeration på ändringar';
$lang['notify'] = 'Skicka meddelande om ändrade sidor till den här e-postadressen';
$lang['registernotify'] = 'Skicka meddelande om nyregistrerade användare till en här e-postadressen';
$lang['mailfrom'] = 'Avsändaradress i automatiska e-postmeddelanden';
$lang['mailprefix'] = 'Prefix i början på ämnesraden vid automatiska e-postmeddelanden';
+$lang['sitemap'] = 'Skapa Google sitemap (dagar)';
+$lang['rss_type'] = 'Typ av XML-flöde';
+$lang['rss_linkto'] = 'XML-flöde pekar på';
+$lang['rss_content'] = 'Vad ska visas för saker i XML-flödet?';
+$lang['rss_update'] = 'Uppdateringsintervall för XML-flöde (sek)';
+$lang['rss_show_summary'] = 'XML-flöde visar sammanfattning i rubriken';
+$lang['rss_media'] = 'Vilka ändringar ska listas i XML flödet?';
+$lang['updatecheck'] = 'Kontrollera uppdateringar och säkerhetsvarningar? DokuWiki behöver kontakta update.dokuwiki.org för den här funktionen.';
+$lang['userewrite'] = 'Använd rena webbadresser';
+$lang['useslash'] = 'Använd snedstreck för att separera namnrymder i webbadresser';
+$lang['sepchar'] = 'Ersätt blanktecken i webbadresser med';
+$lang['canonical'] = 'Använd fullständiga webbadresser';
+$lang['fnencode'] = 'Metod för kodning av icke-ASCII filnamn.';
+$lang['autoplural'] = 'Leta efter pluralformer av länkar';
+$lang['compression'] = 'Metod för komprimering av gamla versioner';
$lang['gzip_output'] = 'Använd gzip Content-Encoding för xhtml';
-$lang['gdlib'] = 'Version av GD-biblioteket';
-$lang['im_convert'] = 'Sökväg till ImageMagicks konverteringsverktyg';
-$lang['jpg_quality'] = 'Kvalitet för JPG-komprimering (0-100)';
-$lang['subscribers'] = 'Aktivera stöd för prenumeration på ändringar';
$lang['compress'] = 'Komprimera CSS och javascript';
-$lang['hidepages'] = 'Dölj matchande sidor (reguljära uttryck)';
$lang['send404'] = 'Skicka "HTTP 404/Page Not Found" för sidor som inte finns';
-$lang['sitemap'] = 'Skapa Google sitemap (dagar)';
$lang['broken_iua'] = 'Är funktionen ignore_user_abort trasig på ditt system? Det kan i så fall leda till att indexering av sökningar inte fungerar. Detta är ett känt problem med IIS+PHP/CGI. Se <a href="http://bugs.splitbrain.org/?do=details&amp;task_id=852">Bug 852</a> för mer info.';
$lang['xsendfile'] = 'Använd X-Sendfile huvudet för att låta webservern leverera statiska filer? Din webserver behöver stöd för detta.';
$lang['renderer_xhtml'] = 'Generera för användning i huvudwikipresentation (xhtml)';
$lang['renderer__core'] = '%s (dokuwiki core)';
$lang['renderer__plugin'] = '%s (plugin)';
-$lang['rememberme'] = 'Tillåt permanenta inloggningscookies (kom ihåg mig)';
-$lang['rss_type'] = 'Typ av XML-flöde';
-$lang['rss_linkto'] = 'XML-flöde pekar på';
-$lang['rss_content'] = 'Vad ska visas för saker i XML-flödet?';
-$lang['rss_update'] = 'Uppdateringsintervall för XML-flöde (sek)';
-$lang['recent_days'] = 'Hur många ändringar som ska sparas (dagar)';
-$lang['rss_show_summary'] = 'XML-flöde visar sammanfattning i rubriken';
-$lang['target____wiki'] = 'Målfönster för interna länkar';
-$lang['target____interwiki'] = 'Målfönster för interwiki-länkar';
-$lang['target____extern'] = 'Målfönster för externa länkar';
-$lang['target____media'] = 'Målfönster för medialänkar';
-$lang['target____windows'] = 'Målfönster för windowslänkar';
$lang['proxy____host'] = 'Proxyserver';
$lang['proxy____port'] = 'Proxyport';
$lang['proxy____user'] = 'Användarnamn för proxy';
$lang['proxy____pass'] = 'Lösenord för proxy';
$lang['proxy____ssl'] = 'Använd ssl för anslutning till proxy';
+$lang['proxy____except'] = 'Regular expression för matchning av URL som proxy ska hoppa över.';
$lang['safemodehack'] = 'Aktivera safemode hack';
$lang['ftp____host'] = 'FTP-server för safemode hack';
$lang['ftp____port'] = 'FTP-port för safemode hack';
@@ -190,3 +197,4 @@ $lang['useheading_o_0'] = 'Aldrig';
$lang['useheading_o_navigation'] = 'Endst navigering';
$lang['useheading_o_content'] = 'Endast innehåll i wiki';
$lang['useheading_o_1'] = 'Alltid';
+$lang['readdircache'] = 'Max ålder för readdir cache (sek)';
diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php
index 97b28076b..5e7543603 100644
--- a/lib/plugins/info/syntax.php
+++ b/lib/plugins/info/syntax.php
@@ -81,6 +81,12 @@ class syntax_plugin_info extends DokuWiki_Syntax_Plugin {
case 'helperplugins':
$this->_plugins_xhtml('helper', $renderer);
break;
+ case 'authplugins':
+ $this->_plugins_xhtml('auth', $renderer);
+ break;
+ case 'remoteplugins':
+ $this->_plugins_xhtml('remote', $renderer);
+ break;
case 'helpermethods':
$this->_helpermethods_xhtml($renderer);
break;
diff --git a/lib/plugins/plugin/lang/de-informal/lang.php b/lib/plugins/plugin/lang/de-informal/lang.php
index a082218d8..5d1649434 100644
--- a/lib/plugins/plugin/lang/de-informal/lang.php
+++ b/lib/plugins/plugin/lang/de-informal/lang.php
@@ -9,6 +9,7 @@
* @author Christian Wichmann <nospam@zone0.de>
* @author Pierre Corell <info@joomla-praxis.de>
* @author Frank Loizzi <contact@software.bacal.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['menu'] = 'Plugins verwalten';
$lang['download'] = 'Herunterladen und installieren einer neuen Erweiterung';
diff --git a/lib/plugins/plugin/lang/sv/lang.php b/lib/plugins/plugin/lang/sv/lang.php
index 5892e42b5..a8578c03c 100644
--- a/lib/plugins/plugin/lang/sv/lang.php
+++ b/lib/plugins/plugin/lang/sv/lang.php
@@ -16,6 +16,7 @@
* @author Peter Åström <eaustreum@gmail.com>
* @author Håkan Sandell <hakan.sandell@home.se>
* @author mikael@mallander.net
+ * @author Smorkster Andersson smorkster@gmail.com
*/
$lang['menu'] = 'Hantera insticksmoduler';
$lang['download'] = 'Ladda ned och installera en ny insticksmodul';
@@ -61,3 +62,4 @@ $lang['enabled'] = 'Tilläggsmodulen %s är aktiverad.';
$lang['notenabled'] = 'Tilläggsmodulen %s kunde inte aktiveras, kontrollera filrättigheterna.';
$lang['disabled'] = 'Tiläggsmodulen %s är avaktiverad.';
$lang['notdisabled'] = 'Tilläggsmodulen %s kunde inte avaktiveras, kontrollera filrättigheterna.';
+$lang['packageinstalled'] = 'Tilläggs paket (%d tillägg: %s) har installerats.';
diff --git a/lib/plugins/popularity/lang/de-informal/lang.php b/lib/plugins/popularity/lang/de-informal/lang.php
index 513a1b6e1..0abf90b0b 100644
--- a/lib/plugins/popularity/lang/de-informal/lang.php
+++ b/lib/plugins/popularity/lang/de-informal/lang.php
@@ -9,6 +9,7 @@
* @author Christian Wichmann <nospam@zone0.de>
* @author Pierre Corell <info@joomla-praxis.de>
* @author Frank Loizzi <contact@software.bacal.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['name'] = 'Popularitätsrückmeldung (kann eine Weile dauern, bis es fertig geladen wurde)';
$lang['submit'] = 'Sende Daten';
diff --git a/lib/plugins/popularity/lang/ko/intro.txt b/lib/plugins/popularity/lang/ko/intro.txt
index 2513b77b4..c75c57ba5 100644
--- a/lib/plugins/popularity/lang/ko/intro.txt
+++ b/lib/plugins/popularity/lang/ko/intro.txt
@@ -2,7 +2,7 @@
설치된 위키의 익명 정보를 DokuWiki 개발자에게 보냅니다. 이 [[doku>popularity|도구]]는 DokuWiki가 실제 사용자에게 어떻게 사용되는지 DokuWiki 개발자에게 알려줌으로써 이 후 개발 시 참고가 됩니다.
-설치된 위키가 커짐에 따라서 이 과정을 반복할 필요가 있습니다. 반복된 데이타는 익명 ID로 구별되어집니다.
+설치된 위키가 커짐에 따라서 이 과정을 반복할 필요가 있습니다. 반복된 데이터는 익명 ID로 구별되어집니다.
보내려는 데이터는 설치 DokuWiki 버전, 문서와 파일 수, 크기, 설치 플러그인, 설치 PHP 정보등을 포함하고 있습니다.
diff --git a/lib/plugins/popularity/lang/sv/lang.php b/lib/plugins/popularity/lang/sv/lang.php
index 8be542e7f..90d820ba0 100644
--- a/lib/plugins/popularity/lang/sv/lang.php
+++ b/lib/plugins/popularity/lang/sv/lang.php
@@ -13,6 +13,7 @@
* @author Peter Åström <eaustreum@gmail.com>
* @author Håkan Sandell <hakan.sandell@home.se>
* @author mikael@mallander.net
+ * @author Smorkster Andersson smorkster@gmail.com
*/
$lang['name'] = 'Popularitets-feedback (det kan ta en stund att ladda sidan)';
$lang['submit'] = 'Sänd data';
diff --git a/lib/plugins/revert/lang/de-informal/lang.php b/lib/plugins/revert/lang/de-informal/lang.php
index 3a96429c7..b702e7727 100644
--- a/lib/plugins/revert/lang/de-informal/lang.php
+++ b/lib/plugins/revert/lang/de-informal/lang.php
@@ -9,6 +9,7 @@
* @author Christian Wichmann <nospam@zone0.de>
* @author Pierre Corell <info@joomla-praxis.de>
* @author Frank Loizzi <contact@software.bacal.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['menu'] = 'Zurückstellungsmanager';
$lang['filter'] = 'Durchsuche als Spam markierte Seiten';
diff --git a/lib/plugins/revert/lang/ko/lang.php b/lib/plugins/revert/lang/ko/lang.php
index d36726279..f944361b8 100644
--- a/lib/plugins/revert/lang/ko/lang.php
+++ b/lib/plugins/revert/lang/ko/lang.php
@@ -16,5 +16,5 @@ $lang['reverted'] = '%s 판을 %s 판으로 되돌림';
$lang['removed'] = '%s 삭제함';
$lang['revstart'] = '되돌리기 작업을 시작합니다. 오랜 시간이 걸릴 수 있습니다. 완료되기 전에 스크립트 시간 초과가 발생한다면 더 작은 작업으로 나누어서 되돌리시기 바랍니다.';
$lang['revstop'] = '되돌리기 작업이 성공적으로 끝났습니다.';
-$lang['note1'] = '참고: 대소문자를 구별하여 찾습니다';
+$lang['note1'] = '참고: 대소문자를 구별해 찾습니다';
$lang['note2'] = '참고: 이 문서는 <i>%s</i> 스팸 단어를 포함하지 않은 최근 이전 판으로 되돌립니다. ';
diff --git a/lib/plugins/revert/lang/sv/lang.php b/lib/plugins/revert/lang/sv/lang.php
index 29c6702eb..4a727b339 100644
--- a/lib/plugins/revert/lang/sv/lang.php
+++ b/lib/plugins/revert/lang/sv/lang.php
@@ -15,6 +15,7 @@
* @author Peter Åström <eaustreum@gmail.com>
* @author Håkan Sandell <hakan.sandell@home.se>
* @author mikael@mallander.net
+ * @author Smorkster Andersson smorkster@gmail.com
*/
$lang['menu'] = 'Hantera återställningar';
$lang['filter'] = 'Sök efter spamsidor';
diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php
index 01f4a4cdb..445836a50 100644
--- a/lib/plugins/usermanager/admin.php
+++ b/lib/plugins/usermanager/admin.php
@@ -355,7 +355,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
if ($this->_auth->canDo('modPass')){
if (empty($pass)){
if($INPUT->has('usernotify')){
- $pass = auth_pwgen();
+ $pass = auth_pwgen($user);
} else {
msg($this->lang['add_fail'], -1);
return false;
@@ -496,7 +496,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
// generate password if left empty and notification is on
if($INPUT->has('usernotify') && empty($newpass)){
- $newpass = auth_pwgen();
+ $newpass = auth_pwgen($olduser);
}
if (!empty($newpass) && $this->_auth->canDo('modPass'))
diff --git a/lib/plugins/usermanager/lang/de-informal/lang.php b/lib/plugins/usermanager/lang/de-informal/lang.php
index 07390854f..791cfa74f 100644
--- a/lib/plugins/usermanager/lang/de-informal/lang.php
+++ b/lib/plugins/usermanager/lang/de-informal/lang.php
@@ -9,6 +9,7 @@
* @author Christian Wichmann <nospam@zone0.de>
* @author Pierre Corell <info@joomla-praxis.de>
* @author Frank Loizzi <contact@software.bacal.de>
+ * @author Volker Bödker <volker@boedker.de>
*/
$lang['menu'] = 'Benutzerverwaltung';
$lang['noauth'] = '(Benutzeranmeldung ist nicht verfügbar)';
diff --git a/lib/plugins/usermanager/lang/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php
index f8c400d19..57bfbc4a2 100644
--- a/lib/plugins/usermanager/lang/ko/lang.php
+++ b/lib/plugins/usermanager/lang/ko/lang.php
@@ -23,8 +23,8 @@ $lang['value'] = '값';
$lang['add'] = '추가';
$lang['delete'] = '삭제';
$lang['delete_selected'] = '선택 삭제';
-$lang['edit'] = '수정';
-$lang['edit_prompt'] = '이 사용자 수정';
+$lang['edit'] = '편집';
+$lang['edit_prompt'] = '이 사용자 편집';
$lang['modify'] = '바뀜 저장';
$lang['search'] = '찾기';
$lang['search_prompt'] = '찾기 실행';
diff --git a/lib/plugins/usermanager/lang/sv/lang.php b/lib/plugins/usermanager/lang/sv/lang.php
index bd747927e..f8b530d90 100644
--- a/lib/plugins/usermanager/lang/sv/lang.php
+++ b/lib/plugins/usermanager/lang/sv/lang.php
@@ -15,6 +15,7 @@
* @author Peter Åström <eaustreum@gmail.com>
* @author Håkan Sandell <hakan.sandell@home.se>
* @author mikael@mallander.net
+ * @author Smorkster Andersson smorkster@gmail.com
*/
$lang['menu'] = 'Hantera användare';
$lang['noauth'] = '(användarautentisering ej tillgänlig)';
diff --git a/lib/scripts/jquery/jquery.cookie.js b/lib/scripts/jquery/jquery.cookie.js
index 2d4c05a84..c4f99af00 100644
--- a/lib/scripts/jquery/jquery.cookie.js
+++ b/lib/scripts/jquery/jquery.cookie.js
@@ -1,13 +1,19 @@
/*!
- * jQuery Cookie Plugin v1.3
+ * jQuery Cookie Plugin v1.3.1
* https://github.com/carhartl/jquery-cookie
*
- * Copyright 2011, Klaus Hartl
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.opensource.org/licenses/GPL-2.0
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
*/
-(function ($, document, undefined) {
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as anonymous module.
+ define(['jquery'], factory);
+ } else {
+ // Browser globals.
+ factory(jQuery);
+ }
+}(function ($) {
var pluses = /\+/g;
@@ -19,16 +25,22 @@
return decodeURIComponent(s.replace(pluses, ' '));
}
+ function converted(s) {
+ if (s.indexOf('"') === 0) {
+ // This is a quoted cookie as according to RFC2068, unescape
+ s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
+ }
+ try {
+ return config.json ? JSON.parse(s) : s;
+ } catch(er) {}
+ }
+
var config = $.cookie = function (key, value, options) {
// write
if (value !== undefined) {
options = $.extend({}, config.defaults, options);
- if (value === null) {
- options.expires = -1;
- }
-
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
@@ -37,7 +49,9 @@
value = config.json ? JSON.stringify(value) : String(value);
return (document.cookie = [
- encodeURIComponent(key), '=', config.raw ? value : encodeURIComponent(value),
+ config.raw ? key : encodeURIComponent(key),
+ '=',
+ config.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
@@ -48,25 +62,34 @@
// read
var decode = config.raw ? raw : decoded;
var cookies = document.cookie.split('; ');
+ var result = key ? undefined : {};
for (var i = 0, l = cookies.length; i < l; i++) {
var parts = cookies[i].split('=');
- if (decode(parts.shift()) === key) {
- var cookie = decode(parts.join('='));
- return config.json ? JSON.parse(cookie) : cookie;
+ var name = decode(parts.shift());
+ var cookie = decode(parts.join('='));
+
+ if (key && key === name) {
+ result = converted(cookie);
+ break;
+ }
+
+ if (!key) {
+ result[name] = converted(cookie);
}
}
- return null;
+ return result;
};
config.defaults = {};
$.removeCookie = function (key, options) {
- if ($.cookie(key) !== null) {
- $.cookie(key, null, options);
+ if ($.cookie(key) !== undefined) {
+ // Must not alter options, thus extending a fresh object...
+ $.cookie(key, '', $.extend({}, options, { expires: -1 }));
return true;
}
return false;
};
-})(jQuery, document);
+}));
diff --git a/lib/tpl/dokuwiki/css/basic.css b/lib/tpl/dokuwiki/css/basic.css
index a0a60d295..ad04f7c41 100644
--- a/lib/tpl/dokuwiki/css/basic.css
+++ b/lib/tpl/dokuwiki/css/basic.css
@@ -227,7 +227,8 @@ audio {
max-width: 100%;
}
#IE7 img,
-#IE8 img {
+#IE8 img,
+button img {
max-width: none;
}