diff options
56 files changed, 639 insertions, 180 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()); 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/lang/fa/lang.php b/inc/lang/fa/lang.php index febb07088..6cb5164d8 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -1,19 +1,15 @@ <?php + /** - * fa language file - * - * This file was initially built by fetching translations from other - * Wiki projects. See the @url lines below. Additional translations - * and fixes where done for DokuWiki by the people mentioned in the - * lines starting with @author - * - * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesFa.php?view=co + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author behrad eslamifar <behrad_es@yahoo.com) * @author Mohsen Firoozmandan <info@mambolearn.com> * @author Omid Mottaghi <omidmr@gmail.com> * @author Mohammad Reza Shoaei <shoaei@gmail.com> * @author Milad DZand <M.DastanZand@gmail.com> * @author AmirH Hassaneini <mytechmix@gmail.com> + * @author mehrdad <mehrdad.jafari.bojd@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -57,6 +53,7 @@ $lang['btn_revert'] = 'بازیابی'; $lang['btn_register'] = 'یک حساب جدید بسازید'; $lang['btn_apply'] = 'اعمال کن'; $lang['btn_media'] = 'مدیریت محتوای چند رسانه ای'; +$lang['btn_deleteuser'] = 'حذف حساب کاربری خود'; $lang['loggedinas'] = 'به عنوان کاربر روبرو وارد شدهاید:'; $lang['user'] = 'نام کاربری:'; $lang['pass'] = 'گذرواژهی شما'; @@ -68,6 +65,7 @@ $lang['fullname'] = '*نام واقعی شما'; $lang['email'] = 'ایمیل شما*'; $lang['profile'] = 'پروفایل کاربر'; $lang['badlogin'] = 'خطا در ورود به سیستم'; +$lang['badpassconfirm'] = 'متاسفم ، رمز عبور اشتباه است'; $lang['minoredit'] = 'این ویرایش خُرد است'; $lang['draftdate'] = 'ذخیره خودکار پیشنویس'; $lang['nosecedit'] = 'این صفحه در این میان تغییر کرده است، اطلاعات بخش قدیمی شده است، در عوض محتوای کل نمایش داده میشود.'; @@ -84,6 +82,8 @@ $lang['profna'] = 'این ویکی اجازه ویرایش پرو $lang['profnochange'] = 'تغییری صورت نگرفت'; $lang['profnoempty'] = 'نام و آدرس ایمیل باید پر شود'; $lang['profchanged'] = 'پروفایل کاربر با موفقیت به روز شد'; +$lang['profnodelete'] = 'ویکی توانایی پشتیبانی از حذف کاربران را ندارد'; +$lang['profdeleteuser'] = 'حذف حساب کاربری'; $lang['pwdforget'] = 'گذرواژهی خود را فراموش کردهاید؟ جدید دریافت کنید'; $lang['resendna'] = 'این ویکی ارسال مجدد گذرواژه را پشتیبانی نمیکند'; $lang['resendpwd'] = 'تعیین کلمه عبور جدید برای '; diff --git a/inc/lang/hi/diff.txt b/inc/lang/hi/diff.txt new file mode 100644 index 000000000..6f88c1985 --- /dev/null +++ b/inc/lang/hi/diff.txt @@ -0,0 +1,3 @@ +======असमानता====== + +यह आपको पृष्ठ के दो संस्करणों के बीच असमानता को दर्शाता है.
\ No newline at end of file diff --git a/inc/lang/hi/lang.php b/inc/lang/hi/lang.php index d2021fcae..184eeedbc 100644 --- a/inc/lang/hi/lang.php +++ b/inc/lang/hi/lang.php @@ -1,15 +1,11 @@ <?php + /** - * hi language file - * - * This file was initially built by fetching translations from other - * Wiki projects. See the @url lines below. Additional translations - * and fixes where done for DokuWiki by the people mentioned in the - * lines starting with @author - * - * @url http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/messages/MessagesHi.php?view=co + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Abhinav Tyagi <abhinavtyagi11@gmail.com> * @author yndesai@gmail.com + * @author Santosh Joshi <sanjujoshhi@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -44,6 +40,12 @@ $lang['btn_backlink'] = 'पिछली कड़ियाँ'; $lang['btn_backtomedia'] = 'मीडिया फाइल चयन पर पीछे जायें'; $lang['btn_subscribe'] = 'सदस्यता प्रबंधन'; $lang['btn_profile'] = 'परिचय संपादित करें'; +$lang['btn_resendpwd'] = 'नया पासवर्ड सेट करें'; +$lang['btn_draft'] = 'प्रारूप सम्पादित करें'; +$lang['btn_draftdel'] = 'प्रारूप मिटायें'; +$lang['btn_revert'] = 'वापस लौटाएं'; +$lang['btn_apply'] = 'लागू करें'; +$lang['btn_deleteuser'] = 'खाता मिटायें'; $lang['user'] = 'उपयोगकर्ता का नाम'; $lang['pass'] = 'गुप्त शब्द'; $lang['newpass'] = 'नव गुप्त शब्द'; 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 12a95b1ab..b032e1ce5 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -10,6 +10,7 @@ * @author Taisuke Shimamoto <dentostar@gmail.com> * @author Satoshi Sahara <sahara.satoshi@gmail.com> * @author Hideaki SAWADA <chuno@live.jp> + * @author Hideaki SAWADA <sawadakun@live.jp> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -53,6 +54,7 @@ $lang['btn_revert'] = '元に戻す'; $lang['btn_register'] = 'ユーザー登録'; $lang['btn_apply'] = '適用'; $lang['btn_media'] = 'メディアマネージャー'; +$lang['btn_deleteuser'] = '自分のアカウントの抹消'; $lang['loggedinas'] = 'ようこそ'; $lang['user'] = 'ユーザー名'; $lang['pass'] = 'パスワード'; @@ -64,6 +66,7 @@ $lang['fullname'] = 'フルネーム'; $lang['email'] = 'メールアドレス'; $lang['profile'] = 'ユーザー情報'; $lang['badlogin'] = 'ユーザー名かパスワードが違います。'; +$lang['badpassconfirm'] = 'パスワードが間違っています。'; $lang['minoredit'] = '小変更'; $lang['draftdate'] = 'ドラフト保存日時:'; $lang['nosecedit'] = 'ページ内容が変更されていますがセクション情報が古いため、代わりにページ全体をロードしました。'; @@ -80,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'] = '新しいパスワードをセット'; @@ -288,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/ko/lang.php b/inc/lang/ko/lang.php index 1949a5fac..e6cae3db0 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -96,8 +96,8 @@ $lang['resendpwdnouser'] = '죄송하지만 데이터베이스에서 이 $lang['resendpwdbadauth'] = '죄송하지만 인증 코드가 올바르지 않습니다. 잘못된 확인 링크인지 확인하세요.'; $lang['resendpwdconfirm'] = '확인 링크를 이메일로 보냈습니다.'; $lang['resendpwdsuccess'] = '새 비밀번호를 이메일로 보냈습니다.'; -$lang['license'] = '별도로 라이선스를 알리지 않을 경우, 이 위키의 내용은 다음의 라이선스에 따라 사용할 수 있습니다:'; -$lang['licenseok'] = '참고: 이 문서를 편집할 경우 다음의 라이선스에 따라 배포하는 데에 동의합니다:'; +$lang['license'] = '별도로 명시하지 않을 경우, 이 위키의 내용은 다음의 라이선스에 따라 사용할 수 있습니다:'; +$lang['licenseok'] = '참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 사용 허가에 동의합니다:'; $lang['searchmedia'] = '파일 이름 찾기:'; $lang['searchmedia_in'] = '%s에서 찾기'; $lang['txt_upload'] = '올릴 파일 선택'; diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index 639dca768..812799f04 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -21,6 +21,7 @@ * @author Balaco Baco <balacobaco@imap.cc> * @author Victor Westmann <victor.westmann@gmail.com> * @author Leone Lisboa Magevski <leone1983@gmail.com> + * @author Dário Estevão <darioems@gmail.com> */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; 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/pageutils.php b/inc/pageutils.php index 5043d2263..bf79daa7d 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -366,7 +366,7 @@ function mediaFN($id, $rev=''){ */ function localeFN($id,$ext='txt'){ global $conf; - $file = DOKU_CONF.'/lang/'.$conf['lang'].'/'.$id.'.'.$ext; + $file = DOKU_CONF.'lang/'.$conf['lang'].'/'.$id.'.'.$ext; if(!@file_exists($file)){ $file = DOKU_INC.'inc/lang/'.$conf['lang'].'/'.$id.'.'.$ext; if(!@file_exists($file)){ 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/inc/plugin.php b/inc/plugin.php index 422b82534..dccd37bd9 100644 --- a/inc/plugin.php +++ b/inc/plugin.php @@ -97,7 +97,7 @@ class DokuWiki_Plugin { function localFN($id) { global $conf; $plugin = $this->getPluginName(); - $file = DOKU_CONF.'/plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.txt'; + $file = DOKU_CONF.'plugin_lang/'.$plugin.'/'.$conf['lang'].'/'.$id.'.txt'; if (!@file_exists($file)){ $file = DOKU_PLUGIN.$plugin.'/lang/'.$conf['lang'].'/'.$id.'.txt'; if(!@file_exists($file)){ 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/plugins/acl/lang/fa/lang.php b/lib/plugins/acl/lang/fa/lang.php index 7fe0f2c43..24bebaeaf 100644 --- a/lib/plugins/acl/lang/fa/lang.php +++ b/lib/plugins/acl/lang/fa/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Persian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author behrad eslamifar <behrad_es@yahoo.com) * @author Mohsen Firoozmandan <info@mambolearn.com> * @author omidmr@gmail.com 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..b709b50f8 100644 --- a/lib/plugins/authad/lang/sk/settings.php +++ b/lib/plugins/authad/lang/sk/settings.php @@ -5,7 +5,10 @@ * * @author Martin Michalek <michalek.dev@gmail.com> */ +$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/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 fdc6fc434..6dec9a576 100644 --- a/lib/plugins/authldap/lang/ja/settings.php +++ b/lib/plugins/authldap/lang/ja/settings.php @@ -1,6 +1,24 @@ <?php + /** - * Japanese language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @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サーバーポート'; +$lang['usertree'] = 'ユーザーアカウントを探す場所。例:<code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'ユーザーグループを探す場所。例:<code>ou=Group, dc=server, dc=tld</code>'; +$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..8dd087a22 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 nebola vyššie zadané úplné URL'; +$lang['usertree'] = 'Kde je možné nájsť účty používateľov. Napr. <code>ou=People, dc=server, dc=tld</code>'; +$lang['grouptree'] = 'Kde je možné nájsť skupiny 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 4dfdfbf29..650490684 100644 --- a/lib/plugins/authmysql/lang/sk/settings.php +++ b/lib/plugins/authmysql/lang/sk/settings.php @@ -5,5 +5,34 @@ * * @author Martin Michalek <michalek.dev@gmail.com> */ +$lang['server'] = 'MySQL server'; +$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ókovaný 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'; +$lang['getUsers'] = 'SQL príkaz pre získanie zoznamu používateľov'; +$lang['FilterLogin'] = 'SQL podmienka pre filtrovanie používateľov podľa prihlasovacieho mena'; +$lang['FilterName'] = 'SQL podmienka pre filtrovanie používateľov podľa mena a priezviska'; +$lang['FilterEmail'] = 'SQL podmienka pre filtrovanie používateľov podľa emailovej adresy'; +$lang['FilterGroup'] = 'SQL podmienka pre filtrovanie používateľov podľa skupiny'; +$lang['SortOrder'] = 'SQL podmienka pre usporiadenia používateľov'; +$lang['addUser'] = 'SQL príkaz pre pridanie nového používateľa'; +$lang['addGroup'] = 'SQL príkaz pre pridanie novej skupiny'; +$lang['addUserGroup'] = 'SQL príkaz pre pridanie používateľa do existujúcej skupiny'; +$lang['delGroup'] = 'SQL príkaz pre zrušenie skupiny'; +$lang['getUserID'] = 'SQL príkaz pre získanie primárneho klúča používateľa'; +$lang['delUser'] = 'SQL príkaz pre zrušenie používateľa'; +$lang['delUserRefs'] = 'SQL príkaz pre vyradenie používateľa zo všetkých skupín'; +$lang['updateUser'] = 'SQL príkaz pre aktualizáciu informácií o používateľovi'; +$lang['UpdateLogin'] = 'SQL podmienka pre aktualizáciu prihlasovacieho mena používateľa'; +$lang['UpdatePass'] = 'SQL podmienka pre aktualizáciu hesla používateľa'; +$lang['UpdateEmail'] = 'SQL podmienka pre aktualizáciu emailovej adresy používateľa'; +$lang['UpdateName'] = 'SQL podmienka pre aktualizáciu mena a priezviska používateľa'; +$lang['delUserGroup'] = 'SQL príkaz pre vyradenie používateľa z danej skupiny'; +$lang['getGroupID'] = 'SQL príkaz pre získanie primárneho kľúča skupiny'; 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 4dfdfbf29..2179b90b7 100644 --- a/lib/plugins/authpgsql/lang/sk/settings.php +++ b/lib/plugins/authpgsql/lang/sk/settings.php @@ -5,5 +5,33 @@ * * @author Martin Michalek <michalek.dev@gmail.com> */ +$lang['server'] = 'PostgreSQL server'; +$lang['port'] = 'Port PostgreSQL servera'; +$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ókovaný 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'; +$lang['getUsers'] = 'SQL príkaz pre získanie zoznamu používateľov'; +$lang['FilterLogin'] = 'SQL podmienka pre filtrovanie používateľov podľa prihlasovacieho mena'; +$lang['FilterName'] = 'SQL podmienka pre filtrovanie používateľov podľa mena a priezviska'; +$lang['FilterEmail'] = 'SQL podmienka pre filtrovanie používateľov podľa emailovej adresy'; +$lang['FilterGroup'] = 'SQL podmienka pre filtrovanie používateľov podľa skupiny'; +$lang['SortOrder'] = 'SQL podmienka pre usporiadenia používateľov'; +$lang['addUser'] = 'SQL príkaz pre pridanie nového používateľa'; +$lang['addGroup'] = 'SQL príkaz pre pridanie novej skupiny'; +$lang['addUserGroup'] = 'SQL príkaz pre pridanie používateľa do existujúcej skupiny'; +$lang['delGroup'] = 'SQL príkaz pre zrušenie skupiny'; +$lang['getUserID'] = 'SQL príkaz pre získanie primárneho klúča používateľa'; +$lang['delUser'] = 'SQL príkaz pre zrušenie používateľa'; +$lang['delUserRefs'] = 'SQL príkaz pre vyradenie používateľa zo všetkých skupín'; +$lang['updateUser'] = 'SQL príkaz pre aktualizáciu informácií o používateľovi'; +$lang['UpdateLogin'] = 'SQL podmienka pre aktualizáciu prihlasovacieho mena používateľa'; +$lang['UpdatePass'] = 'SQL podmienka pre aktualizáciu hesla používateľa'; +$lang['UpdateEmail'] = 'SQL podmienka pre aktualizáciu emailovej adresy používateľa'; +$lang['UpdateName'] = 'SQL podmienka pre aktualizáciu mena a priezviska používateľa'; +$lang['delUserGroup'] = 'SQL príkaz pre vyradenie používateľa z danej skupiny'; +$lang['getGroupID'] = 'SQL príkaz pre získanie primárneho kľúča skupiny'; diff --git a/lib/plugins/plugin/lang/fa/lang.php b/lib/plugins/plugin/lang/fa/lang.php index bc43ee3ef..0a8fadb3c 100644 --- a/lib/plugins/plugin/lang/fa/lang.php +++ b/lib/plugins/plugin/lang/fa/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Persian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author behrad eslamifar <behrad_es@yahoo.com) * @author Mohsen Firoozmandan <info@mambolearn.com> * @author omidmr@gmail.com diff --git a/lib/plugins/plugin/lang/hi/lang.php b/lib/plugins/plugin/lang/hi/lang.php index 67b177256..89d27cee1 100644 --- a/lib/plugins/plugin/lang/hi/lang.php +++ b/lib/plugins/plugin/lang/hi/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Hindi language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Abhinav Tyagi <abhinavtyagi11@gmail.com> * @author yndesai@gmail.com */ 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/fa/lang.php b/lib/plugins/popularity/lang/fa/lang.php index 6a0529891..d2f071b07 100644 --- a/lib/plugins/popularity/lang/fa/lang.php +++ b/lib/plugins/popularity/lang/fa/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Persian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author behrad eslamifar <behrad_es@yahoo.com) * @author Mohsen Firoozmandan <info@mambolearn.com> * @author omidmr@gmail.com diff --git a/lib/plugins/popularity/lang/hi/lang.php b/lib/plugins/popularity/lang/hi/lang.php index c0085d72a..c818c7a1e 100644 --- a/lib/plugins/popularity/lang/hi/lang.php +++ b/lib/plugins/popularity/lang/hi/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Hindi language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author Abhinav Tyagi <abhinavtyagi11@gmail.com> * @author yndesai@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/fa/lang.php b/lib/plugins/revert/lang/fa/lang.php index ba20313a3..c6ce6176f 100644 --- a/lib/plugins/revert/lang/fa/lang.php +++ b/lib/plugins/revert/lang/fa/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Persian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author behrad eslamifar <behrad_es@yahoo.com) * @author Mohsen Firoozmandan <info@mambolearn.com> * @author omidmr@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/admin.php b/lib/plugins/usermanager/admin.php index 266a7dd64..c4d71cb22 100644 --- a/lib/plugins/usermanager/admin.php +++ b/lib/plugins/usermanager/admin.php @@ -21,29 +21,30 @@ if(!defined('DOKU_PLUGIN_IMAGES')) define('DOKU_PLUGIN_IMAGES',DOKU_BASE.'lib/pl */ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { - var $_auth = null; // auth object - var $_user_total = 0; // number of registered users - var $_filter = array(); // user selection filter(s) - var $_start = 0; // index of first user to be displayed - var $_last = 0; // index of the last user to be displayed - var $_pagesize = 20; // number of users to list on one page - var $_edit_user = ''; // set to user selected for editing - var $_edit_userdata = array(); - var $_disabled = ''; // if disabled set to explanatory string - var $_import_failures = array(); + protected $_auth = null; // auth object + protected $_user_total = 0; // number of registered users + protected $_filter = array(); // user selection filter(s) + protected $_start = 0; // index of first user to be displayed + protected $_last = 0; // index of the last user to be displayed + protected $_pagesize = 20; // number of users to list on one page + protected $_edit_user = ''; // set to user selected for editing + protected $_edit_userdata = array(); + protected $_disabled = ''; // if disabled set to explanatory string + protected $_import_failures = array(); /** * Constructor */ - function admin_plugin_usermanager(){ + public function admin_plugin_usermanager(){ + /** @var DokuWiki_Auth_Plugin $auth */ global $auth; $this->setupLocale(); if (!isset($auth)) { - $this->disabled = $this->lang['noauth']; + $this->_disabled = $this->lang['noauth']; } else if (!$auth->canDo('getUsers')) { - $this->disabled = $this->lang['nosupport']; + $this->_disabled = $this->lang['nosupport']; } else { // we're good to go @@ -58,27 +59,27 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * return prompt for admin menu + * Return prompt for admin menu */ - function getMenuText($language) { + public function getMenuText($language) { if (!is_null($this->_auth)) return parent::getMenuText($language); - return $this->getLang('menu').' '.$this->disabled; + return $this->getLang('menu').' '.$this->_disabled; } /** * return sort order for position in admin menu */ - function getMenuSort() { + public function getMenuSort() { return 2; } /** - * handle user request + * Handle user request */ - function handle() { + public function handle() { global $INPUT; if (is_null($this->_auth)) return false; @@ -122,12 +123,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { case 'last' : $this->_start = $this->_user_total; break; } $this->_validatePagination(); + return true; } /** - * output appropriate html + * Output appropriate html */ - function html() { + public function html() { global $ID; if(is_null($this->_auth)) { @@ -136,13 +138,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } $user_list = $this->_auth->retrieveUsers($this->_start, $this->_pagesize, $this->_filter); - $users = array_keys($user_list); $page_buttons = $this->_pagination(); $delete_disable = $this->_auth->canDo('delUser') ? '' : 'disabled="disabled"'; $editable = $this->_auth->canDo('UserMod'); - $export_label = empty($this->_filter) ? $this->lang['export_all'] : $this->lang[export_filtered]; + $export_label = empty($this->_filter) ? $this->lang['export_all'] : $this->lang['export_filtered']; print $this->locale_xhtml('intro'); print $this->locale_xhtml('list'); @@ -153,7 +154,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($this->_user_total > 0) { ptln("<p>".sprintf($this->lang['summary'],$this->_start+1,$this->_last,$this->_user_total,$this->_auth->getUserCount())."</p>"); } else { - ptln("<p>".sprintf($this->lang['nonefound'],$this->_auth->getUserCount())."</p>"); + if($this->_user_total < 0) { + $allUserTotal = 0; + } else { + $allUserTotal = $this->_auth->getUserCount(); + } + ptln("<p>".sprintf($this->lang['nonefound'], $allUserTotal)."</p>"); } ptln("<form action=\"".wl($ID)."\" method=\"post\">"); formSecurityToken(); @@ -177,6 +183,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln(" <tbody>"); foreach ($user_list as $user => $userinfo) { extract($userinfo); + /** + * @var string $name + * @var string $pass + * @var string $mail + * @var array $grps + */ $groups = join(', ',$grps); ptln(" <tr class=\"user_info\">"); ptln(" <td class=\"centeralign\"><input type=\"checkbox\" name=\"delete[".$user."]\" ".$delete_disable." /></td>"); @@ -251,13 +263,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_htmlImportForm(); } ptln("</div>"); + return true; } - /** - * @todo disable fields which the backend can't change + * Display form to add or modify a user + * + * @param string $cmd 'add' or 'modify' + * @param string $user id of user + * @param array $userdata array with name, mail, pass and grps + * @param int $indent */ - function _htmlUserForm($cmd,$user='',$userdata=array(),$indent=0) { + protected function _htmlUserForm($cmd,$user='',$userdata=array(),$indent=0) { global $conf; global $ID; @@ -327,7 +344,17 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { ptln("</form>",$indent); } - function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) { + /** + * Prints a inputfield + * + * @param string $id + * @param string $name + * @param string $label + * @param string $value + * @param bool $cando whether auth backend is capable to do this action + * @param int $indent + */ + protected function _htmlInputField($id, $name, $label, $value, $cando, $indent=0) { $class = $cando ? '' : ' class="disabled"'; echo str_pad('',$indent); @@ -355,12 +382,23 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { echo "</tr>"; } - function _htmlFilter($key) { + /** + * Returns htmlescaped filter value + * + * @param string $key name of search field + * @return string html escaped value + */ + protected function _htmlFilter($key) { if (empty($this->_filter)) return ''; return (isset($this->_filter[$key]) ? hsc($this->_filter[$key]) : ''); } - function _htmlFilterSettings($indent=0) { + /** + * Print hidden inputs with the current filter values + * + * @param int $indent + */ + protected function _htmlFilterSettings($indent=0) { ptln("<input type=\"hidden\" name=\"start\" value=\"".$this->_start."\" />",$indent); @@ -369,7 +407,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } - function _htmlImportForm($indent=0) { + /** + * Print import form and summary of previous import + * + * @param int $indent + */ + protected function _htmlImportForm($indent=0) { global $ID; $failure_download_link = wl($ID,array('do'=>'admin','page'=>'usermanager','fn[importfails]'=>1)); @@ -378,7 +421,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { print $this->locale_xhtml('import'); ptln(' <form action="'.wl($ID).'" method="post" enctype="multipart/form-data">',$indent); formSecurityToken(); - ptln(' <label>User list file (csv): <input type="file" name="import" /></label>',$indent); + ptln(' <label>'.$this->lang['import_userlistcsv'].'<input type="file" name="import" /></label>',$indent); ptln(' <input type="submit" name="fn[import]" value="'.$this->lang['import'].'" />',$indent); ptln(' <input type="hidden" name="do" value="admin" />',$indent); ptln(' <input type="hidden" name="page" value="usermanager" />',$indent); @@ -391,7 +434,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { if ($this->_import_failures) { $digits = strlen(count($this->_import_failures)); ptln('<div class="level3 import_failures">',$indent); - ptln(' <h3>Most Recent Import - Failures</h3>'); + ptln(' <h3>'.$this->lang['import_header'].'</h3>'); ptln(' <table class="import_failures">',$indent); ptln(' <thead>',$indent); ptln(' <tr>',$indent); @@ -416,13 +459,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } ptln(' </tbody>',$indent); ptln(' </table>',$indent); - ptln(' <p><a href="'.$failure_download_link.'">Download Failures as CSV for correction</a></p>'); + ptln(' <p><a href="'.$failure_download_link.'">'.$this->lang['import_downloadfailures'].'</a></p>'); ptln('</div>'); } } - function _addUser(){ + /** + * Add an user to auth backend + * + * @return bool whether succesful + */ + protected function _addUser(){ global $INPUT; if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('addUser')) return false; @@ -483,9 +531,11 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * Delete user + * Delete user from auth backend + * + * @return bool whether succesful */ - function _deleteUser(){ + protected function _deleteUser(){ global $conf, $INPUT; if (!checkSecurityToken()) return false; @@ -518,12 +568,14 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { /** * Edit user (a user has been selected for editing) + * + * @param string $param id of the user + * @return bool whether succesful */ - function _editUser($param) { + protected function _editUser($param) { if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('UserMod')) return false; - - $user = cleanID(preg_replace('/.*:/','',$param)); + $user = $this->_auth->cleanUser(preg_replace('/.*[:\/]/','',$param)); $userdata = $this->_auth->getUserData($user); // no user found? @@ -539,16 +591,18 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * Modify user (modified user data has been recieved) + * Modify user in the auth backend (modified user data has been recieved) + * + * @return bool whether succesful */ - function _modifyUser(){ + protected function _modifyUser(){ global $conf, $INPUT; if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('UserMod')) return false; // get currently valid user data - $olduser = cleanID(preg_replace('/.*:/','',$INPUT->str('userid_old'))); + $olduser = $this->_auth->cleanUser(preg_replace('/.*[:\/]/','',$INPUT->str('userid_old'))); $oldinfo = $this->_auth->getUserData($olduser); // get new user data subject to change @@ -609,9 +663,14 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * send password change notification email + * Send password change notification email + * + * @param string $user id of user + * @param string $password plain text + * @param bool $status_alert whether status alert should be shown + * @return bool whether succesful */ - function _notifyUser($user, $password, $status_alert=true) { + protected function _notifyUser($user, $password, $status_alert=true) { if ($sent = auth_sendPassword($user,$password)) { if ($status_alert) { @@ -627,11 +686,13 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } /** - * retrieve & clean user data from the form + * Retrieve & clean user data from the form * + * @param bool $clean whether the cleanUser method of the authentication backend is applied * @return array (user, password, full name, email, array(groups)) */ - function _retrieveUser($clean=true) { + protected function _retrieveUser($clean=true) { + /** @var DokuWiki_Auth_Plugin $auth */ global $auth; global $INPUT; @@ -650,7 +711,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return $user; } - function _setFilter($op) { + /** + * Set the filter with the current search terms or clear the filter + * + * @param string $op 'new' or 'clear' + */ + protected function _setFilter($op) { $this->_filter = array(); @@ -664,7 +730,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { } } - function _retrieveFilter() { + /** + * Get the current search terms + * + * @return array + */ + protected function _retrieveFilter() { global $INPUT; $t_filter = $INPUT->arr('filter'); @@ -680,7 +751,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return $filter; } - function _validatePagination() { + /** + * Validate and improve the pagination values + */ + protected function _validatePagination() { if ($this->_start >= $this->_user_total) { $this->_start = $this->_user_total - $this->_pagesize; @@ -690,10 +764,12 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $this->_last = min($this->_user_total, $this->_start + $this->_pagesize); } - /* - * return an array of strings to enable/disable pagination buttons + /** + * Return an array of strings to enable/disable pagination buttons + * + * @return array with enable/disable attributes */ - function _pagination() { + protected function _pagination() { $disabled = 'disabled="disabled"'; @@ -709,10 +785,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return $buttons; } - /* - * export a list of users in csv format using the current filter criteria + /** + * Export a list of users in csv format using the current filter criteria */ - function _export() { + protected function _export() { // list of users for export - based on current filter criteria $user_list = $this->_auth->retrieveUsers(0, 0, $this->_filter); $column_headings = array( @@ -741,12 +817,14 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { die; } - /* - * import a file of users in csv format + /** + * Import a file of users in csv format * * csv file should have 4 columns, user_id, full name, email, groups (comma separated) + * + * @return bool whether succesful */ - function _import() { + protected function _import() { // check we are allowed to add users if (!checkSecurityToken()) return false; if (!$this->_auth->canDo('addUser')) return false; @@ -806,9 +884,17 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { $_SESSION['import_failures'] = $this->_import_failures; session_write_close(); } + return true; } - function _cleanImportUser($candidate, & $error){ + /** + * Returns cleaned user data + * + * @param array $candidate raw values of line from input file + * @param $error + * @return array|bool cleaned data or false + */ + protected function _cleanImportUser($candidate, & $error){ global $INPUT; // kludgy .... @@ -847,7 +933,16 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return $cleaned; } - function _addImportUser($user, & $error){ + /** + * Adds imported user to auth backend + * + * Required a check of canDo('addUser') before + * + * @param array $user data of user + * @param string &$error reference catched error message + * @return bool whether succesful + */ + protected function _addImportUser($user, & $error){ if (!$this->_auth->triggerUserMod('create', $user)) { $error = $this->lang['import_error_create']; return false; @@ -856,7 +951,10 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { return true; } - function _downloadImportFailures(){ + /** + * Downloads failures as csv file + */ + protected function _downloadImportFailures(){ // ============================================================================================== // GENERATE OUTPUT @@ -868,7 +966,7 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin { // output the csv $fd = fopen('php://output','w'); - foreach ($this->_import_failures as $line => $fail) { + foreach ($this->_import_failures as $fail) { fputs($fd, $fail['orig']); } fclose($fd); diff --git a/lib/plugins/usermanager/lang/en/lang.php b/lib/plugins/usermanager/lang/en/lang.php index 69119e196..f87c77afb 100644 --- a/lib/plugins/usermanager/lang/en/lang.php +++ b/lib/plugins/usermanager/lang/en/lang.php @@ -61,7 +61,9 @@ $lang['add_fail'] = 'User addition failed'; $lang['notify_ok'] = 'Notification email sent'; $lang['notify_fail'] = 'Notification email could not be sent'; -// import errors +// import & errors +$lang['import_userlistcsv'] = 'User list file (CSV): '; +$lang['import_header'] = 'Most Recent Import - Failures'; $lang['import_success_count'] = 'User Import: %d users found, %d imported successfully.'; $lang['import_failure_count'] = 'User Import: %d failed. Failures are listed below.'; $lang['import_error_fields'] = "Insufficient fields, found %d, require 4."; @@ -72,5 +74,6 @@ $lang['import_error_upload'] = 'Import Failed. The csv file could not be upload $lang['import_error_readfail'] = 'Import Failed. Unable to read uploaded file.'; $lang['import_error_create'] = 'Unable to create the user'; $lang['import_notify_fail'] = 'Notification message could not be sent for imported user, %s with email %s.'; +$lang['import_downloadfailures'] = 'Download Failures as CSV for correction'; diff --git a/lib/plugins/usermanager/lang/fa/lang.php b/lib/plugins/usermanager/lang/fa/lang.php index 8176b776b..a6a484411 100644 --- a/lib/plugins/usermanager/lang/fa/lang.php +++ b/lib/plugins/usermanager/lang/fa/lang.php @@ -1,7 +1,8 @@ <?php + /** - * Persian language file - * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * * @author behrad eslamifar <behrad_es@yahoo.com) * @author Mohsen Firoozmandan <info@mambolearn.com> * @author omidmr@gmail.com 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/import.txt b/lib/plugins/usermanager/lang/ja/import.txt new file mode 100644 index 000000000..d4f7d08bf --- /dev/null +++ b/lib/plugins/usermanager/lang/ja/import.txt @@ -0,0 +1,10 @@ +===== 一括ユーザーインポート ===== + +少なくとも4列のユーザーCSVファイルが必要です。 +列の順序:ユーザーID、氏名、電子メールアドレス、グループ。 +CSVフィールドはカンマ(,)区切り、文字列は引用符("")区切りです。 +エスケープにバックスラッシュ(\)を使用できます。 +適切なファイル例は、上記の"エクスポートユーザー"機能で試して下さい。 +重複するユーザーIDは無視されます。 + +正常にインポートされたユーザー毎に、パスワードを作成し、電子メールで送付します。
\ No newline at end of file diff --git a/lib/plugins/usermanager/lang/ja/lang.php b/lib/plugins/usermanager/lang/ja/lang.php index 8b85ee9fd..0830416f3 100644 --- a/lib/plugins/usermanager/lang/ja/lang.php +++ b/lib/plugins/usermanager/lang/ja/lang.php @@ -10,6 +10,8 @@ * @author Kazutaka Miyasaka <kazmiya@gmail.com> * @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'] = '(ユーザー認証が無効です)'; @@ -32,6 +34,11 @@ $lang['search'] = '検索'; $lang['search_prompt'] = '検索を実行'; $lang['clear'] = '検索フィルターをリセット'; $lang['filter'] = 'フィルター'; +$lang['export_all'] = '全ユーザーのエクスポート(CSV)'; +$lang['export_filtered'] = '抽出したユーザー一覧のエクスポート(CSV)'; +$lang['import'] = '新規ユーザーのインポート'; +$lang['line'] = '行番号'; +$lang['error'] = 'エラーメッセージ'; $lang['summary'] = 'ユーザー %1$d-%2$d / %3$d, 総ユーザー数 %4$d'; $lang['nonefound'] = 'ユーザーが見つかりません, 総ユーザー数 %d'; $lang['delete_ok'] = '%d ユーザーが削除されました'; @@ -52,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/ko/lang.php b/lib/plugins/usermanager/lang/ko/lang.php index c9e54741f..1905fadc2 100644 --- a/lib/plugins/usermanager/lang/ko/lang.php +++ b/lib/plugins/usermanager/lang/ko/lang.php @@ -57,6 +57,8 @@ $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'] = '충분하지 않은 필드로, %d개를 찾았고, 4개가 필요합니다.'; @@ -67,3 +69,4 @@ $lang['import_error_upload'] = '가져오기를 실패했습니다. csv 파일 $lang['import_error_readfail'] = '가져오기를 실패했습니다. 올린 파일을 읽을 수 없습니다.'; $lang['import_error_create'] = '사용자를 만들 수 없습니다.'; $lang['import_notify_fail'] = '알림 메시지를 가져온 %2$s (이메일: %1$s ) 사용자에게 보낼 수 없습니다.'; +$lang['import_downloadfailures'] = '교정을 위한 CSV로 다운로드 실패'; diff --git a/lib/plugins/usermanager/lang/nl/lang.php b/lib/plugins/usermanager/lang/nl/lang.php index 7be10c16a..5cebede89 100644 --- a/lib/plugins/usermanager/lang/nl/lang.php +++ b/lib/plugins/usermanager/lang/nl/lang.php @@ -14,7 +14,6 @@ * @author Timon Van Overveldt <timonvo@gmail.com> * @author Jeroen * @author Ricardo Guijt <ricardoguijt@gmail.com> - * @author Gerrit <klapinklapin@gmail.com> * @author Gerrit Uitslag <klapinklapin@gmail.com> */ $lang['menu'] = 'Gebruikersmanager'; @@ -39,7 +38,7 @@ $lang['search_prompt'] = 'Voer zoekopdracht uit'; $lang['clear'] = 'Verwijder zoekfilter'; $lang['filter'] = 'Filter'; $lang['export_all'] = 'Exporteer Alle Gebruikers (CSV)'; -$lang['export_filtered'] = 'Exporteer de lijst van Gefilterde Gebruikers (CSV)'; +$lang['export_filtered'] = 'Exporteer Gefilterde Gebruikers (CSV)'; $lang['import'] = 'Importeer Nieuwe Gebruikers'; $lang['line'] = 'Regelnummer'; $lang['error'] = 'Foutmelding'; @@ -63,6 +62,8 @@ $lang['add_ok'] = 'Gebruiker succesvol toegevoegd'; $lang['add_fail'] = 'Gebruiker kon niet worden toegevoegd'; $lang['notify_ok'] = 'Notificatie-e-mail verzonden'; $lang['notify_fail'] = 'Notificatie-e-mail kon niet worden verzonden'; +$lang['import_userlistcsv'] = 'Gebruikerslijst (CSV-bestand):'; +$lang['import_header'] = 'Meest recente import - Gevonden fouten'; $lang['import_success_count'] = 'Gebruikers importeren: %d gebruikers gevonden, %d geïmporteerd'; $lang['import_failure_count'] = 'Gebruikers importeren: %d mislukt. Fouten zijn hieronder weergegeven.'; $lang['import_error_fields'] = 'Onvoldoende velden, gevonden %d, nodig 4.'; @@ -73,3 +74,4 @@ $lang['import_error_upload'] = 'Importeren mislukt. Het CSV bestand kon niet w $lang['import_error_readfail'] = 'Importeren mislukt. Lezen van het geüploade bestand is mislukt.'; $lang['import_error_create'] = 'Aanmaken van de gebruiker was niet mogelijk.'; $lang['import_notify_fail'] = 'Notificatiebericht kon niet naar de geïmporteerde gebruiker worden verstuurd, %s met e-mail %s.'; +$lang['import_downloadfailures'] = 'Download de gevonden fouten als CSV voor correctie'; diff --git a/lib/plugins/usermanager/lang/pt-br/lang.php b/lib/plugins/usermanager/lang/pt-br/lang.php index dc53337ba..9bb37742a 100644 --- a/lib/plugins/usermanager/lang/pt-br/lang.php +++ b/lib/plugins/usermanager/lang/pt-br/lang.php @@ -19,6 +19,7 @@ * @author Balaco Baco <balacobaco@imap.cc> * @author Victor Westmann <victor.westmann@gmail.com> * @author Leone Lisboa Magevski <leone1983@gmail.com> + * @author Dário Estevão <darioems@gmail.com> */ $lang['menu'] = 'Gerenciamento de Usuários'; $lang['noauth'] = '(o gerenciamento de usuários não está disponível)'; @@ -43,6 +44,8 @@ $lang['clear'] = 'Limpar o filtro de pesquisa'; $lang['filter'] = 'Filtro'; $lang['export_all'] = 'Exportar Todos Usuários (CSV)'; $lang['import'] = 'Importar Novos Usuários'; +$lang['line'] = 'Linha Nº.'; +$lang['error'] = 'Mensagem de Erro'; $lang['summary'] = 'Exibindo usuários %1$d-%2$d de %3$d encontrados. %4$d usuários no total.'; $lang['nonefound'] = 'Nenhum usuário encontrado. %d usuários no total.'; $lang['delete_ok'] = '%d usuários excluídos'; @@ -63,3 +66,12 @@ $lang['add_ok'] = 'O usuário foi adicionado com sucesso'; $lang['add_fail'] = 'O usuário não foi adicionado'; $lang['notify_ok'] = 'O e-mail de notificação foi enviado'; $lang['notify_fail'] = 'Não foi possível enviar o e-mail de notificação'; +$lang['import_success_count'] = 'Importação de Usuário: %d usuário (s) encontrado (s), %d importado (s) com sucesso.'; +$lang['import_failure_count'] = 'Importação de Usuário: %d falhou. As falhas estão listadas abaixo.'; +$lang['import_error_fields'] = 'Campos insuficientes, encontrado (s) %d, necessário 4.'; +$lang['import_error_baduserid'] = 'Id do usuário não encontrado.'; +$lang['import_error_badname'] = 'Nome errado'; +$lang['import_error_badmail'] = 'Endereço de email errado'; +$lang['import_error_upload'] = 'Falha na Importação: O arquivo csv não pode ser carregado ou está vazio.'; +$lang['import_error_readfail'] = 'Falha na Importação: Habilitar para ler o arquivo a ser carregado.'; +$lang['import_error_create'] = 'Habilitar para criar o usuário.'; diff --git a/lib/plugins/usermanager/lang/sk/import.txt b/lib/plugins/usermanager/lang/sk/import.txt new file mode 100644 index 000000000..7f57461f9 --- /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í s š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/tpl/dokuwiki/detail.php b/lib/tpl/dokuwiki/detail.php index 9c04ba8e7..c602830f7 100644 --- a/lib/tpl/dokuwiki/detail.php +++ b/lib/tpl/dokuwiki/detail.php @@ -122,11 +122,11 @@ header('X-UA-Compatible: IE=edge,chrome=1'); // Back to [ID]; @todo: transfer logic to backend $data['img_backto'] = '<li><a href="'.wl($ID).'" class="back"><span>'.$lang['img_backto'].' '.$ID.'</span></a></li>'; - // the page tools can be ammended through a custom plugin hook + // the page tools can be amended through a custom plugin hook // if you're deriving from this template and your design is close enough to // the dokuwiki template you might want to trigger a DOKUWIKI event instead - // of using $conf['tpl'] here - $hook = 'TEMPLATE_'.strtoupper($conf['tpl']).'_PAGETOOLS_DISPLAY'; + // of using $conf['template'] here + $hook = 'TEMPLATE_'.strtoupper($conf['template']).'_PAGETOOLS_DISPLAY'; $evt = new Doku_Event($hook, $data); if($evt->advise_before()){ foreach($evt->data as $k => $html) echo $html; diff --git a/lib/tpl/dokuwiki/main.php b/lib/tpl/dokuwiki/main.php index 9e507d86d..f6ca4ed86 100644 --- a/lib/tpl/dokuwiki/main.php +++ b/lib/tpl/dokuwiki/main.php @@ -83,11 +83,11 @@ $showSidebar = $hasSidebar && ($ACT=='show'); 'top' => tpl_action('top', 1, 'li', 1, '<span>', '</span>') ); - // the page tools can be ammended through a custom plugin hook + // the page tools can be amended through a custom plugin hook // if you're deriving from this template and your design is close enough to // the dokuwiki template you might want to trigger a DOKUWIKI event instead - // of using $conf['tpl'] here - $hook = 'TEMPLATE_'.strtoupper($conf['tpl']).'_PAGETOOLS_DISPLAY'; + // of using $conf['template'] here + $hook = 'TEMPLATE_'.strtoupper($conf['template']).'_PAGETOOLS_DISPLAY'; $evt = new Doku_Event($hook, $data); if($evt->advise_before()){ foreach($evt->data as $k => $html) echo $html; |