diff options
39 files changed, 345 insertions, 90 deletions
diff --git a/_test/tests/inc/mailer.test.php b/_test/tests/inc/mailer.test.php index ef78692b3..3a89413b4 100644 --- a/_test/tests/inc/mailer.test.php +++ b/_test/tests/inc/mailer.test.php @@ -156,5 +156,68 @@ class mailer_test extends DokuWikiTest { $this->assertEquals(0, preg_match('/(^|\n)Bcc: (\n|$)/', $header), 'Bcc found in headers.'); $this->assertEquals(0, preg_match('/(^|\n)Cc: (\n|$)/', $header), 'Bcc found in headers.'); } + + /** + * @group internet + */ + function test_lint(){ + // prepare a simple multipart message + $mail = new TestMailer(); + $mail->to(array('Möp <moep@example.com> ',' foo <foo@example.com>')); + $mail->from('Me <test@example.com>'); + $mail->subject('This is a töst'); + $mail->setBody('Hello Wörld, + + please don\'t burn, okay? + '); + $mail->attachContent('some test data', 'text/plain', 'a text.txt'); + $msg = $mail->dump(); + $msglines = explode("\n", $msg); + + //echo $msg; + + // ask message lint if it is okay + $html = new HTTPClient(); + $results = $html->post('http://tools.ietf.org/tools/msglint/msglint', array('msg'=>$msg)); + $this->assertTrue($results !== false); + + // parse the result lines + $lines = explode("\n", $results); + $rows = count($lines); + $i=0; + while(trim($lines[$i]) != '-----------' && $i<$rows) $i++; //skip preamble + for($i=$i+1; $i<$rows; $i++){ + $line = trim($lines[$i]); + if($line == '-----------') break; //skip appendix + + // get possible continuation of the line + while($lines[$i+1][0] == ' '){ + $line .= ' '.trim($lines[$i+1]); + $i++; + } + + // check the line for errors + if(substr($line,0,5) == 'ERROR' || substr($line,0,7) == 'WARNING'){ + // ignore some errors + if(strpos($line, "missing mandatory header 'return-path'")) continue; #set by MDA + if(strpos($line, "bare newline in text body decoded")) continue; #seems to be false positive + + // get the context in which the error occured + $errorin = ''; + if(preg_match('/line (\d+)$/', $line, $m)){ + $errorin .= "\n".$msglines[$m[1] - 1]; + } + if(preg_match('/lines (\d+)-(\d+)$/', $line, $m)){ + for($x=$m[1]-1; $x<$m[2]; $x++){ + $errorin .= "\n".$msglines[$x]; + } + } + + // raise the error + throw new Exception($line.$errorin); + } + } + + } } //Setup VIM: ex: et ts=4 : diff --git a/_test/tests/inc/pageutils_clean_id.test.php b/_test/tests/inc/pageutils_clean_id.test.php index 478fd2bc4..f67109ba3 100644 --- a/_test/tests/inc/pageutils_clean_id.test.php +++ b/_test/tests/inc/pageutils_clean_id.test.php @@ -43,6 +43,9 @@ 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---page','false','page---page'); + $tests[] = array('page___page','false','page_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'); diff --git a/_test/tests/inc/parser/parser_table.test.php b/_test/tests/inc/parser/parser_table.test.php index 96789c38c..542a307b8 100644 --- a/_test/tests/inc/parser/parser_table.test.php +++ b/_test/tests/inc/parser/parser_table.test.php @@ -270,6 +270,64 @@ def'); ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } + + function testCellRowSpanFirstRow() { + $this->P->addMode('table',new Doku_Parser_Mode_Table()); + $this->P->parse(' +abc +|::: ^ d:::^:::| ::: | +| b ^ e | | ::: | +|c ^ ::: | |:::| +def'); + + $calls = array ( + array('document_start',array()), + array('p_open',array()), + array('cdata',array("\n\nabc")), + array('p_close',array()), + array('table_open',array(4, 3, 6)), + array('tablerow_open',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array('')), + array('tablecell_close',array()), + array('tableheader_open',array(1,'right',1)), + array('cdata',array(' d:::')), + array('tableheader_close',array()), + array('tableheader_open',array(1,NULL,1)), + array('cdata',array('')), + array('tableheader_close',array()), + array('tablecell_open',array(1,NULL,3)), + array('cdata',array('')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('tablerow_open',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' b ')), + array('tablecell_close',array()), + array('tableheader_open',array(1,'left',2)), + array('cdata',array(' e ')), + array('tableheader_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('tablerow_open',array()), + array('tablecell_open',array(1,'left',1)), + array('cdata',array('c ')), + array('tablecell_close',array()), + array('tablecell_open',array(1,NULL,1)), + array('cdata',array(' ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + + array('table_close',array(69)), + array('p_open',array()), + array('cdata',array('def')), + array('p_close',array()), + array('document_end',array()), + ); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + } function testCellAlignmentFormatting() { $this->P->addMode('table',new Doku_Parser_Mode_Table()); @@ -429,19 +429,22 @@ function rss_buildItems(&$rss, &$data, $opt) { $cat = getNS($id); if($cat) $item->category = $cat; } - - // finally add the item to the feed object, after handing it to registered plugins - $evdata = array( - 'item' => &$item, - 'opt' => &$opt, - 'ditem' => &$ditem, - 'rss' => &$rss - ); - $evt = new Doku_Event('FEED_ITEM_ADD', $evdata); - if($evt->advise_before()) { - $rss->addItem($item); + + // Add only visible items + if(isVisiblePage($id)) { + // finally add the item to the feed object, after handing it to registered plugins + $evdata = array( + 'item' => &$item, + 'opt' => &$opt, + 'ditem' => &$ditem, + 'rss' => &$rss + ); + $evt = new Doku_Event('FEED_ITEM_ADD', $evdata); + if($evt->advise_before()) { + $rss->addItem($item); + } + $evt->advise_after(); // for completeness } - $evt->advise_after(); // for completeness } } $event->advise_after(); diff --git a/inc/Mailer.class.php b/inc/Mailer.class.php index 0f3321bb9..6a6468ab4 100644 --- a/inc/Mailer.class.php +++ b/inc/Mailer.class.php @@ -41,9 +41,10 @@ class Mailer { global $conf; $server = parse_url(DOKU_URL, PHP_URL_HOST); + if(strpos($server,'.') === false) $server = $server.'.localhost'; $this->partid = md5(uniqid(rand(), true)).'@'.$server; - $this->boundary = '----------'.md5(uniqid(rand(), true)); + $this->boundary = '__________'.md5(uniqid(rand(), true)); $listid = join('.', array_reverse(explode('/', DOKU_BASE))).$server; $listid = strtolower(trim($listid, '.')); @@ -57,6 +58,7 @@ class Mailer { $this->setHeader('X-DokuWiki-Server', $server); $this->setHeader('X-Auto-Response-Suppress', 'OOF'); $this->setHeader('List-Id', $conf['title'].' <'.$listid.'>'); + $this->setHeader('Date', date('r'), false); } /** @@ -417,6 +419,8 @@ class Mailer { $part = 1; // embedded attachments foreach($this->attach as $media) { + $media['name'] = str_replace(':', '_', cleanID($media['name'], true)); + // create content id $cid = 'part'.$part.'.'.$this->partid; @@ -426,13 +430,14 @@ class Mailer { } $mime .= '--'.$this->boundary.MAILHEADER_EOL; - $mime .= 'Content-Type: '.$media['mime'].';'.MAILHEADER_EOL; + $mime .= 'Content-Type: '.$media['mime'].';'.MAILHEADER_EOL. + ' id="'.$cid.'"'.MAILHEADER_EOL; $mime .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL; $mime .= "Content-ID: <$cid>".MAILHEADER_EOL; if($media['embed']) { - $mime .= 'Content-Disposition: inline; filename="'.$media['name'].'"'.MAILHEADER_EOL; + $mime .= 'Content-Disposition: inline; filename='.$media['name'].''.MAILHEADER_EOL; } else { - $mime .= 'Content-Disposition: attachment; filename="'.$media['name'].'"'.MAILHEADER_EOL; + $mime .= 'Content-Disposition: attachment; filename='.$media['name'].''.MAILHEADER_EOL; } $mime .= MAILHEADER_EOL; //end of headers $mime .= chunk_split(base64_encode($media['data']), 74, MAILHEADER_EOL); @@ -469,7 +474,7 @@ class Mailer { if(!$this->html && !count($this->attach)) { // we can send a simple single part message $this->headers['Content-Type'] = 'text/plain; charset=UTF-8'; $this->headers['Content-Transfer-Encoding'] = 'base64'; - $body .= chunk_split(base64_encode($this->text), 74, MAILHEADER_EOL); + $body .= chunk_split(base64_encode($this->text), 72, MAILHEADER_EOL); } else { // multi part it is $body .= "This is a multi-part message in MIME format.".MAILHEADER_EOL; @@ -484,10 +489,11 @@ class Mailer { $body .= 'Content-Type: text/plain; charset=UTF-8'.MAILHEADER_EOL; $body .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL; $body .= MAILHEADER_EOL; - $body .= chunk_split(base64_encode($this->text), 74, MAILHEADER_EOL); + $body .= chunk_split(base64_encode($this->text), 72, MAILHEADER_EOL); $body .= '--'.$this->boundary.'XX'.MAILHEADER_EOL; $body .= 'Content-Type: multipart/related;'.MAILHEADER_EOL. - ' boundary="'.$this->boundary.'"'.MAILHEADER_EOL; + ' boundary="'.$this->boundary.'";'.MAILHEADER_EOL. + ' type="text/html"'.MAILHEADER_EOL; $body .= MAILHEADER_EOL; } @@ -495,7 +501,7 @@ class Mailer { $body .= 'Content-Type: text/html; charset=UTF-8'.MAILHEADER_EOL; $body .= 'Content-Transfer-Encoding: base64'.MAILHEADER_EOL; $body .= MAILHEADER_EOL; - $body .= chunk_split(base64_encode($this->html), 74, MAILHEADER_EOL); + $body .= chunk_split(base64_encode($this->html), 72, MAILHEADER_EOL); $body .= MAILHEADER_EOL; $body .= $attachments; $body .= '--'.$this->boundary.'--'.MAILHEADER_EOL; diff --git a/inc/SimplePie.php b/inc/SimplePie.php index fd69b4b09..8a9060509 100644 --- a/inc/SimplePie.php +++ b/inc/SimplePie.php @@ -16579,7 +16579,11 @@ class SimplePie_Sanitize if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML)) { - + if (!class_exists('DOMDocument')) + { + $this->registry->call('Misc', 'error', array('DOMDocument not found, unable to use sanitizer', E_USER_WARNING, __FILE__, __LINE__)); + return ''; + } $document = new DOMDocument(); $document->encoding = 'UTF-8'; $data = $this->preprocess($data, $type); diff --git a/inc/common.php b/inc/common.php index 3312141c8..866e0aadd 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1625,7 +1625,8 @@ function set_doku_pref($pref, $val) { } if (!empty($cookieVal)) { - setcookie('DOKU_PREFS', $cookieVal, time()+365*24*3600, DOKU_BASE, '', ($conf['securecookie'] && is_ssl())); + $cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir']; + setcookie('DOKU_PREFS', $cookieVal, time()+365*24*3600, $cookieDir, '', ($conf['securecookie'] && is_ssl())); } } diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index 6b950744e..2622934c2 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -1,8 +1,8 @@ <?php + /** - * Hungarian language file - * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Ziegler Gábor <gziegler@freemail.hu> * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> @@ -11,6 +11,7 @@ * @author Sándor TIHANYI <stihanyi+dw@gmail.com> * @author David Szabo <szabo.david@gyumolcstarhely.hu> * @author Marton Sebok <sebokmarton@gmail.com> + * @author Serenity87HUN <anikototh87@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -54,6 +55,7 @@ $lang['btn_revert'] = 'Helyreállítás'; $lang['btn_register'] = 'Regisztráció'; $lang['btn_apply'] = 'Alkalmaz'; $lang['btn_media'] = 'Médiakezelő'; +$lang['btn_deleteuser'] = 'Felhasználói fiókom eltávolítása'; $lang['loggedinas'] = 'Belépett felhasználó: '; $lang['user'] = 'Azonosító'; $lang['pass'] = 'Jelszó'; @@ -65,6 +67,7 @@ $lang['fullname'] = 'Teljes név'; $lang['email'] = 'E-Mail'; $lang['profile'] = 'Személyes beállítások'; $lang['badlogin'] = 'Sajnáljuk, az azonosító vagy a jelszó nem jó.'; +$lang['badpassconfirm'] = 'Hibás jelszó'; $lang['minoredit'] = 'Apróbb változások'; $lang['draftdate'] = 'Piszkozat elmentve:'; $lang['nosecedit'] = 'Időközben megváltozott az oldal, emiatt a szakasz nem friss. Töltsd újra az egész oldalt!'; @@ -81,6 +84,11 @@ $lang['profna'] = 'Ez a wiki nem támogatja a személyes beállí $lang['profnochange'] = 'Nem történt változás.'; $lang['profnoempty'] = 'A név és e-mail mező nem maradhat üresen!'; $lang['profchanged'] = 'A személyes beállítások változtatása megtörtént.'; +$lang['profnodelete'] = 'Ez a wiki nem támogatja a felhasználói fiókok törlését'; +$lang['profdeleteuser'] = 'Felhasználói fiók törlése'; +$lang['profdeleted'] = 'Felhasználói fiókodat eltávolítottuk erről a wiki-ről.'; +$lang['profconfdelete'] = 'Szeretném eltávolítani a felhasználói fiókomat erről a wikiről. <br/> Ez a cselekvés nem visszavonható.'; +$lang['profconfdeletemissing'] = 'A megerősítő négyzet nincs bepipálva'; $lang['pwdforget'] = 'Elfelejtetted a jelszavad? Itt kérhetsz újat'; $lang['resendna'] = 'Ez a wiki nem támogatja a jelszó újraküldést.'; $lang['resendpwd'] = 'Új jelszó beállítása a következőhöz:'; diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 189269fab..b032e1ce5 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -54,6 +54,7 @@ $lang['btn_revert'] = '元に戻す'; $lang['btn_register'] = 'ユーザー登録'; $lang['btn_apply'] = '適用'; $lang['btn_media'] = 'メディアマネージャー'; +$lang['btn_deleteuser'] = '自分のアカウントの抹消'; $lang['loggedinas'] = 'ようこそ'; $lang['user'] = 'ユーザー名'; $lang['pass'] = 'パスワード'; @@ -65,6 +66,7 @@ $lang['fullname'] = 'フルネーム'; $lang['email'] = 'メールアドレス'; $lang['profile'] = 'ユーザー情報'; $lang['badlogin'] = 'ユーザー名かパスワードが違います。'; +$lang['badpassconfirm'] = 'パスワードが間違っています。'; $lang['minoredit'] = '小変更'; $lang['draftdate'] = 'ドラフト保存日時:'; $lang['nosecedit'] = 'ページ内容が変更されていますがセクション情報が古いため、代わりにページ全体をロードしました。'; @@ -81,6 +83,11 @@ $lang['profna'] = 'ユーザー情報の変更は出来ません' $lang['profnochange'] = '変更点はありませんでした。'; $lang['profnoempty'] = 'ユーザー名とメールアドレスを入力して下さい。'; $lang['profchanged'] = 'ユーザー情報は更新されました。'; +$lang['profnodelete'] = 'この wiki はユーザーを削除できない。'; +$lang['profdeleteuser'] = 'アカウントの削除'; +$lang['profdeleted'] = 'このwikiからあなたのユーザーアカウントは削除済です。'; +$lang['profconfdelete'] = 'このwikiから自分のアカウント抹消を希望します。<br/> この操作は取消すことができません。'; +$lang['profconfdeletemissing'] = '確認のチェックボックスがチェックされていません。'; $lang['pwdforget'] = 'パスワードをお忘れですか?パスワード再発行'; $lang['resendna'] = 'パスワードの再発行は出来ません。'; $lang['resendpwd'] = '新しいパスワードをセット'; @@ -289,6 +296,9 @@ $lang['i_pol1'] = 'パブリック Wiki(閲覧は全ての人 $lang['i_pol2'] = 'クローズド Wiki (登録ユーザーにのみ使用を許可)'; $lang['i_retry'] = '再試行'; $lang['i_license'] = 'あなたが作成したコンテンツが属するライセンスを選択してください:'; +$lang['i_license_none'] = 'ライセンス情報を表示しません。'; +$lang['i_pop_field'] = 'Dokuwiki の内容の向上に協力して下さい:'; +$lang['i_pop_label'] = '月に一回、DokuWikiの開発者に匿名の使用データを送信します。'; $lang['recent_global'] = '現在、<b>%s</b> 名前空間内の変更点を閲覧中です。<a href="%s">Wiki全体の最近の変更点の確認</a>もできます。'; $lang['years'] = '%d年前'; $lang['months'] = '%dカ月前'; diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index a494604f3..e8c1151d5 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -50,6 +50,7 @@ $lang['btn_revert'] = 'Obnoviť'; $lang['btn_register'] = 'Registrovať'; $lang['btn_apply'] = 'Použiť'; $lang['btn_media'] = 'Správa médií'; +$lang['btn_deleteuser'] = 'Zrušiť môj účet'; $lang['loggedinas'] = 'Prihlásený(á) ako'; $lang['user'] = 'Užívateľské meno'; $lang['pass'] = 'Heslo'; @@ -61,6 +62,7 @@ $lang['fullname'] = 'Celé meno'; $lang['email'] = 'E-Mail'; $lang['profile'] = 'Užívateľský profil'; $lang['badlogin'] = 'Zadané užívateľské meno a heslo nie je správne.'; +$lang['badpassconfirm'] = 'Ľutujem, heslo bolo nesprávne.'; $lang['minoredit'] = 'Menšie zmeny'; $lang['draftdate'] = 'Koncept automaticky uložený'; $lang['nosecedit'] = 'Stránka bola medzičasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.'; @@ -77,6 +79,11 @@ $lang['profna'] = 'Táto wiki nepodporuje zmenu profilu'; $lang['profnochange'] = 'Žiadne zmeny, nie je čo robiť.'; $lang['profnoempty'] = 'Prázdne meno alebo mailová adresa nie sú povolené.'; $lang['profchanged'] = 'Užívateľský účet úspešne zmenený.'; +$lang['profnodelete'] = 'Táto wiki neumožňuje zrušenie používateľov.'; +$lang['profdeleteuser'] = 'Zrušiť účet'; +$lang['profdeleted'] = 'Váš účet bol zrušený v tejto wiki.'; +$lang['profconfdelete'] = 'Chcem odstrániť môj účet z tejto wiki. <br/> Táto operácia je nevratná.'; +$lang['profconfdeletemissing'] = 'Nebolo zavolené potvrdzovacie políčko'; $lang['pwdforget'] = 'Zabudli ste heslo? Získajte nové!'; $lang['resendna'] = 'Táto wiki nepodporuje opätovné zasielanie hesla.'; $lang['resendpwd'] = 'Nastaviť nové heslo pre'; @@ -285,6 +292,9 @@ $lang['i_pol1'] = 'Verejná Wiki (čítanie pre každého, zápis $lang['i_pol2'] = 'Uzatvorená Wiki (čítanie, zápis a nahrávanie len pre registrovaných užívateľov)'; $lang['i_retry'] = 'Skúsiť znovu'; $lang['i_license'] = 'Vyberte licenciu, pod ktorou chcete uložiť váš obsah:'; +$lang['i_license_none'] = 'Nezobrazovať žiadne licenčné informácie'; +$lang['i_pop_field'] = 'Prosím pomôžte nám zlepšiť prácu s DokuWiki:'; +$lang['i_pop_label'] = 'Raz mesačne zaslať anonymné údaje vývojárom DokuWiki'; $lang['recent_global'] = 'Práve prehliadate zmeny v mennom priestore <b>%s</b>. Môžete si tiež pozrieť <a href="%s">aktuálne zmeny celej wiki</a>.'; $lang['years'] = 'pred %d rokmi'; $lang['months'] = 'pred %d mesiacmi'; diff --git a/inc/parser/handler.php b/inc/parser/handler.php index b72f051ae..1de981b48 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -1371,7 +1371,8 @@ class Doku_Handler_Table { if (is_null($spanning_cell)) { // No spanning cell found, so convert this cell to // an empty one to avoid broken tables - $this->tableCells[$key][1][1] = ''; + $this->tableCalls[$key][0] = 'cdata'; + $this->tableCalls[$key][1][0] = ''; continue; } $this->tableCalls[$cellKey[$spanning_cell][$lastCell]][1][2]++; diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 848afbd4f..fd02c0ce0 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -33,6 +33,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { private $lastsecid = 0; // last section edit id, used by startSectionEdit var $headers = array(); + /** @var array a list of footnotes, list starts at 1! */ var $footnotes = array(); var $lastlevel = 0; var $node = array(0,0,0,0,0); @@ -100,10 +101,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { if ( count ($this->footnotes) > 0 ) { $this->doc .= '<div class="footnotes">'.DOKU_LF; - $id = 0; - foreach ( $this->footnotes as $footnote ) { - $id++; // the number of the current footnote - + foreach ( $this->footnotes as $id => $footnote ) { // check its not a placeholder that indicates actual footnote text is elsewhere if (substr($footnote, 0, 5) != "@@FNT") { @@ -118,8 +116,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer { if (count($alt)) { foreach ($alt as $ref) { // set anchor and backlink for the other footnotes - $this->doc .= ', <sup><a href="#fnt__'.($ref+1).'" id="fn__'.($ref+1).'" class="fn_bot">'; - $this->doc .= ($ref+1).')</a></sup> '.DOKU_LF; + $this->doc .= ', <sup><a href="#fnt__'.($ref).'" id="fn__'.($ref).'" class="fn_bot">'; + $this->doc .= ($ref).')</a></sup> '.DOKU_LF; } } @@ -295,6 +293,10 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * @author Andreas Gohr */ function footnote_close() { + /** @var $fnid int takes track of seen footnotes, assures they are unique even across multiple docs FS#2841 */ + static $fnid = 0; + // assign new footnote id (we start at 1) + $fnid++; // recover footnote into the stack and restore old content $footnote = $this->doc; @@ -306,17 +308,14 @@ class Doku_Renderer_xhtml extends Doku_Renderer { if ($i === false) { // its a new footnote, add it to the $footnotes array - $id = count($this->footnotes)+1; - $this->footnotes[count($this->footnotes)] = $footnote; + $this->footnotes[$fnid] = $footnote; } else { - // seen this one before, translate the index to an id and save a placeholder - $i++; - $id = count($this->footnotes)+1; - $this->footnotes[count($this->footnotes)] = "@@FNT".($i); + // seen this one before, save a placeholder + $this->footnotes[$fnid] = "@@FNT".($i); } // output the footnote reference and link - $this->doc .= '<sup><a href="#fn__'.$id.'" id="fnt__'.$id.'" class="fn_top">'.$id.')</a></sup>'; + $this->doc .= '<sup><a href="#fn__'.$fnid.'" id="fnt__'.$fnid.'" class="fn_top">'.$fnid.')</a></sup>'; } function listu_open() { diff --git a/lib/exe/css.php b/lib/exe/css.php index 60e17ae82..afba5fc02 100644 --- a/lib/exe/css.php +++ b/lib/exe/css.php @@ -148,9 +148,6 @@ function css_out(){ // parse less $css = css_parseless($css); - // place all remaining @import statements at the top of the file - $css = css_moveimports($css); - // compress whitespace and comments if($conf['compress']){ $css = css_compress($css); @@ -460,28 +457,6 @@ function css_pluginstyles($mediatype='screen'){ } /** - * Move all @import statements in a combined stylesheet to the top so they - * aren't ignored by the browser. - * - * @author Gabriel Birke <birke@d-scribe.de> - */ -function css_moveimports($css) { - if(!preg_match_all('/@import\s+(?:url\([^)]+\)|"[^"]+")\s*[^;]*;\s*/', $css, $matches, PREG_OFFSET_CAPTURE)) { - return $css; - } - $newCss = ""; - $imports = ""; - $offset = 0; - foreach($matches[0] as $match) { - $newCss .= substr($css, $offset, $match[1] - $offset); - $imports .= $match[0]; - $offset = $match[1] + strlen($match[0]); - } - $newCss .= substr($css, $offset); - return $imports.$newCss; -} - -/** * Very simple CSS optimizer * * @author Andreas Gohr <andi@splitbrain.org> diff --git a/lib/exe/js.php b/lib/exe/js.php index 76238a81b..040b8874d 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -86,15 +86,20 @@ function js_out(){ // start output buffering and build the script ob_start(); + $json = new JSON(); // add some global variables print "var DOKU_BASE = '".DOKU_BASE."';"; print "var DOKU_TPL = '".tpl_basedir()."';"; + print "var DOKU_COOKIE_PARAM = " . $json->encode( + array( + 'path' => empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'], + 'secure' => $conf['securecookie'] && is_ssl() + )).";"; // FIXME: Move those to JSINFO print "var DOKU_UHN = ".((int) useHeading('navigation')).";"; print "var DOKU_UHC = ".((int) useHeading('content')).";"; // load JS specific translations - $json = new JSON(); $lang['js']['plugins'] = js_pluginstrings(); $templatestrings = js_templatestrings(); if(!empty($templatestrings)) { diff --git a/lib/plugins/acl/lang/hu/lang.php b/lib/plugins/acl/lang/hu/lang.php index 9565eddc3..cc35243e1 100644 --- a/lib/plugins/acl/lang/hu/lang.php +++ b/lib/plugins/acl/lang/hu/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com diff --git a/lib/plugins/authad/lang/hu/settings.php b/lib/plugins/authad/lang/hu/settings.php index c2cab410f..1510e1756 100644 --- a/lib/plugins/authad/lang/hu/settings.php +++ b/lib/plugins/authad/lang/hu/settings.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Marton Sebok <sebokmarton@gmail.com> */ $lang['account_suffix'] = 'Felhasználói azonosító végződése, pl. <code>@my.domain.org</code>.'; diff --git a/lib/plugins/authad/lang/ja/settings.php b/lib/plugins/authad/lang/ja/settings.php index 72e5cc76e..f308249ef 100644 --- a/lib/plugins/authad/lang/ja/settings.php +++ b/lib/plugins/authad/lang/ja/settings.php @@ -11,6 +11,10 @@ $lang['base_dn'] = 'ベースDN。例:<code>DC=my,DC=domain,DC=o $lang['domain_controllers'] = 'ドメインコントローラのカンマ区切り一覧。例:<code>srv1.domain.org,srv2.domain.org</code>'; $lang['admin_username'] = '全ユーザーデータへのアクセス権のある特権Active Directoryユーザー。任意ですが、メール通知の登録等の特定の動作に必要。'; $lang['admin_password'] = '上記ユーザーのパスワード'; +$lang['sso'] = 'Kerberos か NTLM を使ったシングルサインオン(SSO)をしますか?'; +$lang['real_primarygroup'] = '"Domain Users" を仮定する代わりに本当のプライマリグループを解決する(低速)'; +$lang['use_ssl'] = 'SSL接続を使用しますか?使用した場合、下のSSLを有効にしないでください。'; +$lang['use_tls'] = 'TLS接続を使用しますか?使用した場合、上のSSLを有効にしないでください。'; $lang['debug'] = 'エラー時に追加のデバッグ出力を表示する?'; $lang['expirywarn'] = '何日前からパスワードの有効期限をユーザーに警告する。0 の場合は無効'; $lang['additional'] = 'ユーザデータから取得する追加AD属性のカンマ区切り一覧。いくつかのプラグインが使用する。'; diff --git a/lib/plugins/authad/lang/sk/settings.php b/lib/plugins/authad/lang/sk/settings.php index 0cc9b9b10..55f266dd6 100644 --- a/lib/plugins/authad/lang/sk/settings.php +++ b/lib/plugins/authad/lang/sk/settings.php @@ -5,7 +5,11 @@ * * @author Martin Michalek <michalek.dev@gmail.com> */ +$lang['account_suffix'] = 'Prípona používateľského účtu. Napr. <code>@my.domain.org</code>'; +$lang['admin_username'] = 'Privilegovaný používateľ Active Directory s prístupom ku všetkým dátam ostatných používateľov. Nepovinné nastavenie, ale potrebné pre určité akcie ako napríklad zasielanie mailov o zmenách.'; $lang['admin_password'] = 'Heslo vyššie uvedeného používateľa.'; +$lang['sso'] = 'Použiť Single-Sign-On cez Kerberos alebo NTLM?'; $lang['use_ssl'] = 'Použiť SSL pripojenie? Ak áno, nepovoľte TLS nižšie.'; $lang['use_tls'] = 'Použiť TLS pripojenie? Ak áno, nepovoľte SSL vyššie.'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie pri chybe?'; +$lang['additional'] = 'Zoznam dodatočných AD atribútov oddelených čiarkou získaných z údajov používateľa. Používané niektorými pluginmi.'; diff --git a/lib/plugins/authldap/auth.php b/lib/plugins/authldap/auth.php index 6a967a6d4..de1332282 100644 --- a/lib/plugins/authldap/auth.php +++ b/lib/plugins/authldap/auth.php @@ -208,8 +208,8 @@ class auth_plugin_authldap extends DokuWiki_Auth_Plugin { if(is_array($key)) { // use regexp to clean up user_result list($key, $regexp) = each($key); - if($user_result[$key]) foreach($user_result[$key] as $grp) { - if(preg_match($regexp, $grp, $match)) { + if($user_result[$key]) foreach($user_result[$key] as $grpkey => $grp) { + if($grpkey !== 'count' && preg_match($regexp, $grp, $match)) { if($localkey == 'grps') { $info[$localkey][] = $match[1]; } else { diff --git a/lib/plugins/authldap/lang/hu/settings.php b/lib/plugins/authldap/lang/hu/settings.php index b4b28d0a0..041f82755 100644 --- a/lib/plugins/authldap/lang/hu/settings.php +++ b/lib/plugins/authldap/lang/hu/settings.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Marton Sebok <sebokmarton@gmail.com> */ $lang['server'] = 'LDAP-szerver. Hosztnév (<code>localhost</code>) vagy abszolút URL portszámmal (<code>ldap://server.tld:389</code>)'; diff --git a/lib/plugins/authldap/lang/ja/settings.php b/lib/plugins/authldap/lang/ja/settings.php index cee7b059c..6dec9a576 100644 --- a/lib/plugins/authldap/lang/ja/settings.php +++ b/lib/plugins/authldap/lang/ja/settings.php @@ -5,6 +5,7 @@ * * @author Satoshi Sahara <sahara.satoshi@gmail.com> * @author Hideaki SAWADA <sawadakun@live.jp> + * @author Hideaki SAWADA <chuno@live.jp> */ $lang['server'] = 'LDAPサーバー。ホスト名(<code>localhost</code)又は完全修飾URL(<code>ldap://server.tld:389</code>)'; $lang['port'] = '上記が完全修飾URLでない場合、LDAPサーバーポート'; @@ -13,6 +14,11 @@ $lang['grouptree'] = 'ユーザーグループを探す場所。例 $lang['userfilter'] = 'ユーザーアカウントを探すためのLDAP抽出条件。例:<code>(&(uid=%{user})(objectClass=posixAccount))</code>'; $lang['groupfilter'] = 'グループを探すLDAP抽出条件。例:<code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; $lang['version'] = '使用するプロトコルのバージョン。<code>3</code>を設定する必要がある場合があります。'; +$lang['starttls'] = 'TLS接続を使用しますか?'; $lang['binddn'] = '匿名バインドでは不十分な場合、オプションバインドユーザーのDN。例:<code>cn=admin, dc=my, dc=home</code>'; $lang['bindpw'] = '上記ユーザーのパスワード'; $lang['debug'] = 'エラーに関して追加のデバッグ情報を表示する。'; +$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/sk/settings.php b/lib/plugins/authldap/lang/sk/settings.php index 759c92304..48bd37395 100644 --- a/lib/plugins/authldap/lang/sk/settings.php +++ b/lib/plugins/authldap/lang/sk/settings.php @@ -5,6 +5,17 @@ * * @author Martin Michalek <michalek.dev@gmail.com> */ +$lang['server'] = 'LDAP server. Adresa (<code>localhost</code>) alebo úplné URL (<code>ldap://server.tld:389</code>)'; +$lang['port'] = 'Port LDAP servera, ak nebolo vyššie zadané úplné URL'; +$lang['usertree'] = 'Umiestnenie účtov používateľov. Napr. <code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'Umiestnenie skupín používateľov. Napr. <code>ou=Group, dc=server, dc=tld</code>'; +$lang['userfilter'] = 'LDAP filter pre vyhľadávanie používateľských účtov. Napr. <code>(&(uid=%{user})(objectClass=posixAccount))</code>'; +$lang['groupfilter'] = 'LDAP filter pre vyhľadávanie skupín. Napr. <code>(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>'; +$lang['version'] = 'Použitá verzia protokolu. Možno bude potrebné nastaviť na hodnotu <code>3</code>'; $lang['starttls'] = 'Použiť TLS pripojenie?'; $lang['bindpw'] = 'Heslo vyššie uvedeného používateľa'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie pri chybe'; +$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/authmysql/lang/en/settings.php b/lib/plugins/authmysql/lang/en/settings.php index 77e4806b9..b95f39701 100644 --- a/lib/plugins/authmysql/lang/en/settings.php +++ b/lib/plugins/authmysql/lang/en/settings.php @@ -19,7 +19,7 @@ $lang['FilterGroup'] = 'SQL clause for filtering users by group membership' $lang['SortOrder'] = 'SQL clause to sort users'; $lang['addUser'] = 'SQL statement to add a new user'; $lang['addGroup'] = 'SQL statement to add a new group'; -$lang['addUserGroup'] = 'SQL statment to add a user to an existing group'; +$lang['addUserGroup'] = 'SQL statement to add a user to an existing group'; $lang['delGroup'] = 'SQL statement to remove a group'; $lang['getUserID'] = 'SQL statement to get the primary key of a user'; $lang['delUser'] = 'SQL statement to delete a user'; @@ -36,4 +36,4 @@ $lang['getGroupID'] = 'SQL statement to get the primary key of a given gro $lang['debug_o_0'] = 'none'; $lang['debug_o_1'] = 'on errors only'; -$lang['debug_o_2'] = 'all SQL queries';
\ No newline at end of file +$lang['debug_o_2'] = 'all SQL queries'; diff --git a/lib/plugins/authmysql/lang/hu/settings.php b/lib/plugins/authmysql/lang/hu/settings.php index 9489c73f9..4edceae1e 100644 --- a/lib/plugins/authmysql/lang/hu/settings.php +++ b/lib/plugins/authmysql/lang/hu/settings.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Marton Sebok <sebokmarton@gmail.com> */ $lang['server'] = 'MySQL-szerver'; diff --git a/lib/plugins/authmysql/lang/sk/settings.php b/lib/plugins/authmysql/lang/sk/settings.php index 17fc7977c..8c52f905e 100644 --- a/lib/plugins/authmysql/lang/sk/settings.php +++ b/lib/plugins/authmysql/lang/sk/settings.php @@ -6,11 +6,13 @@ * @author Martin Michalek <michalek.dev@gmail.com> */ $lang['server'] = 'MySQL server'; -$lang['user'] = 'MySQL meno používateľa'; +$lang['user'] = 'Meno používateľa MySQL'; $lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; $lang['database'] = 'Použiť databázu'; $lang['charset'] = 'Znaková sada databázy'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; +$lang['forwardClearPass'] = 'Posielať heslo ako nezakódovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania'; +$lang['TablesToLock'] = 'Zoznam tabuliek oddelených čiarkou, ktoré by mali byť uzamknuté pri operáciách zápisu'; $lang['checkPass'] = 'SQL príkaz pre kontrolu hesla'; $lang['getUserInfo'] = 'SQL príkaz pre získanie informácií o používateľovi'; $lang['getGroups'] = 'SQL príkaz pre získanie informácií o skupinách používateľa'; diff --git a/lib/plugins/authpgsql/lang/en/settings.php b/lib/plugins/authpgsql/lang/en/settings.php index e67235cfa..cfb2686cb 100644 --- a/lib/plugins/authpgsql/lang/en/settings.php +++ b/lib/plugins/authpgsql/lang/en/settings.php @@ -18,7 +18,7 @@ $lang['FilterGroup'] = 'SQL clause for filtering users by group membership' $lang['SortOrder'] = 'SQL clause to sort users'; $lang['addUser'] = 'SQL statement to add a new user'; $lang['addGroup'] = 'SQL statement to add a new group'; -$lang['addUserGroup'] = 'SQL statment to add a user to an existing group'; +$lang['addUserGroup'] = 'SQL statement to add a user to an existing group'; $lang['delGroup'] = 'SQL statement to remove a group'; $lang['getUserID'] = 'SQL statement to get the primary key of a user'; $lang['delUser'] = 'SQL statement to delete a user'; diff --git a/lib/plugins/authpgsql/lang/hu/settings.php b/lib/plugins/authpgsql/lang/hu/settings.php index 7b9393256..ff62a7016 100644 --- a/lib/plugins/authpgsql/lang/hu/settings.php +++ b/lib/plugins/authpgsql/lang/hu/settings.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Marton Sebok <sebokmarton@gmail.com> */ $lang['server'] = 'PostgreSQL-szerver'; diff --git a/lib/plugins/authpgsql/lang/sk/settings.php b/lib/plugins/authpgsql/lang/sk/settings.php index dafe5e83d..9d656415d 100644 --- a/lib/plugins/authpgsql/lang/sk/settings.php +++ b/lib/plugins/authpgsql/lang/sk/settings.php @@ -11,6 +11,7 @@ $lang['user'] = 'Meno používateľa PostgreSQL'; $lang['password'] = 'Heslo pre vyššie uvedeného používateľa'; $lang['database'] = 'Použiť databázu'; $lang['debug'] = 'Zobraziť doplňujúce ladiace informácie'; +$lang['forwardClearPass'] = 'Posielať heslo ako nezakódovaný text nižšie uvedenému SQL príkazu namiesto použitia kódovania'; $lang['checkPass'] = 'SQL príkaz pre kontrolu hesla'; $lang['getUserInfo'] = 'SQL príkaz pre získanie informácií o používateľovi'; $lang['getGroups'] = 'SQL príkaz pre získanie informácií o skupinách používateľa'; diff --git a/lib/plugins/plugin/lang/hu/lang.php b/lib/plugins/plugin/lang/hu/lang.php index 235d33a0e..b8fa2cdbe 100644 --- a/lib/plugins/plugin/lang/hu/lang.php +++ b/lib/plugins/plugin/lang/hu/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com diff --git a/lib/plugins/popularity/lang/hu/lang.php b/lib/plugins/popularity/lang/hu/lang.php index 5ee40eacc..213d22655 100644 --- a/lib/plugins/popularity/lang/hu/lang.php +++ b/lib/plugins/popularity/lang/hu/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com diff --git a/lib/plugins/revert/lang/hu/lang.php b/lib/plugins/revert/lang/hu/lang.php index 051e7b7d7..d16764a35 100644 --- a/lib/plugins/revert/lang/hu/lang.php +++ b/lib/plugins/revert/lang/hu/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com diff --git a/lib/plugins/revert/lang/sk/intro.txt b/lib/plugins/revert/lang/sk/intro.txt index e69de29bb..aa75a2c10 100644 --- a/lib/plugins/revert/lang/sk/intro.txt +++ b/lib/plugins/revert/lang/sk/intro.txt @@ -0,0 +1,3 @@ +====== Obnova dát ====== + +Táto stránka slúži na automatické obnovenie obsahu stránok po útoku spamom. Pre identifikáciu napadnutých stránok zadajte vyhľadávací reťazec (napr. spam URL), potom potvrďte, že nájdené stránky sú skutočne napadnuté, a zrušte posledné zmeny.
\ No newline at end of file diff --git a/lib/plugins/revert/lang/sk/lang.php b/lib/plugins/revert/lang/sk/lang.php index 6a2cb119d..7ab21f287 100644 --- a/lib/plugins/revert/lang/sk/lang.php +++ b/lib/plugins/revert/lang/sk/lang.php @@ -7,7 +7,7 @@ * @author exusik@gmail.com * @author Martin Michalek <michalek.dev@gmail.com> */ -$lang['menu'] = 'Reverzný manažér'; +$lang['menu'] = 'Obnova dát'; $lang['filter'] = 'Hľadať spamerské stránky'; $lang['revert'] = 'Vrátiť vybrané stránky'; $lang['reverted'] = '%s vrátená na revíziu %s'; diff --git a/lib/plugins/usermanager/lang/hu/import.txt b/lib/plugins/usermanager/lang/hu/import.txt new file mode 100644 index 000000000..5a4bc8b1c --- /dev/null +++ b/lib/plugins/usermanager/lang/hu/import.txt @@ -0,0 +1,9 @@ +==== Felhasználók tömeges importálása ==== + +Egy, legalább 4 oszlopot tartalmazó, felhasználóikat tartalmazó fájl szükséges hozzá. +Az oszlopok kötelező tartalma, megfelelő sorrendben: felhasználói azonosító, teljes név, e-mailcím és csoportjai. +A CSV mezőit vesszővel (,) kell elválasztani, a szövegeket idézőjelek ("") közé kell foglalni. +Mintafájl megtekintéséhez próbáld ki a fenti, "Felhasználók exportálása" funkciót. A fordított törtvonallal (\) lehet kilépni. +Megegyező felhasználói azonosítók esetén, nem kerülnek feldolgozásra. + +Minden sikeresen importált felhasználó kap egy e-mailt, amiben megtalálja a generált jelszavát.
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/hu/lang.php b/lib/plugins/usermanager/lang/hu/lang.php index 71a5b4bc9..dd76bfd50 100644 --- a/lib/plugins/usermanager/lang/hu/lang.php +++ b/lib/plugins/usermanager/lang/hu/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Hungarian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Sandor TIHANYI <stihanyi+dw@gmail.com> * @author Siaynoq Mage <siaynoqmage@gmail.com> * @author schilling.janos@gmail.com @@ -9,6 +10,7 @@ * @author Sándor TIHANYI <stihanyi+dw@gmail.com> * @author David Szabo <szabo.david@gyumolcstarhely.hu> * @author Marton Sebok <sebokmarton@gmail.com> + * @author Serenity87HUN <anikototh87@gmail.com> */ $lang['menu'] = 'Felhasználók kezelése'; $lang['noauth'] = '(A felhasználói azonosítás nem működik.)'; @@ -31,6 +33,11 @@ $lang['search'] = 'Keresés'; $lang['search_prompt'] = 'Keresés'; $lang['clear'] = 'Keresési szűrés törlése'; $lang['filter'] = 'Szűrés'; +$lang['export_all'] = 'Összes felhasználó exportálása (CSV)'; +$lang['export_filtered'] = 'Kiválasztott felhasználók exportálása (CSV)'; +$lang['import'] = 'Új felhasználók importálása'; +$lang['line'] = 'Sor száma'; +$lang['error'] = 'Hibaüzenet'; $lang['summary'] = '%1$d-%2$d. felhasználók megjelenítése a(z) %3$d megtalált felhasználóból. %4$d felhasználó van összesen.'; $lang['nonefound'] = 'Nincs ilyen felhasználó. %d felhasználó van összesen.'; $lang['delete_ok'] = '%d felhasználó törölve.'; @@ -51,3 +58,16 @@ $lang['add_ok'] = 'A felhasználó sikeresen hozzáadva.'; $lang['add_fail'] = 'A felhasználó hozzáadása nem sikerült.'; $lang['notify_ok'] = 'Értesítő levél elküldve.'; $lang['notify_fail'] = 'Nem sikerült az értesítő levelet elküldeni.'; +$lang['import_userlistcsv'] = 'Felhasználók listája fájl (CSV)'; +$lang['import_header'] = 'Legutóbbi importálás - Hibák'; +$lang['import_success_count'] = 'Felhasználók importálása: %d felhasználót találtunk, ebből %d sikeresen importálva.'; +$lang['import_failure_count'] = 'Felhasználók importálása: %d sikertelen. A sikertelenség okait lejjebb találod.'; +$lang['import_error_fields'] = 'Túl kevés mezőt adtál meg, %d darabot találtunk, legalább 4-re van szükség.'; +$lang['import_error_baduserid'] = 'Felhasználói azonosító hiányzik'; +$lang['import_error_badname'] = 'Nem megfelelő név'; +$lang['import_error_badmail'] = 'Nem megfelelő e-mailcím'; +$lang['import_error_upload'] = 'Sikertelen importálás. A csv fájl nem feltölthető vagy üres.'; +$lang['import_error_readfail'] = 'Sikertelen importálás. A feltöltött fájl nem olvasható.'; +$lang['import_error_create'] = 'Ez a felhasználó nem hozható létre'; +$lang['import_notify_fail'] = 'Az értesítő e-mail nem küldhető el az alábbi importált felhasználónak: %s e-mailcíme: %s.'; +$lang['import_downloadfailures'] = 'Töltsd le a hibákat tartalmazó fájlt CSV formátumban, hogy ki tudd javítani a hibákat'; diff --git a/lib/plugins/usermanager/lang/ja/lang.php b/lib/plugins/usermanager/lang/ja/lang.php index 75c2f13ed..0830416f3 100644 --- a/lib/plugins/usermanager/lang/ja/lang.php +++ b/lib/plugins/usermanager/lang/ja/lang.php @@ -11,6 +11,7 @@ * @author Taisuke Shimamoto <dentostar@gmail.com> * @author Satoshi Sahara <sahara.satoshi@gmail.com> * @author Hideaki SAWADA <sawadakun@live.jp> + * @author Hideaki SAWADA <chuno@live.jp> */ $lang['menu'] = 'ユーザー管理'; $lang['noauth'] = '(ユーザー認証が無効です)'; @@ -58,3 +59,16 @@ $lang['add_ok'] = 'ユーザーを登録しました'; $lang['add_fail'] = 'ユーザーの登録に失敗しました'; $lang['notify_ok'] = '通知メールを送信しました'; $lang['notify_fail'] = '通知メールを送信できませんでした'; +$lang['import_userlistcsv'] = 'ユーザー一覧ファイル(CSV):'; +$lang['import_header'] = '最新インポート - 失敗'; +$lang['import_success_count'] = 'ユーザーインポート:ユーザーが%d件あり、%d件正常にインポートされました。'; +$lang['import_failure_count'] = 'ユーザーインポート:%d件が失敗しました。失敗は次のとおりです。'; +$lang['import_error_fields'] = '列の不足(4列必要)が%d件ありました。'; +$lang['import_error_baduserid'] = '欠落したユーザーID'; +$lang['import_error_badname'] = '不正な氏名'; +$lang['import_error_badmail'] = '不正な電子メールアドレス'; +$lang['import_error_upload'] = 'インポートが失敗しました。CSVファイルをアップロードできなかったか、ファイルが空です。'; +$lang['import_error_readfail'] = 'インポートが失敗しました。アップロードされたファイルが読込できません。'; +$lang['import_error_create'] = 'ユーザーが作成できません。'; +$lang['import_notify_fail'] = '通知メッセージがインポートされたユーザー(%s)・電子メールアドレス(%s)に送信できませんでした。'; +$lang['import_downloadfailures'] = '修正用に失敗を CSVファイルとしてダウンロードする。'; diff --git a/lib/plugins/usermanager/lang/sk/import.txt b/lib/plugins/usermanager/lang/sk/import.txt new file mode 100644 index 000000000..91fa3e370 --- /dev/null +++ b/lib/plugins/usermanager/lang/sk/import.txt @@ -0,0 +1,9 @@ +===== Hromadný import používateľov ===== + +Vyžaduje CSV súbor používateľov s minimálne 4 stĺpcami. +Stĺpce musia obsahovať postupne: ID používateľa, meno a priezvisko, emailová adresa a skupiny. +CVS záznamy by mali byť oddelené čiarkou (,) a reťazce uzavreté úvodzovkami (""). Znak (\) sa používa v spojení so špeciálnymi znakmi. +Príklad vhodného súboru je možné získať funkciou "Export používateľov". +Duplicitné ID používateľov budú ignorované. + +Každému úspešne importovanému používateľovi bude vygenerované heslo a zaslaný email.
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/sk/lang.php b/lib/plugins/usermanager/lang/sk/lang.php index aea2712ef..9aadbb53a 100644 --- a/lib/plugins/usermanager/lang/sk/lang.php +++ b/lib/plugins/usermanager/lang/sk/lang.php @@ -29,6 +29,11 @@ $lang['search'] = 'Hľadať'; $lang['search_prompt'] = 'Vykonať vyhľadávanie'; $lang['clear'] = 'Vynulovať vyhľadávací filter'; $lang['filter'] = 'Filter'; +$lang['export_all'] = 'Export všetkých používateľov (CSV)'; +$lang['export_filtered'] = 'Export zoznamu používateľov na základe filtra (CSV)'; +$lang['import'] = 'Import nových používateľov'; +$lang['line'] = 'Riadok č.'; +$lang['error'] = 'Chybová správa'; $lang['summary'] = 'Zobrazenie užívateľov %1$d-%2$d z %3$d nájdených. %4$d užívateľov celkom.'; $lang['nonefound'] = 'Žiadni užívatelia nenájdení. %d užívateľov celkom.'; $lang['delete_ok'] = '%d užívateľov zmazaných'; @@ -49,3 +54,16 @@ $lang['add_ok'] = 'Používateľ úspešne pridaný'; $lang['add_fail'] = 'Pridávanie užívateľa nebolo úspešné'; $lang['notify_ok'] = 'Notifikačný e-mail bol poslaný'; $lang['notify_fail'] = 'Notifikačný e-mail nemohol byť poslaný'; +$lang['import_userlistcsv'] = 'Súbor so zoznamov používateľov (CSV):'; +$lang['import_header'] = 'Chyby pri poslednom importe'; +$lang['import_success_count'] = 'Import používateľov: %d nájdených, %d úspešne importovaných.'; +$lang['import_failure_count'] = 'Import používateľov: %d neúspešných. Problámy vypísané nižšie.'; +$lang['import_error_fields'] = 'Neúplné záznamy, %d nájdené, 4 požadované.'; +$lang['import_error_baduserid'] = 'Chýba ID používateľa'; +$lang['import_error_badname'] = 'Nesprávne meno'; +$lang['import_error_badmail'] = 'Nesprávna emailová adresa'; +$lang['import_error_upload'] = 'Import neúspešný. CSV súbor nemohol byť nahraný alebo je prázdny.'; +$lang['import_error_readfail'] = 'Import neúspešný. Nie je možné prečítať nahraný súbor.'; +$lang['import_error_create'] = 'Nie je možné vytvoriť pouzívateľa'; +$lang['import_notify_fail'] = 'Správa nemohla byť zaslaná importovanému používatelovi, %s s emailom %s.'; +$lang['import_downloadfailures'] = 'Stiahnuť chyby vo formáte CSV za účelom opravy'; diff --git a/lib/scripts/cookie.js b/lib/scripts/cookie.js index 3ad67bfa4..8417d2064 100644 --- a/lib/scripts/cookie.js +++ b/lib/scripts/cookie.js @@ -30,7 +30,7 @@ var DokuCookie = { text.push(encodeURIComponent(key)+'#'+encodeURIComponent(val)); } }); - jQuery.cookie(this.name, text.join('#'), {expires: 365, path: DOKU_BASE}); + jQuery.cookie(this.name, text.join('#'), {expires: 365, path: DOKU_COOKIE_PARAM.path, secure: DOKU_COOKIE_PARAM.secure}); }, /** |