diff options
33 files changed, 532 insertions, 127 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/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/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) @@ -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 59ceb0c0d..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,7 +467,7 @@ function exportlink($id = '', $format = 'raw', $more = '', $abs = false, $sep = */ function ml($id = '', $more = '', $direct = true, $sep = '&', $abs = false) { global $conf; - $isexternalimage = preg_match('#^(https?|ftp)://#i', $id); + $isexternalimage = media_isexternal($id); if(!$isexternalimage) { $id = cleanID($id); } @@ -557,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/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/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/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/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/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>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'LDAP filter för att söka efter grupper. T.ex. <code>(&(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/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/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/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&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/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/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/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/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)'; |