summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/auth.php28
-rw-r--r--inc/html.php8
-rw-r--r--inc/io.php50
-rw-r--r--inc/lang/cs/lang.php6
-rw-r--r--inc/lang/el/lang.php1
-rw-r--r--inc/lang/id/adminplugins.txt1
-rw-r--r--inc/lang/id/lang.php28
-rw-r--r--inc/lang/pl/lang.php6
-rw-r--r--inc/lang/sk/lang.php1
-rw-r--r--inc/lang/tr/lang.php13
-rw-r--r--inc/load.php1
-rw-r--r--inc/media.php1
-rw-r--r--inc/parser/parser.php80
-rw-r--r--inc/plugin.php27
14 files changed, 225 insertions, 26 deletions
diff --git a/inc/auth.php b/inc/auth.php
index b793f5d12..6000ea6d7 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -661,17 +661,39 @@ function auth_quickaclcheck($id) {
}
/**
- * Returns the maximum rights a user has for
- * the given ID or its namespace
+ * Returns the maximum rights a user has for the given ID or its namespace
*
* @author Andreas Gohr <andi@splitbrain.org>
- *
+ * @triggers AUTH_ACL_CHECK
* @param string $id page ID (needs to be resolved and cleaned)
* @param string $user Username
* @param array|null $groups Array of groups the user is in
* @return int permission level
*/
function auth_aclcheck($id, $user, $groups) {
+ $data = array(
+ 'id' => $id,
+ 'user' => $user,
+ 'groups' => $groups
+ );
+
+ return trigger_event('AUTH_ACL_CHECK', $data, 'auth_aclcheck_cb');
+}
+
+/**
+ * default ACL check method
+ *
+ * DO NOT CALL DIRECTLY, use auth_aclcheck() instead
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ * @param array $data event data
+ * @return int permission level
+ */
+function auth_aclcheck_cb($data) {
+ $id =& $data['id'];
+ $user =& $data['user'];
+ $groups =& $data['groups'];
+
global $conf;
global $AUTH_ACL;
/* @var DokuWiki_Auth_Plugin $auth */
diff --git a/inc/html.php b/inc/html.php
index 7f473cdb6..5941a9af2 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1698,12 +1698,12 @@ function html_admin(){
}
unset($menu['acl']);
- if($menu['plugin']){
+ if($menu['extension']){
ptln(' <li class="admin_plugin"><div class="li">'.
- '<a href="'.wl($ID, array('do' => 'admin','page' => 'plugin')).'">'.
- $menu['plugin']['prompt'].'</a></div></li>');
+ '<a href="'.wl($ID, array('do' => 'admin','page' => 'extension')).'">'.
+ $menu['extension']['prompt'].'</a></div></li>');
}
- unset($menu['plugin']);
+ unset($menu['extension']);
if($menu['config']){
ptln(' <li class="admin_config"><div class="li">'.
diff --git a/inc/io.php b/inc/io.php
index eff0279ac..c5225a2e0 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -401,6 +401,56 @@ function io_mkdir_p($target){
}
/**
+ * Recursively delete a directory
+ *
+ * @author Andreas Gohr <andi@splitbrain.org>
+ * @param string $path
+ * @param bool $removefiles defaults to false which will delete empty directories only
+ * @return bool
+ */
+function io_rmdir($path, $removefiles = false) {
+ if(!is_string($path) || $path == "") return false;
+ if(!file_exists($path)) return true; // it's already gone or was never there, count as success
+
+ if(is_dir($path) && !is_link($path)) {
+ $dirs = array();
+ $files = array();
+
+ if(!$dh = @opendir($path)) return false;
+ while(false !== ($f = readdir($dh))) {
+ if($f == '..' || $f == '.') continue;
+
+ // collect dirs and files first
+ if(is_dir("$path/$f") && !is_link("$path/$f")) {
+ $dirs[] = "$path/$f";
+ } else if($removefiles) {
+ $files[] = "$path/$f";
+ } else {
+ return false; // abort when non empty
+ }
+
+ }
+ closedir($dh);
+
+ // now traverse into directories first
+ foreach($dirs as $dir) {
+ if(!io_rmdir($dir, $removefiles)) return false; // abort on any error
+ }
+
+ // now delete files
+ foreach($files as $file) {
+ if(!@unlink($file)) return false; //abort on any error
+ }
+
+ // remove self
+ return @rmdir($path);
+ } else if($removefiles) {
+ return @unlink($path);
+ }
+ return false;
+}
+
+/**
* Creates a directory using FTP
*
* This is used when the safemode workaround is enabled
diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php
index 56ffd91de..a0f69b3dc 100644
--- a/inc/lang/cs/lang.php
+++ b/inc/lang/cs/lang.php
@@ -16,6 +16,7 @@
* @author mkucera66@seznam.cz
* @author Zbyněk Křivka <krivka@fit.vutbr.cz>
* @author Gerrit Uitslag <klapinklapin@gmail.com>
+ * @author Petr Klíma <qaxi@seznam.cz>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -299,6 +300,7 @@ $lang['i_policy'] = 'Úvodní politika ACL';
$lang['i_pol0'] = 'Otevřená wiki (čtení, zápis a upload pro všechny)';
$lang['i_pol1'] = 'Veřejná wiki (čtení pro všechny, zápis a upload pro registrované uživatele)';
$lang['i_pol2'] = 'Uzavřená wiki (čtení, zápis a upload pouze pro registrované uživatele)';
+$lang['i_allowreg'] = 'Povol uživatelům registraci';
$lang['i_retry'] = 'Zkusit znovu';
$lang['i_license'] = 'Vyberte prosím licenci obsahu:';
$lang['i_license_none'] = 'Nezobrazovat žádné licenční informace';
@@ -336,3 +338,7 @@ $lang['media_perm_read'] = 'Bohužel, nemáte práva číst soubory.';
$lang['media_perm_upload'] = 'Bohužel, nemáte práva nahrávat soubory.';
$lang['media_update'] = 'Nahrát novou verzi';
$lang['media_restore'] = 'Obnovit tuto verzi';
+$lang['currentns'] = 'Aktuální jmenný prostor';
+$lang['searchresult'] = 'Výsledek hledání';
+$lang['plainhtml'] = 'Čisté HTML';
+$lang['wikimarkup'] = 'Wiki jazyk';
diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php
index 8007f2b23..170e101a5 100644
--- a/inc/lang/el/lang.php
+++ b/inc/lang/el/lang.php
@@ -11,6 +11,7 @@
* @author Vasileios Karavasilis vasileioskaravasilis@gmail.com
* @author Constantinos Xanthopoulos <conx@xanthopoulos.info>
* @author chris taklis <ctaklis@gmail.com>
+ * @author cross <cross1962@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
diff --git a/inc/lang/id/adminplugins.txt b/inc/lang/id/adminplugins.txt
new file mode 100644
index 000000000..2a91b3d1a
--- /dev/null
+++ b/inc/lang/id/adminplugins.txt
@@ -0,0 +1 @@
+=====Plugin Tambahan===== \ No newline at end of file
diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php
index 3d99c9a22..5cb5cb6ea 100644
--- a/inc/lang/id/lang.php
+++ b/inc/lang/id/lang.php
@@ -7,6 +7,7 @@
* @author Irwan Butar Butar <irwansah.putra@gmail.com>
* @author Yustinus Waruwu <juswaruwu@gmail.com>
* @author zamroni <therons@ymail.com>
+ * @author umriya afini <bigdream.power@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -42,9 +43,14 @@ $lang['btn_backtomedia'] = 'Kembali ke Pilihan Mediafile';
$lang['btn_subscribe'] = 'Ikuti Perubahan';
$lang['btn_profile'] = 'Ubah Profil';
$lang['btn_reset'] = 'Reset';
+$lang['btn_resendpwd'] = 'Atur password baru';
$lang['btn_draft'] = 'Edit draft';
+$lang['btn_recover'] = 'Cadangkan draf';
$lang['btn_draftdel'] = 'Hapus draft';
+$lang['btn_revert'] = 'Kembalikan';
$lang['btn_register'] = 'Daftar';
+$lang['btn_apply'] = 'Terapkan';
+$lang['btn_deleteuser'] = 'Hapus Akun Saya';
$lang['loggedinas'] = 'Login sebagai ';
$lang['user'] = 'Username';
$lang['pass'] = 'Password';
@@ -56,6 +62,7 @@ $lang['fullname'] = 'Nama lengkap';
$lang['email'] = 'E-Mail';
$lang['profile'] = 'Profil User';
$lang['badlogin'] = 'Maaf, username atau password salah.';
+$lang['badpassconfirm'] = 'Maaf, password salah';
$lang['minoredit'] = 'Perubahan Minor';
$lang['draftdate'] = 'Simpan draft secara otomatis';
$lang['regmissing'] = 'Maaf, Anda harus mengisi semua field.';
@@ -71,13 +78,20 @@ $lang['profna'] = 'Wiki ini tidak mengijinkan perubahan profil.';
$lang['profnochange'] = 'Tidak ada perubahan.';
$lang['profnoempty'] = 'Mohon mengisikan nama atau alamat email.';
$lang['profchanged'] = 'Profil User berhasil diubah.';
+$lang['profdeleteuser'] = 'Hapus Akun';
+$lang['profdeleted'] = 'Akun anda telah dihapus dari wiki ini';
+$lang['profconfdelete'] = 'Saya berharap menghapus akun saya dari wiki ini.
+Aksi ini tidak bisa diselesaikan.';
+$lang['profconfdeletemissing'] = 'Knfirmasi check box tidak tercentang';
$lang['pwdforget'] = 'Lupa Password? Dapatkan yang baru';
$lang['resendna'] = 'Wiki ini tidak mendukung pengiriman ulang password.';
+$lang['resendpwd'] = 'Atur password baru';
$lang['resendpwdmissing'] = 'Maaf, Anda harus mengisikan semua field.';
$lang['resendpwdnouser'] = 'Maaf, user ini tidak ditemukan.';
$lang['resendpwdbadauth'] = 'Maaf, kode autentikasi tidak valid. Pastikan Anda menggunakan keseluruhan link konfirmasi.';
$lang['resendpwdconfirm'] = 'Link konfirmasi telah dikirim melalui email.';
$lang['resendpwdsuccess'] = 'Password baru Anda telah dikirim melalui email.';
+$lang['searchmedia'] = 'Cari nama file:';
$lang['txt_upload'] = 'File yang akan diupload';
$lang['txt_filename'] = 'Masukkan nama wiki (opsional)';
$lang['txt_overwrt'] = 'File yang telah ada akan ditindih';
@@ -85,11 +99,22 @@ $lang['lockedby'] = 'Sedang dikunci oleh';
$lang['lockexpire'] = 'Penguncian artikel sampai dengan';
$lang['js']['willexpire'] = 'Halaman yang sedang Anda kunci akan berakhir dalam waktu kurang lebih satu menit.\nUntuk menghindari konflik, gunakan tombol Preview untuk me-reset timer pengunci.';
$lang['js']['notsavedyet'] = 'Perubahan yang belum disimpan akan hilang.\nYakin akan dilanjutkan?';
+$lang['js']['searchmedia'] = 'Cari file';
$lang['js']['keepopen'] = 'Biarkan window terbuka dalam pemilihan';
$lang['js']['hidedetails'] = 'Sembunyikan detil';
+$lang['js']['mediatitle'] = 'Pengaturan Link';
+$lang['js']['mediasize'] = 'Ukuran gambar';
+$lang['js']['mediaclose'] = 'Tutup';
+$lang['js']['mediadisplayimg'] = 'Lihat gambar';
+$lang['js']['mediadisplaylnk'] = 'Lihat hanya link';
$lang['js']['nosmblinks'] = 'Link ke share Windows hanya bekerja di Microsoft Internet Explorer.
Anda masih dapat mengcopy and paste linknya.';
$lang['js']['del_confirm'] = 'Hapus tulisan ini?';
+$lang['js']['media_select'] = 'Pilih file...';
+$lang['js']['media_upload_btn'] = 'Unggah';
+$lang['js']['media_done_btn'] = 'Selesai';
+$lang['js']['media_drop'] = 'Tarik file disini untuk mengunggah';
+$lang['js']['media_cancel'] = 'Buang';
$lang['rssfailed'] = 'Error terjadi saat mengambil feed: ';
$lang['nothingfound'] = 'Tidak menemukan samasekali.';
$lang['mediaselect'] = 'Pilihan Mediafile';
@@ -101,11 +126,13 @@ $lang['uploadexist'] = 'File telah ada. Tidak mengerjakan apa-apa.';
$lang['uploadbadcontent'] = 'Isi file yang diupload tidak cocok dengan ekstensi file %s.';
$lang['uploadspam'] = 'File yang diupload diblok oleh spam blacklist.';
$lang['uploadxss'] = 'File yang diupload diblok karena kemungkinan isi yang berbahaya.';
+$lang['uploadsize'] = 'File yang diupload terlalu besar. (max.%)';
$lang['deletesucc'] = 'File "%s" telah dihapus.';
$lang['deletefail'] = '"%s" tidak dapat dihapus - cek hak aksesnya.';
$lang['mediainuse'] = 'File "%s" belum dihapus - file ini sedang digunakan.';
$lang['namespaces'] = 'Namespaces';
$lang['mediafiles'] = 'File tersedia didalam';
+$lang['accessdenied'] = 'Anda tidak diperbolehkan melihat halaman ini';
$lang['mediausage'] = 'Gunakan sintaks berikut untuk me-refer ke file ini';
$lang['mediaview'] = 'Tampilkan file asli';
$lang['mediaroot'] = 'root';
@@ -135,6 +162,7 @@ $lang['mail_newpage'] = 'Halaman ditambahkan:';
$lang['mail_changed'] = 'Halaman diubah:';
$lang['mail_new_user'] = 'User baru:';
$lang['mail_upload'] = 'Berkas di-upload:';
+$lang['pages_changes'] = 'Halaman';
$lang['qb_bold'] = 'Tebal';
$lang['qb_italic'] = 'Miring';
$lang['qb_underl'] = 'Garis Bawah';
diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php
index 142dd3baa..e5f2d8d40 100644
--- a/inc/lang/pl/lang.php
+++ b/inc/lang/pl/lang.php
@@ -15,6 +15,7 @@
* @author Begina Felicysym <begina.felicysym@wp.eu>
* @author Aoi Karasu <aoikarasu@gmail.com>
* @author Tomasz Bosak <bosak.tomasz@gmail.com>
+ * @author Paweł Jan Czochański <czochanski@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -324,7 +325,7 @@ $lang['media_list_thumbs'] = 'Miniatury';
$lang['media_list_rows'] = 'Wiersze';
$lang['media_sort_name'] = 'Nazwa';
$lang['media_sort_date'] = 'Data';
-$lang['media_namespaces'] = 'Wybierz przestrzeń nazw';
+$lang['media_namespaces'] = 'Wybierz katalog';
$lang['media_files'] = 'Pliki w %s';
$lang['media_upload'] = 'Przesyłanie plików na %s';
$lang['media_search'] = 'Znajdź w %s';
@@ -337,6 +338,7 @@ $lang['media_perm_read'] = 'Przepraszamy, nie masz wystarczających uprawn
$lang['media_perm_upload'] = 'Przepraszamy, nie masz wystarczających uprawnień do przesyłania plików.';
$lang['media_update'] = 'Prześlij nową wersję';
$lang['media_restore'] = 'Odtwórz tą wersję';
-$lang['currentns'] = 'Obecna przestrzeń nazw.';
+$lang['currentns'] = 'Obecny katalog';
$lang['searchresult'] = 'Wyniki wyszukiwania';
$lang['plainhtml'] = 'Czysty HTML';
+$lang['wikimarkup'] = 'Znaczniki';
diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php
index a5fc47f5f..aa823b074 100644
--- a/inc/lang/sk/lang.php
+++ b/inc/lang/sk/lang.php
@@ -290,6 +290,7 @@ $lang['i_policy'] = 'Počiatočná ACL politika';
$lang['i_pol0'] = 'Otvorená Wiki (čítanie, zápis a nahrávanie pre každého)';
$lang['i_pol1'] = 'Verejná Wiki (čítanie pre každého, zápis a nahrávanie pre registrovaných užívateľov)';
$lang['i_pol2'] = 'Uzatvorená Wiki (čítanie, zápis a nahrávanie len pre registrovaných užívateľov)';
+$lang['i_allowreg'] = 'Povolenie samostanej registrácie použí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';
diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php
index 6b9e0dd44..210a82530 100644
--- a/inc/lang/tr/lang.php
+++ b/inc/lang/tr/lang.php
@@ -10,6 +10,7 @@
* @author Caleb Maclennan <caleb@alerque.com>
* @author farukerdemoncel@gmail.com
* @author Mustafa Aslan <maslan@hotmail.com>
+ * @author huseyin can <huseyincan73@gmail.com>
*/
$lang['encoding'] = 'utf-8';
$lang['direction'] = 'ltr';
@@ -179,6 +180,7 @@ $lang['yours'] = 'Senin Sürümün';
$lang['diff'] = 'Kullanılan sürüm ile farkları göster';
$lang['diff2'] = 'Seçili sürümler arasındaki farkı göster';
$lang['difflink'] = 'Karşılaştırma görünümüne bağlantı';
+$lang['diff_type'] = 'farklı görünüş';
$lang['line'] = 'Satır';
$lang['breadcrumb'] = 'İz';
$lang['youarehere'] = 'Buradasınız';
@@ -191,10 +193,17 @@ $lang['external_edit'] = 'Dışarıdan düzenle';
$lang['summary'] = 'Özeti düzenle';
$lang['noflash'] = 'Bu içeriği göstermek için <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Eklentisi</a> gerekmektedir.';
$lang['download'] = 'Parçacığı indir';
+$lang['tools'] = 'Alet';
+$lang['user_tools'] = 'Kullanıcı Aletleri';
+$lang['site_tools'] = 'Site Aletleri';
+$lang['page_tools'] = 'Sayfa Aletleri';
+$lang['skip_to_content'] = 'Bağlanmak için kaydır';
+$lang['sidebar'] = 'kaydırma çubuğu';
$lang['mail_newpage'] = 'sayfa eklenme:';
$lang['mail_changed'] = 'sayfa değiştirilme:';
$lang['mail_new_user'] = 'yeni kullanıcı';
$lang['mail_upload'] = 'dosya yüklendi:';
+$lang['changes_type'] = 'görünüşü değiştir';
$lang['pages_changes'] = 'Sayfalar';
$lang['media_changes'] = 'Çokluortam dosyaları';
$lang['both_changes'] = 'Sayfalar ve çoklu ortam dosyaları';
@@ -238,6 +247,9 @@ $lang['img_keywords'] = 'Anahtar Sözcükler';
$lang['img_width'] = 'Genişlik';
$lang['img_height'] = 'Yükseklik';
$lang['img_manager'] = 'Ortam oynatıcısında göster';
+$lang['subscr_m_new_header'] = 'Üyelik ekle';
+$lang['subscr_m_current_header'] = 'Üyeliğini onayla';
+$lang['subscr_m_unsubscribe'] = 'Üyelik iptali';
$lang['subscr_m_subscribe'] = 'Kayıt ol';
$lang['subscr_m_receive'] = 'Al';
$lang['authtempfail'] = 'Kullanıcı doğrulama geçici olarak yapılamıyor. Eğer bu durum devam ederse lütfen Wiki yöneticine haber veriniz.';
@@ -290,4 +302,5 @@ $lang['media_view'] = '%s';
$lang['media_edit'] = 'Düzenle %s';
$lang['media_history'] = 'Geçmiş %s';
$lang['media_perm_upload'] = 'Üzgünüm, karşıya dosya yükleme yetkiniz yok.';
+$lang['media_update'] = 'Yeni versiyonu yükleyin';
$lang['media_restore'] = 'Bu sürümü eski haline getir';
diff --git a/inc/load.php b/inc/load.php
index c5b40ffd8..497dd6921 100644
--- a/inc/load.php
+++ b/inc/load.php
@@ -76,6 +76,7 @@ function load_autoload($name){
'ZipLib' => DOKU_INC.'inc/ZipLib.class.php',
'DokuWikiFeedCreator' => DOKU_INC.'inc/feedcreator.class.php',
'Doku_Parser_Mode' => DOKU_INC.'inc/parser/parser.php',
+ 'Doku_Parser_Mode_Plugin' => DOKU_INC.'inc/parser/parser.php',
'SafeFN' => DOKU_INC.'inc/SafeFN.class.php',
'Sitemapper' => DOKU_INC.'inc/Sitemapper.php',
'PassHash' => DOKU_INC.'inc/PassHash.class.php',
diff --git a/inc/media.php b/inc/media.php
index 2943e8274..960b96e65 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -1804,6 +1804,7 @@ function media_resize_image($file, $ext, $w, $h=0){
if($info == false) return $file; // that's no image - it's a spaceship!
if(!$h) $h = round(($w * $info[1]) / $info[0]);
+ if(!$w) $w = round(($h * $info[0]) / $info[1]);
// we wont scale up to infinity
if($w > 2000 || $h > 2000) return $file;
diff --git a/inc/parser/parser.php b/inc/parser/parser.php
index 1f14b98a3..252bd9170 100644
--- a/inc/parser/parser.php
+++ b/inc/parser/parser.php
@@ -125,43 +125,91 @@ class Doku_Parser {
}
//-------------------------------------------------------------------
+
/**
- * This class and all the subclasses below are
- * used to reduce the effort required to register
- * modes with the Lexer. For performance these
- * could all be eliminated later perhaps, or
- * the Parser could be serialized to a file once
- * all modes are registered
+ * Class Doku_Parser_Mode_Interface
*
- * @author Harry Fuecks <hfuecks@gmail.com>
+ * Defines a mode (syntax component) in the Parser
*/
-class Doku_Parser_Mode {
+interface Doku_Parser_Mode_Interface {
+ /**
+ * returns a number used to determine in which order modes are added
+ */
+ public function getSort();
+
+ /**
+ * Called before any calls to connectTo
+ */
+ function preConnect();
+
+ /**
+ * Connects the mode
+ *
+ * @param string $mode
+ */
+ function connectTo($mode);
/**
+ * Called after all calls to connectTo
+ */
+ function postConnect();
+
+ /**
+ * Check if given mode is accepted inside this mode
+ *
+ * @param string $mode
+ * @return bool
+ */
+ function accepts($mode);
+}
+
+/**
+ * This class and all the subclasses below are used to reduce the effort required to register
+ * modes with the Lexer.
+ *
+ * @author Harry Fuecks <hfuecks@gmail.com>
+ */
+class Doku_Parser_Mode implements Doku_Parser_Mode_Interface {
+ /**
* @var Doku_Lexer $Lexer
*/
var $Lexer;
-
var $allowedModes = array();
- // returns a number used to determine in which order modes are added
function getSort() {
trigger_error('getSort() not implemented in '.get_class($this), E_USER_WARNING);
}
- // Called before any calls to connectTo
function preConnect() {}
-
- // Connects the mode
function connectTo($mode) {}
-
- // Called after all calls to connectTo
function postConnect() {}
-
function accepts($mode) {
return in_array($mode, (array) $this->allowedModes );
}
+}
+
+/**
+ * Basically the same as Doku_Parser_Mode but extends from DokuWiki_Plugin
+ *
+ * Adds additional functions to syntax plugins
+ */
+class Doku_Parser_Mode_Plugin extends DokuWiki_Plugin implements Doku_Parser_Mode_Interface {
+ /**
+ * @var Doku_Lexer $Lexer
+ */
+ var $Lexer;
+ var $allowedModes = array();
+
+ function getSort() {
+ trigger_error('getSort() not implemented in '.get_class($this), E_USER_WARNING);
+ }
+ function preConnect() {}
+ function connectTo($mode) {}
+ function postConnect() {}
+ function accepts($mode) {
+ return in_array($mode, (array) $this->allowedModes );
+ }
}
//-------------------------------------------------------------------
diff --git a/inc/plugin.php b/inc/plugin.php
index dccd37bd9..95bdaee2b 100644
--- a/inc/plugin.php
+++ b/inc/plugin.php
@@ -239,10 +239,35 @@ class DokuWiki_Plugin {
}
/**
+ * A fallback to provide access to the old render() method
+ *
+ * Since syntax plugins provide their own render method with a different signature and they now
+ * inherit from Doku_Plugin we can no longer have a render() method here (Strict Standards Violation).
+ * Instead use render_text()
+ *
+ * @deprecated 2014-01-22
+ * @param $name
+ * @param $arguments
+ * @return null|string
+ */
+ function __call($name, $arguments) {
+ if($name == 'render'){
+ if(!isset($arguments[1])) $arguments[1] = 'xhtml';
+ return $this->render_text($arguments[0], $arguments[1]);
+ }
+ trigger_error("no such method $name", E_ERROR);
+ return null;
+ }
+
+ /**
* output text string through the parser, allows dokuwiki markup to be used
* very ineffecient for small pieces of data - try not to use
+ *
+ * @param string $text wiki markup to parse
+ * @param string $format output format
+ * @return null|string
*/
- function render($text, $format='xhtml') {
+ function render_text($text, $format='xhtml') {
return p_render($format, p_get_instructions($text),$info);
}