From c654938d56942c3166921564392e7d087ce06311 Mon Sep 17 00:00:00 2001 From: ben Date: Tue, 5 Jan 2010 20:19:09 +0100 Subject: Chinese language update --- inc/lang/zh/adminplugins.txt | 1 + inc/lang/zh/lang.php | 23 ++++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 inc/lang/zh/adminplugins.txt (limited to 'inc') diff --git a/inc/lang/zh/adminplugins.txt b/inc/lang/zh/adminplugins.txt new file mode 100644 index 000000000..66cee4509 --- /dev/null +++ b/inc/lang/zh/adminplugins.txt @@ -0,0 +1 @@ +===== 附加插件 ===== \ No newline at end of file diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index ffb759fde..45e4f8e34 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -8,6 +8,7 @@ * @author George Sheraton guxd@163.com * @author Simon zhan * @author mr.jinyi@gmail.com + * @author ben */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -50,6 +51,7 @@ $lang['btn_resendpwd'] = '发送新密码'; $lang['btn_draft'] = '编辑草稿'; $lang['btn_recover'] = '恢复草稿'; $lang['btn_draftdel'] = '删除草稿'; +$lang['btn_revert'] = '恢复'; $lang['loggedinas'] = '登录为'; $lang['user'] = '用户名'; $lang['pass'] = '密码'; @@ -88,6 +90,8 @@ $lang['resendpwdconfirm'] = '确认链接已经通过邮件发送给您了 $lang['resendpwdsuccess'] = '您的新密码已经通过邮件发送给您了。'; $lang['license'] = '除额外注明的地方外,本维基上的内容按下列许可协议发布:'; $lang['licenseok'] = '当您选择开始编辑本页,即寓示你同意将你贡献的内容按下列许可协议发布:'; +$lang['searchmedia'] = '查找文件名:'; +$lang['searchmedia_in'] = '在%s中查找'; $lang['txt_upload'] = '选择要上传的文件'; $lang['txt_filename'] = '上传并重命名为(可选)'; $lang['txt_overwrt'] = '覆盖已存在的同名文件'; @@ -112,10 +116,14 @@ $lang['deletefail'] = '无法删除“%s”- 请检查权限。'; $lang['mediainuse'] = '文件“%s”无法删除 - 它正被使用中。'; $lang['namespaces'] = '命名空间'; $lang['mediafiles'] = '可用的文件'; +$lang['js']['searchmedia'] = '查找文件'; $lang['js']['keepopen'] = '选中后不自动关闭窗口'; $lang['js']['hidedetails'] = '隐藏详细信息'; $lang['js']['nosmblinks'] = '连接到 Windows 共享功能只有在 IE 浏览器中才能正常使用。 但您仍能复制并粘贴该链接。'; +$lang['js']['linkwiz'] = '链接向导'; +$lang['js']['linkto'] = '链接到:'; +$lang['js']['del_confirm'] = '真的要删除选中的项目吗?'; $lang['js']['mu_btn'] = '一次上传了多个文件'; $lang['mediausage'] = '使用下列字符链接到该文件:'; $lang['mediaview'] = '查看该文件'; @@ -157,6 +165,11 @@ $lang['qb_h2'] = '标题 H2 '; $lang['qb_h3'] = '标题 H3'; $lang['qb_h4'] = '标题 H4'; $lang['qb_h5'] = '标题 H5'; +$lang['qb_h'] = '标题'; +$lang['qb_hs'] = '选择标题'; +$lang['qb_hplus'] = '上级标题'; +$lang['qb_hminus'] = '下级标题'; +$lang['qb_hequal'] = '同级标题'; $lang['qb_link'] = '内部链接'; $lang['qb_extlink'] = '外部链接'; $lang['qb_hr'] = '水平线'; @@ -166,7 +179,7 @@ $lang['qb_media'] = '插入图像或其他文件'; $lang['qb_sig'] = '插入签名'; $lang['qb_smileys'] = '表情符号'; $lang['qb_chars'] = '特殊字符'; -$lang['js']['del_confirm'] = '真的要删除选中的项目吗?'; +$lang['upperns'] = '跳转到父级名空间'; $lang['admin_register'] = '添加新用户'; $lang['metaedit'] = '编辑元数据'; $lang['metasaveerr'] = '写入元数据失败'; @@ -227,4 +240,12 @@ $lang['mu_fail'] = '失败'; $lang['mu_authfail'] = '会话过期'; $lang['mu_progress'] = '@PCT@% 上传完成'; $lang['mu_filetypes'] = '允许的文件类型'; +$lang['mu_info'] = '文件已上传。'; $lang['recent_global'] = '您当前看到的是%s 名称空间的变动。你还可以在查看整个维基的近期变动。'; +$lang['years'] = '%d年前'; +$lang['months'] = '%d月前'; +$lang['weeks'] = '%d周前'; +$lang['days'] = '%d天前'; +$lang['hours'] = '%d小时前'; +$lang['minutes'] = '%d分钟前'; +$lang['seconds'] = '%d秒前'; -- cgit v1.2.3 From 5cf31920a1920c348a360b2847233e43257f136f Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 8 Jan 2010 14:26:57 +0100 Subject: Read version from last Git log --- inc/infoutils.php | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) (limited to 'inc') diff --git a/inc/infoutils.php b/inc/infoutils.php index b43dd40be..d5356969b 100644 --- a/inc/infoutils.php +++ b/inc/infoutils.php @@ -55,36 +55,31 @@ function getVersionData(){ //official release $version['date'] = trim(io_readfile(DOKU_INC.'VERSION')); $version['type'] = 'Release'; - return $version; - }elseif(is_dir(DOKU_INC.'_darcs')){ - if(is_file(DOKU_INC.'_darcs/inventory')){ - $inventory = DOKU_INC.'_darcs/inventory'; - }elseif(is_file(DOKU_INC.'_darcs/hashed_inventory')){ - $inventory = DOKU_INC.'_darcs/hashed_inventory'; - }else{ - $version['date'] = 'unknown'; - $version['type'] = 'Darcs'; - return $version; - } - - //darcs checkout - read last 2000 bytes of inventory - $sz = filesize($inventory); - $seek = max(0,$sz-2000); - $fh = fopen($inventory,'rb'); - fseek($fh,$seek); - $chunk = fread($fh,2000); - fclose($fh); + }elseif(is_dir(DOKU_INC.'.git')){ + $version['type'] = 'Git'; + $version['date'] = 'unknown'; - preg_match_all('#\*\*(\d{4})(\d{2})(\d{2})\d{6}(?:\]|$)#m', $chunk, $matches, - PREG_SET_ORDER); - $version['date'] = implode('-', array_slice(array_pop($matches), 1)); - $version['type'] = 'Darcs'; - return $version; + $inventory = DOKU_INC.'.git/logs/HEAD'; + if(is_file($inventory)){ + $sz = filesize($inventory); + $seek = max(0,$sz-2000); // read from back of the file + $fh = fopen($inventory,'rb'); + fseek($fh,$seek); + $chunk = fread($fh,2000); + fclose($fh); + $chunk = trim($chunk); + $chunk = array_pop(explode("\n",$chunk)); //last log line + $chunk = array_shift(explode("\t",$chunk)); //strip commit msg + $chunk = explode(" ",$chunk); + array_pop($chunk); //strip timezone + $date = date('Y-m-d',array_pop($chunk)); + if($date) $version['date'] = $date; + } }else{ $version['date'] = 'unknown'; $version['type'] = 'snapshot?'; - return $version; } + return $version; } /** -- cgit v1.2.3 From d61e1b3e1988054815be230f97c416acc1033162 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 9 Jan 2010 01:07:29 -0500 Subject: re-order css links so the default one gets fetched first Signed-off-by: Mike Frysinger --- inc/template.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/template.php b/inc/template.php index 8fc70cfb8..4681300eb 100644 --- a/inc/template.php +++ b/inc/template.php @@ -334,10 +334,10 @@ function tpl_metaheaders($alt=true){ } // load stylesheets - $head['link'][] = array('rel'=>'stylesheet', 'media'=>'all', 'type'=>'text/css', - 'href'=>DOKU_BASE.'lib/exe/css.php?s=all&t='.$conf['template'].'&tseed='.$tseed); $head['link'][] = array('rel'=>'stylesheet', 'media'=>'screen', 'type'=>'text/css', 'href'=>DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed); + $head['link'][] = array('rel'=>'stylesheet', 'media'=>'all', 'type'=>'text/css', + 'href'=>DOKU_BASE.'lib/exe/css.php?s=all&t='.$conf['template'].'&tseed='.$tseed); $head['link'][] = array('rel'=>'stylesheet', 'media'=>'print', 'type'=>'text/css', 'href'=>DOKU_BASE.'lib/exe/css.php?s=print&t='.$conf['template'].'&tseed='.$tseed); -- cgit v1.2.3 From 865b2c3a02724e795cc288856f2bb961a9338339 Mon Sep 17 00:00:00 2001 From: Ljosxa KUZNECOV Date: Sat, 9 Jan 2010 11:28:22 +0100 Subject: Esperanto language update --- inc/lang/eo/adminplugins.txt | 2 +- inc/lang/eo/lang.php | 4 ++-- inc/lang/eo/mailtext.txt | 2 +- inc/lang/eo/norev.txt | 2 +- inc/lang/eo/password.txt | 4 ++-- inc/lang/eo/preview.txt | 2 +- inc/lang/eo/recent.txt | 2 +- inc/lang/eo/registermail.txt | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) (limited to 'inc') diff --git a/inc/lang/eo/adminplugins.txt b/inc/lang/eo/adminplugins.txt index ed2949b10..769a8c538 100644 --- a/inc/lang/eo/adminplugins.txt +++ b/inc/lang/eo/adminplugins.txt @@ -1 +1 @@ -===== Ekstra kromaĵojn ===== \ No newline at end of file +===== Eksteraj kromaĵoj ===== \ No newline at end of file diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index e2c25ae43..14cfea2d0 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -65,7 +65,7 @@ $lang['passchk'] = 'plian fojon'; $lang['remember'] = 'Rememoru min'; $lang['fullname'] = 'Kompleta nomo'; $lang['email'] = 'Retpoŝto'; -$lang['register'] = 'Registro'; +$lang['register'] = 'Registriĝi'; $lang['profile'] = 'Uzanto-profilo'; $lang['badlogin'] = 'Pardonu, uzant-nomo aŭ pasvorto estis erara.'; $lang['minoredit'] = 'Etaj modifoj'; @@ -79,7 +79,7 @@ $lang['regmailfail'] = 'Ŝajne okazis eraro dum elsendo de la pasvorto $lang['regbadmail'] = 'Entajpita retpoŝta adreso ne ŝajnas valida. Se vi pensas, ke tio estas eraro, kontaktu la administranton.'; $lang['regbadpass'] = 'La du pasvortoj ne samas, bonvolu provi refoje.'; $lang['regpwmail'] = 'Via DokuWiki-pasvorto'; -$lang['reghere'] = 'Se vi ne havas konton, do vi povos akiri ĝin'; +$lang['reghere'] = 'Se vi ne havas konton, do vi povas akiri ĝin'; $lang['profna'] = 'Tiu ĉi vikio ne ebligas modifon en la profiloj.'; $lang['profnochange'] = 'Neniu ŝanĝo, nenio farinda.'; $lang['profnoempty'] = 'Malplena nomo aŭ retadreso ne estas permesataj.'; diff --git a/inc/lang/eo/mailtext.txt b/inc/lang/eo/mailtext.txt index 5e83b324b..b2cb3b49d 100644 --- a/inc/lang/eo/mailtext.txt +++ b/inc/lang/eo/mailtext.txt @@ -12,5 +12,5 @@ Uzulo: @USER@ @DIFF@ -- -Tiu ĉi mesaĝo estis kreata de DokuWiki, kiu lokiĝas tie: +Tiu ĉi mesaĝo estis kreita de DokuWiki, kiu lokiĝas tie: @DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/eo/norev.txt b/inc/lang/eo/norev.txt index 6dffbaa1c..f17d8df7c 100644 --- a/inc/lang/eo/norev.txt +++ b/inc/lang/eo/norev.txt @@ -1,3 +1,3 @@ -====== Tia revizio ne ekzistas ====== +====== Tiu revizio ne ekzistas ====== La elektita revizio ne ekzistas. Premu butonon ''Malnovaj revizioj'', por vidi liston de malnovaj revizioj de la dokumento. \ No newline at end of file diff --git a/inc/lang/eo/password.txt b/inc/lang/eo/password.txt index f08e7426e..bb854a926 100644 --- a/inc/lang/eo/password.txt +++ b/inc/lang/eo/password.txt @@ -1,10 +1,10 @@ Saluton @FULLNAME@! -Jen via uzuldatenoj por @TITLE@ ĉe @DOKUWIKIURL@ +Jen via uzantodatenoj por @TITLE@ ĉe @DOKUWIKIURL@ Ensalutnomo : @LOGIN@ Pasvorto : @PASSWORD@ -- -Tiu ĉi mesaĝo estis kreata de DokuWiki ĉe +Tiu ĉi mesaĝo estis kreita de DokuWiki ĉe @DOKUWIKIURL@ diff --git a/inc/lang/eo/preview.txt b/inc/lang/eo/preview.txt index 784f693e6..ac2e75d00 100644 --- a/inc/lang/eo/preview.txt +++ b/inc/lang/eo/preview.txt @@ -1,3 +1,3 @@ ====== Antaŭrigardo ====== -Tiu ĉi estas antaŭrigardo pri kia estos via teksto. Memoru: ĝi ankoraŭ **ne estas konservita**! \ No newline at end of file +Tiu ĉi estas antaŭrigardo de redaktita teksto. Memoru: ĝi ankoraŭ **ne estas konservita**! \ No newline at end of file diff --git a/inc/lang/eo/recent.txt b/inc/lang/eo/recent.txt index e03144668..ffd9936e2 100644 --- a/inc/lang/eo/recent.txt +++ b/inc/lang/eo/recent.txt @@ -1,3 +1,3 @@ ====== Freŝaj Ŝanĝoj ====== -La jenaj paĝoj estis ŝanĝitaj antaŭ malmulta tempo. \ No newline at end of file +La jenaj paĝoj estis ŝanĝitaj antaŭ nelonga tempo. \ No newline at end of file diff --git a/inc/lang/eo/registermail.txt b/inc/lang/eo/registermail.txt index c832eca42..e5b1da902 100644 --- a/inc/lang/eo/registermail.txt +++ b/inc/lang/eo/registermail.txt @@ -10,5 +10,5 @@ IP-Adreso: @IPADDRESS@ Provizanto: @HOSTNAME@ -- -Tiu ĉi mesaĝo estis kreata de DokuWiki ĉe +Tiu ĉi mesaĝo estis kreita de DokuWiki ĉe @DOKUWIKIURL@ \ No newline at end of file -- cgit v1.2.3 From c471e6a6aee9997e62ce58c3e49dd8ecad28b92a Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 9 Jan 2010 13:21:16 +0100 Subject: fixed double encoding when embedding flash through image syntax --- inc/parser/xhtml.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 4d5333f7a..4ff5f18b8 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -1019,7 +1019,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $att['class'] = "media$align"; if($align == 'right') $att['align'] = 'right'; if($align == 'left') $att['align'] = 'left'; - $ret .= html_flashobject(ml($src,array('cache'=>$cache)),$width,$height, + $ret .= html_flashobject(ml($src,array('cache'=>$cache),true,'&'),$width,$height, array('quality' => 'high'), null, $att, -- cgit v1.2.3 From 29df5bf1c20e236ae1b30eefe7ccbedf1cde39d4 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 11 Jan 2010 13:19:46 +0100 Subject: Upgraded GeSHi to 1.0.8.6 --- inc/geshi.php | 87 +++-- inc/geshi/4cs.php | 139 +++++++ inc/geshi/abap.php | 2 +- inc/geshi/actionscript.php | 2 +- inc/geshi/actionscript3.php | 2 +- inc/geshi/ada.php | 18 +- inc/geshi/apache.php | 2 +- inc/geshi/applescript.php | 2 +- inc/geshi/apt_sources.php | 2 +- inc/geshi/asm.php | 2 +- inc/geshi/asp.php | 4 +- inc/geshi/autohotkey.php | 373 ++++++++++++++++++ inc/geshi/autoit.php | 2 +- inc/geshi/avisynth.php | 2 +- inc/geshi/awk.php | 158 ++++++++ inc/geshi/bash.php | 50 ++- inc/geshi/basic4gl.php | 2 +- inc/geshi/bf.php | 2 +- inc/geshi/bibtex.php | 183 +++++++++ inc/geshi/blitzbasic.php | 2 +- inc/geshi/bnf.php | 2 +- inc/geshi/boo.php | 2 +- inc/geshi/c.php | 2 +- inc/geshi/c_mac.php | 2 +- inc/geshi/caddcl.php | 2 +- inc/geshi/cadlisp.php | 2 +- inc/geshi/cfdg.php | 2 +- inc/geshi/cfm.php | 2 +- inc/geshi/cil.php | 2 +- inc/geshi/clojure.php | 134 +++++++ inc/geshi/cmake.php | 181 +++++++++ inc/geshi/cobol.php | 2 +- inc/geshi/cpp-qt.php | 433 ++++++++++++++++----- inc/geshi/cpp.php | 2 +- inc/geshi/csharp.php | 31 +- inc/geshi/css.php | 2 +- inc/geshi/cuesheet.php | 138 +++++++ inc/geshi/d.php | 2 +- inc/geshi/dcs.php | 5 +- inc/geshi/delphi.php | 4 +- inc/geshi/diff.php | 22 +- inc/geshi/div.php | 2 +- inc/geshi/dos.php | 2 +- inc/geshi/dot.php | 20 +- inc/geshi/eiffel.php | 2 +- inc/geshi/email.php | 17 +- inc/geshi/erlang.php | 441 +++++++++++++++++++++ inc/geshi/fo.php | 327 ++++++++++++++++ inc/geshi/fortran.php | 2 +- inc/geshi/freebasic.php | 2 +- inc/geshi/fsharp.php | 211 ++++++++++ inc/geshi/gambas.php | 214 +++++++++++ inc/geshi/gdb.php | 175 +++++++++ inc/geshi/genero.php | 2 +- inc/geshi/gettext.php | 2 +- inc/geshi/glsl.php | 2 +- inc/geshi/gml.php | 2 +- inc/geshi/gnuplot.php | 2 +- inc/geshi/groovy.php | 6 +- inc/geshi/haskell.php | 2 +- inc/geshi/hq9plus.php | 2 +- inc/geshi/html4strict.php | 2 +- inc/geshi/idl.php | 2 +- inc/geshi/ini.php | 2 +- inc/geshi/inno.php | 2 +- inc/geshi/intercal.php | 2 +- inc/geshi/io.php | 2 +- inc/geshi/java.php | 2 +- inc/geshi/java5.php | 326 ++++++++-------- inc/geshi/javascript.php | 2 +- inc/geshi/jquery.php | 238 ++++++++++++ inc/geshi/kixtart.php | 2 +- inc/geshi/klonec.php | 2 +- inc/geshi/klonecpp.php | 2 +- inc/geshi/latex.php | 35 +- inc/geshi/lisp.php | 2 +- inc/geshi/locobasic.php | 8 +- inc/geshi/logtalk.php | 330 ++++++++++++++++ inc/geshi/lolcode.php | 2 +- inc/geshi/lotusformulas.php | 2 +- inc/geshi/lotusscript.php | 2 +- inc/geshi/lscript.php | 2 +- inc/geshi/lsl2.php | 2 +- inc/geshi/lua.php | 2 +- inc/geshi/m68k.php | 2 +- inc/geshi/make.php | 2 +- inc/geshi/mapbasic.php | 908 ++++++++++++++++++++++++++++++++++++++++++++ inc/geshi/matlab.php | 2 +- inc/geshi/mirc.php | 2 +- inc/geshi/mmix.php | 173 +++++++++ inc/geshi/modula3.php | 2 +- inc/geshi/mpasm.php | 2 +- inc/geshi/mxml.php | 2 +- inc/geshi/mysql.php | 58 +-- inc/geshi/newlisp.php | 191 ++++++++++ inc/geshi/nsis.php | 2 +- inc/geshi/oberon2.php | 2 +- inc/geshi/objc.php | 2 +- inc/geshi/ocaml-brief.php | 2 +- inc/geshi/ocaml.php | 2 +- inc/geshi/oobas.php | 2 +- inc/geshi/oracle11.php | 2 +- inc/geshi/oracle8.php | 2 +- inc/geshi/pascal.php | 2 +- inc/geshi/per.php | 2 +- inc/geshi/perl.php | 2 +- inc/geshi/perl6.php | 197 ++++++++++ inc/geshi/php-brief.php | 14 +- inc/geshi/php.php | 18 +- inc/geshi/pic16.php | 2 +- inc/geshi/pike.php | 103 +++++ inc/geshi/pixelbender.php | 2 +- inc/geshi/plsql.php | 2 +- inc/geshi/povray.php | 2 +- inc/geshi/powerbuilder.php | 418 ++++++++++++++++++++ inc/geshi/powershell.php | 2 +- inc/geshi/progress.php | 2 +- inc/geshi/prolog.php | 2 +- inc/geshi/properties.php | 127 +++++++ inc/geshi/providex.php | 2 +- inc/geshi/purebasic.php | 303 +++++++++++++++ inc/geshi/python.php | 2 +- inc/geshi/qbasic.php | 17 +- inc/geshi/rails.php | 2 +- inc/geshi/rebol.php | 2 +- inc/geshi/reg.php | 2 +- inc/geshi/robots.php | 8 +- inc/geshi/rsplus.php | 483 +++++++++++++++++++++++ inc/geshi/ruby.php | 6 +- inc/geshi/sas.php | 2 +- inc/geshi/scala.php | 2 +- inc/geshi/scheme.php | 2 +- inc/geshi/scilab.php | 2 +- inc/geshi/sdlbasic.php | 2 +- inc/geshi/smalltalk.php | 18 +- inc/geshi/smarty.php | 2 +- inc/geshi/sql.php | 8 +- inc/geshi/systemverilog.php | 317 ++++++++++++++++ inc/geshi/tcl.php | 2 +- inc/geshi/teraterm.php | 2 +- inc/geshi/text.php | 2 +- inc/geshi/thinbasic.php | 2 +- inc/geshi/tsql.php | 12 +- inc/geshi/typoscript.php | 2 +- inc/geshi/vb.php | 2 +- inc/geshi/vbnet.php | 8 +- inc/geshi/verilog.php | 2 +- inc/geshi/vhdl.php | 2 +- inc/geshi/vim.php | 352 ++++++++++++++--- inc/geshi/visualfoxpro.php | 18 +- inc/geshi/visualprolog.php | 2 +- inc/geshi/whitespace.php | 2 +- inc/geshi/whois.php | 181 +++++++++ inc/geshi/winbatch.php | 8 +- inc/geshi/xml.php | 2 +- inc/geshi/xorg_conf.php | 2 +- inc/geshi/xpp.php | 2 +- inc/geshi/z80.php | 6 +- 158 files changed, 7822 insertions(+), 646 deletions(-) create mode 100644 inc/geshi/4cs.php create mode 100644 inc/geshi/autohotkey.php create mode 100644 inc/geshi/awk.php create mode 100644 inc/geshi/bibtex.php create mode 100644 inc/geshi/clojure.php create mode 100644 inc/geshi/cmake.php create mode 100644 inc/geshi/cuesheet.php create mode 100644 inc/geshi/erlang.php create mode 100644 inc/geshi/fo.php create mode 100644 inc/geshi/fsharp.php create mode 100644 inc/geshi/gambas.php create mode 100644 inc/geshi/gdb.php create mode 100644 inc/geshi/jquery.php create mode 100644 inc/geshi/logtalk.php create mode 100644 inc/geshi/mapbasic.php create mode 100644 inc/geshi/mmix.php create mode 100644 inc/geshi/newlisp.php create mode 100644 inc/geshi/perl6.php create mode 100644 inc/geshi/pike.php create mode 100644 inc/geshi/powerbuilder.php create mode 100644 inc/geshi/properties.php create mode 100644 inc/geshi/purebasic.php create mode 100644 inc/geshi/rsplus.php create mode 100644 inc/geshi/systemverilog.php create mode 100644 inc/geshi/whois.php (limited to 'inc') diff --git a/inc/geshi.php b/inc/geshi.php index abe69a2bd..14acf15a6 100644 --- a/inc/geshi.php +++ b/inc/geshi.php @@ -41,7 +41,7 @@ // /** The version of this GeSHi file */ -define('GESHI_VERSION', '1.0.8.4'); +define('GESHI_VERSION', '1.0.8.6'); // Define the root directory for the GeSHi code tree if (!defined('GESHI_ROOT')) { @@ -207,8 +207,10 @@ define('GESHI_NUMBER_BIN_PREFIX_PERCENT', 32); //%[01]+ define('GESHI_NUMBER_BIN_PREFIX_0B', 64); //0b[01]+ /** Number format to highlight octal numbers with a leading zero */ define('GESHI_NUMBER_OCT_PREFIX', 256); //0[0-7]+ +/** Number format to highlight octal numbers with a prefix 0o (logtalk) */ +define('GESHI_NUMBER_OCT_PREFIX_0O', 512); //0[0-7]+ /** Number format to highlight octal numbers with a suffix of o */ -define('GESHI_NUMBER_OCT_SUFFIX', 512); //[0-7]+[oO] +define('GESHI_NUMBER_OCT_SUFFIX', 1024); //[0-7]+[oO] /** Number format to highlight hex numbers with a prefix 0x */ define('GESHI_NUMBER_HEX_PREFIX', 4096); //0x[0-9a-fA-F]+ /** Number format to highlight hex numbers with a suffix of h */ @@ -1084,13 +1086,14 @@ class GeSHi { * @param string The style to make the escape characters * @param boolean Whether to merge the new styles with the old or just * to overwrite them + * @param int Tells the group of strings for which style should be set. * @since 1.0.0 */ - function set_strings_style($style, $preserve_defaults = false) { + function set_strings_style($style, $preserve_defaults = false, $group = 0) { if (!$preserve_defaults) { - $this->language_data['STYLES']['STRINGS'][0] = $style; + $this->language_data['STYLES']['STRINGS'][$group] = $style; } else { - $this->language_data['STYLES']['STRINGS'][0] .= $style; + $this->language_data['STYLES']['STRINGS'][$group] .= $style; } } @@ -1132,13 +1135,14 @@ class GeSHi { * @param string The style to make the numbers * @param boolean Whether to merge the new styles with the old or just * to overwrite them + * @param int Tells the group of numbers for which style should be set. * @since 1.0.0 */ - function set_numbers_style($style, $preserve_defaults = false) { + function set_numbers_style($style, $preserve_defaults = false, $group = 0) { if (!$preserve_defaults) { - $this->language_data['STYLES']['NUMBERS'][0] = $style; + $this->language_data['STYLES']['NUMBERS'][$group] = $style; } else { - $this->language_data['STYLES']['NUMBERS'][0] .= $style; + $this->language_data['STYLES']['NUMBERS'][$group] .= $style; } } @@ -1370,6 +1374,7 @@ class GeSHi { 'delphi' => array('dpk', 'dpr', 'pp', 'pas'), 'diff' => array('diff', 'patch'), 'dos' => array('bat', 'cmd'), + 'gdb' => array('kcrash', 'crash', 'bt'), 'gettext' => array('po', 'pot'), 'gml' => array('gml'), 'gnuplot' => array('plt'), @@ -1966,31 +1971,33 @@ class GeSHi { //All this formats are matched case-insensitively! static $numbers_format = array( GESHI_NUMBER_INT_BASIC => - '(? - '(? - '(? - '(? - '(? - '(? + '(? - '(? - '(? - '(? - '(? - '(? - '(? - '(?language_data['NUMBERS_RXCACHE'][$key] = - "/(?)($regexp)(?!\|>)(?![^\"\|\>\<]+<)/i"; + "/(?)($regexp)(?!(?:|[^\<])+>)(?![^<]*>)(?!\|>)(?!\/>)/i"; // } } @@ -2033,6 +2040,10 @@ class GeSHi { // Start the timer $start_time = microtime(); + // Replace all newlines to a common form. + $code = str_replace("\r\n", "\n", $this->source); + $code = str_replace("\r", "\n", $code); + // Firstly, if there is an error, we won't highlight if ($this->error) { //Escape the source for output @@ -2053,13 +2064,6 @@ class GeSHi { $this->build_parse_cache(); } - // Replace all newlines to a common form. - $code = str_replace("\r\n", "\n", $this->source); - $code = str_replace("\r", "\n", $code); - - // Add spaces for regular expression matching and line numbers -// $code = "\n" . $code . "\n"; - // Initialise various stuff $length = strlen($code); $COMMENT_MATCHED = false; @@ -3087,7 +3091,7 @@ class GeSHi { $result = preg_replace('/^ /m', ' ', $result); $result = str_replace(' ', '  ', $result); - if ($this->line_numbers == GESHI_NO_LINE_NUMBERS) { + if ($this->line_numbers == GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) { if ($this->line_ending === null) { $result = nl2br($result); } else { @@ -3430,7 +3434,7 @@ class GeSHi { //FIX for symbol highlighting ... if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) { //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp) - $n_symbols = preg_match_all("/<\|(?:|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); + $n_symbols = preg_match_all("/<\|(?:|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+(?![^<]+?>)/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); $global_offset = 0; for ($s_id = 0; $s_id < $n_symbols; ++$s_id) { $symbol_match = $pot_symbols[$s_id][0][0]; @@ -3969,16 +3973,16 @@ class GeSHi { * @todo Document behaviour change - class is outputted regardless of whether * we're using classes or not. Same with style */ - $attributes = ' class="' . $this->language; + $attributes = ' class="' . $this->_genCSSName($this->language); if ($this->overall_class != '') { - $attributes .= " ".$this->overall_class; + $attributes .= " ".$this->_genCSSName($this->overall_class); } $attributes .= '"'; if ($this->overall_id != '') { $attributes .= " id=\"{$this->overall_id}\""; } - if ($this->overall_style != '') { + if ($this->overall_style != '' && !$this->use_classes) { $attributes .= ' style="' . $this->overall_style . '"'; } @@ -4215,6 +4219,10 @@ class GeSHi { return strtr($string, $aTransSpecchar); } + function _genCSSName($name){ + return (is_numeric($name[0]) ? '_' : '') . $name; + } + /** * Returns a stylesheet for the highlighted code. If $economy mode * is true, we only return the stylesheet declarations that matter for @@ -4242,11 +4250,11 @@ class GeSHi { // that should be used, the same for a class. Otherwise, a selector // of '' means that these styles will be applied anywhere if ($this->overall_id) { - $selector = '#' . $this->overall_id; + $selector = '#' . $this->_genCSSName($this->overall_id); } else { - $selector = '.' . $this->language; + $selector = '.' . $this->_genCSSName($this->language); if ($this->overall_class) { - $selector .= '.' . $this->overall_class; + $selector .= '.' . $this->_genCSSName($this->overall_class); } } $selector .= ' '; @@ -4555,7 +4563,10 @@ class GeSHi { // make sure the last tokens get converted as well $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens); if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + substr_count($new_entry, '(?:') > GESHI_MAX_PCRE_SUBPATTERNS) { - $regexp_list[++$list_key] = $new_entry; + if ( !empty($regexp_list[$list_key]) ) { + ++$list_key; + } + $regexp_list[$list_key] = $new_entry; } else { if (!empty($regexp_list[$list_key])) { $new_entry = '|' . $new_entry; diff --git a/inc/geshi/4cs.php b/inc/geshi/4cs.php new file mode 100644 index 000000000..6ce702fbc --- /dev/null +++ b/inc/geshi/4cs.php @@ -0,0 +1,139 @@ + 'GADV 4CS', + 'COMMENT_SINGLE' => array(1 => "//"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'All', 'AllMatches', 'And', 'And_Filters', 'As', 'Asc', 'BasedOn', + 'BestMatch', 'Block', 'Buffer', 'ByRef', 'ByVal', 'Call', 'Channel', + 'Chr', 'Clear', 'Close', 'Confirm', 'Const', 'Continue', 'Cos', + 'Critical', 'Declare', 'Default', 'DefaultChannel', 'DefaultDelayTime', + 'DefaultReceiveMode', 'DefaultResponseTime', '#Define', 'DelayTime', + 'Delete', 'Div', 'Else', '#Else', 'ElseIf', '#ElseIf', 'End', 'EndCritical', + 'EndInlineC', 'EndFunction', 'EndIf', '#EndIf', 'EndInputList', + 'EndLocalChannel', 'EndScenario', 'EndSub', 'EndWhile', 'Error', + 'ErrorLevelOff', 'ErrorLevelOn', 'ErrorLevelSet', 'ErrorLevelSetRaw', + 'Event', 'EventMode', 'EventOff', 'EventOn', 'EventSet', 'EventSetRaw', + 'Execute', 'Exit', 'Exp', 'FileClose', 'FilterClear', 'FileEOF', 'FileOpen', + 'FileRead', 'FileSize', 'FileWrite', 'FilterAdd', 'FilterMode', + 'FilterOff', 'FilterOn', 'For', 'Format', 'Function', 'GoOnline', 'GoTo', + 'Handle', 'Hide', 'If', '#If', '#IfDef', '#IfNDef', 'Ignore', '#Include', + 'InlineC', 'Input', 'InputItem', 'InputList', 'Kill', 'LBound', 'LocalChannel', + 'Local', 'Log', 'Log10', 'LogOff', 'LogOn', 'Loop', 'Message', 'Mod', + 'MonitorChannel', 'MostFormat', 'MostMessage', 'Named', 'Never', 'Next', + 'NoOrder', 'Not', 'Nothing', 'NoWait', 'Numeric', 'OnError', 'OnEvent', + 'Or', 'Or_Filters', 'Order', 'Pass', 'Pow', 'Prototype', 'Quit', 'Raise', + 'Random', 'Receive', 'ReceiveMode', 'ReceiveRaw', 'Redim', 'Remote', 'Repeat', + 'Repeated', 'ResponseTime', 'Resume', 'ResumeCritical', 'RT_Common', + 'RT_Dll_Call', 'RT_FILEIO', 'RT_General', 'RT_HardwareAccess', + 'RT_MessageVariableAccess', 'RT_Scenario', 'RT_VariableAccess', 'Runtime', + 'Scenario', 'ScenarioEnd', 'ScenarioStart', 'ScenarioStatus', 'ScenarioTerminate', + 'Send', 'SendRaw', 'Set', 'SetError', 'Sin', 'Single', 'Show', 'Start', + 'StartCritical', 'Starts', 'Static', 'Step', 'Stop', 'String', 'Sub', + 'System_Error', 'TerminateAllChilds', 'Terminates', 'Then', 'Throw', 'TimeOut', + 'To', 'TooLate', 'Trunc', 'UBound', 'Unexpected', 'Until', 'User_Error', + 'View', 'Wait', 'Warning', 'While', 'XOr' + ), + 2 => array( + 'alias', 'winapi', 'long', 'char', 'double', 'float', 'int', 'short', 'lib' + ) + ), + 'SYMBOLS' => array( + '=', ':=', '<', '>', '<>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000C0; font-weight: bold;', + 2 => 'color: #808080;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000;' + ), + 'BRACKETS' => array( + 0 => 'color: #000080;' + ), + 'STRINGS' => array( + 0 => 'color: #800080;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #66cc66;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000080;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/abap.php b/inc/geshi/abap.php index 229de9891..fa69c92f9 100644 --- a/inc/geshi/abap.php +++ b/inc/geshi/abap.php @@ -7,7 +7,7 @@ * - Sandra Rossi (sandra.rossi@gmail.com) * - Jacob Laursen (jlu@kmd.dk) * Copyright: (c) 2007 Andres Picazo - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/04 * * ABAP language file for GeSHi. diff --git a/inc/geshi/actionscript.php b/inc/geshi/actionscript.php index 016dc8e90..394a463c4 100644 --- a/inc/geshi/actionscript.php +++ b/inc/geshi/actionscript.php @@ -4,7 +4,7 @@ * ---------------- * Author: Steffen Krause (Steffen.krause@muse.de) * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/20 * * Actionscript language file for GeSHi. diff --git a/inc/geshi/actionscript3.php b/inc/geshi/actionscript3.php index a54e9d4df..8449173e8 100644 --- a/inc/geshi/actionscript3.php +++ b/inc/geshi/actionscript3.php @@ -4,7 +4,7 @@ * ---------------- * Author: Jordi Boggiano (j.boggiano@seld.be) * Copyright: (c) 2007 Jordi Boggiano (http://www.seld.be/), Benny Baumann (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/11/26 * * ActionScript3 language file for GeSHi. diff --git a/inc/geshi/ada.php b/inc/geshi/ada.php index 530ed5e4c..4c112f0db 100644 --- a/inc/geshi/ada.php +++ b/inc/geshi/ada.php @@ -4,7 +4,7 @@ * ------- * Author: Tux (tux@inmail.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/07/29 * * Ada language file for GeSHi. @@ -57,14 +57,16 @@ $language_data = array ( 'goto', 'return' ), 2 => array( - 'abs', 'and', 'mod', 'not', 'or', 'rem', 'xor' + 'abs', 'and', 'at', 'mod', 'not', 'or', 'rem', 'xor' ), 3 => array( - 'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array', 'at', 'body', - 'constant', 'delay', 'delta', 'digits', 'entry', 'exit', - 'function', 'generic', 'in', 'limited', 'new', 'null', 'of', 'others', 'out', 'package', 'pragma', - 'private', 'procedure', 'protected', 'raise', 'range', 'record', 'renames', 'requeue', 'reverse', - 'separate', 'subtype', 'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with' + 'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array', + 'body', 'constant', 'delay', 'delta', 'digits', 'entry', 'exit', + 'function', 'generic', 'in', 'interface', 'limited', 'new', 'null', + 'of', 'others', 'out', 'overriding', 'package', 'pragma', 'private', + 'procedure', 'protected', 'raise', 'range', 'record', 'renames', + 'requeue', 'reverse', 'separate', 'subtype', 'synchronized', + 'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with' ) ), 'SYMBOLS' => array( @@ -130,4 +132,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/apache.php b/inc/geshi/apache.php index f319e3e3c..a5b651bb6 100644 --- a/inc/geshi/apache.php +++ b/inc/geshi/apache.php @@ -4,7 +4,7 @@ * ---------- * Author: Tux (tux@inmail.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/29/07 * * Apache language file for GeSHi. diff --git a/inc/geshi/applescript.php b/inc/geshi/applescript.php index 85e3d6d0d..8a07d00b5 100644 --- a/inc/geshi/applescript.php +++ b/inc/geshi/applescript.php @@ -4,7 +4,7 @@ * -------- * Author: Stephan Klimek (http://www.initware.org) * Copyright: Stephan Klimek (http://www.initware.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/07/20 * * AppleScript language file for GeSHi. diff --git a/inc/geshi/apt_sources.php b/inc/geshi/apt_sources.php index 891c10e5e..fe1711fdd 100644 --- a/inc/geshi/apt_sources.php +++ b/inc/geshi/apt_sources.php @@ -4,7 +4,7 @@ * ---------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff (http://milianw.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/06/17 * * Apt sources.list language file for GeSHi. diff --git a/inc/geshi/asm.php b/inc/geshi/asm.php index 2efeac9dc..49699b900 100644 --- a/inc/geshi/asm.php +++ b/inc/geshi/asm.php @@ -4,7 +4,7 @@ * ------- * Author: Tux (tux@inmail.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/07/27 * * x86 Assembler language file for GeSHi. diff --git a/inc/geshi/asp.php b/inc/geshi/asp.php index 7bfec11e1..6e799a802 100644 --- a/inc/geshi/asp.php +++ b/inc/geshi/asp.php @@ -4,7 +4,7 @@ * -------- * Author: Amit Gupta (http://blog.igeek.info/) * Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/13 * * ASP language file for GeSHi. @@ -151,7 +151,7 @@ $language_data = array ( 2 => array( '' ), - 3 => "/(?<%=?)(?:\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(?%>|\Z)/sm" + 3 => "/(?P<%=?)(?:\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(?P%>|\Z)/sm" ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, diff --git a/inc/geshi/autohotkey.php b/inc/geshi/autohotkey.php new file mode 100644 index 000000000..1a6346340 --- /dev/null +++ b/inc/geshi/autohotkey.php @@ -0,0 +1,373 @@ + 'Autohotkey', + 'COMMENT_SINGLE' => array( + 1 => ';' + ), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'while','if','and','or','else','return' + ), + 2 => array( + // built in variables + 'A_AhkPath','A_AhkVersion','A_AppData','A_AppDataCommon', + 'A_AutoTrim','A_BatchLines','A_CaretX','A_CaretY', + 'A_ComputerName','A_ControlDelay','A_Cursor','A_DD', + 'A_DDD','A_DDDD','A_DefaultMouseSpeed','A_Desktop', + 'A_DesktopCommon','A_DetectHiddenText','A_DetectHiddenWindows','A_EndChar', + 'A_EventInfo','A_ExitReason','A_FormatFloat','A_FormatInteger', + 'A_Gui','A_GuiEvent','A_GuiControl','A_GuiControlEvent', + 'A_GuiHeight','A_GuiWidth','A_GuiX','A_GuiY', + 'A_Hour','A_IconFile','A_IconHidden','A_IconNumber', + 'A_IconTip','A_Index','A_IPAddress1','A_IPAddress2', + 'A_IPAddress3','A_IPAddress4','A_ISAdmin','A_IsCompiled', + 'A_IsCritical','A_IsPaused','A_IsSuspended','A_KeyDelay', + 'A_Language','A_LastError','A_LineFile','A_LineNumber', + 'A_LoopField','A_LoopFileAttrib','A_LoopFileDir','A_LoopFileExt', + 'A_LoopFileFullPath','A_LoopFileLongPath','A_LoopFileName','A_LoopFileShortName', + 'A_LoopFileShortPath','A_LoopFileSize','A_LoopFileSizeKB','A_LoopFileSizeMB', + 'A_LoopFileTimeAccessed','A_LoopFileTimeCreated','A_LoopFileTimeModified','A_LoopReadLine', + 'A_LoopRegKey','A_LoopRegName','A_LoopRegSubkey','A_LoopRegTimeModified', + 'A_LoopRegType','A_MDAY','A_Min','A_MM', + 'A_MMM','A_MMMM','A_Mon','A_MouseDelay', + 'A_MSec','A_MyDocuments','A_Now','A_NowUTC', + 'A_NumBatchLines','A_OSType','A_OSVersion','A_PriorHotkey', + 'A_ProgramFiles','A_Programs','A_ProgramsCommon','A_ScreenHeight', + 'A_ScreenWidth','A_ScriptDir','A_ScriptFullPath','A_ScriptName', + 'A_Sec','A_Space','A_StartMenu','A_StartMenuCommon', + 'A_Startup','A_StartupCommon','A_StringCaseSense','A_Tab', + 'A_Temp','A_ThisFunc','A_ThisHotkey','A_ThisLabel', + 'A_ThisMenu','A_ThisMenuItem','A_ThisMenuItemPos','A_TickCount', + 'A_TimeIdle','A_TimeIdlePhysical','A_TimeSincePriorHotkey','A_TimeSinceThisHotkey', + 'A_TitleMatchMode','A_TitleMatchModeSpeed','A_UserName','A_WDay', + 'A_WinDelay','A_WinDir','A_WorkingDir','A_YDay', + 'A_YEAR','A_YWeek','A_YYYY','Clipboard', + 'ClipboardAll','ComSpec','ErrorLevel','ProgramFiles', + ), + 3 => array( + 'AutoTrim', + 'BlockInput','Break','Click', + 'ClipWait','Continue','Control', + 'ControlClick','ControlFocus','ControlGet', + 'ControlGetFocus','ControlGetPos','ControlGetText', + 'ControlMove','ControlSend','ControlSendRaw', + 'ControlSetText','CoordMode','Critical', + 'DetectHiddenText','DetectHiddenWindows','DllCall','Drive', + 'DriveGet','DriveSpaceFree', + 'Else','EnvAdd','EnvDiv', + 'EnvGet','EnvMult','EnvSet', + 'EnvSub','EnvUpdate','Exit', + 'ExitApp','FileAppend','FileCopy', + 'FileCopyDir','FileCreateDir','FileCreateShortcut', + 'FileDelete','FileGetAttrib','FileGetShortcut', + 'FileGetSize','FileGetTime','FileGetVersion', + 'FileInstall','FileMove','FileMoveDir', + 'FileRead','FileReadLine','FileRecycle', + 'FileRecycleEmpty','FileRemoveDir','FileSelectFile', + 'FileSelectFolder','FileSetAttrib','FileSetTime', + 'FormatTime','Gosub', + 'Goto','GroupActivate','GroupAdd', + 'GroupClose','GroupDeactivate','Gui', + 'GuiControl','GuiControlGet','Hotkey', + 'IfExist','IfGreater','IfGreaterOrEqual', + 'IfInString','IfLess','IfLessOrEqual', + 'IfMsgBox','IfNotEqual','IfNotExist', + 'IfNotInString','IfWinActive','IfWinExist', + 'IfWinNotActive','IfWinNotExist','ImageSearch', + 'IniDelete','IniRead','IniWrite', + 'Input','InputBox','KeyHistory', + 'KeyWait','ListHotkeys','ListLines', + 'ListVars','Loop', + 'Menu','MouseClick','MouseClickDrag', + 'MouseGetPos','MouseMove','MsgBox', + 'OnMessage','OnExit','OutputDebug', + 'PixelGetColor','PixelSearch','PostMessage', + 'Process','Progress','Random', + 'RegExMatch','RegExReplace','RegisterCallback', + 'RegDelete','RegRead','RegWrite', + 'Reload','Repeat','Return', + 'Run','RunAs','RunWait', + 'Send','SendEvent','SendInput', + 'SendMessage','SendMode','SendPlay', + 'SendRaw','SetBatchLines','SetCapslockState', + 'SetControlDelay','SetDefaultMouseSpeed','SetEnv', + 'SetFormat','SetKeyDelay','SetMouseDelay', + 'SetNumlockState','SetScrollLockState','SetStoreCapslockMode', + 'SetTimer','SetTitleMatchMode','SetWinDelay', + 'SetWorkingDir','Shutdown','Sleep', + 'Sort','SoundBeep','SoundGet', + 'SoundGetWaveVolume','SoundPlay','SoundSet', + 'SoundSetWaveVolume','SplashImage','SplashTextOff', + 'SplashTextOn','SplitPath','StatusBarGetText', + 'StatusBarWait','StringCaseSense','StringGetPos', + 'StringLeft','StringLen','StringLower', + 'StringMid','StringReplace','StringRight', + 'StringSplit','StringTrimLeft','StringTrimRight', + 'StringUpper','Suspend','SysGet', + 'Thread','ToolTip','Transform', + 'TrayTip','URLDownloadToFile','While', + 'VarSetCapacity', + 'WinActivate','WinActivateBottom','WinClose', + 'WinGet','WinGetActiveStats','WinGetActiveTitle', + 'WinGetClass','WinGetPos','WinGetText', + 'WinGetTitle','WinHide','WinKill', + 'WinMaximize','WinMenuSelectItem','WinMinimize', + 'WinMinimizeAll','WinMinimizeAllUndo','WinMove', + 'WinRestore','WinSet','WinSetTitle', + 'WinShow','WinWait','WinWaitActive', + 'WinWaitClose','WinWaitNotActive' + ), + 4 => array( + 'Abs','ACos','Asc','ASin', + 'ATan','Ceil','Chr','Cos', + 'Exp','FileExist','Floor', + 'GetKeyState','IL_Add','IL_Create','IL_Destroy', + 'InStr','IsFunc','IsLabel','Ln', + 'Log','LV_Add','LV_Delete','LV_DeleteCol', + 'LV_GetCount','LV_GetNext','LV_GetText','LV_Insert', + 'LV_InsertCol','LV_Modify','LV_ModifyCol','LV_SetImageList', + 'Mod','NumGet','NumPut', + 'Round', + 'SB_SetIcon','SB_SetParts','SB_SetText','Sin', + 'Sqrt','StrLen','SubStr','Tan', + 'TV_Add','TV_Delete','TV_GetChild','TV_GetCount', + 'TV_GetNext','TV_Get','TV_GetParent','TV_GetPrev', + 'TV_GetSelection','TV_GetText','TV_Modify', + 'WinActive','WinExist' + ), + 5 => array( + // #Directives + 'AllowSameLineComments','ClipboardTimeout','CommentFlag', + 'ErrorStdOut','EscapeChar','HotkeyInterval', + 'HotkeyModifierTimeout','Hotstring','IfWinActive', + 'IfWinExist','IfWinNotActive','IfWinNotExist', + 'Include','IncludeAgain','InstallKeybdHook', + 'InstallMouseHook','KeyHistory','LTrim', + 'MaxHotkeysPerInterval','MaxMem','MaxThreads', + 'MaxThreadsBuffer','MaxThreadsPerHotkey','NoEnv', + 'NoTrayIcon','Persistent','SingleInstance', + 'UseHook','WinActivateForce' + ), + 6 => array( + 'Shift','LShift','RShift', + 'Alt','LAlt','RAlt', + 'LControl','RControl', + 'Ctrl','LCtrl','RCtrl', + 'LWin','RWin','AppsKey', + 'AltDown','AltUp','ShiftDown', + 'ShiftUp','CtrlDown','CtrlUp', + 'LWinDown','LWinUp','RWinDown', + 'RWinUp','LButton','RButton', + 'MButton','WheelUp','WheelDown', + 'WheelLeft','WheelRight','XButton1', + 'XButton2','Joy1','Joy2', + 'Joy3','Joy4','Joy5', + 'Joy6','Joy7','Joy8', + 'Joy9','Joy10','Joy11', + 'Joy12','Joy13','Joy14', + 'Joy15','Joy16','Joy17', + 'Joy18','Joy19','Joy20', + 'Joy21','Joy22','Joy23', + 'Joy24','Joy25','Joy26', + 'Joy27','Joy28','Joy29', + 'Joy30','Joy31','Joy32', + 'JoyX','JoyY','JoyZ', + 'JoyR','JoyU','JoyV', + 'JoyPOV','JoyName','JoyButtons', + 'JoyAxes','JoyInfo','Space', + 'Tab','Enter', + 'Escape','Esc','BackSpace', + 'BS','Delete','Del', + 'Insert','Ins','PGUP', + 'PGDN','Home','End', + 'Up','Down','Left', + 'Right','PrintScreen','CtrlBreak', + 'Pause','ScrollLock','CapsLock', + 'NumLock','Numpad0','Numpad1', + 'Numpad2','Numpad3','Numpad4', + 'Numpad5','Numpad6','Numpad7', + 'Numpad8','Numpad9','NumpadMult', + 'NumpadAdd','NumpadSub','NumpadDiv', + 'NumpadDot','NumpadDel','NumpadIns', + 'NumpadClear','NumpadUp','NumpadDown', + 'NumpadLeft','NumpadRight','NumpadHome', + 'NumpadEnd','NumpadPgup','NumpadPgdn', + 'NumpadEnter','F1','F2', + 'F3','F4','F5', + 'F6','F7','F8', + 'F9','F10','F11', + 'F12','F13','F14', + 'F15','F16','F17', + 'F18','F19','F20', + 'F21','F22','F23', + 'F24','Browser_Back','Browser_Forward', + 'Browser_Refresh','Browser_Stop','Browser_Search', + 'Browser_Favorites','Browser_Home','Volume_Mute', + 'Volume_Down','Volume_Up','Media_Next', + 'Media_Prev','Media_Stop','Media_Play_Pause', + 'Launch_Mail','Launch_Media','Launch_App1', + 'Launch_App2' + ), + 7 => array( + // Gui commands + 'Add', + 'Show', 'Submit', 'Cancel', 'Destroy', + 'Font', 'Color', 'Margin', 'Flash', 'Default', + 'GuiEscape','GuiClose','GuiSize','GuiContextMenu','GuiDropFilesTabStop', + ), + 8 => array( + // Gui Controls + 'Button', + 'Checkbox','Radio','DropDownList','DDL', + 'ComboBox','ListBox','ListView', + 'Text', 'Edit', 'UpDown', 'Picture', + 'TreeView','DateTime', 'MonthCal', + 'Slider' + ) + ), + 'SYMBOLS' => array( + '(',')','[',']', + '+','-','*','/','&','^', + '=','+=','-=','*=','/=','&=', + '==','<','<=','>','>=',':=', + ',','.' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #AAAAFF; font-weight: bold;', // reserved #blue + 2 => 'color: #88FF88;', // BIV yellow + 3 => 'color: #FF00FF; font-style: italic;', // commands purple + 4 => 'color: #888844; font-weight: bold;', // functions #0080FF + 5 => 'color: #000000; font-style: italic;', // directives #black + 6 => 'color: #FF0000; font-style: italic;', // hotkeys #red + 7 => 'color: #000000; font-style: italic;', // gui commands #black + 8 => 'color: #000000; font-style: italic;' // gui controls + ), + 'COMMENTS' => array( + 'MULTI' => 'font-style: italic; color: #669900;', + 1 => 'font-style: italic; color: #009933;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #00FF00; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'font-weight: bold; color: #008080;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF; font-style: italic; font-weight: italic;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000000; font-weight: italic;' + ), + 'REGEXPS' => array( + 0 => 'font-weight: italic; color: #A00A0;', + 1 => 'color: #CC0000; font-style: italic;', + 2 => 'color: #DD0000; font-style: italic;', + 3 => 'color: #88FF88;' + ), + 'SCRIPT' => array( + ) + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '_' + ), + 'REGEXPS' => array( + //Variables + 0 => '%[a-zA-Z_][a-zA-Z0-9_]*%', + //hotstrings + 1 => '::[\w\d]+::', + //labels + 2 => '\w[\w\d]+:\s', + //Built-in Variables + 3 => '\bA_\w+\b(?![^<]*>)' + ), + 'URLS' => array( + 1 => '', + 2 => 'http://www.autohotkey.com/docs/Variables.htm#{FNAME}', + 3 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm', + 4 => 'http://www.autohotkey.com/docs/Functions.htm#BuiltIn', + 5 => 'http://www.autohotkey.com/docs/commands/_{FNAME}.htm', + 6 => '', + 7 => 'http://www.autohotkey.com/docs/commands/Gui.htm#{FNAME}', + 8 => 'http://www.autohotkey.com/docs/commands/GuiControls.htm#{FNAME}' + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true, + 2 => true, + 3 => true + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 5 => array( + 'DISALLOWED_BEFORE' => '(? \ No newline at end of file diff --git a/inc/geshi/autoit.php b/inc/geshi/autoit.php index 526fe5d99..e3185d063 100644 --- a/inc/geshi/autoit.php +++ b/inc/geshi/autoit.php @@ -4,7 +4,7 @@ * -------- * Author: big_daddy (robert.i.anthony@gmail.com) * Copyright: (c) 2006 and to GESHi ;) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/01/26 * * AutoIT language file for GeSHi. diff --git a/inc/geshi/avisynth.php b/inc/geshi/avisynth.php index c0526e956..9031e8caa 100644 --- a/inc/geshi/avisynth.php +++ b/inc/geshi/avisynth.php @@ -4,7 +4,7 @@ * -------- * Author: Ryan Jones (sciguyryan@gmail.com) * Copyright: (c) 2008 Ryan Jones - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/10/08 * * AviSynth language file for GeSHi. diff --git a/inc/geshi/awk.php b/inc/geshi/awk.php new file mode 100644 index 000000000..abecf72b5 --- /dev/null +++ b/inc/geshi/awk.php @@ -0,0 +1,158 @@ + 'awk', + 'COMMENT_SINGLE' => array( + 1 => '#' + ), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array ( + 1 => array( + 'for', 'in', 'if', 'else', 'while', 'do', 'continue', 'break' + ), + 2 => array( + 'BEGIN', 'END' + ), + 3 => array( + 'ARGC', 'ARGV', 'CONVFMT', 'ENVIRON', + 'FILENAME', 'FNR', 'FS', 'NF', 'NR', 'OFMT', + 'OFS','ORS','RLENGTH','RS','RSTART','SUBSEP' + ), + 4 => array( + 'gsub','index','length','match','split', + 'sprintf','sub','substr','tolower','toupper', + 'atan2','cos','exp','int','log','rand', + 'sin','sqrt','srand' + ), + 5 => array( + 'print','printf','getline','close','fflush','system' + ), + 6 => array( + 'function', 'return' + ) + ), + 'SYMBOLS' => array ( + 0 => array( + '(',')','[',']','{','}' + ), + 1 => array( + '!','||','&&' + ), + 2 => array( + '<','>','<=','>=','==','!=' + ), + 3 => array( + '+','-','*','/','%','^','++','--' + ), + 4 => array( + '~','!~' + ), + 5 => array( + '?',':' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #C20CB9; font-weight: bold;', + 3 => 'color: #4107D5; font-weight: bold;', + 4 => 'color: #07D589; font-weight: bold;', + 5 => 'color: #0BD507; font-weight: bold;', + 6 => 'color: #078CD5; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color:#808080;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'SYMBOLS' => array( + 0 => 'color:black;', + 1 => 'color:black;', + 2 => 'color:black;', + 3 => 'color:black;', + 4 => 'color:#C4C364;', + 5 => 'color:black;font-weight:bold;'), + 'SCRIPT' => array(), + 'REGEXPS' => array( + 0 => 'color:#000088;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #000000;' + ), + 'BRACKETS' => array( + 0 => 'color: #7a0874; font-weight: bold;' + ), + 'METHODS' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array (), + 'REGEXPS' => array( + 0 => "\\$[a-zA-Z0-9_]+" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array (), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +?> diff --git a/inc/geshi/bash.php b/inc/geshi/bash.php index bb0a571ba..0b1583b7b 100644 --- a/inc/geshi/bash.php +++ b/inc/geshi/bash.php @@ -4,7 +4,7 @@ * -------- * Author: Andreas Gohr (andi@splitbrain.org) * Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/20 * * BASH language file for GeSHi. @@ -119,9 +119,51 @@ $language_data = array ( 'gimptool', 'gmake', 'gocr', 'grep', 'groups', 'gs', 'gunzip', 'gzexe', 'gzip', + 'git', 'gitaction', 'git-add', 'git-add--interactive', 'git-am', + 'git-annotate', 'git-apply', 'git-archive', 'git-bisect', + 'git-bisect--helper', 'git-blame', 'git-branch', 'git-bundle', + 'git-cat-file', 'git-check-attr', 'git-checkout', + 'git-checkout-index', 'git-check-ref-format', 'git-cherry', + 'git-cherry-pick', 'git-clean', 'git-clone', 'git-commit', + 'git-commit-tree', 'git-config', 'git-count-objects', 'git-daemon', + 'git-describe', 'git-diff', 'git-diff-files', 'git-diff-index', + 'git-difftool', 'git-difftool--helper', 'git-diff-tree', + 'gitdpkgname', 'git-fast-export', 'git-fast-import', 'git-fetch', + 'git-fetch-pack', 'git-fetch--tool', 'git-filter-branch', 'gitfm', + 'git-fmt-merge-msg', 'git-for-each-ref', 'git-format-patch', + 'git-fsck', 'git-fsck-objects', 'git-gc', 'git-get-tar-commit-id', + 'git-grep', 'git-hash-object', 'git-help', 'git-http-fetch', + 'git-http-push', 'git-imap-send', 'git-index-pack', 'git-init', + 'git-init-db', 'git-instaweb', 'gitkeys', 'git-log', + 'git-lost-found', 'git-ls-files', 'git-ls-remote', 'git-ls-tree', + 'git-mailinfo', 'git-mailsplit', 'git-merge', 'git-merge-base', + 'git-merge-file', 'git-merge-index', 'git-merge-octopus', + 'git-merge-one-file', 'git-merge-ours', 'git-merge-recursive', + 'git-merge-resolve', 'git-merge-subtree', 'git-mergetool', + 'git-mergetool--lib', 'git-merge-tree', 'gitmkdirs', 'git-mktag', + 'git-mktree', 'gitmount', 'git-mv', 'git-name-rev', + 'git-pack-objects', 'git-pack-redundant', 'git-pack-refs', + 'git-parse-remote', 'git-patch-id', 'git-peek-remote', 'git-prune', + 'git-prune-packed', 'gitps', 'git-pull', 'git-push', + 'git-quiltimport', 'git-read-tree', 'git-rebase', + 'git-rebase--interactive', 'git-receive-pack', 'git-reflog', + 'gitregrep', 'git-relink', 'git-remote', 'git-repack', + 'git-repo-config', 'git-request-pull', 'git-rerere', 'git-reset', + 'git-revert', 'git-rev-list', 'git-rev-parse', 'gitrfgrep', + 'gitrgrep', 'git-rm', 'git-send-pack', 'git-shell', 'git-shortlog', + 'git-show', 'git-show-branch', 'git-show-index', 'git-show-ref', + 'git-sh-setup', 'git-stage', 'git-stash', 'git-status', + 'git-stripspace', 'git-submodule', 'git-svn', 'git-symbolic-ref', + 'git-tag', 'git-tar-tree', 'gitunpack', 'git-unpack-file', + 'git-unpack-objects', 'git-update-index', 'git-update-ref', + 'git-update-server-info', 'git-upload-archive', 'git-upload-pack', + 'git-var', 'git-verify-pack', 'git-verify-tag', 'gitview', + 'git-web--browse', 'git-whatchanged', 'gitwhich', 'gitwipe', + 'git-write-tree', 'gitxgrep', + 'head', 'hexdump', 'hostname', - 'id', 'ifconfig', 'igawk', 'install', + 'id', 'ifconfig', 'ifdown', 'ifup', 'igawk', 'install', 'join', @@ -258,7 +300,7 @@ $language_data = array ( //Variable assignment 2 => "(? "\\$[*#\$\\-\\?!]", + 4 => "\\$[*#\$\\-\\?!\d]", //Parameters of commands 5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|$)" ), @@ -274,7 +316,7 @@ $language_data = array ( ), 'KEYWORDS' => array( 'DISALLOWED_BEFORE' => "(? "(?![\.\-a-zA-Z0-9_%\\/])" + 'DISALLOWED_AFTER' => "(?![\.\-a-zA-Z0-9_%=\\/])" ) ) ); diff --git a/inc/geshi/basic4gl.php b/inc/geshi/basic4gl.php index 5e3330930..55be6dc34 100644 --- a/inc/geshi/basic4gl.php +++ b/inc/geshi/basic4gl.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Matthew Webb (bmatthew1@blueyonder.co.uk) * Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/09/15 * * Basic4GL language file for GeSHi. diff --git a/inc/geshi/bf.php b/inc/geshi/bf.php index c4be922e0..c69155e88 100644 --- a/inc/geshi/bf.php +++ b/inc/geshi/bf.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/10/31 * * Brainfuck language file for GeSHi. diff --git a/inc/geshi/bibtex.php b/inc/geshi/bibtex.php new file mode 100644 index 000000000..82c13b8bc --- /dev/null +++ b/inc/geshi/bibtex.php @@ -0,0 +1,183 @@ + 'BibTeX', + 'OOLANG' => false, + 'COMMENT_SINGLE' => array( + 1 => '%%' + ), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 0 => array( + '@comment','@preamble','@string' + ), + // Standard entry types + 1 => array( + '@article','@book','@booklet','@conference','@inbook', + '@incollection','@inproceedings','@manual','@mastersthesis', + '@misc','@phdthesis','@proceedings','@techreport','@unpublished' + ), + // Custom entry types + 2 => array( + '@collection','@patent','@webpage' + ), + // Standard entry field names + 3 => array( + 'address','annote','author','booktitle','chapter','crossref', + 'edition','editor','howpublished','institution','journal','key', + 'month','note','number','organization','pages','publisher','school', + 'series','title','type','volume','year' + ), + // Custom entry field names + 4 => array( + 'abstract','affiliation','chaptername','cited-by','cites', + 'contents','copyright','date-added','date-modified','doi','eprint', + 'isbn','issn','keywords','language','lccn','lib-congress', + 'location','price','rating','read','size','source','url' + ) + ), + 'URLS' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'SYMBOLS' => array( + '{', '}', '#', '=', ',' + ), + 'CASE_SENSITIVE' => array( + 1 => false, + 2 => false, + 3 => false, + 4 => false, + GESHI_COMMENTS => false, + ), + // Define the colors for the groups listed above + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #C02020;', // Standard entry types + 2 => 'color: #C02020;', // Custom entry types + 3 => 'color: #C08020;', // Standard entry field names + 4 => 'color: #C08020;' // Custom entry field names + ), + 'COMMENTS' => array( + 1 => 'color: #2C922C; font-style: italic;' + ), + 'STRINGS' => array( + 0 => 'color: #2020C0;' + ), + 'SYMBOLS' => array( + 0 => 'color: #E02020;' + ), + 'REGEXPS' => array( + 1 => 'color: #2020C0;', // {...} + 2 => 'color: #C08020;', // BibDesk fields + 3 => 'color: #800000;' // LaTeX commands + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000000; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #E02020;' + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'REGEXPS' => array( + // {parameters} + 1 => array( + GESHI_SEARCH => "(?<=\\{)(?:\\{(?R)\\}|[^\\{\\}])*(?=\\})", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => 's', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( + GESHI_SEARCH => "\bBdsk-(File|Url)-\d+", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => 'Us', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 3 => array( + GESHI_SEARCH => "\\\\[A-Za-z0-9]*+", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => 'Us', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'OBJECT_SPLITTERS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'NUMBERS' => GESHI_NEVER + ), + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_AFTER' => '(?=\s*=)' + ), + 4 => array( + 'DISALLOWED_AFTER' => '(?=\s*=)' + ), + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/blitzbasic.php b/inc/geshi/blitzbasic.php index 3ad5eabf0..c3871a21e 100644 --- a/inc/geshi/blitzbasic.php +++ b/inc/geshi/blitzbasic.php @@ -4,7 +4,7 @@ * -------------- * Author: P�draig O`Connel (info@moonsword.info) * Copyright: (c) 2005 P�draig O`Connel (http://moonsword.info) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 16.10.2005 * * BlitzBasic language file for GeSHi. diff --git a/inc/geshi/bnf.php b/inc/geshi/bnf.php index 0032acf48..db5cdb59d 100644 --- a/inc/geshi/bnf.php +++ b/inc/geshi/bnf.php @@ -4,7 +4,7 @@ * -------- * Author: Rowan Rodrik van der Molen (rowan@bigsmoke.us) * Copyright: (c) 2006 Rowan Rodrik van der Molen (http://www.bigsmoke.us/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/09/28 * * BNF (Backus-Naur form) language file for GeSHi. diff --git a/inc/geshi/boo.php b/inc/geshi/boo.php index d555dd4a2..df843797d 100644 --- a/inc/geshi/boo.php +++ b/inc/geshi/boo.php @@ -4,7 +4,7 @@ * -------- * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com) * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/09/10 * * Boo language file for GeSHi. diff --git a/inc/geshi/c.php b/inc/geshi/c.php index 86f576ef6..bb6be43e1 100644 --- a/inc/geshi/c.php +++ b/inc/geshi/c.php @@ -7,7 +7,7 @@ * - Jack Lloyd (lloyd@randombit.net) * - Michael Mol (mikemol@gmail.com) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/04 * * C language file for GeSHi. diff --git a/inc/geshi/c_mac.php b/inc/geshi/c_mac.php index 46a3600fe..6ead4ae15 100644 --- a/inc/geshi/c_mac.php +++ b/inc/geshi/c_mac.php @@ -4,7 +4,7 @@ * --------- * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net) * Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/04 * * C for Macs language file for GeSHi. diff --git a/inc/geshi/caddcl.php b/inc/geshi/caddcl.php index 12e1d3b75..27474627e 100644 --- a/inc/geshi/caddcl.php +++ b/inc/geshi/caddcl.php @@ -4,7 +4,7 @@ * ---------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/30 * * CAD DCL (Dialog Control Language) language file for GeSHi. diff --git a/inc/geshi/cadlisp.php b/inc/geshi/cadlisp.php index c537370d5..5061c79e4 100644 --- a/inc/geshi/cadlisp.php +++ b/inc/geshi/cadlisp.php @@ -4,7 +4,7 @@ * ----------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/blog) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/30 * * AutoCAD/IntelliCAD Lisp language file for GeSHi. diff --git a/inc/geshi/cfdg.php b/inc/geshi/cfdg.php index 5091ffa4c..8d03b89df 100644 --- a/inc/geshi/cfdg.php +++ b/inc/geshi/cfdg.php @@ -4,7 +4,7 @@ * -------- * Author: John Horigan * Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/ - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/03/11 * * CFDG language file for GeSHi. diff --git a/inc/geshi/cfm.php b/inc/geshi/cfm.php index ac81695ab..cdb7bf32c 100644 --- a/inc/geshi/cfm.php +++ b/inc/geshi/cfm.php @@ -4,7 +4,7 @@ * ------- * Author: Diego * Copyright: (c) 2006 Diego - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/02/25 * * ColdFusion language file for GeSHi. diff --git a/inc/geshi/cil.php b/inc/geshi/cil.php index 994f86316..4ca93ecb0 100644 --- a/inc/geshi/cil.php +++ b/inc/geshi/cil.php @@ -4,7 +4,7 @@ * -------- * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com) * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/10/24 * * CIL (Common Intermediate Language) language file for GeSHi. diff --git a/inc/geshi/clojure.php b/inc/geshi/clojure.php new file mode 100644 index 000000000..b970deea8 --- /dev/null +++ b/inc/geshi/clojure.php @@ -0,0 +1,134 @@ + 'Clojure', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(';|' => '|;'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'defn', 'defn-', 'defmulti', 'defmethod', 'defmacro', 'deftest', + 'defstruct', 'def', 'defonce', 'let', 'letfn', 'do', 'cond', 'condp', + 'for', 'loop', 'recur', 'when', 'when-not', 'when-let', 'when-first', + 'if', 'if-let', 'if-not', 'doto', 'and', 'or', + 'dosync', 'doseq', 'dotimes', 'dorun', 'doall', + 'load', 'import', 'unimport', 'ns', 'in-ns', 'refer', + 'try', 'catch', 'finally', 'throw', + 'with-open', 'with-local-vars', 'binding', + 'gen-class', 'gen-and-load-class', 'gen-and-save-class', + 'implement', 'proxy', 'lazy-cons', 'with-meta', + 'struct', 'struct-map', 'delay', 'locking', 'sync', 'time', 'apply', + 'remove', 'merge', 'interleave', 'interpose', 'distinct', + 'cons', 'concat', 'lazy-cat', 'cycle', 'rest', 'frest', 'drop', + 'drop-while', 'nthrest', 'take', 'take-while', 'take-nth', 'butlast', + 'reverse', 'sort', 'sort-by', 'split-at', 'partition', 'split-with', + 'first', 'ffirst', 'rfirst', 'zipmap', 'into', 'set', 'vec', + 'to-array-2d', 'not-empty', 'seq?', 'not-every?', 'every?', 'not-any?', + 'map', 'mapcat', 'vector?', 'list?', 'hash-map', 'reduce', 'filter', + 'vals', 'keys', 'rseq', 'subseq', 'rsubseq', 'count', 'empty?', + 'fnseq', 'repeatedly', 'iterate', 'drop-last', + 'repeat', 'replicate', 'range', 'into-array', + 'line-seq', 'resultset-seq', 're-seq', 're-find', 'tree-seq', 'file-seq', + 'iterator-seq', 'enumeration-seq', 'declare', 'xml-seq', + 'symbol?', 'string?', 'vector', 'conj', 'str', + 'pos?', 'neg?', 'zero?', 'nil?', 'inc', 'format', + 'alter', 'commute', 'ref-set', 'floor', 'assoc', 'send', 'send-off' + ) + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|', '.', '..', '->', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 0 => 'color: #555;', + 1 => 'color: #555;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + '::', ':' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/cmake.php b/inc/geshi/cmake.php new file mode 100644 index 000000000..a9cfaafdc --- /dev/null +++ b/inc/geshi/cmake.php @@ -0,0 +1,181 @@ + () + * - First Release + * + * TODO (updated ) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'CMake', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'ESCAPE_REGEXP' => array( + // Quoted variables ${...} + 1 => "/\\$(ENV)?\\{[^\\n\\}]*?\\}/i", + // Quoted registry keys [...] + 2 => "/\\[HKEY[^\n\\]]*?]/i" + ), + 'KEYWORDS' => array( + 1 => array( + 'add_custom_command', 'add_custom_target', 'add_definitions', + 'add_dependencies', 'add_executable', 'add_library', + 'add_subdirectory', 'add_test', 'aux_source_directory', 'break', + 'build_command', 'cmake_minimum_required', 'cmake_policy', + 'configure_file', 'create_test_sourcelist', 'define_property', + 'else', 'elseif', 'enable_language', 'enable_testing', + 'endforeach', 'endfunction', 'endif', 'endmacro', + 'endwhile', 'execute_process', 'export', 'file', 'find_file', + 'find_library', 'find_package', 'find_path', 'find_program', + 'fltk_wrap_ui', 'foreach', 'function', 'get_cmake_property', + 'get_directory_property', 'get_filename_component', 'get_property', + 'get_source_file_property', 'get_target_property', + 'get_test_property', 'if', 'include', 'include_directories', + 'include_external_msproject', 'include_regular_expression', + 'install', 'link_directories', 'list', 'load_cache', + 'load_command', 'macro', 'mark_as_advanced', 'math', 'message', + 'option', 'output_required_files', 'project', 'qt_wrap_cpp', + 'qt_wrap_ui', 'remove_definitions', 'return', 'separate_arguments', + 'set', 'set_directory_properties', 'set_property', + 'set_source_files_properties', 'set_target_properties', + 'set_tests_properties', 'site_name', 'source_group', 'string', + 'target_link_libraries', 'try_compile', 'try_run', 'unset', + 'variable_watch', 'while' + ), + 2 => array( + // Deprecated commands + 'build_name', 'exec_program', 'export_library_dependencies', + 'install_files', 'install_programs', 'install_targets', + 'link_libraries', 'make_directory', 'remove', 'subdir_depends', + 'subdirs', 'use_mangled_mesa', 'utility_source', + 'variable_requires', 'write_file' + ), + 3 => array( + // Special command arguments, this list is not comprehesive. + 'AND', 'APPEND', 'ASCII', 'BOOL', 'CACHE', 'COMMAND', 'COMMENT', + 'COMPARE', 'CONFIGURE', 'DEFINED', 'DEPENDS', 'DIRECTORY', + 'EQUAL', 'EXCLUDE_FROM_ALL', 'EXISTS', 'FALSE', 'FATAL_ERROR', + 'FILEPATH', 'FIND', 'FORCE', 'GET', 'GLOBAL', 'GREATER', + 'IMPLICIT_DEPENDS', 'INSERT', 'INTERNAL', 'IS_ABSOLUTE', + 'IS_DIRECTORY', 'IS_NEWER_THAN', 'LENGTH', 'LESS', + 'MAIN_DEPENDENCY', 'MATCH', 'MATCHALL', 'MATCHES', 'MODULE', 'NOT', + 'NOTFOUND', 'OFF', 'ON', 'OR', 'OUTPUT', 'PARENT_SCOPE', 'PATH', + 'POLICY', 'POST_BUILD', 'PRE_BUILD', 'PRE_LINK', 'PROPERTY', + 'RANDOM', 'REGEX', 'REMOVE_AT', 'REMOVE_DUPLICATES', 'REMOVE_ITEM', + 'REPLACE', 'REVERSE', 'SEND_ERROR', 'SHARED', 'SORT', 'SOURCE', + 'STATIC', 'STATUS', 'STREQUAL', 'STRGREATER', 'STRING', 'STRIP', + 'STRLESS', 'SUBSTRING', 'TARGET', 'TEST', 'TOLOWER', 'TOUPPER', + 'TRUE', 'VERBATIM', 'VERSION', 'VERSION_EQUAL', 'VERSION_GREATOR', + 'VERSION_LESS', 'WORKING_DIRECTORY', + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => true + ), + 'SYMBOLS' => array( + 0 => array('(', ')') + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #1f3f81; font-style: bold;', + 2 => 'color: #1f3f81;', + 3 => 'color: #077807; font-sytle: italic;' + ), + 'BRACKETS' => array(), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #b08000;', + 2 => 'color: #0000cd;' + ), + 'STRINGS' => array( + 0 => 'color: #912f11;', + ), + 'SYMBOLS' => array( + 0 => 'color: #197d8b;' + ), + 'NUMBERS' => array(), + 'METHODS' => array(), + 'REGEXPS' => array( + 0 => 'color: #b08000;', + 1 => 'color: #0000cd;' + ), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}', + 2 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}', + 3 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + // Unquoted variables + 0 => "\\$(ENV)?\\{[^\\n}]*?\\}", + // Unquoted registry keys + 1 => "\\[HKEY[^\n\\]]*?]" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + // These keywords cannot come after a open paren + 1 => array( + 'DISALLOWED_AFTER' => '(?= *\()' + ), + 2 => array( + 'DISALLOWED_AFTER' => '(?= *\()' + ) + ), + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + 'METHODS' => GESHI_NEVER, + 'NUMBERS' => GESHI_NEVER + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/cobol.php b/inc/geshi/cobol.php index 9adae16e3..63abf3f09 100644 --- a/inc/geshi/cobol.php +++ b/inc/geshi/cobol.php @@ -4,7 +4,7 @@ * ---------- * Author: BenBE (BenBE@omorphia.org) * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/07/02 * * COBOL language file for GeSHi. diff --git a/inc/geshi/cpp-qt.php b/inc/geshi/cpp-qt.php index 43105de3d..a96cd38af 100644 --- a/inc/geshi/cpp-qt.php +++ b/inc/geshi/cpp-qt.php @@ -4,13 +4,16 @@ * ------- * Author: Iulian M * Copyright: (c) 2006 Iulian M - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/09/27 * * C++ (with QT extensions) language file for GeSHi. * * CHANGES * ------- + * 2009/06/28 (1.0.8.4) + * - Updated list of Keywords from Qt 4.5 + * * 2008/05/23 (1.0.7.22) * - Added description of extra language features (SF#1970248) * @@ -87,7 +90,8 @@ $language_data = array ( 'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace', 'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast', 'static_cast', 'explicit', 'friend', 'wchar_t', 'typename', 'typeid', 'class' , - 'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals' + 'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals', 'Q_SIGNALS', 'Q_SLOTS', + 'Q_FOREACH', 'QCOMPARE', 'QVERIFY', 'qDebug', 'kDebug', 'QBENCHMARK' ), 3 => array( 'cin', 'cerr', 'clog', 'cout', @@ -119,103 +123,334 @@ $language_data = array ( 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', ), 5 => array( - 'QAbstractButton','QDir','QIntValidator','QRegExpValidator','QTabWidget','QAbstractEventDispatcher', - 'QDirectPainter','QIODevice','QRegion','QTcpServer','QAbstractExtensionFactory','QDirModel', - 'QItemDelegate','QResizeEvent','QTcpSocket','QAbstractExtensionManager','QDockWidget', - 'QItemEditorCreatorBase','QResource','QTemporaryFile','QAbstractFileEngine','QDomAttr', - 'QItemEditorFactory','QRubberBand','QTestEventList','QAbstractFileEngineHandler','QDomCDATASection', - 'QItemSelection','QScreen','QTextBlock','QAbstractFormBuilder','QDomCharacterData','QItemSelectionModel', - 'QScreenCursor','QTextBlockFormat','QAbstractGraphicsShapeItem','QDomComment','QItemSelectionRange', - 'QScreenDriverFactory','QTextBlockGroup','QAbstractItemDelegate','QDomDocument','QKbdDriverFactory', - 'QScreenDriverPlugin','QTextBlockUserData','QAbstractItemModel','QDomDocumentFragment','QKbdDriverPlugin', - 'QScrollArea','QTextBrowser','QAbstractItemView','QDomDocumentType','QKeyEvent','QScrollBar', - 'QTextCharFormat','QAbstractListModel','QDomElement','QKeySequence','QSemaphore','QTextCodec', - 'QAbstractPrintDialog','QDomEntity','QLabel','QSessionManager','QTextCodecPlugin','QAbstractProxyModel', - 'QDomEntityReference','QLatin1Char','QSet','QTextCursor','QAbstractScrollArea','QDomImplementation', - 'QLatin1String','QSetIterator','QTextDecoder','QAbstractSlider','QDomNamedNodeMap','QLayout','QSettings', - 'QTextDocument','QAbstractSocket','QDomNode','QLayoutItem','QSharedData','QTextDocumentFragment', - 'QAbstractSpinBox','QDomNodeList','QLCDNumber','QSharedDataPointer','QTextEdit','QAbstractTableModel', - 'QDomNotation','QLibrary','QShortcut','QTextEncoder','QAbstractTextDocumentLayout', - 'QDomProcessingInstruction','QLibraryInfo','QShortcutEvent','QTextFormat','QAccessible','QDomText', - 'QLine','QShowEvent','QTextFragment','QAccessibleBridge','QDoubleSpinBox','QLinearGradient', - 'QSignalMapper','QTextFrame','QAccessibleBridgePlugin','QDoubleValidator','QLineEdit','QSignalSpy', - 'QTextFrameFormat','QAccessibleEvent','QDrag','QLineF','QSize','QTextImageFormat','QAccessibleInterface', - 'QDragEnterEvent','QLinkedList','QSizeF','QTextInlineObject','QAccessibleObject','QDragLeaveEvent', - 'QLinkedListIterator','QSizeGrip','QTextLayout','QAccessiblePlugin','QDragMoveEvent','QLinuxFbScreen', - 'QSizePolicy','QTextLength','QAccessibleWidget','QDropEvent','QList','QSlider','QTextLine','QAction', - 'QDynamicPropertyChangeEvent','QListIterator','QSocketNotifier','QTextList','QActionEvent','QErrorMessage', - 'QListView','QSortFilterProxyModel','QTextListFormat','QActionGroup','QEvent','QListWidget','QSound', - 'QTextObject','QApplication','QEventLoop','QListWidgetItem','QSpacerItem','QTextOption','QAssistantClient', - 'QExtensionFactory','QLocale','QSpinBox','QTextStream','QAxAggregated','QExtensionManager', - 'QMacPasteboardMime','QSplashScreen','QTextTable','QAxBase','QFile','QMacStyle','QSplitter', - 'QTextTableCell','QAxBindable','QFileDialog','QMainWindow','QSplitterHandle','QTextTableFormat', - 'QAxFactory','QFileIconProvider','QMap','QSqlDatabase','QThread','QAxObject','QFileInfo','QMapIterator', - 'QSqlDriver','QThreadStorage','QAxScript','QFileOpenEvent','QMatrix','QSqlDriverCreator','QTime', - 'QAxScriptEngine','QFileSystemWatcher','QMenu','QSqlDriverCreatorBase','QTimeEdit','QAxScriptManager', - 'QFlag','QMenuBar','QSqlDriverPlugin','QTimeLine','QAxWidget','QFlags','QMessageBox','QSqlError','QTimer', - 'QBasicTimer','QFocusEvent','QMetaClassInfo','QSqlField','QTimerEvent','QBitArray','QFocusFrame', - 'QMetaEnum','QSqlIndex','QToolBar','QBitmap','QFont','QMetaMethod','QSqlQuery','QToolBox','QBoxLayout', - 'QFontComboBox','QMetaObject','QSqlQueryModel','QToolButton','QBrush','QFontDatabase','QMetaProperty', - 'QSqlRecord','QToolTip','QBuffer','QFontDialog','QMetaType','QSqlRelation','QTransformedScreen', - 'QButtonGroup','QFontInfo','QMimeData','QSqlRelationalDelegate','QTranslator','QByteArray','QFontMetrics', - 'QMimeSource','QSqlRelationalTableModel','QTreeView','QByteArrayMatcher','QFontMetricsF','QModelIndex', - 'QSqlResult','QTreeWidget','QCache','QFormBuilder','QMotifStyle','QSqlTableModel','QTreeWidgetItem', - 'QCalendarWidget','QFrame','QMouseDriverFactory','QStack','QTreeWidgetItemIterator','QCDEStyle', - 'QFSFileEngine','QMouseDriverPlugin','QStackedLayout','QUdpSocket','QChar','QFtp','QMouseEvent', - 'QStackedWidget','QUiLoader','QCheckBox','QGenericArgument','QMoveEvent','QStandardItem','QUndoCommand', - 'QChildEvent','QGenericReturnArgument','QMovie','QStandardItemEditorCreator','QUndoGroup', - 'QCleanlooksStyle','QGLColormap','QMultiHash','QStandardItemModel','QUndoStack','QClipboard', - 'QGLContext','QMultiMap','QStatusBar','QUndoView','QCloseEvent','QGLFormat','QMutableHashIterator', - 'QStatusTipEvent','QUrl','QColor','QGLFramebufferObject','QMutableLinkedListIterator','QString', - 'QUrlInfo','QColorDialog','QGLPixelBuffer','QMutableListIterator','QStringList','QUuid','QColormap', - 'QGLWidget','QMutableMapIterator','QStringListModel','QValidator','QComboBox','QGradient', - 'QMutableSetIterator','QStringMatcher','QVariant','QCommonStyle','QGraphicsEllipseItem', - 'QMutableVectorIterator','QStyle','QVarLengthArray','QCompleter','QGraphicsItem','QMutex', - 'QStyleFactory','QVBoxLayout','QConicalGradient','QGraphicsItemAnimation','QMutexLocker', - 'QStyleHintReturn','QVector','QContextMenuEvent','QGraphicsItemGroup','QNetworkAddressEntry', - 'QStyleHintReturnMask','QVectorIterator','QCopChannel','QGraphicsLineItem','QNetworkInterface', - 'QStyleOption','QVFbScreen','QCoreApplication','QGraphicsPathItem','QNetworkProxy','QStyleOptionButton', - 'QVNCScreen','QCursor','QGraphicsPixmapItem','QObject','QStyleOptionComboBox','QWaitCondition', - 'QCustomRasterPaintDevice','QGraphicsPolygonItem','QObjectCleanupHandler','QStyleOptionComplex', - 'QWhatsThis','QDataStream','QGraphicsRectItem','QPageSetupDialog','QStyleOptionDockWidget', - 'QWhatsThisClickedEvent','QDataWidgetMapper','QGraphicsScene','QPaintDevice','QStyleOptionFocusRect', - 'QWheelEvent','QDate','QGraphicsSceneContextMenuEvent','QPaintEngine','QStyleOptionFrame','QWidget', - 'QDateEdit','QGraphicsSceneEvent','QPaintEngineState','QStyleOptionFrameV2','QWidgetAction','QDateTime', - 'QGraphicsSceneHoverEvent','QPainter','QStyleOptionGraphicsItem','QWidgetItem','QDateTimeEdit', - 'QGraphicsSceneMouseEvent','QPainterPath','QStyleOptionGroupBox','QWindowsMime','QDBusAbstractAdaptor', - 'QGraphicsSceneWheelEvent','QPainterPathStroker','QStyleOptionHeader','QWindowsStyle', - 'QDBusAbstractInterface','QGraphicsSimpleTextItem','QPaintEvent','QStyleOptionMenuItem', - 'QWindowStateChangeEvent','QDBusArgument','QGraphicsSvgItem','QPair','QStyleOptionProgressBar', - 'QWindowsXPStyle','QDBusConnection','QGraphicsTextItem','QPalette','QStyleOptionProgressBarV2', - 'QWorkspace','QDBusConnectionInterface','QGraphicsView','QPen','QStyleOptionQ3DockWindow','QWriteLocker', - 'QDBusError','QGridLayout','QPersistentModelIndex','QStyleOptionQ3ListView','QWSCalibratedMouseHandler', - 'QDBusInterface','QGroupBox','QPicture','QStyleOptionQ3ListViewItem','QWSClient','QDBusMessage','QHash', - 'QPictureFormatPlugin','QStyleOptionRubberBand','QWSEmbedWidget','QDBusObjectPath','QHashIterator', - 'QPictureIO','QStyleOptionSizeGrip','QWSEvent','QDBusReply','QHBoxLayout','QPixmap','QStyleOptionSlider', - 'QWSInputMethod','QDBusServer','QHeaderView','QPixmapCache','QStyleOptionSpinBox','QWSKeyboardHandler', - 'QDBusSignature','QHelpEvent','QPlastiqueStyle','QStyleOptionTab','QWSMouseHandler','QDBusVariant', - 'QHideEvent','QPluginLoader','QStyleOptionTabBarBase','QWSPointerCalibrationData','QDecoration', - 'QHostAddress','QPoint','QStyleOptionTabV2','QWSScreenSaver','QDecorationFactory','QHostInfo','QPointer', - 'QStyleOptionTabWidgetFrame','QWSServer','QDecorationPlugin','QHoverEvent','QPointF','QStyleOptionTitleBar', - 'QWSTslibMouseHandler','QDesignerActionEditorInterface','QHttp','QPolygon','QStyleOptionToolBar','QWSWindow', - 'QDesignerContainerExtension','QHttpHeader','QPolygonF','QStyleOptionToolBox','QWSWindowSurface', - 'QDesignerCustomWidgetCollectionInterface','QHttpRequestHeader','QPrintDialog','QStyleOptionToolButton', - 'QX11EmbedContainer','QDesignerCustomWidgetInterface','QHttpResponseHeader','QPrintEngine', - 'QStyleOptionViewItem','QX11EmbedWidget','QDesignerFormEditorInterface','QIcon','QPrinter', - 'QStyleOptionViewItemV2','QX11Info','QDesignerFormWindowCursorInterface','QIconDragEvent','QProcess', - 'QStylePainter','QXmlAttributes','QDesignerFormWindowInterface','QIconEngine','QProgressBar', - 'QStylePlugin','QXmlContentHandler','QDesignerFormWindowManagerInterface','QIconEnginePlugin', - 'QProgressDialog','QSvgRenderer','QXmlDeclHandler','QDesignerMemberSheetExtension','QImage', - 'QProxyModel','QSvgWidget','QXmlDefaultHandler','QDesignerObjectInspectorInterface','QImageIOHandler', - 'QPushButton','QSyntaxHighlighter','QXmlDTDHandler','QDesignerPropertyEditorInterface','QImageIOPlugin', - 'QQueue','QSysInfo','QXmlEntityResolver','QDesignerPropertySheetExtension','QImageReader','QRadialGradient', - 'QSystemLocale','QXmlErrorHandler','QDesignerTaskMenuExtension','QImageWriter','QRadioButton', - 'QSystemTrayIcon','QXmlInputSource','QDesignerWidgetBoxInterface','QInputContext','QRasterPaintEngine', - 'QTabBar','QXmlLexicalHandler','QDesktopServices','QInputContextFactory','QReadLocker','QTabletEvent', - 'QXmlLocator','QDesktopWidget','QInputContextPlugin','QReadWriteLock','QTableView','QXmlNamespaceSupport', - 'QDial','QInputDialog','QRect','QTableWidget','QXmlParseException','QDialog','QInputEvent','QRectF', - 'QTableWidgetItem','QXmlReader','QDialogButtonBox','QInputMethodEvent','QRegExp', - 'QTableWidgetSelectionRange','QXmlSimpleReader' + "Q_UINT16", "Q_UINT32", "Q_UINT64", "Q_UINT8", "Q_ULLONG", + "Q_ULONG", "Q3Accel", "Q3Action", "Q3ActionGroup", "Q3AsciiBucket", + "Q3AsciiCache", "Q3AsciiCacheIterator", "Q3AsciiDict", + "Q3AsciiDictIterator", "Q3BaseBucket", "Q3BoxLayout", "Q3Button", + "Q3ButtonGroup", "Q3Cache", "Q3CacheIterator", "Q3Canvas", + "Q3CanvasEllipse", "Q3CanvasItem", "Q3CanvasItemList", + "Q3CanvasLine", "Q3CanvasPixmap", "Q3CanvasPixmapArray", + "Q3CanvasPolygon", "Q3CanvasPolygonalItem", "Q3CanvasRectangle", + "Q3CanvasSpline", "Q3CanvasSprite", "Q3CanvasText", "Q3CanvasView", + "Q3CheckListItem", "Q3CheckTableItem", "Q3CleanupHandler", + "Q3ColorDrag", "Q3ComboBox", "Q3ComboTableItem", "Q3CString", + "Q3DataBrowser", "Q3DataTable", "Q3DataView", "Q3DateEdit", + "Q3DateTimeEdit", "Q3DateTimeEditBase", "Q3DeepCopy", "Q3Dict", + "Q3DictIterator", "Q3Dns", "Q3DnsSocket", "Q3DockArea", + "Q3DockAreaLayout", "Q3DockWindow", "Q3DragObject", "Q3DropSite", + "Q3EditorFactory", "Q3FileDialog", "Q3FileIconProvider", + "Q3FilePreview", "Q3Frame", "Q3Ftp", "Q3GArray", "Q3GCache", + "Q3GCacheIterator", "Q3GDict", "Q3GDictIterator", "Q3GList", + "Q3GListIterator", "Q3GListStdIterator", "Q3Grid", "Q3GridLayout", + "Q3GridView", "Q3GroupBox", "Q3GVector", "Q3HBox", "Q3HBoxLayout", + "Q3HButtonGroup", "Q3Header", "Q3HGroupBox", "Q3Http", + "Q3HttpHeader", "Q3HttpRequestHeader", "Q3HttpResponseHeader", + "Q3IconDrag", "Q3IconDragItem", "Q3IconView", "Q3IconViewItem", + "Q3ImageDrag", "Q3IntBucket", "Q3IntCache", "Q3IntCacheIterator", + "Q3IntDict", "Q3IntDictIterator", "Q3ListBox", "Q3ListBoxItem", + "Q3ListBoxPixmap", "Q3ListBoxText", "Q3ListView", "Q3ListViewItem", + "Q3ListViewItemIterator", "Q3LNode", "Q3LocalFs", "Q3MainWindow", + "Q3MemArray", "Q3MimeSourceFactory", "Q3MultiLineEdit", + "Q3NetworkOperation", "Q3NetworkProtocol", "Q3NetworkProtocolDict", + "Q3NetworkProtocolFactory", "Q3NetworkProtocolFactoryBase", + "Q3ObjectDictionary", "Q3PaintDeviceMetrics", "Q3Painter", + "Q3Picture", "Q3PointArray", "Q3PolygonScanner", "Q3PopupMenu", + "Q3Process", "Q3ProgressBar", "Q3ProgressDialog", "Q3PtrBucket", + "Q3PtrCollection", "Q3PtrDict", "Q3PtrDictIterator", "Q3PtrList", + "Q3PtrListIterator", "Q3PtrListStdIterator", "Q3PtrQueue", + "Q3PtrStack", "Q3PtrVector", "Q3RangeControl", "Q3ScrollView", + "Q3Semaphore", "Q3ServerSocket", "Q3Shared", "Q3Signal", + "Q3SimpleRichText", "Q3SingleCleanupHandler", "Q3Socket", + "Q3SocketDevice", "Q3SortedList", "Q3SpinWidget", "Q3SqlCursor", + "Q3SqlEditorFactory", "Q3SqlFieldInfo", "Q3SqlFieldInfoList", + "Q3SqlForm", "Q3SqlPropertyMap", "Q3SqlRecordInfo", + "Q3SqlSelectCursor", "Q3StoredDrag", "Q3StrIList", "Q3StringBucket", + "Q3StrIVec", "Q3StrList", "Q3StrListIterator", "Q3StrVec", + "Q3StyleSheet", "Q3StyleSheetItem", "Q3SyntaxHighlighter", + "Q3TabDialog", "Q3Table", "Q3TableItem", "Q3TableSelection", + "Q3TextBrowser", "Q3TextDrag", "Q3TextEdit", + "Q3TextEditOptimPrivate", "Q3TextStream", "Q3TextView", + "Q3TimeEdit", "Q3ToolBar", "Q3TSFUNC", "Q3UriDrag", "Q3Url", + "Q3UrlOperator", "Q3ValueList", "Q3ValueListConstIterator", + "Q3ValueListIterator", "Q3ValueStack", "Q3ValueVector", "Q3VBox", + "Q3VBoxLayout", "Q3VButtonGroup", "Q3VGroupBox", "Q3WhatsThis", + "Q3WidgetStack", "Q3Wizard", "QAbstractButton", + "QAbstractEventDispatcher", "QAbstractExtensionFactory", + "QAbstractExtensionManager", "QAbstractFileEngine", + "QAbstractFileEngineHandler", "QAbstractFileEngineIterator", + "QAbstractFormBuilder", "QAbstractGraphicsShapeItem", + "QAbstractItemDelegate", "QAbstractItemModel", "QAbstractItemView", + "QAbstractListModel", "QAbstractMessageHandler", + "QAbstractNetworkCache", "QAbstractPageSetupDialog", + "QAbstractPrintDialog", "QAbstractProxyModel", + "QAbstractScrollArea", "QAbstractSlider", "QAbstractSocket", + "QAbstractSpinBox", "QAbstractTableModel", + "QAbstractTextDocumentLayout", "QAbstractUndoItem", + "QAbstractUriResolver", "QAbstractXmlNodeModel", + "QAbstractXmlReceiver", "QAccessible", "QAccessible2Interface", + "QAccessibleApplication", "QAccessibleBridge", + "QAccessibleBridgeFactoryInterface", "QAccessibleBridgePlugin", + "QAccessibleEditableTextInterface", "QAccessibleEvent", + "QAccessibleFactoryInterface", "QAccessibleInterface", + "QAccessibleInterfaceEx", "QAccessibleObject", + "QAccessibleObjectEx", "QAccessiblePlugin", + "QAccessibleSimpleEditableTextInterface", + "QAccessibleTableInterface", "QAccessibleTextInterface", + "QAccessibleValueInterface", "QAccessibleWidget", + "QAccessibleWidgetEx", "QAction", "QActionEvent", "QActionGroup", + "QApplication", "QArgument", "QAssistantClient", "QAtomicInt", + "QAtomicPointer", "QAuthenticator", "QBasicAtomicInt", + "QBasicAtomicPointer", "QBasicTimer", "QBitArray", "QBitmap", + "QBitRef", "QBool", "QBoxLayout", "QBrush", "QBrushData", "QBuffer", + "QButtonGroup", "QByteArray", "QByteArrayMatcher", "QByteRef", + "QCache", "QCalendarWidget", "QCDEStyle", "QChar", "QCharRef", + "QCheckBox", "QChildEvent", "QCleanlooksStyle", "QClipboard", + "QClipboardEvent", "QCloseEvent", "QColor", "QColorDialog", + "QColorGroup", "QColormap", "QColumnView", "QComboBox", + "QCommandLinkButton", "QCommonStyle", "QCompleter", + "QConicalGradient", "QConstString", "QContextMenuEvent", "QCOORD", + "QCoreApplication", "QCryptographicHash", "QCursor", "QCursorShape", + "QCustomEvent", "QDataStream", "QDataWidgetMapper", "QDate", + "QDateEdit", "QDateTime", "QDateTimeEdit", "QDB2Driver", + "QDB2Result", "QDBusAbstractAdaptor", "QDBusAbstractInterface", + "QDBusArgument", "QDBusConnection", "QDBusConnectionInterface", + "QDBusContext", "QDBusError", "QDBusInterface", "QDBusMessage", + "QDBusMetaType", "QDBusObjectPath", "QDBusPendingCall", + "QDBusPendingCallWatcher", "QDBusPendingReply", + "QDBusPendingReplyData", "QDBusReply", "QDBusServer", + "QDBusSignature", "QDBusVariant", "QDebug", + "QDesignerActionEditorInterface", "QDesignerBrushManagerInterface", + "QDesignerComponents", "QDesignerContainerExtension", + "QDesignerCustomWidgetCollectionInterface", + "QDesignerCustomWidgetInterface", "QDesignerDnDItemInterface", + "QDesignerDynamicPropertySheetExtension", "QDesignerExportWidget", + "QDesignerExtraInfoExtension", "QDesignerFormEditorInterface", + "QDesignerFormEditorPluginInterface", "QDesignerFormWindowCursorInterface", + "QDesignerFormWindowInterface", "QDesignerFormWindowManagerInterface", + "QDesignerFormWindowToolInterface", + "QDesignerIconCacheInterface", "QDesignerIntegrationInterface", + "QDesignerLanguageExtension", "QDesignerLayoutDecorationExtension", + "QDesignerMemberSheetExtension", "QDesignerMetaDataBaseInterface", + "QDesignerMetaDataBaseItemInterface", + "QDesignerObjectInspectorInterface", "QDesignerPromotionInterface", + "QDesignerPropertyEditorInterface", + "QDesignerPropertySheetExtension", "QDesignerResourceBrowserInterface", + "QDesignerTaskMenuExtension", "QDesignerWidgetBoxInterface", + "QDesignerWidgetDataBaseInterface", "QDesignerWidgetDataBaseItemInterface", + "QDesignerWidgetFactoryInterface", "QDesktopServices", + "QDesktopWidget", "QDial", "QDialog", "QDialogButtonBox", "QDir", + "QDirIterator", "QDirModel", "QDockWidget", "QDomAttr", + "QDomCDATASection", "QDomCharacterData", "QDomComment", + "QDomDocument", "QDomDocumentFragment", "QDomDocumentType", + "QDomElement", "QDomEntity", "QDomEntityReference", + "QDomImplementation", "QDomNamedNodeMap", "QDomNode", + "QDomNodeList", "QDomNotation", "QDomProcessingInstruction", + "QDomText", "QDoubleSpinBox", "QDoubleValidator", "QDrag", + "QDragEnterEvent", "QDragLeaveEvent", "QDragMoveEvent", + "QDragResponseEvent", "QDropEvent", "QDynamicPropertyChangeEvent", + "QErrorMessage", "QEvent", "QEventLoop", "QEventSizeOfChecker", + "QExplicitlySharedDataPointer", "QExtensionFactory", + "QExtensionManager", "QFactoryInterface", "QFile", "QFileDialog", + "QFileIconProvider", "QFileInfo", "QFileInfoList", + "QFileInfoListIterator", "QFileOpenEvent", "QFileSystemModel", + "QFileSystemWatcher", "QFlag", "QFlags", "QFocusEvent", + "QFocusFrame", "QFont", "QFontComboBox", "QFontDatabase", + "QFontDialog", "QFontInfo", "QFontMetrics", "QFontMetricsF", + "QForeachContainer", "QForeachContainerBase", "QFormBuilder", + "QFormLayout", "QFrame", "QFSFileEngine", "QFtp", "QFuture", + "QFutureInterface", "QFutureInterfaceBase", "QFutureIterator", + "QFutureSynchronizer", "QFutureWatcher", "QFutureWatcherBase", + "QGenericArgument", "QGenericReturnArgument", "QGLColormap", + "QGLContext", "QGLFormat", "QGLFramebufferObject", "QGlobalStatic", + "QGlobalStaticDeleter", "QGLPixelBuffer", "QGLWidget", "QGradient", + "QGradientStop", "QGradientStops", "QGraphicsEllipseItem", + "QGraphicsGridLayout", "QGraphicsItem", "QGraphicsItemAnimation", + "QGraphicsItemGroup", "QGraphicsLayout", "QGraphicsLayoutItem", + "QGraphicsLinearLayout", "QGraphicsLineItem", "QGraphicsPathItem", + "QGraphicsPixmapItem", "QGraphicsPolygonItem", + "QGraphicsProxyWidget", "QGraphicsRectItem", "QGraphicsScene", + "QGraphicsSceneContextMenuEvent", "QGraphicsSceneDragDropEvent", + "QGraphicsSceneEvent", "QGraphicsSceneHelpEvent", + "QGraphicsSceneHoverEvent", "QGraphicsSceneMouseEvent", + "QGraphicsSceneMoveEvent", "QGraphicsSceneResizeEvent", + "QGraphicsSceneWheelEvent", "QGraphicsSimpleTextItem", + "QGraphicsSvgItem", "QGraphicsTextItem", "QGraphicsView", + "QGraphicsWidget", "QGridLayout", "QGroupBox", "QGtkStyle", "QHash", + "QHashData", "QHashDummyNode", "QHashDummyValue", "QHashIterator", + "QHashNode", "QHBoxLayout", "QHeaderView", "QHelpContentItem", + "QHelpContentModel", "QHelpContentWidget", "QHelpEngine", + "QHelpEngineCore", "QHelpEvent", "QHelpGlobal", "QHelpIndexModel", + "QHelpIndexWidget", "QHelpSearchEngine", "QHelpSearchQuery", + "QHelpSearchQueryWidget", "QHelpSearchResultWidget", "QHideEvent", + "QHostAddress", "QHostInfo", "QHoverEvent", "QHttp", "QHttpHeader", + "QHttpRequestHeader", "QHttpResponseHeader", "QIBaseDriver", + "QIBaseResult", "QIcon", "QIconDragEvent", "QIconEngine", + "QIconEngineFactoryInterface", "QIconEngineFactoryInterfaceV2", + "QIconEnginePlugin", "QIconEnginePluginV2", "QIconEngineV2", + "QIconSet", "QImage", "QImageIOHandler", + "QImageIOHandlerFactoryInterface", "QImageIOPlugin", "QImageReader", + "QImageTextKeyLang", "QImageWriter", "QIncompatibleFlag", + "QInputContext", "QInputContextFactory", + "QInputContextFactoryInterface", "QInputContextPlugin", + "QInputDialog", "QInputEvent", "QInputMethodEvent", "Q_INT16", + "Q_INT32", "Q_INT64", "Q_INT8", "QInternal", "QIntForSize", + "QIntForType", "QIntValidator", "QIODevice", "Q_IPV6ADDR", + "QIPv6Address", "QItemDelegate", "QItemEditorCreator", + "QItemEditorCreatorBase", "QItemEditorFactory", "QItemSelection", + "QItemSelectionModel", "QItemSelectionRange", "QKeyEvent", + "QKeySequence", "QLabel", "QLatin1Char", "QLatin1String", "QLayout", + "QLayoutItem", "QLayoutIterator", "QLCDNumber", "QLibrary", + "QLibraryInfo", "QLine", "QLinearGradient", "QLineEdit", "QLineF", + "QLinkedList", "QLinkedListData", "QLinkedListIterator", + "QLinkedListNode", "QList", "QListData", "QListIterator", + "QListView", "QListWidget", "QListWidgetItem", "Q_LLONG", "QLocale", + "QLocalServer", "QLocalSocket", "Q_LONG", "QMacCompatGLenum", + "QMacCompatGLint", "QMacCompatGLuint", "QMacGLCompatTypes", + "QMacMime", "QMacPasteboardMime", "QMainWindow", "QMap", "QMapData", + "QMapIterator", "QMapNode", "QMapPayloadNode", "QMatrix", + "QMdiArea", "QMdiSubWindow", "QMenu", "QMenuBar", + "QMenubarUpdatedEvent", "QMenuItem", "QMessageBox", + "QMetaClassInfo", "QMetaEnum", "QMetaMethod", "QMetaObject", + "QMetaObjectExtraData", "QMetaProperty", "QMetaType", "QMetaTypeId", + "QMetaTypeId2", "QMimeData", "QMimeSource", "QModelIndex", + "QModelIndexList", "QMotifStyle", "QMouseEvent", "QMoveEvent", + "QMovie", "QMultiHash", "QMultiMap", "QMutableFutureIterator", + "QMutableHashIterator", "QMutableLinkedListIterator", + "QMutableListIterator", "QMutableMapIterator", + "QMutableSetIterator", "QMutableStringListIterator", + "QMutableVectorIterator", "QMutex", "QMutexLocker", "QMYSQLDriver", + "QMYSQLResult", "QNetworkAccessManager", "QNetworkAddressEntry", + "QNetworkCacheMetaData", "QNetworkCookie", "QNetworkCookieJar", + "QNetworkDiskCache", "QNetworkInterface", "QNetworkProxy", + "QNetworkProxyFactory", "QNetworkProxyQuery", "QNetworkReply", + "QNetworkRequest", "QNoDebug", "QNoImplicitBoolCast", "QObject", + "QObjectCleanupHandler", "QObjectData", "QObjectList", + "QObjectUserData", "QOCIDriver", "QOCIResult", "QODBCDriver", + "QODBCResult", "QPageSetupDialog", "QPaintDevice", "QPaintEngine", + "QPaintEngineState", "QPainter", "QPainterPath", + "QPainterPathPrivate", "QPainterPathStroker", "QPaintEvent", + "QPair", "QPalette", "QPen", "QPersistentModelIndex", "QPicture", + "QPictureFormatInterface", "QPictureFormatPlugin", "QPictureIO", + "Q_PID", "QPixmap", "QPixmapCache", "QPlainTextDocumentLayout", + "QPlainTextEdit", "QPlastiqueStyle", "QPluginLoader", "QPoint", + "QPointer", "QPointF", "QPolygon", "QPolygonF", "QPrintDialog", + "QPrintEngine", "QPrinter", "QPrinterInfo", "QPrintPreviewDialog", + "QPrintPreviewWidget", "QProcess", "QProgressBar", + "QProgressDialog", "QProxyModel", "QPSQLDriver", "QPSQLResult", + "QPushButton", "QQueue", "QRadialGradient", "QRadioButton", + "QReadLocker", "QReadWriteLock", "QRect", "QRectF", "QRegExp", + "QRegExpValidator", "QRegion", "QResizeEvent", "QResource", + "QReturnArgument", "QRgb", "QRubberBand", "QRunnable", + "QScriptable", "QScriptClass", "QScriptClassPropertyIterator", + "QScriptContext", "QScriptContextInfo", "QScriptContextInfoList", + "QScriptEngine", "QScriptEngineAgent", "QScriptEngineDebugger", + "QScriptExtensionInterface", "QScriptExtensionPlugin", + "QScriptString", "QScriptSyntaxCheckResult", "QScriptValue", + "QScriptValueIterator", "QScriptValueList", "QScrollArea", + "QScrollBar", "QSemaphore", "QSessionManager", "QSet", + "QSetIterator", "QSettings", "QSharedData", "QSharedDataPointer", + "QSharedMemory", "QSharedPointer", "QShortcut", "QShortcutEvent", + "QShowEvent", "QSignalMapper", "QSignalSpy", "QSimpleXmlNodeModel", + "QSize", "QSizeF", "QSizeGrip", "QSizePolicy", "QSlider", + "QSocketNotifier", "QSortFilterProxyModel", "QSound", + "QSourceLocation", "QSpacerItem", "QSpinBox", "QSplashScreen", + "QSplitter", "QSplitterHandle", "QSpontaneKeyEvent", "QSqlDatabase", + "QSqlDriver", "QSqlDriverCreator", "QSqlDriverCreatorBase", + "QSqlDriverFactoryInterface", "QSqlDriverPlugin", "QSqlError", + "QSqlField", "QSqlIndex", "QSQLite2Driver", "QSQLite2Result", + "QSQLiteDriver", "QSQLiteResult", "QSqlQuery", "QSqlQueryModel", + "QSqlRecord", "QSqlRelation", "QSqlRelationalDelegate", + "QSqlRelationalTableModel", "QSqlResult", "QSqlTableModel", "QSsl", + "QSslCertificate", "QSslCipher", "QSslConfiguration", "QSslError", + "QSslKey", "QSslSocket", "QStack", "QStackedLayout", + "QStackedWidget", "QStandardItem", "QStandardItemEditorCreator", + "QStandardItemModel", "QStatusBar", "QStatusTipEvent", + "QStdWString", "QString", "QStringList", "QStringListIterator", + "QStringListModel", "QStringMatcher", "QStringRef", "QStyle", + "QStyledItemDelegate", "QStyleFactory", "QStyleFactoryInterface", + "QStyleHintReturn", "QStyleHintReturnMask", + "QStyleHintReturnVariant", "QStyleOption", "QStyleOptionButton", + "QStyleOptionComboBox", "QStyleOptionComplex", + "QStyleOptionDockWidget", "QStyleOptionDockWidgetV2", + "QStyleOptionFocusRect", "QStyleOptionFrame", "QStyleOptionFrameV2", + "QStyleOptionFrameV3", "QStyleOptionGraphicsItem", + "QStyleOptionGroupBox", "QStyleOptionHeader", + "QStyleOptionMenuItem", "QStyleOptionProgressBar", + "QStyleOptionProgressBarV2", "QStyleOptionQ3DockWindow", + "QStyleOptionQ3ListView", "QStyleOptionQ3ListViewItem", + "QStyleOptionRubberBand", "QStyleOptionSizeGrip", + "QStyleOptionSlider", "QStyleOptionSpinBox", "QStyleOptionTab", + "QStyleOptionTabBarBase", "QStyleOptionTabBarBaseV2", + "QStyleOptionTabV2", "QStyleOptionTabV3", + "QStyleOptionTabWidgetFrame", "QStyleOptionTitleBar", + "QStyleOptionToolBar", "QStyleOptionToolBox", + "QStyleOptionToolBoxV2", "QStyleOptionToolButton", + "QStyleOptionViewItem", "QStyleOptionViewItemV2", + "QStyleOptionViewItemV3", "QStyleOptionViewItemV4", "QStylePainter", + "QStylePlugin", "QSvgGenerator", "QSvgRenderer", "QSvgWidget", + "QSyntaxHighlighter", "QSysInfo", "QSystemLocale", + "QSystemSemaphore", "QSystemTrayIcon", "Qt", "Qt3Support", + "QTabBar", "QTabletEvent", "QTableView", "QTableWidget", + "QTableWidgetItem", "QTableWidgetSelectionRange", "QTabWidget", + "QtAlgorithms", "QtAssistant", "QtCleanUpFunction", + "QtConcurrentFilter", "QtConcurrentMap", "QtConcurrentRun", + "QtContainerFwd", "QtCore", "QTcpServer", "QTcpSocket", "QtDBus", + "QtDebug", "QtDesigner", "QTDSDriver", "QTDSResult", + "QTemporaryFile", "QtEndian", "QTest", "QTestAccessibility", + "QTestAccessibilityEvent", "QTestData", "QTestDelayEvent", + "QTestEvent", "QTestEventList", "QTestEventLoop", + "QTestKeyClicksEvent", "QTestKeyEvent", "QTestMouseEvent", + "QtEvents", "QTextBlock", "QTextBlockFormat", "QTextBlockGroup", + "QTextBlockUserData", "QTextBoundaryFinder", "QTextBrowser", + "QTextCharFormat", "QTextCodec", "QTextCodecFactoryInterface", + "QTextCodecPlugin", "QTextCursor", "QTextDecoder", "QTextDocument", + "QTextDocumentFragment", "QTextDocumentWriter", "QTextEdit", + "QTextEncoder", "QTextFormat", "QTextFragment", "QTextFrame", + "QTextFrameFormat", "QTextFrameLayoutData", "QTextImageFormat", + "QTextInlineObject", "QTextIStream", "QTextItem", "QTextLayout", + "QTextLength", "QTextLine", "QTextList", "QTextListFormat", + "QTextObject", "QTextObjectInterface", "QTextOption", + "QTextOStream", "QTextStream", "QTextStreamFunction", + "QTextStreamManipulator", "QTextTable", "QTextTableCell", + "QTextTableCellFormat", "QTextTableFormat", "QtGlobal", "QtGui", + "QtHelp", "QThread", "QThreadPool", "QThreadStorage", + "QThreadStorageData", "QTime", "QTimeEdit", "QTimeLine", "QTimer", + "QTimerEvent", "QtMsgHandler", "QtNetwork", "QToolBar", + "QToolBarChangeEvent", "QToolBox", "QToolButton", "QToolTip", + "QtOpenGL", "QtPlugin", "QtPluginInstanceFunction", "QTransform", + "QTranslator", "QTreeView", "QTreeWidget", "QTreeWidgetItem", + "QTreeWidgetItemIterator", "QTS", "QtScript", "QtScriptTools", + "QtSql", "QtSvg", "QtTest", "QtUiTools", "QtWebKit", "QtXml", + "QtXmlPatterns", "QTypeInfo", "QUdpSocket", "QUiLoader", + "QUintForSize", "QUintForType", "QUndoCommand", "QUndoGroup", + "QUndoStack", "QUndoView", "QUnixPrintWidget", "QUpdateLaterEvent", + "QUrl", "QUrlInfo", "QUuid", "QValidator", "QVariant", + "QVariantComparisonHelper", "QVariantHash", "QVariantList", + "QVariantMap", "QVarLengthArray", "QVBoxLayout", "QVector", + "QVectorData", "QVectorIterator", "QVectorTypedData", + "QWaitCondition", "QWeakPointer", "QWebDatabase", "QWebFrame", + "QWebHistory", "QWebHistoryInterface", "QWebHistoryItem", + "QWebHitTestResult", "QWebPage", "QWebPluginFactory", + "QWebSecurityOrigin", "QWebSettings", "QWebView", "QWhatsThis", + "QWhatsThisClickedEvent", "QWheelEvent", "QWidget", "QWidgetAction", + "QWidgetData", "QWidgetItem", "QWidgetItemV2", "QWidgetList", + "QWidgetMapper", "QWidgetSet", "QWindowsCEStyle", "QWindowsMime", + "QWindowsMobileStyle", "QWindowsStyle", "QWindowStateChangeEvent", + "QWindowsVistaStyle", "QWindowsXPStyle", "QWizard", "QWizardPage", + "QWMatrix", "QWorkspace", "QWriteLocker", "QX11EmbedContainer", + "QX11EmbedWidget", "QX11Info", "QXmlAttributes", + "QXmlContentHandler", "QXmlDeclHandler", "QXmlDefaultHandler", + "QXmlDTDHandler", "QXmlEntityResolver", "QXmlErrorHandler", + "QXmlFormatter", "QXmlInputSource", "QXmlItem", + "QXmlLexicalHandler", "QXmlLocator", "QXmlName", "QXmlNamePool", + "QXmlNamespaceSupport", "QXmlNodeModelIndex", "QXmlParseException", + "QXmlQuery", "QXmlReader", "QXmlResultItems", "QXmlSerializer", + "QXmlSimpleReader", "QXmlStreamAttribute", "QXmlStreamAttributes", + "QXmlStreamEntityDeclaration", "QXmlStreamEntityDeclarations", + "QXmlStreamEntityResolver", "QXmlStreamNamespaceDeclaration", + "QXmlStreamNamespaceDeclarations", "QXmlStreamNotationDeclaration", + "QXmlStreamNotationDeclarations", "QXmlStreamReader", + "QXmlStreamStringRef", "QXmlStreamWriter" ) ), 'SYMBOLS' => array( diff --git a/inc/geshi/cpp.php b/inc/geshi/cpp.php index 264ef638d..7fb1da360 100644 --- a/inc/geshi/cpp.php +++ b/inc/geshi/cpp.php @@ -7,7 +7,7 @@ * - M. Uli Kusterer (witness.of.teachtext@gmx.net) * - Jack Lloyd (lloyd@randombit.net) * Copyright: (c) 2004 Dennis Bayer, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/09/27 * * C++ language file for GeSHi. diff --git a/inc/geshi/csharp.php b/inc/geshi/csharp.php index 0f8a5e2a3..aa166801d 100644 --- a/inc/geshi/csharp.php +++ b/inc/geshi/csharp.php @@ -3,16 +3,19 @@ * csharp.php * ---------- * Author: Alan Juden (alan@judenware.org) + * Revised by: Michael Mol (mikemol@gmail.com) * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/04 * * C# language file for GeSHi. * * CHANGES * ------- + * 2009/04/03 (1.0.8.6) + * - Added missing keywords identified by Rosetta Code users. * 2008/05/25 (1.0.7.22) - * - Added highlighting of using and namespace directives as non-OOP + * - Added highlighting of using and namespace directives as non-OOP * 2005/01/05 (1.0.1) * - Used hardquote support for @"..." strings (Cliff Stanford) * 2004/11/27 (1.0.0) @@ -59,12 +62,12 @@ $language_data = array ( 1 => array( 'as', 'auto', 'base', 'break', 'case', 'catch', 'const', 'continue', 'default', 'do', 'else', 'event', 'explicit', 'extern', 'false', - 'finally', 'fixed', 'for', 'foreach', 'goto', 'if', 'implicit', - 'in', 'internal', 'lock', 'namespace', 'null', 'operator', 'out', - 'override', 'params', 'partial', 'private', 'protected', 'public', - 'readonly', 'ref', 'return', 'sealed', 'stackalloc', 'static', - 'switch', 'this', 'throw', 'true', 'try', 'unsafe', 'using', - 'virtual', 'void', 'while' + 'finally', 'fixed', 'for', 'foreach', 'from', 'goto', 'if', + 'implicit', 'in', 'internal', 'lock', 'namespace', 'null', + 'operator', 'out', 'override', 'params', 'partial', 'private', + 'protected', 'public', 'readonly', 'ref', 'return', 'sealed', + 'select', 'stackalloc', 'static', 'switch', 'this', 'throw', 'true', + 'try', 'unsafe', 'using', 'virtual', 'where', 'while', 'yield' ), 2 => array( '#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if', @@ -76,7 +79,7 @@ $language_data = array ( 4 => array( 'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double', 'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte', - 'short', 'string', 'struct', 'uint', 'ulong', 'ushort' + 'short', 'string', 'struct', 'uint', 'ulong', 'ushort', 'void' ), 5 => array( 'Microsoft.Win32', @@ -169,7 +172,7 @@ $language_data = array ( ), 'SYMBOLS' => array( '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';', - '(', ')', '{', '}', '[', ']', '|' + '(', ')', '{', '}', '[', ']', '|', '.' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, @@ -181,10 +184,10 @@ $language_data = array ( ), 'STYLES' => array( 'KEYWORDS' => array( - 1 => 'color: #0600FF;', + 1 => 'color: #0600FF; font-weight: bold;', 2 => 'color: #FF8000; font-weight: bold;', 3 => 'color: #008000;', - 4 => 'color: #FF0000;', + 4 => 'color: #6666cc; font-weight: bold;', 5 => 'color: #000000;' ), 'COMMENTS' => array( @@ -198,7 +201,7 @@ $language_data = array ( 'HARD' => 'color: #008080; font-weight: bold;' ), 'BRACKETS' => array( - 0 => 'color: #000000;' + 0 => 'color: #008000;' ), 'STRINGS' => array( 0 => 'color: #666666;', @@ -242,7 +245,7 @@ $language_data = array ( 'PARSER_CONTROL' => array( 'KEYWORDS' => array( 'DISALLOWED_BEFORE' => "(?|^])", - 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])" + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_%\\-])" ) ) ); diff --git a/inc/geshi/css.php b/inc/geshi/css.php index f6386bdc0..04313d6d8 100644 --- a/inc/geshi/css.php +++ b/inc/geshi/css.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/18 * * CSS language file for GeSHi. diff --git a/inc/geshi/cuesheet.php b/inc/geshi/cuesheet.php new file mode 100644 index 000000000..2fd610c15 --- /dev/null +++ b/inc/geshi/cuesheet.php @@ -0,0 +1,138 @@ + 'Cuesheet', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + //Single-Line Comments using REM command + 1 => "/(?<=\bREM\b).*?$/im", + ), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'CATALOG','CDTEXTFILE','FILE','FLAGS','INDEX','ISRC','PERFORMER', + 'POSTGAP','PREGAP','REM','SONGWRITER','TITLE','TRACK' + ), + 2 => array( + 'AIFF', 'BINARY', 'MOTOROLA', 'MP3', 'WAVE' + ), + 3 => array( + '4CH', 'DCP', 'PRE', 'SCMS' + ), + 4 => array( + 'AUDIO', 'CDG', 'MODE1/2048', 'MODE1/2336', 'MODE2/2336', + 'MODE2/2352', 'CDI/2336', 'CDI/2352' + ) + ), + 'SYMBOLS' => array( + ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #000066; font-weight: bold;', + 3 => 'color: #000066; font-weight: bold;', + 4 => 'color: #000066; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;', + ), + 'BRACKETS' => array( + 0 => 'color: #0000ff;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #006600;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000066;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + 1 => 'color: #000099;', + 2 => 'color: #009900;', + ) + ), + 'URLS' => array( + 1 => 'http://digitalx.org/cuesheetsyntax.php#{FNAMEL}', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 2 => '\b[A-Za-z0-9]{5}\d{7}\b', + 1 => '(?<=[\s:]|^)\d+(?=[\s:]|$)', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 2, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(? '(?![\w\.])', + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/d.php b/inc/geshi/d.php index 691091809..f9157a514 100644 --- a/inc/geshi/d.php +++ b/inc/geshi/d.php @@ -4,7 +4,7 @@ * ----- * Author: Thomas Kuehne (thomas@kuehne.cn) * Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/04/22 * * D language file for GeSHi. diff --git a/inc/geshi/dcs.php b/inc/geshi/dcs.php index 0f6bad372..daad329c3 100644 --- a/inc/geshi/dcs.php +++ b/inc/geshi/dcs.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Stelio Passaris (GeSHi@stelio.net) * Copyright: (c) 2009 Stelio Passaris (http://stelio.net/stiki/GeSHi) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/01/20 * * DCS language file for GeSHi. @@ -59,9 +59,6 @@ $language_data = array ( ), 'COMMENT_MULTI' => array( ), - 'HARDQUOTE' => array( - ), - 'HARDESCAPE' => '', 'COMMENT_REGEXP' => array( // Highlight embedded C code in a separate color: 2 => '/\bINSERT_C_CODE\b.*?\bEND_C_CODE\b/ims' diff --git a/inc/geshi/delphi.php b/inc/geshi/delphi.php index 9d7ad7e7d..2b758d7db 100644 --- a/inc/geshi/delphi.php +++ b/inc/geshi/delphi.php @@ -4,7 +4,7 @@ * ---------- * Author: J�rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2004 J�rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/07/26 * * Delphi (Object Pascal) language file for GeSHi. @@ -68,7 +68,7 @@ $language_data = array ( 'Repeat', 'Requires', 'Resourcestring', 'Set', 'Shl', 'Shr', 'Then', 'ThreadVar', 'To', 'Try', 'Type', 'Unit', 'Until', 'Uses', 'Var', 'Virtual', 'While', 'With', 'Xor', 'assembler', 'far', - 'near', 'pascal', 'register', 'cdecl', 'safecall', 'stdcall', 'varargs' + 'near', 'pascal', 'cdecl', 'safecall', 'stdcall', 'varargs' ), 2 => array( 'nil', 'false', 'self', 'true', 'var', 'type', 'const' diff --git a/inc/geshi/diff.php b/inc/geshi/diff.php index b4703c1d2..f1a4baf65 100644 --- a/inc/geshi/diff.php +++ b/inc/geshi/diff.php @@ -4,7 +4,7 @@ * -------- * Author: Conny Brunnkvist (conny@fuchsia.se), W. Tasin (tasin@fhm.edu) * Copyright: (c) 2004 Fuchsia Open Source Solutions (http://www.fuchsia.se/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/12/29 * * Diff-output language file for GeSHi. @@ -115,7 +115,7 @@ $language_data = array ( 0 => "[0-9,]+[acd][0-9,]+", //Removed lines 1 => array( - GESHI_SEARCH => '^\\<.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\<.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -123,7 +123,7 @@ $language_data = array ( ), //Inserted lines 2 => array( - GESHI_SEARCH => '^\\>.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\>.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -131,7 +131,7 @@ $language_data = array ( ), //Location line 3 => array( - GESHI_SEARCH => '^[\\-]{3}\\s.*$', + GESHI_SEARCH => '(^|(?<=\A\s))-{3}\\s.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -139,7 +139,7 @@ $language_data = array ( ), //Inserted line 4 => array( - GESHI_SEARCH => '^(\\+){3}\\s.*$', + GESHI_SEARCH => '(^|(?<=\A\s))(\\+){3}\\s.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -147,7 +147,7 @@ $language_data = array ( ), //Modified line 5 => array( - GESHI_SEARCH => '^\\!.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\!.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -155,7 +155,7 @@ $language_data = array ( ), //File specification 6 => array( - GESHI_SEARCH => '^[\\@]{2}.*$', + GESHI_SEARCH => '(^|(?<=\A\s))[\\@]{2}.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -163,7 +163,7 @@ $language_data = array ( ), //Removed line 7 => array( - GESHI_SEARCH => '^\\-.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\-.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -171,7 +171,7 @@ $language_data = array ( ), //Inserted line 8 => array( - GESHI_SEARCH => '^\\+.*$', + GESHI_SEARCH => '(^|(?<=\A\s))\\+.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -179,7 +179,7 @@ $language_data = array ( ), //File specification 9 => array( - GESHI_SEARCH => '^(\\*){3}\\s.*$', + GESHI_SEARCH => '(^|(?<=\A\s))(\\*){3}\\s.*$', GESHI_REPLACE => '\\0', GESHI_MODIFIERS => 'm', GESHI_BEFORE => '', @@ -193,4 +193,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/div.php b/inc/geshi/div.php index 0e249740c..5804bb727 100644 --- a/inc/geshi/div.php +++ b/inc/geshi/div.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Gabriel Lorenzo (ermakina@gmail.com) * Copyright: (c) 2005 Gabriel Lorenzo (http://ermakina.gazpachito.net) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/06/19 * * DIV language file for GeSHi. diff --git a/inc/geshi/dos.php b/inc/geshi/dos.php index bec3de129..c111e1b5e 100644 --- a/inc/geshi/dos.php +++ b/inc/geshi/dos.php @@ -4,7 +4,7 @@ * ------- * Author: Alessandro Staltari (staltari@geocities.com) * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/07/05 * * DOS language file for GeSHi. diff --git a/inc/geshi/dot.php b/inc/geshi/dot.php index c45a74af7..6e4df2fff 100644 --- a/inc/geshi/dot.php +++ b/inc/geshi/dot.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Adrien Friggeri (adrien@friggeri.net) * Copyright: (c) 2007 Adrien Friggeri (http://www.friggeri.net) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/05/30 * * dot language file for GeSHi. @@ -63,14 +63,14 @@ $language_data = array ( 'node', 'graph', 'digraph', 'strict', 'edge', 'subgraph' ), 3 => array( - 'Mcircle', 'Mdiamond', 'Mrecord', 'Msquare', 'TRUE', 'auto', 'back', - 'bold', 'both', 'box', 'circle', 'compress', 'dashed', 'diamond', 'dot', - 'dotted', 'doublecircle', 'doubleoctagon', 'egg', 'ellipse', 'epsf', 'false', - 'fill', 'filled', 'forward', 'global', 'hexagon', 'house', 'inv', 'invdot', - 'invhouse', 'invis', 'invodot', 'invtrapezium', 'invtriangle', 'local', 'max', - 'min', 'none', 'normal', 'octagon', 'odot', 'out', 'parallelogram', 'plaintext', - 'polygon', 'record', 'same', 'solid', 'trapezium', 'triangle', 'tripleoctagon', - 'true' + 'Mcircle', 'Mdiamond', 'Mrecord', 'Msquare', 'auto', 'back', 'bold', + 'both', 'box', 'circle', 'compress', 'dashed', 'diamond', 'dot', + 'dotted', 'doublecircle', 'doubleoctagon', 'egg', 'ellipse', 'epsf', + 'false', 'fill', 'filled', 'forward', 'global', 'hexagon', 'house', + 'inv', 'invdot', 'invhouse', 'invis', 'invodot', 'invtrapezium', + 'invtriangle', 'local', 'max', 'min', 'none', 'normal', 'octagon', + 'odot', 'out', 'parallelogram', 'plaintext', 'polygon', 'record', + 'same', 'solid', 'trapezium', 'triangle', 'tripleoctagon', 'true' ), 4 => array( 'aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'black', @@ -161,4 +161,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/eiffel.php b/inc/geshi/eiffel.php index ab7abf974..fa293c074 100644 --- a/inc/geshi/eiffel.php +++ b/inc/geshi/eiffel.php @@ -4,7 +4,7 @@ * ---------- * Author: Zoran Simic (zsimic@axarosenberg.com) * Copyright: (c) 2005 Zoran Simic - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/06/30 * * Eiffel language file for GeSHi. diff --git a/inc/geshi/email.php b/inc/geshi/email.php index a0a744c6d..a902433bf 100644 --- a/inc/geshi/email.php +++ b/inc/geshi/email.php @@ -4,7 +4,7 @@ * --------------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/10/19 * * Email (mbox \ eml \ RFC format) language file for GeSHi. @@ -51,10 +51,11 @@ $language_data = array ( 'HTTP', 'SMTP', 'ASMTP', 'ESMTP' ), 2 => array( - 'Content-Type','Content-Transfer-Encoding','Content-Disposition', - 'Delivered-To','Dkim-Signature','Domainkey-Signature','In-Reply-To', - 'Message-Id','MIME-Version','Received','Received-SPF','References', - 'Resend-From','Resend-To','Return-Path' + 'Authentication-Results','Content-Description','Content-Type', + 'Content-Disposition','Content-Transfer-Encoding','Delivered-To', + 'Dkim-Signature','Domainkey-Signature','In-Reply-To','Message-Id', + 'MIME-Version','OpenPGP','Received','Received-SPF','References', + 'Resend-From','Resend-To','Return-Path','User-Agent' ), 3 => array( 'Date','From','Subject','To', @@ -131,7 +132,7 @@ $language_data = array ( ), //Email-Adresses or Mail-IDs 2 => array( - GESHI_SEARCH => "\b[\w\.]+@\w+(?:(?:\.\w+)*\.\w{2,4})?", + GESHI_SEARCH => "\b[\w\.\-]+@\w+(?:(?:\.\w+)*\.\w{2,4})?", GESHI_REPLACE => "\\0", GESHI_MODIFIERS => "mi", GESHI_BEFORE => "", @@ -159,7 +160,7 @@ $language_data = array ( ), //Field-Assignments 5 => array( - GESHI_SEARCH => "(?<=\s)[A-Z0-9\-]+(?==(?!\s|$))", + GESHI_SEARCH => "(?<=\s)[A-Z0-9\-\.]+(?==(?:$|\s$|[^\s=]))", GESHI_REPLACE => "\\0", GESHI_MODIFIERS => "mi", GESHI_BEFORE => "", @@ -177,7 +178,7 @@ $language_data = array ( ), 'STRICT_MODE_APPLIES' => GESHI_ALWAYS, 'SCRIPT_DELIMITERS' => array( - 0 => "/(?^)[A-Z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*(?$)/m" + 0 => "/(?P^)[A-Z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*(?P$)/m" ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, diff --git a/inc/geshi/erlang.php b/inc/geshi/erlang.php new file mode 100644 index 000000000..cb7f25bf8 --- /dev/null +++ b/inc/geshi/erlang.php @@ -0,0 +1,441 @@ +' + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'Erlang', + 'COMMENT_SINGLE' => array(1 => '%'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("'", "\\"), + 'HARDCHAR' => "\\", + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + //Control flow keywrods + 1 => array( + 'after', 'andalso', 'begin', 'case', 'catch', 'end', 'fun', 'if', + 'of', 'orelse', 'receive', 'try', 'when', 'query' + ), + //Binary operators + 2 => array( + 'and', 'band', 'bnot', 'bor', 'bsl', 'bsr', 'bxor', 'div', 'not', + 'or', 'rem', 'xor' + ), + 3 => array( + 'abs', 'alive', 'apply', 'atom_to_list', 'binary_to_list', + 'binary_to_term', 'concat_binary', 'date', 'disconnect_node', + 'element', 'erase', 'exit', 'float', 'float_to_list', 'get', + 'get_keys', 'group_leader', 'halt', 'hd', 'integer_to_list', + 'is_alive', 'length', 'link', 'list_to_atom', 'list_to_binary', + 'list_to_float', 'list_to_integer', 'list_to_pid', 'list_to_tuple', + 'load_module', 'make_ref', 'monitor_node', 'node', 'nodes', 'now', + 'open_port', 'pid_to_list', 'process_flag', 'process_info', + 'process', 'put', 'register', 'registered', 'round', 'self', + 'setelement', 'size', 'spawn', 'spawn_link', 'split_binary', + 'statistics', 'term_to_binary', 'throw', 'time', 'tl', 'trunc', + 'tuple_to_list', 'unlink', 'unregister', 'whereis' + ), + // Built-In Functions + 4 => array( + 'atom', 'binary', 'constant', 'function', 'integer', 'is_atom', + 'is_binary', 'is_constant', 'is_function', 'is_integer', 'is_list', + 'is_number', 'is_pid', 'is_reference', 'is_record', 'list', + 'number', 'pid', 'ports', 'port_close', 'port_info', 'reference' + ), + // Erlang/OTP internal modules (scary one) + 5 => array( + 'alarm_handler', 'any', 'app', 'application', 'appmon', 'appup', + 'array', 'asn1ct', 'asn1rt', 'auth', 'base64', 'beam_lib', 'c', + 'calendar', 'code', 'common_test_app', 'compile', 'config', + 'corba', 'corba_object', 'cosEventApp', 'CosEventChannelAdmin', + 'CosEventChannelAdmin_ConsumerAdmin', + 'CosEventChannelAdmin_EventChannel', + 'CosEventChannelAdmin_ProxyPullConsumer', + 'CosEventChannelAdmin_ProxyPullSupplier', + 'CosEventChannelAdmin_ProxyPushConsumer', + 'CosEventChannelAdmin_ProxyPushSupplier', + 'CosEventChannelAdmin_SupplierAdmin', 'CosEventDomainAdmin', + 'CosEventDomainAdmin_EventDomain', + 'CosEventDomainAdmin_EventDomainFactory', + 'cosEventDomainApp', 'CosFileTransfer_Directory', + 'CosFileTransfer_File', 'CosFileTransfer_FileIterator', + 'CosFileTransfer_FileTransferSession', + 'CosFileTransfer_VirtualFileSystem', + 'cosFileTransferApp', 'CosNaming', 'CosNaming_BindingIterator', + 'CosNaming_NamingContext', 'CosNaming_NamingContextExt', + 'CosNotification', 'CosNotification_AdminPropertiesAdmin', + 'CosNotification_QoSAdmin', 'cosNotificationApp', + 'CosNotifyChannelAdmin_ConsumerAdmin', + 'CosNotifyChannelAdmin_EventChannel', + 'CosNotifyChannelAdmin_EventChannelFactory', + 'CosNotifyChannelAdmin_ProxyConsumer', + 'CosNotifyChannelAdmin_ProxyPullConsumer', + 'CosNotifyChannelAdmin_ProxyPullSupplier', + 'CosNotifyChannelAdmin_ProxyPushConsumer', + 'CosNotifyChannelAdmin_ProxyPushSupplier', + 'CosNotifyChannelAdmin_ProxySupplier', + 'CosNotifyChannelAdmin_SequenceProxyPullConsumer', + 'CosNotifyChannelAdmin_SequenceProxyPullSupplier', + 'CosNotifyChannelAdmin_SequenceProxyPushConsumer', + 'CosNotifyChannelAdmin_SequenceProxyPushSupplier', + 'CosNotifyChannelAdmin_StructuredProxyPullConsumer', + 'CosNotifyChannelAdmin_StructuredProxyPullSupplier', + 'CosNotifyChannelAdmin_StructuredProxyPushConsumer', + 'CosNotifyChannelAdmin_StructuredProxyPushSupplier', + 'CosNotifyChannelAdmin_SupplierAdmin', + 'CosNotifyComm_NotifyPublish', 'CosNotifyComm_NotifySubscribe', + 'CosNotifyFilter_Filter', 'CosNotifyFilter_FilterAdmin', + 'CosNotifyFilter_FilterFactory', 'CosNotifyFilter_MappingFilter', + 'cosProperty', 'CosPropertyService_PropertiesIterator', + 'CosPropertyService_PropertyNamesIterator', + 'CosPropertyService_PropertySet', + 'CosPropertyService_PropertySetDef', + 'CosPropertyService_PropertySetDefFactory', + 'CosPropertyService_PropertySetFactory', 'cosTime', + 'CosTime_TimeService', 'CosTime_TIO', 'CosTime_UTO', + 'CosTimerEvent_TimerEventHandler', + 'CosTimerEvent_TimerEventService', 'cosTransactions', + 'CosTransactions_Control', 'CosTransactions_Coordinator', + 'CosTransactions_RecoveryCoordinator', 'CosTransactions_Resource', + 'CosTransactions_SubtransactionAwareResource', + 'CosTransactions_Terminator', 'CosTransactions_TransactionFactory', + 'cover', 'cprof', 'cpu_sup', 'crashdump', 'crypto', 'crypto_app', + 'ct', 'ct_cover', 'ct_ftp', 'ct_master', 'ct_rpc', 'ct_snmp', + 'ct_ssh', 'ct_telnet', 'dbg', 'debugger', 'dets', 'dialyzer', + 'dict', 'digraph', 'digraph_utils', 'disk_log', 'disksup', + 'docb_gen', 'docb_transform', 'docb_xml_check', 'docbuilder_app', + 'driver_entry', 'edoc', 'edoc_doclet', 'edoc_extract', + 'edoc_layout', 'edoc_lib', 'edoc_run', 'egd', 'ei', 'ei_connect', + 'epmd', 'epp', 'epp_dodger', 'eprof', 'erl', 'erl_boot_server', + 'erl_call', 'erl_comment_scan', 'erl_connect', 'erl_ddll', + 'erl_driver', 'erl_error', 'erl_eterm', 'erl_eval', + 'erl_expand_records', 'erl_format', 'erl_global', 'erl_id_trans', + 'erl_internal', 'erl_lint', 'erl_malloc', 'erl_marshal', + 'erl_parse', 'erl_pp', 'erl_prettypr', 'erl_prim_loader', + 'erl_prim_loader_stub', 'erl_recomment', 'erl_scan', + 'erl_set_memory_block', 'erl_syntax', 'erl_syntax_lib', 'erl_tar', + 'erl_tidy', 'erlang', 'erlang_mode', 'erlang_stub', 'erlc', + 'erlsrv', 'error_handler', 'error_logger', 'erts_alloc', + 'erts_alloc_config', 'escript', 'et', 'et_collector', + 'et_selector', 'et_viewer', 'etop', 'ets', 'eunit', 'file', + 'file_sorter', 'filelib', 'filename', 'fixed', 'fprof', 'ftp', + 'gb_sets', 'gb_trees', 'gen_event', 'gen_fsm', 'gen_sctp', + 'gen_server', 'gen_tcp', 'gen_udp', 'gl', 'global', 'global_group', + 'glu', 'gs', 'heart', 'http', 'httpd', 'httpd_conf', + 'httpd_socket', 'httpd_util', 'i', 'ic', 'ic_c_protocol', + 'ic_clib', 'igor', 'inet', 'inets', 'init', 'init_stub', + 'instrument', 'int', 'interceptors', 'inviso', 'inviso_as_lib', + 'inviso_lfm', 'inviso_lfm_tpfreader', 'inviso_rt', + 'inviso_rt_meta', 'io', 'io_lib', 'kernel_app', 'lib', 'lists', + 'lname', 'lname_component', 'log_mf_h', 'make', 'math', 'megaco', + 'megaco_codec_meas', 'megaco_codec_transform', + 'megaco_edist_compress', 'megaco_encoder', 'megaco_flex_scanner', + 'megaco_tcp', 'megaco_transport', 'megaco_udp', 'megaco_user', + 'memsup', 'mnesia', 'mnesia_frag_hash', 'mnesia_registry', + 'mod_alias', 'mod_auth', 'mod_esi', 'mod_security', + 'Module_Interface', 'ms_transform', 'net_adm', 'net_kernel', + 'new_ssl', 'nteventlog', 'observer_app', 'odbc', 'orber', + 'orber_acl', 'orber_diagnostics', 'orber_ifr', 'orber_tc', + 'orddict', 'ordsets', 'os', 'os_mon', 'os_mon_mib', 'os_sup', + 'otp_mib', 'overload', 'packages', 'percept', 'percept_profile', + 'pg', 'pg2', 'pman', 'pool', 'prettypr', 'proc_lib', 'proplists', + 'public_key', 'qlc', 'queue', 'random', 'rb', 're', 'regexp', + 'registry', 'rel', 'release_handler', 'reltool', 'relup', 'rpc', + 'run_erl', 'run_test', 'runtime_tools_app', 'sasl_app', 'script', + 'seq_trace', 'sets', 'shell', 'shell_default', 'slave', 'snmp', + 'snmp_app', 'snmp_community_mib', 'snmp_framework_mib', + 'snmp_generic', 'snmp_index', 'snmp_notification_mib', 'snmp_pdus', + 'snmp_standard_mib', 'snmp_target_mib', 'snmp_user_based_sm_mib', + 'snmp_view_based_acm_mib', 'snmpa', 'snmpa_conf', 'snmpa_error', + 'snmpa_error_io', 'snmpa_error_logger', 'snmpa_error_report', + 'snmpa_local_db', 'snmpa_mpd', 'snmpa_network_interface', + 'snmpa_network_interface_filter', + 'snmpa_notification_delivery_info_receiver', + 'snmpa_notification_filter', 'snmpa_supervisor', 'snmpc', 'snmpm', + 'snmpm_conf', 'snmpm_mpd', 'snmpm_network_interface', 'snmpm_user', + 'sofs', 'ssh', 'ssh_channel', 'ssh_connection', 'ssh_sftp', + 'ssh_sftpd', 'ssl', 'ssl_app', 'ssl_pkix', 'start', 'start_erl', + 'start_webtool', 'stdlib_app', 'string', 'supervisor', + 'supervisor_bridge', 'sys', 'systools', 'tags', 'test_server', + 'test_server_app', 'test_server_ctrl', 'tftp', 'timer', 'toolbar', + 'ttb', 'tv', 'unicode', 'unix_telnet', 'user', 'webtool', 'werl', + 'win32reg', 'wrap_log_reader', 'wx', 'wx_misc', 'wx_object', + 'wxAcceleratorEntry', 'wxAcceleratorTable', 'wxArtProvider', + 'wxAuiDockArt', 'wxAuiManager', 'wxAuiNotebook', 'wxAuiPaneInfo', + 'wxAuiTabArt', 'wxBitmap', 'wxBitmapButton', 'wxBitmapDataObject', + 'wxBoxSizer', 'wxBrush', 'wxBufferedDC', 'wxBufferedPaintDC', + 'wxButton', 'wxCalendarCtrl', 'wxCalendarDateAttr', + 'wxCalendarEvent', 'wxCaret', 'wxCheckBox', 'wxCheckListBox', + 'wxChildFocusEvent', 'wxChoice', 'wxClientDC', 'wxClipboard', + 'wxCloseEvent', 'wxColourData', 'wxColourDialog', + 'wxColourPickerCtrl', 'wxColourPickerEvent', 'wxComboBox', + 'wxCommandEvent', 'wxContextMenuEvent', 'wxControl', + 'wxControlWithItems', 'wxCursor', 'wxDataObject', 'wxDateEvent', + 'wxDatePickerCtrl', 'wxDC', 'wxDialog', 'wxDirDialog', + 'wxDirPickerCtrl', 'wxDisplayChangedEvent', 'wxEraseEvent', + 'wxEvent', 'wxEvtHandler', 'wxFileDataObject', 'wxFileDialog', + 'wxFileDirPickerEvent', 'wxFilePickerCtrl', 'wxFindReplaceData', + 'wxFindReplaceDialog', 'wxFlexGridSizer', 'wxFocusEvent', 'wxFont', + 'wxFontData', 'wxFontDialog', 'wxFontPickerCtrl', + 'wxFontPickerEvent', 'wxFrame', 'wxGauge', 'wxGBSizerItem', + 'wxGenericDirCtrl', 'wxGLCanvas', 'wxGraphicsBrush', + 'wxGraphicsContext', 'wxGraphicsFont', 'wxGraphicsMatrix', + 'wxGraphicsObject', 'wxGraphicsPath', 'wxGraphicsPen', + 'wxGraphicsRenderer', 'wxGrid', 'wxGridBagSizer', 'wxGridCellAttr', + 'wxGridCellEditor', 'wxGridCellRenderer', 'wxGridEvent', + 'wxGridSizer', 'wxHelpEvent', 'wxHtmlEasyPrinting', 'wxIcon', + 'wxIconBundle', 'wxIconizeEvent', 'wxIdleEvent', 'wxImage', + 'wxImageList', 'wxJoystickEvent', 'wxKeyEvent', + 'wxLayoutAlgorithm', 'wxListBox', 'wxListCtrl', 'wxListEvent', + 'wxListItem', 'wxListView', 'wxMask', 'wxMaximizeEvent', + 'wxMDIChildFrame', 'wxMDIClientWindow', 'wxMDIParentFrame', + 'wxMemoryDC', 'wxMenu', 'wxMenuBar', 'wxMenuEvent', 'wxMenuItem', + 'wxMessageDialog', 'wxMiniFrame', 'wxMirrorDC', + 'wxMouseCaptureChangedEvent', 'wxMouseEvent', 'wxMoveEvent', + 'wxMultiChoiceDialog', 'wxNavigationKeyEvent', 'wxNcPaintEvent', + 'wxNotebook', 'wxNotebookEvent', 'wxNotifyEvent', + 'wxPageSetupDialog', 'wxPageSetupDialogData', 'wxPaintDC', + 'wxPaintEvent', 'wxPalette', 'wxPaletteChangedEvent', 'wxPanel', + 'wxPasswordEntryDialog', 'wxPen', 'wxPickerBase', 'wxPostScriptDC', + 'wxPreviewCanvas', 'wxPreviewControlBar', 'wxPreviewFrame', + 'wxPrintData', 'wxPrintDialog', 'wxPrintDialogData', 'wxPrinter', + 'wxPrintout', 'wxPrintPreview', 'wxProgressDialog', + 'wxQueryNewPaletteEvent', 'wxRadioBox', 'wxRadioButton', + 'wxRegion', 'wxSashEvent', 'wxSashLayoutWindow', 'wxSashWindow', + 'wxScreenDC', 'wxScrollBar', 'wxScrolledWindow', 'wxScrollEvent', + 'wxScrollWinEvent', 'wxSetCursorEvent', 'wxShowEvent', + 'wxSingleChoiceDialog', 'wxSizeEvent', 'wxSizer', 'wxSizerFlags', + 'wxSizerItem', 'wxSlider', 'wxSpinButton', 'wxSpinCtrl', + 'wxSpinEvent', 'wxSplashScreen', 'wxSplitterEvent', + 'wxSplitterWindow', 'wxStaticBitmap', 'wxStaticBox', + 'wxStaticBoxSizer', 'wxStaticLine', 'wxStaticText', 'wxStatusBar', + 'wxStdDialogButtonSizer', 'wxStyledTextCtrl', 'wxStyledTextEvent', + 'wxSysColourChangedEvent', 'wxTextAttr', 'wxTextCtrl', + 'wxTextDataObject', 'wxTextEntryDialog', 'wxToggleButton', + 'wxToolBar', 'wxToolTip', 'wxTopLevelWindow', 'wxTreeCtrl', + 'wxTreeEvent', 'wxUpdateUIEvent', 'wxWindow', 'wxWindowCreateEvent', + 'wxWindowDC', 'wxWindowDestroyEvent', 'wxXmlResource', 'xmerl', + 'xmerl_eventp', 'xmerl_scan', 'xmerl_xpath', 'xmerl_xs', + 'xmerl_xsd', 'xref', 'yecc', 'zip', 'zlib', 'zlib_stub' + ), + // Binary modifiers + 6 => array( + 'big', 'binary', 'float', 'integer', 'little', 'signed', 'unit', 'unsigned' + ) + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '[', ']', '{', '}'), + 1 => array('->', ',', ';', '.'), + 2 => array('<<', '>>'), + 3 => array('=', '||', '-', '+', '*', '/', '++', '--', '!', '<', '>', '>=', + '=<', '==', '/=', '=:=', '=/=') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #186895;', + 2 => 'color: #014ea4;', + 3 => 'color: #fa6fff;', + 4 => 'color: #fa6fff;', + 5 => 'color: #ff4e18;', + 6 => 'color: #9d4f37;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #109ab8;' + ), + 'STRINGS' => array( + 0 => 'color: #ff7800;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff9600;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #004866;', + 1 => 'color: #6bb810;', + 2 => 'color: #ee3800;', + 3 => 'color: #014ea4;' + ), + 'REGEXPS' => array( + 0 => 'color: #6941fd;', + 1 => 'color: #d400ed;', + 2 => 'color: #5400b3;', + 3 => 'color: #ff3c00;', + 4 => 'color: #6941fd;', + 5 => 'color: #45b3e6;', + 6 => 'color: #ff9600;', + 7 => 'color: #d400ed;', + 8 => 'color: #ff9600;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => 'http://erlang.org/doc/man/{FNAME}.html', + 6 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '->', + 2 => ':' + ), + 'REGEXPS' => array( + //Macro definitions + 0 => array( + GESHI_SEARCH => '(-define\s*\()([a-zA-Z0-9_]+)(\(|,)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '\3' + ), + // Record definitions + 1 => array( + GESHI_SEARCH => '(-record\s*\()([a-zA-Z0-9_]+)(,)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '\3' + ), + // Precompiler directives + 2 => array( + GESHI_SEARCH => '(-)([a-z][a-zA-Z0-9_]*)(\()', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '\3' + ), + // Functions + 3 => array( + GESHI_SEARCH => '([a-z][a-zA-Z0-9_]*|\'[a-zA-Z0-9_]*\')\s*(\()', + GESHI_REPLACE => '\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '\2' + ), + // Macros + 4 => array( + GESHI_SEARCH => '(\?)([a-zA-Z0-9_]+)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '' + ), + // Variables - With hack to avoid interfering wish GeSHi internals + 5 => array( + GESHI_SEARCH => '([([{,<+*-\/=\s!]|<)(?!(?:PIPE|SEMI|DOT|NUM|REG3XP\d*)[^a-zA-Z0-9_])([A-Z_][a-zA-Z0-9_]*)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '' + ), + // ASCIIcodes + 6 => '(\$[a-zA-Z0-9_])', + // Records + 7 => array( + GESHI_SEARCH => '(#)([a-z][a-zA-Z0-9_]*)(\.|\{)', + GESHI_REPLACE => '\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1', + GESHI_AFTER => '\3' + ), + // Numbers with a different radix + 8 => '(?<=>)(#[a-zA-Z0-9]*)' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_BEFORE' => '', + 'DISALLOWED_AFTER' => '(?=\s*\()' + ), + 5 => array( + 'DISALLOWED_BEFORE' => '(?<=\'|)', + 'DISALLOWED_AFTER' => '(?=(\'|):)' + ), + 6 => array( + 'DISALLOWED_BEFORE' => '(?<=\/|-)', + 'DISALLOWED_AFTER' => '' + ) + ) + ), +); + +?> \ No newline at end of file diff --git a/inc/geshi/fo.php b/inc/geshi/fo.php new file mode 100644 index 000000000..aa4567961 --- /dev/null +++ b/inc/geshi/fo.php @@ -0,0 +1,327 @@ + 'FO (abas-ERP)', + 'COMMENT_SINGLE' => array(1 => '..'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + //Control Flow + 1 => array( + /* see http://www.abas.de/sub_de/kunden/help/hd/html/9.html */ + + /* fo keywords, part 1: control flow */ + '.weiter', '.continue' + + /* this language works with goto's only*/ + ), + + //FO Keywords + 2 => array( + /* fo keywords, part 2 */ + '.fo', '.formel', '.formula', + '.zuweisen', '.assign', + '.fehler', '.error', + '.ende', '.end' + ), + + //Java Keywords + 3 => array( + /* Java keywords, part 3: primitive data types */ + '.art', '.type', + 'integer', 'real', 'bool', 'text', 'datum', 'woche', 'termin', 'zeit', + 'mehr', 'MEHR' + ), + + //Reserved words in fo literals + 4 => array( + /* other reserved words in fo literals */ + /* should be styled to look similar to numbers and Strings */ + 'false', 'null', 'true', + 'OBJEKT', + 'VORGANG', 'PROCESS', + 'OFFEN', 'OPEN', + 'ABORT', + 'AN', 'ADDEDTO', + 'AUF', 'NEW', + 'BILDSCHIRM', 'TERMINAL', + 'PC', + 'MASKE', 'SCREEN', + 'ZEILE', 'LINE' + ), + + // interpreter settings + 5 => array ( + '..!INTERPRETER', 'DEBUG' + ), + + // database commands + 6 => array ( + '.hole', '.hol', '.select', + '.lade', '.load', + '.aktion', '.action', + '.belegen', '.occupy', + '.bringe', '.rewrite', + '.dazu', '.add', + '.löschen', '.delete', + '.mache', '.make', + '.merke', '.reserve', + '.setze', '.set', + 'SPERREN', 'LOCK', + 'TEIL', 'PART', + 'KEINESPERRE', + 'AMASKE', 'ASCREEN', + 'BETRIEB', 'WORK-ORDER', + 'NUMERISCH', 'NUMERICAL', + 'VORSCHLAG', 'SUGGESTION', + 'OBLIGO', 'OUTSTANDING', + 'LISTE', 'LIST', + 'DRUCK', 'PRINT', + 'ÜBERNAHME', 'TAGEOVER', + 'ABLAGE', 'FILINGSYSTEM', + 'BDE', 'PDC', + 'BINDUNG', 'ALLOCATION', + 'BUCHUNG', 'ENTRY', + 'COLLI', 'SERIAL', + 'DATEI', 'FILE', + 'VERKAUF', 'SALES', + 'EINKAUF', 'PURCHASING', + 'EXEMPLAR', 'EXAMPLE', + 'FERTIGUNG', 'PRODUCTION', + 'FIFO', + 'GRUPPE', 'GROUP', + 'JAHR', 'YEAR', + 'JOURNAL', + 'KOPF', 'HEADER', + 'KOSTEN', + 'LIFO', + 'LMENGE', 'SQUANTITY', + 'LOHNFERTIGUNG', 'SUBCONTRACTING', + 'LPLATZ', 'LOCATION', + 'MBELEGUNG', 'MACHLOADING', + 'MONAT', 'MONTH', 'MZ', + 'NACHRICHT', 'MESSAGE', + 'PLAN', 'TARGET', + 'REGIONEN', 'REGIONS', + 'SERVICEANFRAGE', 'SERVICEREQUEST', + 'VERWENDUNG', 'APPLICATION', + 'WEITER', 'CONTINUE', + 'ABBRUCH', 'CANCEL', + 'ABLAGEKENNZEICHEN', 'FILLINGCODE', + 'ALLEIN', 'SINGLEUSER', + 'AUFZAEHLTYP', 'ENUMERATION-TYPE', + 'AUSGABE', 'OUTPUT', + 'DEZPUNKT', 'DECPOINT' + ), + + // output settings + 7 => array ( + '.absatz', '.para', + '.blocksatz', '.justified', + '.flattersatz', '.unjustified', + '.format', + '.box', + '.drucken', '.print', + '.gedruckt', '.printed', + '.länge', '.length', + '.links', '.left', + '.rechts', '.right', + '.oben', '.up', + '.unten', '.down', + '.seite', '.page', + '.tabellensatz', '.tablerecord', + '.trenner', '.separator', + 'ARCHIV' + ), + + // text commands + 8 => array ( + '.text', + '.atext', + '.println', + '.uebersetzen', '.translate' + ), + + // I/O commands + 9 => array ( + '.aus', '.ausgabe', '.output', + '.ein', '.eingabe', '.input', + '.datei', '.file', + '.lesen', '.read', + '.sortiere', '.sort', + '-ÖFFNEN', '-OPEN', + '-TEST', + '-LESEN', '-READ', + 'VON', 'FROM' + ), + + //system + 10 => array ( + '.browser', + '.kommando', '.command', + '.system', '.dde', + '.editiere', '.edit', + '.hilfe', '.help', + '.kopieren', '.copy', + '.pc.clip', + '.pc.copy', + '.pc.dll', + '.pc.exec', + '.pc.open', + 'DIAGNOSE', 'ERRORREPORT', + 'DOPPELPUNKT', 'COLON', + 'ERSETZUNG', 'REPLACEMENT', + 'WARTEN', 'PARALLEL' + ), + + //fibu/accounting specific commands + 11 => array ( + '.budget', + '.chart', + 'VKZ', + 'KONTO', 'ACCOUNT', + 'AUSZUG', 'STATEMENT', + 'WAEHRUNG', 'CURRENCY', + 'WAEHRUNGSKURS', 'EXCHANGERATE', + 'AUSWAEHR', 'FORCURR', + 'BUCHUNGSKREIS', 'SET OF BOOKS' + ), + + // efop - extended flexible surface + 12 => array ( + '.cursor', + '.farbe', '.colour', + '.fenster', '.window', + '.hinweis', '.note', + '.menue', '.menu', + '.schutz', '.protection', + '.zeigen', '.view', + '.zeile', '.line', + 'VORDERGRUND', 'FOREGROUND', + 'HINTERGRUND', 'BACKGROUND', + 'SOFORT', 'IMMEDIATELY', + 'AKTUALISIEREN', 'UPDATE', + 'FENSTERSCHLIESSEN', 'CLOSEWINDOWS' + ), + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '[', ']', '{', '}', '*', '&', '%', ';', '<', '>'), + 1 => array('?', '!') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + /* all fo keywords are case sensitive, don't have to but I like this type of coding */ + 1 => true, 2 => true, 3 => true, 4 => true, + 5 => true, 6 => true, 7 => true, 8 => true, 9 => true, + 10 => true, 11 => true, 12 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #006600; font-weight: bold;', + 4 => 'color: #006600; font-weight: bold;', + 5 => 'color: #003399; font-weight: bold;', + 6 => 'color: #003399; font-weight: bold;', + 7 => 'color: #003399; font-weight: bold;', + 8 => 'color: #003399; font-weight: bold;', + 9 => 'color: #003399; font-weight: bold;', + 10 => 'color: #003399; font-weight: bold;', + 11 => 'color: #003399; font-weight: bold;', + 12 => 'color: #003399; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + //2 => 'color: #006699;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006633;', + 2 => 'color: #006633;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;', + 1 => 'color: #000000; font-weight: bold;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '', + 10 => '', + 11 => '', + 12 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); +?> \ No newline at end of file diff --git a/inc/geshi/fortran.php b/inc/geshi/fortran.php index 26dc9b19d..7b390eda7 100644 --- a/inc/geshi/fortran.php +++ b/inc/geshi/fortran.php @@ -4,7 +4,7 @@ * ----------- * Author: Cedric Arrabie (cedric.arrabie@univ-pau.fr) * Copyright: (C) 2006 Cetric Arrabie - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/04/22 * * Fortran language file for GeSHi. diff --git a/inc/geshi/freebasic.php b/inc/geshi/freebasic.php index 780305ba3..faeee92f9 100644 --- a/inc/geshi/freebasic.php +++ b/inc/geshi/freebasic.php @@ -4,7 +4,7 @@ * ------------- * Author: Roberto Rossi * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/08/19 * * FreeBasic (http://www.freebasic.net/) language file for GeSHi. diff --git a/inc/geshi/fsharp.php b/inc/geshi/fsharp.php new file mode 100644 index 000000000..7743d3643 --- /dev/null +++ b/inc/geshi/fsharp.php @@ -0,0 +1,211 @@ + 'F#', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('(*' => '*)', '/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'HARDQUOTE' => array('@"', '"'), + 'HARDESCAPE' => array('"'), + 'HARDCHAR' => '"', + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + /* main F# keywords */ + /* section 3.4 */ + 1 => array( + 'abstract', 'and', 'as', 'assert', 'base', 'begin', 'class', 'default', 'delegate', 'do', 'done', + 'downcast', 'downto', 'elif', 'else', 'end', 'exception', 'extern', 'false', 'finally', 'for', + 'fun', 'function', 'if', 'in', 'inherit', 'inline', 'interface', 'internal', 'lazy', 'let', + 'match', 'member', 'module', 'mutable', 'namespace', 'new', 'not', 'null', 'of', 'open', 'or', + 'override', 'private', 'public', 'rec', 'return', 'sig', 'static', 'struct', 'then', 'to', + 'true', 'try', 'type', 'upcast', 'use', 'val', 'void', 'when', 'while', 'with', 'yield', + 'asr', 'land', 'lor', 'lsl', 'lsr', 'lxor', 'mod', + /* identifiers are reserved for future use by F# */ + 'atomic', 'break', 'checked', 'component', 'const', 'constraint', 'constructor', + 'continue', 'eager', 'fixed', 'fori', 'functor', 'global', 'include', 'method', 'mixin', + 'object', 'parallel', 'params', 'process', 'protected', 'pure', 'sealed', 'tailcall', + 'trait', 'virtual', 'volatile', + /* take monads into account */ + 'let!', 'yield!' + ), + /* define names of main libraries in F# Core, so we can link to it + * http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html + */ + 2 => array( + 'Array', 'Array2D', 'Array3D', 'Array4D', 'ComparisonIdentity', 'HashIdentity', 'List', + 'Map', 'Seq', 'SequenceExpressionHelpers', 'Set', 'CommonExtensions', 'Event', + 'ExtraTopLevelOperators', 'LanguagePrimitives', 'NumericLiterals', 'Operators', + 'OptimizedClosures', 'Option', 'String', 'NativePtr', 'Printf' + ), + /* 17.2 & 17.3 */ + 3 => array( + 'abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp', + 'floor', 'log', 'log10', 'pown', 'round', 'sign', 'sin', 'sinh', 'sqrt', + 'tan', 'tanh', + 'ignore', + 'fst', 'snd', + 'stdin', 'stdout', 'stderr', + 'KeyValue', + 'max', 'min' + ), + /* Pervasives Types & Overloaded Conversion Functions */ + 4 => array( + 'bool', 'byref', 'byte', 'char', 'decimal', 'double', 'exn', 'float', 'float32', + 'FuncConvert', 'ilsigptr', 'int', 'int16', 'int32', 'int64', 'int8', + 'nativeint', 'nativeptr', 'obj', 'option', 'ref', 'sbyte', 'single', 'string', 'uint16', + 'uint32', 'uint64', 'uint8', 'unativeint', 'unit', + 'enum', + 'async', 'seq', 'dict' + ), + /* 17.2 Exceptions */ + 5 => array ( + 'failwith', 'invalidArg', 'raise', 'rethrow' + ), + /* 3.3 Conditional compilation & 13.3 Compiler Directives + light / light off */ + 6 => array( + '(*IF-FSHARP', 'ENDIF-FSHARP*)', '(*F#', 'F#*)', '(*IF-OCAML', 'ENDIF-OCAML*)', + '#light', + '#if', '#else', '#endif', '#indent', '#nowarn', '#r', '#reference', + '#I', '#Include', '#load', '#time', '#help', '#q', '#quit', + ), + /* 3.11 Pre-processor Declarations / Identifier Replacements */ + 7 => array( + '__SOURCE_DIRECTORY__', '__SOURCE_FILE__', '__LINE__' + ), + /* 17.2 Object Transformation Operators */ + 8 => array( + 'box', 'hash', 'sizeof', 'typeof', 'typedefof', 'unbox' + ) + ), + /* 17.2 basic operators + the yield and yield! arrows */ + 'SYMBOLS' => array( + 1 => array('+', '-', '/', '*', '**', '%', '~-'), + 2 => array('<', '<=', '>', '<=', '=', '<>'), + 3 => array('<<<', '>>>', '^^^', '&&&', '|||', '~~~'), + 4 => array('|>', '>>', '<|', '<<'), + 5 => array('!', '->', '->>'), + 6 => array('[',']','(',')','{','}', '[|', '|]', '(|', '|)'), + 7 => array(':=', ';', ';;') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, /* keywords */ + 2 => true, /* modules */ + 3 => true, /* pervasives functions */ + 4 => true, /* types and overloaded conversion operators */ + 5 => true, /* exceptions */ + 6 => true, /* conditional compilation & compiler Directives */ + 7 => true, /* pre-processor declarations / identifier replacements */ + 8 => true /* object transformation operators */ + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #06c; font-weight: bold;', /* nice blue */ + 2 => 'color: #06c; font-weight: bold;', /* nice blue */ + 3 => 'color: #06c; font-weight: bold;', /* nice blue */ + 4 => 'color: #06c; font-weight: bold;', /* nice blue */ + 5 => 'color: #06c; font-weight: bold;', /* nice blue */ + 6 => 'color: #06c; font-weight: bold;', /* nice blue */ + 7 => 'color: #06c; font-weight: bold;', /* nice blue */ + 8 => 'color: #06c; font-weight: bold;' /* nice blue */ + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */ + 1 => 'color: #5d478b; font-style: italic;', + 2 => 'color: #5d478b; font-style: italic;' /* light purple */ + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + 0 => 'color: #6c6;' + ), + 'STRINGS' => array( + 0 => 'color: #3cb371;' /* nice green */ + ), + 'NUMBERS' => array( + 0 => 'color: #c6c;' /* pink */ + ), + 'METHODS' => array( + 1 => 'color: #060;' /* dark green */ + ), + 'REGEXPS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #a52a2a;' /* maroon */ + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + /* some of keywords are Pervasives functions (land, lxor, asr, ...) */ + 1 => '', + 2 => 'http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])" + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/gambas.php b/inc/geshi/gambas.php new file mode 100644 index 000000000..a848440df --- /dev/null +++ b/inc/geshi/gambas.php @@ -0,0 +1,214 @@ + 'GAMBAS', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + //keywords + 1 => array( + 'APPEND', 'AS', 'BREAK', 'BYREF', 'CASE', 'CATCH', 'CLASS', 'CLOSE', 'CONST', 'CONTINUE', 'COPY', + 'CREATE', 'DEBUG', 'DEC', 'DEFAULT', 'DIM', 'DO', 'EACH', 'ELSE', 'END', 'ENDIF', 'ERROR', 'EVENT', 'EXEC', + 'EXPORT', 'EXTERN', 'FALSE', 'FINALLY', 'FLUSH', 'FOR', 'FUNCTION', 'GOTO', 'IF', 'IN', 'INC', 'INHERITS', + 'INPUT', 'FROM', 'IS', 'KILL', 'LAST', 'LIBRARY', 'LIKE', 'LINE INPUT', 'LINK', 'LOCK', 'LOOP', 'ME', + 'MKDIR', 'MOVE', 'NEW', 'NEXT', 'NULL', 'OPEN', 'OPTIONAL', 'OUTPUT', 'PIPE', 'PRINT', 'PRIVATE', + 'PROCEDURE', 'PROPERTY', 'PUBLIC', 'QUIT', 'RAISE', 'RANDOMIZE', 'READ', 'REPEAT', 'RETURN', 'RMDIR', + 'SEEK', 'SELECT', 'SHELL', 'SLEEP', 'STATIC', 'STEP', 'STOP', 'SUB', 'SUPER', 'SWAP', 'THEN', 'TO', + 'TRUE', 'TRY', 'UNLOCK', 'UNTIL', 'WAIT', 'WATCH', 'WEND', 'WHILE', 'WITH', 'WRITE' + ), + //functions + 2 => array( + 'Abs', 'Access', 'Acos', 'Acosh', 'Alloc', 'Ang', 'Asc', 'ASin', 'ASinh', 'Asl', 'Asr', 'Assign', 'Atan', + 'ATan2', 'ATanh', + 'BChg', 'BClr', 'Bin', 'BSet', 'BTst', + 'CBool', 'Cbr', 'CByte', 'CDate', 'CFloat', 'Choose', 'Chr', 'CInt', 'CLong', 'Comp', 'Conv', 'Cos', + 'Cosh', 'CShort', 'CSng', 'CStr', + 'DateAdd', 'DateDiff', 'Day', 'DConv', 'Deg', 'DFree', 'Dir', + 'Eof', 'Eval', 'Exist', 'Exp', 'Exp10', 'Exp2', 'Expm', + 'Fix', 'Format', 'Frac', 'Free', + 'Hex', 'Hour', 'Hyp', + 'Iif', 'InStr', 'Int', 'IsAscii', 'IsBlank', 'IsBoolean', 'IsByte', 'IsDate', 'IsDigit', 'IsDir', + 'IsFloat', 'IsHexa', 'IsInteger', 'IsLCase', 'IsLetter', 'IsLong', 'IsNull', 'IsNumber', 'IsObject', + 'IsPunct', 'IsShort', 'IsSingle', 'IsSpace', 'IsString', 'IsUCase', 'IsVariant', + 'LCase', 'Left', 'Len', 'Lof', 'Log', 'Log10', 'Log2', 'Logp', 'Lsl', 'Lsr', 'LTrim', + 'Mag', 'Max', 'Mid', 'Min', 'Minute', 'Month', 'Now', 'Quote', + 'Rad', 'RDir', 'Realloc', 'Replace', 'Right', 'RInStr', 'Rnd', 'Rol', 'Ror', 'Round', 'RTrim', + 'Scan', 'SConv', 'Second', 'Seek', 'Sgn', 'Shl', 'Shr', 'Sin', 'Sinh', 'Space', 'Split', 'Sqr', + 'Stat', 'Str', 'StrPtr', 'Subst', + 'Tan', 'Tanh', 'Temp$', 'Time', 'Timer', 'Tr', 'Trim', 'TypeOf', + 'UCase', 'Unquote', 'Val', 'VarPtr', 'Week', 'WeekDay', 'Year' + ), + //string functions + 3 => array( + 'Bin$', 'Chr$', 'Conv$', 'DConv$', 'Format$', 'Hex$', 'LCase$', 'Left$', 'LTrim$', 'Mid$', 'Quote$', + 'Replace$', 'Right$', 'SConv$', 'Space$', 'Str$', 'String$', 'Subst$', 'Tr$', 'Trim$', 'UCase$', + 'Unquote$' + ), + //datatypes + 4 => array( + 'Boolean', 'Byte', 'Short', 'Integer', 'Long', 'Single', 'Float', 'Date', 'String', 'Variant', 'Object', + 'Pointer', 'File' + ), + //operators + 5 => array( + 'AND', 'DIV', 'MOD', 'NOT', 'OR', 'XOR' + ), + //objects/classes + 6 => array( + 'Application', 'Array', 'Byte[]', 'Collection', 'Component', 'Enum', 'Observer', 'Param', 'Process', + 'Stream', 'System', 'User', 'Chart', 'Compress', 'Crypt', 'Blob', 'Connection', 'DB', 'Database', + 'DatabaseUser', 'Field', 'Index', 'Result', 'ResultField', 'Table', 'DataBrowser', 'DataCombo', + 'DataControl', 'DataSource', 'DataView', 'Desktop', 'DesktopFile', 'Balloon', 'ColorButton', + 'ColorChooser', 'DateChooser', 'DirChooser', 'DirView', 'Expander', 'FileChooser', 'FileView', + 'FontChooser', 'InputBox', 'ListContainer', 'SidePanel', 'Stock', 'TableView', 'ToolPanel', 'ValueBox', + 'Wizard', 'Dialog', 'ToolBar', 'WorkSpace', 'DnsClient', 'SerialPort', 'ServerSocket', 'Socket', + 'UdpSocket', 'FtpClient', 'HttpClient', 'SmtpClient', 'Regexp', 'Action', 'Button', 'CheckBox', + 'ColumnView', 'ComboBox', 'Draw', 'Container', 'Control', 'Cursor', 'DrawingArea', 'Embedder', + 'Font', 'Form', 'Frame', 'GridView', 'HBox', 'HPanel', 'HSplit', 'IconView', 'Image', 'Key', 'Label', + 'Line', 'ListBox', 'ListView', 'Menu', 'Message', 'Mouse', 'MovieBox', 'Panel', 'Picture', 'PictureBox', + 'ProgressBar', 'RadioButton', 'ScrollBar', 'ScrollView', 'Separator', 'Slider', 'SpinBox', 'TabStrip', + 'TextArea', 'TextBox', 'TextLabel', 'ToggleButton', 'TrayIcon', 'TreeView', 'VBox', 'VPanel', 'VSplit', + 'Watcher', 'Window', 'Dial', 'Editor', 'LCDNumber', 'Printer', 'TextEdit', 'WebBrowser', 'GLarea', + 'Report', 'ReportCloner', 'ReportContainer', 'ReportControl', 'ReportDrawing', 'ReportField', 'ReportHBox', + 'ReportImage', 'ReportLabel', 'ReportSection', 'ReportSpecialField', 'ReportTextLabel', 'ReportVBox', + 'CDRom', 'Channel', 'Music', 'Sound', 'Settings', 'VideoDevice', 'Vb', 'CGI', 'HTML', 'Request', 'Response', + 'Session', 'XmlDocument', 'XmlNode', 'XmlReader', 'XmlReaderNodeType', 'XmlWriter', 'RpcArray', 'RpcClient', + 'RpcFunction', 'RpcServer', 'RpcStruct', 'RpcType', 'XmlRpc', 'Xslt' + ), + //constants + 7 => array( + 'Pi' + ), + ), + 'SYMBOLS' => array( + '&', '&=', '&/', '*', '*=', '+', '+=', '-', '-=', '//', '/', '/=', '=', '==', '\\', '\\=', + '^', '^=', '[', ']', '{', '}', '<', '>', '<>', '<=', '>=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0600FF; font-weight: bold;', // Keywords + 2 => 'color: #8B1433;', // Functions + 3 => 'color: #8B1433;', // String Functions + 4 => 'color: #0600FF;', // Data Types + 5 => 'color: #1E90FF;', // Operators + 6 => 'color: #0600FF;', // Objects/Components + 7 => 'color: #0600FF;' // Constants + ), + 'COMMENTS' => array( + 1 => 'color: #1A5B1A; font-style: italic;', + 'MULTI' => 'color: #1A5B1A; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #008080;' + ), + 'BRACKETS' => array( + 0 => 'color: #612188;' + ), + 'STRINGS' => array( + 0 => 'color: #7E4B05;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF0000;', + GESHI_NUMBER_INT_BASIC => 'color: #FF0000;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF;' + ), + 'SYMBOLS' => array( + 0 => 'color: #6132B2;' + ), + 'REGEXPS' => array( + //3 => 'color: #8B1433;' //fakes '$' colour matched by REGEXP + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => 'http://gambasdoc.org/help/lang/{FNAMEL}', + 2 => 'http://gambasdoc.org/help/lang/{FNAMEL}', + 3 => 'http://www.google.com/search?hl=en&q={FNAMEL}+site:http://gambasdoc.org/help/lang/&btnI=I%27m%20Feeling%20Lucky', + 4 => 'http://gambasdoc.org/help/lang/type/{FNAMEL}', + 5 => 'http://gambasdoc.org/help/lang/{FNAMEL}', + 6 => 'http://www.google.com/search?hl=en&q={FNAMEL}+site:http://gambasdoc.org/&btnI=I%27m%20Feeling%20Lucky', + 7 => 'http://gambasdoc.org/help/lang/{FNAMEL}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 =>'.' + ), + 'REGEXPS' => array( + //3 => "\\$(?!\\w)" //matches '$' at the end of Keyword + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 2 => array( + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-&;\$])" + ) + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/gdb.php b/inc/geshi/gdb.php new file mode 100644 index 000000000..10a35cd38 --- /dev/null +++ b/inc/geshi/gdb.php @@ -0,0 +1,175 @@ + 'GDB', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 0 => array( + 'Application', + 'signal', + ), + 1 => array( + 'Segmentation fault', + '[KCrash Handler]', + ), + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC, + 'SYMBOLS' => array( + ), + 'CASE_SENSITIVE' => array( + 0 => true, + 1 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 0 => 'font-weight:bold;', + 1 => 'font-weight:bold; color: #ff0000;' + ), + 'COMMENTS' => array( + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'font-weight:bold;' + ), + 'STRINGS' => array( + 0 => 'color: #933;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #000066; font-weight:bold;', + 1 => 'color: #006600;', + 2 => 'color: #000066;', + 3 => 'color: #0066FF; text-style:italic;', + 4 => 'color: #80B5FF; text-style:italic;', + 5 => 'color: #A3007D;', + 6 => 'color: #FF00BF;', + 7 => 'font-weight: bold;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 0 => '', + 1 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //[Current Thread...], [KCrash Handler] etc. + 0 => array( + GESHI_SEARCH => '^\[.+\]', + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + //stack number + 1 => array( + GESHI_SEARCH => '^#\d+', + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + //Thread X (Thread...) + 2 => array( + GESHI_SEARCH => '^Thread \d.+$', + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + //Files with linenumbers + 3 => array( + GESHI_SEARCH => '(at )(.+)(:\d+\s*)$', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + //Libs without linenumbers + 4 => array( + GESHI_SEARCH => '(from )(.+)(\s*)$', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + //Hex mem address + 5 => '0x[a-f0-9]+', + //Line numbers + 6 => array( + GESHI_SEARCH => '(:)(\d+)(\s*)$', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + //Location + 7 => array( + GESHI_SEARCH => '( in )([^ \(\)]+)( \()', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> diff --git a/inc/geshi/genero.php b/inc/geshi/genero.php index 1e3d7efb6..0b5611627 100644 --- a/inc/geshi/genero.php +++ b/inc/geshi/genero.php @@ -4,7 +4,7 @@ * ---------- * Author: Lars Gersmann (lars.gersmann@gmail.com) * Copyright: (c) 2007 Lars Gersmann, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/07/01 * * Genero (FOURJ's Genero 4GL) language file for GeSHi. diff --git a/inc/geshi/gettext.php b/inc/geshi/gettext.php index a1dcd8c8a..10201bd1a 100644 --- a/inc/geshi/gettext.php +++ b/inc/geshi/gettext.php @@ -4,7 +4,7 @@ * -------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/05/25 * * GNU Gettext .po/.pot language file for GeSHi. diff --git a/inc/geshi/glsl.php b/inc/geshi/glsl.php index 9b31fa482..8f521bfc1 100644 --- a/inc/geshi/glsl.php +++ b/inc/geshi/glsl.php @@ -4,7 +4,7 @@ * ----- * Author: Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2008 Benny Baumann (BenBE@omorphia.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/03/20 * * glSlang language file for GeSHi. diff --git a/inc/geshi/gml.php b/inc/geshi/gml.php index da3d3a8e8..ec7cb5512 100644 --- a/inc/geshi/gml.php +++ b/inc/geshi/gml.php @@ -4,7 +4,7 @@ * -------- * Author: Jos� Jorge Enr�quez (jenriquez@users.sourceforge.net) * Copyright: (c) 2005 Jos� Jorge Enr�quez Rodr�guez (http://www.zonamakers.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/06/21 * * GML language file for GeSHi. diff --git a/inc/geshi/gnuplot.php b/inc/geshi/gnuplot.php index 863d0dbd6..b4762156c 100644 --- a/inc/geshi/gnuplot.php +++ b/inc/geshi/gnuplot.php @@ -4,7 +4,7 @@ * ---------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff (http://milianw.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/07/07 * * Gnuplot script language file for GeSHi. diff --git a/inc/geshi/groovy.php b/inc/geshi/groovy.php index 7db153c75..0270d0135 100644 --- a/inc/geshi/groovy.php +++ b/inc/geshi/groovy.php @@ -4,7 +4,7 @@ * ---------- * Author: Ivan F. Villanueva B. (geshi_groovy@artificialidea.com) * Copyright: (c) 2006 Ivan F. Villanueva B.(http://www.artificialidea.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/04/29 * * Groovy language file for GeSHi. @@ -985,7 +985,7 @@ $language_data = array ( 'URLS' => array( 1 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAMEL}', 2 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAMEL}', - 3 => 'http://www.google.de/search?as_q={FNAME}&num=100&hl=en&as_occt=url&as_sitesearch=java.sun.com%2Fj2se%2F1.5.0%2Fdocs%2Fapi%2F', + 3 => 'http://www.google.de/search?as_q={FNAME}&num=100&hl=en&as_occt=url&as_sitesearch=java.sun.com%2Fj2se%2F1%2E5%2E0%2Fdocs%2Fapi%2F', 4 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', 5 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', 6 => 'http://www.google.de/search?q=site%3Adocs.codehaus.org/%20{FNAME}', @@ -1008,4 +1008,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/haskell.php b/inc/geshi/haskell.php index f0e570f1c..024382deb 100644 --- a/inc/geshi/haskell.php +++ b/inc/geshi/haskell.php @@ -4,7 +4,7 @@ * ---------- * Author: Jason Dagit (dagit@codersbase.com) based on ocaml.php by Flaie (fireflaie@gmail.com) * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/08/27 * * Haskell language file for GeSHi. diff --git a/inc/geshi/hq9plus.php b/inc/geshi/hq9plus.php index 2a5c429ca..89af3bee8 100644 --- a/inc/geshi/hq9plus.php +++ b/inc/geshi/hq9plus.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/10/31 * * HQ9+ language file for GeSHi. diff --git a/inc/geshi/html4strict.php b/inc/geshi/html4strict.php index 314351523..08c7f30c7 100644 --- a/inc/geshi/html4strict.php +++ b/inc/geshi/html4strict.php @@ -4,7 +4,7 @@ * --------------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/07/10 * * HTML 4.01 strict language file for GeSHi. diff --git a/inc/geshi/idl.php b/inc/geshi/idl.php index 9160fd150..64472140a 100644 --- a/inc/geshi/idl.php +++ b/inc/geshi/idl.php @@ -4,7 +4,7 @@ * ------- * Author: Cedric Bosdonnat (cedricbosdo@openoffice.org) * Copyright: (c) 2006 Cedric Bosdonnat - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/08/20 * * Unoidl language file for GeSHi. diff --git a/inc/geshi/ini.php b/inc/geshi/ini.php index 365b4d6f8..ae0e81ec4 100644 --- a/inc/geshi/ini.php +++ b/inc/geshi/ini.php @@ -4,7 +4,7 @@ * -------- * Author: deguix (cevo_deguix@yahoo.com.br) * Copyright: (c) 2005 deguix - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/03/27 * * INI language file for GeSHi. diff --git a/inc/geshi/inno.php b/inc/geshi/inno.php index 99563514d..6d1b97965 100644 --- a/inc/geshi/inno.php +++ b/inc/geshi/inno.php @@ -4,7 +4,7 @@ * ---------- * Author: Thomas Klingler (hotline@theratech.de) based on delphi.php from J�rja Norbert (jnorbi@vipmail.hu) * Copyright: (c) 2004 J�rja Norbert, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/07/29 * * Inno Script language inkl. Delphi (Object Pascal) language file for GeSHi. diff --git a/inc/geshi/intercal.php b/inc/geshi/intercal.php index a58960089..958f886ce 100644 --- a/inc/geshi/intercal.php +++ b/inc/geshi/intercal.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/10/31 * * INTERCAL language file for GeSHi. diff --git a/inc/geshi/io.php b/inc/geshi/io.php index 7ec53a881..eb4d8646e 100644 --- a/inc/geshi/io.php +++ b/inc/geshi/io.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2006 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/09/23 * * Io language file for GeSHi. Thanks to Johnathan Wright for the suggestion and help diff --git a/inc/geshi/java.php b/inc/geshi/java.php index d8a2d5e4d..b4080f7ac 100644 --- a/inc/geshi/java.php +++ b/inc/geshi/java.php @@ -4,7 +4,7 @@ * -------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/07/10 * * Java language file for GeSHi. diff --git a/inc/geshi/java5.php b/inc/geshi/java5.php index 34696d760..4abffc663 100644 --- a/inc/geshi/java5.php +++ b/inc/geshi/java5.php @@ -4,7 +4,7 @@ * -------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/07/10 * * Java language file for GeSHi. @@ -850,167 +850,167 @@ $language_data = array ( 2 => '', 3 => '', 4 => '', - 5 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/applet/{FNAME}.html', - 6 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/{FNAME}.html', - 7 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/color/{FNAME}.html', - 8 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/datatransfer/{FNAME}.html', - 9 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/dnd/{FNAME}.html', - 10 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/{FNAME}.html', - 11 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/font/{FNAME}.html', - 12 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/geom/{FNAME}.html', - 13 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/im/{FNAME}.html', - 14 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/im/spi/{FNAME}.html', - 15 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/{FNAME}.html', - 16 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/renderable/{FNAME}.html', - 17 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/awt/print/{FNAME}.html', - 18 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/beans/{FNAME}.html', - 19 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/beans/beancontext/{FNAME}.html', - 20 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/io/{FNAME}.html', - 21 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/{FNAME}.html', - 22 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/{FNAME}.html', - 23 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/{FNAME}.html', - 24 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/{FNAME}.html', - 25 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ref/{FNAME}.html', - 26 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/{FNAME}.html', - 27 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/math/{FNAME}.html', - 28 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/net/{FNAME}.html', - 29 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/{FNAME}.html', - 30 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/{FNAME}.html', - 31 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/channels/spi/{FNAME}.html', - 32 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/{FNAME}.html', - 33 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/spi/{FNAME}.html', - 34 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/{FNAME}.html', - 35 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/activation/{FNAME}.html', - 36 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/dgc/{FNAME}.html', - 37 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/registry/{FNAME}.html', - 38 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/rmi/server/{FNAME}.html', - 39 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/{FNAME}.html', - 40 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/acl/{FNAME}.html', - 41 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/cert/{FNAME}.html', - 42 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/interfaces/{FNAME}.html', - 43 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/security/spec/{FNAME}.html', - 44 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/sql/{FNAME}.html', - 45 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/text/{FNAME}.html', - 46 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/{FNAME}.html', - 47 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/{FNAME}.html', - 48 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/atomic/{FNAME}.html', - 49 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/{FNAME}.html', - 50 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/{FNAME}.html', - 51 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/{FNAME}.html', - 52 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/{FNAME}.html', - 53 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/{FNAME}.html', - 54 => 'http://java.sun.com/j2se/1.5.0/docs/api/java/util/zip/{FNAME}.html', - 55 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/accessibility/{FNAME}.html', - 56 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/activity/{FNAME}.html', - 57 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/{FNAME}.html', - 58 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/interfaces/{FNAME}.html', - 59 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/crypto/spec/{FNAME}.html', - 60 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/{FNAME}.html', - 61 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/event/{FNAME}.html', - 62 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/metadata/{FNAME}.html', - 63 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/plugins/bmp/{FNAME}.html', - 64 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html', - 65 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/spi/{FNAME}.html', - 66 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/imageio/stream/{FNAME}.html', - 67 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/{FNAME}.html', - 68 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/loading/{FNAME}.html', - 69 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/modelmbean/{FNAME}.html', - 70 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/monitor/{FNAME}.html', - 71 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/openmbean/{FNAME}.html', - 72 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/relation/{FNAME}.html', - 73 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/{FNAME}.html', - 74 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/remote/rmi/{FNAME}.html', - 75 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/management/timer/{FNAME}.html', - 76 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/{FNAME}.html', - 77 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/directory/{FNAME}.html', - 78 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/event/{FNAME}.html', - 79 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/ldap/{FNAME}.html', - 80 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/spi/{FNAME}.html', - 81 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/net/{FNAME}.html', - 82 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/{FNAME}.html', - 83 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/{FNAME}.html', - 84 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/attribute/{FNAME}.html', - 85 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/attribute/standard/{FNAME}.html', - 86 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/print/event/{FNAME}.html', - 87 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/{FNAME}.html', - 88 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/CORBA/{FNAME}.html', - 89 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/rmi/ssl/{FNAME}.html', - 90 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/{FNAME}.html', - 91 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/callback/{FNAME}.html', - 92 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/kerberos/{FNAME}.html', - 93 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/login/{FNAME}.html', - 94 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/spi/{FNAME}.html', - 95 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/auth/x500/{FNAME}.html', - 96 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/security/sasl/{FNAME}.html', - 97 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/{FNAME}.html', - 98 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/midi/spi/{FNAME}.html', - 99 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/sampled/{FNAME}.html', - 100 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sound/sampled/spi/{FNAME}.html', - 101 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/{FNAME}.html', - 102 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/{FNAME}.html', - 103 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/serial/{FNAME}.html', - 104 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/sql/rowset/spi/{FNAME}.html', - 105 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/{FNAME}.html', - 106 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/border/{FNAME}.html', - 107 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/colorchooser/{FNAME}.html', - 108 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/event/{FNAME}.html', - 109 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/filechooser/{FNAME}.html', - 110 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/{FNAME}.html', - 111 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/basic/{FNAME}.html', - 112 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/metal/{FNAME}.html', - 113 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/multi/{FNAME}.html', - 114 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/plaf/synth/{FNAME}.html', - 115 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/{FNAME}.html', - 116 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/{FNAME}.html', - 117 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/html/{FNAME}.html', - 118 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/html/parser/{FNAME}.html', - 119 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/rtf/{FNAME}.html', - 120 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/tree/{FNAME}.html', - 121 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/undo/{FNAME}.html', - 122 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/{FNAME}.html', - 123 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/transaction/xa/{FNAME}.html', - 124 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/{FNAME}.html', - 125 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/datatype/{FNAME}.html', - 126 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/namespace/{FNAME}.html', - 127 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/parsers/{FNAME}.html', - 128 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/{FNAME}.html', - 129 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/dom/{FNAME}.html', - 130 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/sax/{FNAME}.html', - 131 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/stream/{FNAME}.html', - 132 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/{FNAME}.html', - 133 => 'http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/xpath/{FNAME}.html', - 134 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/ietf/jgss/{FNAME}.html', - 135 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/{FNAME}.html', - 136 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html', - 137 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html', - 138 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CORBA/portable/{FNAME}.html', - 139 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/{FNAME}.html', - 140 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html', - 141 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html', - 142 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/Dynamic/{FNAME}.html', - 143 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/{FNAME}.html', - 144 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html', - 145 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html', - 146 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/{FNAME}.html', - 147 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html', - 148 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html', - 149 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/Messaging/{FNAME}.html', - 150 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableInterceptor/{FNAME}.html', - 151 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html', - 152 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/{FNAME}.html', - 153 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html', - 154 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html', - 155 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html', - 156 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html', - 157 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/SendingContext/{FNAME}.html', - 158 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/omg/stub/java/rmi/{FNAME}.html', - 159 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/{FNAME}.html', - 160 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/bootstrap/{FNAME}.html', - 161 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/events/{FNAME}.html', - 162 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/ls/{FNAME}.html', - 163 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/{FNAME}.html', - 164 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/ext/{FNAME}.html', - 165 => 'http://java.sun.com/j2se/1.5.0/docs/api/org/xml/sax/helpers/{FNAME}.html', + 5 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/applet/{FNAME}.html', + 6 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/{FNAME}.html', + 7 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/color/{FNAME}.html', + 8 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/datatransfer/{FNAME}.html', + 9 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/dnd/{FNAME}.html', + 10 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/event/{FNAME}.html', + 11 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/font/{FNAME}.html', + 12 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/geom/{FNAME}.html', + 13 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/im/{FNAME}.html', + 14 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/im/spi/{FNAME}.html', + 15 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/image/{FNAME}.html', + 16 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/image/renderable/{FNAME}.html', + 17 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/awt/print/{FNAME}.html', + 18 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/beans/{FNAME}.html', + 19 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/beans/beancontext/{FNAME}.html', + 20 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/io/{FNAME}.html', + 21 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/{FNAME}.html', + 22 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/annotation/{FNAME}.html', + 23 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/instrument/{FNAME}.html', + 24 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/management/{FNAME}.html', + 25 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/ref/{FNAME}.html', + 26 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/lang/reflect/{FNAME}.html', + 27 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/math/{FNAME}.html', + 28 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/net/{FNAME}.html', + 29 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/{FNAME}.html', + 30 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/channels/{FNAME}.html', + 31 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/channels/spi/{FNAME}.html', + 32 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/charset/{FNAME}.html', + 33 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/nio/charset/spi/{FNAME}.html', + 34 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/{FNAME}.html', + 35 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/activation/{FNAME}.html', + 36 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/dgc/{FNAME}.html', + 37 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/registry/{FNAME}.html', + 38 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/rmi/server/{FNAME}.html', + 39 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/{FNAME}.html', + 40 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/acl/{FNAME}.html', + 41 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/cert/{FNAME}.html', + 42 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/interfaces/{FNAME}.html', + 43 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/security/spec/{FNAME}.html', + 44 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/sql/{FNAME}.html', + 45 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/text/{FNAME}.html', + 46 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/{FNAME}.html', + 47 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/{FNAME}.html', + 48 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/atomic/{FNAME}.html', + 49 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/concurrent/locks/{FNAME}.html', + 50 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/jar/{FNAME}.html', + 51 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/logging/{FNAME}.html', + 52 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/prefs/{FNAME}.html', + 53 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/regex/{FNAME}.html', + 54 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/java/util/zip/{FNAME}.html', + 55 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/accessibility/{FNAME}.html', + 56 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/activity/{FNAME}.html', + 57 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/{FNAME}.html', + 58 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/interfaces/{FNAME}.html', + 59 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/crypto/spec/{FNAME}.html', + 60 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/{FNAME}.html', + 61 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/event/{FNAME}.html', + 62 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/metadata/{FNAME}.html', + 63 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/plugins/bmp/{FNAME}.html', + 64 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html', + 65 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/spi/{FNAME}.html', + 66 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/imageio/stream/{FNAME}.html', + 67 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/{FNAME}.html', + 68 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/loading/{FNAME}.html', + 69 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/modelmbean/{FNAME}.html', + 70 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/monitor/{FNAME}.html', + 71 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/openmbean/{FNAME}.html', + 72 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/relation/{FNAME}.html', + 73 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/remote/{FNAME}.html', + 74 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/remote/rmi/{FNAME}.html', + 75 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/management/timer/{FNAME}.html', + 76 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/{FNAME}.html', + 77 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/directory/{FNAME}.html', + 78 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/event/{FNAME}.html', + 79 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/ldap/{FNAME}.html', + 80 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/naming/spi/{FNAME}.html', + 81 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/net/{FNAME}.html', + 82 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/net/ssl/{FNAME}.html', + 83 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/{FNAME}.html', + 84 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/attribute/{FNAME}.html', + 85 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/attribute/standard/{FNAME}.html', + 86 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/print/event/{FNAME}.html', + 87 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/{FNAME}.html', + 88 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/CORBA/{FNAME}.html', + 89 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/rmi/ssl/{FNAME}.html', + 90 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/{FNAME}.html', + 91 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/callback/{FNAME}.html', + 92 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/kerberos/{FNAME}.html', + 93 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/login/{FNAME}.html', + 94 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/spi/{FNAME}.html', + 95 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/auth/x500/{FNAME}.html', + 96 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/security/sasl/{FNAME}.html', + 97 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/midi/{FNAME}.html', + 98 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/midi/spi/{FNAME}.html', + 99 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/sampled/{FNAME}.html', + 100 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sound/sampled/spi/{FNAME}.html', + 101 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/{FNAME}.html', + 102 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/{FNAME}.html', + 103 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/serial/{FNAME}.html', + 104 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/sql/rowset/spi/{FNAME}.html', + 105 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/{FNAME}.html', + 106 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/border/{FNAME}.html', + 107 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/colorchooser/{FNAME}.html', + 108 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/event/{FNAME}.html', + 109 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/filechooser/{FNAME}.html', + 110 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/{FNAME}.html', + 111 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/basic/{FNAME}.html', + 112 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/metal/{FNAME}.html', + 113 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/multi/{FNAME}.html', + 114 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/plaf/synth/{FNAME}.html', + 115 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/table/{FNAME}.html', + 116 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/{FNAME}.html', + 117 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/html/{FNAME}.html', + 118 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/html/parser/{FNAME}.html', + 119 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/text/rtf/{FNAME}.html', + 120 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/tree/{FNAME}.html', + 121 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/swing/undo/{FNAME}.html', + 122 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/transaction/{FNAME}.html', + 123 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/transaction/xa/{FNAME}.html', + 124 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/{FNAME}.html', + 125 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/datatype/{FNAME}.html', + 126 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/namespace/{FNAME}.html', + 127 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/parsers/{FNAME}.html', + 128 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/{FNAME}.html', + 129 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/dom/{FNAME}.html', + 130 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/sax/{FNAME}.html', + 131 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/transform/stream/{FNAME}.html', + 132 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/validation/{FNAME}.html', + 133 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/javax/xml/xpath/{FNAME}.html', + 134 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/ietf/jgss/{FNAME}.html', + 135 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/{FNAME}.html', + 136 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html', + 137 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html', + 138 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CORBA/portable/{FNAME}.html', + 139 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/{FNAME}.html', + 140 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html', + 141 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html', + 142 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/Dynamic/{FNAME}.html', + 143 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/{FNAME}.html', + 144 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html', + 145 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html', + 146 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/{FNAME}.html', + 147 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html', + 148 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html', + 149 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/Messaging/{FNAME}.html', + 150 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableInterceptor/{FNAME}.html', + 151 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html', + 152 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/{FNAME}.html', + 153 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html', + 154 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html', + 155 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html', + 156 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html', + 157 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/SendingContext/{FNAME}.html', + 158 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/omg/stub/java/rmi/{FNAME}.html', + 159 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/{FNAME}.html', + 160 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/bootstrap/{FNAME}.html', + 161 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/events/{FNAME}.html', + 162 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/w3c/dom/ls/{FNAME}.html', + 163 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/{FNAME}.html', + 164 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/ext/{FNAME}.html', + 165 => 'http://java.sun.com/j2se/1%2E5%2E0/docs/api/org/xml/sax/helpers/{FNAME}.html', /* ambiguous class names (appear in more than one package) */ 166 => 'http://www.google.com/search?sitesearch=java.sun.com&q=allinurl%3Aj2se%2F1+5+0%2Fdocs%2Fapi+{FNAME}' ), @@ -1028,4 +1028,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/javascript.php b/inc/geshi/javascript.php index 4ffef2b2e..96c345477 100644 --- a/inc/geshi/javascript.php +++ b/inc/geshi/javascript.php @@ -4,7 +4,7 @@ * -------------- * Author: Ben Keen (ben.keen@gmail.com) * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/20 * * JavaScript language file for GeSHi. diff --git a/inc/geshi/jquery.php b/inc/geshi/jquery.php new file mode 100644 index 000000000..b4264cb1c --- /dev/null +++ b/inc/geshi/jquery.php @@ -0,0 +1,238 @@ + 'jQuery', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + //Regular Expressions + 'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do', + 'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item', + 'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void', + 'while', 'write', 'with' + ), + 2 => array( + 'class', 'const', 'default', 'debugger', 'export', 'extends', 'false', + 'function', 'import', 'namespace', 'new', 'null', 'package', 'private', + 'protected', 'public', 'super', 'true', 'use', 'var' + ), + 3 => array( + // common functions for Window object + 'alert', 'back', 'close', 'confirm', 'forward', 'home', + 'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove', + 'onresize', 'onunload', 'open', 'print', 'prompt', 'status', + //'blur', 'focus', 'scroll', // Duplicate with kw9 + //'stop', //Duplicate with kw10 + ), + 4 => array( + // jQuery Core Functions + 'jQuery', 'each', 'size', 'length', 'selector', 'context', 'eq', + 'index', 'data', 'removeData', 'queue', 'dequeue', 'noConflict' + //'get', //Duplicate with kw11 + ), + 5 => array( + // jQuery Attribute Functions + 'attr', 'removeAttr', 'addClass', 'hasClass', 'removeClass', 'toggleClass', + 'html', 'text', 'val', + ), + 6 => array( + // jQuery Traversing Functions + 'filter', 'not', 'slice', 'add', 'children', 'closest', + 'contents', 'find', 'next', 'nextAll', 'parent', 'parents', + 'prev', 'prevAll', 'siblings', 'andSelf', 'end', + //'is', //Dup with kw1 + //'offsetParent', //Duplicate with kw8 + //'map', //Duplicate with kw12 + ), + 7 => array( + // jQuery Manipulation Functions + 'append', 'appendTo', 'prepend', 'prependTo', 'after', 'before', 'insertAfter', + 'insertBefore', 'wrap', 'wrapAll', 'wrapInner', 'replaceWith', 'replaceAll', + 'empty', 'remove', 'clone', + ), + 8 => array( + // jQuery CSS Functions + 'css', 'offset', 'offsetParent', 'position', 'scrollTop', 'scrollLeft', + 'height', 'width', 'innerHeight', 'innerWidth', 'outerHeight', 'outerWidth', + ), + 9 => array( + // jQuery Events Functions + 'ready', 'bind', 'one', 'trigger', 'triggerHandler', 'unbind', 'live', + 'die', 'hover', 'blur', 'change', 'click', 'dblclick', 'error', + 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mouseenter', + 'mouseleave', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize', + 'scroll', 'select', 'submit', 'unload', + //'toggle', //Duplicate with kw10 + //'load', //Duplicate with kw11 + ), + 10 => array( + // jQuery Effects Functions + 'show', 'hide', 'toggle', 'slideDown', 'slideUp', 'slideToggle', 'fadeIn', + 'fadeOut', 'fadeTo', 'animate', 'stop', + ), + 11 => array( + // jQuery Ajax Functions + 'ajax', 'load', 'get', 'getJSON', 'getScript', 'post', 'ajaxComplete', + 'ajaxError', 'ajaxSend', 'ajaxStart', 'ajaxStop', 'ajaxSuccess', 'ajaxSetup', + 'serialize', 'serializeArray', + ), + 12 => array( + // jQuery Utility Functions + 'support', 'browser', 'version', 'boxModal', 'extend', 'grep', 'makeArray', + 'map', 'inArray', 'merge', 'unique', 'isArray', 'isFunction', 'trim', + 'param', + ), + ), + 'SYMBOLS' => array( + 0 => array( + '(', ')', '[', ']', '{', '}', + '+', '-', '*', '/', '%', + '!', '@', '&', '|', '^', + '<', '>', '=', + ',', ';', '?', ':' + ), + 1 => array( + '$' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000066; font-weight: bold;', + 2 => 'color: #003366; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #000066;', + 5 => 'color: #000066;', + 6 => 'color: #000066;', + 7 => 'color: #000066;', + 8 => 'color: #000066;', + 9 => 'color: #000066;', + 10 => 'color: #000066;', + 11 => 'color: #000066;', + 12 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #006600; font-style: italic;', + 2 => 'color: #009966; font-style: italic;', + 'MULTI' => 'color: #006600; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #3366CC;' + ), + 'NUMBERS' => array( + 0 => 'color: #CC0000;' + ), + 'METHODS' => array( + 1 => 'color: #660066;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;', + 1 => 'color: #000066;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => 'http://docs.jquery.com/Core/{FNAME}', + 5 => 'http://docs.jquery.com/Attributes/{FNAME}', + 6 => 'http://docs.jquery.com/Traversing/{FNAME}', + 7 => 'http://docs.jquery.com/Manipulation/{FNAME}', + 8 => 'http://docs.jquery.com/CSS/{FNAME}', + 9 => 'http://docs.jquery.com/Events/{FNAME}', + 10 => 'http://docs.jquery.com/Effects/{FNAME}', + 11 => 'http://docs.jquery.com/Ajax/{FNAME}', + 12 => 'http://docs.jquery.com/Utilities/{FNAME}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + '' + ), + 1 => array( + '' + ) + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/kixtart.php b/inc/geshi/kixtart.php index bdffd5875..3d37f8ce6 100644 --- a/inc/geshi/kixtart.php +++ b/inc/geshi/kixtart.php @@ -4,7 +4,7 @@ * -------- * Author: Riley McArdle (riley@glyff.net) * Copyright: (c) 2007 Riley McArdle (http://www.glyff.net/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/08/31 * * PHP language file for GeSHi. diff --git a/inc/geshi/klonec.php b/inc/geshi/klonec.php index 03d64a166..24f32dbc3 100644 --- a/inc/geshi/klonec.php +++ b/inc/geshi/klonec.php @@ -4,7 +4,7 @@ * -------- * Author: AUGER Mickael * Copyright: Synchronic - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/04/16 * * KLone with C language file for GeSHi. diff --git a/inc/geshi/klonecpp.php b/inc/geshi/klonecpp.php index fd2d53864..ad2844c6d 100644 --- a/inc/geshi/klonecpp.php +++ b/inc/geshi/klonecpp.php @@ -4,7 +4,7 @@ * -------- * Author: AUGER Mickael * Copyright: Synchronic - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/04/16 * * KLone with C++ language file for GeSHi. diff --git a/inc/geshi/latex.php b/inc/geshi/latex.php index bad2c1861..ae7f0b3c5 100644 --- a/inc/geshi/latex.php +++ b/inc/geshi/latex.php @@ -4,7 +4,7 @@ * ----- * Author: efi, Matthias Pospiech (matthias@pospiech.eu) * Copyright: (c) 2006 efi, Matthias Pospiech (matthias@pospiech.eu), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/09/23 * * LaTeX language file for GeSHi. @@ -61,21 +61,26 @@ $language_data = array ( 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( - 'addlinespace','address','appendix','author','backmatter', + 'addlinespace','and','address','appendix','author','backmatter', 'bfseries','bibitem','bigskip','blindtext','caption','captionabove', - 'captionbelow','cdot','centering','cite','color','colorbox','date', - 'def','definecolor','documentclass','edef','eqref','else','email','emph','fbox', - 'fi','flushleft','flushright','footnote','frac','frontmatter','graphicspath','hfill', - 'hline','hspace','huge','include','includegraphics','infty','input','int','ifx', - 'item','label','LaTeX','left','let','limits','listfiles','listoffigures', - 'listoftables','mainmatter','makeatletter','makeatother','makebox', - 'makeindex','maketitle','mbox','mediumskip','newcommand', - 'newenvironment','newpage','nocite','nonumber','pagestyle','par','paragraph','parbox', - 'parident','parskip','partial','raggedleft','raggedright','raisebox','ref', - 'renewcommand','renewenvironment','right','rule','section','setlength', - 'sffamily','subparagraph','subsection','subsubsection','sum','table', - 'tableofcontents','textbf','textcolor','textit','textnormal', - 'textsuperscript','texttt','title','today','ttfamily','urlstyle', + 'captionbelow','cdot','centering','chapter','cite','color', + 'colorbox','date','dedication','def','definecolor','documentclass', + 'edef','else','email','emph','eqref','extratitle','fbox','fi', + 'flushleft','flushright','footnote','frac','frontmatter', + 'graphicspath','hfill','hline','hspace','huge','ifx','include', + 'includegraphics','infty','input','int','item','itemsep', + 'KOMAoption','KOMAoptions','label','LaTeX','left','let','limits', + 'listfiles','listoffigures','listoftables','lowertitleback', + 'mainmatter','makeatletter','makeatother','makebox','makeindex', + 'maketitle','mbox','mediumskip','newcommand','newenvironment', + 'newpage','nocite','nonumber','pagestyle','par','paragraph', + 'parbox','parident','parskip','partial','publishers','raggedleft', + 'raggedright','raisebox','ref','renewcommand','renewenvironment', + 'right','rule','section','setlength','sffamily','subject', + 'subparagraph','subsection','subsubsection','subtitle','sum', + 'table','tableofcontents','textbf','textcolor','textit', + 'textnormal','textsuperscript','texttt','textwidth','thanks','title', + 'titlehead','today','ttfamily','uppertitleback','urlstyle', 'usepackage','vspace' ) ), diff --git a/inc/geshi/lisp.php b/inc/geshi/lisp.php index aa492058b..3ca20fdc5 100644 --- a/inc/geshi/lisp.php +++ b/inc/geshi/lisp.php @@ -4,7 +4,7 @@ * -------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/30 * * Generic Lisp language file for GeSHi. diff --git a/inc/geshi/locobasic.php b/inc/geshi/locobasic.php index a799d6900..e0cceea3d 100644 --- a/inc/geshi/locobasic.php +++ b/inc/geshi/locobasic.php @@ -4,7 +4,7 @@ * ------------- * Author: Nacho Cabanes * Copyright: (c) 2009 Nacho Cabanes (http://www.nachocabanes.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/03/22 * * Locomotive Basic (Amstrad CPC series) language file for GeSHi. @@ -80,8 +80,8 @@ $language_data = array ( ), 'STYLES' => array( 'KEYWORDS' => array( - 1 => 'color: #0000ff; font-weight: bold;', - 2 => 'color: #008888; font-weight: bold;' + 1 => 'color: #000088; font-weight: bold;', + 2 => 'color: #AA00AA; font-weight: bold;' ), 'COMMENTS' => array( 1 => 'color: #808080;', @@ -91,7 +91,7 @@ $language_data = array ( 0 => 'color: #ff0000;' ), 'STRINGS' => array( - 0 => 'color: #ff0000;' + 0 => 'color: #008800;' ), 'NUMBERS' => array( 0 => 'color: #0044ff;' diff --git a/inc/geshi/logtalk.php b/inc/geshi/logtalk.php new file mode 100644 index 000000000..3321e0de4 --- /dev/null +++ b/inc/geshi/logtalk.php @@ -0,0 +1,330 @@ + 'Logtalk', + 'COMMENT_SINGLE' => array(1 => '%'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(2 => "/0'./sim"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'"), + 'HARDQUOTE' => array('"', '"'), + 'HARDESCAPE' => array(), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]+\\\\#", + //Octal Char Specs + 3 => "#\\\\[0-7]+\\\\#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX_0O | + GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + // Directives (with arguments) + 1 => array( + // file directives + 'encoding', 'ensure_loaded', + // flag directives + 'set_logtalk_flag', 'set_prolog_flag', + // entity opening directives + 'category', 'object', 'protocol', + // predicate scope directives + 'private', 'protected', 'public', + // conditional compilation directives + 'elif', 'if', + // entity directives + 'calls', 'initialization', 'op', 'uses', + // predicate directives + 'alias', 'discontiguous', 'dynamic', 'mode', 'info', 'meta_predicate', 'multifile', 'synchronized', + // module directives + 'export', 'module', 'reexport', 'use_module' + ), + // Directives (no arguments) + 2 => array( + // entity directives + 'dynamic', + // multi-threading directives + 'synchronized', 'threaded', + // entity closing directives + 'end_category', 'end_object', 'end_protocol', + // conditional compilation directives + 'else', 'endif' + ), + // Entity relations + 3 => array( + 'complements', 'extends', 'imports', 'implements','instantiates', 'specializes' + ), + // Built-in predicates (with arguments) + 4 => array( + // event handlers + 'after', 'before', + // execution-context methods + 'parameter', 'self', 'sender', 'this', + // predicate reflection + 'current_predicate', 'predicate_property', + // DCGs and term expansion + 'expand_goal', 'expand_term', 'goal_expansion', 'phrase', 'term_expansion', + // entity + 'abolish_category', 'abolish_object', 'abolish_protocol', + 'create_category', 'create_object', 'create_protocol', + 'current_category', 'current_object', 'current_protocol', + 'category_property', 'object_property', 'protocol_property', + // entity relations + 'complements_object', + 'extends_category', 'extends_object', 'extends_protocol', + 'implements_protocol', 'imports_category', + 'instantiates_class', 'specializes_class', + // events + 'abolish_events', 'current_event', 'define_events', + // flags + 'current_logtalk_flag', 'set_logtalk_flag', + 'current_prolog_flag', 'set_prolog_flag', + // compiling, loading, and library path + 'logtalk_compile', 'logtalk_library_path', 'logtalk_load', + // database + 'abolish', 'asserta', 'assertz', 'clause', 'retract', 'retractall', + // control + 'call', 'catch', 'once', 'throw', + // all solutions predicates + 'bagof', 'findall', 'forall', 'setof', + // multi-threading meta-predicates + 'threaded', + 'threaded_call', 'threaded_once', 'threaded_ignore', 'threaded_exit', 'threaded_peek', + 'threaded_wait', 'threaded_notify', + // term unification + 'unify_with_occurs_check', + // atomic term processing + 'atom_chars', 'atom_codes', 'atom_concat', 'atom_length', + 'number_chars', 'number_codes', + 'char_code', + // term creation and decomposition + 'arg', 'copy_term', 'functor', + // term testing + 'atom', 'atomic', 'compound', 'float', 'integer', 'nonvar', 'number', 'sub_atom', 'var', + // stream selection and control + 'current_input', 'current_output', 'set_input', 'set_output', + 'open', 'close', 'flush_output', 'stream_property', + 'at_end_of_stream', 'set_stream_position', + // character and byte input/output predicates + 'get_byte', 'get_char', 'get_code', + 'peek_byte', 'peek_char', 'peek_code', + 'put_byte', 'put_char', 'put_code', + 'nl', + // term input/output predicates + 'current_op', 'op', + 'write', 'writeq', 'write_canonical', 'write_term', + 'read', 'read_term', + 'char_conversion', 'current_char_conversion', + // + 'halt' + ), + // Built-in predicates (no arguments) + 5 => array( + // control + 'fail', 'repeat', 'true', + // character and byte input/output predicates + 'nl', + // implementation defined hooks functions + 'halt', + // arithemtic evaluation + 'is', + // stream selection and control + 'at_end_of_stream', 'flush_output' + ), + // Evaluable functors (with arguments) + 6 => array( + 'float_integer_part', 'float_fractional_part', + 'rem', 'mod', 'abs', 'sign', 'floor', 'truncate', 'round', 'ceiling', + 'cos', 'atan', 'exp', 'log', 'sin', 'sqrt' + ), + // Evaluable functors (no arguments) + 7 => array( + 'mod', 'rem' + ), + ), + 'SYMBOLS' => array( + 0 => array( + // external call + '{', '}' + ), + 1 => array( + // arithemtic comparison + '=:=', '=\=', '<', '=<', '>=', '>', + // term comparison + '<<', '>>', '/\\', '\\/', '\\', + // bitwise functors + '==', '\==', '@<', '@=<', '@>=', '@>', + // evaluable functors + '+', '-', '*', '/', '**', + // logic and control + '!', '\\+', ';', + // message sending operators + '::', '^^', ':', + // grammar rule and conditional functors + '-->', '->', + // mode operators + '@', '?', + // term to list predicate + '=..', + // unification + '=', '\\=' + ), + 2 => array( + // clause and directive functors + ':-' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #2e4dc9;', + 2 => 'color: #2e4dc9;', + 3 => 'color: #2e4dc9;', + 4 => 'color: #9d4f37;', + 5 => 'color: #9d4f37;', + 6 => 'color: #9d4f37;', + 7 => 'color: #9d4f37;' + ), + 'NUMBERS' => array( + 0 => 'color: #430000;' + ), + 'COMMENTS' => array( + 1 => 'color: #60a0b0; font-style: italic;', + 2 => 'color: #430000;', + 'MULTI' => 'color: #60a0b0; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #9f0000; font-weight: bold;', + 1 => 'color: #9f0000; font-weight: bold;', + 2 => 'color: #9f0000; font-weight: bold;', + 3 => 'color: #9f0000; font-weight: bold;', + 'HARD' => '', + ), + 'SYMBOLS' => array( + 0 => 'color: #666666;font-weight: bold;', + 1 => 'color: #666666;font-weight: bold;', + 2 => 'color: #000000;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #9f0000;', + 'HARD' => 'color: #9f0000;' + ), + 'METHODS' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #848484;' + ), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '::' + ), + 'REGEXPS' => array( + // variables + 0 => '\b(?!(?:PIPE|SEMI|REG3XP\d*)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER + ), + 'KEYWORDS' => array( + 1 => array( + 'DISALLOWED_BEFORE' => '(?<=:-\s)', + 'DISALLOWED_AFTER' => '(?=\()' + ), + 2 => array( + 'DISALLOWED_BEFORE' => '(?<=:-\s)', + 'DISALLOWED_AFTER' => '(?=\.)' + ), + 3 => array( + 'DISALLOWED_BEFORE' => '(?|^&\'"])', + 'DISALLOWED_AFTER' => '(?=\()' + ), + 4 => array( + 'DISALLOWED_BEFORE' => '(?|^&\'"])', + 'DISALLOWED_AFTER' => '(?=\()' + ), + 5 => array( + 'DISALLOWED_BEFORE' => '(?|^&\'"])', + 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])' + ), + 6 => array( + 'DISALLOWED_BEFORE' => '(?|^&\'"])', + 'DISALLOWED_AFTER' => '(?=\()' + ), + 7 => array( + 'DISALLOWED_BEFORE' => '(?|^&\'"])', + 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])' + ) + ) + ), +); + +?> \ No newline at end of file diff --git a/inc/geshi/lolcode.php b/inc/geshi/lolcode.php index fc60e3e9f..26e486d3a 100644 --- a/inc/geshi/lolcode.php +++ b/inc/geshi/lolcode.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/10/31 * * LOLcode language file for GeSHi. diff --git a/inc/geshi/lotusformulas.php b/inc/geshi/lotusformulas.php index e82d6bf3d..67fd4fa0a 100644 --- a/inc/geshi/lotusformulas.php +++ b/inc/geshi/lotusformulas.php @@ -4,7 +4,7 @@ * ------------------------ * Author: Richard Civil (info@richardcivil.net) * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/04/12 * * @Formula/@Command language file for GeSHi. diff --git a/inc/geshi/lotusscript.php b/inc/geshi/lotusscript.php index 5272377b1..5c1d61f92 100644 --- a/inc/geshi/lotusscript.php +++ b/inc/geshi/lotusscript.php @@ -4,7 +4,7 @@ * ------------------------ * Author: Richard Civil (info@richardcivil.net) * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/04/12 * * LotusScript language file for GeSHi. diff --git a/inc/geshi/lscript.php b/inc/geshi/lscript.php index 1a5b0726e..33cd0163d 100644 --- a/inc/geshi/lscript.php +++ b/inc/geshi/lscript.php @@ -4,7 +4,7 @@ * --------- * Author: Arendedwinter (admin@arendedwinter.com) * Copyright: (c) 2008 Beau McGuigan (http://www.arendedwinter.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 15/11/2008 * * Lightwave Script language file for GeSHi. diff --git a/inc/geshi/lsl2.php b/inc/geshi/lsl2.php index 0b62ee8b7..8b62fc219 100644 --- a/inc/geshi/lsl2.php +++ b/inc/geshi/lsl2.php @@ -4,7 +4,7 @@ * -------- * Author: William Fry (william.fry@nyu.edu) * Copyright: (c) 2009 William Fry - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/02/04 * * Linden Scripting Language (LSL2) language file for GeSHi. diff --git a/inc/geshi/lua.php b/inc/geshi/lua.php index f85086bb2..2a630b2c8 100644 --- a/inc/geshi/lua.php +++ b/inc/geshi/lua.php @@ -4,7 +4,7 @@ * ------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/07/10 * * LUA language file for GeSHi. diff --git a/inc/geshi/m68k.php b/inc/geshi/m68k.php index cc5807c6f..9aae868af 100644 --- a/inc/geshi/m68k.php +++ b/inc/geshi/m68k.php @@ -4,7 +4,7 @@ * -------- * Author: Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2007 Benny Baumann (http://www.omorphia.de/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/02/06 * * Motorola 68000 Assembler language file for GeSHi. diff --git a/inc/geshi/make.php b/inc/geshi/make.php index f01209ebf..021265548 100644 --- a/inc/geshi/make.php +++ b/inc/geshi/make.php @@ -4,7 +4,7 @@ * -------- * Author: Neil Bird * Copyright: (c) 2008 Neil Bird - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/08/26 * * make language file for GeSHi. diff --git a/inc/geshi/mapbasic.php b/inc/geshi/mapbasic.php new file mode 100644 index 000000000..74be1f673 --- /dev/null +++ b/inc/geshi/mapbasic.php @@ -0,0 +1,908 @@ + 'MapBasic', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( +/* + 1 - Statements + Clauses + Data Types + Logical Operators, Geographical Operators + SQL + 2 - Special Procedures + 3 - Functions + 4 - Constants + 5 - Extended keywords (case sensitive) +*/ + 1 => array( + 'Add', 'Alias', 'All', 'Alter', 'And', 'Any', 'Application', 'Arc', + 'Area', 'As', 'AutoLabel', 'Bar', 'Beep', 'Begin', 'Bind', + 'Browse', 'Brush', 'BrushPicker', 'Button', 'ButtonPad', + 'ButtonPads', 'BY', 'Call', 'CancelButton', 'Cartographic', 'Case', + 'CharSet', 'Check', 'CheckBox', 'Clean', 'Close', 'Collection', + 'Column', 'Combine', 'Command', 'Commit', 'Connection', + 'ConnectionNumber', 'Contains', 'Continue', 'Control', 'CoordSys', + 'Create', 'Cutter', 'Date', 'Datum', 'DDEExecute', 'DDEPoke', + 'DDETerminate', 'DDETerminateAll', 'Declare', 'Default', 'Define', + 'Delete', 'Dialog', 'Digitizer', 'Dim', 'Disaggregate', + 'Disconnect', 'Distance', 'Do', 'Document', 'DocumentWindow', + 'Drag', 'Drop', 'EditText', 'Ellipse', 'Enclose', 'End', 'Entire', + 'Entirely', 'Erase', 'Error', 'Event', 'Exit', 'Export', + 'Farthest', 'Fetch', 'File', 'Find', 'Float', 'FME', 'Font', + 'FontPicker', 'For', 'Format', 'Frame', 'From', 'Function', + 'Geocode', 'Get', 'Global', 'Goto', 'Graph', 'Grid', 'GROUP', + 'GroupBox', 'Handler', 'If', 'Import', 'In', 'Include', 'Index', + 'Info', 'Input', 'Insert', 'Integer', 'Intersect', 'Intersects', + 'INTO', 'Isogram', 'Item', 'Kill', 'Layout', 'Legend', 'Line', + 'Link', 'ListBox', 'Logical', 'Loop', 'Map', 'Map3D', 'MapInfo', + 'MapInfoDialog', 'Menu', 'Merge', 'Metadata', 'Method', 'Mod', + 'Move', 'MultiListBox', 'MultiPoint', 'MWS', 'Nearest', 'Next', + 'NOSELECT', 'Not', 'Note', 'Object', 'Objects', 'Offset', + 'OKButton', 'OnError', 'Open', 'Or', 'ORDER', 'Overlay', 'Pack', + 'Paper', 'Part', 'Partly', 'Pen', 'PenPicker', 'Pline', 'Point', + 'PopupMenu', 'Preserve', 'Print', 'PrintWin', 'PrismMap', + 'Processing', 'Program', 'ProgressBar', 'ProgressBars', 'Put', + 'RadioGroup', 'Randomize', 'Ranges', 'Rect', 'ReDim', + 'Redistricter', 'Refresh', 'Region', 'Register', 'Relief', + 'Reload', 'Remove', 'Rename', 'Report', 'Reproject', 'Resolution', + 'Resume', 'Rollback', 'RoundRect', 'RowID', 'Run', 'Save', 'Seek', + 'Select', 'Selection', 'Server', 'Set', 'Shade', 'SmallInt', + 'Snap', 'Split', 'StaticText', 'StatusBar', 'Stop', 'String', + 'Style', 'Styles', 'Sub', 'Symbol', 'SymbolPicker', 'Symbols', + 'Table', 'Target', 'Terminate', 'Text', 'Then', 'Threshold', + 'Timeout', 'To', 'Transaction', 'Transform', 'Type', 'UnDim', + 'Units', 'Unlink', 'Update', 'Using', 'VALUES', 'Version', + 'Versioning', 'Wend', 'WFS', 'WHERE', 'While', 'Window', 'Within', + 'Workspace', 'Write' + ), + 2 => array( + 'EndHandler', 'ForegroundTaskSwitchHandler', 'Main', + 'RemoteMapGenHandler', 'RemoteMsgHandler', 'SelChangedHandler', + 'ToolHandler', 'WinChangedHandler', 'WinClosedHandler', + 'WinFocusChangedHandler' + ), + 3 => array( + 'Abs', 'Acos', 'ApplicationDirectory$', 'AreaOverlap', 'Asc', + 'Asin', 'Ask', 'Atn', 'Avg', 'Buffer', 'ButtonPadInfo', + 'CartesianArea', 'CartesianBuffer', 'CartesianConnectObjects', + 'CartesianDistance', 'CartesianObjectDistance', + 'CartesianObjectLen', 'CartesianOffset', 'CartesianOffsetXY', + 'CartesianPerimeter', 'Centroid', 'CentroidX', 'CentroidY', + 'ChooseProjection$', 'Chr$', 'ColumnInfo', 'CommandInfo', + 'ConnectObjects', 'ControlPointInfo', 'ConvertToPline', + 'ConvertToRegion', 'ConvexHull', 'CoordSysName$', 'Cos', 'Count', + 'CreateCircle', 'CreateLine', 'CreatePoint', 'CreateText', + 'CurDate', 'CurrentBorderPen', 'CurrentBrush', 'CurrentFont', + 'CurrentLinePen', 'CurrentPen', 'CurrentSymbol', 'DateWindow', + 'Day', 'DDEInitiate', 'DDERequest$', 'DeformatNumber$', 'EOF', + 'EOT', 'EPSGToCoordSysString$', 'Err', 'Error$', 'Exp', + 'ExtractNodes', 'FileAttr', 'FileExists', 'FileOpenDlg', + 'FileSaveAsDlg', 'Fix', 'Format$', 'FormatDate$', 'FormatNumber$', + 'FrontWindow', 'GeocodeInfo', 'GetFolderPath$', 'GetGridCellValue', + 'GetMetadata$', 'GetSeamlessSheet', 'GridTableInfo', + 'HomeDirectory$', 'InStr', 'Int', 'IntersectNodes', + 'IsGridCellNull', 'IsogramInfo', 'IsPenWidthPixels', + 'LabelFindByID', 'LabelFindFirst', 'LabelFindNext', 'LabelInfo', + 'LayerInfo', 'LCase$', 'Left$', 'LegendFrameInfo', 'LegendInfo', + 'LegendStyleInfo', 'Len', 'Like', 'LocateFile$', 'LOF', 'Log', + 'LTrim$', 'MakeBrush', 'MakeCustomSymbol', 'MakeFont', + 'MakeFontSymbol', 'MakePen', 'MakeSymbol', 'Map3DInfo', + 'MapperInfo', 'Max', 'Maximum', 'MBR', 'MenuItemInfoByHandler', + 'MenuItemInfoByID', 'MGRSToPoint', 'MICloseContent', + 'MICloseFtpConnection', 'MICloseFtpFileFind', + 'MICloseHttpConnection', 'MICloseHttpFile', 'MICloseSession', + 'MICreateSession', 'MICreateSessionFull', 'Mid$', 'MidByte$', + 'MIErrorDlg', 'MIFindFtpFile', 'MIFindNextFtpFile', 'MIGetContent', + 'MIGetContentBuffer', 'MIGetContentLen', 'MIGetContentString', + 'MIGetContentToFile', 'MIGetContentType', + 'MIGetCurrentFtpDirectory', 'MIGetErrorCode', 'MIGetErrorMessage', + 'MIGetFileURL', 'MIGetFtpConnection', 'MIGetFtpFile', + 'MIGetFtpFileFind', 'MIGetFtpFileName', 'MIGetHttpConnection', + 'MIIsFtpDirectory', 'MIIsFtpDots', 'Min', 'Minimum', + 'MIOpenRequest', 'MIOpenRequestFull', 'MIParseURL', 'MIPutFtpFile', + 'MIQueryInfo', 'MIQueryInfoStatusCode', 'MISaveContent', + 'MISendRequest', 'MISendSimpleRequest', 'MISetCurrentFtpDirectory', + 'MISetSessionTimeout', 'MIXmlAttributeListDestroy', + 'MIXmlDocumentCreate', 'MIXmlDocumentDestroy', + 'MIXmlDocumentGetNamespaces', 'MIXmlDocumentGetRootNode', + 'MIXmlDocumentLoad', 'MIXmlDocumentLoadXML', + 'MIXmlDocumentLoadXMLString', 'MIXmlDocumentSetProperty', + 'MIXmlGetAttributeList', 'MIXmlGetChildList', + 'MIXmlGetNextAttribute', 'MIXmlGetNextNode', 'MIXmlNodeDestroy', + 'MIXmlNodeGetAttributeValue', 'MIXmlNodeGetFirstChild', + 'MIXmlNodeGetName', 'MIXmlNodeGetParent', 'MIXmlNodeGetText', + 'MIXmlNodeGetValue', 'MIXmlNodeListDestroy', 'MIXmlSCDestroy', + 'MIXmlSCGetLength', 'MIXmlSCGetNamespace', 'MIXmlSelectNodes', + 'MIXmlSelectSingleNode', 'Month', 'NumAllWindows', 'NumberToDate', + 'NumCols', 'NumTables', 'NumWindows', 'ObjectDistance', + 'ObjectGeography', 'ObjectInfo', 'ObjectLen', 'ObjectNodeHasM', + 'ObjectNodeHasZ', 'ObjectNodeM', 'ObjectNodeX', 'ObjectNodeY', + 'ObjectNodeZ', 'OffsetXY', 'Overlap', 'OverlayNodes', + 'PathToDirectory$', 'PathToFileName$', 'PathToTableName$', + 'PenWidthToPoints', 'Perimeter', 'PointsToPenWidth', + 'PointToMGRS$', 'PrismMapInfo', 'ProgramDirectory$', 'Proper$', + 'ProportionOverlap', 'RasterTableInfo', 'ReadControlValue', + 'RegionInfo', 'RemoteQueryHandler', 'RGB', 'Right$', 'Rnd', + 'Rotate', 'RotateAtPoint', 'Round', 'RTrim$', 'SearchInfo', + 'SearchPoint', 'SearchRect', 'SelectionInfo', 'Server_ColumnInfo', + 'Server_Connect', 'Server_ConnectInfo', 'Server_DriverInfo', + 'Server_EOT', 'Server_Execute', 'Server_GetODBCHConn', + 'Server_GetODBCHStmt', 'Server_NumCols', 'Server_NumDrivers', + 'SessionInfo', 'Sgn', 'Sin', 'Space$', 'SphericalArea', + 'SphericalConnectObjects', 'SphericalDistance', + 'SphericalObjectDistance', 'SphericalObjectLen', 'SphericalOffset', + 'SphericalOffsetXY', 'SphericalPerimeter', 'Sqr', 'Str$', + 'String$', 'StringCompare', 'StringCompareIntl', 'StringToDate', + 'StyleAttr', 'Sum', 'SystemInfo', 'TableInfo', 'Tan', + 'TempFileName$', 'TextSize', 'Time', 'Timer', 'TriggerControl', + 'TrueFileName$', 'UBound', 'UCase$', 'UnitAbbr$', 'UnitName$', + 'Val', 'Weekday', 'WindowID', 'WindowInfo', 'WtAvg', 'Year' + ), + 4 => array( + 'BLACK', 'BLUE', 'BRUSH_BACKCOLOR', 'BRUSH_FORECOLOR', + 'BRUSH_PATTERN', 'BTNPAD_INFO_FLOATING', 'BTNPAD_INFO_NBTNS', + 'BTNPAD_INFO_WIDTH', 'BTNPAD_INFO_WINID', 'BTNPAD_INFO_X', + 'BTNPAD_INFO_Y', 'CLS', 'CMD_INFO_CTRL', 'CMD_INFO_CUSTOM_OBJ', + 'CMD_INFO_DLG_DBL', 'CMD_INFO_DLG_OK', 'CMD_INFO_EDIT_ASK', + 'CMD_INFO_EDIT_DISCARD', 'CMD_INFO_EDIT_SAVE', + 'CMD_INFO_EDIT_STATUS', 'CMD_INFO_EDIT_TABLE', 'CMD_INFO_FIND_RC', + 'CMD_INFO_FIND_ROWID', 'CMD_INFO_HL_FILE_NAME', + 'CMD_INFO_HL_LAYER_ID', 'CMD_INFO_HL_ROWID', + 'CMD_INFO_HL_TABLE_NAME', 'CMD_INFO_HL_WINDOW_ID', + 'CMD_INFO_INTERRUPT', 'CMD_INFO_MENUITEM', 'CMD_INFO_MSG', + 'CMD_INFO_ROWID', 'CMD_INFO_SELTYPE', 'CMD_INFO_SHIFT', + 'CMD_INFO_STATUS', 'CMD_INFO_TASK_SWITCH', 'CMD_INFO_TOOLBTN', + 'CMD_INFO_WIN', 'CMD_INFO_X', 'CMD_INFO_X2', 'CMD_INFO_XCMD', + 'CMD_INFO_Y', 'CMD_INFO_Y2', 'COL_INFO_DECPLACES', + 'COL_INFO_EDITABLE', 'COL_INFO_INDEXED', 'COL_INFO_NAME', + 'COL_INFO_NUM', 'COL_INFO_TYPE', 'COL_INFO_WIDTH', 'COL_TYPE_CHAR', + 'COL_TYPE_DATE', 'COL_TYPE_DATETIME', 'COL_TYPE_DECIMAL', + 'COL_TYPE_FLOAT', 'COL_TYPE_GRAPHIC', 'COL_TYPE_INTEGER', + 'COL_TYPE_LOGICAL', 'COL_TYPE_SMALLINT', 'COL_TYPE_TIME', 'CYAN', + 'DATE_WIN_CURPROG', 'DATE_WIN_SESSION', 'DEG_2_RAD', + 'DICTIONARY_ADDRESS_ONLY', 'DICTIONARY_ALL', + 'DICTIONARY_PREFER_ADDRESS', 'DICTIONARY_PREFER_USER', + 'DICTIONARY_USER_ONLY', 'DM_CUSTOM_CIRCLE', 'DM_CUSTOM_ELLIPSE', + 'DM_CUSTOM_LINE', 'DM_CUSTOM_POINT', 'DM_CUSTOM_POLYGON', + 'DM_CUSTOM_POLYLINE', 'DM_CUSTOM_RECT', 'DMPAPER_10X11', + 'DMPAPER_10X14', 'DMPAPER_11X17', 'DMPAPER_12X11', 'DMPAPER_15X11', + 'DMPAPER_9X11', 'DMPAPER_A_PLUS', 'DMPAPER_A2', 'DMPAPER_A3', + 'DMPAPER_A3_EXTRA', 'DMPAPER_A3_EXTRA_TRANSVERSE', + 'DMPAPER_A3_ROTATED', 'DMPAPER_A3_TRANSVERSE', 'DMPAPER_A4', + 'DMPAPER_A4_EXTRA', 'DMPAPER_A4_PLUS', 'DMPAPER_A4_ROTATED', + 'DMPAPER_A4_TRANSVERSE', 'DMPAPER_A4SMALL', 'DMPAPER_A5', + 'DMPAPER_A5_EXTRA', 'DMPAPER_A5_ROTATED', 'DMPAPER_A5_TRANSVERSE', + 'DMPAPER_A6', 'DMPAPER_A6_ROTATED', 'DMPAPER_B_PLUS', 'DMPAPER_B4', + 'DMPAPER_B4_JIS_ROTATED', 'DMPAPER_B5', 'DMPAPER_B5_EXTRA', + 'DMPAPER_B5_JIS_ROTATED', 'DMPAPER_B5_TRANSVERSE', + 'DMPAPER_B6_JIS', 'DMPAPER_B6_JIS_ROTATED', 'DMPAPER_CSHEET', + 'DMPAPER_DBL_JAPANESE_POSTCARD', + 'DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED', 'DMPAPER_DSHEET', + 'DMPAPER_ENV_10', 'DMPAPER_ENV_11', 'DMPAPER_ENV_12', + 'DMPAPER_ENV_14', 'DMPAPER_ENV_9', 'DMPAPER_ENV_B4', + 'DMPAPER_ENV_B5', 'DMPAPER_ENV_B6', 'DMPAPER_ENV_C3', + 'DMPAPER_ENV_C4', 'DMPAPER_ENV_C5', 'DMPAPER_ENV_C6', + 'DMPAPER_ENV_C65', 'DMPAPER_ENV_DL', 'DMPAPER_ENV_INVITE', + 'DMPAPER_ENV_ITALY', 'DMPAPER_ENV_MONARCH', 'DMPAPER_ENV_PERSONAL', + 'DMPAPER_ESHEET', 'DMPAPER_EXECUTIVE', + 'DMPAPER_FANFOLD_LGL_GERMAN', 'DMPAPER_FANFOLD_STD_GERMAN', + 'DMPAPER_FANFOLD_US', 'DMPAPER_FIRST', 'DMPAPER_FOLIO', + 'DMPAPER_ISO_B4', 'DMPAPER_JAPANESE_POSTCARD', + 'DMPAPER_JAPANESE_POSTCARD_ROTATED', 'DMPAPER_JENV_CHOU3', + 'DMPAPER_JENV_CHOU3_ROTATED', 'DMPAPER_JENV_CHOU4', + 'DMPAPER_JENV_CHOU4_ROTATED', 'DMPAPER_JENV_KAKU2', + 'DMPAPER_JENV_KAKU2_ROTATED', 'DMPAPER_JENV_KAKU3', + 'DMPAPER_JENV_KAKU3_ROTATED', 'DMPAPER_JENV_YOU4', + 'DMPAPER_JENV_YOU4_ROTATED', 'DMPAPER_LEDGER', 'DMPAPER_LEGAL', + 'DMPAPER_LEGAL_EXTRA', 'DMPAPER_LETTER', 'DMPAPER_LETTER_EXTRA', + 'DMPAPER_LETTER_EXTRA_TRANSVERSE', 'DMPAPER_LETTER_PLUS', + 'DMPAPER_LETTER_ROTATED', 'DMPAPER_LETTER_TRANSVERSE', + 'DMPAPER_LETTERSMALL', 'DMPAPER_NOTE', 'DMPAPER_P16K', + 'DMPAPER_P16K_ROTATED', 'DMPAPER_P32K', 'DMPAPER_P32K_ROTATED', + 'DMPAPER_P32KBIG', 'DMPAPER_P32KBIG_ROTATED', 'DMPAPER_PENV_1', + 'DMPAPER_PENV_1_ROTATED', 'DMPAPER_PENV_10', + 'DMPAPER_PENV_10_ROTATED', 'DMPAPER_PENV_2', + 'DMPAPER_PENV_2_ROTATED', 'DMPAPER_PENV_3', + 'DMPAPER_PENV_3_ROTATED', 'DMPAPER_PENV_4', + 'DMPAPER_PENV_4_ROTATED', 'DMPAPER_PENV_5', + 'DMPAPER_PENV_5_ROTATED', 'DMPAPER_PENV_6', + 'DMPAPER_PENV_6_ROTATED', 'DMPAPER_PENV_7', + 'DMPAPER_PENV_7_ROTATED', 'DMPAPER_PENV_8', + 'DMPAPER_PENV_8_ROTATED', 'DMPAPER_PENV_9', + 'DMPAPER_PENV_9_ROTATED', 'DMPAPER_QUARTO', 'DMPAPER_RESERVED_48', + 'DMPAPER_RESERVED_49', 'DMPAPER_STATEMENT', 'DMPAPER_TABLOID', + 'DMPAPER_TABLOID_EXTRA', 'DMPAPER_USER', 'ERR_BAD_WINDOW', + 'ERR_BAD_WINDOW_NUM', 'ERR_CANT_ACCESS_FILE', + 'ERR_CANT_INITIATE_LINK', 'ERR_CMD_NOT_SUPPORTED', + 'ERR_FCN_ARG_RANGE', 'ERR_FCN_INVALID_FMT', + 'ERR_FCN_OBJ_FETCH_FAILED', 'ERR_FILEMGR_NOTOPEN', + 'ERR_FP_MATH_LIB_DOMAIN', 'ERR_FP_MATH_LIB_RANGE', + 'ERR_INVALID_CHANNEL', 'ERR_INVALID_READ_CONTROL', + 'ERR_INVALID_TRIG_CONTROL', 'ERR_NO_FIELD', + 'ERR_NO_RESPONSE_FROM_APP', 'ERR_NULL_SELECTION', + 'ERR_PROCESS_FAILED_IN_APP', 'ERR_TABLE_NOT_FOUND', + 'ERR_WANT_MAPPER_WIN', 'FALSE', 'FILE_ATTR_FILESIZE', + 'FILE_ATTR_MODE', 'FILTER_ALL_DIRECTIONS_1', + 'FILTER_ALL_DIRECTIONS_2', 'FILTER_DIAGONALLY', + 'FILTER_HORIZONTALLY', 'FILTER_VERTICALLY', + 'FILTER_VERTICALLY_AND_HORIZONTALLY', 'FOLDER_APPDATA', + 'FOLDER_COMMON_APPDATA', 'FOLDER_COMMON_DOCS', + 'FOLDER_LOCAL_APPDATA', 'FOLDER_MI_APPDATA', + 'FOLDER_MI_COMMON_APPDATA', 'FOLDER_MI_LOCAL_APPDATA', + 'FOLDER_MI_PREFERENCE', 'FOLDER_MYDOCS', 'FOLDER_MYPICS', + 'FONT_BACKCOLOR', 'FONT_FORECOLOR', 'FONT_NAME', 'FONT_POINTSIZE', + 'FONT_STYLE', 'FRAME_INFO_BORDER_PEN', 'FRAME_INFO_COLUMN', + 'FRAME_INFO_HEIGHT', 'FRAME_INFO_LABEL', 'FRAME_INFO_MAP_LAYER_ID', + 'FRAME_INFO_NUM_STYLES', 'FRAME_INFO_POS_X', 'FRAME_INFO_POS_Y', + 'FRAME_INFO_REFRESHABLE', 'FRAME_INFO_SUBTITLE', + 'FRAME_INFO_SUBTITLE_FONT', 'FRAME_INFO_TITLE', + 'FRAME_INFO_TITLE_FONT', 'FRAME_INFO_TYPE', 'FRAME_INFO_VISIBLE', + 'FRAME_INFO_WIDTH', 'FRAME_TYPE_STYLE', 'FRAME_TYPE_THEME', + 'GEO_CONTROL_POINT_X', 'GEO_CONTROL_POINT_Y', 'GEOCODE_BATCH_SIZE', + 'GEOCODE_COUNT_GEOCODED', 'GEOCODE_COUNT_NOTGEOCODED', + 'GEOCODE_COUNTRY_SUBDIVISION', 'GEOCODE_COUNTRY_SUBDIVISION2', + 'GEOCODE_DICTIONARY', 'GEOCODE_FALLBACK_GEOGRAPHIC', + 'GEOCODE_FALLBACK_POSTAL', 'GEOCODE_MAX_BATCH_SIZE', + 'GEOCODE_MIXED_CASE', 'GEOCODE_MUNICIPALITY', + 'GEOCODE_MUNICIPALITY2', 'GEOCODE_OFFSET_CENTER', + 'GEOCODE_OFFSET_CENTER_UNITS', 'GEOCODE_OFFSET_END', + 'GEOCODE_OFFSET_END_UNITS', 'GEOCODE_PASSTHROUGH', + 'GEOCODE_POSTAL_CODE', 'GEOCODE_RESULT_MARK_MULTIPLE', + 'GEOCODE_STREET_NAME', 'GEOCODE_STREET_NUMBER', + 'GEOCODE_UNABLE_TO_CONVERT_DATA', 'GREEN', + 'GRID_TAB_INFO_HAS_HILLSHADE', 'GRID_TAB_INFO_MAX_VALUE', + 'GRID_TAB_INFO_MIN_VALUE', 'HOTLINK_INFO_ENABLED', + 'HOTLINK_INFO_EXPR', 'HOTLINK_INFO_MODE', 'HOTLINK_INFO_RELATIVE', + 'HOTLINK_MODE_BOTH', 'HOTLINK_MODE_LABEL', 'HOTLINK_MODE_OBJ', + 'IMAGE_CLASS_BILEVEL', 'IMAGE_CLASS_GREYSCALE', + 'IMAGE_CLASS_PALETTE', 'IMAGE_CLASS_RGB', 'IMAGE_TYPE_GRID', + 'IMAGE_TYPE_RASTER', 'INCL_ALL', 'INCL_COMMON', 'INCL_CROSSINGS', + 'ISOGRAM_AMBIENT_SPEED_DIST_UNIT', + 'ISOGRAM_AMBIENT_SPEED_TIME_UNIT', 'ISOGRAM_BANDING', + 'ISOGRAM_BATCH_SIZE', 'ISOGRAM_DEFAULT_AMBIENT_SPEED', + 'ISOGRAM_MAJOR_POLYGON_ONLY', 'ISOGRAM_MAJOR_ROADS_ONLY', + 'ISOGRAM_MAX_BANDS', 'ISOGRAM_MAX_BATCH_SIZE', + 'ISOGRAM_MAX_DISTANCE', 'ISOGRAM_MAX_DISTANCE_UNITS', + 'ISOGRAM_MAX_OFFROAD_DIST', 'ISOGRAM_MAX_OFFROAD_DIST_UNITS', + 'ISOGRAM_MAX_TIME', 'ISOGRAM_MAX_TIME_UNITS', + 'ISOGRAM_POINTS_ONLY', 'ISOGRAM_PROPAGATION_FACTOR', + 'ISOGRAM_RECORDS_INSERTED', 'ISOGRAM_RECORDS_NOTINSERTED', + 'ISOGRAM_RETURN_HOLES', 'ISOGRAM_SIMPLIFICATION_FACTOR', + 'LABEL_INFO_ANCHORX', 'LABEL_INFO_ANCHORY', 'LABEL_INFO_DRAWN', + 'LABEL_INFO_EDIT', 'LABEL_INFO_EDIT_ANCHOR', + 'LABEL_INFO_EDIT_ANGLE', 'LABEL_INFO_EDIT_FONT', + 'LABEL_INFO_EDIT_OFFSET', 'LABEL_INFO_EDIT_PEN', + 'LABEL_INFO_EDIT_POSITION', 'LABEL_INFO_EDIT_TEXT', + 'LABEL_INFO_EDIT_TEXTARROW', 'LABEL_INFO_EDIT_TEXTLINE', + 'LABEL_INFO_EDIT_VISIBILITY', 'LABEL_INFO_OBJECT', + 'LABEL_INFO_OFFSET', 'LABEL_INFO_ORIENTATION', + 'LABEL_INFO_POSITION', 'LABEL_INFO_ROWID', 'LABEL_INFO_SELECT', + 'LABEL_INFO_TABLE', 'LAYER_INFO_ARROWS', 'LAYER_INFO_CENTROIDS', + 'LAYER_INFO_COSMETIC', 'LAYER_INFO_DISPLAY', + 'LAYER_INFO_DISPLAY_GLOBAL', 'LAYER_INFO_DISPLAY_GRAPHIC', + 'LAYER_INFO_DISPLAY_OFF', 'LAYER_INFO_DISPLAY_VALUE', + 'LAYER_INFO_EDITABLE', 'LAYER_INFO_HOTLINK_COUNT', + 'LAYER_INFO_HOTLINK_EXPR', 'LAYER_INFO_HOTLINK_MODE', + 'LAYER_INFO_HOTLINK_RELATIVE', 'LAYER_INFO_LABEL_ALPHA', + 'LAYER_INFO_LABEL_ORIENT_CURVED', + 'LAYER_INFO_LABEL_ORIENT_HORIZONTAL', + 'LAYER_INFO_LABEL_ORIENT_PARALLEL', 'LAYER_INFO_LAYER_ALPHA', + 'LAYER_INFO_LAYER_TRANSLUCENCY', 'LAYER_INFO_LBL_AUTODISPLAY', + 'LAYER_INFO_LBL_CURFONT', 'LAYER_INFO_LBL_DUPLICATES', + 'LAYER_INFO_LBL_EXPR', 'LAYER_INFO_LBL_FONT', 'LAYER_INFO_LBL_LT', + 'LAYER_INFO_LBL_LT_ARROW', 'LAYER_INFO_LBL_LT_NONE', + 'LAYER_INFO_LBL_LT_SIMPLE', 'LAYER_INFO_LBL_MAX', + 'LAYER_INFO_LBL_OFFSET', 'LAYER_INFO_LBL_ORIENTATION', + 'LAYER_INFO_LBL_OVERLAP', 'LAYER_INFO_LBL_PARALLEL', + 'LAYER_INFO_LBL_PARTIALSEGS', 'LAYER_INFO_LBL_POS', + 'LAYER_INFO_LBL_POS_BC', 'LAYER_INFO_LBL_POS_BL', + 'LAYER_INFO_LBL_POS_BR', 'LAYER_INFO_LBL_POS_CC', + 'LAYER_INFO_LBL_POS_CL', 'LAYER_INFO_LBL_POS_CR', + 'LAYER_INFO_LBL_POS_TC', 'LAYER_INFO_LBL_POS_TL', + 'LAYER_INFO_LBL_POS_TR', 'LAYER_INFO_LBL_VIS_OFF', + 'LAYER_INFO_LBL_VIS_ON', 'LAYER_INFO_LBL_VIS_ZOOM', + 'LAYER_INFO_LBL_VISIBILITY', 'LAYER_INFO_LBL_ZOOM_MAX', + 'LAYER_INFO_LBL_ZOOM_MIN', 'LAYER_INFO_NAME', 'LAYER_INFO_NODES', + 'LAYER_INFO_OVR_BRUSH', 'LAYER_INFO_OVR_FONT', + 'LAYER_INFO_OVR_LINE', 'LAYER_INFO_OVR_PEN', + 'LAYER_INFO_OVR_SYMBOL', 'LAYER_INFO_PATH', + 'LAYER_INFO_SELECTABLE', 'LAYER_INFO_TYPE', + 'LAYER_INFO_TYPE_COSMETIC', 'LAYER_INFO_TYPE_GRID', + 'LAYER_INFO_TYPE_IMAGE', 'LAYER_INFO_TYPE_NORMAL', + 'LAYER_INFO_TYPE_THEMATIC', 'LAYER_INFO_TYPE_WMS', + 'LAYER_INFO_ZOOM_LAYERED', 'LAYER_INFO_ZOOM_MAX', + 'LAYER_INFO_ZOOM_MIN', 'LEGEND_INFO_MAP_ID', + 'LEGEND_INFO_NUM_FRAMES', 'LEGEND_INFO_ORIENTATION', + 'LEGEND_INFO_STYLE_SAMPLE_SIZE', 'LEGEND_STYLE_INFO_FONT', + 'LEGEND_STYLE_INFO_OBJ', 'LEGEND_STYLE_INFO_TEXT', + 'LOCATE_ABB_FILE', 'LOCATE_CLR_FILE', 'LOCATE_CUSTSYMB_DIR', + 'LOCATE_DEF_WOR', 'LOCATE_FNT_FILE', 'LOCATE_GEOCODE_SERVERLIST', + 'LOCATE_GRAPH_DIR', 'LOCATE_LAYOUT_TEMPLATE_DIR', + 'LOCATE_MNU_FILE', 'LOCATE_PEN_FILE', 'LOCATE_PREF_FILE', + 'LOCATE_PRJ_FILE', 'LOCATE_ROUTING_SERVERLIST', + 'LOCATE_THMTMPLT_DIR', 'LOCATE_WFS_SERVERLIST', + 'LOCATE_WMS_SERVERLIST', 'M_3DMAP_CLONE_VIEW', + 'M_3DMAP_PREVIOUS_VIEW', 'M_3DMAP_PROPERTIES', + 'M_3DMAP_REFRESH_GRID_TEXTURE', 'M_3DMAP_VIEW_ENTIRE_GRID', + 'M_3DMAP_VIEWPOINT_CONTROL', 'M_3DMAP_WIREFRAME', + 'M_ANALYZE_CALC_STATISTICS', 'M_ANALYZE_CUSTOMIZE_LEGEND', + 'M_ANALYZE_FIND', 'M_ANALYZE_FIND_SELECTION', + 'M_ANALYZE_INVERTSELECT', 'M_ANALYZE_SELECT', + 'M_ANALYZE_SELECTALL', 'M_ANALYZE_SHADE', 'M_ANALYZE_SQLQUERY', + 'M_ANALYZE_UNSELECT', 'M_BROWSE_EDIT', 'M_BROWSE_GRID', + 'M_BROWSE_NEW_RECORD', 'M_BROWSE_OPTIONS', 'M_BROWSE_PICK_FIELDS', + 'M_DBMS_OPEN_ODBC', 'M_EDIT_CLEAR', 'M_EDIT_CLEAROBJ', + 'M_EDIT_COPY', 'M_EDIT_CUT', 'M_EDIT_GETINFO', 'M_EDIT_NEW_ROW', + 'M_EDIT_PASTE', 'M_EDIT_PREFERENCES', 'M_EDIT_PREFERENCES_COUNTRY', + 'M_EDIT_PREFERENCES_FILE', 'M_EDIT_PREFERENCES_IMAGE_PROC', + 'M_EDIT_PREFERENCES_LAYOUT', 'M_EDIT_PREFERENCES_LEGEND', + 'M_EDIT_PREFERENCES_MAP', 'M_EDIT_PREFERENCES_OUTPUT', + 'M_EDIT_PREFERENCES_PATH', 'M_EDIT_PREFERENCES_PRINTER', + 'M_EDIT_PREFERENCES_STYLES', 'M_EDIT_PREFERENCES_SYSTEM', + 'M_EDIT_PREFERENCES_WEBSERVICES', 'M_EDIT_RESHAPE', 'M_EDIT_UNDO', + 'M_FILE_ABOUT', 'M_FILE_ADD_WORKSPACE', 'M_FILE_CLOSE', + 'M_FILE_CLOSE_ALL', 'M_FILE_CLOSE_ODBC', 'M_FILE_EXIT', + 'M_FILE_HELP', 'M_FILE_NEW', 'M_FILE_OPEN', 'M_FILE_OPEN_ODBC', + 'M_FILE_OPEN_ODBC_CONN', 'M_FILE_OPEN_UNIVERSAL_DATA', + 'M_FILE_OPEN_WFS', 'M_FILE_OPEN_WMS', 'M_FILE_PAGE_SETUP', + 'M_FILE_PRINT', 'M_FILE_PRINT_SETUP', 'M_FILE_REVERT', + 'M_FILE_RUN', 'M_FILE_SAVE', 'M_FILE_SAVE_COPY_AS', + 'M_FILE_SAVE_QUERY', 'M_FILE_SAVE_WINDOW_AS', + 'M_FILE_SAVE_WORKSPACE', 'M_FORMAT_CUSTOM_COLORS', + 'M_FORMAT_PICK_FILL', 'M_FORMAT_PICK_FONT', 'M_FORMAT_PICK_LINE', + 'M_FORMAT_PICK_SYMBOL', 'M_GRAPH_3D_VIEWING_ANGLE', + 'M_GRAPH_FORMATING', 'M_GRAPH_GENERAL_OPTIONS', + 'M_GRAPH_GRID_SCALES', 'M_GRAPH_LABEL_AXIS', + 'M_GRAPH_SAVE_AS_TEMPLATE', 'M_GRAPH_SERIES', + 'M_GRAPH_SERIES_OPTIONS', 'M_GRAPH_TITLES', 'M_GRAPH_TYPE', + 'M_GRAPH_VALUE_AXIS', 'M_HELP_ABOUT', 'M_HELP_CHECK_FOR_UPDATE', + 'M_HELP_CONNECT_MIFORUM', 'M_HELP_CONTENTS', + 'M_HELP_CONTEXTSENSITIVE', 'M_HELP_HELPMODE', + 'M_HELP_MAPINFO_3DGRAPH_HELP', 'M_HELP_MAPINFO_CONNECT_SERVICES', + 'M_HELP_MAPINFO_WWW', 'M_HELP_MAPINFO_WWW_STORE', + 'M_HELP_MAPINFO_WWW_TUTORIAL', 'M_HELP_SEARCH', + 'M_HELP_TECHSUPPORT', 'M_HELP_USE_HELP', 'M_LAYOUT_ACTUAL', + 'M_LAYOUT_ALIGN', 'M_LAYOUT_AUTOSCROLL_ONOFF', + 'M_LAYOUT_BRING2FRONT', 'M_LAYOUT_CHANGE_VIEW', + 'M_LAYOUT_DISPLAYOPTIONS', 'M_LAYOUT_DROPSHADOWS', + 'M_LAYOUT_ENTIRE', 'M_LAYOUT_LAYOUT_SIZE', 'M_LAYOUT_PREVIOUS', + 'M_LAYOUT_SEND2BACK', 'M_LEGEND_ADD_FRAMES', 'M_LEGEND_DELETE', + 'M_LEGEND_PROPERTIES', 'M_LEGEND_REFRESH', 'M_MAP_AUTOLABEL', + 'M_MAP_AUTOSCROLL_ONOFF', 'M_MAP_CHANGE_VIEW', + 'M_MAP_CLEAR_COSMETIC', 'M_MAP_CLEAR_CUSTOM_LABELS', + 'M_MAP_CLIP_REGION_ONOFF', 'M_MAP_CLONE_MAPPER', + 'M_MAP_CREATE_3DMAP', 'M_MAP_CREATE_LEGEND', + 'M_MAP_CREATE_PRISMMAP', 'M_MAP_ENTIRE_LAYER', + 'M_MAP_LAYER_CONTROL', 'M_MAP_MODIFY_THEMATIC', 'M_MAP_OPTIONS', + 'M_MAP_PREVIOUS', 'M_MAP_PROJECTION', 'M_MAP_SAVE_COSMETIC', + 'M_MAP_SET_CLIP_REGION', 'M_MAP_SETUNITS', 'M_MAP_SETUPDIGITIZER', + 'M_MAP_THEMATIC', 'M_MAPBASIC_CLEAR', 'M_MAPBASIC_SAVECONTENTS', + 'M_OBJECTS_BREAKPOLY', 'M_OBJECTS_BUFFER', + 'M_OBJECTS_CHECK_REGIONS', 'M_OBJECTS_CLEAN', + 'M_OBJECTS_CLEAR_TARGET', 'M_OBJECTS_COMBINE', + 'M_OBJECTS_CONVEX_HULL', 'M_OBJECTS_CVT_PGON', + 'M_OBJECTS_CVT_PLINE', 'M_OBJECTS_DISAGG', + 'M_OBJECTS_DRIVE_REGION', 'M_OBJECTS_ENCLOSE', 'M_OBJECTS_ERASE', + 'M_OBJECTS_ERASE_OUT', 'M_OBJECTS_MERGE', 'M_OBJECTS_OFFSET', + 'M_OBJECTS_OVERLAY', 'M_OBJECTS_POLYLINE_SPLIT', + 'M_OBJECTS_POLYLINE_SPLIT_AT_NODE', 'M_OBJECTS_RESHAPE', + 'M_OBJECTS_ROTATE', 'M_OBJECTS_SET_TARGET', 'M_OBJECTS_SMOOTH', + 'M_OBJECTS_SNAP', 'M_OBJECTS_SPLIT', 'M_OBJECTS_UNSMOOTH', + 'M_OBJECTS_VORONOI', 'M_ORACLE_CREATE_WORKSPACE', + 'M_ORACLE_DELETE_WORKSPACE', 'M_ORACLE_MERGE_PARENT', + 'M_ORACLE_REFRESH_FROM_PARENT', 'M_ORACLE_VERSION_ENABLE_OFF', + 'M_ORACLE_VERSION_ENABLE_ON', 'M_QUERY_CALC_STATISTICS', + 'M_QUERY_FIND', 'M_QUERY_FIND_ADDRESS', 'M_QUERY_FIND_SELECTION', + 'M_QUERY_FIND_SELECTION_CURRENT_MAP', 'M_QUERY_INVERTSELECT', + 'M_QUERY_SELECT', 'M_QUERY_SELECTALL', 'M_QUERY_SQLQUERY', + 'M_QUERY_UNSELECT', 'M_REDISTRICT_ADD', 'M_REDISTRICT_ASSIGN', + 'M_REDISTRICT_DELETE', 'M_REDISTRICT_OPTIONS', + 'M_REDISTRICT_TARGET', 'M_SENDMAIL_CURRENTWINDOW', + 'M_SENDMAIL_WORKSPACE', 'M_TABLE_APPEND', 'M_TABLE_BUFFER', + 'M_TABLE_CHANGESYMBOL', 'M_TABLE_CREATE_POINTS', 'M_TABLE_DELETE', + 'M_TABLE_DRIVE_REGION', 'M_TABLE_EXPORT', 'M_TABLE_GEOCODE', + 'M_TABLE_IMPORT', 'M_TABLE_MAKEMAPPABLE', + 'M_TABLE_MERGE_USING_COLUMN', 'M_TABLE_MODIFY_STRUCTURE', + 'M_TABLE_PACK', 'M_TABLE_RASTER_REG', 'M_TABLE_RASTER_STYLE', + 'M_TABLE_REFRESH', 'M_TABLE_RENAME', + 'M_TABLE_UNIVERSAL_DATA_REFRESH', 'M_TABLE_UNLINK', + 'M_TABLE_UPDATE_COLUMN', 'M_TABLE_VORONOI', 'M_TABLE_WEB_GEOCODE', + 'M_TABLE_WFS_PROPS', 'M_TABLE_WFS_REFRESH', 'M_TABLE_WMS_PROPS', + 'M_TOOLS_ADD_NODE', 'M_TOOLS_ARC', 'M_TOOLS_CRYSTAL_REPORTS_NEW', + 'M_TOOLS_CRYSTAL_REPORTS_OPEN', 'M_TOOLS_DRAGWINDOW', + 'M_TOOLS_ELLIPSE', 'M_TOOLS_EXPAND', 'M_TOOLS_FRAME', + 'M_TOOLS_HOTLINK', 'M_TOOLS_LABELER', 'M_TOOLS_LINE', + 'M_TOOLS_MAPBASIC', 'M_TOOLS_PNT_QUERY', 'M_TOOLS_POINT', + 'M_TOOLS_POLYGON', 'M_TOOLS_POLYLINE', 'M_TOOLS_RASTER_REG', + 'M_TOOLS_RECENTER', 'M_TOOLS_RECTANGLE', 'M_TOOLS_ROUNDEDRECT', + 'M_TOOLS_RULER', 'M_TOOLS_RUN', 'M_TOOLS_SEARCH_BOUNDARY', + 'M_TOOLS_SEARCH_POLYGON', 'M_TOOLS_SEARCH_RADIUS', + 'M_TOOLS_SEARCH_RECT', 'M_TOOLS_SELECTOR', 'M_TOOLS_SHRINK', + 'M_TOOLS_TEXT', 'M_TOOLS_TOOL_MANAGER', 'M_WINDOW_ARRANGEICONS', + 'M_WINDOW_BROWSE', 'M_WINDOW_BUTTONPAD', 'M_WINDOW_CASCADE', + 'M_WINDOW_EXPORT_WINDOW', 'M_WINDOW_FIRST', 'M_WINDOW_GRAPH', + 'M_WINDOW_LAYOUT', 'M_WINDOW_LEGEND', 'M_WINDOW_MAP', + 'M_WINDOW_MAPBASIC', 'M_WINDOW_MORE', 'M_WINDOW_REDISTRICT', + 'M_WINDOW_REDRAW', 'M_WINDOW_STATISTICS', 'M_WINDOW_STATUSBAR', + 'M_WINDOW_TILE', 'M_WINDOW_TOOL_PALETTE', 'MAGENTA', + 'MAP3D_INFO_BACKGROUND', 'MAP3D_INFO_CAMERA_CLIP_FAR', + 'MAP3D_INFO_CAMERA_CLIP_NEAR', 'MAP3D_INFO_CAMERA_FOCAL_X', + 'MAP3D_INFO_CAMERA_FOCAL_Y', 'MAP3D_INFO_CAMERA_FOCAL_Z', + 'MAP3D_INFO_CAMERA_VPN_1', 'MAP3D_INFO_CAMERA_VPN_2', + 'MAP3D_INFO_CAMERA_VPN_3', 'MAP3D_INFO_CAMERA_VU_1', + 'MAP3D_INFO_CAMERA_VU_2', 'MAP3D_INFO_CAMERA_VU_3', + 'MAP3D_INFO_CAMERA_X', 'MAP3D_INFO_CAMERA_Y', + 'MAP3D_INFO_CAMERA_Z', 'MAP3D_INFO_LIGHT_COLOR', + 'MAP3D_INFO_LIGHT_X', 'MAP3D_INFO_LIGHT_Y', 'MAP3D_INFO_LIGHT_Z', + 'MAP3D_INFO_RESOLUTION_X', 'MAP3D_INFO_RESOLUTION_Y', + 'MAP3D_INFO_SCALE', 'MAP3D_INFO_UNITS', 'MAPPER_INFO_AREAUNITS', + 'MAPPER_INFO_CENTERX', 'MAPPER_INFO_CENTERY', + 'MAPPER_INFO_CLIP_DISPLAY_ALL', 'MAPPER_INFO_CLIP_DISPLAY_POLYOBJ', + 'MAPPER_INFO_CLIP_OVERLAY', 'MAPPER_INFO_CLIP_REGION', + 'MAPPER_INFO_CLIP_TYPE', 'MAPPER_INFO_COORDSYS_CLAUSE', + 'MAPPER_INFO_COORDSYS_CLAUSE_WITH_BOUNDS', + 'MAPPER_INFO_COORDSYS_NAME', 'MAPPER_INFO_DISPLAY', + 'MAPPER_INFO_DISPLAY_DECIMAL', 'MAPPER_INFO_DISPLAY_DEGMINSEC', + 'MAPPER_INFO_DISPLAY_DMS', 'MAPPER_INFO_DISPLAY_MGRS', + 'MAPPER_INFO_DISPLAY_POSITION', 'MAPPER_INFO_DISPLAY_SCALE', + 'MAPPER_INFO_DISPLAY_ZOOM', 'MAPPER_INFO_DIST_CALC_TYPE', + 'MAPPER_INFO_DIST_CARTESIAN', 'MAPPER_INFO_DIST_SPHERICAL', + 'MAPPER_INFO_DISTUNITS', 'MAPPER_INFO_EDIT_LAYER', + 'MAPPER_INFO_LAYERS', 'MAPPER_INFO_MAXX', 'MAPPER_INFO_MAXY', + 'MAPPER_INFO_MERGE_MAP', 'MAPPER_INFO_MINX', 'MAPPER_INFO_MINY', + 'MAPPER_INFO_MOVE_DUPLICATE_NODES', 'MAPPER_INFO_NUM_THEMATIC', + 'MAPPER_INFO_REPROJECTION', 'MAPPER_INFO_RESAMPLING', + 'MAPPER_INFO_SCALE', 'MAPPER_INFO_SCROLLBARS', + 'MAPPER_INFO_XYUNITS', 'MAPPER_INFO_ZOOM', 'MAX_STRING_LENGTH', + 'MENUITEM_INFO_ACCELERATOR', 'MENUITEM_INFO_CHECKABLE', + 'MENUITEM_INFO_CHECKED', 'MENUITEM_INFO_ENABLED', + 'MENUITEM_INFO_HANDLER', 'MENUITEM_INFO_HELPMSG', + 'MENUITEM_INFO_ID', 'MENUITEM_INFO_SHOWHIDEABLE', + 'MENUITEM_INFO_TEXT', 'MI_CURSOR_ARROW', 'MI_CURSOR_CHANGE_WIDTH', + 'MI_CURSOR_CROSSHAIR', 'MI_CURSOR_DRAG_OBJ', + 'MI_CURSOR_FINGER_LEFT', 'MI_CURSOR_FINGER_UP', + 'MI_CURSOR_GRABBER', 'MI_CURSOR_IBEAM', 'MI_CURSOR_IBEAM_CROSS', + 'MI_CURSOR_ZOOM_IN', 'MI_CURSOR_ZOOM_OUT', 'MI_ICON_ADD_NODE', + 'MI_ICON_ARC', 'MI_ICON_ARROW', 'MI_ICON_ARROW_1', + 'MI_ICON_ARROW_10', 'MI_ICON_ARROW_11', 'MI_ICON_ARROW_12', + 'MI_ICON_ARROW_13', 'MI_ICON_ARROW_14', 'MI_ICON_ARROW_15', + 'MI_ICON_ARROW_16', 'MI_ICON_ARROW_17', 'MI_ICON_ARROW_18', + 'MI_ICON_ARROW_19', 'MI_ICON_ARROW_2', 'MI_ICON_ARROW_20', + 'MI_ICON_ARROW_21', 'MI_ICON_ARROW_3', 'MI_ICON_ARROW_4', + 'MI_ICON_ARROW_5', 'MI_ICON_ARROW_6', 'MI_ICON_ARROW_7', + 'MI_ICON_ARROW_8', 'MI_ICON_ARROW_9', 'MI_ICON_CLIP_MODE', + 'MI_ICON_CLIP_REGION', 'MI_ICON_CLOSE_ALL', + 'MI_ICON_COMMUNICATION_1', 'MI_ICON_COMMUNICATION_10', + 'MI_ICON_COMMUNICATION_11', 'MI_ICON_COMMUNICATION_12', + 'MI_ICON_COMMUNICATION_2', 'MI_ICON_COMMUNICATION_3', + 'MI_ICON_COMMUNICATION_4', 'MI_ICON_COMMUNICATION_5', + 'MI_ICON_COMMUNICATION_6', 'MI_ICON_COMMUNICATION_7', + 'MI_ICON_COMMUNICATION_8', 'MI_ICON_COMMUNICATION_9', + 'MI_ICON_COMPASS_CIRCLE_TA', 'MI_ICON_COMPASS_CONTRACT', + 'MI_ICON_COMPASS_EXPAND', 'MI_ICON_COMPASS_POLY_TA', + 'MI_ICON_COMPASS_TAG', 'MI_ICON_COMPASS_UNTAG', 'MI_ICON_COPY', + 'MI_ICON_CROSSHAIR', 'MI_ICON_CUT', 'MI_ICON_DISTRICT_MANY', + 'MI_ICON_DISTRICT_SAME', 'MI_ICON_DRAG_HANDLE', 'MI_ICON_ELLIPSE', + 'MI_ICON_EMERGENCY_1', 'MI_ICON_EMERGENCY_10', + 'MI_ICON_EMERGENCY_11', 'MI_ICON_EMERGENCY_12', + 'MI_ICON_EMERGENCY_13', 'MI_ICON_EMERGENCY_14', + 'MI_ICON_EMERGENCY_15', 'MI_ICON_EMERGENCY_16', + 'MI_ICON_EMERGENCY_17', 'MI_ICON_EMERGENCY_18', + 'MI_ICON_EMERGENCY_2', 'MI_ICON_EMERGENCY_3', + 'MI_ICON_EMERGENCY_4', 'MI_ICON_EMERGENCY_5', + 'MI_ICON_EMERGENCY_6', 'MI_ICON_EMERGENCY_7', + 'MI_ICON_EMERGENCY_8', 'MI_ICON_EMERGENCY_9', 'MI_ICON_GRABBER', + 'MI_ICON_GRAPH_SELECT', 'MI_ICON_HELP', 'MI_ICON_HOT_LINK', + 'MI_ICON_INFO', 'MI_ICON_INVERTSELECT', 'MI_ICON_LABEL', + 'MI_ICON_LAYERS', 'MI_ICON_LEGEND', 'MI_ICON_LETTERS_A', + 'MI_ICON_LETTERS_B', 'MI_ICON_LETTERS_C', 'MI_ICON_LETTERS_D', + 'MI_ICON_LETTERS_E', 'MI_ICON_LETTERS_F', 'MI_ICON_LETTERS_G', + 'MI_ICON_LETTERS_H', 'MI_ICON_LETTERS_I', 'MI_ICON_LETTERS_J', + 'MI_ICON_LETTERS_K', 'MI_ICON_LETTERS_L', 'MI_ICON_LETTERS_M', + 'MI_ICON_LETTERS_N', 'MI_ICON_LETTERS_O', 'MI_ICON_LETTERS_P', + 'MI_ICON_LETTERS_Q', 'MI_ICON_LETTERS_R', 'MI_ICON_LETTERS_S', + 'MI_ICON_LETTERS_T', 'MI_ICON_LETTERS_U', 'MI_ICON_LETTERS_V', + 'MI_ICON_LETTERS_W', 'MI_ICON_LETTERS_X', 'MI_ICON_LETTERS_Y', + 'MI_ICON_LETTERS_Z', 'MI_ICON_LINE', 'MI_ICON_LINE_STYLE', + 'MI_ICON_MAPSYMB_1', 'MI_ICON_MAPSYMB_10', 'MI_ICON_MAPSYMB_11', + 'MI_ICON_MAPSYMB_12', 'MI_ICON_MAPSYMB_13', 'MI_ICON_MAPSYMB_14', + 'MI_ICON_MAPSYMB_15', 'MI_ICON_MAPSYMB_16', 'MI_ICON_MAPSYMB_17', + 'MI_ICON_MAPSYMB_18', 'MI_ICON_MAPSYMB_19', 'MI_ICON_MAPSYMB_2', + 'MI_ICON_MAPSYMB_20', 'MI_ICON_MAPSYMB_21', 'MI_ICON_MAPSYMB_22', + 'MI_ICON_MAPSYMB_23', 'MI_ICON_MAPSYMB_24', 'MI_ICON_MAPSYMB_25', + 'MI_ICON_MAPSYMB_26', 'MI_ICON_MAPSYMB_3', 'MI_ICON_MAPSYMB_4', + 'MI_ICON_MAPSYMB_5', 'MI_ICON_MAPSYMB_6', 'MI_ICON_MAPSYMB_7', + 'MI_ICON_MAPSYMB_8', 'MI_ICON_MAPSYMB_9', 'MI_ICON_MARITIME_1', + 'MI_ICON_MARITIME_10', 'MI_ICON_MARITIME_2', 'MI_ICON_MARITIME_3', + 'MI_ICON_MARITIME_4', 'MI_ICON_MARITIME_5', 'MI_ICON_MARITIME_6', + 'MI_ICON_MARITIME_7', 'MI_ICON_MARITIME_8', 'MI_ICON_MARITIME_9', + 'MI_ICON_MB_1', 'MI_ICON_MB_10', 'MI_ICON_MB_11', 'MI_ICON_MB_12', + 'MI_ICON_MB_13', 'MI_ICON_MB_14', 'MI_ICON_MB_2', 'MI_ICON_MB_3', + 'MI_ICON_MB_4', 'MI_ICON_MB_5', 'MI_ICON_MB_6', 'MI_ICON_MB_7', + 'MI_ICON_MB_8', 'MI_ICON_MB_9', 'MI_ICON_MISC_1', + 'MI_ICON_MISC_10', 'MI_ICON_MISC_11', 'MI_ICON_MISC_12', + 'MI_ICON_MISC_13', 'MI_ICON_MISC_14', 'MI_ICON_MISC_15', + 'MI_ICON_MISC_16', 'MI_ICON_MISC_17', 'MI_ICON_MISC_18', + 'MI_ICON_MISC_19', 'MI_ICON_MISC_2', 'MI_ICON_MISC_20', + 'MI_ICON_MISC_21', 'MI_ICON_MISC_22', 'MI_ICON_MISC_23', + 'MI_ICON_MISC_24', 'MI_ICON_MISC_25', 'MI_ICON_MISC_26', + 'MI_ICON_MISC_27', 'MI_ICON_MISC_28', 'MI_ICON_MISC_29', + 'MI_ICON_MISC_3', 'MI_ICON_MISC_30', 'MI_ICON_MISC_31', + 'MI_ICON_MISC_4', 'MI_ICON_MISC_5', 'MI_ICON_MISC_6', + 'MI_ICON_MISC_7', 'MI_ICON_MISC_8', 'MI_ICON_MISC_9', + 'MI_ICON_NEW_DOC', 'MI_ICON_NUMBERS_1', 'MI_ICON_NUMBERS_10', + 'MI_ICON_NUMBERS_11', 'MI_ICON_NUMBERS_12', 'MI_ICON_NUMBERS_13', + 'MI_ICON_NUMBERS_14', 'MI_ICON_NUMBERS_15', 'MI_ICON_NUMBERS_16', + 'MI_ICON_NUMBERS_17', 'MI_ICON_NUMBERS_18', 'MI_ICON_NUMBERS_19', + 'MI_ICON_NUMBERS_2', 'MI_ICON_NUMBERS_20', 'MI_ICON_NUMBERS_21', + 'MI_ICON_NUMBERS_22', 'MI_ICON_NUMBERS_23', 'MI_ICON_NUMBERS_24', + 'MI_ICON_NUMBERS_25', 'MI_ICON_NUMBERS_26', 'MI_ICON_NUMBERS_27', + 'MI_ICON_NUMBERS_28', 'MI_ICON_NUMBERS_29', 'MI_ICON_NUMBERS_3', + 'MI_ICON_NUMBERS_30', 'MI_ICON_NUMBERS_31', 'MI_ICON_NUMBERS_32', + 'MI_ICON_NUMBERS_4', 'MI_ICON_NUMBERS_5', 'MI_ICON_NUMBERS_6', + 'MI_ICON_NUMBERS_7', 'MI_ICON_NUMBERS_8', 'MI_ICON_NUMBERS_9', + 'MI_ICON_ODBC_DISCONNECT', 'MI_ICON_ODBC_MAPPABLE', + 'MI_ICON_ODBC_OPEN', 'MI_ICON_ODBC_REFRESH', 'MI_ICON_ODBC_SYMBOL', + 'MI_ICON_ODBC_UNLINK', 'MI_ICON_OPEN_FILE', 'MI_ICON_OPEN_WOR', + 'MI_ICON_OPENWFS', 'MI_ICON_OPENWMS', 'MI_ICON_PASTE', + 'MI_ICON_POLYGON', 'MI_ICON_POLYLINE', 'MI_ICON_PRINT', + 'MI_ICON_REALESTATE_1', 'MI_ICON_REALESTATE_10', + 'MI_ICON_REALESTATE_11', 'MI_ICON_REALESTATE_12', + 'MI_ICON_REALESTATE_13', 'MI_ICON_REALESTATE_14', + 'MI_ICON_REALESTATE_15', 'MI_ICON_REALESTATE_16', + 'MI_ICON_REALESTATE_17', 'MI_ICON_REALESTATE_18', + 'MI_ICON_REALESTATE_19', 'MI_ICON_REALESTATE_2', + 'MI_ICON_REALESTATE_20', 'MI_ICON_REALESTATE_21', + 'MI_ICON_REALESTATE_22', 'MI_ICON_REALESTATE_23', + 'MI_ICON_REALESTATE_3', 'MI_ICON_REALESTATE_4', + 'MI_ICON_REALESTATE_5', 'MI_ICON_REALESTATE_6', + 'MI_ICON_REALESTATE_7', 'MI_ICON_REALESTATE_8', + 'MI_ICON_REALESTATE_9', 'MI_ICON_RECT', 'MI_ICON_REGION_STYLE', + 'MI_ICON_RESHAPE', 'MI_ICON_ROUND_RECT', 'MI_ICON_RULER', + 'MI_ICON_RUN', 'MI_ICON_SAVE_FILE', 'MI_ICON_SAVE_WIN', + 'MI_ICON_SAVE_WOR', 'MI_ICON_SEARCH_BDY', 'MI_ICON_SEARCH_POLYGON', + 'MI_ICON_SEARCH_RADIUS', 'MI_ICON_SEARCH_RECT', 'MI_ICON_SIGNS_1', + 'MI_ICON_SIGNS_10', 'MI_ICON_SIGNS_11', 'MI_ICON_SIGNS_12', + 'MI_ICON_SIGNS_13', 'MI_ICON_SIGNS_14', 'MI_ICON_SIGNS_15', + 'MI_ICON_SIGNS_16', 'MI_ICON_SIGNS_17', 'MI_ICON_SIGNS_18', + 'MI_ICON_SIGNS_19', 'MI_ICON_SIGNS_2', 'MI_ICON_SIGNS_3', + 'MI_ICON_SIGNS_4', 'MI_ICON_SIGNS_5', 'MI_ICON_SIGNS_6', + 'MI_ICON_SIGNS_7', 'MI_ICON_SIGNS_8', 'MI_ICON_SIGNS_9', + 'MI_ICON_STATISTICS', 'MI_ICON_SYMBOL', 'MI_ICON_SYMBOL_STYLE', + 'MI_ICON_TEXT', 'MI_ICON_TEXT_STYLE', 'MI_ICON_TRANSPORT_1', + 'MI_ICON_TRANSPORT_10', 'MI_ICON_TRANSPORT_11', + 'MI_ICON_TRANSPORT_12', 'MI_ICON_TRANSPORT_13', + 'MI_ICON_TRANSPORT_14', 'MI_ICON_TRANSPORT_15', + 'MI_ICON_TRANSPORT_16', 'MI_ICON_TRANSPORT_17', + 'MI_ICON_TRANSPORT_18', 'MI_ICON_TRANSPORT_19', + 'MI_ICON_TRANSPORT_2', 'MI_ICON_TRANSPORT_20', + 'MI_ICON_TRANSPORT_21', 'MI_ICON_TRANSPORT_22', + 'MI_ICON_TRANSPORT_23', 'MI_ICON_TRANSPORT_24', + 'MI_ICON_TRANSPORT_25', 'MI_ICON_TRANSPORT_26', + 'MI_ICON_TRANSPORT_27', 'MI_ICON_TRANSPORT_3', + 'MI_ICON_TRANSPORT_4', 'MI_ICON_TRANSPORT_5', + 'MI_ICON_TRANSPORT_6', 'MI_ICON_TRANSPORT_7', + 'MI_ICON_TRANSPORT_8', 'MI_ICON_TRANSPORT_9', 'MI_ICON_UNDO', + 'MI_ICON_UNSELECT_ALL', 'MI_ICON_WINDOW_FRAME', 'MI_ICON_WRENCH', + 'MI_ICON_ZOOM_IN', 'MI_ICON_ZOOM_OUT', 'MI_ICON_ZOOM_QUESTION', + 'MI_ICONS_MAPS_1', 'MI_ICONS_MAPS_10', 'MI_ICONS_MAPS_11', + 'MI_ICONS_MAPS_12', 'MI_ICONS_MAPS_13', 'MI_ICONS_MAPS_14', + 'MI_ICONS_MAPS_15', 'MI_ICONS_MAPS_2', 'MI_ICONS_MAPS_3', + 'MI_ICONS_MAPS_4', 'MI_ICONS_MAPS_5', 'MI_ICONS_MAPS_6', + 'MI_ICONS_MAPS_7', 'MI_ICONS_MAPS_8', 'MI_ICONS_MAPS_9', + 'MIPLATFORM_HP', 'MIPLATFORM_MAC68K', 'MIPLATFORM_POWERMAC', + 'MIPLATFORM_SPECIAL', 'MIPLATFORM_SUN', 'MIPLATFORM_WIN16', + 'MIPLATFORM_WIN32', 'MODE_APPEND', 'MODE_BINARY', 'MODE_INPUT', + 'MODE_OUTPUT', 'MODE_RANDOM', 'OBJ_ARC', 'OBJ_ELLIPSE', + 'OBJ_FRAME', 'OBJ_GEO_ARCBEGANGLE', 'OBJ_GEO_ARCENDANGLE', + 'OBJ_GEO_CENTROID', 'OBJ_GEO_LINEBEGX', 'OBJ_GEO_LINEBEGY', + 'OBJ_GEO_LINEENDX', 'OBJ_GEO_LINEENDY', 'OBJ_GEO_MAXX', + 'OBJ_GEO_MAXY', 'OBJ_GEO_MINX', 'OBJ_GEO_MINY', 'OBJ_GEO_POINTM', + 'OBJ_GEO_POINTX', 'OBJ_GEO_POINTY', 'OBJ_GEO_POINTZ', + 'OBJ_GEO_ROUNDRADIUS', 'OBJ_GEO_TEXTANGLE', 'OBJ_GEO_TEXTLINEX', + 'OBJ_GEO_TEXTLINEY', 'OBJ_INFO_BRUSH', 'OBJ_INFO_FILLFRAME', + 'OBJ_INFO_FRAMETITLE', 'OBJ_INFO_FRAMEWIN', 'OBJ_INFO_HAS_M', + 'OBJ_INFO_HAS_Z', 'OBJ_INFO_MPOINT', 'OBJ_INFO_NONEMPTY', + 'OBJ_INFO_NPNTS', 'OBJ_INFO_NPOLYGONS', 'OBJ_INFO_PEN', + 'OBJ_INFO_PLINE', 'OBJ_INFO_REGION', 'OBJ_INFO_SMOOTH', + 'OBJ_INFO_SYMBOL', 'OBJ_INFO_TEXTARROW', 'OBJ_INFO_TEXTFONT', + 'OBJ_INFO_TEXTJUSTIFY', 'OBJ_INFO_TEXTSPACING', + 'OBJ_INFO_TEXTSTRING', 'OBJ_INFO_TYPE', 'OBJ_INFO_Z_UNIT', + 'OBJ_INFO_Z_UNIT_SET', 'OBJ_LINE', 'OBJ_PLINE', 'OBJ_POINT', + 'OBJ_RECT', 'OBJ_REGION', 'OBJ_ROUNDRECT', 'OBJ_TEXT', + 'OBJ_TYPE_ARC', 'OBJ_TYPE_COLLECTION', 'OBJ_TYPE_ELLIPSE', + 'OBJ_TYPE_FRAME', 'OBJ_TYPE_LINE', 'OBJ_TYPE_MPOINT', + 'OBJ_TYPE_PLINE', 'OBJ_TYPE_POINT', 'OBJ_TYPE_RECT', + 'OBJ_TYPE_REGION', 'OBJ_TYPE_ROUNDRECT', 'OBJ_TYPE_TEXT', + 'ORIENTATION_CUSTOM', 'ORIENTATION_LANDSCAPE', + 'ORIENTATION_PORTRAIT', 'PEN_COLOR', 'PEN_INDEX', + 'PEN_INTERLEAVED', 'PEN_PATTERN', 'PEN_WIDTH', 'PLATFORM_MAC', + 'PLATFORM_MOTIF', 'PLATFORM_SPECIAL', 'PLATFORM_WIN', + 'PLATFORM_X11', 'PLATFORM_XOL', 'PRISMMAP_INFO_BACKGROUND', + 'PRISMMAP_INFO_CAMERA_CLIP_FAR', 'PRISMMAP_INFO_CAMERA_CLIP_NEAR', + 'PRISMMAP_INFO_CAMERA_FOCAL_X', 'PRISMMAP_INFO_CAMERA_FOCAL_Y', + 'PRISMMAP_INFO_CAMERA_FOCAL_Z', 'PRISMMAP_INFO_CAMERA_VPN_1', + 'PRISMMAP_INFO_CAMERA_VPN_2', 'PRISMMAP_INFO_CAMERA_VPN_3', + 'PRISMMAP_INFO_CAMERA_VU_1', 'PRISMMAP_INFO_CAMERA_VU_2', + 'PRISMMAP_INFO_CAMERA_VU_3', 'PRISMMAP_INFO_CAMERA_X', + 'PRISMMAP_INFO_CAMERA_Y', 'PRISMMAP_INFO_CAMERA_Z', + 'PRISMMAP_INFO_INFOTIP_EXPR', 'PRISMMAP_INFO_LIGHT_COLOR', + 'PRISMMAP_INFO_LIGHT_X', 'PRISMMAP_INFO_LIGHT_Y', + 'PRISMMAP_INFO_LIGHT_Z', 'PRISMMAP_INFO_SCALE', 'RAD_2_DEG', + 'RASTER_CONTROL_POINT_X', 'RASTER_CONTROL_POINT_Y', + 'RASTER_TAB_INFO_ALPHA', 'RASTER_TAB_INFO_BITS_PER_PIXEL', + 'RASTER_TAB_INFO_BRIGHTNESS', 'RASTER_TAB_INFO_CONTRAST', + 'RASTER_TAB_INFO_DISPLAY_TRANSPARENT', 'RASTER_TAB_INFO_GREYSCALE', + 'RASTER_TAB_INFO_HEIGHT', 'RASTER_TAB_INFO_IMAGE_CLASS', + 'RASTER_TAB_INFO_IMAGE_NAME', 'RASTER_TAB_INFO_IMAGE_TYPE', + 'RASTER_TAB_INFO_NUM_CONTROL_POINTS', + 'RASTER_TAB_INFO_TRANSPARENT_COLOR', 'RASTER_TAB_INFO_WIDTH', + 'RED', 'REGION_INFO_IS_CLOCKWISE', 'SEARCH_INFO_ROW', + 'SEARCH_INFO_TABLE', 'SECONDS_PER_DAY', 'SEL_INFO_NROWS', + 'SEL_INFO_SELNAME', 'SEL_INFO_TABLENAME', + 'SESSION_INFO_AREA_UNITS', 'SESSION_INFO_COORDSYS_CLAUSE', + 'SESSION_INFO_DISTANCE_UNITS', 'SESSION_INFO_PAPER_UNITS', + 'SRV_COL_INFO_ALIAS', 'SRV_COL_INFO_NAME', + 'SRV_COL_INFO_PRECISION', 'SRV_COL_INFO_SCALE', + 'SRV_COL_INFO_STATUS', 'SRV_COL_INFO_TYPE', 'SRV_COL_INFO_VALUE', + 'SRV_COL_INFO_WIDTH', 'SRV_COL_TYPE_BIN_STRING', + 'SRV_COL_TYPE_CHAR', 'SRV_COL_TYPE_DATE', 'SRV_COL_TYPE_DECIMAL', + 'SRV_COL_TYPE_FIXED_LEN_STRING', 'SRV_COL_TYPE_FLOAT', + 'SRV_COL_TYPE_INTEGER', 'SRV_COL_TYPE_LOGICAL', + 'SRV_COL_TYPE_NONE', 'SRV_COL_TYPE_SMALLINT', + 'SRV_CONNECT_INFO_DB_NAME', 'SRV_CONNECT_INFO_DRIVER_NAME', + 'SRV_CONNECT_INFO_DS_NAME', 'SRV_CONNECT_INFO_QUOTE_CHAR', + 'SRV_CONNECT_INFO_SQL_USER_ID', 'SRV_DRV_DATA_SOURCE', + 'SRV_DRV_INFO_NAME', 'SRV_DRV_INFO_NAME_LIST', 'SRV_ERROR', + 'SRV_FETCH_FIRST', 'SRV_FETCH_LAST', 'SRV_FETCH_NEXT', + 'SRV_FETCH_PREV', 'SRV_INVALID_HANDLE', 'SRV_NEED_DATA', + 'SRV_NO_MORE_DATA', 'SRV_NULL_DATA', 'SRV_SUCCESS', + 'SRV_SUCCESS_WITH_INFO', 'SRV_TRUNCATED_DATA', + 'SRV_WM_HIST_NO_OVERWRITE', 'SRV_WM_HIST_NONE', + 'SRV_WM_HIST_OVERWRITE', 'STR_EQ', 'STR_GT', 'STR_LT', + 'STYLE_SAMPLE_SIZE_LARGE', 'STYLE_SAMPLE_SIZE_SMALL', + 'SWITCHING_INTO_MAPINFO', 'SWITCHING_OUT_OF_MAPINFO', + 'SYMBOL_ANGLE', 'SYMBOL_CODE', 'SYMBOL_COLOR', + 'SYMBOL_CUSTOM_NAME', 'SYMBOL_CUSTOM_STYLE', 'SYMBOL_FONT_NAME', + 'SYMBOL_FONT_STYLE', 'SYMBOL_KIND', 'SYMBOL_KIND_CUSTOM', + 'SYMBOL_KIND_FONT', 'SYMBOL_KIND_VECTOR', 'SYMBOL_POINTSIZE', + 'SYS_INFO_APPIDISPATCH', 'SYS_INFO_APPLICATIONWND', + 'SYS_INFO_APPVERSION', 'SYS_INFO_CHARSET', + 'SYS_INFO_COPYPROTECTED', 'SYS_INFO_DATE_FORMAT', + 'SYS_INFO_DDESTATUS', 'SYS_INFO_DIG_INSTALLED', + 'SYS_INFO_DIG_MODE', 'SYS_INFO_MAPINFOWND', + 'SYS_INFO_MDICLIENTWND', 'SYS_INFO_MIBUILD_NUMBER', + 'SYS_INFO_MIPLATFORM', 'SYS_INFO_MIVERSION', + 'SYS_INFO_NUMBER_FORMAT', 'SYS_INFO_PLATFORM', + 'SYS_INFO_PRODUCTLEVEL', 'SYS_INFO_RUNTIME', + 'TAB_GEO_CONTROL_POINT_X', 'TAB_GEO_CONTROL_POINT_Y', + 'TAB_INFO_BROWSER_LIST', 'TAB_INFO_COORDSYS_CLAUSE', + 'TAB_INFO_COORDSYS_CLAUSE_WITHOUT_BOUNDS', + 'TAB_INFO_COORDSYS_MAXX', 'TAB_INFO_COORDSYS_MAXY', + 'TAB_INFO_COORDSYS_MINX', 'TAB_INFO_COORDSYS_MINY', + 'TAB_INFO_COORDSYS_NAME', 'TAB_INFO_EDITED', 'TAB_INFO_FASTEDIT', + 'TAB_INFO_MAPPABLE', 'TAB_INFO_MAPPABLE_TABLE', 'TAB_INFO_MAXX', + 'TAB_INFO_MAXY', 'TAB_INFO_MINX', 'TAB_INFO_MINY', 'TAB_INFO_NAME', + 'TAB_INFO_NCOLS', 'TAB_INFO_NREFS', 'TAB_INFO_NROWS', + 'TAB_INFO_NUM', 'TAB_INFO_READONLY', 'TAB_INFO_SEAMLESS', + 'TAB_INFO_SUPPORT_MZ', 'TAB_INFO_TABFILE', 'TAB_INFO_TEMP', + 'TAB_INFO_THEME_METADATA', 'TAB_INFO_TYPE', 'TAB_INFO_UNDO', + 'TAB_INFO_USERBROWSE', 'TAB_INFO_USERCLOSE', + 'TAB_INFO_USERDISPLAYMAP', 'TAB_INFO_USEREDITABLE', + 'TAB_INFO_USERMAP', 'TAB_INFO_USERREMOVEMAP', 'TAB_INFO_Z_UNIT', + 'TAB_INFO_Z_UNIT_SET', 'TAB_TYPE_BASE', 'TAB_TYPE_FME', + 'TAB_TYPE_IMAGE', 'TAB_TYPE_LINKED', 'TAB_TYPE_RESULT', + 'TAB_TYPE_VIEW', 'TAB_TYPE_WFS', 'TAB_TYPE_WMS', 'TRUE', 'WHITE', + 'WIN_3DMAP', 'WIN_BROWSER', 'WIN_BUTTONPAD', 'WIN_CART_LEGEND', + 'WIN_GRAPH', 'WIN_HELP', 'WIN_INFO', 'WIN_INFO_AUTOSCROLL', + 'WIN_INFO_CLONEWINDOW', 'WIN_INFO_ENHANCED_RENDERING', + 'WIN_INFO_EXPORT_ANTIALIASING', 'WIN_INFO_EXPORT_BORDER', + 'WIN_INFO_EXPORT_DITHER', 'WIN_INFO_EXPORT_FILTER', + 'WIN_INFO_EXPORT_MASKSIZE', 'WIN_INFO_EXPORT_THRESHOLD', + 'WIN_INFO_EXPORT_TRANSPRASTER', 'WIN_INFO_EXPORT_TRANSPVECTOR', + 'WIN_INFO_EXPORT_TRUECOLOR', 'WIN_INFO_HEIGHT', + 'WIN_INFO_LEGENDS_MAP', 'WIN_INFO_NAME', 'WIN_INFO_OPEN', + 'WIN_INFO_PRINTER_BORDER', 'WIN_INFO_PRINTER_BOTTOMMARGIN', + 'WIN_INFO_PRINTER_COPIES', 'WIN_INFO_PRINTER_DITHER', + 'WIN_INFO_PRINTER_LEFTMARGIN', 'WIN_INFO_PRINTER_METHOD', + 'WIN_INFO_PRINTER_NAME', 'WIN_INFO_PRINTER_ORIENT', + 'WIN_INFO_PRINTER_PAPERSIZE', 'WIN_INFO_PRINTER_RIGHTMARGIN', + 'WIN_INFO_PRINTER_SCALE_PATTERNS', 'WIN_INFO_PRINTER_TOPMARGIN', + 'WIN_INFO_PRINTER_TRANSPRASTER', 'WIN_INFO_PRINTER_TRANSPVECTOR', + 'WIN_INFO_PRINTER_TRUECOLOR', 'WIN_INFO_SMARTPAN', + 'WIN_INFO_SMOOTH_IMAGE', 'WIN_INFO_SMOOTH_TEXT', + 'WIN_INFO_SMOOTH_VECTOR', 'WIN_INFO_SNAPMODE', + 'WIN_INFO_SNAPTHRESHOLD', 'WIN_INFO_STATE', + 'WIN_INFO_SYSMENUCLOSE', 'WIN_INFO_TABLE', 'WIN_INFO_TOPMOST', + 'WIN_INFO_TYPE', 'WIN_INFO_WIDTH', 'WIN_INFO_WINDOWID', + 'WIN_INFO_WND', 'WIN_INFO_WORKSPACE', 'WIN_INFO_X', 'WIN_INFO_Y', + 'WIN_LAYOUT', 'WIN_LEGEND', 'WIN_MAPBASIC', 'WIN_MAPINFO', + 'WIN_MAPPER', 'WIN_MESSAGE', 'WIN_PENPICKER', + 'WIN_PRINTER_LANDSCAPE', 'WIN_PRINTER_PORTRAIT', 'WIN_RULER', + 'WIN_STATE_MAXIMIZED', 'WIN_STATE_MINIMIZED', 'WIN_STATE_NORMAL', + 'WIN_STATISTICS', 'WIN_STYLE_CHILD', 'WIN_STYLE_POPUP', + 'WIN_STYLE_POPUP_FULLCAPTION', 'WIN_STYLE_STANDARD', + 'WIN_SYMBOLPICKER', 'WIN_TOOLBAR', 'WIN_TOOLPICKER', 'YELLOW' + ), + 5 => array( + 'Abbrs', 'Above', 'Access', 'Active', 'Address', 'Advanced', + 'Affine', 'Align', 'Alpha', 'alpha_value', 'Always', 'Angle', + 'Animate', 'Antialiasing', 'Append', 'Apply', 'ApplyUpdates', + 'Arrow', 'Ascending', 'ASCII', 'At', 'AttributeData', 'Auto', + 'Autoflip', 'Autokey', 'Automatic', 'Autoscroll', 'Axis', + 'Background', 'Banding', 'Batch', 'Behind', 'Below', 'Bend', + 'Binary', 'Blocks', 'Border', 'BorderPen', 'Bottom', 'Bounds', + 'ByteOrder', 'ByVal', 'Calling', 'Camera', 'Candidates', + 'Cartesian', 'Cell', 'Center', 'Change', 'Char', 'Circle', + 'Clipping', 'CloseMatchesOnly', 'ClosestAddr', 'Color', 'Columns', + 'Contents', 'ControlPoints', 'Copies', 'Copyright', 'Counter', + 'Country', 'CountrySecondarySubdivision', 'CountrySubdivision', + 'Cross', 'CubicConvolution', 'Cull', 'Cursor', 'Custom', 'Data', + 'DBF', 'DDE', 'Decimal', 'DecimalPlaces', 'DefaultAmbientSpeed', + 'DefaultPropagationFactor', 'DeformatNumber', 'Delimiter', + 'Density', 'DenyWrite', 'Descending', 'Destroy', 'Device', + 'Dictionary', 'DInfo', 'Disable', 'DiscardUpdates', 'Display', + 'Dither', 'DrawMode', 'DropKey', 'Droplines', 'Duplicates', + 'Dynamic', 'Earth', 'East', 'EditLayerPopup', 'Elevation', 'Else', + 'ElseIf', 'Emf', 'Enable', 'Envinsa', 'ErrorDiffusion', 'Extents', + 'Fallback', 'FastEdit', 'FillFrame', 'Filter', 'First', 'Fit', + 'Fixed', 'FocalPoint', 'Footnote', 'Force', 'FromMapCatalog', + 'Front', 'Gap', 'Geographic', 'Geography', 'Graduated', 'Graphic', + 'Gutter', 'Half', 'Halftone', 'Handles', 'Height', 'Help', + 'HelpMsg', 'Hide', 'Hierarchical', 'HIGHLOW', 'History', 'Icon', + 'ID', 'Ignore', 'Image', 'Inflect', 'Inset', 'Inside', + 'Interactive', 'Internal', 'Interpolate', 'IntersectingStreet', + 'Justify', 'Key', 'Label', 'Labels', 'Landscape', 'Large', 'Last', + 'Layer', 'Left', 'Lib', 'Light', 'LinePen', 'Lines', 'Linestyle', + 'Longitude', 'LOWHIGH', 'Major', 'MajorPolygonOnly', + 'MajorRoadsOnly', 'MapBounds', 'MapMarker', 'MapString', 'Margins', + 'MarkMultiple', 'MaskSize', 'Match', 'MaxOffRoadDistance', + 'Message', 'MICODE', 'Minor', 'MixedCase', 'Mode', 'ModifierKeys', + 'Modify', 'Multiple', 'MultiPolygonRgns', 'Municipality', + 'MunicipalitySubdivision', 'Name', 'NATIVE', 'NearestNeighbor', + 'NoCollision', 'Node', 'Nodes', 'NoIndex', 'None', 'Nonearth', + 'NoRefresh', 'Normalized', 'North', 'Number', 'ObjectType', 'ODBC', + 'Off', 'OK', 'OLE', 'On', 'Options', 'Orientation', 'OtherBdy', + 'Output', 'Outside', 'Overlapped', 'Overwrite', 'Pagebreaks', + 'Pan', 'Papersize', 'Parent', 'PassThrough', 'Password', + 'Patterns', 'Per', 'Percent', 'Percentage', 'Permanent', + 'PersistentCache', 'Pie', 'Pitch', 'Placename', 'PointsOnly', + 'PolyObj', 'Portrait', 'Position', 'PostalCode', 'Prefer', + 'Preferences', 'Prev', 'Printer', 'Projection', 'PushButton', + 'Quantile', 'Query', 'Random', 'Range', 'Raster', 'Read', + 'ReadOnly', 'Rec', 'Redraw', 'Refine', 'Regionstyle', 'RemoveData', + 'Replace', 'Reprojection', 'Resampling', 'Restore', 'ResultCode', + 'ReturnHoles', 'Right', 'Roll', 'ROP', 'Rotated', 'Row', 'Ruler', + 'Scale', 'ScrollBars', 'Seamless', 'SecondaryPostalCode', + 'SelfInt', 'Separator', 'Series', 'Service', 'SetKey', + 'SetTraverse', 'Shades', 'Show', 'Simple', 'SimplificationFactor', + 'Size', 'Small', 'Smart', 'Smooth', 'South', 'Spacing', + 'SPATIALWARE', 'Spherical', 'Square', 'Stacked', 'Step', 'Store', + 'Street', 'StreetName', 'StreetNumber', 'StyleType', 'Subtitle', + 'SysMenuClose', 'Thin', 'Tick', 'Title', 'TitleAxisY', + 'TitleGroup', 'Titles', 'TitleSeries', 'ToggleButton', 'Tolerance', + 'ToolbarPosition', 'ToolButton', 'Toolkit', 'Top', 'Translucency', + 'translucency_percent', 'Transparency', 'Transparent', 'Traverse', + 'TrueColor', 'Uncheck', 'Undo', 'Union', 'Unit', 'Until', 'URL', + 'Use', 'User', 'UserBrowse', 'UserClose', 'UserDisplayMap', + 'UserEdit', 'UserMap', 'UserRemoveMap', 'Value', 'Variable', + 'Vary', 'Vector', 'Versioned', 'View', 'ViewDisplayPopup', + 'VisibleOnly', 'VMDefault', 'VMGrid', 'VMRaster', 'Voronoi', + 'Warnings', 'Wedge', 'West', 'Width', 'With', 'XY', 'XYINDEX', + 'Yaw', 'Zoom' + ) + ), + 'SYMBOLS' => array( + //Numeric/String Operators + Comparison Operators + '(', ')', '[', ']', '+', '-', '*', '/', '\\', '^', '&', + '=', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff;', //Statements + Clauses + Data Types + Logical Operators, Geographical Operators + SQL + 2 => 'color: #2391af;', //Special Procedures + 3 => 'color: #2391af;', //Functions + 4 => 'color: #c635cb;', //Constants + 5 => 'color: #0000ff;' //Extended keywords (case sensitive) + ), + 'COMMENTS' => array( + 1 => 'color: #008000;', + 'MULTI' => 'color: #008000;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #a31515;' + ), + 'NUMBERS' => array( + 0 => 'color: #000000;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;' + ), + 'ESCAPE_CHAR' => array( + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #12198b;', //Table Attributes + 1 => 'color: #2391af;' //Data Types + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Table Attribute + 0 => "[\\.]{1}[a-zA-Z0-9_]+", + //Data Type + 1 => "(?xi) \\s+ as \\s+ (Alias|Brush|Date|Float|Font|Integer|Logical|Object|Pen|SmallInt|String|Symbol)" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), +); + +?> \ No newline at end of file diff --git a/inc/geshi/matlab.php b/inc/geshi/matlab.php index f7b649573..f3ad34968 100644 --- a/inc/geshi/matlab.php +++ b/inc/geshi/matlab.php @@ -4,7 +4,7 @@ * ----------- * Author: Florian Knorn (floz@gmx.de) * Copyright: (c) 2004 Florian Knorn (http://www.florian-knorn.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/02/09 * * Matlab M-file language file for GeSHi. diff --git a/inc/geshi/mirc.php b/inc/geshi/mirc.php index bc773458c..a27c6c265 100644 --- a/inc/geshi/mirc.php +++ b/inc/geshi/mirc.php @@ -4,7 +4,7 @@ * ----- * Author: Alberto 'Birckin' de Areba (Birckin@hotmail.com) * Copyright: (c) 2006 Alberto de Areba - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/05/29 * * mIRC Scripting language file for GeSHi. diff --git a/inc/geshi/mmix.php b/inc/geshi/mmix.php new file mode 100644 index 000000000..efdb932f1 --- /dev/null +++ b/inc/geshi/mmix.php @@ -0,0 +1,173 @@ + 'MMIX', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + //Line address prefix suppression + 'COMMENT_REGEXP' => array(2 => "/^\s*[0-9a-f]{12,16}+(?:\s+[0-9a-f]+(?:\.{3}[0-9a-f]{2,})?)?:/mi"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /*CPU*/ + 1 => array( + '16ADDU','2ADDU','4ADDU','8ADDU','ADD','ADDU','AND','ANDN','ANDNH', + 'ANDNL','ANDNMH','ANDNML','BDIF','BEV','BN','BNN','BNP','BNZ','BOD', + 'BP','BZ','CMP','CMPU','CSEV','CSN','CSNN','CSNP','CSNZ','CSOD', + 'CSP','CSWAP','CSZ','DIV','DIVU','FADD','FCMP','FCMPE','FDIV', + 'FEQL','FEQLE','FINT','FIX','FIXU','FLOT','FLOTU','FMUL','FREM', + 'FSQRT','FSUB','FUN','FUNE','GET','GETA','GO','INCH','INCL','INCMH', + 'INCML','JMP','LDB','LDBU','LDHT','LDO','LDOU','LDSF','LDT','LDTU', + 'LDUNC','LDVTS','LDW','LDWU','MOR','MUL','MULU','MUX','MXOR','NAND', + 'NEG','NEGU','NOR','NXOR','ODIF','OR','ORH','ORL','ORMH','ORML', + 'ORN','PBEV','PBN','PBNN','PBNP','PBNZ','PBOD','PBP','PBZ','POP', + 'PREGO','PRELD','PREST','PUSHGO','PUSHJ','PUT','RESUME','SADD', + 'SAVE','SETH','SETL','SETMH','SETML','SFLOT','SFLOTU','SL','SLU', + 'SR','SRU','STB','STBU','STCO','STHT','STO','STOU','STSF','STT', + 'STTU','STUNC','STW','STWU','SUB','SUBU','SWYM','SYNC','SYNCD', + 'SYNCID','TDIF','TRAP','TRIP','UNSAVE','WDIF','XOR','ZSEV','ZSN', + 'ZSNN','ZSNP','ZSNZ','ZSOD','ZSP','ZSZ' + ), + /*registers*/ + 3 => array( + 'rA','rB','rC','rD','rE','rF','rG','rH','rI','rJ','rK','rL','rM', + 'rN','rO','rP','rQ','rR','rS','rT','rU','rV','rW','rX','rY','rZ', + 'rBB','rTT','rWW','rXX','rYY','rZZ' + ), + /*Directive*/ + 4 => array( + ), + /*Operands*/ + 5 => array( + ) + ), + 'SYMBOLS' => array( + '[', ']', '(', ')', + '+', '-', '*', '/', '%', + '.', ',', ';', ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => false, + 3 => true, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00007f; font-weight: bold;', + 2 => 'color: #0000ff; font-weight: bold;', + 3 => 'color: #00007f;', + 4 => 'color: #000000; font-weight: bold;', + 5 => 'color: #000000; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #adadad; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'color: #7f007f;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000ff;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( +// 0 => 'color: #0000ff;', +// 1 => 'color: #0000ff;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '' + ), + 'NUMBERS' => + GESHI_NUMBER_BIN_PREFIX_PERCENT | + GESHI_NUMBER_BIN_SUFFIX | + GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_HEX_SUFFIX | + GESHI_NUMBER_OCT_SUFFIX | + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | + GESHI_NUMBER_FLT_SCI_ZERO, + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Hex numbers +// 0 => /* */ "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))(?:[0-9][0-9a-fA-F]{0,31}[hH]|0x[0-9a-fA-F]{1,32})(?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))", + //Binary numbers +// 1 => "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))[01]{1,64}[bB](?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 8, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])" + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/modula3.php b/inc/geshi/modula3.php index a1f04ca59..caff92788 100644 --- a/inc/geshi/modula3.php +++ b/inc/geshi/modula3.php @@ -4,7 +4,7 @@ * ---------- * Author: mbishop (mbishop@esoteriq.org) * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/01/21 * * Modula-3 language file for GeSHi. diff --git a/inc/geshi/mpasm.php b/inc/geshi/mpasm.php index 53aa9e7a1..d97f0b17f 100644 --- a/inc/geshi/mpasm.php +++ b/inc/geshi/mpasm.php @@ -4,7 +4,7 @@ * --------- * Author: Bakalex (bakalex@gmail.com) * Copyright: (c) 2004 Bakalex, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/12/6 * * Microchip Assembler language file for GeSHi. diff --git a/inc/geshi/mxml.php b/inc/geshi/mxml.php index d34a92531..a2073d3ab 100644 --- a/inc/geshi/mxml.php +++ b/inc/geshi/mxml.php @@ -4,7 +4,7 @@ * ------- * Author: David Spurr * Copyright: (c) 2007 David Spurr (http://www.defusion.org.uk/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/10/04 * * MXML language file for GeSHi. Based on the XML file by Nigel McNie diff --git a/inc/geshi/mysql.php b/inc/geshi/mysql.php index f41092c16..3bc6f9504 100644 --- a/inc/geshi/mysql.php +++ b/inc/geshi/mysql.php @@ -4,7 +4,7 @@ * --------- * Author: Marjolein Katsma (marjolein.is.back@gmail.com) * Copyright: (c) 2008 Marjolein Katsma (http://blog.marjoleinkatsma.com/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008-12-12 * * MySQL language file for GeSHi. @@ -391,35 +391,35 @@ $language_data = array ( ) ), 'URLS' => array( - 1 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 2 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 3 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 4 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 5 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 6 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 7 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 8 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', - 9 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 1 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 2 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 3 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 4 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 5 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 6 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 7 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 8 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', + 9 => 'http://search.mysql.com/search?site=refman-%35%31&q={FNAME}', - 10 => 'http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html', - 11 => 'http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html', + 10 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html', + 11 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html', - 12 => 'http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html', - 13 => 'http://dev.mysql.com/doc/refman/5.1/en/string-functions.html', - 14 => 'http://dev.mysql.com/doc/refman/5.1/en/string-functions.html', - 15 => 'http://dev.mysql.com/doc/refman/5.1/en/numeric-functions.html', - 16 => 'http://dev.mysql.com/doc/refman/5.1/en/numeric-functions.html', - 17 => 'http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html', - 18 => 'http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html', - 19 => 'http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html', - 20 => 'http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html', - 21 => 'http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html', - 22 => 'http://dev.mysql.com/doc/refman/5.1/en/group-by-functions-and-modifiers.html', - 23 => 'http://dev.mysql.com/doc/refman/5.1/en/information-functions.html', - 24 => 'http://dev.mysql.com/doc/refman/5.1/en/information-functions.html', - 25 => 'http://dev.mysql.com/doc/refman/5.1/en/func-op-summary-ref.html', - 26 => 'http://dev.mysql.com/doc/refman/5.1/en/func-op-summary-ref.html', - 27 => 'http://dev.mysql.com/doc/refman/5.1/en/analysing-spatial-information.html', + 12 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/control-flow-functions.html', + 13 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html', + 14 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html', + 15 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html', + 16 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html', + 17 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html', + 18 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html', + 19 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html', + 20 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html', + 21 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/encryption-functions.html', + 22 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/group-by-functions-and-modifiers.html', + 23 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html', + 24 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html', + 25 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html', + 26 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html', + 27 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/analysing-spatial-information.html', ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( @@ -472,4 +472,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/newlisp.php b/inc/geshi/newlisp.php new file mode 100644 index 000000000..ee2589a07 --- /dev/null +++ b/inc/geshi/newlisp.php @@ -0,0 +1,191 @@ + 'newlisp', + 'COMMENT_SINGLE' => array(1 => ';', 2 => '#'), + 'COMMENT_MULTI' => array('[text]' => '[/text]', '{' => '}'), // also used for strings + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO, + 'TAB_WIDTH' => 2, + 'KEYWORDS' => array( + 1 => array( + 'NaN?','abort','abs','acos','acosh','add','address','amb','and', + 'append','append-file','apply','args','array','array-list','array?', + 'asin','asinh','assoc','atan','atan2','atanh','atom?','base64-dec', + 'base64-enc','bayes-query','bayes-train','begin','beta','betai', + 'bind','binomial','bits','callback','case','catch','ceil', + 'change-dir','char','chop','clean','close','command-event','cond', + 'cons','constant','context','context?','copy','copy-file','cos', + 'cosh','count','cpymem','crc32','crit-chi2','crit-z','current-line', + 'curry','date','date-value','debug','dec','def-new','default', + 'define','define-macro','delete','delete-file','delete-url', + 'destroy','det','device','difference','directory','directory?', + 'div','do-until','do-while','doargs','dolist','dostring','dotimes', + 'dotree','dump','dup','empty?','encrypt','ends-with','env','erf', + 'error-event','estack','eval','eval-string','exec','exists','exit', + 'exp','expand','explode','factor','fft','file-info','file?', + 'filter','find','find-all','first','flat','float','float?','floor', + 'flt','for','for-all','fork','format','fv','gammai','gammaln','gcd', + 'get-char','get-float','get-int','get-long','get-string','get-url', + 'global','global?','if','if-not','ifft','import','inc','index', + 'inf?','int','integer','integer?','intersect','invert','irr','join', + 'lambda','lambda?','last','last-error','legal?','length','let', + 'letex','letn','list','list?','load','local','log','lookup', + 'lower-case','macro?','main-args','make-dir','map','mat','match', + 'max','member','min','mod','mul','multiply','name','net-accept', + 'net-close','net-connect','net-error','net-eval','net-interface', + 'net-listen','net-local','net-lookup','net-peek','net-peer', + 'net-ping','net-receive','net-receive-from','net-receive-udp', + 'net-select','net-send','net-send-to','net-send-udp','net-service', + 'net-sessions','new','nil','nil?','normal','not','now','nper','npv', + 'nth','null?','number?','open','or','pack','parse','parse-date', + 'peek','pipe','pmt','pop','pop-assoc','post-url','pow', + 'pretty-print','primitive?','print','println','prob-chi2','prob-z', + 'process','prompt-event','protected?','push','put-url','pv','quote', + 'quote?','rand','random','randomize','read-buffer','read-char', + 'read-expr','read-file','read-key','read-line','read-utf8', + 'real-path','receive','ref','ref-all','regex','regex-comp', + 'remove-dir','rename-file','replace','reset','rest','reverse', + 'rotate','round','save','search','seed','seek','select','semaphore', + 'send','sequence','series','set','set-locale','set-ref', + 'set-ref-all','setf','setq','sgn','share','signal','silent','sin', + 'sinh','sleep','slice','sort','source','spawn','sqrt','starts-with', + 'string','string?','sub','swap','sym','symbol?','symbols','sync', + 'sys-error','sys-info','tan','tanh','throw','throw-error','time', + 'time-of-day','timer','title-case','trace','trace-highlight', + 'transpose','trim','true','true?','unicode','unify','unique', + 'unless','unpack','until','upper-case','utf8','utf8len','uuid', + 'wait-pid','when','while','write-buffer','write-char','write-file', + 'write-line','xfer-event','xml-error','xml-parse','xml-type-tags', + 'zero?' + ) + ), + 'SYMBOLS' => array( + 0 => array( + '(', ')','\'' + ), + 1 => array( + '!','!=','$','%','&','*','+','-','/',':', + '<','<<','<=','=','>','>=','>>','^','|' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000AA;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #00aa00; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #009900;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #009900;' + ), + 'NUMBERS' => array( + 0 => 'color: #777700;' + ), + 'METHODS' => array( + 0 => 'color: #000099;' + ), + 'SYMBOLS' => array( + 0 => 'color: #AA0000;', + 1 => 'color: #0000AA;' + ), + 'REGEXPS' => array( + 0 => 'color: #00aa00;', + 1 => 'color: #00aa00;', + 2 => 'color: #00aa00;', + 3 => 'color: #00aa00;', + 4 => 'color: #00aa00;', + 5 => 'color: #AA0000;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => 'http://www.newlisp.org/downloads/newlisp_manual.html#{FNAME}' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array(':'), + 'REGEXPS' => array( + // tags in newlispdoc + 0 => "\s+@\S*?\s+", + // dollar sign symbols + 1 => "[\\$]\w*", + // curly-braced string literals + 2 => "{[^{}]*?}", + // [text] multi-line strings + 3 => "(?s)\[text\].*\[\/text\](?-s)", + // [code] multi-line blocks + 4 => "(?s)\[code\].*\[\/code\](?-s)", + // variable references + 5 => "'[\w\-]+" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'OOLANG' => array( + 'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*' + ), + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(?<=[^\w\-])', + ) + ), + +); + +?> \ No newline at end of file diff --git a/inc/geshi/nsis.php b/inc/geshi/nsis.php index 63767b025..d5f631101 100644 --- a/inc/geshi/nsis.php +++ b/inc/geshi/nsis.php @@ -4,7 +4,7 @@ * -------- * Author: deguix (cevo_deguix@yahoo.com.br), Tux (http://tux.a4.cz/) * Copyright: (c) 2005 deguix, 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/12/03 * * Nullsoft Scriptable Install System language file for GeSHi. diff --git a/inc/geshi/oberon2.php b/inc/geshi/oberon2.php index 4e4223f4f..35152b55f 100644 --- a/inc/geshi/oberon2.php +++ b/inc/geshi/oberon2.php @@ -4,7 +4,7 @@ * ---------- * Author: mbishop (mbishop@esoteriq.org) * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/02/10 * * Oberon-2 language file for GeSHi. diff --git a/inc/geshi/objc.php b/inc/geshi/objc.php index ec8d18e72..084be7124 100644 --- a/inc/geshi/objc.php +++ b/inc/geshi/objc.php @@ -5,7 +5,7 @@ * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net) * Contributors: Quinn Taylor (quinntaylor@mac.com) * Copyright: (c) 2008 Quinn Taylor, 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/04 * * Objective-C language file for GeSHi. diff --git a/inc/geshi/ocaml-brief.php b/inc/geshi/ocaml-brief.php index f3d01a0a1..d9e3124f0 100644 --- a/inc/geshi/ocaml-brief.php +++ b/inc/geshi/ocaml-brief.php @@ -4,7 +4,7 @@ * ---------- * Author: Flaie (fireflaie@gmail.com) * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/08/27 * * OCaml (Objective Caml) language file for GeSHi. diff --git a/inc/geshi/ocaml.php b/inc/geshi/ocaml.php index 505149c31..a14d2dec1 100644 --- a/inc/geshi/ocaml.php +++ b/inc/geshi/ocaml.php @@ -4,7 +4,7 @@ * ---------- * Author: Flaie (fireflaie@gmail.com) * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/08/27 * * OCaml (Objective Caml) language file for GeSHi. diff --git a/inc/geshi/oobas.php b/inc/geshi/oobas.php index b4f95512a..b3a5a0b6d 100644 --- a/inc/geshi/oobas.php +++ b/inc/geshi/oobas.php @@ -4,7 +4,7 @@ * --------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/30 * * OpenOffice.org Basic language file for GeSHi. diff --git a/inc/geshi/oracle11.php b/inc/geshi/oracle11.php index e5417d7d0..08c25b66d 100644 --- a/inc/geshi/oracle11.php +++ b/inc/geshi/oracle11.php @@ -6,7 +6,7 @@ * Contributions: * - Updated for 11i by Simon Redhead * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/04 * * Oracle 11i language file for GeSHi. diff --git a/inc/geshi/oracle8.php b/inc/geshi/oracle8.php index d216db0a1..5ac18786d 100644 --- a/inc/geshi/oracle8.php +++ b/inc/geshi/oracle8.php @@ -4,7 +4,7 @@ * ----------- * Author: Guy Wicks (Guy.Wicks@rbs.co.uk) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/04 * * Oracle 8 language file for GeSHi. diff --git a/inc/geshi/pascal.php b/inc/geshi/pascal.php index 01a66bfa0..948c00ce4 100644 --- a/inc/geshi/pascal.php +++ b/inc/geshi/pascal.php @@ -4,7 +4,7 @@ * ---------- * Author: Tux (tux@inamil.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/07/26 * * Pascal language file for GeSHi. diff --git a/inc/geshi/per.php b/inc/geshi/per.php index ea9c75f8e..06cf2e41b 100644 --- a/inc/geshi/per.php +++ b/inc/geshi/per.php @@ -4,7 +4,7 @@ * -------- * Author: Lars Gersmann (lars.gersmann@gmail.com) * Copyright: (c) 2007 Lars Gersmann - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/06/03 * * Per (forms) (FOURJ's Genero 4GL) language file for GeSHi. diff --git a/inc/geshi/perl.php b/inc/geshi/perl.php index 7c212515e..57b8971e8 100644 --- a/inc/geshi/perl.php +++ b/inc/geshi/perl.php @@ -4,7 +4,7 @@ * -------- * Author: Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com) * Copyright: (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/20 * * Perl language file for GeSHi. diff --git a/inc/geshi/perl6.php b/inc/geshi/perl6.php new file mode 100644 index 000000000..1c04098c0 --- /dev/null +++ b/inc/geshi/perl6.php @@ -0,0 +1,197 @@ + 'Perl 6', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array('=begin' => '=end'), + 'COMMENT_REGEXP' => array( + //Regular expressions + 2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU", + //Regular expression match variables + 3 => '/\$\d+/', + //Heredoc + 4 => '/<<\s*?([\'"]?)([a-zA-Z0-9]+)\1;[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU', + //Beastly hack to finish highlighting each POD block + 5 => '((?<==end) .+)' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), // An optional 2-element array defining the beginning and end of a hard-quoted string + 'HARDESCAPE' => array('\\\''), + // Things that must still be escaped inside a hard-quoted string + // If HARDQUOTE is defined, HARDESCAPE must be defined + // This will not work unless the first character of each element is either in the + // QUOTEMARKS array or is the ESCAPE_CHAR + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'do', 'else', 'elsif', 'for', 'if', 'then', 'until', + 'while', 'loop', 'repeat', 'my', 'xor', 'or', 'and', + 'unless', 'next', 'last', 'redo', 'not', 'our', 'let', + 'temp', 'state', 'enum', 'constant', 'continue', 'cmp', + 'ne', 'eq', 'lt', 'gt', 'le', 'ge', 'leg', 'div', 'X', + 'Z', 'x', 'xx', 'given', 'when', 'default', 'has', + 'returns', 'of', 'is', 'does', 'where', 'subset', 'but', + 'True', 'False', 'return', 'die', 'fail' + ), + 2 => array( + 'use', 'sub', 'multi', 'method', 'submethod', 'proto', + 'class', 'role', 'grammar', 'regex', 'token', 'rule', + 'new', 'BEGIN', 'END', 'CHECK', 'INIT', 'START', 'FIRST', + 'ENTER', 'LEAVE', 'KEEP', 'UNDO', 'NEXT', 'LAST', 'PRE', + 'POST', 'CATCH', 'CONTROL', 'BUILD' + ), + 3 => array( + 'all', 'any', 'cat', 'classify', 'defined', 'grep', 'first', + 'keys', 'kv', 'join', 'map', 'max', 'min', 'none', 'one', 'pairs', + 'print', 'printf', 'roundrobin', 'pick', 'reduce', 'reverse', 'say', + 'shape', 'sort', 'srand', 'undefine', 'uri', 'values', 'warn', 'zip', + + # Container + 'rotate', 'comb', 'end', 'elems', 'delete', + 'exists', 'pop', 'push', 'shift', 'splice', + 'unshift', 'invert', 'decode', + + # Numeric + 'succ', 'pred', 'abs', 'exp', 'log', + 'log10', 'rand', 'roots', 'cis', 'unpolar', 'i', 'floor', + 'ceiling', 'round', 'truncate', 'sign', 'sqrt', + 'polar', 're', 'im', 'I', 'atan2', 'nude', + 'denominator', 'numerator', + + # Str + 'p5chop', 'chop', 'p5chomp', 'chomp', 'lc', 'lcfirst', + 'uc', 'ucfirst', 'normalize', 'samecase', 'sameaccent', + 'capitalize', 'length', 'chars', 'graphs', 'codes', + 'bytes', 'encode', 'index', 'pack', 'quotemeta', 'rindex', + 'split', 'words', 'flip', 'sprintf', 'fmt', + 'substr', 'trim', 'unpack', 'match', 'subst', 'trans' + ) + ), + 'SYMBOLS' => array( + '<', '>', '=', + '!', '@', '~', '&', '|', '^', + '+','-', '*', '/', '%', + ',', ';', '?', '.', ':', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #009966; font-style: italic;', + 3 => 'color: #0000ff;', + 4 => 'color: #cc0000; font-style: italic;', + 5 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + 'HARD' => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + //Variable + 0 => '(?:[$@%]|&)(?:(?:[\^:*?!~]|<)?[a-zA-Z_][a-zA-Z0-9_]*|(?=\.))' + # We treat the . twigil specially so the name can be highlighted as an + # object field (via OBJECT_SPLITTERS). + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'COMMENTS' => array( + 'DISALLOWED_BEFORE' => '$' + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/php-brief.php b/inc/geshi/php-brief.php index 2a5d78611..ceaf423af 100644 --- a/inc/geshi/php-brief.php +++ b/inc/geshi/php-brief.php @@ -4,7 +4,7 @@ * ------------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/02 * * PHP (brief version) language file for GeSHi. @@ -185,7 +185,7 @@ $language_data = array ( 3 => array( '' ), - 4 => "/(?<\\?(?>php\b)?)(?:". + 4 => "/(?P<\\?(?>php\b)?)(?:". "(?>[^\"'?\\/<]+)|". "\\?(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". @@ -194,9 +194,9 @@ $language_data = array ( "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". - "<<<(?\w+)\s.*?\s\k". - ")*(?\\?>|\Z)/sm", - 5 => "/(?<%)(?:". + "<<<(?P\w+)\s.*?\s\k". + ")*(?P\\?>|\Z)/sm", + 5 => "/(?P<%)(?:". "(?>[^\"'%\\/<]+)|". "%(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". @@ -205,8 +205,8 @@ $language_data = array ( "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". - "<<<(?\w+)\s.*?\s\k". - ")*(?%>)/sm" + "<<<(?P\w+)\s.*?\s\k". + ")*(?P%>)/sm" ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, diff --git a/inc/geshi/php.php b/inc/geshi/php.php index b96c947ed..9b0bc822d 100644 --- a/inc/geshi/php.php +++ b/inc/geshi/php.php @@ -4,7 +4,7 @@ * -------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/20 * * PHP language file for GeSHi. @@ -90,14 +90,14 @@ $language_data = array( 'as','break','case','continue','default','do','else','elseif', 'endfor','endforeach','endif','endswitch','endwhile','for', 'foreach','if','include','include_once','require','require_once', - 'return','switch','while', + 'return','switch','throw','while', 'echo','print' ), 2 => array( '&new','</script>','<?php','<script language', 'class','const','declare','extends','function','global','interface', - 'namespace','new','private','public','self','var' + 'namespace','new','private','protected','public','self','use','var' ), 3 => array( 'abs','acos','acosh','addcslashes','addslashes','aggregate', @@ -1077,7 +1077,7 @@ $language_data = array( 3 => array( '' ), - 4 => "/(?<\\?(?>php\b)?)(?:". + 4 => "/(?P<\\?(?>php\b)?)(?:". "(?>[^\"'?\\/<]+)|". "\\?(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". @@ -1086,9 +1086,9 @@ $language_data = array( "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". - "<<<(?\w+)\s.*?\s\k". - ")*(?\\?>|\Z)/sm", - 5 => "/(?<%)(?:". + "<<<(?P\w+)\s.*?\s\k". + ")*(?P\\?>|\Z)/sm", + 5 => "/(?P<%)(?:". "(?>[^\"'%\\/<]+)|". "%(?!>)|". "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|". @@ -1097,8 +1097,8 @@ $language_data = array( "\\/\\/(?>.*?$)|". "\\/(?=[^*\\/])|". "<(?!<<)|". - "<<<(?\w+)\s.*?\s\k". - ")*(?%>)/sm", + "<<<(?P\w+)\s.*?\s\k". + ")*(?P%>)/sm", ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, diff --git a/inc/geshi/pic16.php b/inc/geshi/pic16.php index f25183ffb..88d4a6745 100644 --- a/inc/geshi/pic16.php +++ b/inc/geshi/pic16.php @@ -4,7 +4,7 @@ * ------- * Author: Phil Mattison (mattison@ohmikron.com) * Copyright: (c) 2008 Ohmikron Corp. (http://www.ohmikron.com/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/07/30 * * PIC16 Assembler language file for GeSHi. diff --git a/inc/geshi/pike.php b/inc/geshi/pike.php new file mode 100644 index 000000000..e67975fe2 --- /dev/null +++ b/inc/geshi/pike.php @@ -0,0 +1,103 @@ + 'Pike', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'goto', 'break', 'continue', 'return', 'case', 'default', 'if', + 'else', 'switch', 'while', 'foreach', 'do', 'for', 'gauge', + 'destruct', 'lambda', 'inherit', 'import', 'typeof', 'catch', + 'inline', 'nomask', 'private', 'protected', 'public', 'static' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '!', '&', '|', '?', ';' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;' + ), + 'REGEXPS' => array(), + 'SCRIPT' => array() + ), + 'URLS' => array(1 => ''), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array(1 => '.'), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +?> diff --git a/inc/geshi/pixelbender.php b/inc/geshi/pixelbender.php index b65e228a1..d19754f3e 100644 --- a/inc/geshi/pixelbender.php +++ b/inc/geshi/pixelbender.php @@ -4,7 +4,7 @@ * ---------------- * Author: Richard Olsson (r@richardolsson.se) * Copyright: (c) 2008 Richard Olsson (richardolsson.se) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/11/16 * * Pixel Bender 1.0 language file for GeSHi. diff --git a/inc/geshi/plsql.php b/inc/geshi/plsql.php index 6534a1922..0779ca04f 100644 --- a/inc/geshi/plsql.php +++ b/inc/geshi/plsql.php @@ -4,7 +4,7 @@ * ------- * Author: Victor Engmark * Copyright: (c) 2006 Victor Engmark (http://l0b0.net/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/10/26 * * Oracle 9.2 PL/SQL language file for GeSHi. diff --git a/inc/geshi/povray.php b/inc/geshi/povray.php index af6c443da..80bf5a478 100644 --- a/inc/geshi/povray.php +++ b/inc/geshi/povray.php @@ -4,7 +4,7 @@ * -------- * Author: Carl Fürstenberg (azatoth@gmail.com) * Copyright: © 2007 Carl Fürstenberg - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/07/11 * * Povray language file for GeSHi. diff --git a/inc/geshi/powerbuilder.php b/inc/geshi/powerbuilder.php new file mode 100644 index 000000000..e276d85ee --- /dev/null +++ b/inc/geshi/powerbuilder.php @@ -0,0 +1,418 @@ + 'PowerBuilder', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '~', + 'KEYWORDS' => array( + 1 => array( + 'alias', 'and', 'autoinstantiate', 'call', + 'case', 'catch', 'choose', 'close', 'commit', 'connect', + 'constant', 'continue', 'create', 'cursor', 'declare', + 'delete', 'describe', 'descriptor', 'destroy', 'disconnect', + 'do', 'dynamic', 'else', 'elseif', 'end', 'enumerated', + 'event', 'execute', 'exit', 'external', 'false', 'fetch', + 'first', 'for', 'forward', 'from', 'function', 'global', + 'goto', 'halt', 'if', 'immediate', 'indirect', 'insert', + 'into', 'intrinsic', 'is', 'last', 'library', 'loop', 'next', + 'not', 'of', 'on', 'open', 'or', 'parent', 'post', 'prepare', + 'prior', 'private', 'privateread', 'privatewrite', 'procedure', + 'protected', 'protectedread', 'protectedwrite', 'prototypes', + 'public', 'readonly', 'ref', 'return', 'rollback', 'rpcfunc', + 'select', 'selectblob', 'shared', 'static', 'step', 'subroutine', + 'super', 'system', 'systemread', 'systemwrite', 'then', 'this', + 'to', 'trigger', 'true', 'try', 'type', 'until', 'update', 'updateblob', + 'using', 'variables', 'where', 'while', 'with', 'within' + ), + 2 => array ( + 'blob', 'boolean', 'char', 'character', 'date', 'datetime', + 'dec', 'decimal', + 'double', 'int', 'integer', 'long', 'real', 'string', 'time', + 'uint', 'ulong', 'unsignedint', 'unsignedinteger', 'unsignedlong' + ), + 3 => array ( + 'abortretryignore!', 'actbegin!', 'acterror!', 'actesql!', + 'actgarbagecollect!', 'activate!', 'activatemanually!', + 'activateondoubleclick!', + 'activateongetfocus!', 'actline!', 'actobjectcreate!', 'actobjectdestroy!', + 'actprofile!', 'actroutine!', 'acttrace!', 'actual!', + 'actuser!', 'adoresultset!', 'adtdate!', 'adtdatetime!', + 'adtdefault!', 'adtdouble!', 'adttext!', 'adttime!', + 'aix!', 'alignatbottom!', 'alignatleft!', 'alignatright!', + 'alignattop!', 'all!', 'allowpartialchanges!', 'alpha!', + 'ansi!', 'any!', 'anycase!', 'anyfont!', + 'append!', 'application!', 'arabiccharset!', 'area3d!', + 'areagraph!', 'arraybounds!', 'arrow!', 'ascending!', + 'asstatement!', 'atbottom!', 'atleft!', 'atright!', + 'attop!', 'autosize!', 'background!', 'balticcharset!', + 'bar3dgraph!', 'bar3dobjgraph!', 'bargraph!', 'barstack3dobjgraph!', + 'barstackgraph!', 'bdiagonal!', 'beam!', 'begin!', + 'begindrag!', 'beginlabeledit!', 'beginrightdrag!', 'behind!', + 'blob!', 'bold!', 'boolean!', 'bottom!', + 'boundedarray!', 'box!', 'byreferenceargument!', 'byvalueargument!', + 'cancel!', 'cascade!', 'cascaded!', 'category!', + 'center!', 'character!', 'charsetansi!', 'charsetansiarabic!', + 'charsetansihebrew!', 'charsetdbcsjapanese!', 'charsetunicode!', 'checkbox!', + 'child!', 'childtreeitem!', 'chinesebig5!', 'classdefinition!', + 'classdefinitionobject!', 'classorstructuretype!', 'clicked!', 'clip!', + 'clipboard!', 'clipformatbitmap!', 'clipformatdib!', 'clipformatdif!', + 'clipformatenhmetafile!', 'clipformathdrop!', 'clipformatlocale!', + 'clipformatmetafilepict!', + 'clipformatoemtext!', 'clipformatpalette!', 'clipformatpendata!', 'clipformatriff!', + 'clipformatsylk!', 'clipformattext!', 'clipformattiff!', 'clipformatunicodetext!', + 'clipformatwave!', 'clock!', 'close!', 'closequery!', + 'col3dgraph!', 'col3dobjgraph!', 'colgraph!', + 'colstack3dobjgraph!', 'colstackgraph!', 'columnclick!', 'commandbutton!', + 'connection!', 'connectioninfo!', 'connectobject!', 'connectprivilege!', + 'connectwithadminprivilege!', 'constructor!', 'containsany!', 'containsembeddedonly!', + 'containslinkedonly!', 'contextinformation!', 'contextkeyword!', 'continuous!', + 'corbaobject!', 'corbaunion!', 'cplusplus!', 'cross!', + 'csv!', 'cumulative!', 'cumulativepercent!', 'currenttreeitem!', + 'customvisual!', 'dash!', 'dashdot!', 'dashdotdot!', + 'data!', 'datachange!', 'datamodified!', 'datastore!', + 'datawindow!', 'datawindowchild!', 'date!', 'datemask!', + 'datetime!', 'datetimemask!', 'dbase2!', 'dbase3!', + 'dberror!', 'deactivate!', 'decimal!', 'decimalmask!', + 'decorative!', 'default!', 'defaultcharset!', 'delete!', + 'deleteallitems!', 'deleteitem!', 'descending!', 'desktop!', + 'destructor!', 'detail!', 'diamond!', 'dif!', + 'dirall!', 'dirapplication!', 'dirdatawindow!', 'directionall!', + 'directiondown!', 'directionleft!', 'directionright!', 'directionup!', + 'dirfunction!', 'dirmenu!', 'dirpipeline!', 'dirproject!', + 'dirquery!', 'dirstructure!', 'diruserobject!', 'dirwindow!', + 'displayasactivexdocument!', 'displayascontent!', 'displayasicon!', 'dot!', + 'double!', 'doubleclicked!', 'dragdrop!', 'dragenter!', + 'dragleave!', 'dragobject!', 'dragwithin!', 'drawobject!', + 'dropdownlistbox!', 'dropdownpicturelistbox!', 'drophighlighttreeitem!', 'dwobject!', + 'dynamicdescriptionarea!', 'dynamicstagingarea!', 'easteuropecharset!', 'editchanged!', + 'editmask!', 'editmenu!', 'end!', 'endlabeledit!', + 'enterprise!', 'enterpriseonlyfeature!', 'enumeratedtype!', 'enumerationdefinition!', + 'enumerationitemdefinition!', 'environment!', 'error!', 'errorlogging!', + 'eventnotexisterror!', 'eventwrongprototypeerror!', 'excel!', 'excel5!', + 'exceptionfail!', 'exceptionignore!', 'exceptionretry!', + 'exceptionsubstitutereturnvalue!', + 'exclamation!', 'exclude!', 'exportapplication!', 'exportdatawindow!', + 'exportfunction!', 'exportmenu!', 'exportpipeline!', 'exportproject!', + 'exportquery!', 'exportstructure!', 'exportuserobject!', 'exportwindow!', + 'externalvisual!', 'extobject!', 'failonanyconflict!', 'fdiagonal!', + 'featurenotsupportederror!', 'filealreadyopenerror!', 'filecloseerror!', + 'fileexists!', + 'fileinvalidformaterror!', 'filemenu!', 'filenotopenerror!', 'filenotseterror!', + 'filereaderror!', 'filetyperichtext!', 'filetypetext!', 'filewriteerror!', + 'filter!', 'first!', 'firstvisibletreeitem!', 'fixed!', + 'floating!', 'focusrect!', 'footer!', 'foreground!', + 'frombeginning!', 'fromcurrent!', 'fromend!', 'functionobject!', + 'gb231charset!', 'getfocus!', 'graph!', 'graphicobject!', + 'graxis!', 'grdispattr!', 'greekcharset!', 'groupbox!', + 'hand!', 'hangeul!', 'header!', 'hebrewcharset!', + 'helpmenu!', 'hide!', 'horizontal!', 'hotlinkalarm!', + 'hourglass!', 'hppa!', 'hprogressbar!', 'hpux!', + 'hscrollbar!', 'hticksonboth!', 'hticksonbottom!', 'hticksonneither!', + 'hticksontop!', 'htmltable!', 'htrackbar!', 'i286!', + 'i386!', 'i486!', 'icon!', 'icons!', + 'idle!', 'importdatawindow!', 'indent!', 'index!', + 'inet!', 'information!', 'inplace!', 'inputfieldselected!', + 'insertitem!', 'inside!', 'integer!', 'internetresult!', + 'italic!', 'itemchanged!', 'itemchanging!', 'itemcollapsed!', + 'itemcollapsing!', 'itemerror!', 'itemexpanded!', 'itemexpanding!', + 'itemfocuschanged!', 'itempopulate!', 'jaguarorb!', 'johabcharset!', + 'justify!', 'key!', 'key0!', 'key1!', + 'key2!', 'key3!', 'key4!', 'key5!', + 'key6!', 'key7!', 'key8!', 'key9!', + 'keya!', 'keyadd!', 'keyalt!', 'keyapps!', + 'keyb!', 'keyback!', 'keybackquote!', 'keybackslash!', + 'keyc!', 'keycapslock!', 'keycomma!', 'keycontrol!', + 'keyd!', 'keydash!', 'keydecimal!', 'keydelete!', + 'keydivide!', 'keydownarrow!', 'keye!', 'keyend!', + 'keyenter!', 'keyequal!', 'keyescape!', 'keyf!', + 'keyf1!', 'keyf10!', 'keyf11!', 'keyf12!', + 'keyf2!', 'keyf3!', 'keyf4!', 'keyf5!', + 'keyf6!', 'keyf7!', 'keyf8!', 'keyf9!', + 'keyg!', 'keyh!', 'keyhome!', 'keyi!', + 'keyinsert!', 'keyj!', 'keyk!', 'keyl!', + 'keyleftarrow!', 'keyleftbracket!', 'keyleftbutton!', 'keyleftwindows!', + 'keym!', 'keymiddlebutton!', 'keymultiply!', 'keyn!', + 'keynull!', 'keynumlock!', 'keynumpad0!', 'keynumpad1!', + 'keynumpad2!', 'keynumpad3!', 'keynumpad4!', 'keynumpad5!', + 'keynumpad6!', 'keynumpad7!', 'keynumpad8!', 'keynumpad9!', + 'keyo!', 'keyp!', 'keypagedown!', 'keypageup!', + 'keypause!', 'keyperiod!', 'keyprintscreen!', 'keyq!', + 'keyquote!', 'keyr!', 'keyrightarrow!', 'keyrightbracket!', + 'keyrightbutton!', 'keyrightwindows!', 'keys!', 'keyscrolllock!', + 'keysemicolon!', 'keyshift!', 'keyslash!', 'keyspacebar!', + 'keysubtract!', 'keyt!', 'keytab!', 'keyu!', + 'keyuparrow!', 'keyv!', 'keyw!', 'keyword!', + 'keyx!', 'keyy!', 'keyz!', 'languageafrikaans!', + 'languagealbanian!', 'languagearabicalgeria!', 'languagearabicbahrain!', + 'languagearabicegypt!', + 'languagearabiciraq!', 'languagearabicjordan!', 'languagearabickuwait!', + 'languagearabiclebanon!', + 'languagearabiclibya!', 'languagearabicmorocco!', 'languagearabicoman!', + 'languagearabicqatar!', + 'languagearabicsaudiarabia!', 'languagearabicsyria!', 'languagearabictunisia!', + 'languagearabicuae!', + 'languagearabicyemen!', 'languagebasque!', 'languagebulgarian!', 'languagebyelorussian!', + 'languagecatalan!', 'languagechinese!', 'languagechinesehongkong!', 'languagechinesesimplified!', + 'languagechinesesingapore!', 'languagechinesetraditional!', 'languagecroatian!', 'languageczech!', + 'languagedanish!', 'languagedutch!', 'languagedutchbelgian!', 'languagedutchneutral!', + 'languageenglish!', 'languageenglishaustralian!', 'languageenglishcanadian!', + 'languageenglishirish!', + 'languageenglishnewzealand!', 'languageenglishsouthafrica!', 'languageenglishuk!', + 'languageenglishus!', + 'languageestonian!', 'languagefaeroese!', 'languagefarsi!', 'languagefinnish!', + 'languagefrench!', 'languagefrenchbelgian!', 'languagefrenchcanadian!', 'languagefrenchluxembourg!', + 'languagefrenchneutral!', 'languagefrenchswiss!', 'languagegerman!', 'languagegermanaustrian!', + 'languagegermanliechtenstein!', 'languagegermanluxembourg!', 'languagegermanneutral!', + 'languagegermanswiss!', + 'languagegreek!', 'languagehebrew!', 'languagehindi!', 'languagehungarian!', + 'languageicelandic!', 'languageindonesian!', 'languageitalian!', 'languageitalianneutral!', + 'languageitalianswiss!', 'languagejapanese!', 'languagekorean!', 'languagekoreanjohab!', + 'languagelatvian!', 'languagelithuanian!', 'languagemacedonian!', 'languagemaltese!', + 'languageneutral!', 'languagenorwegian!', 'languagenorwegianbokmal!', 'languagenorwegiannynorsk!', + 'languagepolish!', 'languageportuguese!', 'languageportuguese_brazilian!', + 'languageportugueseneutral!', + 'languagerhaetoromanic!', 'languageromanian!', 'languageromanianmoldavia!', 'languagerussian!', + 'languagerussianmoldavia!', 'languagesami!', 'languageserbian!', 'languageslovak!', + 'languageslovenian!', 'languagesorbian!', 'languagesortnative!', 'languagesortunicode!', + 'languagespanish!', 'languagespanishcastilian!', 'languagespanishmexican!', 'languagespanishmodern!', + 'languagesutu!', 'languageswedish!', 'languagesystemdefault!', 'languagethai!', + 'languagetsonga!', 'languagetswana!', 'languageturkish!', 'languageukrainian!', + 'languageurdu!', 'languageuserdefault!', 'languagevenda!', 'languagexhosa!', + 'languagezulu!', 'last!', 'layer!', 'layered!', + 'Left!', 'leftmargin!', 'line!', 'line3d!', + 'linear!', 'linecolor!', 'linedown!', 'linegraph!', + 'lineleft!', 'linemode!', 'lineright!', 'lineup!', + 'linkupdateautomatic!', 'linkupdatemanual!', 'listbox!', 'listview!', + 'listviewitem!', 'listviewlargeicon!', 'listviewlist!', 'listviewreport!', + 'listviewsmallicon!', 'lockread!', 'lockreadwrite!', 'lockwrite!', + 'log10!', 'loge!', 'long!', 'losefocus!', + 'lower!', 'lowered!', 'm68000!', 'm68020!', + 'm68030!', 'm68040!', 'maccharset!', 'macintosh!', + 'mailattach!', 'mailbcc!', 'mailbodyasfile!', 'mailcc!', + 'maildownload!', 'mailentiremessage!', 'mailenvelopeonly!', 'mailfiledescription!', + 'mailmessage!', 'mailnewsession!', 'mailnewsessionwithdownload!', 'mailole!', + 'mailolestatic!', 'mailoriginator!', 'mailrecipient!', 'mailreturnaccessdenied!', + 'mailreturnattachmentnotfound!', 'mailreturnattachmentopenfailure!', + 'mailreturnattachmentwritefailure!', 'mailreturndiskfull!', + 'mailreturnfailure!', 'mailreturninsufficientmemory!', 'mailreturninvalidmessage!', + 'mailreturnloginfailure!', + 'mailreturnmessageinuse!', 'mailreturnnomessages!', 'mailreturnsuccess!', 'mailreturntexttoolarge!', + 'mailreturntoomanyfiles!', 'mailreturntoomanyrecipients!', 'mailreturntoomanysessions!', + 'mailreturnunknownrecipient!', + 'mailreturnuserabort!', 'mailsession!', 'mailsuppressattachments!', 'mailto!', + 'main!', 'maximized!', 'mdi!', 'mdiclient!', + 'mdihelp!', 'menu!', 'menucascade!', 'menuitemtypeabout!', + 'menuitemtypeexit!', 'menuitemtypehelp!', 'menuitemtypenormal!', 'merge!', + 'message!', 'minimized!', 'mips!', 'modelexistserror!', + 'modelnotexistserror!', 'modern!', 'modified!', 'mousedown!', + 'mousemove!', 'mouseup!', 'moved!', 'multiline!', + 'multilineedit!', 'mutexcreateerror!', 'new!', 'newmodified!', + 'next!', 'nexttreeitem!', 'nextvisibletreeitem!', 'noborder!', + 'noconnectprivilege!', 'nolegend!', 'none!', 'nonvisualobject!', + 'normal!', 'nosymbol!', 'notic!', 'notmodified!', + 'notopmost!', 'notype!', 'numericmask!', 'objhandle!', + 'oem!', 'off!', 'offsite!', 'ok!', + 'okcancel!', 'olecontrol!', 'olecustomcontrol!', 'oleobject!', + 'olestorage!', 'olestream!', 'oletxnobject!', 'omcontrol!', + 'omcustomcontrol!', 'omembeddedcontrol!', 'omobject!', 'omstorage!', + 'omstream!', 'open!', 'orb!', 'original!', + 'osf1!', 'other!', 'outside!', 'oval!', + 'pagedown!', 'pageleft!', 'pageright!', 'pageup!', + 'parenttreeitem!', 'pbtocppobject!', 'pentium!', 'percentage!', + 'picture!', 'picturebutton!', 'picturehyperlink!', 'picturelistbox!', + 'pictureselected!', 'pie3d!', 'piegraph!', 'pipeend!', + 'pipeline!', 'pipemeter!', 'pipestart!', 'popup!', + 'powerobject!', 'powerpc!', 'powerrs!', 'ppc601!', + 'ppc603!', 'ppc604!', 'previewdelete!', 'previewfunctionreselectrow!', + 'previewfunctionretrieve!', 'previewfunctionupdate!', 'previewinsert!', 'previewselect!', + 'previewupdate!', 'previoustreeitem!', 'previousvisibletreeitem!', 'primary!', + 'printend!', 'printfooter!', 'printheader!', 'printpage!', + 'printstart!', 'prior!', 'private!', 'process!', + 'profilecall!', 'profileclass!', 'profileline!', 'profileroutine!', + 'profiling!', 'protected!', 'psreport!', 'public!', + 'question!', 'radiobutton!', 'raised!', 'rbuttondown!', + 'rbuttonup!', 'read!', 'readonlyargument!', 'real!', + 'rectangle!', 'regbinary!', 'regexpandstring!', 'reglink!', + 'regmultistring!', 'regstring!', 'regulong!', 'regulongbigendian!', + 'remoteexec!', 'remotehotlinkstart!', 'remotehotlinkstop!', 'remoteobject!', + 'remoterequest!', 'remotesend!', 'rename!', 'replace!', + 'resize!', 'resizeborder!', 'response!', 'resultset!', + 'resultsets!', 'retrieveend!', 'retrieverow!', 'retrievestart!', + 'retrycancel!', 'richtextedit!', 'Right!', 'rightclicked!', + 'rightdoubleclicked!', 'rightmargin!', 'rnddays!', 'rnddefault!', + 'rndhours!', 'rndmicroseconds!', 'rndminutes!', 'rndmonths!', + 'rndnumber!', 'rndseconds!', 'rndyears!', 'roman!', + 'roottreeitem!', 'roundrectangle!', 'routineesql!', 'routineevent!', + 'routinefunction!', 'routinegarbagecollection!', 'routineobjectcreation!', + 'routineobjectdestruction!', + 'routineroot!', 'rowfocuschanged!', 'russiancharset!', 'save!', + 'scalartype!', 'scattergraph!', 'script!', 'scriptdefinition!', + 'scriptevent!', 'scriptfunction!', 'scrollhorizontal!', 'scrollvertical!', + 'selected!', 'selectionchanged!', 'selectionchanging!', 'series!', + 'service!', 'shade!', 'shadowbox!', 'shared!', + 'sharedobjectcreateinstanceerror!', 'sharedobjectcreatepbsessionerror!', + 'sharedobjectexistserror!', 'sharedobjectnotexistserror!', + 'shiftjis!', 'show!', 'simpletype!', 'simpletypedefinition!', + 'singlelineedit!', 'size!', 'sizenesw!', 'sizens!', + 'sizenwse!', 'sizewe!', 'sol2!', 'solid!', + 'sort!', 'sourcepblerror!', 'spacing1!', 'spacing15!', + 'spacing2!', 'sparc!', 'sqlinsert!', 'sqlpreview!', + 'square!', 'sslcallback!', 'sslserviceprovider!', 'statichyperlink!', + 'statictext!', 'stgdenynone!', 'stgdenyread!', 'stgdenywrite!', + 'stgexclusive!', 'stgread!', 'stgreadwrite!', 'stgwrite!', + 'stopsign!', 'straddle!', 'streammode!', 'stretch!', + 'strikeout!', 'string!', 'stringmask!', 'structure!', + 'stylebox!', 'stylelowered!', 'styleraised!', 'styleshadowbox!', + 'subscript!', 'success!', 'superscript!', 'swiss!', + 'sylk!', 'symbol!', 'symbolhollowbox!', 'symbolhollowcircle!', + 'symbolhollowdiamond!', 'symbolhollowdownarrow!', 'symbolhollowuparrow!', 'symbolplus!', + 'symbolsolidbox!', 'symbolsolidcircle!', 'symbolsoliddiamond!', 'symbolsoliddownarrow!', + 'symbolsoliduparrow!', 'symbolstar!', 'symbolx!', 'system!', + 'systemerror!', 'systemfunctions!', 'systemkey!', 'tab!', + 'tabsonbottom!', 'tabsonbottomandtop!', 'tabsonleft!', 'tabsonleftandright!', + 'tabsonright!', 'tabsonrightandleft!', 'tabsontop!', 'tabsontopandbottom!', + 'text!', 'thaicharset!', 'thread!', 'tile!', + 'tilehorizontal!', 'time!', 'timemask!', 'timer!', + 'timernone!', 'timing!', 'tobottom!', 'toolbarmoved!', + 'top!', 'topic!', 'topmost!', 'totop!', + 'traceactivitynode!', 'traceatomic!', 'tracebeginend!', 'traceerror!', + 'traceesql!', 'tracefile!', 'tracegarbagecollect!', 'tracegeneralerror!', + 'tracein!', 'traceline!', 'tracenomorenodes!', 'tracenotstartederror!', + 'traceobject!', 'traceout!', 'traceroutine!', 'tracestartederror!', + 'tracetree!', 'tracetreeerror!', 'tracetreeesql!', 'tracetreegarbagecollect!', + 'tracetreeline!', 'tracetreenode!', 'tracetreeobject!', 'tracetreeroutine!', + 'tracetreeuser!', 'traceuser!', 'transaction!', 'transactionserver!', + 'transparent!', 'transport!', 'treeview!', 'treeviewitem!', + 'turkishcharset!', 'typeboolean!', 'typecategory!', 'typecategoryaxis!', + 'typecategorylabel!', 'typedata!', 'typedate!', 'typedatetime!', + 'typedecimal!', 'typedefinition!', 'typedouble!', 'typegraph!', + 'typeinteger!', 'typelegend!', 'typelong!', 'typereal!', + 'typeseries!', 'typeseriesaxis!', 'typeserieslabel!', 'typestring!', + 'typetime!', 'typetitle!', 'typeuint!', 'typeulong!', + 'typeunknown!', 'typevalueaxis!', 'typevaluelabel!', 'ultrasparc!', + 'unboundedarray!', 'underline!', 'underlined!', 'unsignedinteger!', + 'unsignedlong!', 'unsorted!', 'uparrow!', 'updateend!', + 'updatestart!', 'upper!', 'userdefinedsort!', 'userobject!', + 'variable!', 'variableargument!', 'variablecardinalitydefinition!', 'variabledefinition!', + 'variableglobal!', 'variableinstance!', 'variablelocal!', 'variableshared!', + 'varlistargument!', 'vbxvisual!', 'vcenter!', 'vertical!', + 'vietnamesecharset!', 'viewchange!', 'vprogressbar!', 'vscrollbar!', + 'vticksonboth!', 'vticksonleft!', 'vticksonneither!', 'vticksonright!', + 'vtrackbar!', 'window!', 'windowmenu!', 'windowobject!', + 'windows!', 'windowsnt!', 'wk1!', 'wks!', + 'wmf!', 'write!', 'xpixelstounits!', 'xunitstopixels!', + 'xvalue!', 'yesno!', 'yesnocancel!', 'ypixelstounits!', + 'yunitstopixels!', + 'yvalue!', + 'zoom!' + ) + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '[', ']', '{', '}'), + 1 => array('|'), + 2 => array('+', '-', '*', '/'), + 3 => array('=', '<', '>', '^') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #008000; font-weight: bold;', + 2 => 'color: #990099; font-weight: bold;', + 3 => 'color: #330099; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #0000ff; font-weight: bold;', + 'MULTI' => 'color: #0000ff; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #800000;' + ), + 'NUMBERS' => array( + 0 => 'color: #330099; font-weight: bold;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;', + 1 => 'color: #ffff00; background-color:#993300; font-weight: bold', + 2 => 'color: #000000;', + 3 => 'color: #000000;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #800000; font-weight: bold;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/powershell.php b/inc/geshi/powershell.php index e427059d3..fe8a5da07 100644 --- a/inc/geshi/powershell.php +++ b/inc/geshi/powershell.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Frode Aarebrot (frode@aarebrot.net) * Copyright: (c) 2008 Frode Aarebrot (http://www.aarebrot.net) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/06/20 * * PowerShell language file for GeSHi. diff --git a/inc/geshi/progress.php b/inc/geshi/progress.php index 2d6024e74..3824e7b0b 100644 --- a/inc/geshi/progress.php +++ b/inc/geshi/progress.php @@ -4,7 +4,7 @@ * -------- * Author: Marco Aurelio de Pasqual (marcop@hdi.com.br) * Copyright: (c) 2008 Marco Aurelio de Pasqual, Benny Baumann (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/07/11 * * Progress language file for GeSHi. diff --git a/inc/geshi/prolog.php b/inc/geshi/prolog.php index fa9e03a63..1f35a1b82 100644 --- a/inc/geshi/prolog.php +++ b/inc/geshi/prolog.php @@ -4,7 +4,7 @@ * -------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/10/02 * * Prolog language file for GeSHi. diff --git a/inc/geshi/properties.php b/inc/geshi/properties.php new file mode 100644 index 000000000..231dd6e8b --- /dev/null +++ b/inc/geshi/properties.php @@ -0,0 +1,127 @@ + 'PROPERTIES', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* Common used variables */ + 1 => array( + '${user.home}' + ), + ), + 'SYMBOLS' => array( + '[', ']', '=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'font-weight: bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => '' + ), + 'STRINGS' => array( + 0 => 'color: #933;' + ), + 'NUMBERS' => array( + 0 => '' + ), + 'METHODS' => array( + 0 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;' + ), + 'REGEXPS' => array( + 0 => 'color: #000080; font-weight:bold;', + 1 => 'color: #008000; font-weight:bold;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Entry names + 0 => array( + GESHI_SEARCH => '^(\s*)([.a-zA-Z0-9_\-]+)(\s*=)', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => 'm', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + //Entry values + 1 => array( + // Evil hackery to get around GeSHi bug: <>" and ; are added so s can be matched + // Explicit match on variable names because if a comment is before the first < of the span + // gets chewed up... + GESHI_SEARCH => '([<>";a-zA-Z0-9_]+\s*)=(.*)', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1=', + GESHI_AFTER => '' + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/providex.php b/inc/geshi/providex.php index f24a57d18..aaa02e797 100644 --- a/inc/geshi/providex.php +++ b/inc/geshi/providex.php @@ -4,7 +4,7 @@ * ---------- * Author: Jeff Wilder (jeff@coastallogix.com) * Copyright: (c) 2008 Coastal Logix (http://www.coastallogix.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/10/18 * * ProvideX language file for GeSHi. diff --git a/inc/geshi/purebasic.php b/inc/geshi/purebasic.php new file mode 100644 index 000000000..b644af3fe --- /dev/null +++ b/inc/geshi/purebasic.php @@ -0,0 +1,303 @@ + 'PureBasic', + 'COMMENT_SINGLE' => array( 1 => ";" ), + 'COMMENT_MULTI' => array( ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + // Keywords + 'And', 'As', 'Break', 'CallDebugger', 'Case', 'CompilerCase', 'CompilerDefault', 'CompilerElse', 'CompilerEndIf', 'CompilerEndSelect', + 'CompilerError', 'CompilerIf', 'CompilerSelect', 'Continue', 'Data', 'DataSection', 'EndDataSection', 'Debug', 'DebugLevel', 'Declare', + 'DeclareCDLL', 'DeclareDLL', 'Default', 'Define', 'Dim', 'DisableASM', 'DisableDebugger', 'DisableExplicit', 'Else', 'ElseIf', 'EnableASM', + 'EnableDebugger', 'EnableExplicit', 'End', 'EndEnumeration', 'EndIf', 'EndImport', 'EndInterface', 'EndMacro', 'EndProcedure', + 'EndSelect', 'EndStructure', 'EndStructureUnion', 'EndWith', 'Enumeration', 'Extends', 'FakeReturn', 'For', 'Next', 'ForEach', + 'ForEver', 'Global', 'Gosub', 'Goto', 'If', 'Import', 'ImportC', 'IncludeBinary', 'IncludeFile', 'IncludePath', 'Interface', 'Macro', + 'NewList', 'Not', 'Or', 'Procedure', 'ProcedureC', 'ProcedureCDLL', 'ProcedureDLL', 'ProcedureReturn', 'Protected', 'Prototype', + 'PrototypeC', 'Read', 'ReDim', 'Repeat', 'Until', 'Restore', 'Return', 'Select', 'Shared', 'Static', 'Step', 'Structure', 'StructureUnion', + 'Swap', 'To', 'Wend', 'While', 'With', 'XIncludeFile', 'XOr' + ), + 2 => array( + // All Functions + 'Abs', 'ACos', 'Add3DArchive', 'AddBillboard', 'AddDate', 'AddElement', 'AddGadgetColumn', 'AddGadgetItem', + 'AddKeyboardShortcut', 'AddMaterialLayer', 'AddPackFile', 'AddPackMemory', 'AddStatusBarField', 'AddSysTrayIcon', + 'AllocateMemory', 'AmbientColor', 'AnimateEntity', 'Asc', 'ASin', 'ATan', 'AudioCDLength', 'AudioCDName', 'AudioCDStatus', + 'AudioCDTrackLength', 'AudioCDTracks', 'AudioCDTrackSeconds', 'AvailableProgramOutput', 'AvailableScreenMemory', + 'BackColor', 'Base64Decoder', 'Base64Encoder', 'BillboardGroupLocate', 'BillboardGroupMaterial', 'BillboardGroupX', + 'BillboardGroupY', 'BillboardGroupZ', 'BillboardHeight', 'BillboardLocate', 'BillboardWidth', 'BillboardX', 'BillboardY', 'BillboardZ', + 'Bin', 'BinQ', 'Blue', 'Box', 'ButtonGadget', 'ButtonImageGadget', 'CalendarGadget', 'CallCFunction', 'CallCFunctionFast', + 'CallFunction', 'CallFunctionFast', 'CameraBackColor', 'CameraFOV', 'CameraLocate', 'CameraLookAt', 'CameraProjection', + 'CameraRange', 'CameraRenderMode', 'CameraX', 'CameraY', 'CameraZ', 'CatchImage', 'CatchSound', 'CatchSprite', + 'CatchXML', 'ChangeAlphaIntensity', 'ChangeCurrentElement', 'ChangeGamma', 'ChangeListIconGadgetDisplay', + 'ChangeSysTrayIcon', 'CheckBoxGadget', 'CheckEntityCollision', 'CheckFilename', 'ChildXMLNode', 'Chr', 'Circle', + 'ClearBillboards', 'ClearClipboard', 'ClearConsole', 'ClearError', 'ClearGadgetItemList', 'ClearList', 'ClearScreen', 'ClipSprite', + 'CloseConsole', 'CloseDatabase', 'CloseFile', 'CloseGadgetList', 'CloseHelp', 'CloseLibrary', 'CloseNetworkConnection', + 'CloseNetworkServer', 'ClosePack', 'ClosePreferences', 'CloseProgram', 'CloseScreen', 'CloseSubMenu', 'CloseWindow', + 'ColorRequester', 'ComboBoxGadget', 'CompareMemory', 'CompareMemoryString', 'ConnectionID', 'ConsoleColor', + 'ConsoleCursor', 'ConsoleError', 'ConsoleLocate', 'ConsoleTitle', 'ContainerGadget', 'CopyDirectory', 'CopyEntity', + 'CopyFile', 'CopyImage', 'CopyLight', 'CopyMaterial', 'CopyMemory', 'CopyMemoryString', 'CopyMesh', 'CopySprite', + 'CopyTexture', 'CopyXMLNode', 'Cos', 'CountBillboards', 'CountGadgetItems', 'CountLibraryFunctions', 'CountList', + 'CountMaterialLayers', 'CountProgramParameters', 'CountRenderedTriangles', 'CountString', 'CRC32Fingerprint', + 'CreateBillboardGroup', 'CreateCamera', 'CreateDirectory', 'CreateEntity', 'CreateFile', 'CreateGadgetList', + 'CreateImage', 'CreateLight', 'CreateMaterial', 'CreateMenu', 'CreateMesh', 'CreateMutex', 'CreateNetworkServer', + 'CreatePack', 'CreatePalette', 'CreateParticleEmitter', 'CreatePopupMenu', 'CreatePreferences', 'CreateSprite', + 'CreateSprite3D', 'CreateStatusBar', 'CreateTerrain', 'CreateTexture', 'CreateThread', 'CreateToolBar', 'CreateXML', + 'CreateXMLNode', 'DatabaseColumnName', 'DatabaseColumns', 'DatabaseColumnType', 'DatabaseDriverDescription', + 'DatabaseDriverName', 'DatabaseError', 'DatabaseQuery', 'DatabaseUpdate', 'Date', 'DateGadget', 'Day', 'DayOfWeek', + 'DayOfYear', 'DefaultPrinter', 'Defined', 'Delay', 'DeleteDirectory', 'DeleteElement', 'DeleteFile', 'DeleteXMLNode', + 'DESFingerprint', 'DesktopDepth', 'DesktopFrequency', 'DesktopHeight', 'DesktopMouseX', 'DesktopMouseY', 'DesktopName', + 'DesktopWidth', 'DirectoryEntryAttributes', 'DirectoryEntryDate', 'DirectoryEntryName', 'DirectoryEntrySize', + 'DirectoryEntryType', 'DisableGadget', 'DisableMaterialLighting', 'DisableMenuItem', 'DisableToolBarButton', 'DisableWindow', + 'DisASMCommand', 'DisplayAlphaSprite', 'DisplayPalette', 'DisplayPopupMenu', 'DisplayRGBFilter', 'DisplayShadowSprite', + 'DisplaySolidSprite', 'DisplaySprite', 'DisplaySprite3D', 'DisplayTranslucentSprite', 'DisplayTransparentSprite', 'DragFiles', + 'DragImage', 'DragOSFormats', 'DragPrivate', 'DragText', 'DrawAlphaImage', 'DrawImage', 'DrawingBuffer', + 'DrawingBufferPitch', 'DrawingBufferPixelFormat', 'DrawingFont', 'DrawingMode', 'DrawText', 'EditorGadget', + 'egrid_AddColumn', 'egrid_AddRows', 'egrid_AppendCells', 'egrid_ClearRows', 'egrid_CopyCells', + 'egrid_CreateCellCallback', 'egrid_CreateGrid', 'egrid_DeleteCells', 'egrid_FastDeleteCells', 'egrid_FreeGrid', + 'egrid_GetCellSelection', 'egrid_GetCellText', 'egrid_GetColumnOrderArray', 'egrid_HasSelectedCellChanged', 'egrid_Height', + 'egrid_HideEdit', 'egrid_HideGrid', 'egrid_MakeCellVisible', 'egrid_NumberOfColumns', 'egrid_NumberOfRows', + 'egrid_PasteCells', 'egrid_Register', 'egrid_RemoveCellCallback', 'egrid_RemoveColumn', 'egrid_RemoveRow', 'egrid_Resize', + 'egrid_SelectCell', 'egrid_SelectedColumn', 'egrid_SelectedRow', 'egrid_SetCellSelection', 'egrid_SetCellText', + 'egrid_SetColumnOrderArray', 'egrid_SetHeaderFont', 'egrid_SetHeaderHeight', 'egrid_SetOption', 'egrid_Width', 'egrid_x', + 'egrid_y', 'EjectAudioCD', 'ElapsedMilliseconds', 'Ellipse', 'EnableGadgetDrop', 'EnableGraphicalConsole', + 'EnableWindowDrop', 'EnableWorldCollisions', 'EnableWorldPhysics', 'Engine3DFrameRate', 'EntityAngleX', + 'EntityAnimationLength', 'EntityLocate', 'EntityMaterial', 'EntityMesh', 'EntityPhysicBody', 'EntityRenderMode', + 'EntityX', 'EntityY', 'EntityZ', 'EnvironmentVariableName', 'EnvironmentVariableValue', 'Eof', 'EventClient', + 'EventDropAction', 'EventDropBuffer', 'EventDropFiles', 'EventDropImage', 'EventDropPrivate', 'EventDropSize', + 'EventDropText', 'EventDropType', 'EventDropX', 'EventDropY', 'EventGadget', 'EventlParam', 'EventMenu', 'EventServer', + 'EventType', 'EventWindow', 'EventwParam', 'ExamineDatabaseDrivers', 'ExamineDesktops', 'ExamineDirectory', + 'ExamineEnvironmentVariables', 'ExamineIPAddresses', 'ExamineJoystick', 'ExamineKeyboard', 'ExamineLibraryFunctions', + 'ExamineMouse', 'ExaminePreferenceGroups', 'ExaminePreferenceKeys', 'ExamineScreenModes', 'ExamineWorldCollisions', + 'ExamineXMLAttributes', 'ExplorerComboGadget', 'ExplorerListGadget', 'ExplorerTreeGadget', 'ExportXML', + 'ExportXMLSize', 'FileBuffersSize', 'FileID', 'FileSeek', 'FileSize', 'FillArea', 'FindString', 'FinishDirectory', + 'FirstDatabaseRow', 'FirstElement', 'FirstWorldCollisionEntity', 'FlipBuffers', 'FlushFileBuffers', 'Fog', 'FontID', + 'FontRequester', 'FormatDate', 'FormatXML', 'Frame3DGadget', 'FreeBillboardGroup', 'FreeCamera', 'FreeEntity', + 'FreeFont', 'FreeGadget', 'FreeImage', 'FreeLight', 'FreeMaterial', 'FreeMemory', 'FreeMenu', 'FreeMesh', + 'FreeModule', 'FreeMovie', 'FreeMutex', 'FreePalette', 'FreeParticleEmitter', 'FreeSound', 'FreeSprite', + 'FreeSprite3D', 'FreeStatusBar', 'FreeTexture', 'FreeToolBar', 'FreeXML', 'FrontColor', 'GadgetHeight', 'GadgetID', + 'GadgetItemID', 'GadgetToolTip', 'GadgetType', 'GadgetWidth', 'GadgetX', 'GadgetY', 'GetActiveGadget', + 'GetActiveWindow', 'GetClientIP', 'GetClientPort', 'GetClipboardImage', 'GetClipboardText', 'GetCurrentDirectory', + 'GetCurrentEIP', 'GetDatabaseDouble', 'GetDatabaseFloat', 'GetDatabaseLong', 'GetDatabaseQuad', 'GetDatabaseString', + 'GetDisASMString', 'GetEntityAnimationTime', 'GetEntityFriction', 'GetEntityMass', 'GetEnvironmentVariable', + 'GetErrorAddress', 'GetErrorCounter', 'GetErrorDescription', 'GetErrorDLL', 'GetErrorLineNR', 'GetErrorModuleName', + 'GetErrorNumber', 'GetErrorRegister', 'GetExtensionPart', 'GetFileAttributes', 'GetFileDate', 'GetFilePart', 'GetFunction', + 'GetFunctionEntry', 'GetGadgetAttribute', 'GetGadgetColor', 'GetGadgetData', 'GetGadgetFont', + 'GetGadgetItemAttribute', 'GetGadgetItemColor', 'GetGadgetItemData', 'GetGadgetItemState', 'GetGadgetItemText', + 'GetGadgetState', 'GetGadgetText', 'GetHomeDirectory', 'GetMenuItemState', 'GetMenuItemText', 'GetMenuTitleText', + 'GetModulePosition', 'GetModuleRow', 'GetPaletteColor', 'GetPathPart', 'GetTemporaryDirectory', + 'GetToolBarButtonState', 'GetWindowColor', 'GetWindowState', 'GetWindowTitle', 'GetXMLAttribute', 'GetXMLEncoding', + 'GetXMLNodeName', 'GetXMLNodeOffset', 'GetXMLNodeText', 'GetXMLStandalone', 'GoToEIP', 'GrabImage', 'GrabSprite', + 'Green', 'Hex', 'HexQ', 'HideBillboardGroup', 'HideEntity', 'HideGadget', 'HideLight', 'HideMenu', 'HideParticleEmitter', + 'HideWindow', 'Hostname', 'Hour', 'HyperLinkGadget', 'ImageDepth', 'ImageGadget', 'ImageHeight', 'ImageID', + 'ImageOutput', 'ImageWidth', 'InitAudioCD', 'InitEngine3D', 'InitJoystick', 'InitKeyboard', 'InitMouse', 'InitMovie', + 'InitNetwork', 'InitPalette', 'InitScintilla', 'InitSound', 'InitSprite', 'InitSprite3D', 'Inkey', 'Input', 'InputRequester', + 'InsertElement', 'Int', 'IntQ', 'IPAddressField', 'IPAddressGadget', 'IPString', 'IsBillboardGroup', 'IsCamera', 'IsDatabase', + 'IsDirectory', 'IsEntity', 'IsFile', 'IsFont', 'IsGadget', 'IsImage', 'IsLibrary', 'IsLight', 'IsMaterial', 'IsMenu', 'IsMesh', + 'IsModule', 'IsMovie', 'IsPalette', 'IsParticleEmitter', 'IsProgram', 'IsScreenActive', 'IsSound', 'IsSprite', 'IsSprite3D', + 'IsStatusBar', 'IsSysTrayIcon', 'IsTexture', 'IsThread', 'IsToolBar', 'IsWindow', 'IsXML', 'JoystickAxisX', 'JoystickAxisY', + 'JoystickButton', 'KeyboardInkey', 'KeyboardMode', 'KeyboardPushed', 'KeyboardReleased', 'KillProgram', 'KillThread', + 'LastElement', 'LCase', 'Left', 'Len', 'LibraryFunctionAddress', 'LibraryFunctionName', 'LibraryID', 'LightColor', + 'LightLocate', 'LightSpecularColor', 'Line', 'LineXY', 'ListIconGadget', 'ListIndex', 'ListViewGadget', 'LoadFont', + 'LoadImage', 'LoadMesh', 'LoadModule', 'LoadMovie', 'LoadPalette', 'LoadSound', 'LoadSprite', 'LoadTexture', + 'LoadWorld', 'LoadXML', 'Loc', 'LockMutex', 'Lof', 'Log', 'Log10', 'LSet', 'LTrim', 'MainXMLNode', 'MakeIPAddress', + 'MaterialAmbientColor', 'MaterialBlendingMode', 'MaterialDiffuseColor', 'MaterialFilteringMode', 'MaterialID', + 'MaterialShadingMode', 'MaterialSpecularColor', 'MD5FileFingerprint', 'MD5Fingerprint', 'MDIGadget', 'MemorySize', + 'MemoryStringLength', 'MenuBar', 'MenuHeight', 'MenuID', 'MenuItem', 'MenuTitle', 'MeshID', 'MessageRequester', + 'Mid', 'Minute', 'ModuleVolume', 'Month', 'MouseButton', 'MouseDeltaX', 'MouseDeltaY', 'MouseLocate', 'MouseWheel', + 'MouseX', 'MouseY', 'MoveBillboard', 'MoveBillboardGroup', 'MoveCamera', 'MoveEntity', 'MoveLight', 'MoveMemory', + 'MoveParticleEmitter', 'MoveXMLNode', 'MovieAudio', 'MovieHeight', 'MovieInfo', 'MovieLength', 'MovieSeek', + 'MovieStatus', 'MovieWidth', 'NetworkClientEvent', 'NetworkServerEvent', 'NewPrinterPage', 'NextDatabaseDriver', + 'NextDatabaseRow', 'NextDirectoryEntry', 'NextElement', 'NextEnvironmentVariable', 'NextIPAddress', + 'NextLibraryFunction', 'NextPackFile', 'NextPreferenceGroup', 'NextPreferenceKey', 'NextScreenMode', + 'NextSelectedFileName', 'NextWorldCollision', 'NextXMLAttribute', 'NextXMLNode', 'OffsetOf', 'OnErrorExit', + 'OnErrorGosub', 'OnErrorGoto', 'OnErrorResume', 'OpenComPort', 'OpenConsole', 'OpenDatabase', + 'OpenDatabaseRequester', 'OpenFile', 'OpenFileRequester', 'OpenGadgetList', 'OpenHelp', 'OpenLibrary', + 'OpenNetworkConnection', 'OpenPack', 'OpenPreferences', 'OpenScreen', 'OpenSubMenu', 'OpenWindow', + 'OpenWindowedScreen', 'OptionGadget', 'OSVersion', 'PackerCallback', 'PackFileSize', 'PackMemory', 'PanelGadget', + 'ParentXMLNode', 'Parse3DScripts', 'ParseDate', 'ParticleColorFader', 'ParticleColorRange', 'ParticleEmissionRate', + 'ParticleEmitterDirection', 'ParticleEmitterLocate', 'ParticleEmitterX', 'ParticleEmitterY', 'ParticleEmitterZ', + 'ParticleMaterial', 'ParticleSize', 'ParticleTimeToLive', 'ParticleVelocity', 'PathRequester', 'PauseAudioCD', + 'PauseMovie', 'PauseThread', 'PeekB', 'PeekC', 'PeekD', 'PeekF', 'PeekL', 'PeekQ', 'PeekS', 'PeekW', 'PlayAudioCD', + 'PlayModule', 'PlayMovie', 'PlaySound', 'Plot', 'Point', 'PokeB', 'PokeC', 'PokeD', 'PokeF', 'PokeL', 'PokeQ', 'PokeS', + 'PokeW', 'Pow', 'PreferenceComment', 'PreferenceGroup', 'PreferenceGroupName', 'PreferenceKeyName', + 'PreferenceKeyValue', 'PreviousDatabaseRow', 'PreviousElement', 'PreviousXMLNode', 'Print', 'PrinterOutput', + 'PrinterPageHeight', 'PrinterPageWidth', 'PrintN', 'PrintRequester', 'ProgramExitCode', 'ProgramFilename', + 'ProgramID', 'ProgramParameter', 'ProgramRunning', 'ProgressBarGadget', 'Random', 'RandomSeed', 'RawKey', + 'ReadByte', 'ReadCharacter', 'ReadConsoleData', 'ReadData', 'ReadDouble', 'ReadFile', 'ReadFloat', 'ReadLong', + 'ReadPreferenceDouble', 'ReadPreferenceFloat', 'ReadPreferenceLong', 'ReadPreferenceQuad', + 'ReadPreferenceString', 'ReadProgramData', 'ReadProgramError', 'ReadProgramString', 'ReadQuad', 'ReadString', + 'ReadStringFormat', 'ReadWord', 'ReAllocateMemory', 'ReceiveNetworkData', 'ReceiveNetworkFile', 'Red', + 'Reg_DeleteEmptyKey', 'Reg_DeleteKey', 'Reg_DeleteValue', 'Reg_GetErrorMsg', 'Reg_GetErrorNr', + 'Reg_GetValueTyp', 'Reg_ListSubKey', 'Reg_ListSubValue', 'Reg_ReadBinary', 'Reg_ReadExpandString', + 'Reg_ReadLong', 'Reg_ReadMultiLineString', 'Reg_ReadQuad', 'Reg_ReadString', 'Reg_WriteBinary', + 'Reg_WriteExpandString', 'Reg_WriteLong', 'Reg_WriteMultiLineString', 'Reg_WriteQuad', 'Reg_WriteString', + 'ReleaseMouse', 'RemoveBillboard', 'RemoveEnvironmentVariable', 'RemoveGadgetColumn', 'RemoveGadgetItem', + 'RemoveKeyboardShortcut', 'RemoveMaterialLayer', 'RemovePreferenceGroup', 'RemovePreferenceKey', + 'RemoveString', 'RemoveSysTrayIcon', 'RemoveXMLAttribute', 'RenameFile', 'RenderMovieFrame', 'RenderWorld', + 'ReplaceString', 'ResetList', 'ResizeBillboard', 'ResizeEntity', 'ResizeGadget', 'ResizeImage', 'ResizeMovie', + 'ResizeParticleEmitter', 'ResizeWindow', 'ResolveXMLAttributeName', 'ResolveXMLNodeName', 'ResumeAudioCD', + 'ResumeMovie', 'ResumeThread', 'RGB', 'Right', 'RootXMLNode', 'RotateBillboardGroup', 'RotateCamera', + 'RotateEntity', 'RotateMaterial', 'RotateSprite3D', 'Round', 'RSet', 'RTrim', 'RunProgram', 'SaveFileRequester', + 'SaveImage', 'SaveSprite', 'SaveXML', 'ScaleEntity', 'ScaleMaterial', 'ScintillaGadget', 'ScintillaSendMessage', + 'ScreenID', 'ScreenModeDepth', 'ScreenModeHeight', 'ScreenModeRefreshRate', 'ScreenModeWidth', + 'ScreenOutput', 'ScrollAreaGadget', 'ScrollBarGadget', 'ScrollMaterial', 'Second', 'SecondWorldCollisionEntity', + 'SelectedFilePattern', 'SelectedFontColor', 'SelectedFontName', 'SelectedFontSize', 'SelectedFontStyle', + 'SelectElement', 'SendNetworkData', 'SendNetworkFile', 'SendNetworkString', 'SetActiveGadget', + 'SetActiveWindow', 'SetClipboardImage', 'SetClipboardText', 'SetCurrentDirectory', 'SetDragCallback', + 'SetDropCallback', 'SetEntityAnimationTime', 'SetEntityFriction', 'SetEntityMass', 'SetEnvironmentVariable', + 'SetErrorNumber', 'SetFileAttributes', 'SetFileDate', 'SetFrameRate', 'SetGadgetAttribute', 'SetGadgetColor', + 'SetGadgetData', 'SetGadgetFont', 'SetGadgetItemAttribute', 'SetGadgetItemColor', 'SetGadgetItemData', + 'SetGadgetItemState', 'SetGadgetItemText', 'SetGadgetState', 'SetGadgetText', 'SetMenuItemState', + 'SetMenuItemText', 'SetMenuTitleText', 'SetMeshData', 'SetModulePosition', 'SetPaletteColor', 'SetRefreshRate', + 'SetToolBarButtonState', 'SetWindowCallback', 'SetWindowColor', 'SetWindowState', 'SetWindowTitle', + 'SetXMLAttribute', 'SetXMLEncoding', 'SetXMLNodeName', 'SetXMLNodeOffset', 'SetXMLNodeText', + 'SetXMLStandalone', 'Sin', 'SizeOf', 'SkyBox', 'SkyDome', 'SmartWindowRefresh', 'SortArray', 'SortList', + 'SortStructuredArray', 'SortStructuredList', 'SoundFrequency', 'SoundPan', 'SoundVolume', 'Space', + 'SpinGadget', 'SplitterGadget', 'Sprite3DBlendingMode', 'Sprite3DQuality', 'SpriteCollision', 'SpriteDepth', + 'SpriteHeight', 'SpriteID', 'SpriteOutput', 'SpritePixelCollision', 'SpriteWidth', 'Sqr', 'Start3D', 'StartDrawing', + 'StartPrinting', 'StartSpecialFX', 'StatusBarHeight', 'StatusBarIcon', 'StatusBarID', 'StatusBarText', + 'StickyWindow', 'Stop3D', 'StopAudioCD', 'StopDrawing', 'StopModule', 'StopMovie', 'StopPrinting', + 'StopSound', 'StopSpecialFX', 'Str', 'StrD', 'StrF', 'StringByteLength', 'StringField', 'StringGadget', 'StrQ', + 'StrU', 'Subsystem', 'SwapElements', 'SysTrayIconToolTip', 'Tan', 'TerrainHeight', 'TextGadget', 'TextHeight', + 'TextureHeight', 'TextureID', 'TextureOutput', 'TextureWidth', 'TextWidth', 'ThreadID', 'ThreadPriority', + 'ToolBarHeight', 'ToolBarID', 'ToolBarImageButton', 'ToolBarSeparator', 'ToolBarStandardButton', + 'ToolBarToolTip', 'TrackBarGadget', 'TransformSprite3D', 'TransparentSpriteColor', 'TreeGadget', 'Trim', + 'TruncateFile', 'TryLockMutex', 'UCase', 'UnlockMutex', 'UnpackMemory', 'UseAudioCD', 'UseBuffer', + 'UseGadgetList', 'UseJPEGImageDecoder', 'UseJPEGImageEncoder', 'UseODBCDatabase', 'UseOGGSoundDecoder', + 'UsePNGImageDecoder', 'UsePNGImageEncoder', 'UseTGAImageDecoder', 'UseTIFFImageDecoder', 'Val', 'ValD', + 'ValF', 'ValQ', 'WaitProgram', 'WaitThread', 'WaitWindowEvent', 'WebGadget', 'WebGadgetPath', 'WindowEvent', + 'WindowHeight', 'WindowID', 'WindowMouseX', 'WindowMouseY', 'WindowOutput', 'WindowWidth', 'WindowX', + 'WindowY', 'WorldGravity', 'WorldShadows', 'WriteByte', 'WriteCharacter', 'WriteConsoleData', 'WriteData', + 'WriteDouble', 'WriteFloat', 'WriteLong', 'WritePreferenceDouble', 'WritePreferenceFloat', 'WritePreferenceLong', + 'WritePreferenceQuad', 'WritePreferenceString', 'WriteProgramData', 'WriteProgramString', 'WriteProgramStringN', + 'WriteQuad', 'WriteString', 'WriteStringFormat', 'WriteStringN', 'WriteWord', 'XMLAttributeName', 'XMLAttributeValue', + 'XMLChildCount', 'XMLError', 'XMLErrorLine', 'XMLErrorPosition', 'XMLNodeFromID', 'XMLNodeFromPath', 'XMLNodePath', + 'XMLNodeType', 'XMLStatus', 'Year', 'ZoomSprite3D' + ), + 3 => array( + // some ASM instructions + 'AAA', 'AAD', 'AAM', 'AAS', 'ADC', 'ADD', 'AND', 'ARPL', 'BOUND', 'BSF', 'BSR', 'BSWAP', 'BT', 'BTC', 'BTR', + 'BTS', 'CALL', 'CBW', 'CDQ', 'CLC', 'CLD', 'CLI', 'CLTS', 'CMC', 'CMP', 'CMPS', 'CMPXCHG', 'CWD', 'CWDE', + 'DAA', 'DAS', 'DB', 'DD', 'DEC', 'DIV', 'DW', 'ENTER', 'ESC', 'F2XM1', 'FABS', 'FADD', 'FCHS', 'FCLEX', + 'FCOM', 'FDIV', 'FDIVR', 'FFREE', 'FINCSTP', 'FINIT', 'FLD', 'FLD1', 'FLDCW', 'FMUL', 'FNOP', 'FPATAN', + 'FPREM', 'FRNDINT', 'FSAVE', 'FSCALE', 'FSETPM', 'FSIN', 'FSQRT', 'FST', 'FSTENV', 'FSTSW', 'FSUB', + 'FSUBR', 'FTST', 'FUCOM', 'FWAIT', 'FXAM', 'FXCH', 'FXTRACT', 'FYL2X', 'FYL2XP1', 'HLT', 'IDIV', 'IMUL', + 'IN', 'INC', 'INS', 'INT', 'INTO', 'INVLPG', 'IRET', 'IRETD', 'JA', 'JAE', 'JB', 'JBE', 'JC', 'JCXZ', 'JE', 'JECXZ', + 'JG', 'JGE', 'JL', 'JLE', 'JMP', 'JNA', 'JNAE', 'JNB', 'JNBE', 'JNC', 'JNE', 'JNG', 'JNGE', 'JNL', 'JNLE', 'JNO', 'JNP', + 'JNS', 'JNZ', 'JO', 'JP', 'JPE', 'JPO', 'JS', 'JZ', 'LAHF', 'LAR', 'LDS', 'LEA', 'LEAVE', 'LES', 'LFS', 'LGDT', 'LGS', + 'LIDT', 'LLDT', 'LMSW', 'LOCK', 'LODS', 'LOOP', 'LOOPE', 'LOOPNE', 'LOOPNZ', 'LOOPZ', 'LSL', 'LSS', 'LTR', + 'MOV', 'MOVS', 'MOVSX', 'MOVZX', 'MUL', 'NEG', 'NOP', 'NOT', 'OR', 'OUT', 'OUTS', 'POP', 'POPA', 'POPAD', + 'POPF', 'POPFD', 'PUSH', 'PUSHA', 'PUSHAD', 'PUSHF', 'PUSHFD', 'RCL', 'RCR', 'REP', 'REPE', 'REPNE', + 'REPNZ', 'REPZ', 'RET', 'RETF', 'ROL', 'ROR', 'SAHF', 'SAL', 'SAR', 'SBB', 'SCAS', 'SETAE', 'SETB', 'SETBE', + 'SETC', 'SETE', 'SETG', 'SETGE', 'SETL', 'SETLE', 'SETNA', 'SETNAE', 'SETNB', 'SETNC', 'SETNE', 'SETNG', + 'SETNGE', 'SETNL', 'SETNLE', 'SETNO', 'SETNP', 'SETNS', 'SETNZ', 'SETO', 'SETP', 'SETPE', 'SETPO', + 'SETS', 'SETZ', 'SGDT', 'SHL', 'SHLD', 'SHR', 'SHRD', 'SIDT', 'SLDT', 'SMSW', 'STC', 'STD', 'STI', + 'STOS', 'STR', 'SUB', 'TEST', 'VERR', 'VERW', 'WAIT', 'WBINVD', 'XCHG', 'XLAT', 'XLATB', 'XOR' + ) + ), + 'SYMBOLS' => array( + '(', ')', '+', '-', '*', '/', '\\', '>', '<', '=', '<=', '>=', '&', '|', '!', '~', '<>', '>>', '<<', '%' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000066; font-weight: bold;', + 2 => 'color: #0000ff;', + 3 => 'color: #000fff;' + ), + 'COMMENTS' => array( + 1 => 'color: #ff0000; font-style: italic;', + 'MULTI' => 'color: #ff0000; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000066;' + ), + 'STRINGS' => array( + 0 => 'color: #009900;' + ), + 'NUMBERS' => array( + 0 => 'color: #CC0000;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000066;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '\\' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => false, + 1 => false + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/python.php b/inc/geshi/python.php index 6f378f434..a482d6928 100644 --- a/inc/geshi/python.php +++ b/inc/geshi/python.php @@ -4,7 +4,7 @@ * ---------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/30 * * Python language file for GeSHi. diff --git a/inc/geshi/qbasic.php b/inc/geshi/qbasic.php index e3b5df8a1..c83cb188e 100644 --- a/inc/geshi/qbasic.php +++ b/inc/geshi/qbasic.php @@ -4,7 +4,7 @@ * ---------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/20 * * QBasic/QuickBASIC language file for GeSHi. @@ -55,7 +55,9 @@ $language_data = array ( 'COMMENT_MULTI' => array(), 'COMMENT_REGEXP' => array( //Single-Line Comments using REM command - 2 => "/\bREM.*?$/i" + 2 => "/\bREM.*?$/i", + //Line numbers + 3 => "/^\s*\d+/im" ), 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, 'QUOTEMARKS' => array('"'), @@ -93,7 +95,7 @@ $language_data = array ( ) ), 'SYMBOLS' => array( - '(', ')', ',', '+', '-', '*', '/', '=', '<', '>' + '(', ')', ',', '+', '-', '*', '/', '=', '<', '>', '^' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, @@ -107,7 +109,8 @@ $language_data = array ( ), 'COMMENTS' => array( 1 => 'color: #808080;', - 2 => 'color: #808080;' + 2 => 'color: #808080;', + 3 => 'color: #8080C0;' ), 'BRACKETS' => array( 0 => 'color: #66cc66;' @@ -129,6 +132,8 @@ $language_data = array ( 'SCRIPT' => array( ), 'REGEXPS' => array( + 1 => 'color: #cc66cc;', + 2 => 'color: #339933;' ) ), 'URLS' => array( @@ -139,6 +144,8 @@ $language_data = array ( 'OBJECT_SPLITTERS' => array( ), 'REGEXPS' => array( + 1 => '&(?:H[0-9a-fA-F]+|O[0-7]+)(?!\w)', + 2 => '#[0-9]+(?!\w)' ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( @@ -148,4 +155,4 @@ $language_data = array ( 'TAB_WIDTH' => 8 ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/rails.php b/inc/geshi/rails.php index cc6e079b0..777fdd814 100644 --- a/inc/geshi/rails.php +++ b/inc/geshi/rails.php @@ -4,7 +4,7 @@ * --------- * Author: Moises Deniz * Copyright: (c) 2005 Moises Deniz - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/03/21 * * Ruby (with Ruby on Rails Framework) language file for GeSHi. diff --git a/inc/geshi/rebol.php b/inc/geshi/rebol.php index 97eff1f32..1a2e95824 100644 --- a/inc/geshi/rebol.php +++ b/inc/geshi/rebol.php @@ -4,7 +4,7 @@ * -------- * Author: Lecanu Guillaume (Guillaume@LyA.fr) * Copyright: (c) 2004-2005 Lecanu Guillaume (Guillaume@LyA.fr) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/12/22 * * Rebol language file for GeSHi. diff --git a/inc/geshi/reg.php b/inc/geshi/reg.php index 59199f743..d70189cc9 100644 --- a/inc/geshi/reg.php +++ b/inc/geshi/reg.php @@ -4,7 +4,7 @@ * ------- * Author: Sean Hanna (smokingrope@gmail.com) * Copyright: (c) 2006 Sean Hanna - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 03/15/2006 * * Microsoft Registry Editor language file for GeSHi. diff --git a/inc/geshi/robots.php b/inc/geshi/robots.php index af5fe1426..82ff18f4f 100644 --- a/inc/geshi/robots.php +++ b/inc/geshi/robots.php @@ -4,7 +4,7 @@ * -------- * Author: Christian Lescuyer (cl@goelette.net) * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/02/17 * * robots.txt language file for GeSHi. @@ -36,12 +36,14 @@ $language_data = array ( 'LANG_NAME' => 'robots.txt', 'COMMENT_SINGLE' => array(1 => '#'), 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array(1 => "/^Comment:.*?/m"), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array(), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( - 'User-agent', 'Disallow' + 'Allow', 'Crawl-delay', 'Disallow', 'Request-rate', 'Robot-version', + 'Sitemap', 'User-agent', 'Visit-time' ) ), 'SYMBOLS' => array( @@ -95,4 +97,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/rsplus.php b/inc/geshi/rsplus.php new file mode 100644 index 000000000..10fa5a89e --- /dev/null +++ b/inc/geshi/rsplus.php @@ -0,0 +1,483 @@ + 'R / S+', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', "'"), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'else','global','in', 'otherwise','persistent', + ), + 2 => array( // base package + '$.package_version', '$<-', '$<-.data.frame', 'abbreviate', 'abs', 'acos', 'acosh', 'addNA', 'addTaskCallback', + 'agrep', 'alist', 'all', 'all.equal', 'all.equal.character', 'all.equal.default', 'all.equal.factor', + 'all.equal.formula', 'all.equal.language', 'all.equal.list', 'all.equal.numeric', 'all.equal.POSIXct', + 'all.equal.raw', 'all.names', 'all.vars', 'any', 'aperm', 'append', 'apply', 'Arg', 'args', 'array', 'as.array', + 'as.array.default', 'as.call', 'as.character', 'as.character.condition', 'as.character.Date', 'as.character.default', + 'as.character.error', 'as.character.factor', 'as.character.hexmode', 'as.character.numeric_version', 'as.character.octmode', + 'as.character.POSIXt', 'as.character.srcref', 'as.complex', 'as.data.frame', 'as.data.frame.array', 'as.data.frame.AsIs', + 'as.data.frame.character', 'as.data.frame.complex', 'as.data.frame.data.frame', 'as.data.frame.Date', 'as.data.frame.default', + 'as.data.frame.difftime', 'as.data.frame.factor', 'as.data.frame.integer', 'as.data.frame.list', 'as.data.frame.logical', + 'as.data.frame.matrix', 'as.data.frame.model.matrix', 'as.data.frame.numeric', 'as.data.frame.numeric_version', + 'as.data.frame.ordered', 'as.data.frame.POSIXct', 'as.data.frame.POSIXlt', 'as.data.frame.raw', 'as.data.frame.table', + 'as.data.frame.ts', 'as.data.frame.vector', 'as.Date', 'as.Date.character', 'as.Date.date', 'as.Date.dates', + 'as.Date.default', 'as.Date.factor', 'as.Date.numeric', 'as.Date.POSIXct', 'as.Date.POSIXlt', 'as.difftime', 'as.double', + 'as.double.difftime', 'as.double.POSIXlt', 'as.environment', 'as.expression', 'as.expression.default', 'as.factor', + 'as.function', 'as.function.default', 'as.hexmode', 'as.integer', 'as.list', 'as.list.data.frame', 'as.list.default', + 'as.list.environment', 'as.list.factor', 'as.list.function', 'as.list.numeric_version', 'as.logical', 'as.matrix', + 'as.matrix.data.frame', 'as.matrix.default', 'as.matrix.noquote', 'as.matrix.POSIXlt', 'as.name', 'as.null', 'as.null.default', + 'as.numeric', 'as.numeric_version', 'as.octmode', 'as.ordered', 'as.package_version', 'as.pairlist', 'as.POSIXct', + 'as.POSIXct.date', 'as.POSIXct.Date', 'as.POSIXct.dates', 'as.POSIXct.default', 'as.POSIXct.numeric', 'as.POSIXct.POSIXlt', + 'as.POSIXlt', 'as.POSIXlt.character', 'as.POSIXlt.date', 'as.POSIXlt.Date', 'as.POSIXlt.dates', 'as.POSIXlt.default', + 'as.POSIXlt.factor', 'as.POSIXlt.numeric', 'as.POSIXlt.POSIXct', 'as.qr', 'as.raw', 'as.real', 'as.single', + 'as.single.default', 'as.symbol', 'as.table', 'as.table.default', 'as.vector', 'as.vector.factor', 'asin', 'asinh', + 'asNamespace', 'asS4', 'assign', 'atan', 'atan2', 'atanh', 'attach', 'attachNamespace', 'attr', 'attr.all.equal', + 'attr<-', 'attributes', 'attributes<-', 'autoload', 'autoloader', 'backsolve', 'baseenv', 'basename', 'besselI', + 'besselJ', 'besselK', 'besselY', 'beta', 'bindingIsActive', 'bindingIsLocked', 'bindtextdomain', 'body', 'body<-', + 'bquote', 'break', 'browser', 'builtins', 'by', 'by.data.frame', 'by.default', 'bzfile', 'c', 'c.Date', 'c.noquote', + 'c.numeric_version', 'c.POSIXct', 'c.POSIXlt', 'call', 'callCC', 'capabilities', 'casefold', 'cat', 'category', + 'cbind', 'cbind.data.frame', 'ceiling', 'char.expand', 'character', 'charmatch', 'charToRaw', 'chartr', 'check_tzones', + 'chol', 'chol.default', 'chol2inv', 'choose', 'class', 'class<-', 'close', 'close.connection', 'close.srcfile', + 'closeAllConnections', 'codes', 'codes.factor', 'codes.ordered', 'codes<-', 'col', 'colMeans', 'colnames', + 'colnames<-', 'colSums', 'commandArgs', 'comment', 'comment<-', 'complex', 'computeRestarts', 'conditionCall', + 'conditionCall.condition', 'conditionMessage', 'conditionMessage.condition', 'conflicts', 'Conj', 'contributors', + 'cos', 'cosh', 'crossprod', 'Cstack_info', 'cummax', 'cummin', 'cumprod', 'cumsum', 'cut', 'cut.Date', 'cut.default', + 'cut.POSIXt', 'data.class', 'data.frame', 'data.matrix', 'date', 'debug', 'default.stringsAsFactors', 'delay', + 'delayedAssign', 'deparse', 'det', 'detach', 'determinant', 'determinant.matrix', 'dget', 'diag', 'diag<-', 'diff', + 'diff.Date', 'diff.default', 'diff.POSIXt', 'difftime', 'digamma', 'dim', 'dim.data.frame', 'dim<-', 'dimnames', + 'dimnames.data.frame', 'dimnames<-', 'dimnames<-.data.frame', 'dir', 'dir.create', 'dirname', 'do.call', 'double', + 'dput', 'dQuote', 'drop', 'dump', 'duplicated', 'duplicated.array', 'duplicated.data.frame', 'duplicated.default', + 'duplicated.matrix', 'duplicated.numeric_version', 'duplicated.POSIXlt', 'dyn.load', 'dyn.unload', 'eapply', 'eigen', + 'emptyenv', 'encodeString', 'Encoding', 'Encoding<-', 'env.profile', 'environment', 'environment<-', 'environmentIsLocked', + 'environmentName', 'eval', 'eval.parent', 'evalq', 'exists', 'exp', 'expand.grid', 'expm1', 'expression', 'F', 'factor', + 'factorial', 'fifo', 'file', 'file.access', 'file.append', 'file.choose', 'file.copy', 'file.create', 'file.exists', + 'file.info', 'file.path', 'file.remove', 'file.rename', 'file.show', 'file.symlink', 'Filter', 'Find', 'findInterval', + 'findPackageEnv', 'findRestart', 'floor', 'flush', 'flush.connection', 'for', 'force', 'formals', 'formals<-', + 'format', 'format.AsIs', 'format.char', 'format.data.frame', 'format.Date', 'format.default', 'format.difftime', + 'format.factor', 'format.hexmode', 'format.info', 'format.octmode', 'format.POSIXct', 'format.POSIXlt', + 'format.pval', 'formatC', 'formatDL', 'forwardsolve', 'function', 'gamma', 'gammaCody', 'gc', 'gc.time', + 'gcinfo', 'gctorture', 'get', 'getAllConnections', 'getCallingDLL', 'getCallingDLLe', 'getCConverterDescriptions', + 'getCConverterStatus', 'getConnection', 'getDLLRegisteredRoutines', 'getDLLRegisteredRoutines.character', + 'getDLLRegisteredRoutines.DLLInfo', 'getenv', 'geterrmessage', 'getExportedValue', 'getHook', 'getLoadedDLLs', + 'getNamespace', 'getNamespaceExports', 'getNamespaceImports', 'getNamespaceInfo', 'getNamespaceName', + 'getNamespaceUsers', 'getNamespaceVersion', 'getNativeSymbolInfo', 'getNumCConverters', 'getOption', 'getRversion', + 'getSrcLines', 'getTaskCallbackNames', 'gettext', 'gettextf', 'getwd', 'gl', 'globalenv', 'gregexpr', 'grep', + 'grepl', 'gsub', 'gzcon', 'gzfile', 'httpclient', 'I', 'iconv', 'iconvlist', 'icuSetCollate', 'identical', 'identity', + 'if', 'ifelse', 'Im', 'importIntoEnv', 'inherits', 'integer', 'interaction', 'interactive', 'intersect', 'intToBits', + 'intToUtf8', 'inverse.rle', 'invisible', 'invokeRestart', 'invokeRestartInteractively', 'is.array', 'is.atomic', + 'is.call', 'is.character', 'is.complex', 'is.data.frame', 'is.double', 'is.element', 'is.environment', + 'is.expression', 'is.factor', 'is.finite', 'is.function', 'is.infinite', 'is.integer', 'is.language', + 'is.list', 'is.loaded', 'is.logical', 'is.matrix', 'is.na', 'is.na.data.frame', 'is.na.POSIXlt', 'is.na<-', + 'is.na<-.default', 'is.na<-.factor', 'is.name', 'is.nan', 'is.null', 'is.numeric', 'is.numeric_version', + 'is.numeric.Date', 'is.numeric.POSIXt', 'is.object', 'is.ordered', 'is.package_version', 'is.pairlist', 'is.primitive', + 'is.qr', 'is.R', 'is.raw', 'is.real', 'is.recursive', 'is.single', 'is.symbol', 'is.table', 'is.unsorted', 'is.vector', + 'isBaseNamespace', 'isdebugged', 'isIncomplete', 'isNamespace', 'ISOdate', 'ISOdatetime', 'isOpen', 'isRestart', 'isS4', + 'isSeekable', 'isSymmetric', 'isSymmetric.matrix', 'isTRUE', 'jitter', 'julian', 'julian.Date', 'julian.POSIXt', 'kappa', + 'kappa.default', 'kappa.lm', 'kappa.qr', 'kappa.tri', 'kronecker', 'l10n_info', 'La.chol', 'La.chol2inv', 'La.eigen', + 'La.svd', 'labels', 'labels.default', 'lapply', 'lazyLoad', 'lazyLoadDBfetch', 'lbeta', 'lchoose', 'length', 'length<-', + 'length<-.factor', 'letters', 'LETTERS', 'levels', 'levels.default', 'levels<-', 'levels<-.factor', 'lfactorial', 'lgamma', + 'library', 'library.dynam', 'library.dynam.unload', 'licence', 'license', 'list', 'list.files', 'load', 'loadedNamespaces', + 'loadingNamespaceInfo', 'loadNamespace', 'loadURL', 'local', 'lockBinding', 'lockEnvironment', 'log', 'log10', 'log1p', 'log2', + 'logb', 'logical', 'lower.tri', 'ls', 'machine', 'Machine', 'make.names', 'make.unique', 'makeActiveBinding', 'manglePackageName', + 'Map', 'mapply', 'margin.table', 'mat.or.vec', 'match', 'match.arg', 'match.call', 'match.fun', 'Math.data.frame', 'Math.Date', + 'Math.difftime', 'Math.factor', 'Math.POSIXt', 'matrix', 'max', 'max.col', 'mean', 'mean.data.frame', 'mean.Date', 'mean.default', + 'mean.difftime', 'mean.POSIXct', 'mean.POSIXlt', 'mem.limits', 'memory.profile', 'merge', 'merge.data.frame', 'merge.default', + 'message', 'mget', 'min', 'missing', 'Mod', 'mode', 'mode<-', 'month.abb', 'month.name', 'months', 'months.Date', + 'months.POSIXt', 'mostattributes<-', 'names', 'names<-', 'namespaceExport', 'namespaceImport', 'namespaceImportClasses', + 'namespaceImportFrom', 'namespaceImportMethods', 'nargs', 'nchar', 'ncol', 'NCOL', 'Negate', 'new.env', 'next', 'NextMethod', + 'ngettext', 'nlevels', 'noquote', 'nrow', 'NROW', 'numeric', 'numeric_version', 'nzchar', 'objects', 'oldClass', + 'oldClass<-', 'on.exit', 'open', 'open.connection', 'open.srcfile', 'open.srcfilecopy', 'Ops.data.frame', 'Ops.Date', + 'Ops.difftime', 'Ops.factor', 'Ops.numeric_version', 'Ops.ordered', 'Ops.POSIXt', 'options', 'order', 'ordered', + 'outer', 'package_version', 'package.description', 'packageEvent', 'packageHasNamespace', 'packageStartupMessage', + 'packBits', 'pairlist', 'parent.env', 'parent.env<-', 'parent.frame', 'parse', 'parse.dcf', 'parseNamespaceFile', + 'paste', 'path.expand', 'pentagamma', 'pi', 'pipe', 'Platform', 'pmatch', 'pmax', 'pmax.int', 'pmin', 'pmin.int', + 'polyroot', 'pos.to.env', 'Position', 'pretty', 'prettyNum', 'print', 'print.AsIs', 'print.atomic', 'print.by', + 'print.condition', 'print.connection', 'print.data.frame', 'print.Date', 'print.default', 'print.difftime', + 'print.DLLInfo', 'print.DLLInfoList', 'print.DLLRegisteredRoutines', 'print.factor', 'print.hexmode', 'print.libraryIQR', + 'print.listof', 'print.NativeRoutineList', 'print.noquote', 'print.numeric_version', 'print.octmode', 'print.packageInfo', + 'print.POSIXct', 'print.POSIXlt', 'print.proc_time', 'print.restart', 'print.rle', 'print.simple.list', + 'print.srcfile', 'print.srcref', 'print.summary.table', 'print.table', 'print.warnings', 'printNoClass', + 'prmatrix', 'proc.time', 'prod', 'prop.table', 'provide', 'psigamma', 'pushBack', 'pushBackLength', 'q', 'qr', + 'qr.coef', 'qr.default', 'qr.fitted', 'qr.Q', 'qr.qty', 'qr.qy', 'qr.R', 'qr.resid', 'qr.solve', 'qr.X', 'quarters', + 'quarters.Date', 'quarters.POSIXt', 'quit', 'quote', 'R_system_version', 'R.home', 'R.version', 'R.Version', + 'R.version.string', 'range', 'range.default', 'rank', 'rapply', 'raw', 'rawConnection', 'rawConnectionValue', + 'rawShift', 'rawToBits', 'rawToChar', 'rbind', 'rbind.data.frame', 'rcond', 'Re', 'read.dcf', 'read.table.url', + 'readBin', 'readChar', 'readline', 'readLines', 'real', 'Recall', 'Reduce', 'reg.finalizer', 'regexpr', + 'registerS3method', 'registerS3methods', 'remove', 'removeCConverter', 'removeTaskCallback', 'rep', 'rep.Date', + 'rep.factor', 'rep.int', 'rep.numeric_version', 'rep.POSIXct', 'rep.POSIXlt', 'repeat', 'replace', 'replicate', + 'require', 'restart', 'restartDescription', 'restartFormals', 'retracemem', 'return', 'rev', 'rev.default', 'rle', + 'rm', 'RNGkind', 'RNGversion', 'round', 'round.Date', 'round.difftime', 'round.POSIXt', 'row', 'row.names', + 'row.names.data.frame', 'row.names.default', 'row.names<-', 'row.names<-.data.frame', 'row.names<-.default', + 'rowMeans', 'rownames', 'rownames<-', 'rowsum', 'rowsum.data.frame', 'rowsum.default', 'rowSums', 'sample', + 'sample.int', 'sapply', 'save', 'save.image', 'saveNamespaceImage', 'scale', 'scale.default', 'scan', 'scan.url', + 'search', 'searchpaths', 'seek', 'seek.connection', 'seq', 'seq_along', 'seq_len', 'seq.Date', 'seq.default', + 'seq.int', 'seq.POSIXt', 'sequence', 'serialize', 'set.seed', 'setCConverterStatus', 'setdiff', 'setequal', + 'setHook', 'setNamespaceInfo', 'setSessionTimeLimit', 'setTimeLimit', 'setwd', 'showConnections', 'shQuote', + 'sign', 'signalCondition', 'signif', 'simpleCondition', 'simpleError', 'simpleMessage', 'simpleWarning', 'sin', + 'single', 'sinh', 'sink', 'sink.number', 'slice.index', 'socketConnection', 'socketSelect', 'solve', 'solve.default', + 'solve.qr', 'sort', 'sort.default', 'sort.int', 'sort.list', 'sort.POSIXlt', 'source', 'source.url', 'split', + 'split.data.frame', 'split.Date', 'split.default', 'split.POSIXct', 'split<-', 'split<-.data.frame', 'split<-.default', + 'sprintf', 'sqrt', 'sQuote', 'srcfile', 'srcfilecopy', 'srcref', 'standardGeneric', 'stderr', 'stdin', 'stdout', + 'stop', 'stopifnot', 'storage.mode', 'storage.mode<-', 'strftime', 'strptime', 'strsplit', 'strtrim', 'structure', + 'strwrap', 'sub', 'subset', 'subset.data.frame', 'subset.default', 'subset.matrix', 'substitute', 'substr', + 'substr<-', 'substring', 'substring<-', 'sum', 'summary', 'summary.connection', 'summary.data.frame', + 'Summary.data.frame', 'summary.Date', 'Summary.Date', 'summary.default', 'Summary.difftime', + 'summary.factor', 'Summary.factor', 'summary.matrix', 'Summary.numeric_version', 'summary.POSIXct', + 'Summary.POSIXct', 'summary.POSIXlt', 'Summary.POSIXlt', 'summary.table', 'suppressMessages', + 'suppressPackageStartupMessages', 'suppressWarnings', 'svd', 'sweep', 'switch', 'symbol.C', + 'symbol.For', 'sys.call', 'sys.calls', 'Sys.chmod', 'Sys.Date', 'sys.frame', 'sys.frames', + 'sys.function', 'Sys.getenv', 'Sys.getlocale', 'Sys.getpid', 'Sys.glob', 'Sys.info', 'sys.load.image', + 'Sys.localeconv', 'sys.nframe', 'sys.on.exit', 'sys.parent', 'sys.parents', 'Sys.putenv', + 'sys.save.image', 'Sys.setenv', 'Sys.setlocale', 'Sys.sleep', 'sys.source', 'sys.status', + 'Sys.time', 'Sys.timezone', 'Sys.umask', 'Sys.unsetenv', 'Sys.which', 'system', 'system.file', + 'system.time', 't', 'T', 't.data.frame', 't.default', 'table', 'tabulate', 'tan', 'tanh', 'tapply', + 'taskCallbackManager', 'tcrossprod', 'tempdir', 'tempfile', 'testPlatformEquivalence', 'tetragamma', + 'textConnection', 'textConnectionValue', 'tolower', 'topenv', 'toString', 'toString.default', 'toupper', + 'trace', 'traceback', 'tracemem', 'tracingState', 'transform', 'transform.data.frame', 'transform.default', + 'trigamma', 'trunc', 'trunc.Date', 'trunc.POSIXt', 'truncate', 'truncate.connection', 'try', 'tryCatch', + 'typeof', 'unclass', 'undebug', 'union', 'unique', 'unique.array', 'unique.data.frame', 'unique.default', + 'unique.matrix', 'unique.numeric_version', 'unique.POSIXlt', 'units', 'units.difftime', 'units<-', + 'units<-.difftime', 'unix', 'unix.time', 'unlink', 'unlist', 'unloadNamespace', 'unlockBinding', + 'unname', 'unserialize', 'unsplit', 'untrace', 'untracemem', 'unz', 'upper.tri', 'url', 'UseMethod', + 'utf8ToInt', 'vector', 'Vectorize', 'version', 'Version', 'warning', 'warnings', 'weekdays', + 'weekdays.Date', 'weekdays.POSIXt', 'which', 'which.max', 'which.min', 'while', 'with', + 'with.default', 'withCallingHandlers', 'within', 'within.data.frame', 'within.list', 'withRestarts', + 'withVisible', 'write', 'write.dcf', 'write.table0', 'writeBin', 'writeChar', 'writeLines', 'xor', + 'xpdrows.data.frame', 'xtfrm', 'xtfrm.Date', 'xtfrm.default', 'xtfrm.factor', 'xtfrm.numeric_version', + 'xtfrm.POSIXct', 'xtfrm.POSIXlt', 'xtfrm.Surv', 'zapsmall', + ), + 3 => array( // Datasets + 'ability.cov', 'airmiles', 'AirPassengers', 'airquality', + 'anscombe', 'attenu', 'attitude', 'austres', 'beaver1', + 'beaver2', 'BJsales', 'BJsales.lead', 'BOD', 'cars', + 'ChickWeight', 'chickwts', 'co2', 'crimtab', + 'discoveries', 'DNase', 'esoph', 'euro', 'euro.cross', + 'eurodist', 'EuStockMarkets', 'faithful', 'fdeaths', + 'Formaldehyde', 'freeny', 'freeny.x', 'freeny.y', + 'HairEyeColor', 'Harman23.cor', 'Harman74.cor', 'Indometh', + 'infert', 'InsectSprays', 'iris', 'iris3', 'islands', + 'JohnsonJohnson', 'LakeHuron', 'ldeaths', 'lh', 'LifeCycleSavings', + 'Loblolly', 'longley', 'lynx', 'mdeaths', 'morley', 'mtcars', + 'nhtemp', 'Nile', 'nottem', 'occupationalStatus', 'Orange', + 'OrchardSprays', 'PlantGrowth', 'precip', 'presidents', + 'pressure', 'Puromycin', 'quakes', 'randu', 'rivers', 'rock', + 'Seatbelts', 'sleep', 'stack.loss', 'stack.x', 'stackloss', + 'state.abb', 'state.area', 'state.center', 'state.division', + 'state.name', 'state.region', 'state.x77', 'sunspot.month', + 'sunspot.year', 'sunspots', 'swiss', 'Theoph', 'Titanic', 'ToothGrowth', + 'treering', 'trees', 'UCBAdmissions', 'UKDriverDeaths', 'UKgas', + 'USAccDeaths', 'USArrests', 'USJudgeRatings', 'USPersonalExpenditure', + 'uspop', 'VADeaths', 'volcano', 'warpbreaks', 'women', 'WorldPhones', + 'WWWusage', + ), + 4 => array( // graphics package + 'abline', 'arrows', 'assocplot', 'axis', 'Axis', 'axis.Date', 'axis.POSIXct', + 'axTicks', 'barplot', 'barplot.default', 'box', 'boxplot', 'boxplot.default', + 'boxplot.matrix', 'bxp', 'cdplot', 'clip', 'close.screen', 'co.intervals', + 'contour', 'contour.default', 'coplot', 'curve', 'dotchart', 'erase.screen', + 'filled.contour', 'fourfoldplot', 'frame', 'grconvertX', 'grconvertY', 'grid', + 'hist', 'hist.default', 'identify', 'image', 'image.default', 'layout', + 'layout.show', 'lcm', 'legend', 'lines', 'lines.default', 'locator', 'matlines', + 'matplot', 'matpoints', 'mosaicplot', 'mtext', 'pairs', 'pairs.default', + 'panel.smooth', 'par', 'persp', 'pie', 'piechart', 'plot', 'plot.default', + 'plot.design', 'plot.new', 'plot.window', 'plot.xy', 'points', 'points.default', + 'polygon', 'rect', 'rug', 'screen', 'segments', 'smoothScatter', 'spineplot', + 'split.screen', 'stars', 'stem', 'strheight', 'stripchart', 'strwidth', 'sunflowerplot', + 'symbols', 'text', 'text.default', 'title', 'xinch', 'xspline', 'xyinch', 'yinch', + ), + 5 => array( // grDevices pkg + 'as.graphicsAnnot', 'bitmap', 'blues9', 'bmp', 'boxplot.stats', 'cairo_pdf', 'cairo_ps', 'check.options', + 'chull', 'CIDFont', 'cm', 'cm.colors', 'col2rgb', 'colorConverter', 'colorRamp', 'colorRampPalette', + 'colors', 'colorspaces', 'colours', 'contourLines', 'convertColor', 'densCols', 'dev.control', 'dev.copy', + 'dev.copy2eps', 'dev.copy2pdf', 'dev.cur', 'dev.interactive', 'dev.list', 'dev.new', 'dev.next', 'dev.off', + 'dev.prev', 'dev.print', 'dev.set', 'dev.size', 'dev2bitmap', 'devAskNewPage', 'deviceIsInteractive', + 'embedFonts', 'extendrange', 'getGraphicsEvent', 'graphics.off', 'gray', 'gray.colors', 'grey', 'grey.colors', + 'hcl', 'heat.colors', 'Hershey', 'hsv', 'jpeg', 'make.rgb', 'n2mfrow', 'nclass.FD', 'nclass.scott', + 'nclass.Sturges', 'palette', 'pdf', 'pdf.options', 'pdfFonts', 'pictex', 'png', 'postscript', 'postscriptFont', + 'postscriptFonts', 'ps.options', 'quartz', 'quartz.options', 'quartzFont', 'quartzFonts', 'rainbow', + 'recordGraphics', 'recordPlot', 'replayPlot', 'rgb', 'rgb2hsv', 'savePlot', 'setEPS', 'setPS', 'svg', + 'terrain.colors', 'tiff', 'topo.colors', 'trans3d', 'Type1Font', 'x11', 'X11', 'X11.options', 'X11Font', + 'X11Fonts', 'xfig', 'xy.coords', 'xyTable', 'xyz.coords', + ), + 6 => array( // methods package + 'addNextMethod', 'allGenerics', 'allNames', 'Arith', 'as', 'as<-', + 'asMethodDefinition', 'assignClassDef', 'assignMethodsMetaData', 'balanceMethodsList', + 'cacheGenericsMetaData', 'cacheMetaData', 'cacheMethod', 'callGeneric', + 'callNextMethod', 'canCoerce', 'cbind2', 'checkSlotAssignment', 'classesToAM', + 'classMetaName', 'coerce', 'coerce<-', 'Compare', 'completeClassDefinition', + 'completeExtends', 'completeSubclasses', 'Complex', 'conformMethod', 'defaultDumpName', + 'defaultPrototype', 'doPrimitiveMethod', 'dumpMethod', 'dumpMethods', 'el', 'el<-', + 'elNamed', 'elNamed<-', 'empty.dump', 'emptyMethodsList', 'existsFunction', 'existsMethod', + 'extends', 'finalDefaultMethod', 'findClass', 'findFunction', 'findMethod', 'findMethods', + 'findMethodSignatures', 'findUnique', 'fixPre1.8', 'formalArgs', 'functionBody', + 'functionBody<-', 'generic.skeleton', 'getAccess', 'getAllMethods', 'getAllSuperClasses', + 'getClass', 'getClassDef', 'getClasses', 'getClassName', 'getClassPackage', 'getDataPart', + 'getExtends', 'getFunction', 'getGeneric', 'getGenerics', 'getGroup', 'getGroupMembers', + 'getMethod', 'getMethods', 'getMethodsForDispatch', 'getMethodsMetaData', 'getPackageName', + 'getProperties', 'getPrototype', 'getSlots', 'getSubclasses', 'getValidity', 'getVirtual', + 'hasArg', 'hasMethod', 'hasMethods', 'implicitGeneric', 'initialize', 'insertMethod', 'is', + 'isClass', 'isClassDef', 'isClassUnion', 'isGeneric', 'isGrammarSymbol', 'isGroup', + 'isSealedClass', 'isSealedMethod', 'isVirtualClass', 'isXS3Class', 'languageEl', 'languageEl<-', + 'linearizeMlist', 'listFromMethods', 'listFromMlist', 'loadMethod', 'Logic', + 'makeClassRepresentation', 'makeExtends', 'makeGeneric', 'makeMethodsList', + 'makePrototypeFromClassDef', 'makeStandardGeneric', 'matchSignature', 'Math', 'Math2', 'mergeMethods', + 'metaNameUndo', 'method.skeleton', 'MethodAddCoerce', 'methodSignatureMatrix', 'MethodsList', + 'MethodsListSelect', 'methodsPackageMetaName', 'missingArg', 'mlistMetaName', 'new', 'newBasic', + 'newClassRepresentation', 'newEmptyObject', 'Ops', 'packageSlot', 'packageSlot<-', 'possibleExtends', + 'prohibitGeneric', 'promptClass', 'promptMethods', 'prototype', 'Quote', 'rbind2', + 'reconcilePropertiesAndPrototype', 'registerImplicitGenerics', 'rematchDefinition', + 'removeClass', 'removeGeneric', 'removeMethod', 'removeMethods', 'removeMethodsObject', 'representation', + 'requireMethods', 'resetClass', 'resetGeneric', 'S3Class', 'S3Class<-', 'S3Part', 'S3Part<-', 'sealClass', + 'seemsS4Object', 'selectMethod', 'selectSuperClasses', 'sessionData', 'setAs', 'setClass', 'setClassUnion', + 'setDataPart', 'setGeneric', 'setGenericImplicit', 'setGroupGeneric', 'setIs', 'setMethod', 'setOldClass', + 'setPackageName', 'setPrimitiveMethods', 'setReplaceMethod', 'setValidity', 'show', 'showClass', 'showDefault', + 'showExtends', 'showMethods', 'showMlist', 'signature', 'SignatureMethod', 'sigToEnv', 'slot', 'slot<-', + 'slotNames', 'slotsFromS3', 'substituteDirect', 'substituteFunctionArgs', 'Summary', 'superClassDepth', + 'testInheritedMethods', 'testVirtual', 'traceOff', 'traceOn', 'tryNew', 'trySilent', 'unRematchDefinition', + 'validObject', 'validSlotNames', + ), + 7 => array( // stats pkg + 'acf', 'acf2AR', 'add.scope', 'add1', 'addmargins', 'aggregate', + 'aggregate.data.frame', 'aggregate.default', 'aggregate.ts', 'AIC', + 'alias', 'anova', 'anova.glm', 'anova.glmlist', 'anova.lm', 'anova.lmlist', + 'anova.mlm', 'anovalist.lm', 'ansari.test', 'aov', 'approx', 'approxfun', + 'ar', 'ar.burg', 'ar.mle', 'ar.ols', 'ar.yw', 'arima', 'arima.sim', + 'arima0', 'arima0.diag', 'ARMAacf', 'ARMAtoMA', 'as.dendrogram', 'as.dist', + 'as.formula', 'as.hclust', 'as.stepfun', 'as.ts', 'asOneSidedFormula', 'ave', + 'bandwidth.kernel', 'bartlett.test', 'binom.test', 'binomial', 'biplot', + 'Box.test', 'bw.bcv', 'bw.nrd', 'bw.nrd0', 'bw.SJ', 'bw.ucv', 'C', 'cancor', + 'case.names', 'ccf', 'chisq.test', 'clearNames', 'cmdscale', 'coef', 'coefficients', + 'complete.cases', 'confint', 'confint.default', 'constrOptim', 'contr.helmert', + 'contr.poly', 'contr.SAS', 'contr.sum', 'contr.treatment', 'contrasts', 'contrasts<-', + 'convolve', 'cooks.distance', 'cophenetic', 'cor', 'cor.test', 'cov', 'cov.wt', + 'cov2cor', 'covratio', 'cpgram', 'cutree', 'cycle', 'D', 'dbeta', 'dbinom', 'dcauchy', + 'dchisq', 'decompose', 'delete.response', 'deltat', 'dendrapply', 'density', 'density.default', + 'deriv', 'deriv.default', 'deriv.formula', 'deriv3', 'deriv3.default', 'deriv3.formula', + 'deviance', 'dexp', 'df', 'df.kernel', 'df.residual', 'dfbeta', 'dfbetas', 'dffits', + 'dgamma', 'dgeom', 'dhyper', 'diff.ts', 'diffinv', 'dist', 'dlnorm', 'dlogis', + 'dmultinom', 'dnbinom', 'dnorm', 'dpois', 'drop.scope', 'drop.terms', 'drop1', + 'dsignrank', 'dt', 'dummy.coef', 'dunif', 'dweibull', 'dwilcox', 'ecdf', 'eff.aovlist', + 'effects', 'embed', 'end', 'estVar', 'expand.model.frame', 'extractAIC', 'factanal', + 'factor.scope', 'family', 'fft', 'filter', 'fisher.test', 'fitted', 'fitted.values', + 'fivenum', 'fligner.test', 'formula', 'frequency', 'friedman.test', 'ftable', 'Gamma', + 'gaussian', 'get_all_vars', 'getInitial', 'glm', 'glm.control', 'glm.fit', 'glm.fit.null', + 'hasTsp', 'hat', 'hatvalues', 'hatvalues.lm', 'hclust', 'heatmap', 'HoltWinters', 'influence', + 'influence.measures', 'integrate', 'interaction.plot', 'inverse.gaussian', 'IQR', + 'is.empty.model', 'is.leaf', 'is.mts', 'is.stepfun', 'is.ts', 'is.tskernel', 'isoreg', + 'KalmanForecast', 'KalmanLike', 'KalmanRun', 'KalmanSmooth', 'kernapply', 'kernel', 'kmeans', + 'knots', 'kruskal.test', 'ks.test', 'ksmooth', 'lag', 'lag.plot', 'line', 'lines.ts', 'lm', + 'lm.fit', 'lm.fit.null', 'lm.influence', 'lm.wfit', 'lm.wfit.null', 'loadings', 'loess', + 'loess.control', 'loess.smooth', 'logLik', 'loglin', 'lowess', 'ls.diag', 'ls.print', 'lsfit', + 'mad', 'mahalanobis', 'make.link', 'makeARIMA', 'makepredictcall', 'manova', 'mantelhaen.test', + 'mauchley.test', 'mauchly.test', 'mcnemar.test', 'median', 'median.default', 'medpolish', + 'model.extract', 'model.frame', 'model.frame.aovlist', 'model.frame.default', 'model.frame.glm', + 'model.frame.lm', 'model.matrix', 'model.matrix.default', 'model.matrix.lm', 'model.offset', + 'model.response', 'model.tables', 'model.weights', 'monthplot', 'mood.test', 'mvfft', 'na.action', + 'na.contiguous', 'na.exclude', 'na.fail', 'na.omit', 'na.pass', 'napredict', 'naprint', 'naresid', + 'nextn', 'nlm', 'nlminb', 'nls', 'nls.control', 'NLSstAsymptotic', 'NLSstClosestX', 'NLSstLfAsymptote', + 'NLSstRtAsymptote', 'numericDeriv', 'offset', 'oneway.test', 'optim', 'optimise', 'optimize', + 'order.dendrogram', 'p.adjust', 'p.adjust.methods', 'pacf', 'pairwise.prop.test', 'pairwise.t.test', + 'pairwise.table', 'pairwise.wilcox.test', 'pbeta', 'pbinom', 'pbirthday', 'pcauchy', 'pchisq', 'pexp', + 'pf', 'pgamma', 'pgeom', 'phyper', 'plclust', 'plnorm', 'plogis', 'plot.density', 'plot.ecdf', 'plot.lm', + 'plot.mlm', 'plot.spec', 'plot.spec.coherency', 'plot.spec.phase', 'plot.stepfun', 'plot.ts', 'plot.TukeyHSD', + 'pnbinom', 'pnorm', 'poisson', 'poisson.test', 'poly', 'polym', 'power', 'power.anova.test', 'power.prop.test', + 'power.t.test', 'PP.test', 'ppoints', 'ppois', 'ppr', 'prcomp', 'predict', 'predict.glm', 'predict.lm', + 'predict.mlm', 'predict.poly', 'preplot', 'princomp', 'print.anova', 'print.coefmat', 'print.density', + 'print.family', 'print.formula', 'print.ftable', 'print.glm', 'print.infl', 'print.integrate', 'print.lm', + 'print.logLik', 'print.terms', 'print.ts', 'printCoefmat', 'profile', 'proj', 'promax', 'prop.test', + 'prop.trend.test', 'psignrank', 'pt', 'ptukey', 'punif', 'pweibull', 'pwilcox', 'qbeta', 'qbinom', + 'qbirthday', 'qcauchy', 'qchisq', 'qexp', 'qf', 'qgamma', 'qgeom', 'qhyper', 'qlnorm', 'qlogis', + 'qnbinom', 'qnorm', 'qpois', 'qqline', 'qqnorm', 'qqnorm.default', 'qqplot', 'qsignrank', 'qt', + 'qtukey', 'quade.test', 'quantile', 'quantile.default', 'quasi', 'quasibinomial', 'quasipoisson', + 'qunif', 'qweibull', 'qwilcox', 'r2dtable', 'rbeta', 'rbinom', 'rcauchy', 'rchisq', 'read.ftable', + 'rect.hclust', 'reformulate', 'relevel', 'reorder', 'replications', 'reshape', 'reshapeLong', 'reshapeWide', + 'resid', 'residuals', 'residuals.default', 'residuals.glm', 'residuals.lm', 'rexp', 'rf', 'rgamma', 'rgeom', + 'rhyper', 'rlnorm', 'rlogis', 'rmultinom', 'rnbinom', 'rnorm', 'rpois', 'rsignrank', 'rstandard', 'rstandard.glm', + 'rstandard.lm', 'rstudent', 'rstudent.glm', 'rstudent.lm', 'rt', 'runif', 'runmed', 'rweibull', 'rwilcox', + 'scatter.smooth', 'screeplot', 'sd', 'se.contrast', 'selfStart', 'setNames', 'shapiro.test', 'simulate', + 'smooth', 'smooth.spline', 'smoothEnds', 'sortedXyData', 'spec.ar', 'spec.pgram', 'spec.taper', 'spectrum', + 'spline', 'splinefun', 'splinefunH', 'SSasymp', 'SSasympOff', 'SSasympOrig', 'SSbiexp', 'SSD', 'SSfol', + 'SSfpl', 'SSgompertz', 'SSlogis', 'SSmicmen', 'SSweibull', 'start', 'stat.anova', 'step', 'stepfun', 'stl', + 'StructTS', 'summary.aov', 'summary.aovlist', 'summary.glm', 'summary.infl', 'summary.lm', 'summary.manova', + 'summary.mlm', 'summary.stepfun', 'supsmu', 'symnum', 't.test', 'termplot', 'terms', 'terms.aovlist', + 'terms.default', 'terms.formula', 'terms.terms', 'time', 'toeplitz', 'ts', 'ts.intersect', 'ts.plot', + 'ts.union', 'tsdiag', 'tsp', 'tsp<-', 'tsSmooth', 'TukeyHSD', 'TukeyHSD.aov', 'uniroot', 'update', + 'update.default', 'update.formula', 'var', 'var.test', 'variable.names', 'varimax', 'vcov', 'weighted.mean', + 'weighted.residuals', 'weights', 'wilcox.test', 'window', 'window<-', 'write.ftable', 'xtabs', + ), + 8 => array( // utils pkg + 'alarm', 'apropos', 'argsAnywhere', 'as.person', 'as.personList', 'as.relistable', 'as.roman', + 'assignInNamespace', 'available.packages', 'browseEnv', 'browseURL', 'browseVignettes', 'bug.report', + 'capture.output', 'checkCRAN', 'chooseCRANmirror', 'citation', 'citEntry', 'citFooter', 'citHeader', + 'close.socket', 'combn', 'compareVersion', 'contrib.url', 'count.fields', 'CRAN.packages', 'data', + 'data.entry', 'dataentry', 'de', 'de.ncols', 'de.restore', 'de.setup', 'debugger', 'demo', 'download.file', + 'download.packages', 'dump.frames', 'edit', 'emacs', 'example', 'file_test', 'file.edit', 'find', 'fix', + 'fixInNamespace', 'flush.console', 'formatOL', 'formatUL', 'getAnywhere', 'getCRANmirrors', 'getFromNamespace', + 'getS3method', 'getTxtProgressBar', 'glob2rx', 'head', 'head.matrix', 'help', 'help.request', 'help.search', + 'help.start', 'history', 'index.search', 'install.packages', 'installed.packages', 'is.relistable', + 'limitedLabels', 'loadhistory', 'localeToCharset', 'ls.str', 'lsf.str', 'make.packages.html', 'make.socket', + 'makeRweaveLatexCodeRunner', 'memory.limit', 'memory.size', 'menu', 'methods', 'mirror2html', 'modifyList', + 'new.packages', 'normalizePath', 'nsl', 'object.size', 'old.packages', 'package.contents', 'package.skeleton', + 'packageDescription', 'packageStatus', 'page', 'person', 'personList', 'pico', 'prompt', 'promptData', + 'promptPackage', 'rc.getOption', 'rc.options', 'rc.settings', 'rc.status', 'read.csv', 'read.csv2', 'read.delim', + 'read.delim2', 'read.DIF', 'read.fortran', 'read.fwf', 'read.socket', 'read.table', 'readCitationFile', 'recover', + 'relist', 'remove.packages', 'Rprof', 'Rprofmem', 'RShowDoc', 'RSiteSearch', 'rtags', 'Rtangle', 'RtangleSetup', + 'RtangleWritedoc', 'RweaveChunkPrefix', 'RweaveEvalWithOpt', 'RweaveLatex', 'RweaveLatexFinish', 'RweaveLatexOptions', + 'RweaveLatexSetup', 'RweaveLatexWritedoc', 'RweaveTryStop', 'savehistory', 'select.list', 'sessionInfo', + 'setRepositories', 'setTxtProgressBar', 'stack', 'Stangle', 'str', 'strOptions', 'summaryRprof', 'Sweave', + 'SweaveHooks', 'SweaveSyntaxLatex', 'SweaveSyntaxNoweb', 'SweaveSyntConv', 'tail', 'tail.matrix', 'timestamp', + 'toBibtex', 'toLatex', 'txtProgressBar', 'type.convert', 'unstack', 'unzip', 'update.packages', 'update.packageStatus', + 'upgrade', 'url.show', 'URLdecode', 'URLencode', 'vi', 'View', 'vignette', 'write.csv', 'write.csv2', 'write.socket', + 'write.table', 'wsbrowser', 'xedit', 'xemacs', 'zip.file.extract', + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|','<-','->', + '^', '-', ':', '::', ':::', '!', '!=', '*', '?', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => true, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF; font-weight: bold;', + 2 => 'color: #0000FF; font-weight: bold;', + 3 => 'color: #CC9900; font-weight: bold;', + 4 => 'color: #0000FF; font-weight: bold;', + 5 => 'color: #0000FF; font-weight: bold;', + 6 => 'color: #0000FF; font-weight: bold;', + 7 => 'color: #0000FF; font-weight: bold;', + 8 => 'color: #0000FF; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #228B22;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + ), + 'BRACKETS' => array( + 0 => 'color: #080;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff0000;' + ), + 'METHODS' => array( + 1 => '', + 2 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #080;' + ), + 'REGEXPS' => array( + 0 => 'color:#A020F0;' + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => 'http://astrostatistics.psu.edu/su07/R/html/graphics/html/{FNAME}.html', // http://sekhon.berkeley.edu/library/graphics/html/{FNAME}.html + 3 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/Normal.html', // http://sekhon.berkeley.edu/library/stats/html/Normal.html + 4 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/{FNAME}.html', // http://sekhon.berkeley.edu/library/stats/html/{FNAME}.html + 5 => 'http://astrostatistics.psu.edu/su07/R/html/stats/html/summary.lm.html', // http://sekhon.berkeley.edu/library/stats/html/summary.lm.html + 6 => 'http://astrostatistics.psu.edu/su07/R/html/base/html/Log.html', // http://sekhon.berkeley.edu/library/base/html/Log.html + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + 0 => array( + GESHI_SEARCH => "([^\w])'([^\\n\\r']*)'", + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => "\\1'", + GESHI_AFTER => "'" + ) + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?|^&\\.])(? "(?![a-zA-Z0-9_\|%\\-&;\\.])" + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/ruby.php b/inc/geshi/ruby.php index 8c2b7d829..57d379d66 100644 --- a/inc/geshi/ruby.php +++ b/inc/geshi/ruby.php @@ -4,7 +4,7 @@ * -------- * Author: Moises Deniz * Copyright: (c) 2007 Moises Deniz - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/03/21 * * Ruby language file for GeSHi. @@ -50,7 +50,7 @@ $language_data = array ( 'ensure', 'for', 'if', 'in', 'module', 'while', 'next', 'not', 'or', 'redo', 'rescue', 'yield', 'retry', 'super', 'then', 'undef', 'unless', - 'until', 'when', 'BEGIN', 'END', 'include' + 'until', 'when', 'include' ), 2 => array( '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true', @@ -223,4 +223,4 @@ $language_data = array ( 'TAB_WIDTH' => 2 ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/sas.php b/inc/geshi/sas.php index bc6899716..16617b58e 100644 --- a/inc/geshi/sas.php +++ b/inc/geshi/sas.php @@ -4,7 +4,7 @@ * ------- * Author: Galen Johnson (solitaryr@gmail.com) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/12/27 * * SAS language file for GeSHi. Based on the sas vim file. diff --git a/inc/geshi/scala.php b/inc/geshi/scala.php index 0eae52d92..5ebe9ed96 100644 --- a/inc/geshi/scala.php +++ b/inc/geshi/scala.php @@ -4,7 +4,7 @@ * ---------- * Author: Franco Lombardo (franco@francolombardo.net) * Copyright: (c) 2008 Franco Lombardo, Benny Baumann - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/02/08 * * Scala language file for GeSHi. diff --git a/inc/geshi/scheme.php b/inc/geshi/scheme.php index 1fffcb248..dac7c6f06 100644 --- a/inc/geshi/scheme.php +++ b/inc/geshi/scheme.php @@ -4,7 +4,7 @@ * ---------- * Author: Jon Raphaelson (jonraphaelson@gmail.com) * Copyright: (c) 2005 Jon Raphaelson, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/30 * * Scheme language file for GeSHi. diff --git a/inc/geshi/scilab.php b/inc/geshi/scilab.php index 3d66d810a..9bd0658db 100644 --- a/inc/geshi/scilab.php +++ b/inc/geshi/scilab.php @@ -4,7 +4,7 @@ * -------- * Author: Christophe David (geshi@christophedavid.org) * Copyright: (c) 2008 Christophe David (geshi@christophedavid.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/08/04 * * SciLab language file for GeSHi. diff --git a/inc/geshi/sdlbasic.php b/inc/geshi/sdlbasic.php index b756df514..1f1440bf5 100644 --- a/inc/geshi/sdlbasic.php +++ b/inc/geshi/sdlbasic.php @@ -4,7 +4,7 @@ * ------------ * Author: Roberto Rossi * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/08/19 * * sdlBasic (http://sdlbasic.sf.net) language file for GeSHi. diff --git a/inc/geshi/smalltalk.php b/inc/geshi/smalltalk.php index b4d67cc71..9bc351d8e 100644 --- a/inc/geshi/smalltalk.php +++ b/inc/geshi/smalltalk.php @@ -4,7 +4,7 @@ * -------- * Author: Bananeweizen (Bananeweizen@gmx.de) * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/03/27 * * Smalltalk language file for GeSHi. @@ -46,7 +46,9 @@ $language_data = array ( 'QUOTEMARKS' => array("'"), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( - 1 => array('self','super','true','false','nil') + 1 => array( + 'self','super','true','false','nil' + ) ), 'SYMBOLS' => array( '[', ']', '=' , ':=', '(', ')', '#' @@ -85,7 +87,6 @@ $language_data = array ( 1 => 'color: #7f0000;', 2 => 'color: #7f0000;', 3 => 'color: #00007f;', - 4 => 'color: #7f007f;', 5 => 'color: #00007f;', 6 => 'color: #00007f;' ), @@ -128,15 +129,8 @@ $language_data = array ( GESHI_BEFORE => '|', GESHI_AFTER => '|' ), - 4 => array( - GESHI_SEARCH => '(self|super|true|false|nil)', //keywords again (to avoid matching in next regexp) - GESHI_REPLACE => '\\1', - GESHI_MODIFIERS => '', - GESHI_BEFORE => '', - GESHI_AFTER => '' - ), 5 => array( - GESHI_SEARCH => '([:(,=[.*\/+-]\s*)([a-zA-Z0-9_]+)', //message parameters, message receivers + GESHI_SEARCH => '([:(,=[.*\/+-]\s*(?!\d+\/))([a-zA-Z0-9_]+)', //message parameters, message receivers GESHI_REPLACE => '\\2', GESHI_MODIFIERS => 's', GESHI_BEFORE => '\\1', @@ -157,4 +151,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/smarty.php b/inc/geshi/smarty.php index dcc11f61d..f59d9fbf3 100644 --- a/inc/geshi/smarty.php +++ b/inc/geshi/smarty.php @@ -4,7 +4,7 @@ * ---------- * Author: Alan Juden (alan@judenware.org) * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/07/10 * * Smarty template language file for GeSHi. diff --git a/inc/geshi/sql.php b/inc/geshi/sql.php index ba91191d1..ea2965a8e 100644 --- a/inc/geshi/sql.php +++ b/inc/geshi/sql.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/04 * * SQL language file for GeSHi. @@ -51,7 +51,7 @@ $language_data = array ( 'LANG_NAME' => 'SQL', - 'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), + 'COMMENT_SINGLE' => array(1 =>'--'), 'COMMENT_MULTI' => array('/*' => '*/'), 'CASE_KEYWORDS' => 1, 'QUOTEMARKS' => array("'", '"', '`'), @@ -97,7 +97,7 @@ $language_data = array ( ), 'COMMENTS' => array( 1 => 'color: #808080; font-style: italic;', - 2 => 'color: #808080; font-style: italic;', + //2 => 'color: #808080; font-style: italic;', 'MULTI' => 'color: #808080; font-style: italic;' ), 'ESCAPE_CHAR' => array( @@ -137,4 +137,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/systemverilog.php b/inc/geshi/systemverilog.php new file mode 100644 index 000000000..832769f9e --- /dev/null +++ b/inc/geshi/systemverilog.php @@ -0,0 +1,317 @@ +. + * + ************************************************************************ + * Title: SystemVerilog Language Keywords File for GeSHi + * Description: This file contains the SV keywords defined in the + * IEEE1800-2009 Draft Standard in the format expected by + * GeSHi. + * + * Original Author: Sean O'Boyle + * Contact: seanoboyle@intelligentdv.com + * Company: Intelligent Design Verification + * Company URL: http://intelligentdv.com + * + * Download the most recent version here: + * http://intelligentdv.com/downloads + * + * File Bugs Here: http://bugs.intelligentdv.com + * Project: SyntaxFiles + * + * File: systemverilog.php + * $LastChangedBy: seanoboyle $ + * $LastChangedDate: 2009-07-22 22:20:25 -0700 (Wed, 22 Jul 2009) $ + * $LastChangedRevision: 17 $ + * + ************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'SystemVerilog', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + // system tasks + 1 => array( + 'acos','acosh','asin','asinh','assertfailoff','assertfailon', + 'assertkill','assertnonvacuouson','assertoff','asserton', + 'assertpassoff','assertpasson','assertvacuousoff','async$and$array', + 'async$and$plane','async$nand$array','async$nand$plane', + 'async$nor$array','async$nor$plane','async$or$array', + 'async$or$plane','atan','atan2','atanh','bits','bitstoreal', + 'bitstoshortreal','cast','ceil','changed','changed_gclk', + 'changing_gclk','clog2','cos','cosh','countones','coverage_control', + 'coverage_get','coverage_get_max','coverage_merge','coverage_save', + 'dimensions','display','displayb','displayh','displayo', + 'dist_chi_square','dist_erlang','dist_exponential','dist_normal', + 'dist_poisson','dist_t','dist_uniform','dumpall','dumpfile', + 'dumpflush','dumplimit','dumpoff','dumpon','dumpports', + 'dumpportsall','dumpportsflush','dumpportslimit','dumpportsoff', + 'dumpportson','dumpvars','error','exit','exp','falling_gclk', + 'fclose','fdisplay','fdisplayb','fdisplayh','fdisplayo','fell', + 'fell_gclk','feof','ferror','fflush','fgetc','fgets','finish', + 'floor','fmonitor','fmonitorb','fmonitorh','fmonitoro','fopen', + 'fread','fscanf','fseek','fstrobe','fstrobeb','fstrobeh','fstrobeo', + 'ftell','future_gclk','fwrite','fwriteb','fwriteh','fwriteo', + 'get_coverage','high','hypot','increment','info','isunbounded', + 'isunknown','itor','left','ln','load_coverage_db','log10','low', + 'monitor','monitorb','monitorh','monitoro','monitoroff','monitoron', + 'onehot','onehot0','past','past_gclk','pow','printtimescale', + 'q_add','q_exam','q_full','q_initialize','q_remove','random', + 'readmemb','readmemh','realtime','realtobits','rewind','right', + 'rising_gclk','rose','rose_gclk','rtoi','sampled', + 'set_coverage_db_name','sformat','sformatf','shortrealtobits', + 'signed','sin','sinh','size','sqrt','sscanf','stable','stable_gclk', + 'steady_gclk','stime','stop','strobe','strobeb','strobeh','strobeo', + 'swrite','swriteb','swriteh','swriteo','sync$and$array', + 'sync$and$plane','sync$nand$array','sync$nand$plane', + 'sync$nor$array','sync$nor$plane','sync$or$array','sync$or$plane', + 'system','tan','tanh','test$plusargs','time','timeformat', + 'typename','ungetc','unpacked_dimensions','unsigned', + 'value$plusargs','warning','write','writeb','writeh','writememb', + 'writememh','writeo', + ), + // compiler directives + 2 => array( + '`__FILE__', '`__LINE__', '`begin_keywords', '`case', '`celldefine', + '`endcelldefine', '`default_nettype', '`define', '`default', '`else', + '`elsif', '`end_keywords', '`endfor', '`endif', + '`endprotect', '`endswitch', '`endwhile', '`for', '`format', + '`if', '`ifdef', '`ifndef', '`include', '`let', + '`line', '`nounconnected_drive', '`pragma', '`protect', '`resetall', + '`switch', '`timescale', '`unconnected_drive', '`undef', '`undefineall', + '`while' + ), + // keywords + 3 => array( + 'assert', 'assume', 'cover', 'expect', 'disable', + 'iff', 'binsof', 'intersect', 'first_match', 'throughout', + 'within', 'coverpoint', 'cross', 'wildcard', 'bins', + 'ignore_bins', 'illegal_bins', 'genvar', 'if', 'else', + 'unique', 'priority', 'matches', 'default', 'forever', + 'repeat', 'while', 'for', 'do', 'foreach', + 'break', 'continue', 'return', 'pulsestyle_onevent', 'pulsestyle_ondetect', + 'noshowcancelled', 'showcancelled', 'ifnone', 'posedge', 'negedge', + 'edge', 'wait', 'wait_order', 'timeunit', 'timeprecision', + 's', 'ms', 'us', 'ns', + 'ps', 'fs', 'step', 'new', 'extends', + 'this', 'super', 'protected', 'local', 'rand', + 'randc', 'bind', 'constraint', 'solve', 'before', + 'dist', 'inside', 'with', 'virtual', 'extern', + 'pure', 'forkjoin', 'design', 'instance', 'cell', + 'liblist', 'use', 'library', 'incdir', 'include', + 'modport', 'sync_accept_on', 'reject_on', 'accept_on', + 'sync_reject_on', 'restrict', 'let', 'until', 'until_with', + 'unique0', 'eventually', 's_until', 's_always', 's_eventually', + 's_nexttime', 's_until_with', 'global', 'untyped', 'implies', + 'weak', 'strong', 'nexttime' + ), + // block keywords + 4 => array( + 'begin', 'end', 'package', 'endpackage', 'macromodule', + 'module', 'endmodule', 'generate', 'endgenerate', 'program', + 'endprogram', 'class', 'endclass', 'function', 'endfunction', + 'case', 'casex', 'casez', 'randcase', 'endcase', + 'interface', 'endinterface', 'clocking', 'endclocking', 'task', + 'endtask', 'primitive', 'endprimitive', 'fork', 'join', + 'join_any', 'join_none', 'covergroup', 'endgroup', 'checker', + 'endchecker', 'property', 'endproperty', 'randsequence', 'sequence', + 'endsequence', 'specify', 'endspecify', 'config', 'endconfig', + 'table', 'endtable', 'initial', 'final', 'always', + 'always_comb', 'always_ff', 'always_latch', 'alias', 'assign', + 'force', 'release' + ), + + // types + 5 => array( + 'parameter', 'localparam', 'specparam', 'input', 'output', + 'inout', 'ref', 'byte', 'shortint', 'int', + 'integer', 'longint', 'time', 'bit', 'logic', + 'reg', 'supply0', 'supply1', 'tri', 'triand', + 'trior', 'trireg', 'tri0', 'tri1', 'wire', + 'uwire', 'wand', 'wor', 'signed', 'unsigned', + 'shortreal', 'real', 'realtime', 'type', 'void', + 'struct', 'union', 'tagged', 'const', 'var', + 'automatic', 'static', 'packed', 'vectored', 'scalared', + 'typedef', 'enum', 'string', 'chandle', 'event', + 'null', 'pullup', 'pulldown', 'cmos', 'rcmos', + 'nmos', 'pmos', 'rnmos', 'rpmos', 'and', + 'nand', 'or', 'nor', 'xor', 'xnor', + 'not', 'buf', 'tran', 'rtran', 'tranif0', + 'tranif1', 'rtranif0', 'rtranif1', 'bufif0', 'bufif1', + 'notif0', 'notif1', 'strong0', 'strong1', 'pull0', + 'pull1', 'weak0', 'weak1', 'highz0', 'highz1', + 'small', 'medium', 'large' + ), + + // DPI + 6 => array( + 'DPI', 'DPI-C', 'import', 'export', 'context' + ), + + // stdlib + 7 => array( + 'randomize', 'mailbox', 'semaphore', 'put', 'get', + 'try_put', 'try_get', 'peek', 'try_peek', 'process', + 'state', 'self', 'status', 'kill', 'await', + 'suspend', 'resume', 'size', 'delete', 'insert', + 'num', 'first', 'last', 'next', 'prev', + 'pop_front', 'pop_back', 'push_front', 'push_back', 'find', + 'find_index', 'find_first', 'find_last', 'find_last_index', 'min', + 'max', 'unique_index', 'reverse', 'sort', 'rsort', + 'shuffle', 'sum', 'product', 'List', 'List_Iterator', + 'neq', 'eq', 'data', 'empty', 'front', + 'back', 'start', 'finish', 'insert_range', 'erase', + 'erase_range', 'set', 'swap', 'clear', 'purge' + ), + + // key_deprecated + 8 => array( + 'defparam', 'deassign', 'TODO' + ), + + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', + '^', '&', '|', '~', + '?', ':', + '#', '<<', '<<<', + '>', '<', '>=', '<=', + '@', ';', ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #996666; font-weight: bold;', + 2 => 'color: #336600; font-weight: bold;', + 3 => 'color: #996600; font-weight: bold;', + 4 => 'color: #000033; font-weight: bold;', + 5 => 'color: #330033; font-weight: bold;', + 6 => 'color: #996600; font-weight: bold;', + 7 => 'color: #CC9900; font-weight: bold;', + 8 => 'color: #990000; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #00008B; font-style: italic;', + 'MULTI' => 'color: #00008B; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #9F79EE' + ), + 'BRACKETS' => array( + 0 => 'color: #9F79EE;' + ), + 'STRINGS' => array( + 0 => 'color: #FF00FF;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff0055;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #5D478B;' + ), + 'REGEXPS' => array( + 0 => 'color: #ff0055;', + 1 => 'color: #ff0055;', + 2 => 'color: #ff0055;', + 3 => 'color: #ff0055;' + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '' + ), + 'REGEXPS' => array( + // integer + 0 => "\d'[bdh][0-9_a-fA-FxXzZ]+", + // realtime + 1 => "\d*\.\d+[munpf]?s", + // time s, ms, us, ns, ps, of fs + 2 => "\d+[munpf]?s", + // real + 3 => "\d*\.\d+" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + 0 => '' + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true + ), + 'TAB_WIDTH' => 3, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 1 => array( + 'DISALLOWED_BEFORE' => '(?<=$)' + ) + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/tcl.php b/inc/geshi/tcl.php index 25cb31d5b..0b52a2687 100644 --- a/inc/geshi/tcl.php +++ b/inc/geshi/tcl.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Reid van Melle (rvanmelle@gmail.com) * Copyright: (c) 2004 Reid van Melle (sorry@nowhere) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/05/05 * * TCL/iTCL language file for GeSHi. diff --git a/inc/geshi/teraterm.php b/inc/geshi/teraterm.php index 5ac9f8743..b4ac619df 100644 --- a/inc/geshi/teraterm.php +++ b/inc/geshi/teraterm.php @@ -4,7 +4,7 @@ * -------- * Author: Boris Maisuradze (boris at logmett.com) * Copyright: (c) 2008 Boris Maisuradze (http://logmett.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/09/26 * * Tera Term Macro language file for GeSHi. diff --git a/inc/geshi/text.php b/inc/geshi/text.php index 9183895c2..24d3f10ee 100644 --- a/inc/geshi/text.php +++ b/inc/geshi/text.php @@ -4,7 +4,7 @@ * -------- * Author: Sean Hanna (smokingrope@gmail.com) * Copyright: (c) 2006 Sean Hanna - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 04/23/2006 * * Standard Text File (No Syntax Highlighting). diff --git a/inc/geshi/thinbasic.php b/inc/geshi/thinbasic.php index b9c9742c7..6a0b72f9f 100644 --- a/inc/geshi/thinbasic.php +++ b/inc/geshi/thinbasic.php @@ -4,7 +4,7 @@ * ------ * Author: Eros Olmi (eros.olmi@thinbasic.com) * Copyright: (c) 2006 Eros Olmi (http://www.thinbasic.com), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/05/12 * * thinBasic language file for GeSHi. diff --git a/inc/geshi/tsql.php b/inc/geshi/tsql.php index fca874954..4750997a3 100644 --- a/inc/geshi/tsql.php +++ b/inc/geshi/tsql.php @@ -4,7 +4,7 @@ * -------- * Author: Duncan Lock (dunc@dflock.co.uk) * Copyright: (c) 2006 Duncan Lock (http://dflock.co.uk/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/11/22 * * T-SQL language file for GeSHi. @@ -41,16 +41,16 @@ $language_data = array ( 'LANG_NAME' => 'T-SQL', 'COMMENT_SINGLE' => array(1 => '--'), 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( 1 => array( // Datatypes - 'bigint', 'int', 'smallint', 'tinyint', 'bit', 'decimal', 'numeric', 'money', - 'smallmoney', 'float', 'real', 'datetime', 'smalldatetime', 'char', 'varchar', - 'text', 'nchar', 'nvarchar', 'ntext', 'binary', 'varbinary', 'image', 'cursor', - 'sql_variant', 'table', 'timestamp', 'uniqueidentifier', + 'bigint', 'tinyint', 'money', + 'smallmoney', 'datetime', 'smalldatetime', + 'text', 'nvarchar', 'ntext', 'varbinary', 'image', + 'sql_variant', 'uniqueidentifier', // Keywords 'ABSOLUTE', 'ACTION', 'ADD', 'ADMIN', 'AFTER', 'AGGREGATE', 'ALIAS', 'ALLOCATE', 'ALTER', 'ARE', 'ARRAY', 'AS', diff --git a/inc/geshi/typoscript.php b/inc/geshi/typoscript.php index 1e8243c2e..be809e856 100644 --- a/inc/geshi/typoscript.php +++ b/inc/geshi/typoscript.php @@ -4,7 +4,7 @@ * -------- * Author: Jan-Philipp Halle (typo3@jphalle.de) * Copyright: (c) 2005 Jan-Philipp Halle (http://www.jphalle.de/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/07/29 * * TypoScript language file for GeSHi. diff --git a/inc/geshi/vb.php b/inc/geshi/vb.php index bc43ca4a8..9849b3e86 100644 --- a/inc/geshi/vb.php +++ b/inc/geshi/vb.php @@ -5,7 +5,7 @@ * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), * Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/08/30 * * Visual Basic language file for GeSHi. diff --git a/inc/geshi/vbnet.php b/inc/geshi/vbnet.php index e9f7c3e43..683b744f9 100644 --- a/inc/geshi/vbnet.php +++ b/inc/geshi/vbnet.php @@ -4,7 +4,7 @@ * --------- * Author: Alan Juden (alan@judenware.org) * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/06/04 * * VB.NET language file for GeSHi. @@ -67,9 +67,9 @@ $language_data = array ( 2 => array( 'AndAlso', 'As', 'ADDHANDLER', 'ASSEMBLY', 'AUTO', 'Binary', 'ByRef', 'ByVal', 'BEGINEPILOGUE', 'Else', 'ElseIf', 'Empty', 'Error', 'ENDPROLOGUE', 'EXTERNALSOURCE', 'ENVIRON', 'For', - 'Friend', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT', 'MustOverride', + 'Friend', 'Func', 'GET', 'HANDLES', 'Input', 'Is', 'IsNot', 'Len', 'Lock', 'Me', 'Mid', 'MUSTINHERIT', 'MustOverride', 'MYBASE', 'MYCLASS', 'New', 'Next', 'Nothing', 'Null', 'NOTINHERITABLE', - 'NOTOVERRIDABLE', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'Overrides', 'ParamArray', + 'NOTOVERRIDABLE', 'Of', 'OFF', 'On', 'Option', 'Optional', 'Overloads', 'OVERRIDABLE', 'Overrides', 'ParamArray', 'Predicate', 'Print', 'Private', 'Property', 'Public', 'Resume', 'Return', 'Seek', 'Static', 'Step', 'String', 'SHELL', 'SENDKEYS', 'SET', 'Shared', 'Then', 'Time', 'To', 'THROW', 'WithEvents' ), @@ -198,4 +198,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/verilog.php b/inc/geshi/verilog.php index ba1766c2d..6fc469487 100644 --- a/inc/geshi/verilog.php +++ b/inc/geshi/verilog.php @@ -4,7 +4,7 @@ * ----------- * Author: G�nter Dannoritzer * Copyright: (C) 2008 Guenter Dannoritzer - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/05/28 * * Verilog language file for GeSHi. diff --git a/inc/geshi/vhdl.php b/inc/geshi/vhdl.php index 14072c9d7..ea93cf87b 100644 --- a/inc/geshi/vhdl.php +++ b/inc/geshi/vhdl.php @@ -4,7 +4,7 @@ * -------- * Author: Alexander 'E-Razor' Krause (admin@erazor-zone.de) * Copyright: (c) 2005 Alexander Krause - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2005/06/15 * * VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi. diff --git a/inc/geshi/vim.php b/inc/geshi/vim.php index 3946c4f96..a95dc244c 100644 --- a/inc/geshi/vim.php +++ b/inc/geshi/vim.php @@ -4,8 +4,10 @@ * vim.php * ---------------- * Author: Swaroop C H (swaroop@swaroopch.com) + * Contributors: + * - Laurent Peuch (psycojoker@gmail.com) * Copyright: (c) 2008 Swaroop C H (http://www.swaroopch.com) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/10/19 * * Vim scripting language file for GeSHi. @@ -18,10 +20,16 @@ * ------- * 2008/10/19 (1.0.8.2) * - Started. + * 2009/07/05 + * - Fill out list of zillion commands (maybe somes still miss). + * - fix a part of the regex, now works for comment that have white space before the " * - * TODO (updated 2008/10/19) + * TODO (updated 2009/07/05) * ------------------------- - * - Fill out list of zillion commands + * - Make this damn string with "" work correctly. I've just remove it for my wiki. + * - Make the comment regex able to find comment after some code. + * (i.e: let rocks " unworking comment) + * - Make ... ... works event if they aren't surround by space. * ************************************************************************************* * @@ -47,7 +55,7 @@ $language_data = array( 'LANG_NAME' => 'Vim Script', 'COMMENT_SINGLE' => array(), 'COMMENT_REGEXP' => array( - 1 => "/^\".*$/m" + 1 => "/^\s*\"[^\"]*?$/m" ), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, @@ -55,73 +63,299 @@ $language_data = array( 'ESCAPE_CHAR' => '\\', 'KEYWORDS' => array( 1 => array( - 'brea', 'break', 'call', 'cat', 'catc', - 'catch', 'con', 'cont', 'conti', - 'contin', 'continu', 'continue', 'ec', 'echo', - 'echoe', 'echoer', 'echoerr', 'echoh', - 'echohl', 'echom', 'echoms', 'echomsg', 'echon', - 'el', 'els', 'else', 'elsei', 'elseif', - 'en', 'end', 'endi', 'endif', 'endfo', - 'endfor', 'endt', 'endtr', 'endtry', 'endw', - 'endwh', 'endwhi', 'endwhil', 'endwhile', 'exe', 'exec', 'execu', - 'execut', 'execute', 'fina', 'final', 'finall', 'finally', 'for', - 'fun', 'func', 'funct', 'functi', 'functio', 'function', 'if', 'in', - 'let', 'lockv', 'lockva', 'lockvar', 'retu', 'retur', 'return', 'th', - 'thr', 'thro', 'throw', 'try', 'unl', 'unle', 'unlet', 'unlo', 'unloc', - 'unlock', 'unlockv', 'unlockva', 'unlockvar', 'wh', 'whi', 'whil', - 'while' + 'au', 'augroup', 'autocmd', 'brea', 'break', 'bufadd', + 'bufcreate', 'bufdelete', 'bufenter', 'buffilepost', + 'buffilepre', 'bufhidden', 'bufleave', 'bufnew', 'bufnewfile', + 'bufread', 'bufreadcmd', 'bufreadpost', 'bufreadpre', + 'bufunload', 'bufwinenter', 'bufwinleave', 'bufwipeout', + 'bufwrite', 'bufwritecmd', 'bufwritepost', 'bufwritepre', + 'call', 'cat', 'catc', 'catch', 'cmd-event', 'cmdwinenter', + 'cmdwinleave', 'colorscheme', 'con', 'cont', 'conti', + 'contin', 'continu', 'continue', 'cursorhold', 'cursorholdi', + 'cursormoved', 'cursormovedi', 'ec', 'echo', 'echoe', + 'echoer', 'echoerr', 'echoh', 'echohl', 'echom', 'echoms', + 'echomsg', 'echon', 'el', 'els', 'else', 'elsei', 'elseif', + 'en', 'encodingchanged', 'end', 'endfo', 'endfor', 'endi', + 'endif', 'endt', 'endtr', 'endtry', 'endw', 'endwh', 'endwhi', + 'endwhil', 'endwhile', 'exe', 'exec', 'execu', 'execut', + 'execute', 'fileappendcmd', 'fileappendpost', 'fileappendpre', + 'filechangedro', 'filechangedshell', 'filechangedshellpost', + 'fileencoding', 'filereadcmd', 'filereadpost', 'filereadpre', + 'filetype', 'filewritecmd', 'filewritepost', 'filewritepre', + 'filterreadpost', 'filterreadpre', 'filterwritepost', + 'filterwritepre', 'fina', 'final', 'finall', 'finally', + 'finish', 'focusgained', 'focuslost', 'for', 'fun', 'func', + 'funct', 'functi', 'functio', 'function', 'funcundefined', + 'guienter', 'guifailed', 'hi', 'highlight', 'if', 'in', + 'insertchange', 'insertenter', 'insertleave', 'let', 'lockv', + 'lockva', 'lockvar', 'map', 'match', 'menupopup', 'nnoremap', + 'quickfixcmdpost', 'quickfixcmdpre', 'remotereply', 'retu', + 'retur', 'return', 'sessionloadpost', 'set', 'setlocal', + 'shellcmdpost', 'shellfilterpost', 'sourcecmd', 'sourcepre', + 'spellfilemissing', 'stdinreadpost', 'stdinreadpre', + 'swapexists', 'syntax', 'tabenter', 'tableave', 'termchanged', + 'termresponse', 'th', 'thr', 'thro', 'throw', 'try', 'unl', + 'unle', 'unlet', 'unlo', 'unloc', 'unlock', 'unlockv', + 'unlockva', 'unlockvar', 'user', 'usergettingbored', + 'vimenter', 'vimleave', 'vimleavepre', 'vimresized', 'wh', + 'whi', 'whil', 'while', 'winenter', 'winleave' ), 2 => array( - 'autocmd', 'com', 'comm', 'comma', 'comman', 'command', 'comc', - 'comcl', 'comcle', 'comclea', 'comclear', 'delc', 'delco', - 'delcom', 'delcomm', 'delcomma', 'delcomman', 'delcommand', - '-nargs' # TODO There are zillions of commands to be added here from http://vimdoc.sourceforge.net/htmldoc/usr_toc.html + '<CR>', '<Esc>', '<F1>', '<F10>', + '<F11>', '<F12>', '<F2>', '<F3>', + '<F4>', '<F5>', '<F6>', '<F7>', + '<F8>', '<F9>', '<cr>', '<silent>', + '-nargs', 'acd', 'ai', 'akm', 'al', 'aleph', + 'allowrevins', 'altkeymap', 'ambiwidth', 'ambw', + 'anti', 'antialias', 'ar', 'arab', 'arabic', + 'arabicshape', 'ari', 'arshape', 'autochdir', + 'autoindent', 'autoread', 'autowrite', 'autowriteall', + 'aw', 'awa', 'background', 'backspace', 'backup', + 'backupcopy', 'backupdir', 'backupext', + 'backupskip', 'balloondelay', 'ballooneval', 'balloonexpr', + 'bdir', 'bdlay', 'beval', 'bex', 'bexpr', 'bg', + 'bh', 'bin', 'binary', 'biosk', 'bioskey', + 'bk', 'bkc', 'bl', 'bomb', 'breakat', 'brk', + 'browsedir', 'bs', 'bsdir', 'bsk', 'bt', 'bufhidden', + 'buflisted', 'buftype', 'casemap', 'cb', + 'ccv', 'cd', 'cdpath', 'cedit', 'cf', 'cfu', 'ch', + 'charconvert', 'ci', 'cin', 'cindent', 'cink', + 'cinkeys', 'cino', 'cinoptions', 'cinw', 'cinwords', + 'clipboard', 'cmdheight', 'cmdwinheight', + 'cmp', 'cms', 'co', 'columns', 'com', + 'comc', 'comcl', 'comcle', 'comclea', 'comclear', 'comm', + 'comma', 'comman', 'command', 'comments', 'commentstring', + 'compatible', 'complete', 'completefunc', 'completeopt', + 'confirm', 'consk', 'conskey', 'copyindent', + 'cot', 'cp', 'cpo', 'cpoptions', 'cpt', + 'cscopepathcomp', 'cscopeprg', 'cscopequickfix', 'cscopetag', + 'cscopetagorder', 'cscopeverbose', + 'cspc', 'csprg', 'csqf', 'cst', 'csto', 'csverb', 'cuc', + 'cul', 'cursorcolumn', 'cursorline', 'cwh', 'debug', + 'deco', 'def', 'define', 'delc', 'delco', 'delcom', + 'delcombine', 'delcomm', 'delcomman', 'delcommand', 'dex', + 'dg', 'dict', 'dictionary', 'diff', 'diffexpr', + 'diffopt', 'digraph', 'dip', 'dir', 'directory', 'display', + 'dlcomma', 'dy', 'ea', 'ead', 'eadirection', + 'eb', 'ed', 'edcompatible', 'ef', 'efm', + 'ei', 'ek', 'enc', 'encoding', 'endofline', + 'eol', 'ep', 'equalalways', 'equalprg', 'errorbells', + 'errorfile', 'errorformat', 'esckeys', 'et', + 'eventignore', 'ex', 'expandtab', 'exrc', 'fcl', + 'fcs', 'fdc', 'fde', 'fdi', 'fdl', 'fdls', 'fdm', + 'fdn', 'fdo', 'fdt', 'fen', 'fenc', 'fencs', 'fex', + 'ff', 'ffs', 'fileencoding', 'fileencodings', 'fileformat', + 'fileformats', 'filetype', 'fillchars', 'fk', + 'fkmap', 'flp', 'fml', 'fmr', 'fo', 'foldclose', + 'foldcolumn', 'foldenable', 'foldexpr', 'foldignore', + 'foldlevel', 'foldlevelstart', 'foldmarker', + 'foldmethod', 'foldminlines', 'foldnestmax', 'foldopen', + 'foldtext', 'formatexpr', 'formatlistpat', + 'formatoptions', 'formatprg', 'fp', 'fs', 'fsync', 'ft', + 'gcr', 'gd', 'gdefault', 'gfm', 'gfn', 'gfs', 'gfw', + 'ghr', 'go', 'gp', 'grepformat', 'grepprg', 'gtl', + 'gtt', 'guicursor', 'guifont', 'guifontset', + 'guifontwide', 'guiheadroom', 'guioptions', 'guipty', + 'guitablabel', 'guitabtooltip', 'helpfile', + 'helpheight', 'helplang', 'hf', 'hh', 'hid', 'hidden', + 'history', 'hk', 'hkmap', 'hkmapp', 'hkp', 'hl', + 'hlg', 'hls', 'hlsearch', 'ic', 'icon', 'iconstring', + 'ignorecase', 'im', 'imactivatekey', 'imak', 'imc', + 'imcmdline', 'imd', 'imdisable', 'imi', 'iminsert', 'ims', + 'imsearch', 'inc', 'include', 'includeexpr', + 'incsearch', 'inde', 'indentexpr', 'indentkeys', + 'indk', 'inex', 'inf', 'infercase', 'insertmode', 'is', 'isf', + 'isfname', 'isi', 'isident', 'isk', 'iskeyword', + 'isp', 'isprint', 'joinspaces', 'js', 'key', + 'keymap', 'keymodel', 'keywordprg', 'km', 'kmp', 'kp', + 'langmap', 'langmenu', 'laststatus', 'lazyredraw', 'lbr', + 'lcs', 'linebreak', 'lines', 'linespace', 'lisp', + 'lispwords', 'list', 'listchars', 'lm', 'lmap', + 'loadplugins', 'lpl', 'ls', 'lsp', 'lw', 'lz', 'ma', + 'macatsui', 'magic', 'makeef', 'makeprg', 'mat', + 'matchpairs', 'matchtime', 'maxcombine', 'maxfuncdepth', + 'maxmapdepth', 'maxmem', 'maxmempattern', + 'maxmemtot', 'mco', 'mef', 'menuitems', 'mfd', 'mh', + 'mis', 'mkspellmem', 'ml', 'mls', 'mm', 'mmd', 'mmp', + 'mmt', 'mod', 'modeline', 'modelines', 'modifiable', + 'modified', 'more', 'mouse', 'mousef', 'mousefocus', + 'mousehide', 'mousem', 'mousemodel', 'mouses', + 'mouseshape', 'mouset', 'mousetime', 'mp', 'mps', 'msm', + 'mzq', 'mzquantum', 'nf', 'noacd', 'noai', 'noakm', + 'noallowrevins', 'noaltkeymap', 'noanti', 'noantialias', + 'noar', 'noarab', 'noarabic', 'noarabicshape', 'noari', + 'noarshape', 'noautochdir', 'noautoindent', 'noautoread', + 'noautowrite', 'noautowriteall', 'noaw', 'noawa', 'nobackup', + 'noballooneval', 'nobeval', 'nobin', 'nobinary', 'nobiosk', + 'nobioskey', 'nobk', 'nobl', 'nobomb', 'nobuflisted', 'nocf', + 'noci', 'nocin', 'nocindent', 'nocompatible', 'noconfirm', + 'noconsk', 'noconskey', 'nocopyindent', 'nocp', 'nocscopetag', + 'nocscopeverbose', 'nocst', 'nocsverb', 'nocuc', 'nocul', + 'nocursorcolumn', 'nocursorline', 'nodeco', 'nodelcombine', + 'nodg', 'nodiff', 'nodigraph', 'nodisable', 'noea', 'noeb', + 'noed', 'noedcompatible', 'noek', 'noendofline', 'noeol', + 'noequalalways', 'noerrorbells', 'noesckeys', 'noet', + 'noex', 'noexpandtab', 'noexrc', 'nofen', 'nofk', 'nofkmap', + 'nofoldenable', 'nogd', 'nogdefault', 'noguipty', 'nohid', + 'nohidden', 'nohk', 'nohkmap', 'nohkmapp', 'nohkp', 'nohls', + 'nohlsearch', 'noic', 'noicon', 'noignorecase', 'noim', + 'noimc', 'noimcmdline', 'noimd', 'noincsearch', 'noinf', + 'noinfercase', 'noinsertmode', 'nois', 'nojoinspaces', + 'nojs', 'nolazyredraw', 'nolbr', 'nolinebreak', 'nolisp', + 'nolist', 'noloadplugins', 'nolpl', 'nolz', 'noma', + 'nomacatsui', 'nomagic', 'nomh', 'noml', 'nomod', + 'nomodeline', 'nomodifiable', 'nomodified', 'nomore', + 'nomousef', 'nomousefocus', 'nomousehide', 'nonu', + 'nonumber', 'noodev', 'noopendevice', 'nopaste', 'nopi', + 'nopreserveindent', 'nopreviewwindow', 'noprompt', 'nopvw', + 'noreadonly', 'noremap', 'norestorescreen', 'norevins', + 'nori', 'norightleft', 'norightleftcmd', 'norl', 'norlc', + 'noro', 'nors', 'noru', 'noruler', 'nosb', 'nosc', 'noscb', + 'noscrollbind', 'noscs', 'nosecure', 'nosft', 'noshellslash', + 'noshelltemp', 'noshiftround', 'noshortname', 'noshowcmd', + 'noshowfulltag', 'noshowmatch', 'noshowmode', 'nosi', 'nosm', + 'nosmartcase', 'nosmartindent', 'nosmarttab', 'nosmd', + 'nosn', 'nosol', 'nospell', 'nosplitbelow', 'nosplitright', + 'nospr', 'nosr', 'nossl', 'nosta', 'nostartofline', + 'nostmp', 'noswapfile', 'noswf', 'nota', 'notagbsearch', + 'notagrelative', 'notagstack', 'notbi', 'notbidi', 'notbs', + 'notermbidi', 'noterse', 'notextauto', 'notextmode', + 'notf', 'notgst', 'notildeop', 'notimeout', 'notitle', + 'noto', 'notop', 'notr', 'nottimeout', 'nottybuiltin', + 'nottyfast', 'notx', 'novb', 'novisualbell', 'nowa', + 'nowarn', 'nowb', 'noweirdinvert', 'nowfh', 'nowfw', + 'nowildmenu', 'nowinfixheight', 'nowinfixwidth', 'nowiv', + 'nowmnu', 'nowrap', 'nowrapscan', 'nowrite', 'nowriteany', + 'nowritebackup', 'nows', 'nrformats', 'nu', 'number', + 'numberwidth', 'nuw', 'odev', 'oft', 'ofu', + 'omnifunc', 'opendevice', 'operatorfunc', 'opfunc', + 'osfiletype', 'pa', 'para', 'paragraphs', + 'paste', 'pastetoggle', 'patchexpr', + 'patchmode', 'path', 'pdev', 'penc', 'pex', 'pexpr', + 'pfn', 'ph', 'pheader', 'pi', 'pm', 'pmbcs', + 'pmbfn', 'popt', 'preserveindent', 'previewheight', + 'previewwindow', 'printdevice', 'printencoding', 'printexpr', + 'printfont', 'printheader', 'printmbcharset', + 'printmbfont', 'printoptions', 'prompt', 'pt', 'pumheight', + 'pvh', 'pvw', 'qe', 'quoteescape', 'rdt', + 'readonly', 'redrawtime', 'remap', 'report', + 'restorescreen', 'revins', 'ri', 'rightleft', 'rightleftcmd', + 'rl', 'rlc', 'ro', 'rs', 'rtp', 'ru', + 'ruf', 'ruler', 'rulerformat', 'runtimepath', 'sb', 'sbo', + 'sbr', 'sc', 'scb', 'scr', 'scroll', 'scrollbind', + 'scrolljump', 'scrolloff', 'scrollopt', + 'scs', 'sect', 'sections', 'secure', 'sel', + 'selection', 'selectmode', 'sessionoptions', 'sft', + 'sh', 'shcf', 'shell', 'shellcmdflag', 'shellpipe', + 'shellquote', 'shellredir', 'shellslash', + 'shelltemp', 'shelltype', 'shellxquote', 'shiftround', + 'shiftwidth', 'shm', 'shortmess', 'shortname', + 'showbreak', 'showcmd', 'showfulltag', 'showmatch', + 'showmode', 'showtabline', 'shq', 'si', 'sidescroll', + 'sidescrolloff', 'siso', 'sj', 'slm', 'sm', 'smartcase', + 'smartindent', 'smarttab', 'smc', 'smd', 'sn', + 'so', 'softtabstop', 'sol', 'sp', 'spc', 'spell', + 'spellcapcheck', 'spellfile', 'spelllang', 'spellsuggest', + 'spf', 'spl', 'splitbelow', 'splitright', 'spr', + 'sps', 'sr', 'srr', 'ss', 'ssl', 'ssop', 'st', 'sta', + 'stal', 'startofline', 'statusline', 'stl', 'stmp', + 'sts', 'su', 'sua', 'suffixes', 'suffixesadd', 'sw', + 'swapfile', 'swapsync', 'swb', 'swf', 'switchbuf', + 'sws', 'sxq', 'syn', 'synmaxcol', 'syntax', 'ta', + 'tabline', 'tabpagemax', 'tabstop', 'tag', + 'tagbsearch', 'taglength', 'tagrelative', 'tags', 'tagstack', + 'tal', 'tb', 'tbi', 'tbidi', 'tbis', 'tbs', + 'tenc', 'term', 'termbidi', 'termencoding', 'terse', + 'textauto', 'textmode', 'textwidth', 'tf', 'tgst', + 'thesaurus', 'tildeop', 'timeout', 'timeoutlen', + 'title', 'titlelen', 'titleold', 'titlestring', + 'tl', 'tm', 'to', 'toolbar', 'toolbariconsize', 'top', + 'tpm', 'tr', 'ts', 'tsl', 'tsr', 'ttimeout', + 'ttimeoutlen', 'ttm', 'tty', 'ttybuiltin', 'ttyfast', 'ttym', + 'ttymouse', 'ttyscroll', 'ttytype', 'tw', 'tx', 'uc', + 'ul', 'undolevels', 'updatecount', 'updatetime', 'ut', + 'vb', 'vbs', 'vdir', 've', 'verbose', 'verbosefile', + 'vfile', 'vi', 'viewdir', 'viewoptions', 'viminfo', + 'virtualedit', 'visualbell', 'vop', 'wa', 'wak', + 'warn', 'wb', 'wc', 'wcm', 'wd', 'weirdinvert', 'wfh', + 'wfw', 'wh', 'whichwrap', 'wi', 'wig', 'wildchar', + 'wildcharm', 'wildignore', 'wildmenu', + 'wildmode', 'wildoptions', 'wim', 'winaltkeys', 'window', + 'winfixheight', 'winfixwidth', 'winheight', + 'winminheight', 'winminwidth', 'winwidth', 'wiv', + 'wiw', 'wm', 'wmh', 'wmnu', 'wmw', 'wop', 'wrap', + 'wrapmargin', 'wrapscan', 'write', 'writeany', + 'writebackup', 'writedelay', 'ws', 'ww' ), 3 => array( - 'abs', 'add', 'append', 'argc', 'argidx', 'argv', 'atan', - 'browse', 'browsedir', 'bufexists', 'buflisted', 'bufloaded', - 'bufname', 'bufnr', 'bufwinnr', 'byte2line', 'byteidx', - 'ceil', 'changenr', 'char2nr', 'cindent', 'clearmatches', - 'col', 'complete', 'complete_add', 'complete_check', 'confirm', - 'copy', 'cos', 'count', 'cscope_connection', 'cursor', - 'deepcopy', 'delete', 'did_filetype', 'diff_filler', - 'diff_hlID', 'empty', 'escape', 'eval', 'eventhandler', - 'executable', 'exists', 'extend', 'expand', 'feedkeys', - 'filereadable', 'filewritable', 'filter', 'finddir', - 'findfile', 'float2nr', 'floor', 'fnameescape', 'fnamemodify', - 'foldclosed', 'foldclosedend', 'foldlevel', 'foldtext', - 'foldtextresult', 'foreground', 'garbagecollect', - 'get', 'getbufline', 'getbufvar', 'getchar', 'getcharmod', - 'getcmdline', 'getcmdpos', 'getcmdtype', 'getcwd', 'getfperm', - 'getfsize', 'getfontname', 'getftime', 'getftype', 'getline', + 'BufAdd', 'BufCreate', 'BufDelete', 'BufEnter', 'BufFilePost', + 'BufFilePre', 'BufHidden', 'BufLeave', 'BufNew', 'BufNewFile', + 'BufRead', 'BufReadCmd', 'BufReadPost', 'BufReadPre', + 'BufUnload', 'BufWinEnter', 'BufWinLeave', 'BufWipeout', + 'BufWrite', 'BufWriteCmd', 'BufWritePost', 'BufWritePre', + 'Cmd-event', 'CmdwinEnter', 'CmdwinLeave', 'ColorScheme', + 'CursorHold', 'CursorHoldI', 'CursorMoved', 'CursorMovedI', + 'EncodingChanged', 'FileAppendCmd', 'FileAppendPost', + 'FileAppendPre', 'FileChangedRO', 'FileChangedShell', + 'FileChangedShellPost', 'FileEncoding', 'FileReadCmd', + 'FileReadPost', 'FileReadPre', 'FileType', + 'FileWriteCmd', 'FileWritePost', 'FileWritePre', + 'FilterReadPost', 'FilterReadPre', 'FilterWritePost', + 'FilterWritePre', 'FocusGained', 'FocusLost', 'FuncUndefined', + 'GUIEnter', 'GUIFailed', 'InsertChange', 'InsertEnter', + 'InsertLeave', 'MenuPopup', 'QuickFixCmdPost', + 'QuickFixCmdPre', 'RemoteReply', 'SessionLoadPost', + 'ShellCmdPost', 'ShellFilterPost', 'SourceCmd', + 'SourcePre', 'SpellFileMissing', 'StdinReadPost', + 'StdinReadPre', 'SwapExists', 'Syntax', 'TabEnter', + 'TabLeave', 'TermChanged', 'TermResponse', 'User', + 'UserGettingBored', 'VimEnter', 'VimLeave', 'VimLeavePre', + 'VimResized', 'WinEnter', 'WinLeave', 'abs', 'add', 'append', + 'argc', 'argidx', 'argv', 'atan', 'browse', 'browsedir', + 'bufexists', 'buflisted', 'bufloaded', 'bufname', 'bufnr', + 'bufwinnr', 'byte2line', 'byteidx', 'ceil', 'changenr', + 'char2nr', 'cindent', 'clearmatches', 'col', 'complete', + 'complete_add', 'complete_check', 'confirm', 'copy', + 'cos', 'count', 'cscope_connection', 'cursor', 'deepcopy', + 'delete', 'did_filetype', 'diff_filler', 'diff_hlID', + 'empty', 'escape', 'eval', 'eventhandler', 'executable', + 'exists', 'expand', 'extend', 'feedkeys', 'filereadable', + 'filewritable', 'filter', 'finddir', 'findfile', 'float2nr', + 'floor', 'fnameescape', 'fnamemodify', 'foldclosed', + 'foldclosedend', 'foldlevel', 'foldtext', 'foldtextresult', + 'foreground', 'garbagecollect', 'get', 'getbufline', + 'getbufvar', 'getchar', 'getcharmod', 'getcmdline', + 'getcmdpos', 'getcmdtype', 'getcwd', 'getfontname', + 'getfperm', 'getfsize', 'getftime', 'getftype', 'getline', 'getloclist', 'getmatches', 'getpid', 'getpos', 'getqflist', 'getreg', 'getregtype', 'gettabwinvar', 'getwinposx', 'getwinposy', 'getwinvar', 'glob', 'globpath', 'has', 'has_key', 'haslocaldir', 'hasmapto', 'histadd', 'histdel', - 'histget', 'histnr', 'hlexists', 'hlID', 'hostname', 'iconv', + 'histget', 'histnr', 'hlID', 'hlexists', 'hostname', 'iconv', 'indent', 'index', 'input', 'inputdialog', 'inputlist', 'inputrestore', 'inputsave', 'inputsecret', 'insert', 'isdirectory', 'islocked', 'items', 'join', 'keys', 'len', 'libcall', 'libcallnr', 'line', 'line2byte', 'lispindent', - 'localtime', 'log10', 'map', 'maparg', 'mapcheck', 'match', - 'matchadd', 'matcharg', 'matchdelete', 'matchend', 'matchlist', + 'localtime', 'log10', 'maparg', 'mapcheck', 'matchadd', + 'matcharg', 'matchdelete', 'matchend', 'matchlist', 'matchstr', 'max', 'min', 'mkdir', 'mode', 'nextnonblank', - 'nr2char', 'pathshorten', 'pow', 'prevnonblank', 'printf', - 'pumvisible', 'range', 'readfile', 'reltime', 'reltimestr', - 'remote_expr', 'remote_foreground', 'remote_peek', - 'remote_read', 'remote_send', 'remove', 'rename', 'repeat', - 'resolve', 'reverse', 'round', 'search', 'searchdecl', - 'searchpair', 'searchpairpos', 'searchpos', 'server2client', - 'serverlist', 'setbufvar', 'setcmdpos', 'setline', - 'setloclist', 'setmatches', 'setpos', 'setqflist', 'setreg', - 'settabwinvar', 'setwinvar', 'shellescape', 'simplify', 'sin', - 'sort', 'soundfold', 'spellbadword', 'spellsuggest', 'split', - 'sqrt', 'str2float', 'str2nr', 'strftime', 'stridx', 'string', - 'strlen', 'strpart', 'strridx', 'strtrans', 'submatch', - 'substitute', 'synID', 'synIDattr', 'synIDtrans', 'synstack', - 'system', 'tabpagebuflist', 'tabpagenr', 'tabpagewinnr', - 'taglist', 'tagfiles', 'tempname', 'tolower', 'toupper', 'tr', - 'trunc', 'type', 'values', 'virtcol', 'visualmode', 'winbufnr', + 'nr2char', 'off', 'on', 'pathshorten', 'plugin', 'pow', + 'prevnonblank', 'printf', 'pumvisible', 'range', 'readfile', + 'reltime', 'reltimestr', 'remote_expr', 'remote_foreground', + 'remote_peek', 'remote_read', 'remote_send', 'remove', + 'rename', 'repeat', 'resolve', 'reverse', 'round', 'search', + 'searchdecl', 'searchpair', 'searchpairpos', 'searchpos', + 'server2client', 'serverlist', 'setbufvar', 'setcmdpos', + 'setline', 'setloclist', 'setmatches', 'setpos', 'setqflist', + 'setreg', 'settabwinvar', 'setwinvar', 'shellescape', + 'simplify', 'sin', 'sort', 'soundfold', 'spellbadword', + 'spellsuggest', 'split', 'sqrt', 'str2float', 'str2nr', + 'strftime', 'stridx', 'string', 'strlen', 'strpart', + 'strridx', 'strtrans', 'submatch', 'substitute', + 'synID', 'synIDattr', 'synIDtrans', 'synstack', 'system', + 'tabpagebuflist', 'tabpagenr', 'tabpagewinnr', 'tagfiles', + 'taglist', 'tempname', 'tolower', 'toupper', 'tr', 'trunc', + 'type', 'values', 'virtcol', 'visualmode', 'winbufnr', 'wincol', 'winheight', 'winline', 'winnr', 'winrestcmd', 'winrestview', 'winsaveview', 'winwidth', 'writefile' ) @@ -182,4 +416,4 @@ $language_data = array( 'HIGHLIGHT_STRICT_BLOCK' => array() ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/visualfoxpro.php b/inc/geshi/visualfoxpro.php index 0cb73c2a0..4d9f649ce 100644 --- a/inc/geshi/visualfoxpro.php +++ b/inc/geshi/visualfoxpro.php @@ -4,7 +4,7 @@ * ---------------- * Author: Roberto Armellin (r.armellin@tin.it) * Copyright: (c) 2004 Roberto Armellin, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/09/17 * * Visual FoxPro language file for GeSHi. @@ -69,7 +69,7 @@ $language_data = array ( 'At_c','Atan','Atc','Atcc','Atcline','Atline', 'Atn2','Aused','Autoform','Autoreport','Avcxclasses','Average', 'BarCount','BarPrompt','BatchMode','BatchUpdateCount','Begin','BellSound', - 'BinToC','Bintoc','Bitand','Bitclear','Bitlshift','Bitnot', + 'BinToC','Bitand','Bitclear','Bitlshift','Bitnot', 'Bitor','Bitrshift','Bitset','Bittest','Bitxor','Bof', 'Browse','BrowseRefresh','Buffering','BuilderLock','COMArray','COMReturnError', 'CToBin','Calculate','Call','Capslock','Cd','Cdow', @@ -81,7 +81,7 @@ $language_data = array ( 'Cot','Count','Coverage','Cpconvert','Cpcurrent','Cpdbf', 'Cpnotrans','Create','CreateBinary','Createobject','Createobjectex','Createoffline', 'CrsBuffering','CrsFetchMemo','CrsFetchSize','CrsMaxRows','CrsMethodUsed','CrsNumBatch', - 'CrsShareConnection','CrsUseMemoSize','CrsWhereClause','Ctobin','Ctod','Ctot', + 'CrsShareConnection','CrsUseMemoSize','CrsWhereClause','Ctod','Ctot', 'Curdate','Curdir','CurrLeft','CurrSymbol','CursorGetProp','CursorSetProp', 'Curtime','Curval','DBGetProp','DBSetProp','DB_BufLockRow','DB_BufLockTable', 'DB_BufOff','DB_BufOptRow','DB_BufOptTable','DB_Complette','DB_DeleteInsert','DB_KeyAndModified', @@ -93,7 +93,7 @@ $language_data = array ( 'Debugout','Declare','DefOLELCid','DefaultValue','Defaultext','Degrees', 'DeleteTrigger','Desc','Description','Difference','Dimension','Dir', 'Directory','Diskspace','DispLogin','DispWarnings','Display','Dll', - 'Dmy','DoDefault','DoEvents','Doc','Doevents','Dow', + 'Dmy','DoDefault','DoEvents','Doc','Dow', 'Drivetype','Drop','Dropoffline','Dtoc','Dtor','Dtos', 'Dtot','DynamicInputMask','Each','Edit','Eject','Elif', 'End','Eof','Erase','Evaluate','Event','Eventtracking', @@ -115,12 +115,12 @@ $language_data = array ( 'Indbc','Index','Indexseek','Inkey','Inlist','Input', 'Insert','InsertTrigger','Insmode','IsBlank','IsFLocked','IsLeadByte', 'IsMouse','IsNull','IsRLocked','Isalpha','Iscolor','Isdigit', - 'Isexclusive','Isflocked','Ishosted','Islower','Isreadonly','Isrlocked', - 'Isupper','Italian','Japan','Join','Justdrive','Justext', + 'IsExclusive','Ishosted','IsLower','IsReadOnly', + 'IsUpper','Italian','Japan','Join','Justdrive','Justext', 'Justfname','Justpath','Juststem','KeyField','KeyFieldList','Keyboard' ), 2 => array('Keymatch','LastProject','Lastkey','Lcase','Leftc','Len', - 'Lenc','Length','Likec','Lineno','LoadPicture','Loadpicture', + 'Lenc','Length','Likec','Lineno','LoadPicture', 'Locate','Locfile','Log','Log10','Logout','Lookup', 'Loop','Lower','Ltrim','Lupdate','Mail','MaxRecords', 'Mcol','Md','Mdown','Mdx','Mdy','Memlines', @@ -148,7 +148,7 @@ $language_data = array ( 'SQLBatchMode','SQLCancel','SQLColumns','SQLConnect','SQLConnectTimeOut','SQLDisconnect', 'SQLDispLogin','SQLDispWarnings','SQLExec','SQLGetProp','SQLIdleTimeOut','SQLMoreResults', 'SQLPrepare','SQLQueryTimeOut','SQLSetProp','SQLTables','SQLTransactions','SQLWaitTime', - 'Save','SavePicture','Savepicture','ScaleUnits','Scatter','Scols', + 'Save','SavePicture','ScaleUnits','Scatter','Scols', 'Scroll','Sec','Second','Seek','Select','SendUpdates', 'Set','SetDefault','Setfldstate','Setup','ShareConnection','ShowOLEControls', 'ShowOLEInsertable','ShowVCXs','Sign','Sin','Size','SizeBox', @@ -453,4 +453,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/visualprolog.php b/inc/geshi/visualprolog.php index 19eab2de6..5c9bbd4d0 100644 --- a/inc/geshi/visualprolog.php +++ b/inc/geshi/visualprolog.php @@ -4,7 +4,7 @@ * ---------- * Author: Thomas Linder Puls (puls@pdc.dk) * Copyright: (c) 2008 Thomas Linder Puls (puls@pdc.dk) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/11/20 * * Visual Prolog language file for GeSHi. diff --git a/inc/geshi/whitespace.php b/inc/geshi/whitespace.php index 59bbdb8e7..a27a7b920 100644 --- a/inc/geshi/whitespace.php +++ b/inc/geshi/whitespace.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2009/10/31 * * Whitespace language file for GeSHi. diff --git a/inc/geshi/whois.php b/inc/geshi/whois.php new file mode 100644 index 000000000..019e91450 --- /dev/null +++ b/inc/geshi/whois.php @@ -0,0 +1,181 @@ + 'Whois (RPSL format)', + 'COMMENT_SINGLE' => array(1 => '% ', 2 => '%ERROR:'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + //Description + 3 => '/(?:(?<=^remarks:)|(?<=^descr:))(.|\n\s)*$/mi', + + //Contact Details + 4 => '/(?<=^address:)(.|\n\s)*$/mi', + 5 => '/\+\d+(?:(?:\s\(\d+(\s\d+)*\))?(?:\s\d+)+|-\d+-\d+)/', + 6 => '/\b(?!-|\.)[\w\-\.]+(?!-|\.)@((?!-)[\w\-]+\.)+\w+\b/', + + //IP, Networks and AS information\links + 7 => '/\b(? '/\bAS\d+\b/' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( //Object Types + 'as-block','as-set','aut-num','domain','filter-set','inet-rtr', + 'inet6num','inetnum','irt','key-cert','limerick','mntner', + 'organisation','peering-set','person','poem','role','route-set', + 'route','route6','rtr-set' + ), + 2 => array( //Field Types + 'abuse-mailbox','address','admin-c','aggr-bndry','aggr-mtd','alias', + 'as-block','as-name','as-set','aut-num','auth','author','certif', + 'changed','components','country','default','descr','dom-net', + 'domain','ds-rdata','e-mail','encryption','export','export-comps', + 'fax-no','filter','filter-set','fingerpr','form','holes','ifaddr', + 'import','inet-rtr','inet6num','inetnum','inject','interface','irt', + 'irt-nfy','key-cert','limerick','local-as','mbrs-by-ref', + 'member-of','members','method','mnt-by','mnt-domains','mnt-irt', + 'mnt-lower','mnt-nfy','mnt-ref','mnt-routes','mntner','mp-default', + 'mp-export','mp-filter','mp-import','mp-members','mp-peer', + 'mp-peering','netname','nic-hdl','notify','nserver','org', + 'org-name','org-type','organisation','origin','owner','peer', + 'peering','peering-set','person','phone','poem','ref-nfy','refer', + 'referral-by','remarks','rev-srv','role','route','route-set', + 'route6','rtr-set','signature','source','status','sub-dom','tech-c', + 'text','upd-to','zone-c' + ), + 3 => array( //RPSL reserved + 'accept','action','and','announce','any','as-any','at','atomic', + 'except','from','inbound','into','networks','not','or','outbound', + 'peeras','refine','rs-any','to' + ) + ), + 'SYMBOLS' => array( + ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF; font-weight: bold;', + 2 => 'color: #000080; font-weight: bold;', + 3 => 'color: #990000; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #666666; font-style: italic;', + 3 => 'color: #404080;', + 4 => 'color: #408040;', + 5 => 'color: #408040;', + 6 => 'color: #408040;', + 7 => 'color: #804040;', + 8 => 'color: #804040;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => '', + ), + 'NUMBERS' => array( + 0 => 'color: #000080;', + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #0000FF;' + ), + 'REGEXPS' => array( + 0 => 'color: #000088;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.irr.net/docs/rpsl.html' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Variables + 0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*" + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 1 => array( + 'DISALLOWED_BEFORE' => '(?<=\A |\A \n(?m:^)|\n\n(?m:^))' + ), + 2 => array( + 'DISALLOWED_BEFORE' => '(?m:^)' + ) + ), + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + 'SYMBOLS' => GESHI_NEVER, + 'BRACKETS' => GESHI_NEVER, + 'STRINGS' => GESHI_NEVER, + 'ESCAPE_CHAR' => GESHI_NEVER, + 'NUMBERS' => GESHI_NEVER, + 'METHODS' => GESHI_NEVER, + 'SCRIPT' => GESHI_NEVER + ) + ), +); + +?> \ No newline at end of file diff --git a/inc/geshi/winbatch.php b/inc/geshi/winbatch.php index e86b03636..5b5dcc1df 100644 --- a/inc/geshi/winbatch.php +++ b/inc/geshi/winbatch.php @@ -4,7 +4,7 @@ * ------------ * Author: Craig Storey (storey.craig@gmail.com) * Copyright: (c) 2004 Craig Storey (craig.xcottawa.ca) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2006/05/19 * * WinBatch language file for GeSHi. @@ -106,8 +106,8 @@ $language_data = array ( 'RegExistKey', 'RegEntryType', 'RegDelValue', 'RegDeleteKey', 'RegCreateKey', 'RegConnect', 'RegCloseKey', 'RegApp', 'Random', 'PtrPersistent', 'PtrGlobalDefine', 'PtrGlobal', 'Print', 'PlayWaveform', 'PlayMidi', 'PlayMedia', 'PipeServerWrite', 'PipeServerRead', 'PipeServerCreate', 'PipeServerClose', 'PipeInfo', 'PipeClientSendRecvData', 'PipeClientOpen', 'PipeClientClose', 'Pause', - 'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'objecteventremove', 'ObjectEventAdd', - 'objecteventadd', 'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext', + 'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'ObjectEventAdd', + 'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext', 'ObjectCollectionClose', 'ObjectClose', 'ObjectAccess', 'Num2Char', 'NetInfo', 'MsgTextGet', 'MousePlay', 'MouseMove', 'MouseInfo', 'MouseDrag', 'MouseCoords', 'MouseClickBtn', 'MouseClick', 'mod', 'Min', 'Message', 'Max', 'Loge', 'LogDisk', 'Log10', 'LastError', 'KeyToggleSet', 'KeyToggleGet', 'ItemSortNc', 'ItemSort', 'ItemSelect', 'ItemReplace', 'ItemRemove', 'ItemLocate', 'ItemInsert', @@ -366,4 +366,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/xml.php b/inc/geshi/xml.php index 1222e9fb9..608c99f00 100644 --- a/inc/geshi/xml.php +++ b/inc/geshi/xml.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2004/09/01 * * XML language file for GeSHi. Based on the idea/file by Christian Weiske diff --git a/inc/geshi/xorg_conf.php b/inc/geshi/xorg_conf.php index c32c460b3..cdb6c36c9 100644 --- a/inc/geshi/xorg_conf.php +++ b/inc/geshi/xorg_conf.php @@ -4,7 +4,7 @@ * ---------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff (http://milianw.de) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2008/06/18 * * xorg.conf language file for GeSHi. diff --git a/inc/geshi/xpp.php b/inc/geshi/xpp.php index db0019dd0..5f009ec8c 100644 --- a/inc/geshi/xpp.php +++ b/inc/geshi/xpp.php @@ -4,7 +4,7 @@ * ------- * Author: Simon Butcher (simon@butcher.name) * Copyright: (c) 2007 Simon Butcher (http://simon.butcher.name/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/02/27 * * Axapta/Dynamics Ax X++ language file for GeSHi. diff --git a/inc/geshi/z80.php b/inc/geshi/z80.php index 2a9b14886..b41e80c74 100644 --- a/inc/geshi/z80.php +++ b/inc/geshi/z80.php @@ -4,7 +4,7 @@ * ------- * Author: Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2007-2008 Benny Baumann (http://www.omorphia.de/) - * Release Version: 1.0.8.4 + * Release Version: 1.0.8.6 * Date Started: 2007/02/06 * * ZiLOG Z80 Assembler language file for GeSHi. @@ -129,7 +129,7 @@ $language_data = array ( //Hex numbers 0 => '0[0-9a-fA-F]{1,32}[hH]', //Binary numbers - 1 => '\%[01]{1,64}|[01]{1,64}[bB]?', + 1 => '\%[01]{1,64}|[01]{1,64}[bB]?(?![^<]*>)', //Labels 2 => '^[_a-zA-Z][_a-zA-Z0-9]?\:' ), @@ -141,4 +141,4 @@ $language_data = array ( 'TAB_WIDTH' => 8 ); -?> +?> \ No newline at end of file -- cgit v1.2.3 From 45c73e39a116986b7d3a6328a72ac18a054ddf9c Mon Sep 17 00:00:00 2001 From: Stefan Riemer Date: Mon, 11 Jan 2010 18:19:48 +0100 Subject: German (informal) language update --- inc/lang/de-informal/lang.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'inc') diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index 1747e3288..d4b9ff928 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -15,6 +15,7 @@ * @author Arne Pelka * @author Alexander Fischer * @author Juergen Schwarzer + * @author ste-re@web.de */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -247,3 +248,10 @@ $lang['mu_filetypes'] = 'Erlaubte Dateitypen'; $lang['mu_info'] = 'Dateien hochgeladen.'; $lang['mu_lasterr'] = 'Letzter Fehler:'; $lang['recent_global'] = 'Im Moment siehst du die Änderungen im Namensraum %s. Du kannst auch die Änderungen im gesamten Wiki sehen.'; +$lang['years'] = 'vor %d Jahren'; +$lang['months'] = 'vor %d Monaten'; +$lang['weeks'] = 'vor %d Wochen'; +$lang['days'] = 'vor %d Tagen'; +$lang['hours'] = 'vor %d Stunden'; +$lang['minutes'] = 'vor %d Minuten'; +$lang['seconds'] = 'vor %d Sekunden'; -- cgit v1.2.3 From 2d880650d862a116327ef08c24c9c7f5c0586797 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 12 Jan 2010 14:28:38 +0100 Subject: Finally fix whitespace and HTML problem in diff. --- inc/DifferenceEngine.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'inc') diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php index e28826c1f..760f1c39a 100644 --- a/inc/DifferenceEngine.php +++ b/inc/DifferenceEngine.php @@ -976,10 +976,17 @@ class TableDiffFormatter extends DiffFormatter $this->trailing_context_lines = 2; } + function format($diff) { + // Preserve whitespaces by converting some to non-breaking spaces. + // Do not convert all of them to allow word-wrap. + $val = parent::format($diff); + $val = str_replace(' ','  ', $val); + $val = preg_replace('/ (?=<)|(?<=[ >]) /', ' ', $val); + return $val; + } + function _pre($text){ $text = htmlspecialchars($text); - $text = str_replace(' ','  ',$text); - if($text{0} == ' ') $text = ' '.substr($text,1); return $text; } @@ -1003,27 +1010,21 @@ class TableDiffFormatter extends DiffFormatter } function addedLine( $line ) { - $line = str_replace(' ','  ',$line); - if($line{0} == ' ') $line = ' '.substr($line,1); return '+' . $line.''; + } function deletedLine( $line ) { - $line = str_replace(' ','  ',$line); - if($line{0} == ' ') $line = ' '.substr($line,1); return '-' . $line.''; } function emptyLine() { - //$line = str_replace(' ','  ',$line); return ' '; } function contextLine( $line ) { - $line = str_replace(' ','  ',$line); - if($line{0} == ' ') $line = ' '.substr($line,1); return ' '.$line.''; } -- cgit v1.2.3 From 67f9913d4a386fe65c9e72ca452b0fa91b010b12 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 15 Jan 2010 12:18:43 +0100 Subject: removed deprecated PHP4 construct Assigning the return value of new by reference is deprecated, PHP5's new automatically assigns by reference --- inc/SimplePie.php | 152 ++++++++++++++++++++++++------------------------- inc/parser/handler.php | 14 ++--- inc/parser/lexer.php | 2 +- inc/parser/parser.php | 2 +- inc/parser/xhtml.php | 2 +- inc/parserutils.php | 8 +-- 6 files changed, 90 insertions(+), 90 deletions(-) (limited to 'inc') diff --git a/inc/SimplePie.php b/inc/SimplePie.php index 1c97e2384..276a654ee 100644 --- a/inc/SimplePie.php +++ b/inc/SimplePie.php @@ -648,7 +648,7 @@ class SimplePie function SimplePie($feed_url = null, $cache_location = null, $cache_duration = null) { // Other objects, instances created here so we can set options on them - $this->sanitize =& new SimplePie_Sanitize; + $this->sanitize = new SimplePie_Sanitize; // Set options if they're passed to the constructor if ($cache_location !== null) @@ -979,7 +979,7 @@ class SimplePie { if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Sanitize')) { - $this->sanitize =& new $class; + $this->sanitize = new $class; return true; } return false; @@ -1383,7 +1383,7 @@ function embed_wmedia(width, height, link) { // Decide whether to enable caching if ($this->cache && $parsed_feed_url['scheme'] !== '') { - $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); + $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'); } // If it's enabled and we don't want an XML dump, use the cache if ($cache && !$this->xml_dump) @@ -1438,7 +1438,7 @@ function embed_wmedia(width, height, link) { { $headers['if-none-match'] = $this->data['headers']['etag']; } - $file =& new $this->file_class($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen); + $file = new $this->file_class($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen); if ($file->success) { if ($file->status_code == 304) @@ -1479,7 +1479,7 @@ function embed_wmedia(width, height, link) { } else { - $file =& new $this->file_class($this->feed_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen); + $file = new $this->file_class($this->feed_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen); } } // If the file connection has an error, set SimplePie::error to that and quit @@ -1497,7 +1497,7 @@ function embed_wmedia(width, height, link) { } // Check if the supplied URL is a feed, if it isn't, look for it. - $locate =& new $this->locator_class($file, $this->timeout, $this->useragent, $this->file_class, $this->max_checked_feeds); + $locate = new $this->locator_class($file, $this->timeout, $this->useragent, $this->file_class, $this->max_checked_feeds); if (!$locate->is_feed($file)) { // We need to unset this so that if SimplePie::set_file() has been called that object is untouched @@ -1510,7 +1510,7 @@ function embed_wmedia(width, height, link) { { trigger_error("$cache->name is not writeable", E_USER_WARNING); } - $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'); + $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'); } $this->feed_url = $file->url; } @@ -1595,7 +1595,7 @@ function embed_wmedia(width, height, link) { // Strip illegal characters $data = SimplePie_Misc::utf8_bad_replace($data); - $parser =& new $this->parser_class(); + $parser = new $this->parser_class(); $parser->pre_process($data, 'UTF-8'); // If we want the XML, just output that and quit if ($this->xml_dump) @@ -1798,7 +1798,7 @@ function embed_wmedia(width, height, link) { if ($this->cache && $this->favicon_handler) { - $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $favicon), 'spi'); + $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $favicon), 'spi'); if ($cache->load()) { @@ -1806,7 +1806,7 @@ function embed_wmedia(width, height, link) { } else { - $file =& new $this->file_class($favicon, $this->timeout / 10, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); + $file = new $this->file_class($favicon, $this->timeout / 10, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); if ($file->success && ($file->status_code == 200 || ($file->status_code > 206 && $file->status_code < 300)) && strlen($file->body) > 0) { @@ -2556,7 +2556,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'entry')) @@ -2564,7 +2564,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'item')) @@ -2572,7 +2572,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'item')) @@ -2580,7 +2580,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } if ($items = $this->get_channel_tags('', 'item')) @@ -2588,7 +2588,7 @@ function embed_wmedia(width, height, link) { $keys = array_keys($items); foreach ($keys as $key) { - $this->data['items'][] =& new $this->item_class($this, $items[$key]); + $this->data['items'][] = new $this->item_class($this, $items[$key]); } } } @@ -2914,19 +2914,19 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories[] =& new $this->feed->category_class($term, $scheme, $label); + $categories[] = new $this->feed->category_class($term, $scheme, $label); } foreach ((array) $this->get_item_tags('', 'category') as $category) { - $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $categories[] = new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category) { - $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $categories[] = new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category) { - $categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $categories[] = new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } if (!empty($categories)) @@ -2977,7 +2977,7 @@ class SimplePie_Item } if ($name !== null || $email !== null || $uri !== null) { - $authors[] =& new $this->feed->author_class($name, $uri, $email); + $authors[] = new $this->feed->author_class($name, $uri, $email); } } if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author')) @@ -2999,24 +2999,24 @@ class SimplePie_Item } if ($name !== null || $email !== null || $uri !== null) { - $authors[] =& new $this->feed->author_class($name, $url, $email); + $authors[] = new $this->feed->author_class($name, $url, $email); } } if ($author = $this->get_item_tags('', 'author')) { - $authors[] =& new $this->feed->author_class(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); + $authors[] = new $this->feed->author_class(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author) { - $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $authors[] = new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author) { - $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $authors[] = new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author) { - $authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); + $authors[] = new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null); } if (!empty($authors)) @@ -3298,7 +3298,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions_parent[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } } elseif ($captions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text')) @@ -3330,7 +3330,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions_parent[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } } if (is_array($captions_parent)) @@ -3360,7 +3360,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + $categories_parent[] = new $this->feed->category_class($term, $scheme, $label); } foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category) { @@ -3383,7 +3383,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + $categories_parent[] = new $this->feed->category_class($term, $scheme, $label); } foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'category') as $category) { @@ -3394,7 +3394,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + $categories_parent[] = new $this->feed->category_class($term, $scheme, $label); if (isset($category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'])) { @@ -3404,7 +3404,7 @@ class SimplePie_Item { $label = $this->sanitize($subcategory['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories_parent[] =& new $this->feed->category_class($term, $scheme, $label); + $categories_parent[] = new $this->feed->category_class($term, $scheme, $label); } } } @@ -3426,7 +3426,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights_parent = new $this->feed->copyright_class($copyright_url, $copyright_label); } elseif ($copyright = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright')) { @@ -3440,7 +3440,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights_parent = new $this->feed->copyright_class($copyright_url, $copyright_label); } // CREDITS @@ -3467,7 +3467,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits_parent[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } } elseif ($credits = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit')) @@ -3493,7 +3493,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits_parent[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } } if (is_array($credits_parent)) @@ -3682,7 +3682,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value); } } elseif ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit')) @@ -3695,7 +3695,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value); } } elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating')) @@ -3716,7 +3716,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value); } } elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit')) @@ -3729,7 +3729,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value); } } if (is_array($ratings_parent)) @@ -3757,7 +3757,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } elseif ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block')) @@ -3771,7 +3771,7 @@ class SimplePie_Item { $restriction_relationship = 'deny'; } - $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction')) @@ -3793,7 +3793,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block')) @@ -3807,7 +3807,7 @@ class SimplePie_Item { $restriction_relationship = 'deny'; } - $restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } } if (is_array($restrictions_parent)) @@ -3981,7 +3981,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } if (is_array($captions)) { @@ -4017,7 +4017,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } if (is_array($captions)) { @@ -4053,7 +4053,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories[] =& new $this->feed->category_class($term, $scheme, $label); + $categories[] = new $this->feed->category_class($term, $scheme, $label); } } if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'])) @@ -4079,7 +4079,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories[] =& new $this->feed->category_class($term, $scheme, $label); + $categories[] = new $this->feed->category_class($term, $scheme, $label); } } if (is_array($categories) && is_array($categories_parent)) @@ -4108,7 +4108,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights = new $this->feed->copyright_class($copyright_url, $copyright_label); } elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'])) { @@ -4122,7 +4122,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights = new $this->feed->copyright_class($copyright_url, $copyright_label); } else { @@ -4153,7 +4153,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } if (is_array($credits)) { @@ -4183,7 +4183,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } if (is_array($credits)) { @@ -4336,7 +4336,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings[] = new $this->feed->rating_class($rating_scheme, $rating_value); } if (is_array($ratings)) { @@ -4361,7 +4361,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings[] = new $this->feed->rating_class($rating_scheme, $rating_value); } if (is_array($ratings)) { @@ -4393,7 +4393,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } if (is_array($restrictions)) { @@ -4419,7 +4419,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } if (is_array($restrictions)) { @@ -4473,7 +4473,7 @@ class SimplePie_Item $title = $title_parent; } - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); } } } @@ -4602,7 +4602,7 @@ class SimplePie_Item { $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); + $captions[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text); } if (is_array($captions)) { @@ -4638,7 +4638,7 @@ class SimplePie_Item { $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT); } - $categories[] =& new $this->feed->category_class($term, $scheme, $label); + $categories[] = new $this->feed->category_class($term, $scheme, $label); } } if (is_array($categories) && is_array($categories_parent)) @@ -4671,7 +4671,7 @@ class SimplePie_Item { $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label); + $copyrights = new $this->feed->copyright_class($copyright_url, $copyright_label); } else { @@ -4702,7 +4702,7 @@ class SimplePie_Item { $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); + $credits[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name); } if (is_array($credits)) { @@ -4806,7 +4806,7 @@ class SimplePie_Item { $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value); + $ratings[] = new $this->feed->rating_class($rating_scheme, $rating_value); } if (is_array($ratings)) { @@ -4838,7 +4838,7 @@ class SimplePie_Item { $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT); } - $restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); + $restrictions[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value); } if (is_array($restrictions)) { @@ -4877,7 +4877,7 @@ class SimplePie_Item $title = $title_parent; } - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width); } } } @@ -4913,7 +4913,7 @@ class SimplePie_Item } // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); } } @@ -4948,7 +4948,7 @@ class SimplePie_Item } // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); } } @@ -4983,7 +4983,7 @@ class SimplePie_Item } // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor - $this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); + $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width); } } $this->data['enclosures'] = array_values(SimplePie_Misc::array_unique($this->data['enclosures'])); @@ -5306,7 +5306,7 @@ class SimplePie_Enclosure $this->width = $width; if (class_exists('idna_convert')) { - $idn =& new idna_convert; + $idn = new idna_convert; $parsed = SimplePie_Misc::parse_url($link); $this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']); } @@ -6502,7 +6502,7 @@ class SimplePie_File { if (class_exists('idna_convert')) { - $idn =& new idna_convert; + $idn = new idna_convert; $parsed = SimplePie_Misc::parse_url($url); $url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']); } @@ -6563,7 +6563,7 @@ class SimplePie_File curl_close($fp); $this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1); $this->headers = array_pop($this->headers); - $parser =& new SimplePie_HTTP_Parser($this->headers); + $parser = new SimplePie_HTTP_Parser($this->headers); if ($parser->parse()) { $this->headers = $parser->headers; @@ -6672,7 +6672,7 @@ class SimplePie_File } if (!$info['timed_out']) { - $parser =& new SimplePie_HTTP_Parser($this->headers); + $parser = new SimplePie_HTTP_Parser($this->headers); if ($parser->parse()) { $this->headers = $parser->headers; @@ -7548,7 +7548,7 @@ class SimplePie_Misc */ function display_cached_file($identifier_url, $cache_location = './cache', $cache_extension = 'spc', $cache_class = 'SimplePie_Cache', $cache_name_function = 'md5') { - $cache =& new $cache_class($cache_location, call_user_func($cache_name_function, $identifier_url), $cache_extension); + $cache = new $cache_class($cache_location, call_user_func($cache_name_function, $identifier_url), $cache_extension); if ($file = $cache->load()) { @@ -10116,7 +10116,7 @@ class SimplePie_Locator if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !empty($link['attribs']['type']['data']) && in_array(strtolower(SimplePie_Misc::parse_mime($link['attribs']['type']['data'])), array('application/rss+xml', 'application/atom+xml')))) { $this->checked_feeds++; - $feed =& new $this->file_class($href, $this->timeout, 5, null, $this->useragent); + $feed = new $this->file_class($href, $this->timeout, 5, null, $this->useragent); if ($this->is_feed($feed)) { return $feed; @@ -10181,7 +10181,7 @@ class SimplePie_Locator if (in_array(strtolower(strrchr($value, '.')), array('.rss', '.rdf', '.atom', '.xml'))) { $this->checked_feeds++; - $feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent); + $feed = new $this->file_class($value, $this->timeout, 5, null, $this->useragent); if ($this->is_feed($feed)) { return $feed; @@ -10206,7 +10206,7 @@ class SimplePie_Locator if (preg_match('/(rss|rdf|atom|xml)/i', $value)) { $this->checked_feeds++; - $feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent); + $feed = new $this->file_class($value, $this->timeout, 5, null, $this->useragent); if ($this->is_feed($feed)) { return $feed; @@ -10744,7 +10744,7 @@ class SimplePie_Sanitize if (isset($img['attribs']['src']['data'])) { $image_url = $img['attribs']['src']['data']; - $cache =& new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $image_url), 'spi'); + $cache = new $this->cache_class($this->cache_location, call_user_func($this->cache_name_function, $image_url), 'spi'); if ($cache->load()) { @@ -10753,7 +10753,7 @@ class SimplePie_Sanitize } else { - $file =& new $this->file_class($image_url, $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); + $file = new $this->file_class($image_url, $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen); $headers = $file->headers; if ($file->success && ($file->status_code == 200 || ($file->status_code > 206 && $file->status_code < 300))) diff --git a/inc/parser/handler.php b/inc/parser/handler.php index 9fe5866ad..eaa42f9bf 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -20,7 +20,7 @@ class Doku_Handler { var $rewriteBlocks = true; function Doku_Handler() { - $this->CallWriter = & new Doku_Handler_CallWriter($this); + $this->CallWriter = new Doku_Handler_CallWriter($this); } function _addCall($handler, $args, $pos) { @@ -47,7 +47,7 @@ class Doku_Handler { } if ( $this->rewriteBlocks ) { - $B = & new Doku_Handler_Block(); + $B = new Doku_Handler_Block(); $this->calls = $B->process($this->calls); } @@ -212,7 +212,7 @@ class Doku_Handler { $this->_footnote = true; - $ReWriter = & new Doku_Handler_Nest($this->CallWriter,'footnote_close'); + $ReWriter = new Doku_Handler_Nest($this->CallWriter,'footnote_close'); $this->CallWriter = & $ReWriter; $this->_addCall('footnote_open', array(), $pos); break; @@ -240,7 +240,7 @@ class Doku_Handler { function listblock($match, $state, $pos) { switch ( $state ) { case DOKU_LEXER_ENTER: - $ReWriter = & new Doku_Handler_List($this->CallWriter); + $ReWriter = new Doku_Handler_List($this->CallWriter); $this->CallWriter = & $ReWriter; $this->_addCall('list_open', array($match), $pos); break; @@ -302,7 +302,7 @@ class Doku_Handler { function preformatted($match, $state, $pos) { switch ( $state ) { case DOKU_LEXER_ENTER: - $ReWriter = & new Doku_Handler_Preformatted($this->CallWriter); + $ReWriter = new Doku_Handler_Preformatted($this->CallWriter); $this->CallWriter = & $ReWriter; $this->_addCall('preformatted_start',array(), $pos); break; @@ -328,7 +328,7 @@ class Doku_Handler { switch ( $state ) { case DOKU_LEXER_ENTER: - $ReWriter = & new Doku_Handler_Quote($this->CallWriter); + $ReWriter = new Doku_Handler_Quote($this->CallWriter); $this->CallWriter = & $ReWriter; $this->_addCall('quote_start',array($match), $pos); break; @@ -580,7 +580,7 @@ class Doku_Handler { case DOKU_LEXER_ENTER: - $ReWriter = & new Doku_Handler_Table($this->CallWriter); + $ReWriter = new Doku_Handler_Table($this->CallWriter); $this->CallWriter = & $ReWriter; $this->_addCall('table_start', array(), $pos); diff --git a/inc/parser/lexer.php b/inc/parser/lexer.php index afd260a05..211945d8f 100644 --- a/inc/parser/lexer.php +++ b/inc/parser/lexer.php @@ -295,7 +295,7 @@ class Doku_Lexer { $this->_case = $case; $this->_regexes = array(); $this->_parser = &$parser; - $this->_mode = &new Doku_LexerStateStack($start); + $this->_mode = new Doku_LexerStateStack($start); $this->_mode_handlers = array(); } diff --git a/inc/parser/parser.php b/inc/parser/parser.php index a78b08a29..48facd6b5 100644 --- a/inc/parser/parser.php +++ b/inc/parser/parser.php @@ -61,7 +61,7 @@ class Doku_Parser { function addBaseMode(& $BaseMode) { $this->modes['base'] = & $BaseMode; if ( !$this->Lexer ) { - $this->Lexer = & new Doku_Lexer($this->Handler,'base', true); + $this->Lexer = new Doku_Lexer($this->Handler,'base', true); } $this->modes['base']->Lexer = & $this->Lexer; } diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 4ff5f18b8..20acf4281 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -966,7 +966,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { }elseif($ext == 'jpg' || $ext == 'jpeg'){ //try to use the caption from IPTC/EXIF require_once(DOKU_INC.'inc/JpegMeta.php'); - $jpeg =& new JpegMeta(mediaFN($src)); + $jpeg =new JpegMeta(mediaFN($src)); if($jpeg !== false) $cap = $jpeg->getTitle(); if($cap){ $title = $this->_xmlEntities($cap); diff --git a/inc/parserutils.php b/inc/parserutils.php index e2dd85979..471d46903 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -204,10 +204,10 @@ function p_get_instructions($text){ $modes = p_get_parsermodes(); // Create the parser - $Parser = & new Doku_Parser(); + $Parser = new Doku_Parser(); // Add the Handler - $Parser->Handler = & new Doku_Handler(); + $Parser->Handler = new Doku_Handler(); //add modes to parser foreach($modes as $mode){ @@ -416,7 +416,7 @@ function p_render_metadata($id, $orig){ } // set up the renderer - $renderer = & new Doku_Renderer_metadata(); + $renderer = new Doku_Renderer_metadata(); $renderer->meta = $orig['current']; $renderer->persistent = $orig['persistent']; @@ -587,7 +587,7 @@ function & p_get_renderer($mode) { msg("Renderer '$rname' for $mode not valid",-1); return null; } - $Renderer = & new $rclass(); + $Renderer = new $rclass(); }else{ // Maybe a plugin/component is available? list($plugin, $component) = $plugin_controller->_splitName($rname); -- cgit v1.2.3 From 49eb6e38061d744f4a35b78082dce49fa35f79c8 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 15 Jan 2010 19:50:13 +0100 Subject: some more coding standard compliance updates --- inc/HTTPClient.php | 1 - inc/IXR_Library.php | 15 +- inc/TarLib.class.php | 1547 +++++++++++++++++++++---------------------- inc/actions.php | 830 +++++++++++------------ inc/cache.php | 448 ++++++------- inc/changelog.php | 611 +++++++++-------- inc/cliopts.php | 37 +- inc/common.php | 1792 +++++++++++++++++++++++++------------------------- inc/confutils.php | 297 +++++---- inc/events.php | 320 ++++----- inc/form.php | 4 +- inc/fulltext.php | 178 ++--- 12 files changed, 3014 insertions(+), 3066 deletions(-) (limited to 'inc') diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 578d7e7cd..c88d1c45d 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -279,7 +279,6 @@ class HTTPClient { $written += $ret; } - // read headers from socket $r_headers = ''; do{ diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 2752e31f2..25d1066b0 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -300,7 +300,7 @@ class IXR_Server { if (!$data) { global $HTTP_RAW_POST_DATA; if (!$HTTP_RAW_POST_DATA) { - die('XML-RPC server accepts POST requests only.'); + die('XML-RPC server accepts POST requests only.'); } $data = $HTTP_RAW_POST_DATA; } @@ -342,14 +342,13 @@ EOD; $method = $this->callbacks[$methodname]; // Perform the callback and send the response -# Removed for DokuWiki to have a more consistent interface -# if (count($args) == 1) { -# // If only one paramater just send that instead of the whole array -# $args = $args[0]; -# } + # Removed for DokuWiki to have a more consistent interface + # if (count($args) == 1) { + # // If only one paramater just send that instead of the whole array + # $args = $args[0]; + # } - -# Adjusted for DokuWiki to use call_user_func_array + # Adjusted for DokuWiki to use call_user_func_array // args need to be an array $args = (array) $args; diff --git a/inc/TarLib.class.php b/inc/TarLib.class.php index ab802163b..3c1827554 100644 --- a/inc/TarLib.class.php +++ b/inc/TarLib.class.php @@ -59,860 +59,803 @@ define('ARCHIVE_DYNAMIC',0); define('ARCHIVE_RENAMECOMP',5); define('COMPRESS_DETECT',-1); -class TarLib -{ - var $_comptype; - var $_compzlevel; - var $_fp; - var $_memdat; - var $_nomf; - var $_result; - var $_initerror; - - /** - * constructor, initialize the class - * - * The constructor initialize the variables and prepare the class for the - * archive, and return the object created. Note that you can use multiple - * instances of the MaxgTar class, if you call this function another time and - * store the object in an other variable. - * - * In fact, MaxgTar accepts the following arguments (all are optional) : - * - * filename can be either a file name (absolute or relative). In this - * case, it can be used both for reading and writing. You can also open - * remote archive if you add a protocole name at the beginning of the file - * (ie https://host.dom/archive.tar.gz), but for reading only and if the - * directive allow_url_fopen is enabled in PHP.INI (this can be checked with - * TarInfo()). If you pass a file that doesn't exist, the script - * will try to create it. If the archive already exists and contains files, - * you can use Add() to append files.But by default this parameter - * is ARCHIVE_DYNAMIC (write only) so the archive is created in memory and - * can be sent to a file [writeArchive()] or to the client - * [sendClient()] - * - * compression_type should be a constant that represents a type of - * compression, or its integer value. The different values are described in - * the constants. - * - * compression_level is an integer between 1 and 9 (by default) an - * represent the GZIP or BZIP compression level. 1 produce fast compression, - * and 9 produce smaller files. See the RFC 1952 for more infos. - */ - function tarlib($p_filen = ARCHIVE_DYNAMIC , $p_comptype = COMPRESS_AUTO, $p_complevel = 9) - { - $this->_initerror = 0; - $this->_nomf = $p_filen; $flag=0; - if($p_comptype && $p_comptype % 5 == 0){$p_comptype /= ARCHIVE_RENAMECOMP; $flag=1;} - - if($p_complevel > 0 && $p_complevel <= 9) $this->_compzlevel = $p_complevel; - else $p_complevel = 9; - - if($p_comptype == COMPRESS_DETECT) - { - if(strtolower(substr($p_filen,-3)) == '.gz') $p_comptype = COMPRESS_GZIP; - elseif(strtolower(substr($p_filen,-4)) == '.bz2') $p_comptype = COMPRESS_BZIP; - else $p_comptype = COMPRESS_NONE; - } +class TarLib { + var $_comptype; + var $_compzlevel; + var $_fp; + var $_memdat; + var $_nomf; + var $_result; + var $_initerror; + + /** + * constructor, initialize the class + * + * The constructor initialize the variables and prepare the class for the + * archive, and return the object created. Note that you can use multiple + * instances of the MaxgTar class, if you call this function another time and + * store the object in an other variable. + * + * In fact, MaxgTar accepts the following arguments (all are optional) : + * + * filename can be either a file name (absolute or relative). In this + * case, it can be used both for reading and writing. You can also open + * remote archive if you add a protocole name at the beginning of the file + * (ie https://host.dom/archive.tar.gz), but for reading only and if the + * directive allow_url_fopen is enabled in PHP.INI (this can be checked with + * TarInfo()). If you pass a file that doesn't exist, the script + * will try to create it. If the archive already exists and contains files, + * you can use Add() to append files.But by default this parameter + * is ARCHIVE_DYNAMIC (write only) so the archive is created in memory and + * can be sent to a file [writeArchive()] or to the client + * [sendClient()] + * + * compression_type should be a constant that represents a type of + * compression, or its integer value. The different values are described in + * the constants. + * + * compression_level is an integer between 1 and 9 (by default) an + * represent the GZIP or BZIP compression level. 1 produce fast compression, + * and 9 produce smaller files. See the RFC 1952 for more infos. + */ + function tarlib($p_filen = ARCHIVE_DYNAMIC , $p_comptype = COMPRESS_AUTO, $p_complevel = 9) { + $this->_initerror = 0; + $this->_nomf = $p_filen; + $flag=0; + if($p_comptype && $p_comptype % 5 == 0){ + $p_comptype /= ARCHIVE_RENAMECOMP; + $flag=1; + } - switch($p_comptype) - { - case COMPRESS_GZIP: - if(!extension_loaded('zlib')) $this->_initerror = -1; - $this->_comptype = COMPRESS_GZIP; - break; - - case COMPRESS_BZIP: - if(!extension_loaded('bz2')) $this->_inierror = -2; - $this->_comptype = COMPRESS_BZIP; - break; - - case COMPRESS_AUTO: - if(extension_loaded('zlib')) - $this->_comptype = COMPRESS_GZIP; - elseif(extension_loaded('bz2')) - $this->_comptype = COMPRESS_BZIP; - else - $this->_comptype = COMPRESS_NONE; - break; + if($p_complevel > 0 && $p_complevel <= 9) $this->_compzlevel = $p_complevel; + else $p_complevel = 9; - default: - $this->_comptype = COMPRESS_NONE; + if($p_comptype == COMPRESS_DETECT) { + if(strtolower(substr($p_filen,-3)) == '.gz') $p_comptype = COMPRESS_GZIP; + elseif(strtolower(substr($p_filen,-4)) == '.bz2') $p_comptype = COMPRESS_BZIP; + else $p_comptype = COMPRESS_NONE; + } + + switch($p_comptype) { + case COMPRESS_GZIP: + if(!extension_loaded('zlib')) $this->_initerror = -1; + $this->_comptype = COMPRESS_GZIP; + break; + + case COMPRESS_BZIP: + if(!extension_loaded('bz2')) $this->_inierror = -2; + $this->_comptype = COMPRESS_BZIP; + break; + + case COMPRESS_AUTO: + if(extension_loaded('zlib')) + $this->_comptype = COMPRESS_GZIP; + elseif(extension_loaded('bz2')) + $this->_comptype = COMPRESS_BZIP; + else + $this->_comptype = COMPRESS_NONE; + break; + + default: + $this->_comptype = COMPRESS_NONE; + } + + if($this->_init_error < 0) $this->_comptype = COMPRESS_NONE; + + if($flag) $this->_nomf.= '.'.$this->getCompression(1); + $this->_result = true; } - if($this->_init_error < 0) $this->_comptype = COMPRESS_NONE; - - if($flag) $this->_nomf.= '.'.$this->getCompression(1); - $this->_result = true; - } - - /** - * Recycle a TAR object. - * - * This function does exactly the same as TarLib (constructor), except it - * returns a status code. - */ - function setArchive($p_name='', $p_comp = COMPRESS_AUTO, $p_level=9) - { - $this->_CompTar(); - $this->TarLib($p_name, $p_comp, $p_level); - return $this->_result; - } - - /** - * Get the compression used to generate the archive - * - * This is a very useful function when you're using dynamical archives. - * Besides, if you let the script chose which compression to use, you'll have - * a problem when you'll want to send it to the client if you don't know - * which compression was used. - * - * There are two ways to call this function : if you call it without argument - * or with FALSE, it will return the compression constants, explained on the - * MaxgTar Constants. If you call it with GetExtension on TRUE it will - * return the extension without starting dot (ie "tar" or "tar.bz2" or - * "tar.gz") - * - * NOTE: This can be done with the flag ARCHIVE_RENAMECOMP, see the - * MaxgTar Constants - */ - function getCompression($ext = false) - { - $exts = Array('tar','tar.gz','tar.bz2'); - if($ext) return $exts[$this->_comptype]; - return $this->_comptype; - } - - /** - * Change the compression mode. - * - * This function will change the compression methode to read or write - * the archive. See the MaxgTar Constants to see which constants you can use. - * It may look strange, but it returns the GZIP compression level. - */ - function setCompression($p_comp = COMPRESS_AUTO) - { - $this->setArchive($this->_nomf, $p_comp, $this->_compzlevel); - return $this->_compzlevel; - } - - /** - * Returns the compressed dynamic archive. - * - * When you're working with dynamic archives, use this function to grab - * the final compressed archive in a string ready to be put in a SQL table or - * in a file. - */ - function getDynamicArchive() - { - return $this->_encode($this->_memdat); - } - - /** - * Write a dynamical archive into a file - * - * This function attempts to write a dynamicaly-genrated archive into - * TargetFile on the webserver. It returns a TarErrorStr() status - * code. - * - * To know the extension to add to the file if you're using AUTO_DETECT - * compression, you can use getCompression(). - */ - function writeArchive($p_archive) { - if(!$this->_memdat) return -7; - $fp = @fopen($p_archive, 'wb'); - if(!$fp) return -6; - - fwrite($fp, $this->_memdat); - fclose($fp); - - return true; - } - - /** - * Send a TAR archive to the client browser. - * - * This function will send an archive to the client, and return a status - * code, but can behave differently depending on the arguments you give. All - * arguments are optional. - * - * ClientName is used to specify the archive name to give to the browser. If - * you don't give one, it will send the constructor filename or return an - * error code in case of dynamical archive. - * - * FileName is optional and used to send a specific archive. Leave it blank - * to send dynamical archives or the current working archive. - * - * If SendHeaders is enabled (by default), the library will send the HTTP - * headers itself before it sends the contents. This headers are : - * Content-Type, Content-Disposition, Content-Length and Accept-Range. - * - * Please note that this function DOES NOT stops the script so don't forget - * to exit() to avoid your script sending other data and corrupt the archive. - * Another note : for AUTO_DETECT dynamical archives you can know the - * extension to add to the name with getCompression() - */ - function sendClient($name = '', $archive = '', $headers = true) - { - if(!$name && !$this->_nomf) return -9; - if(!$archive && !$this->_memdat) return -10; - if(!$name) $name = basename($this->_nomf); - - if($archive){ if(!file_exists($archive)) return -11; } - else $decoded = $this->getDynamicArchive(); - - if($headers) - { - header('Content-Type: application/x-gtar'); - header('Content-Disposition: attachment; filename='.basename($name)); - header('Accept-Ranges: bytes'); - header('Content-Length: '.($archive ? filesize($archive) : strlen($decoded))); + /** + * Recycle a TAR object. + * + * This function does exactly the same as TarLib (constructor), except it + * returns a status code. + */ + function setArchive($p_name='', $p_comp = COMPRESS_AUTO, $p_level=9) { + $this->_CompTar(); + $this->TarLib($p_name, $p_comp, $p_level); + return $this->_result; } - if($archive) - { - $fp = @fopen($archive,'rb'); - if(!$fp) return -4; + /** + * Get the compression used to generate the archive + * + * This is a very useful function when you're using dynamical archives. + * Besides, if you let the script chose which compression to use, you'll have + * a problem when you'll want to send it to the client if you don't know + * which compression was used. + * + * There are two ways to call this function : if you call it without argument + * or with FALSE, it will return the compression constants, explained on the + * MaxgTar Constants. If you call it with GetExtension on TRUE it will + * return the extension without starting dot (ie "tar" or "tar.bz2" or + * "tar.gz") + * + * NOTE: This can be done with the flag ARCHIVE_RENAMECOMP, see the + * MaxgTar Constants + */ + function getCompression($ext = false) { + $exts = Array('tar','tar.gz','tar.bz2'); + if($ext) return $exts[$this->_comptype]; + return $this->_comptype; + } - while(!feof($fp)) echo fread($fp,2048); + /** + * Change the compression mode. + * + * This function will change the compression methode to read or write + * the archive. See the MaxgTar Constants to see which constants you can use. + * It may look strange, but it returns the GZIP compression level. + */ + function setCompression($p_comp = COMPRESS_AUTO) { + $this->setArchive($this->_nomf, $p_comp, $this->_compzlevel); + return $this->_compzlevel; } - else - { - echo $decoded; + + /** + * Returns the compressed dynamic archive. + * + * When you're working with dynamic archives, use this function to grab + * the final compressed archive in a string ready to be put in a SQL table or + * in a file. + */ + function getDynamicArchive() { + return $this->_encode($this->_memdat); } - return true; - } - - /** - * Extract part or totality of the archive. - * - * This function can extract files from an archive, and returns then a - * status codes that can be converted with TarErrorStr() into a - * human readable message. - * - * Only the first argument is required, What and it can be either the - * constant FULL_ARCHIVE or an indexed array containing each file you want to - * extract. - * - * To contains the target folder to extract the archive. It is optional and - * the default value is '.' which means the current folder. If the target - * folder doesn't exist, the script attempts to create it and give it - * permissions 0777 by default. - * - * RemovePath is very usefull when you want to extract files from a subfoler - * in the archive to a root folder. For instance, if you have a file in the - * archive called some/sub/folder/test.txt and you want to extract it to the - * script folder, you can call Extract with To = '.' and RemovePath = - * 'some/sub/folder/' - * - * FileMode is optional and its default value is 0755. It is in fact the UNIX - * permission in octal mode (prefixed with a 0) that will be given on each - * extracted file. - */ - function Extract($p_what = FULL_ARCHIVE, $p_to = '.', $p_remdir='', $p_mode = 0755) - { - if(!$this->_OpenRead()) return -4; -// if(!@is_dir($p_to)) if(!@mkdir($p_to, 0777)) return -8; --CS - if(!@is_dir($p_to)) if(!$this->_dirApp($p_to)) return -8; //--CS (route through correct dir fn) - - $ok = $this->_extractList($p_to, $p_what, $p_remdir, $p_mode); - $this->_CompTar(); - - return $ok; - } - - /** - * Create a new package with the given files - * - * This function will attempt to create a new archive with global headers - * then add the given files into. If the archive is a real file, the - * contents are written directly into the file, if it is a dynamic archive - * contents are only stored in memory. This function should not be used to - * add files to an existing archive, you should use Add() instead. - * - * The FileList actually supports three different modes : - * - * - You can pass a string containing filenames separated by pipes '|'. - * In this case the file are read from the webserver filesystem and the - * root folder is the folder where the script using the MaxgTar is called. - * - * - You can also give a unidimensional indexed array containing the - * filenames. The behaviour for the content reading is the same that a - * '|'ed string. - * - * - The more useful usage is to pass bidimensional arrays, where the - * first element contains the filename and the second contains the file - * contents. You can even add empty folders to the package if the filename - * has a leading '/'. Once again, have a look at the exemples to understand - * better. - * - * Note you can also give arrays with both dynamic contents and static files. - * - * The optional parameter RemovePath can be used to delete a part of the tree - * of the filename you're adding, for instance if you're adding in the root - * of a package a file that is stored somewhere in the server tree. - * - * On the contrary the parameter AddPath can be used to add a prefix folder - * to the file you store. Note also that the RemovePath is applied before the - * AddPath is added, so it HAS a sense to use both parameters together. - */ - function Create($p_filelist,$p_add='',$p_rem='') - { - if(!$fl = $this->_fetchFilelist($p_filelist)) return -5; - if(!$this->_OpenWrite()) return -6; - - $ok = $this->_addFileList($fl,$p_add,$p_rem); - - if($ok) $this->_writeFooter(); - else{ $this->_CompTar(); @unlink($this->_nomf); } - - return $ok; - } - - /** - * Add files to an existing package. - * - * This function does exactly the same than Create() exept it - * will append the given files at the end of the archive. Please not the is - * safe to call Add() on a newly created archive whereas the - * contrary will fail ! - * - * This function returns a status code, you can use TarErrorStr() on - * it to get the human-readable description of the error. - */ - function Add($p_filelist, $p_add = '', $p_rem = '') { if (($this->_nomf -!= ARCHIVE_DYNAMIC && @is_file($this->_nomf)) || ($this->_nomf == -ARCHIVE_DYNAMIC && !$this->_memdat)) return $this->Create($p_filelist, -$p_add, $p_rem); - - if(!$fl = $this->_fetchFilelist($p_filelist)) return -5; - return $this->_append($fl, $p_add, $p_rem); - } - - /** - * Read the contents of a TAR archive - * - * This function attempts to get the list of the files stored in the - * archive, and return either an error code or an indexed array of - * associative array containing for each file the following informations : - * - * checksum Tar Checksum of the file - * filename The full name of the stored file (up to 100 c.) - * mode UNIX permissions in DECIMAL, not octal - * uid The Owner ID - * gid The Group ID - * size Uncompressed filesize - * mtime Timestamp of last modification - * typeflag Empty for files, set for folders - * link For the links, did you guess it ? - * uname Owner name - * gname Group name - */ - function ListContents() - { - if(!$this->_nomf) return -3; - if(!$this->_OpenRead()) return -4; - - $result = Array(); - - while ($dat = $this->_read(512)) - { - $dat = $this->_readHeader($dat); - if(!is_array($dat)) continue; - - $this->_seek(ceil($dat['size']/512)*512,1); - $result[] = $dat; + /** + * Write a dynamical archive into a file + * + * This function attempts to write a dynamicaly-genrated archive into + * TargetFile on the webserver. It returns a TarErrorStr() status + * code. + * + * To know the extension to add to the file if you're using AUTO_DETECT + * compression, you can use getCompression(). + */ + function writeArchive($p_archive) { + if(!$this->_memdat) return -7; + $fp = @fopen($p_archive, 'wb'); + if(!$fp) return -6; + + fwrite($fp, $this->_memdat); + fclose($fp); + + return true; } - return $result; - } - - /** - * Convert a status code into a human readable message - * - * Some MaxgTar functions like Create(), Add() ... return numerical - * status code. You can pass them to this function to grab their english - * equivalent. - */ - function TarErrorStr($i) - { - $ecodes = Array( - 1 => true, - 0 => "Undocumented error", - -1 => "Can't use COMPRESS_GZIP compression : ZLIB extensions are not loaded !", - -2 => "Can't use COMPRESS_BZIP compression : BZ2 extensions are not loaded !", - -3 => "You must set a archive file to read the contents !", - -4 => "Can't open the archive file for read !", - -5 => "Invalide file list !", - -6 => "Can't open the archive in write mode !", - -7 => "There is no ARCHIVE_DYNAMIC to write !", - -8 => "Can't create the directory to extract files !", - -9 => "Please pass a archive name to send if you made created an ARCHIVE_DYNAMIC !", - -10 => "You didn't pass an archive filename and there is no stored ARCHIVE_DYNAMIC !", - -11 => "Given archive doesn't exist !" - ); - - return isset($ecodes[$i]) ? $ecodes[$i] : $ecodes[0]; - } - - /** - * Display informations about the MaxgTar Class. - * - * This function will display vaious informations about the server - * MaxgTar is running on. - * - * The optional parameter DispHeaders is used to generate a full page with - * HTML headers (TRUE by default) or just the table with the informations - * (FALSE). Note that the HTML page generated is verified compatible XHTML - * 1.0, but not HTML 4.0 compatible. - */ - function TarInfo($headers = true) - { - if($headers) - { - ?> - - - - - MaxgComp TAR - - - - - - -_nomf) return -9; + if(!$archive && !$this->_memdat) return -10; + if(!$name) $name = basename($this->_nomf); + + if($archive){ if(!file_exists($archive)) return -11; } + else $decoded = $this->getDynamicArchive(); + + if($headers) { + header('Content-Type: application/x-gtar'); + header('Content-Disposition: attachment; filename='.basename($name)); + header('Accept-Ranges: bytes'); + header('Content-Length: '.($archive ? filesize($archive) : strlen($decoded))); + } + + if($archive) { + $fp = @fopen($archive,'rb'); + if(!$fp) return -4; + + while(!feof($fp)) echo fread($fp,2048); + } else { + echo $decoded; + } + + return true; } -?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MaxgComp TAR
This software was created by the Maxg Network, http://maxg.info -
It is distributed under the GNU Lesser General Public License -
You can find the documentation of this class here
MaxgComp TAR
MaxgComp TAR version
ZLIB extensionsYes' : 'No')?>
BZ2 extensionsYes' : 'No')?>
Allow URL fopenYes' : 'No')?>
Time limit
PHP Version
- Special thanks to « Vincent Blavet » for his PEAR::Archive_Tar class -
-'; - } - - function _seek($p_flen, $tell=0) - { - if($this->_nomf === ARCHIVE_DYNAMIC) - $this->_memdat=substr($this->_memdat,0,($tell ? strlen($this->_memdat) : 0) + $p_flen); - elseif($this->_comptype == COMPRESS_GZIP) - @gzseek($this->_fp, ($tell ? @gztell($this->_fp) : 0)+$p_flen); - elseif($this->_comptype == COMPRESS_BZIP) - @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); - else - @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); - } - - function _OpenRead() - { - if($this->_comptype == COMPRESS_GZIP) - $this->_fp = @gzopen($this->_nomf, 'rb'); - elseif($this->_comptype == COMPRESS_BZIP) - $this->_fp = @bzopen($this->_nomf, 'rb'); - else - $this->_fp = @fopen($this->_nomf, 'rb'); - - return ($this->_fp ? true : false); - } - - function _OpenWrite($add = 'w') - { - if($this->_nomf === ARCHIVE_DYNAMIC) return true; - - if($this->_comptype == COMPRESS_GZIP) - $this->_fp = @gzopen($this->_nomf, $add.'b'.$this->_compzlevel); - elseif($this->_comptype == COMPRESS_BZIP) - $this->_fp = @bzopen($this->_nomf, $add.'b'); - else - $this->_fp = @fopen($this->_nomf, $add.'b'); - - return ($this->_fp ? true : false); - } - - function _CompTar() - { - if($this->_nomf === ARCHIVE_DYNAMIC || !$this->_fp) return; - - if($this->_comptype == COMPRESS_GZIP) @gzclose($this->_fp); - elseif($this->_comptype == COMPRESS_BZIP) @bzclose($this->_fp); - else @fclose($this->_fp); - } - - function _read($p_len) - { - if($this->_comptype == COMPRESS_GZIP) - return @gzread($this->_fp,$p_len); - elseif($this->_comptype == COMPRESS_BZIP) - return @bzread($this->_fp,$p_len); - else - return @fread($this->_fp,$p_len); - } - - function _write($p_data) - { - if($this->_nomf === ARCHIVE_DYNAMIC) $this->_memdat .= $p_data; - elseif($this->_comptype == COMPRESS_GZIP) - return @gzwrite($this->_fp,$p_data); - - elseif($this->_comptype == COMPRESS_BZIP) - return @bzwrite($this->_fp,$p_data); - - else - return @fwrite($this->_fp,$p_data); - } - - function _encode($p_dat) - { - if($this->_comptype == COMPRESS_GZIP) - return gzencode($p_dat, $this->_compzlevel); - elseif($this->_comptype == COMPRESS_BZIP) - return bzcompress($p_dat, $this->_compzlevel); - else return $p_dat; - } - - function _readHeader($p_dat) - { - if (!$p_dat || strlen($p_dat) != 512) return false; - - for ($i=0, $chks=0; $i<148; $i++) - $chks += ord($p_dat[$i]); - - for ($i=156,$chks+=256; $i<512; $i++) - $chks += ord($p_dat[$i]); - - $headers = @unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor", $p_dat); - if(!$headers) return false; - - $return['checksum'] = OctDec(trim($headers['checksum'])); - if ($return['checksum'] != $chks) return false; - - $return['filename'] = trim($headers['filename']); - $return['mode'] = OctDec(trim($headers['mode'])); - $return['uid'] = OctDec(trim($headers['uid'])); - $return['gid'] = OctDec(trim($headers['gid'])); - $return['size'] = OctDec(trim($headers['size'])); - $return['mtime'] = OctDec(trim($headers['mtime'])); - $return['typeflag'] = $headers['typeflag']; - $return['link'] = trim($headers['link']); - $return['uname'] = trim($headers['uname']); - $return['gname'] = trim($headers['gname']); - - return $return; - } - - function _fetchFilelist($p_filelist) - { - if(!$p_filelist || (is_array($p_filelist) && !@count($p_filelist))) return false; - - if(is_string($p_filelist)) - { - $p_filelist = explode('|',$p_filelist); - if(!is_array($p_filelist)) $p_filelist = Array($p_filelist); + + /** + * Extract part or totality of the archive. + * + * This function can extract files from an archive, and returns then a + * status codes that can be converted with TarErrorStr() into a + * human readable message. + * + * Only the first argument is required, What and it can be either the + * constant FULL_ARCHIVE or an indexed array containing each file you want to + * extract. + * + * To contains the target folder to extract the archive. It is optional and + * the default value is '.' which means the current folder. If the target + * folder doesn't exist, the script attempts to create it and give it + * permissions 0777 by default. + * + * RemovePath is very usefull when you want to extract files from a subfoler + * in the archive to a root folder. For instance, if you have a file in the + * archive called some/sub/folder/test.txt and you want to extract it to the + * script folder, you can call Extract with To = '.' and RemovePath = + * 'some/sub/folder/' + * + * FileMode is optional and its default value is 0755. It is in fact the UNIX + * permission in octal mode (prefixed with a 0) that will be given on each + * extracted file. + */ + function Extract($p_what = FULL_ARCHIVE, $p_to = '.', $p_remdir='', $p_mode = 0755) { + if(!$this->_OpenRead()) return -4; + // if(!@is_dir($p_to)) if(!@mkdir($p_to, 0777)) return -8; --CS + if(!@is_dir($p_to)) if(!$this->_dirApp($p_to)) return -8; //--CS (route through correct dir fn) + + $ok = $this->_extractList($p_to, $p_what, $p_remdir, $p_mode); + $this->_CompTar(); + + return $ok; } - return $p_filelist; - } + /** + * Create a new package with the given files + * + * This function will attempt to create a new archive with global headers + * then add the given files into. If the archive is a real file, the + * contents are written directly into the file, if it is a dynamic archive + * contents are only stored in memory. This function should not be used to + * add files to an existing archive, you should use Add() instead. + * + * The FileList actually supports three different modes : + * + * - You can pass a string containing filenames separated by pipes '|'. + * In this case the file are read from the webserver filesystem and the + * root folder is the folder where the script using the MaxgTar is called. + * + * - You can also give a unidimensional indexed array containing the + * filenames. The behaviour for the content reading is the same that a + * '|'ed string. + * + * - The more useful usage is to pass bidimensional arrays, where the + * first element contains the filename and the second contains the file + * contents. You can even add empty folders to the package if the filename + * has a leading '/'. Once again, have a look at the exemples to understand + * better. + * + * Note you can also give arrays with both dynamic contents and static files. + * + * The optional parameter RemovePath can be used to delete a part of the tree + * of the filename you're adding, for instance if you're adding in the root + * of a package a file that is stored somewhere in the server tree. + * + * On the contrary the parameter AddPath can be used to add a prefix folder + * to the file you store. Note also that the RemovePath is applied before the + * AddPath is added, so it HAS a sense to use both parameters together. + */ + function Create($p_filelist,$p_add='',$p_rem='') { + if(!$fl = $this->_fetchFilelist($p_filelist)) return -5; + if(!$this->_OpenWrite()) return -6; + + $ok = $this->_addFileList($fl,$p_add,$p_rem); + + if($ok){ + $this->_writeFooter(); + }else{ + $this->_CompTar(); + @unlink($this->_nomf); + } - function _addFileList($p_fl, $p_addir, $p_remdir) - { - foreach($p_fl as $file) - { - if(($file == $this->_nomf && $this->_nomf != ARCHIVE_DYNAMIC) || !$file || (!file_exists($file) && !is_array($file))) - continue; + return $ok; + } - if (!$this->_addFile($file, $p_addir, $p_remdir)) - continue; + /** + * Add files to an existing package. + * + * This function does exactly the same than Create() exept it + * will append the given files at the end of the archive. Please not the is + * safe to call Add() on a newly created archive whereas the + * contrary will fail ! + * + * This function returns a status code, you can use TarErrorStr() on + * it to get the human-readable description of the error. + */ + function Add($p_filelist, $p_add = '', $p_rem = '') { + if (($this->_nomf != ARCHIVE_DYNAMIC && @is_file($this->_nomf)) || + ($this->_nomf == ARCHIVE_DYNAMIC && !$this->_memdat)){ + return $this->Create($p_filelist, $p_add, $p_rem); + } - if (@is_dir($file)) - { - $d = @opendir($file); + if(!$fl = $this->_fetchFilelist($p_filelist)) return -5; + return $this->_append($fl, $p_add, $p_rem); + } - if(!$d) continue; - readdir($d); readdir($d); + /** + * Read the contents of a TAR archive + * + * This function attempts to get the list of the files stored in the + * archive, and return either an error code or an indexed array of + * associative array containing for each file the following informations : + * + * checksum Tar Checksum of the file + * filename The full name of the stored file (up to 100 c.) + * mode UNIX permissions in DECIMAL, not octal + * uid The Owner ID + * gid The Group ID + * size Uncompressed filesize + * mtime Timestamp of last modification + * typeflag Empty for files, set for folders + * link For the links, did you guess it ? + * uname Owner name + * gname Group name + */ + function ListContents() { + if(!$this->_nomf) return -3; + if(!$this->_OpenRead()) return -4; + + $result = Array(); + + while ($dat = $this->_read(512)) { + $dat = $this->_readHeader($dat); + if(!is_array($dat)) continue; + + $this->_seek(ceil($dat['size']/512)*512,1); + $result[] = $dat; + } + + return $result; + } - while($f = readdir($d)) - { - if($file != ".") $tmplist[0] = "$file/$f"; - else $tmplist[0] = $d; + /** + * Convert a status code into a human readable message + * + * Some MaxgTar functions like Create(), Add() ... return numerical + * status code. You can pass them to this function to grab their english + * equivalent. + */ + function TarErrorStr($i) { + $ecodes = Array( + 1 => true, + 0 => "Undocumented error", + -1 => "Can't use COMPRESS_GZIP compression : ZLIB extensions are not loaded !", + -2 => "Can't use COMPRESS_BZIP compression : BZ2 extensions are not loaded !", + -3 => "You must set a archive file to read the contents !", + -4 => "Can't open the archive file for read !", + -5 => "Invalide file list !", + -6 => "Can't open the archive in write mode !", + -7 => "There is no ARCHIVE_DYNAMIC to write !", + -8 => "Can't create the directory to extract files !", + -9 => "Please pass a archive name to send if you made created an ARCHIVE_DYNAMIC !", + -10 => "You didn't pass an archive filename and there is no stored ARCHIVE_DYNAMIC !", + -11 => "Given archive doesn't exist !" + ); + + return isset($ecodes[$i]) ? $ecodes[$i] : $ecodes[0]; + } - $this->_addFileList($tmplist, $p_addir, $p_remdir); + /** + * Display informations about the MaxgTar Class. + * + * This function will display vaious informations about the server + * MaxgTar is running on. + * + * The optional parameter DispHeaders is used to generate a full page with + * HTML headers (TRUE by default) or just the table with the informations + * (FALSE). Note that the HTML page generated is verified compatible XHTML + * 1.0, but not HTML 4.0 compatible. + */ + function TarInfo($headers = true) { + if($headers) { + ?> + + + + + MaxgComp TAR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MaxgComp TAR
This software was created by the Maxg Network, http://maxg.info +
It is distributed under the GNU Lesser General Public License +
You can find the documentation of this class here
MaxgComp TAR
MaxgComp TAR version
ZLIB extensionsYes' : 'No')?>
BZ2 extensionsYes' : 'No')?>
Allow URL fopenYes' : 'No')?>
Time limit
PHP Version
+ Special thanks to « Vincent Blavet » for his PEAR::Archive_Tar class +
+ '; + } - closedir($d); unset($tmplist,$f); - } + function _seek($p_flen, $tell=0) { + if($this->_nomf === ARCHIVE_DYNAMIC) + $this->_memdat=substr($this->_memdat,0,($tell ? strlen($this->_memdat) : 0) + $p_flen); + elseif($this->_comptype == COMPRESS_GZIP) + @gzseek($this->_fp, ($tell ? @gztell($this->_fp) : 0)+$p_flen); + elseif($this->_comptype == COMPRESS_BZIP) + @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); + else + @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); } - return true; - } - function _addFile($p_fn, $p_addir = '', $p_remdir = '') - { - if(is_array($p_fn)) list($p_fn, $data) = $p_fn; - $sname = $p_fn; + function _OpenRead() { + if($this->_comptype == COMPRESS_GZIP) + $this->_fp = @gzopen($this->_nomf, 'rb'); + elseif($this->_comptype == COMPRESS_BZIP) + $this->_fp = @bzopen($this->_nomf, 'rb'); + else + $this->_fp = @fopen($this->_nomf, 'rb'); + + return ($this->_fp ? true : false); + } - if($p_remdir) - { - if(substr($p_remdir,-1) != '/') $p_remdir .= "/"; + function _OpenWrite($add = 'w') { + if($this->_nomf === ARCHIVE_DYNAMIC) return true; + + if($this->_comptype == COMPRESS_GZIP) + $this->_fp = @gzopen($this->_nomf, $add.'b'.$this->_compzlevel); + elseif($this->_comptype == COMPRESS_BZIP) + $this->_fp = @bzopen($this->_nomf, $add.'b'); + else + $this->_fp = @fopen($this->_nomf, $add.'b'); - if(substr($sname, 0, strlen($p_remdir)) == $p_remdir) - $sname = substr($sname, strlen($p_remdir)); + return ($this->_fp ? true : false); } - if($p_addir) $sname = $p_addir.(substr($p_addir,-1) == '/' ? '' : "/").$sname; + function _CompTar() { + if($this->_nomf === ARCHIVE_DYNAMIC || !$this->_fp) return; - if(strlen($sname) > 99) return; + if($this->_comptype == COMPRESS_GZIP) @gzclose($this->_fp); + elseif($this->_comptype == COMPRESS_BZIP) @bzclose($this->_fp); + else @fclose($this->_fp); + } + + function _read($p_len) { + if($this->_comptype == COMPRESS_GZIP) + return @gzread($this->_fp,$p_len); + elseif($this->_comptype == COMPRESS_BZIP) + return @bzread($this->_fp,$p_len); + else + return @fread($this->_fp,$p_len); + } + + function _write($p_data) { + if($this->_nomf === ARCHIVE_DYNAMIC) $this->_memdat .= $p_data; + elseif($this->_comptype == COMPRESS_GZIP) + return @gzwrite($this->_fp,$p_data); - if(@is_dir($p_fn)) - { - if(!$this->_writeFileHeader($p_fn, $sname)) return false; + elseif($this->_comptype == COMPRESS_BZIP) + return @bzwrite($this->_fp,$p_data); + + else + return @fwrite($this->_fp,$p_data); } - else - { - if(!$data) - { - $fp = fopen($p_fn, 'rb'); - if(!$fp) return false; - } - - if(!$this->_writeFileHeader($p_fn, $sname, ($data ? strlen($data) : false))) return false; - - if(!$data) - { - while(!feof($fp)) - { - $packed = pack("a512", fread($fp,512)); - $this->_write($packed); - } - fclose($fp); - } - else - { - for($s = 0; $s < strlen($data); $s += 512) - $this->_write(pack("a512",substr($data,$s,512))); - } + + function _encode($p_dat) { + if($this->_comptype == COMPRESS_GZIP) + return gzencode($p_dat, $this->_compzlevel); + elseif($this->_comptype == COMPRESS_BZIP) + return bzcompress($p_dat, $this->_compzlevel); + else return $p_dat; } - return true; - } - - function _writeFileHeader($p_file, $p_sname, $p_data=false) - { - if(!$p_data) - { - if (!$p_sname) $p_sname = $p_file; - $p_sname = $this->_pathTrans($p_sname); - - $h_info = stat($p_file); - $h[0] = sprintf("%6s ", DecOct($h_info[4])); - $h[] = sprintf("%6s ", DecOct($h_info[5])); - $h[] = sprintf("%6s ", DecOct(fileperms($p_file))); - clearstatcache(); - $h[] = sprintf("%11s ", DecOct(filesize($p_file))); - $h[] = sprintf("%11s", DecOct(filemtime($p_file))); - - $dir = @is_dir($p_file) ? '5' : ''; - } - else - { - $dir = ''; - $p_data = sprintf("%11s ", DecOct($p_data)); - $time = sprintf("%11s ", DecOct(time())); - $h = Array(" 0 "," 0 "," 40777 ",$p_data,$time); - } - - $data_first = pack("a100a8a8a8a12A12", $p_sname, $h[2], $h[0], $h[1], $h[3], $h[4]); - $data_last = pack("a1a100a6a2a32a32a8a8a155a12", $dir, '', '', '', '', '', '', '', '', ""); - - for ($i=0,$chks=0; $i<148; $i++) - $chks += ord($data_first[$i]); - - for ($i=156, $chks+=256, $j=0; $i<512; $i++, $j++) - $chks += ord($data_last[$j]); - - $this->_write($data_first); - - $chks = pack("a8",sprintf("%6s ", DecOct($chks))); - $this->_write($chks.$data_last); - - return true; - } - - function _append($p_filelist, $p_addir="", $p_remdir="") - { - if(!$this->_fp) if(!$this->_OpenWrite('a')) return -6; - - if($this->_nomf == ARCHIVE_DYNAMIC) - { - $s = strlen($this->_memdat); - $this->_memdat = substr($this->_memdat,0,-512); + function _readHeader($p_dat) { + if (!$p_dat || strlen($p_dat) != 512) return false; + + for ($i=0, $chks=0; $i<148; $i++) + $chks += ord($p_dat[$i]); + + for ($i=156,$chks+=256; $i<512; $i++) + $chks += ord($p_dat[$i]); + + $headers = @unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor", $p_dat); + if(!$headers) return false; + + $return['checksum'] = OctDec(trim($headers['checksum'])); + if ($return['checksum'] != $chks) return false; + + $return['filename'] = trim($headers['filename']); + $return['mode'] = OctDec(trim($headers['mode'])); + $return['uid'] = OctDec(trim($headers['uid'])); + $return['gid'] = OctDec(trim($headers['gid'])); + $return['size'] = OctDec(trim($headers['size'])); + $return['mtime'] = OctDec(trim($headers['mtime'])); + $return['typeflag'] = $headers['typeflag']; + $return['link'] = trim($headers['link']); + $return['uname'] = trim($headers['uname']); + $return['gname'] = trim($headers['gname']); + + return $return; } - else - { - $s = filesize($this->_nomf); - $this->_seek($s-512); + + function _fetchFilelist($p_filelist) { + if(!$p_filelist || (is_array($p_filelist) && !@count($p_filelist))) return false; + + if(is_string($p_filelist)) { + $p_filelist = explode('|',$p_filelist); + if(!is_array($p_filelist)) $p_filelist = Array($p_filelist); + } + + return $p_filelist; } - $ok = $this->_addFileList($p_filelist, $p_addir, $p_remdir); - $this->_writeFooter(); - - return $ok; - } - - function _pathTrans($p_dir) - { - if ($p_dir) - { - $subf = explode("/", $p_dir); $r=''; - - for ($i=count($subf)-1; $i>=0; $i--) - { - if ($subf[$i] == ".") {} - else if ($subf[$i] == "..") $i--; - else if (!$subf[$i] && $i!=count($subf)-1 && $i) {} - else $r = $subf[$i].($i!=(count($subf)-1) ? "/".$r : ""); - } + function _addFileList($p_fl, $p_addir, $p_remdir) { + foreach($p_fl as $file) { + if(($file == $this->_nomf && $this->_nomf != ARCHIVE_DYNAMIC) || !$file || (!file_exists($file) && !is_array($file))) + continue; + + if (!$this->_addFile($file, $p_addir, $p_remdir)) + continue; + + if (@is_dir($file)) { + $d = @opendir($file); + + if(!$d) continue; + readdir($d); + readdir($d); + + while($f = readdir($d)) { + if($file != ".") $tmplist[0] = "$file/$f"; + else $tmplist[0] = $d; + + $this->_addFileList($tmplist, $p_addir, $p_remdir); + } + + closedir($d); + unset($tmplist,$f); + } + } + return true; } - return $r; - } - - function _writeFooter() - { - $this->_write(pack("a512", "")); - } - - function _extractList($p_to, $p_files, $p_remdir, $p_mode = 0755) - { - if (!$p_to || ($p_to[0]!="/"&&substr($p_to,0,3)!="../"&&substr($p_to,1,3)!=":\\"&&substr($p_to,1,2)!=":/")) /*" // <- PHP Coder bug */ - $p_to = "./$p_to"; - - if ($p_remdir && substr($p_remdir,-1)!='/') $p_remdir .= '/'; - $p_remdirs = strlen($p_remdir); - while($dat = $this->_read(512)) - { - $headers = $this->_readHeader($dat); - if(!$headers['filename']) continue; - - if($p_files == -1 || $p_files[0] == -1) $extract = true; - else - { - $extract = false; - - foreach($p_files as $f) - { - if(substr($f,-1) == "/") { - if((strlen($headers['filename']) > strlen($f)) && (substr($headers['filename'],0,strlen($f))==$f)) { - $extract = true; break; + + function _addFile($p_fn, $p_addir = '', $p_remdir = '') { + if(is_array($p_fn)) list($p_fn, $data) = $p_fn; + $sname = $p_fn; + + if($p_remdir) { + if(substr($p_remdir,-1) != '/') $p_remdir .= "/"; + + if(substr($sname, 0, strlen($p_remdir)) == $p_remdir) + $sname = substr($sname, strlen($p_remdir)); + } + + if($p_addir) $sname = $p_addir.(substr($p_addir,-1) == '/' ? '' : "/").$sname; + + if(strlen($sname) > 99) return; + + if(@is_dir($p_fn)) { + if(!$this->_writeFileHeader($p_fn, $sname)) return false; + } else { + if(!$data) { + $fp = fopen($p_fn, 'rb'); + if(!$fp) return false; + } + + if(!$this->_writeFileHeader($p_fn, $sname, ($data ? strlen($data) : false))) return false; + + if(!$data) { + while(!feof($fp)) { + $packed = pack("a512", fread($fp,512)); + $this->_write($packed); + } + fclose($fp); + } else { + $len = strlen($data); + for($s = 0; $s < $len; $s += 512){ + $this->_write(pack("a512",substr($data,$s,512))); + } } - } - elseif($f == $headers['filename']) { - $extract = true; break; - } } - } - if ($extract) - { - $det[] = $headers; - if ($p_remdir && substr($headers['filename'],0,$p_remdirs)==$p_remdir) - $headers['filename'] = substr($headers['filename'],$p_remdirs); + return true; + } + + function _writeFileHeader($p_file, $p_sname, $p_data=false) { + if(!$p_data) { + if (!$p_sname) $p_sname = $p_file; + $p_sname = $this->_pathTrans($p_sname); + + $h_info = stat($p_file); + $h[0] = sprintf("%6s ", DecOct($h_info[4])); + $h[] = sprintf("%6s ", DecOct($h_info[5])); + $h[] = sprintf("%6s ", DecOct(fileperms($p_file))); + clearstatcache(); + $h[] = sprintf("%11s ", DecOct(filesize($p_file))); + $h[] = sprintf("%11s", DecOct(filemtime($p_file))); + + $dir = @is_dir($p_file) ? '5' : ''; + } else { + $dir = ''; + $p_data = sprintf("%11s ", DecOct($p_data)); + $time = sprintf("%11s ", DecOct(time())); + $h = Array(" 0 "," 0 "," 40777 ",$p_data,$time); + } - if($headers['filename'].'/' == $p_remdir && $headers['typeflag']=='5') continue; + $data_first = pack("a100a8a8a8a12A12", $p_sname, $h[2], $h[0], $h[1], $h[3], $h[4]); + $data_last = pack("a1a100a6a2a32a32a8a8a155a12", $dir, '', '', '', '', '', '', '', '', ""); - if ($p_to != "./" && $p_to != "/") - { - while($p_to{-1}=="/") $p_to = substr($p_to,0,-1); + for ($i=0,$chks=0; $i<148; $i++) + $chks += ord($data_first[$i]); + + for ($i=156, $chks+=256, $j=0; $i<512; $i++, $j++) + $chks += ord($data_last[$j]); + + $this->_write($data_first); + + $chks = pack("a8",sprintf("%6s ", DecOct($chks))); + $this->_write($chks.$data_last); + + return true; + } - if($headers['filename']{0} == "/") - $headers['filename'] = $p_to.$headers['filename']; - else - $headers['filename'] = $p_to."/".$headers['filename']; + function _append($p_filelist, $p_addir="", $p_remdir="") { + if(!$this->_fp) if(!$this->_OpenWrite('a')) return -6; + + if($this->_nomf == ARCHIVE_DYNAMIC) { + $s = strlen($this->_memdat); + $this->_memdat = substr($this->_memdat,0,-512); + } else { + $s = filesize($this->_nomf); + $this->_seek($s-512); } - $ok = $this->_dirApp($headers['typeflag']=="5" ? $headers['filename'] : dirname($headers['filename'])); - if($ok < 0) return $ok; + $ok = $this->_addFileList($p_filelist, $p_addir, $p_remdir); + $this->_writeFooter(); + + return $ok; + } + + function _pathTrans($p_dir) { + if ($p_dir) { + $subf = explode("/", $p_dir); + $r=''; + + for ($i=count($subf)-1; $i>=0; $i--) { + if ($subf[$i] == ".") { + # do nothing + } elseif ($subf[$i] == "..") { + $i--; + } elseif (!$subf[$i] && $i!=count($subf)-1 && $i) { + # do nothing + } else { + $r = $subf[$i].($i!=(count($subf)-1) ? "/".$r : ""); + } + } + } + return $r; + } - if (!$headers['typeflag']) - { - if (!$fp = @fopen($headers['filename'], "wb")) return -6; - $n = floor($headers['size']/512); + function _writeFooter() { + $this->_write(pack("a512", "")); + } - for ($i=0; $i<$n; $i++) fwrite($fp, $this->_read(512),512); - if (($headers['size'] % 512) != 0) fwrite($fp, $this->_read(512), $headers['size'] % 512); + function _extractList($p_to, $p_files, $p_remdir, $p_mode = 0755) { + if (!$p_to || ($p_to[0]!="/"&&substr($p_to,0,3)!="../"&&substr($p_to,1,3)!=":\\"&&substr($p_to,1,2)!=":/")) /*" // <- PHP Coder bug */ + $p_to = "./$p_to"; + + if ($p_remdir && substr($p_remdir,-1)!='/') $p_remdir .= '/'; + $p_remdirs = strlen($p_remdir); + while($dat = $this->_read(512)) { + $headers = $this->_readHeader($dat); + if(!$headers['filename']) continue; + + if($p_files == -1 || $p_files[0] == -1){ + $extract = true; + } else { + $extract = false; + + foreach($p_files as $f) { + if(substr($f,-1) == "/") { + if((strlen($headers['filename']) > strlen($f)) && (substr($headers['filename'],0,strlen($f))==$f)) { + $extract = true; + break; + } + } elseif($f == $headers['filename']) { + $extract = true; + break; + } + } + } - fclose($fp); - touch($headers['filename'], $headers['mtime']); - chmod($headers['filename'], $p_mode); + if ($extract) { + $det[] = $headers; + if ($p_remdir && substr($headers['filename'],0,$p_remdirs)==$p_remdir) + $headers['filename'] = substr($headers['filename'],$p_remdirs); + + if($headers['filename'].'/' == $p_remdir && $headers['typeflag']=='5') continue; + + if ($p_to != "./" && $p_to != "/") { + while($p_to{-1}=="/") $p_to = substr($p_to,0,-1); + + if($headers['filename']{0} == "/") + $headers['filename'] = $p_to.$headers['filename']; + else + $headers['filename'] = $p_to."/".$headers['filename']; + } + + $ok = $this->_dirApp($headers['typeflag']=="5" ? $headers['filename'] : dirname($headers['filename'])); + if($ok < 0) return $ok; + + if (!$headers['typeflag']) { + if (!$fp = @fopen($headers['filename'], "wb")) return -6; + $n = floor($headers['size']/512); + + for ($i=0; $i<$n; $i++){ + fwrite($fp, $this->_read(512),512); + } + if (($headers['size'] % 512) != 0) fwrite($fp, $this->_read(512), $headers['size'] % 512); + + fclose($fp); + touch($headers['filename'], $headers['mtime']); + chmod($headers['filename'], $p_mode); + } else { + $this->_seek(ceil($headers['size']/512)*512,1); + } + }else $this->_seek(ceil($headers['size']/512)*512,1); } - else - { - $this->_seek(ceil($headers['size']/512)*512,1); - } - }else $this->_seek(ceil($headers['size']/512)*512,1); + return $det; } - return $det; - } - -function _dirApp($d) - { -// map to dokuwiki function (its more robust) - return io_mkdir_p($d); -/* - $d = explode('/', $d); - $base = ''; - - foreach($d as $f) - { - if(!is_dir($base.$f)) - { - $ok = @mkdir($base.$f, 0777); - if(!$ok) return false; - } - $base .= "$f/"; + + function _dirApp($d) { + // map to dokuwiki function (its more robust) + return io_mkdir_p($d); } -*/ - } } diff --git a/inc/actions.php b/inc/actions.php index 27292e6f6..92f817133 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -18,149 +18,149 @@ require_once(DOKU_INC.'inc/template.php'); * @triggers ACTION_HEADERS_SEND */ function act_dispatch(){ - global $INFO; - global $ACT; - global $ID; - global $QUERY; - global $lang; - global $conf; - global $license; - - $preact = $ACT; - - // give plugins an opportunity to process the action - $evt = new Doku_Event('ACTION_ACT_PREPROCESS',$ACT); - if ($evt->advise_before()) { - - //sanitize $ACT - $ACT = act_clean($ACT); - - //check if searchword was given - else just show - $s = cleanID($QUERY); - if($ACT == 'search' && empty($s)){ - $ACT = 'show'; - } + global $INFO; + global $ACT; + global $ID; + global $QUERY; + global $lang; + global $conf; + global $license; - //login stuff - if(in_array($ACT,array('login','logout'))){ - $ACT = act_auth($ACT); - } + $preact = $ACT; - //check if user is asking to (un)subscribe a page - if($ACT == 'subscribe' || $ACT == 'unsubscribe') - $ACT = act_subscription($ACT); + // give plugins an opportunity to process the action + $evt = new Doku_Event('ACTION_ACT_PREPROCESS',$ACT); + if ($evt->advise_before()) { - //check if user is asking to (un)subscribe a namespace - if($ACT == 'subscribens' || $ACT == 'unsubscribens') - $ACT = act_subscriptionns($ACT); + //sanitize $ACT + $ACT = act_clean($ACT); - //check permissions - $ACT = act_permcheck($ACT); + //check if searchword was given - else just show + $s = cleanID($QUERY); + if($ACT == 'search' && empty($s)){ + $ACT = 'show'; + } - //register - $nil = array(); - if($ACT == 'register' && $_POST['save'] && register()){ - $ACT = 'login'; - } + //login stuff + if(in_array($ACT,array('login','logout'))){ + $ACT = act_auth($ACT); + } - if ($ACT == 'resendpwd' && act_resendpwd()) { - $ACT = 'login'; - } + //check if user is asking to (un)subscribe a page + if($ACT == 'subscribe' || $ACT == 'unsubscribe') + $ACT = act_subscription($ACT); + + //check if user is asking to (un)subscribe a namespace + if($ACT == 'subscribens' || $ACT == 'unsubscribens') + $ACT = act_subscriptionns($ACT); - //update user profile - if ($ACT == 'profile') { - if(!$_SERVER['REMOTE_USER']) { - $ACT = 'login'; - } else { - if(updateprofile()) { - msg($lang['profchanged'],1); - $ACT = 'show'; + //check permissions + $ACT = act_permcheck($ACT); + + //register + $nil = array(); + if($ACT == 'register' && $_POST['save'] && register()){ + $ACT = 'login'; } - } - } - //revert - if($ACT == 'revert'){ - if(checkSecurityToken()){ - $ACT = act_revert($ACT); - }else{ - $ACT = 'show'; - } - } + if ($ACT == 'resendpwd' && act_resendpwd()) { + $ACT = 'login'; + } - //save - if($ACT == 'save'){ - if(checkSecurityToken()){ - $ACT = act_save($ACT); - }else{ - $ACT = 'show'; - } - } + //update user profile + if ($ACT == 'profile') { + if(!$_SERVER['REMOTE_USER']) { + $ACT = 'login'; + } else { + if(updateprofile()) { + msg($lang['profchanged'],1); + $ACT = 'show'; + } + } + } - //cancel conflicting edit - if($ACT == 'cancel') - $ACT = 'show'; + //revert + if($ACT == 'revert'){ + if(checkSecurityToken()){ + $ACT = act_revert($ACT); + }else{ + $ACT = 'show'; + } + } - //draft deletion - if($ACT == 'draftdel') - $ACT = act_draftdel($ACT); + //save + if($ACT == 'save'){ + if(checkSecurityToken()){ + $ACT = act_save($ACT); + }else{ + $ACT = 'show'; + } + } - //draft saving on preview - if($ACT == 'preview') - $ACT = act_draftsave($ACT); + //cancel conflicting edit + if($ACT == 'cancel') + $ACT = 'show'; - //edit - if(($ACT == 'edit' || $ACT == 'preview') && $INFO['editable']){ - $ACT = act_edit($ACT); - }else{ - unlock($ID); //try to unlock - } + //draft deletion + if($ACT == 'draftdel') + $ACT = act_draftdel($ACT); - //handle export - if(substr($ACT,0,7) == 'export_') - $ACT = act_export($ACT); + //draft saving on preview + if($ACT == 'preview') + $ACT = act_draftsave($ACT); - //display some infos - if($ACT == 'check'){ - check(); - $ACT = 'show'; - } + //edit + if(($ACT == 'edit' || $ACT == 'preview') && $INFO['editable']){ + $ACT = act_edit($ACT); + }else{ + unlock($ID); //try to unlock + } - //handle admin tasks - if($ACT == 'admin'){ - // retrieve admin plugin name from $_REQUEST['page'] - if (!empty($_REQUEST['page'])) { - $pluginlist = plugin_list('admin'); - if (in_array($_REQUEST['page'], $pluginlist)) { - // attempt to load the plugin - if ($plugin =& plugin_load('admin',$_REQUEST['page']) !== NULL) - $plugin->handle(); - } - } - } + //handle export + if(substr($ACT,0,7) == 'export_') + $ACT = act_export($ACT); - // check permissions again - the action may have changed - $ACT = act_permcheck($ACT); - } // end event ACTION_ACT_PREPROCESS default action - $evt->advise_after(); - unset($evt); + //display some infos + if($ACT == 'check'){ + check(); + $ACT = 'show'; + } - // when action 'show', the intial not 'show' and POST, do a redirect - if($ACT == 'show' && $preact != 'show' && strtolower($_SERVER['REQUEST_METHOD']) == 'post'){ - act_redirect($ID,$preact); - } + //handle admin tasks + if($ACT == 'admin'){ + // retrieve admin plugin name from $_REQUEST['page'] + if (!empty($_REQUEST['page'])) { + $pluginlist = plugin_list('admin'); + if (in_array($_REQUEST['page'], $pluginlist)) { + // attempt to load the plugin + if ($plugin =& plugin_load('admin',$_REQUEST['page']) !== null) + $plugin->handle(); + } + } + } + + // check permissions again - the action may have changed + $ACT = act_permcheck($ACT); + } // end event ACTION_ACT_PREPROCESS default action + $evt->advise_after(); + unset($evt); + + // when action 'show', the intial not 'show' and POST, do a redirect + if($ACT == 'show' && $preact != 'show' && strtolower($_SERVER['REQUEST_METHOD']) == 'post'){ + act_redirect($ID,$preact); + } - //call template FIXME: all needed vars available? - $headers[] = 'Content-Type: text/html; charset=utf-8'; - trigger_event('ACTION_HEADERS_SEND',$headers,'act_sendheaders'); + //call template FIXME: all needed vars available? + $headers[] = 'Content-Type: text/html; charset=utf-8'; + trigger_event('ACTION_HEADERS_SEND',$headers,'act_sendheaders'); - include(template('main.php')); - // output for the commands is now handled in inc/templates.php - // in function tpl_content() + include(template('main.php')); + // output for the commands is now handled in inc/templates.php + // in function tpl_content() } function act_sendheaders($headers) { - foreach ($headers as $hdr) header($hdr); + foreach ($headers as $hdr) header($hdr); } /** @@ -171,44 +171,44 @@ function act_sendheaders($headers) { * @author Andreas Gohr */ function act_clean($act){ - global $lang; - global $conf; + global $lang; + global $conf; - // check if the action was given as array key - if(is_array($act)){ - list($act) = array_keys($act); - } + // check if the action was given as array key + if(is_array($act)){ + list($act) = array_keys($act); + } - //remove all bad chars - $act = strtolower($act); - $act = preg_replace('/[^1-9a-z_]+/','',$act); + //remove all bad chars + $act = strtolower($act); + $act = preg_replace('/[^1-9a-z_]+/','',$act); - if($act == 'export_html') $act = 'export_xhtml'; - if($act == 'export_htmlbody') $act = 'export_xhtmlbody'; + if($act == 'export_html') $act = 'export_xhtml'; + if($act == 'export_htmlbody') $act = 'export_xhtmlbody'; - // check if action is disabled - if(!actionOK($act)){ - msg('Command disabled: '.htmlspecialchars($act),-1); - return 'show'; - } + // check if action is disabled + if(!actionOK($act)){ + msg('Command disabled: '.htmlspecialchars($act),-1); + return 'show'; + } - //disable all acl related commands if ACL is disabled - if(!$conf['useacl'] && in_array($act,array('login','logout','register','admin', - 'subscribe','unsubscribe','profile','revert', - 'resendpwd','subscribens','unsubscribens',))){ - msg('Command unavailable: '.htmlspecialchars($act),-1); - return 'show'; - } - - if(!in_array($act,array('login','logout','register','save','cancel','edit','draft', - 'preview','search','show','check','index','revisions', - 'diff','recent','backlink','admin','subscribe','revert', - 'unsubscribe','profile','resendpwd','recover','wordblock', - 'draftdel','subscribens','unsubscribens',)) && substr($act,0,7) != 'export_' ) { - msg('Command unknown: '.htmlspecialchars($act),-1); - return 'show'; - } - return $act; + //disable all acl related commands if ACL is disabled + if(!$conf['useacl'] && in_array($act,array('login','logout','register','admin', + 'subscribe','unsubscribe','profile','revert', + 'resendpwd','subscribens','unsubscribens',))){ + msg('Command unavailable: '.htmlspecialchars($act),-1); + return 'show'; + } + + if(!in_array($act,array('login','logout','register','save','cancel','edit','draft', + 'preview','search','show','check','index','revisions', + 'diff','recent','backlink','admin','subscribe','revert', + 'unsubscribe','profile','resendpwd','recover','wordblock', + 'draftdel','subscribens','unsubscribens',)) && substr($act,0,7) != 'export_' ) { + msg('Command unknown: '.htmlspecialchars($act),-1); + return 'show'; + } + return $act; } /** @@ -217,44 +217,44 @@ function act_clean($act){ * @author Andreas Gohr */ function act_permcheck($act){ - global $INFO; - global $conf; - - if(in_array($act,array('save','preview','edit','recover'))){ - if($INFO['exists']){ - if($act == 'edit'){ - //the edit function will check again and do a source show - //when no AUTH_EDIT available - $permneed = AUTH_READ; - }else{ - $permneed = AUTH_EDIT; - } - }else{ - $permneed = AUTH_CREATE; - } - }elseif(in_array($act,array('login','search','recent','profile'))){ - $permneed = AUTH_NONE; - }elseif($act == 'revert'){ - $permneed = AUTH_ADMIN; - if($INFO['ismanager']) $permneed = AUTH_EDIT; - }elseif($act == 'register'){ - $permneed = AUTH_NONE; - }elseif($act == 'resendpwd'){ - $permneed = AUTH_NONE; - }elseif($act == 'admin'){ - if($INFO['ismanager']){ - // if the manager has the needed permissions for a certain admin - // action is checked later - $permneed = AUTH_READ; + global $INFO; + global $conf; + + if(in_array($act,array('save','preview','edit','recover'))){ + if($INFO['exists']){ + if($act == 'edit'){ + //the edit function will check again and do a source show + //when no AUTH_EDIT available + $permneed = AUTH_READ; + }else{ + $permneed = AUTH_EDIT; + } + }else{ + $permneed = AUTH_CREATE; + } + }elseif(in_array($act,array('login','search','recent','profile'))){ + $permneed = AUTH_NONE; + }elseif($act == 'revert'){ + $permneed = AUTH_ADMIN; + if($INFO['ismanager']) $permneed = AUTH_EDIT; + }elseif($act == 'register'){ + $permneed = AUTH_NONE; + }elseif($act == 'resendpwd'){ + $permneed = AUTH_NONE; + }elseif($act == 'admin'){ + if($INFO['ismanager']){ + // if the manager has the needed permissions for a certain admin + // action is checked later + $permneed = AUTH_READ; + }else{ + $permneed = AUTH_ADMIN; + } }else{ - $permneed = AUTH_ADMIN; + $permneed = AUTH_READ; } - }else{ - $permneed = AUTH_READ; - } - if($INFO['perm'] >= $permneed) return $act; + if($INFO['perm'] >= $permneed) return $act; - return 'denied'; + return 'denied'; } /** @@ -263,10 +263,10 @@ function act_permcheck($act){ * Deletes the draft for the current page and user */ function act_draftdel($act){ - global $INFO; - @unlink($INFO['draft']); - $INFO['draft'] = null; - return 'show'; + global $INFO; + @unlink($INFO['draft']); + $INFO['draft'] = null; + return 'show'; } /** @@ -275,23 +275,23 @@ function act_draftdel($act){ * @todo this currently duplicates code from ajax.php :-/ */ function act_draftsave($act){ - global $INFO; - global $ID; - global $conf; - if($conf['usedraft'] && $_POST['wikitext']){ - $draft = array('id' => $ID, - 'prefix' => $_POST['prefix'], - 'text' => $_POST['wikitext'], - 'suffix' => $_POST['suffix'], - 'date' => $_POST['date'], - 'client' => $INFO['client'], - ); - $cname = getCacheName($draft['client'].$ID,'.draft'); - if(io_saveFile($cname,serialize($draft))){ - $INFO['draft'] = $cname; + global $INFO; + global $ID; + global $conf; + if($conf['usedraft'] && $_POST['wikitext']){ + $draft = array('id' => $ID, + 'prefix' => $_POST['prefix'], + 'text' => $_POST['wikitext'], + 'suffix' => $_POST['suffix'], + 'date' => $_POST['date'], + 'client' => $INFO['client'], + ); + $cname = getCacheName($draft['client'].$ID,'.draft'); + if(io_saveFile($cname,serialize($draft))){ + $INFO['draft'] = $cname; + } } - } - return $act; + return $act; } /** @@ -304,31 +304,31 @@ function act_draftsave($act){ * @author Andreas Gohr */ function act_save($act){ - global $ID; - global $DATE; - global $PRE; - global $TEXT; - global $SUF; - global $SUM; - - //spam check - if(checkwordblock()) - return 'wordblock'; - //conflict check //FIXME use INFO - if($DATE != 0 && @filemtime(wikiFN($ID)) > $DATE ) - return 'conflict'; - - //save it - saveWikiText($ID,con($PRE,$TEXT,$SUF,1),$SUM,$_REQUEST['minor']); //use pretty mode for con - //unlock it - unlock($ID); - - //delete draft - act_draftdel($act); - session_write_close(); - - // when done, show page - return 'show'; + global $ID; + global $DATE; + global $PRE; + global $TEXT; + global $SUF; + global $SUM; + + //spam check + if(checkwordblock()) + return 'wordblock'; + //conflict check //FIXME use INFO + if($DATE != 0 && @filemtime(wikiFN($ID)) > $DATE ) + return 'conflict'; + + //save it + saveWikiText($ID,con($PRE,$TEXT,$SUF,1),$SUM,$_REQUEST['minor']); //use pretty mode for con + //unlock it + unlock($ID); + + //delete draft + act_draftdel($act); + session_write_close(); + + // when done, show page + return 'show'; } /** @@ -374,38 +374,38 @@ function act_revert($act){ * Tries to add the section id as hash mark after section editing */ function act_redirect($id,$preact){ - global $PRE; - global $TEXT; - global $MSG; - - //are there any undisplayed messages? keep them in session for display - //on the next page - if(isset($MSG) && count($MSG)){ - //reopen session, store data and close session again - @session_start(); - $_SESSION[DOKU_COOKIE]['msg'] = $MSG; - session_write_close(); - } - - $opts = array( - 'id' => $id, - 'preact' => $preact - ); - //get section name when coming from section edit - if($PRE && preg_match('/^\s*==+([^=\n]+)/',$TEXT,$match)){ - $check = false; //Byref - $opts['fragment'] = sectionID($match[0], $check); - } - - trigger_event('ACTION_SHOW_REDIRECT',$opts,'act_redirect_execute'); + global $PRE; + global $TEXT; + global $MSG; + + //are there any undisplayed messages? keep them in session for display + //on the next page + if(isset($MSG) && count($MSG)){ + //reopen session, store data and close session again + @session_start(); + $_SESSION[DOKU_COOKIE]['msg'] = $MSG; + session_write_close(); + } + + $opts = array( + 'id' => $id, + 'preact' => $preact + ); + //get section name when coming from section edit + if($PRE && preg_match('/^\s*==+([^=\n]+)/',$TEXT,$match)){ + $check = false; //Byref + $opts['fragment'] = sectionID($match[0], $check); + } + + trigger_event('ACTION_SHOW_REDIRECT',$opts,'act_redirect_execute'); } function act_redirect_execute($opts){ - $go = wl($opts['id'],'',true); - if(isset($opts['fragment'])) $go .= '#'.$opts['fragment']; + $go = wl($opts['id'],'',true); + if(isset($opts['fragment'])) $go .= '#'.$opts['fragment']; - //show it - send_redirect($go); + //show it + send_redirect($go); } /** @@ -414,30 +414,30 @@ function act_redirect_execute($opts){ * @author Andreas Gohr */ function act_auth($act){ - global $ID; - global $INFO; + global $ID; + global $INFO; - //already logged in? - if(isset($_SERVER['REMOTE_USER']) && $act=='login'){ - return 'show'; - } + //already logged in? + if(isset($_SERVER['REMOTE_USER']) && $act=='login'){ + return 'show'; + } - //handle logout - if($act=='logout'){ - $lockedby = checklock($ID); //page still locked? - if($lockedby == $_SERVER['REMOTE_USER']) - unlock($ID); //try to unlock + //handle logout + if($act=='logout'){ + $lockedby = checklock($ID); //page still locked? + if($lockedby == $_SERVER['REMOTE_USER']) + unlock($ID); //try to unlock - // do the logout stuff - auth_logoff(); + // do the logout stuff + auth_logoff(); - // rebuild info array - $INFO = pageinfo(); + // rebuild info array + $INFO = pageinfo(); - act_redirect($ID,'login'); - } + act_redirect($ID,'login'); + } - return $act; + return $act; } /** @@ -446,15 +446,15 @@ function act_auth($act){ * @author Andreas Gohr */ function act_edit($act){ - global $ID; - global $INFO; + global $ID; + global $INFO; - //check if locked by anyone - if not lock for my self - $lockedby = checklock($ID); - if($lockedby) return 'locked'; + //check if locked by anyone - if not lock for my self + $lockedby = checklock($ID); + if($lockedby) return 'locked'; - lock($ID); - return $act; + lock($ID); + return $act; } /** @@ -472,81 +472,81 @@ function act_edit($act){ * @author Michael Klier */ function act_export($act){ - global $ID; - global $REV; - global $conf; - global $lang; - - $pre = ''; - $post = ''; - $output = ''; - $headers = array(); - - // search engines: never cache exported docs! (Google only currently) - $headers['X-Robots-Tag'] = 'noindex'; - - $mode = substr($act,7); - switch($mode) { - case 'raw': - $headers['Content-Type'] = 'text/plain; charset=utf-8'; - $headers['Content-Disposition'] = 'attachment; filename='.noNS($ID).'.txt'; - $output = rawWiki($ID,$REV); - break; - case 'xhtml': - $pre .= '' . DOKU_LF; - $pre .= '' . DOKU_LF; - $pre .= '' . DOKU_LF; - $pre .= ' ' . DOKU_LF; - $pre .= ' '.$ID.'' . DOKU_LF; - - // get metaheaders - ob_start(); - tpl_metaheaders(); - $pre .= ob_get_clean(); - - $pre .= '' . DOKU_LF; - $pre .= '' . DOKU_LF; - $pre .= '
' . DOKU_LF; - - // get toc - $pre .= tpl_toc(true); - - $headers['Content-Type'] = 'text/html; charset=utf-8'; - $output = p_wiki_xhtml($ID,$REV,false); - - $post .= '
' . DOKU_LF; - $post .= '' . DOKU_LF; - $post .= '' . DOKU_LF; - break; - case 'xhtmlbody': - $headers['Content-Type'] = 'text/html; charset=utf-8'; - $output = p_wiki_xhtml($ID,$REV,false); - break; - default: - $output = p_cached_output(wikiFN($ID,$REV), $mode); - $headers = p_get_metadata($ID,"format $mode"); - break; - } - - // prepare event data - $data = array(); - $data['id'] = $ID; - $data['mode'] = $mode; - $data['headers'] = $headers; - $data['output'] =& $output; - - trigger_event('ACTION_EXPORT_POSTPROCESS', $data); - - if(!empty($data['output'])){ - if(is_array($data['headers'])) foreach($data['headers'] as $key => $val){ - header("$key: $val"); + global $ID; + global $REV; + global $conf; + global $lang; + + $pre = ''; + $post = ''; + $output = ''; + $headers = array(); + + // search engines: never cache exported docs! (Google only currently) + $headers['X-Robots-Tag'] = 'noindex'; + + $mode = substr($act,7); + switch($mode) { + case 'raw': + $headers['Content-Type'] = 'text/plain; charset=utf-8'; + $headers['Content-Disposition'] = 'attachment; filename='.noNS($ID).'.txt'; + $output = rawWiki($ID,$REV); + break; + case 'xhtml': + $pre .= '' . DOKU_LF; + $pre .= '' . DOKU_LF; + $pre .= '' . DOKU_LF; + $pre .= ' ' . DOKU_LF; + $pre .= ' '.$ID.'' . DOKU_LF; + + // get metaheaders + ob_start(); + tpl_metaheaders(); + $pre .= ob_get_clean(); + + $pre .= '' . DOKU_LF; + $pre .= '' . DOKU_LF; + $pre .= '
' . DOKU_LF; + + // get toc + $pre .= tpl_toc(true); + + $headers['Content-Type'] = 'text/html; charset=utf-8'; + $output = p_wiki_xhtml($ID,$REV,false); + + $post .= '
' . DOKU_LF; + $post .= '' . DOKU_LF; + $post .= '' . DOKU_LF; + break; + case 'xhtmlbody': + $headers['Content-Type'] = 'text/html; charset=utf-8'; + $output = p_wiki_xhtml($ID,$REV,false); + break; + default: + $output = p_cached_output(wikiFN($ID,$REV), $mode); + $headers = p_get_metadata($ID,"format $mode"); + break; } - print $pre.$data['output'].$post; - exit; - } - return 'show'; + + // prepare event data + $data = array(); + $data['id'] = $ID; + $data['mode'] = $mode; + $data['headers'] = $headers; + $data['output'] =& $output; + + trigger_event('ACTION_EXPORT_POSTPROCESS', $data); + + if(!empty($data['output'])){ + if(is_array($data['headers'])) foreach($data['headers'] as $key => $val){ + header("$key: $val"); + } + print $pre.$data['output'].$post; + exit; + } + return 'show'; } /** @@ -556,32 +556,32 @@ function act_export($act){ * @todo localize */ function act_subscription($act){ - global $ID; - global $INFO; - global $lang; - - $file=metaFN($ID,'.mlist'); - if ($act=='subscribe' && !$INFO['subscribed']){ - if ($INFO['userinfo']['mail']){ - if (io_saveFile($file,$_SERVER['REMOTE_USER']."\n",true)) { - $INFO['subscribed'] = true; - msg(sprintf($lang[$act.'_success'], $INFO['userinfo']['name'], $ID),1); - } else { - msg(sprintf($lang[$act.'_error'], $INFO['userinfo']['name'], $ID),1); - } - } else { - msg($lang['subscribe_noaddress']); - } - } elseif ($act=='unsubscribe' && $INFO['subscribed']){ - if (io_deleteFromFile($file,$_SERVER['REMOTE_USER']."\n")) { - $INFO['subscribed'] = false; - msg(sprintf($lang[$act.'_success'], $INFO['userinfo']['name'], $ID),1); - } else { - msg(sprintf($lang[$act.'_error'], $INFO['userinfo']['name'], $ID),1); + global $ID; + global $INFO; + global $lang; + + $file=metaFN($ID,'.mlist'); + if ($act=='subscribe' && !$INFO['subscribed']){ + if ($INFO['userinfo']['mail']){ + if (io_saveFile($file,$_SERVER['REMOTE_USER']."\n",true)) { + $INFO['subscribed'] = true; + msg(sprintf($lang[$act.'_success'], $INFO['userinfo']['name'], $ID),1); + } else { + msg(sprintf($lang[$act.'_error'], $INFO['userinfo']['name'], $ID),1); + } + } else { + msg($lang['subscribe_noaddress']); + } + } elseif ($act=='unsubscribe' && $INFO['subscribed']){ + if (io_deleteFromFile($file,$_SERVER['REMOTE_USER']."\n")) { + $INFO['subscribed'] = false; + msg(sprintf($lang[$act.'_success'], $INFO['userinfo']['name'], $ID),1); + } else { + msg(sprintf($lang[$act.'_error'], $INFO['userinfo']['name'], $ID),1); + } } - } - return 'show'; + return 'show'; } /** @@ -589,42 +589,42 @@ function act_subscription($act){ * */ function act_subscriptionns($act){ - global $ID; - global $INFO; - global $lang; - - if(!getNS($ID)) { - $file = metaFN(getNS($ID),'.mlist'); - $ns = "root"; - } else { - $file = metaFN(getNS($ID),'/.mlist'); - $ns = getNS($ID); - } - - // reuse strings used to display the status of the subscribe action - $act_msg = rtrim($act, 'ns'); - - if ($act=='subscribens' && !$INFO['subscribedns']){ - if ($INFO['userinfo']['mail']){ - if (io_saveFile($file,$_SERVER['REMOTE_USER']."\n",true)) { - $INFO['subscribedns'] = true; - msg(sprintf($lang[$act_msg.'_success'], $INFO['userinfo']['name'], $ns),1); - } else { - msg(sprintf($lang[$act_msg.'_error'], $INFO['userinfo']['name'], $ns),1); - } + global $ID; + global $INFO; + global $lang; + + if(!getNS($ID)) { + $file = metaFN(getNS($ID),'.mlist'); + $ns = "root"; } else { - msg($lang['subscribe_noaddress']); + $file = metaFN(getNS($ID),'/.mlist'); + $ns = getNS($ID); } - } elseif ($act=='unsubscribens' && $INFO['subscribedns']){ - if (io_deleteFromFile($file,$_SERVER['REMOTE_USER']."\n")) { - $INFO['subscribedns'] = false; - msg(sprintf($lang[$act_msg.'_success'], $INFO['userinfo']['name'], $ns),1); - } else { - msg(sprintf($lang[$act_msg.'_error'], $INFO['userinfo']['name'], $ns),1); + + // reuse strings used to display the status of the subscribe action + $act_msg = rtrim($act, 'ns'); + + if ($act=='subscribens' && !$INFO['subscribedns']){ + if ($INFO['userinfo']['mail']){ + if (io_saveFile($file,$_SERVER['REMOTE_USER']."\n",true)) { + $INFO['subscribedns'] = true; + msg(sprintf($lang[$act_msg.'_success'], $INFO['userinfo']['name'], $ns),1); + } else { + msg(sprintf($lang[$act_msg.'_error'], $INFO['userinfo']['name'], $ns),1); + } + } else { + msg($lang['subscribe_noaddress']); + } + } elseif ($act=='unsubscribens' && $INFO['subscribedns']){ + if (io_deleteFromFile($file,$_SERVER['REMOTE_USER']."\n")) { + $INFO['subscribedns'] = false; + msg(sprintf($lang[$act_msg.'_success'], $INFO['userinfo']['name'], $ns),1); + } else { + msg(sprintf($lang[$act_msg.'_error'], $INFO['userinfo']['name'], $ns),1); + } } - } - return 'show'; + return 'show'; } //Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/inc/cache.php b/inc/cache.php index 8e8adfd6d..2e22edfb1 100644 --- a/inc/cache.php +++ b/inc/cache.php @@ -12,281 +12,281 @@ require_once(DOKU_INC.'inc/pageutils.php'); require_once(DOKU_INC.'inc/parserutils.php'); class cache { - var $key = ''; // primary identifier for this item - var $ext = ''; // file ext for cache data, secondary identifier for this item - var $cache = ''; // cache file name - var $depends = array(); // array containing cache dependency information, - // used by _useCache to determine cache validity - - var $_event = ''; // event to be triggered during useCache - - function cache($key,$ext) { - $this->key = $key; - $this->ext = $ext; - $this->cache = getCacheName($key,$ext); - } - - /** - * public method to determine whether the cache can be used - * - * to assist in cetralisation of event triggering and calculation of cache statistics, - * don't override this function override _useCache() - * - * @param array $depends array of cache dependencies, support dependecies: - * 'age' => max age of the cache in seconds - * 'files' => cache must be younger than mtime of each file - * (nb. dependency passes if file doesn't exist) - * - * @return bool true if cache can be used, false otherwise - */ - function useCache($depends=array()) { - $this->depends = $depends; - $this->_addDependencies(); - - if ($this->_event) { - return $this->_stats(trigger_event($this->_event,$this,array($this,'_useCache'))); - } else { - return $this->_stats($this->_useCache()); + var $key = ''; // primary identifier for this item + var $ext = ''; // file ext for cache data, secondary identifier for this item + var $cache = ''; // cache file name + var $depends = array(); // array containing cache dependency information, + // used by _useCache to determine cache validity + + var $_event = ''; // event to be triggered during useCache + + function cache($key,$ext) { + $this->key = $key; + $this->ext = $ext; + $this->cache = getCacheName($key,$ext); } - } - - /** - * private method containing cache use decision logic - * - * this function processes the following keys in the depends array - * purge - force a purge on any non empty value - * age - expire cache if older than age (seconds) - * files - expire cache if any file in this array was updated more recently than the cache - * - * can be overridden - * - * @return bool see useCache() - */ - function _useCache() { - - if (!empty($this->depends['purge'])) return false; // purge requested? - if (!($this->_time = @filemtime($this->cache))) return false; // cache exists? - - // cache too old? - if (!empty($this->depends['age']) && ((time() - $this->_time) > $this->depends['age'])) return false; - - if (!empty($this->depends['files'])) { - foreach ($this->depends['files'] as $file) { - if ($this->_time < @filemtime($file)) return false; // cache older than files it depends on? - } + + /** + * public method to determine whether the cache can be used + * + * to assist in cetralisation of event triggering and calculation of cache statistics, + * don't override this function override _useCache() + * + * @param array $depends array of cache dependencies, support dependecies: + * 'age' => max age of the cache in seconds + * 'files' => cache must be younger than mtime of each file + * (nb. dependency passes if file doesn't exist) + * + * @return bool true if cache can be used, false otherwise + */ + function useCache($depends=array()) { + $this->depends = $depends; + $this->_addDependencies(); + + if ($this->_event) { + return $this->_stats(trigger_event($this->_event,$this,array($this,'_useCache'))); + } else { + return $this->_stats($this->_useCache()); + } + } + + /** + * private method containing cache use decision logic + * + * this function processes the following keys in the depends array + * purge - force a purge on any non empty value + * age - expire cache if older than age (seconds) + * files - expire cache if any file in this array was updated more recently than the cache + * + * can be overridden + * + * @return bool see useCache() + */ + function _useCache() { + + if (!empty($this->depends['purge'])) return false; // purge requested? + if (!($this->_time = @filemtime($this->cache))) return false; // cache exists? + + // cache too old? + if (!empty($this->depends['age']) && ((time() - $this->_time) > $this->depends['age'])) return false; + + if (!empty($this->depends['files'])) { + foreach ($this->depends['files'] as $file) { + if ($this->_time < @filemtime($file)) return false; // cache older than files it depends on? + } + } + + return true; + } + + /** + * add dependencies to the depends array + * + * this method should only add dependencies, + * it should not remove any existing dependencies and + * it should only overwrite a dependency when the new value is more stringent than the old + */ + function _addDependencies() { + if (isset($_REQUEST['purge'])) $this->depends['purge'] = true; // purge requested } - return true; - } - - /** - * add dependencies to the depends array - * - * this method should only add dependencies, - * it should not remove any existing dependencies and - * it should only overwrite a dependency when the new value is more stringent than the old - */ - function _addDependencies() { - if (isset($_REQUEST['purge'])) $this->depends['purge'] = true; // purge requested - } - - /** - * retrieve the cached data - * - * @param bool $clean true to clean line endings, false to leave line endings alone - * @return string cache contents - */ - function retrieveCache($clean=true) { - return io_readFile($this->cache, $clean); - } - - /** - * cache $data - * - * @param string $data the data to be cached - * @return bool true on success, false otherwise - */ - function storeCache($data) { - return io_savefile($this->cache, $data); - } - - /** - * remove any cached data associated with this cache instance - */ - function removeCache() { - @unlink($this->cache); - } - - /** - * Record cache hits statistics. - * (Only when debugging allowed, to reduce overhead.) - * - * @param bool $success result of this cache use attempt - * @return bool pass-thru $success value - */ - function _stats($success) { - global $conf; - static $stats = NULL; - static $file; - - if (!$conf['allowdebug']) { return $success; } - - if (is_null($stats)) { - $file = $conf['cachedir'].'/cache_stats.txt'; - $lines = explode("\n",io_readFile($file)); - - foreach ($lines as $line) { - $i = strpos($line,','); - $stats[substr($line,0,$i)] = $line; - } + /** + * retrieve the cached data + * + * @param bool $clean true to clean line endings, false to leave line endings alone + * @return string cache contents + */ + function retrieveCache($clean=true) { + return io_readFile($this->cache, $clean); } - if (isset($stats[$this->ext])) { - list($ext,$count,$hits) = explode(',',$stats[$this->ext]); - } else { - $ext = $this->ext; - $count = 0; - $hits = 0; + /** + * cache $data + * + * @param string $data the data to be cached + * @return bool true on success, false otherwise + */ + function storeCache($data) { + return io_savefile($this->cache, $data); } - $count++; - if ($success) $hits++; - $stats[$this->ext] = "$ext,$count,$hits"; + /** + * remove any cached data associated with this cache instance + */ + function removeCache() { + @unlink($this->cache); + } + + /** + * Record cache hits statistics. + * (Only when debugging allowed, to reduce overhead.) + * + * @param bool $success result of this cache use attempt + * @return bool pass-thru $success value + */ + function _stats($success) { + global $conf; + static $stats = null; + static $file; + + if (!$conf['allowdebug']) { return $success; } + + if (is_null($stats)) { + $file = $conf['cachedir'].'/cache_stats.txt'; + $lines = explode("\n",io_readFile($file)); + + foreach ($lines as $line) { + $i = strpos($line,','); + $stats[substr($line,0,$i)] = $line; + } + } + + if (isset($stats[$this->ext])) { + list($ext,$count,$hits) = explode(',',$stats[$this->ext]); + } else { + $ext = $this->ext; + $count = 0; + $hits = 0; + } + + $count++; + if ($success) $hits++; + $stats[$this->ext] = "$ext,$count,$hits"; - io_saveFile($file,join("\n",$stats)); + io_saveFile($file,join("\n",$stats)); - return $success; - } + return $success; + } } class cache_parser extends cache { - var $file = ''; // source file for cache - var $mode = ''; // input mode (represents the processing the input file will undergo) + var $file = ''; // source file for cache + var $mode = ''; // input mode (represents the processing the input file will undergo) - var $_event = 'PARSER_CACHE_USE'; + var $_event = 'PARSER_CACHE_USE'; - function cache_parser($id, $file, $mode) { - if ($id) $this->page = $id; - $this->file = $file; - $this->mode = $mode; + function cache_parser($id, $file, $mode) { + if ($id) $this->page = $id; + $this->file = $file; + $this->mode = $mode; - parent::cache($file.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.'.$mode); - } + parent::cache($file.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.'.$mode); + } - function _useCache() { + function _useCache() { - if (!@file_exists($this->file)) return false; // source exists? - return parent::_useCache(); - } + if (!@file_exists($this->file)) return false; // source exists? + return parent::_useCache(); + } - function _addDependencies() { - global $conf, $config_cascade; + function _addDependencies() { + global $conf, $config_cascade; - $this->depends['age'] = isset($this->depends['age']) ? - min($this->depends['age'],$conf['cachetime']) : $conf['cachetime']; + $this->depends['age'] = isset($this->depends['age']) ? + min($this->depends['age'],$conf['cachetime']) : $conf['cachetime']; - // parser cache file dependencies ... - $files = array($this->file, // ... source - DOKU_INC.'inc/parser/parser.php', // ... parser - DOKU_INC.'inc/parser/handler.php', // ... handler - ); - $files = array_merge($files, getConfigFiles('main')); // ... wiki settings + // parser cache file dependencies ... + $files = array($this->file, // ... source + DOKU_INC.'inc/parser/parser.php', // ... parser + DOKU_INC.'inc/parser/handler.php', // ... handler + ); + $files = array_merge($files, getConfigFiles('main')); // ... wiki settings - $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files; - parent::_addDependencies(); - } + $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files; + parent::_addDependencies(); + } } class cache_renderer extends cache_parser { - function useCache($depends=array()) { - $use = parent::useCache($depends); + function useCache($depends=array()) { + $use = parent::useCache($depends); + + // meta data needs to be kept in step with the cache + if (!$use && isset($this->page)) { + p_set_metadata($this->page,array(),true); + } - // meta data needs to be kept in step with the cache - if (!$use && isset($this->page)) { - p_set_metadata($this->page,array(),true); + return $use; } - return $use; - } + function _useCache() { + global $conf; - function _useCache() { - global $conf; + if (!parent::_useCache()) return false; - if (!parent::_useCache()) return false; + if (!isset($this->page)) { + return true; + } - if (!isset($this->page)) { - return true; - } + // check current link existence is consistent with cache version + // first check the purgefile + // - if the cache is more recent than the purgefile we know no links can have been updated + if ($this->_time >= @filemtime($conf['cachedir'].'/purgefile')) { + return true; + } - // check current link existence is consistent with cache version - // first check the purgefile - // - if the cache is more recent than the purgefile we know no links can have been updated - if ($this->_time >= @filemtime($conf['cachedir'].'/purgefile')) { - return true; - } + // for wiki pages, check metadata dependencies + $metadata = p_get_metadata($this->page); - // for wiki pages, check metadata dependencies - $metadata = p_get_metadata($this->page); + if (!isset($metadata['relation']['references']) || + empty($metadata['relation']['references'])) { + return true; + } - if (!isset($metadata['relation']['references']) || - empty($metadata['relation']['references'])) { - return true; - } + foreach ($metadata['relation']['references'] as $id => $exists) { + if ($exists != page_exists($id,'',false)) return false; + } - foreach ($metadata['relation']['references'] as $id => $exists) { - if ($exists != page_exists($id,'',false)) return false; + return true; } - return true; - } + function _addDependencies() { - function _addDependencies() { + // renderer cache file dependencies ... + $files = array( + DOKU_INC.'inc/parser/'.$this->mode.'.php', // ... the renderer + ); - // renderer cache file dependencies ... - $files = array( - DOKU_INC.'inc/parser/'.$this->mode.'.php', // ... the renderer - ); + // page implies metadata and possibly some other dependencies + if (isset($this->page)) { - // page implies metadata and possibly some other dependencies - if (isset($this->page)) { + $metafile = metaFN($this->page,'.meta'); + if (@file_exists($metafile)) { + $files[] = $metafile; // ... the page's own metadata + $files[] = DOKU_INC.'inc/parser/metadata.php'; // ... the metadata renderer - $metafile = metaFN($this->page,'.meta'); - if (@file_exists($metafile)) { - $files[] = $metafile; // ... the page's own metadata - $files[] = DOKU_INC.'inc/parser/metadata.php'; // ... the metadata renderer + $valid = p_get_metadata($this->page, 'date valid'); + if (!empty($valid['age'])) { + $this->depends['age'] = isset($this->depends['age']) ? + min($this->depends['age'],$valid['age']) : $valid['age']; + } - $valid = p_get_metadata($this->page, 'date valid'); - if (!empty($valid['age'])) { - $this->depends['age'] = isset($this->depends['age']) ? - min($this->depends['age'],$valid['age']) : $valid['age']; + } else { + $this->depends['purge'] = true; // ... purging cache will generate metadata + return; + } } - } else { - $this->depends['purge'] = true; // ... purging cache will generate metadata - return; - } + $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files; + parent::_addDependencies(); } - - $this->depends['files'] = !empty($this->depends['files']) ? array_merge($files, $this->depends['files']) : $files; - parent::_addDependencies(); - } } class cache_instructions extends cache_parser { - function cache_instructions($id, $file) { - parent::cache_parser($id, $file, 'i'); - } + function cache_instructions($id, $file) { + parent::cache_parser($id, $file, 'i'); + } - function retrieveCache($clean=true) { - $contents = io_readFile($this->cache, false); - return !empty($contents) ? unserialize($contents) : array(); - } + function retrieveCache($clean=true) { + $contents = io_readFile($this->cache, false); + return !empty($contents) ? unserialize($contents) : array(); + } - function storeCache($instructions) { - return io_savefile($this->cache,serialize($instructions)); - } + function storeCache($instructions) { + return io_savefile($this->cache,serialize($instructions)); + } } diff --git a/inc/changelog.php b/inc/changelog.php index bc2af2de3..d4130ac99 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -20,18 +20,18 @@ define('DOKU_CHANGE_TYPE_REVERT', 'R'); * @author Ben Coburn */ function parseChangelogLine($line) { - $tmp = explode("\t", $line); + $tmp = explode("\t", $line); if ($tmp!==false && count($tmp)>1) { - $info = array(); - $info['date'] = (int)$tmp[0]; // unix timestamp - $info['ip'] = $tmp[1]; // IPv4 address (127.0.0.1) - $info['type'] = $tmp[2]; // log line type - $info['id'] = $tmp[3]; // page id - $info['user'] = $tmp[4]; // user name - $info['sum'] = $tmp[5]; // edit summary (or action reason) - $info['extra'] = rtrim($tmp[6], "\n"); // extra data (varies by line type) - return $info; - } else { return false; } + $info = array(); + $info['date'] = (int)$tmp[0]; // unix timestamp + $info['ip'] = $tmp[1]; // IPv4 address (127.0.0.1) + $info['type'] = $tmp[2]; // log line type + $info['id'] = $tmp[3]; // page id + $info['user'] = $tmp[4]; // user name + $info['sum'] = $tmp[5]; // edit summary (or action reason) + $info['extra'] = rtrim($tmp[6], "\n"); // extra data (varies by line type) + return $info; + } else { return false; } } /** @@ -42,57 +42,57 @@ function parseChangelogLine($line) { * @author Ben Coburn */ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null){ - global $conf, $INFO; - - // check for special flags as keys - if (!is_array($flags)) { $flags = array(); } - $flagExternalEdit = isset($flags['ExternalEdit']); - - $id = cleanid($id); - $file = wikiFN($id); - $created = @filectime($file); - $minor = ($type===DOKU_CHANGE_TYPE_MINOR_EDIT); - $wasRemoved = ($type===DOKU_CHANGE_TYPE_DELETE); - - if(!$date) $date = time(); //use current time if none supplied - $remote = (!$flagExternalEdit)?clientIP(true):'127.0.0.1'; - $user = (!$flagExternalEdit)?$_SERVER['REMOTE_USER']:''; - - $strip = array("\t", "\n"); - $logline = array( - 'date' => $date, - 'ip' => $remote, - 'type' => str_replace($strip, '', $type), - 'id' => $id, - 'user' => $user, - 'sum' => str_replace($strip, '', $summary), - 'extra' => str_replace($strip, '', $extra) - ); - - // update metadata - if (!$wasRemoved) { - $oldmeta = p_read_metadata($id); - $meta = array(); - if (!$INFO['exists'] && empty($oldmeta['persistent']['date']['created'])){ // newly created - $meta['date']['created'] = $created; - if ($user) $meta['creator'] = $INFO['userinfo']['name']; - } elseif (!$INFO['exists'] && !empty($oldmeta['persistent']['date']['created'])) { // re-created / restored - $meta['date']['created'] = $oldmeta['persistent']['date']['created']; - $meta['date']['modified'] = $created; // use the files ctime here - $meta['creator'] = $oldmeta['persistent']['creator']; - if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name']; - } elseif (!$minor) { // non-minor modification - $meta['date']['modified'] = $date; - if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name']; + global $conf, $INFO; + + // check for special flags as keys + if (!is_array($flags)) { $flags = array(); } + $flagExternalEdit = isset($flags['ExternalEdit']); + + $id = cleanid($id); + $file = wikiFN($id); + $created = @filectime($file); + $minor = ($type===DOKU_CHANGE_TYPE_MINOR_EDIT); + $wasRemoved = ($type===DOKU_CHANGE_TYPE_DELETE); + + if(!$date) $date = time(); //use current time if none supplied + $remote = (!$flagExternalEdit)?clientIP(true):'127.0.0.1'; + $user = (!$flagExternalEdit)?$_SERVER['REMOTE_USER']:''; + + $strip = array("\t", "\n"); + $logline = array( + 'date' => $date, + 'ip' => $remote, + 'type' => str_replace($strip, '', $type), + 'id' => $id, + 'user' => $user, + 'sum' => str_replace($strip, '', $summary), + 'extra' => str_replace($strip, '', $extra) + ); + + // update metadata + if (!$wasRemoved) { + $oldmeta = p_read_metadata($id); + $meta = array(); + if (!$INFO['exists'] && empty($oldmeta['persistent']['date']['created'])){ // newly created + $meta['date']['created'] = $created; + if ($user) $meta['creator'] = $INFO['userinfo']['name']; + } elseif (!$INFO['exists'] && !empty($oldmeta['persistent']['date']['created'])) { // re-created / restored + $meta['date']['created'] = $oldmeta['persistent']['date']['created']; + $meta['date']['modified'] = $created; // use the files ctime here + $meta['creator'] = $oldmeta['persistent']['creator']; + if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name']; + } elseif (!$minor) { // non-minor modification + $meta['date']['modified'] = $date; + if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name']; + } + $meta['last_change'] = $logline; + p_set_metadata($id, $meta, true); } - $meta['last_change'] = $logline; - p_set_metadata($id, $meta, true); - } - - // add changelog lines - $logline = implode("\t", $logline)."\n"; - io_saveFile(metaFN($id,'.changes'),$logline,true); //page changelog - io_saveFile($conf['changelog'],$logline,true); //global changelog cache + + // add changelog lines + $logline = implode("\t", $logline)."\n"; + io_saveFile(metaFN($id,'.changes'),$logline,true); //page changelog + io_saveFile($conf['changelog'],$logline,true); //global changelog cache } /** @@ -104,28 +104,28 @@ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extr * @author Ben Coburn */ function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null){ - global $conf, $INFO; - - $id = cleanid($id); - - if(!$date) $date = time(); //use current time if none supplied - $remote = clientIP(true); - $user = $_SERVER['REMOTE_USER']; - - $strip = array("\t", "\n"); - $logline = array( - 'date' => $date, - 'ip' => $remote, - 'type' => str_replace($strip, '', $type), - 'id' => $id, - 'user' => $user, - 'sum' => str_replace($strip, '', $summary), - 'extra' => str_replace($strip, '', $extra) - ); - - // add changelog lines - $logline = implode("\t", $logline)."\n"; - io_saveFile($conf['media_changelog'],$logline,true); //global media changelog cache + global $conf, $INFO; + + $id = cleanid($id); + + if(!$date) $date = time(); //use current time if none supplied + $remote = clientIP(true); + $user = $_SERVER['REMOTE_USER']; + + $strip = array("\t", "\n"); + $logline = array( + 'date' => $date, + 'ip' => $remote, + 'type' => str_replace($strip, '', $type), + 'id' => $id, + 'user' => $user, + 'sum' => str_replace($strip, '', $summary), + 'extra' => str_replace($strip, '', $extra) + ); + + // add changelog lines + $logline = implode("\t", $logline)."\n"; + io_saveFile($conf['media_changelog'],$logline,true); //global media changelog cache } /** @@ -148,35 +148,34 @@ function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', * @author Ben Coburn */ function getRecents($first,$num,$ns='',$flags=0){ - global $conf; - $recent = array(); - $count = 0; - - if(!$num) - return $recent; + global $conf; + $recent = array(); + $count = 0; + + if(!$num) + return $recent; + + // read all recent changes. (kept short) + if ($flags & RECENTS_MEDIA_CHANGES) { + $lines = @file($conf['media_changelog']); + } else { + $lines = @file($conf['changelog']); + } - // read all recent changes. (kept short) - if ($flags & RECENTS_MEDIA_CHANGES) { - $lines = @file($conf['media_changelog']); - } else { - $lines = @file($conf['changelog']); - } - - - // handle lines - $seen = array(); // caches seen lines, _handleRecent() skips them - for($i = count($lines)-1; $i >= 0; $i--){ - $rec = _handleRecent($lines[$i], $ns, $flags, $seen); - if($rec !== false) { - if(--$first >= 0) continue; // skip first entries - $recent[] = $rec; - $count++; - // break when we have enough entries - if($count >= $num){ break; } + // handle lines + $seen = array(); // caches seen lines, _handleRecent() skips them + for($i = count($lines)-1; $i >= 0; $i--){ + $rec = _handleRecent($lines[$i], $ns, $flags, $seen); + if($rec !== false) { + if(--$first >= 0) continue; // skip first entries + $recent[] = $rec; + $count++; + // break when we have enough entries + if($count >= $num){ break; } + } } - } - return $recent; + return $recent; } /** @@ -200,39 +199,39 @@ function getRecents($first,$num,$ns='',$flags=0){ * @author Ben Coburn */ function getRecentsSince($from,$to=null,$ns='',$flags=0){ - global $conf; - $recent = array(); + global $conf; + $recent = array(); - if($to && $to < $from) - return $recent; + if($to && $to < $from) + return $recent; + + // read all recent changes. (kept short) + if ($flags & RECENTS_MEDIA_CHANGES) { + $lines = @file($conf['media_changelog']); + } else { + $lines = @file($conf['changelog']); + } - // read all recent changes. (kept short) - if ($flags & RECENTS_MEDIA_CHANGES) { - $lines = @file($conf['media_changelog']); - } else { - $lines = @file($conf['changelog']); - } - - // we start searching at the end of the list - $lines = array_reverse($lines); - - // handle lines - $seen = array(); // caches seen lines, _handleRecent() skips them - - foreach($lines as $line){ - $rec = _handleRecent($line, $ns, $flags, $seen); - if($rec !== false) { - if ($rec['date'] >= $from) { - if (!$to || $rec['date'] <= $to) { - $recent[] = $rec; + // we start searching at the end of the list + $lines = array_reverse($lines); + + // handle lines + $seen = array(); // caches seen lines, _handleRecent() skips them + + foreach($lines as $line){ + $rec = _handleRecent($line, $ns, $flags, $seen); + if($rec !== false) { + if ($rec['date'] >= $from) { + if (!$to || $rec['date'] <= $to) { + $recent[] = $rec; + } + } else { + break; + } } - } else { - break; - } } - } - return array_reverse($recent); + return array_reverse($recent); } /** @@ -245,39 +244,39 @@ function getRecentsSince($from,$to=null,$ns='',$flags=0){ * @author Ben Coburn */ function _handleRecent($line,$ns,$flags,&$seen){ - if(empty($line)) return false; //skip empty lines + if(empty($line)) return false; //skip empty lines - // split the line into parts - $recent = parseChangelogLine($line); - if ($recent===false) { return false; } + // split the line into parts + $recent = parseChangelogLine($line); + if ($recent===false) { return false; } - // skip seen ones - if(isset($seen[$recent['id']])) return false; + // skip seen ones + if(isset($seen[$recent['id']])) return false; - // skip minors - if($recent['type']===DOKU_CHANGE_TYPE_MINOR_EDIT && ($flags & RECENTS_SKIP_MINORS)) return false; + // skip minors + if($recent['type']===DOKU_CHANGE_TYPE_MINOR_EDIT && ($flags & RECENTS_SKIP_MINORS)) return false; - // remember in seen to skip additional sights - $seen[$recent['id']] = 1; + // remember in seen to skip additional sights + $seen[$recent['id']] = 1; - // check if it's a hidden page - if(isHiddenPage($recent['id'])) return false; + // check if it's a hidden page + if(isHiddenPage($recent['id'])) return false; - // filter namespace - if (($ns) && (strpos($recent['id'],$ns.':') !== 0)) return false; + // filter namespace + if (($ns) && (strpos($recent['id'],$ns.':') !== 0)) return false; - // exclude subnamespaces - if (($flags & RECENTS_SKIP_SUBSPACES) && (getNS($recent['id']) != $ns)) return false; + // exclude subnamespaces + if (($flags & RECENTS_SKIP_SUBSPACES) && (getNS($recent['id']) != $ns)) return false; - // check ACL - $recent['perms'] = auth_quickaclcheck($recent['id']); - if ($recent['perms'] < AUTH_READ) return false; + // check ACL + $recent['perms'] = auth_quickaclcheck($recent['id']); + if ($recent['perms'] < AUTH_READ) return false; - // check existance - $fn = (($flags & RECENTS_MEDIA_CHANGES) ? mediaFN($recent['id']) : wikiFN($recent['id'])); - if((!@file_exists($fn)) && ($flags & RECENTS_SKIP_DELETED)) return false; + // check existance + $fn = (($flags & RECENTS_MEDIA_CHANGES) ? mediaFN($recent['id']) : wikiFN($recent['id'])); + if((!@file_exists($fn)) && ($flags & RECENTS_SKIP_DELETED)) return false; - return $recent; + return $recent; } /** @@ -291,80 +290,80 @@ function _handleRecent($line,$ns,$flags,&$seen){ * @author Ben Coburn */ function getRevisionInfo($id, $rev, $chunk_size=8192) { - global $cache_revinfo; - $cache =& $cache_revinfo; - if (!isset($cache[$id])) { $cache[$id] = array(); } - $rev = max($rev, 0); - - // check if it's already in the memory cache - if (isset($cache[$id]) && isset($cache[$id][$rev])) { - return $cache[$id][$rev]; - } - - $file = metaFN($id, '.changes'); - if (!@file_exists($file)) { return false; } - if (filesize($file)<$chunk_size || $chunk_size==0) { - // read whole file - $lines = file($file); - if ($lines===false) { return false; } - } else { - // read by chunk - $fp = fopen($file, 'rb'); // "file pointer" - if ($fp===false) { return false; } - $head = 0; - fseek($fp, 0, SEEK_END); - $tail = ftell($fp); - $finger = 0; - $finger_rev = 0; - - // find chunk - while ($tail-$head>$chunk_size) { - $finger = $head+floor(($tail-$head)/2.0); - fseek($fp, $finger); - fgets($fp); // slip the finger forward to a new line - $finger = ftell($fp); - $tmp = fgets($fp); // then read at that location - $tmp = parseChangelogLine($tmp); - $finger_rev = $tmp['date']; - if ($finger==$head || $finger==$tail) { break; } - if ($finger_rev>$rev) { - $tail = $finger; - } else { - $head = $finger; - } + global $cache_revinfo; + $cache =& $cache_revinfo; + if (!isset($cache[$id])) { $cache[$id] = array(); } + $rev = max($rev, 0); + + // check if it's already in the memory cache + if (isset($cache[$id]) && isset($cache[$id][$rev])) { + return $cache[$id][$rev]; } - if ($tail-$head<1) { - // cound not find chunk, assume requested rev is missing - fclose($fp); - return false; - } + $file = metaFN($id, '.changes'); + if (!@file_exists($file)) { return false; } + if (filesize($file)<$chunk_size || $chunk_size==0) { + // read whole file + $lines = file($file); + if ($lines===false) { return false; } + } else { + // read by chunk + $fp = fopen($file, 'rb'); // "file pointer" + if ($fp===false) { return false; } + $head = 0; + fseek($fp, 0, SEEK_END); + $tail = ftell($fp); + $finger = 0; + $finger_rev = 0; + + // find chunk + while ($tail-$head>$chunk_size) { + $finger = $head+floor(($tail-$head)/2.0); + fseek($fp, $finger); + fgets($fp); // slip the finger forward to a new line + $finger = ftell($fp); + $tmp = fgets($fp); // then read at that location + $tmp = parseChangelogLine($tmp); + $finger_rev = $tmp['date']; + if ($finger==$head || $finger==$tail) { break; } + if ($finger_rev>$rev) { + $tail = $finger; + } else { + $head = $finger; + } + } + + if ($tail-$head<1) { + // cound not find chunk, assume requested rev is missing + fclose($fp); + return false; + } - // read chunk - $chunk = ''; - $chunk_size = max($tail-$head, 0); // found chunk size - $got = 0; - fseek($fp, $head); - while ($got<$chunk_size && !feof($fp)) { - $tmp = @fread($fp, max($chunk_size-$got, 0)); - if ($tmp===false) { break; } //error state - $got += strlen($tmp); - $chunk .= $tmp; + // read chunk + $chunk = ''; + $chunk_size = max($tail-$head, 0); // found chunk size + $got = 0; + fseek($fp, $head); + while ($got<$chunk_size && !feof($fp)) { + $tmp = @fread($fp, max($chunk_size-$got, 0)); + if ($tmp===false) { break; } //error state + $got += strlen($tmp); + $chunk .= $tmp; + } + $lines = explode("\n", $chunk); + array_pop($lines); // remove trailing newline + fclose($fp); } - $lines = explode("\n", $chunk); - array_pop($lines); // remove trailing newline - fclose($fp); - } - - // parse and cache changelog lines - foreach ($lines as $value) { - $tmp = parseChangelogLine($value); - if ($tmp!==false) { - $cache[$id][$tmp['date']] = $tmp; + + // parse and cache changelog lines + foreach ($lines as $value) { + $tmp = parseChangelogLine($value); + if ($tmp!==false) { + $cache[$id][$tmp['date']] = $tmp; + } } - } - if (!isset($cache[$id][$rev])) { return false; } - return $cache[$id][$rev]; + if (!isset($cache[$id][$rev])) { return false; } + return $cache[$id][$rev]; } /** @@ -388,87 +387,87 @@ function getRevisionInfo($id, $rev, $chunk_size=8192) { * @author Ben Coburn */ function getRevisions($id, $first, $num, $chunk_size=8192) { - global $cache_revinfo; - $cache =& $cache_revinfo; - if (!isset($cache[$id])) { $cache[$id] = array(); } - - $revs = array(); - $lines = array(); - $count = 0; - $file = metaFN($id, '.changes'); - $num = max($num, 0); - $chunk_size = max($chunk_size, 0); - if ($first<0) { $first = 0; } - else if (@file_exists(wikiFN($id))) { - // skip current revision if the page exists - $first = max($first+1, 0); - } - - if (!@file_exists($file)) { return $revs; } - if (filesize($file)<$chunk_size || $chunk_size==0) { - // read whole file - $lines = file($file); - if ($lines===false) { return $revs; } - } else { - // read chunks backwards - $fp = fopen($file, 'rb'); // "file pointer" - if ($fp===false) { return $revs; } - fseek($fp, 0, SEEK_END); - $tail = ftell($fp); - - // chunk backwards - $finger = max($tail-$chunk_size, 0); - while ($count<$num+$first) { - fseek($fp, $finger); - if ($finger>0) { - fgets($fp); // slip the finger forward to a new line - $finger = ftell($fp); - } - - // read chunk - if ($tail<=$finger) { break; } - $chunk = ''; - $read_size = max($tail-$finger, 0); // found chunk size - $got = 0; - while ($got<$read_size && !feof($fp)) { - $tmp = @fread($fp, max($read_size-$got, 0)); - if ($tmp===false) { break; } //error state - $got += strlen($tmp); - $chunk .= $tmp; - } - $tmp = explode("\n", $chunk); - array_pop($tmp); // remove trailing newline - - // combine with previous chunk - $count += count($tmp); - $lines = array_merge($tmp, $lines); - - // next chunk - if ($finger==0) { break; } // already read all the lines - else { - $tail = $finger; + global $cache_revinfo; + $cache =& $cache_revinfo; + if (!isset($cache[$id])) { $cache[$id] = array(); } + + $revs = array(); + $lines = array(); + $count = 0; + $file = metaFN($id, '.changes'); + $num = max($num, 0); + $chunk_size = max($chunk_size, 0); + if ($first<0) { $first = 0; } + else if (@file_exists(wikiFN($id))) { + // skip current revision if the page exists + $first = max($first+1, 0); + } + + if (!@file_exists($file)) { return $revs; } + if (filesize($file)<$chunk_size || $chunk_size==0) { + // read whole file + $lines = file($file); + if ($lines===false) { return $revs; } + } else { + // read chunks backwards + $fp = fopen($file, 'rb'); // "file pointer" + if ($fp===false) { return $revs; } + fseek($fp, 0, SEEK_END); + $tail = ftell($fp); + + // chunk backwards $finger = max($tail-$chunk_size, 0); - } + while ($count<$num+$first) { + fseek($fp, $finger); + if ($finger>0) { + fgets($fp); // slip the finger forward to a new line + $finger = ftell($fp); + } + + // read chunk + if ($tail<=$finger) { break; } + $chunk = ''; + $read_size = max($tail-$finger, 0); // found chunk size + $got = 0; + while ($got<$read_size && !feof($fp)) { + $tmp = @fread($fp, max($read_size-$got, 0)); + if ($tmp===false) { break; } //error state + $got += strlen($tmp); + $chunk .= $tmp; + } + $tmp = explode("\n", $chunk); + array_pop($tmp); // remove trailing newline + + // combine with previous chunk + $count += count($tmp); + $lines = array_merge($tmp, $lines); + + // next chunk + if ($finger==0) { break; } // already read all the lines + else { + $tail = $finger; + $finger = max($tail-$chunk_size, 0); + } + } + fclose($fp); } - fclose($fp); - } - - // skip parsing extra lines - $num = max(min(count($lines)-$first, $num), 0); - if ($first>0 && $num>0) { $lines = array_slice($lines, max(count($lines)-$first-$num, 0), $num); } - else if ($first>0 && $num==0) { $lines = array_slice($lines, 0, max(count($lines)-$first, 0)); } - else if ($first==0 && $num>0) { $lines = array_slice($lines, max(count($lines)-$num, 0)); } - - // handle lines in reverse order - for ($i = count($lines)-1; $i >= 0; $i--) { - $tmp = parseChangelogLine($lines[$i]); - if ($tmp!==false) { - $cache[$id][$tmp['date']] = $tmp; - $revs[] = $tmp['date']; + + // skip parsing extra lines + $num = max(min(count($lines)-$first, $num), 0); + if ($first>0 && $num>0) { $lines = array_slice($lines, max(count($lines)-$first-$num, 0), $num); } + else if ($first>0 && $num==0) { $lines = array_slice($lines, 0, max(count($lines)-$first, 0)); } + else if ($first==0 && $num>0) { $lines = array_slice($lines, max(count($lines)-$num, 0)); } + + // handle lines in reverse order + for ($i = count($lines)-1; $i >= 0; $i--) { + $tmp = parseChangelogLine($lines[$i]); + if ($tmp!==false) { + $cache[$id][$tmp['date']] = $tmp; + $revs[] = $tmp['date']; + } } - } - return $revs; + return $revs; } diff --git a/inc/cliopts.php b/inc/cliopts.php index a3698ab24..ede559a63 100644 --- a/inc/cliopts.php +++ b/inc/cliopts.php @@ -1,7 +1,7 @@ * */ - class Doku_Cli_Opts { +class Doku_Cli_Opts { /** - * - * @see http://www.sitepoint.com/article/php-command-line-1/3 - * @param string executing file name - this MUST be passed the __FILE__ constant - * @param string short options - * @param array (optional) long options - * @return Doku_Cli_Opts_Container or Doku_Cli_Opts_Error - */ + * + * @see http://www.sitepoint.com/article/php-command-line-1/3 + * @param string executing file name - this MUST be passed the __FILE__ constant + * @param string short options + * @param array (optional) long options + * @return Doku_Cli_Opts_Container or Doku_Cli_Opts_Error + */ function & getOptions($bin_file, $short_options, $long_options = null) { $args = Doku_Cli_Opts::readPHPArgv(); @@ -168,7 +168,8 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv } function _parseShortOption($arg, $short_options, &$opts, &$args) { - for ($i = 0; $i < strlen($arg); $i++) { + $len = strlen($arg); + for ($i = 0; $i < $len; $i++) { $opt = $arg{$i}; $opt_arg = null; @@ -212,8 +213,9 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv function _parseLongOption($arg, $long_options, &$opts, &$args) { @list($opt, $opt_arg) = explode('=', $arg); $opt_len = strlen($opt); + $opt_cnt = count($long_options); - for ($i = 0; $i < count($long_options); $i++) { + for ($i = 0; $i < $opt_cnt; $i++) { $long_opt = $long_options[$i]; $opt_start = substr($long_opt, 0, $opt_len); @@ -226,7 +228,7 @@ define('DOKU_CLI_OPTS_ARG_READ',5);//Could not read argv /* Check that the options uniquely matches one of the allowed options. */ if ($opt_rest != '' && $opt{0} != '=' && - $i + 1 < count($long_options) && + $i + 1 < $opt_cnt && $opt == substr($long_options[$i+1], 0, $opt_len)) { return Doku_Cli_Opts::raiseError( DOKU_CLI_OPTS_OPT_ABIGUOUS, @@ -326,7 +328,6 @@ class Doku_Cli_Opts_Container { $this->options[$opt_name] = $option[1]; } - $this->args = $options[1]; } diff --git a/inc/common.php b/inc/common.php index 321148c7a..85187f16d 100644 --- a/inc/common.php +++ b/inc/common.php @@ -29,7 +29,7 @@ define('RECENTS_MEDIA_CHANGES',16); * @see htmlspecialchars() */ function hsc($string){ - return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); + return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); } /** @@ -40,7 +40,7 @@ function hsc($string){ * @author Andreas Gohr */ function ptln($string,$indent=0){ - echo str_repeat(' ', $indent)."$string\n"; + echo str_repeat(' ', $indent)."$string\n"; } /** @@ -49,7 +49,7 @@ function ptln($string,$indent=0){ * @author Andreas Gohr */ function stripctl($string){ - return preg_replace('/[\x00-\x1F]+/s','',$string); + return preg_replace('/[\x00-\x1F]+/s','',$string); } /** @@ -61,21 +61,21 @@ function stripctl($string){ * @return string */ function getSecurityToken(){ - return md5(auth_cookiesalt().session_id()); + return md5(auth_cookiesalt().session_id()); } /** * Check the secret CSRF token */ function checkSecurityToken($token=null){ - if(!$_SERVER['REMOTE_USER']) return true; // no logged in user, no need for a check + if(!$_SERVER['REMOTE_USER']) return true; // no logged in user, no need for a check - if(is_null($token)) $token = $_REQUEST['sectok']; - if(getSecurityToken() != $token){ - msg('Security Token did not match. Possible CSRF attack.',-1); - return false; - } - return true; + if(is_null($token)) $token = $_REQUEST['sectok']; + if(getSecurityToken() != $token){ + msg('Security Token did not match. Possible CSRF attack.',-1); + return false; + } + return true; } /** @@ -84,12 +84,12 @@ function checkSecurityToken($token=null){ * @author Andreas Gohr */ function formSecurityToken($print=true){ - $ret = '
'."\n"; - if($print){ - echo $ret; - }else{ - return $ret; - } + $ret = '
'."\n"; + if($print){ + echo $ret; + }else{ + return $ret; + } } /** @@ -99,128 +99,128 @@ function formSecurityToken($print=true){ * @author Andreas Gohr */ function pageinfo(){ - global $ID; - global $REV; - global $RANGE; - global $USERINFO; - global $conf; - global $lang; - - // include ID & REV not redundant, as some parts of DokuWiki may temporarily change $ID, e.g. p_wiki_xhtml - // FIXME ... perhaps it would be better to ensure the temporary changes weren't necessary - $info['id'] = $ID; - $info['rev'] = $REV; + global $ID; + global $REV; + global $RANGE; + global $USERINFO; + global $conf; + global $lang; + + // include ID & REV not redundant, as some parts of DokuWiki may temporarily change $ID, e.g. p_wiki_xhtml + // FIXME ... perhaps it would be better to ensure the temporary changes weren't necessary + $info['id'] = $ID; + $info['rev'] = $REV; // set info about manager/admin status. $info['isadmin'] = false; $info['ismanager'] = false; - if(isset($_SERVER['REMOTE_USER'])){ - $info['userinfo'] = $USERINFO; - $info['perm'] = auth_quickaclcheck($ID); - $info['subscribed'] = is_subscribed($ID,$_SERVER['REMOTE_USER'],false); - $info['subscribedns'] = is_subscribed($ID,$_SERVER['REMOTE_USER'],true); - $info['client'] = $_SERVER['REMOTE_USER']; - - if($info['perm'] == AUTH_ADMIN){ - $info['isadmin'] = true; - $info['ismanager'] = true; - }elseif(auth_ismanager()){ - $info['ismanager'] = true; - } - - // if some outside auth were used only REMOTE_USER is set - if(!$info['userinfo']['name']){ - $info['userinfo']['name'] = $_SERVER['REMOTE_USER']; - } - - }else{ - $info['perm'] = auth_aclcheck($ID,'',null); - $info['subscribed'] = false; - $info['client'] = clientIP(true); - } - - $info['namespace'] = getNS($ID); - $info['locked'] = checklock($ID); - $info['filepath'] = fullpath(wikiFN($ID)); - $info['exists'] = @file_exists($info['filepath']); - if($REV){ - //check if current revision was meant - if($info['exists'] && (@filemtime($info['filepath'])==$REV)){ - $REV = ''; - }elseif($RANGE){ - //section editing does not work with old revisions! - $REV = ''; - $RANGE = ''; - msg($lang['nosecedit'],0); + if(isset($_SERVER['REMOTE_USER'])){ + $info['userinfo'] = $USERINFO; + $info['perm'] = auth_quickaclcheck($ID); + $info['subscribed'] = is_subscribed($ID,$_SERVER['REMOTE_USER'],false); + $info['subscribedns'] = is_subscribed($ID,$_SERVER['REMOTE_USER'],true); + $info['client'] = $_SERVER['REMOTE_USER']; + + if($info['perm'] == AUTH_ADMIN){ + $info['isadmin'] = true; + $info['ismanager'] = true; + }elseif(auth_ismanager()){ + $info['ismanager'] = true; + } + + // if some outside auth were used only REMOTE_USER is set + if(!$info['userinfo']['name']){ + $info['userinfo']['name'] = $_SERVER['REMOTE_USER']; + } + }else{ - //really use old revision - $info['filepath'] = fullpath(wikiFN($ID,$REV)); - $info['exists'] = @file_exists($info['filepath']); - } - } - $info['rev'] = $REV; - if($info['exists']){ - $info['writable'] = (is_writable($info['filepath']) && - ($info['perm'] >= AUTH_EDIT)); - }else{ - $info['writable'] = ($info['perm'] >= AUTH_CREATE); - } - $info['editable'] = ($info['writable'] && empty($info['lock'])); - $info['lastmod'] = @filemtime($info['filepath']); - - //load page meta data - $info['meta'] = p_get_metadata($ID); - - //who's the editor - if($REV){ - $revinfo = getRevisionInfo($ID, $REV, 1024); - }else{ - if (is_array($info['meta']['last_change'])) { - $revinfo = $info['meta']['last_change']; - } else { - $revinfo = getRevisionInfo($ID, $info['lastmod'], 1024); - // cache most recent changelog line in metadata if missing and still valid - if ($revinfo!==false) { + $info['perm'] = auth_aclcheck($ID,'',null); + $info['subscribed'] = false; + $info['client'] = clientIP(true); + } + + $info['namespace'] = getNS($ID); + $info['locked'] = checklock($ID); + $info['filepath'] = fullpath(wikiFN($ID)); + $info['exists'] = @file_exists($info['filepath']); + if($REV){ + //check if current revision was meant + if($info['exists'] && (@filemtime($info['filepath'])==$REV)){ + $REV = ''; + }elseif($RANGE){ + //section editing does not work with old revisions! + $REV = ''; + $RANGE = ''; + msg($lang['nosecedit'],0); + }else{ + //really use old revision + $info['filepath'] = fullpath(wikiFN($ID,$REV)); + $info['exists'] = @file_exists($info['filepath']); + } + } + $info['rev'] = $REV; + if($info['exists']){ + $info['writable'] = (is_writable($info['filepath']) && + ($info['perm'] >= AUTH_EDIT)); + }else{ + $info['writable'] = ($info['perm'] >= AUTH_CREATE); + } + $info['editable'] = ($info['writable'] && empty($info['lock'])); + $info['lastmod'] = @filemtime($info['filepath']); + + //load page meta data + $info['meta'] = p_get_metadata($ID); + + //who's the editor + if($REV){ + $revinfo = getRevisionInfo($ID, $REV, 1024); + }else{ + if (is_array($info['meta']['last_change'])) { + $revinfo = $info['meta']['last_change']; + } else { + $revinfo = getRevisionInfo($ID, $info['lastmod'], 1024); + // cache most recent changelog line in metadata if missing and still valid + if ($revinfo!==false) { + $info['meta']['last_change'] = $revinfo; + p_set_metadata($ID, array('last_change' => $revinfo)); + } + } + } + //and check for an external edit + if($revinfo!==false && $revinfo['date']!=$info['lastmod']){ + // cached changelog line no longer valid + $revinfo = false; $info['meta']['last_change'] = $revinfo; p_set_metadata($ID, array('last_change' => $revinfo)); - } - } - } - //and check for an external edit - if($revinfo!==false && $revinfo['date']!=$info['lastmod']){ - // cached changelog line no longer valid - $revinfo = false; - $info['meta']['last_change'] = $revinfo; - p_set_metadata($ID, array('last_change' => $revinfo)); - } - - $info['ip'] = $revinfo['ip']; - $info['user'] = $revinfo['user']; - $info['sum'] = $revinfo['sum']; - // See also $INFO['meta']['last_change'] which is the most recent log line for page $ID. - // Use $INFO['meta']['last_change']['type']===DOKU_CHANGE_TYPE_MINOR_EDIT in place of $info['minor']. - - if($revinfo['user']){ - $info['editor'] = $revinfo['user']; - }else{ - $info['editor'] = $revinfo['ip']; - } - - // draft - $draft = getCacheName($info['client'].$ID,'.draft'); - if(@file_exists($draft)){ - if(@filemtime($draft) < @filemtime(wikiFN($ID))){ - // remove stale draft - @unlink($draft); + } + + $info['ip'] = $revinfo['ip']; + $info['user'] = $revinfo['user']; + $info['sum'] = $revinfo['sum']; + // See also $INFO['meta']['last_change'] which is the most recent log line for page $ID. + // Use $INFO['meta']['last_change']['type']===DOKU_CHANGE_TYPE_MINOR_EDIT in place of $info['minor']. + + if($revinfo['user']){ + $info['editor'] = $revinfo['user']; }else{ - $info['draft'] = $draft; + $info['editor'] = $revinfo['ip']; + } + + // draft + $draft = getCacheName($info['client'].$ID,'.draft'); + if(@file_exists($draft)){ + if(@filemtime($draft) < @filemtime(wikiFN($ID))){ + // remove stale draft + @unlink($draft); + }else{ + $info['draft'] = $draft; + } } - } - // mobile detection - $info['ismobile'] = clientismobile(); + // mobile detection + $info['ismobile'] = clientismobile(); - return $info; + return $info; } /** @@ -229,16 +229,16 @@ function pageinfo(){ * @author Andreas Gohr */ function buildURLparams($params, $sep='&'){ - $url = ''; - $amp = false; - foreach($params as $key => $val){ - if($amp) $url .= $sep; - - $url .= $key.'='; - $url .= rawurlencode((string)$val); - $amp = true; - } - return $url; + $url = ''; + $amp = false; + foreach($params as $key => $val){ + if($amp) $url .= $sep; + + $url .= $key.'='; + $url .= rawurlencode((string)$val); + $amp = true; + } + return $url; } /** @@ -249,16 +249,16 @@ function buildURLparams($params, $sep='&'){ * @author Andreas Gohr */ function buildAttributes($params,$skipempty=false){ - $url = ''; - foreach($params as $key => $val){ - if($key{0} == '_') continue; - if($val === '' && $skipempty) continue; - - $url .= $key.'="'; - $url .= htmlspecialchars ($val); - $url .= '" '; - } - return $url; + $url = ''; + foreach($params as $key => $val){ + if($key{0} == '_') continue; + if($val === '' && $skipempty) continue; + + $url .= $key.'="'; + $url .= htmlspecialchars ($val); + $url .= '" '; + } + return $url; } @@ -268,47 +268,47 @@ function buildAttributes($params,$skipempty=false){ * @author Andreas Gohr */ function breadcrumbs(){ - // we prepare the breadcrumbs early for quick session closing - static $crumbs = null; - if($crumbs != null) return $crumbs; - - global $ID; - global $ACT; - global $conf; - - //first visit? - $crumbs = isset($_SESSION[DOKU_COOKIE]['bc']) ? $_SESSION[DOKU_COOKIE]['bc'] : array(); - //we only save on show and existing wiki documents - $file = wikiFN($ID); - if($ACT != 'show' || !@file_exists($file)){ + // we prepare the breadcrumbs early for quick session closing + static $crumbs = null; + if($crumbs != null) return $crumbs; + + global $ID; + global $ACT; + global $conf; + + //first visit? + $crumbs = isset($_SESSION[DOKU_COOKIE]['bc']) ? $_SESSION[DOKU_COOKIE]['bc'] : array(); + //we only save on show and existing wiki documents + $file = wikiFN($ID); + if($ACT != 'show' || !@file_exists($file)){ + $_SESSION[DOKU_COOKIE]['bc'] = $crumbs; + return $crumbs; + } + + // page names + $name = noNSorNS($ID); + if (useHeading('navigation')) { + // get page title + $title = p_get_first_heading($ID,true); + if ($title) { + $name = $title; + } + } + + //remove ID from array + if (isset($crumbs[$ID])) { + unset($crumbs[$ID]); + } + + //add to array + $crumbs[$ID] = $name; + //reduce size + while(count($crumbs) > $conf['breadcrumbs']){ + array_shift($crumbs); + } + //save to session $_SESSION[DOKU_COOKIE]['bc'] = $crumbs; return $crumbs; - } - - // page names - $name = noNSorNS($ID); - if (useHeading('navigation')) { - // get page title - $title = p_get_first_heading($ID,true); - if ($title) { - $name = $title; - } - } - - //remove ID from array - if (isset($crumbs[$ID])) { - unset($crumbs[$ID]); - } - - //add to array - $crumbs[$ID] = $name; - //reduce size - while(count($crumbs) > $conf['breadcrumbs']){ - array_shift($crumbs); - } - //save to session - $_SESSION[DOKU_COOKIE]['bc'] = $crumbs; - return $crumbs; } /** @@ -323,19 +323,19 @@ function breadcrumbs(){ * @author Andreas Gohr */ function idfilter($id,$ue=true){ - global $conf; - if ($conf['useslash'] && $conf['userewrite']){ - $id = strtr($id,':','/'); - }elseif (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' && - $conf['userewrite']) { - $id = strtr($id,':',';'); - } - if($ue){ - $id = rawurlencode($id); - $id = str_replace('%3A',':',$id); //keep as colon - $id = str_replace('%2F','/',$id); //keep as slash - } - return $id; + global $conf; + if ($conf['useslash'] && $conf['userewrite']){ + $id = strtr($id,':','/'); + }elseif (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' && + $conf['userewrite']) { + $id = strtr($id,':',';'); + } + if($ue){ + $id = rawurlencode($id); + $id = str_replace('%3A',':',$id); //keep as colon + $id = str_replace('%2F','/',$id); //keep as slash + } + return $id; } /** @@ -347,35 +347,35 @@ function idfilter($id,$ue=true){ * @author Andreas Gohr */ function wl($id='',$more='',$abs=false,$sep='&'){ - global $conf; - if(is_array($more)){ - $more = buildURLparams($more,$sep); - }else{ - $more = str_replace(',',$sep,$more); - } - - $id = idfilter($id); - if($abs){ - $xlink = DOKU_URL; - }else{ - $xlink = DOKU_BASE; - } - - if($conf['userewrite'] == 2){ - $xlink .= DOKU_SCRIPT.'/'.$id; - if($more) $xlink .= '?'.$more; - }elseif($conf['userewrite']){ - $xlink .= $id; - if($more) $xlink .= '?'.$more; - }elseif($id){ - $xlink .= DOKU_SCRIPT.'?id='.$id; - if($more) $xlink .= $sep.$more; - }else{ - $xlink .= DOKU_SCRIPT; - if($more) $xlink .= '?'.$more; - } - - return $xlink; + global $conf; + if(is_array($more)){ + $more = buildURLparams($more,$sep); + }else{ + $more = str_replace(',',$sep,$more); + } + + $id = idfilter($id); + if($abs){ + $xlink = DOKU_URL; + }else{ + $xlink = DOKU_BASE; + } + + if($conf['userewrite'] == 2){ + $xlink .= DOKU_SCRIPT.'/'.$id; + if($more) $xlink .= '?'.$more; + }elseif($conf['userewrite']){ + $xlink .= $id; + if($more) $xlink .= '?'.$more; + }elseif($id){ + $xlink .= DOKU_SCRIPT.'?id='.$id; + if($more) $xlink .= $sep.$more; + }else{ + $xlink .= DOKU_SCRIPT; + if($more) $xlink .= '?'.$more; + } + + return $xlink; } /** @@ -386,33 +386,33 @@ function wl($id='',$more='',$abs=false,$sep='&'){ * @author Ben Coburn */ function exportlink($id='',$format='raw',$more='',$abs=false,$sep='&'){ - global $conf; - if(is_array($more)){ - $more = buildURLparams($more,$sep); - }else{ - $more = str_replace(',',$sep,$more); - } - - $format = rawurlencode($format); - $id = idfilter($id); - if($abs){ - $xlink = DOKU_URL; - }else{ - $xlink = DOKU_BASE; - } - - if($conf['userewrite'] == 2){ - $xlink .= DOKU_SCRIPT.'/'.$id.'?do=export_'.$format; - if($more) $xlink .= $sep.$more; - }elseif($conf['userewrite'] == 1){ - $xlink .= '_export/'.$format.'/'.$id; - if($more) $xlink .= '?'.$more; - }else{ - $xlink .= DOKU_SCRIPT.'?do=export_'.$format.$sep.'id='.$id; - if($more) $xlink .= $sep.$more; - } - - return $xlink; + global $conf; + if(is_array($more)){ + $more = buildURLparams($more,$sep); + }else{ + $more = str_replace(',',$sep,$more); + } + + $format = rawurlencode($format); + $id = idfilter($id); + if($abs){ + $xlink = DOKU_URL; + }else{ + $xlink = DOKU_BASE; + } + + if($conf['userewrite'] == 2){ + $xlink .= DOKU_SCRIPT.'/'.$id.'?do=export_'.$format; + if($more) $xlink .= $sep.$more; + }elseif($conf['userewrite'] == 1){ + $xlink .= '_export/'.$format.'/'.$id; + if($more) $xlink .= '?'.$more; + }else{ + $xlink .= DOKU_SCRIPT.'?do=export_'.$format.$sep.'id='.$id; + if($more) $xlink .= $sep.$more; + } + + return $xlink; } /** @@ -430,71 +430,71 @@ function exportlink($id='',$format='raw',$more='',$abs=false,$sep='&'){ * @param boolean $abs - Create an absolute URL */ function ml($id='',$more='',$direct=true,$sep='&',$abs=false){ - global $conf; - if(is_array($more)){ - // strip defaults for shorter URLs - if(isset($more['cache']) && $more['cache'] == 'cache') unset($more['cache']); - if(!$more['w']) unset($more['w']); - if(!$more['h']) unset($more['h']); - if(isset($more['id']) && $direct) unset($more['id']); - $more = buildURLparams($more,$sep); - }else{ - $more = str_replace('cache=cache','',$more); //skip default - $more = str_replace(',,',',',$more); - $more = str_replace(',',$sep,$more); - } - - if($abs){ - $xlink = DOKU_URL; - }else{ - $xlink = DOKU_BASE; - } - - // external URLs are always direct without rewriting - if(preg_match('#^(https?|ftp)://#i',$id)){ - $xlink .= 'lib/exe/fetch.php'; - // add hash: - $xlink .= '?hash='.substr(md5(auth_cookiesalt().$id),0,6); - if($more){ - $xlink .= $sep.$more; - $xlink .= $sep.'media='.rawurlencode($id); + global $conf; + if(is_array($more)){ + // strip defaults for shorter URLs + if(isset($more['cache']) && $more['cache'] == 'cache') unset($more['cache']); + if(!$more['w']) unset($more['w']); + if(!$more['h']) unset($more['h']); + if(isset($more['id']) && $direct) unset($more['id']); + $more = buildURLparams($more,$sep); }else{ - $xlink .= $sep.'media='.rawurlencode($id); + $more = str_replace('cache=cache','',$more); //skip default + $more = str_replace(',,',',',$more); + $more = str_replace(',',$sep,$more); } - return $xlink; - } - $id = idfilter($id); + if($abs){ + $xlink = DOKU_URL; + }else{ + $xlink = DOKU_BASE; + } - // decide on scriptname - if($direct){ - if($conf['userewrite'] == 1){ - $script = '_media'; + // external URLs are always direct without rewriting + if(preg_match('#^(https?|ftp)://#i',$id)){ + $xlink .= 'lib/exe/fetch.php'; + // add hash: + $xlink .= '?hash='.substr(md5(auth_cookiesalt().$id),0,6); + if($more){ + $xlink .= $sep.$more; + $xlink .= $sep.'media='.rawurlencode($id); + }else{ + $xlink .= $sep.'media='.rawurlencode($id); + } + return $xlink; + } + + $id = idfilter($id); + + // decide on scriptname + if($direct){ + if($conf['userewrite'] == 1){ + $script = '_media'; + }else{ + $script = 'lib/exe/fetch.php'; + } }else{ - $script = 'lib/exe/fetch.php'; + if($conf['userewrite'] == 1){ + $script = '_detail'; + }else{ + $script = 'lib/exe/detail.php'; + } } - }else{ - if($conf['userewrite'] == 1){ - $script = '_detail'; + + // build URL based on rewrite mode + if($conf['userewrite']){ + $xlink .= $script.'/'.$id; + if($more) $xlink .= '?'.$more; }else{ - $script = 'lib/exe/detail.php'; - } - } - - // build URL based on rewrite mode - if($conf['userewrite']){ - $xlink .= $script.'/'.$id; - if($more) $xlink .= '?'.$more; - }else{ - if($more){ - $xlink .= $script.'?'.$more; - $xlink .= $sep.'media='.$id; - }else{ - $xlink .= $script.'?media='.$id; - } - } - - return $xlink; + if($more){ + $xlink .= $script.'?'.$more; + $xlink .= $sep.'media='.$id; + }else{ + $xlink .= $script.'?media='.$id; + } + } + + return $xlink; } @@ -506,10 +506,7 @@ function ml($id='',$more='',$direct=true,$sep='&',$abs=false){ * @author Andreas Gohr */ function script($script='doku.php'){ -# $link = getBaseURL(); -# $link .= $script; -# return $link; - return DOKU_BASE.DOKU_SCRIPT; + return DOKU_BASE.DOKU_SCRIPT; } /** @@ -537,54 +534,54 @@ function script($script='doku.php'){ * @return bool - true if a spam word was found */ function checkwordblock($text=''){ - global $TEXT; - global $PRE; - global $SUF; - global $conf; - global $INFO; - - if(!$conf['usewordblock']) return false; - - if(!$text) $text = "$PRE $TEXT $SUF"; - - // we prepare the text a tiny bit to prevent spammers circumventing URL checks - $text = preg_replace('!(\b)(www\.[\w.:?\-;,]+?\.[\w.:?\-;,]+?[\w/\#~:.?+=&%@\!\-.:?\-;,]+?)([.:?\-;,]*[^\w/\#~:.?+=&%@\!\-.:?\-;,])!i','\1http://\2 \2\3',$text); - - $wordblocks = getWordblocks(); - //how many lines to read at once (to work around some PCRE limits) - if(version_compare(phpversion(),'4.3.0','<')){ - //old versions of PCRE define a maximum of parenthesises even if no - //backreferences are used - the maximum is 99 - //this is very bad performancewise and may even be too high still - $chunksize = 40; - }else{ - //read file in chunks of 200 - this should work around the - //MAX_PATTERN_SIZE in modern PCRE - $chunksize = 200; - } - while($blocks = array_splice($wordblocks,0,$chunksize)){ - $re = array(); - #build regexp from blocks - foreach($blocks as $block){ - $block = preg_replace('/#.*$/','',$block); - $block = trim($block); - if(empty($block)) continue; - $re[] = $block; - } - if(count($re) && preg_match('#('.join('|',$re).')#si',$text,$matches)) { - //prepare event data - $data['matches'] = $matches; - $data['userinfo']['ip'] = $_SERVER['REMOTE_ADDR']; - if($_SERVER['REMOTE_USER']) { - $data['userinfo']['user'] = $_SERVER['REMOTE_USER']; - $data['userinfo']['name'] = $INFO['userinfo']['name']; - $data['userinfo']['mail'] = $INFO['userinfo']['mail']; - } - $callback = create_function('', 'return true;'); - return trigger_event('COMMON_WORDBLOCK_BLOCKED', $data, $callback, true); - } - } - return false; + global $TEXT; + global $PRE; + global $SUF; + global $conf; + global $INFO; + + if(!$conf['usewordblock']) return false; + + if(!$text) $text = "$PRE $TEXT $SUF"; + + // we prepare the text a tiny bit to prevent spammers circumventing URL checks + $text = preg_replace('!(\b)(www\.[\w.:?\-;,]+?\.[\w.:?\-;,]+?[\w/\#~:.?+=&%@\!\-.:?\-;,]+?)([.:?\-;,]*[^\w/\#~:.?+=&%@\!\-.:?\-;,])!i','\1http://\2 \2\3',$text); + + $wordblocks = getWordblocks(); + // how many lines to read at once (to work around some PCRE limits) + if(version_compare(phpversion(),'4.3.0','<')){ + // old versions of PCRE define a maximum of parenthesises even if no + // backreferences are used - the maximum is 99 + // this is very bad performancewise and may even be too high still + $chunksize = 40; + }else{ + // read file in chunks of 200 - this should work around the + // MAX_PATTERN_SIZE in modern PCRE + $chunksize = 200; + } + while($blocks = array_splice($wordblocks,0,$chunksize)){ + $re = array(); + // build regexp from blocks + foreach($blocks as $block){ + $block = preg_replace('/#.*$/','',$block); + $block = trim($block); + if(empty($block)) continue; + $re[] = $block; + } + if(count($re) && preg_match('#('.join('|',$re).')#si',$text,$matches)) { + // prepare event data + $data['matches'] = $matches; + $data['userinfo']['ip'] = $_SERVER['REMOTE_ADDR']; + if($_SERVER['REMOTE_USER']) { + $data['userinfo']['user'] = $_SERVER['REMOTE_USER']; + $data['userinfo']['name'] = $INFO['userinfo']['name']; + $data['userinfo']['mail'] = $INFO['userinfo']['mail']; + } + $callback = create_function('', 'return true;'); + return trigger_event('COMMON_WORDBLOCK_BLOCKED', $data, $callback, true); + } + } + return false; } /** @@ -601,60 +598,60 @@ function checkwordblock($text=''){ * @author Andreas Gohr */ function clientIP($single=false){ - $ip = array(); - $ip[] = $_SERVER['REMOTE_ADDR']; - if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) - $ip = array_merge($ip,explode(',',$_SERVER['HTTP_X_FORWARDED_FOR'])); - if(!empty($_SERVER['HTTP_X_REAL_IP'])) - $ip = array_merge($ip,explode(',',$_SERVER['HTTP_X_REAL_IP'])); - - // some IPv4/v6 regexps borrowed from Feyd - // see: http://forums.devnetwork.net/viewtopic.php?f=38&t=53479 - $dec_octet = '(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[0-9])'; - $hex_digit = '[A-Fa-f0-9]'; - $h16 = "{$hex_digit}{1,4}"; - $IPv4Address = "$dec_octet\\.$dec_octet\\.$dec_octet\\.$dec_octet"; - $ls32 = "(?:$h16:$h16|$IPv4Address)"; - $IPv6Address = - "(?:(?:{$IPv4Address})|(?:". - "(?:$h16:){6}$ls32" . - "|::(?:$h16:){5}$ls32" . - "|(?:$h16)?::(?:$h16:){4}$ls32" . - "|(?:(?:$h16:){0,1}$h16)?::(?:$h16:){3}$ls32" . - "|(?:(?:$h16:){0,2}$h16)?::(?:$h16:){2}$ls32" . - "|(?:(?:$h16:){0,3}$h16)?::(?:$h16:){1}$ls32" . - "|(?:(?:$h16:){0,4}$h16)?::$ls32" . - "|(?:(?:$h16:){0,5}$h16)?::$h16" . - "|(?:(?:$h16:){0,6}$h16)?::" . - ")(?:\\/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))?)"; - - // remove any non-IP stuff - $cnt = count($ip); - $match = array(); - for($i=0; $i<$cnt; $i++){ - if(preg_match("/^$IPv4Address$/",$ip[$i],$match) || preg_match("/^$IPv6Address$/",$ip[$i],$match)) { - $ip[$i] = $match[0]; - } else { - $ip[$i] = ''; + $ip = array(); + $ip[] = $_SERVER['REMOTE_ADDR']; + if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) + $ip = array_merge($ip,explode(',',$_SERVER['HTTP_X_FORWARDED_FOR'])); + if(!empty($_SERVER['HTTP_X_REAL_IP'])) + $ip = array_merge($ip,explode(',',$_SERVER['HTTP_X_REAL_IP'])); + + // some IPv4/v6 regexps borrowed from Feyd + // see: http://forums.devnetwork.net/viewtopic.php?f=38&t=53479 + $dec_octet = '(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[0-9])'; + $hex_digit = '[A-Fa-f0-9]'; + $h16 = "{$hex_digit}{1,4}"; + $IPv4Address = "$dec_octet\\.$dec_octet\\.$dec_octet\\.$dec_octet"; + $ls32 = "(?:$h16:$h16|$IPv4Address)"; + $IPv6Address = + "(?:(?:{$IPv4Address})|(?:". + "(?:$h16:){6}$ls32" . + "|::(?:$h16:){5}$ls32" . + "|(?:$h16)?::(?:$h16:){4}$ls32" . + "|(?:(?:$h16:){0,1}$h16)?::(?:$h16:){3}$ls32" . + "|(?:(?:$h16:){0,2}$h16)?::(?:$h16:){2}$ls32" . + "|(?:(?:$h16:){0,3}$h16)?::(?:$h16:){1}$ls32" . + "|(?:(?:$h16:){0,4}$h16)?::$ls32" . + "|(?:(?:$h16:){0,5}$h16)?::$h16" . + "|(?:(?:$h16:){0,6}$h16)?::" . + ")(?:\\/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))?)"; + + // remove any non-IP stuff + $cnt = count($ip); + $match = array(); + for($i=0; $i<$cnt; $i++){ + if(preg_match("/^$IPv4Address$/",$ip[$i],$match) || preg_match("/^$IPv6Address$/",$ip[$i],$match)) { + $ip[$i] = $match[0]; + } else { + $ip[$i] = ''; + } + if(empty($ip[$i])) unset($ip[$i]); } - if(empty($ip[$i])) unset($ip[$i]); - } - $ip = array_values(array_unique($ip)); - if(!$ip[0]) $ip[0] = '0.0.0.0'; // for some strange reason we don't have a IP - - if(!$single) return join(',',$ip); - - // decide which IP to use, trying to avoid local addresses - $ip = array_reverse($ip); - foreach($ip as $i){ - if(preg_match('/^(127\.|10\.|192\.168\.|172\.((1[6-9])|(2[0-9])|(3[0-1]))\.)/',$i)){ - continue; - }else{ - return $i; + $ip = array_values(array_unique($ip)); + if(!$ip[0]) $ip[0] = '0.0.0.0'; // for some strange reason we don't have a IP + + if(!$single) return join(',',$ip); + + // decide which IP to use, trying to avoid local addresses + $ip = array_reverse($ip); + foreach($ip as $i){ + if(preg_match('/^(127\.|10\.|192\.168\.|172\.((1[6-9])|(2[0-9])|(3[0-1]))\.)/',$i)){ + continue; + }else{ + return $i; + } } - } - // still here? just use the first (last) address - return $ip[0]; + // still here? just use the first (last) address + return $ip[0]; } /** @@ -687,17 +684,17 @@ function clientismobile(){ * @returns a comma separated list of hostnames */ function gethostsbyaddrs($ips){ - $hosts = array(); - $ips = explode(',',$ips); + $hosts = array(); + $ips = explode(',',$ips); - if(is_array($ips)) { - foreach($ips as $ip){ - $hosts[] = gethostbyaddr(trim($ip)); + if(is_array($ips)) { + foreach($ips as $ip){ + $hosts[] = gethostbyaddr(trim($ip)); + } + return join(',',$hosts); + } else { + return gethostbyaddr(trim($ips)); } - return join(',',$hosts); - } else { - return gethostbyaddr(trim($ips)); - } } /** @@ -708,25 +705,25 @@ function gethostsbyaddrs($ips){ * @author Andreas Gohr */ function checklock($id){ - global $conf; - $lock = wikiLockFN($id); + global $conf; + $lock = wikiLockFN($id); - //no lockfile - if(!@file_exists($lock)) return false; + //no lockfile + if(!@file_exists($lock)) return false; - //lockfile expired - if((time() - filemtime($lock)) > $conf['locktime']){ - @unlink($lock); - return false; - } + //lockfile expired + if((time() - filemtime($lock)) > $conf['locktime']){ + @unlink($lock); + return false; + } - //my own lock - $ip = io_readFile($lock); - if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ - return false; - } + //my own lock + $ip = io_readFile($lock); + if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ + return false; + } - return $ip; + return $ip; } /** @@ -735,12 +732,12 @@ function checklock($id){ * @author Andreas Gohr */ function lock($id){ - $lock = wikiLockFN($id); - if($_SERVER['REMOTE_USER']){ - io_saveFile($lock,$_SERVER['REMOTE_USER']); - }else{ - io_saveFile($lock,clientIP()); - } + $lock = wikiLockFN($id); + if($_SERVER['REMOTE_USER']){ + io_saveFile($lock,$_SERVER['REMOTE_USER']); + }else{ + io_saveFile($lock,clientIP()); + } } /** @@ -750,15 +747,15 @@ function lock($id){ * @return bool true if a lock was removed */ function unlock($id){ - $lock = wikiLockFN($id); - if(@file_exists($lock)){ - $ip = io_readFile($lock); - if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ - @unlink($lock); - return true; + $lock = wikiLockFN($id); + if(@file_exists($lock)){ + $ip = io_readFile($lock); + if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ + @unlink($lock); + return true; + } } - } - return false; + return false; } /** @@ -768,8 +765,8 @@ function unlock($id){ * @author Andreas Gohr */ function cleanText($text){ - $text = preg_replace("/(\015\012)|(\015)/","\012",$text); - return $text; + $text = preg_replace("/(\015\012)|(\015)/","\012",$text); + return $text; } /** @@ -781,8 +778,8 @@ function cleanText($text){ * @author Andreas Gohr */ function formText($text){ - $text = str_replace("\012","\015\012",$text); - return htmlspecialchars($text); + $text = str_replace("\012","\015\012",$text); + return htmlspecialchars($text); } /** @@ -791,7 +788,7 @@ function formText($text){ * @author Andreas Gohr */ function rawLocale($id){ - return io_readFile(localeFN($id)); + return io_readFile(localeFN($id)); } /** @@ -800,7 +797,7 @@ function rawLocale($id){ * @author Andreas Gohr */ function rawWiki($id,$rev=''){ - return io_readWikiPage(wikiFN($id, $rev), $id, $rev); + return io_readWikiPage(wikiFN($id, $rev), $id, $rev); } /** @@ -809,66 +806,66 @@ function rawWiki($id,$rev=''){ * @author Andreas Gohr */ function pageTemplate($data){ - $id = $data[0]; - global $conf; - global $INFO; - - $path = dirname(wikiFN($id)); - - if(@file_exists($path.'/_template.txt')){ - $tpl = io_readFile($path.'/_template.txt'); - }else{ - // search upper namespaces for templates - $len = strlen(rtrim($conf['datadir'],'/')); - while (strlen($path) >= $len){ - if(@file_exists($path.'/__template.txt')){ - $tpl = io_readFile($path.'/__template.txt'); - break; - } - $path = substr($path, 0, strrpos($path, '/')); - } - } - if(!$tpl) return ''; - - // replace placeholders - $file = noNS($id); - $page = strtr($file,'_',' '); - - $tpl = str_replace(array( - '@ID@', - '@NS@', - '@FILE@', - '@!FILE@', - '@!FILE!@', - '@PAGE@', - '@!PAGE@', - '@!!PAGE@', - '@!PAGE!@', - '@USER@', - '@NAME@', - '@MAIL@', - '@DATE@', - ), - array( - $id, - getNS($id), - $file, - utf8_ucfirst($file), - utf8_strtoupper($file), - $page, - utf8_ucfirst($page), - utf8_ucwords($page), - utf8_strtoupper($page), - $_SERVER['REMOTE_USER'], - $INFO['userinfo']['name'], - $INFO['userinfo']['mail'], - $conf['dformat'], - ), $tpl); - - // we need the callback to work around strftime's char limit - $tpl = preg_replace_callback('/%./',create_function('$m','return strftime($m[0]);'),$tpl); - - return $tpl; + $id = $data[0]; + global $conf; + global $INFO; + + $path = dirname(wikiFN($id)); + + if(@file_exists($path.'/_template.txt')){ + $tpl = io_readFile($path.'/_template.txt'); + }else{ + // search upper namespaces for templates + $len = strlen(rtrim($conf['datadir'],'/')); + while (strlen($path) >= $len){ + if(@file_exists($path.'/__template.txt')){ + $tpl = io_readFile($path.'/__template.txt'); + break; + } + $path = substr($path, 0, strrpos($path, '/')); + } + } + if(!$tpl) return ''; + + // replace placeholders + $file = noNS($id); + $page = strtr($file,'_',' '); + + $tpl = str_replace(array( + '@ID@', + '@NS@', + '@FILE@', + '@!FILE@', + '@!FILE!@', + '@PAGE@', + '@!PAGE@', + '@!!PAGE@', + '@!PAGE!@', + '@USER@', + '@NAME@', + '@MAIL@', + '@DATE@', + ), + array( + $id, + getNS($id), + $file, + utf8_ucfirst($file), + utf8_strtoupper($file), + $page, + utf8_ucfirst($page), + utf8_ucwords($page), + utf8_strtoupper($page), + $_SERVER['REMOTE_USER'], + $INFO['userinfo']['name'], + $INFO['userinfo']['mail'], + $conf['dformat'], + ), $tpl); + + // we need the callback to work around strftime's char limit + $tpl = preg_replace_callback('/%./',create_function('$m','return strftime($m[0]);'),$tpl); + + return $tpl; } @@ -883,16 +880,16 @@ function pageTemplate($data){ * @author Andreas Gohr */ function rawWikiSlices($range,$id,$rev=''){ - list($from,$to) = explode('-',$range,2); - $text = io_readWikiPage(wikiFN($id, $rev), $id, $rev); - if(!$from) $from = 0; - if(!$to) $to = strlen($text)+1; + list($from,$to) = explode('-',$range,2); + $text = io_readWikiPage(wikiFN($id, $rev), $id, $rev); + if(!$from) $from = 0; + if(!$to) $to = strlen($text)+1; - $slices[0] = substr($text,0,$from-1); - $slices[1] = substr($text,$from-1,$to-$from); - $slices[2] = substr($text,$to); + $slices[0] = substr($text,0,$from-1); + $slices[1] = substr($text,$from-1,$to-$from); + $slices[2] = substr($text,$to); - return $slices; + return $slices; } /** @@ -905,16 +902,15 @@ function rawWikiSlices($range,$id,$rev=''){ * @author Andreas Gohr */ function con($pre,$text,$suf,$pretty=false){ + if($pretty){ + if($pre && substr($pre,-1) != "\n") $pre .= "\n"; + if($suf && substr($text,-1) != "\n") $text .= "\n"; + } - if($pretty){ - if($pre && substr($pre,-1) != "\n") $pre .= "\n"; - if($suf && substr($text,-1) != "\n") $text .= "\n"; - } - - // Avoid double newline above section when saving section edit - //if($pre) $pre .= "\n"; - if($suf) $text .= "\n"; - return $pre.$text.$suf; + // Avoid double newline above section when saving section edit + //if($pre) $pre .= "\n"; + if($suf) $text .= "\n"; + return $pre.$text.$suf; } /** @@ -925,102 +921,102 @@ function con($pre,$text,$suf,$pretty=false){ * @author Ben Coburn */ function saveWikiText($id,$text,$summary,$minor=false){ - /* Note to developers: - This code is subtle and delicate. Test the behavior of - the attic and changelog with dokuwiki and external edits - after any changes. External edits change the wiki page - directly without using php or dokuwiki. - */ - global $conf; - global $lang; - global $REV; - // ignore if no changes were made - if($text == rawWiki($id,'')){ - return; - } - - $file = wikiFN($id); - $old = @filemtime($file); // from page - $wasRemoved = empty($text); - $wasCreated = !@file_exists($file); - $wasReverted = ($REV==true); - $newRev = false; - $oldRev = getRevisions($id, -1, 1, 1024); // from changelog - $oldRev = (int)(empty($oldRev)?0:$oldRev[0]); - if(!@file_exists(wikiFN($id, $old)) && @file_exists($file) && $old>=$oldRev) { - // add old revision to the attic if missing - saveOldRevision($id); - // add a changelog entry if this edit came from outside dokuwiki - if ($old>$oldRev) { - addLogEntry($old, $id, DOKU_CHANGE_TYPE_EDIT, $lang['external_edit'], '', array('ExternalEdit'=>true)); - // remove soon to be stale instructions - $cache = new cache_instructions($id, $file); - $cache->removeCache(); - } - } - - if ($wasRemoved){ - // Send "update" event with empty data, so plugins can react to page deletion - $data = array(array($file, '', false), getNS($id), noNS($id), false); - trigger_event('IO_WIKIPAGE_WRITE', $data); - // pre-save deleted revision - @touch($file); - clearstatcache(); - $newRev = saveOldRevision($id); - // remove empty file - @unlink($file); - // remove old meta info... - $mfiles = metaFiles($id); - $changelog = metaFN($id, '.changes'); - $metadata = metaFN($id, '.meta'); - foreach ($mfiles as $mfile) { - // but keep per-page changelog to preserve page history and keep meta data - if (@file_exists($mfile) && $mfile!==$changelog && $mfile!==$metadata) { @unlink($mfile); } - } - // purge meta data - p_purge_metadata($id); - $del = true; - // autoset summary on deletion - if(empty($summary)) $summary = $lang['deleted']; - // remove empty namespaces - io_sweepNS($id, 'datadir'); - io_sweepNS($id, 'mediadir'); - }else{ - // save file (namespace dir is created in io_writeWikiPage) - io_writeWikiPage($file, $text, $id); - // pre-save the revision, to keep the attic in sync - $newRev = saveOldRevision($id); - $del = false; - } - - // select changelog line type - $extra = ''; - $type = DOKU_CHANGE_TYPE_EDIT; - if ($wasReverted) { - $type = DOKU_CHANGE_TYPE_REVERT; - $extra = $REV; - } - else if ($wasCreated) { $type = DOKU_CHANGE_TYPE_CREATE; } - else if ($wasRemoved) { $type = DOKU_CHANGE_TYPE_DELETE; } - else if ($minor && $conf['useacl'] && $_SERVER['REMOTE_USER']) { $type = DOKU_CHANGE_TYPE_MINOR_EDIT; } //minor edits only for logged in users - - addLogEntry($newRev, $id, $type, $summary, $extra); - // send notify mails - notify($id,'admin',$old,$summary,$minor); - notify($id,'subscribers',$old,$summary,$minor); - - // update the purgefile (timestamp of the last time anything within the wiki was changed) - io_saveFile($conf['cachedir'].'/purgefile',time()); - - // if useheading is enabled, purge the cache of all linking pages - if(useHeading('content')){ - require_once(DOKU_INC.'inc/fulltext.php'); - $pages = ft_backlinks($id); - foreach ($pages as $page) { - $cache = new cache_renderer($page, wikiFN($page), 'xhtml'); - $cache->removeCache(); - } - } + /* Note to developers: + This code is subtle and delicate. Test the behavior of + the attic and changelog with dokuwiki and external edits + after any changes. External edits change the wiki page + directly without using php or dokuwiki. + */ + global $conf; + global $lang; + global $REV; + // ignore if no changes were made + if($text == rawWiki($id,'')){ + return; + } + + $file = wikiFN($id); + $old = @filemtime($file); // from page + $wasRemoved = empty($text); + $wasCreated = !@file_exists($file); + $wasReverted = ($REV==true); + $newRev = false; + $oldRev = getRevisions($id, -1, 1, 1024); // from changelog + $oldRev = (int)(empty($oldRev)?0:$oldRev[0]); + if(!@file_exists(wikiFN($id, $old)) && @file_exists($file) && $old>=$oldRev) { + // add old revision to the attic if missing + saveOldRevision($id); + // add a changelog entry if this edit came from outside dokuwiki + if ($old>$oldRev) { + addLogEntry($old, $id, DOKU_CHANGE_TYPE_EDIT, $lang['external_edit'], '', array('ExternalEdit'=>true)); + // remove soon to be stale instructions + $cache = new cache_instructions($id, $file); + $cache->removeCache(); + } + } + + if ($wasRemoved){ + // Send "update" event with empty data, so plugins can react to page deletion + $data = array(array($file, '', false), getNS($id), noNS($id), false); + trigger_event('IO_WIKIPAGE_WRITE', $data); + // pre-save deleted revision + @touch($file); + clearstatcache(); + $newRev = saveOldRevision($id); + // remove empty file + @unlink($file); + // remove old meta info... + $mfiles = metaFiles($id); + $changelog = metaFN($id, '.changes'); + $metadata = metaFN($id, '.meta'); + foreach ($mfiles as $mfile) { + // but keep per-page changelog to preserve page history and keep meta data + if (@file_exists($mfile) && $mfile!==$changelog && $mfile!==$metadata) { @unlink($mfile); } + } + // purge meta data + p_purge_metadata($id); + $del = true; + // autoset summary on deletion + if(empty($summary)) $summary = $lang['deleted']; + // remove empty namespaces + io_sweepNS($id, 'datadir'); + io_sweepNS($id, 'mediadir'); + }else{ + // save file (namespace dir is created in io_writeWikiPage) + io_writeWikiPage($file, $text, $id); + // pre-save the revision, to keep the attic in sync + $newRev = saveOldRevision($id); + $del = false; + } + + // select changelog line type + $extra = ''; + $type = DOKU_CHANGE_TYPE_EDIT; + if ($wasReverted) { + $type = DOKU_CHANGE_TYPE_REVERT; + $extra = $REV; + } + else if ($wasCreated) { $type = DOKU_CHANGE_TYPE_CREATE; } + else if ($wasRemoved) { $type = DOKU_CHANGE_TYPE_DELETE; } + else if ($minor && $conf['useacl'] && $_SERVER['REMOTE_USER']) { $type = DOKU_CHANGE_TYPE_MINOR_EDIT; } //minor edits only for logged in users + + addLogEntry($newRev, $id, $type, $summary, $extra); + // send notify mails + notify($id,'admin',$old,$summary,$minor); + notify($id,'subscribers',$old,$summary,$minor); + + // update the purgefile (timestamp of the last time anything within the wiki was changed) + io_saveFile($conf['cachedir'].'/purgefile',time()); + + // if useheading is enabled, purge the cache of all linking pages + if(useHeading('content')){ + require_once(DOKU_INC.'inc/fulltext.php'); + $pages = ft_backlinks($id); + foreach ($pages as $page) { + $cache = new cache_renderer($page, wikiFN($page), 'xhtml'); + $cache->removeCache(); + } + } } /** @@ -1030,13 +1026,13 @@ function saveWikiText($id,$text,$summary,$minor=false){ * @author Andreas Gohr */ function saveOldRevision($id){ - global $conf; - $oldf = wikiFN($id); - if(!@file_exists($oldf)) return ''; - $date = filemtime($oldf); - $newf = wikiFN($id,$date); - io_writeWikiPage($newf, rawWiki($id), $id, $date); - return $date; + global $conf; + $oldf = wikiFN($id); + if(!@file_exists($oldf)) return ''; + $date = filemtime($oldf); + $newf = wikiFN($id,$date); + io_writeWikiPage($newf, rawWiki($id), $id, $date); + return $date; } /** @@ -1052,72 +1048,72 @@ function saveOldRevision($id){ * @author Andreas Gohr */ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ - global $lang; - global $conf; - global $INFO; - - // decide if there is something to do - if($who == 'admin'){ - if(empty($conf['notify'])) return; //notify enabled? - $text = rawLocale('mailtext'); - $to = $conf['notify']; - $bcc = ''; - }elseif($who == 'subscribers'){ - if(!$conf['subscribers']) return; //subscribers enabled? - if($conf['useacl'] && $_SERVER['REMOTE_USER'] && $minor) return; //skip minors - $bcc = subscriber_addresslist($id,false); - if(empty($bcc)) return; - $to = ''; - $text = rawLocale('subscribermail'); - }elseif($who == 'register'){ - if(empty($conf['registernotify'])) return; - $text = rawLocale('registermail'); - $to = $conf['registernotify']; - $bcc = ''; - }else{ - return; //just to be safe - } - - $ip = clientIP(); - $text = str_replace('@DATE@',dformat(),$text); - $text = str_replace('@BROWSER@',$_SERVER['HTTP_USER_AGENT'],$text); - $text = str_replace('@IPADDRESS@',$ip,$text); - $text = str_replace('@HOSTNAME@',gethostsbyaddrs($ip),$text); - $text = str_replace('@NEWPAGE@',wl($id,'',true,'&'),$text); - $text = str_replace('@PAGE@',$id,$text); - $text = str_replace('@TITLE@',$conf['title'],$text); - $text = str_replace('@DOKUWIKIURL@',DOKU_URL,$text); - $text = str_replace('@SUMMARY@',$summary,$text); - $text = str_replace('@USER@',$_SERVER['REMOTE_USER'],$text); - - foreach ($replace as $key => $substitution) { - $text = str_replace('@'.strtoupper($key).'@',$substitution, $text); - } - - if($who == 'register'){ - $subject = $lang['mail_new_user'].' '.$summary; - }elseif($rev){ - $subject = $lang['mail_changed'].' '.$id; - $text = str_replace('@OLDPAGE@',wl($id,"rev=$rev",true,'&'),$text); - require_once(DOKU_INC.'inc/DifferenceEngine.php'); - $df = new Diff(explode("\n",rawWiki($id,$rev)), - explode("\n",rawWiki($id))); - $dformat = new UnifiedDiffFormatter(); - $diff = $dformat->format($df); - }else{ - $subject=$lang['mail_newpage'].' '.$id; - $text = str_replace('@OLDPAGE@','none',$text); - $diff = rawWiki($id); - } - $text = str_replace('@DIFF@',$diff,$text); - $subject = '['.$conf['title'].'] '.$subject; - - $from = $conf['mailfrom']; - $from = str_replace('@USER@',$_SERVER['REMOTE_USER'],$from); - $from = str_replace('@NAME@',$INFO['userinfo']['name'],$from); - $from = str_replace('@MAIL@',$INFO['userinfo']['mail'],$from); - - mail_send($to,$subject,$text,$from,'',$bcc); + global $lang; + global $conf; + global $INFO; + + // decide if there is something to do + if($who == 'admin'){ + if(empty($conf['notify'])) return; //notify enabled? + $text = rawLocale('mailtext'); + $to = $conf['notify']; + $bcc = ''; + }elseif($who == 'subscribers'){ + if(!$conf['subscribers']) return; //subscribers enabled? + if($conf['useacl'] && $_SERVER['REMOTE_USER'] && $minor) return; //skip minors + $bcc = subscriber_addresslist($id,false); + if(empty($bcc)) return; + $to = ''; + $text = rawLocale('subscribermail'); + }elseif($who == 'register'){ + if(empty($conf['registernotify'])) return; + $text = rawLocale('registermail'); + $to = $conf['registernotify']; + $bcc = ''; + }else{ + return; //just to be safe + } + + $ip = clientIP(); + $text = str_replace('@DATE@',dformat(),$text); + $text = str_replace('@BROWSER@',$_SERVER['HTTP_USER_AGENT'],$text); + $text = str_replace('@IPADDRESS@',$ip,$text); + $text = str_replace('@HOSTNAME@',gethostsbyaddrs($ip),$text); + $text = str_replace('@NEWPAGE@',wl($id,'',true,'&'),$text); + $text = str_replace('@PAGE@',$id,$text); + $text = str_replace('@TITLE@',$conf['title'],$text); + $text = str_replace('@DOKUWIKIURL@',DOKU_URL,$text); + $text = str_replace('@SUMMARY@',$summary,$text); + $text = str_replace('@USER@',$_SERVER['REMOTE_USER'],$text); + + foreach ($replace as $key => $substitution) { + $text = str_replace('@'.strtoupper($key).'@',$substitution, $text); + } + + if($who == 'register'){ + $subject = $lang['mail_new_user'].' '.$summary; + }elseif($rev){ + $subject = $lang['mail_changed'].' '.$id; + $text = str_replace('@OLDPAGE@',wl($id,"rev=$rev",true,'&'),$text); + require_once(DOKU_INC.'inc/DifferenceEngine.php'); + $df = new Diff(explode("\n",rawWiki($id,$rev)), + explode("\n",rawWiki($id))); + $dformat = new UnifiedDiffFormatter(); + $diff = $dformat->format($df); + }else{ + $subject=$lang['mail_newpage'].' '.$id; + $text = str_replace('@OLDPAGE@','none',$text); + $diff = rawWiki($id); + } + $text = str_replace('@DIFF@',$diff,$text); + $subject = '['.$conf['title'].'] '.$subject; + + $from = $conf['mailfrom']; + $from = str_replace('@USER@',$_SERVER['REMOTE_USER'],$from); + $from = str_replace('@NAME@',$INFO['userinfo']['name'],$from); + $from = str_replace('@MAIL@',$INFO['userinfo']['mail'],$from); + + mail_send($to,$subject,$text,$from,'',$bcc); } /** @@ -1127,32 +1123,32 @@ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ * @author Todd Augsburger */ function getGoogleQuery(){ - if (!isset($_SERVER['HTTP_REFERER'])) { - return ''; - } - $url = parse_url($_SERVER['HTTP_REFERER']); - - $query = array(); - - // temporary workaround against PHP bug #49733 - // see http://bugs.php.net/bug.php?id=49733 - if(UTF8_MBSTRING) $enc = mb_internal_encoding(); - parse_str($url['query'],$query); - if(UTF8_MBSTRING) mb_internal_encoding($enc); - - $q = ''; - if(isset($query['q'])) - $q = $query['q']; // google, live/msn, aol, ask, altavista, alltheweb, gigablast - elseif(isset($query['p'])) - $q = $query['p']; // yahoo - elseif(isset($query['query'])) - $q = $query['query']; // lycos, netscape, clusty, hotbot - elseif(preg_match("#a9\.com#i",$url['host'])) // a9 - $q = urldecode(ltrim($url['path'],'/')); - - if($q === '') return ''; - $q = preg_split('/[\s\'"\\\\`()\]\[?:!\.{};,#+*<>\\/]+/',$q,-1,PREG_SPLIT_NO_EMPTY); - return $q; + if (!isset($_SERVER['HTTP_REFERER'])) { + return ''; + } + $url = parse_url($_SERVER['HTTP_REFERER']); + + $query = array(); + + // temporary workaround against PHP bug #49733 + // see http://bugs.php.net/bug.php?id=49733 + if(UTF8_MBSTRING) $enc = mb_internal_encoding(); + parse_str($url['query'],$query); + if(UTF8_MBSTRING) mb_internal_encoding($enc); + + $q = ''; + if(isset($query['q'])) + $q = $query['q']; // google, live/msn, aol, ask, altavista, alltheweb, gigablast + elseif(isset($query['p'])) + $q = $query['p']; // yahoo + elseif(isset($query['query'])) + $q = $query['query']; // lycos, netscape, clusty, hotbot + elseif(preg_match("#a9\.com#i",$url['host'])) // a9 + $q = urldecode(ltrim($url['path'],'/')); + + if($q === '') return ''; + $q = preg_split('/[\s\'"\\\\`()\]\[?:!\.{};,#+*<>\\/]+/',$q,-1,PREG_SPLIT_NO_EMPTY); + return $q; } /** @@ -1162,18 +1158,18 @@ function getGoogleQuery(){ * @author Andreas Gohr */ function setCorrectLocale(){ - global $conf; - global $lang; - - $enc = strtoupper($lang['encoding']); - foreach ($lang['locales'] as $loc){ - //try locale - if(@setlocale(LC_ALL,$loc)) return; - //try loceale with encoding - if(@setlocale(LC_ALL,"$loc.$enc")) return; - } - //still here? try to set from environment - @setlocale(LC_ALL,""); + global $conf; + global $lang; + + $enc = strtoupper($lang['encoding']); + foreach ($lang['locales'] as $loc){ + //try locale + if(@setlocale(LC_ALL,$loc)) return; + //try loceale with encoding + if(@setlocale(LC_ALL,"$loc.$enc")) return; + } + //still here? try to set from environment + @setlocale(LC_ALL,""); } /** @@ -1186,16 +1182,16 @@ function setCorrectLocale(){ * @version 1.0.0 */ function filesize_h($size, $dec = 1){ - $sizes = array('B', 'KB', 'MB', 'GB'); - $count = count($sizes); - $i = 0; + $sizes = array('B', 'KB', 'MB', 'GB'); + $count = count($sizes); + $i = 0; - while ($size >= 1024 && ($i < $count - 1)) { - $size /= 1024; - $i++; - } + while ($size >= 1024 && ($i < $count - 1)) { + $size /= 1024; + $i++; + } - return round($size, $dec) . ' ' . $sizes[$i]; + return round($size, $dec) . ' ' . $sizes[$i]; } /** @@ -1204,29 +1200,28 @@ function filesize_h($size, $dec = 1){ * @author Andreas Gohr */ function datetime_h($dt){ - global $lang; - - $ago = time() - $dt; - if($ago > 24*60*60*30*12*2){ - return sprintf($lang['years'], round($ago/(24*60*60*30*12))); - } - if($ago > 24*60*60*30*2){ - return sprintf($lang['months'], round($ago/(24*60*60*30))); - } - if($ago > 24*60*60*7*2){ - return sprintf($lang['weeks'], round($ago/(24*60*60*7))); - } - if($ago > 24*60*60*2){ - return sprintf($lang['days'], round($ago/(24*60*60))); - } - if($ago > 60*60*2){ - return sprintf($lang['hours'], round($ago/(60*60))); - } - if($ago > 60*2){ - return sprintf($lang['minutes'], round($ago/(60))); - } - return sprintf($lang['seconds'], $ago); + global $lang; + $ago = time() - $dt; + if($ago > 24*60*60*30*12*2){ + return sprintf($lang['years'], round($ago/(24*60*60*30*12))); + } + if($ago > 24*60*60*30*2){ + return sprintf($lang['months'], round($ago/(24*60*60*30))); + } + if($ago > 24*60*60*7*2){ + return sprintf($lang['weeks'], round($ago/(24*60*60*7))); + } + if($ago > 24*60*60*2){ + return sprintf($lang['days'], round($ago/(24*60*60))); + } + if($ago > 60*60*2){ + return sprintf($lang['hours'], round($ago/(60*60))); + } + if($ago > 60*2){ + return sprintf($lang['minutes'], round($ago/(60))); + } + return sprintf($lang['seconds'], $ago); } /** @@ -1239,14 +1234,14 @@ function datetime_h($dt){ * @author Andreas Gohr */ function dformat($dt=null,$format=''){ - global $conf; + global $conf; - if(is_null($dt)) $dt = time(); - $dt = (int) $dt; - if(!$format) $format = $conf['dformat']; + if(is_null($dt)) $dt = time(); + $dt = (int) $dt; + if(!$format) $format = $conf['dformat']; - $format = str_replace('%f',datetime_h($dt),$format); - return strftime($format,$dt); + $format = str_replace('%f',datetime_h($dt),$format); + return strftime($format,$dt); } /** @@ -1256,22 +1251,25 @@ function dformat($dt=null,$format=''){ * @author Christopher Smith */ function obfuscate($email) { - global $conf; - - switch ($conf['mailguard']) { - case 'visible' : - $obfuscate = array('@' => ' [at] ', '.' => ' [dot] ', '-' => ' [dash] '); - return strtr($email, $obfuscate); - - case 'hex' : - $encode = ''; - for ($x=0; $x < strlen($email); $x++) $encode .= '&#x' . bin2hex($email{$x}).';'; - return $encode; - - case 'none' : - default : - return $email; - } + global $conf; + + switch ($conf['mailguard']) { + case 'visible' : + $obfuscate = array('@' => ' [at] ', '.' => ' [dot] ', '-' => ' [dash] '); + return strtr($email, $obfuscate); + + case 'hex' : + $encode = ''; + $len = strlen($email); + for ($x=0; $x < $len; $x++){ + $encode .= '&#x' . bin2hex($email{$x}).';'; + } + return $encode; + + case 'none' : + default : + return $email; + } } /** @@ -1280,22 +1278,22 @@ function obfuscate($email) { * @author Andreas Gohr */ function is_subscribed($id,$uid,$ns=false){ - if(!$ns) { - $file=metaFN($id,'.mlist'); - } else { - if(!getNS($id)) { - $file = metaFN(getNS($id),'.mlist'); + if(!$ns) { + $file=metaFN($id,'.mlist'); } else { - $file = metaFN(getNS($id),'/.mlist'); + if(!getNS($id)) { + $file = metaFN(getNS($id),'.mlist'); + } else { + $file = metaFN(getNS($id),'/.mlist'); + } + } + if (@file_exists($file)) { + $mlist = file($file); + $pos = array_search($uid."\n",$mlist); + return is_int($pos); } - } - if (@file_exists($file)) { - $mlist = file($file); - $pos = array_search($uid."\n",$mlist); - return is_int($pos); - } - return false; + return false; } /** @@ -1305,64 +1303,64 @@ function is_subscribed($id,$uid,$ns=false){ * @author Steven Danz */ function subscriber_addresslist($id,$self=true){ - global $conf; - global $auth; - - if (!$conf['subscribers']) return ''; - - $users = array(); - $emails = array(); - - // load the page mlist file content - $mlist = array(); - $file=metaFN($id,'.mlist'); - if (@file_exists($file)) { - $mlist = file($file); - foreach ($mlist as $who) { - $who = rtrim($who); - if(!$self && $who == $_SERVER['REMOTE_USER']) continue; - $users[$who] = true; - } - } - - // load also the namespace mlist file content - $ns = getNS($id); - while ($ns) { - $nsfile = metaFN($ns,'/.mlist'); + global $conf; + global $auth; + + if (!$conf['subscribers']) return ''; + + $users = array(); + $emails = array(); + + // load the page mlist file content + $mlist = array(); + $file=metaFN($id,'.mlist'); + if (@file_exists($file)) { + $mlist = file($file); + foreach ($mlist as $who) { + $who = rtrim($who); + if(!$self && $who == $_SERVER['REMOTE_USER']) continue; + $users[$who] = true; + } + } + + // load also the namespace mlist file content + $ns = getNS($id); + while ($ns) { + $nsfile = metaFN($ns,'/.mlist'); + if (@file_exists($nsfile)) { + $mlist = file($nsfile); + foreach ($mlist as $who) { + $who = rtrim($who); + if(!$self && $who == $_SERVER['REMOTE_USER']) continue; + $users[$who] = true; + } + } + $ns = getNS($ns); + } + // root namespace + $nsfile = metaFN('','.mlist'); if (@file_exists($nsfile)) { - $mlist = file($nsfile); - foreach ($mlist as $who) { - $who = rtrim($who); - if(!$self && $who == $_SERVER['REMOTE_USER']) continue; - $users[$who] = true; - } - } - $ns = getNS($ns); - } - // root namespace - $nsfile = metaFN('','.mlist'); - if (@file_exists($nsfile)) { - $mlist = file($nsfile); - foreach ($mlist as $who) { - $who = rtrim($who); - if(!$self && $who == $_SERVER['REMOTE_USER']) continue; - $users[$who] = true; - } - } - if(!empty($users)) { - foreach (array_keys($users) as $who) { - $info = $auth->getUserData($who); - if($info === false) continue; - $level = auth_aclcheck($id,$who,$info['grps']); - if ($level >= AUTH_READ) { - if (strcasecmp($info['mail'],$conf['notify']) != 0) { - $emails[] = $info['mail']; + $mlist = file($nsfile); + foreach ($mlist as $who) { + $who = rtrim($who); + if(!$self && $who == $_SERVER['REMOTE_USER']) continue; + $users[$who] = true; + } + } + if(!empty($users)) { + foreach (array_keys($users) as $who) { + $info = $auth->getUserData($who); + if($info === false) continue; + $level = auth_aclcheck($id,$who,$info['grps']); + if ($level >= AUTH_READ) { + if (strcasecmp($info['mail'],$conf['notify']) != 0) { + $emails[] = $info['mail']; + } + } } - } } - } - return implode(',',$emails); + return implode(',',$emails); } /** @@ -1371,7 +1369,7 @@ function subscriber_addresslist($id,$self=true){ * @author Andreas Gohr */ function unslash($string,$char="'"){ - return str_replace('\\'.$char,$char,$string); + return str_replace('\\'.$char,$char,$string); } /** @@ -1422,7 +1420,7 @@ function preg_quote_cb($string){ */ function shorten($keep,$short,$max,$min=9,$char='…'){ $max = $max - utf8_strlen($keep); - if($max < $min) return $keep; + if($max < $min) return $keep; $len = utf8_strlen($short); if($len <= $max) return $keep.$short; $half = floor($max/2); @@ -1440,26 +1438,26 @@ function editorinfo($username){ global $auth; switch($conf['showuseras']){ - case 'username': - case 'email': - case 'email_link': - if($auth) $info = $auth->getUserData($username); - break; - default: - return hsc($username); + case 'username': + case 'email': + case 'email_link': + if($auth) $info = $auth->getUserData($username); + break; + default: + return hsc($username); } if(isset($info) && $info) { switch($conf['showuseras']){ - case 'username': - return hsc($info['name']); - case 'email': - return obfuscate($info['mail']); - case 'email_link': - $mail=obfuscate($info['mail']); - return ''.$mail.''; - default: - return hsc($username); + case 'username': + return hsc($info['name']); + case 'email': + return obfuscate($info['mail']); + case 'email_link': + $mail=obfuscate($info['mail']); + return ''.$mail.''; + default: + return hsc($username); } } else { return hsc($username); @@ -1503,22 +1501,24 @@ function license_img($type){ * @author Andreas Gohr */ function is_mem_available($mem,$bytes=1048576){ - $limit = trim(ini_get('memory_limit')); - if(empty($limit)) return true; // no limit set! + $limit = trim(ini_get('memory_limit')); + if(empty($limit)) return true; // no limit set! - // parse limit to bytes - $limit = php_to_byte($limit); + // parse limit to bytes + $limit = php_to_byte($limit); - // get used memory if possible - if(function_exists('memory_get_usage')){ - $used = memory_get_usage(); - } + // get used memory if possible + if(function_exists('memory_get_usage')){ + $used = memory_get_usage(); + }else{ + $used = $bytes; + } - if($used+$mem > $limit){ - return false; - } + if($used+$mem > $limit){ + return false; + } - return true; + return true; } /** @@ -1545,4 +1545,4 @@ function send_redirect($url){ exit; } -//Setup VIM: ex: et ts=2 enc=utf-8 : +//Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/inc/confutils.php b/inc/confutils.php index 9ec7a551e..abfde8a80 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -16,29 +16,29 @@ * @author Andreas Gohr */ function mimetype($file, $knownonly=true){ - $ret = array(false,false,false); // return array - $mtypes = getMimeTypes(); // known mimetypes - $exts = join('|',array_keys($mtypes)); // known extensions (regexp) - if(!$knownonly){ - $exts = $exts.'|[_\-A-Za-z0-9]+'; // any extension - } - if(preg_match('#\.('.$exts.')$#i',$file,$matches)){ - $ext = strtolower($matches[1]); - } - - if($ext){ - if (isset($mtypes[$ext])){ - if($mtypes[$ext][0] == '!'){ - $ret = array($ext, substr($mtypes[$ext],1), true); - }else{ - $ret = array($ext, $mtypes[$ext], false); - } - }elseif(!$knownonly){ - $ret = array($ext, 'application/octet-stream', true); + $ret = array(false,false,false); // return array + $mtypes = getMimeTypes(); // known mimetypes + $exts = join('|',array_keys($mtypes)); // known extensions (regexp) + if(!$knownonly){ + $exts = $exts.'|[_\-A-Za-z0-9]+'; // any extension + } + if(preg_match('#\.('.$exts.')$#i',$file,$matches)){ + $ext = strtolower($matches[1]); + } + + if($ext){ + if (isset($mtypes[$ext])){ + if($mtypes[$ext][0] == '!'){ + $ret = array($ext, substr($mtypes[$ext],1), true); + }else{ + $ret = array($ext, $mtypes[$ext], false); + } + }elseif(!$knownonly){ + $ret = array($ext, 'application/octet-stream', true); + } } - } - return $ret; + return $ret; } /** @@ -47,11 +47,11 @@ function mimetype($file, $knownonly=true){ * @author Andreas Gohr */ function getMimeTypes() { - static $mime = NULL; - if ( !$mime ) { - $mime = retrieveConfig('mime','confToHash'); - } - return $mime; + static $mime = null; + if ( !$mime ) { + $mime = retrieveConfig('mime','confToHash'); + } + return $mime; } /** @@ -60,11 +60,11 @@ function getMimeTypes() { * @author Harry Fuecks */ function getAcronyms() { - static $acronyms = NULL; - if ( !$acronyms ) { - $acronyms = retrieveConfig('acronyms','confToHash'); - } - return $acronyms; + static $acronyms = null; + if ( !$acronyms ) { + $acronyms = retrieveConfig('acronyms','confToHash'); + } + return $acronyms; } /** @@ -73,11 +73,11 @@ function getAcronyms() { * @author Harry Fuecks */ function getSmileys() { - static $smileys = NULL; - if ( !$smileys ) { - $smileys = retrieveConfig('smileys','confToHash'); - } - return $smileys; + static $smileys = null; + if ( !$smileys ) { + $smileys = retrieveConfig('smileys','confToHash'); + } + return $smileys; } /** @@ -86,11 +86,11 @@ function getSmileys() { * @author Harry Fuecks */ function getEntities() { - static $entities = NULL; - if ( !$entities ) { - $entities = retrieveConfig('entities','confToHash'); - } - return $entities; + static $entities = null; + if ( !$entities ) { + $entities = retrieveConfig('entities','confToHash'); + } + return $entities; } /** @@ -99,13 +99,13 @@ function getEntities() { * @author Harry Fuecks */ function getInterwiki() { - static $wikis = NULL; - if ( !$wikis ) { - $wikis = retrieveConfig('interwiki','confToHash',array(true)); - } - //add sepecial case 'this' - $wikis['this'] = DOKU_URL.'{NAME}'; - return $wikis; + static $wikis = null; + if ( !$wikis ) { + $wikis = retrieveConfig('interwiki','confToHash',array(true)); + } + //add sepecial case 'this' + $wikis['this'] = DOKU_URL.'{NAME}'; + return $wikis; } /** @@ -113,23 +113,23 @@ function getInterwiki() { * */ function getWordblocks() { - static $wordblocks = NULL; - if ( !$wordblocks ) { - $wordblocks = retrieveConfig('wordblock','file'); - } - return $wordblocks; + static $wordblocks = null; + if ( !$wordblocks ) { + $wordblocks = retrieveConfig('wordblock','file'); + } + return $wordblocks; } function getSchemes() { - static $schemes = NULL; - if ( !$schemes ) { - $schemes = retrieveConfig('scheme','file'); - } - $schemes = array_map('trim', $schemes); - $schemes = preg_replace('/^#.*/', '', $schemes); - $schemes = array_filter($schemes); - return $schemes; + static $schemes = null; + if ( !$schemes ) { + $schemes = retrieveConfig('scheme','file'); + } + $schemes = array_map('trim', $schemes); + $schemes = preg_replace('/^#.*/', '', $schemes); + $schemes = array_filter($schemes); + return $schemes; } /** @@ -143,22 +143,22 @@ function getSchemes() { * @author Gina Haeussge */ function linesToHash($lines, $lower=false) { - foreach ( $lines as $line ) { - //ignore comments (except escaped ones) - $line = preg_replace('/(? */ function confToHash($file,$lower=false) { - $conf = array(); - $lines = @file( $file ); - if ( !$lines ) return $conf; + $conf = array(); + $lines = @file( $file ); + if ( !$lines ) return $conf; - return linesToHash($lines, $lower); + return linesToHash($lines, $lower); } /** @@ -190,23 +190,23 @@ function confToHash($file,$lower=false) { * @return array configuration values */ function retrieveConfig($type,$fn,$params=null) { - global $config_cascade; - - if(!is_array($params)) $params = array(); - - $combined = array(); - if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING); - foreach (array('default','local','protected') as $config_group) { - if (empty($config_cascade[$type][$config_group])) continue; - foreach ($config_cascade[$type][$config_group] as $file) { - if (@file_exists($file)) { - $config = call_user_func_array($fn,array_merge(array($file),$params)); - $combined = array_merge($combined, $config); - } + global $config_cascade; + + if(!is_array($params)) $params = array(); + + $combined = array(); + if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING); + foreach (array('default','local','protected') as $config_group) { + if (empty($config_cascade[$type][$config_group])) continue; + foreach ($config_cascade[$type][$config_group] as $file) { + if (@file_exists($file)) { + $config = call_user_func_array($fn,array_merge(array($file),$params)); + $combined = array_merge($combined, $config); + } + } } - } - return $combined; + return $combined; } /** @@ -218,16 +218,16 @@ function retrieveConfig($type,$fn,$params=null) { * @return array list of files, default before local before protected */ function getConfigFiles($type) { - global $config_cascade; - $files = array(); + global $config_cascade; + $files = array(); - if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING); - foreach (array('default','local','protected') as $config_group) { - if (empty($config_cascade[$type][$config_group])) continue; - $files = array_merge($files, $config_cascade[$type][$config_group]); - } + if (!is_array($config_cascade[$type])) trigger_error('Missing config cascade for "'.$type.'"',E_USER_WARNING); + foreach (array('default','local','protected') as $config_group) { + if (empty($config_cascade[$type][$config_group])) continue; + $files = array_merge($files, $config_cascade[$type][$config_group]); + } - return $files; + return $files; } /** @@ -237,23 +237,23 @@ function getConfigFiles($type) { * @returns boolean true if enabled, false if disabled */ function actionOK($action){ - static $disabled = null; - if(is_null($disabled)){ - global $conf; - - // prepare disabled actions array and handle legacy options - $disabled = explode(',',$conf['disableactions']); - $disabled = array_map('trim',$disabled); - if(isset($conf['openregister']) && !$conf['openregister']) $disabled[] = 'register'; - if(isset($conf['resendpasswd']) && !$conf['resendpasswd']) $disabled[] = 'resendpwd'; - if(isset($conf['subscribers']) && !$conf['subscribers']) { - $disabled[] = 'subscribe'; - $disabled[] = 'subscribens'; + static $disabled = null; + if(is_null($disabled)){ + global $conf; + + // prepare disabled actions array and handle legacy options + $disabled = explode(',',$conf['disableactions']); + $disabled = array_map('trim',$disabled); + if(isset($conf['openregister']) && !$conf['openregister']) $disabled[] = 'register'; + if(isset($conf['resendpasswd']) && !$conf['resendpasswd']) $disabled[] = 'resendpwd'; + if(isset($conf['subscribers']) && !$conf['subscribers']) { + $disabled[] = 'subscribe'; + $disabled[] = 'subscribens'; + } + $disabled = array_unique($disabled); } - $disabled = array_unique($disabled); - } - return !in_array($action,$disabled); + return !in_array($action,$disabled); } /** @@ -266,25 +266,30 @@ function actionOK($action){ * @returns boolean true if headings should be used for $linktype, false otherwise */ function useHeading($linktype) { - static $useHeading = null; + static $useHeading = null; - if (is_null($useHeading)) { - global $conf; + if (is_null($useHeading)) { + global $conf; - if (!empty($conf['useheading'])) { - switch ($conf['useheading']) { - case 'content' : $useHeading['content'] = true; break; - case 'navigation' : $useHeading['navigation'] = true; break; - default: - $useHeading['content'] = true; - $useHeading['navigation'] = true; - } - } else { - $useHeading = array(); + if (!empty($conf['useheading'])) { + switch ($conf['useheading']) { + case 'content': + $useHeading['content'] = true; + break; + + case 'navigation': + $useHeading['navigation'] = true; + break; + default: + $useHeading['content'] = true; + $useHeading['navigation'] = true; + } + } else { + $useHeading = array(); + } } - } - return (!empty($useHeading[$linktype])); + return (!empty($useHeading[$linktype])); } /** @@ -295,13 +300,13 @@ function useHeading($linktype) { * @return string the encoded value */ function conf_encodeString($str,$code) { - switch ($code) { - case 'base64' : return ''.base64_encode($str); - case 'uuencode' : return ''.convert_uuencode($str); - case 'plain': - default: - return $str; - } + switch ($code) { + case 'base64' : return ''.base64_encode($str); + case 'uuencode' : return ''.convert_uuencode($str); + case 'plain': + default: + return $str; + } } /** * return obscured data as plain text @@ -310,11 +315,11 @@ function conf_encodeString($str,$code) { * @return string plain text */ function conf_decodeString($str) { - switch (substr($str,0,3)) { - case '' : return base64_decode(substr($str,3)); - case '' : return convert_uudecode(substr($str,3)); - default: // not encode (or unknown) - return $str; - } + switch (substr($str,0,3)) { + case '' : return base64_decode(substr($str,3)); + case '' : return convert_uudecode(substr($str,3)); + default: // not encode (or unknown) + return $str; + } } -//Setup VIM: ex: et ts=2 enc=utf-8 : +//Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/inc/events.php b/inc/events.php index 1604c73c6..e6b608f20 100644 --- a/inc/events.php +++ b/inc/events.php @@ -11,190 +11,190 @@ require_once(DOKU_INC.'inc/pluginutils.php'); class Doku_Event { - // public properties - var $name = ''; // READONLY event name, objects must register against this name to see the event - var $data = NULL; // READWRITE data relevant to the event, no standardised format (YET!) - var $result = NULL; // READWRITE the results of the event action, only relevant in "_AFTER" advise - // event handlers may modify this if they are preventing the default action - // to provide the after event handlers with event results - var $canPreventDefault = true; // READONLY if true, event handlers can prevent the events default action - - // private properties, event handlers can effect these through the provided methods - var $_default = true; // whether or not to carry out the default action associated with the event - var $_continue = true; // whether or not to continue propagating the event to other handlers - - /** - * event constructor - */ - function Doku_Event($name, &$data) { - - $this->name = $name; - $this->data =& $data; - - } - - /** - * advise functions - * - * advise all registered handlers of this event - * - * if these methods are used by functions outside of this object, they must - * properly handle correct processing of any default action and issue an - * advise_after() signal. e.g. - * $evt = new Doku_Event(name, data); - * if ($evt->advise_before(canPreventDefault) { - * // default action code block - * } - * $evt->advise_after(); - * unset($evt); - * - * @return results of processing the event, usually $this->_default - */ - function advise_before($enablePreventDefault=true) { - global $EVENT_HANDLER; - - $this->canPreventDefault = $enablePreventDefault; - $EVENT_HANDLER->process_event($this,'BEFORE'); - - return (!$enablePreventDefault || $this->_default); - } - - function advise_after() { - global $EVENT_HANDLER; - - $this->_continue = true; - $EVENT_HANDLER->process_event($this,'AFTER'); - } - - /** - * trigger - * - * - advise all registered (_BEFORE) handlers that this event is about to take place - * - carry out the default action using $this->data based on $enablePrevent and - * $this->_default, all of which may have been modified by the event handlers. - * - advise all registered (_AFTER) handlers that the event has taken place - * - * @return $event->results - * the value set by any _before or handlers if the default action is prevented - * or the results of the default action (as modified by _after handlers) - * or NULL no action took place and no handler modified the value - */ - function trigger($action=NULL, $enablePrevent=true) { - - if (!is_callable($action)) $enablePrevent = false; - - if ($this->advise_before($enablePrevent) && is_callable($action)) { - if (is_array($action)) { - list($obj,$method) = $action; - $this->result = $obj->$method($this->data); - } else { - $this->result = $action($this->data); - } + // public properties + var $name = ''; // READONLY event name, objects must register against this name to see the event + var $data = null; // READWRITE data relevant to the event, no standardised format (YET!) + var $result = null; // READWRITE the results of the event action, only relevant in "_AFTER" advise + // event handlers may modify this if they are preventing the default action + // to provide the after event handlers with event results + var $canPreventDefault = true; // READONLY if true, event handlers can prevent the events default action + + // private properties, event handlers can effect these through the provided methods + var $_default = true; // whether or not to carry out the default action associated with the event + var $_continue = true; // whether or not to continue propagating the event to other handlers + + /** + * event constructor + */ + function Doku_Event($name, &$data) { + + $this->name = $name; + $this->data =& $data; + + } + + /** + * advise functions + * + * advise all registered handlers of this event + * + * if these methods are used by functions outside of this object, they must + * properly handle correct processing of any default action and issue an + * advise_after() signal. e.g. + * $evt = new Doku_Event(name, data); + * if ($evt->advise_before(canPreventDefault) { + * // default action code block + * } + * $evt->advise_after(); + * unset($evt); + * + * @return results of processing the event, usually $this->_default + */ + function advise_before($enablePreventDefault=true) { + global $EVENT_HANDLER; + + $this->canPreventDefault = $enablePreventDefault; + $EVENT_HANDLER->process_event($this,'BEFORE'); + + return (!$enablePreventDefault || $this->_default); + } + + function advise_after() { + global $EVENT_HANDLER; + + $this->_continue = true; + $EVENT_HANDLER->process_event($this,'AFTER'); + } + + /** + * trigger + * + * - advise all registered (_BEFORE) handlers that this event is about to take place + * - carry out the default action using $this->data based on $enablePrevent and + * $this->_default, all of which may have been modified by the event handlers. + * - advise all registered (_AFTER) handlers that the event has taken place + * + * @return $event->results + * the value set by any _before or handlers if the default action is prevented + * or the results of the default action (as modified by _after handlers) + * or NULL no action took place and no handler modified the value + */ + function trigger($action=null, $enablePrevent=true) { + + if (!is_callable($action)) $enablePrevent = false; + + if ($this->advise_before($enablePrevent) && is_callable($action)) { + if (is_array($action)) { + list($obj,$method) = $action; + $this->result = $obj->$method($this->data); + } else { + $this->result = $action($this->data); + } + } + + $this->advise_after(); + + return $this->result; } - $this->advise_after(); - - return $this->result; - } - - /** - * stopPropagation - * - * stop any further processing of the event by event handlers - * this function does not prevent the default action taking place - */ - function stopPropagation() { $this->_continue = false; } - - /** - * preventDefault - * - * prevent the default action taking place - */ - function preventDefault() { $this->_default = false; } + /** + * stopPropagation + * + * stop any further processing of the event by event handlers + * this function does not prevent the default action taking place + */ + function stopPropagation() { $this->_continue = false; } + + /** + * preventDefault + * + * prevent the default action taking place + */ + function preventDefault() { $this->_default = false; } } class Doku_Event_Handler { - // public properties: none + // public properties: none - // private properties - var $_hooks = array(); // array of events and their registered handlers + // private properties + var $_hooks = array(); // array of events and their registered handlers - /** - * event_handler - * - * constructor, loads all action plugins and calls their register() method giving them - * an opportunity to register any hooks they require - */ - function Doku_Event_Handler() { + /** + * event_handler + * + * constructor, loads all action plugins and calls their register() method giving them + * an opportunity to register any hooks they require + */ + function Doku_Event_Handler() { - // load action plugins - $plugin = NULL; - $pluginlist = plugin_list('action'); + // load action plugins + $plugin = null; + $pluginlist = plugin_list('action'); - foreach ($pluginlist as $plugin_name) { - $plugin =& plugin_load('action',$plugin_name); + foreach ($pluginlist as $plugin_name) { + $plugin =& plugin_load('action',$plugin_name); - if ($plugin !== NULL) $plugin->register($this); - } - } - - /** - * register_hook - * - * register a hook for an event - * - * @PARAM $event (string) name used by the event, (incl '_before' or '_after' for triggers) - * @PARAM $obj (obj) object in whose scope method is to be executed, - * if NULL, method is assumed to be a globally available function - * @PARAM $method (function) event handler function - * @PARAM $param (mixed) data passed to the event handler - */ - function register_hook($event, $advise, &$obj, $method, $param=NULL) { - $this->_hooks[$event.'_'.$advise][] = array(&$obj, $method, $param); - } - - function process_event(&$event,$advise='') { - - $evt_name = $event->name . ($advise ? '_'.$advise : '_BEFORE'); - - if (!empty($this->_hooks[$evt_name])) { - $hook = reset($this->_hooks[$evt_name]); - do { -// list($obj, $method, $param) = $hook; - $obj =& $hook[0]; - $method = $hook[1]; - $param = $hook[2]; - - if (is_null($obj)) { - $method($event, $param); - } else { - $obj->$method($event, $param); + if ($plugin !== null) $plugin->register($this); } + } + + /** + * register_hook + * + * register a hook for an event + * + * @param $event (string) name used by the event, (incl '_before' or '_after' for triggers) + * @param $obj (obj) object in whose scope method is to be executed, + * if NULL, method is assumed to be a globally available function + * @param $method (function) event handler function + * @param $param (mixed) data passed to the event handler + */ + function register_hook($event, $advise, &$obj, $method, $param=null) { + $this->_hooks[$event.'_'.$advise][] = array(&$obj, $method, $param); + } - } while ($event->_continue && $hook = next($this->_hooks[$evt_name])); + function process_event(&$event,$advise='') { + + $evt_name = $event->name . ($advise ? '_'.$advise : '_BEFORE'); + + if (!empty($this->_hooks[$evt_name])) { + $hook = reset($this->_hooks[$evt_name]); + do { + // list($obj, $method, $param) = $hook; + $obj =& $hook[0]; + $method = $hook[1]; + $param = $hook[2]; + + if (is_null($obj)) { + $method($event, $param); + } else { + $obj->$method($event, $param); + } + + } while ($event->_continue && $hook = next($this->_hooks[$evt_name])); + } } - } } /** - * trigger_event + * trigger_event * - * function wrapper to process (create, trigger and destroy) an event + * function wrapper to process (create, trigger and destroy) an event * - * @PARAM $name (string) name for the event - * @PARAM $data (mixed) event data - * @PARAM $action (callback) (optional, default=NULL) default action, a php callback function - * @PARAM $canPreventDefault (bool) (optional, default=true) can hooks prevent the default action + * @param $name (string) name for the event + * @param $data (mixed) event data + * @param $action (callback) (optional, default=NULL) default action, a php callback function + * @param $canPreventDefault (bool) (optional, default=true) can hooks prevent the default action * - * @RETURN (mixed) the event results value after all event processing is complete + * @return (mixed) the event results value after all event processing is complete * by default this is the return value of the default action however * it can be set or modified by event handler hooks */ -function trigger_event($name, &$data, $action=NULL, $canPreventDefault=true) { +function trigger_event($name, &$data, $action=null, $canPreventDefault=true) { - $evt = new Doku_Event($name, $data); - return $evt->trigger($action, $canPreventDefault); + $evt = new Doku_Event($name, $data); + return $evt->trigger($action, $canPreventDefault); } // create the event handler diff --git a/inc/form.php b/inc/form.php index a514526b7..6d496f414 100644 --- a/inc/form.php +++ b/inc/form.php @@ -859,7 +859,9 @@ function form_menufield($attrs) { $s .= ' Date: Mon, 30 Nov 2009 14:10:48 +0100 Subject: Move edit button class to the topmost div darcs-hash:20091130131048-e4919-20c11bb664df45e76a4de30dee53e067dfa9d788.gz --- inc/html.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 7f061ffbd..8a215f440 100644 --- a/inc/html.php +++ b/inc/html.php @@ -98,13 +98,13 @@ function html_secedit_button($matches){ $name = $matches[2]; $secedit = ''; - $secedit .= '
'; + $secedit .= '
'; $secedit .= html_btn('secedit',$ID,'', array('do' => 'edit', 'lines' => $section, 'edittarget' => $edittarget, 'rev' => $INFO['lastmod']), - 'post', $name, 'editbutton_' . $edittarget); + 'post', $name); $secedit .= '
'; return $secedit; } @@ -149,7 +149,7 @@ function html_topbtn(){ * * @author Andreas Gohr */ -function html_btn($name,$id,$akey,$params,$method='get',$tooltip='', $class = ''){ +function html_btn($name,$id,$akey,$params,$method='get',$tooltip=''){ global $conf; global $lang; @@ -187,9 +187,7 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip='', $class = '' $tip = htmlspecialchars($label); } - $class .= ' button'; - - $ret .= ' Date: Tue, 5 Jan 2010 14:14:00 +0100 Subject: New mail subscription with digest --- inc/actions.php | 124 +++++++-------- inc/common.php | 129 ++++------------ inc/confutils.php | 1 - inc/form.php | 21 +++ inc/lang/en/lang.php | 31 ++-- inc/lang/en/subscr_digest.txt | 20 +++ inc/lang/en/subscr_form.txt | 3 + inc/lang/en/subscr_list.txt | 17 ++ inc/lang/en/subscr_single.txt | 23 +++ inc/lang/en/subscribermail.txt | 23 --- inc/pageutils.php | 17 ++ inc/subscription.php | 342 +++++++++++++++++++++++++++++++++++++++++ inc/template.php | 138 +++++++++-------- 13 files changed, 625 insertions(+), 264 deletions(-) create mode 100644 inc/lang/en/subscr_digest.txt create mode 100644 inc/lang/en/subscr_form.txt create mode 100644 inc/lang/en/subscr_list.txt create mode 100644 inc/lang/en/subscr_single.txt delete mode 100644 inc/lang/en/subscribermail.txt create mode 100644 inc/subscription.php (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 92f817133..a856b7919 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -47,12 +47,13 @@ function act_dispatch(){ } //check if user is asking to (un)subscribe a page - if($ACT == 'subscribe' || $ACT == 'unsubscribe') - $ACT = act_subscription($ACT); - - //check if user is asking to (un)subscribe a namespace - if($ACT == 'subscribens' || $ACT == 'unsubscribens') - $ACT = act_subscriptionns($ACT); + if($ACT == 'subscribe') { + try { + $ACT = act_subscription($ACT); + } catch (Exception $e) { + msg($e->getMessage(), -1); + } + } //check permissions $ACT = act_permcheck($ACT); @@ -550,81 +551,68 @@ function act_export($act){ } /** - * Handle page 'subscribe', 'unsubscribe' + * Handle page 'subscribe' + * + * Throws exception on error. * - * @author Steven Danz - * @todo localize + * @author Adrian Lang */ function act_subscription($act){ - global $ID; - global $INFO; global $lang; - - $file=metaFN($ID,'.mlist'); - if ($act=='subscribe' && !$INFO['subscribed']){ - if ($INFO['userinfo']['mail']){ - if (io_saveFile($file,$_SERVER['REMOTE_USER']."\n",true)) { - $INFO['subscribed'] = true; - msg(sprintf($lang[$act.'_success'], $INFO['userinfo']['name'], $ID),1); - } else { - msg(sprintf($lang[$act.'_error'], $INFO['userinfo']['name'], $ID),1); - } - } else { - msg($lang['subscribe_noaddress']); - } - } elseif ($act=='unsubscribe' && $INFO['subscribed']){ - if (io_deleteFromFile($file,$_SERVER['REMOTE_USER']."\n")) { - $INFO['subscribed'] = false; - msg(sprintf($lang[$act.'_success'], $INFO['userinfo']['name'], $ID),1); - } else { - msg(sprintf($lang[$act.'_error'], $INFO['userinfo']['name'], $ID),1); - } - } - - return 'show'; -} - -/** - * Handle namespace 'subscribe', 'unsubscribe' - * - */ -function act_subscriptionns($act){ - global $ID; global $INFO; - global $lang; - if(!getNS($ID)) { - $file = metaFN(getNS($ID),'.mlist'); - $ns = "root"; - } else { - $file = metaFN(getNS($ID),'/.mlist'); - $ns = getNS($ID); + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { + // No post to handle, let tpl_subscribe manage the request. + return $act; } - // reuse strings used to display the status of the subscribe action - $act_msg = rtrim($act, 'ns'); - - if ($act=='subscribens' && !$INFO['subscribedns']){ - if ($INFO['userinfo']['mail']){ - if (io_saveFile($file,$_SERVER['REMOTE_USER']."\n",true)) { - $INFO['subscribedns'] = true; - msg(sprintf($lang[$act_msg.'_success'], $INFO['userinfo']['name'], $ns),1); - } else { - msg(sprintf($lang[$act_msg.'_error'], $INFO['userinfo']['name'], $ns),1); + // Get and validate parameters. + if (!isset($_POST['subscribe_target'])) { + throw new Exception($lang['subscr_no_target']); + } + $target = $_POST['subscribe_target']; + $valid_styles = array('every', 'digest'); + if (substr($target, -1, 1) === ':') { + // Allow “list” subscribe style since the target is a namespace. + $valid_styles[] = 'list'; + } + $style = valid_input_set('subscribe_style', $valid_styles, $_POST, + $lang['subscr_invalid_style']); + $action = valid_input_set('subscribe_action', array('subscribe', + 'unsubscribe'), + $_POST, $lang['subscr_invalid_action']); + + // Check other conditions. + if ($action === 'subscribe') { + if ($INFO['userinfo']['mail'] === '') { + throw new Exception($lang['subscr_subscribe_noaddress']); + } + } elseif ($action === 'unsubscribe') { + $is = false; + foreach($INFO['subscribed'] as $subscr) { + if ($subscr['target'] === $target) { + $is = true; } - } else { - msg($lang['subscribe_noaddress']); } - } elseif ($act=='unsubscribens' && $INFO['subscribedns']){ - if (io_deleteFromFile($file,$_SERVER['REMOTE_USER']."\n")) { - $INFO['subscribedns'] = false; - msg(sprintf($lang[$act_msg.'_success'], $INFO['userinfo']['name'], $ns),1); - } else { - msg(sprintf($lang[$act_msg.'_error'], $INFO['userinfo']['name'], $ns),1); + if ($is === false) { + throw new Exception(sprintf($lang['subscr_not_subscribed_you'], + prettyprint_id($target))); } + // subscription_set deletes a subscription if style = null. + $style = null; } - return 'show'; + // Perform action. + require_once DOKU_INC . 'inc/subscription.php'; + if (!subscription_set($target, $_SERVER['REMOTE_USER'], $style)) { + throw new Exception(sprintf($lang["subscr_{$action}_error"], + hsc($INFO['userinfo']['name']), + prettyprint_id($target))); + } + $INFO['subscribed'] = get_info_subscribed(); + msg(sprintf($lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']), + prettyprint_id($target)), 1); + return $act; } //Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/inc/common.php b/inc/common.php index 85187f16d..2cc279844 100644 --- a/inc/common.php +++ b/inc/common.php @@ -13,6 +13,7 @@ require_once(DOKU_INC.'inc/utf8.php'); require_once(DOKU_INC.'inc/mail.php'); require_once(DOKU_INC.'inc/parserutils.php'); require_once(DOKU_INC.'inc/infoutils.php'); +require_once DOKU_INC.'inc/subscription.php'; /** * These constants are used with the recents function @@ -117,8 +118,7 @@ function pageinfo(){ if(isset($_SERVER['REMOTE_USER'])){ $info['userinfo'] = $USERINFO; $info['perm'] = auth_quickaclcheck($ID); - $info['subscribed'] = is_subscribed($ID,$_SERVER['REMOTE_USER'],false); - $info['subscribedns'] = is_subscribed($ID,$_SERVER['REMOTE_USER'],true); + $info['subscribed'] = get_info_subscribed(); $info['client'] = $_SERVER['REMOTE_USER']; if($info['perm'] == AUTH_ADMIN){ @@ -1061,10 +1061,10 @@ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ }elseif($who == 'subscribers'){ if(!$conf['subscribers']) return; //subscribers enabled? if($conf['useacl'] && $_SERVER['REMOTE_USER'] && $minor) return; //skip minors - $bcc = subscriber_addresslist($id,false); + $bcc = subscription_addresslist($id,false); if(empty($bcc)) return; $to = ''; - $text = rawLocale('subscribermail'); + $text = rawLocale('subscr_single'); }elseif($who == 'register'){ if(empty($conf['registernotify'])) return; $text = rawLocale('registermail'); @@ -1097,7 +1097,7 @@ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ $text = str_replace('@OLDPAGE@',wl($id,"rev=$rev",true,'&'),$text); require_once(DOKU_INC.'inc/DifferenceEngine.php'); $df = new Diff(explode("\n",rawWiki($id,$rev)), - explode("\n",rawWiki($id))); + explode("\n",rawWiki($id))); $dformat = new UnifiedDiffFormatter(); $diff = $dformat->format($df); }else{ @@ -1272,97 +1272,6 @@ function obfuscate($email) { } } -/** - * Let us know if a user is tracking a page or a namespace - * - * @author Andreas Gohr - */ -function is_subscribed($id,$uid,$ns=false){ - if(!$ns) { - $file=metaFN($id,'.mlist'); - } else { - if(!getNS($id)) { - $file = metaFN(getNS($id),'.mlist'); - } else { - $file = metaFN(getNS($id),'/.mlist'); - } - } - if (@file_exists($file)) { - $mlist = file($file); - $pos = array_search($uid."\n",$mlist); - return is_int($pos); - } - - return false; -} - -/** - * Return a string with the email addresses of all the - * users subscribed to a page - * - * @author Steven Danz - */ -function subscriber_addresslist($id,$self=true){ - global $conf; - global $auth; - - if (!$conf['subscribers']) return ''; - - $users = array(); - $emails = array(); - - // load the page mlist file content - $mlist = array(); - $file=metaFN($id,'.mlist'); - if (@file_exists($file)) { - $mlist = file($file); - foreach ($mlist as $who) { - $who = rtrim($who); - if(!$self && $who == $_SERVER['REMOTE_USER']) continue; - $users[$who] = true; - } - } - - // load also the namespace mlist file content - $ns = getNS($id); - while ($ns) { - $nsfile = metaFN($ns,'/.mlist'); - if (@file_exists($nsfile)) { - $mlist = file($nsfile); - foreach ($mlist as $who) { - $who = rtrim($who); - if(!$self && $who == $_SERVER['REMOTE_USER']) continue; - $users[$who] = true; - } - } - $ns = getNS($ns); - } - // root namespace - $nsfile = metaFN('','.mlist'); - if (@file_exists($nsfile)) { - $mlist = file($nsfile); - foreach ($mlist as $who) { - $who = rtrim($who); - if(!$self && $who == $_SERVER['REMOTE_USER']) continue; - $users[$who] = true; - } - } - if(!empty($users)) { - foreach (array_keys($users) as $who) { - $info = $auth->getUserData($who); - if($info === false) continue; - $level = auth_aclcheck($id,$who,$info['grps']); - if ($level >= AUTH_READ) { - if (strcasecmp($info['mail'],$conf['notify']) != 0) { - $emails[] = $info['mail']; - } - } - } - } - - return implode(',',$emails); -} - /** * Removes quoting backslashes * @@ -1545,4 +1454,30 @@ function send_redirect($url){ exit; } -//Setup VIM: ex: et ts=4 enc=utf-8 : +/** + * Validate a value using a set of valid values + * + * This function checks whether a specified value is set and in the array + * $valid_values. If not, the function returns a default value or, if no + * default is specified, throws an exception. + * + * @param string $param The name of the parameter + * @param array $valid_values A set of valid values; Optionally a default may + * be marked by the key “default”. + * @param array $array The array containing the value (typically $_POST + * or $_GET) + * @param string $exc The text of the raised exception + * + * @author Adrian Lang + */ +function valid_input_set($param, $valid_values, $array, $exc = '') { + if (isset($array[$param]) && in_array($array[$param], $valid_values)) { + return $array[$param]; + } elseif (isset($valid_values['default'])) { + return $valid_values['default']; + } else { + throw new Exception($exc); + } +} + +//Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/inc/confutils.php b/inc/confutils.php index abfde8a80..de63846de 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -248,7 +248,6 @@ function actionOK($action){ if(isset($conf['resendpasswd']) && !$conf['resendpasswd']) $disabled[] = 'resendpwd'; if(isset($conf['subscribers']) && !$conf['subscribers']) { $disabled[] = 'subscribe'; - $disabled[] = 'subscribens'; } $disabled = array_unique($disabled); } diff --git a/inc/form.php b/inc/form.php index 6d496f414..0a6bc2bba 100644 --- a/inc/form.php +++ b/inc/form.php @@ -283,6 +283,27 @@ class Doku_Form { echo $this->getForm(); } + /** + * Add a radio set + * + * This function adds a set of radio buttons to the form. If $_POST[$name] + * is set, this radio is preselected, else the first radio button. + * + * @param string $name The HTML field name + * @param array $entries An array of entries $value => $caption + * + * @author Adrian Lang + */ + + function addRadioSet($name, $entries) { + $value = (isset($_POST[$name]) && isset($entries[$_POST[$name]])) ? + $_POST[$name] : key($entries); + foreach($entries as $val => $cap) { + $data = ($value === $val) ? array('checked' => 'checked') : array(); + $this->addElement(form_makeRadioField($name, $val, $cap, '', '', $data)); + } + } + } /** diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index cf5173d05..728d7823b 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -39,10 +39,7 @@ $lang['btn_delete'] = 'Delete'; $lang['btn_back'] = 'Back'; $lang['btn_backlink'] = "Backlinks"; $lang['btn_backtomedia'] = 'Back to Mediafile Selection'; -$lang['btn_subscribe'] = 'Subscribe Page Changes'; -$lang['btn_unsubscribe'] = 'Unsubscribe Page Changes'; -$lang['btn_subscribens'] = 'Subscribe Namespace Changes'; -$lang['btn_unsubscribens'] = 'Unsubscribe Namespace Changes'; +$lang['btn_subscribe'] = 'Manage Subscriptions'; $lang['btn_profile'] = 'Update Profile'; $lang['btn_reset'] = 'Reset'; $lang['btn_resendpwd'] = 'Send new password'; @@ -158,6 +155,7 @@ $lang['download'] = 'Download Snippet'; $lang['mail_newpage'] = 'page added:'; $lang['mail_changed'] = 'page changed:'; +$lang['mail_subscribe_list'] = 'pages changed in namespace:'; $lang['mail_new_user'] = 'new user:'; $lang['mail_upload'] = 'file uploaded:'; @@ -212,11 +210,26 @@ $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Camera'; $lang['img_keywords']= 'Keywords'; -$lang['subscribe_success'] = 'Added %s to subscription list for %s'; -$lang['subscribe_error'] = 'Error adding %s to subscription list for %s'; -$lang['subscribe_noaddress']= 'There is no address associated with your login, you cannot be added to the subscription list'; -$lang['unsubscribe_success']= 'Removed %s from subscription list for %s'; -$lang['unsubscribe_error'] = 'Error removing %s from subscription list for %s'; +$lang['subscr_subscribe_success'] = 'Added %s to subscription list for %s'; +$lang['subscr_subscribe_error'] = 'Error adding %s to subscription list for %s'; +$lang['subscr_subscribe_noaddress']= 'There is no address associated with your login, you cannot be added to the subscription list'; +$lang['subscr_unsubscribe_success']= 'Removed %s from subscription list for %s'; +$lang['subscr_unsubscribe_error'] = 'Error removing %s from subscription list for %s'; +$lang['subscr_no_target'] = 'No subscription target'; +$lang['subscr_invalid_style'] = 'Invalid subscription style'; +$lang['subscr_invalid_action'] = 'Invalid subscription action'; +$lang['subscr_already_subscribed'] = '%s is already subscribed to %s'; +$lang['subscr_not_subscribed'] = '%s is not subscribed to %s'; +$lang['subscr_not_subscribed_you'] = 'You are not subscribed to %s'; +// Manage page for subscriptions +$lang['subscr_m_current_header'] = 'Current subscriptions'; +$lang['subscr_m_current'] = 'Your current subscriptions:'; +$lang['subscr_m_entry'] = 'Subscribed to %s receiving %s.'; +$lang['subscr_m_delete'] = 'Delete'; +$lang['subscr_m_not_subscribed'] = 'You are currently not subscribed to this page.'; +$lang['subscr_m_new_header'] = 'Add subscription'; +$lang['subscr_m_noemail'] = 'You did not set an email address.'; +$lang['subscr_m_subscribe'] = 'Subscribe'; /* auth.class language support */ $lang['authmodfailed'] = 'Bad user authentication configuration. Please inform your Wiki Admin.'; diff --git a/inc/lang/en/subscr_digest.txt b/inc/lang/en/subscr_digest.txt new file mode 100644 index 000000000..35011b6e6 --- /dev/null +++ b/inc/lang/en/subscr_digest.txt @@ -0,0 +1,20 @@ +Hello! + +The page @PAGE@ in the @TITLE@ wiki changed. +Here are the changes: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Old Revision: @OLDPAGE@ +New Revision: @NEWPAGE@ + +To cancel the page notifications, log into the wiki at +@DOKUWIKIURL@ then visit +@SUBSCRIBE@ +and unsubscribe page and/or namespace changes. + +-- +This mail was generated by DokuWiki at +@DOKUWIKIURL@ diff --git a/inc/lang/en/subscr_form.txt b/inc/lang/en/subscr_form.txt new file mode 100644 index 000000000..94b75258c --- /dev/null +++ b/inc/lang/en/subscr_form.txt @@ -0,0 +1,3 @@ +====== Manage subscriptions ====== + +This form allows you to manage your subscriptions for the current page. diff --git a/inc/lang/en/subscr_list.txt b/inc/lang/en/subscr_list.txt new file mode 100644 index 000000000..efe27d866 --- /dev/null +++ b/inc/lang/en/subscr_list.txt @@ -0,0 +1,17 @@ +Hello! + +Pages in the namespace @PAGE@ of the @TITLE@ wiki changed. +Here are the changed pages: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +To cancel the page notifications, log into the wiki at +@DOKUWIKIURL@ then visit +@SUBSCRIBE@ +and unsubscribe page and/or namespace changes. + +-- +This mail was generated by DokuWiki at +@DOKUWIKIURL@ diff --git a/inc/lang/en/subscr_single.txt b/inc/lang/en/subscr_single.txt new file mode 100644 index 000000000..673c4c32a --- /dev/null +++ b/inc/lang/en/subscr_single.txt @@ -0,0 +1,23 @@ +Hello! + +The page @PAGE@ in the @TITLE@ wiki changed. +Here are the changes: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Date : @DATE@ +User : @USER@ +Edit Summary: @SUMMARY@ +Old Revision: @OLDPAGE@ +New Revision: @NEWPAGE@ + +To cancel the page notifications, log into the wiki at +@DOKUWIKIURL@ then visit +@NEWPAGE@ +and unsubscribe page and/or namespace changes. + +-- +This mail was generated by DokuWiki at +@DOKUWIKIURL@ diff --git a/inc/lang/en/subscribermail.txt b/inc/lang/en/subscribermail.txt deleted file mode 100644 index 673c4c32a..000000000 --- a/inc/lang/en/subscribermail.txt +++ /dev/null @@ -1,23 +0,0 @@ -Hello! - -The page @PAGE@ in the @TITLE@ wiki changed. -Here are the changes: - --------------------------------------------------------- -@DIFF@ --------------------------------------------------------- - -Date : @DATE@ -User : @USER@ -Edit Summary: @SUMMARY@ -Old Revision: @OLDPAGE@ -New Revision: @NEWPAGE@ - -To cancel the page notifications, log into the wiki at -@DOKUWIKIURL@ then visit -@NEWPAGE@ -and unsubscribe page and/or namespace changes. - --- -This mail was generated by DokuWiki at -@DOKUWIKIURL@ diff --git a/inc/pageutils.php b/inc/pageutils.php index 9c192e5e6..239ff41c5 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -534,4 +534,21 @@ function isVisiblePage($id){ return !isHiddenPage($id); } +/** + * Format an id for output to a user + * + * Namespaces are denoted by a trailing “:*”. The root namespace is + * “*”. Output is escaped. + * + * @author Adrian Lang + */ +function prettyprint_id($id) { + if (!$id || $id === ':') { + return '*'; + } + if ((substr($id, -1, 1) === ':')) { + $id .= '*'; + } + return hsc($id); +} diff --git a/inc/subscription.php b/inc/subscription.php new file mode 100644 index 000000000..1dcecf6f5 --- /dev/null +++ b/inc/subscription.php @@ -0,0 +1,342 @@ + + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + */ + +require_once DOKU_INC.'/inc/pageutils.php'; + +/** + * Get the name of the metafile tracking subscriptions to target page or + * namespace + * + * @param string $id The target page or namespace, specified by id; Namespaces + * are identified by appending a colon. + * + * @author Adrian Lang + */ +function subscription_filename($id) { + $meta_fname = '.mlist'; + if ((substr($id, -1, 1) === ':')) { + $meta_froot = getNS($id); + if ($meta_froot === false) { + $meta_fname = '/' . $meta_fname; + } + } else { + $meta_froot = $id; + } + return metaFN($meta_froot, $meta_fname); +} + +/** + * Set subscription information + * + * Allows to set subscription informations for permanent storage in meta files. + * Subscriptions consist of a target object, a subscribing user, a subscribe + * style and optional data. + * A subscription may be deleted by specifying an empty subscribe style. + * Only one subscription per target and user is allowed. + * The function returns false on error, otherwise true. Note that no error is + * returned if a subscription should be deleted but the user is not subscribed + * and the subscription meta file exists. + * + * @param string $page The target object (page or namespace), specified by + * id; Namespaces are identified by a trailing colon. + * @param string $user The user + * @param string $style The subscribe style; DokuWiki currently implements + * “every”, “digest”, and “list”. + * @param bool $overwrite Whether an existing subscription may be overwritten + * @param string $data An optional data blob; For list and digest, this + * defaults to time(). + * + * @author Adrian Lang + */ +function subscription_set($page, $user, $style, $overwrite = false, $data = null) { + global $lang; + if (is_null($style)) { + // Delete subscription. + $file = subscription_filename($page); + if (!@file_exists($file)) { + msg(sprintf($lang['subscr_not_subscribed'], $user, + prettyprint_id($page)), -1); + return false; + } + + // io_deleteFromFile does not return false if no line matched. + return io_deleteFromFile($file, + subscription_regex(array('user' => $user)), + true); + } + + // Delete subscription if one exists and $overwrite is true. If $overwrite + // is false, fail. + $subs = subscription_find($page, array('user' => $user)); + if (count($subs) > 0 && array_pop(array_keys($subs)) === $page) { + if (!$overwrite) { + msg(sprintf($lang['subscr_already_subscribed'], $user, + prettyprint_id($page)), -1); + return false; + } + // Fail if deletion failed, else continue. + if (!subscription_set($page, $user, null)) { + return false; + } + } + + $file = subscription_filename($page); + $content = auth_nameencode($user) . ' ' . $style; + if (in_array($style, array('list', 'digest'))) { + $content .= ' ' . (!is_null($data) ? $data : time()); + } + return io_saveFile($file, $content . "\n", true); +} + +/** + * Recursively search for matching subscriptions + * + * This function searches all relevant subscription files for a page or + * namespace. + * + * @param string $page The target object’s (namespace or page) id + * @param array $pre A hash of predefined values + * + * @see function subscription_regex for $pre documentation + * + * @author Adrian Lang + */ +function subscription_find($page, $pre) { + // Construct list of files which may contain relevant subscriptions. + $filenames = array(); + do { + $filenames[$page] = subscription_filename($page); + $page = getNS(rtrim($page, ':')) . ':'; + } while ($page !== ':'); + + // Handle files. + $matches = array(); + foreach ($filenames as $cur_page => $filename) { + if (!@file_exists($filename)) { + continue; + } + $subscriptions = file($filename); + foreach ($subscriptions as $subscription) { + if (strpos($subscription, ' ') === false) { + // This is an old subscription file. + $subscription = trim($subscription) . " every\n"; + } + if (preg_match(subscription_regex($pre), $subscription, + &$line_matches) === 0) { + continue; + } + $match = array_slice($line_matches, 1); + if (!isset($matches[$cur_page])) { + $matches[$cur_page] = array(); + } + $matches[$cur_page][] = $match; + } + } + return array_reverse($matches); +} + +/** + * Get data for $INFO['subscribed'] + * + * $INFO['subscribed'] is either false if no subscription for the current page + * and user is in effect. Else it contains an array of arrays with the fields + * “target”, “style”, and optionally “data”. + * + * @author Adrian Lang + */ +function get_info_subscribed() { + global $ID; + global $conf; + if (!$conf['subscribers']) { + return false; + } + + $subs = subscription_find($ID, array('user' => $_SERVER['REMOTE_USER'])); + if (count($subs) === 0) { + return false; + } + + $_ret = array(); + foreach ($subs as $target => $subs_data) { + $new = array('target' => $target, + 'style' => $subs_data[0][0]); + if (count($subs_data[0]) > 1) { + $new['data'] = $subs_data[0][1]; + } + $_ret[] = $new; + } + + return $_ret; +} + +/** + * Construct a regular expression parsing a subscription definition line + * + * @param array $pre A hash of predefined values; “user”, “style”, and + * “data” may be set to limit the results to + * subscriptions matching these parameters. If + * “escaped” is true, these fields are inserted into the + * regular expression without escaping. + * + * @author Adrian Lang + */ +function subscription_regex($pre = array()) { + if (!isset($pre['escaped']) || $pre['escaped'] === false) { + $pre = array_map('preg_quote_cb', $pre); + } + foreach (array('user', 'style', 'data') as $key) { + if (!isset($pre[$key])) { + $pre[$key] = '(\S+)'; + } + } + return '/^' . $pre['user'] . '(?: ' . $pre['style'] . + '(?: ' . $pre['data'] . ')?)?$/'; +} + +/** + * Return a string with the email addresses of all the + * users subscribed to a page + * + * @param string $id The id of the changed page + * @param bool $self Whether a notice should be sent to the editor if he is + * subscribed + * + * @author Steven Danz + */ +function subscription_addresslist($id, $self=true){ + global $conf; + global $auth; + + if (!$conf['subscribers']) { + return ''; + } + $pres = array('style' => 'every', 'escaped' => true); + if (!$self && isset($_SERVER['REMOTE_USER'])) { + $pres['user'] = '((?:(?!' . preg_quote_cb($_SERVER['REMOTE_USER']) . + ')\S?)+)'; + } + $subs = subscription_find($id, $pres); + $emails = array(); + foreach ($subs as $by_targets) { + foreach ($by_targets as $sub) { + $info = $auth->getUserData($sub[0]); + if ($info === false) continue; + $level = auth_aclcheck($id, $sub[0], $info['grps']); + if ($level >= AUTH_READ) { + if (strcasecmp($info['mail'], $conf['notify']) != 0) { + $emails[$sub[0]] = $info['mail']; + } + } + } + } + return implode(',', $emails); +} + +/** + * Send a digest mail + * + * Sends a digest mail showing a bunch of changes. + * + * @param string $subscriber_mail The target mail address + * @param array $change The newest change + * @param int $lastupdate Time of the last notification + * + * @author Adrian Lang + */ +function subscription_send_digest($subscriber_mail, $change, $lastupdate) { + $id = $change['id']; + $n = 0; + do { + $rev = getRevisions($id, $n++, 1); + $rev = (count($rev) > 0) ? $rev[0] : null; + } while (!is_null($rev) && $rev > $lastupdate); + + $ip = $change['ip']; + $replaces = array('NEWPAGE' => wl($id, '', true, '&'), + 'SUBSCRIBE' => wl($id, array('do' => 'subscribe'), true, '&')); + if (!is_null($rev)) { + $subject = 'changed'; + $replaces['OLDPAGE'] = wl($id, "rev=$rev", true, '&'); + require_once DOKU_INC.'inc/DifferenceEngine.php'; + $df = new Diff(explode("\n", rawWiki($id, $rev)), + explode("\n", rawWiki($id))); + $dformat = new UnifiedDiffFormatter(); + $replaces['DIFF'] = $dformat->format($df); + } else { + $subject = 'newpage'; + $replaces['OLDPAGE'] = 'none'; + $replaces['DIFF'] = rawWiki($id); + } + subscription_send($subscriber_mail, $replaces, $subject, $id, + 'subscr_digest'); +} + +/** + * Send a list mail + * + * Sends a list mail showing a list of changed pages. + * + * @param string $subscriber_mail The target mail address + * @param array $changes Array of changes + * @param string $id The id of the namespace + * + * @author Adrian Lang + */ +function subscription_send_list($subscriber_mail, $changes, $id) { + $list = ''; + foreach ($changes as $change) { + $list .= '* ' . $change['id'] . NL; + } + subscription_send($subscriber_mail, + array('DIFF' => rtrim($list), + 'SUBSCRIBE' => wl($changes[0]['id'], + array('do' => 'subscribe'), + true, '&')), + 'subscribe_list', + prettyprint_id($id), + 'subscr_list'); +} + +/** + * Helper function for sending a mail + * + * @param string $subscriber_mail The target mail address + * @param array $replaces Predefined parameters used to parse the + * template + * @param string $subject The lang id of the mail subject (without the + * prefix “mail_”) + * @param string $id The page or namespace id + * @param string $template The name of the mail template + * + * @author Adrian Lang + */ +function subscription_send($subscriber_mail, $replaces, $subject, $id, $template) { + global $conf; + + $text = rawLocale($template); + $replaces = array_merge($replaces, array('TITLE' => $conf['title'], + 'DOKUWIKIURL' => DOKU_URL, + 'PAGE' => $id)); + + foreach ($replaces as $key => $substitution) { + $text = str_replace('@'.strtoupper($key).'@', $substitution, $text); + } + + global $lang; + $subject = $lang['mail_' . $subject] . ' ' . $id; + mail_send('', '['.$conf['title'].'] '. $subject, $text, + $conf['mailfrom'], '', $subscriber_mail); +} diff --git a/inc/template.php b/inc/template.php index 4681300eb..9b738bf8f 100644 --- a/inc/template.php +++ b/inc/template.php @@ -126,6 +126,9 @@ function tpl_content_core(){ case 'admin': tpl_admin(); break; + case 'subscribe': + tpl_subscribe(); + break; default: $evt = new Doku_Event('TPL_ACT_UNKNOWN',$ACT); if ($evt->advise_before()) @@ -540,31 +543,10 @@ function tpl_button($type,$return=false){ } break; case 'subscribe': - case 'subscription': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribed']){ - if(actionOK('unsubscribe')) - $out .= html_btn('unsubscribe',$ID,'',array('do' => 'unsubscribe',)); - } else { - if(actionOK('subscribe')) - $out .= html_btn('subscribe',$ID,'',array('do' => 'subscribe',)); - } - } - } - if($type == 'subscribe') break; - // else: fall through for backward compatibility - case 'subscribens': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribedns']){ - if(actionOK('unsubscribens')) - $out .= html_btn('unsubscribens',$ID,'',array('do' => 'unsubscribens',)); - } else { - if(actionOK('subscribens')) - $out .= html_btn('subscribens',$ID,'',array('do' => 'subscribens',)); - } - } + if ($conf['useacl'] && $auth && $ACT == 'show' && + $conf['subscribers'] && isset($_SERVER['REMOTE_USER']) && + actionOK('subscribe')) { + $out .= html_btn('subscribe',$ID,'',array('do' => 'subscribe',)); } break; case 'backlink': @@ -712,37 +694,12 @@ function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ break; case 'subscribe': case 'subscription': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ + if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers']) { if($_SERVER['REMOTE_USER']){ - if($INFO['subscribed']) { - if(actionOK('unsubscribe')) - $out .= tpl_link(wl($ID,'do=unsubscribe'), - $pre.(($inner)?$inner:$lang['btn_unsubscribe']).$suf, - 'class="action unsubscribe" rel="nofollow"',1); - } else { if(actionOK('subscribe')) $out .= tpl_link(wl($ID,'do=subscribe'), $pre.(($inner)?$inner:$lang['btn_subscribe']).$suf, 'class="action subscribe" rel="nofollow"',1); - } - } - } - if($type == 'subscribe') break; - // else: fall through for backward compatibility - case 'subscribens': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribedns']) { - if(actionOK('unsubscribens')) - $out .= tpl_link(wl($ID,'do=unsubscribens'), - $pre.(($inner)?$inner:$lang['btn_unsubscribens']).$suf, - 'class="action unsubscribens" rel="nofollow"',1); - } else { - if(actionOK('subscribens')) - $out .= tpl_link(wl($ID,'do=subscribens'), - $pre.(($inner)?$inner:$lang['btn_subscribens']).$suf, - 'class="action subscribens" rel="nofollow"',1); - } } } break; @@ -1323,23 +1280,9 @@ function tpl_actiondropdown($empty='',$button='>'){ echo ''; } - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ + if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers']){ if($_SERVER['REMOTE_USER']){ - if($INFO['subscribed']) { - echo ''; - } else { echo ''; - } - } - } - - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers'] == 1){ - if($_SERVER['REMOTE_USER']){ - if($INFO['subscribedns']) { - echo ''; - } else { - echo ''; - } } } @@ -1406,5 +1349,68 @@ function tpl_include_page($pageid,$print=true){ echo $html; } +/** + * Display the subscribe form + * + * @author Adrian Lang + */ + +function tpl_subscribe() { + global $INFO; + global $ID; + global $lang; + $targets = array($ID => 'the current page', + 'namespace' => 'the namespace “%s”'); + $styles = array('every' => 'a notice on every change', + 'digest' => 'a digest for each changed page*', + 'list' => 'a list of changed pages*'); + + echo p_locale_xhtml('subscr_form'); + + echo '

' . $lang['subscr_m_current_header'] . '

'; + if ($INFO['subscribed'] === false) { + echo '

' . $lang['subscr_m_not_subscribed'] . '

'; + } else { + echo '

' . $lang['subscr_m_current'] . '

'; + echo '
    '; + foreach($INFO['subscribed'] as $sub) { + $form = new Doku_Form(array('class' => 'unsubscribe')); + if ($sub['target'] !== $ID) { + $str = sprintf($targets['namespace'], prettyprint_id($sub['target'])); + } else { + $str = $targets[$ID]; + } + $form->addElement('
  • ' . + sprintf($lang['subscr_m_entry'], $str, + $styles[$sub['style']])); + $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_delete'])); + $form->addHidden('subscribe_target', $sub['target']); + $form->addHidden('subscribe_style', $sub['style']); + $form->addHidden('subscribe_action', 'unsubscribe'); + $form->addElement('
  • '); + html_form('UNSUBSCRIBE', $form); + } + echo '
'; + } + + echo '

' . $lang['subscr_m_new_header'] . '

'; + if ($INFO['userinfo']['mail'] === '') { + echo $lang['subscr_m_noemail']; + return; + } + $styles['list'] = $styles['list'] . ' (Not allowed for single pages)'; + $form = new Doku_Form(array('id' => 'subscribe')); + $ns = getNS($ID). ':'; + $targets[$ns] = sprintf($targets['namespace'], prettyprint_id($ns)); + unset($targets['namespace']); + $form->addElement('

' . 'Subscribe to' . '

'); + $form->addRadioSet('subscribe_target', $targets); + $form->addElement('

' . 'Receive' . '

'); + $form->addRadioSet('subscribe_style', $styles); + $form->addHidden('subscribe_action', 'subscribe'); + $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_subscribe'])); + html_form('SUBSCRIBE', $form); +} + //Setup VIM: ex: et ts=4 enc=utf-8 : -- cgit v1.2.3 From 8881fcc99a05f20da8fdd0f1c52f801fd84a8bb7 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 19 Nov 2009 15:25:25 +0100 Subject: Add events to subscription. --- inc/actions.php | 71 +++++++++++++++++++++++++++++++++++++--------------- inc/common.php | 5 +++- inc/subscription.php | 33 ++++++++++++++---------- 3 files changed, 75 insertions(+), 34 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index a856b7919..222ac89dd 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -558,29 +558,69 @@ function act_export($act){ * @author Adrian Lang */ function act_subscription($act){ - global $lang; - global $INFO; - if ($_SERVER['REQUEST_METHOD'] !== 'POST') { // No post to handle, let tpl_subscribe manage the request. return $act; } + // Get and preprocess data. + $params = array(); + foreach(array('target', 'style', 'action') as $param) { + if (isset($_POST["subscribe_$param"])) { + $params[$param] = $_POST["subscribe_$param"]; + } + } + + // Handle POST data, may throw exception. + trigger_event('ACTION_HANDLE_SUBSCRIBE', $params, 'subscription_handle_post'); + + $target = $params['target']; + $style = $params['style']; + $data = $params['data']; + $action = $params['action']; + + global $lang; + global $INFO; + + // Perform action. + require_once DOKU_INC . 'inc/subscription.php'; + if (!subscription_set($_SERVER['REMOTE_USER'], $target, $style, $data)) { + throw new Exception(sprintf($lang["subscr_{$action}_error"], + hsc($INFO['userinfo']['name']), + prettyprint_id($target))); + } + $INFO['subscribed'] = get_info_subscribed(); + msg(sprintf($lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']), + prettyprint_id($target)), 1); + return $act; +} + +/** + * Validate POST data + * + * Validates POST data for a subscribe or unsubscribe request. This is the + * default action for the event ACTION_HANDLE_SUBSCRIBE. + * + * @author Adrian Lang + */ +function subscription_handle_post($params) { + global $INFO; + global $lang; + // Get and validate parameters. - if (!isset($_POST['subscribe_target'])) { + if (!isset($params['target'])) { throw new Exception($lang['subscr_no_target']); } - $target = $_POST['subscribe_target']; + $target = $params['target']; $valid_styles = array('every', 'digest'); if (substr($target, -1, 1) === ':') { // Allow “list” subscribe style since the target is a namespace. $valid_styles[] = 'list'; } - $style = valid_input_set('subscribe_style', $valid_styles, $_POST, + $style = valid_input_set('style', $valid_styles, $params, $lang['subscr_invalid_style']); - $action = valid_input_set('subscribe_action', array('subscribe', - 'unsubscribe'), - $_POST, $lang['subscr_invalid_action']); + $action = valid_input_set('action', array('subscribe', 'unsubscribe'), + $params, $lang['subscr_invalid_action']); // Check other conditions. if ($action === 'subscribe') { @@ -602,17 +642,8 @@ function act_subscription($act){ $style = null; } - // Perform action. - require_once DOKU_INC . 'inc/subscription.php'; - if (!subscription_set($target, $_SERVER['REMOTE_USER'], $style)) { - throw new Exception(sprintf($lang["subscr_{$action}_error"], - hsc($INFO['userinfo']['name']), - prettyprint_id($target))); - } - $INFO['subscribed'] = get_info_subscribed(); - msg(sprintf($lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']), - prettyprint_id($target)), 1); - return $act; + $data = in_array($style, array('list', 'digest')) ? time() : null; + $params = compact('target', 'style', 'data', 'action'); } //Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/inc/common.php b/inc/common.php index 2cc279844..9cadb56fd 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1061,7 +1061,10 @@ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ }elseif($who == 'subscribers'){ if(!$conf['subscribers']) return; //subscribers enabled? if($conf['useacl'] && $_SERVER['REMOTE_USER'] && $minor) return; //skip minors - $bcc = subscription_addresslist($id,false); + $data = array('id' => $id, 'addresslist' => '', 'self' => false); + trigger_event('COMMON_NOTIFY_ADDRESSLIST', $data, + 'subscription_addresslist'); + $bcc = $data['addresslist']; if(empty($bcc)) return; $to = ''; $text = rawLocale('subscr_single'); diff --git a/inc/subscription.php b/inc/subscription.php index 1dcecf6f5..12f0a4b82 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -50,18 +50,18 @@ function subscription_filename($id) { * returned if a subscription should be deleted but the user is not subscribed * and the subscription meta file exists. * + * @param string $user The subscriber or unsubscriber * @param string $page The target object (page or namespace), specified by * id; Namespaces are identified by a trailing colon. - * @param string $user The user * @param string $style The subscribe style; DokuWiki currently implements * “every”, “digest”, and “list”. + * @param string $data An optional data blob * @param bool $overwrite Whether an existing subscription may be overwritten - * @param string $data An optional data blob; For list and digest, this - * defaults to time(). * * @author Adrian Lang */ -function subscription_set($page, $user, $style, $overwrite = false, $data = null) { +function subscription_set($user, $page, $style, $data = null, + $overwrite = false) { global $lang; if (is_null($style)) { // Delete subscription. @@ -88,15 +88,15 @@ function subscription_set($page, $user, $style, $overwrite = false, $data = null return false; } // Fail if deletion failed, else continue. - if (!subscription_set($page, $user, null)) { + if (!subscription_set($user, $page, null)) { return false; } } $file = subscription_filename($page); $content = auth_nameencode($user) . ' ' . $style; - if (in_array($style, array('list', 'digest'))) { - $content .= ' ' . (!is_null($data) ? $data : time()); + if (!is_null($data)) { + $content .= ' ' . $data; } return io_saveFile($file, $content . "\n", true); } @@ -116,7 +116,7 @@ function subscription_set($page, $user, $style, $overwrite = false, $data = null */ function subscription_find($page, $pre) { // Construct list of files which may contain relevant subscriptions. - $filenames = array(); + $filenames = array(':' => subscription_filename(':')); do { $filenames[$page] = subscription_filename($page); $page = getNS(rtrim($page, ':')) . ':'; @@ -210,16 +210,23 @@ function subscription_regex($pre = array()) { * Return a string with the email addresses of all the * users subscribed to a page * - * @param string $id The id of the changed page - * @param bool $self Whether a notice should be sent to the editor if he is - * subscribed + * This is the default action for COMMON_NOTIFY_ADDRESSLIST. + * + * @param array $data Containing $id (the page id), $self (whether the author + * should be notified, $addresslist (current email address + list) * * @author Steven Danz + * @author Adrian Lang */ -function subscription_addresslist($id, $self=true){ +function subscription_addresslist($data){ global $conf; global $auth; + $id = $data['id']; + $self = $data['self']; + $addresslist = $data['addresslist']; + if (!$conf['subscribers']) { return ''; } @@ -242,7 +249,7 @@ function subscription_addresslist($id, $self=true){ } } } - return implode(',', $emails); + $data['addresslist'] = trim($addresslist . ',' . implode(',', $emails), ','); } /** -- cgit v1.2.3 From 15741132b4a2b6f006441f4c11e021062c168af8 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 23 Nov 2009 16:18:13 +0100 Subject: Some language changes in subscription management Ignore-this: 9d6c368419814c7b8cb94f778377ede7 A few language strings were dropped, others updated or added darcs-hash:20091123151813-6e07b-4d01fe03fa2c3bd5944bc05abdd05a24fb79c186.gz --- inc/actions.php | 9 +++++---- inc/lang/en/lang.php | 24 +++++++++++------------- inc/lang/en/subscr_form.txt | 4 ++-- inc/template.php | 40 ++++++++++++++++++++++++---------------- 4 files changed, 42 insertions(+), 35 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 222ac89dd..32dde008e 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -609,7 +609,7 @@ function subscription_handle_post($params) { // Get and validate parameters. if (!isset($params['target'])) { - throw new Exception($lang['subscr_no_target']); + throw new Exception('no subscription target given'); } $target = $params['target']; $valid_styles = array('every', 'digest'); @@ -618,9 +618,9 @@ function subscription_handle_post($params) { $valid_styles[] = 'list'; } $style = valid_input_set('style', $valid_styles, $params, - $lang['subscr_invalid_style']); + 'invalid subscription style given'); $action = valid_input_set('action', array('subscribe', 'unsubscribe'), - $params, $lang['subscr_invalid_action']); + $params, 'invalid subscription action given'); // Check other conditions. if ($action === 'subscribe') { @@ -635,7 +635,8 @@ function subscription_handle_post($params) { } } if ($is === false) { - throw new Exception(sprintf($lang['subscr_not_subscribed_you'], + throw new Exception(sprintf($lang['subscr_not_subscribed'], + $_SERVER['REMOTE_USER'], prettyprint_id($target))); } // subscription_set deletes a subscription if style = null. diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 728d7823b..e4d050648 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -215,21 +215,19 @@ $lang['subscr_subscribe_error'] = 'Error adding %s to subscription list for % $lang['subscr_subscribe_noaddress']= 'There is no address associated with your login, you cannot be added to the subscription list'; $lang['subscr_unsubscribe_success']= 'Removed %s from subscription list for %s'; $lang['subscr_unsubscribe_error'] = 'Error removing %s from subscription list for %s'; -$lang['subscr_no_target'] = 'No subscription target'; -$lang['subscr_invalid_style'] = 'Invalid subscription style'; -$lang['subscr_invalid_action'] = 'Invalid subscription action'; $lang['subscr_already_subscribed'] = '%s is already subscribed to %s'; -$lang['subscr_not_subscribed'] = '%s is not subscribed to %s'; -$lang['subscr_not_subscribed_you'] = 'You are not subscribed to %s'; +$lang['subscr_not_subscribed'] = '%s is not subscribed to %s'; // Manage page for subscriptions -$lang['subscr_m_current_header'] = 'Current subscriptions'; -$lang['subscr_m_current'] = 'Your current subscriptions:'; -$lang['subscr_m_entry'] = 'Subscribed to %s receiving %s.'; -$lang['subscr_m_delete'] = 'Delete'; -$lang['subscr_m_not_subscribed'] = 'You are currently not subscribed to this page.'; -$lang['subscr_m_new_header'] = 'Add subscription'; -$lang['subscr_m_noemail'] = 'You did not set an email address.'; -$lang['subscr_m_subscribe'] = 'Subscribe'; +$lang['subscr_m_not_subscribed'] = 'You are currently not subscribed to the current page or namespace.'; +$lang['subscr_m_new_header'] = 'Add subscription'; +$lang['subscr_m_current_header'] = 'Current subscriptions'; +$lang['subscr_m_unsubscribe'] = 'Unsubscribe'; +$lang['subscr_m_subscribe'] = 'Subscribe'; + +$lang['subscr_style_every'] = 'email on every change'; +$lang['subscr_style_digest'] = 'digest email of changes for each page'; +$lang['subscr_style_list'] = 'list of changes since last email'; + /* auth.class language support */ $lang['authmodfailed'] = 'Bad user authentication configuration. Please inform your Wiki Admin.'; diff --git a/inc/lang/en/subscr_form.txt b/inc/lang/en/subscr_form.txt index 94b75258c..d606508c6 100644 --- a/inc/lang/en/subscr_form.txt +++ b/inc/lang/en/subscr_form.txt @@ -1,3 +1,3 @@ -====== Manage subscriptions ====== +====== Subscription Management ====== -This form allows you to manage your subscriptions for the current page. +This page allows you to manage your subscriptions for the current page and namespace. diff --git a/inc/template.php b/inc/template.php index 9b738bf8f..3aff96a46 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1354,7 +1354,6 @@ function tpl_include_page($pageid,$print=true){ * * @author Adrian Lang */ - function tpl_subscribe() { global $INFO; global $ID; @@ -1368,22 +1367,24 @@ function tpl_subscribe() { echo p_locale_xhtml('subscr_form'); echo '

' . $lang['subscr_m_current_header'] . '

'; + echo '
'; if ($INFO['subscribed'] === false) { echo '

' . $lang['subscr_m_not_subscribed'] . '

'; } else { - echo '

' . $lang['subscr_m_current'] . '

'; echo '
    '; + foreach($INFO['subscribed'] as $sub) { $form = new Doku_Form(array('class' => 'unsubscribe')); if ($sub['target'] !== $ID) { - $str = sprintf($targets['namespace'], prettyprint_id($sub['target'])); + $stgt = ''.hsc(prettyprint_id($sub['target'])).''; } else { - $str = $targets[$ID]; + $stgt = ''.hsc(prettyprint_id($sub['target'])).''; } - $form->addElement('
  • ' . - sprintf($lang['subscr_m_entry'], $str, - $styles[$sub['style']])); - $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_delete'])); + $sstl = $lang['subscr_style_'.$sub['style']]; + if(!$sstl) $sstl = hsc($sub['style']); + + $form->addElement('
  • '.$stgt.' ('.$sstl.') '); + $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_unsubscribe'])); $form->addHidden('subscribe_target', $sub['target']); $form->addHidden('subscribe_style', $sub['style']); $form->addHidden('subscribe_action', 'unsubscribe'); @@ -1392,17 +1393,23 @@ function tpl_subscribe() { } echo '
'; } + echo '
'; + // Add new subscription form echo '

' . $lang['subscr_m_new_header'] . '

'; - if ($INFO['userinfo']['mail'] === '') { - echo $lang['subscr_m_noemail']; - return; - } - $styles['list'] = $styles['list'] . ' (Not allowed for single pages)'; + echo '
'; + $ns = getNS($ID).':'; + $targets = array( + $ID => ''.prettyprint_id($ID).'', + $ns => ''.prettyprint_id($ns).'', + ); + $styles = array( + 'every' => $lang['subscr_style_every'], + 'digest' => $lang['subscr_style_digest'], + 'list' => $lang['subscr_style_list'], + ); + $form = new Doku_Form(array('id' => 'subscribe')); - $ns = getNS($ID). ':'; - $targets[$ns] = sprintf($targets['namespace'], prettyprint_id($ns)); - unset($targets['namespace']); $form->addElement('

' . 'Subscribe to' . '

'); $form->addRadioSet('subscribe_target', $targets); $form->addElement('

' . 'Receive' . '

'); @@ -1410,6 +1417,7 @@ function tpl_subscribe() { $form->addHidden('subscribe_action', 'subscribe'); $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_subscribe'])); html_form('SUBSCRIBE', $form); + echo '
'; } //Setup VIM: ex: et ts=4 enc=utf-8 : -- cgit v1.2.3 From 0314c21ae6c0eb9878650ad0e7aa4ad53be734b4 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 23 Nov 2009 16:32:04 +0100 Subject: tpl_subscription fixes Ignore-this: 35c31736664920607a8a78769f560d82 darcs-hash:20091123153204-6e07b-e4637bd20c6e703885f3c3c5fd3de8ee37fc3693.gz --- inc/template.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'inc') diff --git a/inc/template.php b/inc/template.php index 3aff96a46..6b0314b84 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1358,14 +1358,8 @@ function tpl_subscribe() { global $INFO; global $ID; global $lang; - $targets = array($ID => 'the current page', - 'namespace' => 'the namespace “%s”'); - $styles = array('every' => 'a notice on every change', - 'digest' => 'a digest for each changed page*', - 'list' => 'a list of changed pages*'); echo p_locale_xhtml('subscr_form'); - echo '

' . $lang['subscr_m_current_header'] . '

'; echo '
'; if ($INFO['subscribed'] === false) { @@ -1378,7 +1372,7 @@ function tpl_subscribe() { if ($sub['target'] !== $ID) { $stgt = ''.hsc(prettyprint_id($sub['target'])).''; } else { - $stgt = ''.hsc(prettyprint_id($sub['target'])).''; + $stgt = ''.hsc(prettyprint_id($sub['target'])).''; } $sstl = $lang['subscr_style_'.$sub['style']]; if(!$sstl) $sstl = hsc($sub['style']); -- cgit v1.2.3 From 28c3346d5336a8746bc569e393c5c74852ab0a27 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 27 Nov 2009 14:35:03 +0100 Subject: Add german translation for subscription, fix one english subscription darcs-hash:20091127133503-e4919-0c99ac85ceaf70a5292165fd2fbe2e3961fb56e3.gz --- inc/lang/de/lang.php | 24 +++++++++++++++++++----- inc/lang/en/lang.php | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) (limited to 'inc') diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index d0c1f8b70..c3fefd926 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -203,11 +203,25 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Kamera'; $lang['img_keywords'] = 'Schlagwörter'; -$lang['subscribe_success'] = '%s hat nun Änderungen der Seite %s abonniert'; -$lang['subscribe_error'] = '%s kann die Änderungen der Seite %s nicht abonnieren'; -$lang['subscribe_noaddress'] = 'Weil Ihre E-Mail-Adresse fehlt, können Sie das Thema nicht abonnieren'; -$lang['unsubscribe_success'] = 'Das Abonnement von %s für die Seite %s wurde aufgelöst'; -$lang['unsubscribe_error'] = 'Das Abonnement von %s für die Seite %s konnte nicht aufgelöst werden'; + +$lang['subscr_subscribe_success'] = '%s hat nun Änderungen der Seite %s abonniert'; +$lang['subscr_subscribe_error'] = '%s kann die Änderungen der Seite %s nicht abonnieren'; +$lang['subscr_subscribe_noaddress']= 'Weil Ihre E-Mail-Adresse fehlt, können Sie das Thema nicht abonnieren'; +$lang['subscr_unsubscribe_success']= 'Das Abonnement von %s für die Seite %s wurde aufgelöst'; +$lang['subscr_unsubscribe_error'] = 'Das Abonnement von %s für die Seite %s konnte nicht aufgelöst werden'; +$lang['subscr_already_subscribed'] = '%s hat %s bereits abonniert'; +$lang['subscr_not_subscribed'] = '%s hat %s nicht abonniert'; +// Manage page for subscriptions +$lang['subscr_m_not_subscribed'] = 'Sie haben die aktuelle Seite und ihre Namensräume nicht abonniert.'; +$lang['subscr_m_new_header'] = 'Abonnement hinzufügen'; +$lang['subscr_m_current_header'] = 'Aktuelle Abonnements'; +$lang['subscr_m_unsubscribe'] = 'Löschen'; +$lang['subscr_m_subscribe'] = 'Abonnieren'; + +$lang['subscr_style_every'] = 'Email bei jeder Bearbeitung'; +$lang['subscr_style_digest'] = 'Übersichtsemail für jede veränderte Seite'; +$lang['subscr_style_list'] = 'Email mit Liste der geänderten Seiten'; + $lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wenden Sie sich an den Systembetreuer.'; $lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Systembetreuer.'; $lang['i_chooselang'] = 'Wählen Sie Ihre Sprache'; diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index e4d050648..b97713a75 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -226,7 +226,7 @@ $lang['subscr_m_subscribe'] = 'Subscribe'; $lang['subscr_style_every'] = 'email on every change'; $lang['subscr_style_digest'] = 'digest email of changes for each page'; -$lang['subscr_style_list'] = 'list of changes since last email'; +$lang['subscr_style_list'] = 'list of changed pages since last email'; /* auth.class language support */ -- cgit v1.2.3 From 7a9add1ccb1aed5ec92ee48b26ef14bebcf76f03 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 27 Nov 2009 15:32:23 +0100 Subject: Fix subscription data validation bug (pass by ref) darcs-hash:20091127143223-e4919-023dd4bfab074c1206580649a2927958c28f38f5.gz --- inc/actions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 32dde008e..e61b1add3 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -603,7 +603,7 @@ function act_subscription($act){ * * @author Adrian Lang */ -function subscription_handle_post($params) { +function subscription_handle_post(&$params) { global $INFO; global $lang; -- cgit v1.2.3 From cb3f9dbab0cf12b2a7486cca0de17c47399633f3 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 30 Nov 2009 10:36:42 +0100 Subject: Add redirect after successful subscription darcs-hash:20091130093642-e4919-318eed562f0e7777d342dfbe4c8fc352eee58ddf.gz --- inc/actions.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index e61b1add3..900409a90 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -589,10 +589,14 @@ function act_subscription($act){ hsc($INFO['userinfo']['name']), prettyprint_id($target))); } - $INFO['subscribed'] = get_info_subscribed(); msg(sprintf($lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']), prettyprint_id($target)), 1); - return $act; + global $ID; + act_redirect($ID, $act); + + // Assure that we have valid data if act_redirect somehow fails. + $INFO['subscribed'] = get_info_subscribed(); + return 'show'; } /** -- cgit v1.2.3 From 056c20495937fe45fe0f7204b112dbfe6931a855 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 30 Nov 2009 14:03:11 +0100 Subject: nicer subscription styles Ignore-this: e1b3b815b5ebb0da320bff997c4fed4b darcs-hash:20091130130311-6e07b-03ccfc52abb3dcc0764eed5784d81f8416841328.gz --- inc/actions.php | 20 +++++++++----------- inc/lang/en/lang.php | 2 +- inc/template.php | 34 +++++++++++++++++----------------- 3 files changed, 27 insertions(+), 29 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 900409a90..1fda0584e 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -558,19 +558,21 @@ function act_export($act){ * @author Adrian Lang */ function act_subscription($act){ - if ($_SERVER['REQUEST_METHOD'] !== 'POST') { - // No post to handle, let tpl_subscribe manage the request. - return $act; - } + global $lang; + global $INFO; + global $ID; - // Get and preprocess data. + // get and preprocess data. $params = array(); foreach(array('target', 'style', 'action') as $param) { - if (isset($_POST["subscribe_$param"])) { - $params[$param] = $_POST["subscribe_$param"]; + if (isset($_REQUEST["sub_$param"])) { + $params[$param] = $_REQUEST["sub_$param"]; } } + // any action given? if not just return and show the subscription page + if(!$params['action']) return $act; + // Handle POST data, may throw exception. trigger_event('ACTION_HANDLE_SUBSCRIBE', $params, 'subscription_handle_post'); @@ -579,9 +581,6 @@ function act_subscription($act){ $data = $params['data']; $action = $params['action']; - global $lang; - global $INFO; - // Perform action. require_once DOKU_INC . 'inc/subscription.php'; if (!subscription_set($_SERVER['REMOTE_USER'], $target, $style, $data)) { @@ -591,7 +590,6 @@ function act_subscription($act){ } msg(sprintf($lang["subscr_{$action}_success"], hsc($INFO['userinfo']['name']), prettyprint_id($target)), 1); - global $ID; act_redirect($ID, $act); // Assure that we have valid data if act_redirect somehow fails. diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index b97713a75..98ded12ca 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -223,7 +223,7 @@ $lang['subscr_m_new_header'] = 'Add subscription'; $lang['subscr_m_current_header'] = 'Current subscriptions'; $lang['subscr_m_unsubscribe'] = 'Unsubscribe'; $lang['subscr_m_subscribe'] = 'Subscribe'; - +$lang['subscr_m_receive'] = 'Receive'; $lang['subscr_style_every'] = 'email on every change'; $lang['subscr_style_digest'] = 'digest email of changes for each page'; $lang['subscr_style_list'] = 'list of changed pages since last email'; diff --git a/inc/template.php b/inc/template.php index 6b0314b84..84fbda051 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1366,24 +1366,21 @@ function tpl_subscribe() { echo '

' . $lang['subscr_m_not_subscribed'] . '

'; } else { echo '
    '; - foreach($INFO['subscribed'] as $sub) { - $form = new Doku_Form(array('class' => 'unsubscribe')); + echo '
  • '; if ($sub['target'] !== $ID) { - $stgt = ''.hsc(prettyprint_id($sub['target'])).''; + echo ''.hsc(prettyprint_id($sub['target'])).''; } else { - $stgt = ''.hsc(prettyprint_id($sub['target'])).''; + echo ''.hsc(prettyprint_id($sub['target'])).''; } $sstl = $lang['subscr_style_'.$sub['style']]; if(!$sstl) $sstl = hsc($sub['style']); + echo ' ('.$sstl.') '; + + echo ''.$lang['subscr_m_unsubscribe'].''; + - $form->addElement('
  • '.$stgt.' ('.$sstl.') '); - $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_unsubscribe'])); - $form->addHidden('subscribe_target', $sub['target']); - $form->addHidden('subscribe_style', $sub['style']); - $form->addHidden('subscribe_action', 'unsubscribe'); - $form->addElement('
  • '); - html_form('UNSUBSCRIBE', $form); + echo '
'; } echo ''; } @@ -1403,12 +1400,15 @@ function tpl_subscribe() { 'list' => $lang['subscr_style_list'], ); - $form = new Doku_Form(array('id' => 'subscribe')); - $form->addElement('

' . 'Subscribe to' . '

'); - $form->addRadioSet('subscribe_target', $targets); - $form->addElement('

' . 'Receive' . '

'); - $form->addRadioSet('subscribe_style', $styles); - $form->addHidden('subscribe_action', 'subscribe'); + $form = new Doku_Form(array('id' => 'subscribe__form')); + $form->startFieldset($lang['subscr_m_subscribe']); + $form->addRadioSet('sub_target', $targets); + $form->startFieldset($lang['subscr_m_receive']); + $form->addRadioSet('sub_style', $styles); + $form->addHidden('sub_action', 'subscribe'); + $form->addHidden('do', 'subscribe'); + $form->addHidden('id', $ID); + $form->endFieldset(); $form->addElement(form_makeButton('submit', 'subscribe', $lang['subscr_m_subscribe'])); html_form('SUBSCRIBE', $form); echo '
'; -- cgit v1.2.3 From d9c82eb63294032cf16e003122eeeca5a6c8454e Mon Sep 17 00:00:00 2001 From: Yaron Yogev Date: Thu, 21 Jan 2010 21:23:40 +0100 Subject: Hebrew Language Update --- inc/lang/he/adminplugins.txt | 1 + inc/lang/he/lang.php | 31 +++++++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 inc/lang/he/adminplugins.txt (limited to 'inc') diff --git a/inc/lang/he/adminplugins.txt b/inc/lang/he/adminplugins.txt new file mode 100644 index 000000000..a7a6471f0 --- /dev/null +++ b/inc/lang/he/adminplugins.txt @@ -0,0 +1 @@ +===== תוספים נוספים ===== \ No newline at end of file diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 8545d1542..1f7d366ab 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -9,6 +9,7 @@ * @author DoK * @author Dotan Kamber * @author Moshe Kaplan + * @author Yaron Yogev */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -51,6 +52,7 @@ $lang['btn_resendpwd'] = 'שלח סיסמה חדשה'; $lang['btn_draft'] = 'עריכת טיוטה'; $lang['btn_recover'] = 'שחזור טיוטה'; $lang['btn_draftdel'] = 'מחיקת טיוטה'; +$lang['btn_revert'] = 'שחזר'; $lang['loggedinas'] = 'רשום כ-'; $lang['user'] = 'שם משתמש'; $lang['pass'] = 'סיסמה'; @@ -65,6 +67,7 @@ $lang['profile'] = 'פרופיל'; $lang['badlogin'] = 'סליחה, שם המשתמש או הסיסמה שגויים'; $lang['minoredit'] = 'שינוים מינוריים'; $lang['draftdate'] = 'טיוטה נשמרה ב-'; +$lang['nosecedit'] = 'הדף השתנה בינתיים, הקטע שערכת אינו מעודכן - העמוד כולו נטען במקום זאת.'; $lang['regmissing'] = 'סליחה, עליך למלא את כל השדות'; $lang['reguexists'] = 'סליחה, משתמש בשם זה כבר נרשם'; $lang['regsuccess'] = 'הרשמה הצליחה, המשתמש נרשם והודעה נשלחה בדואר'; @@ -86,6 +89,9 @@ $lang['resendpwdnouser'] = 'סליחה, משתמש בשם זה לא נמצ $lang['resendpwdbadauth'] = 'סליחה, קוד אימות זה אינו תקף. יש לודא כי נעשה שימוש במלוא קישור האימות.'; $lang['resendpwdconfirm'] = 'קישור אימות נשלח בדוא"ל.'; $lang['resendpwdsuccess'] = 'סיסמה חדשה נשלחה בדואר'; +$lang['license'] = 'למעט מקרים בהם צוין אחרת, התוכן בוויקי זה זמין לפי הרשיון הבא:'; +$lang['licenseok'] = 'שים לב: עריכת דף זה מהווה הסכמה מצידך להצגת התוכן שהוספת לפי הרשיון הבא:'; +$lang['searchmedia'] = 'חפש שם קובץ:'; $lang['txt_upload'] = 'בחר קובץ להעלות'; $lang['txt_filename'] = 'הכנס שם לוויקי (בחירה)'; $lang['txt_overwrt'] = 'לכתוב במקום קובץ קיים'; @@ -104,6 +110,7 @@ $lang['uploadexist'] = 'הקובץ כבר קיים. פעולה בוט $lang['uploadbadcontent'] = 'התוכן שהועלה לא תאם את הסיומת %s של הקובץ.'; $lang['uploadspam'] = 'ההעלאה נחסמה על ידי הרשימה השחורה של הספאם.'; $lang['uploadxss'] = 'ההעלאה נחסמה בשל חשד לתוכן זדוני.'; +$lang['uploadsize'] = 'הקובץ שהועלה היה גדול מדי. (מקסימום %s)'; $lang['deletesucc'] = 'קובץ %s נמחק'; $lang['deletefail'] = 'לא יכולתי למחוק "%s" -- בדקו הרשאות'; $lang['mediainuse'] = 'קובץ "%s" לא נמחק - הוא עדיין בשימוש'; @@ -114,6 +121,8 @@ $lang['js']['keepopen'] = 'השאר חלון פתוח בבחירה'; $lang['js']['hidedetails'] = 'הסתר פרטים'; $lang['js']['nosmblinks'] = ':( קישור למערכת קבצים של חלונות פועל רק בדפדפן אינטרנט אקספלורר. זה בסדר, אין צורך לעבור. אפשר להעתיק ולהדביק את הקישור'; +$lang['js']['linkwiz'] = 'אשף הקישורים'; +$lang['js']['linkto'] = 'קשר אל:'; $lang['js']['del_confirm'] = 'באמת למחוק?'; $lang['js']['mu_btn'] = 'העלאת קבצים מרובים'; $lang['mediausage'] = 'השתמש בתחביר הבא להתיחסות אל קובץ זה:'; @@ -122,7 +131,7 @@ $lang['mediaroot'] = 'root'; $lang['mediaupload'] = 'כאן ניתן להעלות קובץ למרחב השמות הנוכחי. ליצירת תתי-מרחבי שמות צרפם ב-"העלה" לתחילת שם הקובץ מופרדים בפסיקים'; $lang['mediaextchange'] = 'סיומת הקובץ השתנתה מ-.%s ל-.%s!'; $lang['reference'] = 'קישורים ל'; -$lang['ref_inuse'] = 'לא יכולתי למחוק קובץ, הדפים הבאים עדיין משתמשים בו:'; +$lang['ref_inuse'] = 'לא ניתן למחוק קובץ זה, כיוון שהדפים הבאים עדיין משתמשים בו:'; $lang['ref_hidden'] = 'יש קישורים לדפים ללא הרשאת קריאה'; $lang['hits'] = 'פגיעות'; $lang['quickhits'] = 'דפים שנמצאו'; @@ -133,7 +142,7 @@ $lang['diff'] = 'הצג שינוים מגרסה זו ועד ה $lang['diff2'] = 'הצגת הבדלים בין הגרסאות שנבחרו'; $lang['line'] = 'שורה'; $lang['breadcrumb'] = 'ביקורים אחרונים'; -$lang['youarehere'] = 'אתה נמצה כאן'; +$lang['youarehere'] = 'אתה נמצא כאן'; $lang['lastmod'] = 'שונה לאחרונה ב'; $lang['by'] = 'על ידי'; $lang['deleted'] = 'נמחק'; @@ -141,6 +150,8 @@ $lang['created'] = 'נוצר'; $lang['restored'] = 'שוחזר'; $lang['external_edit'] = 'עריכה חיצונית'; $lang['summary'] = 'תקציר העריכה'; +$lang['noflash'] = 'תוסף פלאש לדפדפן נדרש כדי להציג תוכן זה.'; +$lang['download'] = 'הורד מקטע'; $lang['mail_newpage'] = 'דף נוסף:'; $lang['mail_changed'] = 'דף שונה:'; $lang['mail_new_user'] = 'משתמש חדש:'; @@ -157,6 +168,9 @@ $lang['qb_h4'] = 'כותרת רמה 4'; $lang['qb_h5'] = 'כותרת רמה 5'; $lang['qb_h'] = 'כותרת'; $lang['qb_hs'] = 'בחירת כותרת'; +$lang['qb_hplus'] = 'כותרת ברמה גבוהה יותר'; +$lang['qb_hminus'] = 'כותרת ברמה נמוכה יותר'; +$lang['qb_hequal'] = 'כותרת באותה רמה'; $lang['qb_link'] = 'קישור פנימי'; $lang['qb_extlink'] = 'קישור חיצוני'; $lang['qb_hr'] = 'קו אופקי'; @@ -166,6 +180,7 @@ $lang['qb_media'] = 'תמונות או קובץ אחר'; $lang['qb_sig'] = 'הזנת חתימה'; $lang['qb_smileys'] = 'פרצופונים'; $lang['qb_chars'] = 'סימנים מיוחדים'; +$lang['upperns'] = 'עבור למרחב השם שברמה שמעל הנוכחית'; $lang['admin_register'] = 'להוסיף משתמש חדש'; $lang['metaedit'] = 'ערוך נתונים'; $lang['metasaveerr'] = 'כשל בשמירת נתונים'; @@ -215,10 +230,22 @@ $lang['mu_intro'] = 'כאן תוכל להעלות קבצים מרו $lang['mu_gridname'] = 'שם קובץ'; $lang['mu_gridsize'] = 'גודל'; $lang['mu_gridstat'] = 'סטאטןס'; +$lang['mu_namespace'] = 'מרחב שם'; $lang['mu_browse'] = 'חיפוש'; $lang['mu_toobig'] = 'גדול מדי'; $lang['mu_ready'] = 'מוכן להעלאה'; $lang['mu_done'] = 'סיים'; $lang['mu_fail'] = 'נכשל'; +$lang['mu_authfail'] = 'תקוף נעילת עריכה פג'; +$lang['mu_progress'] = '@PCT@% הועלה'; +$lang['mu_filetypes'] = 'סוגי קבצים מורשים'; $lang['mu_info'] = 'הקבצים הועלו'; $lang['mu_lasterr'] = 'שגיאה אחרונה:'; +$lang['recent_global'] = 'אתה צופה כעת בשינויים בתוך מרחב השם %s. אתה יכול גם לצפות בשינויים האחרונים של כל הוויקי .'; +$lang['years'] = 'לפני %d שנים'; +$lang['months'] = 'לפני %d חודשים'; +$lang['weeks'] = 'לפני %d שבועות'; +$lang['days'] = 'לפני %d ימים'; +$lang['hours'] = 'לפני %d שעות'; +$lang['minutes'] = 'לפני %d דקות'; +$lang['seconds'] = 'לפני %d שניות'; -- cgit v1.2.3 From e5fc893fa08504956662a0ca4533b6fb259b7468 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Thu, 21 Jan 2010 22:01:55 +0100 Subject: initialize array in linesToHash FS#1845 --- inc/confutils.php | 1 + 1 file changed, 1 insertion(+) (limited to 'inc') diff --git a/inc/confutils.php b/inc/confutils.php index abfde8a80..5384593c7 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -143,6 +143,7 @@ function getSchemes() { * @author Gina Haeussge */ function linesToHash($lines, $lower=false) { + $conf = array(); foreach ( $lines as $line ) { //ignore comments (except escaped ones) $line = preg_replace('/(? Date: Mon, 25 Jan 2010 21:57:14 +0100 Subject: German (informal) language update --- inc/lang/de-informal/lang.php | 46 +++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'inc') diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index d4b9ff928..c90ce8f5e 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -25,7 +25,7 @@ $lang['singlequoteopening'] = '‚'; $lang['singlequoteclosing'] = '‘'; $lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Diese Seite bearbeiten'; -$lang['btn_source'] = 'Zeige Quelltext'; +$lang['btn_source'] = 'Zeige Seitenquelltext'; $lang['btn_show'] = 'Seite anzeigen'; $lang['btn_create'] = 'Seite anlegen'; $lang['btn_search'] = 'Suche'; @@ -43,7 +43,7 @@ $lang['btn_secedit'] = 'Bearbeiten'; $lang['btn_login'] = 'Anmelden'; $lang['btn_logout'] = 'Abmelden'; $lang['btn_admin'] = 'Admin'; -$lang['btn_update'] = 'Updaten'; +$lang['btn_update'] = 'Aktualisieren'; $lang['btn_delete'] = 'Löschen'; $lang['btn_back'] = 'Zurück'; $lang['btn_backlink'] = 'Links hierher'; @@ -52,7 +52,7 @@ $lang['btn_subscribe'] = 'Änderungen abonnieren'; $lang['btn_unsubscribe'] = 'Änderungen abbestellen'; $lang['btn_subscribens'] = 'Namensraumänderungen abonnieren'; $lang['btn_unsubscribens'] = 'Namensraumänderungen abbestellen'; -$lang['btn_profile'] = 'Benutzerprofil'; +$lang['btn_profile'] = 'Profil aktualisieren'; $lang['btn_reset'] = 'Zurücksetzen'; $lang['btn_resendpwd'] = 'Sende neues Passwort'; $lang['btn_draft'] = 'Entwurf bearbeiten'; @@ -64,35 +64,35 @@ $lang['user'] = 'Benutzername'; $lang['pass'] = 'Passwort'; $lang['newpass'] = 'Neues Passwort'; $lang['oldpass'] = 'Bestätigen (Altes Passwort)'; -$lang['passchk'] = 'und nochmal'; +$lang['passchk'] = 'noch einmal'; $lang['remember'] = 'Angemeldet bleiben'; $lang['fullname'] = 'Voller Name'; $lang['email'] = 'E-Mail'; $lang['register'] = 'Registrieren'; $lang['profile'] = 'Benutzerprofil'; $lang['badlogin'] = 'Nutzername oder Passwort sind falsch.'; -$lang['minoredit'] = 'kleine Änderung'; +$lang['minoredit'] = 'kleine Änderungen'; $lang['draftdate'] = 'Entwurf gespeichert am'; -$lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit geändert, Sektionsinfo ist veraltet, lade stattdessen volle Seite.'; -$lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden'; +$lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit verändert, Sektionsinfo ist veraltet, lade stattdessen volle Seite.'; +$lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden.'; $lang['reguexists'] = 'Der Nutzername existiert leider schon.'; $lang['regsuccess'] = 'Der neue Nutzer wurde angelegt und das Passwort per Email versandt.'; $lang['regsuccess2'] = 'Der neue Nutzer wurde angelegt.'; $lang['regmailfail'] = 'Offenbar ist ein Fehler beim Versenden der Passwortmail aufgetreten. Bitte wende dich an den Wiki-Admin.'; $lang['regbadmail'] = 'Die angegebene Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wende dich bitte an den Wiki-Admin.'; -$lang['regbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuche es noch einmal.'; +$lang['regbadpass'] = 'Die beiden eingegebenen Passwörter stimmen nicht überein. Bitte versuche es noch einmal.'; $lang['regpwmail'] = 'Ihr DokuWiki Passwort'; $lang['reghere'] = 'Du hast noch keinen Zugang? Hier anmelden'; $lang['profna'] = 'Änderung des Benutzerprofils in diesem Wiki nicht möglich.'; $lang['profnochange'] = 'Keine Änderungen, nichts zu tun.'; $lang['profnoempty'] = 'Es muss ein Name oder eine E-Mail Adresse angegeben werden.'; -$lang['profchanged'] = 'Benuzerprofil erfolgreich geändert.'; +$lang['profchanged'] = 'Benutzerprofil erfolgreich geändert.'; $lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an'; $lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.'; $lang['resendpwd'] = 'Neues Passwort schicken für'; $lang['resendpwdmissing'] = 'Es tut mir Leid, aber du musst alle Felder ausfüllen.'; -$lang['resendpwdnouser'] = 'Es tut mir Leid, aber der Benutzer existiert nicht in unserer Datenbank.'; -$lang['resendpwdbadauth'] = 'Es tut mir Leid, aber dieser Authentifizierungscode ist ungültig. Stelle sicher, dass du den kompletten Bestätigungslink verwendet haben.'; +$lang['resendpwdnouser'] = 'Es tut mir Leid, aber dieser Benutzer existiert nicht in unserer Datenbank.'; +$lang['resendpwdbadauth'] = 'Es tut mir Leid, aber dieser Authentifizierungscode ist ungültig. Stelle sicher, dass du den kompletten Bestätigungslink verwendet hast.'; $lang['resendpwdconfirm'] = 'Ein Bestätigungslink wurde per E-Mail versandt.'; $lang['resendpwdsuccess'] = 'Dein neues Passwort wurde per E-Mail versandt.'; $lang['license'] = 'Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:'; @@ -108,13 +108,13 @@ $lang['willexpire'] = 'Die Sperre zur Bearbeitung dieser Seite läuft $lang['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?'; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; -$lang['mediaselect'] = 'Dateiauswahl'; -$lang['fileupload'] = 'Datei hochladen'; +$lang['mediaselect'] = 'Media-Dateien'; +$lang['fileupload'] = 'Media-Datei hochladen'; $lang['uploadsucc'] = 'Datei wurde erfolgreich hochgeladen'; $lang['uploadfail'] = 'Hochladen fehlgeschlagen. Keine Berechtigung?'; $lang['uploadwrong'] = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.'; $lang['uploadexist'] = 'Datei existiert bereits. Keine Änderungen vorgenommen.'; -$lang['uploadbadcontent'] = 'Die hochgeladenen Daten stimmen nicht mit der Dateiendung % überein.'; +$lang['uploadbadcontent'] = 'Der hochgeladene Inhalt stimmt nicht mit der Dateiendung % überein.'; $lang['uploadspam'] = 'Hochladen verweigert: Treffer auf der Spamliste.'; $lang['uploadxss'] = 'Hochladen verweigert: Daten scheinen Schadcode zu enthalten.'; $lang['uploadsize'] = 'Die hochgeladene Datei war zu groß. (max. %s)'; @@ -133,11 +133,11 @@ $lang['js']['linkto'] = 'Link zu:'; $lang['js']['del_confirm'] = 'Die ausgewählten Dateien wirklich löschen?'; $lang['js']['mu_btn'] = 'Mehrere Dateien gleichzeitig hochladen'; $lang['mediausage'] = 'Syntax zum Verwenden dieser Datei:'; -$lang['mediaview'] = 'Originaldatei öffnen'; +$lang['mediaview'] = 'Originaldatei ansehen'; $lang['mediaroot'] = 'Wurzel'; $lang['mediaupload'] = 'Lade hier eine Datei in den momentanen Namensraum hoch. Um Unterordner zu erstellen, stelle diese dem Dateinamen im Feld "Hochladen als" durch Doppelpunkt getrennt voran.'; -$lang['mediaextchange'] = 'Dateiendung vom .%s nach .%s geändert!'; -$lang['reference'] = 'Verwendung von'; +$lang['mediaextchange'] = 'Dateiendung von .%s nach .%s geändert!'; +$lang['reference'] = 'Referenzen für'; $lang['ref_inuse'] = 'Diese Datei kann nicht gelöscht werden, da sie noch von folgenden Seiten benutzt wird:'; $lang['ref_hidden'] = 'Einige Verweise sind auf Seiten, für die du keine Leseberechtigung hast.'; $lang['hits'] = 'Treffer'; @@ -153,13 +153,13 @@ $lang['youarehere'] = 'Du befindest dich hier'; $lang['lastmod'] = 'Zuletzt geändert'; $lang['by'] = 'von'; $lang['deleted'] = 'gelöscht'; -$lang['created'] = 'angelegt'; +$lang['created'] = 'erstellt'; $lang['restored'] = 'alte Version wieder hergestellt'; $lang['external_edit'] = 'Externe Bearbeitung'; -$lang['summary'] = 'Zusammenfassung'; +$lang['summary'] = 'Zusammenfassung der Änderungen'; $lang['noflash'] = 'Das Adobe Flash Plugin wird benötigt, um diesen Ihnalt anzuzeigen.'; $lang['download'] = 'Download-Teil'; -$lang['mail_newpage'] = 'Neue Seite:'; +$lang['mail_newpage'] = 'Seite hinzugefügt:'; $lang['mail_changed'] = 'Seite geaendert:'; $lang['mail_new_user'] = 'Neuer Benutzer:'; $lang['mail_upload'] = 'Datei hochgeladen:'; @@ -187,8 +187,8 @@ $lang['qb_media'] = 'Bilder und andere Dateien hinzufügen'; $lang['qb_sig'] = 'Unterschrift einfügen'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Sonderzeichen'; -$lang['upperns'] = 'Gehe zum Ausgangsfeld'; -$lang['admin_register'] = 'Neuen Benutzer anmelden'; +$lang['upperns'] = 'Springe zum vorherigen Namensraum'; +$lang['admin_register'] = 'Neuen Benutzer hinzufügen'; $lang['metaedit'] = 'Metadaten bearbeiten'; $lang['metasaveerr'] = 'Die Metadaten konnten nicht gesichert werden'; $lang['metasaveok'] = 'Metadaten gesichert'; @@ -216,7 +216,7 @@ $lang['i_wikiname'] = 'Wiki-Name'; $lang['i_enableacl'] = 'Zugangskontrolle (ACL) aktivieren (empfohlen)'; $lang['i_superuser'] = 'Administrator Benutzername'; $lang['i_problems'] = 'Das Installationsprogramm hat unten aufgeführte Probleme festgestellt, die zunächst behoben werden müssen, bevor du mit der Installation fortfahren kannst.'; -$lang['i_modified'] = 'Aus Sicherheitsgründen arbeitet dieses Script nur mit einer neuen, unmodifizierten DokuWiki-Installation. Du solltest entweder alle Dateien noch einmal frisch installieren oder die Dokuwiki-Installationsanleitung konsultieren.'; +$lang['i_modified'] = 'Aus Sicherheitsgründen arbeitet dieses Script nur mit einer neuen, unmodifizierten DokuWiki-Installation. Du solltest entweder alle Dateien erneut installieren oder in der Dokuwiki-Installationsanleitung lesen.'; $lang['i_funcna'] = 'Die PHP Funktion %s ist nicht verfügbar. Unter Umständen wurde sie von deinem Hoster deaktiviert?'; $lang['i_phpver'] = 'Deine PHP-Version %s ist niedriger als die benötigte Version %s. Bitte aktualisiere deine PHP-Installation.'; $lang['i_permfail'] = '%s ist nicht durch DokuWiki beschreibbar. Du musst die Berechtigungen dieses Ordners ändern!'; -- cgit v1.2.3 From f3718805c9a748b2e6e5c7010f77a4d01859934c Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 27 Jan 2010 14:49:39 +0100 Subject: Update translations for subscription --- inc/lang/de/lang.php | 8 ++++++-- inc/lang/de/subscr_digest.txt | 21 +++++++++++++++++++++ inc/lang/de/subscr_form.txt | 3 +++ inc/lang/de/subscr_list.txt | 18 ++++++++++++++++++ inc/lang/de/subscr_single.txt | 24 ++++++++++++++++++++++++ inc/lang/de/subscribermail.txt | 23 ----------------------- inc/lang/en/subscr_digest.txt | 2 +- inc/lang/en/subscr_single.txt | 2 +- 8 files changed, 74 insertions(+), 27 deletions(-) create mode 100644 inc/lang/de/subscr_digest.txt create mode 100644 inc/lang/de/subscr_form.txt create mode 100644 inc/lang/de/subscr_list.txt create mode 100644 inc/lang/de/subscr_single.txt delete mode 100644 inc/lang/de/subscribermail.txt (limited to 'inc') diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index c3fefd926..9f426c2dc 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -159,10 +159,13 @@ $lang['external_edit'] = 'Externe Bearbeitung'; $lang['summary'] = 'Zusammenfassung'; $lang['noflash'] = 'Das Adobe Flash Plugin wird benötigt, um diesen Ihnalt anzuzeigen.'; $lang['download'] = 'Schnipsel herunterladen'; + $lang['mail_newpage'] = 'Neue Seite:'; $lang['mail_changed'] = 'Seite geaendert:'; $lang['mail_new_user'] = 'Neuer Benutzer:'; $lang['mail_upload'] = 'Datei hochgeladen:'; +$lang['mail_subscribe_list'] = 'Geänderte Seiten im Namensraum:'; + $lang['qb_bold'] = 'Fetter Text'; $lang['qb_italic'] = 'Kursiver Text'; $lang['qb_underl'] = 'Unterstrichener Text'; @@ -217,10 +220,11 @@ $lang['subscr_m_new_header'] = 'Abonnement hinzufügen'; $lang['subscr_m_current_header'] = 'Aktuelle Abonnements'; $lang['subscr_m_unsubscribe'] = 'Löschen'; $lang['subscr_m_subscribe'] = 'Abonnieren'; +$lang['subscr_m_receive'] = 'Benachrichtigung'; $lang['subscr_style_every'] = 'Email bei jeder Bearbeitung'; -$lang['subscr_style_digest'] = 'Übersichtsemail für jede veränderte Seite'; -$lang['subscr_style_list'] = 'Email mit Liste der geänderten Seiten'; +$lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede veränderte Seite'; +$lang['subscr_style_list'] = 'Liste der geänderten Seiten'; $lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wenden Sie sich an den Systembetreuer.'; $lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Systembetreuer.'; diff --git a/inc/lang/de/subscr_digest.txt b/inc/lang/de/subscr_digest.txt new file mode 100644 index 000000000..9c42541a4 --- /dev/null +++ b/inc/lang/de/subscr_digest.txt @@ -0,0 +1,21 @@ +Hallo! + +Die Seite @PAGE@ im @TITLE@ Wiki wurde bearbeitet. +Das sind die Änderungen: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Alte Revision: @OLDPAGE@ +Neue Revision: @NEWPAGE@ + +Um das Abonnement für diese Seite aufzulösen, melde Sie sich im Wiki an +@DOKUWIKIURL@, besuchen dann +@SUBSCRIBE@ +und klicken auf die Taste 'Änderungen abbestellen'. + +-- +Diese Mail kommt vom DokuWiki auf +@DOKUWIKIURL@ + diff --git a/inc/lang/de/subscr_form.txt b/inc/lang/de/subscr_form.txt new file mode 100644 index 000000000..d606508c6 --- /dev/null +++ b/inc/lang/de/subscr_form.txt @@ -0,0 +1,3 @@ +====== Subscription Management ====== + +This page allows you to manage your subscriptions for the current page and namespace. diff --git a/inc/lang/de/subscr_list.txt b/inc/lang/de/subscr_list.txt new file mode 100644 index 000000000..98ec4c2ab --- /dev/null +++ b/inc/lang/de/subscr_list.txt @@ -0,0 +1,18 @@ +Hallo! + +Seite im Namensraum @PAGE@ im @TITLE@ Wiki wurden bearbeitet. +Das sind die geänderten Seiten: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Um das Abonnement für diese Seite aufzulösen, melde Sie sich im Wiki an +@DOKUWIKIURL@, besuchen dann +@SUBSCRIBE@ +und klicken auf die Taste 'Änderungen abbestellen'. + +-- +Diese Mail kommt vom DokuWiki auf +@DOKUWIKIURL@ + diff --git a/inc/lang/de/subscr_single.txt b/inc/lang/de/subscr_single.txt new file mode 100644 index 000000000..fb149e927 --- /dev/null +++ b/inc/lang/de/subscr_single.txt @@ -0,0 +1,24 @@ +Hallo! + +Die Seite @PAGE@ im @TITLE@ Wiki wurde bearbeitet. +Das sind die Änderungen: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Datum : @DATE@ +Benutzer : @USER@ +Übersicht: @SUMMARY@ +Alte Revision: @OLDPAGE@ +Neue Revision: @NEWPAGE@ + +Um das Abonnement für diese Seite aufzulösen, melde Sie sich im Wiki an +@DOKUWIKIURL@, besuchen dann +@NEWPAGE@ +und klicken auf die Taste 'Änderungen abbestellen'. + +-- +Diese Mail kommt vom DokuWiki auf +@DOKUWIKIURL@ + diff --git a/inc/lang/de/subscribermail.txt b/inc/lang/de/subscribermail.txt deleted file mode 100644 index 0d90967a2..000000000 --- a/inc/lang/de/subscribermail.txt +++ /dev/null @@ -1,23 +0,0 @@ -Hallo! - -Die Seite @PAGE@ im @TITLE@ Wiki wurde bearbeitet. -Das sind die Änderungen: - --------------------------------------------------------- -@DIFF@ --------------------------------------------------------- - -Datum : @DATE@ -Benutzer : @USER@ -Übersicht: @SUMMARY@ -Alte Revision: @OLDPAGE@ -Neue Revision: @NEWPAGE@ - -Um das Abonnement für diese Seite aufzulösen, melde Sie sich im Wiki an -@DOKUWIKIURL@, besuchen dann -@NEWPAGE@ -und klicken auf die Taste 'Änderungen abbestellen'. - --- -Diese Mail kommt vom DokuWiki auf -@DOKUWIKIURL@ diff --git a/inc/lang/en/subscr_digest.txt b/inc/lang/en/subscr_digest.txt index 35011b6e6..fac8564bd 100644 --- a/inc/lang/en/subscr_digest.txt +++ b/inc/lang/en/subscr_digest.txt @@ -15,6 +15,6 @@ To cancel the page notifications, log into the wiki at @SUBSCRIBE@ and unsubscribe page and/or namespace changes. --- +-- This mail was generated by DokuWiki at @DOKUWIKIURL@ diff --git a/inc/lang/en/subscr_single.txt b/inc/lang/en/subscr_single.txt index 673c4c32a..f2abe6d77 100644 --- a/inc/lang/en/subscr_single.txt +++ b/inc/lang/en/subscr_single.txt @@ -18,6 +18,6 @@ To cancel the page notifications, log into the wiki at @NEWPAGE@ and unsubscribe page and/or namespace changes. --- +-- This mail was generated by DokuWiki at @DOKUWIKIURL@ -- cgit v1.2.3 From c4cf0c4a8bff66d710b95fce6199aa4beca81d30 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 27 Jan 2010 21:57:09 +0100 Subject: fixed variable misspelling in TarLib FS#1871 --- inc/TarLib.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/TarLib.class.php b/inc/TarLib.class.php index 3c1827554..a88ca63bc 100644 --- a/inc/TarLib.class.php +++ b/inc/TarLib.class.php @@ -123,7 +123,7 @@ class TarLib { break; case COMPRESS_BZIP: - if(!extension_loaded('bz2')) $this->_inierror = -2; + if(!extension_loaded('bz2')) $this->_initerror = -2; $this->_comptype = COMPRESS_BZIP; break; @@ -140,7 +140,7 @@ class TarLib { $this->_comptype = COMPRESS_NONE; } - if($this->_init_error < 0) $this->_comptype = COMPRESS_NONE; + if($this->_initerror < 0) $this->_comptype = COMPRESS_NONE; if($flag) $this->_nomf.= '.'.$this->getCompression(1); $this->_result = true; -- cgit v1.2.3 From 0b17fdc6719c24850fa7095bc33f292f97f4ec02 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 29 Jan 2010 13:57:24 +0100 Subject: more code cleanup according to coding standard --- inc/JSON.php | 245 ++++--- inc/JpegMeta.php | 1233 +++++++++++++++------------------ inc/ZipLib.class.php | 949 +++++++++++++------------- inc/blowfish.php | 55 +- inc/feedcreator.class.php | 114 ++-- inc/template.php | 1667 ++++++++++++++++++++++----------------------- 6 files changed, 2090 insertions(+), 2173 deletions(-) (limited to 'inc') diff --git a/inc/JSON.php b/inc/JSON.php index ea66c9c32..7ec400092 100644 --- a/inc/JSON.php +++ b/inc/JSON.php @@ -112,38 +112,35 @@ define('JSON_STRICT_TYPE', 11); * @since * @deprecated */ -class JSON -{ - /** - * constructs a new JSON instance - * - * @param int $use object behavior: when encoding or decoding, - * be loose or strict about object/array usage - * - * possible values: - * JSON_STRICT_TYPE - strict typing, default - * "{...}" syntax creates objects in decode. - * JSON_LOOSE_TYPE - loose typing - * "{...}" syntax creates associative arrays in decode. - */ - function JSON($use=JSON_STRICT_TYPE) - { +class JSON { + /** + * constructs a new JSON instance + * + * @param int $use object behavior: when encoding or decoding, + * be loose or strict about object/array usage + * + * possible values: + * JSON_STRICT_TYPE - strict typing, default + * "{...}" syntax creates objects in decode. + * JSON_LOOSE_TYPE - loose typing + * "{...}" syntax creates associative arrays in decode. + */ + function JSON($use=JSON_STRICT_TYPE) { $this->use = $use; } - /** - * encodes an arbitrary variable into JSON format - * - * @param mixed $var any number, boolean, string, array, or object to be encoded. - * see argument 1 to JSON() above for array-parsing behavior. - * if var is a strng, note that encode() always expects it - * to be in ASCII or UTF-8 format! - * - * @return string JSON string representation of input var - * @access public - */ - function encode($var) - { + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return string JSON string representation of input var + * @access public + */ + function encode($var) { switch (gettype($var)) { case 'boolean': return $var ? 'true' : 'false'; @@ -163,20 +160,30 @@ class JSON $ascii = ''; $strlen_var = strlen($var); - /* - * Iterate over every character in the string, - * escaping with a slash or encoding to UTF-8 where necessary - */ + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ for ($c = 0; $c < $strlen_var; ++$c) { $ord_var_c = ord($var{$c}); switch ($ord_var_c) { - case 0x08: $ascii .= '\b'; break; - case 0x09: $ascii .= '\t'; break; - case 0x0A: $ascii .= '\n'; break; - case 0x0C: $ascii .= '\f'; break; - case 0x0D: $ascii .= '\r'; break; + case 0x08: + $ascii .= '\b'; + break; + case 0x09: + $ascii .= '\t'; + break; + case 0x0A: + $ascii .= '\n'; + break; + case 0x0C: + $ascii .= '\f'; + break; + case 0x0D: + $ascii .= '\r'; + break; case 0x22: case 0x2F: @@ -259,26 +266,26 @@ class JSON return '"'.$ascii.'"'; case 'array': - /* - * As per JSON spec if any array key is not an integer - * we must treat the the whole array as an object. We - * also try to catch a sparsely populated associative - * array with numeric keys here because some JS engines - * will create an array with empty indexes up to - * max_index which can cause memory issues and because - * the keys, which may be relevant, will be remapped - * otherwise. - * - * As per the ECMA and JSON specification an object may - * have any string as a property. Unfortunately due to - * a hole in the ECMA specification if the key is a - * ECMA reserved word or starts with a digit the - * parameter is only accessible using ECMAScript's - * bracket notation. - */ + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ // treat as a JSON object - if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + if (is_array($var) && count($var) && (array_keys($var) !== range(0, count($var) - 1))) { return sprintf('{%s}', join(',', array_map(array($this, 'name_value'), array_keys($var), array_values($var)))); @@ -298,38 +305,35 @@ class JSON } } - /** - * encodes an arbitrary variable into JSON format, alias for encode() - */ - function enc($var) - { + /** + * encodes an arbitrary variable into JSON format, alias for encode() + */ + function enc($var) { return $this->encode($var); } - /** function name_value - * array-walking function for use in generating JSON-formatted name-value pairs - * - * @param string $name name of key to use - * @param mixed $value reference to an array element to be encoded - * - * @return string JSON-formatted name-value pair, like '"name":value' - * @access private - */ - function name_value($name, $value) - { + /** function name_value + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function name_value($name, $value) { return (sprintf("%s:%s", $this->encode(strval($name)), $this->encode($value))); } - /** - * reduce a string by removing leading and trailing comments and whitespace - * - * @param $str string string value to strip of comments and whitespace - * - * @return string string value stripped of comments and whitespace - * @access private - */ - function reduce_string($str) - { + /** + * reduce a string by removing leading and trailing comments and whitespace + * + * @param $str string string value to strip of comments and whitespace + * + * @return string string value stripped of comments and whitespace + * @access private + */ + function reduce_string($str) { $str = preg_replace(array( // eliminate single line comments in '// ...' form @@ -347,20 +351,19 @@ class JSON return trim($str); } - /** - * decodes a JSON string into appropriate variable - * - * @param string $str JSON-formatted string - * - * @return mixed number, boolean, string, array, or object - * corresponding to given JSON input string. - * See argument 1 to JSON() above for object-output behavior. - * Note that decode() always returns strings - * in ASCII or UTF-8 format! - * @access public - */ - function decode($str) - { + /** + * decodes a JSON string into appropriate variable + * + * @param string $str JSON-formatted string + * + * @return mixed number, boolean, string, array, or object + * corresponding to given JSON input string. + * See argument 1 to JSON() above for object-output behavior. + * Note that decode() always returns strings + * in ASCII or UTF-8 format! + * @access public + */ + function decode($str) { $str = $this->reduce_string($str); switch (strtolower($str)) { @@ -399,11 +402,26 @@ class JSON $ord_chrs_c = ord($chrs{$c}); switch ($substr_chrs_c_2) { - case '\b': $utf8 .= chr(0x08); $c+=1; break; - case '\t': $utf8 .= chr(0x09); $c+=1; break; - case '\n': $utf8 .= chr(0x0A); $c+=1; break; - case '\f': $utf8 .= chr(0x0C); $c+=1; break; - case '\r': $utf8 .= chr(0x0D); $c+=1; break; + case '\b': + $utf8 .= chr(0x08); + $c+=1; + break; + case '\t': + $utf8 .= chr(0x09); + $c+=1; + break; + case '\n': + $utf8 .= chr(0x0A); + $c+=1; + break; + case '\f': + $utf8 .= chr(0x0C); + $c+=1; + break; + case '\r': + $utf8 .= chr(0x0D); + $c+=1; + break; case '\\"': case '\\\'': @@ -430,27 +448,32 @@ class JSON } elseif(($ord_chrs_c & 0xE0) == 0xC0) { // characters U-00000080 - U-000007FF, mask 110XXXXX //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 2); $c += 1; + $utf8 .= substr($chrs, $c, 2); + $c += 1; } elseif(($ord_chrs_c & 0xF0) == 0xE0) { // characters U-00000800 - U-0000FFFF, mask 1110XXXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 3); $c += 2; + $utf8 .= substr($chrs, $c, 3); + $c += 2; } elseif(($ord_chrs_c & 0xF8) == 0xF0) { // characters U-00010000 - U-001FFFFF, mask 11110XXX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 4); $c += 3; + $utf8 .= substr($chrs, $c, 4); + $c += 3; } elseif(($ord_chrs_c & 0xFC) == 0xF8) { // characters U-00200000 - U-03FFFFFF, mask 111110XX // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 5); $c += 4; + $utf8 .= substr($chrs, $c, 5); + $c += 4; } elseif(($ord_chrs_c & 0xFE) == 0xFC) { // characters U-04000000 - U-7FFFFFFF, mask 1111110X // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 6); $c += 5; + $utf8 .= substr($chrs, $c, 6); + $c += 5; } break; @@ -612,13 +635,11 @@ class JSON } } - /** - * decodes a JSON string into appropriate variable; alias for decode() - */ - function dec($var) - { + /** + * decodes a JSON string into appropriate variable; alias for decode() + */ + function dec($var) { return $this->decode($var); } - } diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php index cb1d7d694..b06764320 100644 --- a/inc/JpegMeta.php +++ b/inc/JpegMeta.php @@ -29,8 +29,7 @@ // | Authors: Sebastian Delmont | // +----------------------------------------------------------------------+ -class JpegMeta -{ +class JpegMeta { var $_fileName; var $_fp = null; var $_type = 'unknown'; @@ -44,8 +43,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function JpegMeta($fileName) - { + function JpegMeta($fileName) { $this->_fileName = $fileName; @@ -61,8 +59,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function & getRawInfo() - { + function & getRawInfo() { $this->_parseAll(); if ($this->_markers == null) { @@ -77,8 +74,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function & getBasicInfo() - { + function & getBasicInfo() { $this->_parseAll(); $info = array(); @@ -91,16 +87,14 @@ class JpegMeta if (isset($this->_info['file']['Url'])) { $info['Url'] = $this->_info['file']['Url']; $info['NiceSize'] = "???KB"; - } - else { + } else { $info['Size'] = $this->_info['file']['Size']; $info['NiceSize'] = $this->_info['file']['NiceSize']; } if (@isset($this->_info['sof']['Format'])) { $info['Format'] = $this->_info['sof']['Format'] . " JPEG"; - } - else { + } else { $info['Format'] = $this->_info['sof']['Format'] . " JPEG"; } @@ -129,8 +123,7 @@ class JpegMeta * * @author Andreas Gohr */ - function getField($fields) - { + function getField($fields) { if(!is_array($fields)) $fields = array($fields); $info = false; foreach($fields as $field){ @@ -175,8 +168,7 @@ class JpegMeta * * @author Andreas Gohr */ - function setField($field, $value) - { + function setField($field, $value) { if(strtolower(substr($field,0,5)) == 'iptc.'){ return $this->setIPTCField(substr($field,5),$value); }elseif(strtolower(substr($field,0,5)) == 'exif.'){ @@ -192,8 +184,7 @@ class JpegMeta * * @author Andreas Gohr */ - function deleteField($field) - { + function deleteField($field) { if(strtolower(substr($field,0,5)) == 'iptc.'){ return $this->deleteIPTCField(substr($field,5)); }elseif(strtolower(substr($field,0,5)) == 'exif.'){ @@ -208,8 +199,7 @@ class JpegMeta * * @author Andreas Gohr */ - function getDateField($field) - { + function getDateField($field) { if (!isset($this->_info['dates'])) { $this->_info['dates'] = $this->getDates(); } @@ -226,8 +216,7 @@ class JpegMeta * * @author Andreas Gohr */ - function getFileField($field) - { + function getFileField($field) { if (!isset($this->_info['file'])) { $this->_parseFileInfo(); } @@ -258,8 +247,7 @@ class JpegMeta * * @author Joe Lapp */ - function getShutterSpeed() - { + function getShutterSpeed() { if (!isset($this->_info['exif'])) { $this->_parseMarkerExif(); } @@ -277,8 +265,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function getExifField($field) - { + function getExifField($field) { if (!isset($this->_info['exif'])) { $this->_parseMarkerExif(); } @@ -299,8 +286,7 @@ class JpegMeta * * @author Hakan Sandell */ - function getXmpField($field) - { + function getXmpField($field) { if (!isset($this->_info['xmp'])) { $this->_parseMarkerXmp(); } @@ -321,8 +307,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function getAdobeField($field) - { + function getAdobeField($field) { if (!isset($this->_info['adobe'])) { $this->_parseMarkerAdobe(); } @@ -343,8 +328,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function getIPTCField($field) - { + function getIPTCField($field) { if (!isset($this->_info['iptc'])) { $this->_parseMarkerAdobe(); } @@ -366,8 +350,7 @@ class JpegMeta * @author Sebastian Delmont * @author Joe Lapp */ - function setExifField($field, $value) - { + function setExifField($field, $value) { if (!isset($this->_info['exif'])) { $this->_parseMarkerExif(); } @@ -397,8 +380,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function setAdobeField($field, $value) - { + function setAdobeField($field, $value) { if (!isset($this->_info['adobe'])) { $this->_parseMarkerAdobe(); } @@ -451,8 +433,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function setIPTCField($field, $value) - { + function setIPTCField($field, $value) { if (!isset($this->_info['iptc'])) { $this->_parseMarkerAdobe(); } @@ -475,8 +456,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function deleteExifField($field) - { + function deleteExifField($field) { if (!isset($this->_info['exif'])) { $this->_parseMarkerAdobe(); } @@ -497,8 +477,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function deleteAdobeField($field) - { + function deleteAdobeField($field) { if (!isset($this->_info['adobe'])) { $this->_parseMarkerAdobe(); } @@ -519,8 +498,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function deleteIPTCField($field) - { + function deleteIPTCField($field) { if (!isset($this->_info['iptc'])) { $this->_parseMarkerAdobe(); } @@ -547,12 +525,12 @@ class JpegMeta // try various fields $cap = $this->getField(array('Iptc.Headline', - 'Iptc.Caption', - 'Xmp.dc:title', - 'Exif.UserComment', - 'Exif.TIFFUserComment', - 'Exif.TIFFImageDescription', - 'File.Name')); + 'Iptc.Caption', + 'Xmp.dc:title', + 'Exif.UserComment', + 'Exif.TIFFUserComment', + 'Exif.TIFFImageDescription', + 'File.Name')); if (empty($cap)) return false; if(!$max) return $cap; @@ -568,8 +546,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function getDates() - { + function getDates() { $this->_parseAll(); if ($this->_markers == null) { if (@isset($this->_info['file']['UnixTime'])) { @@ -704,8 +681,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function getWidth() - { + function getWidth() { if (!isset($this->_info['sof'])) { $this->_parseMarkerSOF(); } @@ -734,8 +710,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function getHeight() - { + function getHeight() { if (!isset($this->_info['sof'])) { $this->_parseMarkerSOF(); } @@ -764,8 +739,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function getDimStr() - { + function getDimStr() { if ($this->_markers == null) { return false; } @@ -781,8 +755,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function hasThumbnail($which = 'any') - { + function hasThumbnail($which = 'any') { if (($which == 'any') || ($which == 'exif')) { if (!isset($this->_info['exif'])) { $this->_parseMarkerExif(); @@ -823,8 +796,7 @@ class JpegMeta * * @author Sebastian Delmont */ - function sendThumbnail($which = 'any') - { + function sendThumbnail($which = 'any') { $data = null; if (($which == 'any') || ($which == 'exif')) { @@ -892,8 +864,7 @@ class JpegMeta /*************************************************************/ /*************************************************************/ - function _dispose() - { + function _dispose() { $this->_fileName = $fileName; $this->_fp = null; @@ -904,8 +875,7 @@ class JpegMeta } /*************************************************************/ - function _readJPEG() - { + function _readJPEG() { unset($this->_markers); //unset($this->_info); $this->_markers = array(); @@ -919,8 +889,7 @@ class JpegMeta else { $this->_type = 'url'; } - } - else { + } else { $this->_fp = null; return false; // ERROR: Can't open file } @@ -942,14 +911,14 @@ class JpegMeta while (!$done) { $capture = false; - // First, skip any non 0xFF bytes + // First, skip any non 0xFF bytes $discarded = 0; $c = ord(fgetc($this->_fp)); while (!feof($this->_fp) && ($c != 0xFF)) { $discarded++; $c = ord(fgetc($this->_fp)); } - // Then skip all 0xFF until the marker byte + // Then skip all 0xFF until the marker byte do { $marker = ord(fgetc($this->_fp)); } while (!feof($this->_fp) && ($marker == 0xFF)); @@ -971,23 +940,23 @@ class JpegMeta $length = $length - 2; // The length we got counts itself switch ($marker) { - case 0xC0: // SOF0 - case 0xC1: // SOF1 - case 0xC2: // SOF2 - case 0xC9: // SOF9 - case 0xE0: // APP0: JFIF data - case 0xE1: // APP1: EXIF or XMP data - case 0xED: // APP13: IPTC / Photoshop data - $capture = true; - break; - case 0xDA: // SOS: Start of scan... the image itself and the last block on the file - $capture = false; - $length = -1; // This field has no length... it includes all data until EOF - $done = true; - break; - default: - $capture = true;//false; - break; + case 0xC0: // SOF0 + case 0xC1: // SOF1 + case 0xC2: // SOF2 + case 0xC9: // SOF9 + case 0xE0: // APP0: JFIF data + case 0xE1: // APP1: EXIF or XMP data + case 0xED: // APP13: IPTC / Photoshop data + $capture = true; + break; + case 0xDA: // SOS: Start of scan... the image itself and the last block on the file + $capture = false; + $length = -1; // This field has no length... it includes all data until EOF + $done = true; + break; + default: + $capture = true;//false; + break; } $this->_markers[$count] = array(); @@ -1002,7 +971,7 @@ class JpegMeta } elseif (!$done) { $result = @fseek($this->_fp, $length, SEEK_CUR); - // fseek doesn't seem to like HTTP 'files', but fgetc has no problem + // fseek doesn't seem to like HTTP 'files', but fgetc has no problem if (!($result === 0)) { for ($i = 0; $i < $length; $i++) { fgetc($this->_fp); @@ -1021,8 +990,7 @@ class JpegMeta } /*************************************************************/ - function _parseAll() - { + function _parseAll() { if (!isset($this->_info['file'])) { $this->_parseFileInfo(); } @@ -1052,8 +1020,7 @@ class JpegMeta } /*************************************************************/ - function _writeJPEG($outputName) - { + function _writeJPEG($outputName) { $this->_parseAll(); $wroteEXIF = false; @@ -1067,16 +1034,13 @@ class JpegMeta else { $this->_type = 'url'; } - } - else { + } else { $this->_fp = null; return false; // ERROR: Can't open file } $this->_fpout = fopen($outputName, 'wb'); - if ($this->_fpout) { - } - else { + if (!$this->_fpout) { $this->_fpout = null; fclose($this->_fp); $this->_fp = null; @@ -1100,14 +1064,14 @@ class JpegMeta $ok = true; while (!$done) { - // First, skip any non 0xFF bytes + // First, skip any non 0xFF bytes $discarded = 0; $c = ord(fgetc($this->_fp)); while (!feof($this->_fp) && ($c != 0xFF)) { $discarded++; $c = ord(fgetc($this->_fp)); } - // Then skip all 0xFF until the marker byte + // Then skip all 0xFF until the marker byte do { $marker = ord(fgetc($this->_fp)); } while (!feof($this->_fp) && ($marker == 0xFF)); @@ -1156,7 +1120,7 @@ class JpegMeta if (!$wroteAdobe && (($marker < 0xE0) || ($marker > 0xEF))) { if ((isset($this->_info['adobe']) && is_array($this->_info['adobe'])) - || (isset($this->_info['iptc']) && is_array($this->_info['iptc']))) { + || (isset($this->_info['iptc']) && is_array($this->_info['iptc']))) { $adobe =& $this->_createMarkerAdobe(); $this->_writeJPEGMarker(0xED, strlen($adobe), $adobe, 0); unset($adobe); @@ -1188,8 +1152,7 @@ class JpegMeta } /*************************************************************/ - function _writeJPEGMarker($marker, $length, &$data, $origLength) - { + function _writeJPEGMarker($marker, $length, &$data, $origLength) { if ($length <= 0) { return false; } @@ -1212,15 +1175,13 @@ class JpegMeta } } } - } - else { + } else { if ($marker == 0xDA) { // Copy until EOF while (!feof($this->_fp)) { $data = fread($this->_fp, 1024 * 16); fputs($this->_fpout, $data, strlen($data)); } - } - else { // Copy only $length bytes + } else { // Copy only $length bytes $data = @fread($this->_fp, $length); fputs($this->_fpout, $data, $length); } @@ -1235,8 +1196,7 @@ class JpegMeta * @author Sebastian Delmont * @author Andreas Gohr */ - function _parseFileInfo() - { + function _parseFileInfo() { if (file_exists($this->_fileName)) { $this->_info['file'] = array(); $this->_info['file']['Name'] = basename($this->_fileName); @@ -1244,14 +1204,11 @@ class JpegMeta $this->_info['file']['Size'] = filesize($this->_fileName); if ($this->_info['file']['Size'] < 1024) { $this->_info['file']['NiceSize'] = $this->_info['file']['Size'] . 'B'; - } - elseif ($this->_info['file']['Size'] < (1024 * 1024)) { + } elseif ($this->_info['file']['Size'] < (1024 * 1024)) { $this->_info['file']['NiceSize'] = round($this->_info['file']['Size'] / 1024) . 'KB'; - } - elseif ($this->_info['file']['Size'] < (1024 * 1024 * 1024)) { + } elseif ($this->_info['file']['Size'] < (1024 * 1024 * 1024)) { $this->_info['file']['NiceSize'] = round($this->_info['file']['Size'] / (1024*1024)) . 'MB'; - } - else { + } else { $this->_info['file']['NiceSize'] = $this->_info['file']['Size'] . 'B'; } $this->_info['file']['UnixTime'] = filemtime($this->_fileName); @@ -1331,8 +1288,7 @@ class JpegMeta default: $this->_info['file']['Mime'] = 'image/unknown'; } - } - else { + } else { $this->_info['file'] = array(); $this->_info['file']['Name'] = basename($this->_fileName); $this->_info['file']['Url'] = $this->_fileName; @@ -1342,8 +1298,7 @@ class JpegMeta } /*************************************************************/ - function _parseMarkerJFIF() - { + function _parseMarkerJFIF() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -1372,7 +1327,6 @@ class JpegMeta $pos = 0; $this->_info['jfif'] = array(); - $vmaj = $this->_getByte($data, 5); $vmin = $this->_getByte($data, 6); @@ -1380,18 +1334,18 @@ class JpegMeta $units = $this->_getByte($data, 7); switch ($units) { - case 0: - $this->_info['jfif']['Units'] = 'pixels'; - break; - case 1: - $this->_info['jfif']['Units'] = 'dpi'; - break; - case 2: - $this->_info['jfif']['Units'] = 'dpcm'; - break; - default: - $this->_info['jfif']['Units'] = 'unknown'; - break; + case 0: + $this->_info['jfif']['Units'] = 'pixels'; + break; + case 1: + $this->_info['jfif']['Units'] = 'dpi'; + break; + case 2: + $this->_info['jfif']['Units'] = 'dpcm'; + break; + default: + $this->_info['jfif']['Units'] = 'unknown'; + break; } $xdens = $this->_getShort($data, 8); @@ -1410,8 +1364,7 @@ class JpegMeta } /*************************************************************/ - function _parseMarkerSOF() - { + function _parseMarkerSOF() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -1424,13 +1377,13 @@ class JpegMeta $count = count($this->_markers); for ($i = 0; $i < $count; $i++) { switch ($this->_markers[$i]['marker']) { - case 0xC0: // SOF0 - case 0xC1: // SOF1 - case 0xC2: // SOF2 - case 0xC9: // SOF9 - $data =& $this->_markers[$i]['data']; - $marker = $this->_markers[$i]['marker']; - break; + case 0xC0: // SOF0 + case 0xC1: // SOF1 + case 0xC2: // SOF2 + case 0xC9: // SOF9 + $data =& $this->_markers[$i]['data']; + $marker = $this->_markers[$i]['marker']; + break; } } @@ -1442,32 +1395,29 @@ class JpegMeta $pos = 0; $this->_info['sof'] = array(); - switch ($marker) { - case 0xC0: // SOF0 - $format = 'Baseline'; - break; - case 0xC1: // SOF1 - $format = 'Progessive'; - break; - case 0xC2: // SOF2 - $format = 'Non-baseline'; - break; - case 0xC9: // SOF9 - $format = 'Arithmetic'; - break; - default: - return false; - break; + case 0xC0: // SOF0 + $format = 'Baseline'; + break; + case 0xC1: // SOF1 + $format = 'Progessive'; + break; + case 0xC2: // SOF2 + $format = 'Non-baseline'; + break; + case 0xC9: // SOF9 + $format = 'Arithmetic'; + break; + default: + return false; + break; } - - $this->_info['sof']['Format'] = $format; - + $this->_info['sof']['Format'] = $format; $this->_info['sof']['SamplePrecision'] = $this->_getByte($data, $pos + 0); - $this->_info['sof']['ImageHeight'] = $this->_getShort($data, $pos + 1); - $this->_info['sof']['ImageWidth'] = $this->_getShort($data, $pos + 3); - $this->_info['sof']['ColorChannels'] = $this->_getByte($data, $pos + 5); + $this->_info['sof']['ImageHeight'] = $this->_getShort($data, $pos + 1); + $this->_info['sof']['ImageWidth'] = $this->_getShort($data, $pos + 3); + $this->_info['sof']['ColorChannels'] = $this->_getByte($data, $pos + 5); return true; } @@ -1477,8 +1427,7 @@ class JpegMeta * * @author Hakan Sandell */ - function _parseMarkerXmp() - { + function _parseMarkerXmp() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -1513,10 +1462,10 @@ class JpegMeta $this->_info['xmp'] = array(); $count = count($values); for ($i = 0; $i < $count; $i++) { - if ($values[$i][tag] == 'rdf:Description' && $values[$i][type] == 'open') { + if ($values[$i]['tag'] == 'rdf:Description' && $values[$i]['type'] == 'open') { - while ($values[++$i][tag] != 'rdf:Description') { - $this->_parseXmpNode($values, $i, $this->_info['xmp'][$values[$i][tag]]); + while ($values[++$i]['tag'] != 'rdf:Description') { + $this->_parseXmpNode($values, $i, $this->_info['xmp'][$values[$i]['tag']]); } } } @@ -1528,43 +1477,41 @@ class JpegMeta * * @author Hakan Sandell */ - function _parseXmpNode($values, &$i, &$meta) - { - if ($values[$i][type] == 'complete') { + function _parseXmpNode($values, &$i, &$meta) { + if ($values[$i]['type'] == 'complete') { // Simple Type property - $meta = $values[$i][value]; + $meta = $values[$i]['value']; return; } $i++; - if ($values[$i][tag] == 'rdf:Bag' || $values[$i][tag] == 'rdf:Seq') { + if ($values[$i]['tag'] == 'rdf:Bag' || $values[$i]['tag'] == 'rdf:Seq') { // Array property $meta = array(); - while ($values[++$i][tag] == 'rdf:li') { + while ($values[++$i]['tag'] == 'rdf:li') { $this->_parseXmpNode($values, $i, $meta[]); } $i++; // skip closing tag - } elseif ($values[$i][tag] == 'rdf:Alt') { + } elseif ($values[$i]['tag'] == 'rdf:Alt') { // Language Alternative property, only the first (default) value is used $i++; $this->_parseXmpNode($values, $i, $meta); - while ($values[++$i][tag] != 'rdf:Alt'); + while ($values[++$i]['tag'] != 'rdf:Alt'); $i++; // skip closing tag } else { // Structure property $meta = array(); - $startTag = $values[$i-1][tag]; + $startTag = $values[$i-1]['tag']; do { - $this->_parseXmpNode($values, $i, $meta[$values[$i][tag]]); - } while ($values[++$i][tag] != $startTag); + $this->_parseXmpNode($values, $i, $meta[$values[$i]['tag']]); + } while ($values[++$i]['tag'] != $startTag); } } /*************************************************************/ - function _parseMarkerExif() - { + function _parseMarkerExif() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -1598,11 +1545,9 @@ class JpegMeta if ($byteAlign == 0x4949) { // "II" $isBigEndian = false; - } - elseif ($byteAlign == 0x4D4D) { // "MM" + } elseif ($byteAlign == 0x4D4D) { // "MM" $isBigEndian = true; - } - else { + } else { return false; // Unexpected data } @@ -1612,8 +1557,7 @@ class JpegMeta if ($isBigEndian) { $this->_info['exif']['ByteAlign'] = "Big Endian"; - } - else { + } else { $this->_info['exif']['ByteAlign'] = "Little Endian"; } @@ -1629,8 +1573,7 @@ class JpegMeta } /*************************************************************/ - function _readIFD($data, $base, $offset, $isBigEndian, $mode) - { + function _readIFD($data, $base, $offset, $isBigEndian, $mode) { $EXIFTags = $this->_exifTagNames($mode); $numEntries = $this->_getShort($data, $base + $offset, $isBigEndian); @@ -1658,161 +1601,146 @@ class JpegMeta if ($dataLength > 4) { $dataOffset = $this->_getLong($data, $base + $offset, $isBigEndian); $rawValue = $this->_getFixedString($data, $base + $dataOffset, $dataLength); - } - else { + } else { $rawValue = $this->_getFixedString($data, $base + $offset, $dataLength); } $offset += 4; switch ($type) { - case 1: // UBYTE - if ($count == 1) { - $value = $this->_getByte($rawValue, 0); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getByte($rawValue, $j); - } - break; - case 2: // ASCII - $value = $rawValue; - break; - case 3: // USHORT - if ($count == 1) { - $value = $this->_getShort($rawValue, 0, $isBigEndian); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian); - } - break; - case 4: // ULONG - if ($count == 1) { - $value = $this->_getLong($rawValue, 0, $isBigEndian); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian); - } - break; - case 5: // URATIONAL - if ($count == 1) { - $a = $this->_getLong($rawValue, 0, $isBigEndian); - $b = $this->_getLong($rawValue, 4, $isBigEndian); - $value = array(); - $value['val'] = 0; - $value['num'] = $a; - $value['den'] = $b; - if (($a != 0) && ($b != 0)) { - $value['val'] = $a / $b; + case 1: // UBYTE + if ($count == 1) { + $value = $this->_getByte($rawValue, 0); + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getByte($rawValue, $j); } - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) { - $a = $this->_getLong($rawValue, $j * 8, $isBigEndian); - $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian); + break; + case 2: // ASCII + $value = $rawValue; + break; + case 3: // USHORT + if ($count == 1) { + $value = $this->_getShort($rawValue, 0, $isBigEndian); + } else { $value = array(); - $value[$j]['val'] = 0; - $value[$j]['num'] = $a; - $value[$j]['den'] = $b; - if (($a != 0) && ($b != 0)) - $value[$j]['val'] = $a / $b; + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian); } - } - break; - case 6: // SBYTE - if ($count == 1) { - $value = $this->_getByte($rawValue, 0); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getByte($rawValue, $j); - } - break; - case 7: // UNDEFINED - $value = $rawValue; - break; - case 8: // SSHORT - if ($count == 1) { - $value = $this->_getShort($rawValue, 0, $isBigEndian); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian); - } - break; - case 9: // SLONG - if ($count == 1) { - $value = $this->_getLong($rawValue, 0, $isBigEndian); - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) - $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian); - } - break; - case 10: // SRATIONAL - if ($count == 1) { - $a = $this->_getLong($rawValue, 0, $isBigEndian); - $b = $this->_getLong($rawValue, 4, $isBigEndian); - $value = array(); - $value['val'] = 0; - $value['num'] = $a; - $value['den'] = $b; - if (($a != 0) && ($b != 0)) - $value['val'] = $a / $b; - } - else { - $value = array(); - for ($j = 0; $j < $count; $j++) { - $a = $this->_getLong($rawValue, $j * 8, $isBigEndian); - $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian); + break; + case 4: // ULONG + if ($count == 1) { + $value = $this->_getLong($rawValue, 0, $isBigEndian); + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian); + } + break; + case 5: // URATIONAL + if ($count == 1) { + $a = $this->_getLong($rawValue, 0, $isBigEndian); + $b = $this->_getLong($rawValue, 4, $isBigEndian); + $value = array(); + $value['val'] = 0; + $value['num'] = $a; + $value['den'] = $b; + if (($a != 0) && ($b != 0)) { + $value['val'] = $a / $b; + } + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) { + $a = $this->_getLong($rawValue, $j * 8, $isBigEndian); + $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian); + $value = array(); + $value[$j]['val'] = 0; + $value[$j]['num'] = $a; + $value[$j]['den'] = $b; + if (($a != 0) && ($b != 0)) + $value[$j]['val'] = $a / $b; + } + } + break; + case 6: // SBYTE + if ($count == 1) { + $value = $this->_getByte($rawValue, 0); + } else { $value = array(); - $value[$j]['val'] = 0; - $value[$j]['num'] = $a; - $value[$j]['den'] = $b; + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getByte($rawValue, $j); + } + break; + case 7: // UNDEFINED + $value = $rawValue; + break; + case 8: // SSHORT + if ($count == 1) { + $value = $this->_getShort($rawValue, 0, $isBigEndian); + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getShort($rawValue, $j * 2, $isBigEndian); + } + break; + case 9: // SLONG + if ($count == 1) { + $value = $this->_getLong($rawValue, 0, $isBigEndian); + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) + $value[$j] = $this->_getLong($rawValue, $j * 4, $isBigEndian); + } + break; + case 10: // SRATIONAL + if ($count == 1) { + $a = $this->_getLong($rawValue, 0, $isBigEndian); + $b = $this->_getLong($rawValue, 4, $isBigEndian); + $value = array(); + $value['val'] = 0; + $value['num'] = $a; + $value['den'] = $b; if (($a != 0) && ($b != 0)) - $value[$j]['val'] = $a / $b; + $value['val'] = $a / $b; + } else { + $value = array(); + for ($j = 0; $j < $count; $j++) { + $a = $this->_getLong($rawValue, $j * 8, $isBigEndian); + $b = $this->_getLong($rawValue, ($j * 8) + 4, $isBigEndian); + $value = array(); + $value[$j]['val'] = 0; + $value[$j]['num'] = $a; + $value[$j]['den'] = $b; + if (($a != 0) && ($b != 0)) + $value[$j]['val'] = $a / $b; + } } - } - break; - case 11: // FLOAT - $value = $rawValue; - break; + break; + case 11: // FLOAT + $value = $rawValue; + break; - case 12: // DFLOAT - $value = $rawValue; - break; - default: - return false; // Unexpected Type + case 12: // DFLOAT + $value = $rawValue; + break; + default: + return false; // Unexpected Type } $tagName = ''; if (($mode == 'ifd0') && ($tag == 0x8769)) { // ExifIFDOffset $this->_readIFD($data, $base, $value, $isBigEndian, 'exif'); - } - elseif (($mode == 'ifd0') && ($tag == 0x8825)) { // GPSIFDOffset + } elseif (($mode == 'ifd0') && ($tag == 0x8825)) { // GPSIFDOffset $this->_readIFD($data, $base, $value, $isBigEndian, 'gps'); - } - elseif (($mode == 'ifd1') && ($tag == 0x0111)) { // TIFFStripOffsets + } elseif (($mode == 'ifd1') && ($tag == 0x0111)) { // TIFFStripOffsets $exifTIFFOffset = $value; - } - elseif (($mode == 'ifd1') && ($tag == 0x0117)) { // TIFFStripByteCounts + } elseif (($mode == 'ifd1') && ($tag == 0x0117)) { // TIFFStripByteCounts $exifTIFFLength = $value; - } - elseif (($mode == 'ifd1') && ($tag == 0x0201)) { // TIFFJFIFOffset + } elseif (($mode == 'ifd1') && ($tag == 0x0201)) { // TIFFJFIFOffset $exifThumbnailOffset = $value; - } - elseif (($mode == 'ifd1') && ($tag == 0x0202)) { // TIFFJFIFLength + } elseif (($mode == 'ifd1') && ($tag == 0x0202)) { // TIFFJFIFLength $exifThumbnailLength = $value; - } - elseif (($mode == 'exif') && ($tag == 0xA005)) { // InteropIFDOffset + } elseif (($mode == 'exif') && ($tag == 0xA005)) { // InteropIFDOffset $this->_readIFD($data, $base, $value, $isBigEndian, 'interop'); } // elseif (($mode == 'exif') && ($tag == 0x927C)) { // MakerNote @@ -1828,18 +1756,19 @@ class JpegMeta } $this->_info['exif'][$tagName][count($this->_info['exif'][$tagName])] = $value; - } - else { + } else { $this->_info['exif'][$tagName] = $value; } } - else { -#echo sprintf("

Unknown tag %02x (t: %d l: %d) %s in %s

", $tag, $type, $count, $mode, $this->_fileName); + /* + else { + echo sprintf("

Unknown tag %02x (t: %d l: %d) %s in %s

", $tag, $type, $count, $mode, $this->_fileName); // Unknown Tags will be ignored!!! // That's because the tag might be a pointer (like the Exif tag) // and saving it without saving the data it points to might // create an invalid file. } + */ } } @@ -1856,8 +1785,7 @@ class JpegMeta } /*************************************************************/ - function & _createMarkerExif() - { + function & _createMarkerExif() { $data = null; $count = count($this->_markers); for ($i = 0; $i < $count; $i++) { @@ -1882,8 +1810,7 @@ class JpegMeta $isBigEndian = true; $aux = "MM"; $pos = $this->_putString($data, $pos, $aux); - } - else { + } else { $isBigEndian = false; $aux = "II"; $pos = $this->_putString($data, $pos, $aux); @@ -1901,8 +1828,7 @@ class JpegMeta } /*************************************************************/ - function _writeIFD(&$data, $pos, $offsetBase, &$entries, $isBigEndian, $hasNext) - { + function _writeIFD(&$data, $pos, $offsetBase, &$entries, $isBigEndian, $hasNext) { $tiffData = null; $tiffDataOffsetPos = -1; @@ -1922,24 +1848,21 @@ class JpegMeta $pos = $this->_putLong($data, $pos, $dataPos - $offsetBase, $isBigEndian); $dataPos = $this->_writeIFD($data, $dataPos, $offsetBase, $entries[$i]['value'], $isBigEndian, false); - } - elseif ($type == -98) { // TIFF Data + } elseif ($type == -98) { // TIFF Data $pos = $this->_putShort($data, $pos, $tag, $isBigEndian); $pos = $this->_putShort($data, $pos, 0x04, $isBigEndian); // LONG $pos = $this->_putLong($data, $pos, 0x01, $isBigEndian); // Count = 1 $tiffDataOffsetPos = $pos; $pos = $this->_putLong($data, $pos, 0x00, $isBigEndian); // For Now $tiffData =& $entries[$i]['value'] ; - } - else { // Regular Entry + } else { // Regular Entry $pos = $this->_putShort($data, $pos, $tag, $isBigEndian); $pos = $this->_putShort($data, $pos, $type, $isBigEndian); $pos = $this->_putLong($data, $pos, $entries[$i]['count'], $isBigEndian); if (strlen($entries[$i]['value']) > 4) { $pos = $this->_putLong($data, $pos, $dataPos - $offsetBase, $isBigEndian); $dataPos = $this->_putString($data, $dataPos, $entries[$i]['value']); - } - else { + } else { $val = str_pad($entries[$i]['value'], 4, "\0"); $pos = $this->_putString($data, $pos, $val); } @@ -1953,8 +1876,7 @@ class JpegMeta if ($hasNext) { $pos = $this->_putLong($data, $pos, $dataPos - $offsetBase, $isBigEndian); - } - else { + } else { $pos = $this->_putLong($data, $pos, 0, $isBigEndian); } @@ -1962,8 +1884,7 @@ class JpegMeta } /*************************************************************/ - function & _getIFDEntries($isBigEndian, $mode) - { + function & _getIFDEntries($isBigEndian, $mode) { $EXIFNames = $this->_exifTagNames($mode); $EXIFTags = $this->_exifNameTags($mode); $EXIFTypeInfo = $this->_exifTagTypes($mode); @@ -1985,60 +1906,47 @@ class JpegMeta else { $value = null; } - } - elseif (($mode == 'ifd0') && ($tag == 0x8825)) { // GPSIFDOffset + } elseif (($mode == 'ifd0') && ($tag == 0x8825)) { // GPSIFDOffset if (isset($this->_info['exif']['GPSVersionID'])) { $value =& $this->_getIFDEntries($isBigEndian, "gps"); $type = -99; - } - else { + } else { $value = null; } - } - elseif (($mode == 'ifd1') && ($tag == 0x0111)) { // TIFFStripOffsets + } elseif (($mode == 'ifd1') && ($tag == 0x0111)) { // TIFFStripOffsets if (isset($this->_info['exif']['TIFFStrips'])) { $value =& $this->_info['exif']['TIFFStrips']; $type = -98; - } - else { + } else { $value = null; } - } - elseif (($mode == 'ifd1') && ($tag == 0x0117)) { // TIFFStripByteCounts + } elseif (($mode == 'ifd1') && ($tag == 0x0117)) { // TIFFStripByteCounts if (isset($this->_info['exif']['TIFFStrips'])) { $value = strlen($this->_info['exif']['TIFFStrips']); - } - else { + } else { $value = null; } - } - elseif (($mode == 'ifd1') && ($tag == 0x0201)) { // TIFFJFIFOffset + } elseif (($mode == 'ifd1') && ($tag == 0x0201)) { // TIFFJFIFOffset if (isset($this->_info['exif']['JFIFThumbnail'])) { $value =& $this->_info['exif']['JFIFThumbnail']; $type = -98; - } - else { + } else { $value = null; } - } - elseif (($mode == 'ifd1') && ($tag == 0x0202)) { // TIFFJFIFLength + } elseif (($mode == 'ifd1') && ($tag == 0x0202)) { // TIFFJFIFLength if (isset($this->_info['exif']['JFIFThumbnail'])) { $value = strlen($this->_info['exif']['JFIFThumbnail']); - } - else { + } else { $value = null; } - } - elseif (($mode == 'exif') && ($tag == 0xA005)) { // InteropIFDOffset + } elseif (($mode == 'exif') && ($tag == 0xA005)) { // InteropIFDOffset if (isset($this->_info['exif']['InteroperabilityIndex'])) { $value =& $this->_getIFDEntries($isBigEndian, "interop"); $type = -99; - } - else { + } else { $value = null; } - } - elseif (isset($this->_info['exif'][$name])) { + } elseif (isset($this->_info['exif'][$name])) { $origValue =& $this->_info['exif'][$name]; // This makes it easier to process variable size elements @@ -2055,235 +1963,235 @@ class JpegMeta $value = " "; switch ($type) { - case 1: // UBYTE - if ($count == 0) { - $count = $origCount; - } + case 1: // UBYTE + if ($count == 0) { + $count = $origCount; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { + $j = 0; + while (($j < $count) && ($j < $origCount)) { - $this->_putByte($value, $j, $origValue[$j]); - $j++; - } + $this->_putByte($value, $j, $origValue[$j]); + $j++; + } - while ($j < $count) { - $this->_putByte($value, $j, 0); - $j++; - } - break; - case 2: // ASCII - $v = strval($origValue[0]); - if (($count != 0) && (strlen($v) > $count)) { - $v = substr($v, 0, $count); - } - elseif (($count > 0) && (strlen($v) < $count)) { - $v = str_pad($v, $count, "\0"); - } + while ($j < $count) { + $this->_putByte($value, $j, 0); + $j++; + } + break; + case 2: // ASCII + $v = strval($origValue[0]); + if (($count != 0) && (strlen($v) > $count)) { + $v = substr($v, 0, $count); + } + elseif (($count > 0) && (strlen($v) < $count)) { + $v = str_pad($v, $count, "\0"); + } - $count = strlen($v); + $count = strlen($v); - $this->_putString($value, 0, $v); - break; - case 3: // USHORT - if ($count == 0) { - $count = $origCount; - } - - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian); - $j++; - } + $this->_putString($value, 0, $v); + break; + case 3: // USHORT + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putShort($value, $j * 2, 0, $isBigEndian); - $j++; - } - break; - case 4: // ULONG - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian); - $j++; - } + while ($j < $count) { + $this->_putShort($value, $j * 2, 0, $isBigEndian); + $j++; + } + break; + case 4: // ULONG + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putLong($value, $j * 4, 0, $isBigEndian); - $j++; - } - break; - case 5: // URATIONAL - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $v = $origValue[$j]; - if (is_array($v)) { - $a = $v['num']; - $b = $v['den']; + while ($j < $count) { + $this->_putLong($value, $j * 4, 0, $isBigEndian); + $j++; } - else { - $a = 0; - $b = 0; - // TODO: Allow other types and convert them + break; + case 5: // URATIONAL + if ($count == 0) { + $count = $origCount; } - $this->_putLong($value, $j * 8, $a, $isBigEndian); - $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian); - $j++; - } - while ($j < $count) { - $this->_putLong($value, $j * 8, 0, $isBigEndian); - $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian); - $j++; - } - break; - case 6: // SBYTE - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $v = $origValue[$j]; + if (is_array($v)) { + $a = $v['num']; + $b = $v['den']; + } + else { + $a = 0; + $b = 0; + // TODO: Allow other types and convert them + } + $this->_putLong($value, $j * 8, $a, $isBigEndian); + $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putByte($value, $j, $origValue[$j]); - $j++; - } + while ($j < $count) { + $this->_putLong($value, $j * 8, 0, $isBigEndian); + $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian); + $j++; + } + break; + case 6: // SBYTE + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putByte($value, $j, 0); - $j++; - } - break; - case 7: // UNDEFINED - $v = strval($origValue[0]); - if (($count != 0) && (strlen($v) > $count)) { - $v = substr($v, 0, $count); - } - elseif (($count > 0) && (strlen($v) < $count)) { - $v = str_pad($v, $count, "\0"); - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putByte($value, $j, $origValue[$j]); + $j++; + } - $count = strlen($v); + while ($j < $count) { + $this->_putByte($value, $j, 0); + $j++; + } + break; + case 7: // UNDEFINED + $v = strval($origValue[0]); + if (($count != 0) && (strlen($v) > $count)) { + $v = substr($v, 0, $count); + } + elseif (($count > 0) && (strlen($v) < $count)) { + $v = str_pad($v, $count, "\0"); + } - $this->_putString($value, 0, $v); - break; - case 8: // SSHORT - if ($count == 0) { - $count = $origCount; - } + $count = strlen($v); - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian); - $j++; - } + $this->_putString($value, 0, $v); + break; + case 8: // SSHORT + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putShort($value, $j * 2, 0, $isBigEndian); - $j++; - } - break; - case 9: // SLONG - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putShort($value, $j * 2, $origValue[$j], $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian); - $j++; - } + while ($j < $count) { + $this->_putShort($value, $j * 2, 0, $isBigEndian); + $j++; + } + break; + case 9: // SLONG + if ($count == 0) { + $count = $origCount; + } - while ($j < $count) { - $this->_putLong($value, $j * 4, 0, $isBigEndian); - $j++; - } - break; - case 10: // SRATIONAL - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $this->_putLong($value, $j * 4, $origValue[$j], $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $v = $origValue[$j]; - if (is_array($v)) { - $a = $v['num']; - $b = $v['den']; + while ($j < $count) { + $this->_putLong($value, $j * 4, 0, $isBigEndian); + $j++; } - else { - $a = 0; - $b = 0; - // TODO: Allow other types and convert them + break; + case 10: // SRATIONAL + if ($count == 0) { + $count = $origCount; } - $this->_putLong($value, $j * 8, $a, $isBigEndian); - $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian); - $j++; - } - - while ($j < $count) { - $this->_putLong($value, $j * 8, 0, $isBigEndian); - $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian); - $j++; - } - break; - case 11: // FLOAT - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $v = $origValue[$j]; + if (is_array($v)) { + $a = $v['num']; + $b = $v['den']; + } + else { + $a = 0; + $b = 0; + // TODO: Allow other types and convert them + } + + $this->_putLong($value, $j * 8, $a, $isBigEndian); + $this->_putLong($value, ($j * 8) + 4, $b, $isBigEndian); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $v = strval($origValue[$j]); - if (strlen($v) > 4) { - $v = substr($v, 0, 4); + while ($j < $count) { + $this->_putLong($value, $j * 8, 0, $isBigEndian); + $this->_putLong($value, ($j * 8) + 4, 0, $isBigEndian); + $j++; } - elseif (strlen($v) < 4) { - $v = str_pad($v, 4, "\0"); + break; + case 11: // FLOAT + if ($count == 0) { + $count = $origCount; } - $this->_putString($value, $j * 4, $v); - $j++; - } - while ($j < $count) { - $this->_putString($value, $j * 4, "\0\0\0\0"); - $j++; - } - break; - case 12: // DFLOAT - if ($count == 0) { - $count = $origCount; - } + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $v = strval($origValue[$j]); + if (strlen($v) > 4) { + $v = substr($v, 0, 4); + } + elseif (strlen($v) < 4) { + $v = str_pad($v, 4, "\0"); + } + $this->_putString($value, $j * 4, $v); + $j++; + } - $j = 0; - while (($j < $count) && ($j < $origCount)) { - $v = strval($origValue[$j]); - if (strlen($v) > 8) { - $v = substr($v, 0, 8); + while ($j < $count) { + $this->_putString($value, $j * 4, "\0\0\0\0"); + $j++; } - elseif (strlen($v) < 8) { - $v = str_pad($v, 8, "\0"); + break; + case 12: // DFLOAT + if ($count == 0) { + $count = $origCount; } - $this->_putString($value, $j * 8, $v); - $j++; - } - while ($j < $count) { - $this->_putString($value, $j * 8, "\0\0\0\0\0\0\0\0"); - $j++; - } - break; - default: - $value = null; - break; + $j = 0; + while (($j < $count) && ($j < $origCount)) { + $v = strval($origValue[$j]); + if (strlen($v) > 8) { + $v = substr($v, 0, 8); + } + elseif (strlen($v) < 8) { + $v = str_pad($v, 8, "\0"); + } + $this->_putString($value, $j * 8, $v); + $j++; + } + + while ($j < $count) { + $this->_putString($value, $j * 8, "\0\0\0\0\0\0\0\0"); + $j++; + } + break; + default: + $value = null; + break; } } @@ -2302,8 +2210,7 @@ class JpegMeta } /*************************************************************/ - function _parseMarkerAdobe() - { + function _parseMarkerAdobe() { if (!isset($this->_markers)) { $this->_readJPEG(); } @@ -2359,36 +2266,36 @@ class JpegMeta $basePos = $pos; switch ($type) { - case 0x0404: // Caption (IPTC Data) - $pos = $this->_readIPTC($data, $pos); - if ($pos == false) - return false; - break; - case 0x040A: // CopyrightFlag - $this->_info['adobe']['CopyrightFlag'] = $this->_getByte($data, $pos); - $pos += $length; - break; - case 0x040B: // ImageURL - $this->_info['adobe']['ImageURL'] = $this->_getFixedString($data, $pos, $length); - $pos += $length; - break; - case 0x040C: // Thumbnail - $aux = $this->_getLong($data, $pos); - $pos += 4; - if ($aux == 1) { - $this->_info['adobe']['ThumbnailWidth'] = $this->_getLong($data, $pos); - $pos += 4; - $this->_info['adobe']['ThumbnailHeight'] = $this->_getLong($data, $pos); + case 0x0404: // Caption (IPTC Data) + $pos = $this->_readIPTC($data, $pos); + if ($pos == false) + return false; + break; + case 0x040A: // CopyrightFlag + $this->_info['adobe']['CopyrightFlag'] = $this->_getByte($data, $pos); + $pos += $length; + break; + case 0x040B: // ImageURL + $this->_info['adobe']['ImageURL'] = $this->_getFixedString($data, $pos, $length); + $pos += $length; + break; + case 0x040C: // Thumbnail + $aux = $this->_getLong($data, $pos); $pos += 4; + if ($aux == 1) { + $this->_info['adobe']['ThumbnailWidth'] = $this->_getLong($data, $pos); + $pos += 4; + $this->_info['adobe']['ThumbnailHeight'] = $this->_getLong($data, $pos); + $pos += 4; - $pos += 16; // Skip some data + $pos += 16; // Skip some data - $this->_info['adobe']['ThumbnailData'] = $this->_getFixedString($data, $pos, $length - 28); - $pos += $length - 28; - } - break; - default: - break; + $this->_info['adobe']['ThumbnailData'] = $this->_getFixedString($data, $pos, $length - 28); + $pos += $length - 28; + } + break; + default: + break; } // We save all blocks, even those we recognized @@ -2404,8 +2311,7 @@ class JpegMeta } /*************************************************************/ - function _readIPTC(&$data, $pos = 0) - { + function _readIPTC(&$data, $pos = 0) { $totalLength = strlen($data); $IPTCTags =& $this->_iptcTagNames(); @@ -2426,8 +2332,7 @@ class JpegMeta if (isset($IPTCTags[$type])) { $label = $IPTCTags[$type]; - } - else { + } else { $label = sprintf('IPTC_0x%02x', $type); } @@ -2439,8 +2344,7 @@ class JpegMeta $this->_info['iptc'][$label] = $aux; } $this->_info['iptc'][$label][ count($this->_info['iptc'][$label]) ] = $this->_getFixedString($data, $pos, $length); - } - else { + } else { $this->_info['iptc'][$label] = $this->_getFixedString($data, $pos, $length); } } @@ -2451,8 +2355,7 @@ class JpegMeta } /*************************************************************/ - function & _createMarkerAdobe() - { + function & _createMarkerAdobe() { if (isset($this->_info['iptc'])) { if (!isset($this->_info['adobe'])) { $this->_info['adobe'] = array(); @@ -2475,11 +2378,11 @@ class JpegMeta reset($this->_info['adobe']['raw']); while (list($key) = each($this->_info['adobe']['raw'])) { $pos = $this->_write8BIM( - $data, - $pos, - $this->_info['adobe']['raw'][$key]['type'], - $this->_info['adobe']['raw'][$key]['header'], - $this->_info['adobe']['raw'][$key]['data'] ); + $data, + $pos, + $this->_info['adobe']['raw'][$key]['type'], + $this->_info['adobe']['raw'][$key]['header'], + $this->_info['adobe']['raw'][$key]['data'] ); } } @@ -2487,8 +2390,7 @@ class JpegMeta } /*************************************************************/ - function _write8BIM(&$data, $pos, $type, $header, &$value) - { + function _write8BIM(&$data, $pos, $type, $header, &$value) { $signature = "8BIM"; $pos = $this->_putString($data, $pos, $signature); @@ -2512,8 +2414,7 @@ class JpegMeta } /*************************************************************/ - function & _writeIPTC() - { + function & _writeIPTC() { $data = " "; $pos = 0; @@ -2521,7 +2422,6 @@ class JpegMeta reset($this->_info['iptc']); - while (list($label) = each($this->_info['iptc'])) { $value =& $this->_info['iptc'][$label]; $type = -1; @@ -2535,7 +2435,8 @@ class JpegMeta if ($type != -1) { if (is_array($value)) { - for ($i = 0; $i < count($value); $i++) { + $vcnt = count($value); + for ($i = 0; $i < $vcnt; $i++) { $pos = $this->_writeIPTCEntry($data, $pos, $type, $value[$i]); } } @@ -2549,8 +2450,7 @@ class JpegMeta } /*************************************************************/ - function _writeIPTCEntry(&$data, $pos, $type, &$value) - { + function _writeIPTCEntry(&$data, $pos, $type, &$value) { $pos = $this->_putShort($data, $pos, 0x1C02); $pos = $this->_putByte($data, $pos, $type); $pos = $this->_putShort($data, $pos, strlen($value)); @@ -2560,8 +2460,7 @@ class JpegMeta } /*************************************************************/ - function _exifTagNames($mode) - { + function _exifTagNames($mode) { $tags = array(); if ($mode == 'ifd0') { @@ -2627,8 +2526,7 @@ class JpegMeta $tags[0x0214] = 'TIFFReferenceBlackWhite'; $tags[0x8298] = 'TIFFCopyright'; $tags[0x9286] = 'TIFFUserComment'; - } - elseif ($mode == 'exif') { + } elseif ($mode == 'exif') { $tags[0x829A] = 'ExposureTime'; $tags[0x829D] = 'FNumber'; $tags[0x8822] = 'ExposureProgram'; @@ -2672,15 +2570,13 @@ class JpegMeta $tags[0xA300] = 'FileSource'; $tags[0xA301] = 'SceneType'; $tags[0xA302] = 'CFAPattern'; - } - elseif ($mode == 'interop') { + } elseif ($mode == 'interop') { $tags[0x0001] = 'InteroperabilityIndex'; $tags[0x0002] = 'InteroperabilityVersion'; $tags[0x1000] = 'RelatedImageFileFormat'; $tags[0x1001] = 'RelatedImageWidth'; $tags[0x1002] = 'RelatedImageLength'; - } - elseif ($mode == 'gps') { + } elseif ($mode == 'gps') { $tags[0x0000] = 'GPSVersionID'; $tags[0x0001] = 'GPSLatitudeRef'; $tags[0x0002] = 'GPSLatitude'; @@ -2714,8 +2610,7 @@ class JpegMeta } /*************************************************************/ - function _exifTagTypes($mode) - { + function _exifTagTypes($mode) { $tags = array(); if ($mode == 'ifd0') { @@ -2781,8 +2676,7 @@ class JpegMeta $tags[0x0214] = array(5, 6); // TIFFReferenceBlackWhite -> RATIONAL, 6 $tags[0x8298] = array(2, 0); // TIFFCopyright -> ASCII, Any $tags[0x9286] = array(2, 0); // TIFFUserComment -> ASCII, Any - } - elseif ($mode == 'exif') { + } elseif ($mode == 'exif') { $tags[0x829A] = array(5, 1); // ExposureTime -> RATIONAL, 1 $tags[0x829D] = array(5, 1); // FNumber -> RATIONAL, 1 $tags[0x8822] = array(3, 1); // ExposureProgram -> SHORT, 1 @@ -2826,15 +2720,13 @@ class JpegMeta $tags[0xA300] = array(7, 1); // FileSource -> UNDEFINED, 1 $tags[0xA301] = array(7, 1); // SceneType -> UNDEFINED, 1 $tags[0xA302] = array(7, 0); // CFAPattern -> UNDEFINED, Any - } - elseif ($mode == 'interop') { + } elseif ($mode == 'interop') { $tags[0x0001] = array(2, 0); // InteroperabilityIndex -> ASCII, Any $tags[0x0002] = array(7, 4); // InteroperabilityVersion -> UNKNOWN, 4 $tags[0x1000] = array(2, 0); // RelatedImageFileFormat -> ASCII, Any $tags[0x1001] = array(4, 1); // RelatedImageWidth -> LONG (or SHORT), 1 $tags[0x1002] = array(4, 1); // RelatedImageLength -> LONG (or SHORT), 1 - } - elseif ($mode == 'gps') { + } elseif ($mode == 'gps') { $tags[0x0000] = array(1, 4); // GPSVersionID -> BYTE, 4 $tags[0x0001] = array(2, 2); // GPSLatitudeRef -> ASCII, 2 $tags[0x0002] = array(5, 3); // GPSLatitude -> RATIONAL, 3 @@ -2868,15 +2760,13 @@ class JpegMeta } /*************************************************************/ - function _exifNameTags($mode) - { + function _exifNameTags($mode) { $tags = $this->_exifTagNames($mode); return $this->_names2Tags($tags); } /*************************************************************/ - function _iptcTagNames() - { + function _iptcTagNames() { $tags = array(); $tags[0x14] = 'SuplementalCategories'; $tags[0x19] = 'Keywords'; @@ -2903,15 +2793,13 @@ class JpegMeta } /*************************************************************/ - function & _iptcNameTags() - { + function & _iptcNameTags() { $tags = $this->_iptcTagNames(); return $this->_names2Tags($tags); } /*************************************************************/ - function _names2Tags($tags2Names) - { + function _names2Tags($tags2Names) { $names2Tags = array(); reset($tags2Names); while (list($tag, $name) = each($tags2Names)) { @@ -2922,14 +2810,12 @@ class JpegMeta } /*************************************************************/ - function _getByte(&$data, $pos) - { + function _getByte(&$data, $pos) { return ord($data{$pos}); } /*************************************************************/ - function _putByte(&$data, $pos, $val) - { + function _putByte(&$data, $pos, $val) { $val = intval($val); $data{$pos} = chr($val); @@ -2938,28 +2824,24 @@ class JpegMeta } /*************************************************************/ - function _getShort(&$data, $pos, $bigEndian = true) - { + function _getShort(&$data, $pos, $bigEndian = true) { if ($bigEndian) { return (ord($data{$pos}) << 8) - + ord($data{$pos + 1}); - } - else { + + ord($data{$pos + 1}); + } else { return ord($data{$pos}) - + (ord($data{$pos + 1}) << 8); + + (ord($data{$pos + 1}) << 8); } } /*************************************************************/ - function _putShort(&$data, $pos = 0, $val, $bigEndian = true) - { + function _putShort(&$data, $pos = 0, $val = 0, $bigEndian = true) { $val = intval($val); if ($bigEndian) { $data{$pos + 0} = chr(($val & 0x0000FF00) >> 8); $data{$pos + 1} = chr(($val & 0x000000FF) >> 0); - } - else { + } else { $data{$pos + 0} = chr(($val & 0x00FF) >> 0); $data{$pos + 1} = chr(($val & 0xFF00) >> 8); } @@ -2968,25 +2850,22 @@ class JpegMeta } /*************************************************************/ - function _getLong(&$data, $pos, $bigEndian = true) - { + function _getLong(&$data, $pos, $bigEndian = true) { if ($bigEndian) { return (ord($data{$pos}) << 24) - + (ord($data{$pos + 1}) << 16) - + (ord($data{$pos + 2}) << 8) - + ord($data{$pos + 3}); - } - else { + + (ord($data{$pos + 1}) << 16) + + (ord($data{$pos + 2}) << 8) + + ord($data{$pos + 3}); + } else { return ord($data{$pos}) - + (ord($data{$pos + 1}) << 8) - + (ord($data{$pos + 2}) << 16) - + (ord($data{$pos + 3}) << 24); + + (ord($data{$pos + 1}) << 8) + + (ord($data{$pos + 2}) << 16) + + (ord($data{$pos + 3}) << 24); } } /*************************************************************/ - function _putLong(&$data, $pos, $val, $bigEndian = true) - { + function _putLong(&$data, $pos, $val, $bigEndian = true) { $val = intval($val); if ($bigEndian) { @@ -2994,8 +2873,7 @@ class JpegMeta $data{$pos + 1} = chr(($val & 0x00FF0000) >> 16); $data{$pos + 2} = chr(($val & 0x0000FF00) >> 8); $data{$pos + 3} = chr(($val & 0x000000FF) >> 0); - } - else { + } else { $data{$pos + 0} = chr(($val & 0x000000FF) >> 0); $data{$pos + 1} = chr(($val & 0x0000FF00) >> 8); $data{$pos + 2} = chr(($val & 0x00FF0000) >> 16); @@ -3006,16 +2884,14 @@ class JpegMeta } /*************************************************************/ - function & _getNullString(&$data, $pos) - { + function & _getNullString(&$data, $pos) { $str = ''; $max = strlen($data); while ($pos < $max) { if (ord($data{$pos}) == 0) { return $str; - } - else { + } else { $str .= $data{$pos}; } $pos++; @@ -3025,8 +2901,7 @@ class JpegMeta } /*************************************************************/ - function & _getFixedString(&$data, $pos, $length = -1) - { + function & _getFixedString(&$data, $pos, $length = -1) { if ($length == -1) { $length = strlen($data) - $pos; } @@ -3035,23 +2910,20 @@ class JpegMeta } /*************************************************************/ - function _putString(&$data, $pos, &$str) - { + function _putString(&$data, $pos, &$str) { $len = strlen($str); for ($i = 0; $i < $len; $i++) { - $data{$pos + $i} = $str{$i}; + $data{$pos + $i} = $str{$i}; } return $pos + $len; } /*************************************************************/ - function _hexDump(&$data, $start = 0, $length = -1) - { + function _hexDump(&$data, $start = 0, $length = -1) { if (($length == -1) || (($length + $start) > strlen($data))) { $end = strlen($data); - } - else { + } else { $end = $start + $length; } @@ -3109,8 +2981,7 @@ class JpegMeta echo "\n"; } -/*****************************************************************/ + /*****************************************************************/ } /* vim: set expandtab tabstop=4 shiftwidth=4: */ - diff --git a/inc/ZipLib.class.php b/inc/ZipLib.class.php index 836e9d9e6..09dbbd3bd 100644 --- a/inc/ZipLib.class.php +++ b/inc/ZipLib.class.php @@ -5,471 +5,500 @@ * @link http://dev.maxg.info * @link http://forum.maxg.info * - * Modified for Dokuwiki - * @author Christopher Smith + * Modified for Dokuwiki + * @author Christopher Smith */ -class ZipLib -{ - - var $datasec, $ctrl_dir = array(); - var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; - var $old_offset = 0; var $dirs = Array("."); - - function get_List($zip_name) - { - $zip = @fopen($zip_name, 'rb'); - if(!$zip) return(0); - $centd = $this->ReadCentralDir($zip,$zip_name); - - @rewind($zip); - @fseek($zip, $centd['offset']); - - for ($i=0; $i<$centd['entries']; $i++) - { - $header = $this->ReadCentralFileHeaders($zip); - $header['index'] = $i;$info['filename'] = $header['filename']; - $info['stored_filename'] = $header['stored_filename']; - $info['size'] = $header['size'];$info['compressed_size']=$header['compressed_size']; - $info['crc'] = strtoupper(dechex( $header['crc'] )); - $info['mtime'] = $header['mtime']; $info['comment'] = $header['comment']; - $info['folder'] = ($header['external']==0x41FF0010||$header['external']==16)?1:0; - $info['index'] = $header['index'];$info['status'] = $header['status']; - $ret[]=$info; unset($header); - } - return $ret; - } - - function Add($files,$compact) - { - if(!is_array($files[0])) $files=Array($files); - - for($i=0;$files[$i];$i++){ - $fn = $files[$i]; - if(!in_Array(dirname($fn[0]),$this->dirs)) - $this->add_Dir(dirname($fn[0])); - if(basename($fn[0])) - $ret[basename($fn[0])]=$this->add_File($fn[1],$fn[0],$compact); - } - return $ret; - } - - /** - * Zips recursively the $folder directory, from the $basedir directory - */ - function Compress($folder, $basedir=null, $parent=null) - { - $full_path = $basedir."/".$parent.$folder; - $zip_path = $parent.$folder; - if ($zip_path) { - $zip_path .= "/"; - $this->add_dir($zip_path); - } - $dir = new DirectoryIterator($full_path); - foreach($dir as $file) { - if(!$file->isDot()) { - $filename = $file->getFilename(); - if($file->isDir()) { - $this->Compress($filename, $basedir, $zip_path); - } else { - $content = join('', file($full_path.'/'.$filename)); - $this->add_File($content, $zip_path.$filename); +class ZipLib { + + var $datasec; + var $ctrl_dir = array(); + var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; + var $old_offset = 0; + var $dirs = Array("."); + + function get_List($zip_name) { + $zip = @fopen($zip_name, 'rb'); + if(!$zip) return(0); + $centd = $this->ReadCentralDir($zip,$zip_name); + + @rewind($zip); + @fseek($zip, $centd['offset']); + + for ($i=0; $i<$centd['entries']; $i++) { + $header = $this->ReadCentralFileHeaders($zip); + $header['index'] = $i; + + $info['filename'] = $header['filename']; + $info['stored_filename'] = $header['stored_filename']; + $info['size'] = $header['size']; + $info['compressed_size'] = $header['compressed_size']; + $info['crc'] = strtoupper(dechex( $header['crc'] )); + $info['mtime'] = $header['mtime']; + $info['comment'] = $header['comment']; + $info['folder'] = ($header['external']==0x41FF0010||$header['external']==16)?1:0; + $info['index'] = $header['index']; + $info['status'] = $header['status']; + $ret[]=$info; + + unset($header); + } + return $ret; } - } - } - } - - /** - * Returns the Zip file - */ - function get_file() - { - $data = implode('', $this -> datasec); - $ctrldir = implode('', $this -> ctrl_dir); - - return $data . $ctrldir . $this -> eof_ctrl_dir . - pack('v', sizeof($this -> ctrl_dir)).pack('v', sizeof($this -> ctrl_dir)). - pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00"; - } - - function add_dir($name) - { - $name = str_replace("\\", "/", $name); - $fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00"; - - $fr .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) ); - $fr .= pack("v", 0 ).$name.pack("V", 0).pack("V", 0).pack("V", 0); - $this -> datasec[] = $fr; - - $new_offset = strlen(implode("", $this->datasec)); - - $cdrec = "\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00"; - $cdrec .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) ); - $cdrec .= pack("v", 0 ).pack("v", 0 ).pack("v", 0 ).pack("v", 0 ); - $ext = "\xff\xff\xff\xff"; - $cdrec .= pack("V", 16 ).pack("V", $this -> old_offset ).$name; - - $this -> ctrl_dir[] = $cdrec; - $this -> old_offset = $new_offset; - $this -> dirs[] = $name; - } - - /** - * Add a file named $name from a string $data - */ - function add_File($data, $name, $compact = 1) - { - $name = str_replace('\\', '/', $name); - $dtime = dechex($this->DosTime()); - - $hexdtime = '\x' . $dtime[6] . $dtime[7].'\x'.$dtime[4] . $dtime[5] - . '\x' . $dtime[2] . $dtime[3].'\x'.$dtime[0].$dtime[1]; - eval('$hexdtime = "' . $hexdtime . '";'); - - if($compact) - $fr = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00".$hexdtime; - else $fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00".$hexdtime; - $unc_len = strlen($data); $crc = crc32($data); - - if($compact){ - $zdata = gzcompress($data); $c_len = strlen($zdata); - $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); - }else{ - $zdata = $data; - } - $c_len=strlen($zdata); - $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); - $fr .= pack('v', strlen($name)).pack('v', 0).$name.$zdata; - - $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); - - $this -> datasec[] = $fr; - $new_offset = strlen(implode('', $this->datasec)); - if($compact) - $cdrec = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00"; - else $cdrec = "\x50\x4b\x01\x02\x14\x00\x0a\x00\x00\x00\x00\x00"; - $cdrec .= $hexdtime.pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); - $cdrec .= pack('v', strlen($name) ).pack('v', 0 ).pack('v', 0 ); - $cdrec .= pack('v', 0 ).pack('v', 0 ).pack('V', 32 ); - $cdrec .= pack('V', $this -> old_offset ); - - $this -> old_offset = $new_offset; - $cdrec .= $name; - $this -> ctrl_dir[] = $cdrec; - return true; - } - - function DosTime() { - $timearray = getdate(); - if ($timearray['year'] < 1980) { - $timearray['year'] = 1980; $timearray['mon'] = 1; - $timearray['mday'] = 1; $timearray['hours'] = 0; - $timearray['minutes'] = 0; $timearray['seconds'] = 0; - } - return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | ($timearray['hours'] << 11) | - ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); - } - - /** - * Extract a zip file $zn to the $to directory - */ - function Extract ( $zn, $to, $index = Array(-1) ) - { - if(!@is_dir($to)) $this->_mkdir($to); - $ok = 0; $zip = @fopen($zn,'rb'); - if(!$zip) return(-1); - $cdir = $this->ReadCentralDir($zip,$zn); - $pos_entry = $cdir['offset']; - - if(!is_array($index)){ $index = array($index); } - for($i=0; isset($index[$i]);$i++){ - if(intval($index[$i])!=$index[$i]||$index[$i]>$cdir['entries']) - return(-1); - } - - for ($i=0; $i<$cdir['entries']; $i++) - { - @fseek($zip, $pos_entry); - $header = $this->ReadCentralFileHeaders($zip); - $header['index'] = $i; $pos_entry = ftell($zip); - @rewind($zip); fseek($zip, $header['offset']); - if(in_array("-1",$index)||in_array($i,$index)) - $stat[$header['filename']]=$this->ExtractFile($header, $to, $zip); - - } - fclose($zip); - return $stat; - } - - function ReadFileHeader($zip, $header) - { - $binary_data = fread($zip, 30); - $data = unpack('vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $binary_data); - - $header['filename'] = fread($zip, $data['filename_len']); - if ($data['extra_len'] != 0) { - $header['extra'] = fread($zip, $data['extra_len']); - } else { $header['extra'] = ''; } - - $header['compression'] = $data['compression']; - foreach (array('size','compressed_size','crc') as $hd) { // On ODT files, these headers are 0. Keep the previous value. - if ($data[$hd] != 0) $header[$hd] = $data[$hd]; + + function Add($files,$compact) { + if(!is_array($files[0])) $files=Array($files); + + for($i=0;$files[$i];$i++){ + $fn = $files[$i]; + if(!in_Array(dirname($fn[0]),$this->dirs)) + $this->add_Dir(dirname($fn[0])); + if(basename($fn[0])) + $ret[basename($fn[0])]=$this->add_File($fn[1],$fn[0],$compact); + } + return $ret; + } + + /** + * Zips recursively the $folder directory, from the $basedir directory + */ + function Compress($folder, $basedir=null, $parent=null) { + $full_path = $basedir."/".$parent.$folder; + $zip_path = $parent.$folder; + if ($zip_path) { + $zip_path .= "/"; + $this->add_dir($zip_path); + } + $dir = new DirectoryIterator($full_path); + foreach($dir as $file) { + if(!$file->isDot()) { + $filename = $file->getFilename(); + if($file->isDir()) { + $this->Compress($filename, $basedir, $zip_path); + } else { + $content = join('', file($full_path.'/'.$filename)); + $this->add_File($content, $zip_path.$filename); + } + } + } + } + + /** + * Returns the Zip file + */ + function get_file() { + $data = implode('', $this -> datasec); + $ctrldir = implode('', $this -> ctrl_dir); + + return $data . $ctrldir . $this -> eof_ctrl_dir . + pack('v', count($this->ctrl_dir)).pack('v', count($this->ctrl_dir)). + pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00"; + } + + function add_dir($name) { + $name = str_replace("\\", "/", $name); + $fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00"; + + $fr .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) ); + $fr .= pack("v", 0 ).$name.pack("V", 0).pack("V", 0).pack("V", 0); + $this -> datasec[] = $fr; + + $new_offset = strlen(implode("", $this->datasec)); + + $cdrec = "\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00"; + $cdrec .= pack("V",0).pack("V",0).pack("V",0).pack("v", strlen($name) ); + $cdrec .= pack("v", 0 ).pack("v", 0 ).pack("v", 0 ).pack("v", 0 ); + $ext = "\xff\xff\xff\xff"; + $cdrec .= pack("V", 16 ).pack("V", $this -> old_offset ).$name; + + $this -> ctrl_dir[] = $cdrec; + $this -> old_offset = $new_offset; + $this -> dirs[] = $name; + } + + /** + * Add a file named $name from a string $data + */ + function add_File($data, $name, $compact = 1) { + $name = str_replace('\\', '/', $name); + $dtime = dechex($this->DosTime()); + + $hexdtime = pack('H*',$dtime[6].$dtime[7]. + $dtime[4].$dtime[5]. + $dtime[2].$dtime[3]. + $dtime[0].$dtime[1]); + + if($compact){ + $fr = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00".$hexdtime; + }else{ + $fr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00".$hexdtime; + } + $unc_len = strlen($data); + $crc = crc32($data); + + if($compact){ + $zdata = gzcompress($data); + $c_len = strlen($zdata); + $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); + }else{ + $zdata = $data; + } + $c_len=strlen($zdata); + $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); + $fr .= pack('v', strlen($name)).pack('v', 0).$name.$zdata; + + $fr .= pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); + + $this -> datasec[] = $fr; + $new_offset = strlen(implode('', $this->datasec)); + if($compact) { + $cdrec = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00"; + } else { + $cdrec = "\x50\x4b\x01\x02\x14\x00\x0a\x00\x00\x00\x00\x00"; + } + $cdrec .= $hexdtime.pack('V', $crc).pack('V', $c_len).pack('V', $unc_len); + $cdrec .= pack('v', strlen($name) ).pack('v', 0 ).pack('v', 0 ); + $cdrec .= pack('v', 0 ).pack('v', 0 ).pack('V', 32 ); + $cdrec .= pack('V', $this -> old_offset ); + + $this -> old_offset = $new_offset; + $cdrec .= $name; + $this -> ctrl_dir[] = $cdrec; + return true; + } + + function DosTime() { + $timearray = getdate(); + if ($timearray['year'] < 1980) { + $timearray['year'] = 1980; + $timearray['mon'] = 1; + $timearray['mday'] = 1; + $timearray['hours'] = 0; + $timearray['minutes'] = 0; + $timearray['seconds'] = 0; + } + return (($timearray['year'] - 1980) << 25) | + ($timearray['mon'] << 21) | + ($timearray['mday'] << 16) | + ($timearray['hours'] << 11) | + ($timearray['minutes'] << 5) | + ($timearray['seconds'] >> 1); } - $header['flag'] = $data['flag']; - $header['mdate'] = $data['mdate'];$header['mtime'] = $data['mtime']; - - if ($header['mdate'] && $header['mtime']){ - $hour=($header['mtime']&0xF800)>>11;$minute=($header['mtime']&0x07E0)>>5; - $seconde=($header['mtime']&0x001F)*2;$year=(($header['mdate']&0xFE00)>>9)+1980; - $month=($header['mdate']&0x01E0)>>5;$day=$header['mdate']&0x001F; - $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); - }else{$header['mtime'] = time();} - - $header['stored_filename'] = $header['filename']; - $header['status'] = "ok"; - return $header; - } - - function ReadCentralFileHeaders($zip){ - $binary_data = fread($zip, 46); - $header = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $binary_data); - - if ($header['filename_len'] != 0) - $header['filename'] = fread($zip,$header['filename_len']); - else $header['filename'] = ''; - - if ($header['extra_len'] != 0) - $header['extra'] = fread($zip, $header['extra_len']); - else $header['extra'] = ''; - - if ($header['comment_len'] != 0) - $header['comment'] = fread($zip, $header['comment_len']); - else $header['comment'] = ''; - - if ($header['mdate'] && $header['mtime']) - { - $hour = ($header['mtime'] & 0xF800) >> 11; - $minute = ($header['mtime'] & 0x07E0) >> 5; - $seconde = ($header['mtime'] & 0x001F)*2; - $year = (($header['mdate'] & 0xFE00) >> 9) + 1980; - $month = ($header['mdate'] & 0x01E0) >> 5; - $day = $header['mdate'] & 0x001F; - $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); - } else { - $header['mtime'] = time(); + + /** + * Extract a zip file $zn to the $to directory + */ + function Extract ( $zn, $to, $index = Array(-1) ) { + if(!@is_dir($to)) $this->_mkdir($to); + $ok = 0; + $zip = @fopen($zn,'rb'); + if(!$zip) return(-1); + $cdir = $this->ReadCentralDir($zip,$zn); + $pos_entry = $cdir['offset']; + + if(!is_array($index)){ + $index = array($index); + } + for($i=0; isset($index[$i]);$i++){ + if(intval($index[$i])!=$index[$i]||$index[$i]>$cdir['entries']) + return(-1); + } + + for ($i=0; $i<$cdir['entries']; $i++) { + @fseek($zip, $pos_entry); + $header = $this->ReadCentralFileHeaders($zip); + $header['index'] = $i; + $pos_entry = ftell($zip); + @rewind($zip); + fseek($zip, $header['offset']); + if(in_array("-1",$index)||in_array($i,$index)){ + $stat[$header['filename']]=$this->ExtractFile($header, $to, $zip); + } + } + fclose($zip); + return $stat; + } + + function ReadFileHeader($zip, $header) { + $binary_data = fread($zip, 30); + $data = unpack('vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $binary_data); + + $header['filename'] = fread($zip, $data['filename_len']); + if ($data['extra_len'] != 0) { + $header['extra'] = fread($zip, $data['extra_len']); + } else { + $header['extra'] = ''; + } + + $header['compression'] = $data['compression']; + foreach (array('size','compressed_size','crc') as $hd) { // On ODT files, these headers are 0. Keep the previous value. + if ($data[$hd] != 0) $header[$hd] = $data[$hd]; + } + $header['flag'] = $data['flag']; + $header['mdate'] = $data['mdate']; + $header['mtime'] = $data['mtime']; + + if ($header['mdate'] && $header['mtime']){ + $hour = ($header['mtime']&0xF800)>>11; + $minute = ($header['mtime']&0x07E0)>>5; + $seconde = ($header['mtime']&0x001F)*2; + $year = (($header['mdate']&0xFE00)>>9)+1980; + $month = ($header['mdate']&0x01E0)>>5; + $day = $header['mdate']&0x001F; + $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); + } else { + $header['mtime'] = time(); + } + + $header['stored_filename'] = $header['filename']; + $header['status'] = "ok"; + return $header; + } + + function ReadCentralFileHeaders($zip){ + $binary_data = fread($zip, 46); + $header = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $binary_data); + + if ($header['filename_len'] != 0){ + $header['filename'] = fread($zip,$header['filename_len']); + }else{ + $header['filename'] = ''; + } + + if ($header['extra_len'] != 0){ + $header['extra'] = fread($zip, $header['extra_len']); + }else{ + $header['extra'] = ''; + } + + if ($header['comment_len'] != 0){ + $header['comment'] = fread($zip, $header['comment_len']); + }else{ + $header['comment'] = ''; + } + + if ($header['mdate'] && $header['mtime']) { + $hour = ($header['mtime'] & 0xF800) >> 11; + $minute = ($header['mtime'] & 0x07E0) >> 5; + $seconde = ($header['mtime'] & 0x001F)*2; + $year = (($header['mdate'] & 0xFE00) >> 9) + 1980; + $month = ($header['mdate'] & 0x01E0) >> 5; + $day = $header['mdate'] & 0x001F; + $header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year); + } else { + $header['mtime'] = time(); + } + + $header['stored_filename'] = $header['filename']; + $header['status'] = 'ok'; + if (substr($header['filename'], -1) == '/') $header['external'] = 0x41FF0010; + + return $header; + } + + function ReadCentralDir($zip,$zip_name) { + $size = filesize($zip_name); + if ($size < 277){ + $maximum_size = $size; + } else { + $maximum_size=277; + } + + @fseek($zip, $size-$maximum_size); + $pos = ftell($zip); + $bytes = 0x00000000; + + while ($pos < $size) { + $byte = @fread($zip, 1); + $bytes=(($bytes << 8) & 0xFFFFFFFF) | Ord($byte); + if ($bytes == 0x504b0506){ + $pos++; + break; + } + $pos++; + } + + $data=unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', + fread($zip, 18)); + + if ($data['comment_size'] != 0){ + $centd['comment'] = fread($zip, $data['comment_size']); + } else { + $centd['comment'] = ''; + $centd['entries'] = $data['entries']; + } + $centd['disk_entries'] = $data['disk_entries']; + $centd['offset'] = $data['offset']; + $centd['disk_start'] = $data['disk_start']; + $centd['size'] = $data['size']; + $centd['disk'] = $data['disk']; + return $centd; + } + + function ExtractFile($header,$to,$zip) { + $header = $this->readfileheader($zip, $header); + + if(substr($to,-1)!="/") $to.="/"; + if(substr($header['filename'],-1)=="/") { + $this->_mkdir($to.$header['filename']); + return +2; + } + + if (!$this->_mkdir($to.dirname($header['filename']))) return (-1); + + if (!array_key_exists("external", $header) || (!($header['external']==0x41FF0010)&&!($header['external']==16))) { + if ($header['compression']==0) { + $fp = @fopen($to.$header['filename'], 'wb'); + if(!$fp) return(-1); + $size = $header['compressed_size']; + + while ($size != 0) { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = fread($zip, $read_size); + $binary_data = pack('a'.$read_size, $buffer); + @fwrite($fp, $binary_data, $read_size); + $size -= $read_size; + } + fclose($fp); + touch($to.$header['filename'], $header['mtime']); + + }else{ + if (!is_dir(dirname($to.$header['filename']))) $this->_mkdir(dirname($to.$header['filename'])); + $fp = fopen($to.$header['filename'].'.gz','wb'); + if(!$fp) return(-1); + $binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($header['compression']), + Chr(0x00), time(), Chr(0x00), Chr(3)); + + fwrite($fp, $binary_data, 10); + $size = $header['compressed_size']; + + while ($size != 0) { + $read_size = ($size < 1024 ? $size : 1024); + $buffer = fread($zip, $read_size); + $binary_data = pack('a'.$read_size, $buffer); + @fwrite($fp, $binary_data, $read_size); + $size -= $read_size; + } + + $binary_data = pack('VV', $header['crc'], $header['size']); + fwrite($fp, $binary_data,8); + fclose($fp); + + $gzp = @gzopen($to.$header['filename'].'.gz','rb'); + if(!$gzp){ + @gzclose($gzp); + @unlink($to.$header['filename']); + die("Archive is compressed whereas ZLIB is not enabled."); + } + $fp = @fopen($to.$header['filename'],'wb'); + if(!$fp) return(-1); + $size = $header['size']; + + while ($size != 0) { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = gzread($gzp, $read_size); + $binary_data = pack('a'.$read_size, $buffer); + @fwrite($fp, $binary_data, $read_size); + $size -= $read_size; + } + fclose($fp); + gzclose($gzp); + + touch($to.$header['filename'], $header['mtime']); + @unlink($to.$header['filename'].'.gz'); + } + } + return true; + } + + /** + * centralize mkdir calls and use dokuwiki io functions + * + * @author Christopher Smith + */ + function _mkdir($d) { + return io_mkdir_p($d); + } + + + function ExtractStr($zn, $name) { + $ok = 0; + $zip = @fopen($zn,'rb'); + if(!$zip) return(null); + $cdir = $this->ReadCentralDir($zip,$zn); + $pos_entry = $cdir['offset']; + + for ($i=0; $i<$cdir['entries']; $i++) { + @fseek($zip, $pos_entry); + $header = $this->ReadCentralFileHeaders($zip); + $header['index'] = $i; + $pos_entry = ftell($zip); + @rewind($zip); + fseek($zip, $header['offset']); + if ($name == $header['stored_filename'] || $name == $header['filename']) { + $str = $this->ExtractStrFile($header, $zip); + fclose($zip); + return $str; + } + + } + fclose($zip); + return null; } - $header['stored_filename'] = $header['filename']; - $header['status'] = 'ok'; - if (substr($header['filename'], -1) == '/') - $header['external'] = 0x41FF0010; - return $header; - } - - function ReadCentralDir($zip,$zip_name) - { - $size = filesize($zip_name); - if ($size < 277) $maximum_size = $size; - else $maximum_size=277; - - @fseek($zip, $size-$maximum_size); - $pos = ftell($zip); $bytes = 0x00000000; - - while ($pos < $size) - { - $byte = @fread($zip, 1); - $bytes=(($bytes << 8) & 0xFFFFFFFF) | Ord($byte); - if ($bytes == 0x504b0506){ $pos++; break; } $pos++; - } - - $data=unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', - fread($zip, 18)); - - if ($data['comment_size'] != 0) - $centd['comment'] = fread($zip, $data['comment_size']); - else $centd['comment'] = ''; $centd['entries'] = $data['entries']; - $centd['disk_entries'] = $data['disk_entries']; - $centd['offset'] = $data['offset'];$centd['disk_start'] = $data['disk_start']; - $centd['size'] = $data['size']; $centd['disk'] = $data['disk']; - return $centd; - } - - function ExtractFile($header,$to,$zip) - { - $header = $this->readfileheader($zip, $header); - - if(substr($to,-1)!="/") $to.="/"; - if(substr($header['filename'],-1)=="/") - { -// @mkdir($to.$header['filename']); --CS - $this->_mkdir($to.$header['filename']); //-- CS - return +2; - } - -// $pth = explode("/",dirname($header['filename'])); -// for($i=0,$tmp="";isset($pth[$i]);$i++){ -// if(!$pth[$i]) continue; -// if(!is_dir($to.$tmp.$pth[$i])) @mkdir($to.$pth[$i],0777); -// $tmp.=$pth[$i]."/"; -// } - if (!$this->_mkdir($to.dirname($header['filename']))) return (-1); //--CS - - if (!array_key_exists("external", $header) || (!($header['external']==0x41FF0010)&&!($header['external']==16))) - { - if ($header['compression']==0) - { - $fp = @fopen($to.$header['filename'], 'wb'); - if(!$fp) return(-1); - $size = $header['compressed_size']; - - while ($size != 0) - { - $read_size = ($size < 2048 ? $size : 2048); - $buffer = fread($zip, $read_size); - $binary_data = pack('a'.$read_size, $buffer); - @fwrite($fp, $binary_data, $read_size); - $size -= $read_size; + + function ExtractStrFile($header,$zip) { + $hdr = $this->readfileheader($zip); + $binary_data = ''; + if (!($header['external']==0x41FF0010) && !($header['external']==16)) { + if ($header['compression']==0) { + while ($size != 0) { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = fread($zip, $read_size); + $binary_data .= pack('a'.$read_size, $buffer); + $size -= $read_size; + } + return $binary_data; + } else { + $size = $header['compressed_size']; + if ($size == 0) { + return ''; + } + //Just in case + if ($size > ($this->_ret_bytes(ini_get('memory_limit'))/2)) { + die("Compressed file is to huge to be uncompress in memory."); + } + while ($size != 0) + { + $read_size = ($size < 2048 ? $size : 2048); + $buffer = fread($zip, $read_size); + $binary_data .= pack('a'.$read_size, $buffer); + $size -= $read_size; + } + $str = gzinflate($binary_data, $header['size']); + if ($header['crc'] == crc32($str)) { + return $str; + } else { + die("Crc Error"); + } + } + } + return null; } - fclose($fp); - touch($to.$header['filename'], $header['mtime']); - - }else{ - if (!is_dir(dirname($to.$header['filename']))) $this->_mkdir(dirname($to.$header['filename'])); //-CS - $fp = fopen($to.$header['filename'].'.gz','wb'); - if(!$fp) return(-1); - $binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($header['compression']), - Chr(0x00), time(), Chr(0x00), Chr(3)); - - fwrite($fp, $binary_data, 10); - $size = $header['compressed_size']; - - while ($size != 0) - { - $read_size = ($size < 1024 ? $size : 1024); - $buffer = fread($zip, $read_size); - $binary_data = pack('a'.$read_size, $buffer); - @fwrite($fp, $binary_data, $read_size); - $size -= $read_size; - } - - $binary_data = pack('VV', $header['crc'], $header['size']); - fwrite($fp, $binary_data,8); fclose($fp); - - $gzp = @gzopen($to.$header['filename'].'.gz','rb'); - if(!$gzp){ - @gzclose($gzp); @unlink($to.$header['filename']); - die("Archive is compressed whereas ZLIB is not enabled."); + + function _ret_bytes($val) { + $val = trim($val); + $last = $val{strlen($val)-1}; + switch($last) { + case 'k': + case 'K': + return (int) $val * 1024; + break; + case 'm': + case 'M': + return (int) $val * 1048576; + break; + default: + return $val; + } } - $fp = @fopen($to.$header['filename'],'wb'); - if(!$fp) return(-1); - $size = $header['size']; - - while ($size != 0) - { - $read_size = ($size < 2048 ? $size : 2048); - $buffer = gzread($gzp, $read_size); - $binary_data = pack('a'.$read_size, $buffer); - @fwrite($fp, $binary_data, $read_size); - $size -= $read_size; - } - fclose($fp); gzclose($gzp); - - touch($to.$header['filename'], $header['mtime']); - @unlink($to.$header['filename'].'.gz'); - - }} - return true; - } - - //--CS start - // centralize mkdir calls and use dokuwiki io functions - function _mkdir($d) { - return io_mkdir_p($d); - } - //--CS end - - - function ExtractStr($zn, $name) { - $ok = 0; - $zip = @fopen($zn,'rb'); - if(!$zip) return(NULL); - $cdir = $this->ReadCentralDir($zip,$zn); - $pos_entry = $cdir['offset']; - - for ($i=0; $i<$cdir['entries']; $i++) - { - @fseek($zip, $pos_entry); - $header = $this->ReadCentralFileHeaders($zip); - $header['index'] = $i; - $pos_entry = ftell($zip); - @rewind($zip); - fseek($zip, $header['offset']); - if ($name == $header['stored_filename'] || $name == $header['filename']) { - $str = $this->ExtractStrFile($header, $zip); - fclose($zip); - return $str; - } - - } - fclose($zip); - return null; - } - - function ExtractStrFile($header,$zip) { - $hdr = $this->readfileheader($zip); - $binary_data = ''; - if (!($header['external']==0x41FF0010) && !($header['external']==16)) - { - if ($header['compression']==0) - { - while ($size != 0) - { - $read_size = ($size < 2048 ? $size : 2048); - $buffer = fread($zip, $read_size); - $binary_data .= pack('a'.$read_size, $buffer); - $size -= $read_size; - } - return $binary_data; - } else { - $size = $header['compressed_size']; - if ($size == 0) { - return ''; - } - //Just in case - if ($size > ($this->_ret_bytes(ini_get('memory_limit'))/2)) { - die("Compressed file is to huge to be uncompress in memory."); - } - while ($size != 0) - { - $read_size = ($size < 2048 ? $size : 2048); - $buffer = fread($zip, $read_size); - $binary_data .= pack('a'.$read_size, $buffer); - $size -= $read_size; - } - $str = gzinflate($binary_data, $header['size']); - if ($header['crc'] == crc32($str)) { - return $str; - } else { - die("Crc Error"); - } - } - } - return NULL; - } - - function _ret_bytes($val) { - $val = trim($val); - $last = $val{strlen($val)-1}; - switch($last) { - case 'k': - case 'K': - return (int) $val * 1024; - break; - case 'm': - case 'M': - return (int) $val * 1048576; - break; - default: - return $val; - } - } } diff --git a/inc/blowfish.php b/inc/blowfish.php index 42e3a589a..bcf5804a2 100644 --- a/inc/blowfish.php +++ b/inc/blowfish.php @@ -299,8 +299,7 @@ class Horde_Cipher_blowfish * * @param String $key The key to use */ - function setKey($key) - { + function setKey($key) { $key = $this->_formatKey($key); $keyPos = $keyXor = 0; @@ -318,37 +317,37 @@ class Horde_Cipher_blowfish $encZero = array('L' => 0, 'R' => 0); for ($i = 0; $i + 1 < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->p[$i] = $encZero['L']; - $this->p[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->p[$i] = $encZero['L']; + $this->p[$i + 1] = $encZero['R']; } $iMax = count($this->s1); for ($i = 0; $i < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->s1[$i] = $encZero['L']; - $this->s1[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s1[$i] = $encZero['L']; + $this->s1[$i + 1] = $encZero['R']; } $iMax = count($this->s2); for ($i = 0; $i < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->s2[$i] = $encZero['L']; - $this->s2[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s2[$i] = $encZero['L']; + $this->s2[$i + 1] = $encZero['R']; } $iMax = count($this->s3); for ($i = 0; $i < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->s3[$i] = $encZero['L']; - $this->s3[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s3[$i] = $encZero['L']; + $this->s3[$i + 1] = $encZero['R']; } $iMax = count($this->s4); for ($i = 0; $i < $iMax; $i += 2) { - $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); - $this->s4[$i] = $encZero['L']; - $this->s4[$i + 1] = $encZero['R']; + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s4[$i] = $encZero['L']; + $this->s4[$i + 1] = $encZero['R']; } } @@ -361,8 +360,7 @@ class Horde_Cipher_blowfish * * @return String the encrypted output */ - function encryptBlock($block, $key = null) - { + function encryptBlock($block, $key = null) { if (!is_null($key)) { $this->setKey($key); } @@ -380,8 +378,7 @@ class Horde_Cipher_blowfish * * @return String The encrypted output. */ - function _encryptBlock($L, $R) - { + function _encryptBlock($L, $R) { $L ^= $this->p[0]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[1]; $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[2]; @@ -412,13 +409,12 @@ class Horde_Cipher_blowfish * * @return String the decrypted output */ - function decryptBlock($block, $key = null) - { + function decryptBlock($block, $key = null) { if (!is_null($key)) { $this->setKey($key); } -// change for phpMyAdmin + // change for phpMyAdmin $L = null; $R = null; @@ -429,7 +425,7 @@ class Horde_Cipher_blowfish if (isset($retarray[1])) { $R = $retarray[1]; } -// end change for phpMyAdmin + // end change for phpMyAdmin $L ^= $this->p[17]; $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[16]; @@ -458,8 +454,7 @@ class Horde_Cipher_blowfish * * @return array The key. */ - function _formatKey($key) - { + function _formatKey($key) { return array_values(unpack('C*', $key)); } @@ -478,8 +473,7 @@ class Horde_Cipher_blowfish * * @author lem9 */ -function PMA_blowfish_encrypt($data, $secret) -{ +function PMA_blowfish_encrypt($data, $secret) { $pma_cipher = new Horde_Cipher_blowfish; $encrypt = ''; @@ -508,8 +502,7 @@ function PMA_blowfish_encrypt($data, $secret) * * @author lem9 */ -function PMA_blowfish_decrypt($encdata, $secret) -{ +function PMA_blowfish_decrypt($encdata, $secret) { $pma_cipher = new Horde_Cipher_blowfish; $decrypt = ''; $data = base64_decode($encdata); diff --git a/inc/feedcreator.class.php b/inc/feedcreator.class.php index 86113e8c3..e7b8d7afc 100644 --- a/inc/feedcreator.class.php +++ b/inc/feedcreator.class.php @@ -336,7 +336,7 @@ class UniversalFeedCreator extends FeedCreator { } } - function _sendMIME($format) { + function _sendMIME() { header('Content-Type: '.$this->contentType.'; charset='.$this->encoding, true); } @@ -369,35 +369,35 @@ class UniversalFeedCreator extends FeedCreator { } - /** - * Turns on caching and checks if there is a recent version of this feed in the cache. - * If there is, an HTTP redirect header is sent. - * To effectively use caching, you should create the FeedCreator object and call this method - * before anything else, especially before you do the time consuming task to build the feed - * (web fetching, for example). - * - * @param string format format the feed should comply to. Valid values are: - * "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3". - * @param filename string optional the filename where a recent version of the feed is saved. If not specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see _generateFilename()). - * @param timeout int optional the timeout in seconds before a cached version is refreshed (defaults to 3600 = 1 hour) - */ - function useCached($format="RSS0.91", $filename="", $timeout=3600) { - $this->_setFormat($format); - $this->_feed->useCached($filename, $timeout); - } + /** + * Turns on caching and checks if there is a recent version of this feed in the cache. + * If there is, an HTTP redirect header is sent. + * To effectively use caching, you should create the FeedCreator object and call this method + * before anything else, especially before you do the time consuming task to build the feed + * (web fetching, for example). + * + * @param string format format the feed should comply to. Valid values are: + * "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3". + * @param filename string optional the filename where a recent version of the feed is saved. If not specified, the filename is $_SERVER["PHP_SELF"] with the extension changed to .xml (see _generateFilename()). + * @param timeout int optional the timeout in seconds before a cached version is refreshed (defaults to 3600 = 1 hour) + */ + function useCached($format="RSS0.91", $filename="", $timeout=3600) { + $this->_setFormat($format); + $this->_feed->useCached($filename, $timeout); + } - /** - * Outputs feed to the browser - needed for on-the-fly feed generation (like it is done in WordPress, etc.) - * - * @param format string format the feed should comply to. Valid values are: - * "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3". - */ - function outputFeed($format='RSS0.91') { + /** + * Outputs feed to the browser - needed for on-the-fly feed generation (like it is done in WordPress, etc.) + * + * @param format string format the feed should comply to. Valid values are: + * "PIE0.1" (deprecated), "mbox", "RSS0.91", "RSS1.0", "RSS2.0", "OPML", "ATOM0.3". + */ + function outputFeed($format='RSS0.91') { $this->_setFormat($format); - $this->_sendMIME($format); + $this->_sendMIME(); $this->_feed->outputFeed(); - } + } } @@ -794,7 +794,8 @@ class RSSCreator10 extends FeedCreator { $feed.= " ".htmlspecialchars($now->iso8601())."\n"; $feed.= " \n"; $feed.= " \n"; - for ($i=0;$iitems);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " items[$i]->link)."\"/>\n"; } $feed.= " \n"; @@ -809,7 +810,8 @@ class RSSCreator10 extends FeedCreator { } $feed.= $this->_createAdditionalElements($this->additionalElements, " "); - for ($i=0;$iitems);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " items[$i]->link)."\">\n"; //$feed.= " Posting\n"; $feed.= " text/html\n"; @@ -940,7 +942,8 @@ class RSSCreator091 extends FeedCreator { } $feed.= $this->_createAdditionalElements($this->additionalElements, " "); - for ($i=0;$iitems);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " \n"; $feed.= " ".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)),100)."\n"; $feed.= " ".htmlspecialchars($this->items[$i]->link)."\n"; @@ -968,7 +971,7 @@ class RSSCreator091 extends FeedCreator { $feed.= " ".htmlspecialchars($this->items[$i]->comments)."\n"; } if ($this->items[$i]->date!="") { - $itemDate = new FeedDate($this->items[$i]->date); + $itemDate = new FeedDate($this->items[$i]->date); $feed.= " ".htmlspecialchars($itemDate->rfc822())."\n"; } if ($this->items[$i]->guid!="") { @@ -976,18 +979,15 @@ class RSSCreator091 extends FeedCreator { } $feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, " "); - if ($this->RSSVersion == "2.0" && $this->items[$i]->enclosure != NULL) - { - $feed.= " items[$i]->enclosure->url; - $feed.= "\" length=\""; - $feed.= $this->items[$i]->enclosure->length; - $feed.= "\" type=\""; - $feed.= $this->items[$i]->enclosure->type; - $feed.= "\"/>\n"; - } - - + if ($this->RSSVersion == "2.0" && $this->items[$i]->enclosure != null) { + $feed.= " items[$i]->enclosure->url; + $feed.= "\" length=\""; + $feed.= $this->items[$i]->enclosure->length; + $feed.= "\" type=\""; + $feed.= $this->items[$i]->enclosure->type; + $feed.= "\"/>\n"; + } $feed.= " \n"; } @@ -1038,7 +1038,8 @@ class PIECreator01 extends FeedCreator { $this->truncSize = 500; $feed.= " ".$this->getDescription()."\n"; $feed.= " ".$this->link."\n"; - for ($i=0;$iitems);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " \n"; $feed.= " ".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)),100)."\n"; $feed.= " ".htmlspecialchars($this->items[$i]->link)."\n"; @@ -1081,7 +1082,7 @@ class PIECreator01 extends FeedCreator { * @since 1.7.2-mod (modified) * @author Mohammad Hafiz Ismail (mypapit@gmail.com) */ - class AtomCreator10 extends FeedCreator { +class AtomCreator10 extends FeedCreator { function AtomCreator10() { $this->contentType = "application/atom+xml"; @@ -1114,7 +1115,8 @@ class PIECreator01 extends FeedCreator { $feed.= " ".FEEDCREATOR_VERSION."\n"; $feed.= "syndicationURL . "\" />\n"; $feed.= $this->_createAdditionalElements($this->additionalElements, " "); - for ($i=0;$iitems);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " \n"; $feed.= " ".htmlspecialchars(strip_tags($this->items[$i]->title))."\n"; $feed.= " items[$i]->link)."\"/>\n"; @@ -1134,8 +1136,8 @@ class PIECreator01 extends FeedCreator { if ($this->items[$i]->description!="") { $feed.= " ".htmlspecialchars($this->items[$i]->description)."\n"; } - if ($this->items[$i]->enclosure != NULL) { - $feed.=" items[$i]->enclosure->url ."\" type=\"". $this->items[$i]->enclosure->type."\" length=\"". $this->items[$i]->enclosure->length . "\" />\n"; + if ($this->items[$i]->enclosure != null) { + $feed.=" items[$i]->enclosure->url ."\" type=\"". $this->items[$i]->enclosure->type."\" length=\"". $this->items[$i]->enclosure->length . "\" />\n"; } $feed.= " \n"; } @@ -1195,7 +1197,8 @@ class AtomCreator03 extends FeedCreator { } $feed.= " ".FEEDCREATOR_VERSION."\n"; $feed.= $this->_createAdditionalElements($this->additionalElements, " "); - for ($i=0;$iitems);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { $feed.= " \n"; $feed.= " ".htmlspecialchars(strip_tags($this->items[$i]->title))."\n"; $feed.= " items[$i]->link)."\"/>\n"; @@ -1254,7 +1257,8 @@ class MBOXCreator extends FeedCreator { if ( ($dec == 32) && ($i == ($linlen - 1)) ) { // convert space at eol only $c = "=20"; } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required - $h2 = floor($dec/16); $h1 = floor($dec%16); + $h2 = floor($dec/16); + $h1 = floor($dec%16); $c = $escape.$hex["$h2"].$hex["$h1"]; } if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted @@ -1274,7 +1278,8 @@ class MBOXCreator extends FeedCreator { * @return string the feed's complete text */ function createFeed() { - for ($i=0;$iitems);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { if ($this->items[$i]->author!="") { $from = $this->items[$i]->author; } else { @@ -1347,7 +1352,8 @@ class OPMLCreator extends FeedCreator { } $feed.= " \n"; $feed.= " \n"; - for ($i=0;$iitems);$i++) { + $icnt = count($this->items); + for ($i=0;$i<$icnt; $i++) { $feed.= " items[$i]->title,"\n\r"," "))); $feed.= " title=\"".$title."\""; @@ -1468,7 +1474,8 @@ class HTMLCreator extends FeedCreator { $feedArray[] = "
".$this->header."
"; } - for ($i=0;$iitems);$i++) { + $icnt = count($this->items); + for ($i=0; $i<$icnt; $i++) { if ($this->separator and $i > 0) { $feedArray[] = "
".$this->separator."
"; } @@ -1528,8 +1535,7 @@ class JSCreator extends HTMLCreator { * writes the javascript * @return string the scripts's complete text */ - function createFeed() - { + function createFeed() { $feed = parent::createFeed(); $feedArray = explode("\n",$feed); diff --git a/inc/template.php b/inc/template.php index 84fbda051..bab68e549 100644 --- a/inc/template.php +++ b/inc/template.php @@ -15,12 +15,12 @@ if(!defined('DOKU_INC')) die('meh.'); * @author Andreas Gohr */ function template($tpl){ - global $conf; + global $conf; - if(@is_readable(DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl)) - return DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl; + if(@is_readable(DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl)) + return DOKU_INC.'lib/tpl/'.$conf['template'].'/'.$tpl; - return DOKU_INC.'lib/tpl/default/'.$tpl; + return DOKU_INC.'lib/tpl/default/'.$tpl; } /** @@ -49,95 +49,95 @@ function tpl_content($prependTOC=true) { } function tpl_content_core(){ - global $ACT; - global $TEXT; - global $PRE; - global $SUF; - global $SUM; - global $IDX; - - switch($ACT){ - case 'show': - html_show(); - break; - case 'preview': - html_edit($TEXT); - html_show($TEXT); - break; - case 'recover': - html_edit($TEXT); - break; - case 'edit': - html_edit(); - break; - case 'draft': - html_draft(); - break; - case 'wordblock': - html_edit($TEXT,'wordblock'); - break; - case 'search': - html_search(); - break; - case 'revisions': - $first = isset($_REQUEST['first']) ? intval($_REQUEST['first']) : 0; - html_revisions($first); - break; - case 'diff': - html_diff(); - break; - case 'recent': - if (is_array($_REQUEST['first'])) { - $_REQUEST['first'] = array_keys($_REQUEST['first']); - $_REQUEST['first'] = $_REQUEST['first'][0]; - } - $first = is_numeric($_REQUEST['first']) ? intval($_REQUEST['first']) : 0; - html_recent($first); - break; - case 'index': - html_index($IDX); #FIXME can this be pulled from globals? is it sanitized correctly? - break; - case 'backlink': - html_backlinks(); - break; - case 'conflict': - html_conflict(con($PRE,$TEXT,$SUF),$SUM); - html_diff(con($PRE,$TEXT,$SUF),false); - break; - case 'locked': - html_locked(); - html_edit(); - break; - case 'login': - html_login(); - break; - case 'register': - html_register(); - break; - case 'resendpwd': - html_resendpwd(); - break; - case 'denied': - print p_locale_xhtml('denied'); - break; - case 'profile' : - html_updateprofile(); - break; - case 'admin': - tpl_admin(); - break; - case 'subscribe': - tpl_subscribe(); - break; - default: - $evt = new Doku_Event('TPL_ACT_UNKNOWN',$ACT); - if ($evt->advise_before()) - msg("Failed to handle command: ".hsc($ACT),-1); - $evt->advise_after(); - unset($evt); - return false; - } - return true; + global $ACT; + global $TEXT; + global $PRE; + global $SUF; + global $SUM; + global $IDX; + + switch($ACT){ + case 'show': + html_show(); + break; + case 'preview': + html_edit($TEXT); + html_show($TEXT); + break; + case 'recover': + html_edit($TEXT); + break; + case 'edit': + html_edit(); + break; + case 'draft': + html_draft(); + break; + case 'wordblock': + html_edit($TEXT,'wordblock'); + break; + case 'search': + html_search(); + break; + case 'revisions': + $first = isset($_REQUEST['first']) ? intval($_REQUEST['first']) : 0; + html_revisions($first); + break; + case 'diff': + html_diff(); + break; + case 'recent': + if (is_array($_REQUEST['first'])) { + $_REQUEST['first'] = array_keys($_REQUEST['first']); + $_REQUEST['first'] = $_REQUEST['first'][0]; + } + $first = is_numeric($_REQUEST['first']) ? intval($_REQUEST['first']) : 0; + html_recent($first); + break; + case 'index': + html_index($IDX); #FIXME can this be pulled from globals? is it sanitized correctly? + break; + case 'backlink': + html_backlinks(); + break; + case 'conflict': + html_conflict(con($PRE,$TEXT,$SUF),$SUM); + html_diff(con($PRE,$TEXT,$SUF),false); + break; + case 'locked': + html_locked(); + html_edit(); + break; + case 'login': + html_login(); + break; + case 'register': + html_register(); + break; + case 'resendpwd': + html_resendpwd(); + break; + case 'denied': + print p_locale_xhtml('denied'); + break; + case 'profile' : + html_updateprofile(); + break; + case 'admin': + tpl_admin(); + break; + case 'subscribe': + tpl_subscribe(); + break; + default: + $evt = new Doku_Event('TPL_ACT_UNKNOWN',$ACT); + if ($evt->advise_before()) + msg("Failed to handle command: ".hsc($ACT),-1); + $evt->advise_after(); + unset($evt); + return false; + } + return true; } /** @@ -183,13 +183,13 @@ function tpl_toc($return=false){ } } if ( ($plugin !== null) && - (!$plugin->forAdminOnly() || $INFO['isadmin']) ){ + (!$plugin->forAdminOnly() || $INFO['isadmin']) ){ $toc = $plugin->getTOC(); $TOC = $toc; // avoid later rebuild } } - trigger_event('TPL_TOC_RENDER', $toc, NULL, false); + trigger_event('TPL_TOC_RENDER', $toc, null, false); $html = html_TOC($toc); if($return) return $html; echo $html; @@ -210,8 +210,8 @@ function tpl_admin(){ if (in_array($_REQUEST['page'], $pluginlist)) { - // attempt to load the plugin - $plugin =& plugin_load('admin',$_REQUEST['page']); + // attempt to load the plugin + $plugin =& plugin_load('admin',$_REQUEST['page']); } } @@ -240,130 +240,129 @@ function tpl_admin(){ * @author Andreas Gohr */ function tpl_metaheaders($alt=true){ - global $ID; - global $REV; - global $INFO; - global $JSINFO; - global $ACT; - global $QUERY; - global $lang; - global $conf; - $it=2; - - // prepare the head array - $head = array(); - - // prepare seed for js and css - $tseed = 0; - $depends = getConfigFiles('main'); - foreach($depends as $f) { - $time = @filemtime($f); - if($time > $tseed) $tseed = $time; - } - - // the usual stuff - $head['meta'][] = array( 'name'=>'generator', 'content'=>'DokuWiki '.getVersion() ); - $head['link'][] = array( 'rel'=>'search', 'type'=>'application/opensearchdescription+xml', - 'href'=>DOKU_BASE.'lib/exe/opensearch.php', 'title'=>$conf['title'] ); - $head['link'][] = array( 'rel'=>'start', 'href'=>DOKU_BASE ); - if(actionOK('index')){ - $head['link'][] = array( 'rel'=>'contents', 'href'=> wl($ID,'do=index',false,'&'), - 'title'=>$lang['btn_index'] ); - } - - if($alt){ - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', - 'title'=>'Recent Changes', 'href'=>DOKU_BASE.'feed.php'); - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', - 'title'=>'Current Namespace', - 'href'=>DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']); - if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']){ - $head['link'][] = array( 'rel'=>'edit', - 'title'=>$lang['btn_edit'], - 'href'=> wl($ID,'do=edit',false,'&')); - } + global $ID; + global $REV; + global $INFO; + global $JSINFO; + global $ACT; + global $QUERY; + global $lang; + global $conf; + $it=2; + + // prepare the head array + $head = array(); - if($ACT == 'search'){ - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', - 'title'=>'Search Result', - 'href'=>DOKU_BASE.'feed.php?mode=search&q='.$QUERY); + // prepare seed for js and css + $tseed = 0; + $depends = getConfigFiles('main'); + foreach($depends as $f) { + $time = @filemtime($f); + if($time > $tseed) $tseed = $time; } - if(actionOK('export_xhtml')){ - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/html', 'title'=>'Plain HTML', - 'href'=>exportlink($ID, 'xhtml', '', false, '&')); + // the usual stuff + $head['meta'][] = array( 'name'=>'generator', 'content'=>'DokuWiki '.getVersion() ); + $head['link'][] = array( 'rel'=>'search', 'type'=>'application/opensearchdescription+xml', + 'href'=>DOKU_BASE.'lib/exe/opensearch.php', 'title'=>$conf['title'] ); + $head['link'][] = array( 'rel'=>'start', 'href'=>DOKU_BASE ); + if(actionOK('index')){ + $head['link'][] = array( 'rel'=>'contents', 'href'=> wl($ID,'do=index',false,'&'), + 'title'=>$lang['btn_index'] ); } - if(actionOK('export_raw')){ - $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/plain', 'title'=>'Wiki Markup', - 'href'=>exportlink($ID, 'raw', '', false, '&')); + if($alt){ + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', + 'title'=>'Recent Changes', 'href'=>DOKU_BASE.'feed.php'); + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', + 'title'=>'Current Namespace', + 'href'=>DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace']); + if(($ACT == 'show' || $ACT == 'search') && $INFO['writable']){ + $head['link'][] = array( 'rel'=>'edit', + 'title'=>$lang['btn_edit'], + 'href'=> wl($ID,'do=edit',false,'&')); + } + + if($ACT == 'search'){ + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'application/rss+xml', + 'title'=>'Search Result', + 'href'=>DOKU_BASE.'feed.php?mode=search&q='.$QUERY); + } + + if(actionOK('export_xhtml')){ + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/html', 'title'=>'Plain HTML', + 'href'=>exportlink($ID, 'xhtml', '', false, '&')); + } + + if(actionOK('export_raw')){ + $head['link'][] = array( 'rel'=>'alternate', 'type'=>'text/plain', 'title'=>'Wiki Markup', + 'href'=>exportlink($ID, 'raw', '', false, '&')); + } } - } - // setup robot tags apropriate for different modes - if( ($ACT=='show' || $ACT=='export_xhtml') && !$REV){ - if($INFO['exists']){ - //delay indexing: - if((time() - $INFO['lastmod']) >= $conf['indexdelay']){ + // setup robot tags apropriate for different modes + if( ($ACT=='show' || $ACT=='export_xhtml') && !$REV){ + if($INFO['exists']){ + //delay indexing: + if((time() - $INFO['lastmod']) >= $conf['indexdelay']){ + $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow'); + }else{ + $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow'); + } + $head['link'][] = array( 'rel'=>'canonical', 'href'=>wl($ID,'',true,'&') ); + }else{ + $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,follow'); + } + }elseif(defined('DOKU_MEDIADETAIL')){ $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow'); - }else{ - $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow'); - } - $head['link'][] = array( 'rel'=>'canonical', 'href'=>wl($ID,'',true,'&') ); }else{ - $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,follow'); + $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow'); } - }elseif(defined('DOKU_MEDIADETAIL')){ - $head['meta'][] = array( 'name'=>'robots', 'content'=>'index,follow'); - }else{ - $head['meta'][] = array( 'name'=>'robots', 'content'=>'noindex,nofollow'); - } - - // set metadata - if($ACT == 'show' || $ACT=='export_xhtml'){ - // date of modification - if($REV){ - $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$REV)); - }else{ - $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$INFO['lastmod'])); + + // set metadata + if($ACT == 'show' || $ACT=='export_xhtml'){ + // date of modification + if($REV){ + $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$REV)); + }else{ + $head['meta'][] = array( 'name'=>'date', 'content'=>date('Y-m-d\TH:i:sO',$INFO['lastmod'])); + } + + // keywords (explicit or implicit) + if(!empty($INFO['meta']['subject'])){ + $head['meta'][] = array( 'name'=>'keywords', 'content'=>join(',',$INFO['meta']['subject'])); + }else{ + $head['meta'][] = array( 'name'=>'keywords', 'content'=>str_replace(':',',',$ID)); + } } - // keywords (explicit or implicit) - if(!empty($INFO['meta']['subject'])){ - $head['meta'][] = array( 'name'=>'keywords', 'content'=>join(',',$INFO['meta']['subject'])); - }else{ - $head['meta'][] = array( 'name'=>'keywords', 'content'=>str_replace(':',',',$ID)); + // load stylesheets + $head['link'][] = array('rel'=>'stylesheet', 'media'=>'screen', 'type'=>'text/css', + 'href'=>DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed); + $head['link'][] = array('rel'=>'stylesheet', 'media'=>'all', 'type'=>'text/css', + 'href'=>DOKU_BASE.'lib/exe/css.php?s=all&t='.$conf['template'].'&tseed='.$tseed); + $head['link'][] = array('rel'=>'stylesheet', 'media'=>'print', 'type'=>'text/css', + 'href'=>DOKU_BASE.'lib/exe/css.php?s=print&t='.$conf['template'].'&tseed='.$tseed); + + // make $INFO and other vars available to JavaScripts + require_once(DOKU_INC.'inc/JSON.php'); + $json = new JSON(); + $script = "var NS='".$INFO['namespace']."';"; + if($conf['useacl'] && $_SERVER['REMOTE_USER']){ + require_once(DOKU_INC.'inc/toolbar.php'); + $script .= "var SIG='".toolbar_signature()."';"; } - } - - // load stylesheets - $head['link'][] = array('rel'=>'stylesheet', 'media'=>'screen', 'type'=>'text/css', - 'href'=>DOKU_BASE.'lib/exe/css.php?t='.$conf['template'].'&tseed='.$tseed); - $head['link'][] = array('rel'=>'stylesheet', 'media'=>'all', 'type'=>'text/css', - 'href'=>DOKU_BASE.'lib/exe/css.php?s=all&t='.$conf['template'].'&tseed='.$tseed); - $head['link'][] = array('rel'=>'stylesheet', 'media'=>'print', 'type'=>'text/css', - 'href'=>DOKU_BASE.'lib/exe/css.php?s=print&t='.$conf['template'].'&tseed='.$tseed); - - // make $INFO and other vars available to JavaScripts - require_once(DOKU_INC.'inc/JSON.php'); - $json = new JSON(); - $script = "var NS='".$INFO['namespace']."';"; - if($conf['useacl'] && $_SERVER['REMOTE_USER']){ - require_once(DOKU_INC.'inc/toolbar.php'); - $script .= "var SIG='".toolbar_signature()."';"; - } - $script .= 'var JSINFO = '.$json->encode($JSINFO).';'; - $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', - '_data'=> $script); - - // load external javascript - $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', '_data'=>'', - 'src'=>DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed); - - - // trigger event here - trigger_event('TPL_METAHEADER_OUTPUT',$head,'_tpl_metaheaders_action',true); - return true; + $script .= 'var JSINFO = '.$json->encode($JSINFO).';'; + $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', + '_data'=> $script); + + // load external javascript + $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', '_data'=>'', + 'src'=>DOKU_BASE.'lib/exe/js.php'.'?tseed='.$tseed); + + // trigger event here + trigger_event('TPL_METAHEADER_OUTPUT',$head,'_tpl_metaheaders_action',true); + return true; } /** @@ -379,22 +378,22 @@ function tpl_metaheaders($alt=true){ * @author Andreas Gohr */ function _tpl_metaheaders_action($data){ - foreach($data as $tag => $inst){ - foreach($inst as $attr){ - echo '<',$tag,' ',buildAttributes($attr); - if(isset($attr['_data']) || $tag == 'script'){ - if($tag == 'script' && $attr['_data']) - $attr['_data'] = ""; - - echo '>',$attr['_data'],''; - }else{ - echo '/>'; - } - echo "\n"; + foreach($data as $tag => $inst){ + foreach($inst as $attr){ + echo '<',$tag,' ',buildAttributes($attr); + if(isset($attr['_data']) || $tag == 'script'){ + if($tag == 'script' && $attr['_data']) + $attr['_data'] = ""; + + echo '>',$attr['_data'],''; + }else{ + echo '/>'; + } + echo "\n"; + } } - } } /** @@ -405,12 +404,12 @@ function _tpl_metaheaders_action($data){ * @author Andreas Gohr */ function tpl_link($url,$name,$more='',$return=false){ - $out = ' */ -function tpl_pagelink($id,$name=NULL){ - print html_wikilink($id,$name); - return true; +function tpl_pagelink($id,$name=null){ + print html_wikilink($id,$name); + return true; } /** @@ -434,16 +433,16 @@ function tpl_pagelink($id,$name=NULL){ * @author Andreas Gohr */ function tpl_getparent($id){ - global $conf; - $parent = getNS($id).':'; - resolve_pageid('',$parent,$exists); - if($parent == $id) { - $pos = strrpos (getNS($id),':'); - $parent = substr($parent,0,$pos).':'; + global $conf; + $parent = getNS($id).':'; resolve_pageid('',$parent,$exists); - if($parent == $id) return false; - } - return $parent; + if($parent == $id) { + $pos = strrpos (getNS($id),':'); + $parent = substr($parent,0,$pos).':'; + resolve_pageid('',$parent,$exists); + if($parent == $id) return false; + } + return $parent; } /** @@ -467,105 +466,105 @@ function tpl_getparent($id){ * @author Matthias Grimm */ function tpl_button($type,$return=false){ - global $ACT; - global $ID; - global $REV; - global $NS; - global $INFO; - global $conf; - global $auth; - - // check disabled actions and fix the badly named ones - $ctype = $type; - if($type == 'history') $ctype='revisions'; - if(!actionOK($ctype)) return false; - - $out = ''; - switch($type){ - case 'edit': - #most complicated type - we need to decide on current action - if($ACT == 'show' || $ACT == 'search'){ - if($INFO['writable']){ - if(!empty($INFO['draft'])){ - $out .= html_btn('draft',$ID,'e',array('do' => 'draft'),'post'); - }else{ - if($INFO['exists']){ - $out .= html_btn('edit',$ID,'e',array('do' => 'edit','rev' => $REV),'post'); + global $ACT; + global $ID; + global $REV; + global $NS; + global $INFO; + global $conf; + global $auth; + + // check disabled actions and fix the badly named ones + $ctype = $type; + if($type == 'history') $ctype='revisions'; + if(!actionOK($ctype)) return false; + + $out = ''; + switch($type){ + case 'edit': + // most complicated type - we need to decide on current action + if($ACT == 'show' || $ACT == 'search'){ + if($INFO['writable']){ + if(!empty($INFO['draft'])){ + $out .= html_btn('draft',$ID,'e',array('do' => 'draft'),'post'); + }else{ + if($INFO['exists']){ + $out .= html_btn('edit',$ID,'e',array('do' => 'edit','rev' => $REV),'post'); + }else{ + $out .= html_btn('create',$ID,'e',array('do' => 'edit','rev' => $REV),'post'); + } + } + }else{ + if(!actionOK('source')) return false; //pseudo action + $out .= html_btn('source',$ID,'v',array('do' => 'edit','rev' => $REV),'post'); + } }else{ - $out .= html_btn('create',$ID,'e',array('do' => 'edit','rev' => $REV),'post'); + $out .= html_btn('show',$ID,'v',array('do' => 'show')); } - } - }else{ - if(!actionOK('source')) return false; //pseudo action - $out .= html_btn('source',$ID,'v',array('do' => 'edit','rev' => $REV),'post'); - } - }else{ - $out .= html_btn('show',$ID,'v',array('do' => 'show')); - } - break; - case 'history': - if(actionOK('revisions')) - $out .= html_btn('revs',$ID,'o',array('do' => 'revisions')); - break; - case 'recent': - if(actionOK('recent')) - $out .= html_btn('recent',$ID,'r',array('do' => 'recent')); - break; - case 'index': - if(actionOK('index')) - $out .= html_btn('index',$ID,'x',array('do' => 'index')); - break; - case 'back': - if ($parent = tpl_getparent($ID)) { - $out .= html_btn('back',$parent,'b',array('do' => 'show')); - } - break; - case 'top': - $out .= html_topbtn(); - break; - case 'login': - if($conf['useacl'] && $auth){ - if(isset($_SERVER['REMOTE_USER'])){ - $out .= html_btn('logout',$ID,'',array('do' => 'logout', 'sectok' => getSecurityToken())); - }else{ - $out .= html_btn('login',$ID,'',array('do' => 'login', 'sectok' => getSecurityToken())); - } - } - break; - case 'admin': - if($INFO['ismanager']){ - $out .= html_btn('admin',$ID,'',array('do' => 'admin')); - } - break; - case 'revert': - if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ - $out .= html_btn('revert',$ID,'',array('do' => 'revert', 'rev' => $REV, 'sectok' => getSecurityToken())); - } - break; - case 'subscribe': - if ($conf['useacl'] && $auth && $ACT == 'show' && - $conf['subscribers'] && isset($_SERVER['REMOTE_USER']) && - actionOK('subscribe')) { - $out .= html_btn('subscribe',$ID,'',array('do' => 'subscribe',)); - } - break; - case 'backlink': - if(actionOK('backlink')) - $out .= html_btn('backlink',$ID,'',array('do' => 'backlink')); - break; - case 'profile': - if($conf['useacl'] && isset($_SERVER['REMOTE_USER']) && $auth && - $auth->canDo('Profile') && ($ACT!='profile')){ - $out .= html_btn('profile',$ID,'',array('do' => 'profile')); - } - break; - default: - $out .= '[unknown button type]'; - break; - } - if ($return) return $out; - print $out; - return $out ? true : false; + break; + case 'history': + if(actionOK('revisions')) + $out .= html_btn('revs',$ID,'o',array('do' => 'revisions')); + break; + case 'recent': + if(actionOK('recent')) + $out .= html_btn('recent',$ID,'r',array('do' => 'recent')); + break; + case 'index': + if(actionOK('index')) + $out .= html_btn('index',$ID,'x',array('do' => 'index')); + break; + case 'back': + if ($parent = tpl_getparent($ID)) { + $out .= html_btn('back',$parent,'b',array('do' => 'show')); + } + break; + case 'top': + $out .= html_topbtn(); + break; + case 'login': + if($conf['useacl'] && $auth){ + if(isset($_SERVER['REMOTE_USER'])){ + $out .= html_btn('logout',$ID,'',array('do' => 'logout', 'sectok' => getSecurityToken())); + }else{ + $out .= html_btn('login',$ID,'',array('do' => 'login', 'sectok' => getSecurityToken())); + } + } + break; + case 'admin': + if($INFO['ismanager']){ + $out .= html_btn('admin',$ID,'',array('do' => 'admin')); + } + break; + case 'revert': + if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ + $out .= html_btn('revert',$ID,'',array('do' => 'revert', 'rev' => $REV, 'sectok' => getSecurityToken())); + } + break; + case 'subscribe': + if ($conf['useacl'] && $auth && $ACT == 'show' && + $conf['subscribers'] && isset($_SERVER['REMOTE_USER']) && + actionOK('subscribe')) { + $out .= html_btn('subscribe',$ID,'',array('do' => 'subscribe',)); + } + break; + case 'backlink': + if(actionOK('backlink')) + $out .= html_btn('backlink',$ID,'',array('do' => 'backlink')); + break; + case 'profile': + if($conf['useacl'] && isset($_SERVER['REMOTE_USER']) && $auth && + $auth->canDo('Profile') && ($ACT!='profile')){ + $out .= html_btn('profile',$ID,'',array('do' => 'profile')); + } + break; + default: + $out .= '[unknown button type]'; + break; + } + if ($return) return $out; + print $out; + return $out ? true : false; } /** @@ -590,140 +589,140 @@ function tpl_button($type,$return=false){ * @see tpl_button */ function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ - global $ID; - global $INFO; - global $REV; - global $ACT; - global $conf; - global $lang; - global $auth; - - // check disabled actions and fix the badly named ones - $ctype = $type; - if($type == 'history') $ctype='revisions'; - if(!actionOK($ctype)) return false; - - $out = ''; - switch($type){ - case 'edit': - #most complicated type - we need to decide on current action - if($ACT == 'show' || $ACT == 'search'){ - if($INFO['writable']){ - if(!empty($INFO['draft'])) { - $out .= tpl_link(wl($ID,'do=draft'), - $pre.(($inner)?$inner:$lang['btn_draft']).$suf, - 'class="action edit" accesskey="e" rel="nofollow"',1); - } else { - if($INFO['exists']){ - $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), - $pre.(($inner)?$inner:$lang['btn_edit']).$suf, - 'class="action edit" accesskey="e" rel="nofollow"',1); + global $ID; + global $INFO; + global $REV; + global $ACT; + global $conf; + global $lang; + global $auth; + + // check disabled actions and fix the badly named ones + $ctype = $type; + if($type == 'history') $ctype='revisions'; + if(!actionOK($ctype)) return false; + + $out = ''; + switch($type){ + case 'edit': + // most complicated type - we need to decide on current action + if($ACT == 'show' || $ACT == 'search'){ + if($INFO['writable']){ + if(!empty($INFO['draft'])) { + $out .= tpl_link(wl($ID,'do=draft'), + $pre.(($inner)?$inner:$lang['btn_draft']).$suf, + 'class="action edit" accesskey="e" rel="nofollow"',1); + } else { + if($INFO['exists']){ + $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), + $pre.(($inner)?$inner:$lang['btn_edit']).$suf, + 'class="action edit" accesskey="e" rel="nofollow"',1); + }else{ + $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), + $pre.(($inner)?$inner:$lang['btn_create']).$suf, + 'class="action create" accesskey="e" rel="nofollow"',1); + } + } + }else{ + if(actionOK('source')) //pseudo action + $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), + $pre.(($inner)?$inner:$lang['btn_source']).$suf, + 'class="action source" accesskey="v" rel="nofollow"',1); + } }else{ - $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), - $pre.(($inner)?$inner:$lang['btn_create']).$suf, - 'class="action create" accesskey="e" rel="nofollow"',1); + $out .= tpl_link(wl($ID,'do=show'), + $pre.(($inner)?$inner:$lang['btn_show']).$suf, + 'class="action show" accesskey="v" rel="nofollow"',1); } - } - }else{ - if(actionOK('source')) //pseudo action - $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), - $pre.(($inner)?$inner:$lang['btn_source']).$suf, - 'class="action source" accesskey="v" rel="nofollow"',1); - } - }else{ - $out .= tpl_link(wl($ID,'do=show'), - $pre.(($inner)?$inner:$lang['btn_show']).$suf, - 'class="action show" accesskey="v" rel="nofollow"',1); - } - break; - case 'history': - if(actionOK('revisions')) - $out .= tpl_link(wl($ID,'do=revisions'), - $pre.(($inner)?$inner:$lang['btn_revs']).$suf, - 'class="action revisions" accesskey="o" rel="nofollow"',1); - break; - case 'recent': - if(actionOK('recent')) - $out .= tpl_link(wl($ID,'do=recent'), - $pre.(($inner)?$inner:$lang['btn_recent']).$suf, - 'class="action recent" accesskey="r" rel="nofollow"',1); - break; - case 'index': - if(actionOK('index')) - $out .= tpl_link(wl($ID,'do=index'), - $pre.(($inner)?$inner:$lang['btn_index']).$suf, - 'class="action index" accesskey="x" rel="nofollow"',1); - break; - case 'top': - $out .= ''. - $pre.(($inner)?$inner:$lang['btn_top']).$suf.''; - break; - case 'back': - if ($parent = tpl_getparent($ID)) { - $out .= tpl_link(wl($parent,'do=show'), - $pre.(($inner)?$inner:$lang['btn_back']).$suf, - 'class="action back" accesskey="b" rel="nofollow"',1); - } - break; - case 'login': - if($conf['useacl'] && $auth){ - if($_SERVER['REMOTE_USER']){ - $out .= tpl_link(wl($ID,'do=logout&sectok='.getSecurityToken()), - $pre.(($inner)?$inner:$lang['btn_logout']).$suf, - 'class="action logout" rel="nofollow"',1); - }else{ - $out .= tpl_link(wl($ID,'do=login&sectok='.getSecurityToken()), - $pre.(($inner)?$inner:$lang['btn_login']).$suf, - 'class="action login" rel="nofollow"',1); - } - } - break; - case 'admin': - if($INFO['ismanager']){ - $out .= tpl_link(wl($ID,'do=admin'), - $pre.(($inner)?$inner:$lang['btn_admin']).$suf, - 'class="action admin" rel="nofollow"',1); - } - break; - case 'revert': - if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ - $out .= tpl_link(wl($ID,array('do' => 'revert', 'rev' => $REV, 'sectok' => getSecurityToken())), - $pre.(($inner)?$inner:$lang['btn_revert']).$suf, - 'class="action revert" rel="nofollow"',1); - } - break; - case 'subscribe': - case 'subscription': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers']) { - if($_SERVER['REMOTE_USER']){ - if(actionOK('subscribe')) - $out .= tpl_link(wl($ID,'do=subscribe'), - $pre.(($inner)?$inner:$lang['btn_subscribe']).$suf, - 'class="action subscribe" rel="nofollow"',1); - } - } - break; - case 'backlink': - if(actionOK('backlink')) - $out .= tpl_link(wl($ID,'do=backlink'), - $pre.(($inner)?$inner:$lang['btn_backlink']).$suf, - 'class="action backlink" rel="nofollow"',1); - break; - case 'profile': - if($conf['useacl'] && $auth && $_SERVER['REMOTE_USER'] && - $auth->canDo('Profile') && ($ACT!='profile')){ - $out .= tpl_link(wl($ID,'do=profile'), - $pre.(($inner)?$inner:$lang['btn_profile']).$suf, - 'class="action profile" rel="nofollow"',1); - } - break; - default: - $out .= '[unknown link type]'; - break; - } - if ($return) return $out; - print $out; - return $out ? true : false; + break; + case 'history': + if(actionOK('revisions')) + $out .= tpl_link(wl($ID,'do=revisions'), + $pre.(($inner)?$inner:$lang['btn_revs']).$suf, + 'class="action revisions" accesskey="o" rel="nofollow"',1); + break; + case 'recent': + if(actionOK('recent')) + $out .= tpl_link(wl($ID,'do=recent'), + $pre.(($inner)?$inner:$lang['btn_recent']).$suf, + 'class="action recent" accesskey="r" rel="nofollow"',1); + break; + case 'index': + if(actionOK('index')) + $out .= tpl_link(wl($ID,'do=index'), + $pre.(($inner)?$inner:$lang['btn_index']).$suf, + 'class="action index" accesskey="x" rel="nofollow"',1); + break; + case 'top': + $out .= ''. + $pre.(($inner)?$inner:$lang['btn_top']).$suf.''; + break; + case 'back': + if ($parent = tpl_getparent($ID)) { + $out .= tpl_link(wl($parent,'do=show'), + $pre.(($inner)?$inner:$lang['btn_back']).$suf, + 'class="action back" accesskey="b" rel="nofollow"',1); + } + break; + case 'login': + if($conf['useacl'] && $auth){ + if($_SERVER['REMOTE_USER']){ + $out .= tpl_link(wl($ID,'do=logout&sectok='.getSecurityToken()), + $pre.(($inner)?$inner:$lang['btn_logout']).$suf, + 'class="action logout" rel="nofollow"',1); + }else{ + $out .= tpl_link(wl($ID,'do=login&sectok='.getSecurityToken()), + $pre.(($inner)?$inner:$lang['btn_login']).$suf, + 'class="action login" rel="nofollow"',1); + } + } + break; + case 'admin': + if($INFO['ismanager']){ + $out .= tpl_link(wl($ID,'do=admin'), + $pre.(($inner)?$inner:$lang['btn_admin']).$suf, + 'class="action admin" rel="nofollow"',1); + } + break; + case 'revert': + if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ + $out .= tpl_link(wl($ID,array('do' => 'revert', 'rev' => $REV, 'sectok' => getSecurityToken())), + $pre.(($inner)?$inner:$lang['btn_revert']).$suf, + 'class="action revert" rel="nofollow"',1); + } + break; + case 'subscribe': + case 'subscription': + if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers']) { + if($_SERVER['REMOTE_USER']){ + if(actionOK('subscribe')) + $out .= tpl_link(wl($ID,'do=subscribe'), + $pre.(($inner)?$inner:$lang['btn_subscribe']).$suf, + 'class="action subscribe" rel="nofollow"',1); + } + } + break; + case 'backlink': + if(actionOK('backlink')) + $out .= tpl_link(wl($ID,'do=backlink'), + $pre.(($inner)?$inner:$lang['btn_backlink']).$suf, + 'class="action backlink" rel="nofollow"',1); + break; + case 'profile': + if($conf['useacl'] && $auth && $_SERVER['REMOTE_USER'] && + $auth->canDo('Profile') && ($ACT!='profile')){ + $out .= tpl_link(wl($ID,'do=profile'), + $pre.(($inner)?$inner:$lang['btn_profile']).$suf, + 'class="action profile" rel="nofollow"',1); + } + break; + default: + $out .= '[unknown link type]'; + break; + } + if ($return) return $out; + print $out; + return $out ? true : false; } /** @@ -755,23 +754,23 @@ function tpl_action($type,$link=0,$wrapper=false,$return=false,$pre='',$suf='',$ * @author Andreas Gohr */ function tpl_searchform($ajax=true,$autocomplete=true){ - global $lang; - global $ACT; - global $QUERY; - - // don't print the search form if search action has been disabled - if (!actionOk('search')) return false; - - print ''; - return true; + global $lang; + global $ACT; + global $QUERY; + + // don't print the search form if search action has been disabled + if (!actionOk('search')) return false; + + print ''; + return true; } /** @@ -780,34 +779,34 @@ function tpl_searchform($ajax=true,$autocomplete=true){ * @author Andreas Gohr */ function tpl_breadcrumbs($sep='»'){ - global $lang; - global $conf; - - //check if enabled - if(!$conf['breadcrumbs']) return false; - - $crumbs = breadcrumbs(); //setup crumb trace - - //reverse crumborder in right-to-left mode, add RLM character to fix heb/eng display mixups - if($lang['direction'] == 'rtl') { - $crumbs = array_reverse($crumbs,true); - $crumbs_sep = ' ‏'.$sep.'‏ '; - } else { - $crumbs_sep = ' '.$sep.' '; - } - - //render crumbs, highlight the last one - print ''.$lang['breadcrumb'].':'; - $last = count($crumbs); - $i = 0; - foreach ($crumbs as $id => $name){ - $i++; - echo $crumbs_sep; - if ($i == $last) print ''; - tpl_link(wl($id),hsc($name),'class="breadcrumbs" title="'.$id.'"'); - if ($i == $last) print ''; - } - return true; + global $lang; + global $conf; + + //check if enabled + if(!$conf['breadcrumbs']) return false; + + $crumbs = breadcrumbs(); //setup crumb trace + + //reverse crumborder in right-to-left mode, add RLM character to fix heb/eng display mixups + if($lang['direction'] == 'rtl') { + $crumbs = array_reverse($crumbs,true); + $crumbs_sep = ' ‏'.$sep.'‏ '; + } else { + $crumbs_sep = ' '.$sep.' '; + } + + //render crumbs, highlight the last one + print ''.$lang['breadcrumb'].':'; + $last = count($crumbs); + $i = 0; + foreach ($crumbs as $id => $name){ + $i++; + echo $crumbs_sep; + if ($i == $last) print ''; + tpl_link(wl($id),hsc($name),'class="breadcrumbs" title="'.$id.'"'); + if ($i == $last) print ''; + } + return true; } /** @@ -823,59 +822,59 @@ function tpl_breadcrumbs($sep='»'){ * @todo May behave strangely in RTL languages */ function tpl_youarehere($sep=' » '){ - global $conf; - global $ID; - global $lang; - - // check if enabled - if(!$conf['youarehere']) return false; - - $parts = explode(':', $ID); - $count = count($parts); - - if($GLOBALS['ACT'] == 'search') - { - $parts = array($conf['start']); - $count = 1; - } - - echo ''.$lang['youarehere'].': '; - - // always print the startpage - $title = useHeading('navigation') ? p_get_first_heading($conf['start']) : $conf['start']; - if(!$title) $title = $conf['start']; - tpl_link(wl($conf['start']),hsc($title),'title="'.$conf['start'].'"'); - - // print intermediate namespace links - $part = ''; - for($i=0; $i<$count - 1; $i++){ - $part .= $parts[$i].':'; - $page = $part; - resolve_pageid('',$page,$exists); - if ($page == $conf['start']) continue; // Skip startpage - - // output + global $conf; + global $ID; + global $lang; + + // check if enabled + if(!$conf['youarehere']) return false; + + $parts = explode(':', $ID); + $count = count($parts); + + if($GLOBALS['ACT'] == 'search') + { + $parts = array($conf['start']); + $count = 1; + } + + echo ''.$lang['youarehere'].': '; + + // always print the startpage + $title = useHeading('navigation') ? p_get_first_heading($conf['start']) : $conf['start']; + if(!$title) $title = $conf['start']; + tpl_link(wl($conf['start']),hsc($title),'title="'.$conf['start'].'"'); + + // print intermediate namespace links + $part = ''; + for($i=0; $i<$count - 1; $i++){ + $part .= $parts[$i].':'; + $page = $part; + resolve_pageid('',$page,$exists); + if ($page == $conf['start']) continue; // Skip startpage + + // output + echo $sep; + if($exists){ + $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; + tpl_link(wl($page),hsc($title),'title="'.$page.'"'); + }else{ + tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); + } + } + + // print current page, skipping start page, skipping for namespace index + if(isset($page) && $page==$part.$parts[$i]) return; + $page = $part.$parts[$i]; + if($page == $conf['start']) return; echo $sep; - if($exists){ - $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; - tpl_link(wl($page),hsc($title),'title="'.$page.'"'); + if(page_exists($page)){ + $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; + tpl_link(wl($page),hsc($title),'title="'.$page.'"'); }else{ - tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); + tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); } - } - - // print current page, skipping start page, skipping for namespace index - if(isset($page) && $page==$part.$parts[$i]) return; - $page = $part.$parts[$i]; - if($page == $conf['start']) return; - echo $sep; - if(page_exists($page)){ - $title = useHeading('navigation') ? p_get_first_heading($page) : $parts[$i]; - tpl_link(wl($page),hsc($title),'title="'.$page.'"'); - }else{ - tpl_link(wl($page),$parts[$i],'title="'.$page.'" class="wikilink2" rel="nofollow"'); - } - return true; + return true; } /** @@ -887,98 +886,98 @@ function tpl_youarehere($sep=' » '){ * @author Andreas Gohr */ function tpl_userinfo(){ - global $lang; - global $INFO; - if(isset($_SERVER['REMOTE_USER'])){ - print $lang['loggedinas'].': '.$INFO['userinfo']['name'].' ('.$_SERVER['REMOTE_USER'].')'; - return true; - } - return false; -} + global $lang; + global $INFO; + if(isset($_SERVER['REMOTE_USER'])){ + print $lang['loggedinas'].': '.$INFO['userinfo']['name'].' ('.$_SERVER['REMOTE_USER'].')'; + return true; + } + return false; + } -/** - * Print some info about the current page - * - * @author Andreas Gohr - */ -function tpl_pageinfo($ret=false){ - global $conf; - global $lang; - global $INFO; - global $ID; - - // return if we are not allowed to view the page - if (!auth_quickaclcheck($ID)) { return false; } - - // prepare date and path - $fn = $INFO['filepath']; - if(!$conf['fullpath']){ - if($INFO['rev']){ - $fn = str_replace(fullpath($conf['olddir']).'/','',$fn); - }else{ - $fn = str_replace(fullpath($conf['datadir']).'/','',$fn); + /** + * Print some info about the current page + * + * @author Andreas Gohr + */ + function tpl_pageinfo($ret=false){ + global $conf; + global $lang; + global $INFO; + global $ID; + + // return if we are not allowed to view the page + if (!auth_quickaclcheck($ID)) { return false; } + + // prepare date and path + $fn = $INFO['filepath']; + if(!$conf['fullpath']){ + if($INFO['rev']){ + $fn = str_replace(fullpath($conf['olddir']).'/','',$fn); + }else{ + $fn = str_replace(fullpath($conf['datadir']).'/','',$fn); + } + } + $fn = utf8_decodeFN($fn); + $date = dformat($INFO['lastmod']); + + // print it + if($INFO['exists']){ + $out = ''; + $out .= $fn; + $out .= ' · '; + $out .= $lang['lastmod']; + $out .= ': '; + $out .= $date; + if($INFO['editor']){ + $out .= ' '.$lang['by'].' '; + $out .= editorinfo($INFO['editor']); + }else{ + $out .= ' ('.$lang['external_edit'].')'; + } + if($INFO['locked']){ + $out .= ' · '; + $out .= $lang['lockedby']; + $out .= ': '; + $out .= editorinfo($INFO['locked']); + } + if($ret){ + return $out; + }else{ + echo $out; + return true; + } + } + return false; + } + + /** + * Prints or returns the name of the given page (current one if none given). + * + * If useheading is enabled this will use the first headline else + * the given ID is used. + * + * @author Andreas Gohr + */ +function tpl_pagetitle($id=null, $ret=false){ + global $conf; + if(is_null($id)){ + global $ID; + $id = $ID; } - } - $fn = utf8_decodeFN($fn); - $date = dformat($INFO['lastmod']); - // print it - if($INFO['exists']){ - $out = ''; - $out .= $fn; - $out .= ' · '; - $out .= $lang['lastmod']; - $out .= ': '; - $out .= $date; - if($INFO['editor']){ - $out .= ' '.$lang['by'].' '; - $out .= editorinfo($INFO['editor']); - }else{ - $out .= ' ('.$lang['external_edit'].')'; - } - if($INFO['locked']){ - $out .= ' · '; - $out .= $lang['lockedby']; - $out .= ': '; - $out .= editorinfo($INFO['locked']); + $name = $id; + if (useHeading('navigation')) { + $title = p_get_first_heading($id); + if ($title) $name = $title; } - if($ret){ - return $out; - }else{ - echo $out; + + if ($ret) { + return hsc($name); + } else { + print hsc($name); return true; } - } - return false; -} - -/** - * Prints or returns the name of the given page (current one if none given). - * - * If useheading is enabled this will use the first headline else - * the given ID is used. - * - * @author Andreas Gohr - */ -function tpl_pagetitle($id=null, $ret=false){ - global $conf; - if(is_null($id)){ - global $ID; - $id = $ID; - } - - $name = $id; - if (useHeading('navigation')) { - $title = p_get_first_heading($id); - if ($title) $name = $title; - } - - if ($ret) { - return hsc($name); - } else { - print hsc($name); - return true; - } } /** @@ -996,17 +995,17 @@ function tpl_pagetitle($id=null, $ret=false){ * @author Andreas Gohr */ function tpl_img_getTag($tags,$alt='',$src=null){ - // Init Exif Reader - global $SRC; + // Init Exif Reader + global $SRC; - if(is_null($src)) $src = $SRC; + if(is_null($src)) $src = $SRC; - static $meta = null; - if(is_null($meta)) $meta = new JpegMeta($src); - if($meta === false) return $alt; - $info = $meta->getField($tags); - if($info == false) return $alt; - return $info; + static $meta = null; + if(is_null($meta)) $meta = new JpegMeta($src); + if($meta === false) return $alt; + $info = $meta->getField($tags); + if($info == false) return $alt; + return $info; } /** @@ -1015,52 +1014,52 @@ function tpl_img_getTag($tags,$alt='',$src=null){ * Only allowed in: detail.php */ function tpl_img($maxwidth=0,$maxheight=0){ - global $IMG; - $w = tpl_img_getTag('File.Width'); - $h = tpl_img_getTag('File.Height'); - - //resize to given max values - $ratio = 1; - if($w >= $h){ - if($maxwidth && $w >= $maxwidth){ - $ratio = $maxwidth/$w; - }elseif($maxheight && $h > $maxheight){ - $ratio = $maxheight/$h; + global $IMG; + $w = tpl_img_getTag('File.Width'); + $h = tpl_img_getTag('File.Height'); + + //resize to given max values + $ratio = 1; + if($w >= $h){ + if($maxwidth && $w >= $maxwidth){ + $ratio = $maxwidth/$w; + }elseif($maxheight && $h > $maxheight){ + $ratio = $maxheight/$h; + } + }else{ + if($maxheight && $h >= $maxheight){ + $ratio = $maxheight/$h; + }elseif($maxwidth && $w > $maxwidth){ + $ratio = $maxwidth/$w; + } + } + if($ratio){ + $w = floor($ratio*$w); + $h = floor($ratio*$h); } - }else{ - if($maxheight && $h >= $maxheight){ - $ratio = $maxheight/$h; - }elseif($maxwidth && $w > $maxwidth){ - $ratio = $maxwidth/$w; + + //prepare URLs + $url=ml($IMG,array('cache'=>$_REQUEST['cache'])); + $src=ml($IMG,array('cache'=>$_REQUEST['cache'],'w'=>$w,'h'=>$h)); + + //prepare attributes + $alt=tpl_img_getTag('Simple.Title'); + $p = array(); + if($w) $p['width'] = $w; + if($h) $p['height'] = $h; + $p['class'] = 'img_detail'; + if($alt){ + $p['alt'] = $alt; + $p['title'] = $alt; + }else{ + $p['alt'] = ''; } - } - if($ratio){ - $w = floor($ratio*$w); - $h = floor($ratio*$h); - } - - //prepare URLs - $url=ml($IMG,array('cache'=>$_REQUEST['cache'])); - $src=ml($IMG,array('cache'=>$_REQUEST['cache'],'w'=>$w,'h'=>$h)); - - //prepare attributes - $alt=tpl_img_getTag('Simple.Title'); - $p = array(); - if($w) $p['width'] = $w; - if($h) $p['height'] = $h; - $p['class'] = 'img_detail'; - if($alt){ - $p['alt'] = $alt; - $p['title'] = $alt; - }else{ - $p['alt'] = ''; - } - $p = buildAttributes($p); - - print ''; - print ''; - print ''; - return true; + $p = buildAttributes($p); + + print ''; + print ''; + print ''; + return true; } /** @@ -1071,21 +1070,21 @@ function tpl_img($maxwidth=0,$maxheight=0){ * template */ function tpl_indexerWebBug(){ - global $ID; - global $INFO; - if(!$INFO['exists']) return false; - - if(isHiddenPage($ID)) return false; //no need to index hidden pages - - $p = array(); - $p['src'] = DOKU_BASE.'lib/exe/indexer.php?id='.rawurlencode($ID). - '&'.time(); - $p['width'] = 1; - $p['height'] = 1; - $p['alt'] = ''; - $att = buildAttributes($p); - print ""; - return true; + global $ID; + global $INFO; + if(!$INFO['exists']) return false; + + if(isHiddenPage($ID)) return false; //no need to index hidden pages + + $p = array(); + $p['src'] = DOKU_BASE.'lib/exe/indexer.php?id='.rawurlencode($ID). + '&'.time(); + $p['width'] = 1; + $p['height'] = 1; + $p['alt'] = ''; + $att = buildAttributes($p); + print ""; + return true; } // configuration methods @@ -1095,23 +1094,23 @@ function tpl_indexerWebBug(){ * use this function to access template configuration variables */ function tpl_getConf($id){ - global $conf; - global $tpl_configloaded; - - $tpl = $conf['template']; - - if (!$tpl_configloaded){ - $tconf = tpl_loadConfig(); - if ($tconf !== false){ - foreach ($tconf as $key => $value){ - if (isset($conf['tpl'][$tpl][$key])) continue; - $conf['tpl'][$tpl][$key] = $value; - } - $tpl_configloaded = true; + global $conf; + global $tpl_configloaded; + + $tpl = $conf['template']; + + if (!$tpl_configloaded){ + $tconf = tpl_loadConfig(); + if ($tconf !== false){ + foreach ($tconf as $key => $value){ + if (isset($conf['tpl'][$tpl][$key])) continue; + $conf['tpl'][$tpl][$key] = $value; + } + $tpl_configloaded = true; + } } - } - return $conf['tpl'][$tpl][$id]; + return $conf['tpl'][$tpl][$id]; } /** @@ -1121,15 +1120,15 @@ function tpl_getConf($id){ */ function tpl_loadConfig(){ - $file = DOKU_TPLINC.'/conf/default.php'; - $conf = array(); + $file = DOKU_TPLINC.'/conf/default.php'; + $conf = array(); - if (!@file_exists($file)) return false; + if (!@file_exists($file)) return false; - // load default config file - include($file); + // load default config file + include($file); - return $conf; + return $conf; } /** @@ -1146,50 +1145,50 @@ function tpl_loadConfig(){ * @author Andreas Gohr */ function tpl_mediaContent($fromajax=false){ - global $IMG; - global $AUTH; - global $INUSE; - global $NS; - global $JUMPTO; - - if(is_array($_REQUEST['do'])){ - $do = array_shift(array_keys($_REQUEST['do'])); - }else{ - $do = $_REQUEST['do']; - } - if(in_array($do,array('save','cancel'))) $do = ''; - - if(!$do){ - if($_REQUEST['edit']){ - $do = 'metaform'; - }elseif(is_array($INUSE)){ - $do = 'filesinuse'; - }else{ - $do = 'filelist'; - } - } - - // output the content pane, wrapped in an event. - if(!$fromajax) ptln('
'); - $data = array( 'do' => $do); - $evt = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data); - if ($evt->advise_before()) { - $do = $data['do']; - if($do == 'metaform'){ - media_metaform($IMG,$AUTH); - }elseif($do == 'filesinuse'){ - media_filesinuse($INUSE,$IMG); - }elseif($do == 'filelist'){ - media_filelist($NS,$AUTH,$JUMPTO); - }elseif($do == 'searchlist'){ - media_searchlist($_REQUEST['q'],$NS,$AUTH); + global $IMG; + global $AUTH; + global $INUSE; + global $NS; + global $JUMPTO; + + if(is_array($_REQUEST['do'])){ + $do = array_shift(array_keys($_REQUEST['do'])); }else{ - msg('Unknown action '.hsc($do),-1); + $do = $_REQUEST['do']; + } + if(in_array($do,array('save','cancel'))) $do = ''; + + if(!$do){ + if($_REQUEST['edit']){ + $do = 'metaform'; + }elseif(is_array($INUSE)){ + $do = 'filesinuse'; + }else{ + $do = 'filelist'; + } + } + + // output the content pane, wrapped in an event. + if(!$fromajax) ptln('
'); + $data = array( 'do' => $do); + $evt = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data); + if ($evt->advise_before()) { + $do = $data['do']; + if($do == 'metaform'){ + media_metaform($IMG,$AUTH); + }elseif($do == 'filesinuse'){ + media_filesinuse($INUSE,$IMG); + }elseif($do == 'filelist'){ + media_filelist($NS,$AUTH,$JUMPTO); + }elseif($do == 'searchlist'){ + media_searchlist($_REQUEST['q'],$NS,$AUTH); + }else{ + msg('Unknown action '.hsc($do),-1); + } } - } - $evt->advise_after(); - unset($evt); - if(!$fromajax) ptln('
'); + $evt->advise_after(); + unset($evt); + if(!$fromajax) ptln('
'); } @@ -1201,11 +1200,11 @@ function tpl_mediaContent($fromajax=false){ * @author Andreas Gohr */ function tpl_mediaTree(){ - global $NS; + global $NS; - ptln('
'); - media_nstree($NS); - ptln('
'); + ptln('
'); + media_nstree($NS); + ptln('
'); } @@ -1225,9 +1224,8 @@ function tpl_actiondropdown($empty='',$button='>'){ global $lang; global $auth; - echo '
'; #FIXME action - echo ''; + echo ''; if($REV) echo ''; echo ''; @@ -1235,60 +1233,60 @@ function tpl_actiondropdown($empty='',$button='>'){ echo ''; echo ''; - // 'edit' - most complicated type, we need to decide on current action - if($ACT == 'show' || $ACT == 'search'){ - if($INFO['writable']){ - if(!empty($INFO['draft'])) { - echo ''; - } else { - if($INFO['exists']){ - echo ''; - }else{ - echo ''; - } + // 'edit' - most complicated type, we need to decide on current action + if($ACT == 'show' || $ACT == 'search'){ + if($INFO['writable']){ + if(!empty($INFO['draft'])) { + echo ''; + } else { + if($INFO['exists']){ + echo ''; + }else{ + echo ''; } - }else if(actionOK('source')) { //pseudo action - echo ''; } - }else{ - echo ''; + }else if(actionOK('source')) { //pseudo action + echo ''; } + }else{ + echo ''; + } - echo ''; - if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ - echo ''; - } - echo ''; + echo ''; + if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ + echo ''; + } + echo ''; echo ''; echo ''; - echo ''; - echo ''; + echo ''; + echo ''; echo ''; echo ''; - if($conf['useacl'] && $auth){ - if($_SERVER['REMOTE_USER']){ - echo ''; - }else{ - echo ''; - } + if($conf['useacl'] && $auth){ + if($_SERVER['REMOTE_USER']){ + echo ''; + }else{ + echo ''; } + } - if($conf['useacl'] && $auth && $_SERVER['REMOTE_USER'] && - $auth->canDo('Profile') && ($ACT!='profile')){ - echo ''; - } + if($conf['useacl'] && $auth && $_SERVER['REMOTE_USER'] && + $auth->canDo('Profile') && ($ACT!='profile')){ + echo ''; + } - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers']){ - if($_SERVER['REMOTE_USER']){ - echo ''; - } + if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers']){ + if($_SERVER['REMOTE_USER']){ + echo ''; } + } - if($INFO['ismanager']){ - echo ''; - } + if($INFO['ismanager']){ + echo ''; + } echo ''; echo ''; @@ -1379,7 +1377,6 @@ function tpl_subscribe() { echo ''.$lang['subscr_m_unsubscribe'].''; - echo ''; } echo ''; @@ -1391,14 +1388,14 @@ function tpl_subscribe() { echo '
'; $ns = getNS($ID).':'; $targets = array( - $ID => ''.prettyprint_id($ID).'', - $ns => ''.prettyprint_id($ns).'', - ); + $ID => ''.prettyprint_id($ID).'', + $ns => ''.prettyprint_id($ns).'', + ); $styles = array( - 'every' => $lang['subscr_style_every'], - 'digest' => $lang['subscr_style_digest'], - 'list' => $lang['subscr_style_list'], - ); + 'every' => $lang['subscr_style_every'], + 'digest' => $lang['subscr_style_digest'], + 'list' => $lang['subscr_style_list'], + ); $form = new Doku_Form(array('id' => 'subscribe__form')); $form->startFieldset($lang['subscr_m_subscribe']); -- cgit v1.2.3 From f5b787850258b8f9d343ed55434dbec1631f3092 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 29 Jan 2010 14:33:20 +0100 Subject: more code cleanup --- inc/DifferenceEngine.php | 1732 +++++++++++++++++++++++----------------------- inc/subscription.php | 2 +- 2 files changed, 865 insertions(+), 869 deletions(-) (limited to 'inc') diff --git a/inc/DifferenceEngine.php b/inc/DifferenceEngine.php index 760f1c39a..7b14e4463 100644 --- a/inc/DifferenceEngine.php +++ b/inc/DifferenceEngine.php @@ -10,75 +10,75 @@ define('USE_ASSERTS', function_exists('assert')); class _DiffOp { - var $type; - var $orig; - var $closing; + var $type; + var $orig; + var $closing; - function reverse() { - trigger_error("pure virtual", E_USER_ERROR); - } + function reverse() { + trigger_error("pure virtual", E_USER_ERROR); + } - function norig() { - return $this->orig ? sizeof($this->orig) : 0; - } + function norig() { + return $this->orig ? count($this->orig) : 0; + } - function nclosing() { - return $this->closing ? sizeof($this->closing) : 0; - } + function nclosing() { + return $this->closing ? count($this->closing) : 0; + } } class _DiffOp_Copy extends _DiffOp { - var $type = 'copy'; - - function _DiffOp_Copy ($orig, $closing = false) { - if (!is_array($closing)) - $closing = $orig; - $this->orig = $orig; - $this->closing = $closing; - } - - function reverse() { - return new _DiffOp_Copy($this->closing, $this->orig); - } + var $type = 'copy'; + + function _DiffOp_Copy ($orig, $closing = false) { + if (!is_array($closing)) + $closing = $orig; + $this->orig = $orig; + $this->closing = $closing; + } + + function reverse() { + return new _DiffOp_Copy($this->closing, $this->orig); + } } class _DiffOp_Delete extends _DiffOp { - var $type = 'delete'; + var $type = 'delete'; - function _DiffOp_Delete ($lines) { - $this->orig = $lines; - $this->closing = false; - } + function _DiffOp_Delete ($lines) { + $this->orig = $lines; + $this->closing = false; + } - function reverse() { - return new _DiffOp_Add($this->orig); - } + function reverse() { + return new _DiffOp_Add($this->orig); + } } class _DiffOp_Add extends _DiffOp { - var $type = 'add'; + var $type = 'add'; - function _DiffOp_Add ($lines) { - $this->closing = $lines; - $this->orig = false; - } + function _DiffOp_Add ($lines) { + $this->closing = $lines; + $this->orig = false; + } - function reverse() { - return new _DiffOp_Delete($this->closing); - } + function reverse() { + return new _DiffOp_Delete($this->closing); + } } class _DiffOp_Change extends _DiffOp { - var $type = 'change'; + var $type = 'change'; - function _DiffOp_Change ($orig, $closing) { - $this->orig = $orig; - $this->closing = $closing; - } + function _DiffOp_Change ($orig, $closing) { + $this->orig = $orig; + $this->closing = $closing; + } - function reverse() { - return new _DiffOp_Change($this->closing, $this->orig); - } + function reverse() { + return new _DiffOp_Change($this->closing, $this->orig); + } } @@ -102,577 +102,577 @@ class _DiffOp_Change extends _DiffOp { * @author Geoffrey T. Dairiki * @access private */ -class _DiffEngine -{ - function diff ($from_lines, $to_lines) { - $n_from = sizeof($from_lines); - $n_to = sizeof($to_lines); - - $this->xchanged = $this->ychanged = array(); - $this->xv = $this->yv = array(); - $this->xind = $this->yind = array(); - unset($this->seq); - unset($this->in_seq); - unset($this->lcs); - - // Skip leading common lines. - for ($skip = 0; $skip < $n_from && $skip < $n_to; $skip++) { - if ($from_lines[$skip] != $to_lines[$skip]) - break; - $this->xchanged[$skip] = $this->ychanged[$skip] = false; - } - // Skip trailing common lines. - $xi = $n_from; $yi = $n_to; - for ($endskip = 0; --$xi > $skip && --$yi > $skip; $endskip++) { - if ($from_lines[$xi] != $to_lines[$yi]) - break; - $this->xchanged[$xi] = $this->ychanged[$yi] = false; - } +class _DiffEngine { + + function diff ($from_lines, $to_lines) { + $n_from = count($from_lines); + $n_to = count($to_lines); + + $this->xchanged = $this->ychanged = array(); + $this->xv = $this->yv = array(); + $this->xind = $this->yind = array(); + unset($this->seq); + unset($this->in_seq); + unset($this->lcs); + + // Skip leading common lines. + for ($skip = 0; $skip < $n_from && $skip < $n_to; $skip++) { + if ($from_lines[$skip] != $to_lines[$skip]) + break; + $this->xchanged[$skip] = $this->ychanged[$skip] = false; + } + // Skip trailing common lines. + $xi = $n_from; + $yi = $n_to; + for ($endskip = 0; --$xi > $skip && --$yi > $skip; $endskip++) { + if ($from_lines[$xi] != $to_lines[$yi]) + break; + $this->xchanged[$xi] = $this->ychanged[$yi] = false; + } - // Ignore lines which do not exist in both files. - for ($xi = $skip; $xi < $n_from - $endskip; $xi++) - $xhash[$from_lines[$xi]] = 1; - for ($yi = $skip; $yi < $n_to - $endskip; $yi++) { - $line = $to_lines[$yi]; - if ( ($this->ychanged[$yi] = empty($xhash[$line])) ) - continue; - $yhash[$line] = 1; - $this->yv[] = $line; - $this->yind[] = $yi; - } - for ($xi = $skip; $xi < $n_from - $endskip; $xi++) { - $line = $from_lines[$xi]; - if ( ($this->xchanged[$xi] = empty($yhash[$line])) ) - continue; - $this->xv[] = $line; - $this->xind[] = $xi; - } + // Ignore lines which do not exist in both files. + for ($xi = $skip; $xi < $n_from - $endskip; $xi++) + $xhash[$from_lines[$xi]] = 1; + for ($yi = $skip; $yi < $n_to - $endskip; $yi++) { + $line = $to_lines[$yi]; + if ( ($this->ychanged[$yi] = empty($xhash[$line])) ) + continue; + $yhash[$line] = 1; + $this->yv[] = $line; + $this->yind[] = $yi; + } + for ($xi = $skip; $xi < $n_from - $endskip; $xi++) { + $line = $from_lines[$xi]; + if ( ($this->xchanged[$xi] = empty($yhash[$line])) ) + continue; + $this->xv[] = $line; + $this->xind[] = $xi; + } - // Find the LCS. - $this->_compareseq(0, sizeof($this->xv), 0, sizeof($this->yv)); - - // Merge edits when possible - $this->_shift_boundaries($from_lines, $this->xchanged, $this->ychanged); - $this->_shift_boundaries($to_lines, $this->ychanged, $this->xchanged); - - // Compute the edit operations. - $edits = array(); - $xi = $yi = 0; - while ($xi < $n_from || $yi < $n_to) { - USE_ASSERTS && assert($yi < $n_to || $this->xchanged[$xi]); - USE_ASSERTS && assert($xi < $n_from || $this->ychanged[$yi]); - - // Skip matching "snake". - $copy = array(); - while ( $xi < $n_from && $yi < $n_to - && !$this->xchanged[$xi] && !$this->ychanged[$yi]) { - $copy[] = $from_lines[$xi++]; - ++$yi; - } - if ($copy) - $edits[] = new _DiffOp_Copy($copy); - - // Find deletes & adds. - $delete = array(); - while ($xi < $n_from && $this->xchanged[$xi]) - $delete[] = $from_lines[$xi++]; - - $add = array(); - while ($yi < $n_to && $this->ychanged[$yi]) - $add[] = $to_lines[$yi++]; - - if ($delete && $add) - $edits[] = new _DiffOp_Change($delete, $add); - elseif ($delete) - $edits[] = new _DiffOp_Delete($delete); - elseif ($add) - $edits[] = new _DiffOp_Add($add); - } - return $edits; - } - - - /** - * Divide the Largest Common Subsequence (LCS) of the sequences - * [XOFF, XLIM) and [YOFF, YLIM) into NCHUNKS approximately equally - * sized segments. - * - * Returns (LCS, PTS). LCS is the length of the LCS. PTS is an - * array of NCHUNKS+1 (X, Y) indexes giving the diving points between - * sub sequences. The first sub-sequence is contained in [X0, X1), - * [Y0, Y1), the second in [X1, X2), [Y1, Y2) and so on. Note - * that (X0, Y0) == (XOFF, YOFF) and - * (X[NCHUNKS], Y[NCHUNKS]) == (XLIM, YLIM). - * - * This function assumes that the first lines of the specified portions - * of the two files do not match, and likewise that the last lines do not - * match. The caller must trim matching lines from the beginning and end - * of the portions it is going to specify. - */ - function _diag ($xoff, $xlim, $yoff, $ylim, $nchunks) { - $flip = false; - - if ($xlim - $xoff > $ylim - $yoff) { - // Things seems faster (I'm not sure I understand why) - // when the shortest sequence in X. - $flip = true; - list ($xoff, $xlim, $yoff, $ylim) - = array( $yoff, $ylim, $xoff, $xlim); + // Find the LCS. + $this->_compareseq(0, count($this->xv), 0, count($this->yv)); + + // Merge edits when possible + $this->_shift_boundaries($from_lines, $this->xchanged, $this->ychanged); + $this->_shift_boundaries($to_lines, $this->ychanged, $this->xchanged); + + // Compute the edit operations. + $edits = array(); + $xi = $yi = 0; + while ($xi < $n_from || $yi < $n_to) { + USE_ASSERTS && assert($yi < $n_to || $this->xchanged[$xi]); + USE_ASSERTS && assert($xi < $n_from || $this->ychanged[$yi]); + + // Skip matching "snake". + $copy = array(); + while ( $xi < $n_from && $yi < $n_to + && !$this->xchanged[$xi] && !$this->ychanged[$yi]) { + $copy[] = $from_lines[$xi++]; + ++$yi; + } + if ($copy) + $edits[] = new _DiffOp_Copy($copy); + + // Find deletes & adds. + $delete = array(); + while ($xi < $n_from && $this->xchanged[$xi]) + $delete[] = $from_lines[$xi++]; + + $add = array(); + while ($yi < $n_to && $this->ychanged[$yi]) + $add[] = $to_lines[$yi++]; + + if ($delete && $add) + $edits[] = new _DiffOp_Change($delete, $add); + elseif ($delete) + $edits[] = new _DiffOp_Delete($delete); + elseif ($add) + $edits[] = new _DiffOp_Add($add); + } + return $edits; } - if ($flip) - for ($i = $ylim - 1; $i >= $yoff; $i--) - $ymatches[$this->xv[$i]][] = $i; - else - for ($i = $ylim - 1; $i >= $yoff; $i--) - $ymatches[$this->yv[$i]][] = $i; - - $this->lcs = 0; - $this->seq[0]= $yoff - 1; - $this->in_seq = array(); - $ymids[0] = array(); - - $numer = $xlim - $xoff + $nchunks - 1; - $x = $xoff; - for ($chunk = 0; $chunk < $nchunks; $chunk++) { - if ($chunk > 0) - for ($i = 0; $i <= $this->lcs; $i++) - $ymids[$i][$chunk-1] = $this->seq[$i]; - - $x1 = $xoff + (int)(($numer + ($xlim-$xoff)*$chunk) / $nchunks); - for ( ; $x < $x1; $x++) { - $line = $flip ? $this->yv[$x] : $this->xv[$x]; - if (empty($ymatches[$line])) - continue; - $matches = $ymatches[$line]; - reset($matches); - while (list ($junk, $y) = each($matches)) - if (empty($this->in_seq[$y])) { - $k = $this->_lcs_pos($y); - USE_ASSERTS && assert($k > 0); - $ymids[$k] = $ymids[$k-1]; - break; - } - while (list ($junk, $y) = each($matches)) { - if ($y > $this->seq[$k-1]) { - USE_ASSERTS && assert($y < $this->seq[$k]); - // Optimization: this is a common case: - // next match is just replacing previous match. - $this->in_seq[$this->seq[$k]] = false; - $this->seq[$k] = $y; - $this->in_seq[$y] = 1; - } - else if (empty($this->in_seq[$y])) { - $k = $this->_lcs_pos($y); - USE_ASSERTS && assert($k > 0); - $ymids[$k] = $ymids[$k-1]; - } + + /** + * Divide the Largest Common Subsequence (LCS) of the sequences + * [XOFF, XLIM) and [YOFF, YLIM) into NCHUNKS approximately equally + * sized segments. + * + * Returns (LCS, PTS). LCS is the length of the LCS. PTS is an + * array of NCHUNKS+1 (X, Y) indexes giving the diving points between + * sub sequences. The first sub-sequence is contained in [X0, X1), + * [Y0, Y1), the second in [X1, X2), [Y1, Y2) and so on. Note + * that (X0, Y0) == (XOFF, YOFF) and + * (X[NCHUNKS], Y[NCHUNKS]) == (XLIM, YLIM). + * + * This function assumes that the first lines of the specified portions + * of the two files do not match, and likewise that the last lines do not + * match. The caller must trim matching lines from the beginning and end + * of the portions it is going to specify. + */ + function _diag ($xoff, $xlim, $yoff, $ylim, $nchunks) { + $flip = false; + + if ($xlim - $xoff > $ylim - $yoff) { + // Things seems faster (I'm not sure I understand why) + // when the shortest sequence in X. + $flip = true; + list ($xoff, $xlim, $yoff, $ylim) + = array( $yoff, $ylim, $xoff, $xlim); } - } - } - $seps[] = $flip ? array($yoff, $xoff) : array($xoff, $yoff); - $ymid = $ymids[$this->lcs]; - for ($n = 0; $n < $nchunks - 1; $n++) { - $x1 = $xoff + (int)(($numer + ($xlim - $xoff) * $n) / $nchunks); - $y1 = $ymid[$n] + 1; - $seps[] = $flip ? array($y1, $x1) : array($x1, $y1); - } - $seps[] = $flip ? array($ylim, $xlim) : array($xlim, $ylim); + if ($flip) + for ($i = $ylim - 1; $i >= $yoff; $i--) + $ymatches[$this->xv[$i]][] = $i; + else + for ($i = $ylim - 1; $i >= $yoff; $i--) + $ymatches[$this->yv[$i]][] = $i; + + $this->lcs = 0; + $this->seq[0]= $yoff - 1; + $this->in_seq = array(); + $ymids[0] = array(); + + $numer = $xlim - $xoff + $nchunks - 1; + $x = $xoff; + for ($chunk = 0; $chunk < $nchunks; $chunk++) { + if ($chunk > 0) + for ($i = 0; $i <= $this->lcs; $i++) + $ymids[$i][$chunk-1] = $this->seq[$i]; + + $x1 = $xoff + (int)(($numer + ($xlim-$xoff)*$chunk) / $nchunks); + for ( ; $x < $x1; $x++) { + $line = $flip ? $this->yv[$x] : $this->xv[$x]; + if (empty($ymatches[$line])) + continue; + $matches = $ymatches[$line]; + reset($matches); + while (list ($junk, $y) = each($matches)) + if (empty($this->in_seq[$y])) { + $k = $this->_lcs_pos($y); + USE_ASSERTS && assert($k > 0); + $ymids[$k] = $ymids[$k-1]; + break; + } + while (list ($junk, $y) = each($matches)) { + if ($y > $this->seq[$k-1]) { + USE_ASSERTS && assert($y < $this->seq[$k]); + // Optimization: this is a common case: + // next match is just replacing previous match. + $this->in_seq[$this->seq[$k]] = false; + $this->seq[$k] = $y; + $this->in_seq[$y] = 1; + } + else if (empty($this->in_seq[$y])) { + $k = $this->_lcs_pos($y); + USE_ASSERTS && assert($k > 0); + $ymids[$k] = $ymids[$k-1]; + } + } + } + } - return array($this->lcs, $seps); - } + $seps[] = $flip ? array($yoff, $xoff) : array($xoff, $yoff); + $ymid = $ymids[$this->lcs]; + for ($n = 0; $n < $nchunks - 1; $n++) { + $x1 = $xoff + (int)(($numer + ($xlim - $xoff) * $n) / $nchunks); + $y1 = $ymid[$n] + 1; + $seps[] = $flip ? array($y1, $x1) : array($x1, $y1); + } + $seps[] = $flip ? array($ylim, $xlim) : array($xlim, $ylim); - function _lcs_pos ($ypos) { - $end = $this->lcs; - if ($end == 0 || $ypos > $this->seq[$end]) { - $this->seq[++$this->lcs] = $ypos; - $this->in_seq[$ypos] = 1; - return $this->lcs; + return array($this->lcs, $seps); } - $beg = 1; - while ($beg < $end) { - $mid = (int)(($beg + $end) / 2); - if ( $ypos > $this->seq[$mid] ) - $beg = $mid + 1; - else - $end = $mid; - } + function _lcs_pos ($ypos) { + $end = $this->lcs; + if ($end == 0 || $ypos > $this->seq[$end]) { + $this->seq[++$this->lcs] = $ypos; + $this->in_seq[$ypos] = 1; + return $this->lcs; + } - USE_ASSERTS && assert($ypos != $this->seq[$end]); - - $this->in_seq[$this->seq[$end]] = false; - $this->seq[$end] = $ypos; - $this->in_seq[$ypos] = 1; - return $end; - } - - /** - * Find LCS of two sequences. - * - * The results are recorded in the vectors $this->{x,y}changed[], by - * storing a 1 in the element for each line that is an insertion - * or deletion (ie. is not in the LCS). - * - * The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1. - * - * Note that XLIM, YLIM are exclusive bounds. - * All line numbers are origin-0 and discarded lines are not counted. - */ - function _compareseq ($xoff, $xlim, $yoff, $ylim) { - // Slide down the bottom initial diagonal. - while ($xoff < $xlim && $yoff < $ylim - && $this->xv[$xoff] == $this->yv[$yoff]) { - ++$xoff; - ++$yoff; - } + $beg = 1; + while ($beg < $end) { + $mid = (int)(($beg + $end) / 2); + if ( $ypos > $this->seq[$mid] ) + $beg = $mid + 1; + else + $end = $mid; + } - // Slide up the top initial diagonal. - while ($xlim > $xoff && $ylim > $yoff - && $this->xv[$xlim - 1] == $this->yv[$ylim - 1]) { - --$xlim; - --$ylim; - } + USE_ASSERTS && assert($ypos != $this->seq[$end]); - if ($xoff == $xlim || $yoff == $ylim) - $lcs = 0; - else { - // This is ad hoc but seems to work well. - //$nchunks = sqrt(min($xlim - $xoff, $ylim - $yoff) / 2.5); - //$nchunks = max(2,min(8,(int)$nchunks)); - $nchunks = min(7, $xlim - $xoff, $ylim - $yoff) + 1; - list ($lcs, $seps) - = $this->_diag($xoff,$xlim,$yoff, $ylim,$nchunks); + $this->in_seq[$this->seq[$end]] = false; + $this->seq[$end] = $ypos; + $this->in_seq[$ypos] = 1; + return $end; } - if ($lcs == 0) { - // X and Y sequences have no common subsequence: - // mark all changed. - while ($yoff < $ylim) - $this->ychanged[$this->yind[$yoff++]] = 1; - while ($xoff < $xlim) - $this->xchanged[$this->xind[$xoff++]] = 1; - } - else { - // Use the partitions to split this problem into subproblems. - reset($seps); - $pt1 = $seps[0]; - while ($pt2 = next($seps)) { - $this->_compareseq ($pt1[0], $pt2[0], $pt1[1], $pt2[1]); - $pt1 = $pt2; - } - } - } - - /** - * Adjust inserts/deletes of identical lines to join changes - * as much as possible. - * - * We do something when a run of changed lines include a - * line at one end and has an excluded, identical line at the other. - * We are free to choose which identical line is included. - * `compareseq' usually chooses the one at the beginning, - * but usually it is cleaner to consider the following identical line - * to be the "change". - * - * This is extracted verbatim from analyze.c (GNU diffutils-2.7). - */ - function _shift_boundaries ($lines, &$changed, $other_changed) { - $i = 0; - $j = 0; - - USE_ASSERTS && assert('sizeof($lines) == sizeof($changed)'); - $len = sizeof($lines); - $other_len = sizeof($other_changed); - - while (1) { - /* - * Scan forwards to find beginning of another run of changes. - * Also keep track of the corresponding point in the other file. + /** + * Find LCS of two sequences. * - * Throughout this code, $i and $j are adjusted together so that - * the first $i elements of $changed and the first $j elements - * of $other_changed both contain the same number of zeros - * (unchanged lines). - * Furthermore, $j is always kept so that $j == $other_len or - * $other_changed[$j] == false. + * The results are recorded in the vectors $this->{x,y}changed[], by + * storing a 1 in the element for each line that is an insertion + * or deletion (ie. is not in the LCS). + * + * The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1. + * + * Note that XLIM, YLIM are exclusive bounds. + * All line numbers are origin-0 and discarded lines are not counted. */ - while ($j < $other_len && $other_changed[$j]) - $j++; - - while ($i < $len && ! $changed[$i]) { - USE_ASSERTS && assert('$j < $other_len && ! $other_changed[$j]'); - $i++; $j++; - while ($j < $other_len && $other_changed[$j]) - $j++; - } - - if ($i == $len) - break; - - $start = $i; - - // Find the end of this run of changes. - while (++$i < $len && $changed[$i]) - continue; + function _compareseq ($xoff, $xlim, $yoff, $ylim) { + // Slide down the bottom initial diagonal. + while ($xoff < $xlim && $yoff < $ylim + && $this->xv[$xoff] == $this->yv[$yoff]) { + ++$xoff; + ++$yoff; + } - do { - /* - * Record the length of this run of changes, so that - * we can later determine whether the run has grown. - */ - $runlength = $i - $start; + // Slide up the top initial diagonal. + while ($xlim > $xoff && $ylim > $yoff + && $this->xv[$xlim - 1] == $this->yv[$ylim - 1]) { + --$xlim; + --$ylim; + } - /* - * Move the changed region back, so long as the - * previous unchanged line matches the last changed one. - * This merges with previous changed regions. - */ - while ($start > 0 && $lines[$start - 1] == $lines[$i - 1]) { - $changed[--$start] = 1; - $changed[--$i] = false; - while ($start > 0 && $changed[$start - 1]) - $start--; - USE_ASSERTS && assert('$j > 0'); - while ($other_changed[--$j]) - continue; - USE_ASSERTS && assert('$j >= 0 && !$other_changed[$j]'); + if ($xoff == $xlim || $yoff == $ylim) + $lcs = 0; + else { + // This is ad hoc but seems to work well. + //$nchunks = sqrt(min($xlim - $xoff, $ylim - $yoff) / 2.5); + //$nchunks = max(2,min(8,(int)$nchunks)); + $nchunks = min(7, $xlim - $xoff, $ylim - $yoff) + 1; + list ($lcs, $seps) + = $this->_diag($xoff,$xlim,$yoff, $ylim,$nchunks); } - /* - * Set CORRESPONDING to the end of the changed run, at the last - * point where it corresponds to a changed run in the other file. - * CORRESPONDING == LEN means no such point has been found. - */ - $corresponding = $j < $other_len ? $i : $len; - - /* - * Move the changed region forward, so long as the - * first changed line matches the following unchanged one. - * This merges with following changed regions. - * Do this second, so that if there are no merges, - * the changed region is moved forward as far as possible. - */ - while ($i < $len && $lines[$start] == $lines[$i]) { - $changed[$start++] = false; - $changed[$i++] = 1; - while ($i < $len && $changed[$i]) - $i++; - - USE_ASSERTS && assert('$j < $other_len && ! $other_changed[$j]'); - $j++; - if ($j < $other_len && $other_changed[$j]) { - $corresponding = $i; - while ($j < $other_len && $other_changed[$j]) - $j++; - } + if ($lcs == 0) { + // X and Y sequences have no common subsequence: + // mark all changed. + while ($yoff < $ylim) + $this->ychanged[$this->yind[$yoff++]] = 1; + while ($xoff < $xlim) + $this->xchanged[$this->xind[$xoff++]] = 1; } - } while ($runlength != $i - $start); + else { + // Use the partitions to split this problem into subproblems. + reset($seps); + $pt1 = $seps[0]; + while ($pt2 = next($seps)) { + $this->_compareseq ($pt1[0], $pt2[0], $pt1[1], $pt2[1]); + $pt1 = $pt2; + } + } + } - /* - * If possible, move the fully-merged run of changes - * back to a corresponding run in the other file. + /** + * Adjust inserts/deletes of identical lines to join changes + * as much as possible. + * + * We do something when a run of changed lines include a + * line at one end and has an excluded, identical line at the other. + * We are free to choose which identical line is included. + * `compareseq' usually chooses the one at the beginning, + * but usually it is cleaner to consider the following identical line + * to be the "change". + * + * This is extracted verbatim from analyze.c (GNU diffutils-2.7). */ - while ($corresponding < $i) { - $changed[--$start] = 1; - $changed[--$i] = 0; - USE_ASSERTS && assert('$j > 0'); - while ($other_changed[--$j]) - continue; - USE_ASSERTS && assert('$j >= 0 && !$other_changed[$j]'); - } + function _shift_boundaries ($lines, &$changed, $other_changed) { + $i = 0; + $j = 0; + + USE_ASSERTS && assert('count($lines) == count($changed)'); + $len = count($lines); + $other_len = count($other_changed); + + while (1) { + /* + * Scan forwards to find beginning of another run of changes. + * Also keep track of the corresponding point in the other file. + * + * Throughout this code, $i and $j are adjusted together so that + * the first $i elements of $changed and the first $j elements + * of $other_changed both contain the same number of zeros + * (unchanged lines). + * Furthermore, $j is always kept so that $j == $other_len or + * $other_changed[$j] == false. + */ + while ($j < $other_len && $other_changed[$j]) + $j++; + + while ($i < $len && ! $changed[$i]) { + USE_ASSERTS && assert('$j < $other_len && ! $other_changed[$j]'); + $i++; + $j++; + while ($j < $other_len && $other_changed[$j]) + $j++; + } + + if ($i == $len) + break; + + $start = $i; + + // Find the end of this run of changes. + while (++$i < $len && $changed[$i]) + continue; + + do { + /* + * Record the length of this run of changes, so that + * we can later determine whether the run has grown. + */ + $runlength = $i - $start; + + /* + * Move the changed region back, so long as the + * previous unchanged line matches the last changed one. + * This merges with previous changed regions. + */ + while ($start > 0 && $lines[$start - 1] == $lines[$i - 1]) { + $changed[--$start] = 1; + $changed[--$i] = false; + while ($start > 0 && $changed[$start - 1]) + $start--; + USE_ASSERTS && assert('$j > 0'); + while ($other_changed[--$j]) + continue; + USE_ASSERTS && assert('$j >= 0 && !$other_changed[$j]'); + } + + /* + * Set CORRESPONDING to the end of the changed run, at the last + * point where it corresponds to a changed run in the other file. + * CORRESPONDING == LEN means no such point has been found. + */ + $corresponding = $j < $other_len ? $i : $len; + + /* + * Move the changed region forward, so long as the + * first changed line matches the following unchanged one. + * This merges with following changed regions. + * Do this second, so that if there are no merges, + * the changed region is moved forward as far as possible. + */ + while ($i < $len && $lines[$start] == $lines[$i]) { + $changed[$start++] = false; + $changed[$i++] = 1; + while ($i < $len && $changed[$i]) + $i++; + + USE_ASSERTS && assert('$j < $other_len && ! $other_changed[$j]'); + $j++; + if ($j < $other_len && $other_changed[$j]) { + $corresponding = $i; + while ($j < $other_len && $other_changed[$j]) + $j++; + } + } + } while ($runlength != $i - $start); + + /* + * If possible, move the fully-merged run of changes + * back to a corresponding run in the other file. + */ + while ($corresponding < $i) { + $changed[--$start] = 1; + $changed[--$i] = 0; + USE_ASSERTS && assert('$j > 0'); + while ($other_changed[--$j]) + continue; + USE_ASSERTS && assert('$j >= 0 && !$other_changed[$j]'); + } + } } - } } /** * Class representing a 'diff' between two sequences of strings. */ -class Diff -{ - var $edits; - - /** - * Constructor. - * Computes diff between sequences of strings. - * - * @param $from_lines array An array of strings. - * (Typically these are lines from a file.) - * @param $to_lines array An array of strings. - */ - function Diff($from_lines, $to_lines) { - $eng = new _DiffEngine; - $this->edits = $eng->diff($from_lines, $to_lines); - //$this->_check($from_lines, $to_lines); - } - - /** - * Compute reversed Diff. - * - * SYNOPSIS: - * - * $diff = new Diff($lines1, $lines2); - * $rev = $diff->reverse(); - * @return object A Diff object representing the inverse of the - * original diff. - */ - function reverse () { - $rev = $this; - $rev->edits = array(); - foreach ($this->edits as $edit) { - $rev->edits[] = $edit->reverse(); +class Diff { + + var $edits; + + /** + * Constructor. + * Computes diff between sequences of strings. + * + * @param $from_lines array An array of strings. + * (Typically these are lines from a file.) + * @param $to_lines array An array of strings. + */ + function Diff($from_lines, $to_lines) { + $eng = new _DiffEngine; + $this->edits = $eng->diff($from_lines, $to_lines); + //$this->_check($from_lines, $to_lines); } - return $rev; - } - - /** - * Check for empty diff. - * - * @return bool True iff two sequences were identical. - */ - function isEmpty () { - foreach ($this->edits as $edit) { - if ($edit->type != 'copy') - return false; + + /** + * Compute reversed Diff. + * + * SYNOPSIS: + * + * $diff = new Diff($lines1, $lines2); + * $rev = $diff->reverse(); + * @return object A Diff object representing the inverse of the + * original diff. + */ + function reverse () { + $rev = $this; + $rev->edits = array(); + foreach ($this->edits as $edit) { + $rev->edits[] = $edit->reverse(); + } + return $rev; } - return true; - } - - /** - * Compute the length of the Longest Common Subsequence (LCS). - * - * This is mostly for diagnostic purposed. - * - * @return int The length of the LCS. - */ - function lcs () { - $lcs = 0; - foreach ($this->edits as $edit) { - if ($edit->type == 'copy') - $lcs += sizeof($edit->orig); + + /** + * Check for empty diff. + * + * @return bool True iff two sequences were identical. + */ + function isEmpty () { + foreach ($this->edits as $edit) { + if ($edit->type != 'copy') + return false; + } + return true; } - return $lcs; - } - - /** - * Get the original set of lines. - * - * This reconstructs the $from_lines parameter passed to the - * constructor. - * - * @return array The original sequence of strings. - */ - function orig() { - $lines = array(); - - foreach ($this->edits as $edit) { - if ($edit->orig) - array_splice($lines, sizeof($lines), 0, $edit->orig); + + /** + * Compute the length of the Longest Common Subsequence (LCS). + * + * This is mostly for diagnostic purposed. + * + * @return int The length of the LCS. + */ + function lcs () { + $lcs = 0; + foreach ($this->edits as $edit) { + if ($edit->type == 'copy') + $lcs += count($edit->orig); + } + return $lcs; } - return $lines; - } - - /** - * Get the closing set of lines. - * - * This reconstructs the $to_lines parameter passed to the - * constructor. - * - * @return array The sequence of strings. - */ - function closing() { - $lines = array(); - - foreach ($this->edits as $edit) { - if ($edit->closing) - array_splice($lines, sizeof($lines), 0, $edit->closing); + + /** + * Get the original set of lines. + * + * This reconstructs the $from_lines parameter passed to the + * constructor. + * + * @return array The original sequence of strings. + */ + function orig() { + $lines = array(); + + foreach ($this->edits as $edit) { + if ($edit->orig) + array_splice($lines, count($lines), 0, $edit->orig); + } + return $lines; } - return $lines; - } - - /** - * Check a Diff for validity. - * - * This is here only for debugging purposes. - */ - function _check ($from_lines, $to_lines) { - if (serialize($from_lines) != serialize($this->orig())) - trigger_error("Reconstructed original doesn't match", E_USER_ERROR); - if (serialize($to_lines) != serialize($this->closing())) - trigger_error("Reconstructed closing doesn't match", E_USER_ERROR); - - $rev = $this->reverse(); - if (serialize($to_lines) != serialize($rev->orig())) - trigger_error("Reversed original doesn't match", E_USER_ERROR); - if (serialize($from_lines) != serialize($rev->closing())) - trigger_error("Reversed closing doesn't match", E_USER_ERROR); - - - $prevtype = 'none'; - foreach ($this->edits as $edit) { - if ( $prevtype == $edit->type ) - trigger_error("Edit sequence is non-optimal", E_USER_ERROR); - $prevtype = $edit->type; + + /** + * Get the closing set of lines. + * + * This reconstructs the $to_lines parameter passed to the + * constructor. + * + * @return array The sequence of strings. + */ + function closing() { + $lines = array(); + + foreach ($this->edits as $edit) { + if ($edit->closing) + array_splice($lines, count($lines), 0, $edit->closing); + } + return $lines; } - $lcs = $this->lcs(); - trigger_error("Diff okay: LCS = $lcs", E_USER_NOTICE); - } + /** + * Check a Diff for validity. + * + * This is here only for debugging purposes. + */ + function _check ($from_lines, $to_lines) { + if (serialize($from_lines) != serialize($this->orig())) + trigger_error("Reconstructed original doesn't match", E_USER_ERROR); + if (serialize($to_lines) != serialize($this->closing())) + trigger_error("Reconstructed closing doesn't match", E_USER_ERROR); + + $rev = $this->reverse(); + if (serialize($to_lines) != serialize($rev->orig())) + trigger_error("Reversed original doesn't match", E_USER_ERROR); + if (serialize($from_lines) != serialize($rev->closing())) + trigger_error("Reversed closing doesn't match", E_USER_ERROR); + + $prevtype = 'none'; + foreach ($this->edits as $edit) { + if ( $prevtype == $edit->type ) + trigger_error("Edit sequence is non-optimal", E_USER_ERROR); + $prevtype = $edit->type; + } + + $lcs = $this->lcs(); + trigger_error("Diff okay: LCS = $lcs", E_USER_NOTICE); + } } /** * FIXME: bad name. */ -class MappedDiff -extends Diff -{ - /** - * Constructor. - * - * Computes diff between sequences of strings. - * - * This can be used to compute things like - * case-insensitve diffs, or diffs which ignore - * changes in white-space. - * - * @param $from_lines array An array of strings. - * (Typically these are lines from a file.) - * - * @param $to_lines array An array of strings. - * - * @param $mapped_from_lines array This array should - * have the same size number of elements as $from_lines. - * The elements in $mapped_from_lines and - * $mapped_to_lines are what is actually compared - * when computing the diff. - * - * @param $mapped_to_lines array This array should - * have the same number of elements as $to_lines. - */ - function MappedDiff($from_lines, $to_lines, +class MappedDiff extends Diff { + /** + * Constructor. + * + * Computes diff between sequences of strings. + * + * This can be used to compute things like + * case-insensitve diffs, or diffs which ignore + * changes in white-space. + * + * @param $from_lines array An array of strings. + * (Typically these are lines from a file.) + * + * @param $to_lines array An array of strings. + * + * @param $mapped_from_lines array This array should + * have the same size number of elements as $from_lines. + * The elements in $mapped_from_lines and + * $mapped_to_lines are what is actually compared + * when computing the diff. + * + * @param $mapped_to_lines array This array should + * have the same number of elements as $to_lines. + */ + function MappedDiff($from_lines, $to_lines, $mapped_from_lines, $mapped_to_lines) { - assert(sizeof($from_lines) == sizeof($mapped_from_lines)); - assert(sizeof($to_lines) == sizeof($mapped_to_lines)); + assert(count($from_lines) == count($mapped_from_lines)); + assert(count($to_lines) == count($mapped_to_lines)); - $this->Diff($mapped_from_lines, $mapped_to_lines); + $this->Diff($mapped_from_lines, $mapped_to_lines); - $xi = $yi = 0; - for ($i = 0; $i < sizeof($this->edits); $i++) { - $orig = &$this->edits[$i]->orig; - if (is_array($orig)) { - $orig = array_slice($from_lines, $xi, sizeof($orig)); - $xi += sizeof($orig); - } + $xi = $yi = 0; + $ecnt = count($this->edits); + for ($i = 0; $i < $ecnt; $i++) { + $orig = &$this->edits[$i]->orig; + if (is_array($orig)) { + $orig = array_slice($from_lines, $xi, count($orig)); + $xi += count($orig); + } - $closing = &$this->edits[$i]->closing; - if (is_array($closing)) { - $closing = array_slice($to_lines, $yi, sizeof($closing)); - $yi += sizeof($closing); - } + $closing = &$this->edits[$i]->closing; + if (is_array($closing)) { + $closing = array_slice($to_lines, $yi, count($closing)); + $yi += count($closing); + } + } } - } } /** @@ -682,150 +682,149 @@ extends Diff * It is intended that this class be customized via inheritance, * to obtain fancier outputs. */ -class DiffFormatter -{ - /** - * Number of leading context "lines" to preserve. - * - * This should be left at zero for this class, but subclasses - * may want to set this to other values. - */ - var $leading_context_lines = 0; - - /** - * Number of trailing context "lines" to preserve. - * - * This should be left at zero for this class, but subclasses - * may want to set this to other values. - */ - var $trailing_context_lines = 0; - - /** - * Format a diff. - * - * @param $diff object A Diff object. - * @return string The formatted output. - */ - function format($diff) { - - $xi = $yi = 1; - $block = false; - $context = array(); - - $nlead = $this->leading_context_lines; - $ntrail = $this->trailing_context_lines; - - $this->_start_diff(); - - foreach ($diff->edits as $edit) { - if ($edit->type == 'copy') { - if (is_array($block)) { - if (sizeof($edit->orig) <= $nlead + $ntrail) { - $block[] = $edit; - } - else{ - if ($ntrail) { - $context = array_slice($edit->orig, 0, $ntrail); - $block[] = new _DiffOp_Copy($context); +class DiffFormatter { + /** + * Number of leading context "lines" to preserve. + * + * This should be left at zero for this class, but subclasses + * may want to set this to other values. + */ + var $leading_context_lines = 0; + + /** + * Number of trailing context "lines" to preserve. + * + * This should be left at zero for this class, but subclasses + * may want to set this to other values. + */ + var $trailing_context_lines = 0; + + /** + * Format a diff. + * + * @param $diff object A Diff object. + * @return string The formatted output. + */ + function format($diff) { + + $xi = $yi = 1; + $block = false; + $context = array(); + + $nlead = $this->leading_context_lines; + $ntrail = $this->trailing_context_lines; + + $this->_start_diff(); + + foreach ($diff->edits as $edit) { + if ($edit->type == 'copy') { + if (is_array($block)) { + if (count($edit->orig) <= $nlead + $ntrail) { + $block[] = $edit; + } + else{ + if ($ntrail) { + $context = array_slice($edit->orig, 0, $ntrail); + $block[] = new _DiffOp_Copy($context); + } + $this->_block($x0, $ntrail + $xi - $x0, + $y0, $ntrail + $yi - $y0, + $block); + $block = false; + } + } + $context = $edit->orig; } - $this->_block($x0, $ntrail + $xi - $x0, - $y0, $ntrail + $yi - $y0, - $block); - $block = false; - } + else { + if (! is_array($block)) { + $context = array_slice($context, count($context) - $nlead); + $x0 = $xi - count($context); + $y0 = $yi - count($context); + $block = array(); + if ($context) + $block[] = new _DiffOp_Copy($context); + } + $block[] = $edit; + } + + if ($edit->orig) + $xi += count($edit->orig); + if ($edit->closing) + $yi += count($edit->closing); } - $context = $edit->orig; - } - else { - if (! is_array($block)) { - $context = array_slice($context, sizeof($context) - $nlead); - $x0 = $xi - sizeof($context); - $y0 = $yi - sizeof($context); - $block = array(); - if ($context) - $block[] = new _DiffOp_Copy($context); + + if (is_array($block)) + $this->_block($x0, $xi - $x0, + $y0, $yi - $y0, + $block); + + return $this->_end_diff(); + } + + function _block($xbeg, $xlen, $ybeg, $ylen, &$edits) { + $this->_start_block($this->_block_header($xbeg, $xlen, $ybeg, $ylen)); + foreach ($edits as $edit) { + if ($edit->type == 'copy') + $this->_context($edit->orig); + elseif ($edit->type == 'add') + $this->_added($edit->closing); + elseif ($edit->type == 'delete') + $this->_deleted($edit->orig); + elseif ($edit->type == 'change') + $this->_changed($edit->orig, $edit->closing); + else + trigger_error("Unknown edit type", E_USER_ERROR); } - $block[] = $edit; - } + $this->_end_block(); + } + + function _start_diff() { + ob_start(); + } + + function _end_diff() { + $val = ob_get_contents(); + ob_end_clean(); + return $val; + } + + function _block_header($xbeg, $xlen, $ybeg, $ylen) { + if ($xlen > 1) + $xbeg .= "," . ($xbeg + $xlen - 1); + if ($ylen > 1) + $ybeg .= "," . ($ybeg + $ylen - 1); + + return $xbeg . ($xlen ? ($ylen ? 'c' : 'd') : 'a') . $ybeg; + } + + function _start_block($header) { + echo $header; + } + + function _end_block() { + } + + function _lines($lines, $prefix = ' ') { + foreach ($lines as $line) + echo "$prefix $line\n"; + } + + function _context($lines) { + $this->_lines($lines); + } - if ($edit->orig) - $xi += sizeof($edit->orig); - if ($edit->closing) - $yi += sizeof($edit->closing); + function _added($lines) { + $this->_lines($lines, ">"); + } + function _deleted($lines) { + $this->_lines($lines, "<"); } - if (is_array($block)) - $this->_block($x0, $xi - $x0, - $y0, $yi - $y0, - $block); - - return $this->_end_diff(); - } - - function _block($xbeg, $xlen, $ybeg, $ylen, &$edits) { - $this->_start_block($this->_block_header($xbeg, $xlen, $ybeg, $ylen)); - foreach ($edits as $edit) { - if ($edit->type == 'copy') - $this->_context($edit->orig); - elseif ($edit->type == 'add') - $this->_added($edit->closing); - elseif ($edit->type == 'delete') - $this->_deleted($edit->orig); - elseif ($edit->type == 'change') - $this->_changed($edit->orig, $edit->closing); - else - trigger_error("Unknown edit type", E_USER_ERROR); + function _changed($orig, $closing) { + $this->_deleted($orig); + echo "---\n"; + $this->_added($closing); } - $this->_end_block(); - } - - function _start_diff() { - ob_start(); - } - - function _end_diff() { - $val = ob_get_contents(); - ob_end_clean(); - return $val; - } - - function _block_header($xbeg, $xlen, $ybeg, $ylen) { - if ($xlen > 1) - $xbeg .= "," . ($xbeg + $xlen - 1); - if ($ylen > 1) - $ybeg .= "," . ($ybeg + $ylen - 1); - - return $xbeg . ($xlen ? ($ylen ? 'c' : 'd') : 'a') . $ybeg; - } - - function _start_block($header) { - echo $header; - } - - function _end_block() { - } - - function _lines($lines, $prefix = ' ') { - foreach ($lines as $line) - echo "$prefix $line\n"; - } - - function _context($lines) { - $this->_lines($lines); - } - - function _added($lines) { - $this->_lines($lines, ">"); - } - function _deleted($lines) { - $this->_lines($lines, "<"); - } - - function _changed($orig, $closing) { - $this->_deleted($orig); - echo "---\n"; - $this->_added($closing); - } } @@ -837,100 +836,97 @@ class DiffFormatter define('NBSP', "\xC2\xA0"); // utf-8 non-breaking space. class _HWLDF_WordAccumulator { - function _HWLDF_WordAccumulator () { - $this->_lines = array(); - $this->_line = ''; - $this->_group = ''; - $this->_tag = ''; - } - - function _flushGroup ($new_tag) { - if ($this->_group !== '') { - if ($this->_tag == 'mark') - $this->_line .= ''.$this->_group.''; - else - $this->_line .= $this->_group; - } - $this->_group = ''; - $this->_tag = $new_tag; - } - - function _flushLine ($new_tag) { - $this->_flushGroup($new_tag); - if ($this->_line != '') - $this->_lines[] = $this->_line; - $this->_line = ''; - } - - function addWords ($words, $tag = '') { - if ($tag != $this->_tag) - $this->_flushGroup($tag); - - foreach ($words as $word) { - // new-line should only come as first char of word. - if ($word == '') - continue; - if ($word[0] == "\n") { - $this->_group .= NBSP; - $this->_flushLine($tag); - $word = substr($word, 1); - } - assert(!strstr($word, "\n")); - $this->_group .= $word; + function _HWLDF_WordAccumulator () { + $this->_lines = array(); + $this->_line = ''; + $this->_group = ''; + $this->_tag = ''; } - } - - function getLines() { - $this->_flushLine('~done'); - return $this->_lines; - } -} -class WordLevelDiff extends MappedDiff -{ - function WordLevelDiff ($orig_lines, $closing_lines) { - list ($orig_words, $orig_stripped) = $this->_split($orig_lines); - list ($closing_words, $closing_stripped) = $this->_split($closing_lines); + function _flushGroup ($new_tag) { + if ($this->_group !== '') { + if ($this->_tag == 'mark') + $this->_line .= ''.$this->_group.''; + else + $this->_line .= $this->_group; + } + $this->_group = ''; + $this->_tag = $new_tag; + } + function _flushLine ($new_tag) { + $this->_flushGroup($new_tag); + if ($this->_line != '') + $this->_lines[] = $this->_line; + $this->_line = ''; + } - $this->MappedDiff($orig_words, $closing_words, - $orig_stripped, $closing_stripped); - } + function addWords ($words, $tag = '') { + if ($tag != $this->_tag) + $this->_flushGroup($tag); + + foreach ($words as $word) { + // new-line should only come as first char of word. + if ($word == '') + continue; + if ($word[0] == "\n") { + $this->_group .= NBSP; + $this->_flushLine($tag); + $word = substr($word, 1); + } + assert(!strstr($word, "\n")); + $this->_group .= $word; + } + } - function _split($lines) { - // FIXME: fix POSIX char class. -# if (!preg_match_all('/ ( [^\S\n]+ | [[:alnum:]]+ | . ) (?: (?!< \n) [^\S\n])? /xs', - if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs', - implode("\n", $lines), - $m)) { - return array(array(''), array('')); + function getLines() { + $this->_flushLine('~done'); + return $this->_lines; } - return array($m[0], $m[1]); - } +} + +class WordLevelDiff extends MappedDiff { - function orig () { - $orig = new _HWLDF_WordAccumulator; + function WordLevelDiff ($orig_lines, $closing_lines) { + list ($orig_words, $orig_stripped) = $this->_split($orig_lines); + list ($closing_words, $closing_stripped) = $this->_split($closing_lines); - foreach ($this->edits as $edit) { - if ($edit->type == 'copy') - $orig->addWords($edit->orig); - elseif ($edit->orig) - $orig->addWords($edit->orig, 'mark'); + $this->MappedDiff($orig_words, $closing_words, + $orig_stripped, $closing_stripped); } - return $orig->getLines(); - } - function closing () { - $closing = new _HWLDF_WordAccumulator; + function _split($lines) { + if (!preg_match_all('/ ( [^\S\n]+ | [0-9_A-Za-z\x80-\xff]+ | . ) (?: (?!< \n) [^\S\n])? /xs', + implode("\n", $lines), + $m)) { + return array(array(''), array('')); + } + return array($m[0], $m[1]); + } + + function orig () { + $orig = new _HWLDF_WordAccumulator; - foreach ($this->edits as $edit) { - if ($edit->type == 'copy') - $closing->addWords($edit->closing); - elseif ($edit->closing) - $closing->addWords($edit->closing, 'mark'); - } - return $closing->getLines(); - } + foreach ($this->edits as $edit) { + if ($edit->type == 'copy') + $orig->addWords($edit->orig); + elseif ($edit->orig) + $orig->addWords($edit->orig, 'mark'); + } + return $orig->getLines(); + } + + function closing () { + $closing = new _HWLDF_WordAccumulator; + + foreach ($this->edits as $edit) { + if ($edit->type == 'copy') + $closing->addWords($edit->closing); + elseif ($edit->closing) + $closing->addWords($edit->closing, 'mark'); + } + return $closing->getLines(); + } } /** @@ -938,8 +934,8 @@ class WordLevelDiff extends MappedDiff * * This class formats the diff in classic "unified diff" format. */ -class UnifiedDiffFormatter extends DiffFormatter -{ +class UnifiedDiffFormatter extends DiffFormatter { + function UnifiedDiffFormatter($context_lines = 4) { $this->leading_context_lines = $context_lines; $this->trailing_context_lines = $context_lines; @@ -969,12 +965,12 @@ class UnifiedDiffFormatter extends DiffFormatter * Wikipedia Table style diff formatter. * */ -class TableDiffFormatter extends DiffFormatter -{ - function TableDiffFormatter() { - $this->leading_context_lines = 2; - $this->trailing_context_lines = 2; - } +class TableDiffFormatter extends DiffFormatter { + + function TableDiffFormatter() { + $this->leading_context_lines = 2; + $this->trailing_context_lines = 2; + } function format($diff) { // Preserve whitespaces by converting some to non-breaking spaces. @@ -985,83 +981,83 @@ class TableDiffFormatter extends DiffFormatter return $val; } - function _pre($text){ - $text = htmlspecialchars($text); - return $text; - } - - function _block_header( $xbeg, $xlen, $ybeg, $ylen ) { - global $lang; - $l1 = $lang['line'].' '.$xbeg; - $l2 = $lang['line'].' '.$ybeg; - $r = ''.$l1.":\n" . - ''.$l2.":\n"; - return $r; - } - - function _start_block( $header ) { - print( $header ); - } - - function _end_block() { - } - - function _lines( $lines, $prefix=' ', $color="white" ) { - } - - function addedLine( $line ) { - return '+' . - $line.''; - - } - - function deletedLine( $line ) { - return '-' . - $line.''; - } - - function emptyLine() { - return ' '; - } - - function contextLine( $line ) { - return ' '.$line.''; - } - - function _added($lines) { - foreach ($lines as $line) { - print( '' . $this->emptyLine() . - $this->addedLine( $line ) . "\n" ); + function _pre($text){ + $text = htmlspecialchars($text); + return $text; + } + + function _block_header( $xbeg, $xlen, $ybeg, $ylen ) { + global $lang; + $l1 = $lang['line'].' '.$xbeg; + $l2 = $lang['line'].' '.$ybeg; + $r = ''.$l1.":\n" . + ''.$l2.":\n"; + return $r; + } + + function _start_block( $header ) { + print( $header ); + } + + function _end_block() { + } + + function _lines( $lines, $prefix=' ', $color="white" ) { + } + + function addedLine( $line ) { + return '+' . + $line.''; + + } + + function deletedLine( $line ) { + return '-' . + $line.''; } - } - function _deleted($lines) { - foreach ($lines as $line) { - print( '' . $this->deletedLine( $line ) . - $this->emptyLine() . "\n" ); + function emptyLine() { + return ' '; } - } - function _context( $lines ) { - foreach ($lines as $line) { - print( '' . $this->contextLine( $line ) . - $this->contextLine( $line ) . "\n" ); + function contextLine( $line ) { + return ' '.$line.''; } - } - function _changed( $orig, $closing ) { - $diff = new WordLevelDiff( $orig, $closing ); - $del = $diff->orig(); - $add = $diff->closing(); + function _added($lines) { + foreach ($lines as $line) { + print( '' . $this->emptyLine() . + $this->addedLine( $line ) . "\n" ); + } + } + + function _deleted($lines) { + foreach ($lines as $line) { + print( '' . $this->deletedLine( $line ) . + $this->emptyLine() . "\n" ); + } + } + + function _context( $lines ) { + foreach ($lines as $line) { + print( '' . $this->contextLine( $line ) . + $this->contextLine( $line ) . "\n" ); + } + } + + function _changed( $orig, $closing ) { + $diff = new WordLevelDiff( $orig, $closing ); + $del = $diff->orig(); + $add = $diff->closing(); - while ( $line = array_shift( $del ) ) { - $aline = array_shift( $add ); - print( '' . $this->deletedLine( $line ) . - $this->addedLine( $aline ) . "\n" ); + while ( $line = array_shift( $del ) ) { + $aline = array_shift( $add ); + print( '' . $this->deletedLine( $line ) . + $this->addedLine( $aline ) . "\n" ); + } + $this->_added( $add ); # If any leftovers } - $this->_added( $add ); # If any leftovers - } } -//Setup VIM: ex: et ts=2 enc=utf-8 : +//Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/inc/subscription.php b/inc/subscription.php index 12f0a4b82..69e153cf5 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -214,7 +214,7 @@ function subscription_regex($pre = array()) { * * @param array $data Containing $id (the page id), $self (whether the author * should be notified, $addresslist (current email address - list) + * list) * * @author Steven Danz * @author Adrian Lang -- cgit v1.2.3 From 8af66ab927067b9d8f9d71963e266a08967fa9d1 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 29 Jan 2010 17:08:40 +0100 Subject: table: Remove redundant parser data, update tests --- inc/parser/handler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/parser/handler.php b/inc/parser/handler.php index ea5a69b35..141cbcaf0 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -1205,7 +1205,7 @@ class Doku_Handler_Table { $this->tableCell($call); break; case 'table_end': - $this->tableRowClose(array('tablerow_close',$call[1],$call[2])); + $this->tableRowClose(array('tablerow_close', array())); $this->tableEnd($call); break; default: -- cgit v1.2.3 From 46d41845ed1f3e722a11e31b866023973545fd7c Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 31 Jan 2010 17:57:35 +0100 Subject: fixed call-time pass-by-reference warning --- inc/subscription.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/subscription.php b/inc/subscription.php index 69e153cf5..f7614014f 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -135,7 +135,7 @@ function subscription_find($page, $pre) { $subscription = trim($subscription) . " every\n"; } if (preg_match(subscription_regex($pre), $subscription, - &$line_matches) === 0) { + $line_matches) === 0) { continue; } $match = array_slice($line_matches, 1); -- cgit v1.2.3 From fcd3bb7cfe60027407e0af2ec83fafbf89758e9c Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 31 Jan 2010 18:00:38 +0100 Subject: fixed file header --- inc/indexer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/indexer.php b/inc/indexer.php index 14af579bb..39592e8f4 100644 --- a/inc/indexer.php +++ b/inc/indexer.php @@ -1,6 +1,6 @@ -- cgit v1.2.3 From 16905344219a6293705b71cd526fad3ba07b04eb Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 31 Jan 2010 19:02:14 +0100 Subject: first attempt to centralize all include loading Classes are loaded throug PHP5's class autoloader, all other includes are just loaded by default. This skips a lot of require_once calls. Parser and Plugin stuff isn't handled by the class loader yet. --- inc/FeedParser.php | 3 -- inc/JSON.php | 1 - inc/actions.php | 2 -- inc/auth.php | 100 ++++++++++++++++++++++++++------------------------- inc/cache.php | 3 -- inc/common.php | 7 ---- inc/events.php | 1 - inc/form.php | 1 - inc/fulltext.php | 2 -- inc/html.php | 2 -- inc/indexer.php | 3 -- inc/infoutils.php | 1 - inc/init.php | 8 +++-- inc/io.php | 4 --- inc/load.php | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++ inc/mail.php | 2 -- inc/media.php | 3 -- inc/parserutils.php | 4 --- inc/pluginutils.php | 1 - inc/search.php | 1 - inc/subscription.php | 2 -- inc/toolbar.php | 2 -- 22 files changed, 155 insertions(+), 96 deletions(-) create mode 100644 inc/load.php (limited to 'inc') diff --git a/inc/FeedParser.php b/inc/FeedParser.php index f37888f01..9d00e7abf 100644 --- a/inc/FeedParser.php +++ b/inc/FeedParser.php @@ -6,9 +6,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/HTTPClient.php'); -require_once(DOKU_INC.'inc/SimplePie.php'); - /** * We override some methods of the original SimplePie class here diff --git a/inc/JSON.php b/inc/JSON.php index 7ec400092..332827f4c 100644 --- a/inc/JSON.php +++ b/inc/JSON.php @@ -59,7 +59,6 @@ // for DokuWiki if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/utf8.php'); /** * Marker constant for JSON::decode(), used to flag stack state diff --git a/inc/actions.php b/inc/actions.php index 1fda0584e..7f9cb26d0 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -7,8 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/template.php'); - /** * Call the needed action handlers diff --git a/inc/auth.php b/inc/auth.php index c18104487..33626cf80 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -10,8 +10,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/io.php'); // some ACL level defines define('AUTH_NONE',0); @@ -22,15 +20,23 @@ define('AUTH_UPLOAD',8); define('AUTH_DELETE',16); define('AUTH_ADMIN',255); -global $conf; - -if($conf['useacl']){ - require_once(DOKU_INC.'inc/blowfish.php'); - require_once(DOKU_INC.'inc/mail.php'); - +/** + * Initialize the auth system. + * + * This function is automatically called at the end of init.php + * + * This used to be the main() of the auth.php + * + * @todo backend loading maybe should be handled by the class autoloader + * @todo maybe split into multiple functions at the XXX marked positions + */ +function auth_setup(){ + global $conf; global $auth; - // load the the backend auth functions and instantiate the auth object + if(!$conf['useacl']) return false; + + // load the the backend auth functions and instantiate the auth object XXX if (@file_exists(DOKU_INC.'inc/auth/'.$conf['authtype'].'.class.php')) { require_once(DOKU_INC.'inc/auth/basic.class.php'); require_once(DOKU_INC.'inc/auth/'.$conf['authtype'].'.class.php'); @@ -50,51 +56,49 @@ if($conf['useacl']){ } else { nice_die($lang['authmodfailed']); } -} -// do the login either by cookie or provided credentials -if($conf['useacl']){ - if($auth){ - if (!isset($_REQUEST['u'])) $_REQUEST['u'] = ''; - if (!isset($_REQUEST['p'])) $_REQUEST['p'] = ''; - if (!isset($_REQUEST['r'])) $_REQUEST['r'] = ''; - $_REQUEST['http_credentials'] = false; - if (!$conf['rememberme']) $_REQUEST['r'] = false; - - // streamline HTTP auth credentials (IIS/rewrite -> mod_php) - if(isset($_SERVER['HTTP_AUTHORIZATION'])){ - list($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']) = - explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); - } + if(!$auth) return; - // if no credentials were given try to use HTTP auth (for SSO) - if(empty($_REQUEST['u']) && empty($_COOKIE[DOKU_COOKIE]) && !empty($_SERVER['PHP_AUTH_USER'])){ - $_REQUEST['u'] = $_SERVER['PHP_AUTH_USER']; - $_REQUEST['p'] = $_SERVER['PHP_AUTH_PW']; - $_REQUEST['http_credentials'] = true; - } + // do the login either by cookie or provided credentials XXX + if (!isset($_REQUEST['u'])) $_REQUEST['u'] = ''; + if (!isset($_REQUEST['p'])) $_REQUEST['p'] = ''; + if (!isset($_REQUEST['r'])) $_REQUEST['r'] = ''; + $_REQUEST['http_credentials'] = false; + if (!$conf['rememberme']) $_REQUEST['r'] = false; - // apply cleaning - $_REQUEST['u'] = $auth->cleanUser($_REQUEST['u']); + // streamline HTTP auth credentials (IIS/rewrite -> mod_php) + if(isset($_SERVER['HTTP_AUTHORIZATION'])){ + list($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']) = + explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); + } - if(isset($_REQUEST['authtok'])){ - // when an authentication token is given, trust the session - auth_validateToken($_REQUEST['authtok']); - }elseif(!is_null($auth) && $auth->canDo('external')){ - // external trust mechanism in place - $auth->trustExternal($_REQUEST['u'],$_REQUEST['p'],$_REQUEST['r']); - }else{ - $evdata = array( - 'user' => $_REQUEST['u'], - 'password' => $_REQUEST['p'], - 'sticky' => $_REQUEST['r'], - 'silent' => $_REQUEST['http_credentials'], - ); - trigger_event('AUTH_LOGIN_CHECK', $evdata, 'auth_login_wrapper'); - } + // if no credentials were given try to use HTTP auth (for SSO) + if(empty($_REQUEST['u']) && empty($_COOKIE[DOKU_COOKIE]) && !empty($_SERVER['PHP_AUTH_USER'])){ + $_REQUEST['u'] = $_SERVER['PHP_AUTH_USER']; + $_REQUEST['p'] = $_SERVER['PHP_AUTH_PW']; + $_REQUEST['http_credentials'] = true; + } + + // apply cleaning + $_REQUEST['u'] = $auth->cleanUser($_REQUEST['u']); + + if(isset($_REQUEST['authtok'])){ + // when an authentication token is given, trust the session + auth_validateToken($_REQUEST['authtok']); + }elseif(!is_null($auth) && $auth->canDo('external')){ + // external trust mechanism in place + $auth->trustExternal($_REQUEST['u'],$_REQUEST['p'],$_REQUEST['r']); + }else{ + $evdata = array( + 'user' => $_REQUEST['u'], + 'password' => $_REQUEST['p'], + 'sticky' => $_REQUEST['r'], + 'silent' => $_REQUEST['http_credentials'], + ); + trigger_event('AUTH_LOGIN_CHECK', $evdata, 'auth_login_wrapper'); } - //load ACL into a global array + //load ACL into a global array XXX global $AUTH_ACL; if(is_readable(DOKU_CONF.'acl.auth.php')){ $AUTH_ACL = file(DOKU_CONF.'acl.auth.php'); diff --git a/inc/cache.php b/inc/cache.php index 2e22edfb1..571b314cd 100644 --- a/inc/cache.php +++ b/inc/cache.php @@ -7,9 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/io.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/parserutils.php'); class cache { var $key = ''; // primary identifier for this item diff --git a/inc/common.php b/inc/common.php index 9cadb56fd..ef35ca863 100644 --- a/inc/common.php +++ b/inc/common.php @@ -7,13 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/io.php'); -require_once(DOKU_INC.'inc/changelog.php'); -require_once(DOKU_INC.'inc/utf8.php'); -require_once(DOKU_INC.'inc/mail.php'); -require_once(DOKU_INC.'inc/parserutils.php'); -require_once(DOKU_INC.'inc/infoutils.php'); -require_once DOKU_INC.'inc/subscription.php'; /** * These constants are used with the recents function diff --git a/inc/events.php b/inc/events.php index e6b608f20..1c82af003 100644 --- a/inc/events.php +++ b/inc/events.php @@ -7,7 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/pluginutils.php'); class Doku_Event { diff --git a/inc/form.php b/inc/form.php index 0a6bc2bba..cebaf4608 100644 --- a/inc/form.php +++ b/inc/form.php @@ -7,7 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/html.php'); /** * Class for creating simple HTML forms. diff --git a/inc/fulltext.php b/inc/fulltext.php index 94c68d675..58d17422a 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -7,8 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/indexer.php'); - /** * The fulltext search diff --git a/inc/html.php b/inc/html.php index 8a215f440..5e1d0bab3 100644 --- a/inc/html.php +++ b/inc/html.php @@ -8,8 +8,6 @@ if(!defined('DOKU_INC')) die('meh.'); if(!defined('NL')) define('NL',"\n"); -require_once(DOKU_INC.'inc/parserutils.php'); -require_once(DOKU_INC.'inc/form.php'); /** * Convenience function to quickly build a wikilink diff --git a/inc/indexer.php b/inc/indexer.php index 39592e8f4..07b67c014 100644 --- a/inc/indexer.php +++ b/inc/indexer.php @@ -7,9 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/io.php'); -require_once(DOKU_INC.'inc/utf8.php'); -require_once(DOKU_INC.'inc/parserutils.php'); // set the minimum token length to use in the index (note, this doesn't apply to numeric tokens) if (!defined('IDX_MINWORDLENGTH')) define('IDX_MINWORDLENGTH',2); diff --git a/inc/infoutils.php b/inc/infoutils.php index d5356969b..6f2874fe5 100644 --- a/inc/infoutils.php +++ b/inc/infoutils.php @@ -7,7 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); if(!defined('DOKU_MESSAGEURL')) define('DOKU_MESSAGEURL','http://update.dokuwiki.org/check/'); -require_once(DOKU_INC.'inc/HTTPClient.php'); /** * Check for new messages from upstream diff --git a/inc/init.php b/inc/init.php index 6fb9559ce..3cff40073 100644 --- a/inc/init.php +++ b/inc/init.php @@ -37,6 +37,9 @@ if (!defined('DOKU_E_LEVEL')) { error_reporting(DOKU_E_LEVEL); } +// load libraries +require_once(DOKU_INC.'inc/load.php'); + // init memory caches global $cache_revinfo; $cache_revinfo = array(); @@ -245,6 +248,8 @@ init_files(); scriptify(DOKU_CONF.'users.auth'); scriptify(DOKU_CONF.'acl.auth'); +// setup authentication system +auth_setup(); /** * Checks paths from config file @@ -526,7 +531,6 @@ EOT; exit; } - /** * A realpath() replacement * @@ -588,5 +592,3 @@ function fullpath($path,$exists=false){ return $finalpath; } - - diff --git a/inc/io.php b/inc/io.php index 32a6f7b8e..1d69dabc9 100644 --- a/inc/io.php +++ b/inc/io.php @@ -7,10 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/HTTPClient.php'); -require_once(DOKU_INC.'inc/events.php'); -require_once(DOKU_INC.'inc/utf8.php'); /** * Removes empty directories diff --git a/inc/load.php b/inc/load.php new file mode 100644 index 000000000..9d305e3a9 --- /dev/null +++ b/inc/load.php @@ -0,0 +1,98 @@ + + */ + +// setup class autoloader +spl_autoload_register('load_autoload'); + +// require all the common libraries +// for a e few of these order does matter +require_once(DOKU_INC.'inc/DifferenceEngine.php'); +require_once(DOKU_INC.'inc/EmailAddressValidator.php'); +require_once(DOKU_INC.'inc/SimplePie.php'); +require_once(DOKU_INC.'inc/FeedParser.php'); +require_once(DOKU_INC.'inc/HTTPClient.php'); +require_once(DOKU_INC.'inc/IXR_Library.php'); +require_once(DOKU_INC.'inc/JSON.php'); +require_once(DOKU_INC.'inc/JpegMeta.php'); +require_once(DOKU_INC.'inc/TarLib.class.php'); +require_once(DOKU_INC.'inc/ZipLib.class.php'); +require_once(DOKU_INC.'inc/adLDAP.php'); +require_once(DOKU_INC.'inc/blowfish.php'); +require_once(DOKU_INC.'inc/feedcreator.class.php'); +require_once(DOKU_INC.'inc/geshi.php'); +require_once(DOKU_INC.'inc/actions.php'); +require_once(DOKU_INC.'inc/cache.php'); +require_once(DOKU_INC.'inc/changelog.php'); +require_once(DOKU_INC.'inc/cliopts.php'); +require_once(DOKU_INC.'inc/common.php'); +require_once(DOKU_INC.'inc/confutils.php'); +require_once(DOKU_INC.'inc/pluginutils.php'); +require_once(DOKU_INC.'inc/plugin.php'); +require_once(DOKU_INC.'inc/plugincontroller.class.php'); +require_once(DOKU_INC.'inc/events.php'); +require_once(DOKU_INC.'inc/form.php'); +require_once(DOKU_INC.'inc/fulltext.php'); +require_once(DOKU_INC.'inc/html.php'); +require_once(DOKU_INC.'inc/httputils.php'); +require_once(DOKU_INC.'inc/indexer.php'); +require_once(DOKU_INC.'inc/infoutils.php'); +require_once(DOKU_INC.'inc/init.php'); +require_once(DOKU_INC.'inc/io.php'); +require_once(DOKU_INC.'inc/load.php'); +require_once(DOKU_INC.'inc/mail.php'); +require_once(DOKU_INC.'inc/media.php'); +require_once(DOKU_INC.'inc/pageutils.php'); +require_once(DOKU_INC.'inc/parserutils.php'); +require_once(DOKU_INC.'inc/search.php'); +require_once(DOKU_INC.'inc/subscription.php'); +require_once(DOKU_INC.'inc/template.php'); +require_once(DOKU_INC.'inc/toolbar.php'); +require_once(DOKU_INC.'inc/utf8.php'); +require_once(DOKU_INC.'inc/auth.php'); + +/** + * spl_autoload_register callback + * + * Contains a static list of DokuWiki's core classes and automatically + * requires their associated php files when an object is instantiated. + * + * @author Andreas Gohr + * @todo add generic loading of plugins here + */ +function load_autoload($name){ + static $classes = null; + if(is_null($classes)) $classes = array( + 'DokuHTTPClient' => DOKU_INC.'inc/HTTPClient.php', + 'DokuEvent' => DOKU_INC.'inc/', + 'JSON' => DOKU_INC.'inc/JSON.php', + 'adLDAP' => DOKU_INC.'inc/adLDAP.php', + 'Diff' => DOKU_INC.'inc/DifferenceEngine.php', + 'UnifiedDiffFormatter' => DOKU_INC.'inc/DifferenceEngine.php', + 'TableDiffFormatter' => DOKU_INC.'inc/DifferenceEngine.php', + 'cache' => DOKU_INC.'inc/cache.php', + 'cache_parser' => DOKU_INC.'inc/cache.php', + 'cache_instructions' => DOKU_INC.'inc/cache.php', + 'cache_renderer' => DOKU_INC.'inc/cache.php', + 'Doku_Event' => DOKU_INC.'inc/events.php', + 'Doku_Event_Handler' => DOKU_INC.'inc/events.php', + 'Doku_Form' => DOKU_INC.'inc/form.php', + 'EmailAddressValidator' => DOKU_INC.'inc/EmailAddressValidator.php', + 'JpegMeta' => DOKU_INC.'inc/JpegMeta.php', + 'FeedParser' => DOKU_INC.'inc/FeedParser.php', + 'utf8_entity_decoder' => DOKU_INC.'inc/utf8.php', + 'IXR_Server' => DOKU_INC.'inc/IXR_Library.php', + 'IXR_Client' => DOKU_INC.'inc/IXR_Library.php', + 'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.class.php', + 'GeSHi' => DOKU_INC.'inc/geshi.php', + ); + + if(isset($classes[$name])){ + require_once($classes[$name]); + return; + } +} + diff --git a/inc/mail.php b/inc/mail.php index 3b0592b8b..6d1652fc0 100644 --- a/inc/mail.php +++ b/inc/mail.php @@ -7,8 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/utf8.php'); -require_once(DOKU_INC.'inc/EmailAddressValidator.php'); // end of line for mail lines - RFC822 says CRLF but postfix (and other MTAs?) // think different diff --git a/inc/media.php b/inc/media.php index 3850f4e33..444e6d432 100644 --- a/inc/media.php +++ b/inc/media.php @@ -8,9 +8,6 @@ if(!defined('DOKU_INC')) die('meh.'); if(!defined('NL')) define('NL',"\n"); -require_once(DOKU_INC.'inc/html.php'); -require_once(DOKU_INC.'inc/search.php'); -require_once(DOKU_INC.'inc/JpegMeta.php'); /** * Lists pages which currently use a media file selected for deletion diff --git a/inc/parserutils.php b/inc/parserutils.php index 471d46903..34d9e5282 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -8,10 +8,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/confutils.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/pluginutils.php'); -require_once(DOKU_INC.'inc/cache.php'); /** * Returns the parsed Wikitext in XHTML for the given id and revision. diff --git a/inc/pluginutils.php b/inc/pluginutils.php index 8294d1ec8..a8656a96a 100644 --- a/inc/pluginutils.php +++ b/inc/pluginutils.php @@ -8,7 +8,6 @@ // plugin related constants if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -require_once(DOKU_INC.'inc/plugincontroller.class.php'); $plugin_types = array('admin','syntax','action','renderer', 'helper'); diff --git a/inc/search.php b/inc/search.php index 2b9a51fb3..ce4fefe06 100644 --- a/inc/search.php +++ b/inc/search.php @@ -7,7 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/common.php'); /** * recurse direcory diff --git a/inc/subscription.php b/inc/subscription.php index f7614014f..e98129b77 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -14,8 +14,6 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) */ -require_once DOKU_INC.'/inc/pageutils.php'; - /** * Get the name of the metafile tracking subscriptions to target page or * namespace diff --git a/inc/toolbar.php b/inc/toolbar.php index 9140970d1..5d1149df3 100644 --- a/inc/toolbar.php +++ b/inc/toolbar.php @@ -7,8 +7,6 @@ */ if(!defined('DOKU_INC')) die('meh.'); -require_once(DOKU_INC.'inc/JSON.php'); - /** * Prepares and prints an JavaScript array with all toolbar buttons -- cgit v1.2.3 From 2dcde3047b0cbc7cb75b3d9f84fd05a217b7fced Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 1 Feb 2010 15:18:39 +0100 Subject: do not autorequire class only libraries those are loaded on demand through the autoloader mechanism Also cliopts.php is not loaded automatically at all --- inc/load.php | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) (limited to 'inc') diff --git a/inc/load.php b/inc/load.php index 9d305e3a9..792f05e27 100644 --- a/inc/load.php +++ b/inc/load.php @@ -10,29 +10,17 @@ spl_autoload_register('load_autoload'); // require all the common libraries // for a e few of these order does matter -require_once(DOKU_INC.'inc/DifferenceEngine.php'); -require_once(DOKU_INC.'inc/EmailAddressValidator.php'); -require_once(DOKU_INC.'inc/SimplePie.php'); -require_once(DOKU_INC.'inc/FeedParser.php'); -require_once(DOKU_INC.'inc/HTTPClient.php'); require_once(DOKU_INC.'inc/IXR_Library.php'); -require_once(DOKU_INC.'inc/JSON.php'); -require_once(DOKU_INC.'inc/JpegMeta.php'); -require_once(DOKU_INC.'inc/TarLib.class.php'); -require_once(DOKU_INC.'inc/ZipLib.class.php'); require_once(DOKU_INC.'inc/adLDAP.php'); require_once(DOKU_INC.'inc/blowfish.php'); require_once(DOKU_INC.'inc/feedcreator.class.php'); require_once(DOKU_INC.'inc/geshi.php'); require_once(DOKU_INC.'inc/actions.php'); -require_once(DOKU_INC.'inc/cache.php'); require_once(DOKU_INC.'inc/changelog.php'); -require_once(DOKU_INC.'inc/cliopts.php'); require_once(DOKU_INC.'inc/common.php'); require_once(DOKU_INC.'inc/confutils.php'); require_once(DOKU_INC.'inc/pluginutils.php'); require_once(DOKU_INC.'inc/plugin.php'); -require_once(DOKU_INC.'inc/plugincontroller.class.php'); require_once(DOKU_INC.'inc/events.php'); require_once(DOKU_INC.'inc/form.php'); require_once(DOKU_INC.'inc/fulltext.php'); @@ -58,7 +46,7 @@ require_once(DOKU_INC.'inc/auth.php'); * spl_autoload_register callback * * Contains a static list of DokuWiki's core classes and automatically - * requires their associated php files when an object is instantiated. + * require()s their associated php files when an object is instantiated. * * @author Andreas Gohr * @todo add generic loading of plugins here @@ -67,7 +55,6 @@ function load_autoload($name){ static $classes = null; if(is_null($classes)) $classes = array( 'DokuHTTPClient' => DOKU_INC.'inc/HTTPClient.php', - 'DokuEvent' => DOKU_INC.'inc/', 'JSON' => DOKU_INC.'inc/JSON.php', 'adLDAP' => DOKU_INC.'inc/adLDAP.php', 'Diff' => DOKU_INC.'inc/DifferenceEngine.php', @@ -79,15 +66,16 @@ function load_autoload($name){ 'cache_renderer' => DOKU_INC.'inc/cache.php', 'Doku_Event' => DOKU_INC.'inc/events.php', 'Doku_Event_Handler' => DOKU_INC.'inc/events.php', - 'Doku_Form' => DOKU_INC.'inc/form.php', 'EmailAddressValidator' => DOKU_INC.'inc/EmailAddressValidator.php', 'JpegMeta' => DOKU_INC.'inc/JpegMeta.php', + 'SimplePie' => DOKU_INC.'inc/SimplePie.php', 'FeedParser' => DOKU_INC.'inc/FeedParser.php', - 'utf8_entity_decoder' => DOKU_INC.'inc/utf8.php', 'IXR_Server' => DOKU_INC.'inc/IXR_Library.php', 'IXR_Client' => DOKU_INC.'inc/IXR_Library.php', 'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.class.php', 'GeSHi' => DOKU_INC.'inc/geshi.php', + 'TarLib' => DOKU_INC.'inc/TarLib.class.php', + 'ZibLib' => DOKU_INC.'inc/ZipLib.class.php', ); if(isset($classes[$name])){ -- cgit v1.2.3 From 0af14a6e25ba35e88d96762bc73325838868e3fe Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 1 Feb 2010 15:38:41 +0100 Subject: removed more unneeded require_once() calls --- inc/IXR_Library.php | 1 - inc/actions.php | 1 - inc/common.php | 2 -- inc/fulltext.php | 1 - inc/html.php | 5 ----- inc/infoutils.php | 1 - inc/media.php | 2 -- inc/parserutils.php | 2 -- inc/search.php | 2 -- inc/subscription.php | 1 - inc/template.php | 2 -- 11 files changed, 20 deletions(-) (limited to 'inc') diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 25d1066b0..afa496aed 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -364,7 +364,6 @@ EOD; #$result = $this->$method($args); $result = call_user_func_array(array(&$this,$method),$args); } elseif (substr($method, 0, 7) == 'plugin:') { - require_once(DOKU_INC.'inc/pluginutils.php'); list($pluginname, $callback) = explode(':', substr($method, 7), 2); if(!plugin_isdisabled($pluginname)) { $plugin = plugin_load('action', $pluginname); diff --git a/inc/actions.php b/inc/actions.php index 7f9cb26d0..91a1d9cdd 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -580,7 +580,6 @@ function act_subscription($act){ $action = $params['action']; // Perform action. - require_once DOKU_INC . 'inc/subscription.php'; if (!subscription_set($_SERVER['REMOTE_USER'], $target, $style, $data)) { throw new Exception(sprintf($lang["subscr_{$action}_error"], hsc($INFO['userinfo']['name']), diff --git a/inc/common.php b/inc/common.php index ef35ca863..c68eb2899 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1003,7 +1003,6 @@ function saveWikiText($id,$text,$summary,$minor=false){ // if useheading is enabled, purge the cache of all linking pages if(useHeading('content')){ - require_once(DOKU_INC.'inc/fulltext.php'); $pages = ft_backlinks($id); foreach ($pages as $page) { $cache = new cache_renderer($page, wikiFN($page), 'xhtml'); @@ -1091,7 +1090,6 @@ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ }elseif($rev){ $subject = $lang['mail_changed'].' '.$id; $text = str_replace('@OLDPAGE@',wl($id,"rev=$rev",true,'&'),$text); - require_once(DOKU_INC.'inc/DifferenceEngine.php'); $df = new Diff(explode("\n",rawWiki($id,$rev)), explode("\n",rawWiki($id))); $dformat = new UnifiedDiffFormatter(); diff --git a/inc/fulltext.php b/inc/fulltext.php index 58d17422a..76dd01d1f 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -133,7 +133,6 @@ function ft_backlinks($id){ $docs = array_keys(ft_resultCombine(array_values($matches))); $docs = array_filter($docs,'isVisiblePage'); // discard hidden pages if(!count($docs)) return $result; - require_once(DOKU_INC.'inc/parserutils.php'); // check metadata for matching links foreach($docs as $match){ diff --git a/inc/html.php b/inc/html.php index 5e1d0bab3..2d6c0a093 100644 --- a/inc/html.php +++ b/inc/html.php @@ -296,8 +296,6 @@ function html_hilight_callback($m) { * @author Andreas Gohr */ function html_search(){ - require_once(DOKU_INC.'inc/search.php'); - require_once(DOKU_INC.'inc/fulltext.php'); global $conf; global $QUERY; global $ID; @@ -690,7 +688,6 @@ function html_recent($first=0){ * @author Andreas Gohr */ function html_index($ns){ - require_once(DOKU_INC.'inc/search.php'); global $conf; global $ID; $dir = $conf['datadir']; @@ -828,7 +825,6 @@ function html_buildlist($data,$class,$func,$lifunc='html_li_default'){ * @author Michael Klier */ function html_backlinks(){ - require_once(DOKU_INC.'inc/fulltext.php'); global $ID; global $conf; global $lang; @@ -856,7 +852,6 @@ function html_backlinks(){ * @author Andreas Gohr */ function html_diff($text='',$intro=true){ - require_once(DOKU_INC.'inc/DifferenceEngine.php'); global $ID; global $REV; global $lang; diff --git a/inc/infoutils.php b/inc/infoutils.php index 6f2874fe5..00a3ad2d3 100644 --- a/inc/infoutils.php +++ b/inc/infoutils.php @@ -222,7 +222,6 @@ function check(){ msg('The current page is not writable by you',0); } - require_once(DOKU_INC.'inc/HTTPClient.php'); $check = wl('','',true).'data/_dummy'; $http = new DokuHTTPClient(); $http->timeout = 6; diff --git a/inc/media.php b/inc/media.php index 444e6d432..668f42d6a 100644 --- a/inc/media.php +++ b/inc/media.php @@ -149,7 +149,6 @@ function media_inuse($id) { global $conf; $mediareferences = array(); if($conf['refcheck']){ - require_once(DOKU_INC.'inc/fulltext.php'); $mediareferences = ft_mediause($id,$conf['refshow']); if(!count($mediareferences)) { return false; @@ -227,7 +226,6 @@ function media_delete($id,$auth){ function media_upload($ns,$auth){ if($auth < AUTH_UPLOAD) return false; if(!checkSecurityToken()) return false; - require_once(DOKU_INC.'inc/confutils.php'); global $lang; global $conf; diff --git a/inc/parserutils.php b/inc/parserutils.php index 34d9e5282..8e2c6e000 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -644,8 +644,6 @@ function p_xhtml_cached_geshi($code, $language, $wrapper='pre') { } else { - require_once(DOKU_INC . 'inc/geshi.php'); - $geshi = new GeSHi($code, $language, DOKU_INC . 'inc/geshi'); $geshi->set_encoding('utf-8'); $geshi->enable_classes(); diff --git a/inc/search.php b/inc/search.php index ce4fefe06..9e0964404 100644 --- a/inc/search.php +++ b/inc/search.php @@ -194,7 +194,6 @@ function search_media(&$data,$base,$file,$type,$lvl,$opts){ $info['writable'] = is_writable($base.'/'.$file); if(preg_match("/\.(jpe?g|gif|png)$/",$file)){ $info['isimg'] = true; - require_once(DOKU_INC.'inc/JpegMeta.php'); $info['meta'] = new JpegMeta($base.'/'.$file); }else{ $info['isimg'] = false; @@ -320,7 +319,6 @@ function search_backlinks(&$data,$base,$file,$type,$lvl,$opts){ } //fetch instructions - require_once(DOKU_INC.'inc/parserutils.php'); $instructions = p_cached_instructions($base.$file,true); if(is_null($instructions)) return false; diff --git a/inc/subscription.php b/inc/subscription.php index e98129b77..280da225d 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -275,7 +275,6 @@ function subscription_send_digest($subscriber_mail, $change, $lastupdate) { if (!is_null($rev)) { $subject = 'changed'; $replaces['OLDPAGE'] = wl($id, "rev=$rev", true, '&'); - require_once DOKU_INC.'inc/DifferenceEngine.php'; $df = new Diff(explode("\n", rawWiki($id, $rev)), explode("\n", rawWiki($id))); $dformat = new UnifiedDiffFormatter(); diff --git a/inc/template.php b/inc/template.php index bab68e549..bd5f58792 100644 --- a/inc/template.php +++ b/inc/template.php @@ -345,11 +345,9 @@ function tpl_metaheaders($alt=true){ 'href'=>DOKU_BASE.'lib/exe/css.php?s=print&t='.$conf['template'].'&tseed='.$tseed); // make $INFO and other vars available to JavaScripts - require_once(DOKU_INC.'inc/JSON.php'); $json = new JSON(); $script = "var NS='".$INFO['namespace']."';"; if($conf['useacl'] && $_SERVER['REMOTE_USER']){ - require_once(DOKU_INC.'inc/toolbar.php'); $script .= "var SIG='".toolbar_signature()."';"; } $script .= 'var JSINFO = '.$json->encode($JSINFO).';'; -- cgit v1.2.3 From c2a6d81662045023bdf1617b6b49f71c274d55ca Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 1 Feb 2010 16:10:25 +0100 Subject: plugin related autoloading This patch moved the place where DOKU_PLUGIN is defined. It no longer can be set from a normal config (only via preload) --- inc/init.php | 5 +++-- inc/load.php | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/init.php b/inc/init.php index 3cff40073..7f4792cfa 100644 --- a/inc/init.php +++ b/inc/init.php @@ -20,6 +20,9 @@ if (@file_exists($preload)) include($preload); // define the include path if(!defined('DOKU_INC')) define('DOKU_INC',fullpath(dirname(__FILE__).'/../').'/'); +// define Plugin dir +if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); + // define config path (packagers may want to change this to /etc/dokuwiki/) if(!defined('DOKU_CONF')) define('DOKU_CONF',DOKU_INC.'conf/'); @@ -158,8 +161,6 @@ if(!defined('DOKU_TAB')) define ('DOKU_TAB',"\t"); // define cookie and session id, append server port when securecookie is configured FS#1664 if (!defined('DOKU_COOKIE')) define('DOKU_COOKIE', 'DW'.md5(DOKU_REL.(($conf['securecookie'])?$_SERVER['SERVER_PORT']:''))); -// define Plugin dir -if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); // define main script if(!defined('DOKU_SCRIPT')) define('DOKU_SCRIPT','doku.php'); diff --git a/inc/load.php b/inc/load.php index 792f05e27..e06a2c63d 100644 --- a/inc/load.php +++ b/inc/load.php @@ -76,6 +76,11 @@ function load_autoload($name){ 'GeSHi' => DOKU_INC.'inc/geshi.php', 'TarLib' => DOKU_INC.'inc/TarLib.class.php', 'ZibLib' => DOKU_INC.'inc/ZipLib.class.php', + + 'DokuWiki_Action_Plugin' => DOKU_PLUGIN.'action.php', + 'DokuWiki_Admin_Plugin' => DOKU_PLUGIN.'admin.php', + 'DokuWiki_Syntax_Plugin' => DOKU_PLUGIN.'syntax.php', + ); if(isset($classes[$name])){ -- cgit v1.2.3 From c1b2e736c1da490219a060dd52104c4f88e70f7e Mon Sep 17 00:00:00 2001 From: Sergio Motta Date: Tue, 2 Feb 2010 21:02:48 +0100 Subject: Portuguese language update --- inc/lang/pt-br/lang.php | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'inc') diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index ed7224c14..8b7493cc6 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -16,6 +16,7 @@ * @author Frederico Guimarães * @author Jair Henrique * @author Luis Dantas + * @author Sergio Motta sergio@cisne.com.br */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -49,9 +50,6 @@ $lang['btn_back'] = 'Voltar'; $lang['btn_backlink'] = 'Links reversos'; $lang['btn_backtomedia'] = 'Voltar à seleção do arquivo de mídia'; $lang['btn_subscribe'] = 'Monitorar alterações na página'; -$lang['btn_unsubscribe'] = 'Cancelar monitoramento da página'; -$lang['btn_subscribens'] = 'Monitorar alterações no espaço de nomes'; -$lang['btn_unsubscribens'] = 'Cancelar monitoramento do espaço de nomes'; $lang['btn_profile'] = 'Atualizar o perfil'; $lang['btn_reset'] = 'Limpar'; $lang['btn_resendpwd'] = 'Enviar uma nova senha'; @@ -97,6 +95,8 @@ $lang['resendpwdconfirm'] = 'Um link de confirmação foi enviado por e-mai $lang['resendpwdsuccess'] = 'Sua nova senha foi enviada por e-mail.'; $lang['license'] = 'Exceto onde for informado ao contrário, o conteúdo neste wiki está sob a seguinte licença:'; $lang['licenseok'] = 'Observe: editando esta página você aceita disponibilizar o seu conteúdo sob a seguinte licença:'; +$lang['searchmedia'] = 'Buscar arquivo:'; +$lang['searchmedia_in'] = 'Buscar em %s'; $lang['txt_upload'] = 'Selecione o arquivo a ser enviado'; $lang['txt_filename'] = 'Enviar como (opcional)'; $lang['txt_overwrt'] = 'Substituir o arquivo existente'; @@ -121,10 +121,12 @@ $lang['deletefail'] = 'Não foi possível excluir "%s" - verifique as $lang['mediainuse'] = 'O arquivo "%s" não foi excluído - ele ainda está em uso.'; $lang['namespaces'] = 'Espaços de nome'; $lang['mediafiles'] = 'Arquivos disponíveis em'; +$lang['js']['searchmedia'] = 'Buscar por arquivos'; $lang['js']['keepopen'] = 'Manter a janela aberta na seleção'; $lang['js']['hidedetails'] = 'Esconder detalhes'; $lang['js']['nosmblinks'] = 'Atalhos para pastas compartilhadas do Windows funcionam apenas no Microsoft Internet Explorer. Entretanto, você ainda pode copiar e colar o atalho.'; +$lang['js']['linkwiz'] = 'Link Wizard'; $lang['js']['linkto'] = 'Link para:'; $lang['js']['del_confirm'] = 'Deseja realmente excluir o(s) item(ns) selecionado(s)?'; $lang['js']['mu_btn'] = 'Enviar vários arquivos de uma vez'; @@ -156,6 +158,7 @@ $lang['summary'] = 'Resumo da edição'; $lang['noflash'] = 'O plug-in Adobe Flash é necessário para exibir este conteúdo.'; $lang['mail_newpage'] = 'página adicionada:'; $lang['mail_changed'] = 'página modificada:'; +$lang['mail_subscribe_list'] = 'páginas alteradas no namespace:'; $lang['mail_new_user'] = 'novo usuário:'; $lang['mail_upload'] = 'arquivo enviado:'; $lang['qb_bold'] = 'Texto em negrito'; @@ -169,6 +172,10 @@ $lang['qb_h3'] = 'Cabeçalho de nível 3'; $lang['qb_h4'] = 'Cabeçalho de nível 4'; $lang['qb_h5'] = 'Cabeçalho de nível 5'; $lang['qb_h'] = 'Cabeçalho'; +$lang['qb_hs'] = 'Escolha o cabeçalho'; +$lang['qb_hplus'] = 'Cabeçalho de nível mais alto'; +$lang['qb_hminus'] = 'Cabeçalho de nível mais baixo'; +$lang['qb_hequal'] = 'Cabeçalho de mesmo nível'; $lang['qb_link'] = 'Link interno'; $lang['qb_extlink'] = 'Link externo'; $lang['qb_hr'] = 'Linha horizontal'; @@ -178,6 +185,7 @@ $lang['qb_media'] = 'Adicionar imagens e/ou outros arquivos'; $lang['qb_sig'] = 'Inserir assinatura'; $lang['qb_smileys'] = 'Carinhas'; $lang['qb_chars'] = 'Caracteres especiais'; +$lang['upperns'] = 'Pular para namespace acima'; $lang['admin_register'] = 'Adicionar novo usuário'; $lang['metaedit'] = 'Editar metadados'; $lang['metasaveerr'] = 'Não foi possível escrever os metadados'; @@ -193,11 +201,9 @@ $lang['img_copyr'] = 'Direitos autorais'; $lang['img_format'] = 'Formato'; $lang['img_camera'] = 'Câmera'; $lang['img_keywords'] = 'Palavras-chave'; -$lang['subscribe_success'] = '%s foi adicionado à lista de monitoramento de %s'; -$lang['subscribe_error'] = 'Ocorreu um erro ao tentar adicionar %s à lista de monitoramento de %s'; -$lang['subscribe_noaddress'] = 'Não existe nenhum endereço de e-mail associado ao seu usuário, você não pode ser adicionado à lista de monitoramento.'; -$lang['unsubscribe_success'] = '%s foi removido da lista de monitoramento de %s'; -$lang['unsubscribe_error'] = 'Ocorreu um erro ao tentar remover %s da lista de monitoramento de %s'; +$lang['subscr_subscribe_success'] = 'Adicionado %s para a lista de inscrição para %s'; +$lang['subscr_subscribe_error'] = 'Erro adicionando %s para a lista de inscrição para %s'; +$lang['subscr_subscribe_noaddress'] = 'Não há endereço associado com seu login, você não pode ser adicionado à lista de inscrição'; $lang['authmodfailed'] = 'A configuração da autenticação de usuário está com problemas. Por favor, informe ao administrador do wiki.'; $lang['authtempfail'] = 'A autenticação de usuários está temporariamente desabilitada. Se essa situação persistir, por favor, informe ao administrador do Wiki.'; $lang['i_chooselang'] = 'Selecione o seu idioma'; -- cgit v1.2.3 From 2b1223ecf0894dc5856744e7aa266b2ab89fca20 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 3 Feb 2010 12:12:02 +0100 Subject: Move page template parsing to an own function --- inc/common.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index 9cadb56fd..a8ac6f7de 100644 --- a/inc/common.php +++ b/inc/common.php @@ -808,7 +808,6 @@ function rawWiki($id,$rev=''){ function pageTemplate($data){ $id = $data[0]; global $conf; - global $INFO; $path = dirname(wikiFN($id)); @@ -825,7 +824,16 @@ function pageTemplate($data){ $path = substr($path, 0, strrpos($path, '/')); } } - if(!$tpl) return ''; + return isset($tpl) ? parsePageTemplate($tpl, $id) : ''; +} + +/** + * Performs common page template replacements + * + * @author Andreas Gohr + */ +function parsePageTemplate($tpl, $id) { + global $INFO; // replace placeholders $file = noNS($id); @@ -868,7 +876,6 @@ function pageTemplate($data){ return $tpl; } - /** * Returns the raw Wiki Text in three slices. * -- cgit v1.2.3 From b856f7dff0fe4c6a9f2fe04fd26c1ccde0aa233c Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 3 Feb 2010 13:08:25 +0100 Subject: USERINFO instead of INFO['userinfo'] in tpl parsing --- inc/common.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index a8ac6f7de..64c1b0a41 100644 --- a/inc/common.php +++ b/inc/common.php @@ -833,7 +833,7 @@ function pageTemplate($data){ * @author Andreas Gohr */ function parsePageTemplate($tpl, $id) { - global $INFO; + global $USERINFO; // replace placeholders $file = noNS($id); @@ -865,8 +865,8 @@ function parsePageTemplate($tpl, $id) { utf8_ucwords($page), utf8_strtoupper($page), $_SERVER['REMOTE_USER'], - $INFO['userinfo']['name'], - $INFO['userinfo']['mail'], + $USERINFO['name'], + $USERINFO['mail'], $conf['dformat'], ), $tpl); -- cgit v1.2.3 From 3b7488710df8a72be396293874215445851b66b9 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 3 Feb 2010 21:18:56 +0100 Subject: cast 2nd param to array when executing render instructions FS#1880 --- inc/parserutils.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/parserutils.php b/inc/parserutils.php index 471d46903..631e4149c 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -423,7 +423,7 @@ function p_render_metadata($id, $orig){ // loop through the instructions foreach ($instructions as $instruction){ // execute the callback against the renderer - call_user_func_array(array(&$renderer, $instruction[0]), $instruction[1]); + call_user_func_array(array(&$renderer, $instruction[0]), (array) $instruction[1]); } $evt->result = array('current'=>$renderer->meta,'persistent'=>$renderer->persistent); -- cgit v1.2.3 From 90df9a4d69a2e467433b419b94fe799d11590539 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 4 Feb 2010 14:50:10 +0100 Subject: Rewrite section edit handling according to #1860 --- inc/html.php | 21 ++++++------- inc/lang/en/lang.php | 1 + inc/parser/handler.php | 32 +++---------------- inc/parser/renderer.php | 6 ++-- inc/parser/xhtml.php | 81 +++++++++++++++++++++++++++++++++++-------------- 5 files changed, 76 insertions(+), 65 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 8a215f440..a6ec628cf 100644 --- a/inc/html.php +++ b/inc/html.php @@ -91,22 +91,19 @@ function html_secedit_button($matches){ global $ID; global $INFO; - $edittarget = ($matches[1] === 'SECTION') ? 'plain' : - strtolower($matches[1]); + $nr = $matches[1]; + $target = strtolower($matches[2]); - $section = $matches[3]; - $name = $matches[2]; + $name = $matches[3]; + $section = $matches[4]; - $secedit = ''; - $secedit .= '
'; - $secedit .= html_btn('secedit',$ID,'', + return "
" . + html_btn('secedit',$ID,'', array('do' => 'edit', 'lines' => $section, - 'edittarget' => $edittarget, + 'edittarget' => $target, 'rev' => $INFO['lastmod']), - 'post', $name); - $secedit .= '
'; - return $secedit; + 'post', $name) . '
'; } /** @@ -117,7 +114,7 @@ function html_secedit_button($matches){ function html_secedit($text,$show=true){ global $INFO; - $regexp = '##'; + $regexp = '##'; if($INFO['writable'] && $show && !$INFO['rev']){ $text = preg_replace_callback($regexp, diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 98ded12ca..3062d1724 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -152,6 +152,7 @@ $lang['external_edit'] = 'external edit'; $lang['summary'] = 'Edit summary'; $lang['noflash'] = 'The Adobe Flash Plugin is needed to display this content.'; $lang['download'] = 'Download Snippet'; +$lang['table_edit_title'] = 'Table'; $lang['mail_newpage'] = 'page added:'; $lang['mail_changed'] = 'page changed:'; diff --git a/inc/parser/handler.php b/inc/parser/handler.php index 141cbcaf0..b5d2baaab 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -12,9 +12,6 @@ class Doku_Handler { var $status = array( 'section' => false, - 'section_edit_start' => -1, - 'section_edit_level' => 1, - 'section_edit_title' => '' ); var $rewriteBlocks = true; @@ -40,10 +37,6 @@ class Doku_Handler { if ( $this->status['section'] ) { $last_call = end($this->calls); array_push($this->calls,array('section_close',array(), $last_call[2])); - if ($this->status['section_edit_start']>1) { - // ignore last edit section if there is only one header - array_push($this->calls,array('section_edit',array($this->status['section_edit_start'], 0, $this->status['section_edit_level'], $this->status['section_edit_title']), $last_call[2])); - } } if ( $this->rewriteBlocks ) { @@ -97,8 +90,6 @@ class Doku_Handler { } function header($match, $state, $pos) { - global $conf; - // get level and title $title = trim($match); $level = 7 - strspn($title,'='); @@ -108,13 +99,6 @@ class Doku_Handler { if ($this->status['section']) $this->_addCall('section_close',array(),$pos); - if ($level<=$conf['maxseclevel']) { - $this->_addCall('section_edit',array($this->status['section_edit_start'], $pos-1, $this->status['section_edit_level'], $this->status['section_edit_title']), $pos); - $this->status['section_edit_start'] = $pos; - $this->status['section_edit_level'] = $level; - $this->status['section_edit_title'] = $title; - } - $this->_addCall('header',array($title,$level,$pos), $pos); $this->_addCall('section_open',array($level),$pos); @@ -583,17 +567,16 @@ class Doku_Handler { $ReWriter = new Doku_Handler_Table($this->CallWriter); $this->CallWriter = & $ReWriter; - $this->_addCall('table_start', array(), $pos); + $this->_addCall('table_start', array($pos + 1), $pos); if ( trim($match) == '^' ) { $this->_addCall('tableheader', array(), $pos); } else { $this->_addCall('tablecell', array(), $pos); } - $this->status['table_begin'] = $pos; break; case DOKU_LEXER_EXIT: - $this->_addCall('table_end', array($this->status['table_begin']+1, $pos), $pos); + $this->_addCall('table_end', array($pos), $pos); $this->CallWriter->process(); $ReWriter = & $this->CallWriter; $this->CallWriter = & $ReWriter->CallWriter; @@ -1217,7 +1200,7 @@ class Doku_Handler_Table { } function tableStart($call) { - $this->tableCalls[] = array('table_open',array(),$call[2]); + $this->tableCalls[] = array('table_open',$call[1],$call[2]); $this->tableCalls[] = array('tablerow_open',array(),$call[2]); $this->firstCell = true; } @@ -1288,6 +1271,7 @@ class Doku_Handler_Table { // Adjust to num cols not num col delimeters $this->tableCalls[0][1][] = $this->maxCols - 1; $this->tableCalls[0][1][] = $this->maxRows; + $this->tableCalls[0][1][] = array_shift($this->tableCalls[0][1]); } else { trigger_error('First element in table call list is not table_open'); } @@ -1505,13 +1489,7 @@ class Doku_Handler_Block { //remove the whole paragraph array_splice($this->calls,$i); }else{ - if ($this->calls[count($this->calls)-1][0] == 'section_edit') { - $tmp = array_pop($this->calls); - $this->calls[] = array('p_close',array(), $pos); - $this->calls[] = $tmp; - } else { - $this->calls[] = array('p_close',array(), $pos); - } + $this->calls[] = array('p_close',array(), $pos); } $this->inParagraph = false; diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php index 65dcaf8a1..393099003 100644 --- a/inc/parser/renderer.php +++ b/inc/parser/renderer.php @@ -85,8 +85,6 @@ class Doku_Renderer extends DokuWiki_Plugin { function header($text, $level, $pos) {} - function section_edit($start, $end, $level, $name) {} - function section_open($level) {} function section_close() {} @@ -231,9 +229,9 @@ class Doku_Renderer extends DokuWiki_Plugin { $src,$title=NULL,$align=NULL,$width=NULL,$height=NULL,$cache=NULL ) {} - function table_open($maxcols = NULL, $numrows = NULL){} + function table_open($maxcols = NULL, $numrows = NULL, $pos){} - function table_close($begin, $end){} + function table_close($pos){} function tablerow_open(){} diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 4e848ec1d..ef62a3df9 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -29,6 +29,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { var $doc = ''; // will contain the whole document var $toc = array(); // will contain the Table of Contents + private $sectionedits = array(); // A stack of section edit data var $headers = array(); var $footnotes = array(); @@ -39,6 +40,34 @@ class Doku_Renderer_xhtml extends Doku_Renderer { var $_counter = array(); // used as global counter, introduced for table classes var $_codeblock = 0; // counts the code and file blocks, used to provide download links + /** + * Register a new edit section range + * + * @param $type string The section type identifier + * @param $title string The section title + * @param $start int The byte position for the edit start + * @return string A marker class for the starting HTML element + * @author Adrian Lang + */ + protected function startSectionEdit($start, $type, $title) { + static $lastsecid = 0; + $this->sectionedits[] = array(++$lastsecid, $start, $type, $title); + return 'sectionedit' . $lastsecid; + } + + /** + * Finish an edit section range + * + * @param $pos int The byte position for the edit end + * @author Adrian Lang + */ + protected function finishSectionEdit($end) { + list($id, $start, $type, $title) = array_pop($this->sectionedits); + $this->doc .= ""; + } + function getFormat(){ return 'xhtml'; } @@ -51,6 +80,17 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } function document_end() { + // Finish open section edits. + while (count($this->sectionedits) > 0) { + if ($this->sectionedits[count($this->sectionedits) - 1][1] <= 1) { + // If there is only one section, do not write a section edit + // marker. + array_pop($this->sectionedits); + } else { + $this->finishSectionEdit(0); + } + } + if ( count ($this->footnotes) > 0 ) { $this->doc .= '
'.DOKU_LF; @@ -106,6 +146,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } function header($text, $level, $pos) { + global $conf; + if(!$text) return; //skip empty headlines $hid = $this->_headerToLink($text,true); @@ -122,30 +164,24 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } $this->lastlevel = $level; + if ($level <= $conf['maxseclevel'] && + count($this->sectionedits) > 0 && + $this->sectionedits[count($this->sectionedits) - 1][2] === 'section') { + $this->finishSectionEdit($pos); + } + // write the header - $this->doc .= DOKU_LF.''; + $this->doc .= DOKU_LF.'doc .= ' class="' . $this->startSectionEdit($pos, 'section', $text) . '"'; + } + $this->doc .= '>'; $this->doc .= $this->_xmlEntities($text); $this->doc .= "".DOKU_LF; } - /** - * Section edit marker is replaced by an edit button when - * the page is editable. Replacement done in 'inc/html.php#html_secedit' - * - * @author Andreas Gohr - * @author Ben Coburn - */ - function section_edit($start, $end, $level, $name) { - global $conf; - - if ($start!=-1 && $level<=$conf['maxseclevel']) { - $name = str_replace('"', '', $name); - $this->doc .= ''; - } - } - function section_open($level) { - $this->doc .= "
".DOKU_LF; + $this->doc .= "
".DOKU_LF; } function section_close() { @@ -845,15 +881,16 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } // $numrows not yet implemented - function table_open($maxcols = NULL, $numrows = NULL){ + function table_open($maxcols = NULL, $numrows = NULL, $pos){ + global $lang; // initialize the row counter used for classes $this->_counter['row_counter'] = 0; - $this->doc .= ''.DOKU_LF; + $this->doc .= '
'.DOKU_LF; } - function table_close($begin, $end){ + function table_close($pos){ $this->doc .= '
'.DOKU_LF; - $this->doc .= ''; + $this->finishSectionEdit($pos); } function tablerow_open(){ -- cgit v1.2.3 From 9bec85f2322b78de408af08a84bf7de4200c8d2c Mon Sep 17 00:00:00 2001 From: LSwp Date: Sat, 6 Feb 2010 12:25:26 +0100 Subject: Polish language update --- inc/lang/pl/lang.php | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'inc') diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 882806577..37113fded 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -7,6 +7,7 @@ * @author Mariusz Kujawski * @author Maciej Kurczewski * @author Sławomir Boczek + * @author sleshek@wp.pl */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -40,9 +41,6 @@ $lang['btn_back'] = 'Wstecz'; $lang['btn_backlink'] = 'Odnośniki'; $lang['btn_backtomedia'] = 'Powrót do wyboru pliku'; $lang['btn_subscribe'] = 'Subskrybuj zmiany'; -$lang['btn_unsubscribe'] = 'Zaprzestań subskrypcji zmian'; -$lang['btn_subscribens'] = 'Subskrybuj zmiany w katalogu'; -$lang['btn_unsubscribens'] = 'Zaprzestań subskrypcji zmian w katalogu'; $lang['btn_profile'] = 'Aktualizuj profil'; $lang['btn_reset'] = 'Resetuj'; $lang['btn_resendpwd'] = 'Prześlij nowe hasło'; @@ -150,8 +148,10 @@ $lang['external_edit'] = 'edycja zewnętrzna'; $lang['summary'] = 'Opis zmian'; $lang['noflash'] = 'Plugin Adobe Flash Plugin jest niezbędny do obejrzenia tej zawartości.'; $lang['download'] = 'Pobierz zrzut'; +$lang['table_edit_title'] = 'Tabela'; $lang['mail_newpage'] = 'Strona dodana:'; $lang['mail_changed'] = 'Strona zmieniona:'; +$lang['mail_subscribe_list'] = 'Zmienione strony w katalogu:'; $lang['mail_new_user'] = 'Nowy użytkownik:'; $lang['mail_upload'] = 'Umieszczono plik:'; $lang['qb_bold'] = 'Pogrubienie'; @@ -194,11 +194,22 @@ $lang['img_copyr'] = 'Prawa autorskie'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Aparat'; $lang['img_keywords'] = 'Słowa kluczowe'; -$lang['subscribe_success'] = 'Dodano %s do listy subskrypcji strony %s'; -$lang['subscribe_error'] = 'Błąd przy dodawaniu %s do listy subskrypcji strony %s'; -$lang['subscribe_noaddress'] = 'Nie podałeś adresu e-mail przy rejestracji, nie możesz zostać dodany do listy subskrypcji.'; -$lang['unsubscribe_success'] = 'Usunięto %s z listy subskrypcji strony %s'; -$lang['unsubscribe_error'] = 'Błąd przy usuwaniu %s z listy subskrypcji strony %s'; +$lang['subscr_subscribe_success'] = 'Dodano %s do listy subskrypcji %s'; +$lang['subscr_subscribe_error'] = 'Błąd podczas dodawania %s do listy subskrypcji %s'; +$lang['subscr_subscribe_noaddress'] = 'Brak adresu skojarzonego z twoim loginem, nie możesz zostać dodany(a) do listy subskrypcji'; +$lang['subscr_unsubscribe_success'] = 'Usunięto %s z listy subskrypcji %s'; +$lang['subscr_unsubscribe_error'] = 'Błąd podczas usuwania %s z listy subskrypcji %s'; +$lang['subscr_already_subscribed'] = '%s jest już subskrybowany(a) przez %s'; +$lang['subscr_not_subscribed'] = '%s nie jest subskrybowany(a) przez %s'; +$lang['subscr_m_not_subscribed'] = 'Obecnie nie subskrybujesz bieżącej strony lub katalogu.'; +$lang['subscr_m_new_header'] = 'Dodaj subskrypcję'; +$lang['subscr_m_current_header'] = 'Aktualne subskrypcje'; +$lang['subscr_m_unsubscribe'] = 'Zrezygnuj z subskrypcji'; +$lang['subscr_m_subscribe'] = 'Subskrybuj'; +$lang['subscr_m_receive'] = 'Otrzymuj'; +$lang['subscr_style_every'] = 'email przy każdej zmianie'; +$lang['subscr_style_digest'] = 'email ze streszczeniem zmian dla każdej ze stron'; +$lang['subscr_style_list'] = 'lista zmienionych stron od czasu ostatniego emaila'; $lang['authmodfailed'] = 'Błąd uwierzytelnienia. Powiadom administratora tego wiki.'; $lang['authtempfail'] = 'Uwierzytelnienie użytkownika jest w tej chwili niemożliwe. Jeśli ta sytuacja się powtórzy, powiadom administratora tego wiki.'; $lang['i_chooselang'] = 'Wybierz język'; -- cgit v1.2.3 From 6c1f778cae7a02dec2e14017e539d541ce6e74fb Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 8 Feb 2010 10:11:11 +0100 Subject: Fix section editing killing next section --- inc/parser/xhtml.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index ef62a3df9..9de712303 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -167,7 +167,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { if ($level <= $conf['maxseclevel'] && count($this->sectionedits) > 0 && $this->sectionedits[count($this->sectionedits) - 1][2] === 'section') { - $this->finishSectionEdit($pos); + $this->finishSectionEdit($pos - 1); } // write the header -- cgit v1.2.3 From 40868f2faa85215dfea2fa0c82274a4806d042ab Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 8 Feb 2010 12:50:20 +0100 Subject: Hide secedit buttons without title --- inc/html.php | 65 ++++++++++++++++++++++++++++++++-------------------- inc/lang/en/lang.php | 1 - inc/parser/xhtml.php | 12 ++++++---- 3 files changed, 47 insertions(+), 31 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index a6ec628cf..c2b0db17d 100644 --- a/inc/html.php +++ b/inc/html.php @@ -82,48 +82,63 @@ function html_login(){ } /** - * prints a section editing button - * used as a callback in html_secedit + * inserts section edit buttons if wanted or removes the markers * * @author Andreas Gohr */ -function html_secedit_button($matches){ - global $ID; +function html_secedit($text,$show=true){ global $INFO; - $nr = $matches[1]; - $target = strtolower($matches[2]); + $regexp = '##'; - $name = $matches[3]; - $section = $matches[4]; + if(!$INFO['writable'] || !$show || $INFO['rev']){ + return preg_replace($regexp,'',$text); + } - return "
" . - html_btn('secedit',$ID,'', - array('do' => 'edit', - 'lines' => $section, - 'edittarget' => $target, - 'rev' => $INFO['lastmod']), - 'post', $name) . '
'; + return preg_replace_callback($regexp, + 'html_secedit_button', $text); } /** - * inserts section edit buttons if wanted or removes the markers + * prepares section edit button data for event triggering + * used as a callback in html_secedit * + * @triggers HTML_SECEDIT_BUTTON * @author Andreas Gohr */ -function html_secedit($text,$show=true){ +function html_secedit_button($matches){ + $data = array('id' => $matches[1], + 'target' => strtolower($matches[2]), + 'range' => $matches[count($matches) - 1]); + if (count($matches) === 5) { + $data['name'] = $matches[3]; + } + + return trigger_event('HTML_SECEDIT_BUTTON', $data, + 'html_secedit_get_button'); +} + +/** + * prints a section editing button + * used as default action form HTML_SECEDIT_BUTTON + * + * @author Adrian Lang + */ +function html_secedit_get_button($data) { + global $ID; global $INFO; - $regexp = '##'; + if (!isset($data['name']) || $data['name'] === '') return; - if($INFO['writable'] && $show && !$INFO['rev']){ - $text = preg_replace_callback($regexp, - 'html_secedit_button', $text); - }else{ - $text = preg_replace($regexp,'',$text); - } + $name = $data['name']; + unset($data['name']); - return $text; + return "
" . + html_btn('secedit', $ID, '', + array_merge(array('do' => 'edit', + 'rev' => $INFO['lastmod']), $data), + 'post', $name) . '
'; } /** diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 3062d1724..98ded12ca 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -152,7 +152,6 @@ $lang['external_edit'] = 'external edit'; $lang['summary'] = 'Edit summary'; $lang['noflash'] = 'The Adobe Flash Plugin is needed to display this content.'; $lang['download'] = 'Download Snippet'; -$lang['table_edit_title'] = 'Table'; $lang['mail_newpage'] = 'page added:'; $lang['mail_changed'] = 'page changed:'; diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 9de712303..3ac8ed35c 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -49,7 +49,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * @return string A marker class for the starting HTML element * @author Adrian Lang */ - protected function startSectionEdit($start, $type, $title) { + protected function startSectionEdit($start, $type, $title = null) { static $lastsecid = 0; $this->sectionedits[] = array(++$lastsecid, $start, $type, $title); return 'sectionedit' . $lastsecid; @@ -63,9 +63,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { */ protected function finishSectionEdit($end) { list($id, $start, $type, $title) = array_pop($this->sectionedits); - $this->doc .= ""; + $this->doc .= "'; } function getFormat(){ @@ -885,7 +887,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { global $lang; // initialize the row counter used for classes $this->_counter['row_counter'] = 0; - $this->doc .= ''.DOKU_LF; + $this->doc .= '
'.DOKU_LF; } function table_close($pos){ -- cgit v1.2.3 From 905fa971d08ada202c78b350303dc6a53c570e01 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 8 Feb 2010 12:58:45 +0100 Subject: Strip (secedit) id from section edit request --- inc/html.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index c2b0db17d..7849cc809 100644 --- a/inc/html.php +++ b/inc/html.php @@ -107,7 +107,7 @@ function html_secedit($text,$show=true){ * @author Andreas Gohr */ function html_secedit_button($matches){ - $data = array('id' => $matches[1], + $data = array('secid' => $matches[1], 'target' => strtolower($matches[2]), 'range' => $matches[count($matches) - 1]); if (count($matches) === 5) { @@ -133,8 +133,11 @@ function html_secedit_get_button($data) { $name = $data['name']; unset($data['name']); + $secid = $data['secid']; + unset($data['secid']); + return "
" . + " editbutton_" . $data['secid'] . "'>" . html_btn('secedit', $ID, '', array_merge(array('do' => 'edit', 'rev' => $INFO['lastmod']), $data), -- cgit v1.2.3 From defa93a1bf01353fdadea22bcc5467baaadca3e0 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 8 Feb 2010 13:01:25 +0100 Subject: =?UTF-8?q?I=E2=80=99m=20stupid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 7849cc809..04bb986c5 100644 --- a/inc/html.php +++ b/inc/html.php @@ -137,7 +137,7 @@ function html_secedit_get_button($data) { unset($data['secid']); return "
" . + " editbutton_" . $secid . "'>" . html_btn('secedit', $ID, '', array_merge(array('do' => 'edit', 'rev' => $INFO['lastmod']), $data), -- cgit v1.2.3 From 134937946849b8225648f9c191a006ec60c1f013 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 8 Feb 2010 13:33:41 +0100 Subject: run dbg() output through htmlspecialchars --- inc/infoutils.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/infoutils.php b/inc/infoutils.php index d5356969b..001a33f66 100644 --- a/inc/infoutils.php +++ b/inc/infoutils.php @@ -289,9 +289,15 @@ function msg($message,$lvl=0,$line='',$file=''){ * @author Andreas Gohr */ function dbg($msg,$hidden=false){ - (!$hidden) ? print '
' : print "";
+    if($hidden){
+        echo "";
+    }else{
+        echo '
';
+        echo hsc(print_r($msg,true));
+        echo '
'; + } } /** -- cgit v1.2.3 From 599e75de5d1510a4124739fb5e8c5397f5dfa69b Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 8 Feb 2010 15:43:45 +0100 Subject: Receive event data by ref to change it --- inc/subscription.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/subscription.php b/inc/subscription.php index f7614014f..ae326c894 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -219,7 +219,7 @@ function subscription_regex($pre = array()) { * @author Steven Danz * @author Adrian Lang */ -function subscription_addresslist($data){ +function subscription_addresslist(&$data){ global $conf; global $auth; -- cgit v1.2.3 From bda5b82b9fdabee0a3ee175857335e1274992a64 Mon Sep 17 00:00:00 2001 From: Omid Mottaghi Date: Mon, 8 Feb 2010 19:30:53 +0100 Subject: Persian language update --- inc/lang/fa/lang.php | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'inc') diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 1123efe13..42ba69ea3 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -46,9 +46,6 @@ $lang['btn_back'] = 'عقب'; $lang['btn_backlink'] = 'پیوندهای به این صفحه'; $lang['btn_backtomedia'] = 'بازگشت به انتخاب فایل'; $lang['btn_subscribe'] = 'عضویت در تغییرات صفحه'; -$lang['btn_unsubscribe'] = 'لغو عضویت در تغییرات صفحه'; -$lang['btn_subscribens'] = 'عضویت در تغییرات فضای‌نام'; -$lang['btn_unsubscribens'] = 'عضویت در تغییرات فضای‌نام'; $lang['btn_profile'] = 'به روز رسانی پروفایل'; $lang['btn_reset'] = 'بازنشاندن'; $lang['btn_resendpwd'] = 'یک گذرواژه‌ی جدید برای شما فرستاده شود'; @@ -156,8 +153,10 @@ $lang['external_edit'] = 'ویرایش خارجی'; $lang['summary'] = 'پیش‌نمایش'; $lang['noflash'] = 'برای نمایش محتویات افزونه‌ی فلش مورد نیاز است.'; $lang['download'] = 'دیافت فایل منقطع گردید'; +$lang['table_edit_title'] = 'جدول'; $lang['mail_newpage'] = 'صفحه اضافه شد:'; $lang['mail_changed'] = 'صفحه تغییر داده شد:'; +$lang['mail_subscribe_list'] = 'صفحات تغییر داده شده در فضای‌نام'; $lang['mail_new_user'] = 'کاربر جدید:'; $lang['mail_upload'] = 'فایل ارسال شده:'; $lang['qb_bold'] = 'متن پُررنگ'; @@ -200,11 +199,22 @@ $lang['img_copyr'] = 'دارنده‌ی حق تکثیر'; $lang['img_format'] = 'فرمت'; $lang['img_camera'] = 'دوربین'; $lang['img_keywords'] = 'واژه‌های کلیدی'; -$lang['subscribe_success'] = '%s با موفقیت به عضویت %s درآمد'; -$lang['subscribe_error'] = 'عضویت %s در %s با مشکل مواجه شد'; -$lang['subscribe_noaddress'] = 'هیچ آدرس ایمیلی ثبت نکرده‌اید و نمی‌توانید عضو شوید'; -$lang['unsubscribe_success'] = '%s با موفقیت از عضویت %s خارج شد'; -$lang['unsubscribe_error'] = 'خارج کردن %s از عضویت %s با مشکل مواجه شد.'; +$lang['subscr_subscribe_success'] = '%s به لیست آبونه %s افزوده شد'; +$lang['subscr_subscribe_error'] = 'اشکال در افزودن %s به لیست آبونه %s'; +$lang['subscr_subscribe_noaddress'] = 'هیچ آدرسی برای این عضویت اضافه نشده است، شما نمی‌توانید به لیست آبونه اضافه شوید'; +$lang['subscr_unsubscribe_success'] = '%s از لیست آبونه %s پاک شد'; +$lang['subscr_unsubscribe_error'] = 'اشکال در پاک کردن %s از لیست آبونه %s'; +$lang['subscr_already_subscribed'] = '%s پیش‌تر در %s آبونه شده است'; +$lang['subscr_not_subscribed'] = '%s در %s آبونه نشده است'; +$lang['subscr_m_not_subscribed'] = 'شما در این صفحه یا فضای‌نام آبونه نشده‌اید'; +$lang['subscr_m_new_header'] = 'افزودن آبونه'; +$lang['subscr_m_current_header'] = 'آبونه‌های کنونی'; +$lang['subscr_m_unsubscribe'] = 'لغو آبونه'; +$lang['subscr_m_subscribe'] = 'آبونه شدن'; +$lang['subscr_m_receive'] = 'دریافت کردن'; +$lang['subscr_style_every'] = 'ارسال رای‌نامه در تمامی تغییرات'; +$lang['subscr_style_digest'] = 'ارسال ایمیل‌های فشرده برای تغییرات هر صفحه'; +$lang['subscr_style_list'] = 'لیست صفحات تغییر داده شده از آخرین رای‌نامه'; $lang['authmodfailed'] = 'اشکال در نوع معتبرسازی کاربران، مدیر ویکی را باخبر سازید.'; $lang['authtempfail'] = 'معتبرسازی کابران موقتن مسدود می‌باشد. اگر این حالت پایدار بود، مدیر ویکی را باخبر سازید.'; $lang['i_chooselang'] = 'انتخاب زبان'; -- cgit v1.2.3 From 52b35d3ab15e4a042a2e1c5c8c5766fc76c534af Mon Sep 17 00:00:00 2001 From: Marcel Metz Date: Mon, 8 Feb 2010 20:11:06 +0100 Subject: Informal German language update --- inc/lang/de-informal/conflict.txt | 2 +- inc/lang/de-informal/edit.txt | 2 +- inc/lang/de-informal/lang.php | 59 ++++++++++++++++--------------------- inc/lang/de-informal/mailtext.txt | 3 +- inc/lang/de-informal/password.txt | 3 +- inc/lang/de-informal/pwconfirm.txt | 3 +- inc/lang/de-informal/uploadmail.txt | 3 +- 7 files changed, 36 insertions(+), 39 deletions(-) (limited to 'inc') diff --git a/inc/lang/de-informal/conflict.txt b/inc/lang/de-informal/conflict.txt index a5ae425be..eec345061 100644 --- a/inc/lang/de-informal/conflict.txt +++ b/inc/lang/de-informal/conflict.txt @@ -1,6 +1,6 @@ ====== Eine neuere Version existiert ====== -Eine neuere Version des aktuell in Bearbeitung befindlichen Dokuments existiert. Das heißt, jemand hat parallel an der selben Seite gearbeitet und zuerst gespeichert. +Eine neuere Version des aktuell in Bearbeitung befindlichen Dokuments existiert. Das heißt, jemand hat gleichzeitig an der selben Seite gearbeitet und zuerst gespeichert. Die unten aufgeführten Unterschiede können bei der Entscheidung helfen, welchem Dokument Vorrang gewährt wird. Wähle **''[Speichern]''** zum Sichern deiner Version oder **''[Abbrechen]''**, um deine Version zu verwerfen und die zuerst gespeicherte Seite zu behalten. diff --git a/inc/lang/de-informal/edit.txt b/inc/lang/de-informal/edit.txt index 15e02c61a..28a764124 100644 --- a/inc/lang/de-informal/edit.txt +++ b/inc/lang/de-informal/edit.txt @@ -1,4 +1,4 @@ -Bitte nur editieren, falls das Dokument **verbessert** werden kann. +Bitte bearbeite dieses Dokument nur, wenn du es **verbessern** kannst. Nach dem Bearbeiten den **''[Speichern]''**-Knopf drücken. Siehe [[wiki:syntax]] zur Wiki-Syntax. Zum Testen bitte erst im [[playground:playground|Spielplatz]] üben. diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index c90ce8f5e..de9eea1eb 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -15,7 +15,7 @@ * @author Arne Pelka * @author Alexander Fischer * @author Juergen Schwarzer - * @author ste-re@web.de + * @author Marcel Metz */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -25,7 +25,7 @@ $lang['singlequoteopening'] = '‚'; $lang['singlequoteclosing'] = '‘'; $lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Diese Seite bearbeiten'; -$lang['btn_source'] = 'Zeige Seitenquelltext'; +$lang['btn_source'] = 'Zeige Quelltext'; $lang['btn_show'] = 'Seite anzeigen'; $lang['btn_create'] = 'Seite anlegen'; $lang['btn_search'] = 'Suche'; @@ -43,7 +43,7 @@ $lang['btn_secedit'] = 'Bearbeiten'; $lang['btn_login'] = 'Anmelden'; $lang['btn_logout'] = 'Abmelden'; $lang['btn_admin'] = 'Admin'; -$lang['btn_update'] = 'Aktualisieren'; +$lang['btn_update'] = 'Updaten'; $lang['btn_delete'] = 'Löschen'; $lang['btn_back'] = 'Zurück'; $lang['btn_backlink'] = 'Links hierher'; @@ -52,7 +52,7 @@ $lang['btn_subscribe'] = 'Änderungen abonnieren'; $lang['btn_unsubscribe'] = 'Änderungen abbestellen'; $lang['btn_subscribens'] = 'Namensraumänderungen abonnieren'; $lang['btn_unsubscribens'] = 'Namensraumänderungen abbestellen'; -$lang['btn_profile'] = 'Profil aktualisieren'; +$lang['btn_profile'] = 'Benutzerprofil'; $lang['btn_reset'] = 'Zurücksetzen'; $lang['btn_resendpwd'] = 'Sende neues Passwort'; $lang['btn_draft'] = 'Entwurf bearbeiten'; @@ -64,35 +64,35 @@ $lang['user'] = 'Benutzername'; $lang['pass'] = 'Passwort'; $lang['newpass'] = 'Neues Passwort'; $lang['oldpass'] = 'Bestätigen (Altes Passwort)'; -$lang['passchk'] = 'noch einmal'; +$lang['passchk'] = 'und nochmal'; $lang['remember'] = 'Angemeldet bleiben'; $lang['fullname'] = 'Voller Name'; $lang['email'] = 'E-Mail'; $lang['register'] = 'Registrieren'; $lang['profile'] = 'Benutzerprofil'; $lang['badlogin'] = 'Nutzername oder Passwort sind falsch.'; -$lang['minoredit'] = 'kleine Änderungen'; +$lang['minoredit'] = 'kleine Änderung'; $lang['draftdate'] = 'Entwurf gespeichert am'; -$lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit verändert, Sektionsinfo ist veraltet, lade stattdessen volle Seite.'; -$lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden.'; +$lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit geändert, Sektionsinfo ist veraltet, lade stattdessen volle Seite.'; +$lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden'; $lang['reguexists'] = 'Der Nutzername existiert leider schon.'; $lang['regsuccess'] = 'Der neue Nutzer wurde angelegt und das Passwort per Email versandt.'; $lang['regsuccess2'] = 'Der neue Nutzer wurde angelegt.'; $lang['regmailfail'] = 'Offenbar ist ein Fehler beim Versenden der Passwortmail aufgetreten. Bitte wende dich an den Wiki-Admin.'; $lang['regbadmail'] = 'Die angegebene Mail-Adresse scheint ungültig zu sein. Falls dies ein Fehler ist, wende dich bitte an den Wiki-Admin.'; -$lang['regbadpass'] = 'Die beiden eingegebenen Passwörter stimmen nicht überein. Bitte versuche es noch einmal.'; +$lang['regbadpass'] = 'Die beiden eingegeben Passwörter stimmen nicht überein. Bitte versuche es noch einmal.'; $lang['regpwmail'] = 'Ihr DokuWiki Passwort'; $lang['reghere'] = 'Du hast noch keinen Zugang? Hier anmelden'; $lang['profna'] = 'Änderung des Benutzerprofils in diesem Wiki nicht möglich.'; $lang['profnochange'] = 'Keine Änderungen, nichts zu tun.'; $lang['profnoempty'] = 'Es muss ein Name oder eine E-Mail Adresse angegeben werden.'; -$lang['profchanged'] = 'Benutzerprofil erfolgreich geändert.'; +$lang['profchanged'] = 'Benuzerprofil erfolgreich geändert.'; $lang['pwdforget'] = 'Passwort vergessen? Fordere ein neues an'; $lang['resendna'] = 'Passwörter versenden ist in diesem Wiki nicht möglich.'; $lang['resendpwd'] = 'Neues Passwort schicken für'; $lang['resendpwdmissing'] = 'Es tut mir Leid, aber du musst alle Felder ausfüllen.'; -$lang['resendpwdnouser'] = 'Es tut mir Leid, aber dieser Benutzer existiert nicht in unserer Datenbank.'; -$lang['resendpwdbadauth'] = 'Es tut mir Leid, aber dieser Authentifizierungscode ist ungültig. Stelle sicher, dass du den kompletten Bestätigungslink verwendet hast.'; +$lang['resendpwdnouser'] = 'Es tut mir Leid, aber der Benutzer existiert nicht in unserer Datenbank.'; +$lang['resendpwdbadauth'] = 'Es tut mir Leid, aber dieser Authentifizierungscode ist ungültig. Stelle sicher, dass du den kompletten Bestätigungslink verwendet haben.'; $lang['resendpwdconfirm'] = 'Ein Bestätigungslink wurde per E-Mail versandt.'; $lang['resendpwdsuccess'] = 'Dein neues Passwort wurde per E-Mail versandt.'; $lang['license'] = 'Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:'; @@ -108,13 +108,13 @@ $lang['willexpire'] = 'Die Sperre zur Bearbeitung dieser Seite läuft $lang['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?'; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; -$lang['mediaselect'] = 'Media-Dateien'; -$lang['fileupload'] = 'Media-Datei hochladen'; +$lang['mediaselect'] = 'Dateiauswahl'; +$lang['fileupload'] = 'Datei hochladen'; $lang['uploadsucc'] = 'Datei wurde erfolgreich hochgeladen'; $lang['uploadfail'] = 'Hochladen fehlgeschlagen. Keine Berechtigung?'; $lang['uploadwrong'] = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.'; $lang['uploadexist'] = 'Datei existiert bereits. Keine Änderungen vorgenommen.'; -$lang['uploadbadcontent'] = 'Der hochgeladene Inhalt stimmt nicht mit der Dateiendung % überein.'; +$lang['uploadbadcontent'] = 'Die hochgeladenen Daten stimmen nicht mit der Dateiendung % überein.'; $lang['uploadspam'] = 'Hochladen verweigert: Treffer auf der Spamliste.'; $lang['uploadxss'] = 'Hochladen verweigert: Daten scheinen Schadcode zu enthalten.'; $lang['uploadsize'] = 'Die hochgeladene Datei war zu groß. (max. %s)'; @@ -133,11 +133,11 @@ $lang['js']['linkto'] = 'Link zu:'; $lang['js']['del_confirm'] = 'Die ausgewählten Dateien wirklich löschen?'; $lang['js']['mu_btn'] = 'Mehrere Dateien gleichzeitig hochladen'; $lang['mediausage'] = 'Syntax zum Verwenden dieser Datei:'; -$lang['mediaview'] = 'Originaldatei ansehen'; +$lang['mediaview'] = 'Originaldatei öffnen'; $lang['mediaroot'] = 'Wurzel'; $lang['mediaupload'] = 'Lade hier eine Datei in den momentanen Namensraum hoch. Um Unterordner zu erstellen, stelle diese dem Dateinamen im Feld "Hochladen als" durch Doppelpunkt getrennt voran.'; -$lang['mediaextchange'] = 'Dateiendung von .%s nach .%s geändert!'; -$lang['reference'] = 'Referenzen für'; +$lang['mediaextchange'] = 'Dateiendung vom .%s nach .%s geändert!'; +$lang['reference'] = 'Verwendung von'; $lang['ref_inuse'] = 'Diese Datei kann nicht gelöscht werden, da sie noch von folgenden Seiten benutzt wird:'; $lang['ref_hidden'] = 'Einige Verweise sind auf Seiten, für die du keine Leseberechtigung hast.'; $lang['hits'] = 'Treffer'; @@ -153,13 +153,13 @@ $lang['youarehere'] = 'Du befindest dich hier'; $lang['lastmod'] = 'Zuletzt geändert'; $lang['by'] = 'von'; $lang['deleted'] = 'gelöscht'; -$lang['created'] = 'erstellt'; +$lang['created'] = 'angelegt'; $lang['restored'] = 'alte Version wieder hergestellt'; $lang['external_edit'] = 'Externe Bearbeitung'; -$lang['summary'] = 'Zusammenfassung der Änderungen'; -$lang['noflash'] = 'Das Adobe Flash Plugin wird benötigt, um diesen Ihnalt anzuzeigen.'; +$lang['summary'] = 'Zusammenfassung'; +$lang['noflash'] = 'Das Adobe Flash Plugin wird benötigt, um diesen Inhalt anzuzeigen.'; $lang['download'] = 'Download-Teil'; -$lang['mail_newpage'] = 'Seite hinzugefügt:'; +$lang['mail_newpage'] = 'Neue Seite:'; $lang['mail_changed'] = 'Seite geaendert:'; $lang['mail_new_user'] = 'Neuer Benutzer:'; $lang['mail_upload'] = 'Datei hochgeladen:'; @@ -187,8 +187,8 @@ $lang['qb_media'] = 'Bilder und andere Dateien hinzufügen'; $lang['qb_sig'] = 'Unterschrift einfügen'; $lang['qb_smileys'] = 'Smileys'; $lang['qb_chars'] = 'Sonderzeichen'; -$lang['upperns'] = 'Springe zum vorherigen Namensraum'; -$lang['admin_register'] = 'Neuen Benutzer hinzufügen'; +$lang['upperns'] = 'Gehe zum Ausgangsfeld'; +$lang['admin_register'] = 'Neuen Benutzer anmelden'; $lang['metaedit'] = 'Metadaten bearbeiten'; $lang['metasaveerr'] = 'Die Metadaten konnten nicht gesichert werden'; $lang['metasaveok'] = 'Metadaten gesichert'; @@ -198,7 +198,7 @@ $lang['img_caption'] = 'Bildunterschrift'; $lang['img_date'] = 'Datum'; $lang['img_fname'] = 'Dateiname'; $lang['img_fsize'] = 'Grösse'; -$lang['img_artist'] = 'FotografIn'; +$lang['img_artist'] = 'Fotograf'; $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Kamera'; @@ -216,7 +216,7 @@ $lang['i_wikiname'] = 'Wiki-Name'; $lang['i_enableacl'] = 'Zugangskontrolle (ACL) aktivieren (empfohlen)'; $lang['i_superuser'] = 'Administrator Benutzername'; $lang['i_problems'] = 'Das Installationsprogramm hat unten aufgeführte Probleme festgestellt, die zunächst behoben werden müssen, bevor du mit der Installation fortfahren kannst.'; -$lang['i_modified'] = 'Aus Sicherheitsgründen arbeitet dieses Script nur mit einer neuen, unmodifizierten DokuWiki-Installation. Du solltest entweder alle Dateien erneut installieren oder in der Dokuwiki-Installationsanleitung lesen.'; +$lang['i_modified'] = 'Aus Sicherheitsgründen arbeitet dieses Script nur mit einer neuen, unmodifizierten DokuWiki-Installation. Du solltest entweder alle Dateien noch einmal frisch installieren oder die Dokuwiki-Installationsanleitung konsultieren.'; $lang['i_funcna'] = 'Die PHP Funktion %s ist nicht verfügbar. Unter Umständen wurde sie von deinem Hoster deaktiviert?'; $lang['i_phpver'] = 'Deine PHP-Version %s ist niedriger als die benötigte Version %s. Bitte aktualisiere deine PHP-Installation.'; $lang['i_permfail'] = '%s ist nicht durch DokuWiki beschreibbar. Du musst die Berechtigungen dieses Ordners ändern!'; @@ -248,10 +248,3 @@ $lang['mu_filetypes'] = 'Erlaubte Dateitypen'; $lang['mu_info'] = 'Dateien hochgeladen.'; $lang['mu_lasterr'] = 'Letzter Fehler:'; $lang['recent_global'] = 'Im Moment siehst du die Änderungen im Namensraum %s. Du kannst auch die Änderungen im gesamten Wiki sehen.'; -$lang['years'] = 'vor %d Jahren'; -$lang['months'] = 'vor %d Monaten'; -$lang['weeks'] = 'vor %d Wochen'; -$lang['days'] = 'vor %d Tagen'; -$lang['hours'] = 'vor %d Stunden'; -$lang['minutes'] = 'vor %d Minuten'; -$lang['seconds'] = 'vor %d Sekunden'; diff --git a/inc/lang/de-informal/mailtext.txt b/inc/lang/de-informal/mailtext.txt index 4fd41ad19..508c080f7 100644 --- a/inc/lang/de-informal/mailtext.txt +++ b/inc/lang/de-informal/mailtext.txt @@ -13,5 +13,6 @@ Benutzer : @USER@ -- -Diese Mail kommt vom DokuWiki auf +Diese Mail wurde vom DokuWiki auf @DOKUWIKIURL@ +erzeugt. diff --git a/inc/lang/de-informal/password.txt b/inc/lang/de-informal/password.txt index 9e1ecdb15..8ce252966 100644 --- a/inc/lang/de-informal/password.txt +++ b/inc/lang/de-informal/password.txt @@ -6,5 +6,6 @@ Benutzername: @LOGIN@ Passwort : @PASSWORD@ -- -Diese Mail kommt vom DokuWiki auf +Diese Mail wurde vom DokuWiki auf @DOKUWIKIURL@ +erzeugt. \ No newline at end of file diff --git a/inc/lang/de-informal/pwconfirm.txt b/inc/lang/de-informal/pwconfirm.txt index 538597cfa..5e5572b28 100644 --- a/inc/lang/de-informal/pwconfirm.txt +++ b/inc/lang/de-informal/pwconfirm.txt @@ -12,5 +12,6 @@ Bestätigungslink. @CONFIRM@ -- -Diese Mail kommt vom DokuWiki auf +Diese Mail wurde vom DokuWiki auf @DOKUWIKIURL@ +erzeugt. diff --git a/inc/lang/de-informal/uploadmail.txt b/inc/lang/de-informal/uploadmail.txt index 72e4a2a6e..7239cc10c 100644 --- a/inc/lang/de-informal/uploadmail.txt +++ b/inc/lang/de-informal/uploadmail.txt @@ -10,5 +10,6 @@ MIME-Typ : @MIME@ Benutzer : @USER@ -- -Diese Mail kommt vom DokuWiki auf +Diese Mail wurde vom DokuWiki auf @DOKUWIKIURL@ +erzeugt. -- cgit v1.2.3 From c4b04b7f874a6c3f7ab5296aed1c039757183eb7 Mon Sep 17 00:00:00 2001 From: Philippe Bajoit Date: Mon, 8 Feb 2010 20:22:17 +0100 Subject: French language update --- inc/lang/fr/lang.php | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'inc') diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 6a0f408b8..7e2173f42 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -18,6 +18,7 @@ * @author Erik Pedersen * @author olivier duperray * @author Vincent Feltz + * @author Philippe Bajoit */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -51,9 +52,6 @@ $lang['btn_back'] = 'Retour'; $lang['btn_backlink'] = 'Liens vers cette page'; $lang['btn_backtomedia'] = 'Retour à la sélection du fichier média'; $lang['btn_subscribe'] = 'S\'abonner à la page'; -$lang['btn_unsubscribe'] = 'Se désabonner de la page'; -$lang['btn_subscribens'] = 'S\'abonner à la catégorie'; -$lang['btn_unsubscribens'] = 'Se désabonner de la catégorie'; $lang['btn_profile'] = 'Mettre à jour le profil'; $lang['btn_reset'] = 'Réinitialiser'; $lang['btn_resendpwd'] = 'Envoyer le mot de passe'; @@ -161,8 +159,10 @@ $lang['external_edit'] = 'édition externe'; $lang['summary'] = 'Résumé'; $lang['noflash'] = 'L"extension Adobe Flash Plugin est nécessaire pour afficher ce contenu.'; $lang['download'] = 'Télécharger un extrait'; +$lang['table_edit_title'] = 'Tableau'; $lang['mail_newpage'] = 'page ajoutée :'; $lang['mail_changed'] = 'page changée :'; +$lang['mail_subscribe_list'] = 'pages modifiées dans l\'espace de nommage:'; $lang['mail_new_user'] = 'nouvel utilisateur :'; $lang['mail_upload'] = 'fichier envoyé :'; $lang['qb_bold'] = 'Gras'; @@ -205,11 +205,22 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Appareil photo'; $lang['img_keywords'] = 'Mots clef'; -$lang['subscribe_success'] = 'Ajout de %s à la liste d\'abonnés de %s'; -$lang['subscribe_error'] = 'Erreur à l\'ajout de %s à la liste d\'abonnés de %s'; -$lang['subscribe_noaddress'] = 'Aucune adresse associée à votre nom d\'utilisateur, impossible de vous ajouter à la liste d\'abonnés'; -$lang['unsubscribe_success'] = 'Suppression de %s de la liste d\'abonnés de %s'; -$lang['unsubscribe_error'] = 'Erreur à la suppression de %s de la liste d\'abonnés de %s'; +$lang['subscr_subscribe_success'] = 'Ajouté %s à la liste de souscription de %s'; +$lang['subscr_subscribe_error'] = 'Erreur en ajoutant %s à la liste de souscription de %s'; +$lang['subscr_subscribe_noaddress'] = 'Il n\'y a pas d\'adresse associée à votre login, vous ne pouvez pas être ajouté à la liste de souscription'; +$lang['subscr_unsubscribe_success'] = 'Retiré %s de la liste de souscription de %s'; +$lang['subscr_unsubscribe_error'] = 'Erreur en retirant %s de la liste de souscription de %s'; +$lang['subscr_already_subscribed'] = '%s est déjà souscrit à %s'; +$lang['subscr_not_subscribed'] = '%s n\'est pas souscrit à %s'; +$lang['subscr_m_not_subscribed'] = 'Vous n\'avez pas souscrit pour l\'instant à la page courante ou l\'espace de nommage'; +$lang['subscr_m_new_header'] = 'Ajouter une souscription'; +$lang['subscr_m_current_header'] = 'Souscriptions actives'; +$lang['subscr_m_unsubscribe'] = 'Annuler la souscription'; +$lang['subscr_m_subscribe'] = 'Souscrire'; +$lang['subscr_m_receive'] = 'Recevoir'; +$lang['subscr_style_every'] = 'Envoyer un email à chaque changement'; +$lang['subscr_style_digest'] = 'Email résumé des changements de chaque page'; +$lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier email'; $lang['authmodfailed'] = 'Mauvais paramétrage de l\'authentification. Merci d\'informer l\'administrateur du Wiki.'; $lang['authtempfail'] = 'L\'authentification est temporairement indisponible. Si cela perdure, merci d\'informer l\'administrateur du Wiki.'; $lang['i_chooselang'] = 'Choisissez votre langue'; -- cgit v1.2.3 From 66d2bed97d77042bdcd15cbeb71f058918c8f614 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 9 Feb 2010 10:51:54 +0100 Subject: Add security token to subscription manage page --- inc/actions.php | 2 +- inc/template.php | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 1fda0584e..b7567bc20 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -571,7 +571,7 @@ function act_subscription($act){ } // any action given? if not just return and show the subscription page - if(!$params['action']) return $act; + if(!$params['action'] || !checkSecurityToken()) return $act; // Handle POST data, may throw exception. trigger_event('ACTION_HANDLE_SUBSCRIBE', $params, 'subscription_handle_post'); diff --git a/inc/template.php b/inc/template.php index bab68e549..df0c94437 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1375,9 +1375,14 @@ function tpl_subscribe() { if(!$sstl) $sstl = hsc($sub['style']); echo ' ('.$sstl.') '; - echo ''.$lang['subscr_m_unsubscribe'].''; - - echo '
'; + echo ''.$lang['subscr_m_unsubscribe'] . + '
'; } echo ''; } -- cgit v1.2.3 From 25624f5a1298c401be5c26959027cbe4569ac35a Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 9 Feb 2010 10:50:38 +0100 Subject: Nicer list subscription mail --- inc/subscription.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/subscription.php b/inc/subscription.php index ae326c894..f844fea1d 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -303,13 +303,14 @@ function subscription_send_digest($subscriber_mail, $change, $lastupdate) { * @author Adrian Lang */ function subscription_send_list($subscriber_mail, $changes, $id) { + global $conf; $list = ''; foreach ($changes as $change) { - $list .= '* ' . $change['id'] . NL; + $list .= '* ' . wl($change['id'], array(), true) . NL; } subscription_send($subscriber_mail, array('DIFF' => rtrim($list), - 'SUBSCRIBE' => wl($changes[0]['id'], + 'SUBSCRIBE' => wl($id . $conf['start'], array('do' => 'subscribe'), true, '&')), 'subscribe_list', -- cgit v1.2.3 From 9ee282d8dedfbb7ac2b6893de250d99f00ff544f Mon Sep 17 00:00:00 2001 From: Dimi T Date: Tue, 9 Feb 2010 21:52:03 +0100 Subject: Macedonian transaltion added --- inc/lang/mk/adminplugins.txt | 1 + inc/lang/mk/lang.php | 247 +++++++++++++++++++++++++++++++++++++++++++ inc/lang/mk/read.txt | 1 + inc/lang/mk/recent.txt | 3 + inc/lang/mk/showrev.txt | 2 + 5 files changed, 254 insertions(+) create mode 100644 inc/lang/mk/adminplugins.txt create mode 100644 inc/lang/mk/lang.php create mode 100644 inc/lang/mk/read.txt create mode 100644 inc/lang/mk/recent.txt create mode 100644 inc/lang/mk/showrev.txt (limited to 'inc') diff --git a/inc/lang/mk/adminplugins.txt b/inc/lang/mk/adminplugins.txt new file mode 100644 index 000000000..28e2cc1d3 --- /dev/null +++ b/inc/lang/mk/adminplugins.txt @@ -0,0 +1 @@ +===== Додатни приклучоци ===== \ No newline at end of file diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php new file mode 100644 index 000000000..b33bea1a3 --- /dev/null +++ b/inc/lang/mk/lang.php @@ -0,0 +1,247 @@ + + */ +$lang['encoding'] = 'utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '„'; +$lang['doublequoteclosing'] = '“'; +$lang['apostrophe'] = '\''; +$lang['btn_edit'] = 'Уреди ја страницата'; +$lang['btn_source'] = 'Прикажи ја изворната страница'; +$lang['btn_show'] = 'Прикажи страница'; +$lang['btn_create'] = 'Креирај ја оваа страница'; +$lang['btn_search'] = 'Барај'; +$lang['btn_save'] = 'Зачувај'; +$lang['btn_preview'] = 'Преглед'; +$lang['btn_top'] = 'Назад до врв'; +$lang['btn_newer'] = '<< понови'; +$lang['btn_older'] = 'постари >>'; +$lang['btn_revs'] = 'Стари ревизии'; +$lang['btn_recent'] = 'Скорешни промени'; +$lang['btn_upload'] = 'Крени'; +$lang['btn_cancel'] = 'Откажи'; +$lang['btn_index'] = 'Индекс'; +$lang['btn_secedit'] = 'Уреди'; +$lang['btn_login'] = 'Најава'; +$lang['btn_logout'] = 'Одјава'; +$lang['btn_admin'] = 'Админ'; +$lang['btn_update'] = 'Ажурирај'; +$lang['btn_delete'] = 'Избриши'; +$lang['btn_back'] = 'Назад'; +$lang['btn_backlink'] = 'Повратни врски'; +$lang['btn_backtomedia'] = 'Назад до изборот за медиа-датотека'; +$lang['btn_subscribe'] = 'Менаџирај претплати'; +$lang['btn_profile'] = 'Ажурирај профил'; +$lang['btn_reset'] = 'Ресет'; +$lang['btn_resendpwd'] = 'Испрати нов пасворд'; +$lang['btn_draft'] = 'Уреди скица'; +$lang['btn_recover'] = 'Поврати скица'; +$lang['btn_draftdel'] = 'Избриши скица'; +$lang['btn_revert'] = 'Обнови'; +$lang['loggedinas'] = 'Најавен/а како'; +$lang['user'] = 'Корисничко име'; +$lang['pass'] = 'Лозинка'; +$lang['newpass'] = 'Нова лозинка'; +$lang['oldpass'] = 'Потврдете ја сегашната лозинка'; +$lang['passchk'] = 'уште еднаш'; +$lang['remember'] = 'Запомни ме'; +$lang['fullname'] = 'Вистинско име'; +$lang['email'] = 'Е-пошта'; +$lang['register'] = 'Регистрирај се'; +$lang['profile'] = 'Кориснички профил'; +$lang['badlogin'] = 'Жалам, корисничкото име или лозинката се погрешни.'; +$lang['minoredit'] = 'Мали измени'; +$lang['draftdate'] = 'Скицата е само-снимена на'; +$lang['nosecedit'] = 'Во меѓувреме страницата беше променета, информацискиот дел е со истечен период затоа се вчита целата страница.'; +$lang['regmissing'] = 'Жалам, мора да ги пополнеш сите полиња.'; +$lang['reguexists'] = 'Жалам, корисник со ова корисничко име веќе постои.'; +$lang['regsuccess'] = 'Корисникот е креиран и лозинката е испратена по е-пошта.'; +$lang['regsuccess2'] = 'Корисникот е креиран.'; +$lang['regmailfail'] = 'Изгледа дека се појави грешка при испраќањето на е-пошта со лозинката. Ве молам контактирајте го администраторот!'; +$lang['regbadmail'] = 'Дадената адреса за е-пошта изгледа невалидна - ако мислите дека ова е грешка, контактирајте го администраторот'; +$lang['regbadpass'] = 'Двете наведени лозинки не се исти, ве молам пробајте повторно.'; +$lang['regpwmail'] = 'Вашата DokuWiki лозинка'; +$lang['reghere'] = 'Се уште немаш сметка? Направи веќе една'; +$lang['profna'] = 'Ова вики не поддржува измена на профилот'; +$lang['profnochange'] = 'Нема промени, ништо за правење.'; +$lang['profnoempty'] = 'Празно име или адреса за е-пошта не е дозволено.'; +$lang['profchanged'] = 'Корисничкиот профил е успешно ажуриран.'; +$lang['pwdforget'] = 'Ја заборавивте лозинката? Добијте нова'; +$lang['resendna'] = 'Ова вики не поддржува повторно испраќање на лозинка.'; +$lang['resendpwd'] = 'Испрати нова лозинка за'; +$lang['resendpwdmissing'] = 'Жалам, морате да ги пополните сите полиња.'; +$lang['resendpwdnouser'] = 'Жалам, таков корисник не постои во нашата база со податоци.'; +$lang['resendpwdbadauth'] = 'Жалам, овај код за валидација не е валиден. Проверете повторно дали ја искористивте целосната врска за потврда.'; +$lang['resendpwdconfirm'] = 'Врска за потврда е испратена по е-пошта.'; +$lang['resendpwdsuccess'] = 'Вашата нова лозинка е испратена по е-пошта.'; +$lang['license'] = 'Освен каде што е наведено поинаку, содржината на ова вики е лиценцирано по следнава лиценца:'; +$lang['licenseok'] = 'Забелешка: со уредување на оваа страница се согласувате да ја лиценцирате вашата содржина под следнава лиценца:'; +$lang['searchmedia'] = 'Барај име на датотека:'; +$lang['searchmedia_in'] = 'Барај во %s'; +$lang['txt_upload'] = 'Избери датотека за качување'; +$lang['txt_filename'] = 'Качи како (неморално)'; +$lang['txt_overwrt'] = 'Пребриши ја веќе постоечката датотека'; +$lang['lockedby'] = 'Моментално заклучена од'; +$lang['lockexpire'] = 'Клучот истекува на'; +$lang['willexpire'] = 'Вашиот клуч за уредување на оваа страница ќе истече за една минута.\nЗа да избегнете конфликти и да го ресетирате бројачот за време, искористете го копчето за преглед.'; +$lang['notsavedyet'] = 'Незачуваните промени ќе бидат изгубени.\nСакате да продолжите?'; +$lang['rssfailed'] = 'Се појави грешка при повлекувањето на овој канал:'; +$lang['nothingfound'] = 'Ништо не е пронајдено.'; +$lang['mediaselect'] = 'Медиа датотеки'; +$lang['fileupload'] = 'Качување на медиа датотеки'; +$lang['uploadsucc'] = 'Качувањето е успешно'; +$lang['uploadfail'] = 'Качувањето не е успешно. Можеби има погрешни пермисии?'; +$lang['uploadwrong'] = 'Качувањето е одбиено. Наставката на датотеката е забранета!'; +$lang['uploadexist'] = 'Датотеката веќе постои. Ништо не е направено.'; +$lang['uploadbadcontent'] = 'Качената содржина не се совпаѓа со наставката %s на датотеката.'; +$lang['uploadspam'] = 'Качувањето беше блокирано од црната листа за спам.'; +$lang['uploadxss'] = 'Качувањето беше блокирано за можна злонамерна содржина.'; +$lang['uploadsize'] = 'Датотеката за качување е премногу голема. (макс. %s)'; +$lang['deletesucc'] = 'Датотеката „%s“ е избришана.'; +$lang['deletefail'] = '„%s“ не може да се избрише - проверете пермисии.'; +$lang['mediainuse'] = 'Датотеката „%s“ не е избришана - се уште е во употреба.'; +$lang['mediafiles'] = 'Достапни датотеки во'; +$lang['js']['searchmedia'] = 'Барај датотеки'; +$lang['js']['keepopen'] = 'Задржи го прозорецот отворен на означеното место'; +$lang['js']['hidedetails'] = 'Скриј детали'; +$lang['js']['nosmblinks'] = 'Поврзувањето со Windows Shares работи само со Microsoft Internet Explorer. Сепак можете да ја копирате и вметнете врската.'; +$lang['js']['linkwiz'] = 'Волшебник за врски'; +$lang['js']['linkto'] = 'Врска до:'; +$lang['js']['del_confirm'] = 'Дали навистина да ги избришам избраните датотеки?'; +$lang['js']['mu_btn'] = 'Качете повеќе датотеки наеднаш'; +$lang['mediausage'] = 'Користете ја следнава синтакса за референцирање кон оваа датотека:'; +$lang['mediaview'] = 'Види ја оригиналната датотека'; +$lang['mediaroot'] = 'root'; +$lang['mediaextchange'] = 'Наставката на датотеката е сменета од .%s во .%s!'; +$lang['reference'] = 'Референци за'; +$lang['ref_inuse'] = 'Датотеката не може да биде избришана бидејќи се уште се користи од следниве страници:'; +$lang['ref_hidden'] = 'Некои референци се на страници на кои немате пермисии за читање'; +$lang['hits'] = 'Прегледи'; +$lang['quickhits'] = 'Совпаѓачки имиња на страници'; +$lang['toc'] = 'Содржина'; +$lang['current'] = 'сегашно'; +$lang['yours'] = 'Вашата верзија'; +$lang['diff'] = 'Прикажи разлики со сегашната верзија'; +$lang['diff2'] = 'Прикажи разлики помеѓу избраните ревизии'; +$lang['line'] = 'Линија'; +$lang['breadcrumb'] = 'Следи'; +$lang['youarehere'] = 'Вие сте тука'; +$lang['lastmod'] = 'Последно изменета'; +$lang['by'] = 'од'; +$lang['deleted'] = 'отстранета'; +$lang['created'] = 'креирана'; +$lang['restored'] = 'обновена е стара ревизија'; +$lang['external_edit'] = 'надворешно уредување'; +$lang['summary'] = 'Уреди го изводот'; +$lang['noflash'] = 'Adobe Flash приклучокот е потребен за да се прикаже оваа содржина.'; +$lang['download'] = 'Симни Snippe'; +$lang['mail_newpage'] = 'додадена е страницата:'; +$lang['mail_changed'] = 'променета е страницата:'; +$lang['mail_new_user'] = 'нов корисник:'; +$lang['mail_upload'] = 'качена е датотеката:'; +$lang['qb_bold'] = 'Задебелен текст'; +$lang['qb_italic'] = 'Накосен текст'; +$lang['qb_underl'] = 'Подвлечен текст'; +$lang['qb_code'] = 'Текст за код'; +$lang['qb_strike'] = 'Прецртан текст'; +$lang['qb_h1'] = 'Заглавие од 1-во ниво'; +$lang['qb_h2'] = 'Заглавие од 2-ро ниво'; +$lang['qb_h3'] = 'Заглавие од 3-то ниво'; +$lang['qb_h4'] = 'Заглавие од 4-то ниво'; +$lang['qb_h5'] = 'Заглавие од 5-то ниво'; +$lang['qb_h'] = 'Заглавие'; +$lang['qb_hs'] = 'Избери заглавие'; +$lang['qb_hplus'] = 'Зголеми заглавие'; +$lang['qb_hminus'] = 'Намали заглавие'; +$lang['qb_hequal'] = 'Заглавие од исто ниво'; +$lang['qb_link'] = 'Внатрешна врска'; +$lang['qb_extlink'] = 'Надворешна врска'; +$lang['qb_hr'] = 'Хоризонтален линијар'; +$lang['qb_media'] = 'Додај слики и други датотеки'; +$lang['qb_sig'] = 'Внеси потпис'; +$lang['qb_smileys'] = 'Смајлиња'; +$lang['qb_chars'] = 'Специјални знаци'; +$lang['admin_register'] = 'Додај нов корисник'; +$lang['metaedit'] = 'Уреди мета-податоци'; +$lang['metasaveerr'] = 'Запишување на мета-податоците не успеа'; +$lang['metasaveok'] = 'Мета-податоците се зачувани'; +$lang['img_backto'] = 'Назад до'; +$lang['img_title'] = 'Насловна линија'; +$lang['img_caption'] = 'Наслов'; +$lang['img_date'] = 'Датум'; +$lang['img_fname'] = 'Име на датотека'; +$lang['img_fsize'] = 'Големина'; +$lang['img_artist'] = 'Фотограф'; +$lang['img_copyr'] = 'Авторско право'; +$lang['img_format'] = 'Формат'; +$lang['img_camera'] = 'Камера'; +$lang['img_keywords'] = 'Клучни зборови'; +$lang['subscr_subscribe_success'] = 'Додаден/а е %s во претплатничката листа за %s'; +$lang['subscr_subscribe_error'] = 'Грешка при додавањето на %s во претплатничката листа за %s'; +$lang['subscr_subscribe_noaddress'] = 'Нема адреса за е-пошта поврзана со Вашата најава, не може да бидете додадени на претплатничката листа'; +$lang['subscr_unsubscribe_success'] = 'Отстранет/а е %s од претплатничката листа за %s'; +$lang['subscr_unsubscribe_error'] = 'Грешка при отстранувањето на %s од претплатничката листа за %s'; +$lang['subscr_already_subscribed'] = '%s е веќе претплатен/а на %s'; +$lang['subscr_not_subscribed'] = '%s е не претплатен/а на %s'; +$lang['subscr_m_not_subscribed'] = 'Моментално не сте пријавени на сегашната страница или '; +$lang['subscr_m_new_header'] = 'Додај претплата'; +$lang['subscr_m_current_header'] = 'Моментални претплати'; +$lang['subscr_m_unsubscribe'] = 'Отплатување'; +$lang['subscr_m_subscribe'] = 'Претплата'; +$lang['subscr_m_receive'] = 'Прими'; +$lang['subscr_style_every'] = 'е-пошта за секоја промена'; +$lang['subscr_style_digest'] = 'е-пошта со преглед од промените за секоја страница'; +$lang['subscr_style_list'] = 'листа на променети страници од последната е-пошта'; +$lang['authmodfailed'] = 'Лоша конфигурација за автентикација на корисник. Ве молам информирајте го вики администратор.'; +$lang['authtempfail'] = 'Автентикација на корисник е привремено недостапна. Ако оваа ситуација истрајува, ве молам известете го вики администратор.'; +$lang['i_chooselang'] = 'Избере јазик'; +$lang['i_installer'] = 'Инсталер за DokuWiki'; +$lang['i_wikiname'] = 'вики име'; +$lang['i_enableacl'] = 'Овозможи ACL (препорачано)'; +$lang['i_superuser'] = 'Супер корисник'; +$lang['i_problems'] = 'Инсталерот пронајде неколку проблеми кои се прикажани подолу. Не можете да продолжите понатаму се додека не ги поправите.'; +$lang['i_modified'] = 'За безбедносни причини оваа скрипта ќе работи само со нова и неизменета инсталација од DokuWiki. Или извадете ги повторно датотеките од симнатиот пакет или консултирајте се со комплетните Dokuwiki инструкции за инсталација'; +$lang['i_funcna'] = 'PHP функцијата %s не е достапна. Можеби вашиот хостинг провајдер ја оневозможил со причина?'; +$lang['i_phpver'] = 'Вашата верзија на PHP %s е пониска од потребната %s. Треба да ја надградите вашата PHP инсталација.'; +$lang['i_permfail'] = '%s не е запишлива од DokuWiki. Треба да ги поправите подесувањата за пермисии на овој директориум!'; +$lang['i_confexists'] = '%s веќе постои'; +$lang['i_writeerr'] = 'Не може да се креира %s. Треба да ги проверите пермисиите на директориумот/датотеката и рачно да ја креирате датотеката.'; +$lang['i_badhash'] = 'непозната или изменете dokuwiki.php (hash=%s)'; +$lang['i_badval'] = '%s - нелегална или празна вредност'; +$lang['i_success'] = 'Конфигурацијата успешно заврши. Сега можете да ја избришете датотеката install.php. Продолжете до вашето ново DokuWiki.'; +$lang['i_failure'] = 'Се појавија некои грешки при запишувањето на конфигурациските датотеки. Можеби треба да ги поравите рачно пред да можете да го користите вашето ново DokuWiki.'; +$lang['i_policy'] = 'Почетна ACL политика'; +$lang['i_pol0'] = 'Отвори вики (читај, запиши, качи за сите)'; +$lang['i_pol1'] = 'Јавно вики (читај за сите, запиши и качи за регистрирани корисници)'; +$lang['i_pol2'] = 'Затворено вики (читај, запиши, качи само за регистрирани корисници)'; +$lang['i_retry'] = 'Пробај повторно'; +$lang['mu_intro'] = 'Овде можете да прикачите повеќе датотеки од еднаш. Кликнете на копчето за пребарување за да ги додадете во редица. Притиснете на качи кога е готово.'; +$lang['mu_gridname'] = 'Име на датотека'; +$lang['mu_gridsize'] = 'Големина'; +$lang['mu_gridstat'] = 'Состојба'; +$lang['mu_browse'] = 'Пребарај'; +$lang['mu_toobig'] = 'премногу голема'; +$lang['mu_ready'] = 'спремна за качување'; +$lang['mu_done'] = 'комплетно'; +$lang['mu_fail'] = 'неуспешно'; +$lang['mu_authfail'] = 'сесијата истече'; +$lang['mu_progress'] = '@PCT@% качено'; +$lang['mu_filetypes'] = 'Дозволено типови на датотеки'; +$lang['mu_info'] = 'качени датотеки.'; +$lang['mu_lasterr'] = 'Последна грешка: '; +$lang['years'] = 'пред %d години'; +$lang['months'] = 'пред %d месеци'; +$lang['weeks'] = 'пред %d недели'; +$lang['days'] = 'пред %d денови'; +$lang['hours'] = 'пред %d часа'; +$lang['minutes'] = 'пред %d минути'; +$lang['seconds'] = 'пред %d секунди'; diff --git a/inc/lang/mk/read.txt b/inc/lang/mk/read.txt new file mode 100644 index 000000000..8c8726eea --- /dev/null +++ b/inc/lang/mk/read.txt @@ -0,0 +1 @@ +Оваа страница е само за читање. Можете да го гледате изворот, но не можете да ја менувате. Ако мислите дека ова е погрешно, контактирајте го администраторот. \ No newline at end of file diff --git a/inc/lang/mk/recent.txt b/inc/lang/mk/recent.txt new file mode 100644 index 000000000..cfbba4aa2 --- /dev/null +++ b/inc/lang/mk/recent.txt @@ -0,0 +1,3 @@ +====== Скорешни промени ====== + +Следниве страници беа скорешно променети. \ No newline at end of file diff --git a/inc/lang/mk/showrev.txt b/inc/lang/mk/showrev.txt new file mode 100644 index 000000000..a0ca7353e --- /dev/null +++ b/inc/lang/mk/showrev.txt @@ -0,0 +1,2 @@ +**Ова е стара ревизија од документото!** +---- \ No newline at end of file -- cgit v1.2.3 From fc5dbe994743ed593e3941015999ca08abc72686 Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Wed, 10 Feb 2010 20:26:47 +0100 Subject: Interlingua Translation added --- inc/lang/ia/admin.txt | 3 + inc/lang/ia/adminplugins.txt | 1 + inc/lang/ia/backlinks.txt | 3 + inc/lang/ia/conflict.txt | 5 + inc/lang/ia/denied.txt | 3 + inc/lang/ia/diff.txt | 3 + inc/lang/ia/draft.txt | 5 + inc/lang/ia/edit.txt | 1 + inc/lang/ia/editrev.txt | 2 + inc/lang/ia/index.txt | 3 + inc/lang/ia/install.html | 13 +++ inc/lang/ia/lang.php | 262 ++++++++++++++++++++++++++++++++++++++++++ inc/lang/ia/locked.txt | 3 + inc/lang/ia/login.txt | 3 + inc/lang/ia/mailtext.txt | 17 +++ inc/lang/ia/newpage.txt | 3 + inc/lang/ia/norev.txt | 3 + inc/lang/ia/password.txt | 10 ++ inc/lang/ia/preview.txt | 3 + inc/lang/ia/pwconfirm.txt | 14 +++ inc/lang/ia/read.txt | 1 + inc/lang/ia/recent.txt | 3 + inc/lang/ia/register.txt | 3 + inc/lang/ia/registermail.txt | 14 +++ inc/lang/ia/resendpwd.txt | 3 + inc/lang/ia/revisions.txt | 3 + inc/lang/ia/searchpage.txt | 5 + inc/lang/ia/showrev.txt | 2 + inc/lang/ia/stopwords.txt | 38 ++++++ inc/lang/ia/subscr_digest.txt | 20 ++++ inc/lang/ia/subscr_form.txt | 4 + inc/lang/ia/subscr_list.txt | 17 +++ inc/lang/ia/subscr_single.txt | 26 +++++ inc/lang/ia/updateprofile.txt | 3 + inc/lang/ia/uploadmail.txt | 14 +++ inc/lang/ia/wordblock.txt | 3 + 36 files changed, 519 insertions(+) create mode 100644 inc/lang/ia/admin.txt create mode 100644 inc/lang/ia/adminplugins.txt create mode 100644 inc/lang/ia/backlinks.txt create mode 100644 inc/lang/ia/conflict.txt create mode 100644 inc/lang/ia/denied.txt create mode 100644 inc/lang/ia/diff.txt create mode 100644 inc/lang/ia/draft.txt create mode 100644 inc/lang/ia/edit.txt create mode 100644 inc/lang/ia/editrev.txt create mode 100644 inc/lang/ia/index.txt create mode 100644 inc/lang/ia/install.html create mode 100644 inc/lang/ia/lang.php create mode 100644 inc/lang/ia/locked.txt create mode 100644 inc/lang/ia/login.txt create mode 100644 inc/lang/ia/mailtext.txt create mode 100644 inc/lang/ia/newpage.txt create mode 100644 inc/lang/ia/norev.txt create mode 100644 inc/lang/ia/password.txt create mode 100644 inc/lang/ia/preview.txt create mode 100644 inc/lang/ia/pwconfirm.txt create mode 100644 inc/lang/ia/read.txt create mode 100644 inc/lang/ia/recent.txt create mode 100644 inc/lang/ia/register.txt create mode 100644 inc/lang/ia/registermail.txt create mode 100644 inc/lang/ia/resendpwd.txt create mode 100644 inc/lang/ia/revisions.txt create mode 100644 inc/lang/ia/searchpage.txt create mode 100644 inc/lang/ia/showrev.txt create mode 100644 inc/lang/ia/stopwords.txt create mode 100644 inc/lang/ia/subscr_digest.txt create mode 100644 inc/lang/ia/subscr_form.txt create mode 100644 inc/lang/ia/subscr_list.txt create mode 100644 inc/lang/ia/subscr_single.txt create mode 100644 inc/lang/ia/updateprofile.txt create mode 100644 inc/lang/ia/uploadmail.txt create mode 100644 inc/lang/ia/wordblock.txt (limited to 'inc') diff --git a/inc/lang/ia/admin.txt b/inc/lang/ia/admin.txt new file mode 100644 index 000000000..f81ff3170 --- /dev/null +++ b/inc/lang/ia/admin.txt @@ -0,0 +1,3 @@ +====== Administration ====== + +Hic infra se trova un lista de cargas administrative disponibile in DokuWiki. diff --git a/inc/lang/ia/adminplugins.txt b/inc/lang/ia/adminplugins.txt new file mode 100644 index 000000000..ad8f794b0 --- /dev/null +++ b/inc/lang/ia/adminplugins.txt @@ -0,0 +1 @@ +===== Plug-ins additional ===== \ No newline at end of file diff --git a/inc/lang/ia/backlinks.txt b/inc/lang/ia/backlinks.txt new file mode 100644 index 000000000..de5d2ac56 --- /dev/null +++ b/inc/lang/ia/backlinks.txt @@ -0,0 +1,3 @@ +====== Retroligamines ====== + +Isto es un lista de paginas que contine ligamines de retorno al pagina actual. \ No newline at end of file diff --git a/inc/lang/ia/conflict.txt b/inc/lang/ia/conflict.txt new file mode 100644 index 000000000..576cb7e3f --- /dev/null +++ b/inc/lang/ia/conflict.txt @@ -0,0 +1,5 @@ +====== Un version plus nove existe ====== + +Existe un version plus nove del documento que tu ha modificate. Isto occurre si un altere usator cambia le documento durante que tu lo modifica. + +Examina minutiosemente le differentias monstrate hic infra, postea decide qual version debe esser conservate. Si tu selige ''salveguardar'', tu version essera salveguardate. Preme ''cancellar'' pro conservar le version actual. diff --git a/inc/lang/ia/denied.txt b/inc/lang/ia/denied.txt new file mode 100644 index 000000000..044e1532d --- /dev/null +++ b/inc/lang/ia/denied.txt @@ -0,0 +1,3 @@ +====== Permission refusate ====== + +Pardono, tu non ha le derectos requisite pro continuar. Pote esser que tu ha oblidate de aperir un session. \ No newline at end of file diff --git a/inc/lang/ia/diff.txt b/inc/lang/ia/diff.txt new file mode 100644 index 000000000..dbfa70f13 --- /dev/null +++ b/inc/lang/ia/diff.txt @@ -0,0 +1,3 @@ +====== Differentias ====== + +Isto te monstra le differentias inter duo versiones del pagina. \ No newline at end of file diff --git a/inc/lang/ia/draft.txt b/inc/lang/ia/draft.txt new file mode 100644 index 000000000..ae8de13f4 --- /dev/null +++ b/inc/lang/ia/draft.txt @@ -0,0 +1,5 @@ +====== Version provisori trovate ====== + +Tu ultime session de modification in iste pagina non ha essite concludite correctemente. DokuWiki ha automaticamente salveguardate un version provisori durante tu labor. Ora tu pote usar iste version provisori pro continuar le modification. Hic infra tu vide le datos salveguardate de tu ultime session. + +Per favor decide si tu vole //recuperar// le session de modification perdite, //deler// le version provisori o //cancellar// le processo de modification. \ No newline at end of file diff --git a/inc/lang/ia/edit.txt b/inc/lang/ia/edit.txt new file mode 100644 index 000000000..5bc58362a --- /dev/null +++ b/inc/lang/ia/edit.txt @@ -0,0 +1 @@ +Modifica le pagina e preme "Salveguardar". Vide [[wiki:syntax]] pro le syntaxe wiki. Per favor modifica le paginas solmente si tu pote **meliorar** lo. Si tu vole testar alcun cosas, apprende facer tu prime passos in le [[playground:playground|parco de jocos]]. \ No newline at end of file diff --git a/inc/lang/ia/editrev.txt b/inc/lang/ia/editrev.txt new file mode 100644 index 000000000..192381f8c --- /dev/null +++ b/inc/lang/ia/editrev.txt @@ -0,0 +1,2 @@ +**Tu ha cargate un version ancian del documento!** Si tu lo salveguarda, tu crea un nove version con iste datos. +---- \ No newline at end of file diff --git a/inc/lang/ia/index.txt b/inc/lang/ia/index.txt new file mode 100644 index 000000000..5957cc2ab --- /dev/null +++ b/inc/lang/ia/index.txt @@ -0,0 +1,3 @@ +====== Indice ====== + +Isto es un indice super tote le paginas disponibile, ordinate per [[doku>namespaces|spatio de nomines]]. diff --git a/inc/lang/ia/install.html b/inc/lang/ia/install.html new file mode 100644 index 000000000..6b343ad00 --- /dev/null +++ b/inc/lang/ia/install.html @@ -0,0 +1,13 @@ +

Iste pagina te assiste in le prime installation e configuration de +Dokuwiki. Ulterior informationes super iste installator es disponibile in le +pagina de documentaiton de illo.

+ +

DokuWiki usa files ordinari pro le immagazinage de paginas wiki e altere informationes associate con iste paginas (p.ex. imagines, indices de recerca, versiones ancian, etc). Pro poter functionar, DokuWiki +debe haber accesso de scriptura al directorios que contine iste files. Iste installator non es capabile de configurar le permissiones de directorios. Isto normalmente debe esser facite directemente con le linea de commandos, o si tu usa un albergo web, via FTP o via le pannello de controlo de tu albergo (p.ex. cPanel).

+ +

Iste installator configurara tu installation de DokuWiki pro +ACL, lo que permitte crear contos administrator, e forni accesso al menu administrative de DokuWiki pro installar plug-ins, gerer usatores, gerer accesso a paginas wiki e alterar configurationes. Isto non es necessari pro le functionamento de DokuWiki, nonobstante, illo rendera DokuWiki plus facile de administrar.

+ +

Le usatores experte o con exigentias special pro le installation deberea usar iste ligamines pro detalios concernente le +instructiones de installation +e configurationes.

diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php new file mode 100644 index 000000000..8d006bc5b --- /dev/null +++ b/inc/lang/ia/lang.php @@ -0,0 +1,262 @@ + + * @author Martijn Dekker + */ +$lang['encoding'] = 'utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '“'; +$lang['doublequoteclosing'] = '”'; +$lang['singlequoteopening'] = '‘'; +$lang['singlequoteclosing'] = '’'; +$lang['apostrophe'] = '’'; +$lang['btn_edit'] = 'Modificar iste pagina'; +$lang['btn_source'] = 'Monstrar codice-fonte'; +$lang['btn_show'] = 'Monstrar pagina'; +$lang['btn_create'] = 'Crear iste pagina'; +$lang['btn_search'] = 'Cercar'; +$lang['btn_save'] = 'Salveguardar'; +$lang['btn_preview'] = 'Previsualisar'; +$lang['btn_top'] = 'Retornar al initio'; +$lang['btn_newer'] = '<< plus recente'; +$lang['btn_older'] = 'minus recente >>'; +$lang['btn_revs'] = 'Versiones ancian'; +$lang['btn_recent'] = 'Modificationes recente'; +$lang['btn_upload'] = 'Incargar'; +$lang['btn_cancel'] = 'Cancellar'; +$lang['btn_index'] = 'Indice'; +$lang['btn_secedit'] = 'Modificar'; +$lang['btn_login'] = 'Aperir session'; +$lang['btn_logout'] = 'Clauder session'; +$lang['btn_admin'] = 'Admin'; +$lang['btn_update'] = 'Actualisar'; +$lang['btn_delete'] = 'Deler'; +$lang['btn_back'] = 'Retornar'; +$lang['btn_backlink'] = 'Retroligamines'; +$lang['btn_backtomedia'] = 'Retornar al selection de files multimedia'; +$lang['btn_subscribe'] = 'Gerer subscriptiones'; +$lang['btn_profile'] = 'Actualisar profilo'; +$lang['btn_reset'] = 'Reinitialisar'; +$lang['btn_resendpwd'] = 'Inviar nove contrasigno'; +$lang['btn_draft'] = 'Modificar version provisori'; +$lang['btn_recover'] = 'Recuperar version provisori'; +$lang['btn_draftdel'] = 'Deler version provisori'; +$lang['btn_revert'] = 'Restaurar'; +$lang['loggedinas'] = 'Session aperite como'; +$lang['user'] = 'Nomine de usator'; +$lang['pass'] = 'Contrasigno'; +$lang['newpass'] = 'Nove contrasigno'; +$lang['oldpass'] = 'Contrasigno actual'; +$lang['passchk'] = 'confirmar contrasigno'; +$lang['remember'] = 'Memorar me'; +$lang['fullname'] = 'Nomine real'; +$lang['email'] = 'E-mail'; +$lang['register'] = 'Crear conto'; +$lang['profile'] = 'Profilo de usator'; +$lang['badlogin'] = 'Le nomine de usator o le contrasigno es incorrecte.'; +$lang['minoredit'] = 'Modificationes minor'; +$lang['draftdate'] = 'Version provisori automaticamente salveguardate le'; +$lang['nosecedit'] = 'Le pagina ha essite modificate intertanto. Le informationes del section es ora obsolete, dunque le pagina complete ha essite cargate in su loco.'; +$lang['regmissing'] = 'Desolate, tu debe impler tote le campos.'; +$lang['reguexists'] = 'Pardono, un usator con iste nomine ja existe.'; +$lang['regsuccess'] = 'Le conto ha essite create e le contrasigno ha essite inviate per e-mail.'; +$lang['regsuccess2'] = 'Le conto ha essite create.'; +$lang['regmailfail'] = 'Il pare que un error occurreva durante le invio del message con le contrasigno. Per favor contacta le administrator!'; +$lang['regbadmail'] = 'Le adresse de e-mail date pare esser invalide. Si tu pensa que isto es un error, contacta le administrator.'; +$lang['regbadpass'] = 'Le duo contrasignos date non es identic. Per favor reproba.'; +$lang['regpwmail'] = 'Tu contrasigno de DokuWiki'; +$lang['reghere'] = 'Tu non ha ancora un conto? Crea un, simplemente.'; +$lang['profna'] = 'Iste wiki non supporta le modification de profilos.'; +$lang['profnochange'] = 'Nulle modification, nihil a facer.'; +$lang['profnoempty'] = 'Un nomine o adresse de e-mail vacue non es permittite.'; +$lang['profchanged'] = 'Actualisation del profilo de usator succedite.'; +$lang['pwdforget'] = 'Contrasigno oblidate? Obtene un altere'; +$lang['resendna'] = 'Iste wiki non supporta le invio de un nove contrasigno.'; +$lang['resendpwd'] = 'Inviar nove contrasigno pro'; +$lang['resendpwdmissing'] = 'Es necessari completar tote le campos.'; +$lang['resendpwdnouser'] = 'Iste usator non ha essite trovate in le base de datos.'; +$lang['resendpwdbadauth'] = 'Iste codice de authentication non es valide. Assecura te que tu ha usate le ligamine de confirmation complete.'; +$lang['resendpwdconfirm'] = 'Un ligamine de confirmation ha essite inviate per e-mail.'; +$lang['resendpwdsuccess'] = 'Tu nove contrasigno ha essite inviate per e-mail.'; +$lang['license'] = 'Excepte ubi indicate alteremente, le contento in iste wiki es disponibile sub le licentia sequente:'; +$lang['licenseok'] = 'Nota ben! Per modificar iste pagina tu accepta que tu contento essera publicate sub le conditiones del licentia sequente:'; +$lang['searchmedia'] = 'Cercar file con nomine:'; +$lang['searchmedia_in'] = 'Cercar in %s'; +$lang['txt_upload'] = 'Selige le file a incargar'; +$lang['txt_filename'] = 'Incargar como (optional)'; +$lang['txt_overwrt'] = 'Reimplaciar le file existente'; +$lang['lockedby'] = 'Actualmente serrate per'; +$lang['lockexpire'] = 'Serratura expira le'; +$lang['willexpire'] = 'Tu serratura super le modification de iste pagina expirara post un minuta.\nPro evitar conflictos, usa le button Previsualisar pro reinitialisar le timer del serratura.'; +$lang['notsavedyet'] = 'Le modificationes non salveguardate essera perdite.\nRealmente continuar?'; +$lang['rssfailed'] = 'Un error occurreva durante le obtention de iste syndication:'; +$lang['nothingfound'] = 'Nihil ha essite trovate.'; +$lang['mediaselect'] = 'Files multimedia'; +$lang['fileupload'] = 'Incargar file multimedia'; +$lang['uploadsucc'] = 'Incargamento succedite'; +$lang['uploadfail'] = 'Incargamento fallite. Pote esser que le permissiones es incorrecte.'; +$lang['uploadwrong'] = 'Incargamento refusate. Iste typo de file es prohibite!'; +$lang['uploadexist'] = 'File ja existe. Nihil facite.'; +$lang['uploadbadcontent'] = 'Le typo del contento incargate non corresponde al extension del nomine de file "%s".'; +$lang['uploadspam'] = 'Le incargamento ha essite blocate per le lista nigre anti-spam.'; +$lang['uploadxss'] = 'Le incargamento ha essite blocate a causa de contento possibilemente malitiose.'; +$lang['uploadsize'] = 'Le file incargate es troppo grande. (Max. %s)'; +$lang['deletesucc'] = 'Le file "%s" ha essite delite.'; +$lang['deletefail'] = '"%s" non poteva esser delite. Verifica le permissiones.'; +$lang['mediainuse'] = 'Le file "%s" non ha essite delite proque illo es ancora in uso.'; +$lang['namespaces'] = 'Spatios de nomines'; +$lang['mediafiles'] = 'Files disponibile in'; +$lang['js']['searchmedia'] = 'Cercar files'; +$lang['js']['keepopen'] = 'Mantener fenestra aperte post selection'; +$lang['js']['hidedetails'] = 'Celar detalios'; +$lang['js']['nosmblinks'] = 'Le ligamines a ressources de Windows functiona solmente in Microsoft Internet Explorer. +Tu pote nonobstante copiar e collar le ligamine.'; +$lang['js']['linkwiz'] = 'Assistente pro ligamines'; +$lang['js']['linkto'] = 'Ligar verso:'; +$lang['js']['del_confirm'] = 'Realmente deler le entrata(s) seligite?'; +$lang['js']['mu_btn'] = 'Incargar plure files simultaneemente'; +$lang['mediausage'] = 'Usa le syntaxe sequente pro referer a iste file:'; +$lang['mediaview'] = 'Vider file original'; +$lang['mediaroot'] = 'radice'; +$lang['mediaupload'] = 'Incarga hic un file in le spatio de nomines actual. Pro crear subspatios de nomines, antepone los al nomine de file "Incargar como", separate per signos de duo punctos (":").'; +$lang['mediaextchange'] = 'Extension del file cambiate de .%s a .%s!'; +$lang['reference'] = 'Referentias pro'; +$lang['ref_inuse'] = 'Le file non pote esser delite proque illo es ancora in uso per le sequente paginas:'; +$lang['ref_hidden'] = 'Alcun referentias es in paginas pro le quales tu non ha le permission de lectura'; +$lang['hits'] = 'Resultatos'; +$lang['quickhits'] = 'Nomines de pagina correspondente'; +$lang['toc'] = 'Tabula de contento'; +$lang['current'] = 'actual'; +$lang['yours'] = 'Tu version'; +$lang['diff'] = 'Monstrar differentias con versiones actual'; +$lang['diff2'] = 'Monstrar differentias inter le versiones seligite'; +$lang['line'] = 'Linea'; +$lang['breadcrumb'] = 'Tracia'; +$lang['youarehere'] = 'Tu es hic'; +$lang['lastmod'] = 'Ultime modification'; +$lang['by'] = 'per'; +$lang['deleted'] = 'removite'; +$lang['created'] = 'create'; +$lang['restored'] = 'ancian version restaurate'; +$lang['external_edit'] = 'modification externe'; +$lang['summary'] = 'Modificar summario'; +$lang['noflash'] = 'Le plug-in Flash de Adobe es necessari pro monstrar iste contento.'; +$lang['download'] = 'Discargar fragmento'; +$lang['mail_newpage'] = 'pagina addite:'; +$lang['mail_changed'] = 'pagina modificate:'; +$lang['mail_subscribe_list'] = 'paginas modificate in spatio de nomines:'; +$lang['mail_new_user'] = 'nove usator:'; +$lang['mail_upload'] = 'file incargate:'; +$lang['qb_bold'] = 'Texto grasse'; +$lang['qb_italic'] = 'Texto italic'; +$lang['qb_underl'] = 'Texto sublineate'; +$lang['qb_code'] = 'Texto de codice'; +$lang['qb_strike'] = 'Texto cancellate'; +$lang['qb_h1'] = 'Titulo a nivello 1'; +$lang['qb_h2'] = 'Titulo a nivello 2'; +$lang['qb_h3'] = 'Titulo a nivello 3'; +$lang['qb_h4'] = 'Titulo a nivello 4'; +$lang['qb_h5'] = 'Titulo a nivello 5'; +$lang['qb_h'] = 'Titulo'; +$lang['qb_hs'] = 'Seliger titulo'; +$lang['qb_hplus'] = 'Titulo superior'; +$lang['qb_hminus'] = 'Titulo inferior'; +$lang['qb_hequal'] = 'Titulo al mesme nivello'; +$lang['qb_link'] = 'Ligamine interne'; +$lang['qb_extlink'] = 'Ligamine externe'; +$lang['qb_hr'] = 'Linea horizontal'; +$lang['qb_ol'] = 'Elemento de lista ordinate'; +$lang['qb_ul'] = 'Elemento de lista non ordinate'; +$lang['qb_media'] = 'Adder imagines e altere files'; +$lang['qb_sig'] = 'Inserer signatura'; +$lang['qb_smileys'] = 'Emoticones'; +$lang['qb_chars'] = 'Characteres special'; +$lang['upperns'] = 'Saltar al spatio de nomines superior'; +$lang['admin_register'] = 'Adder nove usator'; +$lang['metaedit'] = 'Modificar metadatos'; +$lang['metasaveerr'] = 'Scriptura de metadatos fallite'; +$lang['metasaveok'] = 'Metadatos salveguardate'; +$lang['img_backto'] = 'Retornar a'; +$lang['img_title'] = 'Titulo'; +$lang['img_caption'] = 'Legenda'; +$lang['img_date'] = 'Data'; +$lang['img_fname'] = 'Nomine de file'; +$lang['img_fsize'] = 'Dimension'; +$lang['img_artist'] = 'Photographo'; +$lang['img_copyr'] = 'Copyright'; +$lang['img_format'] = 'Formato'; +$lang['img_camera'] = 'Camera'; +$lang['img_keywords'] = 'Parolas-clave'; +$lang['subscr_subscribe_success'] = '%s addite al lista de subscription de %s'; +$lang['subscr_subscribe_error'] = 'Error durante le addition de %s al lista de subscription de %s'; +$lang['subscr_subscribe_noaddress'] = 'Il non ha un adresse associate con tu conto. Tu non pote esser addite al lista de subscription.'; +$lang['subscr_unsubscribe_success'] = '%s removite del lista de subscription de %s'; +$lang['subscr_unsubscribe_error'] = 'Error durante le remotion de %s del lista de subscription de %s'; +$lang['subscr_already_subscribed'] = '%s es ja subscribite a %s'; +$lang['subscr_not_subscribed'] = '%s non es subscribite a %s'; +$lang['subscr_m_not_subscribed'] = 'Tu non es actualmente subscribite al pagina o spatio de nomines actual.'; +$lang['subscr_m_new_header'] = 'Adder subscription'; +$lang['subscr_m_current_header'] = 'Subscriptiones actual'; +$lang['subscr_m_unsubscribe'] = 'Cancellar subscription'; +$lang['subscr_m_subscribe'] = 'Subscriber'; +$lang['subscr_m_receive'] = 'Reciper'; +$lang['subscr_style_every'] = 'un message pro cata modification'; +$lang['subscr_style_digest'] = 'un digesto de modificationes pro cata pagina'; +$lang['subscr_style_list'] = 'lista de paginas modificate depost le ultime e-mail'; +$lang['authmodfailed'] = 'Configuration incorrecte de authentication de usator. Per favor informa le administrator de tu wiki.'; +$lang['authtempfail'] = 'Le authentication de usator temporarimente non es disponibile. Si iste situation persiste, per favor informa le administrator de tu wiki.'; +$lang['i_chooselang'] = 'Selige tu lingua'; +$lang['i_installer'] = 'Installator de DokuWiki'; +$lang['i_wikiname'] = 'Nomine del wiki'; +$lang['i_enableacl'] = 'Activar ACL (recommendate)'; +$lang['i_superuser'] = 'Superusator'; +$lang['i_problems'] = 'Le installator ha trovate alcun problemas, indicate hic infra. Tu debe resolver iste problemas pro poter continuar.'; +$lang['i_modified'] = 'Pro motivos de securitate, iste script functiona solmente con un installation de DokuWiki nove e non modificate. +Tu debe re-extraher le files del pacchetto discargate, o consultar le instructiones de installation complete pro altere optiones.'; +$lang['i_funcna'] = 'Le function PHP %s non es disponibile. Pote esser que tu albergo web lo ha disactivate pro un ration o altere.'; +$lang['i_phpver'] = 'Le version de PHP %s es plus ancian que le version requisite %s. Es necessari actualisar le installation de PHP.'; +$lang['i_permfail'] = '%s non es scriptibile per DokuWiki. Tu debe reparar le permissiones de iste directorio!'; +$lang['i_confexists'] = '%s ja existe'; +$lang['i_writeerr'] = 'Impossibile crear %s. Tu debe verificar le permissiones de directorios/files e crear iste file manualmente.'; +$lang['i_badhash'] = 'dokuwiki.php non recognoscite o modificate (hash=%s)'; +$lang['i_badval'] = '%s - valor vacue o invalide'; +$lang['i_success'] = 'Le configuration ha succedite. Tu pote ora deler le file install.php. Continua a +tu nove DokuWiki.'; +$lang['i_failure'] = 'Alcun errores occurreva durante le scriptura del files de configuration. Es possibile que tu debe remediar iste errores manualmente ante que +tu pote usar tu nove DokuWiki.'; +$lang['i_policy'] = 'Politica de ACL interne'; +$lang['i_pol0'] = 'Wiki aperte (lectura, scriptura, incargamento pro omnes)'; +$lang['i_pol1'] = 'Wiki public (lectura pro omnes, scriptura e incargamento pro usatores registrate)'; +$lang['i_pol2'] = 'Wiki claudite (lectura, scriptura e incargamento solmente pro usatores registrate)'; +$lang['i_retry'] = 'Reprobar'; +$lang['mu_intro'] = 'Hic tu pote incargar plure files insimul. Clicca super le button Navigar pro adder los al cauda. Preme Incargar quando tu ha finite.'; +$lang['mu_gridname'] = 'Nomine de file'; +$lang['mu_gridsize'] = 'Dimension'; +$lang['mu_gridstat'] = 'Stato'; +$lang['mu_namespace'] = 'Spatio de nomines'; +$lang['mu_browse'] = 'Navigar'; +$lang['mu_toobig'] = 'troppo grande'; +$lang['mu_ready'] = 'preste pro incargamento'; +$lang['mu_done'] = 'complete'; +$lang['mu_fail'] = 'fallite'; +$lang['mu_authfail'] = 'session expirate'; +$lang['mu_progress'] = '@PCT@% incargate'; +$lang['mu_filetypes'] = 'Typos de file permittite'; +$lang['mu_info'] = 'files incargate.'; +$lang['mu_lasterr'] = 'Ultime error:'; +$lang['recent_global'] = 'Tu observa actualmente le modificationes intra le spatio de nomines %s. Tu pote etiam vider le modificationes recente de tote le wiki.'; +$lang['years'] = '%d annos retro'; +$lang['months'] = '%d menses retro'; +$lang['weeks'] = '%d septimanas retro'; +$lang['days'] = '%d dies retro'; +$lang['hours'] = '%d horas retro'; +$lang['minutes'] = '%d minutas retro'; +$lang['seconds'] = '%d secundas retro'; diff --git a/inc/lang/ia/locked.txt b/inc/lang/ia/locked.txt new file mode 100644 index 000000000..726aabb34 --- /dev/null +++ b/inc/lang/ia/locked.txt @@ -0,0 +1,3 @@ +====== Pagina serrate ====== + +Iste pagina es actualmente serrate proque un altere usator lo modifica in iste momento. Tu debe attender usque iste usator fini le modification o usque al expiration del serratura. \ No newline at end of file diff --git a/inc/lang/ia/login.txt b/inc/lang/ia/login.txt new file mode 100644 index 000000000..4c428f358 --- /dev/null +++ b/inc/lang/ia/login.txt @@ -0,0 +1,3 @@ +====== Aperir session ====== + +Tu non es identificate! Entra tu credentiales de authentication pro aperir un session. Tu debe haber activate le cookies pro aperir un session. \ No newline at end of file diff --git a/inc/lang/ia/mailtext.txt b/inc/lang/ia/mailtext.txt new file mode 100644 index 000000000..14c1a3a60 --- /dev/null +++ b/inc/lang/ia/mailtext.txt @@ -0,0 +1,17 @@ +Un pagina in tu DokuWiki ha essite addite o modificate. Ecce le detalios: + +Data : @DATE@ +Navigator : @BROWSER@ +Adresse IP : @IPADDRESS@ +Nomine host : @HOSTNAME@ +Version ancian: @OLDPAGE@ +Version nove: @NEWPAGE@ +Summario: @SUMMARY@ +Usator : @USER@ + +@DIFF@ + + +-- +Iste e-mail ha essite generate per DokuWiki a +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/ia/newpage.txt b/inc/lang/ia/newpage.txt new file mode 100644 index 000000000..8db7aa797 --- /dev/null +++ b/inc/lang/ia/newpage.txt @@ -0,0 +1,3 @@ +====== Iste topico non existe ancora ====== + +Tu ha sequite un ligamine verso un topico que non existe ancora. Si tu ha le permission requisite, tu pote crear lo con le button "Crear iste pagina". \ No newline at end of file diff --git a/inc/lang/ia/norev.txt b/inc/lang/ia/norev.txt new file mode 100644 index 000000000..75e44b969 --- /dev/null +++ b/inc/lang/ia/norev.txt @@ -0,0 +1,3 @@ +====== Version non existe ====== + +Le version specificate non existe. Usa le button "Versiones ancian" pro un lista de versiones ancian de iste documento. \ No newline at end of file diff --git a/inc/lang/ia/password.txt b/inc/lang/ia/password.txt new file mode 100644 index 000000000..9ad93d6ed --- /dev/null +++ b/inc/lang/ia/password.txt @@ -0,0 +1,10 @@ +Salute @FULLNAME@! + +Ecce tu datos de usator pro @TITLE@ a @DOKUWIKIURL@ + +Nomine de usator : @LOGIN@ +Contrasigno : @PASSWORD@ + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/ia/preview.txt b/inc/lang/ia/preview.txt new file mode 100644 index 000000000..22b958baf --- /dev/null +++ b/inc/lang/ia/preview.txt @@ -0,0 +1,3 @@ +====== Previsualisation ====== + +Isto es un previsualisation de tu texto. Memora: le pagina **non** ha ancora essite salveguardate! \ No newline at end of file diff --git a/inc/lang/ia/pwconfirm.txt b/inc/lang/ia/pwconfirm.txt new file mode 100644 index 000000000..a490f7929 --- /dev/null +++ b/inc/lang/ia/pwconfirm.txt @@ -0,0 +1,14 @@ +Salute @FULLNAME@! + +Alcuno ha requestate un nove contrasigno pro tu conto de @TITLE@ +a @DOKUWIKIURL@ + +Si tu non ha requestate un nove contrasigno, alora simplemente ignora iste message. + +Pro confirmar que le requesta realmente ha essite inviate per te, per favor usa le ligamine sequente. + +@CONFIRM@ + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/ia/read.txt b/inc/lang/ia/read.txt new file mode 100644 index 000000000..e7e80dbfc --- /dev/null +++ b/inc/lang/ia/read.txt @@ -0,0 +1 @@ +Iste pagina es pro lectura solmente. Tu pote vider le codice-fonte, ma non modificar lo. Contacta tu administrator si tu pensa que isto es errate. \ No newline at end of file diff --git a/inc/lang/ia/recent.txt b/inc/lang/ia/recent.txt new file mode 100644 index 000000000..ba39c3ff5 --- /dev/null +++ b/inc/lang/ia/recent.txt @@ -0,0 +1,3 @@ +====== Modificationes recente ====== + +Le sequente paginas ha essite modificate recentemente. \ No newline at end of file diff --git a/inc/lang/ia/register.txt b/inc/lang/ia/register.txt new file mode 100644 index 000000000..22c4e4ada --- /dev/null +++ b/inc/lang/ia/register.txt @@ -0,0 +1,3 @@ +====== Crear un nove conto de usator ====== + +Completa tote le informationes hic infra pro crear un nove conto in iste wiki. Assecura te de fornir un **adresse de e-mail valide!** Si le systema non te demanda de entrar un contrasigno hic, un nove contrasigno essera inviate a iste adresse. Le nomine de usator debe esser un [[doku>pagename|nomine de pagina]] valide. diff --git a/inc/lang/ia/registermail.txt b/inc/lang/ia/registermail.txt new file mode 100644 index 000000000..c4e9d56bc --- /dev/null +++ b/inc/lang/ia/registermail.txt @@ -0,0 +1,14 @@ +Un nove conto de usator ha essite create. Ecce le detalios: + +Nomine de usator : @NEWUSER@ +Nomine complete : @NEWNAME@ +E-mail : @NEWEMAIL@ + +Data : @DATE@ +Navigator : @BROWSER@ +Adresse IP : @IPADDRESS@ +Nomine host : @HOSTNAME@ + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/ia/resendpwd.txt b/inc/lang/ia/resendpwd.txt new file mode 100644 index 000000000..97bcac02a --- /dev/null +++ b/inc/lang/ia/resendpwd.txt @@ -0,0 +1,3 @@ +====== Inviar nove contrasigno ====== + +Per favor entra tu nomine de usator in le formulario hic infra pro requestar un nove contrasigno pro tu conto in iste wiki. Un ligamine de confirmation essera inviate a tu adresse de e-mail registrate. \ No newline at end of file diff --git a/inc/lang/ia/revisions.txt b/inc/lang/ia/revisions.txt new file mode 100644 index 000000000..e914edb61 --- /dev/null +++ b/inc/lang/ia/revisions.txt @@ -0,0 +1,3 @@ +====== Versiones ancian ====== + +Ecce le versiones ancian del documento presente. Pro reverter lo a un version ancian, selige un version del lista in basso, clicca "Modificar iste pagina" e salveguarda lo. \ No newline at end of file diff --git a/inc/lang/ia/searchpage.txt b/inc/lang/ia/searchpage.txt new file mode 100644 index 000000000..c53683371 --- /dev/null +++ b/inc/lang/ia/searchpage.txt @@ -0,0 +1,5 @@ +====== Recerca ====== + +Le resultatos de tu recerca se trova hic infra. Si tu non ha trovate lo que tu cerca, tu pote crear o modificar le pagina nominate secundo tu consulta con le button appropriate. + +===== Resultatos ===== \ No newline at end of file diff --git a/inc/lang/ia/showrev.txt b/inc/lang/ia/showrev.txt new file mode 100644 index 000000000..60ee2a7f6 --- /dev/null +++ b/inc/lang/ia/showrev.txt @@ -0,0 +1,2 @@ +**Isto es un version ancian del documento!** +---- \ No newline at end of file diff --git a/inc/lang/ia/stopwords.txt b/inc/lang/ia/stopwords.txt new file mode 100644 index 000000000..e3e513509 --- /dev/null +++ b/inc/lang/ia/stopwords.txt @@ -0,0 +1,38 @@ +# Isto es un lista de parolas que le generator de indices ignora, un parola per linea. +# Si tu modifica iste file, assecura te de usar le fines de linea UNIX (newline singule). +# Non es necessari includer parolas plus curte que 3 characteres - istes es ignorate in omne caso. +a +ab +circa +com +como +como +con +de +e +es +essera +esserea +esseva +essite +ex +illo +in +iste +istes +le +le +les +lo +lor +o +pro +quando +que +qui +super +sur +tu +ubi +un +www diff --git a/inc/lang/ia/subscr_digest.txt b/inc/lang/ia/subscr_digest.txt new file mode 100644 index 000000000..ba7b92d8b --- /dev/null +++ b/inc/lang/ia/subscr_digest.txt @@ -0,0 +1,20 @@ +Salute! + +Le pagina @PAGE@ in le wiki @TITLE@ ha cambiate. +Ecce le modificationes: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Version ancian: @OLDPAGE@ +Version nove: @NEWPAGE@ + +Pro cancellar le notificationes de paginas, aperi un session al wiki a +@DOKUWIKIURL@ postea visita +@SUBSCRIBE@ +e cancella tu subscription al modificationes in paginas e/o spatios de nomines. + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/ia/subscr_form.txt b/inc/lang/ia/subscr_form.txt new file mode 100644 index 000000000..f63a30d4c --- /dev/null +++ b/inc/lang/ia/subscr_form.txt @@ -0,0 +1,4 @@ +====== Gestion de subscriptiones ====== + +Iste pagina permitte gerer tu subscriptiones pro le pagina e spatio de nomines actual. + \ No newline at end of file diff --git a/inc/lang/ia/subscr_list.txt b/inc/lang/ia/subscr_list.txt new file mode 100644 index 000000000..9f93db252 --- /dev/null +++ b/inc/lang/ia/subscr_list.txt @@ -0,0 +1,17 @@ +Salute! + +Alcun paginas in le spatio de nomines @PAGE@ del wiki @TITLE@ ha cambiate. +Ecce le paginas con modiicationes: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Pro cancellar le notificationes de paginas, aperi un session al wiki a +@DOKUWIKIURL@ postea visita +@SUBSCRIBE@ +e cancella tu subscription al modificationes in paginas e/o spatios de nomines. + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/ia/subscr_single.txt b/inc/lang/ia/subscr_single.txt new file mode 100644 index 000000000..3d6ef7103 --- /dev/null +++ b/inc/lang/ia/subscr_single.txt @@ -0,0 +1,26 @@ +Salute! + +Le pagina @PAGE@ in le wiki @TITLE@ ha cambiate. +Ecce le modificationes: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Usator : @USER@ +Summario: @SUMMARY@ +Version ancian: @OLDPAGE@ +Version nove: @NEWPAGE@ + +Pro cancellar le notificationes de paginas, aperi un session al wiki a +@DOKUWIKIURL@ postea visita +@NEWPAGE@ +e cancella tu subscription al modificationes in paginas e/o spatios de nomines. + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@ +-- +This mail was generated by DokuWiki at +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/ia/updateprofile.txt b/inc/lang/ia/updateprofile.txt new file mode 100644 index 000000000..3f69da161 --- /dev/null +++ b/inc/lang/ia/updateprofile.txt @@ -0,0 +1,3 @@ +====== Actualisa le profilo de tu conto ====== + +Solmente es necessari completar le campos que tu vole cambiar. tu non pote cambiar tu nomine de usator. \ No newline at end of file diff --git a/inc/lang/ia/uploadmail.txt b/inc/lang/ia/uploadmail.txt new file mode 100644 index 000000000..8f120f25b --- /dev/null +++ b/inc/lang/ia/uploadmail.txt @@ -0,0 +1,14 @@ +Un file ha essite incargate in tu DokuWiki. Ecce le detalios: + +File : @MEDIA@ +Data : @DATE@ +Navigator : @BROWSER@ +Adresse IP : @IPADDRESS@ +Nomine host: @HOSTNAME@ +Dimension : @SIZE@ +Typo MIME : @MIME@ +Usator : @USER@ + +-- +Iste message ha essite generate per DokuWiki a +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/ia/wordblock.txt b/inc/lang/ia/wordblock.txt new file mode 100644 index 000000000..8c54c04a5 --- /dev/null +++ b/inc/lang/ia/wordblock.txt @@ -0,0 +1,3 @@ +====== Spam blocate ====== + +Tu modification **non** ha essite salveguardate proque illo contine un o plus parolas blocate. Si tu ha tentate spammar iste wiki: va al diabolo! Si tu pensa que isto es un error, contacta le administrator de iste wiki. \ No newline at end of file -- cgit v1.2.3 From 638e1578a45e6303f7df2f00f5b1c3ce30648c08 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Wed, 10 Feb 2010 20:10:04 +0000 Subject: update ignore criteria when populating master plugin list --- inc/plugincontroller.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php index 4400a4187..043687270 100644 --- a/inc/plugincontroller.class.php +++ b/inc/plugincontroller.class.php @@ -120,8 +120,8 @@ class Doku_Plugin_Controller { function _populateMasterList() { if ($dh = opendir(DOKU_PLUGIN)) { while (false !== ($plugin = readdir($dh))) { - if ($plugin == '.' || $plugin == '..' || $plugin == 'tmp') continue; - if (is_file(DOKU_PLUGIN.$plugin)) continue; + if ($plugin[0] == '.') continue; // skip hidden entries + if (is_file(DOKU_PLUGIN.$plugin)) continue; // skip files, we're only interested in directories if (substr($plugin,-9) == '.disabled') { // the plugin was disabled by rc2009-01-26 -- cgit v1.2.3 From 2eb3414de1a76407ed3eae58fd42c3a5c342039b Mon Sep 17 00:00:00 2001 From: Traduzioni Date: Thu, 11 Feb 2010 18:37:26 +0100 Subject: Italian language update --- inc/lang/it/adminplugins.txt | 2 +- inc/lang/it/backlinks.txt | 2 +- inc/lang/it/conflict.txt | 2 +- inc/lang/it/denied.txt | 2 +- inc/lang/it/diff.txt | 2 +- inc/lang/it/draft.txt | 2 +- inc/lang/it/edit.txt | 2 +- inc/lang/it/editrev.txt | 2 +- inc/lang/it/index.txt | 2 +- inc/lang/it/install.html | 2 +- inc/lang/it/lang.php | 104 ++++++++++++++++++++++++++---------------- inc/lang/it/login.txt | 2 +- inc/lang/it/mailtext.txt | 2 +- inc/lang/it/password.txt | 4 +- inc/lang/it/pwconfirm.txt | 10 ++-- inc/lang/it/register.txt | 2 +- inc/lang/it/registermail.txt | 4 +- inc/lang/it/revisions.txt | 2 +- inc/lang/it/stopwords.txt | 8 ++-- inc/lang/it/subscr_digest.txt | 20 ++++++++ inc/lang/it/subscr_form.txt | 3 ++ inc/lang/it/subscr_list.txt | 18 ++++++++ inc/lang/it/subscr_single.txt | 23 ++++++++++ inc/lang/it/uploadmail.txt | 2 +- inc/lang/it/wordblock.txt | 2 +- 25 files changed, 157 insertions(+), 69 deletions(-) create mode 100644 inc/lang/it/subscr_digest.txt create mode 100644 inc/lang/it/subscr_form.txt create mode 100644 inc/lang/it/subscr_list.txt create mode 100644 inc/lang/it/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/it/adminplugins.txt b/inc/lang/it/adminplugins.txt index 6a5a30573..4f17d6da4 100644 --- a/inc/lang/it/adminplugins.txt +++ b/inc/lang/it/adminplugins.txt @@ -1 +1 @@ -===== Plugin addizionali ===== \ No newline at end of file +===== Plugin aggiuntivi ===== \ No newline at end of file diff --git a/inc/lang/it/backlinks.txt b/inc/lang/it/backlinks.txt index 452019db5..ad5a9c23b 100644 --- a/inc/lang/it/backlinks.txt +++ b/inc/lang/it/backlinks.txt @@ -1,4 +1,4 @@ ====== Puntano qui ====== -Questa è una lista delle pagine che sembrano avere un collegamento alla pagina corrente. +Questa è una lista delle pagine che sembrano avere un collegamento alla pagina attuale. diff --git a/inc/lang/it/conflict.txt b/inc/lang/it/conflict.txt index 44789a365..bcb90d28d 100644 --- a/inc/lang/it/conflict.txt +++ b/inc/lang/it/conflict.txt @@ -2,5 +2,5 @@ Esiste una versione più recente del documento che hai modificato. Questo può accadere quando un altro utente ha già modificato il documento durante le tue modifiche. -Esamina le differenze mostrate di seguito, quindi decidi quale versione mantenere. Se scegli ''salva'', la tua versione verrà salvata. Clicca su ''annulla'' per mantenere la versione corrente. +Esamina le differenze mostrate di seguito, quindi decidi quale versione mantenere. Se scegli ''Salva'', la tua versione verrà salvata. Clicca su ''Annulla'' per mantenere la versione attuale. diff --git a/inc/lang/it/denied.txt b/inc/lang/it/denied.txt index e87eeeada..c6ba610c4 100644 --- a/inc/lang/it/denied.txt +++ b/inc/lang/it/denied.txt @@ -1,5 +1,5 @@ ====== Accesso negato ====== -Non hai i diritti per continuare. Hai forse dimenticato di effettuare il login? +Non hai i diritti per continuare. Hai forse dimenticato di effettuare l'accesso? diff --git a/inc/lang/it/diff.txt b/inc/lang/it/diff.txt index 6b48ed44e..5a41eaaec 100644 --- a/inc/lang/it/diff.txt +++ b/inc/lang/it/diff.txt @@ -1,4 +1,4 @@ ====== Differenze ====== -Queste sono le differenze tra la revisione selezionata e la versione corrente della pagina. +Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina. diff --git a/inc/lang/it/draft.txt b/inc/lang/it/draft.txt index 9932786ba..479d0fafc 100644 --- a/inc/lang/it/draft.txt +++ b/inc/lang/it/draft.txt @@ -2,5 +2,5 @@ La tua ultima sessione di modifica su questa pagina non è stata completata correttamente. DokuWiki ha salvato in automatico una bozza durante il tuo lavoro, che puoi ora utilizzare per continuare le tue modifiche. Di seguito puoi trovare i dati che sono stati salvati dalla tua ultima sessione. -Decidi se vuoi //recuperare// la sessione di modifica, //cancellare// la bozza salavata in automatico oppure //annullare// le modifiche. +Decidi se vuoi //recuperare// la sessione di modifica, //eliminare// la bozza salavata in automatico oppure //annullare// le modifiche. diff --git a/inc/lang/it/edit.txt b/inc/lang/it/edit.txt index fdfaf463e..8f2ba973a 100644 --- a/inc/lang/it/edit.txt +++ b/inc/lang/it/edit.txt @@ -1,2 +1,2 @@ -Modifica la pagina e clicca su ''Salva''. Vedi [[wiki:syntax]] per la sintassi riconosciuta da Wiki. Modifica questa pagina solo se puoi **apportare dei miglioramenti**. Se vuoi solo fare degli esperimenti ed imparare come fare i primi passi usa [[playground:playground]]. +Modifica la pagina e clicca su ''Salva''. Vedi [[wiki:syntax]] per la sintassi riconosciuta dal Wiki. Modifica questa pagina solo se puoi **apportare dei miglioramenti**. Se vuoi solo fare degli esperimenti ed imparare come fare i primi passi usa [[playground:playground]]. diff --git a/inc/lang/it/editrev.txt b/inc/lang/it/editrev.txt index 0a309fa24..502320083 100644 --- a/inc/lang/it/editrev.txt +++ b/inc/lang/it/editrev.txt @@ -1,2 +1,2 @@ -**Hai caricato una precedente revisione del documento!** Se salvi questa pagina creerai una nuova versione con questi dati. +**Hai caricato una revisione precedente del documento!** Se salvi questa pagina creerai una nuova versione con questi dati. ---- \ No newline at end of file diff --git a/inc/lang/it/index.txt b/inc/lang/it/index.txt index 8d5f00409..52c6fbc5d 100644 --- a/inc/lang/it/index.txt +++ b/inc/lang/it/index.txt @@ -1,4 +1,4 @@ ====== Indice ====== -Questo è un indice di tutte le pagine disponibili ordinate per [[doku>namespaces|categoria]]. +Questo è un indice di tutte le pagine disponibili ordinate per [[doku>namespaces|categorie]]. diff --git a/inc/lang/it/install.html b/inc/lang/it/install.html index 5bc4b0dc2..471734412 100644 --- a/inc/lang/it/install.html +++ b/inc/lang/it/install.html @@ -21,4 +21,4 @@ da amministrare.

Gli utenti esperti o con particolari esigenze di installazione dovrebbero far riferimento ai seguenti link per i dettagli riguardanti istruzioni per l'installazione -and parametri di configurazione.

+e i parametri di configurazione.

diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 827967d0f..8bdaddb7e 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -40,29 +40,27 @@ $lang['btn_login'] = 'Entra'; $lang['btn_logout'] = 'Esci'; $lang['btn_admin'] = 'Amministrazione'; $lang['btn_update'] = 'Aggiorna'; -$lang['btn_delete'] = 'Cancella'; +$lang['btn_delete'] = 'Elimina'; $lang['btn_back'] = 'Indietro'; $lang['btn_backlink'] = 'Backlinks'; $lang['btn_backtomedia'] = 'Torna alla selezione file'; $lang['btn_subscribe'] = 'Sottoscrivi modifiche'; -$lang['btn_unsubscribe'] = 'Cancella sottoscrizione'; -$lang['btn_subscribens'] = 'Sottoscrivi modifiche della categoria'; -$lang['btn_unsubscribens'] = 'Cancella sottoscrizione modifiche della categoria'; $lang['btn_profile'] = 'Aggiorna profilo'; $lang['btn_reset'] = 'Annulla'; $lang['btn_resendpwd'] = 'Invia nuova password'; $lang['btn_draft'] = 'Modifica bozza'; $lang['btn_recover'] = 'Ripristina bozza'; -$lang['btn_draftdel'] = 'Cancella bozza'; +$lang['btn_draftdel'] = 'Elimina bozza'; +$lang['btn_revert'] = 'Ripristina'; $lang['loggedinas'] = 'Collegato come'; $lang['user'] = 'Nome utente'; $lang['pass'] = 'Password'; $lang['newpass'] = 'Nuova password'; -$lang['oldpass'] = 'Conferma password corrente'; +$lang['oldpass'] = 'Conferma password attuale'; $lang['passchk'] = 'Ripeti password'; $lang['remember'] = 'Ricorda automaticamente'; $lang['fullname'] = 'Nome completo'; -$lang['email'] = 'E-Mail'; +$lang['email'] = 'Email'; $lang['register'] = 'Registrazione'; $lang['profile'] = 'Profilo utente'; $lang['badlogin'] = 'Il nome utente o la password non sono validi.'; @@ -70,11 +68,11 @@ $lang['minoredit'] = 'Modifiche minori'; $lang['draftdate'] = 'Bozza salvata in automatico il'; $lang['nosecedit'] = 'La pagina nel frattempo è cambiata, la sezione info è scaduta, caricata invece la pagina intera.'; $lang['regmissing'] = 'Devi riempire tutti i campi.'; -$lang['reguexists'] = 'Il nome utente inserito esiste già .'; -$lang['regsuccess'] = 'L\'utente è stato creato. La password è stata spedita via e-mail.'; +$lang['reguexists'] = 'Il nome utente inserito esiste già.'; +$lang['regsuccess'] = 'L\'utente è stato creato. La password è stata spedita via email.'; $lang['regsuccess2'] = 'L\'utente è stato creato.'; -$lang['regmailfail'] = 'Sembra che ci sia stato un errore nell\'invio della e-mail. Per favore contatta il tuo amministratore!'; -$lang['regbadmail'] = 'L\'indirizzo e-mail fornito sembra essere non valido - se pensi che ci sia un errore contatta il tuo amministratore'; +$lang['regmailfail'] = 'Sembra che ci sia stato un errore nell\'invio della email. Contatta il tuo amministratore!'; +$lang['regbadmail'] = 'L\'indirizzo email fornito sembra essere non valido - se pensi che ci sia un errore contatta il tuo amministratore'; $lang['regbadpass'] = 'Le due password inserite non coincidono, prova di nuovo.'; $lang['regpwmail'] = 'La tua password DokuWiki'; $lang['reghere'] = 'Non hai ancora un accesso? Registrati qui.'; @@ -87,13 +85,15 @@ $lang['resendna'] = 'Questo wiki non supporta l\'invio di nuove pas $lang['resendpwd'] = 'Invia nuova password per'; $lang['resendpwdmissing'] = 'Devi riempire tutti i campi.'; $lang['resendpwdnouser'] = 'Impossibile trovare questo utente nel database.'; -$lang['resendpwdbadauth'] = 'Spiacente, questo codice di autorizzazione non è valido. Assicurati di aver usato il link completo di conferma.'; +$lang['resendpwdbadauth'] = 'Spiacenti, questo codice di autorizzazione non è valido. Assicurati di aver usato il link completo di conferma.'; $lang['resendpwdconfirm'] = 'Un link di conferma è stato spedito via email.'; $lang['resendpwdsuccess'] = 'La nuova password è stata spedita via email.'; $lang['license'] = 'Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è sotto la seguente licenza:'; $lang['licenseok'] = 'Nota: modificando questa pagina accetti di rilasciare il contenuto sotto la seguente licenza:'; +$lang['searchmedia'] = 'Cerca nome file:'; +$lang['searchmedia_in'] = 'Cerca in &s'; $lang['txt_upload'] = 'Seleziona un file da caricare'; -$lang['txt_filename'] = 'Inserisci un "wikiname" (opzionale)'; +$lang['txt_filename'] = 'Carica come (opzionale)'; $lang['txt_overwrt'] = 'Sovrascrivi file esistente'; $lang['lockedby'] = 'Attualmente bloccato da'; $lang['lockexpire'] = 'Il blocco scade alle'; @@ -111,28 +111,32 @@ $lang['uploadbadcontent'] = 'Il contenuto caricato non corrisponde all\'est $lang['uploadspam'] = 'Il caricamento è stato bloccato dalla lista nera di spam.'; $lang['uploadxss'] = 'Il caricamento è stato bloccato perchè il contenuto potrebbe essere malizioso.'; $lang['uploadsize'] = 'Il file caricato è troppo grande. (massimo %s)'; -$lang['deletesucc'] = 'Il file "%s" è stato cancellato.'; -$lang['deletefail'] = '"%s" non può essere cancellato - verifica i permessi.'; -$lang['mediainuse'] = 'Il file "%s" non è stato cancellato - è ancora in uso.'; +$lang['deletesucc'] = 'Il file "%s" è stato eliminato.'; +$lang['deletefail'] = '"%s" non può essere eliminato - verifica i permessi.'; +$lang['mediainuse'] = 'Il file "%s" non è stato eliminato - è ancora in uso.'; $lang['namespaces'] = 'Categorie'; $lang['mediafiles'] = 'File disponibili in'; +$lang['js']['searchmedia'] = 'Cerca file'; $lang['js']['keepopen'] = 'Tieni la finestra aperta durante la selezione'; $lang['js']['hidedetails'] = 'Nascondi Dettagli'; $lang['js']['nosmblinks'] = 'I collegamenti con le risorse condivise di Windows funzionano solo con Microsoft Internet Explorer. Puoi fare un copia/incolla di questo collegamento.'; +$lang['js']['linkwiz'] = 'Collegamento guidato'; +$lang['js']['linkto'] = 'Collega a:'; +$lang['js']['del_confirm'] = 'Eliminare veramente questa voce?'; $lang['js']['mu_btn'] = 'Carica più di un file alla volta'; $lang['mediausage'] = 'Usa la seguente sintassi per riferirti a questo file:'; $lang['mediaview'] = 'Mostra file originale'; $lang['mediaroot'] = 'directory principale'; -$lang['mediaupload'] = 'Carica un file nella categoria corrente. Per creare sottocategorie, falle precedere al nome del file nella casella "Carica come", separandole da due punti (:).'; +$lang['mediaupload'] = 'Carica un file nella categoria attuale. Per creare sottocategorie, falle precedere dal nome del file nella casella "Carica come", separandole da due punti (:).'; $lang['mediaextchange'] = 'Estensione del file modificata da .%s a .%s!'; $lang['reference'] = 'Riferimenti a'; -$lang['ref_inuse'] = 'Il file non può essere cancellato in quanto è ancora utilizzato dalle seguenti pagine:'; +$lang['ref_inuse'] = 'Il file non può essere eliminato in quanto è ancora utilizzato dalle seguenti pagine:'; $lang['ref_hidden'] = 'Sono presenti alcuni riferimenti a pagine per le quali non hai i permessi di lettura'; $lang['hits'] = 'Occorrenze trovate'; $lang['quickhits'] = 'Pagine trovate'; $lang['toc'] = 'Indice'; -$lang['current'] = 'versione corrente'; +$lang['current'] = 'versione attuale'; $lang['yours'] = 'la tua versione'; $lang['diff'] = 'differenze con la versione attuale'; $lang['diff2'] = 'differenze tra le versioni selezionate'; @@ -141,7 +145,7 @@ $lang['breadcrumb'] = 'Traccia'; $lang['youarehere'] = 'Ti trovi qui'; $lang['lastmod'] = 'Ultima modifica'; $lang['by'] = 'da'; -$lang['deleted'] = 'cancellata'; +$lang['deleted'] = 'eliminata'; $lang['created'] = 'creata'; $lang['restored'] = 'versione precedente ripristinata'; $lang['external_edit'] = 'modifica esterna'; @@ -150,7 +154,8 @@ $lang['noflash'] = 'E\' necessario istruzioni per l\'installazione di Dokuwiki'; -$lang['i_funcna'] = 'La funzione PHP %s non è disponibile. Forse il tuo provider l\'ha disabilitata per qualche motivo?'; +Dovresti ri-estrarre i file dal pacchetto scaricato oppure consultare tutte le +istruzioni per l\'installazione di Dokuwiki'; +$lang['i_funcna'] = 'La funzione PHP %s non è disponibile. Forse è stata disabilitata dal tuo provider per qualche motivo?'; $lang['i_phpver'] = 'La versione di PHP %s è inferiore a quella richiesta %s. Devi aggiornare l\'installazione di PHP.'; $lang['i_permfail'] = 'DokuWiki non può scrivere %s. E\' necessario correggere i permessi per questa directory!'; $lang['i_confexists'] = '%s esiste già'; $lang['i_writeerr'] = 'Impossibile creare %s. E\' necessario verificare i permessi della directory/file e creare il file manualmente.'; $lang['i_badhash'] = 'dokuwiki.php (hash=%s) non riconosciuto o modificato'; $lang['i_badval'] = '%s - valore vuoto o non valido'; -$lang['i_success'] = 'La configurazione è stata completata correttamente. E\' ora possibile cancellare il file install.php. Continuare con - il nuovo DokuWiki.'; +$lang['i_success'] = 'La configurazione è stata completata correttamente. Ora è possibile eliminare il file install.php. Continuare con +il nuovo DokuWiki.'; $lang['i_failure'] = 'Si sono verificati errori durante la scrittura dei file di configurazione. Potrebbe essere necessario correggerli manualmente prima di poter utilizzare il nuovo DokuWiki.'; -$lang['i_policy'] = 'Policy di accesso iniziali'; +$lang['i_policy'] = 'Regole di accesso iniziali'; $lang['i_pol0'] = 'Wiki Aperto (lettura, scrittura, caricamento file per tutti)'; $lang['i_pol1'] = 'Wiki Pubblico (lettura per tutti, scrittura e caricamento file per gli utenti registrati)'; $lang['i_pol2'] = 'Wiki Chiuso (lettura, scrittura, caricamento file solamente per gli utenti registrati)'; $lang['i_retry'] = 'Riprova'; -$lang['mu_intro'] = 'Qui si possono caricare più di un file alla volta. Cliccare su "Sfoglia..." per aggiungere i file in coda. Cliccare "Carica" quando si è pronti.'; -$lang['mu_gridname'] = 'Nome del file'; +$lang['mu_intro'] = 'Qui si possono caricare più di un file alla volta. Cliccare su "Sfoglia..." per aggiungere i file in coda. Fai click su "Invia file" quando si è pronti.'; +$lang['mu_gridname'] = 'Nome file'; $lang['mu_gridsize'] = 'Dimensione'; $lang['mu_gridstat'] = 'Stato'; -$lang['mu_namespace'] = 'Namespace'; -$lang['mu_browse'] = 'Sfoglia...'; +$lang['mu_namespace'] = 'Categoria'; +$lang['mu_browse'] = 'Sfoglia'; $lang['mu_toobig'] = 'troppo grande'; -$lang['mu_ready'] = 'pronto per l\'upload'; +$lang['mu_ready'] = 'pronto per caricare'; $lang['mu_done'] = 'completo'; $lang['mu_fail'] = 'fallito'; $lang['mu_authfail'] = 'sessione scaduta'; $lang['mu_progress'] = '@PCT@% caricato'; $lang['mu_filetypes'] = 'Tipi di file permessi'; $lang['mu_info'] = 'file caricati.'; +$lang['mu_lasterr'] = 'Ultimo errore:'; $lang['recent_global'] = 'Stai attualmente vedendo le modifiche dentro l\'area %s. Puoi anche vedere le modifiche recenti dell\'intero wiki.'; +$lang['years'] = '%d anni fa'; +$lang['months'] = '%d mesi fa'; +$lang['weeks'] = '%d settimane fa'; +$lang['days'] = '%d giorni fa'; +$lang['hours'] = '%d ore fa'; +$lang['minutes'] = '%d minuti fa'; +$lang['seconds'] = '%d secondi fa'; diff --git a/inc/lang/it/login.txt b/inc/lang/it/login.txt index 6487c8537..c6fd97b6f 100644 --- a/inc/lang/it/login.txt +++ b/inc/lang/it/login.txt @@ -1,4 +1,4 @@ -====== Login ====== +====== Accesso ====== Non sei ancora collegato! Inserisci il tuo nome utente e la tua password per autenticarti. E' necessario che il tuo browser abbia i cookie abilitati. diff --git a/inc/lang/it/mailtext.txt b/inc/lang/it/mailtext.txt index ee6e958b9..a4506e951 100644 --- a/inc/lang/it/mailtext.txt +++ b/inc/lang/it/mailtext.txt @@ -12,5 +12,5 @@ Oggetto della modifica : @SUMMARY@ -- -Questa e-mail è stata generata da DokuWiki su +Questa email è stata generata dal DokuWiki di @DOKUWIKIURL@ diff --git a/inc/lang/it/password.txt b/inc/lang/it/password.txt index a14ce6078..d57c78913 100644 --- a/inc/lang/it/password.txt +++ b/inc/lang/it/password.txt @@ -1,4 +1,4 @@ -Ciao, @FULLNAME@! +Ciao @FULLNAME@! Questi sono i tuoi dati di accesso per @TITLE@ su @DOKUWIKIURL@ @@ -6,5 +6,5 @@ Nome utente : @LOGIN@ Password : @PASSWORD@ -- -Questa e-mail è stata generata da DokuWiki su +Questa email è stata generata dal DokuWiki di @DOKUWIKIURL@ diff --git a/inc/lang/it/pwconfirm.txt b/inc/lang/it/pwconfirm.txt index 5437d077c..dfcd8a346 100644 --- a/inc/lang/it/pwconfirm.txt +++ b/inc/lang/it/pwconfirm.txt @@ -1,15 +1,15 @@ Ciao @FULLNAME@! -Qualcuno ha richiesto una nuova password per il tuo @TITLE@ -login su @DOKUWIKIURL@ +Qualcuno ha richiesto una nuova password per il tuo accesso +@TITLE@ a @DOKUWIKIURL@ Se non hai richiesto tu la nuova password ignora questa email. -Per confermare che la richiesta è stata realmente inviata da te per favore usa il -seguente link. +Per confermare che la richiesta è stata realmente inviata da te usa il +seguente collegamento. @CONFIRM@ -- -Questa mail è stata generata da DokuWiki su +Questa email è stata generata dal DokuWiki di @DOKUWIKIURL@ diff --git a/inc/lang/it/register.txt b/inc/lang/it/register.txt index 973aead78..74f57094d 100644 --- a/inc/lang/it/register.txt +++ b/inc/lang/it/register.txt @@ -1,4 +1,4 @@ ====== Registrazione nuovo utente ====== -Riempi tutte le informazioni seguenti per creare un nuovo account in questo wiki. Assicurati di inserire un **indirizzo e-mail valido** - la tua nuova password ti sarà inviata con un messaggio di posta elettronica. La login dovrebbe essere un [[doku>pagename|nome di pagina]] valido. +Riempi tutte le informazioni seguenti per creare un nuovo account in questo wiki. Assicurati di inserire un **indirizzo email valido** - la tua nuova password ti sarà inviata con un messaggio di posta elettronica. L'account dovrebbe essere un [[doku>pagename|nome di pagina]] valido. diff --git a/inc/lang/it/registermail.txt b/inc/lang/it/registermail.txt index 5a9f89344..e8af0d323 100644 --- a/inc/lang/it/registermail.txt +++ b/inc/lang/it/registermail.txt @@ -2,7 +2,7 @@ Un nuovo utente è stato registrato. Ecco i dettagli: Nome utente : @NEWUSER@ Nome completo : @NEWNAME@ -E-Mail : @NEWEMAIL@ +EMail : @NEWEMAIL@ Data : @DATE@ Browser : @BROWSER@ @@ -10,5 +10,5 @@ Indirizzo IP : @IPADDRESS@ Nome macchina : @HOSTNAME@ -- -Questa mail è stata generata da DokuWiki su +Questa email è stata generata dal DokuWiki di @DOKUWIKIURL@ diff --git a/inc/lang/it/revisions.txt b/inc/lang/it/revisions.txt index 984b4a068..19c501b07 100644 --- a/inc/lang/it/revisions.txt +++ b/inc/lang/it/revisions.txt @@ -1,3 +1,3 @@ ====== Versione precedente ====== -Queste sono le precedenti versioni del documento corrente. Per ripristinare una versione precedente, seleziona la versione, modificala usando il pulsante ''Modifica questa pagina'' e salvala. +Queste sono le versioni precedenti del documento attuale. Per ripristinare una versione precedente, seleziona la versione, modificala usando il pulsante ''Modifica questa pagina'' e salvala. diff --git a/inc/lang/it/stopwords.txt b/inc/lang/it/stopwords.txt index a6aa1cfc6..e91aa3b55 100644 --- a/inc/lang/it/stopwords.txt +++ b/inc/lang/it/stopwords.txt @@ -1,7 +1,7 @@ -# This is a list of words the indexer ignores, one word per line -# When you edit this file be sure to use UNIX line endings (single newline) -# No need to include words shorter than 3 chars - these are ignored anyway -# This list is based upon the ones found at http://www.ranks.nl/stopwords/ +# Questo è un elenco di parole che l'indicizzatore ignora, una parola per riga +# Quando modifichi questo file fai attenzione ad usare la chiusura della riga in stile UNIX (nuova linea singola) +# Non è necessario includere parole più brevi di 3 caratteri - queste vengono in ogni caso ignorate +# Questo elenco è basato su quello trovato in http://www.ranks.nl/stopwords/ adesso alla allo diff --git a/inc/lang/it/subscr_digest.txt b/inc/lang/it/subscr_digest.txt new file mode 100644 index 000000000..8656f8536 --- /dev/null +++ b/inc/lang/it/subscr_digest.txt @@ -0,0 +1,20 @@ +Ciao! + +La pagina @PAGE@ nel wiki @TITLE@ è cambiata. +Queste sono le modifiche: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Vecchia revisione: @OLDPAGE@ +Nuova revisione: @NEWPAGE@ + +Per annullare la pagina delle notifiche collegati al +wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@ +e rimuovi la sottoscrizione alle modifiche delle +pagine e/o categorie. + +-- +Questa email è stata generata dal DokuWiki di +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/it/subscr_form.txt b/inc/lang/it/subscr_form.txt new file mode 100644 index 000000000..54f66e44a --- /dev/null +++ b/inc/lang/it/subscr_form.txt @@ -0,0 +1,3 @@ +====== Gestione iscrizioni ====== + +Questa pagina permette di gestire le tue iscrizioni alla pagina e catogoria attuale. \ No newline at end of file diff --git a/inc/lang/it/subscr_list.txt b/inc/lang/it/subscr_list.txt new file mode 100644 index 000000000..e42f7d1ad --- /dev/null +++ b/inc/lang/it/subscr_list.txt @@ -0,0 +1,18 @@ +Ciao! + +Le pagine nella categoria @PAGE@ del wiki @TITLE@ sono +cambiate. +Queste sono le pagine modificate: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Per annullare la pagina delle notifiche collegati al +wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@ +e rimuovi la sottoscrizione alle modifiche delle +pagine e/o categorie. + +-- +Questa email è stata generata dal DokuWiki di +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/it/subscr_single.txt b/inc/lang/it/subscr_single.txt new file mode 100644 index 000000000..2c4d5cbb8 --- /dev/null +++ b/inc/lang/it/subscr_single.txt @@ -0,0 +1,23 @@ +Ciao! + +La pagina @PAGE@ nel wiki @TITLE@ è cambiata. +Queste sono le modifiche: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Utente : @USER@ +Sommario modifica: @SUMMARY@ +Vecchia revisione: @OLDPAGE@ +Nuova revisione: @NEWPAGE@ + +Per annullare la pagina delle notifiche collegati al +wiki @DOKUWIKIURL@ e poi visita @SUBSCRIBE@ +e rimuovi la sottoscrizione alle modifiche delle +pagine e/o categorie. + +-- +Questa email è stata generata dal DokuWiki di +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/it/uploadmail.txt b/inc/lang/it/uploadmail.txt index 56cebc6b1..d8d17a378 100644 --- a/inc/lang/it/uploadmail.txt +++ b/inc/lang/it/uploadmail.txt @@ -6,7 +6,7 @@ Browser : @BROWSER@ Indirizzo IP : @IPADDRESS@ Hostname : @HOSTNAME@ Dimensione : @SIZE@ -MIME Type : @MIME@ +Tipo MIME : @MIME@ Utente : @USER@ -- diff --git a/inc/lang/it/wordblock.txt b/inc/lang/it/wordblock.txt index 510d6521d..040742d6d 100644 --- a/inc/lang/it/wordblock.txt +++ b/inc/lang/it/wordblock.txt @@ -1,4 +1,4 @@ ====== Modifica bloccata ====== -Le tue modifiche **non sono state salvate** perché contengono una o più parole vietate. Se hai cercato di spammare il Wiki -- bambino cattivo! Se pensi che sia un errore contatta l'amministratore di questo Wiki. +Le tue modifiche **non sono state salvate** perché contengono una o più parole vietate. Se hai cercato di spammare il Wiki -- sei un bambino cattivo! Se pensi che ci sia un errore contatta l'amministratore di questo Wiki. -- cgit v1.2.3 From c04912f6c4e1c1c8bda182a7dc03c86bcb415d90 Mon Sep 17 00:00:00 2001 From: Victor M Castelan Date: Fri, 12 Feb 2010 12:53:49 +0100 Subject: Spanish language update --- inc/lang/es/lang.php | 26 ++++++++++++++++++-------- inc/lang/es/subscr_digest.txt | 20 ++++++++++++++++++++ inc/lang/es/subscr_form.txt | 3 +++ inc/lang/es/subscr_list.txt | 17 +++++++++++++++++ inc/lang/es/subscr_single.txt | 23 +++++++++++++++++++++++ 5 files changed, 81 insertions(+), 8 deletions(-) create mode 100644 inc/lang/es/subscr_digest.txt create mode 100644 inc/lang/es/subscr_form.txt create mode 100644 inc/lang/es/subscr_list.txt create mode 100644 inc/lang/es/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 9d4995c52..2d473484d 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -22,6 +22,7 @@ * @author Marvin Ortega * @author Daniel Castro Alvarado * @author Fernando J. Gómez + * @author Victor Castelan */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -55,9 +56,6 @@ $lang['btn_back'] = 'Atrás'; $lang['btn_backlink'] = 'Enlaces anteriores'; $lang['btn_backtomedia'] = 'Volver a la selección de archivos multimedia'; $lang['btn_subscribe'] = 'Suscribirse a cambios de la página'; -$lang['btn_unsubscribe'] = 'Cancelar suscripción a cambios de la página'; -$lang['btn_subscribens'] = 'Suscribirse a cambios del espacio de nombres'; -$lang['btn_unsubscribens'] = 'Cancelar suscripción a cambios del espacio de nombres'; $lang['btn_profile'] = 'Actualizar perfil'; $lang['btn_reset'] = 'Restablecer'; $lang['btn_resendpwd'] = 'Enviar nueva contraseña'; @@ -167,6 +165,7 @@ $lang['noflash'] = 'Para mostrar este contenido es necesario el Date: Fri, 12 Feb 2010 23:37:21 +0100 Subject: Interlingua Language Update --- inc/lang/ia/install.html | 2 +- inc/lang/ia/lang.php | 12 ++++++------ inc/lang/ia/updateprofile.txt | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'inc') diff --git a/inc/lang/ia/install.html b/inc/lang/ia/install.html index 6b343ad00..340d4098f 100644 --- a/inc/lang/ia/install.html +++ b/inc/lang/ia/install.html @@ -6,7 +6,7 @@ debe haber accesso de scriptura al directorios que contine iste files. Iste installator non es capabile de configurar le permissiones de directorios. Isto normalmente debe esser facite directemente con le linea de commandos, o si tu usa un albergo web, via FTP o via le pannello de controlo de tu albergo (p.ex. cPanel).

Iste installator configurara tu installation de DokuWiki pro -ACL, lo que permitte crear contos administrator, e forni accesso al menu administrative de DokuWiki pro installar plug-ins, gerer usatores, gerer accesso a paginas wiki e alterar configurationes. Isto non es necessari pro le functionamento de DokuWiki, nonobstante, illo rendera DokuWiki plus facile de administrar.

+ACL, lo que permitte crear contos administrator, e forni accesso al menu administrative de DokuWiki pro installar plug-ins, gerer usatores, gerer accesso a paginas wiki e alterar configurationes. Isto non es necessari pro le functionamento de DokuWiki, nonobstante, illo rendera DokuWiki plus facile de administrar.

Le usatores experte o con exigentias special pro le installation deberea usar iste ligamines pro detalios concernente le instructiones de installation diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php index 8d006bc5b..8429fe607 100644 --- a/inc/lang/ia/lang.php +++ b/inc/lang/ia/lang.php @@ -54,8 +54,8 @@ $lang['loggedinas'] = 'Session aperite como'; $lang['user'] = 'Nomine de usator'; $lang['pass'] = 'Contrasigno'; $lang['newpass'] = 'Nove contrasigno'; -$lang['oldpass'] = 'Contrasigno actual'; -$lang['passchk'] = 'confirmar contrasigno'; +$lang['oldpass'] = 'Confirmar contrasigno actual'; +$lang['passchk'] = 'un altere vice'; $lang['remember'] = 'Memorar me'; $lang['fullname'] = 'Nomine real'; $lang['email'] = 'E-mail'; @@ -65,8 +65,8 @@ $lang['badlogin'] = 'Le nomine de usator o le contrasigno es incorr $lang['minoredit'] = 'Modificationes minor'; $lang['draftdate'] = 'Version provisori automaticamente salveguardate le'; $lang['nosecedit'] = 'Le pagina ha essite modificate intertanto. Le informationes del section es ora obsolete, dunque le pagina complete ha essite cargate in su loco.'; -$lang['regmissing'] = 'Desolate, tu debe impler tote le campos.'; -$lang['reguexists'] = 'Pardono, un usator con iste nomine ja existe.'; +$lang['regmissing'] = 'Es necessari completar tote le campos.'; +$lang['reguexists'] = 'Regrettabilemente, un usator con iste nomine ja existe.'; $lang['regsuccess'] = 'Le conto ha essite create e le contrasigno ha essite inviate per e-mail.'; $lang['regsuccess2'] = 'Le conto ha essite create.'; $lang['regmailfail'] = 'Il pare que un error occurreva durante le invio del message con le contrasigno. Per favor contacta le administrator!'; @@ -177,7 +177,7 @@ $lang['qb_ol'] = 'Elemento de lista ordinate'; $lang['qb_ul'] = 'Elemento de lista non ordinate'; $lang['qb_media'] = 'Adder imagines e altere files'; $lang['qb_sig'] = 'Inserer signatura'; -$lang['qb_smileys'] = 'Emoticones'; +$lang['qb_smileys'] = 'Emoticones '; $lang['qb_chars'] = 'Characteres special'; $lang['upperns'] = 'Saltar al spatio de nomines superior'; $lang['admin_register'] = 'Adder nove usator'; @@ -223,7 +223,7 @@ $lang['i_modified'] = 'Pro motivos de securitate, iste script functio Tu debe re-extraher le files del pacchetto discargate, o consultar le instructiones de installation complete pro altere optiones.'; $lang['i_funcna'] = 'Le function PHP %s non es disponibile. Pote esser que tu albergo web lo ha disactivate pro un ration o altere.'; $lang['i_phpver'] = 'Le version de PHP %s es plus ancian que le version requisite %s. Es necessari actualisar le installation de PHP.'; -$lang['i_permfail'] = '%s non es scriptibile per DokuWiki. Tu debe reparar le permissiones de iste directorio!'; +$lang['i_permfail'] = '%s non permitte le accesso de scriptura a DokuWiki. Tu debe reparar le permissiones de iste directorio!'; $lang['i_confexists'] = '%s ja existe'; $lang['i_writeerr'] = 'Impossibile crear %s. Tu debe verificar le permissiones de directorios/files e crear iste file manualmente.'; $lang['i_badhash'] = 'dokuwiki.php non recognoscite o modificate (hash=%s)'; diff --git a/inc/lang/ia/updateprofile.txt b/inc/lang/ia/updateprofile.txt index 3f69da161..3968d3cde 100644 --- a/inc/lang/ia/updateprofile.txt +++ b/inc/lang/ia/updateprofile.txt @@ -1,3 +1,3 @@ ====== Actualisa le profilo de tu conto ====== -Solmente es necessari completar le campos que tu vole cambiar. tu non pote cambiar tu nomine de usator. \ No newline at end of file +Solmente es necessari completar le campos que tu vole cambiar. Non es possibile cambiar tu nomine de usator. \ No newline at end of file -- cgit v1.2.3 From b04e9c2821040ceefeaf1953e47b5871f87a66a9 Mon Sep 17 00:00:00 2001 From: Leszek Stachowski Date: Sun, 14 Feb 2010 12:59:28 +0100 Subject: Polish language update --- inc/lang/pl/lang.php | 2 +- inc/lang/pl/subscr_digest.txt | 21 +++++++++++++++++++++ inc/lang/pl/subscr_form.txt | 3 +++ inc/lang/pl/subscr_list.txt | 18 ++++++++++++++++++ inc/lang/pl/subscr_single.txt | 24 ++++++++++++++++++++++++ 5 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 inc/lang/pl/subscr_digest.txt create mode 100644 inc/lang/pl/subscr_form.txt create mode 100644 inc/lang/pl/subscr_list.txt create mode 100644 inc/lang/pl/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 37113fded..408093a59 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -8,6 +8,7 @@ * @author Maciej Kurczewski * @author Sławomir Boczek * @author sleshek@wp.pl + * @author Leszek Stachowski */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -148,7 +149,6 @@ $lang['external_edit'] = 'edycja zewnętrzna'; $lang['summary'] = 'Opis zmian'; $lang['noflash'] = 'Plugin Adobe Flash Plugin jest niezbędny do obejrzenia tej zawartości.'; $lang['download'] = 'Pobierz zrzut'; -$lang['table_edit_title'] = 'Tabela'; $lang['mail_newpage'] = 'Strona dodana:'; $lang['mail_changed'] = 'Strona zmieniona:'; $lang['mail_subscribe_list'] = 'Zmienione strony w katalogu:'; diff --git a/inc/lang/pl/subscr_digest.txt b/inc/lang/pl/subscr_digest.txt new file mode 100644 index 000000000..2b1f63c1b --- /dev/null +++ b/inc/lang/pl/subscr_digest.txt @@ -0,0 +1,21 @@ +Witaj! + +Treść strony @PAGE@ na wiki @TITLE@ uległa +następującym zmianom: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Stara wersja: @OLDPAGE@ +Nowa wersja: @NEWPAGE@ + +Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na +@DOKUWIKIURL@, a następnie odwiedź +@SUBSCRIBE@ +i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub +katalogach. + +-- +Ta wiadomość została wygenerowana przez DokuWiki na +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/pl/subscr_form.txt b/inc/lang/pl/subscr_form.txt new file mode 100644 index 000000000..59fdbdb89 --- /dev/null +++ b/inc/lang/pl/subscr_form.txt @@ -0,0 +1,3 @@ +====== Zarządzanie Subskrypcją ====== + +Ta strona pozwala Tobie na zarządzanie Twoimi subskrypcjami dla obecnej strony i katalogu. \ No newline at end of file diff --git a/inc/lang/pl/subscr_list.txt b/inc/lang/pl/subscr_list.txt new file mode 100644 index 000000000..9a74d757b --- /dev/null +++ b/inc/lang/pl/subscr_list.txt @@ -0,0 +1,18 @@ +Witaj! + +Strony w katalogu @PAGE@ na wiki @TITLE@ uległy +następującym zmianom: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na +@DOKUWIKIURL@, a następnie odwiedź +@SUBSCRIBE@ +i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub +katalogach. + +-- +Ta wiadomość została wygenerowana przez DokuWiki na +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/pl/subscr_single.txt b/inc/lang/pl/subscr_single.txt new file mode 100644 index 000000000..3f4bc7314 --- /dev/null +++ b/inc/lang/pl/subscr_single.txt @@ -0,0 +1,24 @@ +Witaj! + +Treść strony @PAGE@ na wiki @TITLE@ uległa +następującym zmianom: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data: @DATE@ +Użytkownik: @USER@ +Podsumowanie zmian: @SUMMARY@ +Stara wersja: @OLDPAGE@ +Nowa wersja: @NEWPAGE@ + +Aby zrezygnować z powiadomień o zmianach zaloguj się do wiki na +@DOKUWIKIURL@, a następnie odwiedź +@SUBSCRIBE@ +i anuluj otrzymywanie powiadomień o zmianach na stronach i/lub +katalogach. + +-- +Ta wiadomość została wygenerowana przez DokuWiki na +@DOKUWIKIURL@ \ No newline at end of file -- cgit v1.2.3 From 00c13053ac33ff41de9796de647da301a8abcc17 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 15 Feb 2010 11:13:05 +0100 Subject: Validate section edit data --- inc/parser/xhtml.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'inc') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 3ac8ed35c..b6cc49cba 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -63,6 +63,9 @@ class Doku_Renderer_xhtml extends Doku_Renderer { */ protected function finishSectionEdit($end) { list($id, $start, $type, $title) = array_pop($this->sectionedits); + if ($end <= $start) { + return; + } $this->doc .= "'; + $this->doc .= "[$start-" . (is_null($end) ? '' : $end) . '] -->'; } function getFormat(){ @@ -92,7 +93,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { // marker. array_pop($this->sectionedits); } else { - $this->finishSectionEdit(0); + $this->finishSectionEdit(); } } -- cgit v1.2.3 From b6084253c3d06924ef5817c67d4ae983bb007f39 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 2 Mar 2010 09:27:49 +0100 Subject: Revert "Redirect to start page for the root namespace too" This reverts commit 7873e7571e67c02167e5747441a2c6be32b07267. The patch breaks at least the behaviour of the "view recent changes of the whole wiki" link. --- inc/pageutils.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/pageutils.php b/inc/pageutils.php index 33b93bd72..eb22084c1 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -60,7 +60,7 @@ function getID($param='id',$clean=true){ } // Namespace autolinking from URL - if(substr($id,-1) == ':' || ($conf['useslash'] && substr($id,-1) == '/') || $id == ''){ + if(substr($id,-1) == ':' || ($conf['useslash'] && substr($id,-1) == '/')){ if(page_exists($id.$conf['start'])){ // start page inside namespace $id = $id.$conf['start']; -- cgit v1.2.3 From 149e5f262e67264b1612d6c62a67b30341186dd8 Mon Sep 17 00:00:00 2001 From: Dominik Eckelmann Date: Thu, 18 Feb 2010 11:59:28 +0100 Subject: extended mediamanager options --- inc/lang/en/lang.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'inc') diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 98ded12ca..82e414cd3 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -129,6 +129,28 @@ $lang['mediaroot'] = 'root'; $lang['mediaupload'] = 'Upload a file to the current namespace here. To create subnamespaces, prepend them to your "Upload as" filename separated by colons.'; $lang['mediaextchange'] = 'Filextension changed from .%s to .%s!'; +$lang['js']['mediatitle'] = 'Link settings'; +$lang['js']['mediadisplay'] = 'Link type'; +$lang['js']['mediaalign'] = 'Alignment'; +$lang['js']['mediasize'] = 'Image size'; +$lang['js']['mediatarget'] = 'Link target'; +$lang['js']['mediaclose'] = 'Close'; +$lang['js']['mediainsert'] = 'Insert'; +$lang['js']['mediadisplayimg'] = 'Show the image.'; +$lang['js']['mediadisplaylnk'] = 'Show only the link.'; +$lang['js']['mediasmall'] = 'Small version'; +$lang['js']['mediamedium'] = 'Medium version'; +$lang['js']['medialarge'] = 'Large version'; +$lang['js']['mediaextralarge'] = 'Extra large version'; +$lang['js']['medialnk'] = 'Link to detail page'; +$lang['js']['mediadirect'] = 'Direct link to original'; +$lang['js']['medianolnk'] = 'No link'; +$lang['js']['medianolink'] = 'Do not link the image'; +$lang['js']['medialeft'] = 'Align the image on the left.'; +$lang['js']['mediaright'] = 'Align the image on the right.'; +$lang['js']['mediacenter'] = 'Align the image in the middle.'; +$lang['js']['medianoalign'] = 'Use no align.'; + $lang['reference'] = 'References for'; $lang['ref_inuse'] = 'The file can\'t be deleted, because it\'s still used by the following pages:'; $lang['ref_hidden'] = 'Some references are on pages you don\'t have permission to read'; -- cgit v1.2.3 From 1410ed4b6ef86f5fcd267682eae03c9aece3346f Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 2 Mar 2010 10:32:27 +0100 Subject: =?UTF-8?q?Provide=20=E2=80=BAoriginal=20size=E2=80=B9=20media=20i?= =?UTF-8?q?nsertion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/lang/en/lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 82e414cd3..7cbf10029 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -141,7 +141,7 @@ $lang['js']['mediadisplaylnk'] = 'Show only the link.'; $lang['js']['mediasmall'] = 'Small version'; $lang['js']['mediamedium'] = 'Medium version'; $lang['js']['medialarge'] = 'Large version'; -$lang['js']['mediaextralarge'] = 'Extra large version'; +$lang['js']['mediaoriginal'] = 'Original version'; $lang['js']['medialnk'] = 'Link to detail page'; $lang['js']['mediadirect'] = 'Direct link to original'; $lang['js']['medianolnk'] = 'No link'; -- cgit v1.2.3 From 7caaf84c91ff684b186dec09e921d319b64ec0e1 Mon Sep 17 00:00:00 2001 From: Leonard Elezi Date: Tue, 2 Mar 2010 20:02:00 +0100 Subject: Albanian translation added --- inc/lang/sq/admin.txt | 3 + inc/lang/sq/adminplugins.txt | 1 + inc/lang/sq/backlinks.txt | 3 + inc/lang/sq/conflict.txt | 5 + inc/lang/sq/denied.txt | 3 + inc/lang/sq/diff.txt | 3 + inc/lang/sq/draft.txt | 5 + inc/lang/sq/edit.txt | 1 + inc/lang/sq/editrev.txt | 2 + inc/lang/sq/index.txt | 3 + inc/lang/sq/install.html | 8 ++ inc/lang/sq/lang.php | 258 ++++++++++++++++++++++++++++++++++++++++++ inc/lang/sq/locked.txt | 3 + inc/lang/sq/login.txt | 3 + inc/lang/sq/mailtext.txt | 16 +++ inc/lang/sq/newpage.txt | 3 + inc/lang/sq/norev.txt | 3 + inc/lang/sq/password.txt | 10 ++ inc/lang/sq/preview.txt | 3 + inc/lang/sq/pwconfirm.txt | 13 +++ inc/lang/sq/read.txt | 1 + inc/lang/sq/recent.txt | 3 + inc/lang/sq/register.txt | 3 + inc/lang/sq/registermail.txt | 14 +++ inc/lang/sq/resendpwd.txt | 3 + inc/lang/sq/revisions.txt | 3 + inc/lang/sq/searchpage.txt | 5 + inc/lang/sq/showrev.txt | 2 + inc/lang/sq/stopwords.txt | 39 +++++++ inc/lang/sq/subscr_digest.txt | 20 ++++ inc/lang/sq/subscr_form.txt | 3 + inc/lang/sq/subscr_list.txt | 13 +++ inc/lang/sq/subscr_single.txt | 23 ++++ inc/lang/sq/updateprofile.txt | 3 + inc/lang/sq/uploadmail.txt | 14 +++ inc/lang/sq/wordblock.txt | 3 + 36 files changed, 501 insertions(+) create mode 100644 inc/lang/sq/admin.txt create mode 100644 inc/lang/sq/adminplugins.txt create mode 100644 inc/lang/sq/backlinks.txt create mode 100644 inc/lang/sq/conflict.txt create mode 100644 inc/lang/sq/denied.txt create mode 100644 inc/lang/sq/diff.txt create mode 100644 inc/lang/sq/draft.txt create mode 100644 inc/lang/sq/edit.txt create mode 100644 inc/lang/sq/editrev.txt create mode 100644 inc/lang/sq/index.txt create mode 100644 inc/lang/sq/install.html create mode 100644 inc/lang/sq/lang.php create mode 100644 inc/lang/sq/locked.txt create mode 100644 inc/lang/sq/login.txt create mode 100644 inc/lang/sq/mailtext.txt create mode 100644 inc/lang/sq/newpage.txt create mode 100644 inc/lang/sq/norev.txt create mode 100644 inc/lang/sq/password.txt create mode 100644 inc/lang/sq/preview.txt create mode 100644 inc/lang/sq/pwconfirm.txt create mode 100644 inc/lang/sq/read.txt create mode 100644 inc/lang/sq/recent.txt create mode 100644 inc/lang/sq/register.txt create mode 100644 inc/lang/sq/registermail.txt create mode 100644 inc/lang/sq/resendpwd.txt create mode 100644 inc/lang/sq/revisions.txt create mode 100644 inc/lang/sq/searchpage.txt create mode 100644 inc/lang/sq/showrev.txt create mode 100644 inc/lang/sq/stopwords.txt create mode 100644 inc/lang/sq/subscr_digest.txt create mode 100644 inc/lang/sq/subscr_form.txt create mode 100644 inc/lang/sq/subscr_list.txt create mode 100644 inc/lang/sq/subscr_single.txt create mode 100644 inc/lang/sq/updateprofile.txt create mode 100644 inc/lang/sq/uploadmail.txt create mode 100644 inc/lang/sq/wordblock.txt (limited to 'inc') diff --git a/inc/lang/sq/admin.txt b/inc/lang/sq/admin.txt new file mode 100644 index 000000000..6edbf8a19 --- /dev/null +++ b/inc/lang/sq/admin.txt @@ -0,0 +1,3 @@ +====== Administrimi ====== + +Poshtë është një listë e punëve administrative të disponueshme në DokuWiki. \ No newline at end of file diff --git a/inc/lang/sq/adminplugins.txt b/inc/lang/sq/adminplugins.txt new file mode 100644 index 000000000..f87626c8e --- /dev/null +++ b/inc/lang/sq/adminplugins.txt @@ -0,0 +1 @@ +===== Plugin-e Shtesë ===== \ No newline at end of file diff --git a/inc/lang/sq/backlinks.txt b/inc/lang/sq/backlinks.txt new file mode 100644 index 000000000..b25df00be --- /dev/null +++ b/inc/lang/sq/backlinks.txt @@ -0,0 +1,3 @@ +====== Linke të kthyeshëm ====== + +Kjo është një listë e faqeve që duket se lidhen mbrapsht te kjo faqe aktuale. \ No newline at end of file diff --git a/inc/lang/sq/conflict.txt b/inc/lang/sq/conflict.txt new file mode 100644 index 000000000..9c6cc940d --- /dev/null +++ b/inc/lang/sq/conflict.txt @@ -0,0 +1,5 @@ +====== Ekziston një version më i ri ====== + +Ekziston një version më i ri i dokumentit që ju redaktuat. Kjo ndodh kur një përdorues tjetër e ndryshoi dokumentin ndërkohë që ju po e redaktonit atë. + +Gjeni ndryshimet e treguara më poshtë dhe pastaj vendosni se kë version doni të mbani. Nëse zgjidhni "ruaj", versioni juaj do të ruhet. Klikon "fshi" për të mbajtur versioni aktual. \ No newline at end of file diff --git a/inc/lang/sq/denied.txt b/inc/lang/sq/denied.txt new file mode 100644 index 000000000..03e10527f --- /dev/null +++ b/inc/lang/sq/denied.txt @@ -0,0 +1,3 @@ +====== Leja Refuzohet ====== + +Na vjen keq, ju nuk keni të drejta të mjaftueshme për të vazhduar. Mbase harruat të hyni? \ No newline at end of file diff --git a/inc/lang/sq/diff.txt b/inc/lang/sq/diff.txt new file mode 100644 index 000000000..ab03a283f --- /dev/null +++ b/inc/lang/sq/diff.txt @@ -0,0 +1,3 @@ +====== Ndryshimet ====== + +Kjo tregon ndryshimet midis dy versioneve të faqes. \ No newline at end of file diff --git a/inc/lang/sq/draft.txt b/inc/lang/sq/draft.txt new file mode 100644 index 000000000..80634a780 --- /dev/null +++ b/inc/lang/sq/draft.txt @@ -0,0 +1,5 @@ +====== Skedari skicë u gjend ====== + +Sesioni juaj i fundit i redaktimit në këtë faqe nuk përfundoi me sukses. DokuWiki ruajti automatikisht një skicë gjatë punës tuaj të cilën mund ta përdorni tani për të vazhduar redaktimin tuaj. Më poshtë mund të shihni të dhënat që janë ruajtur nga sesioni juaj i fundit. + +Ju lutem vendosni nëse doni të //rekuperoni// sesionin tuaj të humbur të redaktimit, //fshini// skicën e ruajtur automatikisht ose //dilni// nga proçesi i redaktimit. \ No newline at end of file diff --git a/inc/lang/sq/edit.txt b/inc/lang/sq/edit.txt new file mode 100644 index 000000000..1f038ead7 --- /dev/null +++ b/inc/lang/sq/edit.txt @@ -0,0 +1 @@ +Redaktoni faqen dhe shtypni "Ruaj". Shikoni [[wiki:syntax]] për sintaksën e Wiki-t. Nëse doni të provoni disa gjëra, mësoni të hidhni hapat e parë në [[playground:playground|playground]]. \ No newline at end of file diff --git a/inc/lang/sq/editrev.txt b/inc/lang/sq/editrev.txt new file mode 100644 index 000000000..08792eafb --- /dev/null +++ b/inc/lang/sq/editrev.txt @@ -0,0 +1,2 @@ +**Keni ngarkuar një rishikim të vjetër të dokumentit!** Nëse e ruani, do të krijoni një version të ri me këto të dhëna. +---- \ No newline at end of file diff --git a/inc/lang/sq/index.txt b/inc/lang/sq/index.txt new file mode 100644 index 000000000..6daef1c30 --- /dev/null +++ b/inc/lang/sq/index.txt @@ -0,0 +1,3 @@ +====== Index ====== + +Ky është një index mbi të gjitha faqet e disponueshme të renditura sipas [[doku>namespaces|namespaces]]. \ No newline at end of file diff --git a/inc/lang/sq/install.html b/inc/lang/sq/install.html new file mode 100644 index 000000000..f9f69f473 --- /dev/null +++ b/inc/lang/sq/install.html @@ -0,0 +1,8 @@ +

Kjo faqe ndihmon në instalimin dhe konfigurimin për herë të parë të Dokuwiki-t. Më shumë informacion mbi këtë installer gjendet në faqen e tij të dokumentimit.

+ +

Dokuwiki përdor skedarë të zakonshëm për ruajtjen e faqeve wiki dhe informacioneve të tjera të lidhura me ato faqe (psh imazhe, indekse kërkimi, rishikime të vjetra etj). Në mënyrë që të funksionojë me sukses DokuWiki duhet të ketë akses shkrimi mbi direktoritë që mbajnë këto skedarë. Ky installer nuk është në gjendje të vendosë leje mbi direktoritë. Kjo normalisht duhet bërë drejtpërdrejt nga një command shell ose nëse jeni duke përdorur hostimin, nëpërmjet FTP ose panelit të kontrollit të hostit (psh cPanel).

+ +

Ky installer do të instalojë konfigurimin e DokuWiki-t tuaj +për ACL, që në këmbim lejon hyrje si administrator dhe akses të menusë së administrimit të DokuWiki-t për të instaluar plugin-e, menaxhuar përdoruesit, menaxhuar akses në faqet wiki dhe ndryshim të konfigurimeve. Nuk është e domosdoshme për DokuWiki-n të funksionojë, megjithatë do ta bëjë DokuWiki-n më të lehtë për tu administruar.

+ +

Përduruesit me përvojë ose përdoruesit me kërkesa speciale për instalim duhet të përdorin këto linke për detaje mbi instruksionet e instalimit dhe konfigurimeve.

\ No newline at end of file diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php new file mode 100644 index 000000000..a41a6bd6e --- /dev/null +++ b/inc/lang/sq/lang.php @@ -0,0 +1,258 @@ +Adobe Flash Plugin për të paraqitur këtë përmbajtje.'; +$lang['download'] = 'Shkarko Copën'; +$lang['mail_newpage'] = 'faqje u shtua:'; +$lang['mail_changed'] = 'faqja u ndryshua:'; +$lang['mail_subscribe_list'] = 'faqet u ndryshuan në hapësirën e emrave:'; +$lang['mail_new_user'] = 'përdorues i ri:'; +$lang['mail_upload'] = 'skedari u ngarkua:'; +$lang['qb_bold'] = 'Tekst i Theksuar'; +$lang['qb_italic'] = 'Tekst i Pjerrët'; +$lang['qb_underl'] = 'Tekst i Nënvijëzuar'; +$lang['qb_code'] = 'Tekst Kodi'; +$lang['qb_strike'] = 'Tekst me Vijë Mespërmes'; +$lang['qb_h1'] = 'Titull me Nivel 1'; +$lang['qb_h2'] = 'Titull me Nivel 2'; +$lang['qb_h3'] = 'Titull me Nivel 3'; +$lang['qb_h4'] = 'Titull me Nivel 4'; +$lang['qb_h5'] = 'Titull me Nivel 5'; +$lang['qb_h'] = 'Titull'; +$lang['qb_hs'] = 'Përzgjidh Titull'; +$lang['qb_hplus'] = 'Titull Më i Lartë'; +$lang['qb_hminus'] = 'Titull Më i Ulët'; +$lang['qb_hequal'] = 'Titull i të Njëjtit Nivel'; +$lang['qb_link'] = 'Lidhje e Brendshme'; +$lang['qb_extlink'] = 'Lidhje e Jashtme '; +$lang['qb_hr'] = 'Vijë Horizontale'; +$lang['qb_ol'] = 'Listë Objektesh të Renditur'; +$lang['qb_ul'] = 'Listë Objektesh të Parenditura'; +$lang['qb_media'] = 'Shto imazhe dhe skedarë të tjerë'; +$lang['qb_sig'] = 'Fut Firmën'; +$lang['qb_smileys'] = 'Smileys'; +$lang['qb_chars'] = 'Karaktere Speciale'; +$lang['upperns'] = 'kërce tek hapësira e emrit prind'; +$lang['admin_register'] = 'Shto Përdorues të Ri'; +$lang['metaedit'] = 'Redakto Metadata'; +$lang['metasaveerr'] = 'Shkrimi i metadata-ve dështoi'; +$lang['metasaveok'] = 'Metadata u ruajt'; +$lang['img_backto'] = 'Mbrapa te'; +$lang['img_title'] = 'Titulli '; +$lang['img_caption'] = 'Titra'; +$lang['img_date'] = 'Data'; +$lang['img_fname'] = 'Emri Skedarit'; +$lang['img_fsize'] = 'Madhësia'; +$lang['img_artist'] = 'Autor'; +$lang['img_copyr'] = 'Mbajtësi i të drejtave të autorit'; +$lang['img_format'] = 'Formati'; +$lang['img_camera'] = 'Kamera'; +$lang['img_keywords'] = 'Fjalë Kyçe'; +$lang['subscr_subscribe_success'] = 'Iu shtua %s listës së abonimeve për %s'; +$lang['subscr_subscribe_error'] = 'Gabim gjatë shtimit të %s listës së abonimeve për %s'; +$lang['subscr_subscribe_noaddress'] = 'Nuk ekziston asnjë adresë e lidhur me regjistrimin tuaj, ju nuk mund t\'i shtoheni listës së abonimeve.'; +$lang['subscr_unsubscribe_success'] = 'U hoq %s nga lista e abonimeve për %s'; +$lang['subscr_unsubscribe_error'] = 'Gabim në heqjen e %s nga lista e abonimeve për %s'; +$lang['subscr_already_subscribed'] = '%s është abonuar njëherë te %s'; +$lang['subscr_not_subscribed'] = '%s nuk është abonuar te %s'; +$lang['subscr_m_not_subscribed'] = 'Momentalisht ju nuk jeni i abonuar në faqen aktuale apo hapësirën e emrit aktual.'; +$lang['subscr_m_new_header'] = 'Shto abonim'; +$lang['subscr_m_current_header'] = 'Abonimet aktuale'; +$lang['subscr_m_unsubscribe'] = 'Fshi Abonimin'; +$lang['subscr_m_subscribe'] = 'Abonohu'; +$lang['subscr_m_receive'] = 'Mer'; +$lang['subscr_style_every'] = 'email mbi çdo ndryshim'; +$lang['subscr_style_digest'] = 'pasqyro email-e ndryshimi pér çdo faqe'; +$lang['subscr_style_list'] = 'listë e faqeve të ndryshuara që nga emaili i fundit'; +$lang['authmodfailed'] = 'Konfigurim i gabuar i autentikimit të përdoruesit. Ju lutem informoni Administratorin tuaj të Wiki-it.'; +$lang['authtempfail'] = 'Autentikimi i përdoruesve është përkohësisht i padisponueshëm. Nëse kjo gjendje vazhdon, ju lutemi të informoni Administratorin tuaj të Wiki-it.'; +$lang['i_chooselang'] = 'Zgjidhni gjuhën tuaj'; +$lang['i_installer'] = 'Installer-i DokuWiki'; +$lang['i_wikiname'] = 'Emri Wiki-it'; +$lang['i_enableacl'] = 'Aktivizo ACL (rekomanduar)'; +$lang['i_superuser'] = 'Superpërdorues'; +$lang['i_problems'] = 'Installer-i gjeti disa probleme, të shfaqura më poshtë. Nuk mund të vazhdoni derisa t\'i keni rregulluar.'; +$lang['i_modified'] = 'Për arsye sigurie ky skript do të punojë vetëm me një instalim të ri dhe të pamodifikuar DokuWiki. +Ose duhet të ekstraktoni skedarët nga e para nga pakoja e shkarkimit ose konsultohuni me Dokuwiki installation instructions'; +$lang['i_funcna'] = 'Funksioni PHP %s nuk është i disponueshëm. Mbase siguruesi juaj i host-it e ka çaktivizuar për ndonjë arsye?'; +$lang['i_phpver'] = 'Versioni juaj i PHP %s është më i vogël se ai i duhuri %s. Duhet të përditësoni instalimin tuaj të PHP-së.'; +$lang['i_permfail'] = '%s nuk është e shkruajtshme nga DokuWiki. Duhet të rregulloni lejet e përdorimit për këtë direktori.'; +$lang['i_confexists'] = '%s ekziston njëherë'; +$lang['i_writeerr'] = '%s nuk mundi të krijohej. Duhet të kontrolloni lejet e dirkektorisë/skedarit dhe ta krijoni skedarin manualisht.'; +$lang['i_badhash'] = 'dokuwiki.php e panjohur ose e ndryshuar (hash=code>%s)'; +$lang['i_badval'] = '%s - vlerë e palejuar ose boshe'; +$lang['i_success'] = 'Konfigurimi u mbarua me sukses. Tani mund ta fshini skedarin install.php. Vazhdoni tek DokuWiki juaj i ri..'; +$lang['i_failure'] = 'Ndodhën disa gabime gjatë shkrimit të skedarit të konfigurimit. Do t\'ju duhet t\'i rregulloni manualisht para se të përdorni DokuWiki-in tuaj të ri..'; +$lang['i_policy'] = 'Veprimi fillestar ACL'; +$lang['i_pol0'] = 'Wiki i Hapur (lexim, shkrim, ngarkim për këdo)'; +$lang['i_pol1'] = 'Wiki Publike (lexim për këdo, shkrim dhe ngarkim për përdoruesit e regjistruar)'; +$lang['i_pol2'] = 'Wiki e Mbyllur (lexim, shkrim, ngarkim vetëm për përdoruesit e regjistruar)'; +$lang['i_retry'] = 'Provo Përsëri'; +$lang['mu_intro'] = 'Këtu mund të ngarkoni disa skedarë njëkohësisht. Klikoni butonin e shfletuesit për t\'i shtuar ata në radhë. Klikoni Ngarko kur të keni mbaruar.'; +$lang['mu_gridname'] = 'Emri Skedari'; +$lang['mu_gridsize'] = 'Madhësia'; +$lang['mu_gridstat'] = 'Statusi'; +$lang['mu_namespace'] = 'Hapësira Emrit'; +$lang['mu_browse'] = 'Shfleto'; +$lang['mu_toobig'] = 'shumë i/e madhe'; +$lang['mu_ready'] = 'gati për ngarkim'; +$lang['mu_done'] = 'përfundoi'; +$lang['mu_fail'] = 'dështoi'; +$lang['mu_authfail'] = 'sesioni skadoi'; +$lang['mu_progress'] = '@PCT@% u ngarkua'; +$lang['mu_filetypes'] = 'Tipet e Skedarëve të Lejuar'; +$lang['mu_info'] = 'skedarët e ngarkuar'; +$lang['mu_lasterr'] = 'Gabimi i fundit:'; +$lang['recent_global'] = 'Momentalisht jeni duke parë ndryshimet brenda hapësirës së emrit %s. Gjithashtu mund të shihni ndryshimet më të fundit në të gjithë wiki-n.'; +$lang['years'] = '%d vite më parë'; +$lang['months'] = '%d muaj më parë'; +$lang['weeks'] = '%d javë më parë'; +$lang['days'] = '%d ditë më parë'; +$lang['hours'] = '%d orë më parë'; +$lang['minutes'] = '%d minuta më parë'; +$lang['seconds'] = '%d sekonda më parë'; diff --git a/inc/lang/sq/locked.txt b/inc/lang/sq/locked.txt new file mode 100644 index 000000000..8c86c8be0 --- /dev/null +++ b/inc/lang/sq/locked.txt @@ -0,0 +1,3 @@ +====== Faqe e kyçur ====== + +Kjo faqe është përkohësisht e kyçur për redaktim nga një përdorues tjetër. Duhet të prisni derisa ky përdorues të mbarojë redaktimin ose çelësi të skadojë. \ No newline at end of file diff --git a/inc/lang/sq/login.txt b/inc/lang/sq/login.txt new file mode 100644 index 000000000..843e47652 --- /dev/null +++ b/inc/lang/sq/login.txt @@ -0,0 +1,3 @@ +====== Hyrje ====== + +Momentalisht nuk jeni të futur në Wiki! Futni informacionet tuaja të autentikimit më poshtë për të hyrë. Duhet t'i keni cookies të aktivizuara për të hyrë. \ No newline at end of file diff --git a/inc/lang/sq/mailtext.txt b/inc/lang/sq/mailtext.txt new file mode 100644 index 000000000..0746ca42c --- /dev/null +++ b/inc/lang/sq/mailtext.txt @@ -0,0 +1,16 @@ +Një faqe në DokuWiki-n tuaj u shtua ose u ndryshua. Këto janë detajet: + +Data: @DATE@ +Shfletuesi: @BROWSER@ +Adresa IP: @IPADDRESS@ +Emri Hostit: @HOSTNAME@ +Rishikimi i vjetër: @OLDPAGE@ +Rishikimi i ri: @NEWPAGE@ +Përmbledhja redaktimit: @SUMMARY@ +Përdoruesi: @USER@ + +@DIFF@ + +--- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sq/newpage.txt b/inc/lang/sq/newpage.txt new file mode 100644 index 000000000..1db750d00 --- /dev/null +++ b/inc/lang/sq/newpage.txt @@ -0,0 +1,3 @@ +====== Kjo temë nuk ekziston ende ====== + +Keni ndjekur një link për në një temë që nuk ekziston ende. Nëse ua lejojnë të drejtat, mund ta krijoni duke klikuar butonin "Krijo këtë faqe". \ No newline at end of file diff --git a/inc/lang/sq/norev.txt b/inc/lang/sq/norev.txt new file mode 100644 index 000000000..0e73223a9 --- /dev/null +++ b/inc/lang/sq/norev.txt @@ -0,0 +1,3 @@ +====== Nuk ekzistion një rishikim i tillë ====== + +Rishikimi i specifikuar nuk ekziston. Përdor buttonin "Rishikime të vjetra" për një listë të rishikimeve të vjetra të këtij dokumenti. \ No newline at end of file diff --git a/inc/lang/sq/password.txt b/inc/lang/sq/password.txt new file mode 100644 index 000000000..1c8a8694a --- /dev/null +++ b/inc/lang/sq/password.txt @@ -0,0 +1,10 @@ +Përshëndetje @FULLNAME@! + +Këtu janë të dhënat e përdoruesit për @TITLE@ në @DOKUWIKIURL@ + +Hyrje: @LOGIN@ +Fjalëkalimi: @PASSWORD@ + +--- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sq/preview.txt b/inc/lang/sq/preview.txt new file mode 100644 index 000000000..07148b842 --- /dev/null +++ b/inc/lang/sq/preview.txt @@ -0,0 +1,3 @@ +====== Shikim Paraprak ====== + +Ky është një shikim paraprak i tekstit tuaj. Kujtohuni: **Nuk** është ruajtur ende! \ No newline at end of file diff --git a/inc/lang/sq/pwconfirm.txt b/inc/lang/sq/pwconfirm.txt new file mode 100644 index 000000000..44d6c2dfe --- /dev/null +++ b/inc/lang/sq/pwconfirm.txt @@ -0,0 +1,13 @@ +Përshëndetje @FULLNAME@! + +Dikush kërkoi një fjalëkalim të ri për hyrjen tuaj @TITLE@ në @DOKUWIKIURL@ + +Nëse nuk kërkuat një fjalëkalim të ri atëherë thjesht injorojeni këtë email. + +Për të konfirmuar që kërkesa u dërgua me të vërtetë nga ju, ju lutemi përdorni link-un e mëposhtëm. + +@CONFIRM@ + +-- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sq/read.txt b/inc/lang/sq/read.txt new file mode 100644 index 000000000..cbb028048 --- /dev/null +++ b/inc/lang/sq/read.txt @@ -0,0 +1 @@ +Kjo faqe është vetëm për lexim. Mund të shihni kodin burim, por nuk mund ta ndryshoni atë. Kontaktoni administratorin nëse mendoni se kjo është e gabuar. \ No newline at end of file diff --git a/inc/lang/sq/recent.txt b/inc/lang/sq/recent.txt new file mode 100644 index 000000000..4b3bdf48d --- /dev/null +++ b/inc/lang/sq/recent.txt @@ -0,0 +1,3 @@ +====== Ndryshimet e kohëve të fundit ====== + +Faqet e mëposhtme janë ndryshuar së fundmi. \ No newline at end of file diff --git a/inc/lang/sq/register.txt b/inc/lang/sq/register.txt new file mode 100644 index 000000000..d4a3ca36b --- /dev/null +++ b/inc/lang/sq/register.txt @@ -0,0 +1,3 @@ +====== Regjistrohuni si një përdorues i ri ====== + +Plotësoni të gjitha informacionet e mëposhtme për të krijuar një llogari në këtë wiki. Sigorohuni që të jepni një **adresë email-i të vlefshme**. Nëse nuk ju kërkohet të futni një fjalëkalim këtu, një fjalëkalim i ri do t'ju dërgohet në adresën e email-it që specifikuat. Emri i hyrjes duhet të një [[doku>pagename|pagename]] e vlefshme. \ No newline at end of file diff --git a/inc/lang/sq/registermail.txt b/inc/lang/sq/registermail.txt new file mode 100644 index 000000000..ef90e455e --- /dev/null +++ b/inc/lang/sq/registermail.txt @@ -0,0 +1,14 @@ +Një përdorues i ri u regjistrua. Këto janë detajet: + +Emri përdoruesit: @NEWUSER@ +Emri i plotë i përdoruesit: @NEWNAME@ +E-mail: @NEWEMAIL@ + +Data: @DATE@ +Shfletuesi: @BROWSER@ +Adresa IP: @IPADDRESS@ +Emri Hostit: @HOSTNAME@ + +-- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sq/resendpwd.txt b/inc/lang/sq/resendpwd.txt new file mode 100644 index 000000000..79d0b3e8e --- /dev/null +++ b/inc/lang/sq/resendpwd.txt @@ -0,0 +1,3 @@ +====== Dërgo fjalëkalim të ri ====== + +Ju lutemi futni emrin tuaj të përdorimit në formën e mëposhtme për të kërkuar një fjalëkalim të ri për llogarinë tuaj në këtë wiki. Një link konfirmimi do të dërgohet në adresën tuaj të eMail-it. \ No newline at end of file diff --git a/inc/lang/sq/revisions.txt b/inc/lang/sq/revisions.txt new file mode 100644 index 000000000..349631ffb --- /dev/null +++ b/inc/lang/sq/revisions.txt @@ -0,0 +1,3 @@ +====== Rishikime të vjetra ====== + +Këto janë rishikimet e vjetra të dokumentit aktual. Për t'u kthyer në një rishikim të vjetër, zgjidhni nga këtu poshtë, klikoni "Redaktoni këtë faqe" dhe ruajeni atë. diff --git a/inc/lang/sq/searchpage.txt b/inc/lang/sq/searchpage.txt new file mode 100644 index 000000000..2f34cabb9 --- /dev/null +++ b/inc/lang/sq/searchpage.txt @@ -0,0 +1,5 @@ +====== Kërko ====== + +Mund të gjeni rezultatet e kërkimit tuaj më poshtë. Nëse nuk e gjetët atë që po kërkonit, mund të krijoni ose redaktoni një faqe pas pyetjes suaj me butonin përkatës. + +===== Rezultate ===== \ No newline at end of file diff --git a/inc/lang/sq/showrev.txt b/inc/lang/sq/showrev.txt new file mode 100644 index 000000000..9c1f761dc --- /dev/null +++ b/inc/lang/sq/showrev.txt @@ -0,0 +1,2 @@ +**Ky është një rishikim i vjetër i dokumentit!** +---- \ No newline at end of file diff --git a/inc/lang/sq/stopwords.txt b/inc/lang/sq/stopwords.txt new file mode 100644 index 000000000..e35669410 --- /dev/null +++ b/inc/lang/sq/stopwords.txt @@ -0,0 +1,39 @@ +# Kjo është një listë e fjalëve që indexer-i injoron, një fjalë për rresht +# Kur të redaktoni këtë faqe sigurohuni që të përdorni fund-rreshtash UNIX (rresht i ri i vetëm) +# Nuk është nevoja të përfshini fjalë më të shkurtra se tre karaktere - këtë injorohen gjithsesi +# Kjo listë bazohet mbi ato që gjenden në http://www.ranks.nl/stopwords/ +about +are +as +an +and +you +your +them +their +com +for +from +into +if +in +is +it +how +of +on +or +that +the +this +to +was +what +when +where +who +will +with +und +the +www \ No newline at end of file diff --git a/inc/lang/sq/subscr_digest.txt b/inc/lang/sq/subscr_digest.txt new file mode 100644 index 000000000..41404cff9 --- /dev/null +++ b/inc/lang/sq/subscr_digest.txt @@ -0,0 +1,20 @@ +Përshëndetje! + +Faqja @PAGE@ në wiki-n @TITLE@ ndryshoi. +Këtu janë ndryshimet: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Rishikimi i vjetër: @OLDPAGE@ +Rishikimi i ri: @NEWPAGE@ + +Për të fshirë lajmërimet e faqes, mund të hyni tek wiki në +@DOKUWIKIURL@ pastaj vizitoni +@SUBSCRIBE@ +dhe ç'regjistro faqen dhe/ose ndryshimet e hapësirës së emrit. + +-- +Ky eMail është gjeneruar nga DokuWiki në +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sq/subscr_form.txt b/inc/lang/sq/subscr_form.txt new file mode 100644 index 000000000..7c71a4c73 --- /dev/null +++ b/inc/lang/sq/subscr_form.txt @@ -0,0 +1,3 @@ +====== Menaxhimi i Abonimeve ====== + +Kjo faqe lejon menaxhimin e abonimeve tuaja për faqen dhe hapësirën e emrit aktual. \ No newline at end of file diff --git a/inc/lang/sq/subscr_list.txt b/inc/lang/sq/subscr_list.txt new file mode 100644 index 000000000..cb10d4223 --- /dev/null +++ b/inc/lang/sq/subscr_list.txt @@ -0,0 +1,13 @@ +Përshëndetje! + +Faqet në hapësirën e emrit @PAGE@ të wiki-t @TITLE@ ndryshuan. Këto janë faqet e ndryshuara: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Për të fshirë lajmërimet e faqes, hyni në wiki-n tek @DOKUWIKIURL@ dhe pastaj vizitoni @SUBSCRIBE@ dhe fshini ndryshimet e faqes dhe/ose të hapësirës së emrit. + +-- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sq/subscr_single.txt b/inc/lang/sq/subscr_single.txt new file mode 100644 index 000000000..90520be4f --- /dev/null +++ b/inc/lang/sq/subscr_single.txt @@ -0,0 +1,23 @@ +Përshëndetje! + +Faqja @PAGE@ në wiki-n @TITLE@ ndryshoi. +Këto janë ndryshimet: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Përdoruesi : @USER@ +Përmbledhja redaktimit: @SUMMARY@ +Rishikimi i vjetër: @OLDPAGE@ +Rishikimi i ri: @NEWPAGE@ + +Për të fshirë lajmërimet e faqes, hyni në wiki tek +@DOKUWIKIURL@ dhe pastaj vizitoni +@NEWPAGE@ +dhe fshini ndryshimet e faqes dhe/ose hapësirës së emrit. + +-- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sq/updateprofile.txt b/inc/lang/sq/updateprofile.txt new file mode 100644 index 000000000..ba76beb1f --- /dev/null +++ b/inc/lang/sq/updateprofile.txt @@ -0,0 +1,3 @@ +====== Përditësoni profilin e llogarisë tuaj ====== + +Duhet vetëm të plotësoni ato fusha që doni të ndryshoni. Mund të mos e ndryshoni emrin tuaj të përdoruesit. \ No newline at end of file diff --git a/inc/lang/sq/uploadmail.txt b/inc/lang/sq/uploadmail.txt new file mode 100644 index 000000000..e7c62df15 --- /dev/null +++ b/inc/lang/sq/uploadmail.txt @@ -0,0 +1,14 @@ +Një skedar u ngarkua në DokuWiki-n tënd. Detajet janë: + +Skedar: @MEDIA@ +Data: @DATE@ +Shfletuesi: @BROWSER@ +Adresa IP: @IPADDRESS@ +Emri Hostit: @HOSTNAME@ +Madhësia: @SIZE@ +Tipi MIME: @MIME@ +Përdoruesi: @USER@ + +--- +Ky email u gjenerua nga DokuWiki në +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sq/wordblock.txt b/inc/lang/sq/wordblock.txt new file mode 100644 index 000000000..6f1085561 --- /dev/null +++ b/inc/lang/sq/wordblock.txt @@ -0,0 +1,3 @@ +====== U bllokua SPAM ====== + +Ndryshimet tuaja **nuk** u ruajtën sepse ato përmbanin një ose më shumë fjalë të bllokuara. Nëse u përpoqët të bënit spam në këtë Wiki -- Djalë i Keq! Nëse mendoni se ky është një gabim, kontaktoni administratorin e këtij Wiki. \ No newline at end of file -- cgit v1.2.3 From 06368e4dbb72cef5e440312251d11fbaea6242a9 Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Tue, 2 Mar 2010 19:00:37 +0100 Subject: Fixed testcase and getID - FS#1908 FS#1831 FS#1838 $_SERVER['PATH_INFO'] is used now to determine the page id when using internal rewriting, in all testcases I've seen so far this variable was set correctly. There are also a couple of fallbacks if the variable doesn't exist, $_SERVER['SCRIPT_NAME'] is now preferred instead of custom path extraction which fails when doku.php is outside the document root. --- inc/pageutils.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'inc') diff --git a/inc/pageutils.php b/inc/pageutils.php index eb22084c1..ef09dc7b6 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -23,10 +23,11 @@ function getID($param='id',$clean=true){ $id = isset($_REQUEST[$param]) ? $_REQUEST[$param] : null; - $request = $_SERVER['REQUEST_URI']; - //construct page id from request URI if(empty($id) && $conf['userewrite'] == 2){ + $request = $_SERVER['REQUEST_URI']; + $script = ''; + //get the script URL if($conf['basedir']){ $relpath = ''; @@ -35,15 +36,14 @@ function getID($param='id',$clean=true){ } $script = $conf['basedir'].$relpath.basename($_SERVER['SCRIPT_FILENAME']); - }elseif($_SERVER['DOCUMENT_ROOT'] && $_SERVER['PATH_TRANSLATED']){ - $request = preg_replace ('/^'.preg_quote($_SERVER['DOCUMENT_ROOT'],'/').'/','', - $_SERVER['PATH_TRANSLATED']); + }elseif($_SERVER['PATH_INFO']){ + $request = $_SERVER['PATH_INFO']; + }elseif($_SERVER['SCRIPT_NAME']){ + $script = $_SERVER['SCRIPT_NAME']; }elseif($_SERVER['DOCUMENT_ROOT'] && $_SERVER['SCRIPT_FILENAME']){ $script = preg_replace ('/^'.preg_quote($_SERVER['DOCUMENT_ROOT'],'/').'/','', $_SERVER['SCRIPT_FILENAME']); $script = '/'.$script; - }else{ - $script = $_SERVER['SCRIPT_NAME']; } //clean script and request (fixes a windows problem) -- cgit v1.2.3 From ec0fe1a56541bb02a6a8cf665014161702c22e14 Mon Sep 17 00:00:00 2001 From: Aivars Miska Date: Wed, 3 Mar 2010 20:37:32 +0100 Subject: Latvian language update --- inc/lang/lv/lang.php | 46 +++++++++++++++++++++++++++++++++++-------- inc/lang/lv/subscr_digest.txt | 19 ++++++++++++++++++ inc/lang/lv/subscr_form.txt | 3 +++ inc/lang/lv/subscr_list.txt | 16 +++++++++++++++ inc/lang/lv/subscr_single.txt | 23 ++++++++++++++++++++++ 5 files changed, 99 insertions(+), 8 deletions(-) create mode 100644 inc/lang/lv/subscr_digest.txt create mode 100644 inc/lang/lv/subscr_form.txt create mode 100644 inc/lang/lv/subscr_list.txt create mode 100644 inc/lang/lv/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php index 5de7a0cc6..9e31cc54e 100644 --- a/inc/lang/lv/lang.php +++ b/inc/lang/lv/lang.php @@ -37,9 +37,6 @@ $lang['btn_back'] = 'Atpakaļ'; $lang['btn_backlink'] = 'Norādes uz lapu'; $lang['btn_backtomedia'] = 'Atpakaļ uz mēdiju failu izvēli'; $lang['btn_subscribe'] = 'Abonēt izmaiņu paziņojumus'; -$lang['btn_unsubscribe'] = 'Atteikties no izmaiņu paziņojumiem'; -$lang['btn_subscribens'] = 'Abonēt nodaļas izmaiņu paziņojumus'; -$lang['btn_unsubscribens'] = 'Atteikties no nodaļas izmaiņu paziņojumiem'; $lang['btn_profile'] = 'Labot savu profilu'; $lang['btn_reset'] = 'Atsaukt izmaiņas'; $lang['btn_resendpwd'] = 'Nosūtīt jaunu paroli'; @@ -114,6 +111,27 @@ $lang['mediafiles'] = 'Pieejamie faili'; $lang['js']['searchmedia'] = 'Meklēt failus'; $lang['js']['keepopen'] = 'Pēc faila izvēles logu paturēt atvērtu'; $lang['js']['hidedetails'] = 'Slēpt detaļas'; +$lang['js']['mediatitle'] = 'Saites īpašības'; +$lang['js']['mediadisplay'] = 'Saites tips'; +$lang['js']['mediaalign'] = 'Slēgums'; +$lang['js']['mediasize'] = 'Attēla izmērs'; +$lang['js']['mediatarget'] = 'Saite ved uz '; +$lang['js']['mediaclose'] = 'Aizvērt'; +$lang['js']['mediainsert'] = 'Ievietot'; +$lang['js']['mediadisplayimg'] = 'Rādīt attēlu'; +$lang['js']['mediadisplaylnk'] = 'Rādīt tikai saiti'; +$lang['js']['mediasmall'] = 'Mazs'; +$lang['js']['mediamedium'] = 'Vidējs'; +$lang['js']['medialarge'] = 'Liels'; +$lang['js']['mediaoriginal'] = 'Oriģināls'; +$lang['js']['medialnk'] = 'Saite uz detaļām'; +$lang['js']['mediadirect'] = 'Tieša saite uz oriģinālu'; +$lang['js']['medianolnk'] = 'Bez saites'; +$lang['js']['medianolink'] = 'Bez saites uz attēlu'; +$lang['js']['medialeft'] = 'kreisais'; +$lang['js']['mediaright'] = 'labais'; +$lang['js']['mediacenter'] = 'centra'; +$lang['js']['medianoalign'] = 'neizlīdzināt'; $lang['js']['nosmblinks'] = 'Saites uz Windows resursiem darbojas tikai Microsoft Internet Explorer. Protams, ka vari saiti kopēt un iespraust citā programmā.'; $lang['js']['linkwiz'] = 'Saišu vednis'; @@ -148,6 +166,7 @@ $lang['summary'] = 'Anotācija'; $lang['noflash'] = 'Lai attēlotu lapas saturu, vajag Adobe Flash Plugin.'; $lang['mail_newpage'] = 'lapa pievienota:'; $lang['mail_changed'] = 'lapa mainīta:'; +$lang['mail_subscribe_list'] = 'Nodaļā mainītās lapas:'; $lang['mail_new_user'] = 'Jauns lietotājs:'; $lang['mail_upload'] = 'augšupielādētais fails:'; $lang['qb_bold'] = 'Trekninājums'; @@ -190,11 +209,22 @@ $lang['img_copyr'] = 'Autortiesības'; $lang['img_format'] = 'Formāts'; $lang['img_camera'] = 'Fotoaparāts'; $lang['img_keywords'] = 'Atslēgvārdi'; -$lang['subscribe_success'] = '%s pievienots %s abonentu sarakstam'; -$lang['subscribe_error'] = 'Kļūme pievienojot %s %s abonentu sarakstam'; -$lang['subscribe_noaddress'] = 'Nav zināma adrese, ko pievienot abonentu sarakstam'; -$lang['unsubscribe_success'] = ' %s svītrots no %s abonentu saraksta'; -$lang['unsubscribe_error'] = 'Kļūme svītrojot %s no %s abonentu saraksta'; +$lang['subscr_subscribe_success'] = '%s pievienots %s abonēšanas sarakstam'; +$lang['subscr_subscribe_error'] = 'Kļūme pievienojot %s %s abonēšanas sarakstam.'; +$lang['subscr_subscribe_noaddress'] = 'Nav zināma jūsu e-pasta adrese, tāpēc nevarat abonēt.'; +$lang['subscr_unsubscribe_success'] = '%s abonements uz %s atsaukts'; +$lang['subscr_unsubscribe_error'] = 'Kļūme svītrojot %s no %s abonēšanas saraksta'; +$lang['subscr_already_subscribed'] = '%s jau abonē %s'; +$lang['subscr_not_subscribed'] = '%s neabonē %s'; +$lang['subscr_m_not_subscribed'] = 'Šī lapa vai nodaļa nav abonēta'; +$lang['subscr_m_new_header'] = 'Pievienot abonementu'; +$lang['subscr_m_current_header'] = 'Patlaban ir abonēts'; +$lang['subscr_m_unsubscribe'] = 'Atteikties no abonēšanas'; +$lang['subscr_m_subscribe'] = 'Abonēt'; +$lang['subscr_m_receive'] = 'Saņemt'; +$lang['subscr_style_every'] = 'vēstuli par katru izmaiņu'; +$lang['subscr_style_digest'] = 'kopsavilkumu par katru lapu'; +$lang['subscr_style_list'] = 'kopš pēdējās vēstules notikušo labojumu sarakstu'; $lang['authmodfailed'] = 'Aplami konfigurēta lietotāju autentifikācija. Lūdzo ziņo Wiki administratoram.'; $lang['authtempfail'] = 'Lietotāju autentifikācija pašlaik nedarbojas. Ja tas turpinās ilgstoši, lūduz ziņo Wiki administratoram.'; $lang['i_chooselang'] = 'Izvēlies valodu'; diff --git a/inc/lang/lv/subscr_digest.txt b/inc/lang/lv/subscr_digest.txt new file mode 100644 index 000000000..98784050c --- /dev/null +++ b/inc/lang/lv/subscr_digest.txt @@ -0,0 +1,19 @@ +Labdien! + +@TITLE@ viki nodaļā @PAGE@ ir mainījušās šadas lapas: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Vecā versija: @OLDPAGE@ +Jaunā versija: @NEWPAGE@ + +Lai atceltu izmaiņu paziņošanu, ielogojieties +@DOKUWIKIURL@, apmeklējiet +@SUBSCRIBE@ +un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem . + +-- +Šo vēstuli izveidoja DokuWiki no +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/lv/subscr_form.txt b/inc/lang/lv/subscr_form.txt new file mode 100644 index 000000000..9e3145f8e --- /dev/null +++ b/inc/lang/lv/subscr_form.txt @@ -0,0 +1,3 @@ +====== Abonementu pārvaldnieks ====== + +Te varat mainīt savu lapas vai nodaļas abonementu. \ No newline at end of file diff --git a/inc/lang/lv/subscr_list.txt b/inc/lang/lv/subscr_list.txt new file mode 100644 index 000000000..986b3786a --- /dev/null +++ b/inc/lang/lv/subscr_list.txt @@ -0,0 +1,16 @@ +Labdien! + +@TITLE@ viki nodaļā @PAGE@ ir mainījušās šadas lapas: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Lai atceltu izmaiņu paziņošanu, ielogojieties +@DOKUWIKIURL@, apmeklējiet +@SUBSCRIBE@ +un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem . + +-- +Šo vēstuli izveidoja DokuWiki no +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/lv/subscr_single.txt b/inc/lang/lv/subscr_single.txt new file mode 100644 index 000000000..ca6177809 --- /dev/null +++ b/inc/lang/lv/subscr_single.txt @@ -0,0 +1,23 @@ +Labdien! + +@TITLE@ viki nodaļā @PAGE@ ir mainījušās šadas lapas: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Datums : @DATE@ +Lietotājs : @USER@ +Izmaiņu anotācija: @SUMMARY@ +Vecā versija: @OLDPAGE@ +Jaunā versija: @NEWPAGE@ + + +Lai atceltu izmaiņu paziņošanu, ielogojieties +@DOKUWIKIURL@, apmeklējiet +@SUBSCRIBE@ +un atsakieties no lapas vai nodaļas izmaiņu paziņojumiem . + +-- +Šo vēstuli izveidoja DokuWiki no +@DOKUWIKIURL@ \ No newline at end of file -- cgit v1.2.3 From 620404a5dcfbccb29cd939932ecaead95b6e24cd Mon Sep 17 00:00:00 2001 From: Marek Sacha Date: Wed, 3 Mar 2010 22:25:51 +0100 Subject: Czech language update --- inc/lang/cs/lang.php | 49 +++++++++++++++++++++++++++++++++++-------- inc/lang/cs/mailtext.txt | 2 +- inc/lang/cs/password.txt | 2 +- inc/lang/cs/pwconfirm.txt | 4 ++-- inc/lang/cs/registermail.txt | 2 +- inc/lang/cs/subscr_digest.txt | 22 +++++++++++++++++++ inc/lang/cs/subscr_form.txt | 3 +++ inc/lang/cs/subscr_list.txt | 19 +++++++++++++++++ inc/lang/cs/subscr_single.txt | 25 ++++++++++++++++++++++ inc/lang/cs/uploadmail.txt | 4 ++-- 10 files changed, 116 insertions(+), 16 deletions(-) create mode 100644 inc/lang/cs/subscr_digest.txt create mode 100644 inc/lang/cs/subscr_form.txt create mode 100644 inc/lang/cs/subscr_list.txt create mode 100644 inc/lang/cs/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index ffc2a05d7..32c61692d 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -7,6 +7,7 @@ * @author Tomas Valenta * @author Zbynek Krivka * @author tomas@valenta.cz + * @author Marek Sacha */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -39,10 +40,7 @@ $lang['btn_delete'] = 'Vymazat'; $lang['btn_back'] = 'Zpět'; $lang['btn_backlink'] = 'Zpětné odkazy'; $lang['btn_backtomedia'] = 'Zpět do Výběru dokumentu'; -$lang['btn_subscribe'] = 'Odebírat mailem změny stránky'; -$lang['btn_unsubscribe'] = 'Neodebírat mailem změny stránky'; -$lang['btn_subscribens'] = 'Odebírat mailem změny ve jmenném prostoru'; -$lang['btn_unsubscribens'] = 'Neodebírat mailem změny ve jmenném prostoru'; +$lang['btn_subscribe'] = 'Odebírat emailem změny stránky'; $lang['btn_profile'] = 'Upravit profil'; $lang['btn_reset'] = 'Reset'; $lang['btn_resendpwd'] = 'Zaslat nové heslo'; @@ -117,6 +115,27 @@ $lang['mediafiles'] = 'Dostupné soubory'; $lang['js']['searchmedia'] = 'Hledat soubory'; $lang['js']['keepopen'] = 'Po vybrání souboru nechat okno otevřené'; $lang['js']['hidedetails'] = 'Skrýt detaily'; +$lang['js']['mediatitle'] = 'Nastavení odkazu'; +$lang['js']['mediadisplay'] = 'Typ odkazu'; +$lang['js']['mediaalign'] = 'Zarovnání'; +$lang['js']['mediasize'] = 'Velikost obrázku'; +$lang['js']['mediatarget'] = 'Cíl odkazu'; +$lang['js']['mediaclose'] = 'Zavřít'; +$lang['js']['mediainsert'] = 'Vložit'; +$lang['js']['mediadisplayimg'] = 'Ukázat obrázek'; +$lang['js']['mediadisplaylnk'] = 'Ukázat pouze odkaz'; +$lang['js']['mediasmall'] = 'Malá verze'; +$lang['js']['mediamedium'] = 'Střední verze'; +$lang['js']['medialarge'] = 'Velká verze'; +$lang['js']['mediaoriginal'] = 'Původní verze'; +$lang['js']['medialnk'] = 'Odkaz na stránku s detailem'; +$lang['js']['mediadirect'] = 'Přímý odkaz na originál'; +$lang['js']['medianolnk'] = 'Žádný odkaz'; +$lang['js']['medianolink'] = 'Neodkazovat na obrázek'; +$lang['js']['medialeft'] = 'Zarovnat obrázek doleva.'; +$lang['js']['mediaright'] = 'Zarovnat obrázek doprava.'; +$lang['js']['mediacenter'] = 'Zarovnat obrázek na střed.'; +$lang['js']['medianoalign'] = 'Nepoužívat zarovnání.'; $lang['js']['nosmblinks'] = 'Odkazování na sdílené prostředky Windows funguje jen v Internet Exploreru. Přesto tento odkaz můžete zkopírovat a vložit jinde.'; $lang['js']['linkwiz'] = 'Průvodce odkazy'; @@ -152,6 +171,7 @@ $lang['noflash'] = 'Pro přehrání obsahu potřebujete - -
- -
-
-
- -
- 'dw__editform')); - $form->addHidden('id', $ID); - $form->addHidden('rev', $REV); - $form->addHidden('date', $DATE); - $form->addHidden('prefix', $PRE); - $form->addHidden('suffix', $SUF); - $form->addHidden('changecheck', $check); - $attr = array('tabindex'=>'1'); - if (!$wr) $attr['readonly'] = 'readonly'; - $form->addElement(form_makeWikiText($text, $attr)); - $form->addElement(form_makeOpenTag('div', array('id'=>'wiki__editbar'))); - $form->addElement(form_makeOpenTag('div', array('id'=>'size__ctl'))); + + $form = new Doku_Form(array('id' => 'dw__editform')); + $form->addHidden('id', $ID); + $form->addHidden('rev', $REV); + $form->addHidden('date', $DATE); + $form->addHidden('prefix', $PRE); + $form->addHidden('suffix', $SUF); + $form->addHidden('changecheck', $check); + + $data = compact('wr', 'text', 'form'); + $data['media_manager'] = true; + trigger_event('HTML_EDIT_FORMSELECTION', $data, 'html_edit_form', true); + + $form->addElement(form_makeOpenTag('div', array('id'=>'wiki__editbar'))); + $form->addElement(form_makeOpenTag('div', array('id'=>'size__ctl'))); + $form->addElement(form_makeCloseTag('div')); + if ($wr) { + $form->addElement(form_makeOpenTag('div', array('class'=>'editButtons'))); + $form->addElement(form_makeButton('submit', 'save', $lang['btn_save'], array('id'=>'edbtn__save', 'accesskey'=>'s', 'tabindex'=>'4'))); + $form->addElement(form_makeButton('submit', 'preview', $lang['btn_preview'], array('id'=>'edbtn__preview', 'accesskey'=>'p', 'tabindex'=>'5'))); + $form->addElement(form_makeButton('submit', 'draftdel', $lang['btn_cancel'], array('tabindex'=>'6'))); $form->addElement(form_makeCloseTag('div')); - if ($wr) { - $form->addElement(form_makeOpenTag('div', array('class'=>'editButtons'))); - $form->addElement(form_makeButton('submit', 'save', $lang['btn_save'], array('id'=>'edbtn__save', 'accesskey'=>'s', 'tabindex'=>'4'))); - $form->addElement(form_makeButton('submit', 'preview', $lang['btn_preview'], array('id'=>'edbtn__preview', 'accesskey'=>'p', 'tabindex'=>'5'))); - $form->addElement(form_makeButton('submit', 'draftdel', $lang['btn_cancel'], array('tabindex'=>'6'))); - $form->addElement(form_makeCloseTag('div')); - $form->addElement(form_makeOpenTag('div', array('class'=>'summary'))); - $form->addElement(form_makeTextField('summary', $SUM, $lang['summary'], 'edit__summary', 'nowrap', array('size'=>'50', 'tabindex'=>'2'))); - $elem = html_minoredit(); - if ($elem) $form->addElement($elem); - $form->addElement(form_makeCloseTag('div')); - } + $form->addElement(form_makeOpenTag('div', array('class'=>'summary'))); + $form->addElement(form_makeTextField('summary', $SUM, $lang['summary'], 'edit__summary', 'nowrap', array('size'=>'50', 'tabindex'=>'2'))); + $elem = html_minoredit(); + if ($elem) $form->addElement($elem); $form->addElement(form_makeCloseTag('div')); - if($wr && $conf['license']){ - $form->addElement(form_makeOpenTag('div', array('class'=>'license'))); - $out = $lang['licenseok']; - $out .= ''; - $form->addElement($out); - $form->addElement(form_makeCloseTag('div')); - } - html_form('edit', $form); - print '
'.NL; + } + $form->addElement(form_makeCloseTag('div')); + if($wr && $conf['license']){ + $form->addElement(form_makeOpenTag('div', array('class'=>'license'))); + $out = $lang['licenseok']; + $out .= ''; + $form->addElement($out); + $form->addElement(form_makeCloseTag('div')); + } + + if ($wr) { + // sets changed to true when previewed + echo ''; + } ?> +
+ +
+
+
+ +
+ '.NL; +} + +/** + * Display the default edit form + * + * Is the default action for HTML_EDIT_FORMSELECTION. + * + * @triggers HTML_EDITFORM_OUTPUT + */ +function html_edit_form($param) { + extract($param); + $attr = array('tabindex'=>'1'); + if (!$wr) $attr['readonly'] = 'readonly'; + $form->addElement(form_makeWikiText($text, $attr)); } /** -- cgit v1.2.3 From 3f9e3215e07f71f721ddd919b9b06ad5d7cc6742 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 4 Mar 2010 11:01:52 +0100 Subject: Really allow plugins to use section editing --- inc/html.php | 2 +- inc/parser/xhtml.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 99fa4a9ce..88fa0b4ff 100644 --- a/inc/html.php +++ b/inc/html.php @@ -89,7 +89,7 @@ function html_login(){ function html_secedit($text,$show=true){ global $INFO; - $regexp = '##'; + $regexp = '##'; if(!$INFO['writable'] || !$show || $INFO['rev']){ return preg_replace($regexp,'',$text); diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 552a8332d..176411c75 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -49,7 +49,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * @return string A marker class for the starting HTML element * @author Adrian Lang */ - protected function startSectionEdit($start, $type, $title = null) { + public function startSectionEdit($start, $type, $title = null) { static $lastsecid = 0; $this->sectionedits[] = array(++$lastsecid, $start, $type, $title); return 'sectionedit' . $lastsecid; @@ -62,7 +62,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { the page * @author Adrian Lang */ - protected function finishSectionEdit($end = null) { + public function finishSectionEdit($end = null) { list($id, $start, $type, $title) = array_pop($this->sectionedits); if (!is_null($end) && $end <= $start) { return; -- cgit v1.2.3 From c1fe9e9f75eb20bf30cde6e67fe7ef9f664f4cdd Mon Sep 17 00:00:00 2001 From: Florian Gaub Date: Mon, 8 Mar 2010 18:30:08 +0100 Subject: French language update --- inc/lang/fr/conflict.txt | 4 +- inc/lang/fr/draft.txt | 4 +- inc/lang/fr/edit.txt | 2 +- inc/lang/fr/editrev.txt | 2 +- inc/lang/fr/install.html | 16 ++-- inc/lang/fr/lang.php | 167 ++++++++++++++++++++++++------------------ inc/lang/fr/locked.txt | 2 +- inc/lang/fr/mailtext.txt | 5 +- inc/lang/fr/newpage.txt | 2 +- inc/lang/fr/norev.txt | 2 +- inc/lang/fr/password.txt | 2 +- inc/lang/fr/pwconfirm.txt | 4 +- inc/lang/fr/registermail.txt | 2 +- inc/lang/fr/resendpwd.txt | 2 +- inc/lang/fr/revisions.txt | 2 +- inc/lang/fr/searchpage.txt | 2 +- inc/lang/fr/subscr_digest.txt | 19 +++++ inc/lang/fr/subscr_form.txt | 3 + inc/lang/fr/subscr_list.txt | 16 ++++ inc/lang/fr/subscr_single.txt | 22 ++++++ inc/lang/fr/uploadmail.txt | 2 +- inc/lang/fr/wordblock.txt | 4 +- 22 files changed, 181 insertions(+), 105 deletions(-) create mode 100644 inc/lang/fr/subscr_digest.txt create mode 100644 inc/lang/fr/subscr_form.txt create mode 100644 inc/lang/fr/subscr_list.txt create mode 100644 inc/lang/fr/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/fr/conflict.txt b/inc/lang/fr/conflict.txt index 0cb0a67fb..8f527ee21 100644 --- a/inc/lang/fr/conflict.txt +++ b/inc/lang/fr/conflict.txt @@ -1,6 +1,6 @@ ====== Une version plus récente existe déjà ====== -Une version plus récente du document que vous avez édité existe déjà. Cela se produit lorsqu'un autre utilisateur enregistre le document pendant que vous l'éditez. +Une version plus récente du document que vous avez modifié existe déjà. Cela se produit lorsqu'un autre utilisateur enregistre le document pendant que vous le modifiez. -Examinez attentivement les différences ci-dessous, et décidez quelle version conserver. Si vous choisissez ''Enregistrer'', votre version sera enregistrée. Cliquez sur ''Annuler'' pour conserver la version actuelle. +Examinez attentivement les différences ci-dessous et décidez quelle version conserver. Si vous choisissez « Enregistrer », votre version sera enregistrée. Cliquez sur « Annuler » pour conserver la version actuelle. diff --git a/inc/lang/fr/draft.txt b/inc/lang/fr/draft.txt index fbc1609a8..a48554298 100644 --- a/inc/lang/fr/draft.txt +++ b/inc/lang/fr/draft.txt @@ -1,6 +1,6 @@ ====== Un fichier brouillon a été trouvé ====== -La dernière édition de cette page ne s'est pas terminée proprement. Dokuwiki a enregistré automatiquement un brouillon de votre travail que vous pouvez utiliser pour votre édition. Ci-dessous figurent les données enregistrées lors de votre dernière session. +La dernière modification de cette page ne s'est pas terminée proprement. Dokuwiki a enregistré automatiquement un brouillon de votre travail que vous pouvez utiliser pour votre modification. Ci-dessous figurent les données enregistrées lors de votre dernière session. -À vous de décider si vous souhaitez //récupérer// votre session d'édition passée, //supprimer// le brouillon enregistré automatiquement ou //annuler// le processus d'édition. +À vous de décider si vous souhaitez //récupérer// votre session de modification passée, //supprimer// le brouillon enregistré automatiquement ou //annuler// le processus d'édition. diff --git a/inc/lang/fr/edit.txt b/inc/lang/fr/edit.txt index 71b0a7c1b..e30f1b78b 100644 --- a/inc/lang/fr/edit.txt +++ b/inc/lang/fr/edit.txt @@ -1,2 +1,2 @@ -Modifiez cette page et cliquez sur ''Enregistrer''. Voyez le [[wiki:syntax|Guide de la mise en page]] pour une aide à propos du format. Veuillez ne modifier cette page que si vous pouvez l'**améliorer**. Si vous souhaitez faire des tests, faites vos premiers pas dans le [[playground:playground|bac à sable]]. +Modifiez cette page et cliquez sur « Enregistrer ». Voyez le [[:wiki:syntax|guide de la mise en page]] pour une aide à propos du formatage. Veuillez ne modifier cette page que si vous pouvez l'**améliorer**. Si vous souhaitez faire des tests, faites vos premiers pas dans le [[:playground:playground|bac à sable]]. diff --git a/inc/lang/fr/editrev.txt b/inc/lang/fr/editrev.txt index 1a7e0f434..d3fa36682 100644 --- a/inc/lang/fr/editrev.txt +++ b/inc/lang/fr/editrev.txt @@ -1,2 +1,2 @@ -**Vous affichez une ancienne révision du document !** Si vous l'enregistrez vous créerez une nouvelle version avec ce contenu. +**Vous affichez une ancienne révision du document !** Si vous l'enregistrez, vous créerez une nouvelle version avec ce contenu. ---- diff --git a/inc/lang/fr/install.html b/inc/lang/fr/install.html index a2c29d022..b057becfe 100644 --- a/inc/lang/fr/install.html +++ b/inc/lang/fr/install.html @@ -1,19 +1,13 @@

Cette page vous assiste dans la première installation et la configuration de DokuWiki. -Pour plus d'information sur cet installeur reportez vous à sa +Pour plus d'information sur cet installeur, reportez-vous à sa page de documentation.

-

DokuWiki utilise des fichiers ordinaires pour stocker les pages du +

DokuWiki utilise des fichiers textes ordinaires pour stocker les pages du wiki et les autres informations associées à ces pages -(tel que images, index de recherche, anciennes révisions, etc). Pour fonctionner correctement DokuWiki doit avoir accès en écriture aux différents répertoires qui contiennent ces fichiers. L'installeur n'est pas capable de modifier les permissions sur les répertoires. Ceci doit être effectué directement sur la ligne de commande de votre shell, ou, si vous êtes hébergé, via FTP ou votre panneau de contrôle (tel que cPanel).

+(tel que images, index de recherche, anciennes révisions, etc.). Pour fonctionner correctement, DokuWiki doit avoir accès en écriture aux différents répertoires qui contiennent ces fichiers. L'installeur n'est pas capable de modifier les permissions sur les répertoires. Ceci doit être effectué directement sur la ligne de commande de votre shell, ou, si vous êtes hébergé, via FTP ou votre panneau de contrôle (tel que cPanel).

-

Cet installeur va paramétrer votre configuration de DokuWiki pour des ACL, qui permettront l'accès à un login administrateur et l'accès au menu d'administration de DokuWiki pour l'ajout de modules externes, la gestion d'utilisateurs, la gestion de l'accès aux pages du wiki et les changements de paramètres de configuration. Il n'est pas nécessaire au fonctionnement de DokuWiki, néanmoins il facilite l'administration de DokuWiki.

+

Cet installeur va paramétrer votre configuration de DokuWiki pour des ACL, qui permettront l'accès à un identifiant administrateur et l'accès au menu d'administration de DokuWiki pour l'ajout de modules externes (greffons), la gestion d'utilisateurs, la gestion de l'accès aux pages du wiki et les modifications des paramètres de configuration. Il n'est pas nécessaire au fonctionnement de DokuWiki, néanmoins il facilite l'administration de DokuWiki.

-

Les utilisateurs expérimentés ou ceux -nécessitant des paramétrages particuliers devraient se -reporter aux liens suivants pour les détails concernant les instructions -d'installation et les paramètres de -configuration.

+

Les utilisateurs expérimentés ou ceux nécessitant des paramétrages particuliers devraient se reporter aux liens suivants pour les détails concernant les instructions d'installation et les paramètres de configuration.

diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 7e2173f42..be55388bf 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -19,6 +19,7 @@ * @author olivier duperray * @author Vincent Feltz * @author Philippe Bajoit + * @author Florian Gaub */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -26,8 +27,8 @@ $lang['doublequoteopening'] = '“'; $lang['doublequoteclosing'] = '”'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; -$lang['apostrophe'] = '\''; -$lang['btn_edit'] = 'Éditer cette page'; +$lang['apostrophe'] = '’'; +$lang['btn_edit'] = 'Modifier cette page'; $lang['btn_source'] = 'Afficher le texte source'; $lang['btn_show'] = 'Afficher la page'; $lang['btn_create'] = 'Créer cette page'; @@ -35,18 +36,18 @@ $lang['btn_search'] = 'Rechercher'; $lang['btn_save'] = 'Enregistrer'; $lang['btn_preview'] = 'Aperçu'; $lang['btn_top'] = 'Haut de page'; -$lang['btn_newer'] = '<< plus récent'; -$lang['btn_older'] = 'moins récent >>'; +$lang['btn_newer'] = '<< Plus récent'; +$lang['btn_older'] = 'Moins récent >>'; $lang['btn_revs'] = 'Anciennes révisions'; $lang['btn_recent'] = 'Derniers changements'; $lang['btn_upload'] = 'Envoyer'; $lang['btn_cancel'] = 'Annuler'; $lang['btn_index'] = 'Index'; -$lang['btn_secedit'] = 'Éditer'; +$lang['btn_secedit'] = 'Modifier'; $lang['btn_login'] = 'Connexion'; $lang['btn_logout'] = 'Déconnexion'; -$lang['btn_admin'] = 'Admin'; -$lang['btn_update'] = 'Rafraîchir'; +$lang['btn_admin'] = 'Administrer'; +$lang['btn_update'] = 'Mettre à jour'; $lang['btn_delete'] = 'Effacer'; $lang['btn_back'] = 'Retour'; $lang['btn_backlink'] = 'Liens vers cette page'; @@ -55,9 +56,9 @@ $lang['btn_subscribe'] = 'S\'abonner à la page'; $lang['btn_profile'] = 'Mettre à jour le profil'; $lang['btn_reset'] = 'Réinitialiser'; $lang['btn_resendpwd'] = 'Envoyer le mot de passe'; -$lang['btn_draft'] = 'Éditer brouillon'; -$lang['btn_recover'] = 'Récupérer brouillon'; -$lang['btn_draftdel'] = 'Effacer brouillon'; +$lang['btn_draft'] = 'Modifier le brouillon'; +$lang['btn_recover'] = 'Récupérer le brouillon'; +$lang['btn_draftdel'] = 'Effacer le brouillon'; $lang['btn_revert'] = 'Restaurer'; $lang['loggedinas'] = 'Connecté en tant que '; $lang['user'] = 'Utilisateur'; @@ -71,16 +72,16 @@ $lang['email'] = 'Adresse de courriel'; $lang['register'] = 'S\'enregistrer'; $lang['profile'] = 'Profil utilisateur'; $lang['badlogin'] = 'L\'utilisateur ou le mot de passe est incorrect.'; -$lang['minoredit'] = 'Mineur'; +$lang['minoredit'] = 'Modification mineure'; $lang['draftdate'] = 'Brouillon auto-enregistré le'; $lang['nosecedit'] = 'La page a changé entre temps, les informations de la section sont obsolètes ; la page complète a été chargée à la place.'; $lang['regmissing'] = 'Désolé, vous devez remplir tous les champs.'; -$lang['reguexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris'; +$lang['reguexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; $lang['regsuccess'] = 'L\'utilisateur a été créé. Le mot de passe a été expédié par courriel.'; $lang['regsuccess2'] = 'L\'utilisateur a été créé.'; $lang['regmailfail'] = 'Il semble y avoir un problème à l\'envoi du courriel. Contactez l\'administrateur.'; -$lang['regbadmail'] = 'L\'adresse de courriel semble incorrecte - si vous pensez que c\'est une erreur, contactez l\'administrateur.'; -$lang['regbadpass'] = 'Les deux mots de passe fournis sont différents, recommencez SVP.'; +$lang['regbadmail'] = 'L\'adresse de courriel semble incorrecte. Si vous pensez que c\'est une erreur, contactez l\'administrateur.'; +$lang['regbadpass'] = 'Les deux mots de passe fournis sont différents, veuillez recommencez.'; $lang['regpwmail'] = 'Votre mot de passe DokuWiki'; $lang['reghere'] = 'Vous n\'avez pas encore de compte ? Enregistrez-vous ici '; $lang['profna'] = 'Ce wiki ne permet pas de modifier les profils'; @@ -92,58 +93,79 @@ $lang['resendna'] = 'Ce wiki ne permet pas le renvoi de mot de pass $lang['resendpwd'] = 'Renvoyer le mot de passe de'; $lang['resendpwdmissing'] = 'Désolé, vous devez remplir tous les champs.'; $lang['resendpwdnouser'] = 'Désolé, cet utilisateur est introuvable dans notre base.'; -$lang['resendpwdbadauth'] = 'Désolé, ce code d\'authentification est invalide. Assurez vous d\'avoir utilisé le lien de confirmation.'; +$lang['resendpwdbadauth'] = 'Désolé, ce code d\'authentification est invalide. Assurez-vous d\'avoir utilisé le lien de confirmation.'; $lang['resendpwdconfirm'] = 'Un lien de confirmation vous a été envoyé par courriel.'; $lang['resendpwdsuccess'] = 'Votre nouveau mot de passe vous a été expédié par courriel.'; -$lang['license'] = 'Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:'; -$lang['licenseok'] = 'Note : En éditant cette page vous acceptez que le contenu soit placé sous les termes de la licence suivante :'; -$lang['searchmedia'] = 'Chercher le nom de fichier :'; +$lang['license'] = 'Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante :'; +$lang['licenseok'] = 'Note : En modifiant cette page, vous acceptez que le contenu soit placé sous les termes de la licence suivante :'; +$lang['searchmedia'] = 'Chercher le nom de fichier :'; $lang['searchmedia_in'] = 'Chercher dans %s'; $lang['txt_upload'] = 'Sélectionnez un fichier à envoyer '; -$lang['txt_filename'] = 'Donnez un "wikiname" (optionnel) '; +$lang['txt_filename'] = 'Donnez un « wikiname » (optionnel) '; $lang['txt_overwrt'] = 'Écraser le fichier cible'; $lang['lockedby'] = 'Actuellement bloqué par'; $lang['lockexpire'] = 'Le blocage expire à'; -$lang['willexpire'] = 'Votre blocage pour modifier cette page expire dans une minute.\nPour éviter les conflits, utiliser le bouton Aperçu pour réinitialiser le minuteur.'; -$lang['notsavedyet'] = 'Les changements non enregistrés seront perdus.\nVoulez-vous vraiment continuer ?'; +$lang['willexpire'] = 'Votre blocage pour modifier cette page expire dans une minute.\nPour éviter les conflits, utiliser le bouton « Aperçu » pour réinitialiser le minuteur.'; +$lang['notsavedyet'] = 'Les modifications non enregistrées seront perdues.\nVoulez-vous vraiment continuer ?'; $lang['rssfailed'] = 'Une erreur s\'est produite en récupérant ce flux : '; $lang['nothingfound'] = 'Pas de réponse.'; $lang['mediaselect'] = 'Sélection de fichier'; $lang['fileupload'] = 'Envoi de fichier'; -$lang['uploadsucc'] = 'Envoi réussi'; -$lang['uploadfail'] = 'L\'envoi n\'a pas réussi. Les permissions sont-elles correctes ?'; -$lang['uploadwrong'] = 'Envoi refusé. Cette extension de fichier est interdite !'; -$lang['uploadexist'] = 'Le fichier existe. Envoi avorté.'; +$lang['uploadsucc'] = 'Téléversement réussi'; +$lang['uploadfail'] = 'Le téléversement n\'a pas réussi. Les permissions sont-elles correctes ?'; +$lang['uploadwrong'] = 'Téléversement refusé. Cette extension de fichier est interdite !'; +$lang['uploadexist'] = 'Le fichier existe. Téléversement avorté.'; $lang['uploadbadcontent'] = 'Le contenu envoyé ne correspond pas à l\'extension du fichier %s.'; -$lang['uploadspam'] = 'L\'envoi a été bloqué par la liste noire antispam.'; -$lang['uploadxss'] = 'L\'envoi a été bloqué car son contenu est peut-être malveillant.'; -$lang['uploadsize'] = 'Le fichier envoyé était trop gros. (max. %s)'; -$lang['deletesucc'] = 'Le fichier "%s" a été effacé.'; -$lang['deletefail'] = 'Le fichier "%s" n\'a pu être effacé - vérifier les permissions.'; -$lang['mediainuse'] = 'Le fichier "%s" n\'a pas été effacé - il est en cours d\'utilisation.'; +$lang['uploadspam'] = 'Le téléversement a été bloqué par la liste noire antispam.'; +$lang['uploadxss'] = 'Le téléversement a été bloqué car son contenu est peut-être malveillant.'; +$lang['uploadsize'] = 'Le fichier téléversé était trop gros. (max. %s)'; +$lang['deletesucc'] = 'Le fichier « %s » a été effacé.'; +$lang['deletefail'] = 'Le fichier « %s » n\'a pu être effacé, vérifier les permissions.'; +$lang['mediainuse'] = 'Le fichier « %s » n\'a pas été effacé, il est en cours d\'utilisation.'; $lang['namespaces'] = 'Catégories'; $lang['mediafiles'] = 'Fichiers disponibles dans'; $lang['js']['searchmedia'] = 'Chercher des fichiers'; $lang['js']['keepopen'] = 'Gardez la fenêtre ouverte pendant la sélection'; $lang['js']['hidedetails'] = 'Masquer détails'; +$lang['js']['mediatitle'] = 'Paramètres de lien'; +$lang['js']['mediadisplay'] = 'Type de lien'; +$lang['js']['mediaalign'] = 'Alignement'; +$lang['js']['mediasize'] = 'Taille d\'image'; +$lang['js']['mediatarget'] = 'Cible du lien'; +$lang['js']['mediaclose'] = 'Fermer'; +$lang['js']['mediainsert'] = 'Insérer'; +$lang['js']['mediadisplayimg'] = 'Afficher l\'image.'; +$lang['js']['mediadisplaylnk'] = 'N\'afficher que le lien.'; +$lang['js']['mediasmall'] = 'Petite version'; +$lang['js']['mediamedium'] = 'Version moyenne'; +$lang['js']['medialarge'] = 'Grande version'; +$lang['js']['mediaoriginal'] = 'Version originale'; +$lang['js']['medialnk'] = 'Lien vers la page de détail'; +$lang['js']['mediadirect'] = 'Lien direct vers l\'original'; +$lang['js']['medianolnk'] = 'Aucun lien'; +$lang['js']['medianolink'] = 'Ne pas lier l\'image'; +$lang['js']['medialeft'] = 'Aligner l\'image sur la gauche.'; +$lang['js']['mediaright'] = 'Aligner l\'image sur la droite.'; +$lang['js']['mediacenter'] = 'Centrer l\'image'; +$lang['js']['medianoalign'] = 'Ne pas aligner.'; $lang['js']['nosmblinks'] = 'Les liens vers les partages Windows ne fonctionnent qu\'avec Microsoft Internet Explorer. -Vous pouvez toujours faire un copier/coller du lien.'; +Vous pouvez toujours copier puis coller le lien.'; $lang['js']['linkwiz'] = 'Assistant Lien'; -$lang['js']['linkto'] = 'Lien vers:'; +$lang['js']['linkto'] = 'Lien vers :'; $lang['js']['del_confirm'] = 'Effacer cette entrée ?'; $lang['js']['mu_btn'] = 'Envoyer plusieurs fichiers en même temps'; $lang['mediausage'] = 'Utilisez la syntaxe suivante pour faire référence à ce fichier :'; -$lang['mediaview'] = 'Voir fichier original'; -$lang['mediaroot'] = 'root'; -$lang['mediaupload'] = 'Envoyer un fichier dans la catégorie courante ici. Pour créer des sous-catégories, préfixez le nom du fichier par le nom de la sous-catégorie séparée par un double point.'; +$lang['mediaview'] = 'Afficher le fichier original'; +$lang['mediaroot'] = 'racine'; +$lang['mediaupload'] = 'Téléverser un fichier dans la catégorie actuelle. Pour créer des sous-catégories, préfixez le nom du fichier par le nom de la sous-catégorie séparée par un double-point.'; $lang['mediaextchange'] = 'Extension du fichier changée de .%s en .%s !'; $lang['reference'] = 'Références pour'; $lang['ref_inuse'] = 'Le fichier ne peut être effacé car il est utilisé par les pages suivantes :'; $lang['ref_hidden'] = 'Des références existent dans des pages que vous n\'avez pas la permission de lire'; -$lang['hits'] = 'occurrences trouvées'; +$lang['hits'] = 'Occurrences trouvées'; $lang['quickhits'] = 'Pages trouvées '; $lang['toc'] = 'Table des matières'; -$lang['current'] = 'version actuelle'; +$lang['current'] = 'Version actuelle'; $lang['yours'] = 'Votre version'; $lang['diff'] = 'Différences avec la version actuelle'; $lang['diff2'] = 'Différences entre les versions sélectionnées'; @@ -155,44 +177,43 @@ $lang['by'] = 'par'; $lang['deleted'] = 'effacée'; $lang['created'] = 'créée'; $lang['restored'] = 'ancienne révision restaurée'; -$lang['external_edit'] = 'édition externe'; +$lang['external_edit'] = 'modification externe'; $lang['summary'] = 'Résumé'; -$lang['noflash'] = 'L"extension Adobe Flash Plugin est nécessaire pour afficher ce contenu.'; +$lang['noflash'] = 'Le greffon Adobe Flash est nécessaire pour afficher ce contenu.'; $lang['download'] = 'Télécharger un extrait'; -$lang['table_edit_title'] = 'Tableau'; -$lang['mail_newpage'] = 'page ajoutée :'; -$lang['mail_changed'] = 'page changée :'; -$lang['mail_subscribe_list'] = 'pages modifiées dans l\'espace de nommage:'; -$lang['mail_new_user'] = 'nouvel utilisateur :'; -$lang['mail_upload'] = 'fichier envoyé :'; -$lang['qb_bold'] = 'Gras'; -$lang['qb_italic'] = 'Italique'; +$lang['mail_newpage'] = 'page ajoutée :'; +$lang['mail_changed'] = 'page modifiée :'; +$lang['mail_subscribe_list'] = 'pages modifiées dans la catégorie :'; +$lang['mail_new_user'] = 'nouvel utilisateur :'; +$lang['mail_upload'] = 'fichier envoyé :'; +$lang['qb_bold'] = 'Emphase forte (gras)'; +$lang['qb_italic'] = 'Emphase (italique)'; $lang['qb_underl'] = 'Souligné'; -$lang['qb_code'] = 'Code'; +$lang['qb_code'] = 'Code « machine à écrire »'; $lang['qb_strike'] = 'Texte barré'; -$lang['qb_h1'] = 'En-tête 1'; -$lang['qb_h2'] = 'En-tête 2'; -$lang['qb_h3'] = 'En-tête 3'; -$lang['qb_h4'] = 'En-tête 4'; -$lang['qb_h5'] = 'En-tête 5'; +$lang['qb_h1'] = 'Titre de niveau 1'; +$lang['qb_h2'] = 'Titre de niveau 2'; +$lang['qb_h3'] = 'Titre de niveau 3'; +$lang['qb_h4'] = 'Titre de niveau 4'; +$lang['qb_h5'] = 'Titre de niveau 5'; $lang['qb_h'] = 'Titre'; $lang['qb_hs'] = 'Sélectionner la ligne de titre'; -$lang['qb_hplus'] = 'Titre supérieur'; -$lang['qb_hminus'] = 'Titre inférieur'; +$lang['qb_hplus'] = 'Titre de niveau supérieur'; +$lang['qb_hminus'] = 'Titre de niveau inférieur'; $lang['qb_hequal'] = 'Titre de même niveau'; $lang['qb_link'] = 'Lien interne'; $lang['qb_extlink'] = 'Lien externe'; $lang['qb_hr'] = 'Ligne horizontale'; $lang['qb_ol'] = 'Liste numérotée'; $lang['qb_ul'] = 'Liste à puce'; -$lang['qb_media'] = 'Ajouter des images et autres fichiers'; +$lang['qb_media'] = 'Ajouter des images ou d\'autres fichiers'; $lang['qb_sig'] = 'Insérer une signature'; -$lang['qb_smileys'] = 'Émoticons'; +$lang['qb_smileys'] = 'Émoticones'; $lang['qb_chars'] = 'Caractères spéciaux'; $lang['upperns'] = 'Aller à la catégorie parente'; $lang['admin_register'] = 'Ajouter un nouvel utilisateur'; -$lang['metaedit'] = 'Éditer les métadonnées'; -$lang['metasaveerr'] = 'Erreur à l\'écriture des métadonnées'; +$lang['metaedit'] = 'Modifier les métadonnées'; +$lang['metasaveerr'] = 'Erreur lors de l\'écriture des métadonnées'; $lang['metasaveok'] = 'Métadonnées enregistrées'; $lang['img_backto'] = 'Retour à'; $lang['img_title'] = 'Titre'; @@ -204,40 +225,40 @@ $lang['img_artist'] = 'Auteur'; $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Appareil photo'; -$lang['img_keywords'] = 'Mots clef'; -$lang['subscr_subscribe_success'] = 'Ajouté %s à la liste de souscription de %s'; +$lang['img_keywords'] = 'Mots-clés'; +$lang['subscr_subscribe_success'] = '%s a été ajouté à la liste de souscription de %s'; $lang['subscr_subscribe_error'] = 'Erreur en ajoutant %s à la liste de souscription de %s'; -$lang['subscr_subscribe_noaddress'] = 'Il n\'y a pas d\'adresse associée à votre login, vous ne pouvez pas être ajouté à la liste de souscription'; -$lang['subscr_unsubscribe_success'] = 'Retiré %s de la liste de souscription de %s'; +$lang['subscr_subscribe_noaddress'] = 'Il n\'y a pas d\'adresse associée à votre identifiant, vous ne pouvez pas être ajouté à la liste de souscription'; +$lang['subscr_unsubscribe_success'] = '%s a été retiré de la liste de souscription de %s'; $lang['subscr_unsubscribe_error'] = 'Erreur en retirant %s de la liste de souscription de %s'; $lang['subscr_already_subscribed'] = '%s est déjà souscrit à %s'; $lang['subscr_not_subscribed'] = '%s n\'est pas souscrit à %s'; -$lang['subscr_m_not_subscribed'] = 'Vous n\'avez pas souscrit pour l\'instant à la page courante ou l\'espace de nommage'; +$lang['subscr_m_not_subscribed'] = 'Vous n\'avez pas souscrit pour l\'instant à la page actuelle ou la catégorie'; $lang['subscr_m_new_header'] = 'Ajouter une souscription'; $lang['subscr_m_current_header'] = 'Souscriptions actives'; $lang['subscr_m_unsubscribe'] = 'Annuler la souscription'; $lang['subscr_m_subscribe'] = 'Souscrire'; $lang['subscr_m_receive'] = 'Recevoir'; -$lang['subscr_style_every'] = 'Envoyer un email à chaque changement'; -$lang['subscr_style_digest'] = 'Email résumé des changements de chaque page'; -$lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier email'; +$lang['subscr_style_every'] = 'Envoyer un courriel à chaque modification'; +$lang['subscr_style_digest'] = 'Courriel résumant les modifications de chaque page'; +$lang['subscr_style_list'] = 'Liste des pages modifiées depuis le dernier courriel'; $lang['authmodfailed'] = 'Mauvais paramétrage de l\'authentification. Merci d\'informer l\'administrateur du Wiki.'; $lang['authtempfail'] = 'L\'authentification est temporairement indisponible. Si cela perdure, merci d\'informer l\'administrateur du Wiki.'; $lang['i_chooselang'] = 'Choisissez votre langue'; $lang['i_installer'] = 'Installeur DokuWiki'; -$lang['i_wikiname'] = 'Nom du Wiki'; +$lang['i_wikiname'] = 'Nom du wiki'; $lang['i_enableacl'] = 'Activer les ACL (recommandé)'; $lang['i_superuser'] = 'Super-utilisateur'; $lang['i_problems'] = 'L\'installeur a détecté les problèmes indiqués ci-dessous. Vous ne pouvez poursuivre tant qu\'ils n\'auront pas été corrigés.'; $lang['i_modified'] = 'Pour des raisons de sécurité ce script ne fonctionne qu\'avec une installation neuve et non modifiée de DokuWiki. Vous devriez ré-extraire les fichiers depuis le paquet téléchargé ou consulter les instructions d\'installation de DokuWiki'; $lang['i_funcna'] = 'La fonction PHP %s n\'est pas disponible. Peut-être que votre hébergeur l\'a désactivée ?'; -$lang['i_phpver'] = 'Votre version de PHP (%s) est antérieure à la version requise (%s. Vous devez mettre à jour votre installation de PHP.'; +$lang['i_phpver'] = 'Votre version de PHP (%s) est antérieure à la version requise (%s). Vous devez mettre à jour votre installation de PHP.'; $lang['i_permfail'] = '%s n\'est pas accessible en écriture pour DokuWiki. Vous devez corriger les permissions de ce répertoire !'; $lang['i_confexists'] = '%s existe déjà'; $lang['i_writeerr'] = 'Impossible de créer %s. Vous devez vérifier les permissions des répertoires/fichiers et créer le fichier manuellement.'; $lang['i_badhash'] = 'dokuwiki.php non reconnu ou modifié (hash=%s)'; -$lang['i_badval'] = '%s - valeur illégale ou vide'; -$lang['i_success'] = 'L\'installation s\'est terminée avec succès. Vous pouvez maintenant supprimer le fichier install.php. Continuer avec votre nouveau DokuWiki.'; +$lang['i_badval'] = '%s - valeur interdite ou vide'; +$lang['i_success'] = 'L\'installation s\'est terminée avec succès. Vous pouvez maintenant supprimer le fichier « install.php ». Continuer avec votre nouveau DokuWiki.'; $lang['i_failure'] = 'Des erreurs sont survenues lors de l\'écriture des fichiers de configuration. Il vous faudra les corriger manuellement avant de pouvoir utiliser votre nouveau DokuWiki.'; $lang['i_policy'] = 'Politique d\'ACL initiale'; $lang['i_pol0'] = 'Wiki ouvert (lecture, écriture, envoi de fichiers pour tout le monde)'; @@ -259,7 +280,7 @@ $lang['mu_progress'] = '@PCT@% envoyé'; $lang['mu_filetypes'] = 'Types de fichiers acceptés'; $lang['mu_info'] = 'fichiers envoyés.'; $lang['mu_lasterr'] = 'Dernière erreur : '; -$lang['recent_global'] = 'Vous êtes actuellement en train de regarder les modifications au sein du namespace %s. Vous pouvez aussi voir les récentes modifications sur tout le wiki.'; +$lang['recent_global'] = 'Vous êtes actuellement en train de regarder les modifications au sein de la catégorie %s. Vous pouvez aussi voir les récentes modifications sur tout le wiki.'; $lang['years'] = 'il y a %d ans'; $lang['months'] = 'il y a %d mois'; $lang['weeks'] = 'il y a %d semaines'; diff --git a/inc/lang/fr/locked.txt b/inc/lang/fr/locked.txt index ac8eb4c4b..82cdd7373 100644 --- a/inc/lang/fr/locked.txt +++ b/inc/lang/fr/locked.txt @@ -1,3 +1,3 @@ ====== Page bloquée ====== -Cette page est actuellement bloquée pour édition par un autre utilisateur. Vous devez attendre que l'autre utilisateur ait terminé ou que le blocage de la page expire. +Cette page est actuellement bloquée pour modification par un autre utilisateur. Vous devez attendre que l'autre utilisateur ait terminé ou que le blocage de la page expire. diff --git a/inc/lang/fr/mailtext.txt b/inc/lang/fr/mailtext.txt index 0b87616b1..add3b2779 100644 --- a/inc/lang/fr/mailtext.txt +++ b/inc/lang/fr/mailtext.txt @@ -1,4 +1,4 @@ -Une page dans votre Wiki a été ajoutée ou modifiée. Voici les +Une page dans votre wiki a été ajoutée ou modifiée. Voici les détails : Date : @DATE@ @@ -7,6 +7,7 @@ Adresse IP : @IPADDRESS@ Nom d'hôte : @HOSTNAME@ Ancienne révision : @OLDPAGE@ Nouvelle révision : @NEWPAGE@ +Différences : @OLDPAGE@&do=diff Résumé : @SUMMARY@ Utilisateur : @USER@ @@ -14,5 +15,5 @@ Utilisateur : @USER@ -- -Ce message a été généré par DokuWiki +Ce courriel a été généré par DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/fr/newpage.txt b/inc/lang/fr/newpage.txt index 3d834ffd0..0ed2b25af 100644 --- a/inc/lang/fr/newpage.txt +++ b/inc/lang/fr/newpage.txt @@ -1,4 +1,4 @@ ====== Cette page n'existe pas encore ====== -Vous avez suivi un lien vers une page qui n'existe pas encore. Si vos droits sont suffisants, vous pouvez utiliser le bouton ''Créer cette page''. +Vous avez suivi un lien vers une page qui n'existe pas encore. Si vos droits sont suffisants, vous pouvez utiliser le bouton ou le lien « Créer cette page ». diff --git a/inc/lang/fr/norev.txt b/inc/lang/fr/norev.txt index 65984ef9c..3f96b6aff 100644 --- a/inc/lang/fr/norev.txt +++ b/inc/lang/fr/norev.txt @@ -1,4 +1,4 @@ ====== Révision non trouvée ====== -La révision demandée n'existe pas. Utilisez le bouton 'Anciennes révisions' pour une liste des révisions de ce document. +La révision demandée n'existe pas. Utilisez le bouton ou le lien « Anciennes révisions » pour une liste des révisions de ce document. diff --git a/inc/lang/fr/password.txt b/inc/lang/fr/password.txt index 6c4f5309f..f4500fc85 100644 --- a/inc/lang/fr/password.txt +++ b/inc/lang/fr/password.txt @@ -6,5 +6,5 @@ Utilisateur : @LOGIN@ Mot de passe : @PASSWORD@ -- -Ce mail a été envoyé par DokuWiki de +Ce courriel a été envoyé par DokuWiki de @DOKUWIKIURL@ diff --git a/inc/lang/fr/pwconfirm.txt b/inc/lang/fr/pwconfirm.txt index 432b5f102..af84833df 100644 --- a/inc/lang/fr/pwconfirm.txt +++ b/inc/lang/fr/pwconfirm.txt @@ -1,6 +1,6 @@ Bonjour @FULLNAME@ ! -Quelqu'un a demandé un nouveau mot de passe pour votre login +Quelqu'un a demandé un nouveau mot de passe pour votre identifiant @TITLE@ sur @DOKUWIKIURL@ Si vous n'êtes pas à l'origine de cette requête d'un nouveau mot de @@ -11,5 +11,5 @@ Pour confirmer que cette requête émane bien de vous, merci de suivre le lien c @CONFIRM@ -- -Ce message a été généré par DokuWiki +Ce courriel a été généré par DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/fr/registermail.txt b/inc/lang/fr/registermail.txt index 960aedf2d..1beae8522 100644 --- a/inc/lang/fr/registermail.txt +++ b/inc/lang/fr/registermail.txt @@ -10,5 +10,5 @@ Adresse IP : @IPADDRESS@ Nom d'hôte : @HOSTNAME@ -- -Ce message a été généré par DokuWiki +Ce courriel a été généré par DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/fr/resendpwd.txt b/inc/lang/fr/resendpwd.txt index 2cfbed617..44fbeef03 100644 --- a/inc/lang/fr/resendpwd.txt +++ b/inc/lang/fr/resendpwd.txt @@ -1,4 +1,4 @@ ====== Envoyer un nouveau mot de passe ====== -Veuillez compléter les champs ci dessous pour obtenir un nouveau mot de passe pour votre compte dans ce wiki. Un lien de confirmation vous sera envoyé à l'adresse de courriel utilisée lors de votre enregistrement. +Veuillez compléter les champs ci-dessous pour obtenir un nouveau mot de passe pour votre compte dans ce wiki. Un lien de confirmation vous sera envoyé à l'adresse de courriel utilisée lors de votre enregistrement. diff --git a/inc/lang/fr/revisions.txt b/inc/lang/fr/revisions.txt index c9149ef9b..29c17137f 100644 --- a/inc/lang/fr/revisions.txt +++ b/inc/lang/fr/revisions.txt @@ -1,4 +1,4 @@ ====== Anciennes révisions ====== -Voici les anciennes révisions de la page en cours. Pour revenir à une ancienne révision, sélectionnez-la ci-dessous, cliquez sur le bouton ''Éditer cette page'' et enregistrez-la. +Voici les anciennes révisions de la page en cours. Pour revenir à une ancienne révision, sélectionnez-la ci-dessous, cliquez sur le bouton « Modifier cette page » et enregistrez-la. diff --git a/inc/lang/fr/searchpage.txt b/inc/lang/fr/searchpage.txt index 8355a2f9d..a9bd91608 100644 --- a/inc/lang/fr/searchpage.txt +++ b/inc/lang/fr/searchpage.txt @@ -1,5 +1,5 @@ ====== Recherche ====== -Voici les résultats de votre recherche. Si vous n'avez pas trouvé ce que vous cherchiez, vous pouvez créer ou éditer la page correspondante à votre requête en cliquant sur le bouton approprié. +Voici les résultats de votre recherche. Si vous n'avez pas trouvé ce que vous cherchiez, vous pouvez créer ou modifier la page correspondante à votre requête en cliquant sur le bouton approprié. ===== Résultats ===== diff --git a/inc/lang/fr/subscr_digest.txt b/inc/lang/fr/subscr_digest.txt new file mode 100644 index 000000000..1803407fa --- /dev/null +++ b/inc/lang/fr/subscr_digest.txt @@ -0,0 +1,19 @@ +Bonjour, + +La page « @PAGE@ » dans le wiki « @TITLE@ » a été modifiée. Voici ces modifications : + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Révision précédente : @OLDPAGE@ +Nouvelle révision : @NEWPAGE@ + +Pour annuler les notifications de page, connectez-vous au wiki à l'adresse +@DOKUWIKIURL@ puis visitez +@SUBSCRIBE@ +et désabonnez-vous de la page ou de la catégorie. + +-- +Ce courriel a été généré par Dokuwiki : +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/fr/subscr_form.txt b/inc/lang/fr/subscr_form.txt new file mode 100644 index 000000000..528f77475 --- /dev/null +++ b/inc/lang/fr/subscr_form.txt @@ -0,0 +1,3 @@ +====== Gestion de l'abonnement ====== + +Cette page vous permet de gérer vos abonnements à la page ou à la catégorie courantes \ No newline at end of file diff --git a/inc/lang/fr/subscr_list.txt b/inc/lang/fr/subscr_list.txt new file mode 100644 index 000000000..3387b11ee --- /dev/null +++ b/inc/lang/fr/subscr_list.txt @@ -0,0 +1,16 @@ +Bonjour, + +Des pages dans la catégorie « @PAGE@ » du wiki « @TITLE@ » ont été modifiées. Voici ces modifications : + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Pour annuler les notifications de page, connectez-vous au wiki à l'adresse +@DOKUWIKIURL@ puis visitez +@SUBSCRIBE@ +et désabonnez-vous de la page ou de la catégorie. + +-- +Ce courriel a été généré par Dokuwiki : +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/fr/subscr_single.txt b/inc/lang/fr/subscr_single.txt new file mode 100644 index 000000000..1b9d5e1b5 --- /dev/null +++ b/inc/lang/fr/subscr_single.txt @@ -0,0 +1,22 @@ +Bonjour, + +La page « @PAGE@ » dans le wiki « @TITLE@ » a été modifiée. Voici ces modifications : + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Date : @DATE@ +Utilisateur : @USER@ +Résumé : @SUMMARY@ +Révision précédente : @OLDPAGE@ +Nouvelle révision : @NEWPAGE@ + +Pour annuler les notifications de page, connectez-vous au wiki à l'adresse +@DOKUWIKIURL@ puis visitez +@SUBSCRIBE@ +et désabonnez-vous de la page ou de la catégorie. + +-- +Ce courriel a été généré par Dokuwiki : +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/fr/uploadmail.txt b/inc/lang/fr/uploadmail.txt index 3a186b554..05b3205d7 100644 --- a/inc/lang/fr/uploadmail.txt +++ b/inc/lang/fr/uploadmail.txt @@ -1,4 +1,4 @@ -Un fichier a été envoyé dans votre DokuWiki. En voici les détails : +Un fichier a été téléversé dans votre wiki. En voici les détails : Fichier : @MEDIA@ Date : @DATE@ diff --git a/inc/lang/fr/wordblock.txt b/inc/lang/fr/wordblock.txt index ae5962a80..608ad00d7 100644 --- a/inc/lang/fr/wordblock.txt +++ b/inc/lang/fr/wordblock.txt @@ -1,4 +1,4 @@ -====== Changement bloqué ====== +====== Modification bloquée ====== -Vos changements n'ont **pas été enregistrés** car ils contiennent un ou plusieurs mots bloqués. Si vous avez essayé de spammer le Wiki -- mauvaise idée ! Si vous pensez que c'est une erreur, contactez l'administrateur de ce Wiki. +Vos modifications n'ont **pas été enregistrées** car elles contiennent un ou plusieurs mots bloqués. Si vous avez essayé de spammer le Wiki, c'est une mauvaise idée ! Si vous pensez que c'est une erreur, contactez l'administrateur de ce Wiki. -- cgit v1.2.3 From f956446c400fe0ad6988d0df16adac73c42b1ba3 Mon Sep 17 00:00:00 2001 From: Matteo Carnevali Date: Mon, 8 Mar 2010 18:31:44 +0100 Subject: Italian language update --- inc/lang/it/lang.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'inc') diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 8bdaddb7e..1184083d1 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -12,6 +12,7 @@ * @author Lorenzo Breda * @author snarchio@alice.it * @author robocap + * @author Matteo Carnevali */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -119,6 +120,27 @@ $lang['mediafiles'] = 'File disponibili in'; $lang['js']['searchmedia'] = 'Cerca file'; $lang['js']['keepopen'] = 'Tieni la finestra aperta durante la selezione'; $lang['js']['hidedetails'] = 'Nascondi Dettagli'; +$lang['js']['mediatitle'] = 'Impostazioni link'; +$lang['js']['mediadisplay'] = 'Tipo link'; +$lang['js']['mediaalign'] = 'Allineamento'; +$lang['js']['mediasize'] = 'Dimensioni immagine'; +$lang['js']['mediatarget'] = 'Target del link'; +$lang['js']['mediaclose'] = 'Chiudi'; +$lang['js']['mediainsert'] = 'Inserisci'; +$lang['js']['mediadisplayimg'] = 'Mostra l\'immagine.'; +$lang['js']['mediadisplaylnk'] = 'Mostra solo il link.'; +$lang['js']['mediasmall'] = 'Versione piccola'; +$lang['js']['mediamedium'] = 'Versione media'; +$lang['js']['medialarge'] = 'Versione grande'; +$lang['js']['mediaoriginal'] = 'Versione originale'; +$lang['js']['medialnk'] = 'Link alla pagina dei dettagli'; +$lang['js']['mediadirect'] = 'Link all\'originale'; +$lang['js']['medianolnk'] = 'No link'; +$lang['js']['medianolink'] = 'Non linkare l\'immagine.'; +$lang['js']['medialeft'] = 'Allinea l\'immagine a sinistra.'; +$lang['js']['mediaright'] = 'Allinea l\'immagine a destra.'; +$lang['js']['mediacenter'] = 'Allinea l\'immagine al centro.'; +$lang['js']['medianoalign'] = 'Non allineare.'; $lang['js']['nosmblinks'] = 'I collegamenti con le risorse condivise di Windows funzionano solo con Microsoft Internet Explorer. Puoi fare un copia/incolla di questo collegamento.'; $lang['js']['linkwiz'] = 'Collegamento guidato'; -- cgit v1.2.3 From 90a0f2e151531db5b76c3d1c340f70da35922456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Med=C3=BAlio?= Date: Mon, 8 Mar 2010 18:32:50 +0100 Subject: Galician language update --- inc/lang/gl/admin.txt | 2 +- inc/lang/gl/adminplugins.txt | 2 +- inc/lang/gl/backlinks.txt | 2 +- inc/lang/gl/conflict.txt | 4 +- inc/lang/gl/denied.txt | 4 +- inc/lang/gl/diff.txt | 2 +- inc/lang/gl/draft.txt | 6 +- inc/lang/gl/edit.txt | 2 +- inc/lang/gl/editrev.txt | 2 +- inc/lang/gl/install.html | 34 +- inc/lang/gl/lang.php | 308 +++++++++-------- inc/lang/gl/locked.txt | 2 +- inc/lang/gl/login.txt | 4 +- inc/lang/gl/mailtext.txt | 12 +- inc/lang/gl/newpage.txt | 2 +- inc/lang/gl/norev.txt | 4 +- inc/lang/gl/password.txt | 8 +- inc/lang/gl/preview.txt | 2 +- inc/lang/gl/pwconfirm.txt | 12 +- inc/lang/gl/read.txt | 2 +- inc/lang/gl/recent.txt | 4 +- inc/lang/gl/register.txt | 4 +- inc/lang/gl/registermail.txt | 18 +- inc/lang/gl/resendpwd.txt | 4 +- inc/lang/gl/revisions.txt | 4 +- inc/lang/gl/searchpage.txt | 4 +- inc/lang/gl/stopwords.txt | 752 +++++++++++++++++++++++++++++++++--------- inc/lang/gl/updateprofile.txt | 4 +- inc/lang/gl/uploadmail.txt | 22 +- inc/lang/gl/wordblock.txt | 4 +- 30 files changed, 836 insertions(+), 400 deletions(-) (limited to 'inc') diff --git a/inc/lang/gl/admin.txt b/inc/lang/gl/admin.txt index a5bb1753d..eeaed992a 100644 --- a/inc/lang/gl/admin.txt +++ b/inc/lang/gl/admin.txt @@ -1,4 +1,4 @@ ====== Administración ====== -A continuación pode encontrar unha lista de tarefas administrativas dispoñíbeis no DokuWiki. +De seguido podes atopar unha lista de tarefas administrativas dispoñíbeis no DokuWiki. diff --git a/inc/lang/gl/adminplugins.txt b/inc/lang/gl/adminplugins.txt index e791265e6..e52172ebc 100644 --- a/inc/lang/gl/adminplugins.txt +++ b/inc/lang/gl/adminplugins.txt @@ -1 +1 @@ -===== Plugins adicionais ===== \ No newline at end of file +===== Extensións adicionais ===== \ No newline at end of file diff --git a/inc/lang/gl/backlinks.txt b/inc/lang/gl/backlinks.txt index 90066d032..f77b74bbd 100644 --- a/inc/lang/gl/backlinks.txt +++ b/inc/lang/gl/backlinks.txt @@ -1,4 +1,4 @@ ====== Ligazóns entrantes ====== -Isto é unha listaxe de páxinas que parecen estar vinculadas á páxina actual. +Isto é unha listaxe de páxinas que semellan ligar coa páxina actual. diff --git a/inc/lang/gl/conflict.txt b/inc/lang/gl/conflict.txt index e63e5b216..dcd87c7a5 100644 --- a/inc/lang/gl/conflict.txt +++ b/inc/lang/gl/conflict.txt @@ -1,6 +1,6 @@ ====== Hai unha versión máis nova ====== -Hai unha versión máis nova do documento que editou. Isto sucede cando outra persoa usuaria alterou o documento mentres vostede o estaba a editar. +Hai unha versión máis nova do documento que editaches. Isto sucede cando outro usuario mudou o documento mentres ti estabas a editalo. -Examine as diferenzas que se mostran abaixo detalladamente e despois decida a versión que quere manter. Se selecciona ''Gardar'', gardarase a súa versión. Prema en ''Cancelar'' para manter a versión actual. +Examina as diferenzas amosadas embaixo polo miúdo, e logo decide que versión queres manter. Se escolleres ''Gardar'', gardarase a túa versión. Preme en ''Cancelar'' para manteres a versión actual. diff --git a/inc/lang/gl/denied.txt b/inc/lang/gl/denied.txt index 8d388a8bb..69408a4f3 100644 --- a/inc/lang/gl/denied.txt +++ b/inc/lang/gl/denied.txt @@ -1,4 +1,4 @@ -====== Permiso denegado ====== +====== Permiso Denegado ====== -Sentímolo, mais non ten os permisos suficientes para continuar. É posíbel que esquecese iniciar unha sesión. +Sentímolo, mais non tes permisos de abondo para continuares. Pode que esqueceses iniciar a sesión? diff --git a/inc/lang/gl/diff.txt b/inc/lang/gl/diff.txt index 5660e4025..df87707f0 100644 --- a/inc/lang/gl/diff.txt +++ b/inc/lang/gl/diff.txt @@ -1,4 +1,4 @@ ====== Diferenzas ====== -Isto mostra as diferenzas entre a revisión seleccionada e a versión actual da páxina. +Isto amosa as diferenzas entre a revisión seleccionada e a versión actual da páxina. diff --git a/inc/lang/gl/draft.txt b/inc/lang/gl/draft.txt index 8e2aa19f2..ac36dc01a 100644 --- a/inc/lang/gl/draft.txt +++ b/inc/lang/gl/draft.txt @@ -1,6 +1,6 @@ -====== Encontrouse un ficheiro de borrador ====== +====== Arquivo de rascuño atopado ====== -A súa última sesión de edición desta páxina non terminou de modo correcto. O DokuWiki gardou automaticamente un borrador durante o seu traballo que agora pode usar para continuar coa edición. A continuación pode ver os datos que foron gardados durante a súa última sesión. +A túa última sesión de edición desta páxina non foi completada de xeito correcto. O DokuWiki gravou automaticamente un rascuño durante o teu traballo que agora podes usar para continuares coa edición. De seguido podes ver os datos que foron gardados da túa última sesión. -Por favor, escolla entre se se quere //Recuperar// a súa sesión de edición perdida, //Eliminar// o borrador gardado automaticamente ou //Cancelar// o proceso de edición. +Por favor, escolle se queres //Recuperar// a túa sesión de edición perdida, //Eliminar// o borrador autogardado ou //Cancelar// o proceso de edición. diff --git a/inc/lang/gl/edit.txt b/inc/lang/gl/edit.txt index 9e2061b51..1cc124300 100644 --- a/inc/lang/gl/edit.txt +++ b/inc/lang/gl/edit.txt @@ -1,2 +1,2 @@ -Edite a páxina e prema en ''Gardar''. Vexa a páxina [[wiki:syntax|sintaxe]] para aprender a sintaxe da Wiki. Edite a páxina só se pode **mellorala**. Se quere facer probas, aprenda como efectuar os seus primeiros pasos no [[playground:playground|campo de xogo]]. +Edita a páxina e preme en ''Gardar''. Bótalle un ollo á [[wiki:syntax|sintaxe]] para veres a sintaxe do Wiki. Por favor, edita a páxina só se podes **mellorala**. Se quixeres facer probas, aprende como levar a cabo os teus primeiros pasos na [[playground:playground|eira]]. diff --git a/inc/lang/gl/editrev.txt b/inc/lang/gl/editrev.txt index c582fc3d0..d6a0490a3 100644 --- a/inc/lang/gl/editrev.txt +++ b/inc/lang/gl/editrev.txt @@ -1,2 +1,2 @@ -**Cargou unha revisión antiga do documento!** Se o garda, creará unha versión nova con eses datos. +**Cargaches unha revisión antiga do documento!** Se o gardares, crearás unha nova versión con estes datos. ---- diff --git a/inc/lang/gl/install.html b/inc/lang/gl/install.html index 017abad8f..ca26f7961 100644 --- a/inc/lang/gl/install.html +++ b/inc/lang/gl/install.html @@ -1,25 +1,25 @@ -

Esta páxina é unha axuda para a primeira instalación e configuración do -Dokuwiki. Se quere máis información -sobre este instalador, está dispoñíbel na súa propia +

Esta páxina é unha axuda na primeira vez que se instala e configura o +Dokuwiki. Se queres máis información +verbo deste instalador está dispoñible na súa propia páxina de documentación.

-

O DokuWiki usa ficheiros normais para o almacenamento das páxinas do wiki -e outra información asociada ás mesmas (por ex. imaxes, índices de procura, -revisións antigas etc.). Por iso, para poder operar correctamente, o DokuWiki -precisa ter acceso de escritura nos directorios que conteñen -eses ficheiros. Este instalador non é quen de configurar os permisos dos directorios. -Isto debe facerse normalmente de xeito directo na liña de comandos ou, se está a -usar unha hospedaxe, a través do FTP ou do panel de control da súa hospedaxe (por ex. +

O DokuWiki emprega arquivos normais para a almacenaxe das páxinas do wiki +e outra información asociada coas mesmas (p.e. imaxes, índices de procura, +revisións antigas, etc). Por iso, para poder operar correctamente, o DokuWiki +precisa ter acceso de escritura aos directorios que conteñen +eses arquivos. Este instalador non é quen de configurar os permisos dos directorios. +Isto debe facerse normalmente de xeito directo na liña de comandos ou, se estás a +usar unha hospedaxe, a través do FTP ou do panel de control da túa hospedaxe (p.e. o cPanel).

-

Este instalador configurará o seu DokuWiki para o uso da -ACL, o cal lle permitirá á persoa administradora -iniciar unha sesión e acceder ao menú de administración do DokuWiki para instalar plugins, -xestionar as persoas usuarias e os accesos ás páxinas do wiki; ademais de modificar a configuración. -Non é imprescindíbel para o funcionamento do DokuWiki, mais fai moito máis doada a +

Este instalador configurará o teu DokuWiki para o uso da +ACL, o cal permitirá ao administrador +iniciar sesión e acceder ao menú de administración do DokuWiki para instalar extensións, +xestionar usuarios e accesos ás páxinas do wiki, ademais de modificar a configuración. +Non é imprescindíbel para o funcionamento do DokuWiki, porén, fai moito máis doada a administración do mesmo.

-

As persoas usuarias expertas ou con requisitos especiais de configuración poden visitar -as seguintes ligazóns para obter os pormenores relativos ás +

Os usuarios expertos ou con requisitos especiais de configuración poden visitar +as seguintes ligazóns para obter pormenores relativos ás instruccións de instalación e á configuración.

diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index 2f34a02a0..c6ac4071e 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -3,9 +3,7 @@ * galician language file * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * @author CiberIrmandade da Fala - * @author Tagen Ata - * @author Leandro Regueiro + * @author Medúlio */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -15,8 +13,8 @@ $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '’'; $lang['btn_edit'] = 'Editar esta páxina'; -$lang['btn_source'] = 'Mostrar o código da páxina'; -$lang['btn_show'] = 'Mostrar a páxina'; +$lang['btn_source'] = 'Amosar a fonte da páxina'; +$lang['btn_show'] = 'Amosar páxina'; $lang['btn_create'] = 'Crear esta páxina'; $lang['btn_search'] = 'Procurar'; $lang['btn_save'] = 'Gardar'; @@ -25,215 +23,207 @@ $lang['btn_top'] = 'Comezo da páxina'; $lang['btn_newer'] = '<< máis recente'; $lang['btn_older'] = 'menos recente >>'; $lang['btn_revs'] = 'Revisións antigas'; -$lang['btn_recent'] = 'Cambios recentes'; +$lang['btn_recent'] = 'Trocos recentes'; $lang['btn_upload'] = 'Subir'; $lang['btn_cancel'] = 'Cancelar'; $lang['btn_index'] = 'Índice'; $lang['btn_secedit'] = 'Editar'; -$lang['btn_login'] = 'Iniciar unha sesión'; -$lang['btn_logout'] = 'Terminar a sesión'; +$lang['btn_login'] = 'Iniciar sesión'; +$lang['btn_logout'] = 'Rematar sesión'; $lang['btn_admin'] = 'Administración'; $lang['btn_update'] = 'Actualizar'; $lang['btn_delete'] = 'Borrar'; $lang['btn_back'] = 'Atrás'; -$lang['btn_backlink'] = 'Ligazón entrante'; -$lang['btn_backtomedia'] = 'Volver á Selección de Ficheiros multimedia'; -$lang['btn_subscribe'] = 'Avisar dos cambios na páxina'; -$lang['btn_unsubscribe'] = 'Non avisar dos cambios na páxina'; -$lang['btn_subscribens'] = 'Avísar dos cambios nos Nomes de espazo'; -$lang['btn_unsubscribens'] = 'Non avisar dos cambios nos Nomes de espazo'; -$lang['btn_profile'] = 'Actualizar o perfil'; +$lang['btn_backlink'] = 'Ligazóns con isto'; +$lang['btn_backtomedia'] = 'Volver á Selección de Arquivos-Media'; +$lang['btn_subscribe'] = 'Avísame dos trocos na páxina'; +$lang['btn_profile'] = 'Actualizar Perfil'; $lang['btn_reset'] = 'Reiniciar'; -$lang['btn_resendpwd'] = 'Enviar un contrasinal novo'; -$lang['btn_draft'] = 'Editar o borrador'; -$lang['btn_recover'] = 'Recuperar o borrador'; -$lang['btn_draftdel'] = 'Eliminar o borrador'; +$lang['btn_resendpwd'] = 'Envíame un novo contrasinal'; +$lang['btn_draft'] = 'Editar borrador'; +$lang['btn_recover'] = 'Recuperar borrador'; +$lang['btn_draftdel'] = 'Eliminar borrador'; $lang['btn_revert'] = 'Restaurar'; -$lang['loggedinas'] = 'Iniciou unha sesión como'; -$lang['user'] = 'Nome de persoa usuaria'; +$lang['loggedinas'] = 'Iniciaches sesión como'; +$lang['user'] = 'Nome de Usuario'; $lang['pass'] = 'Contrasinal'; -$lang['newpass'] = 'Contrasinal novo'; -$lang['oldpass'] = 'Confirmar o contrasinal actual'; +$lang['newpass'] = 'Novo Contrasinal'; +$lang['oldpass'] = 'Confirmar contrasinal actual'; $lang['passchk'] = 'de novo'; $lang['remember'] = 'Lémbrame'; -$lang['fullname'] = 'Nome completo'; -$lang['email'] = 'Correo'; +$lang['fullname'] = 'Nome Completo'; +$lang['email'] = 'Correo-e'; $lang['register'] = 'Rexístrate'; -$lang['profile'] = 'Perfil de persoa usuaria'; -$lang['badlogin'] = 'Sentímolo, mais o nome de persoa usuaria ou o contrasinal non son correctos.'; -$lang['minoredit'] = 'Cambios menores'; -$lang['draftdate'] = 'O borrador gardouse automaticamente en'; -$lang['nosecedit'] = 'A páxina cambiou, no entanto, a información da sección estaba desactualizada, polo que se cargou a páxina completa en seu lugar.'; -$lang['regmissing'] = 'Sentímolo, mais ten que encher todos os campos.'; -$lang['reguexists'] = 'Sentímolo, mais xa existe unha persoa usuaria con ese nome.'; -$lang['regsuccess'] = 'A persoa usuaria foi creada e o contrasinal enviado por correo electrónico.'; -$lang['regsuccess2'] = 'A persoa usuaria foi creada.'; -$lang['regmailfail'] = 'Semella que houbo un erro ao tentar enviar o correo co contrasinal. Contacte coa persoa administradora!'; -$lang['regbadmail'] = 'O enderezo de correo proporcionado semella incorrecto - se considera que isto é un erro, contacte coa persoa administradora'; -$lang['regbadpass'] = 'Os dous contrasinais introducidos non coinciden: Ténteo de novo.'; -$lang['regpwmail'] = 'O seu contrasinal do DokuWiki'; -$lang['reghere'] = 'Aínda non ten unha conta? Cree unha'; -$lang['profna'] = 'Esta wiki non permite modificacións dos perfís'; -$lang['profnochange'] = 'Non hai cambios, non hai nada para facer.'; -$lang['profnoempty'] = 'Non se permite un nome ou un enderezo de correo baleiros.'; -$lang['profchanged'] = 'O perfil de persoa usuaria foi actualizado correctamente.'; -$lang['pwdforget'] = 'Esqueceu o seu contrasinal? Obteña un novo'; -$lang['resendna'] = 'Esta wiki non permite o reenvío de contrasinais.'; -$lang['resendpwd'] = 'Enviar un contrasinal novo a'; -$lang['resendpwdmissing'] = 'Sentímolo, ten que encher todos os campos.'; -$lang['resendpwdnouser'] = 'Sentímolo, non encontramos esta persoa usuaria na nosa base de datos.'; -$lang['resendpwdbadauth'] = 'Sentímolo, mais este código de autorización non é válido. Asegúrese de que usou a ligazón completa de confirmación.'; -$lang['resendpwdconfirm'] = 'Enviouse unha ligazón de confirmación por correo.'; -$lang['resendpwdsuccess'] = 'O seu novo contrasinal foi enviado por correo.'; -$lang['license'] = 'O contido deste wiki, agás onde se indique o contrario, ofrécese baixo a seguinte licenza:'; -$lang['licenseok'] = 'Nota: Ao editar esta páxina estás a aceptar o licenciamento do contido baixo a seguinte licenza:'; -$lang['searchmedia'] = 'Buscar nome de ficheiro:'; -$lang['searchmedia_in'] = 'Buscar en %s'; -$lang['txt_upload'] = 'Selecciona o arquivo para subir'; +$lang['profile'] = 'Perfil de Usuario'; +$lang['badlogin'] = 'Sentímolo, mais o nome de usuario ou o contrasinal non son correctos.'; +$lang['minoredit'] = 'Trocos Menores'; +$lang['draftdate'] = 'Borrador gardado automaticamente en'; +$lang['nosecedit'] = 'A páxina mudou entrementres, a información da sección estaba desfasada polo que se cargou a páxina completa no seu lugar.'; +$lang['regmissing'] = 'Sentímolo, mais tes que cubrir todos os campos.'; +$lang['reguexists'] = 'Sentímolo, mais xa existe un usuario con ese nome.'; +$lang['regsuccess'] = 'O usuario foi creado e o contrasinal enviado por correo-e.'; +$lang['regsuccess2'] = 'O usuario foi creado.'; +$lang['regmailfail'] = 'Semella que houbo un erro ao tentar enviar o correo-e co contrasinal. Por favor, contacta co administrador!'; +$lang['regbadmail'] = 'O enderezo de correo-e proporcionado semella incorrecto - se consideras que isto é un erro, contacta co administrador'; +$lang['regbadpass'] = 'Os dous contrasinais inseridos non coinciden, por favor téntao de novo.'; +$lang['regpwmail'] = 'O teu contrasinal do DokuWiki'; +$lang['reghere'] = 'Aínda non tes unha conta? Crea a túa'; +$lang['profna'] = 'Este wiki non permite modificacións dos perfís'; +$lang['profnochange'] = 'Non hai trocos, nada que facer.'; +$lang['profnoempty'] = 'Non se permite un nome ou un enderezo de correo-e baleiros.'; +$lang['profchanged'] = 'Perfil de usuario actualizado correctamente.'; +$lang['pwdforget'] = 'Esqueceches o teu contrasinal? Consegue un novo'; +$lang['resendna'] = 'Este wiki non permite o reenvío de contrasinais.'; +$lang['resendpwd'] = 'Enviar novo contrasinal para'; +$lang['resendpwdmissing'] = 'Sentímolo, tes que cubrir todos os campos.'; +$lang['resendpwdnouser'] = 'Sentímolo, non atopamos este usuario no noso banco de datos.'; +$lang['resendpwdbadauth'] = 'Sentímolo, mais este código de autorización non é válido. Asegúrate de que usaches a ligazón completa de confirmación.'; +$lang['resendpwdconfirm'] = 'Enviouse unha ligazón de confirmación por correo-e.'; +$lang['resendpwdsuccess'] = 'O teu novo contrasinal foi enviado por correo-e.'; +$lang['license'] = 'O contido deste wiki, agás onde se indique o contrario, ofrécese baixo da seguinte licenza:'; +$lang['licenseok'] = 'Nota: Ao editares esta páxina estás a aceptar o licenciamento do contido baixo da seguinte licenza:'; +$lang['searchmedia'] = 'Procurar nome de arquivo:'; +$lang['searchmedia_in'] = 'Procurar en %s'; +$lang['txt_upload'] = 'Escolle o arquivo para subir'; $lang['txt_filename'] = 'Subir como (opcional)'; -$lang['txt_overwrt'] = 'Sobrescribir o arquivo existente'; +$lang['txt_overwrt'] = 'Sobrescribir arquivo existente'; $lang['lockedby'] = 'Bloqueado actualmente por'; -$lang['lockexpire'] = 'O bloqueo termina o'; -$lang['willexpire'] = 'O seu bloqueo para editar esta páxina vai caducar nun minuto.\nPara de evitar conflitos, use o botón de previsualización para reiniciar o contador do tempo de bloqueo.'; -$lang['notsavedyet'] = 'Perderanse os cambios non gardados.\nEstá segura/o de que quere continuar?'; -$lang['rssfailed'] = 'Houbo un erro ao tentar obter este fío RSS: '; -$lang['nothingfound'] = 'Non se encontrou nada.'; -$lang['mediaselect'] = 'Ficheiros multimedia'; -$lang['fileupload'] = 'Subir ficheiros multimedia'; -$lang['uploadsucc'] = 'Subiuse correctamente'; -$lang['uploadfail'] = 'Fallou ao subir. É posíbel que sexa un problema de permisos?'; -$lang['uploadwrong'] = 'Subida denegada. Esta extensión de ficheiro non está permitida!'; -$lang['uploadexist'] = 'Xa existe o ficheiro. Non se fixo nada.'; -$lang['uploadbadcontent'] = 'O contido subido non concorda coa extensión de ficheiro %s.'; -$lang['uploadspam'] = 'A subida foi bloqueada pola lista negra de correo lixo.'; +$lang['lockexpire'] = 'O bloqueo remata o'; +$lang['willexpire'] = 'O teu bloqueo para editares esta páxina vai caducar nun minuto.\nPara de evitar conflitos, emprega o botón de previsualización para reiniciares o contador do tempo de bloqueo.'; +$lang['notsavedyet'] = 'Perderanse os trocos non gardados.\nEstá certo de quereres continuar?'; +$lang['rssfailed'] = 'Houbo un erro ao tentar obter esta corrente RSS: '; +$lang['nothingfound'] = 'Non se atopou nada.'; +$lang['mediaselect'] = 'Arquivos-Media'; +$lang['fileupload'] = 'Subida de Arquivos-Media'; +$lang['uploadsucc'] = 'Subida correcta'; +$lang['uploadfail'] = 'Erra na subida. Pode que sexa un problema de permisos?'; +$lang['uploadwrong'] = 'Subida denegada. Esta extensión de arquivo non está permitida!'; +$lang['uploadexist'] = 'Xa existe o arquivo. Non se fixo nada.'; +$lang['uploadbadcontent'] = 'O contido subido non concorda coa extensión do arquivo %s.'; +$lang['uploadspam'] = 'A subida foi bloqueada pola lista negra de correo-lixo.'; $lang['uploadxss'] = 'A subida foi bloqueada por un posíbel contido malicioso.'; -$lang['uploadsize'] = 'O ficheiro subido é grande de máis. (máx. %s)'; -$lang['deletesucc'] = 'O ficheiro "%s" foi eliminado.'; -$lang['deletefail'] = '"%s" non puido ser eliminado - comprobe os permisos.'; -$lang['mediainuse'] = 'O ficheiro "%s" non foi eliminado - aínda está en uso.'; +$lang['uploadsize'] = 'O arquivo subido é grande de máis. (máx. %s)'; +$lang['deletesucc'] = 'O arquivo "%s" foi eliminado.'; +$lang['deletefail'] = '"%s" non puido ser eliminado - comproba os permisos.'; +$lang['mediainuse'] = 'O arquivo "%s" non foi eliminado - aínda está en uso.'; $lang['namespaces'] = 'Nomes de espazos'; -$lang['mediafiles'] = 'Ficheiro dispoñíbeis en'; -$lang['js']['searchmedia'] = 'Buscar ficheiros'; -$lang['js']['keepopen'] = 'Manter a xanela aberta na selección'; -$lang['js']['hidedetails'] = 'Ocultar os detalles'; -$lang['js']['nosmblinks'] = 'A ligazón aos compartidos do Windows só funciona co Microsoft Internet Explorer. +$lang['mediafiles'] = 'Arquivos dispoñíbeis en'; +$lang['js']['searchmedia'] = 'Procurar ficheiros'; +$lang['js']['keepopen'] = 'Manter a fiestra aberta na selección'; +$lang['js']['hidedetails'] = 'Agochar Pormenores'; +$lang['js']['nosmblinks'] = 'A ligazón aos compartidos do Windows só funciona no Microsoft Internet Explorer. Sempre podes copiar e colar a ligazón.'; $lang['js']['linkwiz'] = 'Asistente de ligazóns'; -$lang['js']['linkto'] = 'Ligazón a:'; -$lang['js']['del_confirm'] = 'Quere eliminar os elementos seleccionados?'; -$lang['js']['mu_btn'] = 'Subir varios ficheiros dunha vez'; -$lang['mediausage'] = 'Utilice a seguinte sintaxe para referenciar este ficheiro:'; -$lang['mediaview'] = 'Ver o ficheiro orixinal'; -$lang['mediaroot'] = 'raíz'; -$lang['mediaupload'] = 'Suba aquí un ficheiro ao nome de espazo actual. Para crear subnomes de espazos deberá engadilos ao principio do seu nome de ficheiro en "Subir como", separados por dous puntos.'; -$lang['mediaextchange'] = 'A extensión de ficheiro foi alterada de .%s a .%s!'; +$lang['js']['linkto'] = 'Ligazón para:'; +$lang['js']['del_confirm'] = 'Estás certo de quereres eliminar os elementos seleccionados?'; +$lang['js']['mu_btn'] = 'Subir varios arquivos de vez'; +$lang['mediausage'] = 'Emprega a seguinte sintaxe para inserires unha referencia a este arquivo:'; +$lang['mediaview'] = 'Ver arquivo orixinal'; +$lang['mediaroot'] = 'raigaña'; +$lang['mediaupload'] = 'Sube aquí un arquivo ao nome de espazo actual. Para creares sub-nomes de espazos deberás antepoñelos ao nome indicado en "Subir como" separados por dous puntos.'; +$lang['mediaextchange'] = 'Extensión de arquivo mudada de .%s a .%s!'; $lang['reference'] = 'Referencias para'; -$lang['ref_inuse'] = 'O ficheiro non pode ser eliminado, xa que aínda está a ser usado polas seguintes páxinas:'; -$lang['ref_hidden'] = 'Algunhas referencias están en páxinas para as cales non ten permisos de lectura'; -$lang['hits'] = 'Visualizacións'; +$lang['ref_inuse'] = 'O arquivo non pode ser eliminado, xa que aínda está a ser usado polas seguintes páxinas:'; +$lang['ref_hidden'] = 'Algunhas referencias están en páxinas para as cales non tes permisos de lectura'; +$lang['hits'] = 'Vistas'; $lang['quickhits'] = 'Nomes de páxinas coincidentes'; -$lang['toc'] = 'Táboa de contidos'; +$lang['toc'] = 'Táboa de Contidos'; $lang['current'] = 'actual'; -$lang['yours'] = 'A súa versión'; -$lang['diff'] = 'Mostrar as diferenzas coa versión actual'; -$lang['diff2'] = 'Mostrar as diferenzas entre as revisións seleccionadas'; +$lang['yours'] = 'A túa Versión'; +$lang['diff'] = 'Amosar diferenzas coa versión actual'; +$lang['diff2'] = 'Amosar diferenzas entre as revisións seleccionadas'; $lang['line'] = 'Liña'; $lang['breadcrumb'] = 'Trazado'; -$lang['youarehere'] = 'Vostede está aquí'; +$lang['youarehere'] = 'Estás aquí'; $lang['lastmod'] = 'Última modificación'; $lang['by'] = 'por'; $lang['deleted'] = 'eliminado'; $lang['created'] = 'creado'; -$lang['restored'] = 'a revisión antiga foi restaurada'; +$lang['restored'] = 'revisión antiga restaurada'; $lang['external_edit'] = 'edición externa'; $lang['summary'] = 'Resumo da edición'; -$lang['noflash'] = 'Precísase o Plugin Adobe Flash para mostrar este contido.'; +$lang['noflash'] = 'Precísase o Extensión Adobe Flash para amosar este contido.'; $lang['mail_newpage'] = 'páxina engadida:'; -$lang['mail_changed'] = 'páxina alterada:'; -$lang['mail_new_user'] = 'Persoa usuaria nova:'; -$lang['mail_upload'] = 'ficheiro subido:'; -$lang['qb_bold'] = 'Texto en negra'; -$lang['qb_italic'] = 'Texto en cursiva'; -$lang['qb_underl'] = 'Texto subliñado'; -$lang['qb_code'] = 'Texto de código'; -$lang['qb_strike'] = 'Texto riscado'; -$lang['qb_h1'] = 'Título de nivel 1'; -$lang['qb_h2'] = 'Título de nivel 2'; -$lang['qb_h3'] = 'Título de nivel 3'; -$lang['qb_h4'] = 'Título de nivel 4'; -$lang['qb_h5'] = 'Título de nivel 5'; -$lang['qb_link'] = 'Ligazón interna'; -$lang['qb_extlink'] = 'Ligazón externa'; -$lang['qb_hr'] = 'Liña horizontal'; -$lang['qb_ol'] = 'Elemento de lista ordenada'; -$lang['qb_ul'] = 'Elemento de lista desordenada'; -$lang['qb_media'] = 'Engadir imaxes e outros ficheiros'; -$lang['qb_sig'] = 'Inserir unha sinatura'; -$lang['qb_smileys'] = 'Emoticonas'; -$lang['qb_chars'] = 'Caracteres especiais'; -$lang['admin_register'] = 'Engadir unha persoa usuaria nova'; -$lang['metaedit'] = 'Editar os metadatos'; +$lang['mail_changed'] = 'páxina mudada:'; +$lang['mail_new_user'] = 'Novo usuario:'; +$lang['mail_upload'] = 'arquivo subido:'; +$lang['qb_bold'] = 'Texto Resaltado'; +$lang['qb_italic'] = 'Texto en Cursiva'; +$lang['qb_underl'] = 'Texto Subliñado'; +$lang['qb_code'] = 'Texto de Código'; +$lang['qb_strike'] = 'Texto Riscado'; +$lang['qb_h1'] = 'Liña de Cabeceira de Nivel 1'; +$lang['qb_h2'] = 'Liña de Cabeceira de Nivel 2'; +$lang['qb_h3'] = 'Liña de Cabeceira de Nivel 3'; +$lang['qb_h4'] = 'Liña de Cabeceira de Nivel 4'; +$lang['qb_h5'] = 'Liña de Cabeceira de Nivel 5'; +$lang['qb_link'] = 'Ligazón Interna'; +$lang['qb_extlink'] = 'Ligazón Externa'; +$lang['qb_hr'] = 'Liña Horizontal'; +$lang['qb_ol'] = 'Elemento de Lista Ordenada'; +$lang['qb_ul'] = 'Elemento de Lista Desordenada'; +$lang['qb_media'] = 'Engadir Imaxes e Outros Arquivos'; +$lang['qb_sig'] = 'Inserir Sinatura'; +$lang['qb_smileys'] = 'Risoños'; +$lang['qb_chars'] = 'Caracteres Especiais'; +$lang['admin_register'] = 'Engadir novo usuario'; +$lang['metaedit'] = 'Editar Metadatos'; $lang['metasaveerr'] = 'Non se puideron escribir os metadatos'; -$lang['metasaveok'] = 'Os metadatos foron gardados'; +$lang['metasaveok'] = 'Metadatos gardados'; $lang['img_backto'] = 'Volver a'; $lang['img_title'] = 'Título'; $lang['img_caption'] = 'Lenda'; $lang['img_date'] = 'Data'; -$lang['img_fname'] = 'Nome do ficheiro'; +$lang['img_fname'] = 'Nome de arquivo'; $lang['img_fsize'] = 'Tamaño'; -$lang['img_artist'] = 'Fotógrafa/o'; +$lang['img_artist'] = 'Fotógrafo'; $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Formato'; $lang['img_camera'] = 'Cámara'; -$lang['img_keywords'] = 'Palabras chave'; -$lang['subscribe_success'] = '%s foi engadido á lista de subscrición de cambios de %s'; -$lang['subscribe_error'] = 'Erro ao tentar engadir %s á lista de subscrición de cambios de %s'; -$lang['subscribe_noaddress'] = 'Non hai ningún enderezo asociado ao seu nome de persoa usuaria: non pode ser engadida/o á lista de subscrición'; -$lang['unsubscribe_success'] = 'Eliminouse %s da lista de subscrición de cambios de %s'; -$lang['unsubscribe_error'] = 'Erro ao tentar eliminar %s da lista de subscrición de cambios de %s'; -$lang['authmodfailed'] = 'A configuración de autenticación de persoa usuaria é incorrecta. Informe á persoa administradora do seu Wiki.'; -$lang['authtempfail'] = 'A autenticación de persoa usuaria non está dispoñíbel de modo temporal. Se esta situación persiste informe á persoa administradora do seu Wiki.'; -$lang['i_chooselang'] = 'Seleccione o seu idioma'; +$lang['img_keywords'] = 'Verbas chave'; +$lang['authmodfailed'] = 'Configuración de autenticación de usuario incorrecta. Por favor, informa ao Administrador do teu Wiki.'; +$lang['authtempfail'] = 'A autenticación de usuario non está dispoñible de xeito temporal. De persistir esta situación, por favor, informa ao Administrador do teu Wiki.'; +$lang['i_chooselang'] = 'Escolle o teu idioma'; $lang['i_installer'] = 'Instalador do DokuWiki'; $lang['i_wikiname'] = 'Nome do Wiki'; -$lang['i_enableacl'] = 'Activar o lista de control de acceso (ACL) (recomendado)'; -$lang['i_superuser'] = 'Superusuaria/o'; -$lang['i_problems'] = 'O instalador encontrou algúns problemas que se mostran a continuación. Non poderá continuar até que os solucione.'; +$lang['i_enableacl'] = 'Activar ACL (recomendado)'; +$lang['i_superuser'] = 'Super-usuario'; +$lang['i_problems'] = 'O instalador atopou algúns problemas, que se amosan de seguido. Non poderás continuar até que os soluciones.'; $lang['i_modified'] = 'Por razóns de seguridade este script só funcionará cunha instalación nova e sen modificar do Dokuwiki. - Pode ou ben extraer de novo os ficheiros desde o paquete descargado ou consultar as + Podes ou ben extraer de novo os arquivos dende o paquete descargado ou consultar as instruccións completas de instalación do Dokuwiki'; -$lang['i_funcna'] = 'A función %s de PHP non está dispoñíbel. Pode que o seu provedor de hospedaxe a desactivase por algún motivo.'; -$lang['i_phpver'] = 'A súa versión %s de PHP é inferior á %s precisa. Debe actualizar a súa instalación de PHP.'; -$lang['i_permfail'] = '%s non é escribíbel polo DokuWiki. Debe corrixir a configuración de permisos deste directorio!'; +$lang['i_funcna'] = 'A función %s do PHP non está dispoñíbel. Pode que o teu provedor de hospedaxe a desactivase por algún motivo?'; +$lang['i_phpver'] = 'A túa versión %s do PHP é inferior á %s precisa. Debes actualizar a túa instalación do PHP.'; +$lang['i_permfail'] = '%s non é escribíbel polo DokuWiki. Debes corrixir a configuración de permisos deste directorio!'; $lang['i_confexists'] = '%s xa existe'; -$lang['i_writeerr'] = 'Non se puido crear %s. Terá que comprobar os permisos do directorio/ficheiro e crear o ficheiro de modo manual.'; -$lang['i_badhash'] = 'dokuwiki.php é irrecoñecíbel ou foi modificado (hash=%s)'; +$lang['i_writeerr'] = 'Non se puido crear %s. Terás de comprobar os permisos do directorio/arquivo e crear o ficheiro de xeito manual.'; +$lang['i_badhash'] = 'dokuwiki.php irrecoñecíbel ou modificado (hash=%s)'; $lang['i_badval'] = '%s - ilegal ou valor baleiro'; -$lang['i_success'] = 'A configuración terminou correctamente. Agora pode borrar o ficheiro install.php. Continúe até o - seu novo DokuWiki.'; -$lang['i_failure'] = 'Houbo algúns erros ao tentar escribir os ficheiros de configuración. Pode que precise solucionalos de mod manual antes - de que poder usar o seu novo DokuWiki.'; +$lang['i_success'] = 'A configuración rematou correctamente. Agora podes eliminar o arquivo install.php. Continúa deica o + teu novo DokuWiki.'; +$lang['i_failure'] = 'Houbo algúns erros ao tentar escribir os arquivos de configuración. Pode que precises solucionalos de xeito manual antes + de poderes empregar o teu novo DokuWiki.'; $lang['i_policy'] = 'Regras iniciais da ACL'; -$lang['i_pol0'] = 'Wiki aberto (lectura, escritura, subida de arquivos para todas as persoas)'; -$lang['i_pol1'] = 'Wiki público (lectura para todas as persoas, escritura e subida de ficheiros para as persoas usuarias rexistradas)'; -$lang['i_pol2'] = 'Wiki pechado (lectura, escritura, subida de arquivos só para as persoas usuarias rexistradas)'; +$lang['i_pol0'] = 'Wiki Aberto (lectura, escritura, subida de arquivos para todas as persoas)'; +$lang['i_pol1'] = 'Wiki Público (lectura para todas as persoas, escritura e subida de arquivos para usuarios rexistrados)'; +$lang['i_pol2'] = 'Wiki Fechado (lectura, escritura, subida de arquivos só para usuarios rexistrados)'; $lang['i_retry'] = 'Tentar de novo'; -$lang['mu_intro'] = 'Aquí podes subir varios ficheiros dunha vez. Preme o botón Examinar para engadilos á fila. Preme en Subir cando remates.'; -$lang['mu_gridname'] = 'Nome do ficheiro'; +$lang['mu_intro'] = 'Aquí podes subir varios arquivos de vez. Preme o botón Navegar para engadilos á cola. Preme en Subir cando remates.'; +$lang['mu_gridname'] = 'Nome de Arquivo'; $lang['mu_gridsize'] = 'Tamaño'; $lang['mu_gridstat'] = 'Estado'; -$lang['mu_namespace'] = 'Nome de espazo'; -$lang['mu_browse'] = 'Examinar'; -$lang['mu_toobig'] = 'demasiado grande'; -$lang['mu_ready'] = 'listo para subir'; +$lang['mu_namespace'] = 'Nome de Espazo'; +$lang['mu_browse'] = 'Navegar'; +$lang['mu_toobig'] = 'grande de máis'; +$lang['mu_ready'] = 'disposto para subir'; $lang['mu_done'] = 'feito'; $lang['mu_fail'] = 'fallou'; -$lang['mu_authfail'] = 'a sesión caducou'; +$lang['mu_authfail'] = 'sesión expirada'; $lang['mu_progress'] = '@PCT@% subido'; -$lang['mu_filetypes'] = 'Tipos de ficheiro permitidos'; -$lang['mu_info'] = 'ficheiros subidos.'; +$lang['mu_filetypes'] = 'Tipos de arquivo Permitidos'; +$lang['mu_info'] = 'arquivos subidos.'; $lang['mu_lasterr'] = 'Último erro:'; -$lang['recent_global'] = 'Agora mesmo está a ver os cambios no nome de espazo %s. Tamén pode ver os cambios recentes en todo o Wiki.'; +$lang['recent_global'] = 'Agora mesmo estás a ver os trocos no nome de espazo %s. Tamén podes ver os trocos recentes no Wiki enteiro.'; $lang['years'] = 'hai %d anos'; $lang['months'] = 'hai %d meses'; $lang['weeks'] = 'hai %d semanas'; diff --git a/inc/lang/gl/locked.txt b/inc/lang/gl/locked.txt index 14240335e..90f9ab082 100644 --- a/inc/lang/gl/locked.txt +++ b/inc/lang/gl/locked.txt @@ -1,3 +1,3 @@ ====== Páxina bloqueada ====== -Esta páxina está actualmente bloqueada para a edición por outra persoa usuaria. Terá que agardar até que esa persoa usuaria termine de editar a páxina ou a que expire o bloqueo. +Esta páxina está actualmente bloqueada para a edición por outro usuario. Terás que agardar até que este usuario remate coa edición ou a que expire o bloqueo. diff --git a/inc/lang/gl/login.txt b/inc/lang/gl/login.txt index 11719de50..506b30c6a 100644 --- a/inc/lang/gl/login.txt +++ b/inc/lang/gl/login.txt @@ -1,4 +1,4 @@ -====== Inicio de sesión ====== +====== Inicio de Sesión ====== -Actualmente non ten unha sesión iniciada! Insira as súas credenciais de autenticación para iniciar a sesión. Debe ter as cookies activadas para poder iniciar unha sesión. +Actualmente non iniciaches sesión ningunha! Insire as túas credenciais de identificación para iniciares a sesión. Debes ter as cookies activadas para poderes iniciar unha sesión. diff --git a/inc/lang/gl/mailtext.txt b/inc/lang/gl/mailtext.txt index f7c06bc83..a6799d697 100644 --- a/inc/lang/gl/mailtext.txt +++ b/inc/lang/gl/mailtext.txt @@ -1,13 +1,13 @@ -Engadiuse ou modificouse unha páxina do seu DokuWiki. Aquí van os detalles: +Engadiuse ou mudouse unha páxina no teu DokuWiki. Aquí van os pormenores: Data : @DATE@ Navegador : @BROWSER@ Enderezo IP : @IPADDRESS@ -Nome do host : @HOSTNAME@ -Revisión antiga : @OLDPAGE@ -Revision nova : @NEWPAGE@ -Resumo da edición : @SUMMARY@ -Usuaria/o : @USER@ +Nome do Host : @HOSTNAME@ +Revisión Antiga : @OLDPAGE@ +Revision Nova : @NEWPAGE@ +Resumo da Edición : @SUMMARY@ +Usuario : @USER@ @DIFF@ diff --git a/inc/lang/gl/newpage.txt b/inc/lang/gl/newpage.txt index c79ef6a41..c073f1194 100644 --- a/inc/lang/gl/newpage.txt +++ b/inc/lang/gl/newpage.txt @@ -1,4 +1,4 @@ ====== Este tema aínda non existe ====== -Seguiu unha ligazón até un tema que aínda non existe. Se ten os permisos adecuados, pode creala vostede premendo no botón ''Crear esta páxina''. +Seguiches unha ligazón deica un tema que aínda non existe. Se tes permisos axeitados, podes crealo ti premendo no botón ''Crear esta páxina''. diff --git a/inc/lang/gl/norev.txt b/inc/lang/gl/norev.txt index dd6027165..af7383da8 100644 --- a/inc/lang/gl/norev.txt +++ b/inc/lang/gl/norev.txt @@ -1,4 +1,4 @@ -====== Non existe esa revisión ====== +======Non hai tal revisión====== -A revisión especificada non existe. Utilice o botón ''Revisións antigas'' para obter un listado das revisións antigas deste documento. +A revisión especificada non existe. Utiliza o botón de ''Revisións Antigas'' para obteres unha listaxe das revisións antigas deste documento. diff --git a/inc/lang/gl/password.txt b/inc/lang/gl/password.txt index 3e69b6cca..652a55828 100644 --- a/inc/lang/gl/password.txt +++ b/inc/lang/gl/password.txt @@ -1,9 +1,9 @@ -Benvida/o @FULLNAME@! +Ola @FULLNAME@! -Aquí ten os seus datos de persoa usuaria para @TITLE@ en @DOKUWIKIURL@ +Aquí tes os teus datos de usuario para @TITLE@ en @DOKUWIKIURL@ -Nome de usuaria/o: @LOGIN@ -Contrasinal: @PASSWORD@ +Usuario : @LOGIN@ +Contrasinal : @PASSWORD@ -- Este correo foi xerado polo DokuWiki en diff --git a/inc/lang/gl/preview.txt b/inc/lang/gl/preview.txt index 01cc41dcc..e0f749ff0 100644 --- a/inc/lang/gl/preview.txt +++ b/inc/lang/gl/preview.txt @@ -1,4 +1,4 @@ ====== Previsualización ====== -Isto é unha previsualización de como aparecerá o seu texto. Lembre: **Aínda non está gardado!** +Isto é unha previsualización de como aparecerá o teu texto. Lembra: **Non está gardado** aínda! diff --git a/inc/lang/gl/pwconfirm.txt b/inc/lang/gl/pwconfirm.txt index e020790d3..ef20212ff 100644 --- a/inc/lang/gl/pwconfirm.txt +++ b/inc/lang/gl/pwconfirm.txt @@ -1,15 +1,15 @@ Ola @FULLNAME@! -Alguén solicitou un contrasinal novo para o seu inicio de sesión no +Alguén solicitou un novo contrasinal para o teu inicio de sesión @TITLE@ en @DOKUWIKIURL@ -Se non foi vostede quen o solicitou pode ignorar este correo. +Se non fuches ti quen o fixo podes ignorar este correo-e. -Para confirmar que esta solicitude foi realmente enviada por vostede -por favor, visite a seguinte ligazón. +Para confirmares que esta solicitude foi realmente enviada por ti, +por favor, visita a seguinte ligazón. @CONFIRM@ --- -Este correo foi xerador polo DokuWiki de +-- +Este correo-e foi xerado polo DokuWiki de @DOKUWIKIURL@ diff --git a/inc/lang/gl/read.txt b/inc/lang/gl/read.txt index 912864c31..28f3e1a95 100644 --- a/inc/lang/gl/read.txt +++ b/inc/lang/gl/read.txt @@ -1,2 +1,2 @@ -Esta páxina é só de lectura. Podes ver o código fonte, mais non pode alterala. Coméntello á persoa administradora se considera que é un erro. +Esta páxina é só de lectura. Podes ver o código fonte, mais non podes mudala. Coméntallo ao teu administrador se consideras que é un erro. diff --git a/inc/lang/gl/recent.txt b/inc/lang/gl/recent.txt index 93f8632dd..622e4d938 100644 --- a/inc/lang/gl/recent.txt +++ b/inc/lang/gl/recent.txt @@ -1,5 +1,5 @@ -====== Cambios recentes ====== +====== Trocos Recentes ====== -As seguintes páxinas foron cambiadas recentemente. +As seguintes páxinas foron mudadas recentemente. diff --git a/inc/lang/gl/register.txt b/inc/lang/gl/register.txt index 17d9e0ff4..4f51f3878 100644 --- a/inc/lang/gl/register.txt +++ b/inc/lang/gl/register.txt @@ -1,4 +1,4 @@ -====== Rexistro como persoa usuaria nova ====== +====== Rexistro como novo usuario ====== -Encha toda a información requirida a continuación para crear unha conta nova neste wiki. Asegúrese de proporcionar un **enderezo de correo electrónico válido** - se non se lle solicita aquí que insira un contrasinal, recibirá un contrasinal novo nese enderezo. O nome de persoa usuaria deberá ser un [[doku>pagename|nome de páxina]] válido. +Cubre toda a información requirida a continuación para creares unha nova conta neste wiki. Asegúrate de forneceres un **enderezo de correo-e válido** - se non se che pide aquí que insiras un contrasinal, recibirás un novo nese enderezo. O nome de usuario deberá ser un [[doku>pagename|nome de páxina]] válido. diff --git a/inc/lang/gl/registermail.txt b/inc/lang/gl/registermail.txt index e02fe1a1c..7d4017481 100644 --- a/inc/lang/gl/registermail.txt +++ b/inc/lang/gl/registermail.txt @@ -1,14 +1,14 @@ -Rexistrouse unha persoa usuaria nova. Estes son os detalles: +Rexistrouse un novo usuario. Aquí van os pormenores: -Nome de usuaria/o : @NEWUSER@ -Nome completo : @NEWNAME@ -Correo : @NEWEMAIL@ +Nome de usuario : @NEWUSER@ +Nome completo : @NEWNAME@ +Correo-e : @NEWEMAIL@ -Data : @DATE@ -Navegador : @BROWSER@ -Enderezo IP : @IPADDRESS@ -Nome do host : @HOSTNAME@ +Data : @DATE@ +Navegador : @BROWSER@ +Enderezo IP : @IPADDRESS@ +Nome do Host : @HOSTNAME@ -- -Este correo foi xerado polo DokuWiki de +Este correo-e foi xerado polo DokuWiki de @DOKUWIKIURL@ diff --git a/inc/lang/gl/resendpwd.txt b/inc/lang/gl/resendpwd.txt index eb8cf4835..0ee2d6cb4 100644 --- a/inc/lang/gl/resendpwd.txt +++ b/inc/lang/gl/resendpwd.txt @@ -1,3 +1,3 @@ -====== Enviar un contrasinal novo ====== +====== Enviar novo contrasinal ====== -Insira o seu nome de persoa usuaria no seguinte formulario para obter un contrasinal novo para a súa conta neste wiki. Enviarase unha ligazón de confirmación ao seu enderezo de correo rexistrado. +Insire o teu nome de usuario no seguinte formulario para obteres un novo contrasinal da túa conta neste wiki. Enviarase unha ligazón de confirmación ao teu enderezo rexistrado de correo-e. diff --git a/inc/lang/gl/revisions.txt b/inc/lang/gl/revisions.txt index a08b54685..3d5cccd7f 100644 --- a/inc/lang/gl/revisions.txt +++ b/inc/lang/gl/revisions.txt @@ -1,4 +1,4 @@ -====== Revisións antigas ====== +======Revisións Antigas====== -Estas son as revisións antigas do documento actual. Para retomar unha revisión antiga: selecciónea na seguinte lista, prema en ''Editar esta páxina'' e gárdea. +Estas son as revisións antigas do documento actual. Para retomar unha revisión antiga selecciónaa na seguinte lista, preme en ''Editar esta páxina'' e gárdaa. diff --git a/inc/lang/gl/searchpage.txt b/inc/lang/gl/searchpage.txt index 7157cdcbf..227ca5dbc 100644 --- a/inc/lang/gl/searchpage.txt +++ b/inc/lang/gl/searchpage.txt @@ -1,5 +1,5 @@ -====== Procurar ====== +====== Procura ====== -Podes encontrar os resultados da súa procura a continuación. Se non encontrou o que estaba a procurar, pode crear ou editar a páxina co nome relacionado coa súa procura co botón axeitado. +Podes atopar os resultados da túa procura a continuación. Se non atopaches o que estabas a procurar, podes crear ou editar a páxina co nome relacionado coa túa procura empregando o botón axeitado. ===== Resultados ===== diff --git a/inc/lang/gl/stopwords.txt b/inc/lang/gl/stopwords.txt index c262147f8..5520cd275 100644 --- a/inc/lang/gl/stopwords.txt +++ b/inc/lang/gl/stopwords.txt @@ -1,246 +1,692 @@ -# Isto é unha listaxe das palabras que o indexador ignora (stopwords); unha por liña -# Cando edite este ficheiro asegúrese de usar os fins de liña UNIX (nova liña única) -# Non precisa incluír palabras de menos de 3 caracteres - estas son ignoradas de todas as formas -# Esta listaxe está baseada nas encontradas en http://www.ranks.nl/stopwords/ (aínda en proceso) -# Actualizouse a listaxe a partir as stopwords dispoñibilizadas por Paulo Malvar en: -# http://d108.dinaserver.com/hosting/paulomalvar.com/Paulo_Malvar_personal_webpage/Resources_files/Galician_single_and_multiword_stopwords_Verbal_Periphrases_and_Abbreviations.tgz -# e tamén as listaxes de palabras gramaticais na Galipedia: http://gl.wikipedia.org/wiki/Categoría_gramatical -abaixo -acerca +# Isto é unha lista das verbas que o indexador ignora, unha por liña +# Cando edites este arquivo asegúrate de usar remates de liña UNIX (nova liña única) +# Non precisas incluír verbas de menos de 3 caracteres - estas son ignoradas de todas formas +# Esta lista está baseada nas atopadas en http://www.ranks.nl/stopwords/ (en proceso aínda) +aberto +abonda +abrir +acabo +acceder +acceso +acordo +actitude +actividade +actividades +actual +actualización +actualizar +actualmente ademais +ademáis +adiante +agardar +agora agás +ainda aínda -alén -algún +aiquí +algo +alguen +algun algunha algunhas +alguén +algún algúns -amais +alta +amigos +ando +anima +anos ante +anterior +anteriores antes -após -aquel -aquela -aquelas -aqueles -aquén -aquilo -arredor -bardante -beira -canda +aparece +aparecen +apartado +aperta +apertas +apoio +aqui +aquí +arquivo +arquivos +artigo +artigos +asunto +atención +atopar +atopei +axuda +axudar +baixo +banda +base +bastante +benvido +boas +botar +buscador +buscar +cabo +cada +cadra +caixa +cales +calidade +calquer +calquera +cambio +camiño +campanha +campaña +campañas +campo cando +cantidade canto -carón -causa -cerca +cantos +cara +carallo +cartos +casa +case +caso +casos +catro +centro +certo +chea +chega +chegar +chisco +cidade +civil +claro +coas +coido +colaboración +colaborar +coma +comentar +comentario +comentarios +comezar como +comunicación +comunidade +común +concreto +condicións conforme -consonte +conseguir +conta +contactar +contacto +contas +contido +contidos contra +contrario +control +copia +correcto +correio +correo +correoe +correos +correspondente +cousa +cousas +coñecemento +coñezo +crear +creo +cuestión +cuestións +cunha +curioso +dabondo +dacordo +dados +darlle +data +datos +debate +debe +debemos +deben +deberiamos +debería +decidir +decisión +defecto +defensa deica -dela -delas +deixa +deixar +deixo deles +demais +demasiado +demáis dende -derredor -derriba +dentro +dereitos desde +dese +deseño despois +desta +deste +destes +diante +dias +dicir +diferentes +difícil +digo +dirección +directamente +directorio +discusión +discutir +distintas +distintos +distribución +dixen +dixo +doado +dous +duas +dunha durante -elas +días +dúas +dúbida +efectivamente +eiqui +eiquí eles +eliminar +email +empregar +emprego +empresa +empresas +enderezo +enderezos +engadir +enlace +enquisa +enriba +entendo +entidades +entrada +entrar entre -erades -eramos +entón +enviar +envio eran -eras +erro +erros esas +escribir eses +especial +especialmente +espero esta -está estaba -estabades -estabamos -estaban estades +estado estamos -están +estan +estar +estaría estas este estea -esteades -esteamos -estean -esteas estes -estivemos +estilo estiven -estiver -estivera -estiveramos -estiveran -estiverdes -estiveren -estivermos -estivese -estivesemos -estivesen -estivo +esto estou -excepto -fomos +está +están +estás +evidentemente +evitar +exactamente +exemplo +existe +facelo +facemos +facendo +facer +faga +fagan +fago +fala +falamos +falando +falar +falla +falo +falta +favor +fazer +feita +feito +ferreira +final +finalmente +fios +fixen +fixo +fondo fora -foramos -foran -fordes -foren -formos +forma +formas +foro +foron +foros fose -fosedes -fosemos -fosen -habemos +fotos +funciona +funcionamento +futuro +fóra +gracias +gran +grande +grandes +grazas +grupo +grupos +gusta +haber haberá -haberán -haberedes -haberei -haberemos habería -haberíades -haberíamos +había haxa -haxades -haxamos -haxan -haxas -houbemos -houben -houber -houbera -houberades -houberamos -houberan -houberemos -houberen -houberían -houbermos +historia +home +hora +horas houbese -houbesedes -houbesemos -houbesen houbo +hoxe +idea +ideas +ideia +igual +imos +importancia +importante +importantes +inda +info +información +informar +informe +inicial +iniciativa +inicio +intención +interesa +interesante +interese +iste isto +lado +lembro +letras +leva +levamos +levar +libre +libro +lista +listas +liña +liñas lles +local logo +longo +lugar +lugo +maior +maiores +maioría mais -máis -malia +mandar +maneira +manter +marcha +material +mañá +media mediante +medida +medio +mellor +membros menos +mensaxe +mensaxes +mentres +menú +mesa +meses +mesma mesmo +mesmos +meter meus +milhor +millor +minha +mirar miña -miñas +modificar +moita +moitas moito +moitos +momento +mudar +mundo +máis +mínimo +nada +nbsp +necesario +necesidade +nese +nesta +neste +nestes +ningunha +ninguén +ningún +noite +nome +normal nosa nosas noso nosos +nota +nova +novas +novo +novos +nunca nunha -onda +número +ofrece +ofrecer +ollo +onde +onte +oops +opción +opcións +opinión +orixinal outra +outras outro +outros +paga +palabras para -perante +parabens +parece +pareceme +parte +partes +participación +participar +partido +paréceme +pasa +pasado +pasar +paso +pedir +pena +pendente +pendentes +pensades +pensando +pensar +penso +pequena +pequeno +perfectamente +perfecto +permite pero +persoa +persoal +persoas +pode +podedes +podemos +poden +poder +poderiamos +podería +poderíamos +podes +podo +poida +poidan pois pola polas polo polos por -porén porque +porén +posibel +posibilidade +posibilidades +posible +posta +posto +pouco +poucos +poñer +precisamente +preciso +pregos +pregunta +presente +primeira +primeiro +principal +principio +proba +probar +probas +problema +problemas +proceso prol +propia +propio +proposta +propostas +propoño +propoñovos +proxecto +proxectos +publicar +punto +pódese +queda +quedar +quedou +queira quen -redor -rente +quere +queredes +queremos +queren +queres +quero +quizáis +quot +razón +real +realidade +realmente +recibir +referencia +relación +rematar +remate respecto -sacado -sacando -salvante -salvo +resposta +respostar +respostas +resto +resulta +resultado +revisar +revisión +riba +sabe +sabedes +saber +sacar +saúdo +saúdos +segue +seguinte +seguintes +seguir +segunda +segundo +seguramente +seguro +seica +semana +semanas +semella +semellante +sempre +sendo +senon +sentido senón +seria +serie será serán -serás -seredes -serei -seremos sería -seríamos -serían seus sexa -sexades -sexamos sexan -sexas +similar +simplemente +sitio +sitios +situación +soamente sobre -sodes +solución somos +suas +superior +suponho +suposto +supoño +sábado súas +tamen +tampouco tamén +tanto +tarde tedes temos +tempo +tempos +tendo +tenho +tentar +tería teña -teñades teñamos teñan -teñas +teñen teño -terá -terán -terás -teredes -terei -teremos -tería -teriades -teriamos -terían -terías -teus -tiña -tiñades -tiñamos -tiñan -tiñas -tiveches -tivemos +timos +tipo tiven -tiver -tivera -tiverades -tiveramos -tiveran -tiveras -tiverdes -tiveren -tivermos -tivese -tivesedes -tivesemos -tivesen -tiveses -tivestes -tivo +tiña +toda +todas todo +todos +tomar +total +totalmente +trabalho +traballando +traballar +traballo +traballos tras +trata través -túas +tres +troco +trocos +troques +tódalas +tódolos +última +último +últimos unha unhas -vostede -vostedes +única +únicamente +únicousar +usuario +usuarios +utilizar +vaia +vale +vamos +varias +varios +veces +verdade +vexo +veño +vida +vindeiro +visitantes +visitas +vista +visto +volta +vosa +wink +xeito +xeitos +xente +xerais +xeral +xunto +zona diff --git a/inc/lang/gl/updateprofile.txt b/inc/lang/gl/updateprofile.txt index bfd598117..8620dea12 100644 --- a/inc/lang/gl/updateprofile.txt +++ b/inc/lang/gl/updateprofile.txt @@ -1,5 +1,5 @@ -====== Actualizar o perfil da súa conta ====== +====== Actualizar o perfil da túa conta ====== -Só precisa cubrir os campos que desexe cambiar. Non pode cambiar o seu nome de persoa usuaria. +Só precisas cubrir os campos que desexes mudar. Non podes mudar o teu nome de usuario. diff --git a/inc/lang/gl/uploadmail.txt b/inc/lang/gl/uploadmail.txt index 914c3644c..2a7c24762 100644 --- a/inc/lang/gl/uploadmail.txt +++ b/inc/lang/gl/uploadmail.txt @@ -1,14 +1,14 @@ -Subiuse un ficheiro ao seu DokuWiki. Aquí van os detalles: +Subiuse un arquivo ao teu DokuWiki. Aquí van os pormenores: -Ficheiro : @MEDIA@ -Data : @DATE@ -Navegador : @BROWSER@ -Enderezo IP : @IPADDRESS@ -Nome do host : @HOSTNAME@ -Tamaño : @SIZE@ -Tipo MIME : @MIME@ -Usuaria/o : @USER@ +Arquivo : @MEDIA@ +Data : @DATE@ +Navegador : @BROWSER@ +Enderezo IP : @IPADDRESS@ +Nome do Host : @HOSTNAME@ +Tamaño : @SIZE@ +Tipo MIME : @MIME@ +Usuario : @USER@ --- +-- Este correo foi xerado polo DokuWiki en -@DOKUWIKIURL@ +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/gl/wordblock.txt b/inc/lang/gl/wordblock.txt index f219f8436..ec8d67aff 100644 --- a/inc/lang/gl/wordblock.txt +++ b/inc/lang/gl/wordblock.txt @@ -1,4 +1,4 @@ -====== Bloqueo por SPAM ====== +====== Bloqueo por Correo-lixo ====== -Os seus cambios **non** foron gardados porque conteñen unha ou varias palabras bloqueadas. Se tentou introducir spam no wiki -- Nen@ mal@! Se considera que é un erro, contacte coa persoa administradora deste Wiki. +Os teus trocos **non** foron gardados porque conteñen unha ou varias verbas bloqueadas. Se tentaches deixar correo-lixo no wiki -- Estívoche ben! Se consideras que é un erro, contacta co administrador deste Wiki. -- cgit v1.2.3 From c4ba149a58e742fab4739e2432ee00e41f1f7184 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 8 Mar 2010 13:04:31 +0100 Subject: Allow filtering of block buttons in initToolbar --- inc/toolbar.php | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/toolbar.php b/inc/toolbar.php index 9140970d1..21819d138 100644 --- a/inc/toolbar.php +++ b/inc/toolbar.php @@ -36,6 +36,7 @@ function toolbar_JSdefines($varname){ 'key' => 'b', 'open' => '**', 'close' => '**', + 'block' => false ), array( 'type' => 'format', @@ -44,6 +45,7 @@ function toolbar_JSdefines($varname){ 'key' => 'i', 'open' => '//', 'close' => '//', + 'block' => false ), array( 'type' => 'format', @@ -52,6 +54,7 @@ function toolbar_JSdefines($varname){ 'key' => 'u', 'open' => '__', 'close' => '__', + 'block' => false ), array( 'type' => 'format', @@ -60,6 +63,7 @@ function toolbar_JSdefines($varname){ 'key' => 'c', 'open' => "''", 'close' => "''", + 'block' => false ), array( 'type' => 'format', @@ -68,6 +72,7 @@ function toolbar_JSdefines($varname){ 'key' => 'd', 'open' => '', 'close' => '', + 'block' => false ), array( @@ -76,7 +81,8 @@ function toolbar_JSdefines($varname){ 'icon' => 'hequal.png', 'key' => '8', 'text' => $lang['qb_h'], - 'mod' => 0 + 'mod' => 0, + 'block' => true ), array( 'type' => 'autohead', @@ -84,7 +90,8 @@ function toolbar_JSdefines($varname){ 'icon' => 'hminus.png', 'key' => '9', 'text' => $lang['qb_h'], - 'mod' => 1 + 'mod' => 1, + 'block' => true ), array( 'type' => 'autohead', @@ -92,7 +99,8 @@ function toolbar_JSdefines($varname){ 'icon' => 'hplus.png', 'key' => '0', 'text' => $lang['qb_h'], - 'mod' => -1 + 'mod' => -1, + 'block' => true ), array( @@ -141,7 +149,8 @@ function toolbar_JSdefines($varname){ 'open' => '== ', 'close' => ' ==\n', ), - ) + ), + 'block' => true ), array( @@ -151,6 +160,7 @@ function toolbar_JSdefines($varname){ 'key' => 'l', 'open' => '[[', 'close' => ']]', + 'block' => false ), array( 'type' => 'format', @@ -159,6 +169,7 @@ function toolbar_JSdefines($varname){ 'open' => '[[', 'close' => ']]', 'sample' => 'http://example.com|'.$lang['qb_extlink'], + 'block' => false ), array( 'type' => 'formatln', @@ -167,6 +178,7 @@ function toolbar_JSdefines($varname){ 'open' => ' - ', 'close' => '', 'key' => '-', + 'block' => true ), array( 'type' => 'formatln', @@ -175,12 +187,14 @@ function toolbar_JSdefines($varname){ 'open' => ' * ', 'close' => '', 'key' => '.', + 'block' => true ), array( 'type' => 'insert', 'title' => $lang['qb_hr'], 'icon' => 'hr.png', 'insert' => '\n----\n', + 'block' => true ), array( 'type' => 'mediapopup', @@ -189,6 +203,7 @@ function toolbar_JSdefines($varname){ 'url' => 'lib/exe/mediamanager.php?ns=', 'name' => 'mediaselect', 'options'=> 'width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes', + 'block' => false ), array( 'type' => 'picker', @@ -196,18 +211,21 @@ function toolbar_JSdefines($varname){ 'icon' => 'smiley.png', 'list' => getSmileys(), 'icobase'=> 'smileys', + 'block' => false ), array( 'type' => 'picker', 'title' => $lang['qb_chars'], 'icon' => 'chars.png', 'list' => explode(' ','À à Á á  â à ã Ä ä Ǎ ǎ Ă ă Å å Ā ā Ą ą Æ æ Ć ć Ç ç Č č Ĉ ĉ Ċ ċ Ð đ ð Ď ď È è É é Ê ê Ë ë Ě ě Ē ē Ė ė Ę ę Ģ ģ Ĝ ĝ Ğ ğ Ġ ġ Ĥ ĥ Ì ì Í í Î î Ï ï Ǐ ǐ Ī ī İ ı Į į Ĵ ĵ Ķ ķ Ĺ ĺ Ļ ļ Ľ ľ Ł ł Ŀ ŀ Ń ń Ñ ñ Ņ ņ Ň ň Ò ò Ó ó Ô ô Õ õ Ö ö Ǒ ǒ Ō ō Ő ő Œ œ Ø ø Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ş ş Š š Ŝ ŝ Ţ ţ Ť ť Ù ù Ú ú Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ů ů ǖ ǘ ǚ ǜ Ų ų Ű ű Ŵ ŵ Ý ý Ÿ ÿ Ŷ ŷ Ź ź Ž ž Ż ż Þ þ ß Ħ ħ ¿ ¡ ¢ £ ¤ ¥ € ¦ § ª ¬ ¯ ° ± ÷ ‰ ¼ ½ ¾ ¹ ² ³ µ ¶ † ‡ · • º ∀ ∂ ∃ Ə ə ∅ ∇ ∈ ∉ ∋ ∏ ∑ ‾ − ∗ √ ∝ ∞ ∠ ∧ ∨ ∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ⊂ ⊃ ⊄ ⊆ ⊇ ⊕ ⊗ ⊥ ⋅ ◊ ℘ ℑ ℜ ℵ ♠ ♣ ♥ ♦ α β Γ γ Δ δ ε ζ η Θ θ ι κ Λ λ μ Ξ ξ Π π ρ Σ σ Τ τ υ Φ φ χ Ψ ψ Ω ω ★ ☆ ☎ ☚ ☛ ☜ ☝ ☞ ☟ ☹ ☺ ✔ ✘ × „ “ ” ‚ ‘ ’ « » ‹ › — – … ← ↑ → ↓ ↔ ⇐ ⇑ ⇒ ⇓ ⇔ © ™ ® ′ ″ [ ] { } ~ ( ) % § $ # | @'), + 'block' => false ), array( 'type' => 'signature', 'title' => $lang['qb_sig'], 'icon' => 'sig.png', 'key' => 'y', + 'block' => false ), )); } // end event TOOLBAR_DEFINE default action -- cgit v1.2.3 From bce53b1fc1455d813331e735c7102be19fc1fc48 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 9 Mar 2010 11:54:37 +0100 Subject: Add missing global declaration --- inc/common.php | 1 + 1 file changed, 1 insertion(+) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index c5ad92dc5..0d5efbee9 100644 --- a/inc/common.php +++ b/inc/common.php @@ -840,6 +840,7 @@ function pageTemplate($data){ */ function parsePageTemplate($tpl, $id) { global $USERINFO; + global $conf; // replace placeholders $file = noNS($id); -- cgit v1.2.3 From ffde0ac9c67ac7dea5886a325e05300c3a88c163 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 9 Mar 2010 10:37:35 +0100 Subject: Allow plugins to manage edit intro text --- inc/html.php | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 88fa0b4ff..d9766e543 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1183,28 +1183,18 @@ function html_edit($text=null,$include='edit'){ //FIXME: include needed? $wr = $INFO['writable'] && !$INFO['locked']; if($wr){ - if ($REV) print p_locale_xhtml('editrev'); - print p_locale_xhtml($include); + if ($REV) $include = 'editrev'; }else{ // check pseudo action 'source' if(!actionOK('source')){ msg('Command disabled: source',-1); return; } - print p_locale_xhtml('read'); + $include = 'read'; } if(!$DATE) $DATE = $INFO['lastmod']; - global $conf; global $license; - global $lang; - global $REV; - global $DATE; - global $PRE; - global $SUF; - global $INFO; - global $SUM; - global $ID; $form = new Doku_Form(array('id' => 'dw__editform')); $form->addHidden('id', $ID); @@ -1216,7 +1206,11 @@ function html_edit($text=null,$include='edit'){ //FIXME: include needed? $data = compact('wr', 'text', 'form'); $data['media_manager'] = true; + $data['intro_locale'] = $include; trigger_event('HTML_EDIT_FORMSELECTION', $data, 'html_edit_form', true); + if (isset($data['intro_locale'])) { + echo p_locale_xhtml($data['intro_locale']); + } $form->addElement(form_makeOpenTag('div', array('id'=>'wiki__editbar'))); $form->addElement(form_makeOpenTag('div', array('id'=>'size__ctl'))); -- cgit v1.2.3 From 45a9933524f9a31e0a104cccfd082217501017ba Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 9 Mar 2010 11:42:34 +0100 Subject: Move data preprocessing out of html_edit --- inc/actions.php | 37 +++++++++++++++++++++++++++++++++++-- inc/html.php | 54 +++++++++++++----------------------------------------- inc/template.php | 16 ++++++---------- 3 files changed, 54 insertions(+), 53 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index b7567bc20..5802bd6f5 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -111,7 +111,7 @@ function act_dispatch(){ $ACT = act_draftsave($ACT); //edit - if(($ACT == 'edit' || $ACT == 'preview') && $INFO['editable']){ + if(($ACT == 'edit' || $ACT == 'preview' || $ACT == 'recover') && $INFO['editable']){ $ACT = act_edit($ACT); }else{ unlock($ID); //try to unlock @@ -442,7 +442,7 @@ function act_auth($act){ } /** - * Handle 'edit', 'preview' + * Handle 'edit', 'preview', 'recover' * * @author Andreas Gohr */ @@ -450,6 +450,39 @@ function act_edit($act){ global $ID; global $INFO; + global $TEXT; + global $RANGE; + global $PRE; + global $SUF; + global $REV; + global $SUM; + global $lang; + global $DATE; + + if (!isset($TEXT)) { + if ($INFO['exists']) { + if ($RANGE) { + list($PRE,$TEXT,$SUF) = rawWikiSlices($RANGE,$ID,$REV); + } else { + $TEXT = rawWiki($ID,$REV); + } + } else { + $data = array($ID); + $TEXT = trigger_event('HTML_PAGE_FROMTEMPLATE',$data,'pageTemplate',true); + } + } + + //set summary default + if(!$SUM){ + if($REV){ + $SUM = $lang['restored']; + }elseif(!$INFO['exists']){ + $SUM = $lang['created']; + } + } + + if(!$DATE) $DATE = $INFO['lastmod']; + //check if locked by anyone - if not lock for my self $lockedby = checklock($ID); if($lockedby) return 'locked'; diff --git a/inc/html.php b/inc/html.php index d9766e543..ccab83a24 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1134,54 +1134,26 @@ function html_edit($text=null,$include='edit'){ //FIXME: include needed? global $ID; global $REV; global $DATE; - global $RANGE; global $PRE; global $SUF; global $INFO; global $SUM; global $lang; global $conf; + global $TEXT; - //set summary default - if(!$SUM){ - if($REV){ - $SUM = $lang['restored']; - }elseif(!$INFO['exists']){ - $SUM = $lang['created']; - } - } - - //no text? Load it! - if(!isset($text)){ - $pr = false; //no preview mode - if($INFO['exists']){ - if($RANGE){ - list($PRE,$text,$SUF) = rawWikiSlices($RANGE,$ID,$REV); - }else{ - $text = rawWiki($ID,$REV); - } - $check = md5($text); - $mod = false; - }else{ - //try to load a pagetemplate - $data = array($ID); - $text = trigger_event('HTML_PAGE_FROMTEMPLATE',$data,'pageTemplate',true); - $check = md5(''); - $mod = $text!==''; - } - }else{ - $pr = true; //preview mode - if (isset($_REQUEST['changecheck'])) { - $check = $_REQUEST['changecheck']; - $mod = md5($text)!==$check; - } else { - // Why? Assume default text is unmodified. - $check = md5($text); - $mod = false; - } + if (isset($_REQUEST['changecheck'])) { + $check = $_REQUEST['changecheck']; + } elseif(!$INFO['exists']){ + // $TEXT has been loaded from page template + $check = md5(''); + } else { + $check = md5($TEXT); } + $mod = md5($TEXT) !== $check; $wr = $INFO['writable'] && !$INFO['locked']; + $include = 'edit'; if($wr){ if ($REV) $include = 'editrev'; }else{ @@ -1192,7 +1164,6 @@ function html_edit($text=null,$include='edit'){ //FIXME: include needed? } $include = 'read'; } - if(!$DATE) $DATE = $INFO['lastmod']; global $license; @@ -1204,7 +1175,7 @@ function html_edit($text=null,$include='edit'){ //FIXME: include needed? $form->addHidden('suffix', $SUF); $form->addHidden('changecheck', $check); - $data = compact('wr', 'text', 'form'); + $data = compact('wr', 'form'); $data['media_manager'] = true; $data['intro_locale'] = $include; trigger_event('HTML_EDIT_FORMSELECTION', $data, 'html_edit_form', true); @@ -1266,10 +1237,11 @@ function html_edit($text=null,$include='edit'){ //FIXME: include needed? * @triggers HTML_EDITFORM_OUTPUT */ function html_edit_form($param) { + global $TEXT; extract($param); $attr = array('tabindex'=>'1'); if (!$wr) $attr['readonly'] = 'readonly'; - $form->addElement(form_makeWikiText($text, $attr)); + $form->addElement(form_makeWikiText($TEXT, $attr)); } /** diff --git a/inc/template.php b/inc/template.php index f15b51694..371ef2a7b 100644 --- a/inc/template.php +++ b/inc/template.php @@ -60,15 +60,15 @@ function tpl_content_core(){ case 'show': html_show(); break; - case 'preview': - html_edit($TEXT); - html_show($TEXT); - break; + case 'locked': + html_locked(); + case 'edit': case 'recover': - html_edit($TEXT); + html_edit(); break; - case 'edit': + case 'preview': html_edit(); + html_show($TEXT); break; case 'draft': html_draft(); @@ -104,10 +104,6 @@ function tpl_content_core(){ html_conflict(con($PRE,$TEXT,$SUF),$SUM); html_diff(con($PRE,$TEXT,$SUF),false); break; - case 'locked': - html_locked(); - html_edit(); - break; case 'login': html_login(); break; -- cgit v1.2.3 From 5a932e77b3c806514203323540cb30e5ab9c28cf Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 9 Mar 2010 11:42:56 +0100 Subject: Remove wordblock action, issue a msg instead --- inc/actions.php | 16 +++++++++++----- inc/html.php | 2 +- inc/lang/bg/wordblock.txt | 3 --- inc/lang/ca-valencia/wordblock.txt | 4 ---- inc/lang/ca/wordblock.txt | 4 ---- inc/lang/cs/wordblock.txt | 3 --- inc/lang/da/wordblock.txt | 3 --- inc/lang/de-informal/wordblock.txt | 4 ---- inc/lang/de/lang.php | 3 +++ inc/lang/de/wordblock.txt | 4 ---- inc/lang/el/wordblock.txt | 4 ---- inc/lang/en/lang.php | 3 +++ inc/lang/en/wordblock.txt | 4 ---- inc/lang/eo/wordblock.txt | 3 --- inc/lang/es/wordblock.txt | 4 ---- inc/lang/et/wordblock.txt | 4 ---- inc/lang/eu/wordblock.txt | 3 --- inc/lang/fa/wordblock.txt | 3 --- inc/lang/fi/wordblock.txt | 3 --- inc/lang/fo/wordblock.txt | 3 --- inc/lang/fr/wordblock.txt | 4 ---- inc/lang/gl/wordblock.txt | 4 ---- inc/lang/he/wordblock.txt | 4 ---- inc/lang/hr/wordblock.txt | 3 --- inc/lang/hu/wordblock.txt | 6 ------ inc/lang/ia/wordblock.txt | 3 --- inc/lang/id/wordblock.txt | 4 ---- inc/lang/it/wordblock.txt | 4 ---- inc/lang/ja/wordblock.txt | 4 ---- inc/lang/ko/wordblock.txt | 4 ---- inc/lang/ku/wordblock.txt | 4 ---- inc/lang/lb/wordblock.txt | 3 --- inc/lang/lt/wordblock.txt | 4 ---- inc/lang/lv/wordblock.txt | 4 ---- inc/lang/mg/wordblock.txt | 5 ----- inc/lang/mr/wordblock.txt | 3 --- inc/lang/nl/wordblock.txt | 4 ---- inc/lang/no/wordblock.txt | 4 ---- inc/lang/pl/wordblock.txt | 4 ---- inc/lang/pt-br/wordblock.txt | 4 ---- inc/lang/pt/wordblock.txt | 7 ------- inc/lang/ro/wordblock.txt | 4 ---- inc/lang/ru/wordblock.txt | 3 --- inc/lang/sk/wordblock.txt | 3 --- inc/lang/sl/wordblock.txt | 4 ---- inc/lang/sq/wordblock.txt | 3 --- inc/lang/sr/wordblock.txt | 4 ---- inc/lang/sv/wordblock.txt | 4 ---- inc/lang/th/wordblock.txt | 3 --- inc/lang/tr/wordblock.txt | 4 ---- inc/lang/uk/wordblock.txt | 4 ---- inc/lang/vi/wordblock.txt | 3 --- inc/lang/zh-tw/wordblock.txt | 4 ---- inc/lang/zh/wordblock.txt | 3 --- inc/template.php | 3 --- 55 files changed, 18 insertions(+), 197 deletions(-) delete mode 100644 inc/lang/bg/wordblock.txt delete mode 100644 inc/lang/ca-valencia/wordblock.txt delete mode 100644 inc/lang/ca/wordblock.txt delete mode 100644 inc/lang/cs/wordblock.txt delete mode 100644 inc/lang/da/wordblock.txt delete mode 100644 inc/lang/de-informal/wordblock.txt delete mode 100644 inc/lang/de/wordblock.txt delete mode 100644 inc/lang/el/wordblock.txt delete mode 100644 inc/lang/en/wordblock.txt delete mode 100644 inc/lang/eo/wordblock.txt delete mode 100644 inc/lang/es/wordblock.txt delete mode 100644 inc/lang/et/wordblock.txt delete mode 100644 inc/lang/eu/wordblock.txt delete mode 100644 inc/lang/fa/wordblock.txt delete mode 100644 inc/lang/fi/wordblock.txt delete mode 100644 inc/lang/fo/wordblock.txt delete mode 100644 inc/lang/fr/wordblock.txt delete mode 100644 inc/lang/gl/wordblock.txt delete mode 100644 inc/lang/he/wordblock.txt delete mode 100644 inc/lang/hr/wordblock.txt delete mode 100644 inc/lang/hu/wordblock.txt delete mode 100644 inc/lang/ia/wordblock.txt delete mode 100644 inc/lang/id/wordblock.txt delete mode 100644 inc/lang/it/wordblock.txt delete mode 100644 inc/lang/ja/wordblock.txt delete mode 100644 inc/lang/ko/wordblock.txt delete mode 100644 inc/lang/ku/wordblock.txt delete mode 100644 inc/lang/lb/wordblock.txt delete mode 100644 inc/lang/lt/wordblock.txt delete mode 100644 inc/lang/lv/wordblock.txt delete mode 100644 inc/lang/mg/wordblock.txt delete mode 100644 inc/lang/mr/wordblock.txt delete mode 100644 inc/lang/nl/wordblock.txt delete mode 100644 inc/lang/no/wordblock.txt delete mode 100644 inc/lang/pl/wordblock.txt delete mode 100644 inc/lang/pt-br/wordblock.txt delete mode 100644 inc/lang/pt/wordblock.txt delete mode 100644 inc/lang/ro/wordblock.txt delete mode 100644 inc/lang/ru/wordblock.txt delete mode 100644 inc/lang/sk/wordblock.txt delete mode 100644 inc/lang/sl/wordblock.txt delete mode 100644 inc/lang/sq/wordblock.txt delete mode 100644 inc/lang/sr/wordblock.txt delete mode 100644 inc/lang/sv/wordblock.txt delete mode 100644 inc/lang/th/wordblock.txt delete mode 100644 inc/lang/tr/wordblock.txt delete mode 100644 inc/lang/uk/wordblock.txt delete mode 100644 inc/lang/vi/wordblock.txt delete mode 100644 inc/lang/zh-tw/wordblock.txt delete mode 100644 inc/lang/zh/wordblock.txt (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 5802bd6f5..2be5259fd 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -204,7 +204,7 @@ function act_clean($act){ if(!in_array($act,array('login','logout','register','save','cancel','edit','draft', 'preview','search','show','check','index','revisions', 'diff','recent','backlink','admin','subscribe','revert', - 'unsubscribe','profile','resendpwd','recover','wordblock', + 'unsubscribe','profile','resendpwd','recover', 'draftdel','subscribens','unsubscribens',)) && substr($act,0,7) != 'export_' ) { msg('Command unknown: '.htmlspecialchars($act),-1); return 'show'; @@ -311,10 +311,13 @@ function act_save($act){ global $TEXT; global $SUF; global $SUM; + global $lang; //spam check - if(checkwordblock()) - return 'wordblock'; + if(checkwordblock()) { + msg($lang['wordblock'], -1); + return 'edit'; + } //conflict check //FIXME use INFO if($DATE != 0 && @filemtime(wikiFN($ID)) > $DATE ) return 'conflict'; @@ -353,8 +356,11 @@ function act_revert($act){ } // spam check - if(checkwordblock($Text)) - return 'wordblock'; + + if (checkwordblock($text)) { + msg($lang['wordblock'], -1); + return 'edit'; + } saveWikiText($ID,$text,$sum,false); msg($sum,1); diff --git a/inc/html.php b/inc/html.php index ccab83a24..ae3e56e0a 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1130,7 +1130,7 @@ function html_updateprofile(){ * @triggers HTML_PAGE_FROMTEMPLATE * @author Andreas Gohr */ -function html_edit($text=null,$include='edit'){ //FIXME: include needed? +function html_edit(){ global $ID; global $REV; global $DATE; diff --git a/inc/lang/bg/wordblock.txt b/inc/lang/bg/wordblock.txt deleted file mode 100644 index 1afbae21d..000000000 --- a/inc/lang/bg/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== Блокиран СПАМ ====== - -Промените ви **не** бяха запазени, защото съдържат една или повече забранени думи. Ако сте се опитали да пуснете спам в уикито и таз хубава! Ако смятате, че това е грешка, свържете се с администратора на това Wiki. diff --git a/inc/lang/ca-valencia/wordblock.txt b/inc/lang/ca-valencia/wordblock.txt deleted file mode 100644 index 718bfe883..000000000 --- a/inc/lang/ca-valencia/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Bloqueig de SPAM ====== - -Els seus canvis *no* s'han guardat perque contenen una o més paraules prohibides. Si ha intentat posar spam en el wiki.. ¡malament! Si pensa que açò és un erro, contacte en l'administrador d'este wiki. - diff --git a/inc/lang/ca/wordblock.txt b/inc/lang/ca/wordblock.txt deleted file mode 100644 index 1b5f5fb36..000000000 --- a/inc/lang/ca/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Brossa blocada ====== - -Els canvis **no** s'han desat perquè contenen una o més paraules blocades. Volíeu inundar el wiki amb brossa? Molt mal fet! Si penseu que això és un error, contacteu amb l'administrador d'aquest Wiki. - diff --git a/inc/lang/cs/wordblock.txt b/inc/lang/cs/wordblock.txt deleted file mode 100644 index 75fe58e0c..000000000 --- a/inc/lang/cs/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM nebyl povolen ====== - -Vaše změny **nebyly uloženy**, protože obsahují jedno nebo více nepovolených slov. Wiki si nepotrpí na spam! Pokud se domníváte, že jde o omyl, kontaktujte správce. diff --git a/inc/lang/da/wordblock.txt b/inc/lang/da/wordblock.txt deleted file mode 100644 index 5a1c0d754..000000000 --- a/inc/lang/da/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM blokeret ====== - -Dine ændringer blev **ikke** gemt da de indeholder et eller flere uønskede ord. Kontakt venligst admin, hvis du mener dette er en fejl. diff --git a/inc/lang/de-informal/wordblock.txt b/inc/lang/de-informal/wordblock.txt deleted file mode 100644 index cb3e4c06a..000000000 --- a/inc/lang/de-informal/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blockiert ====== - -Deine Änderungen wurden nicht gespeichert, da sie ein oder mehrere nicht erlaubte Wörter enthielten. Falls du versucht haben solltest, das Wiki zu Spammen -- Schande über ich! Wenn du glaubst, dass der Eintrag zu Unrecht blockiert wurde, kontaktiere bitte den Administrator des Wikis. - diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index 9f426c2dc..e61a95bce 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -273,3 +273,6 @@ $lang['days'] = 'vor %d Tagen'; $lang['hours'] = 'vor %d Stunden'; $lang['minutes'] = 'vor %d Minuten'; $lang['seconds'] = 'vor %d Sekunden'; + +$lang['wordblock'] = 'Deine Bearbeitung wurde nicht gespeichert, da sie gesperrten Text enthielt (Spam).'; + diff --git a/inc/lang/de/wordblock.txt b/inc/lang/de/wordblock.txt deleted file mode 100644 index 14622ebc2..000000000 --- a/inc/lang/de/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blockiert ====== - -Ihre Änderungen wurden nicht gespeichert, da sie ein oder mehrere nicht erlaubte Wörter enthielten. Falls Sie versucht haben sollten, das Wiki zu Spammen -- Schande über Sie! Wenn Sie glauben, dass der Eintrag zu Unrecht blockiert wurde, kontaktieren Sie bitte den Administrator des Wikis. - diff --git a/inc/lang/el/wordblock.txt b/inc/lang/el/wordblock.txt deleted file mode 100644 index b54e8ef77..000000000 --- a/inc/lang/el/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Εντοπίστηκε SPAM ====== - -Οι αλλαγές σας **δεν** αποθηκεύτηκαν επειδή βρέθηκε τουλάχιστον μία μη αποδεκτή λέξη. Εάν προσπαθήσατε να προσθέσετε spam σε αυτό το wiki -- κακώς! Εάν πιστεύετε ότι αυτό δεν είναι σωστό, απευθυνθείτε στον διαχειριστή της εφαρμογής. - diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 7cbf10029..d85ceb3db 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -310,4 +310,7 @@ $lang['hours'] = '%d hours ago'; $lang['minutes'] = '%d minutes ago'; $lang['seconds'] = '%d seconds ago'; +$lang['wordblock'] = 'Your change was not saved because it contains blocked text (spam).'; + + //Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/inc/lang/en/wordblock.txt b/inc/lang/en/wordblock.txt deleted file mode 100644 index f0f7d759d..000000000 --- a/inc/lang/en/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blocked ====== - -Your changes were **not** saved because it contains one or more blocked words. If you tried to spam the Wiki -- Bad dog! If you think this is an error, contact the administrator of this Wiki. - diff --git a/inc/lang/eo/wordblock.txt b/inc/lang/eo/wordblock.txt deleted file mode 100644 index 64bb19e5c..000000000 --- a/inc/lang/eo/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAMO estis blokita ====== - -Viaj redaktoj ne estas konservitaj, ĉar en la teksto estis trovitaj unu aŭ kelkaj malpermesindaj vortoj, ŝajnante spamo. Se vi pensas, ke tio estas eraro, bonvolu kontakti la administranton de la vikio. \ No newline at end of file diff --git a/inc/lang/es/wordblock.txt b/inc/lang/es/wordblock.txt deleted file mode 100644 index 739a1b76b..000000000 --- a/inc/lang/es/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM bloqueado ====== - -Tus cambios **no** se han guardado porque contienen una o más palabras prohibidas. Si has intentado spamear el Wiki: ¡Perro malo! Si crees que es un error contacta con el administrador de este Wiki. - diff --git a/inc/lang/et/wordblock.txt b/inc/lang/et/wordblock.txt deleted file mode 100644 index 65d0d6ac3..000000000 --- a/inc/lang/et/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPÄMM blokeeritud ====== - -Sinu muutusi kahjuks **ei** salvestatud kuna tekst sisaldab ühte või rohkem blokeeritud sõna. Kas Sa üritad Wikile spämmi saata -- oh sa põrsas! Kui aga arvad, et tegemist on eksitusega, siis suhtle Wiki administraatoriga. - diff --git a/inc/lang/eu/wordblock.txt b/inc/lang/eu/wordblock.txt deleted file mode 100644 index 0af3fb26c..000000000 --- a/inc/lang/eu/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAMaren aurkako babesa ====== - -Zure aldaketak **ez** dira gorde aurrez debekatutako hitzak erabili dituzulako. Wiki-a spammeatzen saitu bazara... -- Aiss osobuko! (VS). Hau akats bat dela uste baduzu jarri arremanetan Wiki-aren administratzailearekin. diff --git a/inc/lang/fa/wordblock.txt b/inc/lang/fa/wordblock.txt deleted file mode 100644 index a78c86f06..000000000 --- a/inc/lang/fa/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== اسپم مسدود شد ====== - -این تغییرات ذخیره **نمی‌شود**، چون چند کلمه از کلمه‌های مسدود شده در آن یافت شده است. اگر فکر می‌کنید که نباید این اتفاق می‌افتاد با مدیر سیستم تماس بگیرید. \ No newline at end of file diff --git a/inc/lang/fi/wordblock.txt b/inc/lang/fi/wordblock.txt deleted file mode 100644 index 4e416c68c..000000000 --- a/inc/lang/fi/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== Roskaposti torjuttu ====== - -Muutoksiasi **ei** talletettu, koska ne pitivät sisällään yhden tai useampia epäkelpoja sanoja. Jos yritit spämmätä Wikiä, häpeä! Jos pidät tätä virheenä ota yhteyttä wikin ylläpitäjään. diff --git a/inc/lang/fo/wordblock.txt b/inc/lang/fo/wordblock.txt deleted file mode 100644 index f3a9b9dcd..000000000 --- a/inc/lang/fo/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM banning ====== - -Tínar broytingar vóru **ikki** goymdar av tí at tær innihalda eitt ella fleiri óynskt orð. Fá vinarliga samband við admin, um tú heldur at hetta er eitt brek. diff --git a/inc/lang/fr/wordblock.txt b/inc/lang/fr/wordblock.txt deleted file mode 100644 index 608ad00d7..000000000 --- a/inc/lang/fr/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Modification bloquée ====== - -Vos modifications n'ont **pas été enregistrées** car elles contiennent un ou plusieurs mots bloqués. Si vous avez essayé de spammer le Wiki, c'est une mauvaise idée ! Si vous pensez que c'est une erreur, contactez l'administrateur de ce Wiki. - diff --git a/inc/lang/gl/wordblock.txt b/inc/lang/gl/wordblock.txt deleted file mode 100644 index ec8d67aff..000000000 --- a/inc/lang/gl/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Bloqueo por Correo-lixo ====== - -Os teus trocos **non** foron gardados porque conteñen unha ou varias verbas bloqueadas. Se tentaches deixar correo-lixo no wiki -- Estívoche ben! Se consideras que é un erro, contacta co administrador deste Wiki. - diff --git a/inc/lang/he/wordblock.txt b/inc/lang/he/wordblock.txt deleted file mode 100644 index b7c3f0a7c..000000000 --- a/inc/lang/he/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== הצפה נחסמה ====== - -השנויים שלך **לא** נשמרו מפני שהם מכילים מילה חסומה או יותר. אם באמת ניסית להציף את הויקי -- כלב רע! אם נראה לך כי זו טעות,ניתן ליצור קשר עם מנהל הויקי (מפני שאנחנו לא רוצים לקרוא לאנשים כלבים לחינם, זה פוגע בכלבים). - diff --git a/inc/lang/hr/wordblock.txt b/inc/lang/hr/wordblock.txt deleted file mode 100644 index 7faf03c19..000000000 --- a/inc/lang/hr/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM blokiranje ====== - -Vaše izmjene **nisu** snimljene jer sadrže jednu ili više blokiranih/zabranjenih riječi. Ukoliko mislite da je to greška - molimo Vas da kontaktirate administratora. diff --git a/inc/lang/hu/wordblock.txt b/inc/lang/hu/wordblock.txt deleted file mode 100644 index 2fe2efa9b..000000000 --- a/inc/lang/hu/wordblock.txt +++ /dev/null @@ -1,6 +0,0 @@ -====== SPAM szűrés ====== - -A változtatásaid **nem** mentettük, mert egy vagy több tiltott szót tartalmaz. Ha kéretlen reklám anyagot ("SPAM") próbáltál erre a Wikire rakni, akkor szégyelld magad. - -Ha azt gondolod, hogy valami hibáról, vagy félreértésről van szó, akkor lépj kapcsolatba a Wiki-gazdával. - diff --git a/inc/lang/ia/wordblock.txt b/inc/lang/ia/wordblock.txt deleted file mode 100644 index 8c54c04a5..000000000 --- a/inc/lang/ia/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== Spam blocate ====== - -Tu modification **non** ha essite salveguardate proque illo contine un o plus parolas blocate. Si tu ha tentate spammar iste wiki: va al diabolo! Si tu pensa que isto es un error, contacta le administrator de iste wiki. \ No newline at end of file diff --git a/inc/lang/id/wordblock.txt b/inc/lang/id/wordblock.txt deleted file mode 100644 index 1e40ce381..000000000 --- a/inc/lang/id/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blocked ====== - -Maaf, tulisan Anda **tidak disimpan** karena terdapat satu atau lebih kata-kata yang **tabu**. Jika Anda mencoba melakukan SPAM wiki ini -- Bangsat lu! Tetapi, jika Anda pikir ini adalah kesalahan sistem, harap hubungi administrator wiki ini. - diff --git a/inc/lang/it/wordblock.txt b/inc/lang/it/wordblock.txt deleted file mode 100644 index 040742d6d..000000000 --- a/inc/lang/it/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Modifica bloccata ====== - -Le tue modifiche **non sono state salvate** perché contengono una o più parole vietate. Se hai cercato di spammare il Wiki -- sei un bambino cattivo! Se pensi che ci sia un errore contatta l'amministratore di questo Wiki. - diff --git a/inc/lang/ja/wordblock.txt b/inc/lang/ja/wordblock.txt deleted file mode 100644 index d7edd8765..000000000 --- a/inc/lang/ja/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== スパム ブロック ====== - -除外する単語が含まれているため、変更は**保存されませんでした**。 もし意図したスパム行為でないのであれば、管理者に連絡してください。 - diff --git a/inc/lang/ko/wordblock.txt b/inc/lang/ko/wordblock.txt deleted file mode 100644 index 35e251187..000000000 --- a/inc/lang/ko/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== 스팸 차단 ====== - -하나 혹은 그 이상의 차단된 단어가 포함되어 있으므로 변경 내용이 저장되지 **않았습니다.** 나쁜 로봇 같으니! 스팸이나 추가하려 하고! 만일 로봇이 아니라 사람이고, 오류라고 생각하신다면, 관리자에게 문의하십시오. - diff --git a/inc/lang/ku/wordblock.txt b/inc/lang/ku/wordblock.txt deleted file mode 100644 index f0f7d759d..000000000 --- a/inc/lang/ku/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blocked ====== - -Your changes were **not** saved because it contains one or more blocked words. If you tried to spam the Wiki -- Bad dog! If you think this is an error, contact the administrator of this Wiki. - diff --git a/inc/lang/lb/wordblock.txt b/inc/lang/lb/wordblock.txt deleted file mode 100644 index 846c8cfe7..000000000 --- a/inc/lang/lb/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM geblockt ====== - -Deng Ännerunge si **net** gespäichert ginn well se een oder méi blockéiert Wieder enthalen. Wanns de mengs dat wier e Feeler, da kontaktéier den Administrator vun dësem Wiki. diff --git a/inc/lang/lt/wordblock.txt b/inc/lang/lt/wordblock.txt deleted file mode 100644 index 43ac79bbf..000000000 --- a/inc/lang/lt/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== NESPAM'INK! ====== - -Jūsų pakeitimai **nebuvo išsaugoti**, nes juose rasta vienas ar daugiau užblokuotų žodžių. Jeigu manote, kad tai klaida, susisiekite su administracija. Jeigu sugalvojote čia spam'inti - pyzdink nachui iš čia, byby bled! - diff --git a/inc/lang/lv/wordblock.txt b/inc/lang/lv/wordblock.txt deleted file mode 100644 index aa7051c8d..000000000 --- a/inc/lang/lv/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAMs bloķēts ====== - -Tavas izmaiņas **nav** saglabātas, jo satur vienu vai vairākus aizliegtos vārdus. Ja uzskati, ka tā ir kļūda, sazinies ar administratoru. - diff --git a/inc/lang/mg/wordblock.txt b/inc/lang/mg/wordblock.txt deleted file mode 100644 index 581d67d16..000000000 --- a/inc/lang/mg/wordblock.txt +++ /dev/null @@ -1,5 +0,0 @@ -====== SPAM Voasakana ====== - -Tsy voarakitra ny fanovana nataonao satria misy teny voarara ao. Raha nanandrana nandefa spam ny wiki ianao dia -- Alika maty! Raha heverinao fa error dia ilazao ny Admin. - - diff --git a/inc/lang/mr/wordblock.txt b/inc/lang/mr/wordblock.txt deleted file mode 100644 index e885cbed9..000000000 --- a/inc/lang/mr/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== भंकस रोखली ====== - -तुमचे बदल सुरक्षित केलेले ** नाहीत ** कारण त्यामधे एक किंवा अधिक निषिद्ध शब्द आहेत. जर तुम्ही मुद्दामच विकिवर भंकस करण्याचा प्रयत्न केला असेल तर असले चाळे बंद करा ! आणि समजा तुम्हाला असा वाटत असेल की हा मजकूर निषिद्ध समजण्याचे काही कारण नाही तर तुमच्या विकी व्यवस्थापकाशी संपर्क साधा. \ No newline at end of file diff --git a/inc/lang/nl/wordblock.txt b/inc/lang/nl/wordblock.txt deleted file mode 100644 index d887d7318..000000000 --- a/inc/lang/nl/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM geblokkeerd ====== - -Je wijzigingen zijn **niet** opgeslagen omdat ze een of meer geblokkeerde woorden bevatten. Als je probeerde de Wiki te spammen -- Foei stouterd! Als je denkt dat dit een fout is neem dan contact op met de beheerder van deze Wiki. - diff --git a/inc/lang/no/wordblock.txt b/inc/lang/no/wordblock.txt deleted file mode 100644 index 30c4c31ce..000000000 --- a/inc/lang/no/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Ordsperre ====== - -Dine endringer har **ikke** blitt lagret på grunn av at de inneholder ett eller flere ord som er sperret. Hvis du har forsøkt å lagre søppel, eller såkalt ''spam'' -- Fy deg! Hvis du anser denne beskjeden som feilaktig kan du kontakte administratoren til denne wikien. - diff --git a/inc/lang/pl/wordblock.txt b/inc/lang/pl/wordblock.txt deleted file mode 100644 index 09edb25dd..000000000 --- a/inc/lang/pl/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Blokowanie niedozwolonych treści i spamu ====== - -Twoje zmiany **nie** zostały zapisane, ponieważ zawierają niedozwolone słowa. Jeśli próbowałeś(aś) umieścić niedozwolone treści to wstydź się! - diff --git a/inc/lang/pt-br/wordblock.txt b/inc/lang/pt-br/wordblock.txt deleted file mode 100644 index c2c9cbdb0..000000000 --- a/inc/lang/pt-br/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Bloqueio de SPAM ====== - -Suas modificações **não** foram salvas porque elas contém uma ou mais palavras bloqueadas. Se você tentou enviar //spam// para o //wiki//, isso é feio, muito feio! Agora, se você acha que esse bloqueio foi indevido, por favor entre em contato com o administrador desse wiki. - diff --git a/inc/lang/pt/wordblock.txt b/inc/lang/pt/wordblock.txt deleted file mode 100644 index a88063c9b..000000000 --- a/inc/lang/pt/wordblock.txt +++ /dev/null @@ -1,7 +0,0 @@ -====== Bloquear SPAM ====== - -As suas alterações foram **bloqueadas**, porque contêm uma ou mais palavras consideradas abusivas (SPAM). - -Se pensa que isto não está correcto, por favor contacte o administrador deste site Wiki. - ----- diff --git a/inc/lang/ro/wordblock.txt b/inc/lang/ro/wordblock.txt deleted file mode 100644 index 1fa7bd6cd..000000000 --- a/inc/lang/ro/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM blocat ====== - -Modificările **nu** au fost salvate deoarece conţin unul sau mai multe cuvinte nepermise. Daca ai încercat să spamezi Wiki-ul -- Eşti un om rău! Dacă crezi că asta e o eroare, contactează administratorul acestui Wiki. - diff --git a/inc/lang/ru/wordblock.txt b/inc/lang/ru/wordblock.txt deleted file mode 100644 index 09c663fb3..000000000 --- a/inc/lang/ru/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== СПАМ заблокирован ====== - -Ваши изменения **не были** сохранены, так как они содержат одно или более запрещенных слов. Если Вы пытались добавить спам в Вики -- ай-яй-яй! Если Вы считаете, что это какая-то ошибка, обратитесь к администратору вики. diff --git a/inc/lang/sk/wordblock.txt b/inc/lang/sk/wordblock.txt deleted file mode 100644 index 4901b2aab..000000000 --- a/inc/lang/sk/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM nebol povolený ====== - -Vaše zmeny **neboli uložené**, pretože obsahujú jedno alebo viacej nepovolených slov. Wiki si nepotrpí na spam! Pokiaľ sa domnievate, že ide o omyl, kontaktujte správcu. diff --git a/inc/lang/sl/wordblock.txt b/inc/lang/sl/wordblock.txt deleted file mode 100644 index c9d9c1ca0..000000000 --- a/inc/lang/sl/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Blokiran SPAM ====== - -Vaše spremembe **niso** bile shranjene, ker so vsebovale eno ali več prepovedanih besed. Če ste poskusili nasmetiti Wiki -- Fuj Fido! Če mislite da je to napaka, stopite v stik z administratorjem. - diff --git a/inc/lang/sq/wordblock.txt b/inc/lang/sq/wordblock.txt deleted file mode 100644 index 6f1085561..000000000 --- a/inc/lang/sq/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== U bllokua SPAM ====== - -Ndryshimet tuaja **nuk** u ruajtën sepse ato përmbanin një ose më shumë fjalë të bllokuara. Nëse u përpoqët të bënit spam në këtë Wiki -- Djalë i Keq! Nëse mendoni se ky është një gabim, kontaktoni administratorin e këtij Wiki. \ No newline at end of file diff --git a/inc/lang/sr/wordblock.txt b/inc/lang/sr/wordblock.txt deleted file mode 100644 index 56ecde3fd..000000000 --- a/inc/lang/sr/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== СПАМ је блокиран ====== - -Ваше измене **нису** сачуване јер садрже једну или више блокираних речи. Ако сте покушали да спамујете вики -- надрљаћете! Ако мислите да је ово грешка, контактирајте администратора овог викија. - diff --git a/inc/lang/sv/wordblock.txt b/inc/lang/sv/wordblock.txt deleted file mode 100644 index e1b632ce4..000000000 --- a/inc/lang/sv/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Stoppade SPAM ====== - -Dina ändringar har **inte** sparats på grund av att de innehåller ett eller flera ord som spärrats. Om du har försökt att spara skräp, s k ''spam'' -- Fyyy på dig! Om du anser att det här beror på ett fel, kontakta wikins administratör. - diff --git a/inc/lang/th/wordblock.txt b/inc/lang/th/wordblock.txt deleted file mode 100644 index 653e341e7..000000000 --- a/inc/lang/th/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== สแปมถูกกีดกัน ====== - -การเปลี่ยนแปลงของคุณ **ไม่**ได้รับการบันทึกเพราะมันมีหนึ่งข้อความต้องห้ามหรือมากกว่า ถ้าคุณพยายามสแปมวิกินี้ --คุณไม่น่ารักเลยนะ เด็กโง่! แต่ถ้าคุณคิดว่านี่เป็นข้อผิดพลาดแล้วละก็ ช่วยติดต่อผู้ดูแลวิกินี้ให้ด้วย \ No newline at end of file diff --git a/inc/lang/tr/wordblock.txt b/inc/lang/tr/wordblock.txt deleted file mode 100644 index 506cbc793..000000000 --- a/inc/lang/tr/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== SPAM bloke edildi ====== - -Değişiklikleriniz **kaydedilmedi**, çünkü değişikliklerinizde bir veya daha fazla engellenen kelime var. Eğer Wikiyi spamlamaya çalışıyorsan -- Oh olsun! Eğer bunun bir hata olduğunu düşünüyorsanız, bu Wiki yöneticisiyle iletişime geçin. - diff --git a/inc/lang/uk/wordblock.txt b/inc/lang/uk/wordblock.txt deleted file mode 100644 index 869f93a87..000000000 --- a/inc/lang/uk/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== Заблокований СПАМ ====== - -Ваші зміни **не були** збережені тому що вони містять одне чи декілька заблокованих слів. Якщо ви намагались додати спам до вікі, то нехай вам буде соромно. Якщо ви вважаєте, що це помилка, зверніться до адміністратора цієї Вікі. - diff --git a/inc/lang/vi/wordblock.txt b/inc/lang/vi/wordblock.txt deleted file mode 100644 index b219ca141..000000000 --- a/inc/lang/vi/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== SPAM bị chận ====== - -Các thay đổi **không** được bảo lưu vì có một hoặc nhiều từ bị ngăn chận. Nếu muốn spam Wiki này -- ngưng liền! Nếu đây là một sai lầm, liên lạc với người quản lý của Wiki. diff --git a/inc/lang/zh-tw/wordblock.txt b/inc/lang/zh-tw/wordblock.txt deleted file mode 100644 index 671e88b87..000000000 --- a/inc/lang/zh-tw/wordblock.txt +++ /dev/null @@ -1,4 +0,0 @@ -====== 拒絕垃圾資料(SPAM blocked) ====== - -您的變更並**不會**被存起來,因為它包含了一些被限制的字眼。若您還試著要丟垃圾資料到 Wiki 的話, -- Bad dog! 不過,若您認為這是誤判,那麼請與這個 Wiki 的管理員(Admin)談。 - diff --git a/inc/lang/zh/wordblock.txt b/inc/lang/zh/wordblock.txt deleted file mode 100644 index 72c473a59..000000000 --- a/inc/lang/zh/wordblock.txt +++ /dev/null @@ -1,3 +0,0 @@ -====== 拒绝垃圾资料 ====== - -您的更改 **并没有** 保存,因为它包含了一个或多个被限制的字眼。如果您尝试为本维基添加垃圾信息 -- 你是一个大坏蛋!如果您认为这是一个系统错误,请联系本维基的管理员。 diff --git a/inc/template.php b/inc/template.php index 371ef2a7b..334175d26 100644 --- a/inc/template.php +++ b/inc/template.php @@ -73,9 +73,6 @@ function tpl_content_core(){ case 'draft': html_draft(); break; - case 'wordblock': - html_edit($TEXT,'wordblock'); - break; case 'search': html_search(); break; -- cgit v1.2.3 From 8d67c48ac883f874037848be833920f4a6426995 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 10 Mar 2010 10:07:57 +0100 Subject: Correct edit conflict detection Edit conflicts occur when a page has been edited since starting the current edit. In order to detect them, the date of the newest revision is saved. --- inc/actions.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 2be5259fd..01d1d29d4 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -312,14 +312,15 @@ function act_save($act){ global $SUF; global $SUM; global $lang; + global $INFO; //spam check if(checkwordblock()) { msg($lang['wordblock'], -1); return 'edit'; } - //conflict check //FIXME use INFO - if($DATE != 0 && @filemtime(wikiFN($ID)) > $DATE ) + //conflict check + if($DATE != 0 && $INFO['meta']['date']['modified'] > $DATE ) return 'conflict'; //save it @@ -487,7 +488,9 @@ function act_edit($act){ } } - if(!$DATE) $DATE = $INFO['lastmod']; + // Use the date of the newest revision, not of the revision we edit + // This is used for conflict detection + if(!$DATE) $DATE = $INFO['meta']['date']['modified']; //check if locked by anyone - if not lock for my self $lockedby = checklock($ID); -- cgit v1.2.3 From fe17917e7668864526ec0f0ae65dd0787831d8a4 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 10 Mar 2010 10:41:32 +0100 Subject: Move & rename HTML_PAGE_FROMTEMPLATE to common.php The new COMMON_PAGE_FROMTEMPLATE is triggered by pageTemplate AFTER the template has been read but before performing the template replacements. --- inc/actions.php | 3 +-- inc/common.php | 17 ++++++++++++----- inc/html.php | 1 - 3 files changed, 13 insertions(+), 8 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 01d1d29d4..6ce67eb9a 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -474,8 +474,7 @@ function act_edit($act){ $TEXT = rawWiki($ID,$REV); } } else { - $data = array($ID); - $TEXT = trigger_event('HTML_PAGE_FROMTEMPLATE',$data,'pageTemplate',true); + $TEXT = pageTemplate($ID); } } diff --git a/inc/common.php b/inc/common.php index 0d5efbee9..6601ae478 100644 --- a/inc/common.php +++ b/inc/common.php @@ -809,14 +809,16 @@ function rawWiki($id,$rev=''){ /** * Returns the pagetemplate contents for the ID's namespace * + * @triggers COMMON_PAGE_FROMTEMPLATE * @author Andreas Gohr */ -function pageTemplate($data){ - $id = $data[0]; +function pageTemplate($id){ global $conf; - $path = dirname(wikiFN($id)); + if (is_array($id)) $id = $id[0]; + $path = dirname(wikiFN($id)); + $tpl = ''; if(@file_exists($path.'/_template.txt')){ $tpl = io_readFile($path.'/_template.txt'); }else{ @@ -830,15 +832,20 @@ function pageTemplate($data){ $path = substr($path, 0, strrpos($path, '/')); } } - return isset($tpl) ? parsePageTemplate($tpl, $id) : ''; + $data = compact('tpl', 'id'); + trigger_event('COMMON_PAGE_FROMTEMPLATE', $data, 'parsePageTemplate', true); + return $data['tpl']; } /** * Performs common page template replacements + * This is the default action for COMMON_PAGE_FROMTEMPLATE * * @author Andreas Gohr */ -function parsePageTemplate($tpl, $id) { +function parsePageTemplate($data) { + extract($data); + global $USERINFO; global $conf; diff --git a/inc/html.php b/inc/html.php index ae3e56e0a..cfa4dbe3d 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1127,7 +1127,6 @@ function html_updateprofile(){ /** * Preprocess edit form data * - * @triggers HTML_PAGE_FROMTEMPLATE * @author Andreas Gohr */ function html_edit(){ -- cgit v1.2.3 From b77df6012df39de023b5ebb0b60f2427a465c25f Mon Sep 17 00:00:00 2001 From: Andrey Mikhaylov Date: Fri, 12 Mar 2010 12:02:43 +0100 Subject: Russian language update --- inc/lang/ru/lang.php | 21 +++++++++++++++++++++ inc/lang/ru/wordblock.txt | 3 +++ 2 files changed, 24 insertions(+) create mode 100644 inc/lang/ru/wordblock.txt (limited to 'inc') diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index e3851dca0..3b722aea6 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -123,6 +123,27 @@ $lang['mediafiles'] = 'Доступные файлы'; $lang['js']['searchmedia'] = 'Поиск файлов'; $lang['js']['keepopen'] = 'Не закрывать окно после выбора'; $lang['js']['hidedetails'] = 'Скрыть детали'; +$lang['js']['mediatitle'] = 'Настройки ссылок'; +$lang['js']['mediadisplay'] = 'Тип ссылки'; +$lang['js']['mediaalign'] = 'Выравнивание'; +$lang['js']['mediasize'] = 'Размер изображения'; +$lang['js']['mediatarget'] = 'Цель ссылки'; +$lang['js']['mediaclose'] = 'Закрыть'; +$lang['js']['mediainsert'] = 'Вставить'; +$lang['js']['mediadisplayimg'] = 'Показывать изображение.'; +$lang['js']['mediadisplaylnk'] = 'Показывать только ссылку.'; +$lang['js']['mediasmall'] = 'Малая версия'; +$lang['js']['mediamedium'] = 'Средняя версия'; +$lang['js']['medialarge'] = 'Крупная версия'; +$lang['js']['mediaoriginal'] = 'Исходная версия'; +$lang['js']['medialnk'] = 'Ссылка на подробности'; +$lang['js']['mediadirect'] = 'Прямая ссылка на оригинал'; +$lang['js']['medianolnk'] = 'Без ссылки'; +$lang['js']['medianolink'] = 'Не давать ссылку на изображение'; +$lang['js']['medialeft'] = 'Выровнять изображение по левому краю.'; +$lang['js']['mediaright'] = 'Выровнять изображение по правому краю.'; +$lang['js']['mediacenter'] = 'Выровнять изображение по центру.'; +$lang['js']['medianoalign'] = 'Не выравнивать.'; $lang['js']['nosmblinks'] = 'Ссылка на сетевые каталоги Windows работает только из Интернет Эксплорера Но Вы можете скопировать ссылку.'; $lang['js']['linkwiz'] = 'Мастер ссылок'; diff --git a/inc/lang/ru/wordblock.txt b/inc/lang/ru/wordblock.txt new file mode 100644 index 000000000..09c663fb3 --- /dev/null +++ b/inc/lang/ru/wordblock.txt @@ -0,0 +1,3 @@ +====== СПАМ заблокирован ====== + +Ваши изменения **не были** сохранены, так как они содержат одно или более запрещенных слов. Если Вы пытались добавить спам в Вики -- ай-яй-яй! Если Вы считаете, что это какая-то ошибка, обратитесь к администратору вики. -- cgit v1.2.3 From 84645d8c01570c5ea4cda556e70beccdec25ee22 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 12 Mar 2010 12:24:04 +0100 Subject: fixed target handling for license link FS#1917 --- inc/html.php | 2 +- inc/template.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index cfa4dbe3d..3ebba65c8 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1202,7 +1202,7 @@ function html_edit(){ $form->addElement(form_makeOpenTag('div', array('class'=>'license'))); $out = $lang['licenseok']; $out .= ''; $form->addElement($out); $form->addElement(form_makeCloseTag('div')); diff --git a/inc/template.php b/inc/template.php index 334175d26..7fe440b18 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1307,14 +1307,14 @@ function tpl_license($img='badge',$imgonly=false,$return=false){ $src = license_img($img); if($src){ $out .= ' '; } } if(!$imgonly) { $out .= $lang['license']; $out .= ''; } $out .= '
'; -- cgit v1.2.3 From 05ed2c25ea0dc45eef2af0f9f4176c939af41100 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 12 Mar 2010 14:09:57 +0100 Subject: some more load fixes --- inc/load.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'inc') diff --git a/inc/load.php b/inc/load.php index e06a2c63d..dad03875a 100644 --- a/inc/load.php +++ b/inc/load.php @@ -9,12 +9,8 @@ spl_autoload_register('load_autoload'); // require all the common libraries -// for a e few of these order does matter -require_once(DOKU_INC.'inc/IXR_Library.php'); -require_once(DOKU_INC.'inc/adLDAP.php'); +// for a few of these order does matter require_once(DOKU_INC.'inc/blowfish.php'); -require_once(DOKU_INC.'inc/feedcreator.class.php'); -require_once(DOKU_INC.'inc/geshi.php'); require_once(DOKU_INC.'inc/actions.php'); require_once(DOKU_INC.'inc/changelog.php'); require_once(DOKU_INC.'inc/common.php'); @@ -49,7 +45,7 @@ require_once(DOKU_INC.'inc/auth.php'); * require()s their associated php files when an object is instantiated. * * @author Andreas Gohr - * @todo add generic loading of plugins here + * @todo add generic loading of plugins and other generically named classes */ function load_autoload($name){ static $classes = null; @@ -76,6 +72,8 @@ function load_autoload($name){ 'GeSHi' => DOKU_INC.'inc/geshi.php', 'TarLib' => DOKU_INC.'inc/TarLib.class.php', 'ZibLib' => DOKU_INC.'inc/ZipLib.class.php', + 'DokuWikiFeedCreator' => DOKU_INC.'inc/feedcreator.class.php', + 'Doku_Parser_Mode' => DOKU_INC.'inc/parser/parser.php', 'DokuWiki_Action_Plugin' => DOKU_PLUGIN.'action.php', 'DokuWiki_Admin_Plugin' => DOKU_PLUGIN.'admin.php', -- cgit v1.2.3 From c7cb395c4ee1339709918b7675e91d3d3b10050d Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 15 Mar 2010 12:16:23 +0100 Subject: Load libraries after init --- inc/init.php | 10 ++++++---- inc/load.php | 2 -- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'inc') diff --git a/inc/init.php b/inc/init.php index 7f4792cfa..ae44ad1a9 100644 --- a/inc/init.php +++ b/inc/init.php @@ -40,9 +40,6 @@ if (!defined('DOKU_E_LEVEL')) { error_reporting(DOKU_E_LEVEL); } -// load libraries -require_once(DOKU_INC.'inc/load.php'); - // init memory caches global $cache_revinfo; $cache_revinfo = array(); @@ -249,8 +246,13 @@ init_files(); scriptify(DOKU_CONF.'users.auth'); scriptify(DOKU_CONF.'acl.auth'); +// load libraries +require_once(DOKU_INC.'inc/load.php'); + // setup authentication system -auth_setup(); +if (!defined('NOSESSION')) { + auth_setup(); +} /** * Checks paths from config file diff --git a/inc/load.php b/inc/load.php index dad03875a..796ccec77 100644 --- a/inc/load.php +++ b/inc/load.php @@ -24,9 +24,7 @@ require_once(DOKU_INC.'inc/html.php'); require_once(DOKU_INC.'inc/httputils.php'); require_once(DOKU_INC.'inc/indexer.php'); require_once(DOKU_INC.'inc/infoutils.php'); -require_once(DOKU_INC.'inc/init.php'); require_once(DOKU_INC.'inc/io.php'); -require_once(DOKU_INC.'inc/load.php'); require_once(DOKU_INC.'inc/mail.php'); require_once(DOKU_INC.'inc/media.php'); require_once(DOKU_INC.'inc/pageutils.php'); -- cgit v1.2.3 From a2ea2dc1716c55791173d806d9a78c96846c72b8 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 16 Mar 2010 10:52:51 +0100 Subject: Fix special link displaying in abstract --- inc/parser/metadata.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/parser/metadata.php b/inc/parser/metadata.php index fc60e5774..f635ea1d5 100644 --- a/inc/parser/metadata.php +++ b/inc/parser/metadata.php @@ -334,8 +334,7 @@ class Doku_Renderer_metadata extends Doku_Renderer { $this->_firstimage($name['src']); if ($this->capture){ - if ($name) $this->doc .= $name; - else $this->doc .= '<'.$url.'>'; + $this->doc .= $this->_getLinkTitle($name, '<' . $url . '>'); } } @@ -345,7 +344,7 @@ class Doku_Renderer_metadata extends Doku_Renderer { if ($this->capture){ list($wikiUri, $hash) = explode('#', $wikiUri, 2); - $name = $this->_getLinkTitle($name, $wikiName.'>'.$wikiUri); + $name = $this->_getLinkTitle($name, $wikiUri); $this->doc .= $name; } } -- cgit v1.2.3 From 94d621b02d20870ce6ddac900faf60ae784f8747 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 16 Mar 2010 12:07:44 +0100 Subject: Typo in ZipLib autoloader --- inc/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/load.php b/inc/load.php index 796ccec77..f0945c5bc 100644 --- a/inc/load.php +++ b/inc/load.php @@ -69,7 +69,7 @@ function load_autoload($name){ 'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.class.php', 'GeSHi' => DOKU_INC.'inc/geshi.php', 'TarLib' => DOKU_INC.'inc/TarLib.class.php', - 'ZibLib' => DOKU_INC.'inc/ZipLib.class.php', + 'ZipLib' => DOKU_INC.'inc/ZipLib.class.php', 'DokuWikiFeedCreator' => DOKU_INC.'inc/feedcreator.class.php', 'Doku_Parser_Mode' => DOKU_INC.'inc/parser/parser.php', -- cgit v1.2.3 From e0415e22d2d7d48385734c5c4a8e1770c36426c9 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Tue, 16 Mar 2010 11:20:53 +0000 Subject: Make constants in TarLib.class.php class constants The constants are required by the class constructor, which effectively means before the autoloader is triggered. This change fixes that issue. --- inc/TarLib.class.php | 110 ++++++++++++++++++++++++++++----------------------- 1 file changed, 60 insertions(+), 50 deletions(-) (limited to 'inc') diff --git a/inc/TarLib.class.php b/inc/TarLib.class.php index a88ca63bc..3e9e81234 100644 --- a/inc/TarLib.class.php +++ b/inc/TarLib.class.php @@ -49,15 +49,15 @@ * FULL_ARCHIVE is a -1 constant that means "the complete archive" when * extracting. This is explained in Extract() */ -define('COMPRESS_GZIP',1); -define('COMPRESS_BZIP',2); -define('COMPRESS_AUTO',3); -define('COMPRESS_NONE',0); -define('TARLIB_VERSION','1.2'); -define('FULL_ARCHIVE',-1); -define('ARCHIVE_DYNAMIC',0); -define('ARCHIVE_RENAMECOMP',5); -define('COMPRESS_DETECT',-1); +#define('COMPRESS_GZIP',1); +#define('COMPRESS_BZIP',2); +#define('COMPRESS_AUTO',3); +#define('COMPRESS_NONE',0); +#define('TARLIB_VERSION','1.2'); +#define('FULL_ARCHIVE',-1); +#define('ARCHIVE_DYNAMIC',0); +#define('ARCHIVE_RENAMECOMP',5); +#define('COMPRESS_DETECT',-1); class TarLib { var $_comptype; @@ -68,6 +68,16 @@ class TarLib { var $_result; var $_initerror; + const COMPRESS_GZIP = 1; + const COMPRESS_BZIP = 2; + const COMPRESS_AUTO = 3; + const COMPRESS_NONE = 0; + const TARLIB_VERSION = '1.2'; + const FULL_ARCHIVE = -1; + const ARCHIVE_DYNAMIC = 0; + const ARCHIVE_RENAMECOMP = 5; + const COMPRESS_DETECT = -1; + /** * constructor, initialize the class * @@ -98,49 +108,49 @@ class TarLib { * represent the GZIP or BZIP compression level. 1 produce fast compression, * and 9 produce smaller files. See the RFC 1952 for more infos. */ - function tarlib($p_filen = ARCHIVE_DYNAMIC , $p_comptype = COMPRESS_AUTO, $p_complevel = 9) { + function tarlib($p_filen = TarLib::ARCHIVE_DYNAMIC , $p_comptype = TarLib::COMPRESS_AUTO, $p_complevel = 9) { $this->_initerror = 0; $this->_nomf = $p_filen; $flag=0; if($p_comptype && $p_comptype % 5 == 0){ - $p_comptype /= ARCHIVE_RENAMECOMP; + $p_comptype /= TarLib::ARCHIVE_RENAMECOMP; $flag=1; } if($p_complevel > 0 && $p_complevel <= 9) $this->_compzlevel = $p_complevel; else $p_complevel = 9; - if($p_comptype == COMPRESS_DETECT) { - if(strtolower(substr($p_filen,-3)) == '.gz') $p_comptype = COMPRESS_GZIP; - elseif(strtolower(substr($p_filen,-4)) == '.bz2') $p_comptype = COMPRESS_BZIP; - else $p_comptype = COMPRESS_NONE; + if($p_comptype == TarLib::COMPRESS_DETECT) { + if(strtolower(substr($p_filen,-3)) == '.gz') $p_comptype = TarLib::COMPRESS_GZIP; + elseif(strtolower(substr($p_filen,-4)) == '.bz2') $p_comptype = TarLib::COMPRESS_BZIP; + else $p_comptype = TarLib::COMPRESS_NONE; } switch($p_comptype) { - case COMPRESS_GZIP: + case TarLib::COMPRESS_GZIP: if(!extension_loaded('zlib')) $this->_initerror = -1; - $this->_comptype = COMPRESS_GZIP; + $this->_comptype = TarLib::COMPRESS_GZIP; break; - case COMPRESS_BZIP: + case TarLib::COMPRESS_BZIP: if(!extension_loaded('bz2')) $this->_initerror = -2; - $this->_comptype = COMPRESS_BZIP; + $this->_comptype = TarLib::COMPRESS_BZIP; break; - case COMPRESS_AUTO: + case TarLib::COMPRESS_AUTO: if(extension_loaded('zlib')) - $this->_comptype = COMPRESS_GZIP; + $this->_comptype = TarLib::COMPRESS_GZIP; elseif(extension_loaded('bz2')) - $this->_comptype = COMPRESS_BZIP; + $this->_comptype = TarLib::COMPRESS_BZIP; else - $this->_comptype = COMPRESS_NONE; + $this->_comptype = TarLib::COMPRESS_NONE; break; default: - $this->_comptype = COMPRESS_NONE; + $this->_comptype = TarLib::COMPRESS_NONE; } - if($this->_initerror < 0) $this->_comptype = COMPRESS_NONE; + if($this->_initerror < 0) $this->_comptype = TarLib::COMPRESS_NONE; if($flag) $this->_nomf.= '.'.$this->getCompression(1); $this->_result = true; @@ -152,7 +162,7 @@ class TarLib { * This function does exactly the same as TarLib (constructor), except it * returns a status code. */ - function setArchive($p_name='', $p_comp = COMPRESS_AUTO, $p_level=9) { + function setArchive($p_name='', $p_comp = TarLib::COMPRESS_AUTO, $p_level=9) { $this->_CompTar(); $this->TarLib($p_name, $p_comp, $p_level); return $this->_result; @@ -188,7 +198,7 @@ class TarLib { * the archive. See the MaxgTar Constants to see which constants you can use. * It may look strange, but it returns the GZIP compression level. */ - function setCompression($p_comp = COMPRESS_AUTO) { + function setCompression($p_comp = TarLib::COMPRESS_AUTO) { $this->setArchive($this->_nomf, $p_comp, $this->_compzlevel); return $this->_compzlevel; } @@ -301,7 +311,7 @@ class TarLib { * permission in octal mode (prefixed with a 0) that will be given on each * extracted file. */ - function Extract($p_what = FULL_ARCHIVE, $p_to = '.', $p_remdir='', $p_mode = 0755) { + function Extract($p_what = TarLib::FULL_ARCHIVE, $p_to = '.', $p_remdir='', $p_mode = 0755) { if(!$this->_OpenRead()) return -4; // if(!@is_dir($p_to)) if(!@mkdir($p_to, 0777)) return -8; --CS if(!@is_dir($p_to)) if(!$this->_dirApp($p_to)) return -8; //--CS (route through correct dir fn) @@ -375,8 +385,8 @@ class TarLib { * it to get the human-readable description of the error. */ function Add($p_filelist, $p_add = '', $p_rem = '') { - if (($this->_nomf != ARCHIVE_DYNAMIC && @is_file($this->_nomf)) || - ($this->_nomf == ARCHIVE_DYNAMIC && !$this->_memdat)){ + if (($this->_nomf != TarLib::ARCHIVE_DYNAMIC && @is_file($this->_nomf)) || + ($this->_nomf == TarLib::ARCHIVE_DYNAMIC && !$this->_memdat)){ return $this->Create($p_filelist, $p_add, $p_rem); } @@ -524,20 +534,20 @@ class TarLib { } function _seek($p_flen, $tell=0) { - if($this->_nomf === ARCHIVE_DYNAMIC) + if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) $this->_memdat=substr($this->_memdat,0,($tell ? strlen($this->_memdat) : 0) + $p_flen); - elseif($this->_comptype == COMPRESS_GZIP) + elseif($this->_comptype == TarLib::COMPRESS_GZIP) @gzseek($this->_fp, ($tell ? @gztell($this->_fp) : 0)+$p_flen); - elseif($this->_comptype == COMPRESS_BZIP) + elseif($this->_comptype == TarLib::COMPRESS_BZIP) @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); else @fseek($this->_fp, ($tell ? @ftell($this->_fp) : 0)+$p_flen); } function _OpenRead() { - if($this->_comptype == COMPRESS_GZIP) + if($this->_comptype == TarLib::COMPRESS_GZIP) $this->_fp = @gzopen($this->_nomf, 'rb'); - elseif($this->_comptype == COMPRESS_BZIP) + elseif($this->_comptype == TarLib::COMPRESS_BZIP) $this->_fp = @bzopen($this->_nomf, 'rb'); else $this->_fp = @fopen($this->_nomf, 'rb'); @@ -546,11 +556,11 @@ class TarLib { } function _OpenWrite($add = 'w') { - if($this->_nomf === ARCHIVE_DYNAMIC) return true; + if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) return true; - if($this->_comptype == COMPRESS_GZIP) + if($this->_comptype == TarLib::COMPRESS_GZIP) $this->_fp = @gzopen($this->_nomf, $add.'b'.$this->_compzlevel); - elseif($this->_comptype == COMPRESS_BZIP) + elseif($this->_comptype == TarLib::COMPRESS_BZIP) $this->_fp = @bzopen($this->_nomf, $add.'b'); else $this->_fp = @fopen($this->_nomf, $add.'b'); @@ -559,28 +569,28 @@ class TarLib { } function _CompTar() { - if($this->_nomf === ARCHIVE_DYNAMIC || !$this->_fp) return; + if($this->_nomf === TarLib::ARCHIVE_DYNAMIC || !$this->_fp) return; - if($this->_comptype == COMPRESS_GZIP) @gzclose($this->_fp); - elseif($this->_comptype == COMPRESS_BZIP) @bzclose($this->_fp); + if($this->_comptype == TarLib::COMPRESS_GZIP) @gzclose($this->_fp); + elseif($this->_comptype == TarLib::COMPRESS_BZIP) @bzclose($this->_fp); else @fclose($this->_fp); } function _read($p_len) { - if($this->_comptype == COMPRESS_GZIP) + if($this->_comptype == TarLib::COMPRESS_GZIP) return @gzread($this->_fp,$p_len); - elseif($this->_comptype == COMPRESS_BZIP) + elseif($this->_comptype == TarLib::COMPRESS_BZIP) return @bzread($this->_fp,$p_len); else return @fread($this->_fp,$p_len); } function _write($p_data) { - if($this->_nomf === ARCHIVE_DYNAMIC) $this->_memdat .= $p_data; - elseif($this->_comptype == COMPRESS_GZIP) + if($this->_nomf === TarLib::ARCHIVE_DYNAMIC) $this->_memdat .= $p_data; + elseif($this->_comptype == TarLib::COMPRESS_GZIP) return @gzwrite($this->_fp,$p_data); - elseif($this->_comptype == COMPRESS_BZIP) + elseif($this->_comptype == TarLib::COMPRESS_BZIP) return @bzwrite($this->_fp,$p_data); else @@ -588,9 +598,9 @@ class TarLib { } function _encode($p_dat) { - if($this->_comptype == COMPRESS_GZIP) + if($this->_comptype == TarLib::COMPRESS_GZIP) return gzencode($p_dat, $this->_compzlevel); - elseif($this->_comptype == COMPRESS_BZIP) + elseif($this->_comptype == TarLib::COMPRESS_BZIP) return bzcompress($p_dat, $this->_compzlevel); else return $p_dat; } @@ -637,7 +647,7 @@ class TarLib { function _addFileList($p_fl, $p_addir, $p_remdir) { foreach($p_fl as $file) { - if(($file == $this->_nomf && $this->_nomf != ARCHIVE_DYNAMIC) || !$file || (!file_exists($file) && !is_array($file))) + if(($file == $this->_nomf && $this->_nomf != TarLib::ARCHIVE_DYNAMIC) || !$file || (!file_exists($file) && !is_array($file))) continue; if (!$this->_addFile($file, $p_addir, $p_remdir)) @@ -747,7 +757,7 @@ class TarLib { function _append($p_filelist, $p_addir="", $p_remdir="") { if(!$this->_fp) if(!$this->_OpenWrite('a')) return -6; - if($this->_nomf == ARCHIVE_DYNAMIC) { + if($this->_nomf == TarLib::ARCHIVE_DYNAMIC) { $s = strlen($this->_memdat); $this->_memdat = substr($this->_memdat,0,-512); } else { -- cgit v1.2.3 From 5ce4ea1542521e553f96e379988478345646bcb6 Mon Sep 17 00:00:00 2001 From: Michael Klier Date: Tue, 16 Mar 2010 14:50:15 +0100 Subject: added missing IXR_IntrospectionServer to autoload classes --- inc/load.php | 1 + 1 file changed, 1 insertion(+) (limited to 'inc') diff --git a/inc/load.php b/inc/load.php index f0945c5bc..faf4e9570 100644 --- a/inc/load.php +++ b/inc/load.php @@ -66,6 +66,7 @@ function load_autoload($name){ 'FeedParser' => DOKU_INC.'inc/FeedParser.php', 'IXR_Server' => DOKU_INC.'inc/IXR_Library.php', 'IXR_Client' => DOKU_INC.'inc/IXR_Library.php', + 'IXR_IntrospectionServer' => DOKU_INC.'inc/IXR_Library.php', 'Doku_Plugin_Controller'=> DOKU_INC.'inc/plugincontroller.class.php', 'GeSHi' => DOKU_INC.'inc/geshi.php', 'TarLib' => DOKU_INC.'inc/TarLib.class.php', -- cgit v1.2.3 From b080c3ddd9671fcd5a67865fe970ae0f8b5bdeed Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Wed, 17 Mar 2010 20:10:22 +0100 Subject: Interlingua language update --- inc/lang/ia/install.html | 2 +- inc/lang/ia/lang.php | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/lang/ia/install.html b/inc/lang/ia/install.html index 340d4098f..01b6f43b5 100644 --- a/inc/lang/ia/install.html +++ b/inc/lang/ia/install.html @@ -1,6 +1,6 @@

Iste pagina te assiste in le prime installation e configuration de Dokuwiki. Ulterior informationes super iste installator es disponibile in le -pagina de documentaiton de illo.

+pagina de documentation de illo.

DokuWiki usa files ordinari pro le immagazinage de paginas wiki e altere informationes associate con iste paginas (p.ex. imagines, indices de recerca, versiones ancian, etc). Pro poter functionar, DokuWiki debe haber accesso de scriptura al directorios que contine iste files. Iste installator non es capabile de configurar le permissiones de directorios. Isto normalmente debe esser facite directemente con le linea de commandos, o si tu usa un albergo web, via FTP o via le pannello de controlo de tu albergo (p.ex. cPanel).

diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php index 8429fe607..8fb4b424d 100644 --- a/inc/lang/ia/lang.php +++ b/inc/lang/ia/lang.php @@ -117,6 +117,27 @@ $lang['mediafiles'] = 'Files disponibile in'; $lang['js']['searchmedia'] = 'Cercar files'; $lang['js']['keepopen'] = 'Mantener fenestra aperte post selection'; $lang['js']['hidedetails'] = 'Celar detalios'; +$lang['js']['mediatitle'] = 'Configuration del ligamine'; +$lang['js']['mediadisplay'] = 'Typo de ligamine'; +$lang['js']['mediaalign'] = 'Alineamento'; +$lang['js']['mediasize'] = 'Dimension del imagine'; +$lang['js']['mediatarget'] = 'Destination del ligamine'; +$lang['js']['mediaclose'] = 'Clauder'; +$lang['js']['mediainsert'] = 'Inserer'; +$lang['js']['mediadisplayimg'] = 'Monstrar le imagine.'; +$lang['js']['mediadisplaylnk'] = 'Monstrar solmente le imagine.'; +$lang['js']['mediasmall'] = 'Version parve'; +$lang['js']['mediamedium'] = 'Version medie'; +$lang['js']['medialarge'] = 'Version grande'; +$lang['js']['mediaoriginal'] = 'Version original'; +$lang['js']['medialnk'] = 'Ligamine al pagina de detalios'; +$lang['js']['mediadirect'] = 'Ligamine directe verso le original'; +$lang['js']['medianolnk'] = 'Nulle ligamine'; +$lang['js']['medianolink'] = 'Non ligar verso le imagine'; +$lang['js']['medialeft'] = 'Alinear le imagine verso le sinistra.'; +$lang['js']['mediaright'] = 'Alinear le imagine verso le dextra.'; +$lang['js']['mediacenter'] = 'Alinear le imagine in le medio.'; +$lang['js']['medianoalign'] = 'Non alinear.'; $lang['js']['nosmblinks'] = 'Le ligamines a ressources de Windows functiona solmente in Microsoft Internet Explorer. Tu pote nonobstante copiar e collar le ligamine.'; $lang['js']['linkwiz'] = 'Assistente pro ligamines'; -- cgit v1.2.3 From 1c5d577c52ccb55efa0aa1569c9deac5cb4f060d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ant=C3=B3nio=20Cidre=20Bardel=C3=A1s?= Date: Wed, 17 Mar 2010 20:12:13 +0100 Subject: Galician language update --- inc/lang/gl/lang.php | 47 ++++++++++++++++++++++++++++++++++++++++++- inc/lang/gl/subscr_digest.txt | 20 ++++++++++++++++++ inc/lang/gl/subscr_form.txt | 3 +++ inc/lang/gl/subscr_list.txt | 17 ++++++++++++++++ inc/lang/gl/subscr_single.txt | 23 +++++++++++++++++++++ inc/lang/gl/wordblock.txt | 4 ++++ 6 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 inc/lang/gl/subscr_digest.txt create mode 100644 inc/lang/gl/subscr_form.txt create mode 100644 inc/lang/gl/subscr_list.txt create mode 100644 inc/lang/gl/subscr_single.txt create mode 100644 inc/lang/gl/wordblock.txt (limited to 'inc') diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index c6ac4071e..e82eb473a 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -3,7 +3,7 @@ * galician language file * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * @author Medúlio + * @author Medúlio */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -111,6 +111,27 @@ $lang['mediafiles'] = 'Arquivos dispoñíbeis en'; $lang['js']['searchmedia'] = 'Procurar ficheiros'; $lang['js']['keepopen'] = 'Manter a fiestra aberta na selección'; $lang['js']['hidedetails'] = 'Agochar Pormenores'; +$lang['js']['mediatitle'] = 'Configuración de ligazón'; +$lang['js']['mediadisplay'] = 'Tipo de ligazón'; +$lang['js']['mediaalign'] = 'Aliñamento'; +$lang['js']['mediasize'] = 'Tamaño de imaxe'; +$lang['js']['mediatarget'] = 'Albo da ligazón'; +$lang['js']['mediaclose'] = 'Fechar'; +$lang['js']['mediainsert'] = 'Inserir'; +$lang['js']['mediadisplayimg'] = 'Amosar a imaxe'; +$lang['js']['mediadisplaylnk'] = 'Amosar só a ligazón'; +$lang['js']['mediasmall'] = 'Versión reducida'; +$lang['js']['mediamedium'] = 'Versión media'; +$lang['js']['medialarge'] = 'Versión grande'; +$lang['js']['mediaoriginal'] = 'Versión orixinal'; +$lang['js']['medialnk'] = 'Ligazón para a páxina de pormenores'; +$lang['js']['mediadirect'] = 'Ligazón directa para o orixinal'; +$lang['js']['medianolnk'] = 'Sen ligazón'; +$lang['js']['medianolink'] = 'Non ligar a imaxe'; +$lang['js']['medialeft'] = 'Aliñar a imaxe á esquerda'; +$lang['js']['mediaright'] = 'Aliñar a imaxe á dereita'; +$lang['js']['mediacenter'] = 'Aliñar a iamxe ao medio'; +$lang['js']['medianoalign'] = 'Non empregar aliñamento'; $lang['js']['nosmblinks'] = 'A ligazón aos compartidos do Windows só funciona no Microsoft Internet Explorer. Sempre podes copiar e colar a ligazón.'; $lang['js']['linkwiz'] = 'Asistente de ligazóns'; @@ -143,8 +164,10 @@ $lang['restored'] = 'revisión antiga restaurada'; $lang['external_edit'] = 'edición externa'; $lang['summary'] = 'Resumo da edición'; $lang['noflash'] = 'Precísase o Extensión Adobe Flash para amosar este contido.'; +$lang['download'] = 'Descargar Retallo (Snippet)'; $lang['mail_newpage'] = 'páxina engadida:'; $lang['mail_changed'] = 'páxina mudada:'; +$lang['mail_subscribe_list'] = 'páxinas mudadas en nome de espazo:'; $lang['mail_new_user'] = 'Novo usuario:'; $lang['mail_upload'] = 'arquivo subido:'; $lang['qb_bold'] = 'Texto Resaltado'; @@ -157,6 +180,11 @@ $lang['qb_h2'] = 'Liña de Cabeceira de Nivel 2'; $lang['qb_h3'] = 'Liña de Cabeceira de Nivel 3'; $lang['qb_h4'] = 'Liña de Cabeceira de Nivel 4'; $lang['qb_h5'] = 'Liña de Cabeceira de Nivel 5'; +$lang['qb_h'] = 'Liña de Cabeceira'; +$lang['qb_hs'] = 'Escoller Liña de Cabeceira'; +$lang['qb_hplus'] = 'Liña de Cabeceira Máis Alta'; +$lang['qb_hminus'] = 'Liña de Cabeceira Máis Baixa'; +$lang['qb_hequal'] = 'Liña de Cabeceira ao Mesmo Nivel'; $lang['qb_link'] = 'Ligazón Interna'; $lang['qb_extlink'] = 'Ligazón Externa'; $lang['qb_hr'] = 'Liña Horizontal'; @@ -166,6 +194,7 @@ $lang['qb_media'] = 'Engadir Imaxes e Outros Arquivos'; $lang['qb_sig'] = 'Inserir Sinatura'; $lang['qb_smileys'] = 'Risoños'; $lang['qb_chars'] = 'Caracteres Especiais'; +$lang['upperns'] = 'choutar ao nome de espazo pai'; $lang['admin_register'] = 'Engadir novo usuario'; $lang['metaedit'] = 'Editar Metadatos'; $lang['metasaveerr'] = 'Non se puideron escribir os metadatos'; @@ -181,6 +210,22 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Formato'; $lang['img_camera'] = 'Cámara'; $lang['img_keywords'] = 'Verbas chave'; +$lang['subscr_subscribe_success'] = 'Engadido %s á lista de subscrición para %s'; +$lang['subscr_subscribe_error'] = 'Erro ao tentar engadir %s á lista de subscrición para %s'; +$lang['subscr_subscribe_noaddress'] = 'Non hai enderezos asociados co teu inicio de sesión, non é posíbel engadirte á lista de subscrición'; +$lang['subscr_unsubscribe_success'] = 'Eliminado %s da lista de subscrición para %s'; +$lang['subscr_unsubscribe_error'] = 'Erro ao tentar eliminar %s da lista de subscrición para %s'; +$lang['subscr_already_subscribed'] = '%s xa está subscrito a %s'; +$lang['subscr_not_subscribed'] = '%s non está subscrito a %s'; +$lang['subscr_m_not_subscribed'] = 'Agora mesmo non estás subscrito á páxina ou nome de espazo actual'; +$lang['subscr_m_new_header'] = 'Engadir subscrición'; +$lang['subscr_m_current_header'] = 'Subscricións actuais'; +$lang['subscr_m_unsubscribe'] = 'Desubscribir'; +$lang['subscr_m_subscribe'] = 'Subscribir'; +$lang['subscr_m_receive'] = 'Recibir'; +$lang['subscr_style_every'] = 'correo-e en cada troco'; +$lang['subscr_style_digest'] = 'correo-e con resumo de trocos para cada páxina'; +$lang['subscr_style_list'] = 'lista de páxinas mudadas dende o último correo-e'; $lang['authmodfailed'] = 'Configuración de autenticación de usuario incorrecta. Por favor, informa ao Administrador do teu Wiki.'; $lang['authtempfail'] = 'A autenticación de usuario non está dispoñible de xeito temporal. De persistir esta situación, por favor, informa ao Administrador do teu Wiki.'; $lang['i_chooselang'] = 'Escolle o teu idioma'; diff --git a/inc/lang/gl/subscr_digest.txt b/inc/lang/gl/subscr_digest.txt new file mode 100644 index 000000000..4ebd14dd9 --- /dev/null +++ b/inc/lang/gl/subscr_digest.txt @@ -0,0 +1,20 @@ +Ola. + +Houbo mudanzas na páxina @PAGE@ do wiki @TITLE@. +Estes son os trocos: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Revisión Antiga: @OLDPAGE@ +Revisión Nova: @NEWPAGE@ + +Para cancelares as notificacións da páxina inicia sesión no wiki en +@DOKUWIKIURL@ e logo visita +@SUBSCRIBE@ +e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo. + +-- +Este correo-e foi xerado polo DokuWiki de +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/gl/subscr_form.txt b/inc/lang/gl/subscr_form.txt new file mode 100644 index 000000000..e8a6fe6cf --- /dev/null +++ b/inc/lang/gl/subscr_form.txt @@ -0,0 +1,3 @@ +====== Xestión de Subscrición ====== + +Esta páxina permíteche xestionar as túas subscricións para a páxina e nome de espazo actuais. \ No newline at end of file diff --git a/inc/lang/gl/subscr_list.txt b/inc/lang/gl/subscr_list.txt new file mode 100644 index 000000000..b62aae35d --- /dev/null +++ b/inc/lang/gl/subscr_list.txt @@ -0,0 +1,17 @@ +Ola. + +Houbo trocos en páxinas do nome de espazo @PAGE@ do wiki @TITLE@. +Estas son as páxinas que mudaron: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Para cancelares as notificacións da páxina inicia sesión no wiki en +@DOKUWIKIURL@ e logo visita +@SUBSCRIBE@ +e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo. + +-- +Este correo-e foi xerado polo DokuWiki de +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/gl/subscr_single.txt b/inc/lang/gl/subscr_single.txt new file mode 100644 index 000000000..77102d470 --- /dev/null +++ b/inc/lang/gl/subscr_single.txt @@ -0,0 +1,23 @@ +Ola. + +Houbo trocos na páxina @PAGE@ do wiki @TITLE@. +Estes son os trocos: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Usuario : @USER@ +Resumo do Edición: @SUMMARY@ +Revisión Antiga: @OLDPAGE@ +Revisión Nova: @NEWPAGE@ + +Para cancelares as notificacións da páxina inicia sesión no wiki en +@DOKUWIKIURL@ e logo visita +@SUBSCRIBE@ +e desubscríbete do seguimento dos trocos da páxina e/ou nome de espazo. + +-- +Este correo-e foi xerado polo DokuWiki de +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/gl/wordblock.txt b/inc/lang/gl/wordblock.txt new file mode 100644 index 000000000..ec8d67aff --- /dev/null +++ b/inc/lang/gl/wordblock.txt @@ -0,0 +1,4 @@ +====== Bloqueo por Correo-lixo ====== + +Os teus trocos **non** foron gardados porque conteñen unha ou varias verbas bloqueadas. Se tentaches deixar correo-lixo no wiki -- Estívoche ben! Se consideras que é un erro, contacta co administrador deste Wiki. + -- cgit v1.2.3 From 8d557116a19d366c0f00592e4fa6250017295105 Mon Sep 17 00:00:00 2001 From: maros Date: Wed, 17 Mar 2010 20:13:22 +0100 Subject: Polish language update --- inc/lang/pl/lang.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'inc') diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 408093a59..89cdd695d 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -9,6 +9,7 @@ * @author Sławomir Boczek * @author sleshek@wp.pl * @author Leszek Stachowski + * @author maros */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -116,6 +117,27 @@ $lang['mediafiles'] = 'Dostępne pliki'; $lang['js']['searchmedia'] = 'Szukaj plików'; $lang['js']['keepopen'] = 'Nie zamykaj okna po wyborze'; $lang['js']['hidedetails'] = 'Ukryj szczegóły'; +$lang['js']['mediatitle'] = 'Ustawienia odnośników'; +$lang['js']['mediadisplay'] = 'Typ odnośnika'; +$lang['js']['mediaalign'] = 'Położenie'; +$lang['js']['mediasize'] = 'Rozmiar grafiki'; +$lang['js']['mediatarget'] = 'Cel odnośnika'; +$lang['js']['mediaclose'] = 'Zamknij'; +$lang['js']['mediainsert'] = 'Wstaw'; +$lang['js']['mediadisplayimg'] = 'Pokaż grafikę'; +$lang['js']['mediadisplaylnk'] = 'Pokaż tylko odnośnik.'; +$lang['js']['mediasmall'] = 'Mały rozmiar'; +$lang['js']['mediamedium'] = 'Średni rozmiar'; +$lang['js']['medialarge'] = 'Duży rozmiar'; +$lang['js']['mediaoriginal'] = 'Wersja oryginalna'; +$lang['js']['medialnk'] = 'Odnośnik do strony ze szczegółami'; +$lang['js']['mediadirect'] = 'Bezpośredni odnośnik do oryginału'; +$lang['js']['medianolnk'] = 'Bez odnośnika'; +$lang['js']['medianolink'] = 'Nie ustawiaj odnośnika do grafiki'; +$lang['js']['medialeft'] = 'Ustaw położenie po lewej stronie.'; +$lang['js']['mediaright'] = 'Ustaw położenie po prawej stronie.'; +$lang['js']['mediacenter'] = 'Ustaw położenie po środku.'; +$lang['js']['medianoalign'] = 'Nie ustawiaj położenia.'; $lang['js']['nosmblinks'] = 'Odnośniki do zasobów sieci Windows działają tylko w przeglądarce Internet Explorer. Możesz skopiować odnośnik.'; $lang['js']['linkwiz'] = 'Tworzenie odnośników'; @@ -257,3 +279,4 @@ $lang['days'] = '%d dni temu'; $lang['hours'] = '%d godzin temu'; $lang['minutes'] = '%d minut temu'; $lang['seconds'] = '%d sekund temu'; +$lang['wordblock'] = 'Twoje ustawienia nie zostały zapisane ponieważ zawierają niedozwoloną treść (spam).'; -- cgit v1.2.3 From 50e988b1b678d028d2decdac630f1b01588c53af Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Thu, 18 Mar 2010 05:15:30 +0100 Subject: typo fixed --- inc/common.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index d1a722f45..5904dc69b 100644 --- a/inc/common.php +++ b/inc/common.php @@ -158,7 +158,7 @@ function pageinfo(){ }else{ $info['writable'] = ($info['perm'] >= AUTH_CREATE); } - $info['editable'] = ($info['writable'] && empty($info['lock'])); + $info['editable'] = ($info['writable'] && empty($info['locked'])); $info['lastmod'] = @filemtime($info['filepath']); //load page meta data -- cgit v1.2.3 From 2ffea8f2f2886a64535d5fd81745a8e5944a24c9 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 22 Mar 2010 16:42:58 +0100 Subject: Do not trigger HTML_FORM_SELECTION in some cases When the page is not editable or the section info is out of date, a custom editor should not be used. --- inc/html.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 23eadebc4..86cda46f0 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1121,6 +1121,8 @@ function html_updateprofile(){ * Preprocess edit form data * * @author Andreas Gohr + * + * @triggers HTML_EDITFORM_OUTPUT */ function html_edit(){ global $ID; @@ -1167,10 +1169,16 @@ function html_edit(){ $form->addHidden('suffix', $SUF); $form->addHidden('changecheck', $check); - $data = compact('wr', 'form'); - $data['media_manager'] = true; - $data['intro_locale'] = $include; - trigger_event('HTML_EDIT_FORMSELECTION', $data, 'html_edit_form', true); + $data = array('form' => $form, + 'wr' => $wr, + 'media_manager' => true, + 'intro_locale' => $include); + if ($wr && $RANGE !== '') { + // Only emit event if page is writable and section edit data is valid. + trigger_event('HTML_EDIT_FORMSELECTION', $data, 'html_edit_form', true); + } else { + html_edit_form($data); + } if (isset($data['intro_locale'])) { echo p_locale_xhtml($data['intro_locale']); } @@ -1225,8 +1233,6 @@ function html_edit(){ * Display the default edit form * * Is the default action for HTML_EDIT_FORMSELECTION. - * - * @triggers HTML_EDITFORM_OUTPUT */ function html_edit_form($param) { global $TEXT; -- cgit v1.2.3 From d141c8dc0567c892690e1f6ccf66298042034456 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 22 Mar 2010 18:06:17 +0100 Subject: Add missing global declaration --- inc/html.php | 1 + 1 file changed, 1 insertion(+) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 86cda46f0..e2128f2bc 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1135,6 +1135,7 @@ function html_edit(){ global $lang; global $conf; global $TEXT; + global $RANGE; if (isset($_REQUEST['changecheck'])) { $check = $_REQUEST['changecheck']; -- cgit v1.2.3 From 982a59410f29e19671bd53b32181a612601d3794 Mon Sep 17 00:00:00 2001 From: Robert Bogenschneider Date: Mon, 22 Mar 2010 20:58:09 +0100 Subject: Esperanto language update --- inc/lang/eo/lang.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'inc') diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index c03618a0e..012fea5fe 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -120,6 +120,27 @@ $lang['mediafiles'] = 'Disponeblaj dosieroj'; $lang['js']['searchmedia'] = 'Serĉi dosierojn'; $lang['js']['keepopen'] = 'Tenu la fenestron malfermata dum elekto'; $lang['js']['hidedetails'] = 'Kaŝi detalojn'; +$lang['js']['mediatitle'] = 'Ligilaj agordoj'; +$lang['js']['mediadisplay'] = 'Ligila tipo'; +$lang['js']['mediaalign'] = 'Poziciigo'; +$lang['js']['mediasize'] = 'Bildgrandeco'; +$lang['js']['mediatarget'] = 'Ligila celo'; +$lang['js']['mediaclose'] = 'Fermi'; +$lang['js']['mediainsert'] = 'Enmeti'; +$lang['js']['mediadisplayimg'] = 'Montri la bildon.'; +$lang['js']['mediadisplaylnk'] = 'Montri nur la ligilon.'; +$lang['js']['mediasmall'] = 'Malgranda versio'; +$lang['js']['mediamedium'] = 'Meza versio'; +$lang['js']['medialarge'] = 'Granda versio'; +$lang['js']['mediaoriginal'] = 'Origina versio'; +$lang['js']['medialnk'] = 'Ligilo al detala paĝo'; +$lang['js']['mediadirect'] = 'Rekta ligilo al la origino'; +$lang['js']['medianolnk'] = 'Neniu ligilo'; +$lang['js']['medianolink'] = 'Ne ligi la bildon'; +$lang['js']['medialeft'] = 'Meti la bildon maldekstren.'; +$lang['js']['mediaright'] = 'Meti la bildon dekstren.'; +$lang['js']['mediacenter'] = 'Meti la bildon mezen.'; +$lang['js']['medianoalign'] = 'Ne uzi poziciigon.'; $lang['js']['nosmblinks'] = 'Tio ĉi nur funkcias en la Vindozaĉa "Microsoft Internet Explorer". Vi ankoraŭ povas kopii kaj almeti la ligilon.'; $lang['js']['linkwiz'] = 'Ligil-Asistanto'; @@ -261,3 +282,4 @@ $lang['days'] = 'antaŭ %d tagoj'; $lang['hours'] = 'antaŭ %d horoj'; $lang['minutes'] = 'antaŭ %d minutoj'; $lang['seconds'] = 'antaŭ %d sekundoj'; +$lang['wordblock'] = 'Via ŝanĝo ne estis savita, ĉar ĝi enhavas blokitan tekston (spamon).'; -- cgit v1.2.3 From 9d706dd2a380574a0f89b771c7b3fd9a77de9dc7 Mon Sep 17 00:00:00 2001 From: Robert Bogenschneider Date: Mon, 22 Mar 2010 20:58:43 +0100 Subject: German language update --- inc/lang/de/lang.php | 82 +++++++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 36 deletions(-) (limited to 'inc') diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index e61a95bce..e44845a90 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -16,6 +16,7 @@ * @author Dirk Einecke * @author Blitzi94@gmx.de * @author Robert Bogenschneider + * @author Robert Bogenschneider */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -49,9 +50,6 @@ $lang['btn_back'] = 'Zurück'; $lang['btn_backlink'] = 'Links hierher'; $lang['btn_backtomedia'] = 'Zurück zur Dateiauswahl'; $lang['btn_subscribe'] = 'Änderungen abonnieren'; -$lang['btn_unsubscribe'] = 'Änderungen abbestellen'; -$lang['btn_subscribens'] = 'Namensraumänderungen abonnieren'; -$lang['btn_unsubscribens'] = 'Namensraumänderungen abbestellen'; $lang['btn_profile'] = 'Benutzerprofil'; $lang['btn_reset'] = 'Zurücksetzen'; $lang['btn_resendpwd'] = 'Sende neues Passwort'; @@ -126,6 +124,27 @@ $lang['mediafiles'] = 'Vorhandene Dateien in'; $lang['js']['searchmedia'] = 'Suche Dateien'; $lang['js']['keepopen'] = 'Fenster nach Auswahl nicht schließen'; $lang['js']['hidedetails'] = 'Details ausblenden'; +$lang['js']['mediatitle'] = 'Linkeinstellungen'; +$lang['js']['mediadisplay'] = 'Linktyp'; +$lang['js']['mediaalign'] = 'Anordnung'; +$lang['js']['mediasize'] = 'Bildgrösse'; +$lang['js']['mediatarget'] = 'Linkziel'; +$lang['js']['mediaclose'] = 'Schliessen'; +$lang['js']['mediainsert'] = 'Einfügen'; +$lang['js']['mediadisplayimg'] = 'Bild anzeigen.'; +$lang['js']['mediadisplaylnk'] = 'Nur den Link anzeigen.'; +$lang['js']['mediasmall'] = 'Kleine Version'; +$lang['js']['mediamedium'] = 'Mittlere Version'; +$lang['js']['medialarge'] = 'Grosse Version'; +$lang['js']['mediaoriginal'] = 'Originalversion'; +$lang['js']['medialnk'] = 'Link zur Detailseite'; +$lang['js']['mediadirect'] = 'Direktlink zum Original'; +$lang['js']['medianolnk'] = 'Kein Link'; +$lang['js']['medianolink'] = 'Bild nicht verlinken'; +$lang['js']['medialeft'] = 'Das Bild links anordnen.'; +$lang['js']['mediaright'] = 'Das Bild in der Mitte anordnen.'; +$lang['js']['mediacenter'] = 'Das Bild rechts anordnen.'; +$lang['js']['medianoalign'] = 'Keine Anordnung benutzen.'; $lang['js']['nosmblinks'] = 'Das Verlinken von Windows-Freigaben funktioniert nur im Microsoft Internet Explorer. Der Link kann jedoch durch Kopieren und Einfügen verwendet werden.'; $lang['js']['linkwiz'] = 'Link-Assistent'; @@ -159,13 +178,11 @@ $lang['external_edit'] = 'Externe Bearbeitung'; $lang['summary'] = 'Zusammenfassung'; $lang['noflash'] = 'Das Adobe Flash Plugin wird benötigt, um diesen Ihnalt anzuzeigen.'; $lang['download'] = 'Schnipsel herunterladen'; - $lang['mail_newpage'] = 'Neue Seite:'; $lang['mail_changed'] = 'Seite geaendert:'; +$lang['mail_subscribe_list'] = 'Geänderte Seiten im Namensraum:'; $lang['mail_new_user'] = 'Neuer Benutzer:'; $lang['mail_upload'] = 'Datei hochgeladen:'; -$lang['mail_subscribe_list'] = 'Geänderte Seiten im Namensraum:'; - $lang['qb_bold'] = 'Fetter Text'; $lang['qb_italic'] = 'Kursiver Text'; $lang['qb_underl'] = 'Unterstrichener Text'; @@ -206,26 +223,22 @@ $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Kamera'; $lang['img_keywords'] = 'Schlagwörter'; - -$lang['subscr_subscribe_success'] = '%s hat nun Änderungen der Seite %s abonniert'; -$lang['subscr_subscribe_error'] = '%s kann die Änderungen der Seite %s nicht abonnieren'; -$lang['subscr_subscribe_noaddress']= 'Weil Ihre E-Mail-Adresse fehlt, können Sie das Thema nicht abonnieren'; -$lang['subscr_unsubscribe_success']= 'Das Abonnement von %s für die Seite %s wurde aufgelöst'; -$lang['subscr_unsubscribe_error'] = 'Das Abonnement von %s für die Seite %s konnte nicht aufgelöst werden'; +$lang['subscr_subscribe_success'] = '%s hat nun Änderungen der Seite %s abonniert'; +$lang['subscr_subscribe_error'] = '%s kann die Änderungen der Seite %s nicht abonnieren'; +$lang['subscr_subscribe_noaddress'] = 'Weil Ihre E-Mail-Adresse fehlt, können Sie das Thema nicht abonnieren'; +$lang['subscr_unsubscribe_success'] = 'Das Abonnement von %s für die Seite %s wurde aufgelöst'; +$lang['subscr_unsubscribe_error'] = 'Das Abonnement von %s für die Seite %s konnte nicht aufgelöst werden'; $lang['subscr_already_subscribed'] = '%s hat %s bereits abonniert'; -$lang['subscr_not_subscribed'] = '%s hat %s nicht abonniert'; -// Manage page for subscriptions -$lang['subscr_m_not_subscribed'] = 'Sie haben die aktuelle Seite und ihre Namensräume nicht abonniert.'; -$lang['subscr_m_new_header'] = 'Abonnement hinzufügen'; -$lang['subscr_m_current_header'] = 'Aktuelle Abonnements'; -$lang['subscr_m_unsubscribe'] = 'Löschen'; -$lang['subscr_m_subscribe'] = 'Abonnieren'; -$lang['subscr_m_receive'] = 'Benachrichtigung'; - -$lang['subscr_style_every'] = 'Email bei jeder Bearbeitung'; -$lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede veränderte Seite'; -$lang['subscr_style_list'] = 'Liste der geänderten Seiten'; - +$lang['subscr_not_subscribed'] = '%s hat %s nicht abonniert'; +$lang['subscr_m_not_subscribed'] = 'Sie haben die aktuelle Seite und ihre Namensräume nicht abonniert.'; +$lang['subscr_m_new_header'] = 'Abonnement hinzufügen'; +$lang['subscr_m_current_header'] = 'Aktuelle Abonnements'; +$lang['subscr_m_unsubscribe'] = 'Löschen'; +$lang['subscr_m_subscribe'] = 'Abonnieren'; +$lang['subscr_m_receive'] = 'Benachrichtigung'; +$lang['subscr_style_every'] = 'Email bei jeder Bearbeitung'; +$lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede veränderte Seite'; +$lang['subscr_style_list'] = 'Liste der geänderten Seiten'; $lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wenden Sie sich an den Systembetreuer.'; $lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Systembetreuer.'; $lang['i_chooselang'] = 'Wählen Sie Ihre Sprache'; @@ -265,14 +278,11 @@ $lang['mu_filetypes'] = 'Erlaubte Dateitypen'; $lang['mu_info'] = 'Dateien hochgeladen!'; $lang['mu_lasterr'] = 'Letzter Fehler:'; $lang['recent_global'] = 'Im Moment sehen Sie die Änderungen im Namensraum %s. Sie können auch die Änderungen im gesamten Wiki sehen.'; - -$lang['years'] = 'vor %d Jahren'; -$lang['months'] = 'vor %d Monaten'; -$lang['weeks'] = 'vor %d Wochen'; -$lang['days'] = 'vor %d Tagen'; -$lang['hours'] = 'vor %d Stunden'; -$lang['minutes'] = 'vor %d Minuten'; -$lang['seconds'] = 'vor %d Sekunden'; - -$lang['wordblock'] = 'Deine Bearbeitung wurde nicht gespeichert, da sie gesperrten Text enthielt (Spam).'; - +$lang['years'] = 'vor %d Jahren'; +$lang['months'] = 'vor %d Monaten'; +$lang['weeks'] = 'vor %d Wochen'; +$lang['days'] = 'vor %d Tagen'; +$lang['hours'] = 'vor %d Stunden'; +$lang['minutes'] = 'vor %d Minuten'; +$lang['seconds'] = 'vor %d Sekunden'; +$lang['wordblock'] = 'Deine Bearbeitung wurde nicht gespeichert, da sie gesperrten Text enthielt (Spam).'; -- cgit v1.2.3 From dfd343c40d85231f23176cfc6683eaccc0580a6d Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 22 Mar 2010 21:51:00 +0100 Subject: fixed hashing in mediaSearch() The hash option did not hash the correct content for the found media files. This causes troubles in the sync plugin http://github.com/splitbrain/dokuwiki-plugin-sync/issues#issue/1 --- inc/search.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/search.php b/inc/search.php index 9e0964404..322c53e25 100644 --- a/inc/search.php +++ b/inc/search.php @@ -199,7 +199,7 @@ function search_media(&$data,$base,$file,$type,$lvl,$opts){ $info['isimg'] = false; } if($opts['hash']){ - $info['hash'] = md5(io_readFile(wikiFN($info['id']),false)); + $info['hash'] = md5(io_readFile(mediaFN($info['id']),false)); } $data[] = $info; -- cgit v1.2.3 From cf5b435169f81ea7da106ced2c6401bf83ac199f Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 22 Mar 2010 23:37:31 +0100 Subject: Replace vertical tabs befor parsing XML in XMLRPC It seems that the 0x0B Vertical Tab character breaks the PHP XML parser. This workaround replaces the char with a space before parsing. Not ideal but good enough for now. --- inc/IXR_Library.php | 1 + 1 file changed, 1 insertion(+) (limited to 'inc') diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index afa496aed..4f8eb31c1 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -150,6 +150,7 @@ class IXR_Message { $this->message = str_replace('&', '&', $this->message); $this->message = str_replace(''', ''', $this->message); $this->message = str_replace('"', '"', $this->message); + $this->message = str_replace("\x0b", ' ', $this->message); //vertical tab if (trim($this->message) == '') { return false; } -- cgit v1.2.3 From 80fcb26867ee7f89b0c1e7db9c9e59dc4c9aeb58 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 23 Mar 2010 11:00:20 +0100 Subject: Rewrite wikitext slicing for section edits This commit adresses two issues: * rawWikiSlices used to drop the first byte of the suffix (usually a newline, but custom section edits may not be bound to newlines) * con used to insert way too much newlines: the newline that got dropped by the bug in rawWikiSlices and one additional newline in prefix and text each if they are not terminated by a newline. Now con only inserts newlines if there are absolutely no newlines between prefix and text and text and suffix. --- inc/common.php | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index 5904dc69b..2877bc00e 100644 --- a/inc/common.php +++ b/inc/common.php @@ -894,22 +894,24 @@ function parsePageTemplate($data) { * @author Andreas Gohr */ function rawWikiSlices($range,$id,$rev=''){ - list($from,$to) = explode('-',$range,2); $text = io_readWikiPage(wikiFN($id, $rev), $id, $rev); - if(!$from) $from = 0; - if(!$to) $to = strlen($text)+1; - $slices[0] = substr($text,0,$from-1); - $slices[1] = substr($text,$from-1,$to-$from); - $slices[2] = substr($text,$to); + // Parse range + list($from,$to) = explode('-',$range,2); + // Make range zero-based, use defaults if marker is missing + $from = !$from ? 0 : ($from - 1); + $to = !$to ? strlen($text) : ($to - 1); + $slices[0] = substr($text, 0, $from); + $slices[1] = substr($text, $from, $to-$from); + $slices[2] = substr($text, $to); return $slices; } /** * Joins wiki text slices * - * function to join the text slices with correct lineendings again. + * function to join the text slices. * When the pretty parameter is set to true it adds additional empty * lines between sections if needed (used on saving). * @@ -917,13 +919,16 @@ function rawWikiSlices($range,$id,$rev=''){ */ function con($pre,$text,$suf,$pretty=false){ if($pretty){ - if($pre && substr($pre,-1) != "\n") $pre .= "\n"; - if($suf && substr($text,-1) != "\n") $text .= "\n"; + if ($pre !== '' && substr($pre, -1) !== "\n" && + substr($text, 0, 1) !== "\n") { + $pre .= "\n"; + } + if ($suf !== '' && substr($text, -1) !== "\n" && + substr($suf, 0, 1) !== "\n") { + $text .= "\n"; + } } - // Avoid double newline above section when saving section edit - //if($pre) $pre .= "\n"; - if($suf) $text .= "\n"; return $pre.$text.$suf; } -- cgit v1.2.3 From 12c96ace70f7a177cc40000f905fa3cab633c04a Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 23 Mar 2010 12:06:41 +0100 Subject: Send edit target in HTML_EDITFORM_SELECTION --- inc/html.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index e2128f2bc..088f8d3c5 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1173,9 +1173,13 @@ function html_edit(){ $data = array('form' => $form, 'wr' => $wr, 'media_manager' => true, + 'target' => (isset($_REQUEST['target']) && $wr && + $RANGE !== '') ? $_REQUEST['target'] : 'section', 'intro_locale' => $include); - if ($wr && $RANGE !== '') { - // Only emit event if page is writable and section edit data is valid. + + if ($data['target'] !== 'section') { + // Only emit event if page is writable, section edit data is valid and + // edit target is not section. trigger_event('HTML_EDIT_FORMSELECTION', $data, 'html_edit_form', true); } else { html_edit_form($data); @@ -1237,10 +1241,15 @@ function html_edit(){ */ function html_edit_form($param) { global $TEXT; - extract($param); + + if ($param['target'] !== 'section') { + msg('No editor for edit target ' . $param['target'] . ' found.', -1); + } + $attr = array('tabindex'=>'1'); - if (!$wr) $attr['readonly'] = 'readonly'; - $form->addElement(form_makeWikiText($TEXT, $attr)); + if (!$param['wr']) $attr['readonly'] = 'readonly'; + + $param['form']->addElement(form_makeWikiText($TEXT, $attr)); } /** -- cgit v1.2.3 From ebf65d37ec50cce097ad8cddfb43acc5ea5aea21 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 17 Mar 2010 16:40:36 +0100 Subject: Rewrite p_get_metadata to not issue a E_Notice --- inc/parserutils.php | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'inc') diff --git a/inc/parserutils.php b/inc/parserutils.php index 4102ee711..cb8bc079d 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -222,7 +222,7 @@ function p_get_instructions($text){ * * @author Esther Brunner */ -function p_get_metadata($id, $key=false, $render=false){ +function p_get_metadata($id, $key='', $render=false){ global $ID, $INFO, $cache_metadata; // cache the current page @@ -241,19 +241,17 @@ function p_get_metadata($id, $key=false, $render=false){ if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; } } - // filter by $key - if ($key){ - list($key, $subkey) = explode(' ', $key, 2); - $subkey = trim($subkey); + $val = $meta['current']; - if ($subkey) { - return isset($meta['current'][$key][$subkey]) ? $meta['current'][$key][$subkey] : null; + // filter by $key + foreach(explode(' ', trim($key), 2) as $cur_key) { + $cur_key = trim($cur_key); + if (!isset($val[$cur_key])) { + return null; } - - return isset($meta['current'][$key]) ? $meta['current'][$key] : null; + $val = $val[$cur_key]; } - - return $meta['current']; + return $val; } /** -- cgit v1.2.3 From 689cba4d4ba37bdcb57ea6c6bbf55e7546d428c3 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 23 Mar 2010 15:23:35 +0100 Subject: No warning for an undefined variable --- inc/auth.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/auth.php b/inc/auth.php index 33626cf80..6804c2696 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -931,7 +931,7 @@ function auth_cryptPassword($clear,$method='',$salt=null){ $magic = '1'; case 'apr1': //from http://de.php.net/manual/en/function.crypt.php#73619 comment by - if(!$magic) $magic = 'apr1'; + if(!defined($magic)) $magic = 'apr1'; $salt = substr($salt,0,8); $len = strlen($clear); $text = $clear.'$'.$magic.'$'.$salt; -- cgit v1.2.3 From b7eccc60d91f1a719b3204da92d4becb2928210e Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 24 Mar 2010 11:26:16 +0100 Subject: Keep edit target information for preview --- inc/html.php | 1 + 1 file changed, 1 insertion(+) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 088f8d3c5..a8761ad4a 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1188,6 +1188,7 @@ function html_edit(){ echo p_locale_xhtml($data['intro_locale']); } + $form->addHidden('target', $data['target']); $form->addElement(form_makeOpenTag('div', array('id'=>'wiki__editbar'))); $form->addElement(form_makeOpenTag('div', array('id'=>'size__ctl'))); $form->addElement(form_makeCloseTag('div')); -- cgit v1.2.3 From 3371a8b471eea344a99f015cdf0ef9089b1f20ef Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 24 Mar 2010 11:25:30 +0100 Subject: Fixed selffail. --- inc/auth.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/auth.php b/inc/auth.php index 6804c2696..ace379214 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -931,7 +931,7 @@ function auth_cryptPassword($clear,$method='',$salt=null){ $magic = '1'; case 'apr1': //from http://de.php.net/manual/en/function.crypt.php#73619 comment by - if(!defined($magic)) $magic = 'apr1'; + if(!isset($magic)) $magic = 'apr1'; $salt = substr($salt,0,8); $len = strlen($clear); $text = $clear.'$'.$magic.'$'.$salt; -- cgit v1.2.3 From 229529655f061863ec76db9ea557fef8b1a5161b Mon Sep 17 00:00:00 2001 From: YoBoY Date: Tue, 23 Mar 2010 22:50:41 +0100 Subject: Limiting use of readdir in the idx_indexLengths function (v2). Each searches on the wiki use this function. Scanning the index directory eachtime is time consuming with a constant series of disk access. Switching a normal search to use file_exists 1 or more times, and not readdir all the directory. Switching a wildcard search to use a lengths.idx file containing all the word lengths used in the wiki, file generated if a new configuration parameter $conf[readdircache] is not 0 and fixed to a time in second. Creation of a new function idx_listIndexLengths to do this part. --- inc/indexer.php | 85 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 65 insertions(+), 20 deletions(-) (limited to 'inc') diff --git a/inc/indexer.php b/inc/indexer.php index 07b67c014..54277a88c 100644 --- a/inc/indexer.php +++ b/inc/indexer.php @@ -410,41 +410,86 @@ function idx_updateIndexLine($line,$pid,$count){ return join(':',$updated)."\n"; } +/** + * Get the list of lenghts indexed in the wiki + * + * Read the index directory or a cache file and returns + * a sorted array of lengths of the words used in the wiki. + * + * @author YoBoY + */ +function idx_listIndexLengths() { + global $conf; + // testing what we have to do, create a cache file or not. + if ($conf['readdircache'] == 0) { + $docache = false; + } else { + clearstatcache(); + if (@file_exists($conf['indexdir'].'/lengths.idx') and (time() < @filemtime($conf['indexdir'].'/lengths.idx') + $conf['readdircache'])) { + if (($lengths = @file($conf['indexdir'].'/lengths.idx', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) ) !== false) { + $idx = array(); + foreach ( $lengths as $length) { + $idx[] = (int)$length; + } + return $idx; + } + } + $docache = true; + } + + if ($conf['readdircache'] == 0 or $docache ) { + $dir = @opendir($conf['indexdir']); + if($dir===false) + return array(); + $idx[] = array(); + while (($f = readdir($dir)) !== false) { + if (substr($f,0,1) == 'i' && substr($f,-4) == '.idx'){ + $i = substr($f,1,-4); + if (is_numeric($i)) + $idx[] = (int)$i; + } + } + closedir($dir); + sort($idx); + // we save this in a file. + if ($docache === true) { + $handle = @fopen($conf['indexdir'].'/lengths.idx','w'); + @fwrite($handle, implode("\n",$idx)); + @fclose($handle); + } + return $idx; + } + + return array(); +} + /** * Get the word lengths that have been indexed. * * Reads the index directory and returns an array of lengths * that there are indices for. * - * @author Tom N Harris + * @author YoBoY */ function idx_indexLengths(&$filter){ global $conf; - $dir = @opendir($conf['indexdir']); - if($dir===false) - return array(); $idx = array(); - if(is_array($filter)){ - while (($f = readdir($dir)) !== false) { - if (substr($f,0,1) == 'i' && substr($f,-4) == '.idx'){ - $i = substr($f,1,-4); - if (is_numeric($i) && isset($filter[(int)$i])) - $idx[] = (int)$i; + if (is_array($filter)){ + // testing if index files exists only + foreach ($filter as $key => $value) { + if (@file_exists($conf['indexdir']."/i$key.idx")) { + $idx[] = $key; } } - }else{ - // Exact match first. - if(@file_exists($conf['indexdir']."/i$filter.idx")) - $idx[] = $filter; - while (($f = readdir($dir)) !== false) { - if (substr($f,0,1) == 'i' && substr($f,-4) == '.idx'){ - $i = substr($f,1,-4); - if (is_numeric($i) && $i > $filter) - $idx[] = (int)$i; + } else { + $lengths = idx_listIndexLengths(); + foreach ( $lengths as $key => $length) { + // we keep all the values equal or superior + if ((int)$length >= (int)$filter) { + $idx[] = $length; } } } - closedir($dir); return $idx; } -- cgit v1.2.3 From f1986589078b5e2e3aecc37d8f28b03caa3b8c17 Mon Sep 17 00:00:00 2001 From: Michael Klier Date: Fri, 26 Mar 2010 11:43:35 +0100 Subject: moved plugincontroller and event handler creation to init.php --- inc/events.php | 4 ---- inc/init.php | 12 ++++++++++++ inc/pluginutils.php | 8 -------- 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'inc') diff --git a/inc/events.php b/inc/events.php index 1c82af003..621cb64c1 100644 --- a/inc/events.php +++ b/inc/events.php @@ -195,7 +195,3 @@ function trigger_event($name, &$data, $action=null, $canPreventDefault=true) { $evt = new Doku_Event($name, $data); return $evt->trigger($action, $canPreventDefault); } - -// create the event handler -global $EVENT_HANDLER; -$EVENT_HANDLER = new Doku_Event_Handler(); diff --git a/inc/init.php b/inc/init.php index ae44ad1a9..3a9988fcf 100644 --- a/inc/init.php +++ b/inc/init.php @@ -246,9 +246,21 @@ init_files(); scriptify(DOKU_CONF.'users.auth'); scriptify(DOKU_CONF.'acl.auth'); +// setup plugin controller class (can be overwritten in preload.php) +$plugin_types = array('admin','syntax','action','renderer', 'helper'); +global $plugin_controller_class, $plugin_controller; +if (empty($plugin_controller_class)) $plugin_controller_class = 'Doku_Plugin_Controller'; + // load libraries require_once(DOKU_INC.'inc/load.php'); +// initialize plugin controller +$plugin_controller = new $plugin_controller_class(); + +// initialize the event handler +global $EVENT_HANDLER; +$EVENT_HANDLER = new Doku_Event_Handler(); + // setup authentication system if (!defined('NOSESSION')) { auth_setup(); diff --git a/inc/pluginutils.php b/inc/pluginutils.php index a8656a96a..da0704bec 100644 --- a/inc/pluginutils.php +++ b/inc/pluginutils.php @@ -9,13 +9,6 @@ // plugin related constants if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); -$plugin_types = array('admin','syntax','action','renderer', 'helper'); - -global $plugin_controller_class, $plugin_controller; -if (empty($plugin_controller_class)) $plugin_controller_class = 'Doku_Plugin_Controller'; - -$plugin_controller = new $plugin_controller_class(); - /** * Original plugin functions, remain for backwards compatibility */ @@ -43,4 +36,3 @@ function plugin_directory($plugin) { global $plugin_controller; return $plugin_controller->get_directory($plugin); } - -- cgit v1.2.3 From 7733c314de594b92b59e2202490ff24f039d632b Mon Sep 17 00:00:00 2001 From: Michael Klier Date: Fri, 26 Mar 2010 11:56:29 +0100 Subject: replaced readdir() with glob() in metaFiles() --- inc/pageutils.php | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'inc') diff --git a/inc/pageutils.php b/inc/pageutils.php index ef09dc7b6..cd3cf1fce 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -318,15 +318,7 @@ function metaFiles($id){ $ns = getNS($id); $dir = ($ns) ? metaFN($ns,'').'/' : metaFN($ns,''); $files = array(); - - $dh = @opendir($dir); - if(!$dh) return $files; - while(($file = readdir($dh)) !== false){ - if(strpos($file,$name.'.') === 0 && !is_dir($dir.$file)) - $files[] = $dir.$file; - } - closedir($dh); - + $files = glob($dir.$name.'.*'); return $files; } -- cgit v1.2.3 From 2e61e4df6fa5a971de75b3cefdb0912c9fac7c79 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 25 Mar 2010 11:45:01 +0100 Subject: Fix JavaScript for change detection after preview --- inc/html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index a8761ad4a..4a4cf2739 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1217,9 +1217,9 @@ function html_edit(){ if ($wr) { // sets changed to true when previewed - echo ''; + echo '//-->' . NL; } ?>
-- cgit v1.2.3 From 26ee1edf9c1750df399baebcb70afb49778b4a92 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 25 Mar 2010 15:01:25 +0100 Subject: Rewrite JavaScript change check --- inc/lang/ar/lang.php | 2 +- inc/lang/bg/lang.php | 2 +- inc/lang/ca-valencia/lang.php | 2 +- inc/lang/ca/lang.php | 2 +- inc/lang/cs/lang.php | 2 +- inc/lang/da/lang.php | 2 +- inc/lang/de-informal/lang.php | 2 +- inc/lang/de/lang.php | 2 +- inc/lang/el/lang.php | 2 +- inc/lang/en/lang.php | 2 +- inc/lang/eo/lang.php | 2 +- inc/lang/es/lang.php | 2 +- inc/lang/et/lang.php | 2 +- inc/lang/eu/lang.php | 2 +- inc/lang/fa/lang.php | 2 +- inc/lang/fi/lang.php | 2 +- inc/lang/fo/lang.php | 2 +- inc/lang/fr/lang.php | 2 +- inc/lang/gl/lang.php | 2 +- inc/lang/he/lang.php | 2 +- inc/lang/hr/lang.php | 2 +- inc/lang/hu/lang.php | 2 +- inc/lang/ia/lang.php | 2 +- inc/lang/id-ni/lang.php | 2 +- inc/lang/id/lang.php | 2 +- inc/lang/it/lang.php | 2 +- inc/lang/ja/lang.php | 2 +- inc/lang/km/lang.php | 2 +- inc/lang/ko/lang.php | 2 +- inc/lang/ku/lang.php | 2 +- inc/lang/lb/lang.php | 2 +- inc/lang/lt/lang.php | 2 +- inc/lang/lv/lang.php | 2 +- inc/lang/mg/lang.php | 2 +- inc/lang/mk/lang.php | 2 +- inc/lang/mr/lang.php | 2 +- inc/lang/ne/lang.php | 2 +- inc/lang/nl/lang.php | 2 +- inc/lang/no/lang.php | 2 +- inc/lang/pl/lang.php | 2 +- inc/lang/pt-br/lang.php | 2 +- inc/lang/pt/lang.php | 2 +- inc/lang/ro/lang.php | 2 +- inc/lang/ru/lang.php | 2 +- inc/lang/sk/lang.php | 2 +- inc/lang/sl/lang.php | 2 +- inc/lang/sq/lang.php | 2 +- inc/lang/sr/lang.php | 2 +- inc/lang/sv/lang.php | 2 +- inc/lang/th/lang.php | 2 +- inc/lang/tr/lang.php | 2 +- inc/lang/uk/lang.php | 2 +- inc/lang/vi/lang.php | 2 +- inc/lang/zh-tw/lang.php | 2 +- inc/lang/zh/lang.php | 2 +- 55 files changed, 55 insertions(+), 55 deletions(-) (limited to 'inc') diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index 2ba1f7e9f..fca67ce9d 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -88,7 +88,7 @@ $lang['txt_overwrt'] = 'الكتابة على ملف موجود بنف $lang['lockedby'] = 'حالياً مقفول بواسطة'; $lang['lockexpire'] = 'سينتهي القفل في'; $lang['willexpire'] = 'سينتهي قفل تحرير هذه الصفحه خلال دقيقة. لتجنب التعارض استخدم زر استعراض لبدأ القفل من جديد'; -$lang['notsavedyet'] = 'التعديلات التي لم تحفظ ستفقد. أموافق ؟'; +$lang['js']['notsavedyet'] = "التعديلات التي لم تحفظ ستفقد. أموافق ؟"; $lang['rssfailed'] = 'خطأ ما حدث أثناء جلب ملف التغذية:'; $lang['nothingfound'] = 'لا يوجد شيء'; $lang['mediaselect'] = 'ملفات الوسائط المتعددة'; diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index 2c306095d..053a7f1ba 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = 'Запис върху съществуващ $lang['lockedby'] = 'В момента е заключено от'; $lang['lockexpire'] = 'Затварянето изтича в'; $lang['willexpire'] = 'Затварянето на страницата за редактиране изтича след минута.\nЗа да избегнете противоречия, използвайте бутона, за да рестартирате броячът за затваряне.'; -$lang['notsavedyet'] = 'Незапазените промени ще бъдат загубени.\nИскате ли да продължите?'; +$lang['js']['notsavedyet'] = "Незапазените промени ще бъдат загубени.\nИскате ли да продължите?"; $lang['rssfailed'] = 'Възникна грешка при вземането на този feed: '; $lang['nothingfound'] = 'Нищо не бе намерено.'; $lang['mediaselect'] = 'Медийни файлове'; diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php index d85cc1c06..d49c900fa 100644 --- a/inc/lang/ca-valencia/lang.php +++ b/inc/lang/ca-valencia/lang.php @@ -95,7 +95,7 @@ $lang['txt_overwrt'] = 'Sobreescriure archius existents'; $lang['lockedby'] = 'Actualment bloquejat per'; $lang['lockexpire'] = 'El bloqueig venç a les'; $lang['willexpire'] = 'El seu bloqueig per a editar esta pàgina vencerà en un minut.\nPer a evitar conflictes utilise el botó de vista prèvia i reiniciarà el contador.'; -$lang['notsavedyet'] = 'Els canvis no guardats es perdran.\n¿Segur que vol continuar?'; +$lang['js']['notsavedyet'] = "Els canvis no guardats es perdran.\n¿Segur que vol continuar?"; $lang['rssfailed'] = 'Ha ocorregut un erro al solicitar este canal: '; $lang['nothingfound'] = 'No s\'ha trobat res.'; $lang['mediaselect'] = 'Archius de mijos'; diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index 778123445..19fb7c556 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -96,7 +96,7 @@ $lang['txt_overwrt'] = 'Sobreescriu el fitxer actual'; $lang['lockedby'] = 'Actualment blocat per:'; $lang['lockexpire'] = 'Venciment del blocatge:'; $lang['willexpire'] = 'El blocatge per a editar aquesta pàgina venç d\'aquí a un minut.\nUtilitzeu la visualització prèvia per reiniciar el rellotge i evitar conflictes.'; -$lang['notsavedyet'] = 'Heu fet canvis que es perdran si no els deseu.\nVoleu continuar?'; +$lang['js']['notsavedyet'] = "Heu fet canvis que es perdran si no els deseu.\nVoleu continuar?"; $lang['rssfailed'] = 'S\'ha produït un error en recollir aquesta alimentació: '; $lang['nothingfound'] = 'No s\'ha trobat res.'; $lang['mediaselect'] = 'Selecció de fitxers'; diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index 32c61692d..0b5530f0f 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = 'Přepsat existující soubor'; $lang['lockedby'] = 'Právě zamknuto:'; $lang['lockexpire'] = 'Zámek vyprší:'; $lang['willexpire'] = 'Váš zámek pro editaci za chvíli vyprší.\nAbyste předešli konfliktům, stiskněte tlačítko Náhled a zámek se prodlouží.'; -$lang['notsavedyet'] = 'Jsou tu neuložené změny, které budou ztraceny.\nChcete opravdu pokračovat?'; +$lang['js']['notsavedyet'] = "Jsou tu neuložené změny, které budou ztraceny.\nChcete opravdu pokračovat?"; $lang['rssfailed'] = 'Nastala chyba při vytváření tohoto RSS: '; $lang['nothingfound'] = 'Nic nenalezeno.'; $lang['mediaselect'] = 'Výběr dokumentu'; diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index 56239718b..7014a41fa 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -100,7 +100,7 @@ $lang['txt_overwrt'] = 'Overskriv eksisterende fil'; $lang['lockedby'] = 'Midlertidig låst af'; $lang['lockexpire'] = 'Lås udløber kl.'; $lang['willexpire'] = 'Din lås på dette dokument udløber om et minut.\nTryk på Forhåndsvisning-knappen for at undgå konflikter.'; -$lang['notsavedyet'] = 'Der er lavet ændringer i dokumentet. Hvis du fortsætter vil ændringerne gå tabt.\nØnsker du at fortsætte?'; +$lang['js']['notsavedyet'] = "Der er lavet ændringer i dokumentet. Hvis du fortsætter vil ændringerne gå tabt.\nØnsker du at fortsætte?"; $lang['rssfailed'] = 'Der opstod en fejl ved indhentning af: '; $lang['nothingfound'] = 'Søgningen gav intet resultat.'; $lang['mediaselect'] = 'Vælg mediefil'; diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index de9eea1eb..2060e1769 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -105,7 +105,7 @@ $lang['txt_overwrt'] = 'Bestehende Datei überschreiben'; $lang['lockedby'] = 'Momentan gesperrt von'; $lang['lockexpire'] = 'Sperre läuft ab am'; $lang['willexpire'] = 'Die Sperre zur Bearbeitung dieser Seite läuft in einer Minute ab.\nUm Bearbeitungskonflikte zu vermeiden, solltest du sie durch einen Klick auf den Vorschau-Knopf verlängern.'; -$lang['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?'; +$lang['js']['notsavedyet'] = "Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?"; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; $lang['mediaselect'] = 'Dateiauswahl'; diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index e44845a90..2ffe8af99 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -103,7 +103,7 @@ $lang['txt_overwrt'] = 'Bestehende Datei überschreiben'; $lang['lockedby'] = 'Momentan gesperrt von'; $lang['lockexpire'] = 'Sperre läuft ab am'; $lang['willexpire'] = 'Die Sperre zur Bearbeitung dieser Seite läuft in einer Minute ab.\nUm Bearbeitungskonflikte zu vermeiden, sollten Sie sie durch einen Klick auf den Vorschau-Knopf verlängern.'; -$lang['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?'; +$lang['js']['notsavedyet'] = "Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?"; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; $lang['mediaselect'] = 'Dateiauswahl'; diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index 7aee3161d..1661ea829 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -95,7 +95,7 @@ $lang['txt_overwrt'] = 'Αντικατάσταση υπάρχοντο $lang['lockedby'] = 'Προσωρινά κλειδωμένο από'; $lang['lockexpire'] = 'Το κλείδωμα λήγει στις'; $lang['willexpire'] = 'Το κλείδωμά σας για την επεξεργασία αυτής της σελίδας θα λήξει σε ένα λεπτό.\n Για να το ανανεώσετε χρησιμοποιήστε την επιλογή Προεπισκόπηση.'; -$lang['notsavedyet'] = 'Οι μη αποθηκευμένες αλλαγές θα χαθούν.\nΘέλετε να συνεχίσετε?'; +$lang['js']['notsavedyet'] = "Οι μη αποθηκευμένες αλλαγές θα χαθούν.\nΘέλετε να συνεχίσετε?"; $lang['rssfailed'] = 'Εμφανίστηκε κάποιο σφάλμα κατά την ανάγνωση αυτού του feed: '; $lang['nothingfound'] = 'Δεν βρέθηκαν σχετικά αποτελέσματα.'; $lang['mediaselect'] = 'Επιλογή Αρχείων'; diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index d85ceb3db..2dfed59dc 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -100,7 +100,7 @@ $lang['lockedby'] = 'Currently locked by'; $lang['lockexpire'] = 'Lock expires at'; $lang['willexpire'] = 'Your lock for editing this page is about to expire in a minute.\nTo avoid conflicts use the preview button to reset the locktimer.'; -$lang['notsavedyet'] = 'Unsaved changes will be lost.\nReally continue?'; +$lang['js']['notsavedyet'] = "Unsaved changes will be lost.\nReally continue?"; $lang['rssfailed'] = 'An error occurred while fetching this feed: '; $lang['nothingfound']= 'Nothing was found.'; diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index 012fea5fe..1d60fee62 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -99,7 +99,7 @@ $lang['txt_overwrt'] = 'Anstataŭigi ekzistantan dosieron'; $lang['lockedby'] = 'Nune ŝlosita de'; $lang['lockexpire'] = 'Ŝlosado ĉesos en'; $lang['willexpire'] = 'Vi povos redakti ĉi tiun paĝon post unu minuto.\nSe vi volas nuligi tempkontrolon de la ŝlosado, do premu butonon "Antaŭrigardi".'; -$lang['notsavedyet'] = 'Ne konservitaj modifoj perdiĝos.\nĈu vi certe volas daŭrigi la procezon?'; +$lang['js']['notsavedyet'] = "Ne konservitaj modifoj perdiĝos.\nĈu vi certe volas daŭrigi la procezon?"; $lang['rssfailed'] = 'Okazis eraro dum ricevado de la novaĵ-fluo: '; $lang['nothingfound'] = 'Ankoraŭ nenio troviĝas tie ĉi.'; $lang['mediaselect'] = 'Elekto de aŭdvidaĵa dosiero'; diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index 2d473484d..d519ebc80 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -109,7 +109,7 @@ $lang['txt_overwrt'] = 'Sobreescribir archivo existente'; $lang['lockedby'] = 'Actualmente bloqueado por'; $lang['lockexpire'] = 'El bloqueo expira en'; $lang['willexpire'] = 'Tu bloqueo para editar esta página expira en un minuto.\nPara evitar conflictos usa el botón previsualizar para reiniciar el contador de tiempo.'; -$lang['notsavedyet'] = 'Los cambios que no se han guardado se perderán.\n¿Realmente quieres continuar?'; +$lang['js']['notsavedyet'] = "Los cambios que no se han guardado se perderán.\n¿Realmente quieres continuar?"; $lang['rssfailed'] = 'Se ha producido un error mientras se leían los datos de este feed: '; $lang['nothingfound'] = 'No se ha encontrado nada.'; $lang['mediaselect'] = 'Archivos Multimedia'; diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php index 4d3f10bdc..ef540bb3d 100644 --- a/inc/lang/et/lang.php +++ b/inc/lang/et/lang.php @@ -150,7 +150,7 @@ $lang['lockedby'] = 'Praegu on selle lukustanud'; $lang['lockexpire'] = 'Lukustus aegub'; $lang['willexpire'] = 'Teie lukustus selle lehe toimetamisele aegub umbes minuti pärast.\nIgasugu probleemide vältimiseks kasuta eelvaate nuppu, et lukustusarvesti taas tööle panna.'; -$lang['notsavedyet'] = 'Sul on seal salvestamata muudatusi, mis kohe kõige kaduva teed lähevad.\nKas Sa ikka tahad edasi liikuda?'; +$lang['js']['notsavedyet'] = "Sul on seal salvestamata muudatusi, mis kohe kõige kaduva teed lähevad.\nKas Sa ikka tahad edasi liikuda?"; $lang['rssfailed'] = 'Sinu soovitud info ammutamisel tekkis viga: '; $lang['nothingfound']= 'Oops, aga mitte muhvigi ei leitud.'; diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php index 8324e2587..a5f786654 100644 --- a/inc/lang/eu/lang.php +++ b/inc/lang/eu/lang.php @@ -91,7 +91,7 @@ $lang['txt_overwrt'] = 'Oraingo fitxategiaren gainean idatzi'; $lang['lockedby'] = 'Momentu honetan blokeatzen:'; $lang['lockexpire'] = 'Blokeaketa iraungitzen da:'; $lang['willexpire'] = 'Zure blokeaketa orri hau aldatzeko minutu batean iraungitzen da.\nGatazkak saihesteko, aurreikusi botoia erabili blokeaketa denboragailua berrabiarazteko.'; -$lang['notsavedyet'] = 'Gorde gabeko aldaketak galdu egingo dira.\nBenetan jarraitu nahi duzu?'; +$lang['js']['notsavedyet'] = "Gorde gabeko aldaketak galdu egingo dira.\nBenetan jarraitu nahi duzu?"; $lang['rssfailed'] = 'Errorea gertatu da feed hau irakurtzean:'; $lang['nothingfound'] = 'Ez da ezer aurkitu.'; $lang['mediaselect'] = 'Aukeratu Multimedia fitxategia'; diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 42ba69ea3..0a1f8fadd 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -99,7 +99,7 @@ $lang['txt_overwrt'] = 'بر روی فایل موجود بنویس'; $lang['lockedby'] = 'در حال حاضر قفل شده است'; $lang['lockexpire'] = 'قفل منقضی شده است'; $lang['willexpire'] = 'حالت قفل شما مدتی است منقضی شده است \n برای جلوگیری از تداخل دکمه‌ی پیش‌نمایش را برای صفر شدن ساعت قفل بزنید.'; -$lang['notsavedyet'] = 'تغییرات ذخیره شده از بین خواهد رفت. \n می‌خواهید ادامه دهید؟'; +$lang['js']['notsavedyet'] = "تغییرات ذخیره شده از بین خواهد رفت. \n می‌خواهید ادامه دهید؟"; $lang['rssfailed'] = 'بروز خطا در هنگام واکشی'; $lang['nothingfound'] = 'چیزی پیدا نشد'; $lang['mediaselect'] = 'فایل‌ها'; diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 5af172fb3..a139a9f19 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = 'Ylikirjoita olemassa oleva'; $lang['lockedby'] = 'Tällä hetkellä tiedoston on lukinnut'; $lang['lockexpire'] = 'Lukitus päättyy'; $lang['willexpire'] = 'Lukituksesi tämän sivun muokkaukseen päättyy minuutin kuluttua.\nRistiriitojen välttämiseksi paina esikatselu-nappia nollataksesi lukitusajan.'; -$lang['notsavedyet'] = 'Dokumentissa on tallentamattomia muutoksia, jotka häviävät.\n Haluatko varmasti jatkaa?'; +$lang['js']['notsavedyet'] = "Dokumentissa on tallentamattomia muutoksia, jotka häviävät.\n Haluatko varmasti jatkaa?"; $lang['rssfailed'] = 'Virhe tapahtui noudettaessa tätä syötettä: '; $lang['nothingfound'] = 'Mitään ei löytynyt.'; $lang['mediaselect'] = 'Mediatiedoston valinta'; diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php index a8c241fc1..74d7fff58 100644 --- a/inc/lang/fo/lang.php +++ b/inc/lang/fo/lang.php @@ -81,7 +81,7 @@ $lang['lockedby'] = 'Fyribils læst av'; $lang['lockexpire'] = 'Lásið ferð úr gildi kl.'; $lang['willexpire'] = 'Títt lás á hetta skjalið ferð úr gildi um ein minnutt.\nTrýst á '.$lang['btn_preview'].'-knappin fyri at sleppa undan trupulleikum.'; -$lang['notsavedyet'] = 'Tað eru gjørdar broytingar í skjalinum, um tú haldur fram vilja broytingar fara fyri skeytið.\nYnskir tú at halda fram?'; +$lang['js']['notsavedyet'] = "Tað eru gjørdar broytingar í skjalinum, um tú haldur fram vilja broytingar fara fyri skeytið.\nYnskir tú at halda fram?"; $lang['rssfailed'] = 'Eitt brek koma fyri tá roynt var at fáa: '; $lang['nothingfound']= 'Leiting gav onki úrslit.'; diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index be55388bf..6afc59756 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -106,7 +106,7 @@ $lang['txt_overwrt'] = 'Écraser le fichier cible'; $lang['lockedby'] = 'Actuellement bloqué par'; $lang['lockexpire'] = 'Le blocage expire à'; $lang['willexpire'] = 'Votre blocage pour modifier cette page expire dans une minute.\nPour éviter les conflits, utiliser le bouton « Aperçu » pour réinitialiser le minuteur.'; -$lang['notsavedyet'] = 'Les modifications non enregistrées seront perdues.\nVoulez-vous vraiment continuer ?'; +$lang['js']['notsavedyet'] = "Les modifications non enregistrées seront perdues.\nVoulez-vous vraiment continuer ?"; $lang['rssfailed'] = 'Une erreur s\'est produite en récupérant ce flux : '; $lang['nothingfound'] = 'Pas de réponse.'; $lang['mediaselect'] = 'Sélection de fichier'; diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index e82eb473a..9f1b48173 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -90,7 +90,7 @@ $lang['txt_overwrt'] = 'Sobrescribir arquivo existente'; $lang['lockedby'] = 'Bloqueado actualmente por'; $lang['lockexpire'] = 'O bloqueo remata o'; $lang['willexpire'] = 'O teu bloqueo para editares esta páxina vai caducar nun minuto.\nPara de evitar conflitos, emprega o botón de previsualización para reiniciares o contador do tempo de bloqueo.'; -$lang['notsavedyet'] = 'Perderanse os trocos non gardados.\nEstá certo de quereres continuar?'; +$lang['js']['notsavedyet'] = "Perderanse os trocos non gardados.\nEstá certo de quereres continuar?"; $lang['rssfailed'] = 'Houbo un erro ao tentar obter esta corrente RSS: '; $lang['nothingfound'] = 'Non se atopou nada.'; $lang['mediaselect'] = 'Arquivos-Media'; diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 1f7d366ab..a411764d2 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -98,7 +98,7 @@ $lang['txt_overwrt'] = 'לכתוב במקום קובץ קיים'; $lang['lockedby'] = 'נעול על ידי'; $lang['lockexpire'] = 'נעילה פגה'; $lang['willexpire'] = 'נעילה תחלוף עוד זמן קצר. \nלמניעת התנגשויות יש להשתמש בכפתור הרענון מטה כדי לאתחל את הנעילה שנית'; -$lang['notsavedyet'] = 'קיימים שינויים שטרם נשמרו ואשר יאבדו \n האם להמשיך?'; +$lang['js']['notsavedyet'] = "קיימים שינויים שטרם נשמרו ואשר יאבדו \n האם להמשיך?"; $lang['rssfailed'] = 'כשל ב-RSS'; $lang['nothingfound'] = 'לא נמצאו תוצאות'; $lang['mediaselect'] = 'בחירת קובץ מדיה'; diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index 05a20c25e..545498dee 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -92,7 +92,7 @@ $lang['txt_overwrt'] = 'Prepiši postojeću datoteku'; $lang['lockedby'] = 'Zaključao'; $lang['lockexpire'] = 'Zaključano do'; $lang['willexpire'] = 'Dokument kojeg mijenjate će biti zaključan još 1 minutu.\n Ukoliko želite i dalje raditi izmjene na dokumentu - kliknite na "Pregled".'; -$lang['notsavedyet'] = 'Vaše izmjene će se izgubiti.\nŽelite li nastaviti?'; +$lang['js']['notsavedyet'] = "Vaše izmjene će se izgubiti.\nŽelite li nastaviti?"; $lang['rssfailed'] = 'Došlo je do greške prilikom preuzimanja feed-a: '; $lang['nothingfound'] = 'Traženi dokumetni nisu pronađeni.'; $lang['mediaselect'] = 'Mediafile datoteke'; diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index b9218f897..4aa19c193 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -97,7 +97,7 @@ $lang['txt_overwrt'] = 'Létező fájl felülírása'; $lang['lockedby'] = 'Jelenleg zárolta:'; $lang['lockexpire'] = 'A zárolás lejár:'; $lang['willexpire'] = 'Az oldalszerkesztési zárolásod körülbelül egy percen belül lejár.\nAz ütközések elkerülése végett használd az előnézet gombot a zárolási időzítés frissítéséhez.'; -$lang['notsavedyet'] = 'Elmentetlen változások vannak, amelyek el fognak veszni.\nTényleg ezt akarod?'; +$lang['js']['notsavedyet'] = "Elmentetlen változások vannak, amelyek el fognak veszni.\nTényleg ezt akarod?"; $lang['rssfailed'] = 'Hiba történt ennek a betöltésekor: '; $lang['nothingfound'] = 'Semmit sem találtam.'; $lang['mediaselect'] = 'Médiafájl kiválasztása'; diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php index 8fb4b424d..f68467543 100644 --- a/inc/lang/ia/lang.php +++ b/inc/lang/ia/lang.php @@ -96,7 +96,7 @@ $lang['txt_overwrt'] = 'Reimplaciar le file existente'; $lang['lockedby'] = 'Actualmente serrate per'; $lang['lockexpire'] = 'Serratura expira le'; $lang['willexpire'] = 'Tu serratura super le modification de iste pagina expirara post un minuta.\nPro evitar conflictos, usa le button Previsualisar pro reinitialisar le timer del serratura.'; -$lang['notsavedyet'] = 'Le modificationes non salveguardate essera perdite.\nRealmente continuar?'; +$lang['js']['notsavedyet'] = "Le modificationes non salveguardate essera perdite.\nRealmente continuar?"; $lang['rssfailed'] = 'Un error occurreva durante le obtention de iste syndication:'; $lang['nothingfound'] = 'Nihil ha essite trovate.'; $lang['mediaselect'] = 'Files multimedia'; diff --git a/inc/lang/id-ni/lang.php b/inc/lang/id-ni/lang.php index 2fc631373..4e26677e0 100644 --- a/inc/lang/id-ni/lang.php +++ b/inc/lang/id-ni/lang.php @@ -75,5 +75,5 @@ $lang['resendpwdnouser'] = 'Bologö dödöu, lö masöndra zangoguna da\'a $lang['resendpwdconfirm'] = 'No tefaohe\'ö link famaduhu\'ö ba imele.'; $lang['resendpwdsuccess'] = 'No tefa\'ohe\'ö kode sibohou ba imele.'; $lang['txt_upload'] = 'Fili file ni fa\'ohe\'ö'; -$lang['notsavedyet'] = 'Famawu\'a si lö mu\'irö\'ö taya. \nSinduhu ötohugö?'; +$lang['js']['notsavedyet'] = "Famawu\'a si lö mu\'irö\'ö taya. \nSinduhu ötohugö?"; $lang['mediaselect'] = 'Media file'; diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index 447abaf1a..3ea1b394a 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -86,7 +86,7 @@ $lang['txt_overwrt'] = 'File yang telah ada akan ditindih'; $lang['lockedby'] = 'Sedang dikunci oleh'; $lang['lockexpire'] = 'Penguncian artikel sampai dengan'; $lang['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['notsavedyet'] = 'Perubahan yang belum disimpan akan hilang.\nYakin akan dilanjutkan?'; +$lang['js']['notsavedyet'] = "Perubahan yang belum disimpan akan hilang.\nYakin akan dilanjutkan?"; $lang['rssfailed'] = 'Error terjadi saat mengambil feed: '; $lang['nothingfound'] = 'Tidak menemukan samasekali.'; $lang['mediaselect'] = 'Pilihan Mediafile'; diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 1184083d1..8e476816e 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -99,7 +99,7 @@ $lang['txt_overwrt'] = 'Sovrascrivi file esistente'; $lang['lockedby'] = 'Attualmente bloccato da'; $lang['lockexpire'] = 'Il blocco scade alle'; $lang['willexpire'] = 'Il tuo blocco su questa pagina scadrà tra circa un minuto.\nPer evitare incongruenze usa il pulsante di anteprima per prolungare il periodo di blocco.'; -$lang['notsavedyet'] = 'Le modifiche non salvate andranno perse.\nContinuare?'; +$lang['js']['notsavedyet'] = "Le modifiche non salvate andranno perse.\nContinuare?"; $lang['rssfailed'] = 'Si è verificato un errore cercando questo feed: '; $lang['nothingfound'] = 'Nessun risultato trovato.'; $lang['mediaselect'] = 'Selezione dei file'; diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 1f6681af1..ad76e5bf0 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -96,7 +96,7 @@ $lang['txt_overwrt'] = '既存のファイルを上書き'; $lang['lockedby'] = 'この文書は次のユーザによってロックされています'; $lang['lockexpire'] = 'ロック期限:'; $lang['willexpire'] = '編集中の文書はロック期限を過ぎようとしています。このままロックする場合は、一度文書の確認を行って期限をリセットしてください。'; -$lang['notsavedyet'] = '変更は保存されません。このまま処理を続けてよろしいですか?'; +$lang['js']['notsavedyet'] = "変更は保存されません。このまま処理を続けてよろしいですか?"; $lang['rssfailed'] = 'RSSの取り出しに失敗しました:'; $lang['nothingfound'] = '該当文書はありませんでした。'; $lang['mediaselect'] = 'メディアファイルを選択'; diff --git a/inc/lang/km/lang.php b/inc/lang/km/lang.php index a8257255f..19847674d 100644 --- a/inc/lang/km/lang.php +++ b/inc/lang/km/lang.php @@ -93,7 +93,7 @@ $lang['lockedby'] = 'ឥឡូវនេះចកជាប់​'; $lang['lockexpire'] = 'សោជាប់ផុត​កំណត់ម៉ោង'; $lang['willexpire'] = 'សោអ្នកចំពោះកែតម្រូវទំព័រនេះ ហួសពែលក្នុងមួយនាទី។\nកុំឲ្យមានជម្លោះ ប្រើ «បង្ហាញ»​ ទៅកំណត់​ឡើង​វិញ។'; -$lang['notsavedyet'] = 'កម្រែមិនទានរុក្សាទកត្រូវបោះបង់។\nបន្តទៅទាឬទេ?'; +$lang['js']['notsavedyet'] = "កម្រែមិនទានរុក្សាទកត្រូវបោះបង់។\nបន្តទៅទាឬទេ?"; $lang['rssfailed'] = 'មានកំហុសពេលទៅ​ប្រមូល​យកមតិ​ព័ត៌មាន៖ '; $lang['nothingfound']= 'រកមិនឃើញអ្វីទេ។'; diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index f11ec95fd..83014c151 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = '새로운 파일로 이전 파일을 교체합 $lang['lockedby'] = '현재 잠금 사용자'; $lang['lockexpire'] = '잠금 해제 시간'; $lang['willexpire'] = '잠시 후 편집 잠금이 해제됩니다.\n편집 충돌을 피하려면 미리보기를 눌러 잠금 시간을 다시 설정하기 바랍니다.'; -$lang['notsavedyet'] = '저장하지 않은 변경은 지워집니다.\n계속하시겠습니까?'; +$lang['js']['notsavedyet'] = "저장하지 않은 변경은 지워집니다.\n계속하시겠습니까?"; $lang['rssfailed'] = 'feed 가져오기 실패: '; $lang['nothingfound'] = '아무 것도 없습니다.'; $lang['mediaselect'] = '미디어 파일 선택'; diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php index 946954b98..cb8dd0865 100644 --- a/inc/lang/ku/lang.php +++ b/inc/lang/ku/lang.php @@ -62,7 +62,7 @@ $lang['lockedby'] = 'Currently locked by'; $lang['lockexpire'] = 'Lock expires at'; $lang['willexpire'] = 'Your lock for editing this page is about to expire in a minute.\nTo avoid conflicts use the preview button to reset the locktimer.'; -$lang['notsavedyet'] = 'Unsaved changes will be lost.\nReally continue?'; +$lang['js']['notsavedyet'] = "Unsaved changes will be lost.\nReally continue?"; $lang['rssfailed'] = 'An error occured while fetching this feed: '; $lang['nothingfound']= 'Tiştek nehat dîtin.'; diff --git a/inc/lang/lb/lang.php b/inc/lang/lb/lang.php index b3d3989ca..7152b65b1 100644 --- a/inc/lang/lb/lang.php +++ b/inc/lang/lb/lang.php @@ -85,7 +85,7 @@ $lang['txt_overwrt'] = 'Bestehend Datei iwwerschreiwen'; $lang['lockedby'] = 'Am Moment gespaart vun'; $lang['lockexpire'] = 'D\'Spär leeft of ëm'; $lang['willexpire'] = 'Deng Spär fir d\'Säit ze änneren leeft an enger Minutt of.\nFir Konflikter ze verhënneren, dréck op Kucken ouni ofzespäicheren.'; -$lang['notsavedyet'] = 'Net gespäicher Ännerunge gi verluer.\nWierklech weiderfueren?'; +$lang['js']['notsavedyet'] = "Net gespäicher Ännerunge gi verluer.\nWierklech weiderfueren?"; $lang['rssfailed'] = 'Et ass e Feeler virkomm beim erofluede vun dësem Feed: '; $lang['nothingfound'] = 'Näischt fond.'; $lang['mediaselect'] = 'Mediadateien'; diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php index 151964e03..639ad4749 100644 --- a/inc/lang/lt/lang.php +++ b/inc/lang/lt/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = 'Perrašyti egzistuojančią bylą'; $lang['lockedby'] = 'Užrakintas vartotojo'; $lang['lockexpire'] = 'Užraktas bus nuimtas'; $lang['willexpire'] = 'Šio puslapio redagavimo užrakto galiojimo laikas baigsis po minutės.\nNorėdami išvengti nesklandumų naudokite peržiūros mygtuką ir užraktas atsinaujins.'; -$lang['notsavedyet'] = 'Pakeitimai nebus išsaugoti.\nTikrai tęsti?'; +$lang['js']['notsavedyet'] = "Pakeitimai nebus išsaugoti.\nTikrai tęsti?"; $lang['rssfailed'] = 'Siunčiant šį feed\'ą įvyko klaida: '; $lang['nothingfound'] = 'Paieškos rezultatų nėra.'; $lang['mediaselect'] = 'Mediabylos išsirinkimas'; diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php index 9e31cc54e..1ebd86edf 100644 --- a/inc/lang/lv/lang.php +++ b/inc/lang/lv/lang.php @@ -90,7 +90,7 @@ $lang['txt_overwrt'] = 'Aizstāt esošo failu'; $lang['lockedby'] = 'Patlaban bloķējis '; $lang['lockexpire'] = 'Bloķējums beigsies '; $lang['willexpire'] = 'Tavs bloķējums uz šo lapu pēc minūtes beigsies.\nLai izvairītos no konflikta, nospied Iepriekšapskata pogu\n un bloķējuma laiku sāks skaitīt no jauna.'; -$lang['notsavedyet'] = 'Veiktas bet nav saglabātas izmaiņas.\nVai tiešām tās nevajag?'; +$lang['js']['notsavedyet'] = "Veiktas bet nav saglabātas izmaiņas.\nVai tiešām tās nevajag?"; $lang['rssfailed'] = 'Kļūda saņemot saturu no '; $lang['nothingfound'] = 'Nekas nav atrasts.'; $lang['mediaselect'] = 'Mēdiju faila izvēle'; diff --git a/inc/lang/mg/lang.php b/inc/lang/mg/lang.php index bae292363..2ecbcdcff 100644 --- a/inc/lang/mg/lang.php +++ b/inc/lang/mg/lang.php @@ -56,7 +56,7 @@ $lang['lockedby'] = 'Mbola voahidin\'i'; $lang['lockexpire'] = 'Afaka ny hidy amin\'ny'; $lang['willexpire'] = 'Efa ho lany fotoana afaka iray minitra ny hidy ahafahanao manova ny pejy.\nMba hialana amin\'ny conflit dia ampiasao ny bokotra topi-maso hamerenana ny timer-n\'ny hidy.'; -$lang['notsavedyet'] = 'Misy fiovana tsy voarakitra, ho very izany ireo.\nAzo antoka fa hotohizana?'; +$lang['js']['notsavedyet'] = "Misy fiovana tsy voarakitra, ho very izany ireo.\nAzo antoka fa hotohizana?"; $lang['rssfailed'] = 'An error occured while fetching this feed: '; $lang['nothingfound']= 'Tsy nahitana n\'inon\'inona.'; diff --git a/inc/lang/mk/lang.php b/inc/lang/mk/lang.php index b33bea1a3..ddd734e22 100644 --- a/inc/lang/mk/lang.php +++ b/inc/lang/mk/lang.php @@ -93,7 +93,7 @@ $lang['txt_overwrt'] = 'Пребриши ја веќе постоеч $lang['lockedby'] = 'Моментално заклучена од'; $lang['lockexpire'] = 'Клучот истекува на'; $lang['willexpire'] = 'Вашиот клуч за уредување на оваа страница ќе истече за една минута.\nЗа да избегнете конфликти и да го ресетирате бројачот за време, искористете го копчето за преглед.'; -$lang['notsavedyet'] = 'Незачуваните промени ќе бидат изгубени.\nСакате да продолжите?'; +$lang['js']['notsavedyet'] = "Незачуваните промени ќе бидат изгубени.\nСакате да продолжите?"; $lang['rssfailed'] = 'Се појави грешка при повлекувањето на овој канал:'; $lang['nothingfound'] = 'Ништо не е пронајдено.'; $lang['mediaselect'] = 'Медиа датотеки'; diff --git a/inc/lang/mr/lang.php b/inc/lang/mr/lang.php index 715d51119..99561f064 100644 --- a/inc/lang/mr/lang.php +++ b/inc/lang/mr/lang.php @@ -98,7 +98,7 @@ $lang['txt_overwrt'] = 'अस्तित्वात असलेल $lang['lockedby'] = 'सध्या लॉक करणारा :'; $lang['lockexpire'] = 'सध्या लॉक करणारा :'; $lang['willexpire'] = 'हे पृष्ठ संपादित करण्यासाठी मिळालेले लॉक एखाद्या मिनिटात संपणार आहे.\n चुका होऊ नयेत म्हणुन कृपया प्रीव्यू बटन दाबुन लॉक ची वेळ पुन्हा चालू करा.'; -$lang['notsavedyet'] = 'सुरक्षित न केलेले बदल नष्ट होतील. नक्की करू का ?'; +$lang['js']['notsavedyet'] = "सुरक्षित न केलेले बदल नष्ट होतील. नक्की करू का ?"; $lang['rssfailed'] = 'ही पुरवणी आणण्यात काही चूक झाली:'; $lang['nothingfound'] = 'काही सापडला नाही.'; $lang['mediaselect'] = 'दृकश्राव्य फाइल'; diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php index ce9310ee5..6c00610ea 100644 --- a/inc/lang/ne/lang.php +++ b/inc/lang/ne/lang.php @@ -91,7 +91,7 @@ $lang['txt_overwrt'] = 'रहेको उहि नामको फ $lang['lockedby'] = 'अहिले ताल्चा लगाइएको'; $lang['lockexpire'] = 'ताल्चा अवधि सकिने :'; $lang['willexpire'] = 'तपाईलले यो पृष्ठ सम्पादन गर्न लगाउनु भएको ताल्चाको अवधि एक मिनेट भित्र सकिदै छ। \n द्वन्द हुन नदिन पूर्वरुप वा ताल्चा समय परिवर्तन गर्नुहोस् ।'; -$lang['notsavedyet'] = 'तपाईले वचन गर्नु नभएको परिवर्रन हराउने छ। \n साच्चै जारी गर्नुहुन्छ ।'; +$lang['js']['notsavedyet'] = "तपाईले वचन गर्नु नभएको परिवर्रन हराउने छ। \n साच्चै जारी गर्नुहुन्छ ।"; $lang['rssfailed'] = 'यो फिड लिइ आउदा गल्ति भयो ।'; $lang['nothingfound'] = 'केहि पनि भेटिएन ।'; $lang['mediaselect'] = 'मिडिया फाइलहरू '; diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 782a76758..75d4aaa35 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -102,7 +102,7 @@ $lang['txt_overwrt'] = 'Overschrijf bestaand bestand'; $lang['lockedby'] = 'Momenteel in gebruik door'; $lang['lockexpire'] = 'Exclusief gebruiksrecht vervalt op'; $lang['willexpire'] = 'Je exclusieve gebruiksrecht voor het aanpassen van deze pagina verloopt over een minuut.\nKlik op de Voorbeeld-knop om het exclusieve gebruiksrecht te verlengen.'; -$lang['notsavedyet'] = 'Nog niet bewaarde wijzigingen zullen verloren gaan.\nWeet je zeker dat je wilt doorgaan?'; +$lang['js']['notsavedyet'] = "Nog niet bewaarde wijzigingen zullen verloren gaan.\nWeet je zeker dat je wilt doorgaan?"; $lang['rssfailed'] = 'Er is een fout opgetreden bij het ophalen van de feed: '; $lang['nothingfound'] = 'Er werd niets gevonden.'; $lang['mediaselect'] = 'Bestandsselectie'; diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index 2dc2c8339..ca63c0094 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -105,7 +105,7 @@ $lang['txt_overwrt'] = 'Overskriv eksisterende fil'; $lang['lockedby'] = 'Stengt av'; $lang['lockexpire'] = 'Avstengningen opphører'; $lang['willexpire'] = 'Din redigeringslås for dette dokumentet kommer snart til å opphøre.\nFor å unngå versjonskonflikter bør du forhåndsvise dokumentet ditt for å forlenge redigeringslåsen.'; -$lang['notsavedyet'] = 'Ulagrede endringer vil gå tapt.\nVil du fortsette?'; +$lang['js']['notsavedyet'] = "Ulagrede endringer vil gå tapt.\nVil du fortsette?"; $lang['rssfailed'] = 'En feil oppstod da denne kilden skulle hentes:'; $lang['nothingfound'] = 'Ingen data funnet.'; $lang['mediaselect'] = 'Valg av mediafil'; diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 89cdd695d..0f8e8bb9a 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -96,7 +96,7 @@ $lang['txt_overwrt'] = 'Nadpisać istniejący plik?'; $lang['lockedby'] = 'Aktualnie zablokowane przez'; $lang['lockexpire'] = 'Blokada wygasa'; $lang['willexpire'] = 'Za minutę Twoja blokada tej strony wygaśnie.\nW celu uniknięcia konfliktów wyświetl podgląd aby odnowić blokadę.'; -$lang['notsavedyet'] = 'Nie zapisane zmiany zostaną utracone.\nCzy na pewno kontynuować?'; +$lang['js']['notsavedyet'] = "Nie zapisane zmiany zostaną utracone.\nCzy na pewno kontynuować?"; $lang['rssfailed'] = 'Wystąpił błąd przy pobieraniu tych danych: '; $lang['nothingfound'] = 'Nic nie znaleziono.'; $lang['mediaselect'] = 'Wysyłanie pliku'; diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index 8b7493cc6..1d1366e7a 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -103,7 +103,7 @@ $lang['txt_overwrt'] = 'Substituir o arquivo existente'; $lang['lockedby'] = 'Atualmente bloqueada por'; $lang['lockexpire'] = 'O bloqueio expira em'; $lang['willexpire'] = 'O seu bloqueio de edição deste página irá expirar em um minuto.\nPara evitar conflitos de edição, clique no botão de visualização para reiniciar o temporizador de bloqueio.'; -$lang['notsavedyet'] = 'As alterações não salvas serão perdidas.\nDeseja realmente continuar?'; +$lang['js']['notsavedyet'] = "As alterações não salvas serão perdidas.\nDeseja realmente continuar?"; $lang['rssfailed'] = 'Ocorreu um erro durante a atualização dessa fonte: '; $lang['nothingfound'] = 'Não foi encontrado nada.'; $lang['mediaselect'] = 'Arquivos de mídia'; diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index ef4c70785..d0861f3ef 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -94,7 +94,7 @@ $lang['txt_overwrt'] = 'Escrever por cima do ficheiro já existente'; $lang['lockedby'] = 'Bloqueado por'; $lang['lockexpire'] = 'Expira em'; $lang['willexpire'] = 'O bloqueio de edição para este documento irá expirar num minuto.\nPara evitar conflitos de edição, clique no botão para re-iniciar o temporizador de bloqueio.'; -$lang['notsavedyet'] = 'Existem alterações não gravadas, que serão perdidas se continuar.\nDeseja realmente continuar?'; +$lang['js']['notsavedyet'] = "Existem alterações não gravadas, que serão perdidas se continuar.\nDeseja realmente continuar?"; $lang['rssfailed'] = 'Ocorreu um erro neste canal RSS: '; $lang['nothingfound'] = 'Nada foi encontrado.'; $lang['mediaselect'] = 'Selecção de ficheiros'; diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index 87ee6ae0f..f71d5f531 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -99,7 +99,7 @@ $lang['txt_overwrt'] = 'Suprascrie fişierul existent'; $lang['lockedby'] = 'Momentan blocat de'; $lang['lockexpire'] = 'Blocarea expiră la'; $lang['willexpire'] = 'Blocarea pentru editarea paginii expiră intr-un minut.\nPentru a preveni conflictele foloseşte butonul de previzualizare pentru resetarea blocării.'; -$lang['notsavedyet'] = 'Există modificări nesalvate, care se vor pierde.\nDoreşti să continui?'; +$lang['js']['notsavedyet'] = "Există modificări nesalvate, care se vor pierde.\nDoreşti să continui?"; $lang['rssfailed'] = 'A apărut o eroare in timpul descărcării acestui cîmp: '; $lang['nothingfound'] = 'Nu am găsit nimic.'; $lang['mediaselect'] = 'Selectare fişiere media'; diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 3b722aea6..814406f8e 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -102,7 +102,7 @@ $lang['txt_overwrt'] = 'Перезаписать существующ $lang['lockedby'] = 'В данный момент заблокирован'; $lang['lockexpire'] = 'Блокировка истекает в'; $lang['willexpire'] = 'Ваша блокировка редактирования этой страницы истекает в течение минуты.\nЧтобы избежать конфликтов и сбросить таймер блокировки, нажмите кнопку просмотра.'; -$lang['notsavedyet'] = 'Несохранённые изменения будут потеряны.\nВы действительно хотите продолжить?'; +$lang['js']['notsavedyet'] = "Несохранённые изменения будут потеряны.\nВы действительно хотите продолжить?"; $lang['rssfailed'] = 'Произошла ошибка при получении следующей новостной ленты: '; $lang['nothingfound'] = 'Ничего не найдено.'; $lang['mediaselect'] = 'Выбор медиа-файла'; diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index 2d9c8efea..8eb119df5 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -93,7 +93,7 @@ $lang['txt_overwrt'] = 'Prepísať existujúci súbor'; $lang['lockedby'] = 'Práve zamknuté:'; $lang['lockexpire'] = 'Zámok vyprší:'; $lang['willexpire'] = 'Váš zámok pre editáciu za chvílu vyprší.\nAby ste predišli konfliktom, stlačte tlačítko Náhľad a zámok sa predĺži.'; -$lang['notsavedyet'] = 'Neuložené zmeny budú stratené.\nChcete naozaj pokračovať?'; +$lang['js']['notsavedyet'] = "Neuložené zmeny budú stratené.\nChcete naozaj pokračovať?"; $lang['rssfailed'] = 'Nastala chyba pri vytváraní tohto RSS: '; $lang['nothingfound'] = 'Nič nenájdené.'; $lang['mediaselect'] = 'Výber dokumentu'; diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php index bbffcfbb1..9d94bab49 100644 --- a/inc/lang/sl/lang.php +++ b/inc/lang/sl/lang.php @@ -78,7 +78,7 @@ $lang['txt_overwrt'] = 'Prepiši obstoječo datoteko'; $lang['lockedby'] = 'Trenutno zaklenjeno od'; $lang['lockexpire'] = 'Zaklep preteče'; $lang['willexpire'] = 'Vaš zaklep za urejevanje bo pretekel čez eno minuto.\nDa se izognete konfliktom, uporabite predogled, da se merilnik časa za zaklep ponastavi.'; -$lang['notsavedyet'] = 'Obstajajo neshranjene spremembe, ki bodo izgubljene.\nRes želite nadaljevati?'; +$lang['js']['notsavedyet'] = "Obstajajo neshranjene spremembe, ki bodo izgubljene.\nRes želite nadaljevati?"; $lang['rssfailed'] = 'Prišlo je do napake pri prenašanju tega dovoda: '; $lang['nothingfound'] = 'Nič ni bilo najdeno.'; $lang['mediaselect'] = 'Mediafile Izbira'; diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php index a41a6bd6e..0213ba28b 100644 --- a/inc/lang/sq/lang.php +++ b/inc/lang/sq/lang.php @@ -95,7 +95,7 @@ $lang['txt_overwrt'] = 'Zëvendëso skedarin ekzistues'; $lang['lockedby'] = 'Kyçur momentalisht nga'; $lang['lockexpire'] = 'Kyçi skadon në'; $lang['willexpire'] = 'Kyçi juaj për redaktimin e kësaj faqeje është duke skaduar.\nPër të shmangur konflikte përdorni butonin Shiko Paraprakisht për të rivendosur kohën e kyçjes.'; -$lang['notsavedyet'] = 'Ndryshimet e paruajtura do të humbasin.\nVazhdo me të vërtetë?'; +$lang['js']['notsavedyet'] = "Ndryshimet e paruajtura do të humbasin.\nVazhdo me të vërtetë?"; $lang['rssfailed'] = 'Ndoshi një gabim gjatë kapjes së këtij lajmi:'; $lang['nothingfound'] = 'Nuk u gjet asgjë.'; $lang['mediaselect'] = 'Skedarët e Medias'; diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php index 94829d314..7774e304e 100644 --- a/inc/lang/sr/lang.php +++ b/inc/lang/sr/lang.php @@ -92,7 +92,7 @@ $lang['txt_overwrt'] = 'Препишите тренутни фајл'; $lang['lockedby'] = 'Тренутно закључано од стране'; $lang['lockexpire'] = 'Закључавање истиче'; $lang['willexpire'] = 'Ваше закључавање за измену ове странице ће да истекне за један минут.\nДа би сте избегли конфликте, искористите дугме за преглед како би сте ресетовали тајмер закључавања.'; -$lang['notsavedyet'] = 'Несачуване измене ће бити изгубљене.\nДа ли стварно желите да наставите?'; +$lang['js']['notsavedyet'] = "Несачуване измене ће бити изгубљене.\nДа ли стварно желите да наставите?"; $lang['rssfailed'] = 'Дошло је до грешке приликом преузимања овог довода: '; $lang['nothingfound'] = 'Ништа није нађено.'; $lang['mediaselect'] = 'Избор медијске датотеке'; diff --git a/inc/lang/sv/lang.php b/inc/lang/sv/lang.php index 062e83a31..09dec8edd 100644 --- a/inc/lang/sv/lang.php +++ b/inc/lang/sv/lang.php @@ -106,7 +106,7 @@ $lang['txt_overwrt'] = 'Skriv över befintlig fil'; $lang['lockedby'] = 'Låst av'; $lang['lockexpire'] = 'Lås upphör att gälla'; $lang['willexpire'] = 'Ditt redigeringslås för detta dokument kommer snart att upphöra.\nFör att undvika versionskonflikter bör du förhandsgranska ditt dokument för att förlänga redigeringslåset.'; -$lang['notsavedyet'] = 'Det finns ändringar som inte är sparade.\nÄr du säker på att du vill fortsätta?'; +$lang['js']['notsavedyet'] = "Det finns ändringar som inte är sparade.\nÄr du säker på att du vill fortsätta?"; $lang['rssfailed'] = 'Ett fel uppstod när detta RSS-flöde skulle hämtas: '; $lang['nothingfound'] = 'Inga filer hittades.'; $lang['mediaselect'] = 'Mediafiler'; diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php index e7937ecbc..ea27793b8 100644 --- a/inc/lang/th/lang.php +++ b/inc/lang/th/lang.php @@ -102,7 +102,7 @@ $lang['txt_overwrt'] = 'เขียนทับไฟล์ที่ $lang['lockedby'] = 'ตอนนี้ถูกล๊อคโดย'; $lang['lockexpire'] = 'การล๊อคจะหมดอายุเมื่อ'; $lang['willexpire'] = 'การล๊อคเพื่อแก้ไขหน้านี้กำลังจะหมดเวลาในอีก \n นาที เพื่อที่จะหลีกเลี่ยงข้อขัดแย้งให้ใช้ปุ่ม "Preview" เพื่อรีเซ็ทเวลาใหม่'; -$lang['notsavedyet'] = 'การแก้ไขที่ไม่ได้บันทึกจะสูญหาย \n ต้องการทำต่อจริงๆหรือ?'; +$lang['js']['notsavedyet'] = "การแก้ไขที่ไม่ได้บันทึกจะสูญหาย \n ต้องการทำต่อจริงๆหรือ?"; $lang['rssfailed'] = 'มีข้อผิดพลาดขณะดูดฟีดนี้'; $lang['nothingfound'] = 'ไม่พบสิ่งใด'; $lang['mediaselect'] = 'ไฟล์สื่อ'; diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index dd045a6c7..0de4442a5 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -95,7 +95,7 @@ $lang['txt_overwrt'] = 'Mevcut dosyanın üstüne yaz'; $lang['lockedby'] = 'Şu an şunun tarafından kilitli:'; $lang['lockexpire'] = 'Kilitin açılma tarihi:'; $lang['willexpire'] = 'Bu sayfayı değiştirme kilidinin süresi yaklaşık bir dakika içinde geçecek.\nÇakışmaları önlemek için önizleme tuşunu kullanarak kilit sayacını sıfırla.'; -$lang['notsavedyet'] = 'Kaydedilmemiş değişiklikler kaybolacak.\nDevam etmek istiyor musunuz?'; +$lang['js']['notsavedyet'] = "Kaydedilmemiş değişiklikler kaybolacak.\nDevam etmek istiyor musunuz?"; $lang['rssfailed'] = 'Bu beslemeyi çekerken hata oluştu: '; $lang['nothingfound'] = 'Hiçbir şey yok.'; $lang['mediaselect'] = 'Çokluortam dosyası seçimi'; diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index 5f94d9b47..08a566b7e 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -97,7 +97,7 @@ $lang['txt_overwrt'] = 'Перезаписати існуючий фа $lang['lockedby'] = 'Заблоковано'; $lang['lockexpire'] = 'Блокування завершується в'; $lang['willexpire'] = 'Блокування редагування цієї сторінки закінчується через хвилину.\n Щоб уникнути конфліктів використовуйте кнопку перегляду для продовження блокування.'; -$lang['notsavedyet'] = 'Незбережені зміни будуть втрачені.\n Дійсно продовжити?'; +$lang['js']['notsavedyet'] = "Незбережені зміни будуть втрачені.\n Дійсно продовжити?"; $lang['rssfailed'] = 'Виникла помилка під час отримання RSS-стрічки: '; $lang['nothingfound'] = 'Нічого не знайдено.'; $lang['mediaselect'] = 'Вибір медіа-файлу'; diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php index 23f42d69a..168fe3595 100644 --- a/inc/lang/vi/lang.php +++ b/inc/lang/vi/lang.php @@ -51,7 +51,7 @@ $lang['lockedby'] = 'Đang khoá bởi'; $lang['lockexpire'] = 'Khoá sẽ hết hạn vào lúc'; $lang['willexpire'] = 'Khoá của bạn để biên soạn trang này sẽ hết hạn trong vòng 1 phút.\nĐể tránh xung đột, bạn nên bấm nút xem trước để lập lại thời gian khoá'; -$lang['notsavedyet'] = 'Hiện có những thay đổi chưa được bảo lưu, và sẽ mất.\nBạn thật sự muốn tiếp tục?'; +$lang['js']['notsavedyet'] = "Hiện có những thay đổi chưa được bảo lưu, và sẽ mất.\nBạn thật sự muốn tiếp tục?"; $lang['rssfailed'] = 'Rút nguồn này gặp phải lỗi'; $lang['nothingfound']= 'Không tìm được gì'; diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index f936123f4..eca7de4c8 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -98,7 +98,7 @@ $lang['txt_overwrt'] = '是否要覆蓋原有檔案'; $lang['lockedby'] = '目前已被下列人員鎖定'; $lang['lockexpire'] = '預計解除鎖定於'; $lang['willexpire'] = '您目前編輯這頁的鎖定將會在一分鐘內解除。\若要避免發生意外,請按「預覽」鍵來重新設定鎖定狀態'; -$lang['notsavedyet'] = '有尚未儲存的變更將會遺失。\n真的要繼續嗎?'; +$lang['js']['notsavedyet'] = "有尚未儲存的變更將會遺失。\n真的要繼續嗎?"; $lang['rssfailed'] = '當抓取餵送過來的 RSS 資料時發生錯誤: '; $lang['nothingfound'] = '沒找到任何結果。'; $lang['mediaselect'] = '選擇圖檔'; diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index 45e4f8e34..2de962ce9 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -98,7 +98,7 @@ $lang['txt_overwrt'] = '覆盖已存在的同名文件'; $lang['lockedby'] = '目前已被下列人员锁定'; $lang['lockexpire'] = '预计锁定解除于'; $lang['willexpire'] = '您对本页的独有编辑权将于一分钟之后解除。\n为了防止与其他人的编辑冲突,请使用预览按钮重设计时器。'; -$lang['notsavedyet'] = '未保存的更改将丢失。\n真的要继续?'; +$lang['js']['notsavedyet'] = "未保存的更改将丢失。\n真的要继续?"; $lang['rssfailed'] = '获取该 RSS 信息时产生错误:'; $lang['nothingfound'] = '什么都没有找到。'; $lang['mediaselect'] = '媒体文件'; -- cgit v1.2.3 From 0139312b0d39e61bdff7318a0c092eb20b208a78 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 26 Mar 2010 13:16:46 +0100 Subject: Better code syntax parsing, less E_NOTICE --- inc/parser/handler.php | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) (limited to 'inc') diff --git a/inc/parser/handler.php b/inc/parser/handler.php index b5d2baaab..8639c5ad8 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -344,21 +344,16 @@ class Doku_Handler { function code($match, $state, $pos, $type='code') { if ( $state == DOKU_LEXER_UNMATCHED ) { $matches = explode('>',$match,2); - $matches[0] = trim($matches[0]); - - list($language,$filename) = explode(' ',$matches[0],2); - $language = trim($language); - $filename = trim($filename); - if ( $language == '' ) $language = null; - if ( $language == '-' ) $language = null; - if ( $filename == '' ) $filename = null; - # We shortcut html here. - if($language == 'html') $language = 'html4strict'; - $this->_addCall( - $type, - array($matches[1],$language,$filename), - $pos - ); + + $param = preg_split('/\s+/', $matches[0], 2, PREG_SPLIT_NO_EMPTY); + while(count($param) < 2) array_push($param, null); + + // We shortcut html here. + if ($param[0] == 'html') $param[0] = 'html4strict'; + if ($param[0] == '-') $param[0] = null; + array_unshift($param, $matches[1]); + + $this->_addCall($type, $param, $pos); } return true; } -- cgit v1.2.3 From 569a001959f65aea2c0e7cd3dd5b541cac0e9e58 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 26 Mar 2010 14:10:46 +0100 Subject: Fix and simplify p_get_metadata key looping explode converts $string (false) to string ("") and returns it if $delimiter is not found, therefor looking for the key "" in metadata array. --- inc/parserutils.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/parserutils.php b/inc/parserutils.php index cb8bc079d..4bec3ab1d 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -244,8 +244,7 @@ function p_get_metadata($id, $key='', $render=false){ $val = $meta['current']; // filter by $key - foreach(explode(' ', trim($key), 2) as $cur_key) { - $cur_key = trim($cur_key); + foreach(preg_split('/\s+/', $key, 2, PREG_SPLIT_NO_EMPTY) as $cur_key) { if (!isset($val[$cur_key])) { return null; } -- cgit v1.2.3 From c9d5430b981aac42d64435908fe6016de907de0c Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 29 Mar 2010 10:18:22 +0200 Subject: Call act_edit for locked pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 50e988b accidentally stopped act_dispatch from calling act_edit for locked pages, thus showing a generic »page not writable« message instead of a page lock message. --- inc/actions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 66068cd36..a426f0276 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -109,7 +109,7 @@ function act_dispatch(){ $ACT = act_draftsave($ACT); //edit - if(($ACT == 'edit' || $ACT == 'preview' || $ACT == 'recover') && $INFO['editable']){ + if(in_array($ACT, array('edit', 'preview', 'recover'))) { $ACT = act_edit($ACT); }else{ unlock($ID); //try to unlock -- cgit v1.2.3 From f6ec8df813b28547ca3b04bb39f0ce670a6bb990 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 29 Mar 2010 12:00:30 +0200 Subject: Allow plugins to specify that they have to be instantiated Plugins may return false in isSingleton to let plugin_load return a new instance every time it is called. Renderer plugins are not loaded with $new set to true, but instead specify themself that they are not singletons. This behaviour allows the odt renderer to keep working (see #1598). --- inc/parser/renderer.php | 9 +++++++++ inc/parserutils.php | 2 +- inc/plugin.php | 6 +++--- inc/plugincontroller.class.php | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) (limited to 'inc') diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php index 393099003..4dac75d21 100644 --- a/inc/parser/renderer.php +++ b/inc/parser/renderer.php @@ -49,6 +49,15 @@ class Doku_Renderer extends DokuWiki_Plugin { trigger_error('getFormat() not implemented in '.get_class($this), E_USER_WARNING); } + /** + * Allow the plugin to prevent DokuWiki from reusing an instance + * + * @return bool false if the plugin has to be instantiated + */ + function isSingleton() { + return false; + } + //handle plugin rendering function plugin($name,$data){ diff --git a/inc/parserutils.php b/inc/parserutils.php index 4bec3ab1d..35ccdc1d6 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -585,7 +585,7 @@ function & p_get_renderer($mode) { // Maybe a plugin/component is available? list($plugin, $component) = $plugin_controller->_splitName($rname); if (!$plugin_controller->isdisabled($plugin)){ - $Renderer =& $plugin_controller->load('renderer',$rname, true); + $Renderer =& $plugin_controller->load('renderer',$rname); } if(is_null($Renderer)){ diff --git a/inc/plugin.php b/inc/plugin.php index 364534739..aff07c1e5 100644 --- a/inc/plugin.php +++ b/inc/plugin.php @@ -231,12 +231,12 @@ class DokuWiki_Plugin { } /** - * Allow the plugin to prevent DokuWiki creating a second instance of itself + * Allow the plugin to prevent DokuWiki from reusing an instance * - * @return bool true if the plugin can not be instantiated more than once + * @return bool false if the plugin has to be instantiated */ function isSingleton() { - return false; + return true; } // deprecated functions diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php index 043687270..61f460414 100644 --- a/inc/plugincontroller.class.php +++ b/inc/plugincontroller.class.php @@ -66,7 +66,7 @@ class Doku_Plugin_Controller { //plugin already loaded? if(!empty($DOKU_PLUGINS[$type][$name])){ - if ($new && !$DOKU_PLUGINS[$type][$name]->isSingleton()) { + if ($new || !$DOKU_PLUGINS[$type][$name]->isSingleton()) { $class = $type.'_plugin_'.$name; return class_exists($class) ? new $class : null; } else { -- cgit v1.2.3 From d535a2e92c29b7a9cff84c344c6e474f654aaa9e Mon Sep 17 00:00:00 2001 From: stretchyboy Date: Wed, 31 Mar 2010 11:45:50 +0100 Subject: Fixes variable replacement during _template.txt parsing --- inc/common.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index 2877bc00e..4e5a2e197 100644 --- a/inc/common.php +++ b/inc/common.php @@ -836,7 +836,7 @@ function pageTemplate($id){ * * @author Andreas Gohr */ -function parsePageTemplate($data) { +function parsePageTemplate(&$data) { extract($data); global $USERINFO; @@ -879,7 +879,7 @@ function parsePageTemplate($data) { // we need the callback to work around strftime's char limit $tpl = preg_replace_callback('/%./',create_function('$m','return strftime($m[0]);'),$tpl); - + $data['tpl'] = $tpl; return $tpl; } -- cgit v1.2.3 From d059ba9bb09b872361eee77c46cbd4aba0042e83 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 2 Apr 2010 11:34:38 +0200 Subject: Fix gzip compression in combination with buffer flushing FS#1927 This introduces a new function called tpl_flush() which should be used by template authors in favor of the PHP flush() method. --- inc/template.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'inc') diff --git a/inc/template.php b/inc/template.php index 7b0ef466b..3eda2f4af 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1407,5 +1407,18 @@ function tpl_subscribe() { echo '
'; } +/** + * Tries to send already created content right to the browser + * + * Wraps around ob_flush() and flush() + * + * @author Andreas Gohr + */ +function tpl_flush(){ + ob_flush(); + flush(); +} + + //Setup VIM: ex: et ts=4 enc=utf-8 : -- cgit v1.2.3 From c0c4ef9875d90979ed9d31ea1b6f2866aecaf565 Mon Sep 17 00:00:00 2001 From: Rasmus Kinnerup Date: Fri, 2 Apr 2010 11:22:46 +0200 Subject: Danish language update --- inc/lang/da/lang.php | 55 +++++++++++++++++++++------------------------ inc/lang/da/subscr_form.txt | 3 +++ 2 files changed, 28 insertions(+), 30 deletions(-) create mode 100644 inc/lang/da/subscr_form.txt (limited to 'inc') diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index 7014a41fa..9fc92b2e8 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -11,18 +11,19 @@ * @author Harith * @author Daniel Ejsing-Duun * @author Erik Bjørn Pedersen + * @author rasmus@kinnerup.com */ -$lang['encoding'] = 'utf-8'; +$lang['encoding'] = 'ISO 8859-1 '; $lang['direction'] = 'ltr'; $lang['doublequoteopening'] = '„'; $lang['doublequoteclosing'] = '“'; $lang['singlequoteopening'] = '‚'; $lang['singlequoteclosing'] = '‘'; $lang['apostrophe'] = '’'; -$lang['btn_edit'] = 'Rediger dette dokument'; +$lang['btn_edit'] = 'Rediger denne side'; $lang['btn_source'] = 'Vis kildekode'; -$lang['btn_show'] = 'Vis dokument'; -$lang['btn_create'] = 'Opret dette dokument'; +$lang['btn_show'] = 'Vis side'; +$lang['btn_create'] = 'Opret denne side'; $lang['btn_search'] = 'Søg'; $lang['btn_save'] = 'Gem'; $lang['btn_preview'] = 'Forhåndsvisning'; @@ -31,39 +32,36 @@ $lang['btn_newer'] = '<< forrige side'; $lang['btn_older'] = 'næste side >>'; $lang['btn_revs'] = 'Gamle udgaver'; $lang['btn_recent'] = 'Nye ændringer'; -$lang['btn_upload'] = 'Overføre'; +$lang['btn_upload'] = 'Overfør'; $lang['btn_cancel'] = 'Fortryd'; $lang['btn_index'] = 'Indeks'; -$lang['btn_secedit'] = 'Rediger'; +$lang['btn_secedit'] = 'Redigér'; $lang['btn_login'] = 'Log ind'; $lang['btn_logout'] = 'Log ud'; $lang['btn_admin'] = 'Admin'; -$lang['btn_update'] = 'Opdater'; +$lang['btn_update'] = 'Opdatér'; $lang['btn_delete'] = 'Slet'; $lang['btn_back'] = 'Tilbage'; $lang['btn_backlink'] = 'Henvisninger bagud'; $lang['btn_backtomedia'] = 'Tilbage til valg af mediefil'; -$lang['btn_subscribe'] = 'Abonner på ændringer'; -$lang['btn_unsubscribe'] = 'Fjern abonnement på ændringer'; -$lang['btn_subscribens'] = 'Abonner på namespace ændringer'; -$lang['btn_unsubscribens'] = 'Fjern abonnement på namespace ændringer'; -$lang['btn_profile'] = 'Opdater profil'; +$lang['btn_subscribe'] = 'Abonnér på ændringer'; +$lang['btn_profile'] = 'Opdatér profil'; $lang['btn_reset'] = 'Nulstil'; -$lang['btn_resendpwd'] = 'Send nyt adgangskode'; -$lang['btn_draft'] = 'Rediger kladde'; +$lang['btn_resendpwd'] = 'Send ny adgangskode'; +$lang['btn_draft'] = 'Redigér kladde'; $lang['btn_recover'] = 'Gendan kladde'; $lang['btn_draftdel'] = 'Slet kladde'; -$lang['btn_revert'] = 'Reetablere'; -$lang['loggedinas'] = 'Logget på som'; +$lang['btn_revert'] = 'Reetablér'; +$lang['loggedinas'] = 'Logget ind som'; $lang['user'] = 'Brugernavn'; $lang['pass'] = 'Adgangskode'; -$lang['newpass'] = 'Nyt adgangskode'; -$lang['oldpass'] = 'Bekræft gammelt adgangskode'; -$lang['passchk'] = 'Gentag nyt adgangskode'; -$lang['remember'] = 'Log automatisk på'; -$lang['fullname'] = 'Navn'; +$lang['newpass'] = 'Ny adgangskode'; +$lang['oldpass'] = 'Bekræft gammel adgangskode'; +$lang['passchk'] = 'Gentag ny adgangskode'; +$lang['remember'] = 'Automatisk log ind'; +$lang['fullname'] = 'Fulde navn'; $lang['email'] = 'E-mail'; -$lang['register'] = 'Tilmeld'; +$lang['register'] = 'Registrér'; $lang['profile'] = 'Brugerprofil'; $lang['badlogin'] = 'Brugernavn eller adgangskode var forkert.'; $lang['minoredit'] = 'Mindre ændringer'; @@ -100,7 +98,7 @@ $lang['txt_overwrt'] = 'Overskriv eksisterende fil'; $lang['lockedby'] = 'Midlertidig låst af'; $lang['lockexpire'] = 'Lås udløber kl.'; $lang['willexpire'] = 'Din lås på dette dokument udløber om et minut.\nTryk på Forhåndsvisning-knappen for at undgå konflikter.'; -$lang['js']['notsavedyet'] = "Der er lavet ændringer i dokumentet. Hvis du fortsætter vil ændringerne gå tabt.\nØnsker du at fortsætte?"; +$lang['notsavedyet'] = 'Der er lavet ændringer i dokumentet. Hvis du fortsætter vil ændringerne gå tabt.\nØnsker du at fortsætte?'; $lang['rssfailed'] = 'Der opstod en fejl ved indhentning af: '; $lang['nothingfound'] = 'Søgningen gav intet resultat.'; $lang['mediaselect'] = 'Vælg mediefil'; @@ -118,7 +116,7 @@ $lang['deletefail'] = '"%s" kunne ikke slettes - check rettighederne. $lang['mediainuse'] = 'Filen "%s" er ikke slettet - den er stadig i brug.'; $lang['namespaces'] = 'Navnerum'; $lang['mediafiles'] = 'Tilgængelige filer i'; -$lang['js']['searchmedia'] = 'Søg for filer'; +$lang['js']['searchmedia'] = 'Søg efter filer'; $lang['js']['keepopen'] = 'Hold vindue åbent ved valg'; $lang['js']['hidedetails'] = 'Skjul detaljer'; $lang['js']['nosmblinks'] = 'Henvisninger til Windows shares virker kun i Microsoft Internet Explorer. @@ -135,7 +133,7 @@ $lang['mediaextchange'] = 'Filudvidelse ændret fra .%s til .%s!'; $lang['reference'] = 'Henvisning til'; $lang['ref_inuse'] = 'Filen kan ikke slettes, da den stadig er i brug på følgende sider:'; $lang['ref_hidden'] = 'Nogle henvisninger er i dokumenter du ikke har læserettigheder til'; -$lang['hits'] = 'Hits'; +$lang['hits'] = 'Besøg'; $lang['quickhits'] = 'Tilsvarende dokumentnavne'; $lang['toc'] = 'Indholdsfortegnelse'; $lang['current'] = 'nuværende'; @@ -156,6 +154,7 @@ $lang['noflash'] = 'Den ord($adjustment[count($adjustment)-1])) { + $adjusted = $codepoint - count($adjustment); + } else if ($codepoint > ord($adjustment[0])) { + for ($i=1; $i < count($adjustment); $i++) { + if ($codepoint < ord($adjustment[$i])) { + break; + } + } + $adjusted = $codepoint - $i; + } else { + $adjusted = $codepoint; + } + + // substract number of non-printable characters and return + return $adjusted - ord(' '); + } + + private function reverseForPlain($adjusted) { + $adjustment = self::getAdjustments(); + + // reverse adjustment for non-printable characters + $adjusted += ord(' '); + + if ($adjusted + count($adjustment) > ord($adjustment[count($adjustment)-1])) { + $adjusted += count($adjustment); + } else if ($adjusted > ord($adjustment[0])) { + for ($i=1; $i < count($adjustment); $i++) { + if ($adjusted + $i < ord($adjustment[$i])) { + break; + } + } + $adjusted += $i; + } + + return $adjusted; + } + + private function getAdjustments() { + if (empty(self::$adjustments)) { + self::$adjustments = str_split(self::$plain.self::$pre_indicator.self::$post_indicator); + sort(self::$adjustments); + } + + return self::$adjustments; + } +} -- cgit v1.2.3 From f03fd957525a714da1cde7e2957939046bd51bd5 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 4 Apr 2010 20:28:39 +0200 Subject: new fnencode option FS#1649 This patch adds an option to choose how filenames are encoded when saved to the file system. You can choose between urlencoding (url), the new SafeFn method (safe) and storing real UTF-8 (utf-8). --- inc/load.php | 1 + inc/pageutils.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ inc/utf8.php | 39 --------------------------------------- 3 files changed, 51 insertions(+), 39 deletions(-) (limited to 'inc') diff --git a/inc/load.php b/inc/load.php index faf4e9570..2f5be6d63 100644 --- a/inc/load.php +++ b/inc/load.php @@ -73,6 +73,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', + 'SafeFN' => DOKU_INC.'inc/SafeFN.class.php', 'DokuWiki_Action_Plugin' => DOKU_PLUGIN.'action.php', 'DokuWiki_Admin_Plugin' => DOKU_PLUGIN.'admin.php', diff --git a/inc/pageutils.php b/inc/pageutils.php index cd3cf1fce..43c84038f 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -543,3 +543,53 @@ function prettyprint_id($id) { } return hsc($id); } + +/** + * Encode a UTF-8 filename to use on any filesystem + * + * Uses the 'fnencode' option to determine encoding + * + * When the second parameter is true the string will + * be encoded only if non ASCII characters are detected - + * This makes it safe to run it multiple times on the + * same string (default is true) + * + * @author Andreas Gohr + * @see urlencode + */ +function utf8_encodeFN($file,$safe=true){ + global $conf; + if($conf['fnencode'] == 'utf-8') return $file; + + if($safe && preg_match('#^[a-zA-Z0-9/_\-\.%]+$#',$file)){ + return $file; + } + + if($conf['fnencode'] == 'safe'){ + return SafeFN::encode($file); + } + + $file = urlencode($file); + $file = str_replace('%2F','/',$file); + return $file; +} + +/** + * Decode a filename back to UTF-8 + * + * Uses the 'fnencode' option to determine encoding + * + * @author Andreas Gohr + * @see urldecode + */ +function utf8_decodeFN($file){ + global $conf; + if($conf['fnencode'] == 'utf-8') return $file; + + if($conf['fnencode'] == 'safe'){ + return SafeFN::decode($file); + } + + return urldecode($file); +} + diff --git a/inc/utf8.php b/inc/utf8.php index b078540d2..c10e33ffa 100644 --- a/inc/utf8.php +++ b/inc/utf8.php @@ -19,45 +19,6 @@ if(!defined('UTF8_MBSTRING')){ if(UTF8_MBSTRING){ mb_internal_encoding('UTF-8'); } -if(!function_exists('utf8_encodeFN')){ - /** - * URL-Encode a filename to allow unicodecharacters - * - * Slashes are not encoded - * - * When the second parameter is true the string will - * be encoded only if non ASCII characters are detected - - * This makes it safe to run it multiple times on the - * same string (default is true) - * - * @author Andreas Gohr - * @see urlencode - */ - function utf8_encodeFN($file,$safe=true){ - if($safe && preg_match('#^[a-zA-Z0-9/_\-.%]+$#',$file)){ - return $file; - } - $file = urlencode($file); - $file = str_replace('%2F','/',$file); - return $file; - } -} - -if(!function_exists('utf8_decodeFN')){ - /** - * URL-Decode a filename - * - * This is just a wrapper around urldecode - * - * @author Andreas Gohr - * @see urldecode - */ - function utf8_decodeFN($file){ - $file = urldecode($file); - return $file; - } -} - if(!function_exists('utf8_isASCII')){ /** * Checks if a string contains 7bit ASCII only -- cgit v1.2.3 From dcee16d694a9c39beaca3c59d970652f528a999c Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 4 Apr 2010 21:31:42 +0100 Subject: Update SafeFN class, simplify and improve performance --- inc/SafeFN.class.php | 216 +++++++++++++++++++-------------------------------- 1 file changed, 81 insertions(+), 135 deletions(-) (limited to 'inc') diff --git a/inc/SafeFN.class.php b/inc/SafeFN.class.php index 4ce5c94a2..b6e477fab 100644 --- a/inc/SafeFN.class.php +++ b/inc/SafeFN.class.php @@ -15,196 +15,142 @@ */ class SafeFN { - private static $plain = '/_-0123456789abcdefghijklmnopqrstuvwxyz'; // these characters aren't converted + // 'safe' characters are a superset of $plain, $pre_indicator and $post_indicator + private static $plain = '-/_0123456789abcdefghijklmnopqrstuvwxyz'; // these characters aren't converted private static $pre_indicator = '%'; - private static $post_indicator = '.'; // this character can be included in "plain" set - private static $adjustments = array(); // must be initialized, use getAdjustments() + private static $post_indicator = '.'; /** * Convert an UTF-8 string to a safe ASCII String * * conversion process - * - if codepoint is a plain character, - * - if previous character was "converted", append post_indicator - * to output - * - append ascii byte for character to output (continue to - * next character) + * - if codepoint is a plain or post_indicator character, + * - if previous character was "converted", append post_indicator to output, clear "converted" flag + * - append ascii byte for character to output + * (continue to next character) * - * - reduce codepoint value to fill the holes left by "plain" - * - choose marker character for conversion by taking modulus - * (number of possible pre_indicators) of modified codepoint - * - calculate value for conversion to base36 by integer division - * (number of possible pre_indicators) of modified codepoint - * - convert above value to a base36 string - * - append marker characater followed by base36 string to - * output (continue to next character) + * - if codepoint is a pre_indicator character, + * - append ascii byte for character to output, set "converted" flag + * (continue to next character) + * + * (all remaining characters) + * - reduce codepoint value for non-printable ASCII characters (0x00 - 0x1f). Space becomes our zero. + * - convert reduced value to base36 (0-9a-z) + * - append $pre_indicator characater followed by base36 string to output, set converted flag + * continue to next character) + * + * @param string $filename a utf8 string, should only include printable characters - not 0x00-0x1f + * @return string an encoded representation of $filename using only 'safe' ASCII characters + * + * @author Christopher Smith */ - public function encode($utf8) { - return self::unicode_safe(self::utf8_unicode($utf8)); + public function encode($filename) { + return self::unicode_to_safe(utf8_to_unicode($filename)); } /** * decoding process - * - split the string into substrings at marker characters, - * discarding post_indicator character but keeping - * pre_indicator characters (along with their following - * base36 string) + * - split the string into substrings at any occurrence of pre or post indicator characters * - check the first character of the substring - * - if its not a pre_indicator character, convert each - * character in the substring into its codepoint value - * and append to output (continue to next substring) - * - if it is a pre_indicator character, get its position in the - * pre_indicator string (order is important) - * - convert the remainder of the string from base36 to base10 - * and then to an (int). - * - multiply the converted int by the number of pre_indicator - * characters and add the pre_indicator position - * - reverse the conversion adjustment for codepoint holes left by - * "plain" characters - * - append resulting codepoint value to output (continue to next - * substring) + * - if its not a pre_indicator character + * - if previous character was converted, skip over post_indicator character + * - copy codepoint values of remaining characters to the output array + * - clear any converted flag + * (continue to next substring) + * + * _ else (its a pre_indicator character) + * - if string length is 1, copy the post_indicator character to the output array + * (continue to next substring) + * + * - else (string length > 1) + * - skip the pre-indicator character and convert remaining string from base36 to base10 + * - increase codepoint value for non-printable ASCII characters (add 0x20) + * - append codepoint to output array + * (continue to next substring) + * + * @param string $filename a 'safe' encoded ASCII string, + * @return string decoded utf8 representation of $filename + * + * @author Christopher Smith */ - public function decode($safe) { - return self::unicode_utf8(self::safe_unicode(strtolower($safe))); + public function decode($filename) { + return unicode_to_utf8(self::safe_to_unicode(strtolower($filename))); } public function validate_printable_utf8($printable_utf8) { - return !preg_match('/[\x01-\x1f]/',$printable_utf8); + return !preg_match('#[\x01-\x1f]#',$printable_utf8); } public function validate_safe($safe) { - return !preg_match('/[^'.self::$plain.self::$post_indicator.self::$pre_indicator.']/',$safe); + return !preg_match('#[^'.self::$plain.self::$post_indicator.self::$pre_indicator.']#',$safe); } - private function utf8_unicode($utf8) { - return utf8_to_unicode($utf8); - } - - private function unicode_utf8($unicode) { - return unicode_to_utf8($unicode); - } - - private function unicode_safe($unicode) { + /** + * convert an array of unicode codepoints into 'safe_filename' format + * + * @param array int $unicode an array of unicode codepoints + * @return string the unicode represented in 'safe_filename' format + * + * @author Christopher Smith + */ + private function unicode_to_safe($unicode) { $safe = ''; $converted = false; foreach ($unicode as $codepoint) { - if (self::isPlain($codepoint)) { + if ($codepoint < 127 && (strpos(self::$plain.self::$post_indicator,chr($codepoint))!==false)) { if ($converted) { $safe .= self::$post_indicator; $converted = false; } $safe .= chr($codepoint); - } else if (self::isPreIndicator($codepoint)) { + } else if ($codepoint == ord(self::$pre_indicator)) { + $safe .= self::$pre_indicator; $converted = true; - $safe .= chr($codepoint); - } else { + $safe .= self::$pre_indicator.base_convert((string)($codepoint-32),10,36); $converted = true; - $adjusted = self::adjustForPlain($codepoint); - - $marker = $adjusted % strlen(self::$pre_indicator); - $base = (int) ($adjusted / strlen(self::$pre_indicator)); - - $safe .= self::$pre_indicator[$marker]; - $safe .= base_convert((string)$base,10,36); } } return $safe; } - private function safe_unicode($safe) { + /** + * convert a 'safe_filename' string into an array of unicode codepoints + * + * @param string $safe a filename in 'safe_filename' format + * @return array int an array of unicode codepoints + * + * @author Christopher Smith + */ + private function safe_to_unicode($safe) { + $unicode = array(); - $split = preg_split('/(?=['.self::$post_indicator.self::$pre_indicator.'])/',$safe,-1,PREG_SPLIT_NO_EMPTY); + $split = preg_split('#(?=['.self::$post_indicator.self::$pre_indicator.'])#',$safe,-1,PREG_SPLIT_NO_EMPTY); $converted = false; foreach ($split as $sub) { - if (($marker = strpos(self::$pre_indicator,$sub[0])) === false) { - if ($converted) { - // strip post_indicator - $sub = substr($sub,1); - $converted = false; - } - for ($i=0; $i < strlen($sub); $i++) { + if ($sub[0] != self::$pre_indicator) { + // plain (unconverted) characters, optionally starting with a post_indicator + // set initial value to skip any post_indicator + for ($i=($converted?1:0); $i < strlen($sub); $i++) { $unicode[] = ord($sub[$i]); } + $converted = false; } else if (strlen($sub)==1) { - $converted = true; + // a pre_indicator character in the real data $unicode[] = ord($sub); + $converted = true; } else { - // a single codepoint in our base + // a single codepoint in base36, adjusted for initial 32 non-printable chars + $unicode[] = 32 + (int)base_convert(substr($sub,1),36,10); $converted = true; - $base = (int)base_convert(substr($sub,1),36,10); - $adjusted = ($base*strlen(self::$pre_indicator)) + $marker; - - $unicode[] = self::reverseForPlain($adjusted); } } return $unicode; } - private function isPlain($codepoint) { - return ($codepoint < 127 && (strpos(self::$plain.self::$post_indicator,chr($codepoint))!==false)); - } - - private function isPreIndicator($codepoint) { - return ($codepoint < 127 && (strpos(self::$pre_indicator,chr($codepoint)) !== false)); - } - - /** - * adjust for plain and non-printable (ascii 0-31) - * this makes SPACE (0x20) the first character we allow - */ - private function adjustForPlain($codepoint) { - $adjustment = self::getAdjustments(); - - // codepoint is higher than that of the plain character with the highest codepoint - if ($codepoint > ord($adjustment[count($adjustment)-1])) { - $adjusted = $codepoint - count($adjustment); - } else if ($codepoint > ord($adjustment[0])) { - for ($i=1; $i < count($adjustment); $i++) { - if ($codepoint < ord($adjustment[$i])) { - break; - } - } - $adjusted = $codepoint - $i; - } else { - $adjusted = $codepoint; - } - - // substract number of non-printable characters and return - return $adjusted - ord(' '); - } - - private function reverseForPlain($adjusted) { - $adjustment = self::getAdjustments(); - - // reverse adjustment for non-printable characters - $adjusted += ord(' '); - - if ($adjusted + count($adjustment) > ord($adjustment[count($adjustment)-1])) { - $adjusted += count($adjustment); - } else if ($adjusted > ord($adjustment[0])) { - for ($i=1; $i < count($adjustment); $i++) { - if ($adjusted + $i < ord($adjustment[$i])) { - break; - } - } - $adjusted += $i; - } - - return $adjusted; - } - - private function getAdjustments() { - if (empty(self::$adjustments)) { - self::$adjustments = str_split(self::$plain.self::$pre_indicator.self::$post_indicator); - sort(self::$adjustments); - } - - return self::$adjustments; - } } -- cgit v1.2.3 From 94f1f78b9d937c58369e0346233ea8dbf40a0cca Mon Sep 17 00:00:00 2001 From: Usama Akkad Date: Thu, 8 Apr 2010 11:45:05 +0200 Subject: Arabic language update --- inc/lang/ar/lang.php | 50 ++++++++++++++++++++++++++++++++++------------- inc/lang/ar/pwconfirm.txt | 8 ++++---- 2 files changed, 40 insertions(+), 18 deletions(-) (limited to 'inc') diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index fca67ce9d..b1bd38383 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -5,6 +5,7 @@ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Mostafa Hussein * @author Yaman Hokan + * @author Usama Akkad */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'rtl'; @@ -38,7 +39,6 @@ $lang['btn_back'] = 'رجوع'; $lang['btn_backlink'] = 'ارتباطات'; $lang['btn_backtomedia'] = 'رجوع إلى اختيار ملف الوسائط'; $lang['btn_subscribe'] = 'اشترك في التعديلات'; -$lang['btn_unsubscribe'] = 'إلغاء الاشتراك في التعديلات'; $lang['btn_profile'] = 'تحديث الملف الشخصي'; $lang['btn_reset'] = 'تفريغ'; $lang['btn_resendpwd'] = 'إرسال كلمة مرور جديدة'; @@ -81,14 +81,46 @@ $lang['resendpwdnouser'] = 'عذراً، لدينا هذا المشترك $lang['resendpwdbadauth'] = 'عذراً، رمز التفعيل هذا غير صحيح. نأكد أنك استخدمت كامل وصلة التأكيد'; $lang['resendpwdconfirm'] = 'تم إرسال وصلة تأكيد إلى بريدك الإلكتروني'; $lang['resendpwdsuccess'] = 'كلمة مرورك الجديدة تم إرسالها عبر البريد الإلكتروني'; +$lang['license'] = 'مالم يشر لخلاف ذلك، فإن المحتوى على هذه الويكي مرخص وفق الرخصة التالية:'; +$lang['licenseok'] = 'لاحظ: بتحرير هذه الصفحة أنت توافق على ترخيص محتواها تحت الرخصة التالية:'; $lang['searchmedia'] = 'البحث عن اسم الملف : '; +$lang['searchmedia_in'] = 'ابحث في %s'; $lang['txt_upload'] = 'اختر ملفاً للتحميل'; $lang['txt_filename'] = 'تحميل باسم - اختياري'; $lang['txt_overwrt'] = 'الكتابة على ملف موجود بنفس الاسم مسموحة'; $lang['lockedby'] = 'حالياً مقفول بواسطة'; $lang['lockexpire'] = 'سينتهي القفل في'; $lang['willexpire'] = 'سينتهي قفل تحرير هذه الصفحه خلال دقيقة. لتجنب التعارض استخدم زر استعراض لبدأ القفل من جديد'; -$lang['js']['notsavedyet'] = "التعديلات التي لم تحفظ ستفقد. أموافق ؟"; +$lang['js']['notsavedyet'] = 'التعديلات التي لم تحفظ ستفقد. أموافق ؟'; +$lang['js']['searchmedia'] = 'البحث عن الملفات'; +$lang['js']['keepopen'] = 'أبقي النافذة مفتوحة أثناء الاختيار'; +$lang['js']['hidedetails'] = 'إخفاء التفاصيل'; +$lang['js']['mediatitle'] = 'اعدادات الرابط'; +$lang['js']['mediadisplay'] = 'نوع الرابط'; +$lang['js']['mediaalign'] = 'المحاذاة'; +$lang['js']['mediasize'] = 'حجم الصورة'; +$lang['js']['mediatarget'] = 'هدف الرابط'; +$lang['js']['mediaclose'] = 'اغلق'; +$lang['js']['mediainsert'] = 'أدرج'; +$lang['js']['mediadisplayimg'] = 'اظهر الصورة.'; +$lang['js']['mediadisplaylnk'] = 'اظهر الرابط فقط.'; +$lang['js']['mediasmall'] = 'نسخة مصغرة'; +$lang['js']['mediamedium'] = 'نسخة متوسطة'; +$lang['js']['medialarge'] = 'نسخة كبيرة'; +$lang['js']['mediaoriginal'] = 'نسخة أصلية'; +$lang['js']['medialnk'] = 'الرابط لصفحة التفاصيل'; +$lang['js']['mediadirect'] = 'رابط مباشر للأصل'; +$lang['js']['medianolnk'] = 'لا رابط'; +$lang['js']['medianolink'] = 'لا تربط الصورة'; +$lang['js']['medialeft'] = 'حاذي الصورة إلى اليسار.'; +$lang['js']['mediaright'] = 'حاذي الصورة إلى اليمين.'; +$lang['js']['mediacenter'] = 'حاذي الصورة إلى الوسط.'; +$lang['js']['medianoalign'] = 'لا تستعمل المحاذاة.'; +$lang['js']['nosmblinks'] = 'الروابط لمجلدات ويندوز المشاركة تعمل فقط مع متصفح مايكروسفت Internet Explorer. ما زال بإمكانك قص و لصق الرابط.'; +$lang['js']['linkwiz'] = 'مرشد الروابط'; +$lang['js']['linkto'] = 'الرابط إلى :'; +$lang['js']['del_confirm'] = 'هل حقاً تريد حذف البنود المختارة؟'; +$lang['js']['mu_btn'] = 'رفع عدة ملفات في وقت واحد'; $lang['rssfailed'] = 'خطأ ما حدث أثناء جلب ملف التغذية:'; $lang['nothingfound'] = 'لا يوجد شيء'; $lang['mediaselect'] = 'ملفات الوسائط المتعددة'; @@ -106,13 +138,6 @@ $lang['deletefail'] = 'لا يمكن حذف "%s"، تأكد من تر $lang['mediainuse'] = 'لم يحذف الملف "%s"، مازال موجوداً'; $lang['namespaces'] = 'فضاء التسمية'; $lang['mediafiles'] = 'ملفات موجودة في'; -$lang['js']['searchmedia'] = 'البحث عن الملفات'; -$lang['js']['keepopen'] = 'أبقي النافذة مفتوحة أثناء الاختيار'; -$lang['js']['hidedetails'] = 'إخفاء التفاصيل'; -$lang['js']['nosmblinks'] = 'الروابط لمجلدات ويندوز المشاركة تعمل فقط مع متصفح مايكروسفت Internet Explorer. ما زال بإمكانك قص و لصق الرابط.'; -$lang['js']['linkto'] = 'الرابط إلى :'; -$lang['js']['del_confirm'] = 'هل حقاً تريد حذف البنود المختارة؟'; -$lang['js']['mu_btn'] = 'رفع عدة ملفات في وقت واحد'; $lang['mediausage'] = 'استخدم هذه الصياغة للدلالة على هذا الملف:'; $lang['mediaview'] = 'عرض الملف الأصلي'; $lang['mediaroot'] = 'الجذر'; @@ -138,6 +163,8 @@ $lang['created'] = 'تم إنشاء'; $lang['restored'] = 'عودة لنسخة قديمة'; $lang['external_edit'] = 'تحرير خارجي'; $lang['summary'] = 'ملخص التحرير'; +$lang['noflash'] = 'تحتاج إلىملحق فلاش أدوبي لعرض هذا المحتوى.'; +$lang['download'] = 'نزل Snippet'; $lang['mail_newpage'] = 'إضافة صفحة:'; $lang['mail_changed'] = 'تعديل صفحة:'; $lang['mail_new_user'] = 'مشترك جديد'; @@ -176,11 +203,6 @@ $lang['img_copyr'] = 'حقوق النسخ'; $lang['img_format'] = 'صيغ رسومية'; $lang['img_camera'] = 'آلة التصوير'; $lang['img_keywords'] = 'كلمات مفتاحية'; -$lang['subscribe_success'] = 'تم إضافة %s لقائمة الاشتراكات %s'; -$lang['subscribe_error'] = 'حدث خطأ فى إضافة %s لقائمة الاشتراكات %s'; -$lang['subscribe_noaddress'] = 'لا يوجد عنوان مرفق مع بيانات تسجيلك، لا يمكن إضافتك إلى قائمة الاشتراكات'; -$lang['unsubscribe_success'] = 'تم حذف%s من قائمة الاشتراكات %s'; -$lang['unsubscribe_error'] = 'حدث خطأ فى حذف %s من قائمة الاشتراكات %s'; $lang['authmodfailed'] = 'إعدادات تصريح فاسدة، يرجى مراسلة المدير.'; $lang['authtempfail'] = 'تصريح المشترك غير متوفر مؤقتاً، إن استمرت هذه الحالة يرجى مراسلة المدير'; $lang['i_chooselang'] = 'اختر لغتك'; diff --git a/inc/lang/ar/pwconfirm.txt b/inc/lang/ar/pwconfirm.txt index 401053ea0..6b735e291 100644 --- a/inc/lang/ar/pwconfirm.txt +++ b/inc/lang/ar/pwconfirm.txt @@ -1,8 +1,8 @@ -مرحبا @FULLNAME@ +مرحبا @ الاسم الكامل @ -شخص ما طلب كلمة سر جديدة لـحسابك @TITLE@ في @DOKUWIKIURL@ +شخص ما طلب كلمة سر جديدة لـحسابك @ المعرف @ في @ DOKUWIURL @ إذا لم تكن قد طلبت كلمة سر جديدة رجاء قم بتجاهل هذه الرسالة . لتأكيد أنك أنت قمت بطلب كلمة السر الجديدة . نرجو منك الضغط على الرابط في الأسفل . -@CONFIRM@ +@ التأكيد @ -- -لقد تم عمل هذه الرسالة من قبل DokuWiki .. في @DOKUWIKIURL@ +لقد تم عمل هذه الرسالة من قبل DokuWiki .. في @ DOKUWIKIURL @ \ No newline at end of file -- cgit v1.2.3 From 28a7a6433920fcafa4c345badb9b4a185932fbe9 Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Fri, 9 Apr 2010 08:24:07 +0200 Subject: Slovak language update --- inc/lang/sk/admin.txt | 2 +- inc/lang/sk/conflict.txt | 2 +- inc/lang/sk/denied.txt | 2 +- inc/lang/sk/diff.txt | 2 +- inc/lang/sk/draft.txt | 2 +- inc/lang/sk/edit.txt | 2 +- inc/lang/sk/editrev.txt | 2 +- inc/lang/sk/index.txt | 2 +- inc/lang/sk/install.html | 10 +++--- inc/lang/sk/lang.php | 85 +++++++++++++++++++++-------------------------- inc/lang/sk/locked.txt | 2 +- inc/lang/sk/mailtext.txt | 2 +- inc/lang/sk/read.txt | 2 +- inc/lang/sk/register.txt | 2 +- inc/lang/sk/resendpwd.txt | 2 +- inc/lang/sk/stopwords.txt | 4 +-- 16 files changed, 58 insertions(+), 67 deletions(-) (limited to 'inc') diff --git a/inc/lang/sk/admin.txt b/inc/lang/sk/admin.txt index 039da2ae2..510eeb9c8 100644 --- a/inc/lang/sk/admin.txt +++ b/inc/lang/sk/admin.txt @@ -1,5 +1,5 @@ ====== Administrácia ====== -Nižšie môžte nájsť zoznam administratívnych úloch, ktoré môžte vykonávať v DokuWiki. +Nižšie môžete nájsť zoznam administratívnych úloh dostupných v DokuWiki. diff --git a/inc/lang/sk/conflict.txt b/inc/lang/sk/conflict.txt index d3cd0f590..5dab2dbe1 100644 --- a/inc/lang/sk/conflict.txt +++ b/inc/lang/sk/conflict.txt @@ -1,5 +1,5 @@ ====== Existuje novšia verzia ====== -Existuje novšia verzia práve upravovaného dokumentu. To se stáva, keď niekto iný zmenil dokument, ktorý práve upravujete. +Existuje novšia verzia práve upravovaného dokumentu. To sa stáva, keď niekto iný zmenil dokument, ktorý práve upravujete. Prehliadnite si nižšie uvedené rozdiely, prípadne rozdiely z obidvoch verzií ručne spojte dohromady a rozhodnite sa, ktorú verziu uchovať. Ak zvolíte ''Uložiť', bude uložená vaša verzia. V opačnom prípade stlačte ''Storno'' pre uchovanie pôvodnej verzie. diff --git a/inc/lang/sk/denied.txt b/inc/lang/sk/denied.txt index 6f673c7d6..6e9c98496 100644 --- a/inc/lang/sk/denied.txt +++ b/inc/lang/sk/denied.txt @@ -1,3 +1,3 @@ ====== Nepovolená akcia ====== -Prepáčte, ale nemáte dostatočné oprávnenie k tejto činnosti. Možno ste se zabudli prihlásiť? +Prepáčte, ale nemáte dostatočné oprávnenie k tejto činnosti. Možno ste sa zabudli prihlásiť? diff --git a/inc/lang/sk/diff.txt b/inc/lang/sk/diff.txt index 0e29e7f7b..0548ea5d6 100644 --- a/inc/lang/sk/diff.txt +++ b/inc/lang/sk/diff.txt @@ -1,4 +1,4 @@ ====== Rozdiely ====== -Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verzou danej stránky. +Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky. diff --git a/inc/lang/sk/draft.txt b/inc/lang/sk/draft.txt index 7e6776deb..96a4e91b2 100644 --- a/inc/lang/sk/draft.txt +++ b/inc/lang/sk/draft.txt @@ -2,5 +2,5 @@ Vaša posledná editácia tejto stránky nebola ukončená korektne. Dokuwiki automaticky uložila počas vašej práce koncept a ten môžete teraz použiť pre pokračovanie editácie. Nižšie môžete vidieť dáta, ktoré boli uložené. -Prosím, rozhodnite sa, či chcete //obnoviť// vašu poslednú editáciu, //zmazať// automaticky uložený koncept, alebo //stornovať// proces editácie. +Prosím, rozhodnite sa, či chcete //obnoviť// vašu poslednú editáciu, //zmazať// automaticky uložený koncept alebo //stornovať// proces editácie. diff --git a/inc/lang/sk/edit.txt b/inc/lang/sk/edit.txt index 1adf4e16f..b8d63fb72 100644 --- a/inc/lang/sk/edit.txt +++ b/inc/lang/sk/edit.txt @@ -1 +1 @@ -Upravte stránku a stlačte ''Uložiť''. Na stránke [[wiki:syntax]] sa môžete dozvedieť viac o Wiki syntaxi. Prosím upravujte stránky len pokiaľ ich môžete **vylepšit**. Pokiaľ si chcete niečo len vyskúšať, použite [[playground:playground| pieskovisko]]. +Upravte stránku a stlačte ''Uložiť''. Na stránke [[wiki:syntax]] sa môžete dozvedieť viac o Wiki syntaxi. Prosím upravujte stránky, len pokiaľ ich môžete **zdokonaliť**. Pokiaľ si chcete niečo len vyskúšať, použite [[playground:playground| pieskovisko]]. diff --git a/inc/lang/sk/editrev.txt b/inc/lang/sk/editrev.txt index 6a837c244..ed15e791c 100644 --- a/inc/lang/sk/editrev.txt +++ b/inc/lang/sk/editrev.txt @@ -1 +1 @@ -**Máte načítanú staršiu verziu dokumentu!** Pokiaľ ju uložíte, vytvoríte tým novú aktuálnú verziu. +**Máte načítanú staršiu verziu dokumentu!** Pokiaľ ju uložíte, vytvoríte tým novú aktuálnu verziu. diff --git a/inc/lang/sk/index.txt b/inc/lang/sk/index.txt index 7b26d42ce..b4189f214 100644 --- a/inc/lang/sk/index.txt +++ b/inc/lang/sk/index.txt @@ -1,3 +1,3 @@ ====== Index ====== -Tu je k dispozícii index všetkých dostupných stránok Zoradených podľa [[doku>namespaces|menných priestorov]]. +Tu je k dispozícii index všetkých dostupných stránok zoradených podľa [[doku>namespaces|menných priestorov]]. diff --git a/inc/lang/sk/install.html b/inc/lang/sk/install.html index c45b82005..e31d7457c 100644 --- a/inc/lang/sk/install.html +++ b/inc/lang/sk/install.html @@ -1,23 +1,23 @@

Táto stránka sprevádza prvou inštaláciou a konfiguráciou -Dokuwiki. Viac informácií o tomto Inštalátore je dostupných na jeho +Dokuwiki. Viac informácií o tomto inštalátore je dostupných na jeho dokumentačnej stránke.

DokuWiki používa bežné súbory pre ukladanie wiki stránok a iných informácií priradených k týmto stránkam (napr. obrázkov, vyhľadávacích indexov, starých revízií). Ak chcete úspešne narábať s DokuWiki, musí -mať práva pre zápis do adresárov, kde sa ukladajú tieto súbory. Tento Inštalátor +mať práva pre zápis do adresárov, kde sa ukladajú tieto súbory. Tento inštalátor nie je schopný nastaviť prístupové práva pre adresáre. Je potrebné to urobiť -priamo cez príkazový riadok, alebo ak využívate webhosting, cez FTP, alebo vaše +priamo cez príkazový riadok alebo, ak využívate webhosting, cez FTP alebo vaše webhostingové administračné rozhranie.

-

Tento Inštalátor nastaví ACL +

Tento inštalátor nastaví ACL konfiguráciu vašej Dokuwiki. Umožňuje vytvoriť administrátorské konto s prístupom do administračného menu s možnosťou inštalácie pluginov, správy užívateľov, správy prístupových práv k wiki stránkam a zmeny konfiguračných nastavení. Nie je nevyhnutné pre používanie Dokuwiki, ale umožňuje to ľahšie spravovať Dokuwiki.

-

Skúsení užívatelia, alebo užívatelia so špeciálnymi požiadavkami môžu použiť +

Skúsení užívatelia alebo užívatelia so špeciálnymi požiadavkami môžu použiť tieto odkazy pre bližšie informácie týkajúce sa inštalačných pokynov a konfiguračných nastavení.

diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index 8eb119df5..8c74e6f55 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -25,7 +25,7 @@ $lang['btn_preview'] = 'Náhľad'; $lang['btn_top'] = 'Hore'; $lang['btn_newer'] = '<< novšie'; $lang['btn_older'] = 'staršie >>'; -$lang['btn_revs'] = 'Staršia verzia'; +$lang['btn_revs'] = 'Staršie verzie'; $lang['btn_recent'] = 'Posledné úpravy'; $lang['btn_upload'] = 'Nahrať'; $lang['btn_cancel'] = 'Storno'; @@ -40,9 +40,6 @@ $lang['btn_back'] = 'Späť'; $lang['btn_backlink'] = 'Spätné linky'; $lang['btn_backtomedia'] = 'Späť na výber média'; $lang['btn_subscribe'] = 'Posielať zmeny'; -$lang['btn_unsubscribe'] = 'Neposielať zmeny'; -$lang['btn_subscribens'] = 'Posielať zmeny menných priestorov'; -$lang['btn_unsubscribens'] = 'Neposielať zmeny menných priestorov'; $lang['btn_profile'] = 'Aktualizovať profil'; $lang['btn_reset'] = 'Zrušiť'; $lang['btn_resendpwd'] = 'Poslať nové heslo'; @@ -63,22 +60,22 @@ $lang['profile'] = 'Užívateľský profil'; $lang['badlogin'] = 'Zadané užívateľské meno a heslo nie je správne.'; $lang['minoredit'] = 'Menšie zmeny'; $lang['draftdate'] = 'Koncept automaticky uložený'; -$lang['nosecedit'] = 'Skránka bola medzičasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.'; +$lang['nosecedit'] = 'Stránka bola medzičasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.'; $lang['regmissing'] = 'Musíte vyplniť všetky údaje.'; $lang['reguexists'] = 'Užívateľ s rovnakým menom je už zaregistrovaný.'; $lang['regsuccess'] = 'Užívateľský účet bol vytvorený a heslo zaslané mailom.'; $lang['regsuccess2'] = 'Užívateľský účet bol vytvorený.'; $lang['regmailfail'] = 'Zdá sa, že nastala chyba pri posielaní mailu s heslom. Skúste kontaktovať správcu.'; $lang['regbadmail'] = 'Zadaná mailová adresa nie je platná. Pokiaľ si myslíte, že to je zle, skúste kontaktovať správcu.'; -$lang['regbadpass'] = 'Dve zadané heslá nie sú rovnaké, skúste prosím znovu.'; +$lang['regbadpass'] = 'Zadané heslá nie sú rovnaké, zadajte ich prosím znovu.'; $lang['regpwmail'] = 'Vaše heslo do systému DokuWiki'; -$lang['reghere'] = 'Nemáte uživateľský účet? Vytvorte si ho'; -$lang['profna'] = 'Toto wiki nepodporuje zmenu profilu'; +$lang['reghere'] = 'Nemáte užívateľský účet? Vytvorte si ho'; +$lang['profna'] = 'Táto wiki nepodporuje zmenu profilu'; $lang['profnochange'] = 'Žiadne zmeny, nie je čo robiť.'; -$lang['profnoempty'] = 'Prázdne meno, alebo e-mailová adresa nie sú povolené.'; +$lang['profnoempty'] = 'Prázdne meno alebo e-mailová adresa nie sú povolené.'; $lang['profchanged'] = 'Užívateľský účet úspešne zmenený.'; $lang['pwdforget'] = 'Zabudli ste heslo? Získajte nové!'; -$lang['resendna'] = 'Toto wiki nepodporuje znovuposielanie hesla.'; +$lang['resendna'] = 'Táto wiki nepodporuje opätovné zasielanie hesla.'; $lang['resendpwd'] = 'Pošli nové heslo pre'; $lang['resendpwdmissing'] = 'Prepáčte, musíte vyplniť všetky polia.'; $lang['resendpwdnouser'] = 'Prepáčte, nemôžeme nájsť zadaného užívateľa v databáze.'; @@ -88,12 +85,19 @@ $lang['resendpwdsuccess'] = 'Vaše nové heslo bolo zaslané na e-mail.'; $lang['license'] = 'Ak nie je uvedené inak, obsah tejto wiki je uverejnený pod nasledujúcou licenciou:'; $lang['licenseok'] = 'Poznámka: Zmenou tejto stránky súhlasíte s uverejnením obsahu pod nasledujúcou licenciou:'; $lang['txt_upload'] = 'Vyberte súbor ako prílohu'; -$lang['txt_filename'] = 'Wiki meno (volitelné)'; +$lang['txt_filename'] = 'Uložiť ako (voliteľné)'; $lang['txt_overwrt'] = 'Prepísať existujúci súbor'; $lang['lockedby'] = 'Práve zamknuté:'; -$lang['lockexpire'] = 'Zámok vyprší:'; -$lang['willexpire'] = 'Váš zámok pre editáciu za chvílu vyprší.\nAby ste predišli konfliktom, stlačte tlačítko Náhľad a zámok sa predĺži.'; -$lang['js']['notsavedyet'] = "Neuložené zmeny budú stratené.\nChcete naozaj pokračovať?"; +$lang['lockexpire'] = 'Zámok stratí platnosť:'; +$lang['willexpire'] = 'Váš zámok pre editáciu za chvíľu stratí platnosť.\nAby ste predišli konfliktom, stlačte tlačítko Náhľad a zámok sa predĺži.'; +$lang['js']['notsavedyet'] = 'Neuložené zmeny budú stratené. +Chcete naozaj pokračovať?'; +$lang['js']['keepopen'] = 'Po vybraní súboru ponechať okno otvorené'; +$lang['js']['hidedetails'] = 'Skryť detaily'; +$lang['js']['nosmblinks'] = 'Odkazovanie na zdielané prostriedky Windows funguje len v Internet Explorer. +Aj napriek tomu tento odkaz môžete skopírovať a vložiť inde.'; +$lang['js']['del_confirm'] = 'Zmazať túto položku?'; +$lang['js']['mu_btn'] = 'Nahrať viac súborov súčasne'; $lang['rssfailed'] = 'Nastala chyba pri vytváraní tohto RSS: '; $lang['nothingfound'] = 'Nič nenájdené.'; $lang['mediaselect'] = 'Výber dokumentu'; @@ -101,7 +105,7 @@ $lang['fileupload'] = 'Nahrávanie dokumentu'; $lang['uploadsucc'] = 'Prenos prebehol v poriadku'; $lang['uploadfail'] = 'Chyba pri nahrávaní. Možno kvôli zle nastaveným právam?'; $lang['uploadwrong'] = 'Prenos súboru s takouto príponou nie je dovolený.'; -$lang['uploadexist'] = 'Súbor skutočne existuje. Nie je čo robiť.'; +$lang['uploadexist'] = 'Súbor už existuje. Žiadna akcia.'; $lang['uploadbadcontent'] = 'Nahraný obsah sa nezhoduje s príponou súboru %s.'; $lang['uploadspam'] = 'Nahrávanie bolo zablokované spamovým blacklistom.'; $lang['uploadxss'] = 'Nahrávanie bolo zablokované kvôli potenciálnemu škodlivému obsahu.'; @@ -111,40 +115,35 @@ $lang['deletefail'] = '"%s" nie je možné zmazať - skontrolujte opr $lang['mediainuse'] = 'Súbor "%s" nebol zmazaný - je stále používaný.'; $lang['namespaces'] = 'Menné priestory'; $lang['mediafiles'] = 'Dostupné súbory'; -$lang['js']['keepopen'] = 'Po vybraní súboru ponechať okno otvorené'; -$lang['js']['hidedetails'] = 'Skryť detaily'; -$lang['js']['nosmblinks'] = 'Odkazovanie na zdielané prostriedky Windows funguje len v Internet Explorer. -Aj napriek tomu tento odkaz môžete skopírovat a vložit inde.'; -$lang['js']['mu_btn'] = 'Nahrať viac súborov naraz'; $lang['mediausage'] = 'Pre odkázanie na súbor použite nasledujúcu syntax:'; $lang['mediaview'] = 'Zobraziť pôvodný súbor'; $lang['mediaroot'] = 'root'; -$lang['mediaupload'] = 'Nahrať súbor do aktuálneho menného priestoru. Pre vytvorenie menného podpriestoru, pridajte jeho názov na začiatok wiki mena (oddelený dvojbodkou)'; +$lang['mediaupload'] = 'Nahrať súbor do aktuálneho menného priestoru. Pre vytvorenie menného podpriestoru, pridajte jeho názov na začiatok mena súboru (oddelený dvojbodkou)'; $lang['mediaextchange'] = 'Prípona súboru bola zmenená z .%s na .%s!'; $lang['reference'] = 'Referencie pre'; $lang['ref_inuse'] = 'Súbor nemôže byť zmazaný, pretože je stále používaný nasledujúcimi stránkami:'; -$lang['ref_hidden'] = 'Niektoré referencie sú na stránky pre ktoré nemáte právo na čítanie'; +$lang['ref_hidden'] = 'Niektoré referencie sú na stránky, pre ktoré nemáte právo na čítanie'; $lang['hits'] = '- počet výskytov'; $lang['quickhits'] = 'Zodpovedajúce stránky'; $lang['toc'] = 'Obsah'; $lang['current'] = 'aktuálne'; $lang['yours'] = 'Vaša verzia'; -$lang['diff'] = 'zobrazit rozdiely voči aktuálnej verzii'; -$lang['diff2'] = 'Ukázať rozdiely medzi vybranými verziami'; +$lang['diff'] = 'Zobraziť rozdiely voči aktuálnej verzii'; +$lang['diff2'] = 'Zobraziť rozdiely medzi vybranými verziami'; $lang['line'] = 'Riadok'; $lang['breadcrumb'] = 'História'; $lang['youarehere'] = 'Nachádzate sa'; $lang['lastmod'] = 'Posledná úprava'; $lang['by'] = 'od'; -$lang['deleted'] = 'odstranené'; +$lang['deleted'] = 'odstránené'; $lang['created'] = 'vytvorené'; -$lang['restored'] = 'stará verzia bola obnovena'; +$lang['restored'] = 'stará verzia bola obnovená'; $lang['external_edit'] = 'externá úprava'; $lang['summary'] = 'Komentár k úpravám'; $lang['noflash'] = 'Pre zobrazenie tohto obsahu potrebujete Adobe Flash Plugin.'; $lang['mail_newpage'] = 'stránka pridaná:'; $lang['mail_changed'] = 'stránka zmenená:'; -$lang['mail_new_user'] = 'Nový užívateľ:'; +$lang['mail_new_user'] = 'nový užívateľ:'; $lang['mail_upload'] = 'nahraný súbor:'; $lang['qb_bold'] = 'Tučné'; $lang['qb_italic'] = 'Kurzíva'; @@ -165,7 +164,6 @@ $lang['qb_media'] = 'Vložiť obrázky alebo iné súbory'; $lang['qb_sig'] = 'Vložiť podpis'; $lang['qb_smileys'] = 'Smajlíky'; $lang['qb_chars'] = 'Špeciálne znaky'; -$lang['js']['del_confirm'] = 'Zmazať túto položku?'; $lang['admin_register'] = 'Pridaj nového užívateľa'; $lang['metaedit'] = 'Upraviť metainformácie'; $lang['metasaveerr'] = 'Zápis metainformácií zlyhal'; @@ -180,48 +178,41 @@ $lang['img_artist'] = 'Fotograf'; $lang['img_copyr'] = 'Kopírovacie práva'; $lang['img_format'] = 'Formát'; $lang['img_camera'] = 'Fotoaparát'; -$lang['img_keywords'] = 'Klúčové slová'; -$lang['subscribe_success'] = 'Pridané %s do zoznamu objednávok pre %s'; -$lang['subscribe_error'] = 'Chyba pri pridaní %s do zoznamu objednávok pre %s'; -$lang['subscribe_noaddress'] = 'Nie je žiadna e-mailová adresa priradená k vašemu menu,nemôžte byť pridaný do zoznamu objednávok'; -$lang['unsubscribe_success'] = 'Odobrané %s zo zoznamu objednávok pre %s'; -$lang['unsubscribe_error'] = 'Chaba pri odobraní %s zo zoznamu objednávok pre %s'; -$lang['authmodfailed'] = 'Užívateľská autentifikácia nie je možná. Prosím informujte správcu tohto systému.'; -$lang['authtempfail'] = 'Užívateľská autentifikácia je dočasne nedostupná. Ak táto situácia pretrvá, prosím informujte správcu tohto systému.'; +$lang['img_keywords'] = 'Kľúčové slová'; +$lang['authmodfailed'] = 'Užívateľská autentifikácia nie je možná. Prosím informujte správcu systému.'; +$lang['authtempfail'] = 'Užívateľská autentifikácia je dočasne nedostupná. Ak táto situácia pretrváva, prosím informujte správcu systému.'; $lang['i_chooselang'] = 'Zvoľte váš jazyk'; $lang['i_installer'] = 'DokuWiki inštalátor'; $lang['i_wikiname'] = 'Názov Wiki'; $lang['i_enableacl'] = 'Aktivovať ACL (doporučené)'; $lang['i_superuser'] = 'Správca'; $lang['i_problems'] = 'Inštalátor narazil na nižšie uvedené problémy. Nemôžete pokračovať, pokiaľ ich neodstránite.'; -$lang['i_modified'] = 'Z bezpečnostných dôvodov bude tento skript fungovať iba s novou, neupravenou inštaláciou Dokuwiki. Môžete buď znovu rozbaliť stiahnutý inštalačný balíček, alebo preštudovať inštalačné inštrukcie Dokuwiki'; +$lang['i_modified'] = 'Z bezpečnostných dôvodov bude tento skript fungovať iba s novou, neupravenou inštaláciou Dokuwiki. Môžete buď znovu rozbaliť stiahnutý inštalačný balíček alebo preštudovať inštalačné inštrukcie Dokuwiki'; $lang['i_funcna'] = 'PHP funkcia %s nie je dostupná. Je možné, že ju z určitých dôvodov zablokoval váš poskytovateľ webhostingu?'; -$lang['i_phpver'] = 'Vaša verzia PHP %s je nižšia ako požadovaná %s. Potrebujete aktualizovať Vašu instaláciu PHP.'; +$lang['i_phpver'] = 'Vaša verzia PHP %s je nižšia ako požadovaná %s. Potrebujete aktualizovať Vašu inštaláciu PHP.'; $lang['i_permfail'] = '%s nie je zapisovateľný pre DokuWiki. Musíte zmeniť prístupové práva pre tento adresár!'; $lang['i_confexists'] = '%s už existuje'; $lang['i_writeerr'] = 'Nie je možné vytvoriť %s. Potrebujete skontrolovať prístupové práva pre adresár/súbor a vytvoriť ho manuálne.'; -$lang['i_badhash'] = 'nerozpoznaný, alebo zmenený súbor dokuwiki.php (hash=%s)'; -$lang['i_badval'] = '%s - bola zadaná nesprávna, alebo žiadna hodnota'; -$lang['i_success'] = 'Konfigurácia bola úspešne ukončená. Teraz môžte zmazať súbor install.php. Pokračujte vo - vašej novej DokuWiki.'; -$lang['i_failure'] = 'Pri zápise konfiguračného súboru nastali nejaké chyby. Potrebujete ich opraviť manuálne pred tým ako budete môcť používať - vašu novú DokuWiki.'; +$lang['i_badhash'] = 'neznámy alebo zmenený súbor dokuwiki.php (hash=%s)'; +$lang['i_badval'] = '%s - nesprávna alebo žiadna hodnota'; +$lang['i_success'] = 'Konfigurácia bola úspešne ukončená. Teraz môžete zmazať súbor install.php. Pokračujte vo vašej novej DokuWiki.'; +$lang['i_failure'] = 'Pri zápise konfiguračného súboru nastali nejaké chyby. Potrebujete ich opraviť manuálne pred tým, ako budete môcť používať vašu novú DokuWiki.'; $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_retry'] = 'Skúsiť znovu'; -$lang['mu_intro'] = 'Na tomto mieste môžete nahrávať viac súborov naraz. Tlačidlom Prehľadávať pridáte súbory do zoznamu. Tlačidlom Nahrať vykonáte prenos súborov.'; +$lang['mu_intro'] = 'Na tomto mieste môžete nahrávať viac súborov súčasne. Tlačidlom Prehľadávať pridáte súbory do zoznamu. Tlačidlom Nahrať vykonáte prenos súborov.'; $lang['mu_gridname'] = 'Názov súboru'; $lang['mu_gridsize'] = 'Veľkosť'; $lang['mu_gridstat'] = 'Status'; -$lang['mu_namespace'] = 'Oblasť mien'; +$lang['mu_namespace'] = 'Menný priestor'; $lang['mu_browse'] = 'Prehľadávať'; $lang['mu_toobig'] = 'príliš veľký'; $lang['mu_ready'] = 'pripravený na nahratie'; $lang['mu_done'] = 'dokončený'; $lang['mu_fail'] = 'neúspešný'; -$lang['mu_authfail'] = 'spojenie vypršalo'; +$lang['mu_authfail'] = 'pripojenie stratilo platnosť'; $lang['mu_progress'] = '@PCT@% nahraných'; $lang['mu_filetypes'] = 'Povolené typy súborov'; $lang['recent_global'] = 'Práve prehliadate zmeny v mennom priestore %s. Môžete si tiež pozrieť aktuálne zmeny celej wiki.'; diff --git a/inc/lang/sk/locked.txt b/inc/lang/sk/locked.txt index 0e7d9645e..5063c0605 100644 --- a/inc/lang/sk/locked.txt +++ b/inc/lang/sk/locked.txt @@ -1,3 +1,3 @@ ====== Stránka je uzamknutá ====== -Tato stránka je práve uzamknutá pre úpravy iným užívateľom. Musíte počkať pokým daný užívateľ dokončí svoje úpravy, alebo pokým tento zámok vyprší. +Tato stránka je práve uzamknutá pre úpravy iným užívateľom. Musíte počkať dovtedy, pokiaľ daný užívateľ dokončí svoje úpravy alebo pokiaľ tento zámok stratí platnosť. diff --git a/inc/lang/sk/mailtext.txt b/inc/lang/sk/mailtext.txt index 78757799e..f7a9d9610 100644 --- a/inc/lang/sk/mailtext.txt +++ b/inc/lang/sk/mailtext.txt @@ -1,4 +1,4 @@ -Stránka vo vašom DokuWiki bola zmenená. Tu sú podrobnosti: +Stránka vo vašej DokuWiki bola zmenená. Tu sú podrobnosti: Dátum : @DATE@ Prehliadač : @BROWSER@ diff --git a/inc/lang/sk/read.txt b/inc/lang/sk/read.txt index a50b2afb6..64b7ed26e 100644 --- a/inc/lang/sk/read.txt +++ b/inc/lang/sk/read.txt @@ -1,2 +1,2 @@ -Táto stránka je iba na čítanie. Môžete si iba prehliadnuť zdrojový kód, ale nie meniť ho. Opýtajte sa správcu, ak si myslíťe že niečo nie je v poriadku. +Táto stránka je iba na čítanie. Môžete si prehliadnuť zdrojový kód, ale nemôžete ho meniť. Opýtajte sa správcu, ak si myslíte, že niečo nie je v poriadku. diff --git a/inc/lang/sk/register.txt b/inc/lang/sk/register.txt index 8dfe6be4e..1e694ca79 100644 --- a/inc/lang/sk/register.txt +++ b/inc/lang/sk/register.txt @@ -1,3 +1,3 @@ ====== Zaregistrujte sa ako nový užívateľ ====== -Aby ste získali uživateľský účet, vyplňťe prosím všetky informácie v následujúcom formulári. Zadajte **platnú** mailovú adresu, na ktorú bude zaslané heslo. Uživateľské meno musí byť v platnom [[doku>pagename|formáte]] (ktorý je rovnaký ako formát názvu stránky). +Aby ste získali užívateľský účet, vyplňte prosím všetky informácie v následujúcom formulári. Zadajte **platnú** mailovú adresu, na ktorú bude zaslané heslo. Užívateľské meno musí byť v platnom [[doku>pagename|formáte]] (ktorý je rovnaký ako formát názvu stránky). diff --git a/inc/lang/sk/resendpwd.txt b/inc/lang/sk/resendpwd.txt index b51706c96..6f52486f1 100644 --- a/inc/lang/sk/resendpwd.txt +++ b/inc/lang/sk/resendpwd.txt @@ -1,4 +1,4 @@ ====== Poslať nové heslo ====== -Vyplnte niežšie požadované informácie pre získanie nového hesla pre váš účet v tomto wiki. Vaše nové heslo bude zaslané na vašu registrovanú e-mailovú adresu. Užívateľské meno má byť vaše prihlasovaciemeno do wiki. +Vyplňte nižšie požadované informácie pre získanie nového hesla pre váš účet v tejto wiki. Vaše nové heslo bude zaslané na vašu registrovanú e-mailovú adresu. Užívateľské meno má byť vaše prihlasovacie meno do wiki. diff --git a/inc/lang/sk/stopwords.txt b/inc/lang/sk/stopwords.txt index 86eb84046..060ee495f 100644 --- a/inc/lang/sk/stopwords.txt +++ b/inc/lang/sk/stopwords.txt @@ -1,6 +1,6 @@ -#Toto je zoznam slov ignorovaných indexérom, jedno slovo na riadok +#Toto je zoznam slov ignorovaných indexáciou, jedno slovo na riadok # Keď editujete tento súbor, uistite sa, či používate UNIXové konce riadkov (jednoduchý nový riadok) -# Nie je potrebné vkladať slová kraťšie ako 3 znaky - tie sú ignorované vždy. +# Nie je potrebné vkladať slová kratšie ako 3 znaky - tie sú ignorované vždy. # Tento zoznam je založený na inom nájdenom na http://www.ranks.nl/stopwords/ okolo tvoj -- cgit v1.2.3 From 767b2cc2194fe671edafa2a48ea0be6fe9da30cd Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Sat, 10 Apr 2010 14:19:26 +0200 Subject: Slovak language update --- inc/lang/sk/adminplugins.txt | 1 + inc/lang/sk/lang.php | 44 +++++++++++++++++++++++++++++++++++++++++++ inc/lang/sk/mailtext.txt | 16 ++++++++-------- inc/lang/sk/password.txt | 6 +++--- inc/lang/sk/pwconfirm.txt | 2 +- inc/lang/sk/registermail.txt | 2 +- inc/lang/sk/subscr_digest.txt | 20 ++++++++++++++++++++ inc/lang/sk/subscr_list.txt | 17 +++++++++++++++++ inc/lang/sk/subscr_single.txt | 23 ++++++++++++++++++++++ inc/lang/sk/uploadmail.txt | 2 +- 10 files changed, 119 insertions(+), 14 deletions(-) create mode 100644 inc/lang/sk/adminplugins.txt create mode 100644 inc/lang/sk/subscr_digest.txt create mode 100644 inc/lang/sk/subscr_list.txt create mode 100644 inc/lang/sk/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/sk/adminplugins.txt b/inc/lang/sk/adminplugins.txt new file mode 100644 index 000000000..64d2ca774 --- /dev/null +++ b/inc/lang/sk/adminplugins.txt @@ -0,0 +1 @@ +===== Ďalšie pluginy ===== \ No newline at end of file diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index 8c74e6f55..852ab6c45 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -46,6 +46,7 @@ $lang['btn_resendpwd'] = 'Poslať nové heslo'; $lang['btn_draft'] = 'Upraviť koncept'; $lang['btn_recover'] = 'Obnoviť koncept'; $lang['btn_draftdel'] = 'Zmazať koncept'; +$lang['btn_revert'] = 'Obnoviť'; $lang['loggedinas'] = 'Prihlásený(á) ako'; $lang['user'] = 'Užívateľské meno'; $lang['pass'] = 'Heslo'; @@ -84,6 +85,8 @@ $lang['resendpwdconfirm'] = 'Autorizačný odkaz bol zaslaný na e-mail.'; $lang['resendpwdsuccess'] = 'Vaše nové heslo bolo zaslané na e-mail.'; $lang['license'] = 'Ak nie je uvedené inak, obsah tejto wiki je uverejnený pod nasledujúcou licenciou:'; $lang['licenseok'] = 'Poznámka: Zmenou tejto stránky súhlasíte s uverejnením obsahu pod nasledujúcou licenciou:'; +$lang['searchmedia'] = 'Hľadať meno súboru:'; +$lang['searchmedia_in'] = 'Hľadať v %s'; $lang['txt_upload'] = 'Vyberte súbor ako prílohu'; $lang['txt_filename'] = 'Uložiť ako (voliteľné)'; $lang['txt_overwrt'] = 'Prepísať existujúci súbor'; @@ -92,10 +95,34 @@ $lang['lockexpire'] = 'Zámok stratí platnosť:'; $lang['willexpire'] = 'Váš zámok pre editáciu za chvíľu stratí platnosť.\nAby ste predišli konfliktom, stlačte tlačítko Náhľad a zámok sa predĺži.'; $lang['js']['notsavedyet'] = 'Neuložené zmeny budú stratené. Chcete naozaj pokračovať?'; +$lang['js']['searchmedia'] = 'Hľadať súbory'; $lang['js']['keepopen'] = 'Po vybraní súboru ponechať okno otvorené'; $lang['js']['hidedetails'] = 'Skryť detaily'; +$lang['js']['mediatitle'] = 'Nastavenia odkazu'; +$lang['js']['mediadisplay'] = 'Typ odkazu'; +$lang['js']['mediaalign'] = 'Zarovnanie'; +$lang['js']['mediasize'] = 'Veľkosť obrázku'; +$lang['js']['mediatarget'] = 'Cieľ odkazu'; +$lang['js']['mediaclose'] = 'Zatvoriť'; +$lang['js']['mediainsert'] = 'Vložiť'; +$lang['js']['mediadisplayimg'] = 'Zobraziť obrázok.'; +$lang['js']['mediadisplaylnk'] = 'Zobraziť iba odkaz.'; +$lang['js']['mediasmall'] = 'Malý'; +$lang['js']['mediamedium'] = 'Stredný'; +$lang['js']['medialarge'] = 'Veľký'; +$lang['js']['mediaoriginal'] = 'Originál'; +$lang['js']['medialnk'] = 'Odkaz na stránku s detailným popisom'; +$lang['js']['mediadirect'] = 'Priamy odkaz na originál'; +$lang['js']['medianolnk'] = 'Žiadny odkaz'; +$lang['js']['medianolink'] = 'Bez odkazu na obrázok'; +$lang['js']['medialeft'] = 'Zarovnať obrázok vľavo.'; +$lang['js']['mediaright'] = 'Zarovnať obrázok vpravo.'; +$lang['js']['mediacenter'] = 'Zarovnať obrázok na stred.'; +$lang['js']['medianoalign'] = 'Nepoužívať zarovnanie.'; $lang['js']['nosmblinks'] = 'Odkazovanie na zdielané prostriedky Windows funguje len v Internet Explorer. Aj napriek tomu tento odkaz môžete skopírovať a vložiť inde.'; +$lang['js']['linkwiz'] = 'Sprievodca odkazmi'; +$lang['js']['linkto'] = 'Odkaz na:'; $lang['js']['del_confirm'] = 'Zmazať túto položku?'; $lang['js']['mu_btn'] = 'Nahrať viac súborov súčasne'; $lang['rssfailed'] = 'Nastala chyba pri vytváraní tohto RSS: '; @@ -141,8 +168,10 @@ $lang['restored'] = 'stará verzia bola obnovená'; $lang['external_edit'] = 'externá úprava'; $lang['summary'] = 'Komentár k úpravám'; $lang['noflash'] = 'Pre zobrazenie tohto obsahu potrebujete Adobe Flash Plugin.'; +$lang['download'] = 'Stiahnuť'; $lang['mail_newpage'] = 'stránka pridaná:'; $lang['mail_changed'] = 'stránka zmenená:'; +$lang['mail_subscribe_list'] = 'stránky zmenené v mennom priestore:'; $lang['mail_new_user'] = 'nový užívateľ:'; $lang['mail_upload'] = 'nahraný súbor:'; $lang['qb_bold'] = 'Tučné'; @@ -155,6 +184,11 @@ $lang['qb_h2'] = 'Nadpis 2. úrovne'; $lang['qb_h3'] = 'Nadpis 3. úrovne'; $lang['qb_h4'] = 'Nadpis 4. úrovne'; $lang['qb_h5'] = 'Nadpis 5. úrovne'; +$lang['qb_h'] = 'Nadpis'; +$lang['qb_hs'] = 'Zvoliť nadpis'; +$lang['qb_hplus'] = 'Nadpis vyššej úrovne'; +$lang['qb_hminus'] = 'Nadpis nižšej úrovne'; +$lang['qb_hequal'] = 'Nadpis predchádzajúcej úrovne'; $lang['qb_link'] = 'Interný odkaz'; $lang['qb_extlink'] = 'Externý odkaz'; $lang['qb_hr'] = 'Horizontálna linka'; @@ -164,6 +198,7 @@ $lang['qb_media'] = 'Vložiť obrázky alebo iné súbory'; $lang['qb_sig'] = 'Vložiť podpis'; $lang['qb_smileys'] = 'Smajlíky'; $lang['qb_chars'] = 'Špeciálne znaky'; +$lang['upperns'] = 'návrat do nadradeného menného priestoru'; $lang['admin_register'] = 'Pridaj nového užívateľa'; $lang['metaedit'] = 'Upraviť metainformácie'; $lang['metasaveerr'] = 'Zápis metainformácií zlyhal'; @@ -215,4 +250,13 @@ $lang['mu_fail'] = 'neúspešný'; $lang['mu_authfail'] = 'pripojenie stratilo platnosť'; $lang['mu_progress'] = '@PCT@% nahraných'; $lang['mu_filetypes'] = 'Povolené typy súborov'; +$lang['mu_lasterr'] = 'Posledná chyba:'; $lang['recent_global'] = 'Práve prehliadate zmeny v mennom priestore %s. Môžete si tiež pozrieť aktuálne zmeny celej wiki.'; +$lang['years'] = 'pred %d rokmi'; +$lang['months'] = 'pred %d mesiacmi'; +$lang['weeks'] = 'pred %d týždňami'; +$lang['days'] = 'pred %d dňami'; +$lang['hours'] = 'pred %d hodinami'; +$lang['minutes'] = 'pred %d minútami'; +$lang['seconds'] = 'pred %d sekundami'; +$lang['wordblock'] = 'Vaše zmeny neboli uložené, pretože obsahovali nepovolený text (spam).'; diff --git a/inc/lang/sk/mailtext.txt b/inc/lang/sk/mailtext.txt index f7a9d9610..30b7f5c37 100644 --- a/inc/lang/sk/mailtext.txt +++ b/inc/lang/sk/mailtext.txt @@ -1,17 +1,17 @@ Stránka vo vašej DokuWiki bola zmenená. Tu sú podrobnosti: -Dátum : @DATE@ -Prehliadač : @BROWSER@ -IP adresa : @IPADDRESS@ -Hostitel : @HOSTNAME@ +Dátum : @DATE@ +Prehliadač : @BROWSER@ +IP adresa : @IPADDRESS@ +Adresa : @HOSTNAME@ Stará verzia : @OLDPAGE@ -Nová verzia : @NEWPAGE@ -Komentár : @SUMMARY@ -User : @USER@ +Nová verzia : @NEWPAGE@ +Komentár : @SUMMARY@ +User : @USER@ @DIFF@ -- -Táto správa bola vygenerovaná systémom DokuWiki: +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/sk/password.txt b/inc/lang/sk/password.txt index 17e5dda9d..2b85e9c39 100644 --- a/inc/lang/sk/password.txt +++ b/inc/lang/sk/password.txt @@ -2,10 +2,10 @@ Dobrý deň, Tu sú prihlasovacie informácie pre @TITLE@ (@DOKUWIKIURL@) -Meno : @FULLNAME@ +Meno : @FULLNAME@ Užívateľské meno : @LOGIN@ -Heslo : @PASSWORD@ +Heslo : @PASSWORD@ -- -Tato správa bola vygenerována systémom DokuWiki: +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/sk/pwconfirm.txt b/inc/lang/sk/pwconfirm.txt index 19903203d..210740da7 100644 --- a/inc/lang/sk/pwconfirm.txt +++ b/inc/lang/sk/pwconfirm.txt @@ -11,5 +11,5 @@ použite prosím nasledujúci odkaz. @CONFIRM@ -- -Tento mail bol generovaný Dokuwiki na adrese +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/sk/registermail.txt b/inc/lang/sk/registermail.txt index 3fdc63f74..a0bf9e314 100644 --- a/inc/lang/sk/registermail.txt +++ b/inc/lang/sk/registermail.txt @@ -10,5 +10,5 @@ IP adresa : @IPADDRESS@ Meno servera : @HOSTNAME@ -- -Tento mail bol generovaný Dokuwiki na adrese +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@ diff --git a/inc/lang/sk/subscr_digest.txt b/inc/lang/sk/subscr_digest.txt new file mode 100644 index 000000000..273cc7e26 --- /dev/null +++ b/inc/lang/sk/subscr_digest.txt @@ -0,0 +1,20 @@ +Dobrý deň! + +Stránka @PAGE@ wiki @TITLE@ bola zmenená. +Zoznam zmien: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Stará verzia: @OLDPAGE@ +Nová verzia: @NEWPAGE@ + +Ak si neprajete zasielať tieto správy, prihláste sa do wiki +@DOKUWIKIURL@, potom prejdite na +@SUBSCRIBE@ +a odhláste sa z informovania o zmenách stránky alebo menného priestoru. + +-- +Táto správa bola zaslaná DokuWiki +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sk/subscr_list.txt b/inc/lang/sk/subscr_list.txt new file mode 100644 index 000000000..3a5bfb572 --- /dev/null +++ b/inc/lang/sk/subscr_list.txt @@ -0,0 +1,17 @@ +Dobrý deň! + +Stránky v mennom priestore @PAGE@ wiki @TITLE@ boli zmenené. +Zoznam zmenených stránok: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Ak si neprajete zasielať tieto správy, prihláste sa do wiki +@DOKUWIKIURL@, potom prejdite na +@SUBSCRIBE@ +a odhláste sa z informovania o zmenách stránky alebo menného priestoru. + +-- +Táto správa bola zaslaná DokuWiki +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sk/subscr_single.txt b/inc/lang/sk/subscr_single.txt new file mode 100644 index 000000000..3abbc40b8 --- /dev/null +++ b/inc/lang/sk/subscr_single.txt @@ -0,0 +1,23 @@ +Dobrý deň! + +Stránka @PAGE@ wiki @TITLE@ bola zmenená. +Zoznam zmien: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Dátum : @DATE@ +Používateľ : @USER@ +Komentár: @SUMMARY@ +Stará verzia: @OLDPAGE@ +Nová verzia: @NEWPAGE@ + +Ak si neprajete zasielať tieto správy, prihláste sa do wiki +@DOKUWIKIURL@, potom prejdite na +@SUBSCRIBE@ +a odhláste sa z informovania o zmenách stránky alebo menného priestoru. + +-- +Táto správa bola zaslaná DokuWiki +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sk/uploadmail.txt b/inc/lang/sk/uploadmail.txt index 871fcaeb2..18293799f 100644 --- a/inc/lang/sk/uploadmail.txt +++ b/inc/lang/sk/uploadmail.txt @@ -10,5 +10,5 @@ MIME Typ : @MIME@ Užívateľ : @USER@ -- -Tento mail vygenerovalo DokuWiki na +Táto správa bola zaslaná DokuWiki @DOKUWIKIURL@ \ No newline at end of file -- cgit v1.2.3 From b4877af37a38cedb703d975b6eca8ceb18652acd Mon Sep 17 00:00:00 2001 From: Usama Akkad Date: Sun, 11 Apr 2010 11:50:04 +0200 Subject: Arabic language update --- inc/lang/ar/pwconfirm.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/lang/ar/pwconfirm.txt b/inc/lang/ar/pwconfirm.txt index 6b735e291..401053ea0 100644 --- a/inc/lang/ar/pwconfirm.txt +++ b/inc/lang/ar/pwconfirm.txt @@ -1,8 +1,8 @@ -مرحبا @ الاسم الكامل @ +مرحبا @FULLNAME@ -شخص ما طلب كلمة سر جديدة لـحسابك @ المعرف @ في @ DOKUWIURL @ +شخص ما طلب كلمة سر جديدة لـحسابك @TITLE@ في @DOKUWIKIURL@ إذا لم تكن قد طلبت كلمة سر جديدة رجاء قم بتجاهل هذه الرسالة . لتأكيد أنك أنت قمت بطلب كلمة السر الجديدة . نرجو منك الضغط على الرابط في الأسفل . -@ التأكيد @ +@CONFIRM@ -- -لقد تم عمل هذه الرسالة من قبل DokuWiki .. في @ DOKUWIKIURL @ \ No newline at end of file +لقد تم عمل هذه الرسالة من قبل DokuWiki .. في @DOKUWIKIURL@ -- cgit v1.2.3 From f40e778bd458a77910ed4a05040cbf520b6beabb Mon Sep 17 00:00:00 2001 From: andywebber Date: Sun, 11 Apr 2010 10:53:08 +0100 Subject: Add NAME and MAIL macros to notify() --- inc/common.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index 4e5a2e197..fadf71b03 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1106,6 +1106,8 @@ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ $text = str_replace('@DOKUWIKIURL@',DOKU_URL,$text); $text = str_replace('@SUMMARY@',$summary,$text); $text = str_replace('@USER@',$_SERVER['REMOTE_USER'],$text); + $text = str_replace('@NAME@',$INFO['userinfo']['name'],$text); + $text = str_replace('@MAIL',$INFO['userinfo']['mail'],$text); foreach ($replace as $key => $substitution) { $text = str_replace('@'.strtoupper($key).'@',$substitution, $text); -- cgit v1.2.3 From 52d6039fb46a59aba6634053375c77a5469fe238 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 12 Apr 2010 10:28:55 +0200 Subject: Add missing at sign --- inc/common.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index fadf71b03..144f8e48c 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1107,7 +1107,7 @@ function notify($id,$who,$rev='',$summary='',$minor=false,$replace=array()){ $text = str_replace('@SUMMARY@',$summary,$text); $text = str_replace('@USER@',$_SERVER['REMOTE_USER'],$text); $text = str_replace('@NAME@',$INFO['userinfo']['name'],$text); - $text = str_replace('@MAIL',$INFO['userinfo']['mail'],$text); + $text = str_replace('@MAIL@',$INFO['userinfo']['mail'],$text); foreach ($replace as $key => $substitution) { $text = str_replace('@'.strtoupper($key).'@',$substitution, $text); -- cgit v1.2.3 From d258a97797c602857a8cf542d64f49e1676c2497 Mon Sep 17 00:00:00 2001 From: Martin Michalek Date: Thu, 15 Apr 2010 08:30:08 +0200 Subject: Slovak language update --- inc/lang/sk/lang.php | 19 ++++++++++++++++++- inc/lang/sk/subscr_form.txt | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 inc/lang/sk/subscr_form.txt (limited to 'inc') diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index 852ab6c45..b1783008b 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -39,7 +39,7 @@ $lang['btn_delete'] = 'Zmazať'; $lang['btn_back'] = 'Späť'; $lang['btn_backlink'] = 'Spätné linky'; $lang['btn_backtomedia'] = 'Späť na výber média'; -$lang['btn_subscribe'] = 'Posielať zmeny'; +$lang['btn_subscribe'] = 'Sledovať zmeny'; $lang['btn_profile'] = 'Aktualizovať profil'; $lang['btn_reset'] = 'Zrušiť'; $lang['btn_resendpwd'] = 'Poslať nové heslo'; @@ -214,6 +214,22 @@ $lang['img_copyr'] = 'Kopírovacie práva'; $lang['img_format'] = 'Formát'; $lang['img_camera'] = 'Fotoaparát'; $lang['img_keywords'] = 'Kľúčové slová'; +$lang['subscr_subscribe_success'] = 'Používateľ %s bol pridaný do zoznamu hlásení o zmenách %s'; +$lang['subscr_subscribe_error'] = 'Chyba pri pridaní používateľa %s do zoznamu hlásení o zmenách %s'; +$lang['subscr_subscribe_noaddress'] = 'Vaše prihlasovacie meno nemá priradenú žiadnu email adresu, nemôžete byť pridaný do zoznamu hlásení o zmenách'; +$lang['subscr_unsubscribe_success'] = 'Používateľ %s bol odstánený zo zoznamu hlásení o zmenách %s'; +$lang['subscr_unsubscribe_error'] = 'Chyba pri odstánení používateľa %s zo zoznamu hlásení o zmenách %s'; +$lang['subscr_already_subscribed'] = 'Používateľ %s už je v zozname hlásení o zmenách %s'; +$lang['subscr_not_subscribed'] = 'Používateľ %s nie je v zozname hlásení o zmenách %s'; +$lang['subscr_m_not_subscribed'] = 'Momentálne nesledujete zmeny aktuálnej stránky alebo menného priestoru.'; +$lang['subscr_m_new_header'] = 'Pridať sledovanie zmien'; +$lang['subscr_m_current_header'] = 'Aktuálne sledované zmeny'; +$lang['subscr_m_unsubscribe'] = 'Nesledovať zmeny'; +$lang['subscr_m_subscribe'] = 'Sledovať zmeny'; +$lang['subscr_m_receive'] = 'Dostávať'; +$lang['subscr_style_every'] = 'email pri každej zmene'; +$lang['subscr_style_digest'] = 'email so zhrnutím zmien pre každú stránku'; +$lang['subscr_style_list'] = 'zoznam zmenených stránok od posledného emailu'; $lang['authmodfailed'] = 'Užívateľská autentifikácia nie je možná. Prosím informujte správcu systému.'; $lang['authtempfail'] = 'Užívateľská autentifikácia je dočasne nedostupná. Ak táto situácia pretrváva, prosím informujte správcu systému.'; $lang['i_chooselang'] = 'Zvoľte váš jazyk'; @@ -250,6 +266,7 @@ $lang['mu_fail'] = 'neúspešný'; $lang['mu_authfail'] = 'pripojenie stratilo platnosť'; $lang['mu_progress'] = '@PCT@% nahraných'; $lang['mu_filetypes'] = 'Povolené typy súborov'; +$lang['mu_info'] = 'nahraných súborov.'; $lang['mu_lasterr'] = 'Posledná chyba:'; $lang['recent_global'] = 'Práve prehliadate zmeny v mennom priestore %s. Môžete si tiež pozrieť aktuálne zmeny celej wiki.'; $lang['years'] = 'pred %d rokmi'; diff --git a/inc/lang/sk/subscr_form.txt b/inc/lang/sk/subscr_form.txt new file mode 100644 index 000000000..1f12e9a15 --- /dev/null +++ b/inc/lang/sk/subscr_form.txt @@ -0,0 +1,3 @@ +====== Sledovanie zmien ====== + +Táto stánka umožňuje sledovať zmeny aktuálnej stránky a menného priestoru. \ No newline at end of file -- cgit v1.2.3 From acca0b77793187b25d85d39e7ed7d6194f8aa55e Mon Sep 17 00:00:00 2001 From: Usama Akkad Date: Thu, 15 Apr 2010 08:36:26 +0200 Subject: Arabic language update --- inc/lang/ar/lang.php | 37 +++++++++++++++++++++++++++++++++++++ inc/lang/ar/subscr_digest.txt | 1 + 2 files changed, 38 insertions(+) create mode 100644 inc/lang/ar/subscr_digest.txt (limited to 'inc') diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index b1bd38383..201cc16c5 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -179,6 +179,11 @@ $lang['qb_h2'] = 'عنوان مستوى ثاني'; $lang['qb_h3'] = 'عنوان مستوى ثالث'; $lang['qb_h4'] = 'عنوان مستوى رابع'; $lang['qb_h5'] = 'عنوان مستوى خامس'; +$lang['qb_h'] = 'الترويسة'; +$lang['qb_hs'] = 'حدد الترويسة'; +$lang['qb_hplus'] = 'ترويسة أعلى'; +$lang['qb_hminus'] = 'ترويسة أخفض'; +$lang['qb_hequal'] = 'ترويسة بنفس المستوى'; $lang['qb_link'] = 'رابط داخلي'; $lang['qb_extlink'] = 'رابط خارجي'; $lang['qb_hr'] = 'سطر أفقي'; @@ -188,6 +193,7 @@ $lang['qb_media'] = 'إضافة صور و ملفات أخرى'; $lang['qb_sig'] = 'أضف توقيعك'; $lang['qb_smileys'] = 'الابتسامات'; $lang['qb_chars'] = 'محارف خاصة'; +$lang['upperns'] = 'انتقل للنطاق الأب'; $lang['admin_register'] = 'إضافة مشترك جديد'; $lang['metaedit'] = 'تحرير البيانات الشمولية '; $lang['metasaveerr'] = 'فشلت عملية كتابة البيانات الشمولية'; @@ -203,6 +209,21 @@ $lang['img_copyr'] = 'حقوق النسخ'; $lang['img_format'] = 'صيغ رسومية'; $lang['img_camera'] = 'آلة التصوير'; $lang['img_keywords'] = 'كلمات مفتاحية'; +$lang['subscr_subscribe_success'] = 'اضيف %s لقائمة اشتراك %s'; +$lang['subscr_subscribe_error'] = 'خطأ في إضافة %s لقائمة اشتراك %s'; +$lang['subscr_subscribe_noaddress'] = 'ليس هناك عنوان مرتبط بدخولك، لا يمكن اضافتك لقائمة الاشتراك'; +$lang['subscr_unsubscribe_success'] = 'أزيل %s من قائمة اشتراك %s'; +$lang['subscr_unsubscribe_error'] = 'خطأ في إزالة %s من قائمة اشتراك %s'; +$lang['subscr_already_subscribed'] = '%s مشترك مسبقا في %s'; +$lang['subscr_not_subscribed'] = '%s ليس مشتركا في %s'; +$lang['subscr_m_not_subscribed'] = 'لست مشتركا حاليا بالصفحة او النطاق الحاليين'; +$lang['subscr_m_new_header'] = 'أضف اشتراكا'; +$lang['subscr_m_current_header'] = 'الاشتراكات الحالية'; +$lang['subscr_m_unsubscribe'] = 'ألغ الاشتراك'; +$lang['subscr_m_subscribe'] = 'اشترك'; +$lang['subscr_m_receive'] = 'استقبل'; +$lang['subscr_style_every'] = 'بريدا على كل تغيير'; +$lang['subscr_style_list'] = 'قائمة بالصفحات المتغيرة منذ آخر بريد'; $lang['authmodfailed'] = 'إعدادات تصريح فاسدة، يرجى مراسلة المدير.'; $lang['authtempfail'] = 'تصريح المشترك غير متوفر مؤقتاً، إن استمرت هذه الحالة يرجى مراسلة المدير'; $lang['i_chooselang'] = 'اختر لغتك'; @@ -235,11 +256,27 @@ $lang['i_pol0'] = 'ويكي مفتوحة؛ أي القراءة و $lang['i_pol1'] = 'ويكي عامة؛ أي القراءة للجميع ولكن الكتابة والتحميل للمشتركين المسجلين فقط'; $lang['i_pol2'] = 'ويكي مغلقة؛ أي القراءة والكتابة والتحميل للمشتركين المسجلين فقط'; $lang['i_retry'] = 'إعادة المحاولة'; +$lang['mu_intro'] = 'هنا يمكنك رفع ملفات متعددة في وقت واحد. انقر على زر استعرض لاضافتهم إلى الطابور. انقر ارفع عند الانتهاء.'; $lang['mu_gridname'] = 'اسم الملف'; $lang['mu_gridsize'] = 'الحجم'; $lang['mu_gridstat'] = 'الحالة'; +$lang['mu_namespace'] = 'نطاق'; +$lang['mu_browse'] = 'استعرض'; $lang['mu_toobig'] = 'كبير جدا'; $lang['mu_ready'] = 'جاهز للرفع'; $lang['mu_done'] = 'اكتمل'; $lang['mu_fail'] = 'فشل'; +$lang['mu_authfail'] = 'انتهت الجلسة'; +$lang['mu_progress'] = 'رُفع @PCT@% '; +$lang['mu_filetypes'] = 'انواع الملفات المسموحة'; $lang['mu_info'] = 'تم رفع الملفات'; +$lang['mu_lasterr'] = 'آخر خطأ:'; +$lang['recent_global'] = 'انت تراقب حاليا التغييرات داخل نطاق %s. يمكنك أيضا عرض أحدث تغييرات الويكي كلها.'; +$lang['years'] = '%d سنة مضت'; +$lang['months'] = '%d شهرا مضى'; +$lang['weeks'] = '%d اسبوعا مضى'; +$lang['days'] = '%d يوما مضى'; +$lang['hours'] = '%d ساعة مضت'; +$lang['minutes'] = '%d دقيقة مضت'; +$lang['seconds'] = '%d ثانية مضت'; +$lang['wordblock'] = 'لم تحفظ تغييراتك لاحتوائها على نص ممنوع )غثاء('; diff --git a/inc/lang/ar/subscr_digest.txt b/inc/lang/ar/subscr_digest.txt new file mode 100644 index 000000000..8d6e731cf --- /dev/null +++ b/inc/lang/ar/subscr_digest.txt @@ -0,0 +1 @@ +مرحبا! \ No newline at end of file -- cgit v1.2.3 From 7431da04d6ff5e8642bdcc26da5f03fe5dbbf33f Mon Sep 17 00:00:00 2001 From: Arne Pelka Date: Sun, 18 Apr 2010 13:09:20 +0200 Subject: German language update --- inc/lang/de/lang.php | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'inc') diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index 2ffe8af99..91bdcab0a 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -103,24 +103,8 @@ $lang['txt_overwrt'] = 'Bestehende Datei überschreiben'; $lang['lockedby'] = 'Momentan gesperrt von'; $lang['lockexpire'] = 'Sperre läuft ab am'; $lang['willexpire'] = 'Die Sperre zur Bearbeitung dieser Seite läuft in einer Minute ab.\nUm Bearbeitungskonflikte zu vermeiden, sollten Sie sie durch einen Klick auf den Vorschau-Knopf verlängern.'; -$lang['js']['notsavedyet'] = "Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?"; -$lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; -$lang['nothingfound'] = 'Nichts gefunden.'; -$lang['mediaselect'] = 'Dateiauswahl'; -$lang['fileupload'] = 'Datei hochladen'; -$lang['uploadsucc'] = 'Datei wurde erfolgreich hochgeladen'; -$lang['uploadfail'] = 'Hochladen fehlgeschlagen. Keine Berechtigung?'; -$lang['uploadwrong'] = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.'; -$lang['uploadexist'] = 'Datei existiert bereits. Keine Änderungen vorgenommen.'; -$lang['uploadbadcontent'] = 'Die hochgeladenen Daten stimmen nicht mit der Dateiendung %s überein.'; -$lang['uploadspam'] = 'Hochladen verweigert: Treffer auf der Spamliste.'; -$lang['uploadxss'] = 'Hochladen verweigert: Daten scheinen Schadcode zu enthalten.'; -$lang['uploadsize'] = 'Die hochgeladene Datei war zu groß. (max. %s)'; -$lang['deletesucc'] = 'Die Datei "%s" wurde gelöscht.'; -$lang['deletefail'] = '"%s" konnte nicht gelöscht werden - prüfen Sie die Berechtigungen.'; -$lang['mediainuse'] = 'Die Datei "%s" wurde nicht gelöscht - sie wird noch verwendet.'; -$lang['namespaces'] = 'Namensräume'; -$lang['mediafiles'] = 'Vorhandene Dateien in'; +$lang['js']['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren! +Weitermachen?'; $lang['js']['searchmedia'] = 'Suche Dateien'; $lang['js']['keepopen'] = 'Fenster nach Auswahl nicht schließen'; $lang['js']['hidedetails'] = 'Details ausblenden'; @@ -142,8 +126,8 @@ $lang['js']['mediadirect'] = 'Direktlink zum Original'; $lang['js']['medianolnk'] = 'Kein Link'; $lang['js']['medianolink'] = 'Bild nicht verlinken'; $lang['js']['medialeft'] = 'Das Bild links anordnen.'; -$lang['js']['mediaright'] = 'Das Bild in der Mitte anordnen.'; -$lang['js']['mediacenter'] = 'Das Bild rechts anordnen.'; +$lang['js']['mediaright'] = 'Das Bild rechts anordnen.'; +$lang['js']['mediacenter'] = 'Das Bild in der Mitte anordnen.'; $lang['js']['medianoalign'] = 'Keine Anordnung benutzen.'; $lang['js']['nosmblinks'] = 'Das Verlinken von Windows-Freigaben funktioniert nur im Microsoft Internet Explorer. Der Link kann jedoch durch Kopieren und Einfügen verwendet werden.'; @@ -151,6 +135,23 @@ $lang['js']['linkwiz'] = 'Link-Assistent'; $lang['js']['linkto'] = 'Link nach:'; $lang['js']['del_confirm'] = 'Eintrag wirklich löschen?'; $lang['js']['mu_btn'] = 'Mehrere Dateien gleichzeitig hochladen'; +$lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; +$lang['nothingfound'] = 'Nichts gefunden.'; +$lang['mediaselect'] = 'Dateiauswahl'; +$lang['fileupload'] = 'Datei hochladen'; +$lang['uploadsucc'] = 'Datei wurde erfolgreich hochgeladen'; +$lang['uploadfail'] = 'Hochladen fehlgeschlagen. Keine Berechtigung?'; +$lang['uploadwrong'] = 'Hochladen verweigert. Diese Dateiendung ist nicht erlaubt.'; +$lang['uploadexist'] = 'Datei existiert bereits. Keine Änderungen vorgenommen.'; +$lang['uploadbadcontent'] = 'Die hochgeladenen Daten stimmen nicht mit der Dateiendung %s überein.'; +$lang['uploadspam'] = 'Hochladen verweigert: Treffer auf der Spamliste.'; +$lang['uploadxss'] = 'Hochladen verweigert: Daten scheinen Schadcode zu enthalten.'; +$lang['uploadsize'] = 'Die hochgeladene Datei war zu groß. (max. %s)'; +$lang['deletesucc'] = 'Die Datei "%s" wurde gelöscht.'; +$lang['deletefail'] = '"%s" konnte nicht gelöscht werden - prüfen Sie die Berechtigungen.'; +$lang['mediainuse'] = 'Die Datei "%s" wurde nicht gelöscht - sie wird noch verwendet.'; +$lang['namespaces'] = 'Namensräume'; +$lang['mediafiles'] = 'Vorhandene Dateien in'; $lang['mediausage'] = 'Syntax zum Verwenden dieser Datei:'; $lang['mediaview'] = 'Originaldatei öffnen'; $lang['mediaroot'] = 'Wurzel'; -- cgit v1.2.3 From 0d9c4a0b2a392fa4eff32664d37fea6b2d528060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20Wid=C5=82a?= Date: Sun, 18 Apr 2010 13:10:07 +0200 Subject: Polish language update --- inc/lang/pl/lang.php | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) (limited to 'inc') diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 0f8e8bb9a..0fac281f8 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -10,6 +10,7 @@ * @author sleshek@wp.pl * @author Leszek Stachowski * @author maros + * @author Grzegorz Widła */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -96,24 +97,8 @@ $lang['txt_overwrt'] = 'Nadpisać istniejący plik?'; $lang['lockedby'] = 'Aktualnie zablokowane przez'; $lang['lockexpire'] = 'Blokada wygasa'; $lang['willexpire'] = 'Za minutę Twoja blokada tej strony wygaśnie.\nW celu uniknięcia konfliktów wyświetl podgląd aby odnowić blokadę.'; -$lang['js']['notsavedyet'] = "Nie zapisane zmiany zostaną utracone.\nCzy na pewno kontynuować?"; -$lang['rssfailed'] = 'Wystąpił błąd przy pobieraniu tych danych: '; -$lang['nothingfound'] = 'Nic nie znaleziono.'; -$lang['mediaselect'] = 'Wysyłanie pliku'; -$lang['fileupload'] = 'Wysyłanie pliku'; -$lang['uploadsucc'] = 'Wysyłanie powiodło się!'; -$lang['uploadfail'] = 'Błąd wysyłania pliku. Czy prawa do katalogów są poprawne?'; -$lang['uploadwrong'] = 'Wysyłanie zabronione. Nie można wysłać plików z takim rozszerzeniem'; -$lang['uploadexist'] = 'Plik już istnieje, nie wykonano operacji.'; -$lang['uploadbadcontent'] = 'Typ pliku "%s" nie odpowiadał jego rozszerzeniu.'; -$lang['uploadspam'] = 'Plik zablokowany przez filtr antyspamowy.'; -$lang['uploadxss'] = 'Plik zablokowany ze względu na podejrzaną zawartość.'; -$lang['uploadsize'] = 'Plik jest za duży (maksymalny rozmiar %s)'; -$lang['deletesucc'] = 'Plik "%s" został usunięty.'; -$lang['deletefail'] = 'Plik "%s" nie został usunięty, sprawdź uprawnienia.'; -$lang['mediainuse'] = 'Plik "%s" nie został usunięty, ponieważ jest używany.'; -$lang['namespaces'] = 'Katalogi'; -$lang['mediafiles'] = 'Dostępne pliki'; +$lang['js']['notsavedyet'] = 'Nie zapisane zmiany zostaną utracone. +Czy na pewno kontynuować?'; $lang['js']['searchmedia'] = 'Szukaj plików'; $lang['js']['keepopen'] = 'Nie zamykaj okna po wyborze'; $lang['js']['hidedetails'] = 'Ukryj szczegóły'; @@ -144,6 +129,23 @@ $lang['js']['linkwiz'] = 'Tworzenie odnośników'; $lang['js']['linkto'] = 'Link do'; $lang['js']['del_confirm'] = 'Czy na pewno usunąć?'; $lang['js']['mu_btn'] = 'Wyślij wiele plików na raz'; +$lang['rssfailed'] = 'Wystąpił błąd przy pobieraniu tych danych: '; +$lang['nothingfound'] = 'Nic nie znaleziono.'; +$lang['mediaselect'] = 'Wysyłanie pliku'; +$lang['fileupload'] = 'Wysyłanie pliku'; +$lang['uploadsucc'] = 'Wysyłanie powiodło się!'; +$lang['uploadfail'] = 'Błąd wysyłania pliku. Czy prawa do katalogów są poprawne?'; +$lang['uploadwrong'] = 'Wysyłanie zabronione. Nie można wysłać plików z takim rozszerzeniem'; +$lang['uploadexist'] = 'Plik już istnieje, nie wykonano operacji.'; +$lang['uploadbadcontent'] = 'Typ pliku "%s" nie odpowiadał jego rozszerzeniu.'; +$lang['uploadspam'] = 'Plik zablokowany przez filtr antyspamowy.'; +$lang['uploadxss'] = 'Plik zablokowany ze względu na podejrzaną zawartość.'; +$lang['uploadsize'] = 'Plik jest za duży (maksymalny rozmiar %s)'; +$lang['deletesucc'] = 'Plik "%s" został usunięty.'; +$lang['deletefail'] = 'Plik "%s" nie został usunięty, sprawdź uprawnienia.'; +$lang['mediainuse'] = 'Plik "%s" nie został usunięty, ponieważ jest używany.'; +$lang['namespaces'] = 'Katalogi'; +$lang['mediafiles'] = 'Dostępne pliki'; $lang['mediausage'] = 'Użyj następującej składni w odnośniku do tego pliku:'; $lang['mediaview'] = 'Pokaż oryginalny plik'; $lang['mediaroot'] = 'główny'; -- cgit v1.2.3 From 77e606973fc4a1066351f7c0537e326e86a34cf6 Mon Sep 17 00:00:00 2001 From: Usama Akkad Date: Sun, 18 Apr 2010 13:13:49 +0200 Subject: Arabic language update --- inc/lang/ar/adminplugins.txt | 1 + inc/lang/ar/install.html | 12 ++++++++++++ inc/lang/ar/lang.php | 3 +++ inc/lang/ar/registermail.txt | 14 ++++++++++++++ inc/lang/ar/subscr_form.txt | 3 +++ inc/lang/ar/subscr_list.txt | 17 +++++++++++++++++ inc/lang/ar/subscr_single.txt | 23 +++++++++++++++++++++++ inc/lang/ar/uploadmail.txt | 14 ++++++++++++++ 8 files changed, 87 insertions(+) create mode 100644 inc/lang/ar/adminplugins.txt create mode 100644 inc/lang/ar/install.html create mode 100644 inc/lang/ar/registermail.txt create mode 100644 inc/lang/ar/subscr_form.txt create mode 100644 inc/lang/ar/subscr_list.txt create mode 100644 inc/lang/ar/subscr_single.txt create mode 100644 inc/lang/ar/uploadmail.txt (limited to 'inc') diff --git a/inc/lang/ar/adminplugins.txt b/inc/lang/ar/adminplugins.txt new file mode 100644 index 000000000..44790a04b --- /dev/null +++ b/inc/lang/ar/adminplugins.txt @@ -0,0 +1 @@ +===== إضافات إضافية ===== \ No newline at end of file diff --git a/inc/lang/ar/install.html b/inc/lang/ar/install.html new file mode 100644 index 000000000..1daf507c5 --- /dev/null +++ b/inc/lang/ar/install.html @@ -0,0 +1,12 @@ +

تساعد هذه الصفحة في التثبيت والإعداد الأوليين ل دوكو ويكي. مزيد من المعلومات عن هذا المثبت في +صفحة التوثيق الخاصة به.

+ +

دوكو ويكي تستخدم ملفات عادية لتخزين الصفحات و المعلومات المرتبطة بها (مثل. الصور , وفهارس البحث, والنسخ القديمة, إلخ). لكي تعمل بنجاح دوكو ويكي يجب ان يكون لديها اذن بالكتابة على المجلدات التي تحوي هذه الملفات. هذا المثبت غير قادر على اعداد اذونات المجلدات. عادة يجب عمل هذا مباشرة باستخدام أمر في محث الاوامر أو إن كنت تستخدم استضافة، عن طريقة FTP في لوحة تحكم الاستضافة (مثل. cPanel).

+ +

سيُعد هذا المثبت اعدادات دوكو ويكي ل +ACL, الذي سيسمح للمدير بالولوج و الوصول لقائمة إدارة دوكو ويكي لتثبيت الإضافات، وإدارة المستخدمين، و التحكم بالوصول لصفحات الويكي، وتعديل الاعدادات. +ليس مطلوبا لأجل عمل دوكو ويكي, لكنه سيجعل دوكو ويكي أسهل على المدير.

+ +

المستخدمين الخبراء و المستخدمين مع متطلبات خاصة عليهم استخدام هذا الرابط لتفاصيل تتعلق ب +توجيهات التثبيتضبط الإعدادات.

\ No newline at end of file diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index 201cc16c5..fcf26bf6a 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -60,6 +60,7 @@ $lang['profile'] = 'الملف الشخصي'; $lang['badlogin'] = 'عذرا، اسم المشترك أو كلمة المرور غير صحيحة'; $lang['minoredit'] = 'تعديلات طفيفة'; $lang['draftdate'] = 'تشغيل حفظ المسوّدة آلياً'; +$lang['nosecedit'] = 'غُيرت الصفحة في هذه الأثناء، معلومات الفقرة اصبحت قديمة. حُمُلت كل الصفحة بدلا.'; $lang['regmissing'] = 'عذرا، يجب ملء جميع الخانات'; $lang['reguexists'] = 'عذرا، يوجد مشترك بنفس الاسم'; $lang['regsuccess'] = 'تم تسجيل المشترك و أرسلت كلمة المرور عبر البريد الإلكتروني'; @@ -167,6 +168,7 @@ $lang['noflash'] = 'تحتاج إلى_pattern[$item] = '/'.str_replace('/','\/',$pattern).'/i'; // allow regex characters + } + } } //Setup VIM: ex: et ts=4 enc=utf-8 : -- cgit v1.2.3 From ba29aad72a17a6a9c34afcb2adc13f2a7f9e4e17 Mon Sep 17 00:00:00 2001 From: Dominik Eckelmann Date: Thu, 29 Apr 2010 11:51:11 +0200 Subject: gather additional information from ad backend --- inc/auth/ad.class.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/auth/ad.class.php b/inc/auth/ad.class.php index e60598df6..a52f5f8b2 100644 --- a/inc/auth/ad.class.php +++ b/inc/auth/ad.class.php @@ -26,6 +26,10 @@ * $conf['auth']['ad']['use_ssl'] = 1; * $conf['auth']['ad']['debug'] = 1; * + * // get additional informations to the userinfo array + * // add a list of comma separated ldap contact fields. + * $conf['auth']['ad']['additional'] = 'field1,field2'; + * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author James Van Lommel * @link http://www.nosq.com/blog/2005/08/ldap-activedirectory-and-dokuwiki/ @@ -47,6 +51,12 @@ class auth_ad extends auth_basic { global $conf; $this->cnf = $conf['auth']['ad']; + // additional information fields + if (isset($this->cnf['additional'])) { + $this->cnf['additional'] = str_replace(' ', '', $this->cnf['additional']); + $this->cnf['additional'] = explode(',', $this->cnf['additional']); + } else $this->cnf['additional'] = array(); + // ldap extension is needed if (!function_exists('ldap_connect')) { if ($this->cnf['debug']) @@ -131,15 +141,27 @@ class auth_ad extends auth_basic { global $conf; if(!$this->_init()) return false; - //get info for given user - $result = $this->adldap->user_info($user); + $fields = array('mail','displayname','samaccountname'); + + // add additional fields to read + $fields = array_merge($fields, $this->cnf['additional']); + $fields = array_unique($fields); + //get info for given user + $result = $this->adldap->user_info($user, $fields); //general user info $info['name'] = $result[0]['displayname'][0]; $info['mail'] = $result[0]['mail'][0]; $info['uid'] = $result[0]['samaccountname'][0]; $info['dn'] = $result[0]['dn']; + // additional informations + foreach ($this->cnf['additional'] as $field) { + if (isset($result[0][strtolower($field)])) { + $info[$field] = $result[0][strtolower($field)][0]; + } + } + // handle ActiveDirectory memberOf $info['grps'] = $this->adldap->user_groups($user,(bool) $this->opts['recursive_groups']); -- cgit v1.2.3 From 6b8f02cfe58b224607e5479f8469dde16c3169ac Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 4 May 2010 12:36:57 +0200 Subject: Show subscription time on management page --- inc/lang/en/lang.php | 4 ++-- inc/template.php | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 2dfed59dc..4a96e373e 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -247,8 +247,8 @@ $lang['subscr_m_unsubscribe'] = 'Unsubscribe'; $lang['subscr_m_subscribe'] = 'Subscribe'; $lang['subscr_m_receive'] = 'Receive'; $lang['subscr_style_every'] = 'email on every change'; -$lang['subscr_style_digest'] = 'digest email of changes for each page'; -$lang['subscr_style_list'] = 'list of changed pages since last email'; +$lang['subscr_style_digest'] = 'digest email of changes for each page (every %.2f days)'; +$lang['subscr_style_list'] = 'list of changed pages since last email (every %.2f days)'; /* auth.class language support */ diff --git a/inc/template.php b/inc/template.php index 3eda2f4af..c1e3e76ab 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1347,6 +1347,7 @@ function tpl_subscribe() { global $INFO; global $ID; global $lang; + global $conf; echo p_locale_xhtml('subscr_form'); echo '

' . $lang['subscr_m_current_header'] . '

'; @@ -1387,10 +1388,11 @@ function tpl_subscribe() { $ID => ''.prettyprint_id($ID).'', $ns => ''.prettyprint_id($ns).'', ); + $stime_days = $conf['subscribe_time']/60/60/24; $styles = array( 'every' => $lang['subscr_style_every'], - 'digest' => $lang['subscr_style_digest'], - 'list' => $lang['subscr_style_list'], + 'digest' => sprintf($lang['subscr_style_digest'], $stime_days), + 'list' => sprintf($lang['subscr_style_list'], $stime_days), ); $form = new Doku_Form(array('id' => 'subscribe__form')); -- cgit v1.2.3 From 3e0c7aa328ac721b3bcf17822f9ed3659ad93d14 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 4 May 2010 12:07:35 +0200 Subject: Add locking for indexer-based notifications --- inc/subscription.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'inc') diff --git a/inc/subscription.php b/inc/subscription.php index e5938d9bd..ce5da4cd4 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -9,6 +9,8 @@ * - subscription_set * - get_info_subscribed * - subscription_addresslist + * - subscription_lock + * - subscription_unlock * * @author Adrian Lang * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) @@ -36,6 +38,32 @@ function subscription_filename($id) { return metaFN($meta_froot, $meta_fname); } +/** + * Lock subscription info for an ID + * + * @param string $id The target page or namespace, specified by id; Namespaces + * are identified by appending a colon. + * + * @author Adrian Lang + */ +function subscription_lock($id) { + $lockf = subscription_filename($id) . '.lock'; + return !file_exists($lockf) && touch($lockf); +} + +/** + * Unlock subscription info for an ID + * + * @param string $id The target page or namespace, specified by id; Namespaces + * are identified by appending a colon. + * + * @author Adrian Lang + */ +function subscription_unlock($id) { + $lockf = subscription_filename($id) . '.lock'; + return file_exists($lockf) && unlink($lockf); +} + /** * Set subscription information * -- cgit v1.2.3 From 5f5509e5d91f69877aa6bd3b1cba15267e539fe2 Mon Sep 17 00:00:00 2001 From: Usama Akkad Date: Thu, 6 May 2010 23:13:22 +0200 Subject: Arabic language update --- inc/lang/ar/lang.php | 129 ++++++++++++++++++++++++++------------------------- 1 file changed, 65 insertions(+), 64 deletions(-) (limited to 'inc') diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index fcf26bf6a..30095347e 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -14,88 +14,89 @@ $lang['doublequoteclosing'] = '”'; $lang['singlequoteopening'] = '‘'; $lang['singlequoteclosing'] = '’'; $lang['apostrophe'] = '؛'; -$lang['btn_edit'] = 'تحرير هذه الصفحة'; -$lang['btn_source'] = 'عرض مصدر الصفحة'; -$lang['btn_show'] = 'عرض الصفحة'; -$lang['btn_create'] = 'إنشاء هذه الصفحة'; -$lang['btn_search'] = 'بحث'; -$lang['btn_save'] = 'حفظ'; -$lang['btn_preview'] = 'استعراض'; -$lang['btn_top'] = 'لأعلى'; +$lang['btn_edit'] = 'حرر هذه الصفحة'; +$lang['btn_source'] = 'اعرض مصدر الصفحة'; +$lang['btn_show'] = 'اعرض الصفحة'; +$lang['btn_create'] = 'أنشئ هذه الصفحة'; +$lang['btn_search'] = 'ابحث'; +$lang['btn_save'] = 'احفظ'; +$lang['btn_preview'] = 'عاين'; +$lang['btn_top'] = 'ارجع للأعلى'; $lang['btn_newer'] = '<< أحدث'; $lang['btn_older'] = 'أقدم >>'; $lang['btn_revs'] = 'نسخ قديمة'; -$lang['btn_recent'] = 'أحدث التعديلات'; -$lang['btn_upload'] = 'تحميل'; -$lang['btn_cancel'] = 'إلغاء'; +$lang['btn_recent'] = 'أحدث التغييرات'; +$lang['btn_upload'] = 'ارفع'; +$lang['btn_cancel'] = 'ألغ'; $lang['btn_index'] = 'فهرس'; -$lang['btn_secedit'] = 'تحرير'; -$lang['btn_login'] = 'دخول'; -$lang['btn_logout'] = 'خروج'; +$lang['btn_secedit'] = 'حرر'; +$lang['btn_login'] = 'لج'; +$lang['btn_logout'] = 'اخرج'; $lang['btn_admin'] = 'المدير'; -$lang['btn_update'] = 'تحديث'; -$lang['btn_delete'] = 'حذف'; -$lang['btn_back'] = 'رجوع'; +$lang['btn_update'] = 'حدّث'; +$lang['btn_delete'] = 'احذف'; +$lang['btn_back'] = 'ارجع'; $lang['btn_backlink'] = 'ارتباطات'; -$lang['btn_backtomedia'] = 'رجوع إلى اختيار ملف الوسائط'; -$lang['btn_subscribe'] = 'اشترك في التعديلات'; -$lang['btn_profile'] = 'تحديث الملف الشخصي'; -$lang['btn_reset'] = 'تفريغ'; -$lang['btn_resendpwd'] = 'إرسال كلمة مرور جديدة'; -$lang['btn_draft'] = 'تحرير المسوّدة'; -$lang['btn_recover'] = 'استعادة المسوّدة'; -$lang['btn_draftdel'] = 'حذف المسوّدة'; -$lang['btn_revert'] = 'إعادة'; -$lang['loggedinas'] = 'دخول باسم'; -$lang['user'] = 'اسم المشترك'; -$lang['pass'] = 'كلمة المرور'; -$lang['newpass'] = 'كلمة مرور جديدة'; -$lang['oldpass'] = 'تأكيد كلمة المرور الحالية'; +$lang['btn_backtomedia'] = 'ارجع إلى اختيار ملف الوسائط'; +$lang['btn_subscribe'] = 'ادر الاشتراكات'; +$lang['btn_profile'] = 'حدث الملف الشخصي'; +$lang['btn_reset'] = 'صفّر'; +$lang['btn_resendpwd'] = 'ارسل كلمة سر جديدة'; +$lang['btn_draft'] = 'حرر المسودة'; +$lang['btn_recover'] = 'استرجع المسودة'; +$lang['btn_draftdel'] = 'احذف المسوّدة'; +$lang['btn_revert'] = 'استعد +'; +$lang['loggedinas'] = 'داخل باسم'; +$lang['user'] = 'اسم المستخدم'; +$lang['pass'] = 'كلمة السر'; +$lang['newpass'] = 'كلمة سر جديدة'; +$lang['oldpass'] = 'أكد كلمة السر الحالية'; $lang['passchk'] = 'مرة أخرى'; $lang['remember'] = 'تذكرني'; $lang['fullname'] = 'الاسم الكامل'; $lang['email'] = 'البريد الإلكتروني'; -$lang['register'] = 'تسجيل'; +$lang['register'] = 'سجّل'; $lang['profile'] = 'الملف الشخصي'; -$lang['badlogin'] = 'عذرا، اسم المشترك أو كلمة المرور غير صحيحة'; +$lang['badlogin'] = 'عذرا، اسم المشترك أو كلمة السر غير صحيحة'; $lang['minoredit'] = 'تعديلات طفيفة'; -$lang['draftdate'] = 'تشغيل حفظ المسوّدة آلياً'; +$lang['draftdate'] = 'حفظ المسودات تلقائيا مشغل'; $lang['nosecedit'] = 'غُيرت الصفحة في هذه الأثناء، معلومات الفقرة اصبحت قديمة. حُمُلت كل الصفحة بدلا.'; -$lang['regmissing'] = 'عذرا، يجب ملء جميع الخانات'; -$lang['reguexists'] = 'عذرا، يوجد مشترك بنفس الاسم'; -$lang['regsuccess'] = 'تم تسجيل المشترك و أرسلت كلمة المرور عبر البريد الإلكتروني'; -$lang['regsuccess2'] = 'تم إنشاء المشترك'; -$lang['regmailfail'] = 'حدث خطأ فى إرسال رسالة كلمة المرور. يرجى مراسلة المدير'; -$lang['regbadmail'] = 'البريد الإلكتروني المعطى غير صحيح، إن كنت تظن الخطأ من الموقع راسل المدير'; -$lang['regbadpass'] = 'كلمتى المرور غير متطابقتين، حاول مرة أخرى'; -$lang['regpwmail'] = 'كلمة مرورك إلى دوكي ويكي'; -$lang['reghere'] = 'لست مشتركاً؟ تفضل اشترك'; +$lang['regmissing'] = 'عذرا، يجب ملء جميع الحقول'; +$lang['reguexists'] = 'عذرا، يوجد مشترك بنفس الاسم.'; +$lang['regsuccess'] = 'أنشئ المستخدم و ارسلت كلمة السر بالبريد.'; +$lang['regsuccess2'] = 'أنشئ المستخدم.'; +$lang['regmailfail'] = 'حدث خطأ فى إرسال رسالة كلمة اسرر. يرجى مراسلة المدير'; +$lang['regbadmail'] = 'يبدو البريد الإلكتروني المعطى غير صحيح، إن كنت تظن أن هذا خطأ، راسل المدير'; +$lang['regbadpass'] = 'كلمتى المرور غير متطابقتين، حاول مرة أخرى.'; +$lang['regpwmail'] = 'كلمة مرورك إلى دوكو ويكي'; +$lang['reghere'] = 'ليس لديك حساب بعد؟ احصل على واحد'; $lang['profna'] = 'هذه الويكي لا تدعم تعديل الملف الشخصي'; -$lang['profnochange'] = 'لا تغييرات، لا شيء مطلوب عمله'; -$lang['profnoempty'] = 'ليس مسموحاً ترك الاسم أو البريد الإلكتروني فارغاً'; -$lang['profchanged'] = 'تم تحديث الملف الشخصي بنجاح'; -$lang['pwdforget'] = 'نسيت كلمة المرور؟ احصل على واحدة جديدة'; -$lang['resendna'] = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور'; -$lang['resendpwd'] = 'إرسال كلمة المرور إلى'; -$lang['resendpwdmissing'] = 'عذراّ، يجب أن تملأ جميع الخانات'; -$lang['resendpwdnouser'] = 'عذراً، لدينا هذا المشترك في قاعدة بياناتنا'; -$lang['resendpwdbadauth'] = 'عذراً، رمز التفعيل هذا غير صحيح. نأكد أنك استخدمت كامل وصلة التأكيد'; -$lang['resendpwdconfirm'] = 'تم إرسال وصلة تأكيد إلى بريدك الإلكتروني'; -$lang['resendpwdsuccess'] = 'كلمة مرورك الجديدة تم إرسالها عبر البريد الإلكتروني'; +$lang['profnochange'] = 'لا تغييرات، لا شيء ليُعمل.'; +$lang['profnoempty'] = 'غير مسموح باسم مستخدم أو بريد فارغ.'; +$lang['profchanged'] = 'حُدث الملف الشخصي للمستخدم بنجاح.'; +$lang['pwdforget'] = 'أنسيت كلمة السر؟ احصل على واحدة جديدة'; +$lang['resendna'] = 'هذه الويكي لا تدعم إعادة إرسال كلمة المرور.'; +$lang['resendpwd'] = 'إرسال كلمة مرور'; +$lang['resendpwdmissing'] = 'عذراّ، يجب أن تملأ كل الحقول.'; +$lang['resendpwdnouser'] = 'عذراً، لم نجد المستخدم هذا في قاعدة بياناتنا.'; +$lang['resendpwdbadauth'] = 'عذراً، رمز التفعيل هذا غير صحيح. نأكد من استخدامك كامل وصلة التأكيد.'; +$lang['resendpwdconfirm'] = 'أرسل رابط التأكيد بواسطة البريد.'; +$lang['resendpwdsuccess'] = 'كلمة السرالجديدة إرسلت عبر البريد.'; $lang['license'] = 'مالم يشر لخلاف ذلك، فإن المحتوى على هذه الويكي مرخص وفق الرخصة التالية:'; $lang['licenseok'] = 'لاحظ: بتحرير هذه الصفحة أنت توافق على ترخيص محتواها تحت الرخصة التالية:'; -$lang['searchmedia'] = 'البحث عن اسم الملف : '; +$lang['searchmedia'] = 'ابحث في اسماء الملفات:'; $lang['searchmedia_in'] = 'ابحث في %s'; -$lang['txt_upload'] = 'اختر ملفاً للتحميل'; -$lang['txt_filename'] = 'تحميل باسم - اختياري'; -$lang['txt_overwrt'] = 'الكتابة على ملف موجود بنفس الاسم مسموحة'; -$lang['lockedby'] = 'حالياً مقفول بواسطة'; -$lang['lockexpire'] = 'سينتهي القفل في'; -$lang['willexpire'] = 'سينتهي قفل تحرير هذه الصفحه خلال دقيقة. لتجنب التعارض استخدم زر استعراض لبدأ القفل من جديد'; -$lang['js']['notsavedyet'] = 'التعديلات التي لم تحفظ ستفقد. أموافق ؟'; -$lang['js']['searchmedia'] = 'البحث عن الملفات'; +$lang['txt_upload'] = 'اختر ملفاً للرفع'; +$lang['txt_filename'] = 'رفع كـ (اختياري)'; +$lang['txt_overwrt'] = 'اكتب على ملف موجود'; +$lang['lockedby'] = 'حالياً مقفل بواسطة'; +$lang['lockexpire'] = 'ينتهي القفل في'; +$lang['willexpire'] = 'سينتهي قفل تحرير هذه الصفحه خلال دقيقة.\nلتجنب التعارض استخدم زر المعاينة لتصفير مؤقت القفل.'; +$lang['js']['notsavedyet'] = 'التعديلات غير المحفوظة ستفقد. اكمل فعلا؟'; +$lang['js']['searchmedia'] = 'ابحث عن ملفات'; $lang['js']['keepopen'] = 'أبقي النافذة مفتوحة أثناء الاختيار'; -$lang['js']['hidedetails'] = 'إخفاء التفاصيل'; +$lang['js']['hidedetails'] = 'أخف التفاصيل'; $lang['js']['mediatitle'] = 'اعدادات الرابط'; $lang['js']['mediadisplay'] = 'نوع الرابط'; $lang['js']['mediaalign'] = 'المحاذاة'; -- cgit v1.2.3 From 11c78c94cd43872c1fa380e70027d33226174aba Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 8 May 2010 14:31:57 +0200 Subject: correctly preview no text FS#1945 --- inc/html.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 4a4cf2739..c4eb62bc8 100644 --- a/inc/html.php +++ b/inc/html.php @@ -217,7 +217,7 @@ function html_btn($name,$id,$akey,$params,$method='get',$tooltip=''){ * * @author Andreas Gohr */ -function html_show($txt=''){ +function html_show($txt=null){ global $ID; global $REV; global $HIGH; @@ -229,7 +229,7 @@ function html_show($txt=''){ $secedit = true; } - if ($txt){ + if (!is_null($txt)){ //PreviewHeader echo '
'; echo p_locale_xhtml('preview'); -- cgit v1.2.3 From 59cecab437669b6edeccb87d82e5aa2024c82b89 Mon Sep 17 00:00:00 2001 From: Otto Vainio Date: Thu, 13 May 2010 20:20:05 +0200 Subject: Finnish language update --- inc/lang/fi/lang.php | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) (limited to 'inc') diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index a139a9f19..2ccaaab89 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -94,7 +94,38 @@ $lang['txt_overwrt'] = 'Ylikirjoita olemassa oleva'; $lang['lockedby'] = 'Tällä hetkellä tiedoston on lukinnut'; $lang['lockexpire'] = 'Lukitus päättyy'; $lang['willexpire'] = 'Lukituksesi tämän sivun muokkaukseen päättyy minuutin kuluttua.\nRistiriitojen välttämiseksi paina esikatselu-nappia nollataksesi lukitusajan.'; -$lang['js']['notsavedyet'] = "Dokumentissa on tallentamattomia muutoksia, jotka häviävät.\n Haluatko varmasti jatkaa?"; +$lang['js']['notsavedyet'] = 'Dokumentissa on tallentamattomia muutoksia, jotka häviävät. + Haluatko varmasti jatkaa?'; +$lang['js']['searchmedia'] = 'Etsi tiedostoja'; +$lang['js']['keepopen'] = 'Pidä valinnan ikkuna avoinna.'; +$lang['js']['hidedetails'] = 'Piilota yksityiskohdat'; +$lang['js']['mediatitle'] = 'Linkkien asetukset'; +$lang['js']['mediadisplay'] = 'Linkin tyyppi'; +$lang['js']['mediaalign'] = 'Tasaus'; +$lang['js']['mediasize'] = 'Kuvan koko'; +$lang['js']['mediatarget'] = 'Linkin kohde'; +$lang['js']['mediaclose'] = 'Sulje'; +$lang['js']['mediainsert'] = 'Liitä'; +$lang['js']['mediadisplayimg'] = 'Näytä kuva.'; +$lang['js']['mediadisplaylnk'] = 'Näytä vain linkki'; +$lang['js']['mediasmall'] = 'Pieni versio'; +$lang['js']['mediamedium'] = 'Keskikokoinen versio'; +$lang['js']['medialarge'] = 'Iso versio'; +$lang['js']['mediaoriginal'] = 'Alkuperäinen versio'; +$lang['js']['medialnk'] = 'Linkki tietosivuun'; +$lang['js']['mediadirect'] = 'Suora linkki alkuperäiseen'; +$lang['js']['medianolnk'] = 'Ei linkkiä'; +$lang['js']['medianolink'] = 'Älä linkitä kuvaa'; +$lang['js']['medialeft'] = 'Tasaa kuva vasemmalle.'; +$lang['js']['mediaright'] = 'Tasaa kuva oikealle.'; +$lang['js']['mediacenter'] = 'Tasaa kuva keskelle.'; +$lang['js']['medianoalign'] = 'Älä tasaa.'; +$lang['js']['nosmblinks'] = 'Linkit Windows-jakoihin toimivat vain Microsoft Internet Explorerilla. +Voit silti kopioida ja liittää linkin.'; +$lang['js']['linkwiz'] = 'Linkkivelho'; +$lang['js']['linkto'] = 'Linkki kohteeseen:'; +$lang['js']['del_confirm'] = 'Haluatko todella poistaa valitut kohteet?'; +$lang['js']['mu_btn'] = 'Lähetä useampia tiedostoja kerralla'; $lang['rssfailed'] = 'Virhe tapahtui noudettaessa tätä syötettä: '; $lang['nothingfound'] = 'Mitään ei löytynyt.'; $lang['mediaselect'] = 'Mediatiedoston valinta'; @@ -112,15 +143,6 @@ $lang['deletefail'] = 'Kohdetta "%s" poistaminen ei onnistunut - tark $lang['mediainuse'] = 'Tiedostoa "%s" ei ole poistettu - se on vielä käytössä.'; $lang['namespaces'] = 'Nimiavaruudet'; $lang['mediafiles'] = 'Tarjolla olevat tiedostot'; -$lang['js']['searchmedia'] = 'Etsi tiedostoja'; -$lang['js']['keepopen'] = 'Pidä valinnan ikkuna avoinna.'; -$lang['js']['hidedetails'] = 'Piilota yksityiskohdat'; -$lang['js']['nosmblinks'] = 'Linkit Windows-jakoihin toimivat vain Microsoft Internet Explorerilla. -Voit silti kopioida ja liittää linkin.'; -$lang['js']['linkwiz'] = 'Linkkivelho'; -$lang['js']['linkto'] = 'Linkki kohteeseen:'; -$lang['js']['del_confirm'] = 'Haluatko todella poistaa valitut kohteet?'; -$lang['js']['mu_btn'] = 'Lähetä useampia tiedostoja kerralla'; $lang['mediausage'] = 'Käytä seuraavaa merkintätapaa viittausta tehtäessä:'; $lang['mediaview'] = 'Katsele alkuperäistä tiedostoa'; $lang['mediaroot'] = 'root'; @@ -255,3 +277,4 @@ $lang['days'] = '%d päivää sitten'; $lang['hours'] = '%d tuntia sitten'; $lang['minutes'] = '%d minuuttia sitten'; $lang['seconds'] = '% sekuntia sitten'; +$lang['wordblock'] = 'Muutostasi ei talletettu, koska se sisältää estettyä tekstiä (spam).'; -- cgit v1.2.3 From 8a6e9b060334bab4d8d2ddcbdb4de32241c7f7e1 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 5 May 2010 14:47:23 +0200 Subject: Add debug message for adLDAP class construction --- inc/auth/ad.class.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'inc') diff --git a/inc/auth/ad.class.php b/inc/auth/ad.class.php index a52f5f8b2..9ae6dbbd1 100644 --- a/inc/auth/ad.class.php +++ b/inc/auth/ad.class.php @@ -260,6 +260,9 @@ class auth_ad extends auth_basic { } return true; } catch (adLDAPException $e) { + if ($this->cnf['debug']) { + msg($e->getMessage(), -1); + } $this->success = false; $this->adldap = null; } -- cgit v1.2.3 From de4d479af254512700b8aedce9c1a597880322b0 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 17 May 2010 11:05:23 +0200 Subject: Let actionOK detect auth backend capabilities --- inc/actions.php | 5 +++++ inc/confutils.php | 7 +++++++ inc/html.php | 5 ++--- 3 files changed, 14 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index a426f0276..4b5bfdb1a 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -343,6 +343,11 @@ function act_revert($act){ global $ID; global $REV; global $lang; + // FIXME $INFO['writable'] currently refers to the attic version + // global $INFO; + // if (!$INFO['writable']) { + // return 'show'; + // } // when no revision is given, delete current one // FIXME this feature is not exposed in the GUI currently diff --git a/inc/confutils.php b/inc/confutils.php index 7850682ba..0c1c0c64a 100644 --- a/inc/confutils.php +++ b/inc/confutils.php @@ -241,6 +241,7 @@ function actionOK($action){ static $disabled = null; if(is_null($disabled)){ global $conf; + global $auth; // prepare disabled actions array and handle legacy options $disabled = explode(',',$conf['disableactions']); @@ -250,6 +251,12 @@ function actionOK($action){ if(isset($conf['subscribers']) && !$conf['subscribers']) { $disabled[] = 'subscribe'; } + if (is_null($auth) || !$auth->canDo('addUser')) { + $disabled[] = 'register'; + } + if (is_null($auth) || !$auth->canDo('modPass')) { + $disabled[] = 'resendpwd'; + } $disabled = array_unique($disabled); } diff --git a/inc/html.php b/inc/html.php index c4eb62bc8..01823449e 100644 --- a/inc/html.php +++ b/inc/html.php @@ -45,7 +45,6 @@ function html_login(){ global $lang; global $conf; global $ID; - global $auth; print p_locale_xhtml('login'); print '
'.NL; @@ -61,14 +60,14 @@ function html_login(){ $form->addElement(form_makeButton('submit', '', $lang['btn_login'])); $form->endFieldset(); - if($auth && $auth->canDo('addUser') && actionOK('register')){ + if(actionOK('register')){ $form->addElement('

' . $lang['reghere'] . ': '.$lang['register'].'' . '

'); } - if ($auth && $auth->canDo('modPass') && actionOK('resendpwd')) { + if (actionOK('resendpwd')) { $form->addElement('

' . $lang['pwdforget'] . ': '.$lang['btn_resendpwd'].'' -- cgit v1.2.3 From c275533eba3389cf4c186d995947aedfff356177 Mon Sep 17 00:00:00 2001 From: Mauro Javier Giamberardino Fernandez Date: Wed, 19 May 2010 19:44:29 +0200 Subject: Spanish language update --- inc/lang/es/lang.php | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) (limited to 'inc') diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index d519ebc80..28da1dfee 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -23,6 +23,7 @@ * @author Daniel Castro Alvarado * @author Fernando J. Gómez * @author Victor Castelan + * @author Mauro Javier Giamberardino */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -109,7 +110,37 @@ $lang['txt_overwrt'] = 'Sobreescribir archivo existente'; $lang['lockedby'] = 'Actualmente bloqueado por'; $lang['lockexpire'] = 'El bloqueo expira en'; $lang['willexpire'] = 'Tu bloqueo para editar esta página expira en un minuto.\nPara evitar conflictos usa el botón previsualizar para reiniciar el contador de tiempo.'; -$lang['js']['notsavedyet'] = "Los cambios que no se han guardado se perderán.\n¿Realmente quieres continuar?"; +$lang['js']['notsavedyet'] = 'Los cambios que no se han guardado se perderán. +¿Realmente quieres continuar?'; +$lang['js']['searchmedia'] = 'Buscar archivos'; +$lang['js']['keepopen'] = 'Mantener la ventana abierta luego de seleccionar'; +$lang['js']['hidedetails'] = 'Ocultar detalles'; +$lang['js']['mediatitle'] = 'Configuración del vínculo'; +$lang['js']['mediadisplay'] = 'Tipo de vínculo'; +$lang['js']['mediaalign'] = 'Alineación'; +$lang['js']['mediasize'] = 'Tamaño de la imagen'; +$lang['js']['mediatarget'] = 'Destino del vínculo'; +$lang['js']['mediaclose'] = 'Cerrar'; +$lang['js']['mediainsert'] = 'Insertar'; +$lang['js']['mediadisplayimg'] = 'Mostrar la imagen.'; +$lang['js']['mediadisplaylnk'] = 'Mostrar solo el vínculo.'; +$lang['js']['mediasmall'] = 'Versión en tamaño pequeño'; +$lang['js']['mediamedium'] = 'Versión en tamaño medio'; +$lang['js']['medialarge'] = 'Versión en tamaño grande'; +$lang['js']['mediaoriginal'] = 'Versión original'; +$lang['js']['medialnk'] = 'Vínculo a la pagina de descripción'; +$lang['js']['mediadirect'] = 'Vínculo al original'; +$lang['js']['medianolnk'] = 'Sin vínculo'; +$lang['js']['medianolink'] = 'No vincular la imagen'; +$lang['js']['medialeft'] = 'Alinear imagen a la izquierda'; +$lang['js']['mediaright'] = 'Alinear imagen a la derecha.'; +$lang['js']['mediacenter'] = 'Alinear imagen en el centro.'; +$lang['js']['nosmblinks'] = 'El enlace a recursos compartidos de Windows sólo funciona en Microsoft Internet Explorer. +Lo que sí puedes hacer es copiar y pegar el enlace.'; +$lang['js']['linkwiz'] = 'Asistente de enlaces'; +$lang['js']['linkto'] = 'Enlazar a:'; +$lang['js']['del_confirm'] = '¿Quieres realmente borrar lo seleccionado?'; +$lang['js']['mu_btn'] = 'Subir varios archivos a la vez'; $lang['rssfailed'] = 'Se ha producido un error mientras se leían los datos de este feed: '; $lang['nothingfound'] = 'No se ha encontrado nada.'; $lang['mediaselect'] = 'Archivos Multimedia'; @@ -127,15 +158,6 @@ $lang['deletefail'] = '"%s" no pudo ser borrado; verifique los permis $lang['mediainuse'] = 'El fichero "%s" no ha sido borrado, aún está en uso.'; $lang['namespaces'] = 'Espacios de nombres'; $lang['mediafiles'] = 'Ficheros disponibles en'; -$lang['js']['searchmedia'] = 'Buscar archivos'; -$lang['js']['keepopen'] = 'Mantener la ventana abierta luego de seleccionar'; -$lang['js']['hidedetails'] = 'Ocultar detalles'; -$lang['js']['nosmblinks'] = 'El enlace a recursos compartidos de Windows sólo funciona en Microsoft Internet Explorer. -Lo que sí puedes hacer es copiar y pegar el enlace.'; -$lang['js']['linkwiz'] = 'Asistente de enlaces'; -$lang['js']['linkto'] = 'Enlazar a:'; -$lang['js']['del_confirm'] = '¿Quieres realmente borrar lo seleccionado?'; -$lang['js']['mu_btn'] = 'Subir varios archivos a la vez'; $lang['mediausage'] = 'Use la siguiente sintaxis para hacer referencia a este fichero:'; $lang['mediaview'] = 'Ver el fichero original'; $lang['mediaroot'] = 'root'; -- cgit v1.2.3 From 1468362acf130b9044c5d23a39968f4fae4e4a5a Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 26 May 2010 16:18:44 +0200 Subject: Fixing zip decompression in ZipLib.class.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch fixes a bug introduced in »code cleanup« #0b17fdc6719c24850fa7 --- inc/ZipLib.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/ZipLib.class.php b/inc/ZipLib.class.php index 09dbbd3bd..cf89a40a4 100644 --- a/inc/ZipLib.class.php +++ b/inc/ZipLib.class.php @@ -324,8 +324,8 @@ class ZipLib { $centd['comment'] = fread($zip, $data['comment_size']); } else { $centd['comment'] = ''; - $centd['entries'] = $data['entries']; } + $centd['entries'] = $data['entries']; $centd['disk_entries'] = $data['disk_entries']; $centd['offset'] = $data['offset']; $centd['disk_start'] = $data['disk_start']; -- cgit v1.2.3 From 49cbd23e619ed9827e84e333e99889027198adef Mon Sep 17 00:00:00 2001 From: Otto Vainio Date: Fri, 28 May 2010 14:19:32 +0300 Subject: php_to_byte returns invalid value if unit not set --- inc/common.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index 144f8e48c..ec27d8a85 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1324,6 +1324,9 @@ function php_to_byte($v){ case 'K': $ret *= 1024; break; + default; + $ret *= 10; + break; } return $ret; } -- cgit v1.2.3 From eb2cef78be976d583e9089dfc7de0d93d8476f3d Mon Sep 17 00:00:00 2001 From: Dominik Eckelmann Date: Tue, 1 Jun 2010 10:55:36 +0200 Subject: bugfix empty strings in untyped value tag. according to the specs a value without a type is recognised as string. This patch handles empty value tags the right way as empty String. --- inc/IXR_Library.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'inc') diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 4f8eb31c1..9c270b1ce 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -225,11 +225,9 @@ class IXR_Message { break; case 'value': // "If no type is indicated, the type is string." - if (trim($this->_currentTagContents) != '') { - $value = (string)$this->_currentTagContents; - $this->_currentTagContents = ''; - $valueFlag = true; - } + $value = (string)$this->_currentTagContents; + $this->_currentTagContents = ''; + $valueFlag = true; break; case 'boolean': $value = (boolean)trim($this->_currentTagContents); -- cgit v1.2.3 From ccee78424602b02309b2c81b3fa932bbcce1a03b Mon Sep 17 00:00:00 2001 From: Dominik Eckelmann Date: Thu, 27 May 2010 09:31:22 +0200 Subject: Changed date format to the xmlrpc spec date format --- inc/IXR_Library.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 9c270b1ce..b82952d74 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -623,7 +623,7 @@ class IXR_Date { $this->second = substr($iso, 17, 2); } function getIso() { - return $this->year.'-'.$this->month.'-'.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second; + return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second; } function getXml() { return ''.$this->getIso().''; -- cgit v1.2.3 From 5ab78106b0f9170d5e4930d0901862e4373a686f Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 9 Jun 2010 21:43:10 +0200 Subject: Make XMLRPC date parsing more flexible FS#1966 Since the specs aren't 100% clear, dates might be passed in different formats by various XMLRPC clients. This patch makes date parsing a bit more flexible. Unit tests included. --- inc/IXR_Library.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'inc') diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index b82952d74..2fb7dfe68 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -615,12 +615,14 @@ class IXR_Date { $this->second = gmdate('s', $timestamp); } function parseIso($iso) { - $this->year = substr($iso, 0, 4); - $this->month = substr($iso, 5, 2); - $this->day = substr($iso, 8, 2); - $this->hour = substr($iso, 11, 2); - $this->minute = substr($iso, 14, 2); - $this->second = substr($iso, 17, 2); + if(preg_match('/^(\d\d\d\d)-?(\d\d)-?(\d\d)([T ](\d\d):(\d\d)(:(\d\d))?)?/',$iso,$match)){ + $this->year = (int) $match[1]; + $this->month = (int) $match[2]; + $this->day = (int) $match[3]; + $this->hour = (int) $match[5]; + $this->minute = (int) $match[6]; + $this->second = (int) $match[8]; + } } function getIso() { return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second; -- cgit v1.2.3 From a0b3ecb91b6aa4b2d0c7302bbfaeb9428621cc2a Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sat, 12 Jun 2010 16:39:43 +0100 Subject: fixed license link always showing target --- inc/template.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/template.php b/inc/template.php index c1e3e76ab..85fdb67cf 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1312,7 +1312,7 @@ function tpl_license($img='badge',$imgonly=false,$return=false){ if(!$imgonly) { $out .= $lang['license']; $out .= ''; } $out .= '

'; -- cgit v1.2.3 From 0181f02104c2e7068dfe8d66353cf8502e34a379 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 13 Jun 2010 11:33:12 +0200 Subject: Store undisplayed msg's in session on redirect --- inc/common.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index ec27d8a85..25d743e0b 100644 --- a/inc/common.php +++ b/inc/common.php @@ -1464,6 +1464,14 @@ function is_mem_available($mem,$bytes=1048576){ * @author Andreas Gohr */ function send_redirect($url){ + //are there any undisplayed messages? keep them in session for display + global $MSG; + if (isset($MSG) && count($MSG) && !defined('NOSESSION')){ + //reopen session, store data and close session again + @session_start(); + $_SESSION[DOKU_COOKIE]['msg'] = $MSG; + } + // always close the session session_write_close(); -- cgit v1.2.3 From b625808123f9b91b9803f98f818d5745bd7692cc Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 13 Jun 2010 11:40:31 +0200 Subject: msgs are saved in send_redirect now, less code duplication needed --- inc/actions.php | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 4b5bfdb1a..b447b65e1 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -387,16 +387,6 @@ function act_revert($act){ function act_redirect($id,$preact){ global $PRE; global $TEXT; - global $MSG; - - //are there any undisplayed messages? keep them in session for display - //on the next page - if(isset($MSG) && count($MSG)){ - //reopen session, store data and close session again - @session_start(); - $_SESSION[DOKU_COOKIE]['msg'] = $MSG; - session_write_close(); - } $opts = array( 'id' => $id, -- cgit v1.2.3 From 2f10258ced4ab47311afffce07755551ac30e1df Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 15 Jun 2010 10:08:38 +0200 Subject: =?UTF-8?q?Add=20an=20optional=20off=20value=20to=20Doku=5FForm?= =?UTF-8?q?=E2=80=99s=20checkboxes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since an unchecked HTML checkbox has no value at all, a hidden field may be used to specify an off value for the checkbox. --- inc/form.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/form.php b/inc/form.php index cebaf4608..70190d2b4 100644 --- a/inc/form.php +++ b/inc/form.php @@ -484,6 +484,8 @@ function form_makeFileField($name, $label=null, $id='', $class='', $attrs=array( * form_makeCheckboxField * * Create a form element for a checkbox input element with label. + * If $value is an array, a hidden field with the same name and the value + * $value[1] is constructed as well. * * @see form_makeFieldRight * @author Tom N Harris @@ -818,6 +820,8 @@ function form_filefield($attrs) { * _class : class attribute used on the label tag * _text : Text to display after the input. Not escaped. * Other attributes are passed to buildAttributes() for the input tag. + * If value is an array, a hidden field with the same name and the value + * $attrs['value'][1] is constructed as well. * * @author Tom N Harris */ @@ -827,7 +831,13 @@ function form_checkboxfield($attrs) { $s = ''; + $s .= '>'; + if (is_array($attrs['value'])) { + echo ''; + $attrs['value'] = $attrs['value'][0]; + } + $s .= ''; $s .= ' '.$attrs['_text'].''; if (preg_match('/(^| )block($| )/', $attrs['_class'])) $s .= '
'; -- cgit v1.2.3 From 6709e843f0cb599daacc2afa793a3c17226a28a1 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 15 Jun 2010 11:25:58 +0200 Subject: Rewrite actionlink output, add title to actionlinks --- inc/template.php | 109 ++++++++++++++++++++++++++----------------------------- 1 file changed, 51 insertions(+), 58 deletions(-) (limited to 'inc') diff --git a/inc/template.php b/inc/template.php index 85fdb67cf..2ebc7a36d 100644 --- a/inc/template.php +++ b/inc/template.php @@ -594,123 +594,116 @@ function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ if(!actionOK($ctype)) return false; $out = ''; + $id = $ID; + $query = array(); + $build_link = true; + $more = ''; switch($type){ case 'edit': // most complicated type - we need to decide on current action if($ACT == 'show' || $ACT == 'search'){ if($INFO['writable']){ + $more = 'class="action edit" accesskey="e"'; if(!empty($INFO['draft'])) { - $out .= tpl_link(wl($ID,'do=draft'), - $pre.(($inner)?$inner:$lang['btn_draft']).$suf, - 'class="action edit" accesskey="e" rel="nofollow"',1); + $type = 'draft'; } else { + $query = array('do' => 'edit', 'rev' => $REV); if($INFO['exists']){ - $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), - $pre.(($inner)?$inner:$lang['btn_edit']).$suf, - 'class="action edit" accesskey="e" rel="nofollow"',1); + $type = 'edit'; }else{ - $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), - $pre.(($inner)?$inner:$lang['btn_create']).$suf, - 'class="action create" accesskey="e" rel="nofollow"',1); + $more = 'class="action create" accesskey="e"'; + $type = 'create'; } } }else{ - if(actionOK('source')) //pseudo action - $out .= tpl_link(wl($ID,'do=edit&rev='.$REV), - $pre.(($inner)?$inner:$lang['btn_source']).$suf, - 'class="action source" accesskey="v" rel="nofollow"',1); + if(actionOK('source')) { //pseudo action + $query = array('do' => 'edit', 'rev' => $REV); + $type = 'source'; + $more = 'class="action source" accesskey="v"'; + } } }else{ - $out .= tpl_link(wl($ID,''), - $pre.(($inner)?$inner:$lang['btn_show']).$suf, - 'class="action show" accesskey="v" rel="nofollow"',1); + $query = ''; + $type = 'show'; + $more = 'class="action show" accesskey="v"'; } break; case 'history': - if(actionOK('revisions')) - $out .= tpl_link(wl($ID,'do=revisions'), - $pre.(($inner)?$inner:$lang['btn_revs']).$suf, - 'class="action revisions" accesskey="o" rel="nofollow"',1); + $query = array('do' => 'revisions'); + $type = 'revs'; + $more = 'class="action revisions" accesskey="o"'; break; case 'recent': - if(actionOK('recent')) - $out .= tpl_link(wl($ID,'do=recent'), - $pre.(($inner)?$inner:$lang['btn_recent']).$suf, - 'class="action recent" accesskey="r" rel="nofollow"',1); + $more = 'class="action recent" accesskey="r"'; break; case 'index': - if(actionOK('index')) - $out .= tpl_link(wl($ID,'do=index'), - $pre.(($inner)?$inner:$lang['btn_index']).$suf, - 'class="action index" accesskey="x" rel="nofollow"',1); + $more = 'class="action index" accesskey="x"'; break; case 'top': - $out .= '
'. + $build_link = false; + $out = ''. $pre.(($inner)?$inner:$lang['btn_top']).$suf.''; break; case 'back': if ($parent = tpl_getparent($ID)) { - $out .= tpl_link(wl($parent,''), - $pre.(($inner)?$inner:$lang['btn_back']).$suf, - 'class="action back" accesskey="b" rel="nofollow"',1); + $id = $parent; + $query = ''; + $more = 'class="action back" accesskey="b"'; } break; case 'login': if($conf['useacl'] && $auth){ + $query = array('sectok' => getSecurityToken()); if($_SERVER['REMOTE_USER']){ - $out .= tpl_link(wl($ID,'do=logout&sectok='.getSecurityToken()), - $pre.(($inner)?$inner:$lang['btn_logout']).$suf, - 'class="action logout" rel="nofollow"',1); + $type = 'logout'; + $more = 'class="action logout"'; }else{ - $out .= tpl_link(wl($ID,'do=login&sectok='.getSecurityToken()), - $pre.(($inner)?$inner:$lang['btn_login']).$suf, - 'class="action login" rel="nofollow"',1); + $more = 'class="action login"'; } } break; case 'admin': if($INFO['ismanager']){ - $out .= tpl_link(wl($ID,'do=admin'), - $pre.(($inner)?$inner:$lang['btn_admin']).$suf, - 'class="action admin" rel="nofollow"',1); + $more = 'class="action admin"'; } break; case 'revert': - if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ - $out .= tpl_link(wl($ID,array('do' => 'revert', 'rev' => $REV, 'sectok' => getSecurityToken())), - $pre.(($inner)?$inner:$lang['btn_revert']).$suf, - 'class="action revert" rel="nofollow"',1); + if($INFO['ismanager'] && $REV && $INFO['writable']) { + $query = array('rev' => $REV, 'sectok' => getSecurityToken()); + $more = 'class="action revert"'; } break; - case 'subscribe': case 'subscription': + $type = 'subscribe'; + case 'subscribe': if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers']) { if($_SERVER['REMOTE_USER']){ - if(actionOK('subscribe')) - $out .= tpl_link(wl($ID,'do=subscribe'), - $pre.(($inner)?$inner:$lang['btn_subscribe']).$suf, - 'class="action subscribe" rel="nofollow"',1); + $more = 'class="action subscribe"'; } } break; case 'backlink': - if(actionOK('backlink')) - $out .= tpl_link(wl($ID,'do=backlink'), - $pre.(($inner)?$inner:$lang['btn_backlink']).$suf, - 'class="action backlink" rel="nofollow"',1); + $more = 'class="action backlink"'; break; case 'profile': if($conf['useacl'] && $auth && $_SERVER['REMOTE_USER'] && $auth->canDo('Profile') && ($ACT!='profile')){ - $out .= tpl_link(wl($ID,'do=profile'), - $pre.(($inner)?$inner:$lang['btn_profile']).$suf, - 'class="action profile" rel="nofollow"',1); + $more = 'class="action profile"'; } break; default: - $out .= '[unknown link type]'; + $build_link = false; + $out = '[unknown link type]'; break; } + if ($build_link) { + if (is_array($query) && !isset($query['do'])) { + $query['do'] = $type; + } + $out = tpl_link(wl($id, $query), + $pre.(($inner)?$inner:$lang['btn_' . $type]).$suf, + $more . ' rel="nofollow" title="' . hsc($lang['btn_' . $type]) . '"', 1); + } if ($return) return $out; print $out; return $out ? true : false; -- cgit v1.2.3 From 782807733e52295b535005074a62cee46640b0db Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 16 Jun 2010 10:01:44 +0200 Subject: Restore hiding of unavailable links --- inc/template.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/template.php b/inc/template.php index 2ebc7a36d..6776d4a09 100644 --- a/inc/template.php +++ b/inc/template.php @@ -596,7 +596,6 @@ function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ $out = ''; $id = $ID; $query = array(); - $build_link = true; $more = ''; switch($type){ case 'edit': @@ -640,7 +639,6 @@ function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ $more = 'class="action index" accesskey="x"'; break; case 'top': - $build_link = false; $out = ''. $pre.(($inner)?$inner:$lang['btn_top']).$suf.''; break; @@ -692,11 +690,10 @@ function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ } break; default: - $build_link = false; $out = '[unknown link type]'; break; } - if ($build_link) { + if ($more !== '') { if (is_array($query) && !isset($query['do'])) { $query['do'] = $type; } -- cgit v1.2.3 From 80423ab626c72923f347e2196ce660957dcc216f Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 16 Jun 2010 14:41:59 +0200 Subject: Perform quick search in title as well --- inc/fulltext.php | 55 ++++++++++++++++++++++++++++--------------------------- inc/indexer.php | 2 ++ 2 files changed, 30 insertions(+), 27 deletions(-) (limited to 'inc') diff --git a/inc/fulltext.php b/inc/fulltext.php index 142862529..c4d8a7ea7 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -213,54 +213,55 @@ function ft_mediause($id,$max){ * Quicksearch for pagenames * * By default it only matches the pagename and ignores the - * namespace. This can be changed with the second parameter + * namespace. This can be changed with the second parameter. + * The third parameter allows to search in titles as well. + * If the function should search in titles as well, the return array + * has the ids as key and the titles as value. * * refactored into ft_pageLookup(), _ft_pageLookup() and trigger_event() * * @author Andreas Gohr */ -function ft_pageLookup($id,$pageonly=true){ - $data = array('id' => $id, 'pageonly' => $pageonly); - return trigger_event('SEARCH_QUERY_PAGELOOKUP',$data,'_ft_pageLookup'); +function ft_pageLookup($id, $not_in_ns=true, $not_in_title=true){ + $data = compact('id', 'not_in_ns', 'not_in_title'); + return trigger_event('SEARCH_QUERY_PAGELOOKUP', $data, '_ft_pageLookup'); } function _ft_pageLookup(&$data){ - // split out original parameterrs + // split out original parameters $id = $data['id']; - $pageonly = $data['pageonly']; + $in_ns = !$data['not_in_ns']; + $in_title = !$data['not_in_title']; global $conf; - $id = preg_quote($id,'/'); - $pages = file($conf['indexdir'].'/page.idx'); - if($id) $pages = array_values(preg_grep('/'.$id.'/',$pages)); - - $cnt = count($pages); - for($i=0; $i<$cnt; $i++){ - if($pageonly){ - if(!preg_match('/'.$id.'/',noNS($pages[$i]))){ - unset($pages[$i]); - continue; + $pages = array_map('rtrim', file($conf['indexdir'].'/page.idx')); + $titles = array_map('rtrim', file($conf['indexdir'].'/title.idx')); + $pages = array_combine($pages, $titles); + + if($id !== '' && cleanID($id) !== '') { + $cleaned = cleanID($id); + $matched_pages = array(); + foreach ($pages as $p_id => $p_title) { + if ((strpos($in_ns ? $p_id : noNS($p_id), $cleaned) !== false) || + ($in_title && stripos($p_title, $id) !== false)) { + $matched_pages[$p_id] = $p_title; } } - if(!page_exists($pages[$i])){ - unset($pages[$i]); - continue; - } + $pages = $matched_pages; } - $pages = array_filter($pages,'isVisiblePage'); // discard hidden pages - if(!count($pages)) return array(); - + // discard hidden pages + // discard nonexistent pages // check ACL permissions foreach(array_keys($pages) as $idx){ - if(auth_quickaclcheck(trim($pages[$idx])) < AUTH_READ){ + if(!isVisiblePage($idx) || !page_exists($idx) || + auth_quickaclcheck($idx) < AUTH_READ) { unset($pages[$idx]); } } - $pages = array_map('trim',$pages); - usort($pages,'ft_pagesorter'); - return $pages; + uasort($pages,'ft_pagesorter'); + return $in_title ? $pages : array_keys($pages); } /** diff --git a/inc/indexer.php b/inc/indexer.php index 54277a88c..01ba76b08 100644 --- a/inc/indexer.php +++ b/inc/indexer.php @@ -305,6 +305,8 @@ function idx_addPage($page){ } unset($page_idx); // free memory + idx_saveIndexLine('title', '', $pid, p_get_first_heading($page, false)); + $pagewords = array(); // get word usage in page $words = idx_getPageWords($page); -- cgit v1.2.3 From 5ca4a8a19425e432cff13aaef5eae897e153f320 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 16 Jun 2010 15:50:06 +0200 Subject: Find start pages if namespace matches --- inc/fulltext.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/fulltext.php b/inc/fulltext.php index c4d8a7ea7..a68770277 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -242,7 +242,7 @@ function _ft_pageLookup(&$data){ $cleaned = cleanID($id); $matched_pages = array(); foreach ($pages as $p_id => $p_title) { - if ((strpos($in_ns ? $p_id : noNS($p_id), $cleaned) !== false) || + if ((strpos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) !== false) || ($in_title && stripos($p_title, $id) !== false)) { $matched_pages[$p_id] = $p_title; } -- cgit v1.2.3 From a0070b52bbd24f6972b819fa8ff4bdbfe81b5bbc Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 16 Jun 2010 16:15:28 +0200 Subject: Add title index to the indexer files, improve indexer calls --- inc/fulltext.php | 5 ++--- inc/init.php | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/fulltext.php b/inc/fulltext.php index a68770277..b6aac5c91 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -233,9 +233,8 @@ function _ft_pageLookup(&$data){ $in_ns = !$data['not_in_ns']; $in_title = !$data['not_in_title']; - global $conf; - $pages = array_map('rtrim', file($conf['indexdir'].'/page.idx')); - $titles = array_map('rtrim', file($conf['indexdir'].'/title.idx')); + $pages = array_map('rtrim', idx_getIndex('page', '')); + $titles = array_map('rtrim', idx_getIndex('title', '')); $pages = array_combine($pages, $titles); if($id !== '' && cleanID($id) !== '') { diff --git a/inc/init.php b/inc/init.php index 3a9988fcf..20263f95a 100644 --- a/inc/init.php +++ b/inc/init.php @@ -304,7 +304,8 @@ function init_paths(){ function init_files(){ global $conf; - $files = array( $conf['indexdir'].'/page.idx'); + $files = array( $conf['indexdir'].'/page.idx', + $conf['indexdir'].'/title.idx'); foreach($files as $file){ if(!@file_exists($file)){ -- cgit v1.2.3 From 44653a53fe7db9e1c14e4a1d1034cf63787139b3 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 17 Jun 2010 15:43:30 +0200 Subject: Allow URL params in internal links (FS#1967) --- inc/parser/xhtml.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 176411c75..0ee04e5a1 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -559,6 +559,18 @@ class Doku_Renderer_xhtml extends Doku_Renderer { function internallink($id, $name = NULL, $search=NULL,$returnonly=false,$linktype='content') { global $conf; global $ID; + + $params = array(); + + if (preg_match('/^([^?]*)\?([^?]+)$/', $id, $matches) !== false) { + $id = $matches[1]; + preg_match_all('/(?<=[&^])([^=]+)=([^=]*)(?:&|$)/', $matches[2], + $matches, PREG_SET_ORDER); + foreach($matches as &$param) { + $params[$param[1]] = $param[2]; + } + } + // default name is based on $id as given $default = $this->_simpleTitle($id); @@ -592,7 +604,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { } $link['more'] = ''; $link['class'] = $class; - $link['url'] = wl($id); + $link['url'] = wl($id, $params); $link['name'] = $name; $link['title'] = $id; //add search string -- cgit v1.2.3 From f46093a10c862c090052025b72d9e5b604f4f599 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 17 Jun 2010 16:39:24 +0200 Subject: Make normal wikilinks work again --- inc/parser/xhtml.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 0ee04e5a1..f9a33fef0 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -562,7 +562,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $params = array(); - if (preg_match('/^([^?]*)\?([^?]+)$/', $id, $matches) !== false) { + if (preg_match('/^([^?]*)\?([^?]+)$/', $id, $matches)) { $id = $matches[1]; preg_match_all('/(?<=[&^])([^=]+)=([^=]*)(?:&|$)/', $matches[2], $matches, PREG_SET_ORDER); -- cgit v1.2.3 From a453d131f080c5de706e8f1987384a74857bd94e Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 18 Jun 2010 21:16:26 +0200 Subject: Refactor action links and buttons Behavioural changes: * buttons * no 'do=show' but clean URLs (show and back buttons) * the alias 'subscription' for subscribe buttons is now available * links * draft link has class 'draft', not 'edit' * revisions link has class 'revs', not 'revisions' * both * 'revision' is added as an alias for 'history' These changes were mainly introduced to reduce the differences between links and buttons. --- inc/template.php | 306 ++++++++++++++++++++----------------------------------- 1 file changed, 113 insertions(+), 193 deletions(-) (limited to 'inc') diff --git a/inc/template.php b/inc/template.php index 6776d4a09..034b1e6dc 100644 --- a/inc/template.php +++ b/inc/template.php @@ -439,271 +439,191 @@ function tpl_getparent($id){ /** * Print one of the buttons * - * Available Buttons are - * - * edit - edit/create/show/draft button - * history - old revisions - * recent - recent changes - * login - login/logout button - if ACL enabled - * profile - user profile button (if logged in) - * index - The index - * admin - admin page - if enough rights - * top - a back to top button - * back - a back to parent button - if available - * backlink - links to the list of backlinks - * subscription- subscribe/unsubscribe button - * - * @author Andreas Gohr - * @author Matthias Grimm + * @author Adrian Lang + * @see tpl_get_action */ function tpl_button($type,$return=false){ - global $ACT; - global $ID; - global $REV; - global $NS; - global $INFO; - global $conf; - global $auth; - - // check disabled actions and fix the badly named ones - $ctype = $type; - if($type == 'history') $ctype='revisions'; - if(!actionOK($ctype)) return false; - - $out = ''; - switch($type){ - case 'edit': - // most complicated type - we need to decide on current action - if($ACT == 'show' || $ACT == 'search'){ - if($INFO['writable']){ - if(!empty($INFO['draft'])){ - $out .= html_btn('draft',$ID,'e',array('do' => 'draft'),'post'); - }else{ - if($INFO['exists']){ - $out .= html_btn('edit',$ID,'e',array('do' => 'edit','rev' => $REV),'post'); - }else{ - $out .= html_btn('create',$ID,'e',array('do' => 'edit','rev' => $REV),'post'); - } - } - }else{ - if(!actionOK('source')) return false; //pseudo action - $out .= html_btn('source',$ID,'v',array('do' => 'edit','rev' => $REV),'post'); - } - }else{ - $out .= html_btn('show',$ID,'v',array('do' => 'show')); - } - break; - case 'history': - if(actionOK('revisions')) - $out .= html_btn('revs',$ID,'o',array('do' => 'revisions')); - break; - case 'recent': - if(actionOK('recent')) - $out .= html_btn('recent',$ID,'r',array('do' => 'recent')); - break; - case 'index': - if(actionOK('index')) - $out .= html_btn('index',$ID,'x',array('do' => 'index')); - break; - case 'back': - if ($parent = tpl_getparent($ID)) { - $out .= html_btn('back',$parent,'b',array('do' => 'show')); - } - break; - case 'top': - $out .= html_topbtn(); - break; - case 'login': - if($conf['useacl'] && $auth){ - if(isset($_SERVER['REMOTE_USER'])){ - $out .= html_btn('logout',$ID,'',array('do' => 'logout', 'sectok' => getSecurityToken())); - }else{ - $out .= html_btn('login',$ID,'',array('do' => 'login', 'sectok' => getSecurityToken())); - } - } - break; - case 'admin': - if($INFO['ismanager']){ - $out .= html_btn('admin',$ID,'',array('do' => 'admin')); - } - break; - case 'revert': - if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ - $out .= html_btn('revert',$ID,'',array('do' => 'revert', 'rev' => $REV, 'sectok' => getSecurityToken())); - } - break; - case 'subscribe': - if ($conf['useacl'] && $auth && $ACT == 'show' && - $conf['subscribers'] && isset($_SERVER['REMOTE_USER']) && - actionOK('subscribe')) { - $out .= html_btn('subscribe',$ID,'',array('do' => 'subscribe',)); - } - break; - case 'backlink': - if(actionOK('backlink')) - $out .= html_btn('backlink',$ID,'',array('do' => 'backlink')); - break; - case 'profile': - if($conf['useacl'] && isset($_SERVER['REMOTE_USER']) && $auth && - $auth->canDo('Profile') && ($ACT!='profile')){ - $out .= html_btn('profile',$ID,'',array('do' => 'profile')); - } - break; - default: - $out .= '[unknown button type]'; - break; + $data = tpl_get_action($type); + if ($data === false) { + return false; + } elseif (!is_array($data)) { + $out = sprintf($data, 'button'); + } else { + extract($data); + if ($id === '#dokuwiki__top') { + $out = html_topbtn(); + } else { + $out = html_btn($type, $id, $accesskey, $params, $method); + } } if ($return) return $out; - print $out; - return $out ? true : false; + echo $out; + return true; } /** * Like the action buttons but links * - * Available links are + * @author Adrian Lang + * @see tpl_get_action + */ +function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ + global $lang; + $data = tpl_get_action($type); + if ($data === false) { + return false; + } elseif (!is_array($data)) { + $out = sprintf($data, 'link'); + } else { + extract($data); + if (strpos($id, '#') === 0) { + $linktarget = $id; + } else { + $linktarget = wl($id, $params); + } + $caption = $lang['btn_' . $type]; + $out = tpl_link($linktarget, $pre.(($inner)?$inner:$caption).$suf, + 'class="action ' . $type . '" ' . + 'accesskey="' . $accesskey . '" rel="nofollow" ' . + 'title="' . hsc($caption) . '"', 1); + } + if ($return) return $out; + echo $out; + return true; +} + + /** + * Check the actions and get data for buttons and links + * + * Available actions are * - * edit - edit/create/show link - * history - old revisions - * recent - recent changes - * login - login/logout link - if ACL enabled - * profile - user profile link (if logged in) - * index - The index - * admin - admin page - if enough rights - * top - a back to top link - * back - a back to parent link - if available - * backlink - links to the list of backlinks - * subscribe/subscription - subscribe/unsubscribe link + * edit - edit/create/show/draft + * history - old revisions + * recent - recent changes + * login - login/logout - if ACL enabled + * profile - user profile (if logged in) + * index - The index + * admin - admin page - if enough rights + * top - back to top + * back - back to parent - if available + * backlink - links to the list of backlinks + * subscribe/subscription- subscribe/unsubscribe * * @author Andreas Gohr * @author Matthias Grimm - * @see tpl_button + * @author Adrian Lang */ -function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ +function tpl_get_action($type) { global $ID; global $INFO; global $REV; global $ACT; global $conf; - global $lang; global $auth; // check disabled actions and fix the badly named ones - $ctype = $type; - if($type == 'history') $ctype='revisions'; - if(!actionOK($ctype)) return false; + if($type == 'history') $type='revisions'; + if(!actionOK($type)) return false; - $out = ''; - $id = $ID; - $query = array(); - $more = ''; + $accesskey = null; + $id = $ID; + $method = 'get'; + $params = array('do' => $type); switch($type){ case 'edit': // most complicated type - we need to decide on current action if($ACT == 'show' || $ACT == 'search'){ + $method = 'post'; if($INFO['writable']){ - $more = 'class="action edit" accesskey="e"'; + $accesskey = 'e'; if(!empty($INFO['draft'])) { $type = 'draft'; + $params['do'] = 'draft'; } else { - $query = array('do' => 'edit', 'rev' => $REV); - if($INFO['exists']){ - $type = 'edit'; - }else{ - $more = 'class="action create" accesskey="e"'; - $type = 'create'; + $params['rev'] = $REV; + if(!$INFO['exists']){ + $type = 'create'; } } }else{ - if(actionOK('source')) { //pseudo action - $query = array('do' => 'edit', 'rev' => $REV); - $type = 'source'; - $more = 'class="action source" accesskey="v"'; - } + if(!actionOK('source')) return false; //pseudo action + $params['rev'] = $REV; + $type = 'source'; + $accesskey = 'v'; } }else{ - $query = ''; + $params = ''; $type = 'show'; - $more = 'class="action show" accesskey="v"'; + $accesskey = 'v'; } break; - case 'history': - $query = array('do' => 'revisions'); + case 'revisions': $type = 'revs'; - $more = 'class="action revisions" accesskey="o"'; + $accesskey = 'o'; break; case 'recent': - $more = 'class="action recent" accesskey="r"'; + $accesskey = 'r'; break; case 'index': - $more = 'class="action index" accesskey="x"'; + $accesskey = 'x'; break; case 'top': - $out = ''. - $pre.(($inner)?$inner:$lang['btn_top']).$suf.''; + $accesskey = 'x'; + $params = ''; + $id = '#dokuwiki__top'; break; case 'back': - if ($parent = tpl_getparent($ID)) { - $id = $parent; - $query = ''; - $more = 'class="action back" accesskey="b"'; + $parent = tpl_getparent($ID); + if (!$parent) { + return false; } + $id = $parent; + $params = ''; + $accesskey = 'b'; break; case 'login': - if($conf['useacl'] && $auth){ - $query = array('sectok' => getSecurityToken()); - if($_SERVER['REMOTE_USER']){ - $type = 'logout'; - $more = 'class="action logout"'; - }else{ - $more = 'class="action login"'; - } + if(!$conf['useacl'] || !$auth){ + return false; + } + $params['sectok'] = getSecurityToken(); + if($_SERVER['REMOTE_USER']){ + $params['do'] = 'logout'; + $type = 'logout'; } break; case 'admin': - if($INFO['ismanager']){ - $more = 'class="action admin"'; + if(!$INFO['ismanager']){ + return false; } break; case 'revert': - if($INFO['ismanager'] && $REV && $INFO['writable']) { - $query = array('rev' => $REV, 'sectok' => getSecurityToken()); - $more = 'class="action revert"'; + if(!$INFO['ismanager'] || !$REV || !$INFO['writable']) { + return false; } + $params['rev'] = $REV; + $params['sectok'] = getSecurityToken(); break; case 'subscription': $type = 'subscribe'; + $params['do'] = 'subscribe'; case 'subscribe': - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers']) { - if($_SERVER['REMOTE_USER']){ - $more = 'class="action subscribe"'; - } + if(!$conf['useacl'] || !$auth || $ACT !== 'show' || !$conf['subscribers'] || !$_SERVER['REMOTE_USER']){ + return false; } break; case 'backlink': - $more = 'class="action backlink"'; break; case 'profile': - if($conf['useacl'] && $auth && $_SERVER['REMOTE_USER'] && - $auth->canDo('Profile') && ($ACT!='profile')){ - $more = 'class="action profile"'; + if(!$conf['useacl'] || !$auth || !isset($_SERVER['REMOTE_USER']) || + !$auth->canDo('Profile') || ($ACT=='profile')){ + return false; } break; default: - $out = '[unknown link type]'; + return '[unknown %s type]'; break; } - if ($more !== '') { - if (is_array($query) && !isset($query['do'])) { - $query['do'] = $type; - } - $out = tpl_link(wl($id, $query), - $pre.(($inner)?$inner:$lang['btn_' . $type]).$suf, - $more . ' rel="nofollow" title="' . hsc($lang['btn_' . $type]) . '"', 1); - } - if ($return) return $out; - print $out; - return $out ? true : false; + return compact('accesskey', 'type', 'id', 'method', 'params'); } /** -- cgit v1.2.3 From 1720a8e9a67df95c104eb02146c98a3d9da1f84b Mon Sep 17 00:00:00 2001 From: CosmoCode GmbH Date: Mon, 21 Jun 2010 03:02:44 -0700 Subject: inc/utf8.php license clarified for Debian project --- inc/utf8.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'inc') diff --git a/inc/utf8.php b/inc/utf8.php index c10e33ffa..a3046d88c 100644 --- a/inc/utf8.php +++ b/inc/utf8.php @@ -2,7 +2,7 @@ /** * UTF8 helper functions * - * @license LGPL (http://www.gnu.org/copyleft/lesser.html) + * @license LGPL 2.1 (http://www.gnu.org/copyleft/lesser.html) * @author Andreas Gohr */ @@ -931,11 +931,11 @@ if(!UTF8_MBSTRING){ "z"=>"Z","y"=>"Y","x"=>"X","w"=>"W","v"=>"V","u"=>"U","t"=>"T","s"=>"S","r"=>"R","q"=>"Q", "p"=>"P","o"=>"O","n"=>"N","m"=>"M","l"=>"L","k"=>"K","j"=>"J","i"=>"I","h"=>"H","g"=>"G", "f"=>"F","e"=>"E","d"=>"D","c"=>"C","b"=>"B","a"=>"A","ῳ"=>"ῼ","ῥ"=>"Ῥ","ῡ"=>"Ῡ","ῑ"=>"Ῑ", - "ῐ"=>"Ῐ","ῃ"=>"ῌ","ι"=>"Ι","ᾳ"=>"ᾼ","ᾱ"=>"Ᾱ","ᾰ"=>"Ᾰ","ᾧ"=>"ᾯ","ᾦ"=>"ᾮ","ᾥ"=>"ᾭ","ᾤ"=>"ᾬ", + "ῐ"=>"Ῐ","ῃ"=>"ῌ","ι"=>"Ι","ᾳ"=>"ᾼ","ᾱ"=>"Ᾱ","ᾰ"=>"Ᾰ","ᾧ"=>"ᾯ","ᾦ"=>"ᾮ","ᾥ"=>"ᾭ","ᾤ"=>"ᾬ", "ᾣ"=>"ᾫ","ᾢ"=>"ᾪ","ᾡ"=>"ᾩ","ᾗ"=>"ᾟ","ᾖ"=>"ᾞ","ᾕ"=>"ᾝ","ᾔ"=>"ᾜ","ᾓ"=>"ᾛ","ᾒ"=>"ᾚ","ᾑ"=>"ᾙ", - "ᾐ"=>"ᾘ","ᾇ"=>"ᾏ","ᾆ"=>"ᾎ","ᾅ"=>"ᾍ","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","ᾁ"=>"ᾉ","ᾀ"=>"ᾈ","ώ"=>"Ώ", - "ὼ"=>"Ὼ","ύ"=>"Ύ","ὺ"=>"Ὺ","ό"=>"Ό","ὸ"=>"Ὸ","ί"=>"Ί","ὶ"=>"Ὶ","ή"=>"Ή","ὴ"=>"Ὴ","έ"=>"Έ", - "ὲ"=>"Ὲ","ά"=>"Ά","ὰ"=>"Ὰ","ὧ"=>"Ὧ","ὦ"=>"Ὦ","ὥ"=>"Ὥ","ὤ"=>"Ὤ","ὣ"=>"Ὣ","ὢ"=>"Ὢ","ὡ"=>"Ὡ", + "ᾐ"=>"ᾘ","ᾇ"=>"ᾏ","ᾆ"=>"ᾎ","ᾅ"=>"ᾍ","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","ᾁ"=>"ᾉ","ᾀ"=>"ᾈ","ώ"=>"Ώ", + "ὼ"=>"Ὼ","ύ"=>"Ύ","ὺ"=>"Ὺ","ό"=>"Ό","ὸ"=>"Ὸ","ί"=>"Ί","ὶ"=>"Ὶ","ή"=>"Ή","ὴ"=>"Ὴ","έ"=>"Έ", + "ὲ"=>"Ὲ","ά"=>"Ά","ὰ"=>"Ὰ","ὧ"=>"Ὧ","ὦ"=>"Ὦ","ὥ"=>"Ὥ","ὤ"=>"Ὤ","ὣ"=>"Ὣ","ὢ"=>"Ὢ","ὡ"=>"Ὡ", "ὗ"=>"Ὗ","ὕ"=>"Ὕ","ὓ"=>"Ὓ","ὑ"=>"Ὑ","ὅ"=>"Ὅ","ὄ"=>"Ὄ","ὃ"=>"Ὃ","ὂ"=>"Ὂ","ὁ"=>"Ὁ","ὀ"=>"Ὀ", "ἷ"=>"Ἷ","ἶ"=>"Ἶ","ἵ"=>"Ἵ","ἴ"=>"Ἴ","ἳ"=>"Ἳ","ἲ"=>"Ἲ","ἱ"=>"Ἱ","ἰ"=>"Ἰ","ἧ"=>"Ἧ","ἦ"=>"Ἦ", "ἥ"=>"Ἥ","ἤ"=>"Ἤ","ἣ"=>"Ἣ","ἢ"=>"Ἢ","ἡ"=>"Ἡ","ἕ"=>"Ἕ","ἔ"=>"Ἔ","ἓ"=>"Ἓ","ἒ"=>"Ἒ","ἑ"=>"Ἑ", @@ -1010,11 +1010,11 @@ if(!UTF8_MBSTRING){ "Z"=>"z","Y"=>"y","X"=>"x","W"=>"w","V"=>"v","U"=>"u","T"=>"t","S"=>"s","R"=>"r","Q"=>"q", "P"=>"p","O"=>"o","N"=>"n","M"=>"m","L"=>"l","K"=>"k","J"=>"j","I"=>"i","H"=>"h","G"=>"g", "F"=>"f","E"=>"e","D"=>"d","C"=>"c","B"=>"b","A"=>"a","ῼ"=>"ῳ","Ῥ"=>"ῥ","Ῡ"=>"ῡ","Ῑ"=>"ῑ", - "Ῐ"=>"ῐ","ῌ"=>"ῃ","Ι"=>"ι","ᾼ"=>"ᾳ","Ᾱ"=>"ᾱ","Ᾰ"=>"ᾰ","ᾯ"=>"ᾧ","ᾮ"=>"ᾦ","ᾭ"=>"ᾥ","ᾬ"=>"ᾤ", + "Ῐ"=>"ῐ","ῌ"=>"ῃ","Ι"=>"ι","ᾼ"=>"ᾳ","Ᾱ"=>"ᾱ","Ᾰ"=>"ᾰ","ᾯ"=>"ᾧ","ᾮ"=>"ᾦ","ᾭ"=>"ᾥ","ᾬ"=>"ᾤ", "ᾫ"=>"ᾣ","ᾪ"=>"ᾢ","ᾩ"=>"ᾡ","ᾟ"=>"ᾗ","ᾞ"=>"ᾖ","ᾝ"=>"ᾕ","ᾜ"=>"ᾔ","ᾛ"=>"ᾓ","ᾚ"=>"ᾒ","ᾙ"=>"ᾑ", - "ᾘ"=>"ᾐ","ᾏ"=>"ᾇ","ᾎ"=>"ᾆ","ᾍ"=>"ᾅ","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"ᾁ","ᾈ"=>"ᾀ","Ώ"=>"ώ", - "Ὼ"=>"ὼ","Ύ"=>"ύ","Ὺ"=>"ὺ","Ό"=>"ό","Ὸ"=>"ὸ","Ί"=>"ί","Ὶ"=>"ὶ","Ή"=>"ή","Ὴ"=>"ὴ","Έ"=>"έ", - "Ὲ"=>"ὲ","Ά"=>"ά","Ὰ"=>"ὰ","Ὧ"=>"ὧ","Ὦ"=>"ὦ","Ὥ"=>"ὥ","Ὤ"=>"ὤ","Ὣ"=>"ὣ","Ὢ"=>"ὢ","Ὡ"=>"ὡ", + "ᾘ"=>"ᾐ","ᾏ"=>"ᾇ","ᾎ"=>"ᾆ","ᾍ"=>"ᾅ","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"ᾁ","ᾈ"=>"ᾀ","Ώ"=>"ώ", + "Ὼ"=>"ὼ","Ύ"=>"ύ","Ὺ"=>"ὺ","Ό"=>"ό","Ὸ"=>"ὸ","Ί"=>"ί","Ὶ"=>"ὶ","Ή"=>"ή","Ὴ"=>"ὴ","Έ"=>"έ", + "Ὲ"=>"ὲ","Ά"=>"ά","Ὰ"=>"ὰ","Ὧ"=>"ὧ","Ὦ"=>"ὦ","Ὥ"=>"ὥ","Ὤ"=>"ὤ","Ὣ"=>"ὣ","Ὢ"=>"ὢ","Ὡ"=>"ὡ", "Ὗ"=>"ὗ","Ὕ"=>"ὕ","Ὓ"=>"ὓ","Ὑ"=>"ὑ","Ὅ"=>"ὅ","Ὄ"=>"ὄ","Ὃ"=>"ὃ","Ὂ"=>"ὂ","Ὁ"=>"ὁ","Ὀ"=>"ὀ", "Ἷ"=>"ἷ","Ἶ"=>"ἶ","Ἵ"=>"ἵ","Ἴ"=>"ἴ","Ἳ"=>"ἳ","Ἲ"=>"ἲ","Ἱ"=>"ἱ","Ἰ"=>"ἰ","Ἧ"=>"ἧ","Ἦ"=>"ἦ", "Ἥ"=>"ἥ","Ἤ"=>"ἤ","Ἣ"=>"ἣ","Ἢ"=>"ἢ","Ἡ"=>"ἡ","Ἕ"=>"ἕ","Ἔ"=>"ἔ","Ἓ"=>"ἓ","Ἒ"=>"ἒ","Ἑ"=>"ἑ", @@ -1220,11 +1220,11 @@ global $UTF8_SPECIAL_CHARS2; if(empty($UTF8_SPECIAL_CHARS2)) $UTF8_SPECIAL_CHARS2 = "\x1A".' !"#$%&\'()+,/;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•�'. '�—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½�'. - '�¿×÷ˇ˘˙˚˛˜˝̣̀́̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'. + '�¿×÷ˇ˘˙˚˛˜˝̣̀́̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'. '�ׁׂ׃׳״،؛؟ـًٌٍَُِّْ٪฿‌‍‎‏–—―‗‘’‚“”�'. - '��†‡•…‰′″‹›⁄₧₪₫€№℘™Ωℵ←↑→↓↔↕↵'. + '��†‡•…‰′″‹›⁄₧₪₫€№℘™Ωℵ←↑→↓↔↕↵'. '⇐⇑⇒⇓⇔∀∂∃∅∆∇∈∉∋∏∑−∕∗∙√∝∞∠∧∨�'. - '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌐⌠⌡〈〉⑩─�'. + '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌐⌠⌡〈〉⑩─�'. '��┌┐└┘├┤┬┴┼═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠'. '╡╢╣╤╥╦╧╨╩╪╫╬▀▄█▌▐░▒▓■▲▼◆◊●�'. '�★☎☛☞♠♣♥♦✁✂✃✄✆✇✈✉✌✍✎✏✐✑✒✓✔✕�'. -- cgit v1.2.3 From 85b77bbdcc5ba8cd54f0aec27adacd092242e236 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 21 Jun 2010 12:04:55 +0200 Subject: Revert "inc/utf8.php license clarified for Debian project" This was an edit through the github interface which changed more than intented. This reverts commit 1720a8e9a67df95c104eb02146c98a3d9da1f84b. --- inc/utf8.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'inc') diff --git a/inc/utf8.php b/inc/utf8.php index a3046d88c..c10e33ffa 100644 --- a/inc/utf8.php +++ b/inc/utf8.php @@ -2,7 +2,7 @@ /** * UTF8 helper functions * - * @license LGPL 2.1 (http://www.gnu.org/copyleft/lesser.html) + * @license LGPL (http://www.gnu.org/copyleft/lesser.html) * @author Andreas Gohr */ @@ -931,11 +931,11 @@ if(!UTF8_MBSTRING){ "z"=>"Z","y"=>"Y","x"=>"X","w"=>"W","v"=>"V","u"=>"U","t"=>"T","s"=>"S","r"=>"R","q"=>"Q", "p"=>"P","o"=>"O","n"=>"N","m"=>"M","l"=>"L","k"=>"K","j"=>"J","i"=>"I","h"=>"H","g"=>"G", "f"=>"F","e"=>"E","d"=>"D","c"=>"C","b"=>"B","a"=>"A","ῳ"=>"ῼ","ῥ"=>"Ῥ","ῡ"=>"Ῡ","ῑ"=>"Ῑ", - "ῐ"=>"Ῐ","ῃ"=>"ῌ","ι"=>"Ι","ᾳ"=>"ᾼ","ᾱ"=>"Ᾱ","ᾰ"=>"Ᾰ","ᾧ"=>"ᾯ","ᾦ"=>"ᾮ","ᾥ"=>"ᾭ","ᾤ"=>"ᾬ", + "ῐ"=>"Ῐ","ῃ"=>"ῌ","ι"=>"Ι","ᾳ"=>"ᾼ","ᾱ"=>"Ᾱ","ᾰ"=>"Ᾰ","ᾧ"=>"ᾯ","ᾦ"=>"ᾮ","ᾥ"=>"ᾭ","ᾤ"=>"ᾬ", "ᾣ"=>"ᾫ","ᾢ"=>"ᾪ","ᾡ"=>"ᾩ","ᾗ"=>"ᾟ","ᾖ"=>"ᾞ","ᾕ"=>"ᾝ","ᾔ"=>"ᾜ","ᾓ"=>"ᾛ","ᾒ"=>"ᾚ","ᾑ"=>"ᾙ", - "ᾐ"=>"ᾘ","ᾇ"=>"ᾏ","ᾆ"=>"ᾎ","ᾅ"=>"ᾍ","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","ᾁ"=>"ᾉ","ᾀ"=>"ᾈ","ώ"=>"Ώ", - "ὼ"=>"Ὼ","ύ"=>"Ύ","ὺ"=>"Ὺ","ό"=>"Ό","ὸ"=>"Ὸ","ί"=>"Ί","ὶ"=>"Ὶ","ή"=>"Ή","ὴ"=>"Ὴ","έ"=>"Έ", - "ὲ"=>"Ὲ","ά"=>"Ά","ὰ"=>"Ὰ","ὧ"=>"Ὧ","ὦ"=>"Ὦ","ὥ"=>"Ὥ","ὤ"=>"Ὤ","ὣ"=>"Ὣ","ὢ"=>"Ὢ","ὡ"=>"Ὡ", + "ᾐ"=>"ᾘ","ᾇ"=>"ᾏ","ᾆ"=>"ᾎ","ᾅ"=>"ᾍ","ᾄ"=>"ᾌ","ᾃ"=>"ᾋ","ᾂ"=>"ᾊ","ᾁ"=>"ᾉ","ᾀ"=>"ᾈ","ώ"=>"Ώ", + "ὼ"=>"Ὼ","ύ"=>"Ύ","ὺ"=>"Ὺ","ό"=>"Ό","ὸ"=>"Ὸ","ί"=>"Ί","ὶ"=>"Ὶ","ή"=>"Ή","ὴ"=>"Ὴ","έ"=>"Έ", + "ὲ"=>"Ὲ","ά"=>"Ά","ὰ"=>"Ὰ","ὧ"=>"Ὧ","ὦ"=>"Ὦ","ὥ"=>"Ὥ","ὤ"=>"Ὤ","ὣ"=>"Ὣ","ὢ"=>"Ὢ","ὡ"=>"Ὡ", "ὗ"=>"Ὗ","ὕ"=>"Ὕ","ὓ"=>"Ὓ","ὑ"=>"Ὑ","ὅ"=>"Ὅ","ὄ"=>"Ὄ","ὃ"=>"Ὃ","ὂ"=>"Ὂ","ὁ"=>"Ὁ","ὀ"=>"Ὀ", "ἷ"=>"Ἷ","ἶ"=>"Ἶ","ἵ"=>"Ἵ","ἴ"=>"Ἴ","ἳ"=>"Ἳ","ἲ"=>"Ἲ","ἱ"=>"Ἱ","ἰ"=>"Ἰ","ἧ"=>"Ἧ","ἦ"=>"Ἦ", "ἥ"=>"Ἥ","ἤ"=>"Ἤ","ἣ"=>"Ἣ","ἢ"=>"Ἢ","ἡ"=>"Ἡ","ἕ"=>"Ἕ","ἔ"=>"Ἔ","ἓ"=>"Ἓ","ἒ"=>"Ἒ","ἑ"=>"Ἑ", @@ -1010,11 +1010,11 @@ if(!UTF8_MBSTRING){ "Z"=>"z","Y"=>"y","X"=>"x","W"=>"w","V"=>"v","U"=>"u","T"=>"t","S"=>"s","R"=>"r","Q"=>"q", "P"=>"p","O"=>"o","N"=>"n","M"=>"m","L"=>"l","K"=>"k","J"=>"j","I"=>"i","H"=>"h","G"=>"g", "F"=>"f","E"=>"e","D"=>"d","C"=>"c","B"=>"b","A"=>"a","ῼ"=>"ῳ","Ῥ"=>"ῥ","Ῡ"=>"ῡ","Ῑ"=>"ῑ", - "Ῐ"=>"ῐ","ῌ"=>"ῃ","Ι"=>"ι","ᾼ"=>"ᾳ","Ᾱ"=>"ᾱ","Ᾰ"=>"ᾰ","ᾯ"=>"ᾧ","ᾮ"=>"ᾦ","ᾭ"=>"ᾥ","ᾬ"=>"ᾤ", + "Ῐ"=>"ῐ","ῌ"=>"ῃ","Ι"=>"ι","ᾼ"=>"ᾳ","Ᾱ"=>"ᾱ","Ᾰ"=>"ᾰ","ᾯ"=>"ᾧ","ᾮ"=>"ᾦ","ᾭ"=>"ᾥ","ᾬ"=>"ᾤ", "ᾫ"=>"ᾣ","ᾪ"=>"ᾢ","ᾩ"=>"ᾡ","ᾟ"=>"ᾗ","ᾞ"=>"ᾖ","ᾝ"=>"ᾕ","ᾜ"=>"ᾔ","ᾛ"=>"ᾓ","ᾚ"=>"ᾒ","ᾙ"=>"ᾑ", - "ᾘ"=>"ᾐ","ᾏ"=>"ᾇ","ᾎ"=>"ᾆ","ᾍ"=>"ᾅ","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"ᾁ","ᾈ"=>"ᾀ","Ώ"=>"ώ", - "Ὼ"=>"ὼ","Ύ"=>"ύ","Ὺ"=>"ὺ","Ό"=>"ό","Ὸ"=>"ὸ","Ί"=>"ί","Ὶ"=>"ὶ","Ή"=>"ή","Ὴ"=>"ὴ","Έ"=>"έ", - "Ὲ"=>"ὲ","Ά"=>"ά","Ὰ"=>"ὰ","Ὧ"=>"ὧ","Ὦ"=>"ὦ","Ὥ"=>"ὥ","Ὤ"=>"ὤ","Ὣ"=>"ὣ","Ὢ"=>"ὢ","Ὡ"=>"ὡ", + "ᾘ"=>"ᾐ","ᾏ"=>"ᾇ","ᾎ"=>"ᾆ","ᾍ"=>"ᾅ","ᾌ"=>"ᾄ","ᾋ"=>"ᾃ","ᾊ"=>"ᾂ","ᾉ"=>"ᾁ","ᾈ"=>"ᾀ","Ώ"=>"ώ", + "Ὼ"=>"ὼ","Ύ"=>"ύ","Ὺ"=>"ὺ","Ό"=>"ό","Ὸ"=>"ὸ","Ί"=>"ί","Ὶ"=>"ὶ","Ή"=>"ή","Ὴ"=>"ὴ","Έ"=>"έ", + "Ὲ"=>"ὲ","Ά"=>"ά","Ὰ"=>"ὰ","Ὧ"=>"ὧ","Ὦ"=>"ὦ","Ὥ"=>"ὥ","Ὤ"=>"ὤ","Ὣ"=>"ὣ","Ὢ"=>"ὢ","Ὡ"=>"ὡ", "Ὗ"=>"ὗ","Ὕ"=>"ὕ","Ὓ"=>"ὓ","Ὑ"=>"ὑ","Ὅ"=>"ὅ","Ὄ"=>"ὄ","Ὃ"=>"ὃ","Ὂ"=>"ὂ","Ὁ"=>"ὁ","Ὀ"=>"ὀ", "Ἷ"=>"ἷ","Ἶ"=>"ἶ","Ἵ"=>"ἵ","Ἴ"=>"ἴ","Ἳ"=>"ἳ","Ἲ"=>"ἲ","Ἱ"=>"ἱ","Ἰ"=>"ἰ","Ἧ"=>"ἧ","Ἦ"=>"ἦ", "Ἥ"=>"ἥ","Ἤ"=>"ἤ","Ἣ"=>"ἣ","Ἢ"=>"ἢ","Ἡ"=>"ἡ","Ἕ"=>"ἕ","Ἔ"=>"ἔ","Ἓ"=>"ἓ","Ἒ"=>"ἒ","Ἑ"=>"ἑ", @@ -1220,11 +1220,11 @@ global $UTF8_SPECIAL_CHARS2; if(empty($UTF8_SPECIAL_CHARS2)) $UTF8_SPECIAL_CHARS2 = "\x1A".' !"#$%&\'()+,/;<=>?@[\]^`{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•�'. '�—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½�'. - '�¿×÷ˇ˘˙˚˛˜˝̣̀́̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'. + '�¿×÷ˇ˘˙˚˛˜˝̣̀́̃̉΄΅·ϖְֱֲֳִֵֶַָֹֻּֽ־ֿ�'. '�ׁׂ׃׳״،؛؟ـًٌٍَُِّْ٪฿‌‍‎‏–—―‗‘’‚“”�'. - '��†‡•…‰′″‹›⁄₧₪₫€№℘™Ωℵ←↑→↓↔↕↵'. + '��†‡•…‰′″‹›⁄₧₪₫€№℘™Ωℵ←↑→↓↔↕↵'. '⇐⇑⇒⇓⇔∀∂∃∅∆∇∈∉∋∏∑−∕∗∙√∝∞∠∧∨�'. - '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌐⌠⌡〈〉⑩─�'. + '�∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌐⌠⌡〈〉⑩─�'. '��┌┐└┘├┤┬┴┼═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠'. '╡╢╣╤╥╦╧╨╩╪╫╬▀▄█▌▐░▒▓■▲▼◆◊●�'. '�★☎☛☞♠♣♥♦✁✂✃✄✆✇✈✉✌✍✎✏✐✑✒✓✔✕�'. -- cgit v1.2.3 From 1f2058fa0fb5e63118b0551d80e27344e3e4f582 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 21 Jun 2010 12:06:11 +0200 Subject: Clariefied license (clean version) --- inc/utf8.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/utf8.php b/inc/utf8.php index c10e33ffa..47e7ed61f 100644 --- a/inc/utf8.php +++ b/inc/utf8.php @@ -2,7 +2,7 @@ /** * UTF8 helper functions * - * @license LGPL (http://www.gnu.org/copyleft/lesser.html) + * @license LGPL 2.1 (http://www.gnu.org/copyleft/lesser.html) * @author Andreas Gohr */ -- cgit v1.2.3 From 2bd7407465fc660d5b853f71be1012905d8c896b Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 22 Jun 2010 13:16:37 +0200 Subject: License change for inc/JpegMeta.php Original author Sebastian Delmont agreed to rerelease the code under BSD license to avoid license compatibility problems. Other authors (me and Hakan Sandell) agreed as well. --- inc/JpegMeta.php | 50 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 20 deletions(-) (limited to 'inc') diff --git a/inc/JpegMeta.php b/inc/JpegMeta.php index b06764320..98453131e 100644 --- a/inc/JpegMeta.php +++ b/inc/JpegMeta.php @@ -2,32 +2,42 @@ /** * JPEG metadata reader/writer * - * @license PHP license 2.0 (http://www.php.net/license/2_02.txt) - * @link http://www.zonageek.com/software/php/jpeg/index.php + * @license BSD + * @link http://github.com/sd/jpeg-php * @author Sebastian Delmont * @author Andreas Gohr - * @author Hakan Sandell + * @author Hakan Sandell * @todo Add support for Maker Notes, Extend for GIF and PNG metadata */ -// This class is a modified and enhanced version of the JPEG class by -// Sebastian Delmont. Original Copyright notice follows: +// Original copyright notice: // -// +----------------------------------------------------------------------+ -// | PHP version 4.0 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 2.0 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available at through the world-wide-web at | -// | http://www.php.net/license/2_02.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Authors: Sebastian Delmont | -// +----------------------------------------------------------------------+ +// Copyright (c) 2003 Sebastian Delmont +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the author nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE class JpegMeta { var $_fileName; -- cgit v1.2.3 From 2380e8a8af37991018a772ad4a619c6f5c683629 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 22 Jun 2010 16:11:31 +0200 Subject: Hide logout button if auth backend cannot logout --- inc/template.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/template.php b/inc/template.php index 034b1e6dc..15d186a49 100644 --- a/inc/template.php +++ b/inc/template.php @@ -586,7 +586,10 @@ function tpl_get_action($type) { return false; } $params['sectok'] = getSecurityToken(); - if($_SERVER['REMOTE_USER']){ + if(isset($_SERVER['REMOTE_USER'])){ + if (!$auth->canDo('logoff')) { + return false; + } $params['do'] = 'logout'; $type = 'logout'; } -- cgit v1.2.3 From 880f62faf63b666adcc1d6aec6a8ead3edb18f59 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 22 Jun 2010 18:51:00 +0200 Subject: new auth capability 'logout' This patch implements what Adrian's patch "Hide logout button if auth backend cannot logout" intended to do. The 'logoff' capability was used to decide if a special method called $auth->logOff() should be called when the user logs out, not if the backend supports logouts at all. This was a superflous capability since an empty logOff() method is implemented in the base class anyway - it doesn't hurt to always call the method. The 'logoff' capability is now deprecated. Backends who want to do actions on logout simply need to overwrite logOff(). A new capability 'logout' was added which defaults to true. Backends that can't logoff the user (eg. because they use some automatic login/logoff mechanism) can set this to false. Probably makes sense to add a 'login' capability as well... --- inc/auth.php | 4 +--- inc/auth/basic.class.php | 2 +- inc/template.php | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) (limited to 'inc') diff --git a/inc/auth.php b/inc/auth.php index 564eb0285..70514316c 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -320,9 +320,7 @@ function auth_logoff($keepbc=false){ setcookie(DOKU_COOKIE,'',time()-600000,DOKU_REL,'',($conf['securecookie'] && is_ssl())); } - if($auth && $auth->canDo('logoff')){ - $auth->logOff(); - } + if($auth) $auth->logOff(); } /** diff --git a/inc/auth/basic.class.php b/inc/auth/basic.class.php index c08422488..fa38970ae 100644 --- a/inc/auth/basic.class.php +++ b/inc/auth/basic.class.php @@ -30,7 +30,7 @@ class auth_basic { 'getUserCount'=> false, // can the number of users be retrieved? 'getGroups' => false, // can a list of available groups be retrieved? 'external' => false, // does the module do external auth checking? - 'logoff' => false, // has the module some special logoff method? + 'logout' => true, // can the user logout again? (eg. not possible with HTTP auth) ); diff --git a/inc/template.php b/inc/template.php index 15d186a49..20bb969ee 100644 --- a/inc/template.php +++ b/inc/template.php @@ -587,7 +587,7 @@ function tpl_get_action($type) { } $params['sectok'] = getSecurityToken(); if(isset($_SERVER['REMOTE_USER'])){ - if (!$auth->canDo('logoff')) { + if (!$auth->canDo('logout')) { return false; } $params['do'] = 'logout'; -- cgit v1.2.3 From e53f9e72a48912e662dde20d7dceca74a022dcdf Mon Sep 17 00:00:00 2001 From: Marijn Hofstra Date: Tue, 22 Jun 2010 19:02:33 +0200 Subject: Dutch language update --- inc/lang/nl/lang.php | 69 ++++++++++++++++++++++++++++++++----------- inc/lang/nl/subscr_digest.txt | 15 ++++++++++ inc/lang/nl/subscr_form.txt | 3 ++ inc/lang/nl/subscr_list.txt | 12 ++++++++ inc/lang/nl/subscr_single.txt | 18 +++++++++++ 5 files changed, 99 insertions(+), 18 deletions(-) create mode 100644 inc/lang/nl/subscr_digest.txt create mode 100644 inc/lang/nl/subscr_form.txt create mode 100644 inc/lang/nl/subscr_list.txt create mode 100644 inc/lang/nl/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 75d4aaa35..8bba8765d 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -13,6 +13,7 @@ * @author Danny Rotsaert * @author Marijn Hofstra hofstra.m@gmail.com * @author Matthias Carchon webmaster@c-mattic.be + * @author Marijn Hofstra */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -46,9 +47,6 @@ $lang['btn_back'] = 'Terug'; $lang['btn_backlink'] = 'Referenties'; $lang['btn_backtomedia'] = 'Terug naar Bestandsselectie'; $lang['btn_subscribe'] = 'Inschrijven wijzigingen'; -$lang['btn_unsubscribe'] = 'Opzeggen wijzigingen'; -$lang['btn_subscribens'] = 'Inschrijven namespace-wijzigingen'; -$lang['btn_unsubscribens'] = 'Opzeggen namespace-wijzigingen'; $lang['btn_profile'] = 'Profiel aanpassen'; $lang['btn_reset'] = 'Wissen'; $lang['btn_resendpwd'] = 'Stuur een nieuw wachtwoord'; @@ -102,7 +100,38 @@ $lang['txt_overwrt'] = 'Overschrijf bestaand bestand'; $lang['lockedby'] = 'Momenteel in gebruik door'; $lang['lockexpire'] = 'Exclusief gebruiksrecht vervalt op'; $lang['willexpire'] = 'Je exclusieve gebruiksrecht voor het aanpassen van deze pagina verloopt over een minuut.\nKlik op de Voorbeeld-knop om het exclusieve gebruiksrecht te verlengen.'; -$lang['js']['notsavedyet'] = "Nog niet bewaarde wijzigingen zullen verloren gaan.\nWeet je zeker dat je wilt doorgaan?"; +$lang['js']['notsavedyet'] = 'Nog niet bewaarde wijzigingen zullen verloren gaan. +Weet je zeker dat je wilt doorgaan?'; +$lang['js']['searchmedia'] = 'Zoek naar bestanden'; +$lang['js']['keepopen'] = 'Houd scherm open bij selectie'; +$lang['js']['hidedetails'] = 'Verberg details'; +$lang['js']['mediatitle'] = 'Linkinstellingen'; +$lang['js']['mediadisplay'] = 'Linktype'; +$lang['js']['mediaalign'] = 'Uitlijning'; +$lang['js']['mediasize'] = 'Afbeeldingsomvang'; +$lang['js']['mediatarget'] = 'Linkdoel'; +$lang['js']['mediaclose'] = 'Sluiten'; +$lang['js']['mediainsert'] = 'Invoegen'; +$lang['js']['mediadisplayimg'] = 'De afbeelding weergeven'; +$lang['js']['mediadisplaylnk'] = 'Alleen de link weergeven'; +$lang['js']['mediasmall'] = 'Kleine versie'; +$lang['js']['mediamedium'] = 'Middelgrote versie'; +$lang['js']['medialarge'] = 'Grote versie'; +$lang['js']['mediaoriginal'] = 'Originele versie'; +$lang['js']['medialnk'] = 'Link naar detailpagina'; +$lang['js']['mediadirect'] = 'Directe link naar origineel'; +$lang['js']['medianolnk'] = 'Geen link'; +$lang['js']['medianolink'] = 'Link niet naar de afbeelding'; +$lang['js']['medialeft'] = 'Afbeelding links uitlijnen'; +$lang['js']['mediaright'] = 'Afbeelding rechts uitlijnen'; +$lang['js']['mediacenter'] = 'Afbeelding centreren'; +$lang['js']['medianoalign'] = 'Geen uitlijning gebruiken'; +$lang['js']['nosmblinks'] = 'Linken naar Windows shares werkt alleen in Microsoft Internet Explorer. +Je kan de link wel kopiëren en plakken.'; +$lang['js']['linkwiz'] = 'Linkwizard'; +$lang['js']['linkto'] = 'Link naar:'; +$lang['js']['del_confirm'] = 'Item(s) verwijderen?'; +$lang['js']['mu_btn'] = 'Meerdere files tegelijk uploaden'; $lang['rssfailed'] = 'Er is een fout opgetreden bij het ophalen van de feed: '; $lang['nothingfound'] = 'Er werd niets gevonden.'; $lang['mediaselect'] = 'Bestandsselectie'; @@ -120,15 +149,6 @@ $lang['deletefail'] = '"%s" kan niet worden verwijderd - controleer p $lang['mediainuse'] = 'Het bestand "%s" is niet verwijderd - het is nog in gebruik.'; $lang['namespaces'] = 'Namespaces'; $lang['mediafiles'] = 'Beschikbare bestanden in'; -$lang['js']['searchmedia'] = 'Zoek naar bestanden'; -$lang['js']['keepopen'] = 'Houd scherm open bij selectie'; -$lang['js']['hidedetails'] = 'Verberg details'; -$lang['js']['nosmblinks'] = 'Linken naar Windows shares werkt alleen in Microsoft Internet Explorer. -Je kan de link wel kopiëren en plakken.'; -$lang['js']['linkwiz'] = 'Linkwizard'; -$lang['js']['linkto'] = 'Link naar:'; -$lang['js']['del_confirm'] = 'Item(s) verwijderen?'; -$lang['js']['mu_btn'] = 'Meerdere files tegelijk uploaden'; $lang['mediausage'] = 'Gebruik de volgende syntax om aan het bestand te refereren:'; $lang['mediaview'] = 'Bekijk het orginele bestand'; $lang['mediaroot'] = 'root'; @@ -158,6 +178,7 @@ $lang['noflash'] = 'De Date: Wed, 23 Jun 2010 10:08:28 +0200 Subject: Do not parse URL params in internal links, just pass them through --- inc/parser/xhtml.php | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'inc') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index f9a33fef0..c8862eece 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -560,15 +560,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { global $conf; global $ID; - $params = array(); - - if (preg_match('/^([^?]*)\?([^?]+)$/', $id, $matches)) { - $id = $matches[1]; - preg_match_all('/(?<=[&^])([^=]+)=([^=]*)(?:&|$)/', $matches[2], - $matches, PREG_SET_ORDER); - foreach($matches as &$param) { - $params[$param[1]] = $param[2]; - } + $params = ''; + $parts = explode('?', $id, 2); + if (count($parts) === 2) { + $id = $parts[0]; + $params = $parts[1]; } // default name is based on $id as given -- cgit v1.2.3 From be6541cce13f8d09639459b791dbd5b20c54dbc7 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 23 Jun 2010 11:05:51 +0200 Subject: basic_auth is loaded by inc/auth.php --- inc/auth/mysql.class.php | 3 --- inc/auth/pgsql.class.php | 3 +-- inc/auth/plain.class.php | 3 --- 3 files changed, 1 insertion(+), 8 deletions(-) (limited to 'inc') diff --git a/inc/auth/mysql.class.php b/inc/auth/mysql.class.php index b1c6a3a52..ca607ced5 100644 --- a/inc/auth/mysql.class.php +++ b/inc/auth/mysql.class.php @@ -8,9 +8,6 @@ * @author Matthias Grimm */ -define('DOKU_AUTH', dirname(__FILE__)); -require_once(DOKU_AUTH.'/basic.class.php'); - class auth_mysql extends auth_basic { var $dbcon = 0; diff --git a/inc/auth/pgsql.class.php b/inc/auth/pgsql.class.php index a6da56af5..8e68e865e 100644 --- a/inc/auth/pgsql.class.php +++ b/inc/auth/pgsql.class.php @@ -11,8 +11,7 @@ * @author Matthias Grimm */ -define('DOKU_AUTH', dirname(__FILE__)); -require_once(DOKU_AUTH.'/mysql.class.php'); +require_once(DOKU_INC.'inc/auth/mysql.class.php'); class auth_pgsql extends auth_mysql { diff --git a/inc/auth/plain.class.php b/inc/auth/plain.class.php index 96649e3c4..af4fadb36 100644 --- a/inc/auth/plain.class.php +++ b/inc/auth/plain.class.php @@ -7,9 +7,6 @@ * @author Chris Smith */ -define('DOKU_AUTH', dirname(__FILE__)); -require_once(DOKU_AUTH.'/basic.class.php'); - define('AUTH_USERFILE',DOKU_CONF.'users.auth.php'); class auth_plain extends auth_basic { -- cgit v1.2.3 From b0f6db0c1350beb85dcff044dc2770f404a1b540 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 23 Jun 2010 14:24:11 +0200 Subject: Support namespace selection in quicksearch --- inc/fulltext.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/fulltext.php b/inc/fulltext.php index b6aac5c91..950e7f7d3 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -229,7 +229,13 @@ function ft_pageLookup($id, $not_in_ns=true, $not_in_title=true){ function _ft_pageLookup(&$data){ // split out original parameters + $id = $data['id']; + if (preg_match('/(?:^| )@(\w+)/', $id, $matches)) { + $ns = cleanID($matches[1]) . ':'; + $id = str_replace($matches[0], '', $id); + } + $in_ns = !$data['not_in_ns']; $in_title = !$data['not_in_title']; @@ -241,8 +247,9 @@ function _ft_pageLookup(&$data){ $cleaned = cleanID($id); $matched_pages = array(); foreach ($pages as $p_id => $p_title) { - if ((strpos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) !== false) || - ($in_title && stripos($p_title, $id) !== false)) { + if (((strpos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) !== false) || + ($in_title && stripos($p_title, $id) !== false)) && + (!isset($ns) || strpos($p_id, $ns) === 0)) { $matched_pages[$p_id] = $p_title; } } -- cgit v1.2.3 From 69266de50f71b3d43011378cf0b0e8b8185c3609 Mon Sep 17 00:00:00 2001 From: Dominik Eckelmann Date: Thu, 24 Jun 2010 14:26:15 +0200 Subject: fixed handling of MSG msg() now stores always the message to the MSG array until headers are sent. After this, a call of msg will print out all messages from the MSG array immediately through html_msgarea. This prevents double posting and losses of messages from the MSG array. --- inc/infoutils.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'inc') diff --git a/inc/infoutils.php b/inc/infoutils.php index 32baa9450..096662d24 100644 --- a/inc/infoutils.php +++ b/inc/infoutils.php @@ -265,17 +265,15 @@ function msg($message,$lvl=0,$line='',$file=''){ if($line || $file) $message.=' ['.basename($file).':'.$line.']'; - if(!headers_sent()){ - if(!isset($MSG)) $MSG = array(); - $MSG[]=array('lvl' => $errors[$lvl], 'msg' => $message); - }else{ - $MSG = array(); - $MSG[]=array('lvl' => $errors[$lvl], 'msg' => $message); + if(!isset($MSG)) $MSG = array(); + $MSG[]=array('lvl' => $errors[$lvl], 'msg' => $message); + if(headers_sent()){ if(function_exists('html_msgarea')){ html_msgarea(); }else{ print "ERROR($lvl) $message"; } + unset($GLOBALS['MSG']); } } -- cgit v1.2.3 From 80601d26897c5dced80645aaf904085aa08b7bb9 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 26 Jun 2010 11:20:25 +0200 Subject: fixed wildcard handling in ACL manager FS#1955 This patch also removes legacy support for @USER@. Only %USER% is valid now. --- inc/auth.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/auth.php b/inc/auth.php index 70514316c..6a4108a7c 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -107,7 +107,6 @@ function auth_setup(){ //support user wildcard if(isset($_SERVER['REMOTE_USER'])){ $AUTH_ACL = str_replace('%USER%',$_SERVER['REMOTE_USER'],$AUTH_ACL); - $AUTH_ACL = str_replace('@USER@',$_SERVER['REMOTE_USER'],$AUTH_ACL); //legacy } } } @@ -569,6 +568,9 @@ function auth_nameencode($name,$skip_group=false){ $cache =& $cache_authname; $name = (string) $name; + // never encode wildcard FS#1955 + if($name == '%USER%') return $name; + if (!isset($cache[$name][$skip_group])) { if($skip_group && $name{0} =='@'){ $cache[$name][$skip_group] = '@'.preg_replace('/([\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])/e', -- cgit v1.2.3 From 345b1674b60537d4a68bce48f7cc106b771051c7 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 26 Jun 2010 12:11:13 +0200 Subject: create title.idx with the correct length FS#1978 The title.idx file needs to have exactly the same length as the page.idx. This patch creates the file with the correct length if it doesn't exist yet. If you upgrade in between you need to delete your data/index/title.idx file --- inc/init.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/init.php b/inc/init.php index 20263f95a..9a3eaf9c9 100644 --- a/inc/init.php +++ b/inc/init.php @@ -304,8 +304,7 @@ function init_paths(){ function init_files(){ global $conf; - $files = array( $conf['indexdir'].'/page.idx', - $conf['indexdir'].'/title.idx'); + $files = array($conf['indexdir'].'/page.idx'); foreach($files as $file){ if(!@file_exists($file)){ @@ -318,6 +317,22 @@ function init_files(){ } } } + + # create title index (needs to have same length as page.idx) + $file = $conf['indexdir'].'/title.idx'; + if(!@file_exists($file)){ + $pages = file($conf['indexdir'].'/page.idx'); + $pages = count($pages); + $fh = @fopen($file,'a'); + if($fh){ + for($i=0; $i<$pages; $i++){ + fwrite($fh,"\n"); + } + fclose($fh); + }else{ + nice_die("$file is not writable. Check your permissions settings!"); + } + } } /** -- cgit v1.2.3 From 8d22f1e96be5aa2c65ecb6ee934debbfe0f8f4cc Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 26 Jun 2010 13:38:10 +0200 Subject: Changes to the ft_pageLookup and related event FS#1978 This patch changes the ft_pageLookup function to always return the title of pages with the result. This makes it easier to work with the array, as it no longer changes between numeric and key indexes depending on useheading. This also means that action plugins subscribed to SEARCH_QUERY_PAGELOOKUP need to be adjusted. The event contains a new data field called 'has_titles' which plugins can use to check for backwards compatibility. --- inc/fulltext.php | 18 +++++++++--------- inc/html.php | 16 ++++++++++------ 2 files changed, 19 insertions(+), 15 deletions(-) (limited to 'inc') diff --git a/inc/fulltext.php b/inc/fulltext.php index 950e7f7d3..1c9981812 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -215,29 +215,29 @@ function ft_mediause($id,$max){ * By default it only matches the pagename and ignores the * namespace. This can be changed with the second parameter. * The third parameter allows to search in titles as well. - * If the function should search in titles as well, the return array - * has the ids as key and the titles as value. * - * refactored into ft_pageLookup(), _ft_pageLookup() and trigger_event() + * The function always returns titles as well * + * @triggers SEARCH_QUERY_PAGELOOKUP * @author Andreas Gohr + * @author Adrian Lang */ -function ft_pageLookup($id, $not_in_ns=true, $not_in_title=true){ - $data = compact('id', 'not_in_ns', 'not_in_title'); +function ft_pageLookup($id, $in_ns=false, $in_title=false){ + $data = compact('id', 'in_ns', 'in_title'); + $data['has_titles'] = true; // for plugin backward compatibility check return trigger_event('SEARCH_QUERY_PAGELOOKUP', $data, '_ft_pageLookup'); } function _ft_pageLookup(&$data){ // split out original parameters - $id = $data['id']; if (preg_match('/(?:^| )@(\w+)/', $id, $matches)) { $ns = cleanID($matches[1]) . ':'; $id = str_replace($matches[0], '', $id); } - $in_ns = !$data['not_in_ns']; - $in_title = !$data['not_in_title']; + $in_ns = $data['in_ns']; + $in_title = $data['in_title']; $pages = array_map('rtrim', idx_getIndex('page', '')); $titles = array_map('rtrim', idx_getIndex('title', '')); @@ -267,7 +267,7 @@ function _ft_pageLookup(&$data){ } uasort($pages,'ft_pagesorter'); - return $in_title ? $pages : array_keys($pages); + return $pages; } /** diff --git a/inc/html.php b/inc/html.php index 01823449e..7e842e052 100644 --- a/inc/html.php +++ b/inc/html.php @@ -336,18 +336,22 @@ function html_search(){ //do quick pagesearch $data = array(); - if($id) $data = ft_pageLookup($id); + if($id) $data = ft_pageLookup($id,true,useHeading('navigation')); if(count($data)){ print '
'; print '

'.$lang['quickhits'].':

'; print '
'; } -- cgit v1.2.3 From 3f803e5e8df5f91507a14467a07e89271f9e4e8e Mon Sep 17 00:00:00 2001 From: Gina Haeussge Date: Sat, 26 Jun 2010 18:25:41 +0200 Subject: FS#1878: Hide Dokuwiki version information from metadata and only show it to admins and manager in do=check. Also protected meta files README, VERSION and COPYING additionally to .ht* --- inc/infoutils.php | 4 +++- inc/template.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/infoutils.php b/inc/infoutils.php index 096662d24..87b29d7af 100644 --- a/inc/infoutils.php +++ b/inc/infoutils.php @@ -100,7 +100,9 @@ function check(){ global $conf; global $INFO; - msg('DokuWiki version: '.getVersion(),1); + if ($INFO['isadmin'] || $INFO['ismanager']){ + msg('DokuWiki version: '.getVersion(),1); + } if(version_compare(phpversion(),'5.1.2','<')){ msg('Your PHP version is too old ('.phpversion().' vs. 5.1.2+ needed)',-1); diff --git a/inc/template.php b/inc/template.php index 8847f788d..4d24c2191 100644 --- a/inc/template.php +++ b/inc/template.php @@ -255,7 +255,7 @@ function tpl_metaheaders($alt=true){ } // the usual stuff - $head['meta'][] = array( 'name'=>'generator', 'content'=>'DokuWiki '.getVersion() ); + $head['meta'][] = array( 'name'=>'generator', 'content'=>'DokuWiki'); $head['link'][] = array( 'rel'=>'search', 'type'=>'application/opensearchdescription+xml', 'href'=>DOKU_BASE.'lib/exe/opensearch.php', 'title'=>$conf['title'] ); $head['link'][] = array( 'rel'=>'start', 'href'=>DOKU_BASE ); -- cgit v1.2.3 From 2ae68f97446ff6bae5fbbe463eb00312598be840 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 26 Jun 2010 18:27:16 +0200 Subject: use CRLF in quoted printable encoding FS#1755 Needs testing from: a) Exchange users - is FS1755 fixed for you? b) everone else - all okay still? --- inc/mail.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/mail.php b/inc/mail.php index 6d1652fc0..38232d110 100644 --- a/inc/mail.php +++ b/inc/mail.php @@ -11,6 +11,7 @@ if(!defined('DOKU_INC')) die('meh.'); // end of line for mail lines - RFC822 says CRLF but postfix (and other MTAs?) // think different if(!defined('MAILHEADER_EOL')) define('MAILHEADER_EOL',"\n"); +if(!defined('QUOTEDPRINTABLE_EOL')) define('QUOTEDPRINTABLE_EOL',"\015\012"); #define('MAILHEADER_ASCIIONLY',1); /** @@ -254,11 +255,11 @@ function mail_quotedprintable_encode($sText,$maxlen=74,$bEmulate_imap_8bit=true) // but this wouldn't be caught by such an easy RegExp if($maxlen){ preg_match_all( '/.{1,'.($maxlen - 2).'}([^=]{0,2})?/', $sLine, $aMatch ); - $sLine = implode( '=' . MAILHEADER_EOL, $aMatch[0] ); // add soft crlf's + $sLine = implode( '=' . QUOTEDPRINTABLE_EOL, $aMatch[0] ); // add soft crlf's } } // join lines into text - return implode(MAILHEADER_EOL,$aLines); + return implode(QUOTEDPRINTABLE_EOL,$aLines); } -- cgit v1.2.3 From 57e71d49bbc194d78296c7447eb1bc46290c2744 Mon Sep 17 00:00:00 2001 From: Tanguy Ortolo Date: Sat, 26 Jun 2010 18:51:10 +0200 Subject: Update and license of cliopts.php. * Updated the code to be closer to the latest upstream one. * Updated the license: it used to be under the problematic PHP License, and is now under the BSD License, thanks to the original author and contributor agreement. --- inc/cliopts.php | 186 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 164 insertions(+), 22 deletions(-) (limited to 'inc') diff --git a/inc/cliopts.php b/inc/cliopts.php index ede559a63..588f0bc6d 100644 --- a/inc/cliopts.php +++ b/inc/cliopts.php @@ -1,25 +1,27 @@ + * @modified Harry Fuecks hfuecks gmail.com + * @modified Tanguy Ortolo + * @license http://www.opensource.org/licenses/bsd-license.php New BSD License + * @version CVS: $Id$ + * @link http://pear.php.net/package/Console_Getopt + * */ -// +----------------------------------------------------------------------+ -// | PHP Version 4 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 1997-2003 The PHP Group | -// +----------------------------------------------------------------------+ -// | This source file is subject to version 3.0 of the PHP license, | -// | that is bundled with this package in the file LICENSE, and is | -// | available through the world-wide-web at the following url: | -// | http://www.php.net/license/3_0.txt. | -// | If you did not receive a copy of the PHP license and are unable to | -// | obtain it through the world-wide-web, please send a note to | -// | license@php.net so we can mail you a copy immediately. | -// +----------------------------------------------------------------------+ -// | Author: Andrei Zmievski | -// | Modified: Harry Fuecks hfuecks gmail.com | -// +----------------------------------------------------------------------+ -// - //------------------------------------------------------------------------------ /** @@ -99,18 +101,74 @@ class Doku_Cli_Opts { return $container; } + /** + * Parses the command-line options. + * + * The first parameter to this function should be the list of command-line + * arguments without the leading reference to the running program. + * + * The second parameter is a string of allowed short options. Each of the + * option letters can be followed by a colon ':' to specify that the option + * requires an argument, or a double colon '::' to specify that the option + * takes an optional argument. + * + * The third argument is an optional array of allowed long options. The + * leading '--' should not be included in the option name. Options that + * require an argument should be followed by '=', and options that take an + * option argument should be followed by '=='. + * + * The return value is an array of two elements: the list of parsed + * options and the list of non-option command-line arguments. Each entry in + * the list of parsed options is a pair of elements - the first one + * specifies the option, and the second one specifies the option argument, + * if there was one. + * + * Long and short options can be mixed. + * + * Most of the semantics of this function are based on GNU getopt_long(). + * + * @param array $args an array of command-line arguments + * @param string $short_options specifies the list of allowed short options + * @param array $long_options specifies the list of allowed long options + * + * @return array two-element array containing the list of parsed options and + * the non-option arguments + * @access public + */ function getopt2($args, $short_options, $long_options = null) { return Doku_Cli_Opts::doGetopt( 2, $args, $short_options, $long_options ); } + /** + * This function expects $args to start with the script name (POSIX-style). + * Preserved for backwards compatibility. + * + * @param array $args an array of command-line arguments + * @param string $short_options specifies the list of allowed short options + * @param array $long_options specifies the list of allowed long options + * + * @see getopt2() + * @return array two-element array containing the list of parsed options and + * the non-option arguments + */ function getopt($args, $short_options, $long_options = null) { return Doku_Cli_Opts::doGetopt( 1, $args, $short_options, $long_options ); } + /** + * The actual implementation of the argument parsing code. + * + * @param int $version Version to use + * @param array $args an array of command-line arguments + * @param string $short_options specifies the list of allowed short options + * @param array $long_options specifies the list of allowed long options + * + * @return array + */ function doGetopt($version, $args, $short_options, $long_options = null) { // in case you pass directly readPHPArgv() as the first arg @@ -157,6 +215,10 @@ class Doku_Cli_Opts { $error = Doku_Cli_Opts::_parseLongOption(substr($arg, 2), $long_options, $opts, $args); if (Doku_Cli_Opts::isError($error)) return $error; + } elseif ($arg == '-') { + // - is stdin + $non_opts = array_merge($non_opts, array_slice($args, $i)); + break; } else { $error = Doku_Cli_Opts::_parseShortOption(substr($arg, 1), $short_options, $opts, $args); if (Doku_Cli_Opts::isError($error)) @@ -167,6 +229,17 @@ class Doku_Cli_Opts { return array($opts, $non_opts); } + /** + * Parse short option + * + * @param string $arg Argument + * @param string[] $short_options Available short options + * @param string[][] &$opts + * @param string[] &$args + * + * @access private + * @return void + */ function _parseShortOption($arg, $short_options, &$opts, &$args) { $len = strlen($arg); for ($i = 0; $i < $len; $i++) { @@ -196,8 +269,14 @@ class Doku_Cli_Opts { if ($i + 1 < strlen($arg)) { $opts[] = array($opt, substr($arg, $i + 1)); break; - } else if (list(, $opt_arg) = each($args)) + } else if (list(, $opt_arg) = each($args)) { /* Else use the next argument. */; + if (Doku_Cli_Opts::_isShortOpt($opt_arg) || Doku_Cli_Opts::_isLongOpt($opt_arg)) + return Doku_Cli_Opts::raiseError( + DOKU_CLI_OPTS_OPT_ARG_REQUIRED, + "option requires an argument --$opt" + ); + } else return Doku_Cli_Opts::raiseError( DOKU_CLI_OPTS_OPT_ARG_REQUIRED, @@ -210,8 +289,47 @@ class Doku_Cli_Opts { } } + /** + * Checks if an argument is a short option + * + * @param string $arg Argument to check + * + * @access private + * @return bool + */ + function _isShortOpt($arg) + { + return strlen($arg) == 2 && $arg[0] == '-' + && preg_match('/[a-zA-Z]/', $arg[1]); + } + + /** + * Checks if an argument is a long option + * + * @param string $arg Argument to check + * + * @access private + * @return bool + */ + function _isLongOpt($arg) + { + return strlen($arg) > 2 && $arg[0] == '-' && $arg[1] == '-' && + preg_match('/[a-zA-Z]+$/', substr($arg, 2)); + } + + /** + * Parse long option + * + * @param string $arg Argument + * @param string[] $long_options Available long options + * @param string[][] &$opts + * @param string[] &$args + * + * @access private + * @return void|PEAR_Error + */ function _parseLongOption($arg, $long_options, &$opts, &$args) { - @list($opt, $opt_arg) = explode('=', $arg); + @list($opt, $opt_arg) = explode('=', $arg, 2); $opt_len = strlen($opt); $opt_cnt = count($long_options); @@ -219,17 +337,27 @@ class Doku_Cli_Opts { $long_opt = $long_options[$i]; $opt_start = substr($long_opt, 0, $opt_len); + $long_opt_name = str_replace('=', '', $long_opt); + /* Option doesn't match. Go on to the next one. */ if ($opt_start != $opt) continue; - $opt_rest = substr($long_opt, $opt_len); + $opt_rest = substr($long_opt, $opt_len); /* Check that the options uniquely matches one of the allowed options. */ + if ($i + 1 < count($long_options)) { + $next_option_rest = substr($long_options[$i + 1], $opt_len); + } else { + $next_option_rest = ''; + } + if ($opt_rest != '' && $opt{0} != '=' && $i + 1 < $opt_cnt && - $opt == substr($long_options[$i+1], 0, $opt_len)) { + $opt == substr($long_options[$i+1], 0, $opt_len) && + $next_option_rest != '' && + $next_option_rest{0} != '=') { return Doku_Cli_Opts::raiseError( DOKU_CLI_OPTS_OPT_ABIGUOUS, "Option --$opt is ambiguous" @@ -246,6 +374,13 @@ class Doku_Cli_Opts { "Option --$opt requires an argument" ); } + + if (Doku_Cli_Opts::_isShortOpt($opt_arg) + || Doku_Cli_Opts::_isLongOpt($opt_arg)) + return Doku_Cli_Opts::raiseError( + DOKU_CLI_OPTS_OPT_ARG_REQUIRED, + "Option --$opt requires an argument" + ); } } else if ($opt_arg) { return Doku_Cli_Opts::raiseError( @@ -264,6 +399,13 @@ class Doku_Cli_Opts { ); } + /** + * Safely read the $argv PHP array across different PHP configurations. + * Will take care on register_globals and register_argc_argv ini directives + * + * @access public + * @return mixed the $argv PHP array or PEAR error if not registered + */ function readPHPArgv() { global $argv; if (!is_array($argv)) { -- cgit v1.2.3 From 7aeda574860428d96fa1660613646b5684c1a6ea Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 26 Jun 2010 20:42:48 +0200 Subject: added proxy exception regexp FS#1247 --- inc/HTTPClient.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'inc') diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index c88d1c45d..ebe349573 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -29,11 +29,12 @@ class DokuHTTPClient extends HTTPClient { $this->HTTPClient(); // set some values from the config - $this->proxy_host = $conf['proxy']['host']; - $this->proxy_port = $conf['proxy']['port']; - $this->proxy_user = $conf['proxy']['user']; - $this->proxy_pass = conf_decodeString($conf['proxy']['pass']); - $this->proxy_ssl = $conf['proxy']['ssl']; + $this->proxy_host = $conf['proxy']['host']; + $this->proxy_port = $conf['proxy']['port']; + $this->proxy_user = $conf['proxy']['user']; + $this->proxy_pass = conf_decodeString($conf['proxy']['pass']); + $this->proxy_ssl = $conf['proxy']['ssl']; + $this->proxy_except = $conf['proxy']['except']; } @@ -105,6 +106,7 @@ class HTTPClient { var $proxy_user; var $proxy_pass; var $proxy_ssl; //boolean set to true if your proxy needs SSL + var $proxy_except; // regexp of URLs to exclude from proxy // what we use as boundary on multipart/form-data posts var $boundary = '---DokuWikiHTTPClient--4523452351'; @@ -202,7 +204,7 @@ class HTTPClient { if(isset($uri['pass'])) $this->pass = $uri['pass']; // proxy setup - if($this->proxy_host){ + if($this->proxy_host && (!$this->proxy_except || !preg_match('/'.$this->proxy_except.'/i',$url)) ){ $request_url = $url; $server = $this->proxy_host; $port = $this->proxy_port; -- cgit v1.2.3 From 1a93c67cff4a7b3e30186141cd17f4ba6e113e84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szab=C3=B3=20D=C3=A1vid?= Date: Sun, 27 Jun 2010 10:38:10 +0200 Subject: Hungarian language update --- inc/lang/hu/lang.php | 69 ++++++++++++++++++++++++++++++++----------- inc/lang/hu/subscr_digest.txt | 17 +++++++++++ inc/lang/hu/subscr_form.txt | 3 ++ inc/lang/hu/subscr_list.txt | 14 +++++++++ inc/lang/hu/subscr_single.txt | 20 +++++++++++++ 5 files changed, 105 insertions(+), 18 deletions(-) create mode 100644 inc/lang/hu/subscr_digest.txt create mode 100644 inc/lang/hu/subscr_form.txt create mode 100644 inc/lang/hu/subscr_list.txt create mode 100644 inc/lang/hu/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index 4aa19c193..c21221ed4 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -8,6 +8,7 @@ * @author Siaynoq Siaynoq * @author Siaynoq Mage * @author schilling.janos@gmail.com + * @author Szabó Dávid (szabo.david@gyumolcstarhely.hu) */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -41,9 +42,6 @@ $lang['btn_back'] = 'Vissza'; $lang['btn_backlink'] = 'Hivatkozások'; $lang['btn_backtomedia'] = 'Vissza a médiafájlok kezeléséhez'; $lang['btn_subscribe'] = 'Oldalváltozások-hírlevél feliratkozás'; -$lang['btn_unsubscribe'] = 'Oldalváltozások-hírlevél leiratkozás'; -$lang['btn_subscribens'] = 'Névtér-változás hírlevél feliratkozás'; -$lang['btn_unsubscribens'] = 'Névtér-változás hírlevél leiratkozás'; $lang['btn_profile'] = 'Személyes beállítások'; $lang['btn_reset'] = 'Alaphelyzet'; $lang['btn_resendpwd'] = 'Új jelszó küldése'; @@ -97,7 +95,38 @@ $lang['txt_overwrt'] = 'Létező fájl felülírása'; $lang['lockedby'] = 'Jelenleg zárolta:'; $lang['lockexpire'] = 'A zárolás lejár:'; $lang['willexpire'] = 'Az oldalszerkesztési zárolásod körülbelül egy percen belül lejár.\nAz ütközések elkerülése végett használd az előnézet gombot a zárolási időzítés frissítéséhez.'; -$lang['js']['notsavedyet'] = "Elmentetlen változások vannak, amelyek el fognak veszni.\nTényleg ezt akarod?"; +$lang['js']['notsavedyet'] = 'Elmentetlen változások vannak, amelyek el fognak veszni. +Tényleg ezt akarod?'; +$lang['js']['searchmedia'] = 'Fájlok keresése'; +$lang['js']['keepopen'] = 'Tartsd nyitva ezt az ablakot a kijelöléshez!'; +$lang['js']['hidedetails'] = 'Részletek elrejtése'; +$lang['js']['mediatitle'] = 'Link beállítások'; +$lang['js']['mediadisplay'] = 'Link típusa'; +$lang['js']['mediaalign'] = 'Igazítás'; +$lang['js']['mediasize'] = 'Képméret'; +$lang['js']['mediatarget'] = 'Link'; +$lang['js']['mediaclose'] = 'Bezárás'; +$lang['js']['mediainsert'] = 'Beillesztés'; +$lang['js']['mediadisplayimg'] = 'Kép megtekintése.'; +$lang['js']['mediadisplaylnk'] = 'Link megtekintése.'; +$lang['js']['mediasmall'] = 'Kisebb méret'; +$lang['js']['mediamedium'] = 'Közepes méret'; +$lang['js']['medialarge'] = 'Nagyobb méret'; +$lang['js']['mediaoriginal'] = 'Eredeti'; +$lang['js']['medialnk'] = 'Link a részletekre'; +$lang['js']['mediadirect'] = 'Közvetlen link az eredetire'; +$lang['js']['medianolnk'] = 'Nincsen link'; +$lang['js']['medianolink'] = 'Ne linkelje a képet'; +$lang['js']['medialeft'] = 'Kép igazítása balra.'; +$lang['js']['mediaright'] = 'Kép igazítása jobbra.'; +$lang['js']['mediacenter'] = 'Kép igazítása középre.'; +$lang['js']['medianoalign'] = 'Nem legyen igazítás.'; +$lang['js']['nosmblinks'] = 'A Windows megosztott könyvtárak kereszthivatkozása csak Microsoft Internet Explorerben működik közvetlenül. +A hivatkozást másolni és beszúrni ettől fügetlenül mndig tudod.'; +$lang['js']['linkwiz'] = 'Hivatkozás varázsló'; +$lang['js']['linkto'] = 'Hivatkozás erre:'; +$lang['js']['del_confirm'] = 'Valóban törölni akarod a kiválasztott elem(ek)et?'; +$lang['js']['mu_btn'] = 'Több fájl feltöltése egyszerre'; $lang['rssfailed'] = 'Hiba történt ennek a betöltésekor: '; $lang['nothingfound'] = 'Semmit sem találtam.'; $lang['mediaselect'] = 'Médiafájl kiválasztása'; @@ -115,15 +144,6 @@ $lang['deletefail'] = 'A "%s" fájl nem törölhető. - Ellenőrizd a $lang['mediainuse'] = 'A "%s" fájl nem törlődött - még használat alatt van.'; $lang['namespaces'] = 'Névtér'; $lang['mediafiles'] = 'Elérhető fájlok itt:'; -$lang['js']['searchmedia'] = 'Fájlok keresése'; -$lang['js']['keepopen'] = 'Tartsd nyitva ezt az ablakot a kijelöléshez!'; -$lang['js']['hidedetails'] = 'Részletek elrejtése'; -$lang['js']['nosmblinks'] = 'A Windows megosztott könyvtárak kereszthivatkozása csak Microsoft Internet Explorerben működik közvetlenül. -A hivatkozást másolni és beszúrni ettől fügetlenül mndig tudod.'; -$lang['js']['linkwiz'] = 'Hivatkozás varázsló'; -$lang['js']['linkto'] = 'Hivatkozás erre:'; -$lang['js']['del_confirm'] = 'Valóban törölni akarod a kiválasztott elem(ek)et?'; -$lang['js']['mu_btn'] = 'Több fájl feltöltése egyszerre'; $lang['mediausage'] = 'A következő formában hivatkozhatsz erre az állományra:'; $lang['mediaview'] = 'Eredeti állomány megtekintése'; $lang['mediaroot'] = 'kiindulási hely'; @@ -153,6 +173,7 @@ $lang['noflash'] = 'Ennek a tartalomnak a megtekintéséhez Date: Sun, 27 Jun 2010 12:25:15 +0200 Subject: FS#433: Editor now uses onbeforeunload event to capture ANY leaving of it besides via Save or Preview button. This has been successfully tested in FF, Chrome and IE6/7/8. Opera does not support onbeforeunload, therefore the draft is kept if the user navigates away from the editor. Please test this. --- inc/lang/de-informal/lang.php | 2 +- inc/lang/de/lang.php | 3 +-- inc/lang/en/lang.php | 2 +- inc/lang/it/lang.php | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) (limited to 'inc') diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index 2060e1769..a42ecc0ab 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -105,7 +105,7 @@ $lang['txt_overwrt'] = 'Bestehende Datei überschreiben'; $lang['lockedby'] = 'Momentan gesperrt von'; $lang['lockexpire'] = 'Sperre läuft ab am'; $lang['willexpire'] = 'Die Sperre zur Bearbeitung dieser Seite läuft in einer Minute ab.\nUm Bearbeitungskonflikte zu vermeiden, solltest du sie durch einen Klick auf den Vorschau-Knopf verlängern.'; -$lang['js']['notsavedyet'] = "Nicht gespeicherte Änderungen gehen verloren!\nWeitermachen?"; +$lang['js']['notsavedyet'] = "Nicht gespeicherte Änderungen gehen verloren!"; $lang['rssfailed'] = 'Es ist ein Fehler beim Laden des Feeds aufgetreten: '; $lang['nothingfound'] = 'Nichts gefunden.'; $lang['mediaselect'] = 'Dateiauswahl'; diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index 91bdcab0a..290c069a4 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -103,8 +103,7 @@ $lang['txt_overwrt'] = 'Bestehende Datei überschreiben'; $lang['lockedby'] = 'Momentan gesperrt von'; $lang['lockexpire'] = 'Sperre läuft ab am'; $lang['willexpire'] = 'Die Sperre zur Bearbeitung dieser Seite läuft in einer Minute ab.\nUm Bearbeitungskonflikte zu vermeiden, sollten Sie sie durch einen Klick auf den Vorschau-Knopf verlängern.'; -$lang['js']['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren! -Weitermachen?'; +$lang['js']['notsavedyet'] = 'Nicht gespeicherte Änderungen gehen verloren!'; $lang['js']['searchmedia'] = 'Suche Dateien'; $lang['js']['keepopen'] = 'Fenster nach Auswahl nicht schließen'; $lang['js']['hidedetails'] = 'Details ausblenden'; diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 0dd6fd548..1fddfe727 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -100,7 +100,7 @@ $lang['lockedby'] = 'Currently locked by'; $lang['lockexpire'] = 'Lock expires at'; $lang['willexpire'] = 'Your lock for editing this page is about to expire in a minute.\nTo avoid conflicts use the preview button to reset the locktimer.'; -$lang['js']['notsavedyet'] = "Unsaved changes will be lost.\nReally continue?"; +$lang['js']['notsavedyet'] = "Unsaved changes will be lost."; $lang['rssfailed'] = 'An error occurred while fetching this feed: '; $lang['nothingfound']= 'Nothing was found.'; diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 8e476816e..c8e51f3e9 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -99,7 +99,7 @@ $lang['txt_overwrt'] = 'Sovrascrivi file esistente'; $lang['lockedby'] = 'Attualmente bloccato da'; $lang['lockexpire'] = 'Il blocco scade alle'; $lang['willexpire'] = 'Il tuo blocco su questa pagina scadrà tra circa un minuto.\nPer evitare incongruenze usa il pulsante di anteprima per prolungare il periodo di blocco.'; -$lang['js']['notsavedyet'] = "Le modifiche non salvate andranno perse.\nContinuare?"; +$lang['js']['notsavedyet'] = "Le modifiche non salvate andranno perse."; $lang['rssfailed'] = 'Si è verificato un errore cercando questo feed: '; $lang['nothingfound'] = 'Nessun risultato trovato.'; $lang['mediaselect'] = 'Selezione dei file'; -- cgit v1.2.3 From de3427dbc88f1a060e6557d79da3a9bafb9a6039 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 27 Jun 2010 13:28:59 +0200 Subject: Add scope options to LDAP auth backend FS#1832 The scope for the LDAP searches for users and groups can now be set using the new options 'userscope' and 'groupscope'. Valid options are 'base', 'one' and 'sub'. Defaults to 'sub'. --- inc/auth/ldap.class.php | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/auth/ldap.class.php b/inc/auth/ldap.class.php index c51924135..fc1a7ddb6 100644 --- a/inc/auth/ldap.class.php +++ b/inc/auth/ldap.class.php @@ -27,7 +27,9 @@ class auth_ldap extends auth_basic { return; } - if(empty($this->cnf['groupkey'])) $this->cnf['groupkey'] = 'cn'; + if(empty($this->cnf['groupkey'])) $this->cnf['groupkey'] = 'cn'; + if(empty($this->cnf['userscope'])) $this->cnf['userscope'] = 'sub'; + if(empty($this->cnf['groupscope'])) $this->cnf['groupscope'] = 'sub'; // auth_ldap currently just handles authentication, so no // capabilities are set @@ -171,7 +173,7 @@ class auth_ldap extends auth_basic { $filter = "(ObjectClass=*)"; } - $sr = @ldap_search($this->con, $base, $filter); + $sr = $this->_ldapsearch($this->con, $base, $filter, $this->cnf['userscope']); $result = @ldap_get_entries($this->con, $sr); if($this->cnf['debug']){ msg('LDAP user search: '.htmlspecialchars(ldap_error($this->con)),0,__LINE__,__FILE__); @@ -219,7 +221,7 @@ class auth_ldap extends auth_basic { if ($this->cnf['grouptree'] && $this->cnf['groupfilter']) { $base = $this->_makeFilter($this->cnf['grouptree'], $user_result); $filter = $this->_makeFilter($this->cnf['groupfilter'], $user_result); - $sr = @ldap_search($this->con, $base, $filter, array($this->cnf['groupkey'])); + $sr = $this->_ldapsearch($this->con, $base, $filter, $this->cnf['groupscope'], array($this->cnf['groupkey'])); if(!$sr){ msg("LDAP: Reading group memberships failed",-1); if($this->cnf['debug']){ @@ -352,6 +354,28 @@ class auth_ldap extends auth_basic { return true; } + + /** + * Wraps around ldap_search, ldap_list or ldap_read depending on $scope + * + * @param $scope string - can be 'base', 'one' or 'sub' + * @author Andreas Gohr + */ + function _ldapsearch($link_identifier, $base_dn, $filter, $scope='sub', $attributes=null, + $attrsonly=0, $sizelimit=0, $timelimit=0, $deref=LDAP_DEREF_NEVER){ + if(is_null($attributes)) $attributes = array(); + + if($scope == 'base'){ + return @ldap_read($link_identifier, $base_dn, $filter, $attributes, + $attrsonly, $sizelimit, $timelimit, $deref); + }elseif($scope == 'one'){ + return @ldap_list($link_identifier, $base_dn, $filter, $attributes, + $attrsonly, $sizelimit, $timelimit, $deref); + }else{ + return @ldap_search($link_identifier, $base_dn, $filter, $attributes, + $attrsonly, $sizelimit, $timelimit, $deref); + } + } } //Setup VIM: ex: et ts=4 enc=utf-8 : -- cgit v1.2.3 From a8574918a3bd65683f0a2de4a3f26dd0ec2c410f Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 27 Jun 2010 12:41:23 +0100 Subject: added div around tables to make scrolling too wide ones in restrictive designs possible (FS#1980) --- inc/parser/xhtml.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index c5a8b8218..78f6d3f84 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -906,11 +906,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer { global $lang; // initialize the row counter used for classes $this->_counter['row_counter'] = 0; - $this->doc .= '
'.DOKU_LF; + $this->doc .= '
'.DOKU_LF; } function table_close($pos){ - $this->doc .= '
'.DOKU_LF; + $this->doc .= '
'.DOKU_LF; $this->finishSectionEdit($pos); } -- cgit v1.2.3 From 13ebcbe5742a0b5014e3c70a0d521332cbdcdf79 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 27 Jun 2010 12:53:18 +0100 Subject: FS#1949 --- inc/parser/parser.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/parser/parser.php b/inc/parser/parser.php index 48facd6b5..435b8aa46 100644 --- a/inc/parser/parser.php +++ b/inc/parser/parser.php @@ -413,8 +413,8 @@ class Doku_Parser_Mode_listblock extends Doku_Parser_Mode { } function connectTo($mode) { - $this->Lexer->addEntryPattern('\n {2,}[\-\*]',$mode,'listblock'); - $this->Lexer->addEntryPattern('\n\t{1,}[\-\*]',$mode,'listblock'); + $this->Lexer->addEntryPattern('[ \t]*\n {2,}[\-\*]',$mode,'listblock'); + $this->Lexer->addEntryPattern('[ \t]*\n\t{1,}[\-\*]',$mode,'listblock'); $this->Lexer->addPattern('\n {2,}[\-\*]','listblock'); $this->Lexer->addPattern('\n\t{1,}[\-\*]','listblock'); -- cgit v1.2.3 From c8f80b4e70ee1b73ecc08cac583d021979af9359 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 27 Jun 2010 14:43:56 +0200 Subject: Use config_cascade for ACLs and plain auth users FS#1677 --- inc/auth.php | 5 +++-- inc/auth/plain.class.php | 26 ++++++++++++++++---------- inc/init.php | 38 ++++++++++++++++++++++---------------- 3 files changed, 41 insertions(+), 28 deletions(-) (limited to 'inc') diff --git a/inc/auth.php b/inc/auth.php index 6a4108a7c..49bb2d4d9 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -35,6 +35,7 @@ function auth_setup(){ global $auth; global $AUTH_ACL; global $lang; + global $config_cascade; $AUTH_ACL = array(); if(!$conf['useacl']) return false; @@ -102,8 +103,8 @@ function auth_setup(){ } //load ACL into a global array XXX - if(is_readable(DOKU_CONF.'acl.auth.php')){ - $AUTH_ACL = file(DOKU_CONF.'acl.auth.php'); + if(is_readable($config_cascade['acl']['default'])){ + $AUTH_ACL = file($config_cascade['acl']['default']); //support user wildcard if(isset($_SERVER['REMOTE_USER'])){ $AUTH_ACL = str_replace('%USER%',$_SERVER['REMOTE_USER'],$AUTH_ACL); diff --git a/inc/auth/plain.class.php b/inc/auth/plain.class.php index af4fadb36..ec9e52beb 100644 --- a/inc/auth/plain.class.php +++ b/inc/auth/plain.class.php @@ -7,8 +7,6 @@ * @author Chris Smith */ -define('AUTH_USERFILE',DOKU_CONF.'users.auth.php'); - class auth_plain extends auth_basic { var $users = null; @@ -23,10 +21,12 @@ class auth_plain extends auth_basic { * @author Christopher Smith */ function auth_plain() { - if (!@is_readable(AUTH_USERFILE)){ + global $config_cascade; + + if (!@is_readable($config_cascade['plainauth.users']['default'])){ $this->success = false; }else{ - if(@is_writable(AUTH_USERFILE)){ + if(@is_writable($config_cascade['plainauth.users']['default'])){ $this->cando['addUser'] = true; $this->cando['delUser'] = true; $this->cando['modLogin'] = true; @@ -89,6 +89,7 @@ class auth_plain extends auth_basic { */ function createUser($user,$pwd,$name,$mail,$grps=null){ global $conf; + global $config_cascade; // user mustn't already exist if ($this->getUserData($user) !== false) return false; @@ -102,12 +103,13 @@ class auth_plain extends auth_basic { $groups = join(',',$grps); $userline = join(':',array($user,$pass,$name,$mail,$groups))."\n"; - if (io_saveFile(AUTH_USERFILE,$userline,true)) { + if (io_saveFile($config_cascade['plainauth.users']['default'],$userline,true)) { $this->users[$user] = compact('pass','name','mail','grps'); return $pwd; } - msg('The '.AUTH_USERFILE.' file is not writable. Please inform the Wiki-Admin',-1); + msg('The '.$config_cascade['plainauth.users']['default']. + ' file is not writable. Please inform the Wiki-Admin',-1); return null; } @@ -123,6 +125,7 @@ class auth_plain extends auth_basic { global $conf; global $ACT; global $INFO; + global $config_cascade; // sanity checks, user must already exist and there must be something to change if (($userinfo = $this->getUserData($user)) === false) return false; @@ -147,7 +150,7 @@ class auth_plain extends auth_basic { return false; } - if (!io_saveFile(AUTH_USERFILE,$userline,true)) { + if (!io_saveFile($config_cascade['plainauth.users']['default'],$userline,true)) { msg('There was an error modifying your user data. You should register again.',-1); // FIXME, user has been deleted but not recreated, should force a logout and redirect to login page $ACT == 'register'; @@ -166,6 +169,7 @@ class auth_plain extends auth_basic { * @return int the number of users deleted */ function deleteUsers($users) { + global $config_cascade; if (!is_array($users) || empty($users)) return 0; @@ -180,7 +184,7 @@ class auth_plain extends auth_basic { $pattern = '/^('.join('|',$deleted).'):/'; - if (io_deleteFromFile(AUTH_USERFILE,$pattern,true)) { + if (io_deleteFromFile($config_cascade['plainauth.users']['default'],$pattern,true)) { foreach ($deleted as $user) unset($this->users[$user]); return count($deleted); } @@ -271,11 +275,13 @@ class auth_plain extends auth_basic { * @author Andreas Gohr */ function _loadUserData(){ + global $config_cascade; + $this->users = array(); - if(!@file_exists(AUTH_USERFILE)) return; + if(!@file_exists($config_cascade['plainauth.users']['default'])) return; - $lines = file(AUTH_USERFILE); + $lines = file($config_cascade['plainauth.users']['default']); foreach($lines as $line){ $line = preg_replace('/#.*$/','',$line); //ignore comments $line = trim($line); diff --git a/inc/init.php b/inc/init.php index 9a3eaf9c9..21382cdb0 100644 --- a/inc/init.php +++ b/inc/init.php @@ -77,26 +77,32 @@ if (empty($config_cascade)) { 'local' => array(DOKU_CONF.'license.local.php'), ), 'mediameta' => array( - 'default' => array(DOKU_CONF.'mediameta.php'), - 'local' => array(DOKU_CONF.'mediameta.local.php'), - ), + 'default' => array(DOKU_CONF.'mediameta.php'), + 'local' => array(DOKU_CONF.'mediameta.local.php'), + ), 'mime' => array( - 'default' => array(DOKU_CONF.'mime.conf'), - 'local' => array(DOKU_CONF.'mime.local.conf'), - ), + 'default' => array(DOKU_CONF.'mime.conf'), + 'local' => array(DOKU_CONF.'mime.local.conf'), + ), 'scheme' => array( - 'default' => array(DOKU_CONF.'scheme.conf'), - 'local' => array(DOKU_CONF.'scheme.local.conf'), - ), + 'default' => array(DOKU_CONF.'scheme.conf'), + 'local' => array(DOKU_CONF.'scheme.local.conf'), + ), 'smileys' => array( - 'default' => array(DOKU_CONF.'smileys.conf'), - 'local' => array(DOKU_CONF.'smileys.local.conf'), - ), + 'default' => array(DOKU_CONF.'smileys.conf'), + 'local' => array(DOKU_CONF.'smileys.local.conf'), + ), 'wordblock' => array( - 'default' => array(DOKU_CONF.'wordblock.conf'), - 'local' => array(DOKU_CONF.'wordblock.local.conf'), - ), - ); + 'default' => array(DOKU_CONF.'wordblock.conf'), + 'local' => array(DOKU_CONF.'wordblock.local.conf'), + ), + 'acl' => array( + 'default' => DOKU_CONF.'acl.auth.php', + ), + 'plainauth.users' => array( + 'default' => DOKU_CONF.'users.auth.php', + ), + ); } //prepare config array() -- cgit v1.2.3 From 0b34c70fcb312d38e6110e2ca1432779ffb73a8a Mon Sep 17 00:00:00 2001 From: Gina Haeussge Date: Sun, 27 Jun 2010 14:50:49 +0200 Subject: FS#1795: Restrict media manager to users with at least read access on the supplied namespace. --- inc/lang/en/lang.php | 1 + 1 file changed, 1 insertion(+) (limited to 'inc') diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 1fddfe727..802a90360 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -119,6 +119,7 @@ $lang['deletefail'] = '"%s" couldn\'t be deleted - check permissions.'; $lang['mediainuse'] = 'The file "%s" hasn\'t been deleted - it is still in use.'; $lang['namespaces'] = 'Namespaces'; $lang['mediafiles'] = 'Available files in'; +$lang['accessdenied'] = 'You are not allowed to view this page.'; $lang['js']['searchmedia'] = 'Search for files'; $lang['js']['keepopen'] = 'Keep window open on selection'; -- cgit v1.2.3 From e6a6dbfe6cfcfaf3fb0992350ea7769faa762116 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 27 Jun 2010 14:52:47 +0200 Subject: moved default config cascade to its own file --- inc/config_cascade.php | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ inc/init.php | 50 +------------------------------------------ 2 files changed, 58 insertions(+), 49 deletions(-) create mode 100644 inc/config_cascade.php (limited to 'inc') diff --git a/inc/config_cascade.php b/inc/config_cascade.php new file mode 100644 index 000000000..81c455dc3 --- /dev/null +++ b/inc/config_cascade.php @@ -0,0 +1,57 @@ + array( + 'default' => array(DOKU_CONF.'dokuwiki.php'), + 'local' => array(DOKU_CONF.'local.php'), + 'protected' => array(DOKU_CONF.'local.protected.php'), + ), + 'acronyms' => array( + 'default' => array(DOKU_CONF.'acronyms.conf'), + 'local' => array(DOKU_CONF.'acronyms.local.conf'), + ), + 'entities' => array( + 'default' => array(DOKU_CONF.'entities.conf'), + 'local' => array(DOKU_CONF.'entities.local.conf'), + ), + 'interwiki' => array( + 'default' => array(DOKU_CONF.'interwiki.conf'), + 'local' => array(DOKU_CONF.'interwiki.local.conf'), + ), + 'license' => array( + 'default' => array(DOKU_CONF.'license.php'), + 'local' => array(DOKU_CONF.'license.local.php'), + ), + 'mediameta' => array( + 'default' => array(DOKU_CONF.'mediameta.php'), + 'local' => array(DOKU_CONF.'mediameta.local.php'), + ), + 'mime' => array( + 'default' => array(DOKU_CONF.'mime.conf'), + 'local' => array(DOKU_CONF.'mime.local.conf'), + ), + 'scheme' => array( + 'default' => array(DOKU_CONF.'scheme.conf'), + 'local' => array(DOKU_CONF.'scheme.local.conf'), + ), + 'smileys' => array( + 'default' => array(DOKU_CONF.'smileys.conf'), + 'local' => array(DOKU_CONF.'smileys.local.conf'), + ), + 'wordblock' => array( + 'default' => array(DOKU_CONF.'wordblock.conf'), + 'local' => array(DOKU_CONF.'wordblock.local.conf'), + ), + 'acl' => array( + 'default' => DOKU_CONF.'acl.auth.php', + ), + 'plainauth.users' => array( + 'default' => DOKU_CONF.'users.auth.php', + ), +); + diff --git a/inc/init.php b/inc/init.php index 21382cdb0..b53167e3c 100644 --- a/inc/init.php +++ b/inc/init.php @@ -54,55 +54,7 @@ global $cache_metadata; //set the configuration cascade - but only if its not already been set in preload.php if (empty($config_cascade)) { - $config_cascade = array( - 'main' => array( - 'default' => array(DOKU_CONF.'dokuwiki.php'), - 'local' => array(DOKU_CONF.'local.php'), - 'protected' => array(DOKU_CONF.'local.protected.php'), - ), - 'acronyms' => array( - 'default' => array(DOKU_CONF.'acronyms.conf'), - 'local' => array(DOKU_CONF.'acronyms.local.conf'), - ), - 'entities' => array( - 'default' => array(DOKU_CONF.'entities.conf'), - 'local' => array(DOKU_CONF.'entities.local.conf'), - ), - 'interwiki' => array( - 'default' => array(DOKU_CONF.'interwiki.conf'), - 'local' => array(DOKU_CONF.'interwiki.local.conf'), - ), - 'license' => array( - 'default' => array(DOKU_CONF.'license.php'), - 'local' => array(DOKU_CONF.'license.local.php'), - ), - 'mediameta' => array( - 'default' => array(DOKU_CONF.'mediameta.php'), - 'local' => array(DOKU_CONF.'mediameta.local.php'), - ), - 'mime' => array( - 'default' => array(DOKU_CONF.'mime.conf'), - 'local' => array(DOKU_CONF.'mime.local.conf'), - ), - 'scheme' => array( - 'default' => array(DOKU_CONF.'scheme.conf'), - 'local' => array(DOKU_CONF.'scheme.local.conf'), - ), - 'smileys' => array( - 'default' => array(DOKU_CONF.'smileys.conf'), - 'local' => array(DOKU_CONF.'smileys.local.conf'), - ), - 'wordblock' => array( - 'default' => array(DOKU_CONF.'wordblock.conf'), - 'local' => array(DOKU_CONF.'wordblock.local.conf'), - ), - 'acl' => array( - 'default' => DOKU_CONF.'acl.auth.php', - ), - 'plainauth.users' => array( - 'default' => DOKU_CONF.'users.auth.php', - ), - ); + include(DOKU_INC.'inc/config_cascade.php'); } //prepare config array() -- cgit v1.2.3 From ef362bb863eb95d3968a3a1df35562914a1bbdef Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 27 Jun 2010 13:58:07 +0100 Subject: moved update message from its own file (conf/msg) into doku.php (FS#1800) --- inc/infoutils.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/infoutils.php b/inc/infoutils.php index 87b29d7af..ac6a0a84c 100644 --- a/inc/infoutils.php +++ b/inc/infoutils.php @@ -16,6 +16,7 @@ if(!defined('DOKU_MESSAGEURL')) define('DOKU_MESSAGEURL','http://update.dokuwiki function checkUpdateMessages(){ global $conf; global $INFO; + global $updateVersion; if(!$conf['updatecheck']) return; if($conf['useacl'] && !$INFO['ismanager']) return; @@ -23,12 +24,10 @@ function checkUpdateMessages(){ $lm = @filemtime($cf); // check if new messages needs to be fetched - if($lm < time()-(60*60*24) || $lm < @filemtime(DOKU_CONF.'msg')){ - $num = @file(DOKU_CONF.'msg'); - $num = is_array($num) ? (int) $num[0] : 0; + if($lm < time()-(60*60*24) || $lm < @filemtime(DOKU_INC.'doku.php')){ $http = new DokuHTTPClient(); $http->timeout = 8; - $data = $http->get(DOKU_MESSAGEURL.$num); + $data = $http->get(DOKU_MESSAGEURL.$updateVersion); io_saveFile($cf,$data); }else{ $data = io_readFile($cf); -- cgit v1.2.3 From 134b7bd9e90653ac01e8b80e46c4ec4ea0e62be0 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 27 Jun 2010 15:16:36 +0200 Subject: do not require special permissions to look at index FS#1720 --- inc/actions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 5141f1941..914ff1ce6 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -231,7 +231,7 @@ function act_permcheck($act){ }else{ $permneed = AUTH_CREATE; } - }elseif(in_array($act,array('login','search','recent','profile'))){ + }elseif(in_array($act,array('login','search','recent','profile','index'))){ $permneed = AUTH_NONE; }elseif($act == 'revert'){ $permneed = AUTH_ADMIN; -- cgit v1.2.3 From ee4d22e0a02a665a30a387ba95e614c22600862b Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Sun, 27 Jun 2010 14:54:00 +0100 Subject: FS#1826, stop forcing rendering of metadata when updating metadata in addLogEntry() --- inc/changelog.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/changelog.php b/inc/changelog.php index d4130ac99..d5cd8308c 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -86,7 +86,7 @@ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extr if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name']; } $meta['last_change'] = $logline; - p_set_metadata($id, $meta, true); + p_set_metadata($id, $meta); } // add changelog lines -- cgit v1.2.3 From 226bf2dc02909d49bb6afbd7b5018572aeba6050 Mon Sep 17 00:00:00 2001 From: Gina Haeussge Date: Sun, 27 Jun 2010 18:18:10 +0200 Subject: FS#1821: Added a permalink to the diff output --- inc/html.php | 6 ++++++ inc/lang/en/lang.php | 1 + 2 files changed, 7 insertions(+) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 3398e8fb9..1b9a8d680 100644 --- a/inc/html.php +++ b/inc/html.php @@ -991,6 +991,12 @@ function html_diff($text='',$intro=true){ $tdf = new TableDiffFormatter(); if($intro) print p_locale_xhtml('diff'); + + if (!$text) { + ptln(''); + } ?> diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 802a90360..c9d00eba2 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -163,6 +163,7 @@ $lang['current'] = 'current'; $lang['yours'] = 'Your Version'; $lang['diff'] = 'Show differences to current revisions'; $lang['diff2'] = 'Show differences between selected revisions'; +$lang['difflink'] = 'Link to this diff output'; $lang['line'] = 'Line'; $lang['breadcrumb'] = 'Trace'; $lang['youarehere'] = 'You are here'; -- cgit v1.2.3 From 09edb7113c19b07ca11a79c2b0571f45ed2cc2eb Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 27 Jun 2010 18:44:23 +0200 Subject: use config cascade for userscripts and styles FS#1678 --- inc/config_cascade.php | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'inc') diff --git a/inc/config_cascade.php b/inc/config_cascade.php index 81c455dc3..3ae68a000 100644 --- a/inc/config_cascade.php +++ b/inc/config_cascade.php @@ -47,6 +47,15 @@ $config_cascade = array( 'default' => array(DOKU_CONF.'wordblock.conf'), 'local' => array(DOKU_CONF.'wordblock.local.conf'), ), + 'userstyle' => array( + 'default' => DOKU_CONF.'userstyle.css', + 'print' => DOKU_CONF.'printstyle.css', + 'feed' => DOKU_CONF.'feedstyle.css', + 'all' => DOKU_CONF.'allstyle.css', + ), + 'userscript' => array( + 'default' => DOKU_CONF.'userscript.js' + ), 'acl' => array( 'default' => DOKU_CONF.'acl.auth.php', ), -- cgit v1.2.3 From c5bd986f539a03c37d0a6f10e758e4ecd3d51853 Mon Sep 17 00:00:00 2001 From: Dominik Eckelmann Date: Thu, 24 Jun 2010 15:56:31 +0200 Subject: updated german subscription translation. --- inc/lang/de/subscr_form.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/lang/de/subscr_form.txt b/inc/lang/de/subscr_form.txt index d606508c6..7bf74f2cf 100644 --- a/inc/lang/de/subscr_form.txt +++ b/inc/lang/de/subscr_form.txt @@ -1,3 +1,3 @@ -====== Subscription Management ====== +====== Abonnementverwaltung ====== -This page allows you to manage your subscriptions for the current page and namespace. +Hier kannst du deine Abonnements für die aktuelle Seite oder den aktuellen [[doku>Namespaces|Namespace]] verwalten. -- cgit v1.2.3 From b26cdbbe55ab83f30ecba9deee8b3541cb005a88 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 1 Jul 2010 12:59:59 +0200 Subject: Support ns; ids --- inc/pageutils.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/pageutils.php b/inc/pageutils.php index 43c84038f..a2efdc5d5 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -437,7 +437,8 @@ function resolve_pageid($ns,&$page,&$exists){ $file = wikiFN($page); // if ends with colon or slash we have a namespace link - if(substr($page,-1) == ':' || ($conf['useslash'] && substr($page,-1) == '/')){ + if(in_array(substr($page,-1), array(':', ';')) || + ($conf['useslash'] && substr($page,-1) == '/')){ if(page_exists($page.$conf['start'])){ // start page inside namespace $page = $page.$conf['start']; -- cgit v1.2.3 From 9708106bad6f238d9aeaccc35258350a66604a6c Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 1 Jul 2010 13:02:28 +0200 Subject: Fix ns: and ns:start handling --- inc/pageutils.php | 4 ++-- inc/parser/renderer.php | 14 +++----------- 2 files changed, 5 insertions(+), 13 deletions(-) (limited to 'inc') diff --git a/inc/pageutils.php b/inc/pageutils.php index a2efdc5d5..969a6ea0d 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -185,10 +185,10 @@ function noNSorNS($id) { global $conf; $p = noNS($id); - if ($p == $conf['start']) { + if ($p == $conf['start'] || $p == false) { $p = curNS($id); if ($p == false) { - return noNS($id); + return $conf['start']; } } return $p; diff --git a/inc/parser/renderer.php b/inc/parser/renderer.php index 4dac75d21..7e52cfce2 100644 --- a/inc/parser/renderer.php +++ b/inc/parser/renderer.php @@ -271,20 +271,12 @@ class Doku_Renderer extends DokuWiki_Plugin { list($name,$hash) = explode('#',$name,2); if($hash) return $hash; - //trim colons or slash of a namespace link - $name = rtrim($name,':'); - if($conf['useslash']) - $name = rtrim($name,'/'); - + $name = strtr($name,';',':'); if($conf['useslash']){ - $nssep = '[:;/]'; - }else{ - $nssep = '[:;]'; + $name = strtr($name,'/',':'); } - $name = preg_replace('!.*'.$nssep.'!','',$name); - if(!$name) return $this->_simpleTitle($conf['start']); - return $name; + return noNSorNS($name); } /** -- cgit v1.2.3 From 138cf4d45bdc87d14db5c07e22685c0482085c1f Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 1 Jul 2010 16:11:22 +0200 Subject: Fix table edit marker class element in XHTML --- inc/parser/xhtml.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 78f6d3f84..5a3d945d1 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -906,7 +906,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { global $lang; // initialize the row counter used for classes $this->_counter['row_counter'] = 0; - $this->doc .= '
'.DOKU_LF; + $this->doc .= '
'.DOKU_LF; } function table_close($pos){ -- cgit v1.2.3 From 8a52cdf35af9a714e9b330fa0aace6606b071c89 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Thu, 1 Jul 2010 19:43:47 +0200 Subject: XML-RPC fix for untyped string values FS#1993 includes unit tests. Extensions welcome. --- inc/IXR_Library.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/IXR_Library.php b/inc/IXR_Library.php index 2fb7dfe68..c7f83a6d6 100644 --- a/inc/IXR_Library.php +++ b/inc/IXR_Library.php @@ -136,6 +136,7 @@ class IXR_Message { var $_value; var $_currentTag; var $_currentTagContents; + var $_lastseen; // The XML parser var $_parser; function IXR_Message ($message) { @@ -194,6 +195,7 @@ class IXR_Message { $this->_arraystructs[] = array(); break; } + $this->_lastseen = $tag; } function cdata($parser, $cdata) { $this->_currentTagContents .= $cdata; @@ -225,9 +227,11 @@ class IXR_Message { break; case 'value': // "If no type is indicated, the type is string." - $value = (string)$this->_currentTagContents; - $this->_currentTagContents = ''; - $valueFlag = true; + if($this->_lastseen == 'value'){ + $value = (string)$this->_currentTagContents; + $this->_currentTagContents = ''; + $valueFlag = true; + } break; case 'boolean': $value = (boolean)trim($this->_currentTagContents); @@ -278,6 +282,7 @@ class IXR_Message { $this->params[] = $value; } } + $this->_lastseen = $tag; } } -- cgit v1.2.3 From b7c7128b49e4ee249019c666a711792890352b72 Mon Sep 17 00:00:00 2001 From: Kirill Krasnov Date: Wed, 6 Jan 2010 16:45:24 +0200 Subject: Fix for Lotus ldap auth FS#1828 --- inc/auth/ldap.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/auth/ldap.class.php b/inc/auth/ldap.class.php index fc1a7ddb6..e1922ce86 100644 --- a/inc/auth/ldap.class.php +++ b/inc/auth/ldap.class.php @@ -218,7 +218,7 @@ class auth_ldap extends auth_basic { $user_result = array_merge($info,$user_result); //get groups for given user if grouptree is given - if ($this->cnf['grouptree'] && $this->cnf['groupfilter']) { + if ($this->cnf['grouptree'] || $this->cnf['groupfilter']) { $base = $this->_makeFilter($this->cnf['grouptree'], $user_result); $filter = $this->_makeFilter($this->cnf['groupfilter'], $user_result); $sr = $this->_ldapsearch($this->con, $base, $filter, $this->cnf['groupscope'], array($this->cnf['groupkey'])); -- cgit v1.2.3 From e03f8da34f265d1085e18bec8aa6cd627179cbef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Kj=C3=A6r=20Pedersen?= Date: Fri, 2 Jul 2010 21:19:56 +0200 Subject: Danish language update --- inc/lang/da/lang.php | 49 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 10 deletions(-) (limited to 'inc') diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index 9fc92b2e8..574917082 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -12,6 +12,7 @@ * @author Daniel Ejsing-Duun * @author Erik Bjørn Pedersen * @author rasmus@kinnerup.com + * @author Michael Pedersen subben@gmail.com */ $lang['encoding'] = 'ISO 8859-1 '; $lang['direction'] = 'ltr'; @@ -98,7 +99,36 @@ $lang['txt_overwrt'] = 'Overskriv eksisterende fil'; $lang['lockedby'] = 'Midlertidig låst af'; $lang['lockexpire'] = 'Lås udløber kl.'; $lang['willexpire'] = 'Din lås på dette dokument udløber om et minut.\nTryk på Forhåndsvisning-knappen for at undgå konflikter.'; -$lang['notsavedyet'] = 'Der er lavet ændringer i dokumentet. Hvis du fortsætter vil ændringerne gå tabt.\nØnsker du at fortsætte?'; +$lang['js']['notsavedyet'] = 'Ugemte ændringer vil blive mistet +Fortsæt alligevel?'; +$lang['js']['searchmedia'] = 'Søg efter filer'; +$lang['js']['keepopen'] = 'Hold vindue åbent ved valg'; +$lang['js']['hidedetails'] = 'Skjul detaljer'; +$lang['js']['mediatitle'] = 'Link indstillinger'; +$lang['js']['mediadisplay'] = 'Link type'; +$lang['js']['mediaalign'] = 'Juster'; +$lang['js']['mediasize'] = 'Billede størrelse'; +$lang['js']['mediaclose'] = 'Luk'; +$lang['js']['mediainsert'] = 'Indsæt'; +$lang['js']['mediadisplayimg'] = 'Vis billedet'; +$lang['js']['mediadisplaylnk'] = 'Vis kun linket'; +$lang['js']['mediasmall'] = 'Lille version'; +$lang['js']['mediamedium'] = 'Medium version'; +$lang['js']['medialarge'] = 'Stor version'; +$lang['js']['mediaoriginal'] = 'Original version'; +$lang['js']['mediadirect'] = 'Direkte link til originalen'; +$lang['js']['medianolnk'] = 'Intet link'; +$lang['js']['medianolink'] = 'Link ikke billedet'; +$lang['js']['medialeft'] = 'Juster billedet til venstre'; +$lang['js']['mediaright'] = 'Juster billedet til højre'; +$lang['js']['mediacenter'] = 'Centreret'; +$lang['js']['medianoalign'] = 'Brug ingen justering'; +$lang['js']['nosmblinks'] = 'Henvisninger til Windows shares virker kun i Microsoft Internet Explorer. +Du kan stadig kopiere og indsætte linket.'; +$lang['js']['linkwiz'] = 'guiden til henvisninger'; +$lang['js']['linkto'] = 'Henvise til:'; +$lang['js']['del_confirm'] = 'Slet valgte post(er)?'; +$lang['js']['mu_btn'] = 'Overføre flere filer på en gang'; $lang['rssfailed'] = 'Der opstod en fejl ved indhentning af: '; $lang['nothingfound'] = 'Søgningen gav intet resultat.'; $lang['mediaselect'] = 'Vælg mediefil'; @@ -116,15 +146,6 @@ $lang['deletefail'] = '"%s" kunne ikke slettes - check rettighederne. $lang['mediainuse'] = 'Filen "%s" er ikke slettet - den er stadig i brug.'; $lang['namespaces'] = 'Navnerum'; $lang['mediafiles'] = 'Tilgængelige filer i'; -$lang['js']['searchmedia'] = 'Søg efter filer'; -$lang['js']['keepopen'] = 'Hold vindue åbent ved valg'; -$lang['js']['hidedetails'] = 'Skjul detaljer'; -$lang['js']['nosmblinks'] = 'Henvisninger til Windows shares virker kun i Microsoft Internet Explorer. -Du kan stadig kopiere og indsætte linket.'; -$lang['js']['linkwiz'] = 'guiden til henvisninger'; -$lang['js']['linkto'] = 'Henvise til:'; -$lang['js']['del_confirm'] = 'Slet valgte post(er)?'; -$lang['js']['mu_btn'] = 'Overføre flere filer på en gang'; $lang['mediausage'] = 'Brug den følgende syntaks til at henvise til denne fil:'; $lang['mediaview'] = 'Vis oprindelig fil'; $lang['mediaroot'] = 'rod'; @@ -197,6 +218,13 @@ $lang['img_copyr'] = 'Ophavsret'; $lang['img_format'] = 'Format'; $lang['img_camera'] = 'Kamera'; $lang['img_keywords'] = 'Emneord'; +$lang['subscr_subscribe_success'] = 'Tilføjede %s til abonnement listen for %s'; +$lang['subscr_subscribe_error'] = 'Fejl ved tilføjelse af %s til abonnement listen for %s'; +$lang['subscr_unsubscribe_success'] = 'Fjernede %s fra abonnement listen for %s'; +$lang['subscr_unsubscribe_error'] = 'Fejl ved fjernelse af %s fra abonnement listen for %s'; +$lang['subscr_m_receive'] = 'Modtag'; +$lang['subscr_style_every'] = 'email på hver ændring'; +$lang['subscr_style_list'] = 'list af ændrede sider siden sidste email (hver %.2f dage)'; $lang['authmodfailed'] = 'Fejl i brugervalideringens konfiguration. Kontakt venligst wikiens administrator.'; $lang['authtempfail'] = 'Brugervalidering er midlertidigt ude af drift. Hvis dette er vedvarende, kontakt venligst wikiens administrator.'; $lang['i_chooselang'] = 'Vælg dit sprog'; @@ -222,6 +250,7 @@ $lang['i_pol0'] = 'Åben Wiki (alle kan læse, skrive og uploade) $lang['i_pol1'] = 'Offentlig Wiki (alle kan læse, kun registrerede brugere kan skrive og overføre)'; $lang['i_pol2'] = 'Lukket Wiki (kun for registerede brugere kan læse, skrive og overføre)'; $lang['i_retry'] = 'Forsøg igen'; +$lang['i_license'] = 'Vælg venligst licensen du vil tilføje dit indhold under:'; $lang['mu_intro'] = 'Her kan du overføre flere filer af gangen. Klik på gennemse for at tilføje dem til køen. Tryk på overføre knappen når du er klar.'; $lang['mu_gridname'] = 'Filnavn'; $lang['mu_gridsize'] = 'Størrelse'; -- cgit v1.2.3 From 12095b9a31ef3b7bf0d99346efd02ad6eb75668a Mon Sep 17 00:00:00 2001 From: Pasha Topchiyev Date: Fri, 2 Jul 2010 21:25:23 +0200 Subject: Azerbaijani Translation added --- inc/lang/az/admin.txt | 4 + inc/lang/az/adminplugins.txt | 1 + inc/lang/az/backlinks.txt | 4 + inc/lang/az/conflict.txt | 5 + inc/lang/az/denied.txt | 3 + inc/lang/az/diff.txt | 4 + inc/lang/az/draft.txt | 5 + inc/lang/az/edit.txt | 1 + inc/lang/az/editrev.txt | 2 + inc/lang/az/index.txt | 4 + inc/lang/az/install.html | 7 ++ inc/lang/az/lang.php | 245 +++++++++++++++++++++++++++++++++++++++++ inc/lang/az/locked.txt | 3 + inc/lang/az/login.txt | 4 + inc/lang/az/mailtext.txt | 18 +++ inc/lang/az/newpage.txt | 3 + inc/lang/az/norev.txt | 4 + inc/lang/az/password.txt | 11 ++ inc/lang/az/preview.txt | 4 + inc/lang/az/pwconfirm.txt | 14 +++ inc/lang/az/read.txt | 2 + inc/lang/az/recent.txt | 5 + inc/lang/az/register.txt | 3 + inc/lang/az/registermail.txt | 15 +++ inc/lang/az/resendpwd.txt | 3 + inc/lang/az/revisions.txt | 3 + inc/lang/az/searchpage.txt | 5 + inc/lang/az/showrev.txt | 2 + inc/lang/az/stopwords.txt | 64 +++++++++++ inc/lang/az/subscribermail.txt | 19 ++++ inc/lang/az/updateprofile.txt | 5 + inc/lang/az/uploadmail.txt | 15 +++ inc/lang/az/wordblock.txt | 3 + 33 files changed, 490 insertions(+) create mode 100755 inc/lang/az/admin.txt create mode 100755 inc/lang/az/adminplugins.txt create mode 100755 inc/lang/az/backlinks.txt create mode 100755 inc/lang/az/conflict.txt create mode 100755 inc/lang/az/denied.txt create mode 100755 inc/lang/az/diff.txt create mode 100755 inc/lang/az/draft.txt create mode 100755 inc/lang/az/edit.txt create mode 100755 inc/lang/az/editrev.txt create mode 100755 inc/lang/az/index.txt create mode 100755 inc/lang/az/install.html create mode 100644 inc/lang/az/lang.php create mode 100755 inc/lang/az/locked.txt create mode 100755 inc/lang/az/login.txt create mode 100755 inc/lang/az/mailtext.txt create mode 100755 inc/lang/az/newpage.txt create mode 100755 inc/lang/az/norev.txt create mode 100755 inc/lang/az/password.txt create mode 100755 inc/lang/az/preview.txt create mode 100755 inc/lang/az/pwconfirm.txt create mode 100755 inc/lang/az/read.txt create mode 100755 inc/lang/az/recent.txt create mode 100755 inc/lang/az/register.txt create mode 100755 inc/lang/az/registermail.txt create mode 100755 inc/lang/az/resendpwd.txt create mode 100755 inc/lang/az/revisions.txt create mode 100755 inc/lang/az/searchpage.txt create mode 100755 inc/lang/az/showrev.txt create mode 100755 inc/lang/az/stopwords.txt create mode 100755 inc/lang/az/subscribermail.txt create mode 100755 inc/lang/az/updateprofile.txt create mode 100755 inc/lang/az/uploadmail.txt create mode 100755 inc/lang/az/wordblock.txt (limited to 'inc') diff --git a/inc/lang/az/admin.txt b/inc/lang/az/admin.txt new file mode 100755 index 000000000..000caa06d --- /dev/null +++ b/inc/lang/az/admin.txt @@ -0,0 +1,4 @@ +====== İdarəetmə ====== + +Aşağıda Dokuwiki-də mümkün olan administrativ əməliyyatların siyahısı göstərilib. + diff --git a/inc/lang/az/adminplugins.txt b/inc/lang/az/adminplugins.txt new file mode 100755 index 000000000..62b1f8793 --- /dev/null +++ b/inc/lang/az/adminplugins.txt @@ -0,0 +1 @@ +===== Əlavə Plugin-lər ===== diff --git a/inc/lang/az/backlinks.txt b/inc/lang/az/backlinks.txt new file mode 100755 index 000000000..72a7c858d --- /dev/null +++ b/inc/lang/az/backlinks.txt @@ -0,0 +1,4 @@ +====== Əks linklər ====== + +Bu, bu səhifəyə link saxlayan səhifələrin siyahısıdır. + diff --git a/inc/lang/az/conflict.txt b/inc/lang/az/conflict.txt new file mode 100755 index 000000000..908be09f1 --- /dev/null +++ b/inc/lang/az/conflict.txt @@ -0,0 +1,5 @@ +====== Daha yeni versiya var ====== + +Düzəliş etdiyiniz sənədin daha yeni versiyası var. Siz və başqa istifadəçi eyni zamanda eyni sənədi düzəliş edən zaman belə vəziyyət yaranır. + +Aşağıda göstərilən fərqlər ilə tanış olun və lazım olan versiyanı təyin edin. Əgər ''Yadda Saxla'' düyməsini sıxsanız, onda sizin versiya seçilmiş olur. ''İmtina'' düyməsini sıxsanız isə onda hazırki versiya seçilmiş olur. diff --git a/inc/lang/az/denied.txt b/inc/lang/az/denied.txt new file mode 100755 index 000000000..a68b08c8c --- /dev/null +++ b/inc/lang/az/denied.txt @@ -0,0 +1,3 @@ +====== Müraciət qadağan edilmişdir ====== + +Sizin bu əməliyyat üçün kifayət qədər haqqınız yoxdur. Bəlkə, Siz sistemə oz istifadəçi adınız ilə girməyi unutmusunuz? diff --git a/inc/lang/az/diff.txt b/inc/lang/az/diff.txt new file mode 100755 index 000000000..a944f84f4 --- /dev/null +++ b/inc/lang/az/diff.txt @@ -0,0 +1,4 @@ +====== Fərqlər ====== + +Burada bu səhifənin seçilmiş və hazırki versiyaların arasında olan fərqlər göstərilib. + diff --git a/inc/lang/az/draft.txt b/inc/lang/az/draft.txt new file mode 100755 index 000000000..65c743de3 --- /dev/null +++ b/inc/lang/az/draft.txt @@ -0,0 +1,5 @@ +====== Qaralama tapılıb ====== + +Bu səhifənin son düzəlişi düzgün başa çatdırılmamışdir. Düzəliş zamanı qaralama avtomatik yadda saxlanılmışdır. İndi Siz onu açıb düzəlişi davam edə bilərsiniz. Qaralama versiyası aşağıda göstərilib. + +İtmiş versiyanı //qaytarmaq//, qaralamanı //silmək//, və ya düzəlişi //imtina// etmək istədiyinizi təyin edin. diff --git a/inc/lang/az/edit.txt b/inc/lang/az/edit.txt new file mode 100755 index 000000000..7ce66307e --- /dev/null +++ b/inc/lang/az/edit.txt @@ -0,0 +1 @@ +Səhifədə düzəliş edin və ''Yadda Saxla'' düyməsini sıxın. Sintaksis ilə tanış olmaq üçün [[wiki:syntax]] səhifəsini oxuyun. Ançaq səhifəni **daha yaxşı** etməki istədiyiniz halda düzəliş etməyinizi xahiş edirik. Əgər Siz nəyi isə ancaq test etmək istəyirsiniz sə, onda [[playground:playground]] xüsusi səhifədən istifadə edin. diff --git a/inc/lang/az/editrev.txt b/inc/lang/az/editrev.txt new file mode 100755 index 000000000..8e98d2ff3 --- /dev/null +++ b/inc/lang/az/editrev.txt @@ -0,0 +1,2 @@ +**Sənədin köhnə versiyasını açmısınız!** Bu versiyanı yadda saxlasanız, bu mətn ilə olan yeni hazırki versiya yaratmış olarsınız. +---- diff --git a/inc/lang/az/index.txt b/inc/lang/az/index.txt new file mode 100755 index 000000000..dc3ffa3b0 --- /dev/null +++ b/inc/lang/az/index.txt @@ -0,0 +1,4 @@ +====== Mündəricat ====== + +Burada mövcud olan səhifələr Namespace-lərə ([[doku>namespaces|namespaces]]) görə sıralanmış halda göstərilib. + diff --git a/inc/lang/az/install.html b/inc/lang/az/install.html new file mode 100755 index 000000000..d41511438 --- /dev/null +++ b/inc/lang/az/install.html @@ -0,0 +1,7 @@ +

Bu səhifə Sizə DokuWiki-ni quraşdırmaqa kömək etmək üçündür. Quraşdırma haqqına əlavə məlumatı onun dokumentasiya səhifəsində var.

+ +

Səhifələri və əlavə məlumatları (məsələn, şəkillər, axtarış indeksi, səhifələrin əvvəlki versiyaları, və sairə) saxlamaq üçün DokuWiki adi fayllardan istifadə edir. DokuWiki-nin uğurlu işləməsi üçün bu faylların yerləşən qovluqa yazı imkanı vacib lazımdır. Bu quraşdırma proqramı sistemin qovluqlarına olan haqları dəyişə bilmir. Çox vaxt bu birbaşa shell-dən, və ya, əgər Siz hostinq-dən istifadə edirsinizsə, FTP vasitəsi ya idarəetmə paneli vasitəsi (məsələn, cPanel) ilə edilir.

+ +

Quraşdırma proqramı sizin DokuWiki-nizdə haqlar kontrolu siyahısını (ACL) quracaq. Bu, sistemə girdikdən sonra, administratora xüsusi menü vasitəsi ilə plugin-ləri quraşdırmaq, istifadiçiləri və səhifələrə giriş haqlarını idarəetmək, və həmçinin sistemin konfiqurasiyasını quraşdırmağa imkan verəcək. Haqlar kontrolu siyahısı DokuWiki-yə mütləq lazım deyil, amma o Sizə DokuWiki-nin idarəetməsini asanlaşdırır.

+ +

Təcrübəli istifadəçilər və xüsusi tələbləri olan istifadəçilərə əlavə məlumat üçün quraşdırılma prosesikonfiqurasiya parametrləri link-lərinə muraciyət etməsk tövsiyyə olunur.

diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php new file mode 100644 index 000000000..8d96f08cc --- /dev/null +++ b/inc/lang/az/lang.php @@ -0,0 +1,245 @@ + + */ +$lang['encoding'] = ' utf-8'; +$lang['direction'] = 'ltr'; +$lang['doublequoteopening'] = '«'; +$lang['doublequoteclosing'] = '»'; +$lang['singlequoteopening'] = '„'; +$lang['singlequoteclosing'] = '“'; +$lang['apostrophe'] = '’'; +$lang['btn_edit'] = 'Səhifəyə düzəliş et'; +$lang['btn_source'] = 'Səhifənin ilkin mətnini göstər'; +$lang['btn_show'] = 'Səhifəni göstər'; +$lang['btn_create'] = 'Səhifəni yarat'; +$lang['btn_search'] = 'Axtarış'; +$lang['btn_save'] = 'Yadda saxla'; +$lang['btn_preview'] = 'Baxış'; +$lang['btn_top'] = 'Yuxarı'; +$lang['btn_newer'] = '<< daha təzələr'; +$lang['btn_older'] = 'daha köhnələr >>'; +$lang['btn_revs'] = 'Səhifənin tarixçəsi'; +$lang['btn_recent'] = 'Yaxın dəyişiklər'; +$lang['btn_upload'] = 'Serverə yükə'; +$lang['btn_cancel'] = 'İmtina'; +$lang['btn_index'] = 'Bütün səhifələr'; +$lang['btn_secedit'] = 'Düzəliş et'; +$lang['btn_login'] = 'Giriş'; +$lang['btn_logout'] = 'Cıxış'; +$lang['btn_admin'] = 'İdarəetmə'; +$lang['btn_update'] = 'Yenilə'; +$lang['btn_delete'] = 'Sil'; +$lang['btn_back'] = 'Geri'; +$lang['btn_backlink'] = 'Bura olan link-lər'; +$lang['btn_backtomedia'] = 'media-fayl seçiminə qayıt'; +$lang['btn_subscribe'] = 'Abunə ol (bütün dəyişiklər)'; +$lang['btn_unsubscribe'] = 'Abunəlikdən çıx (bütün dəyişiklər)'; +$lang['btn_subscribens'] = 'Abunə ol (bu bölümün dəyişikləri)'; +$lang['btn_unsubscribens'] = 'Abunəlikdən çıx (bu bölümün dəyişikləri)'; +$lang['btn_profile'] = 'Profil'; +$lang['btn_reset'] = 'Boşalt'; +$lang['btn_resendpwd'] = 'Yeni şifrəni göndər'; +$lang['btn_draft'] = 'Qaralamada düzəliş etmək'; +$lang['btn_recover'] = 'Qaralamanı qaytar'; +$lang['btn_draftdel'] = 'Qaralamanı sil'; +$lang['btn_revert'] = 'Qaytar'; +$lang['loggedinas'] = 'İstifadəcinin adı'; +$lang['user'] = 'istifadəci adı'; +$lang['pass'] = 'Şifrə'; +$lang['newpass'] = 'Yeni şifrə'; +$lang['oldpass'] = 'Hazırki şifrəni daxil edin'; +$lang['passchk'] = 'təkrarlayın'; +$lang['remember'] = 'Məni yadda saxla'; +$lang['fullname'] = 'Tam ad'; +$lang['email'] = 'E-Mail'; +$lang['register'] = 'Qeydiyyatdan keç'; +$lang['profile'] = 'İstifadəçi profili'; +$lang['badlogin'] = 'Təssüf ki istifadəçi adı və ya şifrə səhvdir.'; +$lang['minoredit'] = 'Az dəyişiklər'; +$lang['draftdate'] = 'Qaralama yadda saxlandı'; +$lang['nosecedit'] = 'Bu vaxt ərzində səhifə dəyişilmişdir, və bölmə haqqında məlumat köhnəlmişdir. Səhifənin tam versiyası yüklənmişdir.'; +$lang['regmissing'] = 'Təssüf ki Siz bütün xanələri doldurmalısınız.'; +$lang['reguexists'] = 'Təssüf ki bu ad ilə istifadəçi artıq mövcuddur.'; +$lang['regsuccess'] = 'İstivadəci yaradıldı və şifrə sizin e-maila göndərildi.'; +$lang['regsuccess2'] = 'İstifadəçi yaradıldı.'; +$lang['regmailfail'] = 'Deyəsən, xəta şifrə e-maila göndərildikdə baş verdi. Xaiş olunur, ki administrator ilə əlaqə saxlayasınız!'; +$lang['regbadmail'] = 'Deyəsən, daxil edilmiş e-mail ünvanı səhvdir. Əgər şübhəniz var isə administrator ilə əlaqə saxlayın.'; +$lang['regbadpass'] = 'Daxil edilmiş iki şifrə fərqlidir. Xaiş olunur ki, yenidən daxil edəsiniz.'; +$lang['regpwmail'] = 'Sizin DokuWiki sistemi üçün şifrəniz'; +$lang['reghere'] = 'Sizin hələ istifadəçi adınız yoxdur? Buyurun əldə edin'; +$lang['profna'] = 'Bu wiki profilin dəyişdirilməsini dəstəkləmir'; +$lang['profnochange'] = 'Dəyişiklər edilmədi, profil yenilənmədi.'; +$lang['profnoempty'] = 'istifadəci adı və e-mail ünvanı boş ola bilməz.'; +$lang['profchanged'] = 'İstifadəçi profili uğurla yeniləndi.'; +$lang['pwdforget'] = 'Şifrəni yaddan çıxartmısız? Buyurun yenisini əldə edin'; +$lang['resendna'] = 'Bu wiki şifrəni yenidən göndərməyi dəstəkləmir.'; +$lang['resendpwd'] = 'Yeni şifrəni göndər:'; +$lang['resendpwdmissing'] = 'Formanın bütün xanəlırini doldurun.'; +$lang['resendpwdnouser'] = 'Verilənlər bazasında bu ad ilə istifadəçi tapılmadı.'; +$lang['resendpwdbadauth'] = 'Ativləşdirmə kodu səhvdir. Link-i tam olaraq köçürdüyünüzü yoxlayın. '; +$lang['resendpwdconfirm'] = 'Şifrəni təstiqləmək üçün sizin e-maila link göndərilmişdir. '; +$lang['resendpwdsuccess'] = 'Yeni şifrəniz e-maila göndərildi.'; +$lang['license'] = 'Fərqli şey göstərilmiş hallardan başqa, bu wiki-nin mətni aşağıda göstərilmiş lisenziyanın şərtlərinə uyğun təqdim olunur:'; +$lang['licenseok'] = 'Qeyd: bu səhifəni düzəliş edərək, Siz elədiyiniz düzəlişi aşağıda göstərilmiş lisenziyanın şərtlərinə uyğun istifadəsinə razılıq verirsiniz:'; +$lang['searchmedia'] = 'Faylın adına görə axtarış:'; +$lang['searchmedia_in'] = '%s-ın içində axtarış'; +$lang['txt_upload'] = 'Serverə yükləmək üçün fayl seçin'; +$lang['txt_filename'] = 'Faylın wiki-də olan adını daxil edin (mütləq deyil)'; +$lang['txt_overwrt'] = 'Mövcud olan faylın üstündən yaz'; +$lang['lockedby'] = 'В данный момент заблокирован Bu an blokdadır'; +$lang['lockexpire'] = 'Blok bitir:'; +$lang['willexpire'] = 'Sizin bu səhifədə dəyişik etmək üçün blokunuz bir dəqiqə ərzində bitəcək.\nMünaqişələrdən yayınmaq və blokun taymerini sıfırlamaq üçün, baxış düyməsini sıxın.'; +$lang['notsavedyet'] = 'Yaddaşa yazılmamış dəyişiklər itəcəklər.\nSiz davam etmək istəyirsiz?'; +$lang['rssfailed'] = 'Aşağıda göstərilmiş xəbər lentini əldə edən zaman xəta baş verdi: '; +$lang['nothingfound'] = 'Heçnə tapılmadı.'; +$lang['mediaselect'] = 'Mediya-faylın seçilməsi'; +$lang['fileupload'] = 'Mediya-faylın serverə yüklənməsi'; +$lang['uploadsucc'] = 'Yüklənmə uğur ilə başa çatdı'; +$lang['uploadfail'] = 'Yüklənmə zamanı xəta baş veri. Bəlkə giriş haqları ilə problem var?'; +$lang['uploadwrong'] = 'Yuklənməyə qadağa qoyuldu. Belə növlu faylları serverə yükləmək olmaz. '; +$lang['uploadexist'] = 'Bu adlı fayl artıq serverdə var. Yükləmə alınmadı .'; +$lang['uploadbadcontent'] = 'Faylın tərkibi %s növünə uyğun gəlmir.'; +$lang['uploadspam'] = 'Yüklənmə spam-filtri tərəfindən dayandırıldı.'; +$lang['uploadxss'] = 'Yüklənmə təhlükəsizlik nəzərindən dayandırılmışdır.'; +$lang['uploadsize'] = 'Yüklənilmiş fayl çox boyükdür. (maks. %s)'; +$lang['deletesucc'] = '"%s" adlı fayl silindi.'; +$lang['deletefail'] = '"%s" adlı fayl silinmədi. Faylın giriş haqlarını yoxlayın.'; +$lang['mediainuse'] = '"%s" adlı fayl silinmədi. Fayl hələ istifadə olunur'; +$lang['namespaces'] = 'Namespace-lər'; +$lang['mediafiles'] = 'Mövcud olan fayllar'; +$lang['js']['searchmedia'] = 'Faylların axtarışı'; +$lang['js']['keepopen'] = 'Seçimdən sonra pəncərəni açıq saxlamaq'; +$lang['js']['hidedetails'] = 'Təfərruatı gizlət'; +$lang['js']['nosmblinks'] = 'Windows-un şəbəkə qovluqlarına link ancaq Internet Explorer-dən işləyir. \nAmma Siz linki köçürə bilərsiniz.'; +$lang['js']['linkwiz'] = 'Linklər köməkçisi'; +$lang['js']['linkto'] = 'Link göstərir:'; +$lang['js']['del_confirm'] = 'Siz əminsiz ki, seçilmişləri silmək istəyirsiniz?'; +$lang['js']['mu_btn'] = 'Bir neçə faylı birdən yükləmək'; +$lang['mediausage'] = 'Bu fayla link yaratmaq üçün aşağıdakı sintaksisdən istifadə edin:'; +$lang['mediaview'] = 'Bu faylın ilkinə bax'; +$lang['mediaroot'] = 'kök'; +$lang['mediaupload'] = 'Burda faylı hazırki qovluqa yükləmək olar ("namespace"). Alt qovluqlar yaratmaq üçün, onların adlarını faylın adının avvəlinə artırın ("Adla yükləmək"). Alt qovluqların adları çütnöqtə ilə ayrılır. '; +$lang['mediaextchange'] = 'Faylın nüvü .%s -dan .%s -ya dəyişdi!'; +$lang['reference'] = 'Linklər göstərir'; +$lang['ref_inuse'] = 'Bu fayl silinə bilməz, çünki o aşağıdaki səhifələr tərəfindən istifadə olunur:'; +$lang['ref_hidden'] = 'Bəzi link-lər sizin oxumaq haqqınız olmayan səhifələrdə yerləşir'; +$lang['hits'] = 'uyğunluqlar'; +$lang['quickhits'] = 'Səhifələrin adlarında uyğunluqlar'; +$lang['toc'] = 'Mündəricat'; +$lang['current'] = 'hazırki'; +$lang['yours'] = 'Sizin versiyanız'; +$lang['diff'] = 'hazırki versiyadan fərqləri göstər'; +$lang['diff2'] = 'Versiyaların arasındaki fərqləri göstər '; +$lang['line'] = 'Sətr'; +$lang['breadcrumb'] = 'Siz ziyarət etdiniz'; +$lang['youarehere'] = 'Siz burdasınız'; +$lang['lastmod'] = 'Son dəyişiklər'; +$lang['by'] = ' Kimdən'; +$lang['deleted'] = 'silinib'; +$lang['created'] = 'yaranıb'; +$lang['restored'] = 'köhnə versiya qaytarıldı'; +$lang['external_edit'] = 'bayırdan dəyişik'; +$lang['summary'] = 'Dəyişiklər xülasəsi'; +$lang['noflash'] = 'Bu məzmuna baxmaq üçün Adobe Flash Plugin tələb olunur.'; +$lang['download'] = 'Kodu yüklə'; +$lang['mail_newpage'] = 'səhifə əlavə olundu:'; +$lang['mail_changed'] = 'səhifəyə düzəliş edildi:'; +$lang['mail_new_user'] = 'yeni istifadəçi:'; +$lang['mail_upload'] = 'fayl yükləndi:'; +$lang['qb_bold'] = 'Qalın şrift'; +$lang['qb_italic'] = 'Maili şrift'; +$lang['qb_underl'] = 'Alt-xətt'; +$lang['qb_code'] = 'Kodun mətni'; +$lang['qb_strike'] = 'Pozulmuş şrift'; +$lang['qb_h1'] = '1 dərəcəli başlıq'; +$lang['qb_h2'] = '2 dərəcəli başlıq'; +$lang['qb_h3'] = '3 dərəcəli başlıq'; +$lang['qb_h4'] = '4 dərəcəli başlıq'; +$lang['qb_h5'] = '5 dərəcəli başlıq'; +$lang['qb_h'] = 'Başlıq'; +$lang['qb_hs'] = 'Başlıq seçimi'; +$lang['qb_hplus'] = 'Daha yüksək dərəcəli başlıq'; +$lang['qb_hminus'] = 'Daha aşağı dərəcəli başlıq (altbaşlıq)'; +$lang['qb_hequal'] = 'Hazırki dərəcəli başlıq'; +$lang['qb_link'] = 'İç link'; +$lang['qb_extlink'] = 'Bayır link'; +$lang['qb_hr'] = 'Bölücü'; +$lang['qb_ol'] = 'Nömrələnmiş siyahının element'; +$lang['qb_ul'] = 'Nömrələnməmiş siyahının element'; +$lang['qb_media'] = 'Şəkillər və başqa fayllar əlavə et'; +$lang['qb_sig'] = 'İmza at'; +$lang['qb_smileys'] = 'Smayllar'; +$lang['qb_chars'] = 'Xüsusi simvollar'; +$lang['upperns'] = 'Ana namespace-ə keç'; +$lang['admin_register'] = 'İstifadəçi əlavə et'; +$lang['metaedit'] = 'Meta-məlumatlarda düzəliş et'; +$lang['metasaveerr'] = 'Meta-məlumatları yazan zamanı xəta'; +$lang['metasaveok'] = 'Meta-məlumatlar yadda saxlandı'; +$lang['img_backto'] = 'Qayıd'; +$lang['img_title'] = 'Başlıq'; +$lang['img_caption'] = 'İmza'; +$lang['img_date'] = 'Tarix'; +$lang['img_fname'] = 'Faylın adı'; +$lang['img_fsize'] = 'Boy'; +$lang['img_artist'] = 'Şkilin müəllifi'; +$lang['img_copyr'] = 'Müəllif hüquqları'; +$lang['img_format'] = 'Format'; +$lang['img_camera'] = 'Model'; +$lang['img_keywords'] = 'Açar sözlər'; +$lang['subscribe_success'] = '%s adlı istifadəçi %s səhifənin paylanma siyahısına əlavə olundu'; +$lang['subscribe_error'] = '%s adlı istifadəçini %s səhifənin paylanma siyahısına əlavə etmə zamanı səhv baş verdi'; +$lang['subscribe_noaddress'] = 'Sizin profilinizdə e-mail göstərilməyib.Ona görə siz paylnma siyahılarına əlavə edilə bilməzsiniz.'; +$lang['unsubscribe_success'] = '%s adlı istifadəçi %s səhifənin paylanma siyahısından silinmişdir'; +$lang['unsubscribe_error'] = '%s adlı istifadəçini %s səhifənin paylanma siyahısından silən zaman xəta baş verdi.'; +$lang['authmodfailed'] = 'İstifadəçinin autentifikasiyasının konfiqurasiyası səhfdir. Xaiş olunur ki wiki-nin administratoru ilə əlaqə saxlayasınız.'; +$lang['authtempfail'] = 'İstifadəçilərin autentifikasiyası müvəqqəti dayandırılıb. Əgər bu problem uzun müddət davam edir sə, administrator ilə əlaqə saxlayın.'; +$lang['i_chooselang'] = 'Dili seçin/Language'; +$lang['i_installer'] = 'DokuWiki quraşdırılır'; +$lang['i_wikiname'] = 'wiki-nin adı'; +$lang['i_enableacl'] = 'Haqlar kontrolu siyahısının istifadəsinə icazə ver (tövsiyə edilir)'; +$lang['i_superuser'] = 'Super-istifadəci'; +$lang['i_problems'] = 'Quraşdırma proqramı aşağıdakı problemlər ilə üzləşdi. Davam etmək üçün onları həll etmək lazımdır. '; +$lang['i_modified'] = 'Təhlükəsizlik baxımından bu proqram ancaq yeni, dəyişməmiş halda olan DokuWiki üzərində işləyir. + Siz ya yüklənmiş quraşdırma paketini yenidən açmalısınız, ya da DokuWiki-nin tam quraşdırma instruksiyasına müraciyət etməlisiniz'; +$lang['i_funcna'] = 'PHP-nin %s funksiyası mövcud deyil. Bəlkə, o hansı sa səbəbdən sizin host-unuz tərəfindən blok edilib?'; +$lang['i_phpver'] = 'Sizin PHP-nin versiyası (%s) tələb olunan versiyadan aşagıdır (%s). Quraşdırılmış PHP-nin versiyasını yeniləyin.'; +$lang['i_permfail'] = '%s DokuWiki-yə yazı üçün bağlıdır. Bu qovluğun giriş haqlarını yoxlamaq lazımdır!'; +$lang['i_confexists'] = '%s artıq mövcuddur'; +$lang['i_writeerr'] = '%s yaradıla bilmədi. Faylın/qovluqların giriş haqlarını yaxlamaq lazımdır. Və faylı əl ilə yaradın. '; +$lang['i_badhash'] = 'dokuwiki.php tanıla bilmir və ya dəyişdirilmişdir (hash=%s)'; +$lang['i_badval'] = '%s - səhv ya boş qiymətdir'; +$lang['i_success'] = 'Konfiqurasiya uğurla başa çatdı. İndi siz install.php faylını silə bilərsiniz. + Yeni DokuWiki-nizə xoş gəlmişsiniz!'; +$lang['i_failure'] = 'Konfiqurasiya fayllarına məlumat yazan zaman səhvlər tapıldı. Yəgin ki, yeni DokuWiki-nizi istifadə etmədən öncə, Siz o xətaları əl ilə düzəltməli olacaqsınız.'; +$lang['i_policy'] = 'İlkin giriş haqları siyasəti'; +$lang['i_pol0'] = 'Tam açıq wiki (oxumaq, yazmaq, fayl yükləmək hamıya olar)'; +$lang['i_pol1'] = 'Acıq wiki (oxumaq hamıya olar, yazmaq və fayl yükləmək ancaq üzv olan istifadəçilərə olar)'; +$lang['i_pol2'] = 'Bağlı wiki (uxumaq, yazmaq və yükləmək ancaq üzv olan istifadəçilərə olar)'; +$lang['i_retry'] = 'Cəhdi təkrarla'; +$lang['mu_intro'] = 'Burda siz bir neçə faylı birdən yükləyə bilərsiniz. Fayl əlavə etmək üçün "fayl seç" düyməsini sıxın. Sonda "yüklə" düyməsini sıxın.'; +$lang['mu_gridname'] = 'Faylın adı'; +$lang['mu_gridsize'] = 'Həcmi'; +$lang['mu_gridstat'] = 'Status'; +$lang['mu_namespace'] = 'Namespace'; +$lang['mu_browse'] = 'Fayl seç'; +$lang['mu_toobig'] = 'çox böyükdür'; +$lang['mu_ready'] = 'yükləməyə hazırdı'; +$lang['mu_done'] = 'başa çatdı'; +$lang['mu_fail'] = 'xəta baş verdi'; +$lang['mu_authfail'] = 'sessiyanın vaxtı bitdi'; +$lang['mu_progress'] = '@PCT@% yükləndi'; +$lang['mu_filetypes'] = 'İçazə olan fayl növləri'; +$lang['mu_info'] = 'fayllar yükləndi.'; +$lang['mu_lasterr'] = 'Son xəta:'; +$lang['recent_global'] = '%s namespace-də baş vermiş dəyışıklərə baxırsınız. Siz həmçinin wiki-də bu yaxında baş vermiş bütün dəyişiklərə baxa bilərsiniz.'; +$lang['years'] = '%d il əvvəl'; +$lang['months'] = '%d ay əvvəl'; +$lang['weeks'] = '%d həftə əvvəl'; +$lang['days'] = '%d gün əvvəl'; +$lang['hours'] = '%d saat əvvəl'; +$lang['minutes'] = '%d dəqiqə əvvəl'; +$lang['seconds'] = '%d saniyə əvvəl'; diff --git a/inc/lang/az/locked.txt b/inc/lang/az/locked.txt new file mode 100755 index 000000000..8ab934443 --- /dev/null +++ b/inc/lang/az/locked.txt @@ -0,0 +1,3 @@ +====== Səhifə blok edilmişdir ====== + +Bu səhifə başqa istifadəçi tərəfindən dəyişdirilmə üçün blok edilmişdir. O istifadəçi dəyişdirməni başa çatdırınca ya blokun vaxtı bitincə, Siz gözləməlisiniz. diff --git a/inc/lang/az/login.txt b/inc/lang/az/login.txt new file mode 100755 index 000000000..e0a559bc1 --- /dev/null +++ b/inc/lang/az/login.txt @@ -0,0 +1,4 @@ +====== Avtorizasiya ====== + +Hazırda Siz sistemə daxil olmamısınız. Aşağıdakı formanı istifadə edib sistemə daxil olun. //Qeyd:// cookies qurlu olmalıdır. + diff --git a/inc/lang/az/mailtext.txt b/inc/lang/az/mailtext.txt new file mode 100755 index 000000000..439458658 --- /dev/null +++ b/inc/lang/az/mailtext.txt @@ -0,0 +1,18 @@ +Sizin DokuWiki-də səhifə yaradılıb ya dəyişdirilib. Ətraflı məlumat: + +Tarix : @DATE@ +Brauzer : @BROWSER@ +IP-adres : @IPADDRESS@ +Host : @HOSTNAME@ +Köhnə versiya : @OLDPAGE@ +Yeni versiya : @NEWPAGE@ +Dəyişiklərin xülasəsi : @SUMMARY@ +İstifadəçi : @USER@ + +@DIFF@ + + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/newpage.txt b/inc/lang/az/newpage.txt new file mode 100755 index 000000000..c749f20af --- /dev/null +++ b/inc/lang/az/newpage.txt @@ -0,0 +1,3 @@ +====== Bu səhifə hələ mövcud deyil ====== + +Siz yaradılmamış səhifənin link-ini acmısınız. Əgər sizin giriş haqlarınız çatırsa, siz "Səhifəni yarat" düyməsini sixib, o səhifəni yarada bilərsiniz. diff --git a/inc/lang/az/norev.txt b/inc/lang/az/norev.txt new file mode 100755 index 000000000..453dad56b --- /dev/null +++ b/inc/lang/az/norev.txt @@ -0,0 +1,4 @@ +====== Belə versiya mövcud deyil ====== + +Bu səhifənin göstərilmiş versiyası mövcud deyil. Səhifənin bütün versiyalaraının siyahısını görmək üçün, ''Səhifənin tarixçəsi'' düyməsini sıxın. + diff --git a/inc/lang/az/password.txt b/inc/lang/az/password.txt new file mode 100755 index 000000000..31bf387da --- /dev/null +++ b/inc/lang/az/password.txt @@ -0,0 +1,11 @@ +Salam @FULLNAME@! + +Sizin @TITLE@ (@DOKUWIKIURL@) üçün olan məlumatlarınız + +İstifadəçi adı : @LOGIN@ +Şifrə : @PASSWORD@ + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/preview.txt b/inc/lang/az/preview.txt new file mode 100755 index 000000000..dbeaa44f5 --- /dev/null +++ b/inc/lang/az/preview.txt @@ -0,0 +1,4 @@ +====== Baxış ====== + +Burda daxil elədiyiniz mətnin necə görünəcəyi göstərilir. Qeyd: mətn hələ **yadda saxlanılmayıb!** + diff --git a/inc/lang/az/pwconfirm.txt b/inc/lang/az/pwconfirm.txt new file mode 100755 index 000000000..177e5a1fa --- /dev/null +++ b/inc/lang/az/pwconfirm.txt @@ -0,0 +1,14 @@ +Salam @FULLNAME@! + +Kimsə @DOKUWIKIURL@ adresində yerləşən @TITLE@ adlı wiki-yə giriş üçün yeni şifrə tələb eləyib. + +Əgər o şəxs siz deyildinizsə, bu məktuba fikir verməyin. + +Tələbi təsdiq etmək üçün, aşağıdakı link-ə keçin. + +@CONFIRM@ + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/read.txt b/inc/lang/az/read.txt new file mode 100755 index 000000000..39b31f108 --- /dev/null +++ b/inc/lang/az/read.txt @@ -0,0 +1,2 @@ +Bu səhifəni ancaq oxumaq olar. Siz səhifənin ilkin mətninə baxa bilərsiniz, amma dəyişə bilməzsiniz. Əgər bunun düzgün olmadığını fikirləşirsinizsə onda administrator ilə əlaqə saxlayın. + diff --git a/inc/lang/az/recent.txt b/inc/lang/az/recent.txt new file mode 100755 index 000000000..8766d9953 --- /dev/null +++ b/inc/lang/az/recent.txt @@ -0,0 +1,5 @@ +====== Son dəyişiklər ====== + +Bu səhifələr yaxında dəyismişdirlər. + + diff --git a/inc/lang/az/register.txt b/inc/lang/az/register.txt new file mode 100755 index 000000000..eb6386f72 --- /dev/null +++ b/inc/lang/az/register.txt @@ -0,0 +1,3 @@ +====== Регистрация нового пользователя ====== + +Qeydiyyat üçün bütün aşağıdaı xanalari doldurun. **e-mail adresinizin duz olduguna** fikir verin. Əgər şıfrəni əl ilə daxil etməyiniz xaiş olunmursa, onda şifrə e-mail adresinizə göndəriləcək. İstifadəçi adı [[doku>pagename|səhifənin identifikatorunun]] məhdudiyyətlərinə uyğun olmalıdır. diff --git a/inc/lang/az/registermail.txt b/inc/lang/az/registermail.txt new file mode 100755 index 000000000..51919756f --- /dev/null +++ b/inc/lang/az/registermail.txt @@ -0,0 +1,15 @@ +Yeni istifadəçi qeydiyyatdan keçdi. Ətraflı məlumat: + +İstifadəçi adı : @NEWUSER@ +Tam adı : @NEWNAME@ +E-mail : @NEWEMAIL@ + +Tarix : @DATE@ +Brauzer : @BROWSER@ +IP adres : @IPADDRESS@ +Host : @HOSTNAME@ + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/resendpwd.txt b/inc/lang/az/resendpwd.txt new file mode 100755 index 000000000..cc286174a --- /dev/null +++ b/inc/lang/az/resendpwd.txt @@ -0,0 +1,3 @@ +====== Yeni şifrənin göndərilməsi ====== + +Yeni şifrə əldə etmək üçün aşağıda tələb olunan məlumatları daxil edin. Yeni şifrə sizin istifadəçi adınıza aid olan e-mail adresə göndəriləcək. Aşagıda daxil olunan ad - sizin bu wiki-də olan istifadəçi adınız olmalıdır. diff --git a/inc/lang/az/revisions.txt b/inc/lang/az/revisions.txt new file mode 100755 index 000000000..7164a9959 --- /dev/null +++ b/inc/lang/az/revisions.txt @@ -0,0 +1,3 @@ +====== Səhifənin tarixçəsi ====== + +Qarşınızda - hazırki sənədin dəyişiklər tarixçəsidir. Əvvəlki versiyaların birinə qayıtmaq üçün, lazım olan versiyanı seçin, ''Səhifəni düzəliş et'' düyməsini sıxın və yaddaşa yazın. diff --git a/inc/lang/az/searchpage.txt b/inc/lang/az/searchpage.txt new file mode 100755 index 000000000..4f8efe007 --- /dev/null +++ b/inc/lang/az/searchpage.txt @@ -0,0 +1,5 @@ +====== Axtarış ====== + +Qarşınızda - axtarışın nəticələridir. Əgər Siz axtardığınızı tapa bilmədinizsə, onda Siz adı axtarışınız ilə uyğun düşən yeni səhifə yarada bilərsiniz. Bunu eləmək üçün, sadəcə ''Səhifəni yarat'' düyməsini sıxın. + +===== Nəticələr ===== diff --git a/inc/lang/az/showrev.txt b/inc/lang/az/showrev.txt new file mode 100755 index 000000000..dd398704b --- /dev/null +++ b/inc/lang/az/showrev.txt @@ -0,0 +1,2 @@ +**Bu - sənədin köhnə versiyasıdır!** +---- diff --git a/inc/lang/az/stopwords.txt b/inc/lang/az/stopwords.txt new file mode 100755 index 000000000..04eb312eb --- /dev/null +++ b/inc/lang/az/stopwords.txt @@ -0,0 +1,64 @@ +# This is a list of words the indexer ignores, one word per line +# When you edit this file be sure to use UNIX line endings (single newline) +# No need to include words shorter than 3 chars - these are ignored anyway +amma +arada +arasında +başqa +başqalar +başqaların +başqanın +belə +birdən +bugün +bunu +burada +bəlkə +cəmi +dedi +dedilər +dedim +dediniz +demək +deyəsən +görə +hamını +hansı +hansılar +hansınız +həmçinin +həmişə +hərdən +hətta +həyat +indi +lazım +lazımdır +məncə +məni +niyə +nəyi +olacaq +olar +oldu +oldum +olmaq +olmaz +olub +onda +onlar +onları +onun +ozunun +qabaq +quya +sabağ +sizcə +sizi +sonra +sözsüz +şübhəsiz +səni +yaxşı +yenə +əgər diff --git a/inc/lang/az/subscribermail.txt b/inc/lang/az/subscribermail.txt new file mode 100755 index 000000000..a18525da6 --- /dev/null +++ b/inc/lang/az/subscribermail.txt @@ -0,0 +1,19 @@ +Salam! + +@TITLE@ adı wiki-də @PAGE@ adlı səhifə dəyişdirilmişdi. +Dəyişiklər aşağıda göstərilib: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Bu səhifənin dəyişiklərindən imtina etmək üçün, +@DOKUWIKIURL@ adresində yerləşən wiki-yə daxil +olun, @NEWPAGE@ səhifəsinə keçin +və 'Abunəlikdən çıx' düyməsini sıxın. + + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/updateprofile.txt b/inc/lang/az/updateprofile.txt new file mode 100755 index 000000000..569e425d4 --- /dev/null +++ b/inc/lang/az/updateprofile.txt @@ -0,0 +1,5 @@ +====== Profili yenilə ====== + +İstədiyiniz xanaları dəyiştirin. İstifadəşi adı dəyiştirilə bilməz. + + diff --git a/inc/lang/az/uploadmail.txt b/inc/lang/az/uploadmail.txt new file mode 100755 index 000000000..d538f8258 --- /dev/null +++ b/inc/lang/az/uploadmail.txt @@ -0,0 +1,15 @@ +Sizin DokuWiki-yə fayl yuklənildi. Ətraflı məlumat: + +Fayl : @MEDIA@ +Tarix : @DATE@ +Brauzer : @BROWSER@ +IP Adres : @IPADDRESS@ +Host : @HOSTNAME@ +Həcm : @SIZE@ +MIME Növ : @MIME@ +İstifadəçi : @USER@ + +-- +Bu məktub DokuWiki tərəfindən yaradıldı. +DokuWiki aşağıdakı adresdə yerləşir: +@DOKUWIKIURL@ diff --git a/inc/lang/az/wordblock.txt b/inc/lang/az/wordblock.txt new file mode 100755 index 000000000..ec8b102af --- /dev/null +++ b/inc/lang/az/wordblock.txt @@ -0,0 +1,3 @@ +====== SPAM-ın qarşısı alındı ====== + +Sizin dəyişiklər **yaddaşa saxlanmadı**, çünki onların içində bir və ya daha çox içazəsiz sözlər var idi. Əgər siz wiki-yə spam əlavə etmək istəyirdinizsə, onda utanmırsız?! Əgər siz bunu səhv hesab edirsinizsə, onda administrator ilə əlaqə saxlayın. -- cgit v1.2.3 From 8d9e6ae7b19a9971ec0d95cc904de6c07e6647dc Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Fri, 2 Jul 2010 23:56:08 +0100 Subject: improved diff permalink --- inc/html.php | 7 ++++--- inc/lang/en/lang.php | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 1b9a8d680..b475e2b7a 100644 --- a/inc/html.php +++ b/inc/html.php @@ -993,9 +993,10 @@ function html_diff($text='',$intro=true){ if($intro) print p_locale_xhtml('diff'); if (!$text) { - ptln('

'); - ptln(' '.$lang['difflink'].''); - ptln('

'); + $diffurl = wl($ID, array('do'=>'diff', 'rev2[0]'=>$l_rev, 'rev2[1]'=>$r_rev)); + ptln(''); } ?>
diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index c9d00eba2..5414f7a88 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -163,7 +163,7 @@ $lang['current'] = 'current'; $lang['yours'] = 'Your Version'; $lang['diff'] = 'Show differences to current revisions'; $lang['diff2'] = 'Show differences between selected revisions'; -$lang['difflink'] = 'Link to this diff output'; +$lang['difflink'] = 'Link to this comparison view'; $lang['line'] = 'Line'; $lang['breadcrumb'] = 'Trace'; $lang['youarehere'] = 'You are here'; -- cgit v1.2.3 From 47fecefedeb5e1069db2bbc0ce312c9522fd5a62 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Mon, 5 Jul 2010 15:43:53 +0200 Subject: Add getUsers capability to LDAP backend --- inc/auth/ldap.class.php | 79 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) (limited to 'inc') diff --git a/inc/auth/ldap.class.php b/inc/auth/ldap.class.php index e1922ce86..069d0fc92 100644 --- a/inc/auth/ldap.class.php +++ b/inc/auth/ldap.class.php @@ -256,6 +256,58 @@ class auth_ldap extends auth_basic { return false; } + /** + * Bulk retrieval of user data + * + * @author Dominik Eckelmann + * @param start index of first user to be returned + * @param limit max number of users to be returned + * @param filter array of field/pattern pairs, null for no filter + * @return array of userinfo (refer getUserData for internal userinfo details) + */ + function retrieveUsers($start=0,$limit=-1,$filter=array()) { + if(!$this->_openLDAP()) return false; + + if (!isset($this->users)) { + // Perform the search and grab all their details + if(!empty($this->cnf['userfilter'])) { + $filter = str_replace('%{user}', '*', $this->cnf['userfilter']); + } else { + $filter = "(ObjectClass=*)"; + } + $sr=ldap_search($this->con,$this->cnf['usertree'],$filter); + $entries = ldap_get_entries($this->con, $sr); + $users_array = array(); + for ($i=0; $i<$entries["count"]; $i++){ + array_push($users_array, $entries[$i]["uid"][0]); + } + asort($users_array); + $result = $users_array; + if (!$result) return array(); + $this->users = array_fill_keys($result, false); + } + $i = 0; + $count = 0; + $this->_constructPattern($filter); + $result = array(); + + foreach ($this->users as $user => &$info) { + if ($i++ < $start) { + continue; + } + if ($info === false) { + $info = $this->getUserData($user); + } + if ($this->_filter($user, $info)) { + $result[$user] = $info; + if (($limit >= 0) && (++$count >= $limit)) break; + } + } + return $result; + + + } + /** * Make LDAP filter strings. * @@ -284,6 +336,32 @@ class auth_ldap extends auth_basic { return $filter; } + /** + * return 1 if $user + $info match $filter criteria, 0 otherwise + * + * @author Chris Smith + */ + function _filter($user, $info) { + foreach ($this->_pattern as $item => $pattern) { + if ($item == 'user') { + if (!preg_match($pattern, $user)) return 0; + } else if ($item == 'grps') { + if (!count(preg_grep($pattern, $info['grps']))) return 0; + } else { + if (!preg_match($pattern, $info[$item])) return 0; + } + } + return 1; + } + + function _constructPattern($filter) { + $this->_pattern = array(); + foreach ($filter as $item => $pattern) { +// $this->_pattern[$item] = '/'.preg_quote($pattern,"/").'/i'; // don't allow regex characters + $this->_pattern[$item] = '/'.str_replace('/','\/',$pattern).'/i'; // allow regex characters + } + } + /** * Escape a string to be used in a LDAP filter * @@ -352,6 +430,7 @@ class auth_ldap extends auth_basic { } } + $this->canDo['getUsers'] = true; return true; } -- cgit v1.2.3 From 3ddc5b7b6cf2366f53d20b55548346eede0ca9fe Mon Sep 17 00:00:00 2001 From: Omid Mottaghi Date: Mon, 12 Jul 2010 21:21:23 +0200 Subject: Persian language update --- inc/lang/fa/lang.php | 47 +++++++++++++++++++++++++++++++++---------- inc/lang/fa/subscr_digest.txt | 16 +++++++++++++++ inc/lang/fa/subscr_form.txt | 3 +++ inc/lang/fa/subscr_list.txt | 16 +++++++++++++++ inc/lang/fa/subscr_single.txt | 19 +++++++++++++++++ 5 files changed, 90 insertions(+), 11 deletions(-) create mode 100644 inc/lang/fa/subscr_digest.txt create mode 100644 inc/lang/fa/subscr_form.txt create mode 100644 inc/lang/fa/subscr_list.txt create mode 100644 inc/lang/fa/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 0a1f8fadd..c5be8e1c0 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -99,7 +99,38 @@ $lang['txt_overwrt'] = 'بر روی فایل موجود بنویس'; $lang['lockedby'] = 'در حال حاضر قفل شده است'; $lang['lockexpire'] = 'قفل منقضی شده است'; $lang['willexpire'] = 'حالت قفل شما مدتی است منقضی شده است \n برای جلوگیری از تداخل دکمه‌ی پیش‌نمایش را برای صفر شدن ساعت قفل بزنید.'; -$lang['js']['notsavedyet'] = "تغییرات ذخیره شده از بین خواهد رفت. \n می‌خواهید ادامه دهید؟"; +$lang['js']['notsavedyet'] = 'تغییرات ذخیره شده از بین خواهد رفت. + می‌خواهید ادامه دهید؟'; +$lang['js']['searchmedia'] = 'جستجو برای فایل'; +$lang['js']['keepopen'] = 'پنجره را ر زمان انتخاب باز نگه‌دار'; +$lang['js']['hidedetails'] = 'پتهان کردن جزییات'; +$lang['js']['mediatitle'] = 'تنظیمات پیوند'; +$lang['js']['mediadisplay'] = 'نوع پیوند'; +$lang['js']['mediaalign'] = 'هم‌ترازی'; +$lang['js']['mediasize'] = 'اندازه تصویر'; +$lang['js']['mediatarget'] = 'هدف پیوند'; +$lang['js']['mediaclose'] = 'بستن'; +$lang['js']['mediainsert'] = 'درج کردن'; +$lang['js']['mediadisplayimg'] = 'نمایش تصویر'; +$lang['js']['mediadisplaylnk'] = 'فقط پیوند را نمایش بده.'; +$lang['js']['mediasmall'] = 'نگارش کوچک'; +$lang['js']['mediamedium'] = 'نگارش متوسط'; +$lang['js']['medialarge'] = 'نگارش بزرگ'; +$lang['js']['mediaoriginal'] = 'نگارش اصلی'; +$lang['js']['medialnk'] = 'پیوند به صفحه‌ی جزییات'; +$lang['js']['mediadirect'] = 'پیوند مستقیم به اصلی'; +$lang['js']['medianolnk'] = 'بدون پیوند'; +$lang['js']['medianolink'] = 'تصویر را پیوند نکن'; +$lang['js']['medialeft'] = 'تصویر را با چپ هم‌تراز کن.'; +$lang['js']['mediaright'] = 'تصویر را با راست هم‌تراز کن.'; +$lang['js']['mediacenter'] = 'تصویر را با وسط هم‌تراز کن.'; +$lang['js']['medianoalign'] = 'هم‌تراز نکن.'; +$lang['js']['nosmblinks'] = 'پیوند به Windows share فقط در اینترنت‌اکسپلورر قابل استفاده است. +شما می‌توانید پیوند‌ها رو کپی کنید.'; +$lang['js']['linkwiz'] = 'ویزارد پیوند'; +$lang['js']['linkto'] = 'پیوند به:'; +$lang['js']['del_confirm'] = 'واقعن تصمیم به حذف این موارد دارید؟'; +$lang['js']['mu_btn'] = 'ارسال هم‌زمان چندین فایل '; $lang['rssfailed'] = 'بروز خطا در هنگام واکشی'; $lang['nothingfound'] = 'چیزی پیدا نشد'; $lang['mediaselect'] = 'فایل‌ها'; @@ -117,15 +148,7 @@ $lang['deletefail'] = '«%s» حذف نمی‌شود، دسترسی $lang['mediainuse'] = 'فایل «%s» حذف نمی‌شود، چون هنوز در حال استفاده است.'; $lang['namespaces'] = 'فضای‌نام'; $lang['mediafiles'] = 'فایل‌های موجود در'; -$lang['js']['searchmedia'] = 'جستجو برای فایل'; -$lang['js']['keepopen'] = 'پنجره را ر زمان انتخاب باز نگه‌دار'; -$lang['js']['hidedetails'] = 'پتهان کردن جزییات'; -$lang['js']['nosmblinks'] = 'پیوند به Windows share فقط در اینترنت‌اکسپلورر قابل استفاده است. -شما می‌توانید پیوند‌ها رو کپی کنید.'; -$lang['js']['linkwiz'] = 'ویزارد پیوند'; -$lang['js']['linkto'] = 'پیوند به:'; -$lang['js']['del_confirm'] = 'واقعن تصمیم به حذف این موارد دارید؟'; -$lang['js']['mu_btn'] = 'ارسال هم‌زمان چندین فایل '; +$lang['accessdenied'] = 'شما اجازه‌ی مشاهده‌ی این صفحه را ندارید.'; $lang['mediausage'] = 'برای ارجاع دادن به فایل از نگارش زیر استفاده کنید.'; $lang['mediaview'] = 'مشاهده‌ی فایل اصلی'; $lang['mediaroot'] = 'ریشه'; @@ -141,6 +164,7 @@ $lang['current'] = 'فعلی'; $lang['yours'] = 'نسخه‌ی شما'; $lang['diff'] = 'تفاوت‌ها را با نگارش کنونی نمایش بده.'; $lang['diff2'] = 'تفاوت‌ها را با نگارش انتخابی نمایش بده.'; +$lang['difflink'] = 'پیوند به صفحه‌ی تفاوت‌ها'; $lang['line'] = 'خط'; $lang['breadcrumb'] = 'ردپا'; $lang['youarehere'] = 'محل شما'; @@ -153,7 +177,6 @@ $lang['external_edit'] = 'ویرایش خارجی'; $lang['summary'] = 'پیش‌نمایش'; $lang['noflash'] = 'برای نمایش محتویات افزونه‌ی فلش مورد نیاز است.'; $lang['download'] = 'دیافت فایل منقطع گردید'; -$lang['table_edit_title'] = 'جدول'; $lang['mail_newpage'] = 'صفحه اضافه شد:'; $lang['mail_changed'] = 'صفحه تغییر داده شد:'; $lang['mail_subscribe_list'] = 'صفحات تغییر داده شده در فضای‌نام'; @@ -238,6 +261,7 @@ $lang['i_pol0'] = 'ویکی باز (همه می‌توانند ب $lang['i_pol1'] = 'ویکی عمومی (همه می‌توانند بخوانند، کاربران ثبت شده می‌توانند بنویسند و فایل ارسال کنند)'; $lang['i_pol2'] = 'ویکی بسته (فقط کاربران ثبت شده می‌توانند بخوانند، بنویسند و فایل ارسال کنند)'; $lang['i_retry'] = 'تلاش مجدد'; +$lang['i_license'] = 'لطفن مجوز این محتوا را وارد کنید:'; $lang['mu_intro'] = 'شما می‌توانید چندین فایل را با یک حرکت ارسال کنید. روی دکمه‌ی «بچر» کلیک کنید و فایل‌ها را به صف ارسال اضافه نمایید. سپس دکمه‌ی «ارسال» را فشار دهید. '; $lang['mu_gridname'] = 'نام فایل'; $lang['mu_gridsize'] = 'اندازه'; @@ -261,3 +285,4 @@ $lang['days'] = '%d روز پیش'; $lang['hours'] = '%d ساعت پیش'; $lang['minutes'] = '%d دقیقه‌ی پیش'; $lang['seconds'] = '%d ثانیه‌ی پیش'; +$lang['wordblock'] = 'تغییرات شما به دلیل داشتن محتوای مشکوک (مثل اسپم) ذخیره نشد.'; diff --git a/inc/lang/fa/subscr_digest.txt b/inc/lang/fa/subscr_digest.txt new file mode 100644 index 000000000..0ba4c898d --- /dev/null +++ b/inc/lang/fa/subscr_digest.txt @@ -0,0 +1,16 @@ +سلام، + +صفحه‌ی @PAGE@ با عنوان @TITLE@ در ویکی تغییر کرد. +تغییرات عبارت است از: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +نگارش پیشین: @OLDPAGE@ +نگارش نو: @NEWPAGE@ + +برای از بین بردن آگاهی‌های این صفحه، از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده و صفحه‌ی @SUBSCRIBE@ را مرور کنید و عضویت خود را از صفحه یا فضای‌نام پاک کنید. + +-- +این رای‌نامه با نرم‌افزار DokuWiki در آدرس @DOKUWIKIURL@ ساخته شده است. \ No newline at end of file diff --git a/inc/lang/fa/subscr_form.txt b/inc/lang/fa/subscr_form.txt new file mode 100644 index 000000000..39764d0a2 --- /dev/null +++ b/inc/lang/fa/subscr_form.txt @@ -0,0 +1,3 @@ +====== مدیریت عضویت‌ها ====== + +این صفحه به شما امکان مدیریت عضویت‌تان را برای این صفحه یا فضای‌نام می‌دهد. \ No newline at end of file diff --git a/inc/lang/fa/subscr_list.txt b/inc/lang/fa/subscr_list.txt new file mode 100644 index 000000000..92ac92b74 --- /dev/null +++ b/inc/lang/fa/subscr_list.txt @@ -0,0 +1,16 @@ +سلام، + +صفحه‌های فضای‌نام @PAGE@ با عنوان @TITLE@ در ویکی تغییر کرد. +تغییرات عبارت است از: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +نگارش پیشین: @OLDPAGE@ +نگارش نو: @NEWPAGE@ + +برای از بین بردن آگاهی‌های این صفحه، از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده و صفحه‌ی @SUBSCRIBE@ را مرور کنید و عضویت خود را از صفحه یا فضای‌نام پاک کنید. + +-- +این رای‌نامه با نرم‌افزار DokuWiki در آدرس @DOKUWIKIURL@ ساخته شده است. \ No newline at end of file diff --git a/inc/lang/fa/subscr_single.txt b/inc/lang/fa/subscr_single.txt new file mode 100644 index 000000000..a0d2a5d49 --- /dev/null +++ b/inc/lang/fa/subscr_single.txt @@ -0,0 +1,19 @@ +سلام، + +صفحه‌ی @PAGE@ با عنوان @TITLE@ در ویکی تغییر کرد. +تغییرات عبارت است از: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +تاریخ : @DATE@ +نام‌کاربری: @USER@ +خلاصه ویرایش: @SUMMARY@ +نگارش پیشین: @OLDPAGE@ +نگارش نو: @NEWPAGE@ + +برای از بین بردن آگاهی‌های این صفحه، از طریق آدرس @DOKUWIKIURL@ وارد ویکی شده و صفحه‌ی @NEWPAGE@ را مرور کنید و عضویت خود را از صفحه یا فضای‌نام پاک کنید. + +-- +این رای‌نامه با نرم‌افزار DokuWiki در آدرس @DOKUWIKIURL@ ساخته شده است. \ No newline at end of file -- cgit v1.2.3 From 0271153bc37bcbf6fca13a371b9f98eda8ee41f0 Mon Sep 17 00:00:00 2001 From: Georgios Petsagourakis Date: Mon, 12 Jul 2010 21:23:05 +0200 Subject: Greek language update --- inc/lang/el/lang.php | 76 +++++++++++++++++++++++++++++++++---------- inc/lang/el/subscr_digest.txt | 21 ++++++++++++ inc/lang/el/subscr_form.txt | 3 ++ inc/lang/el/subscr_list.txt | 21 ++++++++++++ inc/lang/el/subscr_single.txt | 23 +++++++++++++ 5 files changed, 126 insertions(+), 18 deletions(-) create mode 100644 inc/lang/el/subscr_digest.txt create mode 100644 inc/lang/el/subscr_form.txt create mode 100644 inc/lang/el/subscr_list.txt create mode 100644 inc/lang/el/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index 1661ea829..83a869df0 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -6,6 +6,7 @@ * @author Thanos Massias * @author Αθανάσιος Νταής * @author Konstantinos Koryllos + * @author George Petsagourakis */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -39,9 +40,6 @@ $lang['btn_back'] = 'Πίσω'; $lang['btn_backlink'] = 'Σύνδεσμοι προς την τρέχουσα σελίδα'; $lang['btn_backtomedia'] = 'Επιστροφή στην επιλογή αρχείων'; $lang['btn_subscribe'] = 'Εγγραφή σε λήψη ενημερώσεων σελίδας'; -$lang['btn_unsubscribe'] = 'Διαγραφή από λήψη ενημερώσεων σελίδας'; -$lang['btn_subscribens'] = 'Εγγραφή σε λήψη ενημερώσεων φακέλου'; -$lang['btn_unsubscribens'] = 'Διαγραφή από λήψη ενημερώσεων φακέλου'; $lang['btn_profile'] = 'Τροποποίηση προφίλ'; $lang['btn_reset'] = 'Ακύρωση'; $lang['btn_resendpwd'] = 'Αποστολή νέου κωδικού'; @@ -95,7 +93,38 @@ $lang['txt_overwrt'] = 'Αντικατάσταση υπάρχοντο $lang['lockedby'] = 'Προσωρινά κλειδωμένο από'; $lang['lockexpire'] = 'Το κλείδωμα λήγει στις'; $lang['willexpire'] = 'Το κλείδωμά σας για την επεξεργασία αυτής της σελίδας θα λήξει σε ένα λεπτό.\n Για να το ανανεώσετε χρησιμοποιήστε την επιλογή Προεπισκόπηση.'; -$lang['js']['notsavedyet'] = "Οι μη αποθηκευμένες αλλαγές θα χαθούν.\nΘέλετε να συνεχίσετε?"; +$lang['js']['notsavedyet'] = 'Οι μη αποθηκευμένες αλλαγές θα χαθούν. +Θέλετε να συνεχίσετε?'; +$lang['js']['searchmedia'] = 'Αναζήτηση για αρχεία'; +$lang['js']['keepopen'] = 'Το παράθυρο να μην κλείνει'; +$lang['js']['hidedetails'] = 'Απόκρυψη λεπτομερειών'; +$lang['js']['mediatitle'] = 'Ρυθμίσεις συνδέσμων'; +$lang['js']['mediadisplay'] = 'Τύπος συνδέσμου'; +$lang['js']['mediaalign'] = 'Στοίχηση'; +$lang['js']['mediasize'] = 'Μέγεθος εικόνας'; +$lang['js']['mediatarget'] = 'Προορισμός συνδέσμου'; +$lang['js']['mediaclose'] = 'Κλείσιμο'; +$lang['js']['mediainsert'] = 'Εισαγωγή'; +$lang['js']['mediadisplayimg'] = 'Προβολή εικόνας.'; +$lang['js']['mediadisplaylnk'] = 'Προβολή μόνο του συνδέσμου.'; +$lang['js']['mediasmall'] = 'Μικρή έκδοση'; +$lang['js']['mediamedium'] = 'Μεσαία έκδοση'; +$lang['js']['medialarge'] = 'Μεγάλη έκδοση'; +$lang['js']['mediaoriginal'] = 'Κανονική έκδοση'; +$lang['js']['medialnk'] = 'Σύνδεσμος στην σελίδα λεπτομερειών'; +$lang['js']['mediadirect'] = 'Απευθείας σύνδεσμος στο αυθεντικό'; +$lang['js']['medianolnk'] = 'Χωρίς σύνδεσμο'; +$lang['js']['medianolink'] = 'Να μην γίνει σύνδεσμος η εικόνα'; +$lang['js']['medialeft'] = 'Στοίχιση της εικόνας αριστερά.'; +$lang['js']['mediaright'] = 'Στοίχιση της εικόνας δεξιά.'; +$lang['js']['mediacenter'] = 'Στοίχιση της εικόνας στη μέση.'; +$lang['js']['medianoalign'] = 'Να μην γίνει στοίχιση.'; +$lang['js']['nosmblinks'] = 'Οι σύνδεσμοι προς Windows shares δουλεύουν μόνο στον Microsoft Internet Explorer. +Μπορείτε πάντα να κάνετε αντιγραφή και επικόλληση του συνδέσμου.'; +$lang['js']['linkwiz'] = 'Αυτόματος Οδηγός Συνδέσμων'; +$lang['js']['linkto'] = 'Σύνδεση σε:'; +$lang['js']['del_confirm'] = 'Να διαγραφεί?'; +$lang['js']['mu_btn'] = 'Ταυτόχρονη φόρτωση πολλαπλών φακέλων'; $lang['rssfailed'] = 'Εμφανίστηκε κάποιο σφάλμα κατά την ανάγνωση αυτού του feed: '; $lang['nothingfound'] = 'Δεν βρέθηκαν σχετικά αποτελέσματα.'; $lang['mediaselect'] = 'Επιλογή Αρχείων'; @@ -113,15 +142,7 @@ $lang['deletefail'] = 'Το αρχείο "%s" δεν διαγράφη $lang['mediainuse'] = 'Το αρχείο "%s" δεν διαγράφηκε - είναι ακόμα σε χρήση.'; $lang['namespaces'] = 'Φάκελοι'; $lang['mediafiles'] = 'Διαθέσιμα αρχεία σε'; -$lang['js']['searchmedia'] = 'Αναζήτηση για αρχεία'; -$lang['js']['keepopen'] = 'Το παράθυρο να μην κλείνει'; -$lang['js']['hidedetails'] = 'Απόκρυψη λεπτομερειών'; -$lang['js']['nosmblinks'] = 'Οι σύνδεσμοι προς Windows shares δουλεύουν μόνο στον Microsoft Internet Explorer. -Μπορείτε πάντα να κάνετε αντιγραφή και επικόλληση του συνδέσμου.'; -$lang['js']['linkwiz'] = 'Αυτόματος Οδηγός Συνδέσμων'; -$lang['js']['linkto'] = 'Σύνδεση σε:'; -$lang['js']['del_confirm'] = 'Να διαγραφεί?'; -$lang['js']['mu_btn'] = 'Ταυτόχρονη φόρτωση πολλαπλών φακέλων'; +$lang['accessdenied'] = 'Δεν σας επιτρέπεται να δείτε αυτήν την σελίδα.'; $lang['mediausage'] = 'Χρησιμοποιήστε την ακόλουθη σύνταξη για να παραθέσετε αυτό το αρχείο:'; $lang['mediaview'] = 'Κανονική προβολή αρχείου'; $lang['mediaroot'] = 'root'; @@ -137,6 +158,7 @@ $lang['current'] = 'τρέχουσα'; $lang['yours'] = 'Η έκδοσή σας'; $lang['diff'] = 'προβολή διαφορών με την τρέχουσα έκδοση'; $lang['diff2'] = 'Προβολή διαφορών μεταξύ των επιλεγμένων εκδόσεων'; +$lang['difflink'] = 'Σύνδεσμος σε αυτή την προβολή διαφορών.'; $lang['line'] = 'Γραμμή'; $lang['breadcrumb'] = 'Ιστορικό'; $lang['youarehere'] = 'Είστε εδώ'; @@ -151,6 +173,7 @@ $lang['noflash'] = 'Το Date: Mon, 12 Jul 2010 22:12:28 +0200 Subject: Brasilian Portuguese language update --- inc/lang/pt-br/lang.php | 58 +++++++++++++++++++++++++++++++++------- inc/lang/pt-br/subscr_digest.txt | 17 ++++++++++++ inc/lang/pt-br/subscr_form.txt | 3 +++ inc/lang/pt-br/subscr_list.txt | 17 ++++++++++++ inc/lang/pt-br/subscr_single.txt | 20 ++++++++++++++ 5 files changed, 105 insertions(+), 10 deletions(-) create mode 100644 inc/lang/pt-br/subscr_digest.txt create mode 100644 inc/lang/pt-br/subscr_form.txt create mode 100644 inc/lang/pt-br/subscr_list.txt create mode 100644 inc/lang/pt-br/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index 1d1366e7a..135d20d97 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -103,7 +103,38 @@ $lang['txt_overwrt'] = 'Substituir o arquivo existente'; $lang['lockedby'] = 'Atualmente bloqueada por'; $lang['lockexpire'] = 'O bloqueio expira em'; $lang['willexpire'] = 'O seu bloqueio de edição deste página irá expirar em um minuto.\nPara evitar conflitos de edição, clique no botão de visualização para reiniciar o temporizador de bloqueio.'; -$lang['js']['notsavedyet'] = "As alterações não salvas serão perdidas.\nDeseja realmente continuar?"; +$lang['js']['notsavedyet'] = 'As alterações não salvas serão perdidas. +Deseja realmente continuar?'; +$lang['js']['searchmedia'] = 'Buscar por arquivos'; +$lang['js']['keepopen'] = 'Manter a janela aberta na seleção'; +$lang['js']['hidedetails'] = 'Esconder detalhes'; +$lang['js']['mediatitle'] = 'Configurações do Link'; +$lang['js']['mediadisplay'] = 'Tipo de Link'; +$lang['js']['mediaalign'] = 'Alinhamento'; +$lang['js']['mediasize'] = 'Tamanho da Imagem'; +$lang['js']['mediatarget'] = 'Alvo do Link'; +$lang['js']['mediaclose'] = 'Fechar'; +$lang['js']['mediainsert'] = 'Inserir'; +$lang['js']['mediadisplayimg'] = 'Mostrar Imagem.'; +$lang['js']['mediadisplaylnk'] = 'Mostrar apenas Link.'; +$lang['js']['mediasmall'] = 'Versão Pequena'; +$lang['js']['mediamedium'] = 'Versão Média'; +$lang['js']['medialarge'] = 'Versão Grande'; +$lang['js']['mediaoriginal'] = 'Versão Original'; +$lang['js']['medialnk'] = 'Link para pagina de detalhes'; +$lang['js']['mediadirect'] = 'Link direto para original'; +$lang['js']['medianolnk'] = 'Sem Link'; +$lang['js']['medianolink'] = 'Sem link na imagem'; +$lang['js']['medialeft'] = 'Alinhamento de imagem a esquerda'; +$lang['js']['mediaright'] = 'Alinhamento de imagem a direita'; +$lang['js']['mediacenter'] = 'Alinhamento de imagem ao centro'; +$lang['js']['medianoalign'] = 'Sem alinhamento'; +$lang['js']['nosmblinks'] = 'Atalhos para pastas compartilhadas do Windows funcionam apenas no Microsoft Internet Explorer. +Entretanto, você ainda pode copiar e colar o atalho.'; +$lang['js']['linkwiz'] = 'Link Wizard'; +$lang['js']['linkto'] = 'Link para:'; +$lang['js']['del_confirm'] = 'Deseja realmente excluir o(s) item(ns) selecionado(s)?'; +$lang['js']['mu_btn'] = 'Enviar vários arquivos de uma vez'; $lang['rssfailed'] = 'Ocorreu um erro durante a atualização dessa fonte: '; $lang['nothingfound'] = 'Não foi encontrado nada.'; $lang['mediaselect'] = 'Arquivos de mídia'; @@ -121,15 +152,6 @@ $lang['deletefail'] = 'Não foi possível excluir "%s" - verifique as $lang['mediainuse'] = 'O arquivo "%s" não foi excluído - ele ainda está em uso.'; $lang['namespaces'] = 'Espaços de nome'; $lang['mediafiles'] = 'Arquivos disponíveis em'; -$lang['js']['searchmedia'] = 'Buscar por arquivos'; -$lang['js']['keepopen'] = 'Manter a janela aberta na seleção'; -$lang['js']['hidedetails'] = 'Esconder detalhes'; -$lang['js']['nosmblinks'] = 'Atalhos para pastas compartilhadas do Windows funcionam apenas no Microsoft Internet Explorer. -Entretanto, você ainda pode copiar e colar o atalho.'; -$lang['js']['linkwiz'] = 'Link Wizard'; -$lang['js']['linkto'] = 'Link para:'; -$lang['js']['del_confirm'] = 'Deseja realmente excluir o(s) item(ns) selecionado(s)?'; -$lang['js']['mu_btn'] = 'Enviar vários arquivos de uma vez'; $lang['mediausage'] = 'Use a seguinte sintaxe para referenciar esse arquivo:'; $lang['mediaview'] = 'Ver o arquivo original'; $lang['mediaroot'] = 'raiz'; @@ -156,6 +178,7 @@ $lang['restored'] = 'revisão anterior restaurada'; $lang['external_edit'] = 'edição externa'; $lang['summary'] = 'Resumo da edição'; $lang['noflash'] = 'O plug-in Adobe Flash é necessário para exibir este conteúdo.'; +$lang['download'] = 'Download Snippet'; $lang['mail_newpage'] = 'página adicionada:'; $lang['mail_changed'] = 'página modificada:'; $lang['mail_subscribe_list'] = 'páginas alteradas no namespace:'; @@ -204,6 +227,19 @@ $lang['img_keywords'] = 'Palavras-chave'; $lang['subscr_subscribe_success'] = 'Adicionado %s para a lista de inscrição para %s'; $lang['subscr_subscribe_error'] = 'Erro adicionando %s para a lista de inscrição para %s'; $lang['subscr_subscribe_noaddress'] = 'Não há endereço associado com seu login, você não pode ser adicionado à lista de inscrição'; +$lang['subscr_unsubscribe_success'] = 'Removido %s da lista de inscrição para %s'; +$lang['subscr_unsubscribe_error'] = 'Erro removendo %s da lista de inscrição para %s'; +$lang['subscr_already_subscribed'] = '%s já está inscrito para s%'; +$lang['subscr_not_subscribed'] = 's% não está inscrito para s%'; +$lang['subscr_m_not_subscribed'] = 'Voce não está inscrito na pagina ou namespace corrent'; +$lang['subscr_m_new_header'] = 'Adicionar inscrição'; +$lang['subscr_m_current_header'] = 'Inscrições correntes'; +$lang['subscr_m_unsubscribe'] = 'cancelar inscrição'; +$lang['subscr_m_subscribe'] = 'Inscrição'; +$lang['subscr_m_receive'] = 'Receber'; +$lang['subscr_style_every'] = 'email em cada modificação'; +$lang['subscr_style_digest'] = 'digerir emails de mudanças para cada página (A cada %.2f dias)'; +$lang['subscr_style_list'] = 'Lista de mudanças desde o último email (A cada %.2f dias)'; $lang['authmodfailed'] = 'A configuração da autenticação de usuário está com problemas. Por favor, informe ao administrador do wiki.'; $lang['authtempfail'] = 'A autenticação de usuários está temporariamente desabilitada. Se essa situação persistir, por favor, informe ao administrador do Wiki.'; $lang['i_chooselang'] = 'Selecione o seu idioma'; @@ -228,6 +264,7 @@ $lang['i_pol0'] = 'Wiki aberto (leitura, escrita e envio de arqui $lang['i_pol1'] = 'Wiki público (leitura por todos, escrita e envio de arquivos por usuários registrados)'; $lang['i_pol2'] = 'Wiki fechado (leitura, escrita e envio de arquivos somente por usuários registrados)'; $lang['i_retry'] = 'Tentar novamente'; +$lang['i_license'] = 'Por favor escolha a licença que voce deseja utilizar para seu conteúdo:'; $lang['mu_intro'] = 'Aqui você pode enviar vários arquivos de uma só vez. Clique no botão de navegação e adicione-os à fila. Pressione Enviar quando estiver pronto.'; $lang['mu_gridname'] = 'Nome do arquivo'; $lang['mu_gridsize'] = 'Tamanho'; @@ -251,3 +288,4 @@ $lang['days'] = '%d dias atrás'; $lang['hours'] = '%d horas atrás'; $lang['minutes'] = '%d minutos atrás'; $lang['seconds'] = '%d segundos atrás'; +$lang['wordblock'] = 'Suas mudanças não foram salvas pois contem texto bloqueados (spam)'; diff --git a/inc/lang/pt-br/subscr_digest.txt b/inc/lang/pt-br/subscr_digest.txt new file mode 100644 index 000000000..6632b1f57 --- /dev/null +++ b/inc/lang/pt-br/subscr_digest.txt @@ -0,0 +1,17 @@ +Olá! + +A página @PAGE@ na wiki @TITLE@ mudou. +Estas foram as mudanças: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Revisão antiga:@OLDPAGE@ +Nova Revisão:@NEWPAGE@ + +Para cancelar a página de notificações, entre na wiki @DOKUWIKIURL@ +e então visite a página de @SUBSCRIBE@ e cancele a inscrição de edição da página ou namespace. +-- +Este e-mail foi gerado pelo DokuWiki em +@DOKUWIKIURL@ diff --git a/inc/lang/pt-br/subscr_form.txt b/inc/lang/pt-br/subscr_form.txt new file mode 100644 index 000000000..1611ea95d --- /dev/null +++ b/inc/lang/pt-br/subscr_form.txt @@ -0,0 +1,3 @@ +====== Gerenciamento de inscrição ====== + +Esta página permite voce gerencias as inscrições para a página e namespace corrente. diff --git a/inc/lang/pt-br/subscr_list.txt b/inc/lang/pt-br/subscr_list.txt new file mode 100644 index 000000000..8f4a66d1a --- /dev/null +++ b/inc/lang/pt-br/subscr_list.txt @@ -0,0 +1,17 @@ +Olá! + +Páginas no namespace @PAGE@ na wiki @TITLE@ mudaram. +Estas foram as mudanças: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Para cancelar a página de notificações, entre na wiki @DOKUWIKIURL@ +e então visite a página de @SUBSCRIBE@ e cancele a inscrição de edição da página ou namespace. +-- +Este e-mail foi gerado pelo DokuWiki em +@DOKUWIKIURL@ + + +preview.txt ====== Preview ====== diff --git a/inc/lang/pt-br/subscr_single.txt b/inc/lang/pt-br/subscr_single.txt new file mode 100644 index 000000000..1a103558c --- /dev/null +++ b/inc/lang/pt-br/subscr_single.txt @@ -0,0 +1,20 @@ +Olá! + +A página @PAGE@ na wiki @TITLE@ mudou. +Estas foram as mudanças: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Data : @DATE@ +Usuário : @USER@ +Sumário : @SUMMARY@ +Revisão antiga:@OLDPAGE@ +Nova Revisão:@NEWPAGE@ + +Para cancelar a página de notificações, entre na wiki @DOKUWIKIURL@ visite @NEWPAGE@ +e cancele a inscrição de edição da página ou namespace. +-- +Este e-mail foi gerado pelo DokuWiki em +@DOKUWIKIURL@ -- cgit v1.2.3 From c0e46ee6bf1e41a839f43dda4bb3746534c55b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Honza=20Lefty=20=C5=A0koda?= Date: Mon, 12 Jul 2010 22:14:03 +0200 Subject: Czech language update --- inc/lang/cs/lang.php | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) (limited to 'inc') diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index 0b5530f0f..33c6db01a 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -8,6 +8,7 @@ * @author Zbynek Krivka * @author tomas@valenta.cz * @author Marek Sacha + * @author Lefty */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -94,24 +95,8 @@ $lang['txt_overwrt'] = 'Přepsat existující soubor'; $lang['lockedby'] = 'Právě zamknuto:'; $lang['lockexpire'] = 'Zámek vyprší:'; $lang['willexpire'] = 'Váš zámek pro editaci za chvíli vyprší.\nAbyste předešli konfliktům, stiskněte tlačítko Náhled a zámek se prodlouží.'; -$lang['js']['notsavedyet'] = "Jsou tu neuložené změny, které budou ztraceny.\nChcete opravdu pokračovat?"; -$lang['rssfailed'] = 'Nastala chyba při vytváření tohoto RSS: '; -$lang['nothingfound'] = 'Nic nenalezeno.'; -$lang['mediaselect'] = 'Výběr dokumentu'; -$lang['fileupload'] = 'Načtení dokumentu'; -$lang['uploadsucc'] = 'Přenos proběhl v pořádku'; -$lang['uploadfail'] = 'Chyba při načítání. Možná kvůli špatně nastaveným právům?'; -$lang['uploadwrong'] = 'Načtení souboru s takovouto příponou není dovoleno.'; -$lang['uploadexist'] = 'Soubor už existuje, necháme ho být.'; -$lang['uploadbadcontent'] = 'Obsah načteného dokumentu %s neodpovídá jeho příponě.'; -$lang['uploadspam'] = 'Načtený dokument byl odmítnut, je na spamovém blacklistu.'; -$lang['uploadxss'] = 'Načtený dokument byl odmítnut. Zdá se, že obsahuje škodlivé věci.'; -$lang['uploadsize'] = 'Nahraný soubor byl příliš velký (max. %s)'; -$lang['deletesucc'] = 'Soubor "%s" byl vymazán.'; -$lang['deletefail'] = 'Soubor "%s" nelze vymazat - zkontrolujte oprávnění.'; -$lang['mediainuse'] = 'Soubor "%s" nebyl vymazán - stále se používá.'; -$lang['namespaces'] = 'Jmenné prostory'; -$lang['mediafiles'] = 'Dostupné soubory'; +$lang['js']['notsavedyet'] = 'Jsou tu neuložené změny, které budou ztraceny. +Chcete opravdu pokračovat?'; $lang['js']['searchmedia'] = 'Hledat soubory'; $lang['js']['keepopen'] = 'Po vybrání souboru nechat okno otevřené'; $lang['js']['hidedetails'] = 'Skrýt detaily'; @@ -142,6 +127,24 @@ $lang['js']['linkwiz'] = 'Průvodce odkazy'; $lang['js']['linkto'] = 'Odkaz na:'; $lang['js']['del_confirm'] = 'Vymazat tuto položku?'; $lang['js']['mu_btn'] = 'Načíst více souborů najednou'; +$lang['rssfailed'] = 'Nastala chyba při vytváření tohoto RSS: '; +$lang['nothingfound'] = 'Nic nenalezeno.'; +$lang['mediaselect'] = 'Výběr dokumentu'; +$lang['fileupload'] = 'Načtení dokumentu'; +$lang['uploadsucc'] = 'Přenos proběhl v pořádku'; +$lang['uploadfail'] = 'Chyba při načítání. Možná kvůli špatně nastaveným právům?'; +$lang['uploadwrong'] = 'Načtení souboru s takovouto příponou není dovoleno.'; +$lang['uploadexist'] = 'Soubor už existuje, necháme ho být.'; +$lang['uploadbadcontent'] = 'Obsah načteného dokumentu %s neodpovídá jeho příponě.'; +$lang['uploadspam'] = 'Načtený dokument byl odmítnut, je na spamovém blacklistu.'; +$lang['uploadxss'] = 'Načtený dokument byl odmítnut. Zdá se, že obsahuje škodlivé věci.'; +$lang['uploadsize'] = 'Nahraný soubor byl příliš velký (max. %s)'; +$lang['deletesucc'] = 'Soubor "%s" byl vymazán.'; +$lang['deletefail'] = 'Soubor "%s" nelze vymazat - zkontrolujte oprávnění.'; +$lang['mediainuse'] = 'Soubor "%s" nebyl vymazán - stále se používá.'; +$lang['namespaces'] = 'Jmenné prostory'; +$lang['mediafiles'] = 'Dostupné soubory'; +$lang['accessdenied'] = 'Nejste autorizován k přístupu na tuto stránku.'; $lang['mediausage'] = 'K odkázání se na tento soubor použijte následující syntax:'; $lang['mediaview'] = 'Zobrazit původní soubor'; $lang['mediaroot'] = 'root'; @@ -157,6 +160,7 @@ $lang['current'] = 'aktuální'; $lang['yours'] = 'Vaše verze'; $lang['diff'] = 'zobrazit rozdíly vůči aktuální verzi'; $lang['diff2'] = 'zobrazit rozdíly mezi vybranými verzemi'; +$lang['difflink'] = 'Odkaz na výstup diff'; $lang['line'] = 'Řádek'; $lang['breadcrumb'] = 'Historie'; $lang['youarehere'] = 'Umístění'; @@ -253,6 +257,7 @@ $lang['i_pol0'] = 'Otevřená wiki (čtení, zápis a upload pro $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_retry'] = 'Zkusit znovu'; +$lang['i_license'] = 'Vyberte prosím licenci obsahu:'; $lang['mu_intro'] = 'Zde můžete načíst více souborů najednou. Pro přidání souborů do fronty stiskněte tlačítko "Procházet". Až budete hotovi, stiskněte "Načíst".'; $lang['mu_gridname'] = 'Název souboru'; $lang['mu_gridsize'] = 'Velikost'; @@ -276,3 +281,4 @@ $lang['days'] = 'před % dny'; $lang['hours'] = 'před % hodinami'; $lang['minutes'] = 'před % minutami'; $lang['seconds'] = 'před % sekundami'; +$lang['wordblock'] = 'Vaše změny nebyly uloženy, protože obsahují blokovaný text(spam).'; -- cgit v1.2.3 From 85f816794921d024d97dbafc2da716d53daf947b Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 13 Jul 2010 23:54:50 +0200 Subject: Remove charset from internal script tag See http://adrianlang.de/ada/html-script-charset --- inc/template.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/template.php b/inc/template.php index 4d24c2191..f1995b6ba 100644 --- a/inc/template.php +++ b/inc/template.php @@ -344,8 +344,7 @@ function tpl_metaheaders($alt=true){ $script .= "var SIG='".toolbar_signature()."';"; } $script .= 'var JSINFO = '.$json->encode($JSINFO).';'; - $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', - '_data'=> $script); + $head['script'][] = array( 'type'=>'text/javascript', '_data'=> $script); // load external javascript $head['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', '_data'=>'', -- cgit v1.2.3 From 85e6871f4b12b4f45fa0ff0a520ae0d50299e77f Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 14 Jul 2010 16:58:33 +0200 Subject: URL-encode keys as well Often URL parameter keys contain characters which are not allowed in URIs, like square brackets. Those have to be escaped as well. --- inc/common.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index 1db362f08..513b006c2 100644 --- a/inc/common.php +++ b/inc/common.php @@ -227,7 +227,7 @@ function buildURLparams($params, $sep='&'){ foreach($params as $key => $val){ if($amp) $url .= $sep; - $url .= $key.'='; + $url .= rawurlencode($key).'='; $url .= rawurlencode((string)$val); $amp = true; } -- cgit v1.2.3 From f62100e2e79ba5106f2777c8e9c5f5e35c593d40 Mon Sep 17 00:00:00 2001 From: Aleksandr Selivanov Date: Fri, 16 Jul 2010 08:59:39 +0200 Subject: Russian language update --- inc/lang/ru/denied.txt | 4 +- inc/lang/ru/edit.txt | 2 +- inc/lang/ru/index.txt | 2 +- inc/lang/ru/lang.php | 106 ++++++++++++++++++++++-------------------- inc/lang/ru/login.txt | 2 +- inc/lang/ru/mailtext.txt | 8 ++-- inc/lang/ru/newpage.txt | 2 +- inc/lang/ru/preview.txt | 2 +- inc/lang/ru/pwconfirm.txt | 4 +- inc/lang/ru/read.txt | 2 +- inc/lang/ru/register.txt | 2 +- inc/lang/ru/registermail.txt | 2 +- inc/lang/ru/resendpwd.txt | 4 +- inc/lang/ru/revisions.txt | 2 +- inc/lang/ru/searchpage.txt | 2 +- inc/lang/ru/showrev.txt | 2 +- inc/lang/ru/subscr_form.txt | 2 +- inc/lang/ru/updateprofile.txt | 2 +- inc/lang/ru/uploadmail.txt | 2 +- 19 files changed, 80 insertions(+), 74 deletions(-) (limited to 'inc') diff --git a/inc/lang/ru/denied.txt b/inc/lang/ru/denied.txt index eee59efe6..2cc33cff7 100644 --- a/inc/lang/ru/denied.txt +++ b/inc/lang/ru/denied.txt @@ -1,3 +1,3 @@ -====== Доступ запрещен ====== +====== Доступ запрещён ====== -Извините, у вас не хватает прав для этого действия. Может быть, Вы забыли войти в вики под своим именем? +Извините, у вас не хватает прав для этого действия. Может быть, вы забыли войти в вики под своим логином? diff --git a/inc/lang/ru/edit.txt b/inc/lang/ru/edit.txt index 2237f082e..6398e8e83 100644 --- a/inc/lang/ru/edit.txt +++ b/inc/lang/ru/edit.txt @@ -1,2 +1,2 @@ -Отредактируйте страницу и нажмите ''Сохранить''. Прочтите [[wiki:syntax]] для ознакомления с синтаксисом вики. Пожалуйста, редактируйте только в том случае, если планируете **улучшить** содержимое. Если Вы просто хотите потестировать что-либо, воспользуйтесь специальной страницей: [[playground:playground]]. +Отредактируйте страницу и нажмите ''Сохранить''. Прочтите [[wiki:syntax]] для ознакомления с синтаксисом вики. Пожалуйста, редактируйте только в том случае, если планируете **улучшить** содержимое. Если вы просто хотите потестировать что-либо, воспользуйтесь специальной страницей: [[playground:playground]]. diff --git a/inc/lang/ru/index.txt b/inc/lang/ru/index.txt index 376d58947..fc42f87ff 100644 --- a/inc/lang/ru/index.txt +++ b/inc/lang/ru/index.txt @@ -1,4 +1,4 @@ ====== Содержание ====== -Перед Вами список доступных страниц, упорядоченный по пространствам имён ([[doku>namespaces|namespaces]]). +Перед вами список доступных страниц, упорядоченный по ([[doku>namespaces|пространствам имён]]). diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 814406f8e..ebd2a10a1 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -16,6 +16,7 @@ * @author Kirill Krasnov * @author Vlad Tsybenko * @author Aleksey Osadchiy + * @author Aleksandr Selivanov */ $lang['encoding'] = ' utf-8'; $lang['direction'] = 'ltr'; @@ -36,7 +37,7 @@ $lang['btn_newer'] = '<< более новые'; $lang['btn_older'] = 'более старые >>'; $lang['btn_revs'] = 'История страницы'; $lang['btn_recent'] = 'Недавние изменения'; -$lang['btn_upload'] = 'Закачать'; +$lang['btn_upload'] = 'Загрузить'; $lang['btn_cancel'] = 'Отменить'; $lang['btn_index'] = 'Все страницы'; $lang['btn_secedit'] = 'Править'; @@ -51,7 +52,7 @@ $lang['btn_backtomedia'] = 'Вернуться к выбору медиа- $lang['btn_subscribe'] = 'Подписаться (все правки)'; $lang['btn_profile'] = 'Профиль'; $lang['btn_reset'] = 'Сброс'; -$lang['btn_resendpwd'] = 'Послать новый пароль'; +$lang['btn_resendpwd'] = 'Выслать новый пароль'; $lang['btn_draft'] = 'Править черновик'; $lang['btn_recover'] = 'Восстановить черновик'; $lang['btn_draftdel'] = 'Удалить черновик'; @@ -64,62 +65,46 @@ $lang['oldpass'] = 'Введите текущий пароль'; $lang['passchk'] = 'повторите'; $lang['remember'] = 'Запомнить меня'; $lang['fullname'] = 'Полное имя'; -$lang['email'] = 'E-Mail'; +$lang['email'] = 'Эл. адрес'; $lang['register'] = 'Зарегистрироваться'; $lang['profile'] = 'Профиль пользователя'; $lang['badlogin'] = 'Извините, неверное имя пользователя или пароль.'; $lang['minoredit'] = 'Небольшие изменения'; $lang['draftdate'] = 'Черновик сохранён'; -$lang['nosecedit'] = 'За это время страница была изменена, и информация о секции устарела. Загружена полная версия страницы.'; +$lang['nosecedit'] = 'За это время страница была изменена и информация о секции устарела. Загружена полная версия страницы.'; $lang['regmissing'] = 'Извините, вам следует заполнить все поля.'; $lang['reguexists'] = 'Извините, пользователь с таким логином уже существует.'; -$lang['regsuccess'] = 'Пользователь создан, пароль выслан на e-mail.'; +$lang['regsuccess'] = 'Пользователь создан, пароль выслан на адрес электронной почты.'; $lang['regsuccess2'] = 'Пользователь создан.'; -$lang['regmailfail'] = 'Похоже, проблема с посылкой пароля по почте. Пожалуйста, сообщите администратору!'; -$lang['regbadmail'] = 'Данный Вами адрес e-mail выглядит неправильным. Если вы считаете это ошибкой, сообщите админу.'; +$lang['regmailfail'] = 'Похоже, проблема с отправкой пароля по почте. Пожалуйста, сообщите администратору.'; +$lang['regbadmail'] = 'Данный вами адрес электронной почты выглядит неправильным. Если вы считаете это ошибкой, сообщите админу.'; $lang['regbadpass'] = 'Два введённых пароля не идентичны. Пожалуйста, попробуйте ещё раз.'; $lang['regpwmail'] = 'Ваш пароль для системы DokuWiki'; -$lang['reghere'] = 'У вас ещё нет аккаунта? Извольте получить'; +$lang['reghere'] = 'У вас ещё нет аккаунта? Зарегистрируйтесь'; $lang['profna'] = 'Данная вики не поддерживает изменение профиля'; $lang['profnochange'] = 'Изменений не было внесено, профиль не обновлён.'; -$lang['profnoempty'] = 'Логин и адрес e-mail не могут быть пустыми.'; +$lang['profnoempty'] = 'Логин и адрес электронной почты не могут быть пустыми.'; $lang['profchanged'] = 'Профиль пользователя успешно обновлён.'; $lang['pwdforget'] = 'Забыли пароль? Получите новый'; $lang['resendna'] = 'Данная вики не поддерживает повторную отправку пароля.'; $lang['resendpwd'] = 'Выслать пароль для'; $lang['resendpwdmissing'] = 'Вы должны заполнить все поля формы.'; $lang['resendpwdnouser'] = 'Пользователь с таким логином не обнаружен в нашей базе данных.'; -$lang['resendpwdbadauth'] = 'Извините, неверный код авторизации. Убедитесь, что Вы полностью скопировали ссылку. '; -$lang['resendpwdconfirm'] = 'Ссылка для подтверждения пароля была выслана по e-mail. '; -$lang['resendpwdsuccess'] = 'Ваш новый пароль был выслан по e-mail.'; +$lang['resendpwdbadauth'] = 'Извините, неверный код авторизации. Убедитесь, что вы полностью скопировали ссылку. '; +$lang['resendpwdconfirm'] = 'Ссылка для подтверждения пароля была выслана по электронной почте. '; +$lang['resendpwdsuccess'] = 'Ваш новый пароль был выслан по электронной почте.'; $lang['license'] = 'За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:'; -$lang['licenseok'] = 'Примечание: редактируя эту страницу, Вы соглашаетесь на использование вашего вклада на условиях следующей лицензии:'; +$lang['licenseok'] = 'Примечание: редактируя эту страницу, вы соглашаетесь на использование вашего вклада на условиях следующей лицензии:'; $lang['searchmedia'] = 'Поиск по имени файла:'; $lang['searchmedia_in'] = 'Поиск в %s'; -$lang['txt_upload'] = 'Выберите файл для закачки'; +$lang['txt_upload'] = 'Выберите файл для загрузки'; $lang['txt_filename'] = 'Введите имя файла в вики (необязательно)'; $lang['txt_overwrt'] = 'Перезаписать существующий файл'; $lang['lockedby'] = 'В данный момент заблокирован'; $lang['lockexpire'] = 'Блокировка истекает в'; $lang['willexpire'] = 'Ваша блокировка редактирования этой страницы истекает в течение минуты.\nЧтобы избежать конфликтов и сбросить таймер блокировки, нажмите кнопку просмотра.'; -$lang['js']['notsavedyet'] = "Несохранённые изменения будут потеряны.\nВы действительно хотите продолжить?"; -$lang['rssfailed'] = 'Произошла ошибка при получении следующей новостной ленты: '; -$lang['nothingfound'] = 'Ничего не найдено.'; -$lang['mediaselect'] = 'Выбор медиа-файла'; -$lang['fileupload'] = 'Закачка медиа-файла'; -$lang['uploadsucc'] = 'Закачка произведена успешно'; -$lang['uploadfail'] = 'Закачка не удалась. Возможно, проблемы с правами доступа?'; -$lang['uploadwrong'] = 'В закачке отказано. Файлы с таким расширением запрещены. '; -$lang['uploadexist'] = 'Файл с таким именем существует. Загрузка не произведена.'; -$lang['uploadbadcontent'] = 'Содержание файла не соответствует расширению %s.'; -$lang['uploadspam'] = 'Закачка заблокирована спам-фильтром.'; -$lang['uploadxss'] = 'Закачка заблокирована по соображениям безопасности.'; -$lang['uploadsize'] = 'Загруженный файл был слишком большой. (макс. %s)'; -$lang['deletesucc'] = 'Файл "%s" был удалён.'; -$lang['deletefail'] = 'Невозможно удалить файл "%s". Проверьте права доступа к файлу.'; -$lang['mediainuse'] = 'Файл "%s" не был удалён - файл всё ещё используется.'; -$lang['namespaces'] = 'Пространства имён'; -$lang['mediafiles'] = 'Доступные файлы'; +$lang['js']['notsavedyet'] = 'Несохранённые изменения будут потеряны. +Вы действительно хотите продолжить?'; $lang['js']['searchmedia'] = 'Поиск файлов'; $lang['js']['keepopen'] = 'Не закрывать окно после выбора'; $lang['js']['hidedetails'] = 'Скрыть детали'; @@ -127,7 +112,7 @@ $lang['js']['mediatitle'] = 'Настройки ссылок'; $lang['js']['mediadisplay'] = 'Тип ссылки'; $lang['js']['mediaalign'] = 'Выравнивание'; $lang['js']['mediasize'] = 'Размер изображения'; -$lang['js']['mediatarget'] = 'Цель ссылки'; +$lang['js']['mediatarget'] = 'target ссылки'; $lang['js']['mediaclose'] = 'Закрыть'; $lang['js']['mediainsert'] = 'Вставить'; $lang['js']['mediadisplayimg'] = 'Показывать изображение.'; @@ -145,15 +130,33 @@ $lang['js']['mediaright'] = 'Выровнять изображение по $lang['js']['mediacenter'] = 'Выровнять изображение по центру.'; $lang['js']['medianoalign'] = 'Не выравнивать.'; $lang['js']['nosmblinks'] = 'Ссылка на сетевые каталоги Windows работает только из Интернет Эксплорера -Но Вы можете скопировать ссылку.'; +Но вы можете скопировать ссылку.'; $lang['js']['linkwiz'] = 'Мастер ссылок'; $lang['js']['linkto'] = 'Ссылка на:'; $lang['js']['del_confirm'] = 'Вы на самом деле желаете удалить выбранное?'; $lang['js']['mu_btn'] = 'Загрузить несколько файлов одновременно'; +$lang['rssfailed'] = 'Произошла ошибка при получении следующей новостной ленты: '; +$lang['nothingfound'] = 'Ничего не найдено.'; +$lang['mediaselect'] = 'Выбор медиа-файла'; +$lang['fileupload'] = 'Загрузка медиа-файла'; +$lang['uploadsucc'] = 'Загрузка произведена успешно'; +$lang['uploadfail'] = 'Загрузка не удалась. Возможно, проблемы с правами доступа?'; +$lang['uploadwrong'] = 'В загрузке отказано. Файлы с таким расширением запрещены. '; +$lang['uploadexist'] = 'Файл с таким именем существует. Загрузка не произведена.'; +$lang['uploadbadcontent'] = 'Содержание файла не соответствует расширению %s.'; +$lang['uploadspam'] = 'Загрузка заблокирована спам-фильтром.'; +$lang['uploadxss'] = 'Загрузка заблокирована по соображениям безопасности.'; +$lang['uploadsize'] = 'Загруженный файл был слишком большой. (макс. %s)'; +$lang['deletesucc'] = 'Файл "%s" был удалён.'; +$lang['deletefail'] = 'Невозможно удалить файл "%s". Проверьте права доступа к файлу.'; +$lang['mediainuse'] = 'Файл "%s" не был удалён - файл всё ещё используется.'; +$lang['namespaces'] = 'Пространства имён'; +$lang['mediafiles'] = 'Доступные файлы'; +$lang['accessdenied'] = 'Вы не можете просмотреть эту страницу.'; $lang['mediausage'] = 'Для ссылки на этот файл используйте следующий синтаксис:'; $lang['mediaview'] = 'Посмотреть исходный файл'; $lang['mediaroot'] = 'корень'; -$lang['mediaupload'] = 'Здесь можно загрузить файл в текущий каталог ("пространство имен"). Чтобы создать подкаталоги, добавьте их к началу имени файла ("Загрузить как"). Имена подкаталогов разделяются двоеточиями. '; +$lang['mediaupload'] = 'Здесь можно загрузить файл в текущий каталог («пространство имен»). Чтобы создать подкаталоги, добавьте их к началу имени файла («Загрузить как»). Имена подкаталогов разделяются двоеточиями. '; $lang['mediaextchange'] = 'Расширение изменилось: с .%s на .%s!'; $lang['reference'] = 'Ссылки для'; $lang['ref_inuse'] = 'Этот файл не может быть удалён, так как он используется следующими страницами:'; @@ -165,11 +168,12 @@ $lang['current'] = 'текущий'; $lang['yours'] = 'Ваша версия'; $lang['diff'] = 'показать отличия от текущей версии'; $lang['diff2'] = 'Показать различия между ревизиями '; +$lang['difflink'] = 'Ссылка на это сравнение'; $lang['line'] = 'Строка'; $lang['breadcrumb'] = 'Вы посетили'; $lang['youarehere'] = 'Вы находитесь здесь'; $lang['lastmod'] = 'Последние изменения'; -$lang['by'] = ' От'; +$lang['by'] = ' от'; $lang['deleted'] = 'удалено'; $lang['created'] = 'создано'; $lang['restored'] = 'старая ревизия восстановлена'; @@ -182,11 +186,11 @@ $lang['mail_changed'] = 'страница изменена:'; $lang['mail_subscribe_list'] = 'изменились страницы в пространстве имен:'; $lang['mail_new_user'] = 'новый пользователь:'; $lang['mail_upload'] = 'файл закачан:'; -$lang['qb_bold'] = 'Полужирный шрифт'; -$lang['qb_italic'] = 'Курсивный шрифт'; -$lang['qb_underl'] = 'Подчеркивание'; +$lang['qb_bold'] = 'Полужирный'; +$lang['qb_italic'] = 'Курсив'; +$lang['qb_underl'] = 'Подчёркнутый'; $lang['qb_code'] = 'Текст кода'; -$lang['qb_strike'] = 'Зачёркнутый шрифт'; +$lang['qb_strike'] = 'Зачёркнутый'; $lang['qb_h1'] = 'Заголовок уровня 1'; $lang['qb_h2'] = 'Заголовок уровня 2'; $lang['qb_h3'] = 'Заголовок уровня 3'; @@ -202,7 +206,7 @@ $lang['qb_extlink'] = 'Внешняя ссылка'; $lang['qb_hr'] = 'Разделитель'; $lang['qb_ol'] = 'Элемент нумерованного списка'; $lang['qb_ul'] = 'Элемент ненумерованного списка'; -$lang['qb_media'] = 'Добавить картинки и другие файлы'; +$lang['qb_media'] = 'Добавить изображения или другие файлы'; $lang['qb_sig'] = 'Вставить подпись'; $lang['qb_smileys'] = 'Смайлики'; $lang['qb_chars'] = 'Специальные символы'; @@ -224,7 +228,7 @@ $lang['img_camera'] = 'Модель'; $lang['img_keywords'] = 'Ключевые слова'; $lang['subscr_subscribe_success'] = 'Добавлен %s в подписку на %s'; $lang['subscr_subscribe_error'] = 'Невозможно добавить %s в подписку на %s'; -$lang['subscr_subscribe_noaddress'] = 'Нет адреса электронной почты, сопоставленного с вашей учетной записью. Вы не можете подписаться на рассылку'; +$lang['subscr_subscribe_noaddress'] = 'Нет адреса электронной почты, сопоставленного с вашей учётной записью. Вы не можете подписаться на рассылку'; $lang['subscr_unsubscribe_success'] = 'Удален %s из подписки на %s'; $lang['subscr_unsubscribe_error'] = 'Ошибка удаления %s из подписки на %s'; $lang['subscr_already_subscribed'] = '%s уже подписан на %s'; @@ -240,31 +244,32 @@ $lang['subscr_style_digest'] = 'сводка изменений по кажд $lang['subscr_style_list'] = 'перечислять изменившиеся страницы с прошлого уведомления'; $lang['authmodfailed'] = 'Неправильная конфигурация аутентификации пользователя. Пожалуйста, сообщите об этом вашему администратору вики.'; $lang['authtempfail'] = 'Аутентификация пользователей временно недоступна. Если проблема продолжается какое-то время, пожалуйста, сообщите об этом вашему администратору вики.'; -$lang['i_chooselang'] = 'Выберите Ваш язык/Language'; +$lang['i_chooselang'] = 'Выберите свой язык/Choose your language'; $lang['i_installer'] = 'Установка DokuWiki'; $lang['i_wikiname'] = 'Название вики'; $lang['i_enableacl'] = 'Разрешить ограничение прав доступа (рекомендуется)'; -$lang['i_superuser'] = 'Суперюзер'; +$lang['i_superuser'] = 'Суперпользователь'; $lang['i_problems'] = 'Программа установки столкнулась с проблемами, перечисленными ниже. Чтобы продолжить, вам необходимо их устранить. '; $lang['i_modified'] = 'Из соображений безопасности эта программа запускается только на новой, неизменённой установке DokuWiki. - Вам нужно либо заново распаковать скачанный пакет установки, либо обратиться к полной - инструкции по установке DokuWiki'; -$lang['i_funcna'] = 'Функция PHP %s недоступна. Может быть, она по какой-то причине заблокирована Вашим хостингом?'; +Вам нужно либо заново распаковать скачанный пакет установки, либо обратиться к полной +инструкции по установке DokuWiki'; +$lang['i_funcna'] = 'Функция PHP %s недоступна. Может быть, она по какой-то причине заблокирована вашим хостером?'; $lang['i_phpver'] = 'Ваша версия PHP (%s) ниже требуемой (%s). Вам необходимо обновить установленную версию PHP.'; $lang['i_permfail'] = '%s недоступна для записи DokuWiki. Вам необходимо исправить системные права доступа для этой директории!'; $lang['i_confexists'] = '%s уже существует'; $lang['i_writeerr'] = 'Не удалось создать %s. Вам необходимо проверить системные права доступа к файлу/директориям и создать файл вручную. '; $lang['i_badhash'] = 'dokuwiki.php не распознана или изменена (хэш=%s)'; -$lang['i_badval'] = '%s - недопустимое или пустое значение'; +$lang['i_badval'] = '%s — недопустимое или пустое значение'; $lang['i_success'] = 'Конфигурация прошла успешно. Теперь вы можете удалить файл install.php. Переходите к вашей новой DokuWiki.'; -$lang['i_failure'] = 'При записи в файлы конфигурации были обнаружены ошибки. Возможно, вам придется исправить их вручную, прежде чем вы сможете использовать Вашу новую DokuWiki.'; +$lang['i_failure'] = 'При записи в файлы конфигурации были обнаружены ошибки. Возможно, вам придется исправить их вручную, прежде чем вы сможете использовать вашу новую DokuWiki.'; $lang['i_policy'] = 'Исходная политика прав доступа'; $lang['i_pol0'] = 'Открытая вики (чтение, запись, закачка файлов для всех)'; $lang['i_pol1'] = 'Общедоступная вики (чтение для всех, запись и загрузка файлов для зарегистрированных пользователей)'; $lang['i_pol2'] = 'Закрытая вики (чтение, запись и загрузка файлов только для зарегистрированных пользователей)'; $lang['i_retry'] = 'Повторить попытку'; -$lang['mu_intro'] = 'Здесь Вы можете загрузить несколько файлов сразу. Кликните на "обзор", чтобы добавить их в список. Нажмите "загрузить" когда будете готовы.'; +$lang['i_license'] = 'Пожалуйста, выберите тип лицензии для вашей вики:'; +$lang['mu_intro'] = 'Здесь вы можете загрузить несколько файлов сразу. Кликните на «обзор», чтобы добавить их в список. Нажмите «загрузить» когда будете готовы.'; $lang['mu_gridname'] = 'Имя файла'; $lang['mu_gridsize'] = 'Размер'; $lang['mu_gridstat'] = 'Статус'; @@ -287,3 +292,4 @@ $lang['days'] = '%d дней назад'; $lang['hours'] = '%d час(ов) назад'; $lang['minutes'] = '%d минут назад'; $lang['seconds'] = '%d секунд назад'; +$lang['wordblock'] = 'Ваши изменения не сохранены, поскольку они содержат блокируемые слова (спам).'; diff --git a/inc/lang/ru/login.txt b/inc/lang/ru/login.txt index 967131874..22d4dafcc 100644 --- a/inc/lang/ru/login.txt +++ b/inc/lang/ru/login.txt @@ -1,4 +1,4 @@ ====== Авторизация ====== -В данный момент Вы не в системе. Авторизируйтесь при помощи следующей формы. //Замечание:// для работы у вас должны быть включены cookies. +В данный момент вы не в системе. Авторизируйтесь при помощи следующей формы. //Замечание:// для работы у вас должны быть включены cookies. diff --git a/inc/lang/ru/mailtext.txt b/inc/lang/ru/mailtext.txt index 596fd8275..f7b9d4462 100644 --- a/inc/lang/ru/mailtext.txt +++ b/inc/lang/ru/mailtext.txt @@ -1,13 +1,13 @@ -В вашей DokuWiki была добавлена или изменена страница. Подробности: +В вашей вики была добавлена или изменена страница. Подробности: Дата : @DATE@ Браузер : @BROWSER@ IP-адрес : @IPADDRESS@ Хост : @HOSTNAME@ -Старая версия : @OLDPAGE@ -Новая версия : @NEWPAGE@ +Старая версия : @OLDPAGE@ +Новая версия : @NEWPAGE@ Сводка изменений : @SUMMARY@ -Пользователь : @USER@ +Пользователь : @USER@ @DIFF@ diff --git a/inc/lang/ru/newpage.txt b/inc/lang/ru/newpage.txt index 042941310..ea8e35bf5 100644 --- a/inc/lang/ru/newpage.txt +++ b/inc/lang/ru/newpage.txt @@ -1,3 +1,3 @@ ====== Эта страница ещё не существует ====== -Вы перешли по ссылке на тему, для которой ещё не создана страница. Если позволяют Ваши права доступа, Вы можете создать её, нажав на кнопку "Создать страницу". +Вы перешли по ссылке на тему, для которой ещё не создана страница. Если позволяют ваши права доступа, вы можете создать её, нажав на кнопку «Создать страницу». diff --git a/inc/lang/ru/preview.txt b/inc/lang/ru/preview.txt index a3f37843d..2bc383eb2 100644 --- a/inc/lang/ru/preview.txt +++ b/inc/lang/ru/preview.txt @@ -1,4 +1,4 @@ ====== Просмотр ====== -Здесь показано, как Ваш текст будет выглядеть. Внимание: текст ещё **не сохранён!** +Здесь показано, как ваш текст будет выглядеть. Внимание: текст ещё **не сохранён!** diff --git a/inc/lang/ru/pwconfirm.txt b/inc/lang/ru/pwconfirm.txt index 89c84791e..ecf416210 100644 --- a/inc/lang/ru/pwconfirm.txt +++ b/inc/lang/ru/pwconfirm.txt @@ -2,9 +2,9 @@ Кто-то запросил новый пароль для входа в @TITLE@ по адресу @DOKUWIKIURL@ -Если Вы не запрашивали новый пароль, просто проигнорируйте этот e-mail. +Если вы не запрашивали новый пароль, просто проигнорируйте это письмо. -Для подтверждения, что запрос был действительно сделан Вами, пожалуйста, перейдите по следующей ссылке. +Для подтверждения, что запрос был действительно сделан вами, пожалуйста, перейдите по следующей ссылке. @CONFIRM@ diff --git a/inc/lang/ru/read.txt b/inc/lang/ru/read.txt index ed2754ac7..fd52d1a52 100644 --- a/inc/lang/ru/read.txt +++ b/inc/lang/ru/read.txt @@ -1,2 +1,2 @@ -Эта страница — только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. +Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. diff --git a/inc/lang/ru/register.txt b/inc/lang/ru/register.txt index 23ed33656..2d5d9878e 100644 --- a/inc/lang/ru/register.txt +++ b/inc/lang/ru/register.txt @@ -1,3 +1,3 @@ ====== Регистрация нового пользователя ====== -Для регистрации в вики заполните все поля ниже. Обратите внимание на **правильность адреса е-мэйл** - туда будет выслан пароль в том случае, если Вас не просят самостоятельно ввести его здесь. Логин должен удовлетворять ограничениям для [[doku>pagename|идентификатора страницы]]. +Для регистрации в вики заполните все поля ниже. Обратите внимание на **правильность адреса электронной почты** — туда будет выслан пароль в том случае, если вас не просят самостоятельно ввести его здесь. Логин должен удовлетворять ограничениям для [[doku>pagename|идентификатора страницы]]. diff --git a/inc/lang/ru/registermail.txt b/inc/lang/ru/registermail.txt index 615cff543..496db229e 100644 --- a/inc/lang/ru/registermail.txt +++ b/inc/lang/ru/registermail.txt @@ -2,7 +2,7 @@ Логин : @NEWUSER@ Полное имя : @NEWNAME@ -E-mail : @NEWEMAIL@ +Эл. адрес : @NEWEMAIL@ Дата : @DATE@ Браузер : @BROWSER@ diff --git a/inc/lang/ru/resendpwd.txt b/inc/lang/ru/resendpwd.txt index 9bcd98dea..3cd05049a 100644 --- a/inc/lang/ru/resendpwd.txt +++ b/inc/lang/ru/resendpwd.txt @@ -1,3 +1,3 @@ -====== Послать новый пароль ====== +====== Выслать новый пароль ====== -Для получения нового пароля введите требуемые данные ниже. Ваш новый пароль будет послан по адресу е-мэйл, зарегистрированному на Ваше имя. Указанное ниже имя должно быть Вашим логином в этой вики. +Для получения нового пароля введите требуемые данные ниже. Ваш новый пароль будет послан по адресу электронной почты, зарегистрированному на ваше имя. Указанное ниже имя должно быть вашим логином в этой вики. diff --git a/inc/lang/ru/revisions.txt b/inc/lang/ru/revisions.txt index 4341969a3..06022323f 100644 --- a/inc/lang/ru/revisions.txt +++ b/inc/lang/ru/revisions.txt @@ -1,3 +1,3 @@ ====== История страницы ====== -Перед Вами — история правок текущего документа. Чтобы вернуться к одной из предыдущих версий, выберите нужную, нажмите ''Править страницу'' и сохраните. +Перед вами — история правок текущего документа. Чтобы вернуться к одной из предыдущих версий, выберите нужную, нажмите ''Править страницу'' и сохраните. diff --git a/inc/lang/ru/searchpage.txt b/inc/lang/ru/searchpage.txt index 33cac358a..608220495 100644 --- a/inc/lang/ru/searchpage.txt +++ b/inc/lang/ru/searchpage.txt @@ -1,5 +1,5 @@ ====== Поиск ====== -Перед Вами — результаты поиска. Если Вы не нашли то, что искали, Вы можете создать новую страницу с именем, совпадающим с запросом. Чтобы сделать это, просто нажмите на кнопку ''Создать страницу''. +Перед вами результаты поиска. Если вы не нашли то, что искали, вы можете создать новую страницу с именем, совпадающим с запросом. Чтобы сделать это, просто нажмите на кнопку ''Создать страницу''. ===== Результаты ===== \ No newline at end of file diff --git a/inc/lang/ru/showrev.txt b/inc/lang/ru/showrev.txt index acb814e17..b3f3852eb 100644 --- a/inc/lang/ru/showrev.txt +++ b/inc/lang/ru/showrev.txt @@ -1,2 +1,2 @@ -**Это — старая версия документа!** +**Это старая версия документа!** ---- diff --git a/inc/lang/ru/subscr_form.txt b/inc/lang/ru/subscr_form.txt index 03998cc87..67643cdb8 100644 --- a/inc/lang/ru/subscr_form.txt +++ b/inc/lang/ru/subscr_form.txt @@ -1,3 +1,3 @@ - ====== Управление подписками ====== +====== Управление подписками ====== Здесь вы можете управлять подписками для текущей страницы и пространства имен. \ No newline at end of file diff --git a/inc/lang/ru/updateprofile.txt b/inc/lang/ru/updateprofile.txt index 136184467..b1f9f56ef 100644 --- a/inc/lang/ru/updateprofile.txt +++ b/inc/lang/ru/updateprofile.txt @@ -1,5 +1,5 @@ ====== Обновить профиль ====== -Необходимо заполнить только те поля, которые Вы хотите изменить. Имя пользователя не может быть изменено. +Необходимо заполнить только те поля, которые вы хотите изменить. Имя пользователя не может быть изменено. diff --git a/inc/lang/ru/uploadmail.txt b/inc/lang/ru/uploadmail.txt index 07dbf186d..4dd43e603 100644 --- a/inc/lang/ru/uploadmail.txt +++ b/inc/lang/ru/uploadmail.txt @@ -1,4 +1,4 @@ -В вашу DokuWiki был закачан файл. Подробная информация: +В вашу вики был закачан файл. Подробная информация: Файл : @MEDIA@ Дата : @DATE@ -- cgit v1.2.3 From 163ad9f2399a52f60868a2454c1113e214c1bfea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szab=C3=B3=20D=C3=A1vid?= Date: Fri, 16 Jul 2010 09:01:32 +0200 Subject: Hungarian update --- inc/lang/hu/lang.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'inc') diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index c21221ed4..b3cd87c29 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -9,6 +9,7 @@ * @author Siaynoq Mage * @author schilling.janos@gmail.com * @author Szabó Dávid (szabo.david@gyumolcstarhely.hu) + * @author Szabó Dávid */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -144,6 +145,7 @@ $lang['deletefail'] = 'A "%s" fájl nem törölhető. - Ellenőrizd a $lang['mediainuse'] = 'A "%s" fájl nem törlődött - még használat alatt van.'; $lang['namespaces'] = 'Névtér'; $lang['mediafiles'] = 'Elérhető fájlok itt:'; +$lang['accessdenied'] = 'Nincsen jogod az oldal megtekintésére.'; $lang['mediausage'] = 'A következő formában hivatkozhatsz erre az állományra:'; $lang['mediaview'] = 'Eredeti állomány megtekintése'; $lang['mediaroot'] = 'kiindulási hely'; @@ -159,6 +161,7 @@ $lang['current'] = 'aktuális'; $lang['yours'] = 'A te változatod'; $lang['diff'] = 'a különbségeket mutatja az aktuális változathoz képest'; $lang['diff2'] = 'a különbségeket mutatja a kiválasztott változatok között'; +$lang['difflink'] = 'Összehasonlító nézet linkje'; $lang['line'] = 'sorszám'; $lang['breadcrumb'] = 'Nyomvonal'; $lang['youarehere'] = 'Itt vagy'; @@ -256,6 +259,7 @@ $lang['i_pol0'] = 'Nyitott Wiki (mindenki olvashatja, írhatja, $lang['i_pol1'] = 'Publikus Wiki (mindenki olvashatja, de csak regisztrált felhasználók írhatják, és tölthetnek fel fájlokat)'; $lang['i_pol2'] = 'Zárt Wiki (csak regisztrált felhasználók olvashatják, írhatják és tölthetnek fel fájlokat)'; $lang['i_retry'] = 'Újra'; +$lang['i_license'] = 'Kérlek válassz licenszt a feltöltött tartalomhoz:'; $lang['mu_intro'] = 'Itt több fájlt is fel tudsz tölteni egyszerre. Kattints a "Kiválaszt" gombra és add hozzá a listához. Nyomd meg a Feltöltés gombot, amikor elkészültél.'; $lang['mu_gridname'] = 'Fájlnév'; $lang['mu_gridsize'] = 'Méret'; -- cgit v1.2.3 From 5cbeffbf8d4376729601d85a73bd2a43c8eed4ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20Pennewi=C3=9F?= Date: Fri, 16 Jul 2010 09:53:08 +0200 Subject: Strip whitespace from X-FORWARDED-FOR FS#1996 --- inc/common.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/common.php b/inc/common.php index 513b006c2..bf5987c28 100644 --- a/inc/common.php +++ b/inc/common.php @@ -594,9 +594,9 @@ function clientIP($single=false){ $ip = array(); $ip[] = $_SERVER['REMOTE_ADDR']; if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) - $ip = array_merge($ip,explode(',',$_SERVER['HTTP_X_FORWARDED_FOR'])); + $ip = array_merge($ip,explode(',',str_replace(' ','',$_SERVER['HTTP_X_FORWARDED_FOR']))); if(!empty($_SERVER['HTTP_X_REAL_IP'])) - $ip = array_merge($ip,explode(',',$_SERVER['HTTP_X_REAL_IP'])); + $ip = array_merge($ip,explode(',',str_replace(' ','',$_SERVER['HTTP_X_REAL_IP']))); // some IPv4/v6 regexps borrowed from Feyd // see: http://forums.devnetwork.net/viewtopic.php?f=38&t=53479 -- cgit v1.2.3 From 6d83ed4c380ed439130b3552a088cdfb53bd9119 Mon Sep 17 00:00:00 2001 From: FELTZ Vincent Date: Mon, 26 Jul 2010 18:31:07 +0200 Subject: French language update --- inc/lang/fr/lang.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'inc') diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index 0d5694263..76e1271bd 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -156,6 +156,7 @@ $lang['deletefail'] = 'Le fichier « %s » n\'a pu être effacé, v $lang['mediainuse'] = 'Le fichier « %s » n\'a pas été effacé, il est en cours d\'utilisation.'; $lang['namespaces'] = 'Catégories'; $lang['mediafiles'] = 'Fichiers disponibles dans'; +$lang['accessdenied'] = 'Vous n\'êtes pas autorisé à voir cette page.'; $lang['mediausage'] = 'Utilisez la syntaxe suivante pour faire référence à ce fichier :'; $lang['mediaview'] = 'Afficher le fichier original'; $lang['mediaroot'] = 'racine'; @@ -171,6 +172,7 @@ $lang['current'] = 'Version actuelle'; $lang['yours'] = 'Votre version'; $lang['diff'] = 'Différences avec la version actuelle'; $lang['diff2'] = 'Différences entre les versions sélectionnées'; +$lang['difflink'] = 'Lien vers cette vue'; $lang['line'] = 'Ligne'; $lang['breadcrumb'] = 'Piste'; $lang['youarehere'] = 'Vous êtes ici'; @@ -267,6 +269,7 @@ $lang['i_pol0'] = 'Wiki ouvert (lecture, écriture, envoi de fich $lang['i_pol1'] = 'Wiki public (lecture pour tout le monde, écriture et envoi de fichiers pour les utilisateurs enregistrés)'; $lang['i_pol2'] = 'Wiki fermé (lecture, écriture, envoi de fichiers pour les utilisateurs enregistrés uniquement)'; $lang['i_retry'] = 'Réessayer'; +$lang['i_license'] = 'Veuillez choisir la licence sous laquelle placer votre contenu :'; $lang['mu_intro'] = 'Ici vous pouvez envoyer plusieurs fichiers en même temps. Cliquez sur le bouton parcourir pour les ajouter. Cliquez sur envoyer lorsque c\'est prêt. '; $lang['mu_gridname'] = 'Nom du fichier'; $lang['mu_gridsize'] = 'Taille'; -- cgit v1.2.3 From a77689b1ea6fd90abd14a6f375c661af93135b55 Mon Sep 17 00:00:00 2001 From: Arne Pelka Date: Mon, 26 Jul 2010 18:32:11 +0200 Subject: German language updates --- inc/lang/de/lang.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'inc') diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index 290c069a4..dcc5c5a3f 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -110,7 +110,7 @@ $lang['js']['hidedetails'] = 'Details ausblenden'; $lang['js']['mediatitle'] = 'Linkeinstellungen'; $lang['js']['mediadisplay'] = 'Linktyp'; $lang['js']['mediaalign'] = 'Anordnung'; -$lang['js']['mediasize'] = 'Bildgrösse'; +$lang['js']['mediasize'] = 'Bildgröße'; $lang['js']['mediatarget'] = 'Linkziel'; $lang['js']['mediaclose'] = 'Schliessen'; $lang['js']['mediainsert'] = 'Einfügen'; @@ -151,6 +151,7 @@ $lang['deletefail'] = '"%s" konnte nicht gelöscht werden - prüfen S $lang['mediainuse'] = 'Die Datei "%s" wurde nicht gelöscht - sie wird noch verwendet.'; $lang['namespaces'] = 'Namensräume'; $lang['mediafiles'] = 'Vorhandene Dateien in'; +$lang['accessdenied'] = 'Es ist Ihnen nicht gestattet, diese Seite zu sehen.'; $lang['mediausage'] = 'Syntax zum Verwenden dieser Datei:'; $lang['mediaview'] = 'Originaldatei öffnen'; $lang['mediaroot'] = 'Wurzel'; @@ -166,6 +167,7 @@ $lang['current'] = 'aktuell'; $lang['yours'] = 'Ihre Version'; $lang['diff'] = 'Zeige Unterschiede zu aktueller Version'; $lang['diff2'] = 'Zeige Unterschiede der ausgewählten Versionen'; +$lang['difflink'] = 'Link zu dieser Vergleichsansicht'; $lang['line'] = 'Zeile'; $lang['breadcrumb'] = 'Zuletzt angesehen'; $lang['youarehere'] = 'Sie befinden sich hier'; @@ -217,7 +219,7 @@ $lang['img_title'] = 'Titel'; $lang['img_caption'] = 'Bildunterschrift'; $lang['img_date'] = 'Datum'; $lang['img_fname'] = 'Dateiname'; -$lang['img_fsize'] = 'Grösse'; +$lang['img_fsize'] = 'Größe'; $lang['img_artist'] = 'FotografIn'; $lang['img_copyr'] = 'Copyright'; $lang['img_format'] = 'Format'; @@ -262,6 +264,7 @@ $lang['i_pol0'] = 'Offenes Wiki (lesen, schreiben, hochladen für $lang['i_pol1'] = 'Öffentliches Wiki (lesen für alle, schreiben und hochladen für registrierte Nutzer)'; $lang['i_pol2'] = 'Geschlossenes Wiki (lesen, schreiben, hochladen nur für registrierte Nutzer)'; $lang['i_retry'] = 'Wiederholen'; +$lang['i_license'] = 'Bitte wählen Sie die Lizenz, unter die Sie Ihre Inhalte stellen möchten:'; $lang['mu_intro'] = 'In diesem Bereich können Sie mehrere Dateien gleichzeitig hochladen. Benutzen Sie die Schaltfläche "Durchsuchen" um sie der Warteschlange zuzufügen. Betätigen Sie die Schaltfläche "Hochladen" um die Übertragung zu starten.'; $lang['mu_gridname'] = 'Dateiname'; $lang['mu_gridsize'] = 'Größe'; -- cgit v1.2.3 From e0d4d0544034f85323610a0a1ac592a45957c1d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emanuel-Emeric=20Andra=C5=9Fi?= Date: Sun, 1 Aug 2010 21:00:42 +0200 Subject: Romanian language update --- inc/lang/ro/lang.php | 71 ++++++++++++++++++++++++++++++++----------- inc/lang/ro/subscr_digest.txt | 20 ++++++++++++ inc/lang/ro/subscr_form.txt | 3 ++ inc/lang/ro/subscr_list.txt | 17 +++++++++++ inc/lang/ro/subscr_single.txt | 23 ++++++++++++++ 5 files changed, 116 insertions(+), 18 deletions(-) create mode 100644 inc/lang/ro/subscr_digest.txt create mode 100644 inc/lang/ro/subscr_form.txt create mode 100644 inc/lang/ro/subscr_list.txt create mode 100644 inc/lang/ro/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index f71d5f531..d21249d91 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -43,9 +43,6 @@ $lang['btn_back'] = 'Înapoi'; $lang['btn_backlink'] = 'Legătură anterioară'; $lang['btn_backtomedia'] = 'Înapoi la Selecţia Mediafile'; $lang['btn_subscribe'] = 'Subscrie Modificarea Paginii'; -$lang['btn_unsubscribe'] = 'Anulează Subscrierea Modificării Paginii'; -$lang['btn_subscribens'] = 'Subscrie Modificarea Spaţiului de Nume'; -$lang['btn_unsubscribens'] = 'Anulează Subscrierea Modificării Spaţiului de Nume'; $lang['btn_profile'] = 'Actualizează Profil'; $lang['btn_reset'] = 'Resetează'; $lang['btn_resendpwd'] = 'Trimite parola nouă'; @@ -99,7 +96,38 @@ $lang['txt_overwrt'] = 'Suprascrie fişierul existent'; $lang['lockedby'] = 'Momentan blocat de'; $lang['lockexpire'] = 'Blocarea expiră la'; $lang['willexpire'] = 'Blocarea pentru editarea paginii expiră intr-un minut.\nPentru a preveni conflictele foloseşte butonul de previzualizare pentru resetarea blocării.'; -$lang['js']['notsavedyet'] = "Există modificări nesalvate, care se vor pierde.\nDoreşti să continui?"; +$lang['js']['notsavedyet'] = 'Există modificări nesalvate, care se vor pierde. +Doreşti să continui?'; +$lang['js']['searchmedia'] = 'Caută fişiere'; +$lang['js']['keepopen'] = 'Menţine fereastra deschisă la selecţie'; +$lang['js']['hidedetails'] = 'Ascunde Detalii'; +$lang['js']['mediatitle'] = 'Setări link'; +$lang['js']['mediadisplay'] = 'Tip link'; +$lang['js']['mediaalign'] = 'Aliniere'; +$lang['js']['mediasize'] = 'Mărime imagine'; +$lang['js']['mediatarget'] = 'Ţintă link'; +$lang['js']['mediaclose'] = 'Închide'; +$lang['js']['mediainsert'] = 'Inserează'; +$lang['js']['mediadisplayimg'] = 'Afişează imaginea.'; +$lang['js']['mediadisplaylnk'] = 'Afişează doar linkul.'; +$lang['js']['mediasmall'] = 'Versiune mică'; +$lang['js']['mediamedium'] = 'Versiune medie'; +$lang['js']['medialarge'] = 'Versiune mare'; +$lang['js']['mediaoriginal'] = 'Versiune originală'; +$lang['js']['medialnk'] = 'Link către pagina detaliilor'; +$lang['js']['mediadirect'] = 'Link direct către original'; +$lang['js']['medianolnk'] = 'Fără link'; +$lang['js']['medianolink'] = 'Nu crea link către imagine'; +$lang['js']['medialeft'] = 'Aliniază imaginea la stânga.'; +$lang['js']['mediaright'] = 'Aliniază imaginea la dreapta.'; +$lang['js']['mediacenter'] = 'Aliniază imaginea la centru.'; +$lang['js']['medianoalign'] = 'Nu utiliza aliniere.'; +$lang['js']['nosmblinks'] = 'Legăturile către sharing-uri Windows funcţioneaza numai in Microsoft Internet Explorer. +Puteţi însă copia şi insera legătura.'; +$lang['js']['linkwiz'] = 'Asistent legătură'; +$lang['js']['linkto'] = 'Legătură la:'; +$lang['js']['del_confirm'] = 'Doriţi într-adevăr ştergerea elementelor selectate?'; +$lang['js']['mu_btn'] = 'Încarcă mai multe fişiere simultan'; $lang['rssfailed'] = 'A apărut o eroare in timpul descărcării acestui cîmp: '; $lang['nothingfound'] = 'Nu am găsit nimic.'; $lang['mediaselect'] = 'Selectare fişiere media'; @@ -117,15 +145,7 @@ $lang['deletefail'] = '"%s" nu a putut fi şters - verificaţi dreptu $lang['mediainuse'] = 'Fişierul "%s" nu a fost şters - este încă în uz.'; $lang['namespaces'] = 'Spaţii de nume'; $lang['mediafiles'] = 'Fişiere disponibile în'; -$lang['js']['searchmedia'] = 'Caută fişiere'; -$lang['js']['keepopen'] = 'Menţine fereastra deschisă la selecţie'; -$lang['js']['hidedetails'] = 'Ascunde Detalii'; -$lang['js']['nosmblinks'] = 'Legăturile către sharing-uri Windows funcţioneaza numai in Microsoft Internet Explorer. -Puteţi însă copia şi insera legătura.'; -$lang['js']['linkwiz'] = 'Asistent legătură'; -$lang['js']['linkto'] = 'Legătură la:'; -$lang['js']['del_confirm'] = 'Doriţi într-adevăr ştergerea elementelor selectate?'; -$lang['js']['mu_btn'] = 'Încarcă mai multe fişiere simultan'; +$lang['accessdenied'] = 'Nu vă este permis să vizualizaţi această pagină.'; $lang['mediausage'] = 'Folosiţi următoarea sintaxă pentru a face referinţă la acest fişier:'; $lang['mediaview'] = 'Vizualizează fişierul original'; $lang['mediaroot'] = 'root'; @@ -141,6 +161,7 @@ $lang['current'] = 'curent'; $lang['yours'] = 'Versiunea ta'; $lang['diff'] = 'arată diferenţele faţă de versiunea curentă'; $lang['diff2'] = 'Arată diferenţele dintre versiunile selectate'; +$lang['difflink'] = 'Link către această vizualizare comparativă'; $lang['line'] = 'Linia'; $lang['breadcrumb'] = 'Traseu'; $lang['youarehere'] = 'Sunteţi aici'; @@ -155,6 +176,7 @@ $lang['noflash'] = 'Plugin-ul con,$this->cnf['usertree'],$filter); + $sr=ldap_search($this->con,$this->cnf['usertree'],$all_filter); $entries = ldap_get_entries($this->con, $sr); $users_array = array(); for ($i=0; $i<$entries["count"]; $i++){ -- cgit v1.2.3 From 45c5ecdccdd251af3e9202f944fa8bf103c5db0f Mon Sep 17 00:00:00 2001 From: osman tekin Date: Mon, 9 Aug 2010 22:04:49 +0200 Subject: Italian language update --- inc/lang/it/lang.php | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) (limited to 'inc') diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index c8e51f3e9..4bfafb060 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -13,6 +13,7 @@ * @author snarchio@alice.it * @author robocap * @author Matteo Carnevali + * @author Osman Tekin osman.tekin93@hotmail.it */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -99,24 +100,7 @@ $lang['txt_overwrt'] = 'Sovrascrivi file esistente'; $lang['lockedby'] = 'Attualmente bloccato da'; $lang['lockexpire'] = 'Il blocco scade alle'; $lang['willexpire'] = 'Il tuo blocco su questa pagina scadrà tra circa un minuto.\nPer evitare incongruenze usa il pulsante di anteprima per prolungare il periodo di blocco.'; -$lang['js']['notsavedyet'] = "Le modifiche non salvate andranno perse."; -$lang['rssfailed'] = 'Si è verificato un errore cercando questo feed: '; -$lang['nothingfound'] = 'Nessun risultato trovato.'; -$lang['mediaselect'] = 'Selezione dei file'; -$lang['fileupload'] = 'File caricato'; -$lang['uploadsucc'] = 'Invio riuscito'; -$lang['uploadfail'] = 'Invio fallito. Contatta l\'amministratore.'; -$lang['uploadwrong'] = 'Invio rifiutato. Questa estensione di file non è ammessa'; -$lang['uploadexist'] = 'Il file esiste già . Invio annullato.'; -$lang['uploadbadcontent'] = 'Il contenuto caricato non corrisponde all\'estensione del file %s.'; -$lang['uploadspam'] = 'Il caricamento è stato bloccato dalla lista nera di spam.'; -$lang['uploadxss'] = 'Il caricamento è stato bloccato perchè il contenuto potrebbe essere malizioso.'; -$lang['uploadsize'] = 'Il file caricato è troppo grande. (massimo %s)'; -$lang['deletesucc'] = 'Il file "%s" è stato eliminato.'; -$lang['deletefail'] = '"%s" non può essere eliminato - verifica i permessi.'; -$lang['mediainuse'] = 'Il file "%s" non è stato eliminato - è ancora in uso.'; -$lang['namespaces'] = 'Categorie'; -$lang['mediafiles'] = 'File disponibili in'; +$lang['js']['notsavedyet'] = 'Le modifiche non salvate andranno perse.'; $lang['js']['searchmedia'] = 'Cerca file'; $lang['js']['keepopen'] = 'Tieni la finestra aperta durante la selezione'; $lang['js']['hidedetails'] = 'Nascondi Dettagli'; @@ -147,6 +131,24 @@ $lang['js']['linkwiz'] = 'Collegamento guidato'; $lang['js']['linkto'] = 'Collega a:'; $lang['js']['del_confirm'] = 'Eliminare veramente questa voce?'; $lang['js']['mu_btn'] = 'Carica più di un file alla volta'; +$lang['rssfailed'] = 'Si è verificato un errore cercando questo feed: '; +$lang['nothingfound'] = 'Nessun risultato trovato.'; +$lang['mediaselect'] = 'Selezione dei file'; +$lang['fileupload'] = 'File caricato'; +$lang['uploadsucc'] = 'Invio riuscito'; +$lang['uploadfail'] = 'Invio fallito. Contatta l\'amministratore.'; +$lang['uploadwrong'] = 'Invio rifiutato. Questa estensione di file non è ammessa'; +$lang['uploadexist'] = 'Il file esiste già . Invio annullato.'; +$lang['uploadbadcontent'] = 'Il contenuto caricato non corrisponde all\'estensione del file %s.'; +$lang['uploadspam'] = 'Il caricamento è stato bloccato dalla lista nera di spam.'; +$lang['uploadxss'] = 'Il caricamento è stato bloccato perchè il contenuto potrebbe essere malizioso.'; +$lang['uploadsize'] = 'Il file caricato è troppo grande. (massimo %s)'; +$lang['deletesucc'] = 'Il file "%s" è stato eliminato.'; +$lang['deletefail'] = '"%s" non può essere eliminato - verifica i permessi.'; +$lang['mediainuse'] = 'Il file "%s" non è stato eliminato - è ancora in uso.'; +$lang['namespaces'] = 'Categorie'; +$lang['mediafiles'] = 'File disponibili in'; +$lang['accessdenied'] = 'Non sei autorizzato a vedere questa pagina.'; $lang['mediausage'] = 'Usa la seguente sintassi per riferirti a questo file:'; $lang['mediaview'] = 'Mostra file originale'; $lang['mediaroot'] = 'directory principale'; @@ -162,6 +164,7 @@ $lang['current'] = 'versione attuale'; $lang['yours'] = 'la tua versione'; $lang['diff'] = 'differenze con la versione attuale'; $lang['diff2'] = 'differenze tra le versioni selezionate'; +$lang['difflink'] = 'Link all visualizzazione della comparazione'; $lang['line'] = 'Linea'; $lang['breadcrumb'] = 'Traccia'; $lang['youarehere'] = 'Ti trovi qui'; @@ -261,6 +264,7 @@ $lang['i_pol0'] = 'Wiki Aperto (lettura, scrittura, caricamento f $lang['i_pol1'] = 'Wiki Pubblico (lettura per tutti, scrittura e caricamento file per gli utenti registrati)'; $lang['i_pol2'] = 'Wiki Chiuso (lettura, scrittura, caricamento file solamente per gli utenti registrati)'; $lang['i_retry'] = 'Riprova'; +$lang['i_license'] = 'Perfavore scegli la licenza in cui vuoi inserire il tuo contenuto:'; $lang['mu_intro'] = 'Qui si possono caricare più di un file alla volta. Cliccare su "Sfoglia..." per aggiungere i file in coda. Fai click su "Invia file" quando si è pronti.'; $lang['mu_gridname'] = 'Nome file'; $lang['mu_gridsize'] = 'Dimensione'; @@ -284,3 +288,4 @@ $lang['days'] = '%d giorni fa'; $lang['hours'] = '%d ore fa'; $lang['minutes'] = '%d minuti fa'; $lang['seconds'] = '%d secondi fa'; +$lang['wordblock'] = 'La modifica non è stata salvata perché contiene testo bloccato (spam).'; -- cgit v1.2.3 From 41c141178e9733bbf38f8e937d3dea63058af0dc Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Tue, 10 Aug 2010 12:26:19 +0200 Subject: Ignore small & own changes in digest & list mails --- inc/lang/de/lang.php | 4 ++-- inc/subscription.php | 21 ++++++++++----------- 2 files changed, 12 insertions(+), 13 deletions(-) (limited to 'inc') diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index dcc5c5a3f..c5c65abca 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -239,8 +239,8 @@ $lang['subscr_m_unsubscribe'] = 'Löschen'; $lang['subscr_m_subscribe'] = 'Abonnieren'; $lang['subscr_m_receive'] = 'Benachrichtigung'; $lang['subscr_style_every'] = 'Email bei jeder Bearbeitung'; -$lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede veränderte Seite'; -$lang['subscr_style_list'] = 'Liste der geänderten Seiten'; +$lang['subscr_style_digest'] = 'Zusammenfassung der Änderungen für jede veränderte Seite (Alle %.2f Tage)'; +$lang['subscr_style_list'] = 'Liste der geänderten Seiten (Alle %.2f Tage)'; $lang['authmodfailed'] = 'Benutzerüberprüfung nicht möglich. Bitte wenden Sie sich an den Systembetreuer.'; $lang['authtempfail'] = 'Benutzerüberprüfung momentan nicht möglich. Falls das Problem andauert, wenden Sie sich an den Systembetreuer.'; $lang['i_chooselang'] = 'Wählen Sie Ihre Sprache'; diff --git a/inc/subscription.php b/inc/subscription.php index ce5da4cd4..22d8fccd5 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -284,20 +284,18 @@ function subscription_addresslist(&$data){ * Sends a digest mail showing a bunch of changes. * * @param string $subscriber_mail The target mail address - * @param array $change The newest change + * @param array $id The ID * @param int $lastupdate Time of the last notification * * @author Adrian Lang */ -function subscription_send_digest($subscriber_mail, $change, $lastupdate) { - $id = $change['id']; +function subscription_send_digest($subscriber_mail, $id, $lastupdate) { $n = 0; do { $rev = getRevisions($id, $n++, 1); $rev = (count($rev) > 0) ? $rev[0] : null; } while (!is_null($rev) && $rev > $lastupdate); - $ip = $change['ip']; $replaces = array('NEWPAGE' => wl($id, '', true, '&'), 'SUBSCRIBE' => wl($id, array('do' => 'subscribe'), true, '&')); if (!is_null($rev)) { @@ -322,24 +320,25 @@ function subscription_send_digest($subscriber_mail, $change, $lastupdate) { * Sends a list mail showing a list of changed pages. * * @param string $subscriber_mail The target mail address - * @param array $changes Array of changes - * @param string $id The id of the namespace + * @param array $ids Array of ids + * @param string $ns_id The id of the namespace * * @author Adrian Lang */ -function subscription_send_list($subscriber_mail, $changes, $id) { +function subscription_send_list($subscriber_mail, $ids, $ns_id) { + if (count($ids) === 0) return; global $conf; $list = ''; - foreach ($changes as $change) { - $list .= '* ' . wl($change['id'], array(), true) . NL; + foreach ($ids as $id) { + $list .= '* ' . wl($id, array(), true) . NL; } subscription_send($subscriber_mail, array('DIFF' => rtrim($list), - 'SUBSCRIBE' => wl($id . $conf['start'], + 'SUBSCRIBE' => wl($ns_id . $conf['start'], array('do' => 'subscribe'), true, '&')), 'subscribe_list', - prettyprint_id($id), + prettyprint_id($ns_id), 'subscr_list'); } -- cgit v1.2.3 From aa92c4ccfaf7462eb8f336c6a4e8e2b1468cfada Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 12 Aug 2010 13:46:14 +0200 Subject: clean up table parser handler --- inc/parser/handler.php | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'inc') diff --git a/inc/parser/handler.php b/inc/parser/handler.php index 8639c5ad8..8de0c7490 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -1175,7 +1175,7 @@ class Doku_Handler_Table { $this->tableStart($call); break; case 'table_row': - $this->tableRowClose(array('tablerow_close',$call[1],$call[2])); + $this->tableRowClose($call); $this->tableRowOpen(array('tablerow_open',$call[1],$call[2])); break; case 'tableheader': @@ -1183,7 +1183,7 @@ class Doku_Handler_Table { $this->tableCell($call); break; case 'table_end': - $this->tableRowClose(array('tablerow_close', array())); + $this->tableRowClose($call); $this->tableEnd($call); break; default: @@ -1221,7 +1221,7 @@ class Doku_Handler_Table { break; } } - $this->tableCalls[] = $call; + $this->tableCalls[] = array('tablerow_close', array(), $call[2]); if ( $this->currentCols > $this->maxCols ) { $this->maxCols = $this->currentCols; @@ -1281,17 +1281,21 @@ class Doku_Handler_Table { // that contain colspans foreach ( $this->tableCalls as $key => $call ) { - if ( $call[0] == 'tablerow_open' ) { + switch ($call[0]) { + case 'tablerow_open': $lastRow++; $lastCell = 0; + break; - } else if ( $call[0] == 'tablecell_open' || $call[0] == 'tableheader_open' ) { + case 'tablecell_open': + case 'tableheader_open': $lastCell++; $cellKey[$lastRow][$lastCell] = $key; + break; - } else if ( $call[0] == 'table_align' ) { + case 'table_align': $prev = in_array($this->tableCalls[$key-1][0], array('tablecell_open', 'tableheader_open')); $next = in_array($this->tableCalls[$key+1][0], array('tablecell_close', 'tableheader_close')); @@ -1315,8 +1319,9 @@ class Doku_Handler_Table { // Now convert the whitespace back to cdata $this->tableCalls[$key][0] = 'cdata'; + break; - } else if ( $call[0] == 'colspan' ) { + case 'colspan': $this->tableCalls[$key-1][1][0] = false; @@ -1336,8 +1341,9 @@ class Doku_Handler_Table { $toDelete[] = $key-1; $toDelete[] = $key; $toDelete[] = $key+1; + break; - } else if ( $call[0] == 'rowspan' ) { + case 'rowspan': if ( $this->tableCalls[$key-1][0] == 'cdata' ) { // ignore rowspan if previous call was cdata (text mixed with :::) we don't have to check next call as that wont match regex @@ -1362,8 +1368,10 @@ class Doku_Handler_Table { $toDelete[] = $key-1; $toDelete[] = $key; - $toDelete[] = $key+1; + $toDelete[] = $key+1; } + break; + } } -- cgit v1.2.3 From 6606d6fc9f9fc0d581d23961ec634b24c7d41425 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Thu, 12 Aug 2010 14:03:43 +0200 Subject: Try to fix broken tables --- inc/parser/handler.php | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) (limited to 'inc') diff --git a/inc/parser/handler.php b/inc/parser/handler.php index 8de0c7490..0b8b79254 100644 --- a/inc/parser/handler.php +++ b/inc/parser/handler.php @@ -1279,7 +1279,8 @@ class Doku_Handler_Table { // Look for the colspan elements and increment the colspan on the // previous non-empty opening cell. Once done, delete all the cells // that contain colspans - foreach ( $this->tableCalls as $key => $call ) { + for ($key = 0 ; $key < count($this->tableCalls) ; ++$key) { + $call = $this->tableCalls[$key]; switch ($call[0]) { case 'tablerow_open': @@ -1351,20 +1352,28 @@ class Doku_Handler_Table { } else { - $this->tableCalls[$key-1][1][2] = false; - + $spanning_cell = null; for($i = $lastRow-1; $i > 0; $i--) { if ( $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tablecell_open' || $this->tableCalls[$cellKey[$i][$lastCell]][0] == 'tableheader_open' ) { - if ( false !== $this->tableCalls[$cellKey[$i][$lastCell]][1][2] ) { - $this->tableCalls[$cellKey[$i][$lastCell]][1][2]++; + if ($this->tableCalls[$cellKey[$i][$lastCell]][1][2] >= $lastRow - $i) { + $spanning_cell = $i; break; } } } + 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] = ''; + continue; + } + $this->tableCalls[$cellKey[$spanning_cell][$lastCell]][1][2]++; + + $this->tableCalls[$key-1][1][2] = false; $toDelete[] = $key-1; $toDelete[] = $key; @@ -1372,6 +1381,19 @@ class Doku_Handler_Table { } break; + case 'tablerow_close': + + // Fix broken tables by adding missing cells + while (++$lastCell < $this->maxCols) { + array_splice($this->tableCalls, $key, 0, array( + array('tablecell_open', array(1, null, 1), $call[2]), + array('cdata', array(''), $call[2]), + array('tablecell_close', array(), $call[2]))); + $key += 3; + } + + break; + } } -- cgit v1.2.3 From 0e7829b71c8885c6f27e19c596508f179eb20fbc Mon Sep 17 00:00:00 2001 From: ks780 Date: Fri, 20 Aug 2010 11:43:16 +0200 Subject: Turkish language update --- inc/lang/tr/lang.php | 51 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 14 deletions(-) (limited to 'inc') diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index 0de4442a5..c6d20c805 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -42,15 +42,13 @@ $lang['btn_back'] = 'Geri'; $lang['btn_backlink'] = 'Geri linkler'; $lang['btn_backtomedia'] = 'Çokluortam dosyası seçimine dön'; $lang['btn_subscribe'] = 'Sayfa Değişikliklerini Bildir'; -$lang['btn_unsubscribe'] = 'Sayfa Değişikliklerini Bildirme'; -$lang['btn_subscribens'] = 'Namespace Değişikliklerini Bildir'; -$lang['btn_unsubscribens'] = 'Namespace Değişikliklerini Bildirme'; $lang['btn_profile'] = 'Kullanıcı Bilgilerini Güncelle'; $lang['btn_reset'] = 'Sıfırla'; $lang['btn_resendpwd'] = 'Yeni parola gönder'; $lang['btn_draft'] = 'Taslağı düzenle'; $lang['btn_recover'] = 'Taslağı geri yükle'; $lang['btn_draftdel'] = 'Taslağı sil'; +$lang['btn_revert'] = 'Geri Yükle'; $lang['loggedinas'] = 'Giriş ismi'; $lang['user'] = 'Kullanıcı ismi'; $lang['pass'] = 'Parola'; @@ -89,13 +87,45 @@ $lang['resendpwdconfirm'] = 'Doğrulama linki e-posta adresinize gönderild $lang['resendpwdsuccess'] = 'Yeni parolanız e-posta adresinize gönderildi.'; $lang['license'] = 'Aksi belirtilmediği halde, bu wikinin içeriğinin telif hakları şu lisans ile korunmaktadır:'; $lang['licenseok'] = 'Not: Bu sayfayı değiştirerek yazınızın şu lisans ile yayınlanmasını kabul etmiş olacaksınız:'; +$lang['searchmedia'] = 'Dosya Adı Ara:'; +$lang['searchmedia_in'] = '%s içinde ara'; $lang['txt_upload'] = 'Yüklenecek dosyayı seç'; $lang['txt_filename'] = 'Dosya adı (zorunlu değil)'; $lang['txt_overwrt'] = 'Mevcut dosyanın üstüne yaz'; $lang['lockedby'] = 'Şu an şunun tarafından kilitli:'; $lang['lockexpire'] = 'Kilitin açılma tarihi:'; $lang['willexpire'] = 'Bu sayfayı değiştirme kilidinin süresi yaklaşık bir dakika içinde geçecek.\nÇakışmaları önlemek için önizleme tuşunu kullanarak kilit sayacını sıfırla.'; -$lang['js']['notsavedyet'] = "Kaydedilmemiş değişiklikler kaybolacak.\nDevam etmek istiyor musunuz?"; +$lang['js']['notsavedyet'] = 'Kaydedilmemiş değişiklikler kaybolacak. +Devam etmek istiyor musunuz?'; +$lang['js']['searchmedia'] = 'Dosyalar için Ara'; +$lang['js']['keepopen'] = 'Seçim yapıldığında bu pencereyi açık tut'; +$lang['js']['hidedetails'] = 'Ayrıntıları gizle'; +$lang['js']['mediatitle'] = 'Bağlantı Ayarları'; +$lang['js']['mediadisplay'] = 'Bağlantı Tipi'; +$lang['js']['mediaalign'] = 'Hizalama'; +$lang['js']['mediasize'] = 'Resim büyüklüğü'; +$lang['js']['mediatarget'] = 'Bağlantı hedefi'; +$lang['js']['mediaclose'] = 'Kapat'; +$lang['js']['mediainsert'] = 'Ekle'; +$lang['js']['mediadisplayimg'] = 'Resmi görüntüle'; +$lang['js']['mediadisplaylnk'] = 'Sadece bağlantıyı görüntüle '; +$lang['js']['mediasmall'] = 'Küçük versiyon'; +$lang['js']['mediamedium'] = 'Orta versiyon'; +$lang['js']['medialarge'] = 'Büyük versiyon'; +$lang['js']['mediaoriginal'] = 'Orjinal versiyon'; +$lang['js']['medialnk'] = 'Detay sayfasına bağlantı'; +$lang['js']['mediadirect'] = 'Orjinal sayfaya bağlantı'; +$lang['js']['medianolnk'] = 'Bağlantı yok'; +$lang['js']['medianolink'] = 'Resme bağlantı verme'; +$lang['js']['medialeft'] = 'Resmi sola hizala'; +$lang['js']['mediaright'] = 'Resmi sağa hizala'; +$lang['js']['mediacenter'] = 'Resmi ortaya hizala'; +$lang['js']['medianoalign'] = 'Hizalama kullanma'; +$lang['js']['nosmblinks'] = 'Windows paylaşımı sadece Microsoft Internet Explorer ile çalışmaktadır. Yine de hala bağlantıyı kopyalayıp yapıştırarak kullanabilirsiniz. '; +$lang['js']['linkwiz'] = 'Bağlantı sihirbazı'; +$lang['js']['linkto'] = 'Bağlantı:'; +$lang['js']['del_confirm'] = 'Bu girişi sil?'; +$lang['js']['mu_btn'] = 'Birden fazla dosyayı bir seferde gönder'; $lang['rssfailed'] = 'Bu beslemeyi çekerken hata oluştu: '; $lang['nothingfound'] = 'Hiçbir şey yok.'; $lang['mediaselect'] = 'Çokluortam dosyası seçimi'; @@ -113,10 +143,7 @@ $lang['deletefail'] = '"%s" silinemedi - yetkileri kontrol et.'; $lang['mediainuse'] = '"%s" dosyası silinmedi, hala kullanımda.'; $lang['namespaces'] = 'Namespaces'; $lang['mediafiles'] = 'Şuradaki kullanıma hazır dosyalar:'; -$lang['js']['keepopen'] = 'Seçim yapıldığında bu pencereyi açık tut'; -$lang['js']['hidedetails'] = 'Ayrıntıları gizle'; -$lang['js']['nosmblinks'] = 'Windows paylaşımı sadece Microsoft Internet Explorer ile çalışmaktadır. Yine de hala bağlantıyı kopyalayıp yapıştırarak kullanabilirsiniz. '; -$lang['js']['mu_btn'] = 'Birden fazla dosyayı bir seferde gönder'; +$lang['accessdenied'] = 'Bu sayfayı görüntüleme yetkiniz bulunmamaktadır'; $lang['mediausage'] = 'Şu '; $lang['mediaview'] = 'Özgün dosyayı göster'; $lang['mediaroot'] = 'Kök dizini'; @@ -132,6 +159,7 @@ $lang['current'] = 'mevcut'; $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['line'] = 'Satır'; $lang['breadcrumb'] = 'İz'; $lang['youarehere'] = 'Buradasınız'; @@ -143,6 +171,7 @@ $lang['restored'] = 'eski sürüme dönüldü'; $lang['external_edit'] = 'Dışarıdan düzenle'; $lang['summary'] = 'Özeti düzenle'; $lang['noflash'] = 'Bu içeriği göstermek için Adobe Flash Eklentisi gerekmektedir.'; +$lang['download'] = 'Parçacığı indir'; $lang['mail_newpage'] = 'sayfa eklenme:'; $lang['mail_changed'] = 'sayfa değiştirilme:'; $lang['mail_new_user'] = 'yeni kullanıcı'; @@ -166,7 +195,6 @@ $lang['qb_media'] = 'Resim ve başka dosyalar ekle'; $lang['qb_sig'] = 'İmza Ekle'; $lang['qb_smileys'] = 'Gülen Yüzler'; $lang['qb_chars'] = 'Özel Karakterler'; -$lang['js']['del_confirm'] = 'Bu girişi sil?'; $lang['admin_register'] = 'Yeni kullanıcı ekle...'; $lang['metaedit'] = 'Metaverileri Değiştir'; $lang['metasaveerr'] = 'Metaveri yazma başarısız '; @@ -182,11 +210,6 @@ $lang['img_copyr'] = 'Telif Hakkı'; $lang['img_format'] = 'Biçim'; $lang['img_camera'] = 'Fotoğraf Makinası'; $lang['img_keywords'] = 'Anahtar Sözcükler'; -$lang['subscribe_success'] = '%s, %s\'in abonelik listesine eklendi'; -$lang['subscribe_error'] = '%s; %s\'in abonelik listesine eklenirken hata oluştu'; -$lang['subscribe_noaddress'] = 'Giriş bilgilerinizle ilişkili bir adres yok, abonelik listesine eklenemezsiniz'; -$lang['unsubscribe_success'] = '%s, %s\'in abonelik listesinden çıkartıldı'; -$lang['unsubscribe_error'] = '%s, %s\'in listesinden çıkartılırken hata oluştu'; $lang['authmodfailed'] = 'Yanlış kullanıcı onaylama ayarı. Lütfen Wiki yöneticisine bildiriniz.'; $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.'; $lang['i_chooselang'] = 'Dili seçiniz'; -- cgit v1.2.3 From 237f954610f045f604fe05a60d82df8b375e0cc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0olti?= Date: Fri, 20 Aug 2010 11:44:51 +0200 Subject: Serbian language update --- inc/lang/sr/adminplugins.txt | 1 + inc/lang/sr/draft.txt | 6 ++- inc/lang/sr/lang.php | 88 +++++++++++++++++++++++++++++++++++-------- inc/lang/sr/subscr_digest.txt | 20 ++++++++++ inc/lang/sr/subscr_form.txt | 3 ++ inc/lang/sr/subscr_list.txt | 17 +++++++++ inc/lang/sr/subscr_single.txt | 23 +++++++++++ 7 files changed, 142 insertions(+), 16 deletions(-) create mode 100644 inc/lang/sr/adminplugins.txt create mode 100644 inc/lang/sr/subscr_digest.txt create mode 100644 inc/lang/sr/subscr_form.txt create mode 100644 inc/lang/sr/subscr_list.txt create mode 100644 inc/lang/sr/subscr_single.txt (limited to 'inc') diff --git a/inc/lang/sr/adminplugins.txt b/inc/lang/sr/adminplugins.txt new file mode 100644 index 000000000..02b1a0452 --- /dev/null +++ b/inc/lang/sr/adminplugins.txt @@ -0,0 +1 @@ +===== Остали додаци ===== \ No newline at end of file diff --git a/inc/lang/sr/draft.txt b/inc/lang/sr/draft.txt index 046c709cf..44affdd34 100644 --- a/inc/lang/sr/draft.txt +++ b/inc/lang/sr/draft.txt @@ -1 +1,5 @@ -====== Пронађена је скица датотеке ====== \ No newline at end of file +====== Пронађена је скица датотеке ====== + +Прошли пут кад сте покушали нешто да измените на овој страници ваше измене нису успешно сачуване. DokuWiki је аутоматски сачувао скицу вашег рада коју сада можете да искористите да бисте наставили са изменама. Испод можете да видите податке који су сачувани током ваше последње посете. + +Молимо вас, одаберите да ли желите да //повратите// ваше измене, //обришете// аутоматски сачувану скицу, или //поништите// цео процес измена. \ No newline at end of file diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php index 7774e304e..71dde4062 100644 --- a/inc/lang/sr/lang.php +++ b/inc/lang/sr/lang.php @@ -6,6 +6,7 @@ * @author Filip Brcic * @author Иван Петровић petrovicivan@ubuntusrbija.org * @author Ivan Petrovic + * @author Miroslav Šolti */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -39,15 +40,13 @@ $lang['btn_back'] = 'Натраг'; $lang['btn_backlink'] = 'Повратне везе'; $lang['btn_backtomedia'] = 'Врати се на избор медијске датотеке'; $lang['btn_subscribe'] = 'Пријави се на измене'; -$lang['btn_unsubscribe'] = 'Одјави се са измена'; -$lang['btn_subscribens'] = 'Претплати се на промене у именском простору'; -$lang['btn_unsubscribens'] = 'Откажи претплату на промене у именском простору'; $lang['btn_profile'] = 'Ажурирај профил'; $lang['btn_reset'] = 'Поништи'; $lang['btn_resendpwd'] = 'Пошаљи нову лозинку'; $lang['btn_draft'] = 'Измени нацрт'; $lang['btn_recover'] = 'Опорави нацрт'; $lang['btn_draftdel'] = 'Обриши нацрт'; +$lang['btn_revert'] = 'Врати на пређашњу верзију'; $lang['loggedinas'] = 'Пријављен као'; $lang['user'] = 'Корисничко име'; $lang['pass'] = 'Лозинка'; @@ -86,13 +85,46 @@ $lang['resendpwdconfirm'] = 'Потврдни линк је постат к $lang['resendpwdsuccess'] = 'Ваша нова лозинка је послата као е-порука.'; $lang['license'] = 'Осим где је другачије назначено, материјал на овом викију је под следећом лиценцом:'; $lang['licenseok'] = 'Напомена: Изменом ове стране слажете се да ће ваше измене бити под следећом лиценцом:'; +$lang['searchmedia'] = 'Претражи по имену фајла'; +$lang['searchmedia_in'] = 'Претражи у %s'; $lang['txt_upload'] = 'Изаберите датотеку за слање'; $lang['txt_filename'] = 'Унесите вики-име (опционо)'; $lang['txt_overwrt'] = 'Препишите тренутни фајл'; $lang['lockedby'] = 'Тренутно закључано од стране'; $lang['lockexpire'] = 'Закључавање истиче'; $lang['willexpire'] = 'Ваше закључавање за измену ове странице ће да истекне за један минут.\nДа би сте избегли конфликте, искористите дугме за преглед како би сте ресетовали тајмер закључавања.'; -$lang['js']['notsavedyet'] = "Несачуване измене ће бити изгубљене.\nДа ли стварно желите да наставите?"; +$lang['js']['notsavedyet'] = 'Несачуване измене ће бити изгубљене. +Да ли стварно желите да наставите?'; +$lang['js']['searchmedia'] = 'Потражи фајлове'; +$lang['js']['keepopen'] = 'Задржи отворен прозор након одабира'; +$lang['js']['hidedetails'] = 'Сакриј детаље'; +$lang['js']['mediatitle'] = 'Подешаванја везе'; +$lang['js']['mediadisplay'] = 'Тип везе'; +$lang['js']['mediaalign'] = 'Поравнање'; +$lang['js']['mediasize'] = 'Величина слике'; +$lang['js']['mediatarget'] = 'веза води ка:'; +$lang['js']['mediaclose'] = 'Затвори'; +$lang['js']['mediainsert'] = 'Убаци'; +$lang['js']['mediadisplayimg'] = 'Покажи слику'; +$lang['js']['mediadisplaylnk'] = 'Покажи само везу'; +$lang['js']['mediasmall'] = 'Мала верзија'; +$lang['js']['mediamedium'] = 'Средња верзија'; +$lang['js']['medialarge'] = 'Велика верзија'; +$lang['js']['mediaoriginal'] = 'Оригинална верзија'; +$lang['js']['medialnk'] = 'Веза ка страници са детаљима'; +$lang['js']['mediadirect'] = 'Директна веза ка оригиналу'; +$lang['js']['medianolnk'] = 'Без везе'; +$lang['js']['medianolink'] = 'Не постављај слику као везу'; +$lang['js']['medialeft'] = 'Поравнај слику на лево'; +$lang['js']['mediaright'] = 'Поравнај слику на десно'; +$lang['js']['mediacenter'] = 'Поравнај слику по средини'; +$lang['js']['medianoalign'] = 'Без поравнања'; +$lang['js']['nosmblinks'] = 'Повезивање са Windows дељеним фолдерима ради само у Мајкрософтовом Интернет Претраживачу. +Ипак, можете да ископирате и залепите везу.'; +$lang['js']['linkwiz'] = 'Чаробњак за стварање везе'; +$lang['js']['linkto'] = 'Повежи ка:'; +$lang['js']['del_confirm'] = 'Обриши овај унос?'; +$lang['js']['mu_btn'] = 'Слање више датотека одједном'; $lang['rssfailed'] = 'Дошло је до грешке приликом преузимања овог довода: '; $lang['nothingfound'] = 'Ништа није нађено.'; $lang['mediaselect'] = 'Избор медијске датотеке'; @@ -110,11 +142,7 @@ $lang['deletefail'] = '"%s" није могао да буде изб $lang['mediainuse'] = 'Фајл "%s" није избрисан - још је у употреби.'; $lang['namespaces'] = 'Именски простори'; $lang['mediafiles'] = 'Доступни фајлови у'; -$lang['js']['keepopen'] = 'Задржи отворен прозор након одабира'; -$lang['js']['hidedetails'] = 'Сакриј детаље'; -$lang['js']['nosmblinks'] = 'Повезивање са Windows дељеним фолдерима ради само у Мајкрософтовом Интернет Претраживачу. -Ипак, можете да ископирате и залепите везу.'; -$lang['js']['mu_btn'] = 'Слање више датотека одједном'; +$lang['accessdenied'] = 'Немате дозволу да видите ову страницу.'; $lang['mediausage'] = 'Користите следећу синтаксу за референцу ка овој датотеци:'; $lang['mediaview'] = 'Прикажи оригиналну датотеку'; $lang['mediaroot'] = 'почетак'; @@ -130,6 +158,7 @@ $lang['current'] = 'тренутно'; $lang['yours'] = 'Ваша верзија'; $lang['diff'] = 'прикажи разлике до тренутне верзије'; $lang['diff2'] = 'Прикажи разлике између одабраних ревизија'; +$lang['difflink'] = 'Постави везу ка овом компаративном приказу'; $lang['line'] = 'Линија'; $lang['breadcrumb'] = 'Траг'; $lang['youarehere'] = 'Сада сте овде'; @@ -141,8 +170,10 @@ $lang['restored'] = 'стара верзија повраћена'; $lang['external_edit'] = 'спољна измена'; $lang['summary'] = 'Сажетак измене'; $lang['noflash'] = 'За приказивање ове врсте материјала потребан вам је Adobe Flash Plugin.'; +$lang['download'] = 'Преузми снипет'; $lang['mail_newpage'] = 'страница додата:'; $lang['mail_changed'] = 'страница измењена:'; +$lang['mail_subscribe_list'] = 'Странице промењене у именском простору:'; $lang['mail_new_user'] = 'нови корисник:'; $lang['mail_upload'] = 'послата датотека:'; $lang['qb_bold'] = 'Мастан текст'; @@ -155,6 +186,11 @@ $lang['qb_h2'] = 'Наслов 2. нивоа'; $lang['qb_h3'] = 'Наслов 3. нивоа'; $lang['qb_h4'] = 'Наслов 4. нивоа'; $lang['qb_h5'] = 'Наслов 5. нивоа'; +$lang['qb_h'] = 'Наслов'; +$lang['qb_hs'] = 'Одабери наслов'; +$lang['qb_hplus'] = 'Виши наслов'; +$lang['qb_hminus'] = 'Нижи наслов'; +$lang['qb_hequal'] = 'Наслов на истом нивоу'; $lang['qb_link'] = 'Унутрашња веза'; $lang['qb_extlink'] = 'Спољашња веза'; $lang['qb_hr'] = 'Хоризонтална линија'; @@ -164,7 +200,7 @@ $lang['qb_media'] = 'Додај слике и друге фајло $lang['qb_sig'] = 'Убаци потпис'; $lang['qb_smileys'] = 'Смешко'; $lang['qb_chars'] = 'Посебни карактери'; -$lang['js']['del_confirm'] = 'Обриши овај унос?'; +$lang['upperns'] = 'Скочи на виши именски простор'; $lang['admin_register'] = 'Додај новог корисника'; $lang['metaedit'] = 'Измени мета-податке'; $lang['metasaveerr'] = 'Записивање мета-података није било успешно'; @@ -180,11 +216,22 @@ $lang['img_copyr'] = 'Права копирања'; $lang['img_format'] = 'Формат'; $lang['img_camera'] = 'Камера'; $lang['img_keywords'] = 'Кључне речи'; -$lang['subscribe_success'] = 'Додао сам %s на листу претплатника за %s'; -$lang['subscribe_error'] = 'Дошло је до грешке при додавању %s на листу претплатника за %s'; -$lang['subscribe_noaddress'] = 'Не постоји е-адреса асоцирана са Вашим налогом. Не можете да будете додати на листу претплатника'; -$lang['unsubscribe_success'] = 'Избрисао сам %s са листе претплатника за %s'; -$lang['unsubscribe_error'] = 'Дошло је до грешке приликом брисања %s са листе претплатника за %s'; +$lang['subscr_subscribe_success'] = '%s је додат на списак претплатника %s'; +$lang['subscr_subscribe_error'] = 'Грешка приликом додавања %s на списак претплатника %s'; +$lang['subscr_subscribe_noaddress'] = 'Не постоји адреса повезана са вашим подацима, стога вас не можемо додати на списак претплатника.'; +$lang['subscr_unsubscribe_success'] = '%s уклоњен са списка претплатника %s'; +$lang['subscr_unsubscribe_error'] = 'Грешка приликом уклањања %s са списка претплатника %s'; +$lang['subscr_already_subscribed'] = '%s је већ претплаћен на %s'; +$lang['subscr_not_subscribed'] = '%s још није претплаћен на %s'; +$lang['subscr_m_not_subscribed'] = 'Тренутно нисте претплаћени на ову страницу или именски простор.'; +$lang['subscr_m_new_header'] = 'Додај претплату'; +$lang['subscr_m_current_header'] = 'Тренутне претплате'; +$lang['subscr_m_unsubscribe'] = 'Уклони претплату'; +$lang['subscr_m_subscribe'] = 'Претплати се'; +$lang['subscr_m_receive'] = 'Прими'; +$lang['subscr_style_every'] = 'имејл о свакој промени'; +$lang['subscr_style_digest'] = 'скраћени имејл о променама за сваку страницу (сваких %.2f дана)'; +$lang['subscr_style_list'] = 'Списак страница промењених након последњег имејла (сваких %.2f дана)'; $lang['authmodfailed'] = 'Лоше подешена провера корисника. Молим Вас да обавестите администратора викија.'; $lang['authtempfail'] = 'Провера корисника је тренутно недоступна. Ако се ситуација настави, молимо Вас да обавестите администратора викија.'; $lang['i_chooselang'] = 'Одаберите језик'; @@ -208,6 +255,7 @@ $lang['i_pol0'] = 'Отворени вики (читање, пи $lang['i_pol1'] = 'Јавни вики (читање за све, писање и слање датотека само за регистроване кориснике)'; $lang['i_pol2'] = 'Затворени вики (читање, писање и слање датотека само за регистроване кориснике)'; $lang['i_retry'] = 'Понови'; +$lang['i_license'] = 'Молимо вас, одаберите лиценцу под коју желите да ставите свој садржај:'; $lang['mu_intro'] = 'Одавде можете послати више датотека одједном. Кликните на дугме Тражи да бисте додали датотеке на листу. Када завршите са одабирањем кликните на Пошаљи.'; $lang['mu_gridname'] = 'Назив датотеке'; $lang['mu_gridsize'] = 'Величина'; @@ -221,4 +269,14 @@ $lang['mu_fail'] = 'није успело'; $lang['mu_authfail'] = 'сесија је истекла'; $lang['mu_progress'] = '@PCT@% послато'; $lang['mu_filetypes'] = 'Дозвољени типови датотека'; +$lang['mu_info'] = 'Фајлови послати'; +$lang['mu_lasterr'] = 'Последња грешка:'; $lang['recent_global'] = 'Тренутно пратите промене у именском простору %s. Такође, можете пратити прмене на целом викију.'; +$lang['years'] = 'Пре %d година'; +$lang['months'] = 'Пре %d месеци'; +$lang['weeks'] = 'Пре %d недеља'; +$lang['days'] = 'Пре %d дана'; +$lang['hours'] = 'Пре %d сати'; +$lang['minutes'] = 'Пре %d минута'; +$lang['seconds'] = 'Пре %d секунди'; +$lang['wordblock'] = 'Ваше измене нису сачуване јер садрже забрањен текст (спам)'; diff --git a/inc/lang/sr/subscr_digest.txt b/inc/lang/sr/subscr_digest.txt new file mode 100644 index 000000000..db8416833 --- /dev/null +++ b/inc/lang/sr/subscr_digest.txt @@ -0,0 +1,20 @@ +Здраво! + +Страница @PAGE@ под Вики насловом @TITLE@ је промењена. +Ово су промене: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Стара верзија: @OLDPAGE@ +Нова верзија: @NEWPAGE@ + + +Да бисте поништили обавештења о променама страница, улогујте се на Вики овде +@DOKUWIKIURL@ а затим посетите +@SUBSCRIBE@ и поништите обавештавање о променама страница и/или именских простора.. + +-- +Овај имејл је направио DokuWiki на страници +@DOKUWIKIURL@ diff --git a/inc/lang/sr/subscr_form.txt b/inc/lang/sr/subscr_form.txt new file mode 100644 index 000000000..9bf72e424 --- /dev/null +++ b/inc/lang/sr/subscr_form.txt @@ -0,0 +1,3 @@ +===== Управљање претплатама ===== + +Ова страница вам омогућава да управљате својим претплатама на страницу и именски простор на којима се налазите. \ No newline at end of file diff --git a/inc/lang/sr/subscr_list.txt b/inc/lang/sr/subscr_list.txt new file mode 100644 index 000000000..b3887013b --- /dev/null +++ b/inc/lang/sr/subscr_list.txt @@ -0,0 +1,17 @@ +Здраво! + +Страница у именском простору @PAGE@ под Вики насловом @TITLE@ је промењена. +Ово су промењене странице: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + + +Да бисте поништили обавештења о променама страница, улогујте се на Вики овде +@DOKUWIKIURL@ а затим посетите +@SUBSCRIBE@ и поништите обавештавање о променама страница и/или именских простора.. + +-- +Овај имејл је направио DokuWiki на страници +@DOKUWIKIURL@ \ No newline at end of file diff --git a/inc/lang/sr/subscr_single.txt b/inc/lang/sr/subscr_single.txt new file mode 100644 index 000000000..c0ed4d87a --- /dev/null +++ b/inc/lang/sr/subscr_single.txt @@ -0,0 +1,23 @@ +Здраво! + +Страница @PAGE@ под Вики насловом @TITLE@ је промењена. +Ово су промене: + +-------------------------------------------------------- +@DIFF@ +-------------------------------------------------------- + +Датум : @DATE@ +Корисникr : @USER@ +Измени сиже: @SUMMARY@ +Стара верзија: @OLDPAGE@ +Нова верзија: @NEWPAGE@ + + +Да бисте поништили обавештења о променама страница, улогујте се на Бики овде +@DOKUWIKIURL@ а затим посетите +@SUBSCRIBE@ и поништите обавештавање о променама страница и/или именских простора.. + +-- +Овај имејл је направио DokuWiki на страници +@DOKUWIKIURL@ \ No newline at end of file -- cgit v1.2.3 From 003a37b419108048f084be9c59598a00a7eb8724 Mon Sep 17 00:00:00 2001 From: Timon Van Overveldt Date: Fri, 20 Aug 2010 11:45:47 +0200 Subject: Dutch language update --- inc/lang/nl/lang.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'inc') diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 8bba8765d..9d81d0ff4 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -14,6 +14,7 @@ * @author Marijn Hofstra hofstra.m@gmail.com * @author Matthias Carchon webmaster@c-mattic.be * @author Marijn Hofstra + * @author Timon Van Overveldt */ $lang['encoding'] = 'utf-8'; $lang['direction'] = 'ltr'; @@ -149,6 +150,7 @@ $lang['deletefail'] = '"%s" kan niet worden verwijderd - controleer p $lang['mediainuse'] = 'Het bestand "%s" is niet verwijderd - het is nog in gebruik.'; $lang['namespaces'] = 'Namespaces'; $lang['mediafiles'] = 'Beschikbare bestanden in'; +$lang['accessdenied'] = 'U heeft geen toegang tot deze pagina.'; $lang['mediausage'] = 'Gebruik de volgende syntax om aan het bestand te refereren:'; $lang['mediaview'] = 'Bekijk het orginele bestand'; $lang['mediaroot'] = 'root'; @@ -164,6 +166,7 @@ $lang['current'] = 'huidige'; $lang['yours'] = 'Jouw versie'; $lang['diff'] = 'Toon verschillen met huidige revisie'; $lang['diff2'] = 'Toon verschillen tussen geselecteerde revisies'; +$lang['difflink'] = 'Link naar deze vergelijking'; $lang['line'] = 'Regel'; $lang['breadcrumb'] = 'Spoor'; $lang['youarehere'] = 'Je bent hier'; @@ -260,6 +263,7 @@ $lang['i_pol0'] = 'Open wiki (lezen, schrijven, uploaden voor ied $lang['i_pol1'] = 'Publieke wiki (lezen voor iedereen, schrijven en uploaden voor geregistreerde gebruikers)'; $lang['i_pol2'] = 'Besloten wiki (lezen, schrijven en uploaden alleen voor geregistreerde gebruikers)'; $lang['i_retry'] = 'Opnieuw'; +$lang['i_license'] = 'Kies a.u.b. een licentie die u voor uw inhoud wilt gebruiken:'; $lang['mu_intro'] = 'Hiier kun je meerdere bestanden tegelijk uploaden. Klik de blader-knop om ze aan de lijst toe te voegen. Klik Upload als je klaar bent.'; $lang['mu_gridname'] = 'Bestandsnaam'; $lang['mu_gridsize'] = 'Grootte'; -- cgit v1.2.3 From d0bdf7659fce98c2922b151766d51d5c7e8814d6 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Fri, 20 Aug 2010 18:53:48 +0200 Subject: Use namespace filter in quicksearch with empty search term --- inc/fulltext.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'inc') diff --git a/inc/fulltext.php b/inc/fulltext.php index 1c9981812..cac2de4a4 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -243,17 +243,21 @@ function _ft_pageLookup(&$data){ $titles = array_map('rtrim', idx_getIndex('title', '')); $pages = array_combine($pages, $titles); - if($id !== '' && cleanID($id) !== '') { + if ($id !== '' && cleanID($id) !== '') { $cleaned = cleanID($id); - $matched_pages = array(); foreach ($pages as $p_id => $p_title) { - if (((strpos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) !== false) || - ($in_title && stripos($p_title, $id) !== false)) && - (!isset($ns) || strpos($p_id, $ns) === 0)) { - $matched_pages[$p_id] = $p_title; + if ((strpos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) === false) && + ($in_title && stripos($p_title, $id) === false)) { + unset($pages[$p_id]); + } + } + } + if (isset($ns)) { + foreach (array_keys($pages) as $p_id) { + if (strpos($p_id, $ns) !== 0) { + unset($pages[$p_id]); } } - $pages = $matched_pages; } // discard hidden pages -- cgit v1.2.3 From 7d3937102067f959de80afcbe1866e106aec82a0 Mon Sep 17 00:00:00 2001 From: Otto Vainio Date: Fri, 27 Aug 2010 09:43:54 +0200 Subject: Finish language update --- inc/lang/fi/lang.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'inc') diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index 2ccaaab89..e91a1d497 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -143,6 +143,7 @@ $lang['deletefail'] = 'Kohdetta "%s" poistaminen ei onnistunut - tark $lang['mediainuse'] = 'Tiedostoa "%s" ei ole poistettu - se on vielä käytössä.'; $lang['namespaces'] = 'Nimiavaruudet'; $lang['mediafiles'] = 'Tarjolla olevat tiedostot'; +$lang['accessdenied'] = 'Sinulla ei ole oikeuksia tämän sivun katsomiseen'; $lang['mediausage'] = 'Käytä seuraavaa merkintätapaa viittausta tehtäessä:'; $lang['mediaview'] = 'Katsele alkuperäistä tiedostoa'; $lang['mediaroot'] = 'root'; @@ -158,6 +159,7 @@ $lang['current'] = 'nykyinen'; $lang['yours'] = 'Sinun versiosi'; $lang['diff'] = 'Näytä eroavaisuudet nykyiseen versioon'; $lang['diff2'] = 'Näytä eroavaisuudet valittuun versioon'; +$lang['difflink'] = 'Linkki vertailunäkymään'; $lang['line'] = 'Rivi'; $lang['breadcrumb'] = 'Jäljet'; $lang['youarehere'] = 'Olet täällä'; @@ -254,6 +256,7 @@ $lang['i_pol0'] = 'Avoin Wiki (luku, kirjoitus, tiedostojen lähe $lang['i_pol1'] = 'Julkinen Wiki (luku kaikilla, kirjoitus ja tiedostojen lähetys rekisteröidyillä käyttäjillä)'; $lang['i_pol2'] = 'Suljettu Wiki (luku, kirjoitus ja tiedostojen lähetys vain rekisteröityneillä käyttäjillä)'; $lang['i_retry'] = 'Yritä uudelleen'; +$lang['i_license'] = 'Valitse lisenssi, jonka alle haluat sisältösi laittaa:'; $lang['mu_intro'] = 'Täällä voit lähettää useampia tiedostoja kerralla. Klikkaa Selaa-nappia lisätäksesi ne jonoon. Paina lähetä, kun olet valmis.'; $lang['mu_gridname'] = 'Tiedoston nimi'; $lang['mu_gridsize'] = 'Koko'; -- cgit v1.2.3 From a6bc56d03c064a1d747ccba79705cbac0e2bd453 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 27 Aug 2010 10:04:30 +0200 Subject: Do not allow empty strings as superuser or manager FS#2009 --- inc/auth.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/auth.php b/inc/auth.php index 49bb2d4d9..e1f689f96 100644 --- a/inc/auth.php +++ b/inc/auth.php @@ -350,7 +350,8 @@ function auth_ismanager($user=null,$groups=null,$adminonly=false){ $user = $_SERVER['REMOTE_USER']; } } - $user = $auth->cleanUser($user); + $user = trim($auth->cleanUser($user)); + if($user === '') return false; if(is_null($groups)) $groups = (array) $USERINFO['grps']; $groups = array_map(array($auth,'cleanGroup'),$groups); $user = auth_nameencode($user); @@ -359,6 +360,7 @@ function auth_ismanager($user=null,$groups=null,$adminonly=false){ $superusers = explode(',', $conf['superuser']); $superusers = array_unique($superusers); $superusers = array_map('trim', $superusers); + $superusers = array_filter($superusers); // prepare an array containing only true values for array_map call $alltrue = array_fill(0, count($superusers), true); $superusers = array_map('auth_nameencode', $superusers, $alltrue); @@ -377,6 +379,7 @@ function auth_ismanager($user=null,$groups=null,$adminonly=false){ $managers = explode(',', $conf['manager']); $managers = array_unique($managers); $managers = array_map('trim', $managers); + $managers = array_filter($managers); // prepare an array containing only true values for array_map call $alltrue = array_fill(0, count($managers), true); $managers = array_map('auth_nameencode', $managers, $alltrue); -- cgit v1.2.3 From 396c218f61d8626a516941cd6cd66f09e528e32c Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 27 Aug 2010 10:37:07 +0200 Subject: make use of tpl_get_action in tpl_actiondropdown FS#2005 --- inc/actions.php | 2 ++ inc/template.php | 71 ++++++++++++++++++++------------------------------------ 2 files changed, 27 insertions(+), 46 deletions(-) (limited to 'inc') diff --git a/inc/actions.php b/inc/actions.php index 914ff1ce6..3e0cb1207 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -185,6 +185,8 @@ function act_clean($act){ if($act == 'export_html') $act = 'export_xhtml'; if($act == 'export_htmlbody') $act = 'export_xhtmlbody'; + if($act === '') $act = 'show'; + // check if action is disabled if(!actionOK($act)){ msg('Command disabled: '.htmlspecialchars($act),-1); diff --git a/inc/template.php b/inc/template.php index f1995b6ba..003febe46 100644 --- a/inc/template.php +++ b/inc/template.php @@ -491,7 +491,7 @@ function tpl_actionlink($type,$pre='',$suf='',$inner='',$return=false){ return true; } - /** +/** * Check the actions and get data for buttons and links * * Available actions are @@ -1147,7 +1147,7 @@ function tpl_actiondropdown($empty='',$button='>'){ global $auth; echo ''; #FIXME action - echo ''; + echo ''; if($REV) echo ''; echo ''; @@ -1155,60 +1155,39 @@ function tpl_actiondropdown($empty='',$button='>'){ echo ''; echo ''; - // 'edit' - most complicated type, we need to decide on current action - if($ACT == 'show' || $ACT == 'search'){ - if($INFO['writable']){ - if(!empty($INFO['draft'])) { - echo ''; - } else { - if($INFO['exists']){ - echo ''; - }else{ - echo ''; - } - } - }else if(actionOK('source')) { //pseudo action - echo ''; - } - }else{ - echo ''; - } + $act = tpl_get_action('edit'); + if($act) echo ''; - echo ''; - if($INFO['ismanager'] && $REV && $INFO['writable'] && actionOK('revert')){ - echo ''; - } - echo ''; + $act = tpl_get_action('revisions'); + if($act) echo ''; + + $act = tpl_get_action('revert'); + if($act) echo ''; + + $act = tpl_get_action('backlink'); + if($act) echo ''; echo ''; echo ''; - echo ''; - echo ''; + $act = tpl_get_action('recent'); + if($act) echo ''; + + $act = tpl_get_action('index'); + if($act) echo ''; echo ''; echo ''; - if($conf['useacl'] && $auth){ - if($_SERVER['REMOTE_USER']){ - echo ''; - }else{ - echo ''; - } - } + $act = tpl_get_action('login'); + if($act) echo ''; - if($conf['useacl'] && $auth && $_SERVER['REMOTE_USER'] && - $auth->canDo('Profile') && ($ACT!='profile')){ - echo ''; - } + $act = tpl_get_action('profile'); + if($act) echo ''; - if($conf['useacl'] && $auth && $ACT == 'show' && $conf['subscribers']){ - if($_SERVER['REMOTE_USER']){ - echo ''; - } - } + $act = tpl_get_action('subscribe'); + if($act) echo ''; - if($INFO['ismanager']){ - echo ''; - } + $act = tpl_get_action('admin'); + if($act) echo ''; echo ''; echo ''; -- cgit v1.2.3 From 272000286c073349cd0ba898df00c4fe81492461 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 29 Aug 2010 09:41:54 +0200 Subject: added missing keeptxt option to universal search FS#2014 --- inc/search.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc') diff --git a/inc/search.php b/inc/search.php index 322c53e25..ea8897662 100644 --- a/inc/search.php +++ b/inc/search.php @@ -549,7 +549,7 @@ function search_universal(&$data,$base,$file,$type,$lvl,$opts){ $return = true; // get ID and check if it is a valid one - $item['id'] = pathID($file); + $item['id'] = pathID($file,$opts['keeptxt']); if($item['id'] != cleanID($item['id'])){ if($opts['showmsg']) msg(hsc($item['id']).' is not a valid file name for DokuWiki - skipped',-1); -- cgit v1.2.3 From 7f0d7314a01c4e97a23d7d89bd9a839accd2776a Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 29 Aug 2010 09:53:46 +0200 Subject: GeSHi updated to 1.0.8.8 --- inc/geshi.php | 9 +- inc/geshi/4cs.php | 2 +- inc/geshi/abap.php | 2 +- inc/geshi/actionscript.php | 2 +- inc/geshi/actionscript3.php | 2 +- inc/geshi/ada.php | 2 +- inc/geshi/apache.php | 2 +- inc/geshi/applescript.php | 2 +- inc/geshi/apt_sources.php | 2 +- inc/geshi/asm.php | 2 +- inc/geshi/asp.php | 2 +- inc/geshi/autoconf.php | 512 ++++++++++++++++++++++++++++++++++++++++++++ inc/geshi/autohotkey.php | 2 +- inc/geshi/autoit.php | 12 +- inc/geshi/avisynth.php | 2 +- inc/geshi/awk.php | 2 +- inc/geshi/bash.php | 21 +- inc/geshi/basic4gl.php | 2 +- inc/geshi/bf.php | 2 +- inc/geshi/bibtex.php | 2 +- inc/geshi/blitzbasic.php | 2 +- inc/geshi/bnf.php | 23 +- inc/geshi/boo.php | 2 +- inc/geshi/c.php | 20 +- inc/geshi/c_mac.php | 21 +- inc/geshi/caddcl.php | 2 +- inc/geshi/cadlisp.php | 2 +- inc/geshi/cfdg.php | 2 +- inc/geshi/cfm.php | 2 +- inc/geshi/chaiscript.php | 140 ++++++++++++ inc/geshi/cil.php | 2 +- inc/geshi/clojure.php | 10 +- inc/geshi/cmake.php | 2 +- inc/geshi/cobol.php | 2 +- inc/geshi/cpp-qt.php | 20 +- inc/geshi/cpp.php | 20 +- inc/geshi/csharp.php | 2 +- inc/geshi/css.php | 2 +- inc/geshi/cuesheet.php | 2 +- inc/geshi/d.php | 2 +- inc/geshi/dcs.php | 2 +- inc/geshi/delphi.php | 2 +- inc/geshi/diff.php | 2 +- inc/geshi/div.php | 2 +- inc/geshi/dos.php | 12 +- inc/geshi/dot.php | 2 +- inc/geshi/ecmascript.php | 210 ++++++++++++++++++ inc/geshi/eiffel.php | 2 +- inc/geshi/email.php | 2 +- inc/geshi/erlang.php | 6 +- inc/geshi/fo.php | 2 +- inc/geshi/fortran.php | 2 +- inc/geshi/freebasic.php | 2 +- inc/geshi/fsharp.php | 2 +- inc/geshi/gambas.php | 2 +- inc/geshi/gdb.php | 2 +- inc/geshi/genero.php | 2 +- inc/geshi/genie.php | 157 ++++++++++++++ inc/geshi/gettext.php | 2 +- inc/geshi/glsl.php | 2 +- inc/geshi/gml.php | 2 +- inc/geshi/gnuplot.php | 2 +- inc/geshi/groovy.php | 2 +- inc/geshi/gwbasic.php | 153 +++++++++++++ inc/geshi/haskell.php | 12 +- inc/geshi/hicest.php | 108 ++++++++++ inc/geshi/hq9plus.php | 2 +- inc/geshi/html4strict.php | 2 +- inc/geshi/icon.php | 212 ++++++++++++++++++ inc/geshi/idl.php | 2 +- inc/geshi/ini.php | 2 +- inc/geshi/inno.php | 2 +- inc/geshi/intercal.php | 2 +- inc/geshi/io.php | 2 +- inc/geshi/j.php | 227 ++++++++++++++++++++ inc/geshi/java.php | 2 +- inc/geshi/java5.php | 10 +- inc/geshi/javascript.php | 2 +- inc/geshi/jquery.php | 2 +- inc/geshi/kixtart.php | 2 +- inc/geshi/klonec.php | 2 +- inc/geshi/klonecpp.php | 2 +- inc/geshi/latex.php | 4 +- inc/geshi/lisp.php | 6 +- inc/geshi/locobasic.php | 2 +- inc/geshi/logtalk.php | 2 +- inc/geshi/lolcode.php | 2 +- inc/geshi/lotusformulas.php | 2 +- inc/geshi/lotusscript.php | 2 +- inc/geshi/lscript.php | 2 +- inc/geshi/lsl2.php | 2 +- inc/geshi/lua.php | 2 +- inc/geshi/m68k.php | 2 +- inc/geshi/magiksf.php | 193 +++++++++++++++++ inc/geshi/make.php | 2 +- inc/geshi/mapbasic.php | 2 +- inc/geshi/matlab.php | 6 +- inc/geshi/mirc.php | 2 +- inc/geshi/mmix.php | 2 +- inc/geshi/modula2.php | 136 ++++++++++++ inc/geshi/modula3.php | 2 +- inc/geshi/mpasm.php | 2 +- inc/geshi/mxml.php | 2 +- inc/geshi/mysql.php | 2 +- inc/geshi/newlisp.php | 2 +- inc/geshi/nsis.php | 2 +- inc/geshi/oberon2.php | 2 +- inc/geshi/objc.php | 2 +- inc/geshi/ocaml-brief.php | 2 +- inc/geshi/ocaml.php | 41 ++-- inc/geshi/oobas.php | 2 +- inc/geshi/oracle11.php | 2 +- inc/geshi/oracle8.php | 2 +- inc/geshi/oxygene.php | 152 +++++++++++++ inc/geshi/oz.php | 144 +++++++++++++ inc/geshi/pascal.php | 2 +- inc/geshi/pcre.php | 188 ++++++++++++++++ inc/geshi/per.php | 2 +- inc/geshi/perl.php | 2 +- inc/geshi/perl6.php | 2 +- inc/geshi/pf.php | 178 +++++++++++++++ inc/geshi/php-brief.php | 2 +- inc/geshi/php.php | 2 +- inc/geshi/pic16.php | 2 +- inc/geshi/pike.php | 2 +- inc/geshi/pixelbender.php | 2 +- inc/geshi/plsql.php | 2 +- inc/geshi/postgresql.php | 288 +++++++++++++++++++++++++ inc/geshi/povray.php | 2 +- inc/geshi/powerbuilder.php | 2 +- inc/geshi/powershell.php | 4 +- inc/geshi/progress.php | 2 +- inc/geshi/prolog.php | 6 +- inc/geshi/properties.php | 2 +- inc/geshi/providex.php | 2 +- inc/geshi/purebasic.php | 2 +- inc/geshi/python.php | 2 +- inc/geshi/q.php | 149 +++++++++++++ inc/geshi/qbasic.php | 2 +- inc/geshi/rails.php | 2 +- inc/geshi/rebol.php | 2 +- inc/geshi/reg.php | 2 +- inc/geshi/robots.php | 2 +- inc/geshi/rpmspec.php | 133 ++++++++++++ inc/geshi/rsplus.php | 2 +- inc/geshi/ruby.php | 7 +- inc/geshi/sas.php | 2 +- inc/geshi/scala.php | 2 +- inc/geshi/scheme.php | 2 +- inc/geshi/scilab.php | 2 +- inc/geshi/sdlbasic.php | 2 +- inc/geshi/smalltalk.php | 2 +- inc/geshi/smarty.php | 2 +- inc/geshi/sql.php | 2 +- inc/geshi/systemverilog.php | 2 +- inc/geshi/tcl.php | 8 +- inc/geshi/teraterm.php | 2 +- inc/geshi/text.php | 2 +- inc/geshi/thinbasic.php | 2 +- inc/geshi/tsql.php | 4 +- inc/geshi/typoscript.php | 2 +- inc/geshi/unicon.php | 210 ++++++++++++++++++ inc/geshi/vala.php | 151 +++++++++++++ inc/geshi/vb.php | 68 ++++-- inc/geshi/vbnet.php | 2 +- inc/geshi/verilog.php | 2 +- inc/geshi/vhdl.php | 2 +- inc/geshi/vim.php | 55 ++--- inc/geshi/visualfoxpro.php | 2 +- inc/geshi/visualprolog.php | 2 +- inc/geshi/whitespace.php | 2 +- inc/geshi/whois.php | 2 +- inc/geshi/winbatch.php | 2 +- inc/geshi/xbasic.php | 144 +++++++++++++ inc/geshi/xml.php | 2 +- inc/geshi/xorg_conf.php | 2 +- inc/geshi/xpp.php | 2 +- inc/geshi/z80.php | 2 +- 178 files changed, 4187 insertions(+), 271 deletions(-) create mode 100644 inc/geshi/autoconf.php create mode 100644 inc/geshi/chaiscript.php create mode 100644 inc/geshi/ecmascript.php create mode 100644 inc/geshi/genie.php create mode 100644 inc/geshi/gwbasic.php create mode 100644 inc/geshi/hicest.php create mode 100644 inc/geshi/icon.php create mode 100644 inc/geshi/j.php create mode 100644 inc/geshi/magiksf.php create mode 100644 inc/geshi/modula2.php create mode 100644 inc/geshi/oxygene.php create mode 100644 inc/geshi/oz.php create mode 100644 inc/geshi/pcre.php create mode 100644 inc/geshi/pf.php create mode 100644 inc/geshi/postgresql.php create mode 100644 inc/geshi/q.php create mode 100644 inc/geshi/rpmspec.php create mode 100644 inc/geshi/unicon.php create mode 100644 inc/geshi/vala.php create mode 100644 inc/geshi/xbasic.php (limited to 'inc') diff --git a/inc/geshi.php b/inc/geshi.php index 14acf15a6..31d2da49f 100644 --- a/inc/geshi.php +++ b/inc/geshi.php @@ -41,7 +41,7 @@ // /** The version of this GeSHi file */ -define('GESHI_VERSION', '1.0.8.6'); +define('GESHI_VERSION', '1.0.8.8'); // Define the root directory for the GeSHi code tree if (!defined('GESHI_ROOT')) { @@ -1971,7 +1971,7 @@ class GeSHi { //All this formats are matched case-insensitively! static $numbers_format = array( GESHI_NUMBER_INT_BASIC => - '(? '(? @@ -2019,7 +2019,7 @@ class GeSHi { } $this->language_data['NUMBERS_RXCACHE'][$key] = - "/(?)($regexp)(?!(?:|[^\<])+>)(?![^<]*>)(?!\|>)(?!\/>)/i"; // + "/(?)($regexp)(?!(?:|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i"; // } } @@ -2651,7 +2651,8 @@ class GeSHi { $start = $i + $hq_strlen; while ($close_pos = strpos($part, $this->language_data['HARDQUOTE'][1], $start)) { $start = $close_pos + 1; - if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR']) { + if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR'] && + (($i + $hq_strlen) != ($close_pos))) { //Support empty string for HQ escapes if Starter = Escape // make sure this quote is not escaped foreach ($this->language_data['HARDESCAPE'] as $hardescape) { if (substr($part, $close_pos - 1, strlen($hardescape)) == $hardescape) { diff --git a/inc/geshi/4cs.php b/inc/geshi/4cs.php index 6ce702fbc..48b671f4a 100644 --- a/inc/geshi/4cs.php +++ b/inc/geshi/4cs.php @@ -4,7 +4,7 @@ * ------ * Author: Jason Curl (jason.curl@continental-corporation.com) * Copyright: (c) 2009 Jason Curl - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/09/05 * * 4CS language file for GeSHi. diff --git a/inc/geshi/abap.php b/inc/geshi/abap.php index fa69c92f9..942d2397e 100644 --- a/inc/geshi/abap.php +++ b/inc/geshi/abap.php @@ -7,7 +7,7 @@ * - Sandra Rossi (sandra.rossi@gmail.com) * - Jacob Laursen (jlu@kmd.dk) * Copyright: (c) 2007 Andres Picazo - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * ABAP language file for GeSHi. diff --git a/inc/geshi/actionscript.php b/inc/geshi/actionscript.php index 394a463c4..41d66edd2 100644 --- a/inc/geshi/actionscript.php +++ b/inc/geshi/actionscript.php @@ -4,7 +4,7 @@ * ---------------- * Author: Steffen Krause (Steffen.krause@muse.de) * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/20 * * Actionscript language file for GeSHi. diff --git a/inc/geshi/actionscript3.php b/inc/geshi/actionscript3.php index 8449173e8..4aab929dc 100644 --- a/inc/geshi/actionscript3.php +++ b/inc/geshi/actionscript3.php @@ -4,7 +4,7 @@ * ---------------- * Author: Jordi Boggiano (j.boggiano@seld.be) * Copyright: (c) 2007 Jordi Boggiano (http://www.seld.be/), Benny Baumann (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/11/26 * * ActionScript3 language file for GeSHi. diff --git a/inc/geshi/ada.php b/inc/geshi/ada.php index 4c112f0db..c6b0597bb 100644 --- a/inc/geshi/ada.php +++ b/inc/geshi/ada.php @@ -4,7 +4,7 @@ * ------- * Author: Tux (tux@inmail.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/07/29 * * Ada language file for GeSHi. diff --git a/inc/geshi/apache.php b/inc/geshi/apache.php index a5b651bb6..34704eb22 100644 --- a/inc/geshi/apache.php +++ b/inc/geshi/apache.php @@ -4,7 +4,7 @@ * ---------- * Author: Tux (tux@inmail.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/29/07 * * Apache language file for GeSHi. diff --git a/inc/geshi/applescript.php b/inc/geshi/applescript.php index 8a07d00b5..9e214f2e1 100644 --- a/inc/geshi/applescript.php +++ b/inc/geshi/applescript.php @@ -4,7 +4,7 @@ * -------- * Author: Stephan Klimek (http://www.initware.org) * Copyright: Stephan Klimek (http://www.initware.org) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/07/20 * * AppleScript language file for GeSHi. diff --git a/inc/geshi/apt_sources.php b/inc/geshi/apt_sources.php index fe1711fdd..f4cf9ae3f 100644 --- a/inc/geshi/apt_sources.php +++ b/inc/geshi/apt_sources.php @@ -4,7 +4,7 @@ * ---------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff (http://milianw.de) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/06/17 * * Apt sources.list language file for GeSHi. diff --git a/inc/geshi/asm.php b/inc/geshi/asm.php index 49699b900..d54e24023 100644 --- a/inc/geshi/asm.php +++ b/inc/geshi/asm.php @@ -4,7 +4,7 @@ * ------- * Author: Tux (tux@inmail.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/07/27 * * x86 Assembler language file for GeSHi. diff --git a/inc/geshi/asp.php b/inc/geshi/asp.php index 6e799a802..4a9d6c8e2 100644 --- a/inc/geshi/asp.php +++ b/inc/geshi/asp.php @@ -4,7 +4,7 @@ * -------- * Author: Amit Gupta (http://blog.igeek.info/) * Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/13 * * ASP language file for GeSHi. diff --git a/inc/geshi/autoconf.php b/inc/geshi/autoconf.php new file mode 100644 index 000000000..0883f9f54 --- /dev/null +++ b/inc/geshi/autoconf.php @@ -0,0 +1,512 @@ + 'Autoconf', + 'COMMENT_SINGLE' => array(2 => '#'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + //Multiline-continued single-line comments + 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Multiline-continued preprocessor define + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Single Line comment started by dnl + 3 => '/(? GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array(), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + 1 => array( + 'AC_ACT_IFELSE', + 'AC_AIX', + 'AC_ALLOCA', + 'AC_ARG_ARRAY', + 'AC_ARG_ENABLE', + 'AC_ARG_PROGRAM', + 'AC_ARG_VAR', + 'AC_ARG_WITH', + 'AC_AUTOCONF_VERSION', + 'AC_BEFORE', + 'AC_C_BACKSLASH_A', + 'AC_C_BIGENDIAN', + 'AC_C_CHAR_UNSIGNED', + 'AC_C_CONST', + 'AC_C_CROSS', + 'AC_C_FLEXIBLE_ARRAY_MEMBER', + 'AC_C_INLINE', + 'AC_C_LONG_DOUBLE', + 'AC_C_PROTOTYPES', + 'AC_C_RESTRICT', + 'AC_C_STRINGIZE', + 'AC_C_TYPEOF', + 'AC_C_VARARRAYS', + 'AC_C_VOLATILE', + 'AC_CACHE_CHECK', + 'AC_CACHE_LOAD', + 'AC_CACHE_SAVE', + 'AC_CACHE_VAL', + 'AC_CANONICAL_BUILD', + 'AC_CANONICAL_HOST', + 'AC_CANONICAL_SYSTEM', + 'AC_CANONICAL_TARGET', + 'AC_CHAR_UNSIGNED', + 'AC_CHECK_ALIGNOF', + 'AC_CHECK_DECL', + 'AC_CHECK_DECLS', + 'AC_CHECK_DECLS_ONCE', + 'AC_CHECK_FILE', + 'AC_CHECK_FILES', + 'AC_CHECK_FUNC', + 'AC_CHECK_FUNCS', + 'AC_CHECK_FUNCS_ONCE', + 'AC_CHECK_HEADER', + 'AC_CHECK_HEADERS', + 'AC_CHECK_HEADERS_ONCE', + 'AC_CHECK_LIB', + 'AC_CHECK_MEMBER', + 'AC_CHECK_MEMBERS', + 'AC_CHECK_PROG', + 'AC_CHECK_PROGS', + 'AC_CHECK_SIZEOF', + 'AC_CHECK_TARGET_TOOL', + 'AC_CHECK_TARGET_TOOLS', + 'AC_CHECK_TOOL', + 'AC_CHECK_TOOLS', + 'AC_CHECK_TYPE', + 'AC_CHECK_TYPES', + 'AC_CHECKING', + 'AC_COMPILE_CHECK', + 'AC_COMPILE_IFELSE', + 'AC_COMPUTE_INT', + 'AC_CONFIG_AUX_DIR', + 'AC_CONFIG_COMMANDS', + 'AC_CONFIG_COMMANDS_POST', + 'AC_CONFIG_COMMANDS_PRE', + 'AC_CONFIG_FILES', + 'AC_CONFIG_HEADERS', + 'AC_CONFIG_ITEMS', + 'AC_CONFIG_LIBOBJ_DIR', + 'AC_CONFIG_LINKS', + 'AC_CONFIG_MACRO_DIR', + 'AC_CONFIG_SRCDIR', + 'AC_CONFIG_SUBDIRS', + 'AC_CONFIG_TESTDIR', + 'AC_CONST', + 'AC_COPYRIGHT', + 'AC_CROSS_CHECK', + 'AC_CYGWIN', + 'AC_DATAROOTDIR_CHECKED', + 'AC_DECL_SYS_SIGLIST', + 'AC_DECL_YYTEXT', + 'AC_DEFINE', + 'AC_DEFINE_UNQUOTED', + 'AC_DEFUN', + 'AC_DEFUN_ONCE', + 'AC_DIAGNOSE', + 'AC_DIR_HEADER', + 'AC_DISABLE_OPTION_CHECKING', + 'AC_DYNIX_SEQ', + 'AC_EGREP_CPP', + 'AC_EGREP_HEADER', + 'AC_EMXOS2', + 'AC_ENABLE', + 'AC_ERLANG_CHECK_LIB', + 'AC_ERLANG_NEED_ERL', + 'AC_ERLANG_NEED_ERLC', + 'AC_ERLANG_PATH_ERL', + 'AC_ERLANG_PATH_ERLC', + 'AC_ERLANG_SUBST_ERTS_VER', + 'AC_ERLANG_SUBST_INSTALL_LIB_DIR', + 'AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR', + 'AC_ERLANG_SUBST_LIB_DIR', + 'AC_ERLANG_SUBST_ROOT_DIR', + 'AC_ERROR', + 'AC_EXEEXT', + 'AC_F77_DUMMY_MAIN', + 'AC_F77_FUNC', + 'AC_F77_LIBRARY_LDFLAGS', + 'AC_F77_MAIN', + 'AC_F77_WRAPPERS', + 'AC_FATAL', + 'AC_FC_FREEFORM', + 'AC_FC_FUNC', + 'AC_FC_LIBRARY_LDFLAGS', + 'AC_FC_MAIN', + 'AC_FC_SRCEXT', + 'AC_FC_WRAPPERS', + 'AC_FIND_X', + 'AC_FIND_XTRA', + 'AC_FOREACH', + 'AC_FUNC_ALLOCA', + 'AC_FUNC_CHECK', + 'AC_FUNC_CHOWN', + 'AC_FUNC_CLOSEDIR_VOID', + 'AC_FUNC_ERROR_AT_LINE', + 'AC_FUNC_FNMATCH', + 'AC_FUNC_FNMATCH_GNU', + 'AC_FUNC_FORK', + 'AC_FUNC_FSEEKO', + 'AC_FUNC_GETGROUPS', + 'AC_FUNC_GETLOADAVG', + 'AC_FUNC_GETMNTENT', + 'AC_FUNC_GETPGRP', + 'AC_FUNC_LSTAT', + 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK', + 'AC_FUNC_MALLOC', + 'AC_FUNC_MBRTOWC', + 'AC_FUNC_MEMCMP', + 'AC_FUNC_MKTIME', + 'AC_FUNC_MMAP', + 'AC_FUNC_OBSTACK', + 'AC_FUNC_REALLOC', + 'AC_FUNC_SELECT_ARGTYPES', + 'AC_FUNC_SETPGRP', + 'AC_FUNC_SETVBUF_REVERSED', + 'AC_FUNC_STAT', + 'AC_FUNC_STRCOLL', + 'AC_FUNC_STRERROR_R', + 'AC_FUNC_STRFTIME', + 'AC_FUNC_STRNLEN', + 'AC_FUNC_STRTOD', + 'AC_FUNC_STRTOLD', + 'AC_FUNC_UTIME_NULL', + 'AC_FUNC_VPRINTF', + 'AC_FUNC_WAIT3', + 'AC_GCC_TRADITIONAL', + 'AC_GETGROUPS_T', + 'AC_GETLOADAVG', + 'AC_GNU_SOURCE', + 'AC_HAVE_FUNCS', + 'AC_HAVE_HEADERS', + 'AC_HAVE_LIBRARY', + 'AC_HAVE_POUNDBANG', + 'AC_HEADER_ASSERT', + 'AC_HEADER_CHECK', + 'AC_HEADER_DIRENT', + 'AC_HEADER_EGREP', + 'AC_HEADER_MAJOR', + 'AC_HEADER_RESOLV', + 'AC_HEADER_STAT', + 'AC_HEADER_STDBOOL', + 'AC_HEADER_STDC', + 'AC_HEADER_SYS_WAIT', + 'AC_HEADER_TIME', + 'AC_HEADER_TIOCGWINSZ', + 'AC_HELP_STRING', + 'AC_INCLUDES_DEFAULT', + 'AC_INIT', + 'AC_INLINE', + 'AC_INT_16_BITS', + 'AC_IRIX_SUN', + 'AC_ISC_POSIX', + 'AC_LANG_ASSERT', + 'AC_LANG_C', + 'AC_LANG_CALL', + 'AC_LANG_CONFTEST', + 'AC_LANG_CPLUSPLUS', + 'AC_LANG_FORTRAN77', + 'AC_LANG_FUNC_LINK_TRY', + 'AC_LANG_POP', + 'AC_LANG_PROGRAM', + 'AC_LANG_PUSH', + 'AC_LANG_RESTORE', + 'AC_LANG_SAVE', + 'AC_LANG_SOURCE', + 'AC_LANG_WERROR', + 'AC_LIBOBJ', + 'AC_LIBSOURCE', + 'AC_LIBSOURCES', + 'AC_LINK_FILES', + 'AC_LINK_IFELSE', + 'AC_LN_S', + 'AC_LONG_64_BITS', + 'AC_LONG_DOUBLE', + 'AC_LONG_FILE_NAMES', + 'AC_MAJOR_HEADER', + 'AC_MEMORY_H', + 'AC_MINGW32', + 'AC_MINIX', + 'AC_MINUS_C_MINUS_O', + 'AC_MMAP', + 'AC_MODE_T', + 'AC_MSG_CHECKING', + 'AC_MSG_ERROR', + 'AC_MSG_FAILURE', + 'AC_MSG_NOTICE', + 'AC_MSG_RESULT', + 'AC_MSG_WARN', + 'AC_OBJEXT', + 'AC_OBSOLETE', + 'AC_OFF_T', + 'AC_OPENMP', + 'AC_OUTPUT', + 'AC_OUTPUT_COMMANDS', + 'AC_PACKAGE_BUGREPORT', + 'AC_PACKAGE_NAME', + 'AC_PACKAGE_STRING', + 'AC_PACKAGE_TARNAME', + 'AC_PACKAGE_URL', + 'AC_PACKAGE_VERSION', + 'AC_PATH_PROG', + 'AC_PATH_PROGS', + 'AC_PATH_PROGS_FEATURE_CHECK', + 'AC_PATH_TARGET_TOOL', + 'AC_PATH_TOOL', + 'AC_PATH_X', + 'AC_PATH_XTRA', + 'AC_PID_T', + 'AC_PREFIX', + 'AC_PREFIX_DEFAULT', + 'AC_PREFIX_PROGRAM', + 'AC_PREPROC_IFELSE', + 'AC_PREREQ', + 'AC_PRESERVE_HELP_ORDER', + 'AC_PROG_AWK', + 'AC_PROG_CC', + 'AC_PROG_CC_C89', + 'AC_PROG_CC_C99', + 'AC_PROG_CC_C_O', + 'AC_PROG_CC_STDC', + 'AC_PROG_CPP', + 'AC_PROG_CPP_WERROR', + 'AC_PROG_CXX', + 'AC_PROG_CXX_C_O', + 'AC_PROG_CXXCPP', + 'AC_PROG_EGREP', + 'AC_PROG_F77', + 'AC_PROG_F77_C_O', + 'AC_PROG_FC', + 'AC_PROG_FC_C_O', + 'AC_PROG_FGREP', + 'AC_PROG_GCC_TRADITIONAL', + 'AC_PROG_GREP', + 'AC_PROG_INSTALL', + 'AC_PROG_LEX', + 'AC_PROG_LN_S', + 'AC_PROG_MAKE_SET', + 'AC_PROG_MKDIR_P', + 'AC_PROG_OBJC', + 'AC_PROG_OBJCPP', + 'AC_PROG_OBJCXX', + 'AC_PROG_OBJCXXCPP', + 'AC_PROG_RANLIB', + 'AC_PROG_SED', + 'AC_PROG_YACC', + 'AC_PROGRAM_CHECK', + 'AC_PROGRAM_EGREP', + 'AC_PROGRAM_PATH', + 'AC_PROGRAMS_CHECK', + 'AC_PROGRAMS_PATH', + 'AC_REMOTE_TAPE', + 'AC_REPLACE_FNMATCH', + 'AC_REPLACE_FUNCS', + 'AC_REQUIRE', + 'AC_REQUIRE_AUX_FILE', + 'AC_REQUIRE_CPP', + 'AC_RESTARTABLE_SYSCALLS', + 'AC_RETSIGTYPE', + 'AC_REVISION', + 'AC_RSH', + 'AC_RUN_IFELSE', + 'AC_SCO_INTL', + 'AC_SEARCH_LIBS', + 'AC_SET_MAKE', + 'AC_SETVBUF_REVERSED', + 'AC_SIZE_T', + 'AC_SIZEOF_TYPE', + 'AC_ST_BLKSIZE', + 'AC_ST_BLOCKS', + 'AC_ST_RDEV', + 'AC_STAT_MACROS_BROKEN', + 'AC_STDC_HEADERS', + 'AC_STRCOLL', + 'AC_STRUCT_DIRENT_D_INO', + 'AC_STRUCT_DIRENT_D_TYPE', + 'AC_STRUCT_ST_BLKSIZE', + 'AC_STRUCT_ST_BLOCKS', + 'AC_STRUCT_ST_RDEV', + 'AC_STRUCT_TIMEZONE', + 'AC_STRUCT_TM', + 'AC_SUBST', + 'AC_SUBST_FILE', + 'AC_SYS_INTERPRETER', + 'AC_SYS_LARGEFILE', + 'AC_SYS_LONG_FILE_NAMES', + 'AC_SYS_POSIX_TERMIOS', + 'AC_SYS_RESTARTABLE_SYSCALLS', + 'AC_SYS_SIGLIST_DECLARED', + 'AC_TEST_CPP', + 'AC_TEST_PROGRAM', + 'AC_TIME_WITH_SYS_TIME', + 'AC_TIMEZONE', + 'AC_TRY_ACT', + 'AC_TRY_COMPILE', + 'AC_TRY_CPP', + 'AC_TRY_LINK', + 'AC_TRY_LINK_FUNC', + 'AC_TRY_RUN', + 'AC_TYPE_GETGROUPS', + 'AC_TYPE_INT16_T', + 'AC_TYPE_INT32_T', + 'AC_TYPE_INT64_T', + 'AC_TYPE_INT8_T', + 'AC_TYPE_INTMAX_T', + 'AC_TYPE_INTPTR_T', + 'AC_TYPE_LONG_DOUBLE', + 'AC_TYPE_LONG_DOUBLE_WIDER', + 'AC_TYPE_LONG_LONG_INT', + 'AC_TYPE_MBSTATE_T', + 'AC_TYPE_MODE_T', + 'AC_TYPE_OFF_T', + 'AC_TYPE_PID_T', + 'AC_TYPE_SIGNAL', + 'AC_TYPE_SIZE_T', + 'AC_TYPE_SSIZE_T', + 'AC_TYPE_UID_T', + 'AC_TYPE_UINT16_T', + 'AC_TYPE_UINT32_T', + 'AC_TYPE_UINT64_T', + 'AC_TYPE_UINT8_T', + 'AC_TYPE_UINTMAX_T', + 'AC_TYPE_UINTPTR_T', + 'AC_TYPE_UNSIGNED_LONG_LONG_INT', + 'AC_UID_T', + 'AC_UNISTD_H', + 'AC_USE_SYSTEM_EXTENSIONS', + 'AC_USG', + 'AC_UTIME_NULL', + 'AC_VALIDATE_CACHED_SYSTEM_TUPLE', + 'AC_VERBOSE', + 'AC_VFORK', + 'AC_VPRINTF', + 'AC_WAIT3', + 'AC_WARN', + 'AC_WARNING', + 'AC_WITH', + 'AC_WORDS_BIGENDIAN', + 'AC_XENIX_DIR', + 'AC_YYTEXT_POINTER', + 'AH_BOTTOM', + 'AH_HEADER', + 'AH_TEMPLATE', + 'AH_TOP', + 'AH_VERBATIM', + 'AU_ALIAS', + 'AU_DEFUN'), + ), + 'SYMBOLS' => array('(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`'), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00ffff;', + ), + 'COMMENTS' => array( + 1 => 'color: #666666;', + 2 => 'color: #339900;', + 3 => 'color: #666666;', + 'MULTI' => 'color: #ff0000; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;', + 1 => 'color: #000099;', + 2 => 'color: #660099;', + 3 => 'color: #660099;', + 4 => 'color: #660099;', + 5 => 'color: #006699;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #008000;' + ), + 'STRINGS' => array( + 0 => 'color: #996600;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;', + 1 => 'color: #000080;', + 2 => 'color: #000040;', + 3 => 'color: #000040;', + 4 => 'color: #008080;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'COMMENTS' => array( + 'DISALLOWED_BEFORE' => '$' + ), + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(? "(?![\.\-a-zA-Z0-9_%\\/])" + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/autohotkey.php b/inc/geshi/autohotkey.php index 1a6346340..6a3528334 100644 --- a/inc/geshi/autohotkey.php +++ b/inc/geshi/autohotkey.php @@ -4,7 +4,7 @@ * -------- * Author: Naveen Garg (naveen.garg@gmail.com) * Copyright: (c) 2009 Naveen Garg and GeSHi - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/06/11 * * Autohotkey language file for GeSHi. diff --git a/inc/geshi/autoit.php b/inc/geshi/autoit.php index e3185d063..c8ef4404b 100644 --- a/inc/geshi/autoit.php +++ b/inc/geshi/autoit.php @@ -4,7 +4,7 @@ * -------- * Author: big_daddy (robert.i.anthony@gmail.com) * Copyright: (c) 2006 and to GESHi ;) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/01/26 * * AutoIT language file for GeSHi. @@ -60,7 +60,10 @@ $language_data = array ( 'COMMENT_MULTI' => array( '#comments-start' => '#comments-end', '#cs' => '#ce'), - 'COMMENT_REGEXP' => array(0 => '/(? array( + 0 => '/(? '/(?<=include)\s+<.*?>/' + ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '', @@ -1101,8 +1104,9 @@ $language_data = array ( 6 => 'color: #A00FF0; font-style: italic;' ), 'COMMENTS' => array( + 'MULTI' => 'font-style: italic; color: #669900;', 0 => 'font-style: italic; color: #009933;', - 'MULTI' => 'font-style: italic; color: #669900;' + 1 => 'font-style: italic; color: #9977BB;', ), 'ESCAPE_CHAR' => array( 0 => '' @@ -1111,7 +1115,7 @@ $language_data = array ( 0 => 'color: #FF0000; font-weight: bold;' ), 'STRINGS' => array( - 0 => 'font-weight: bold; color: #008080;' + 0 => 'font-weight: bold; color: #9977BB;' ), 'NUMBERS' => array( 0 => 'color: #AC00A9; font-style: italic; font-weight: bold;' diff --git a/inc/geshi/avisynth.php b/inc/geshi/avisynth.php index 9031e8caa..f74f50c3a 100644 --- a/inc/geshi/avisynth.php +++ b/inc/geshi/avisynth.php @@ -4,7 +4,7 @@ * -------- * Author: Ryan Jones (sciguyryan@gmail.com) * Copyright: (c) 2008 Ryan Jones - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/10/08 * * AviSynth language file for GeSHi. diff --git a/inc/geshi/awk.php b/inc/geshi/awk.php index abecf72b5..5d540315c 100644 --- a/inc/geshi/awk.php +++ b/inc/geshi/awk.php @@ -4,7 +4,7 @@ * ------- * Author: George Pollard (porges@porg.es) * Copyright: (c) 2009 George Pollard - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/01/28 * * Awk language file for GeSHi. diff --git a/inc/geshi/bash.php b/inc/geshi/bash.php index 0b1583b7b..dad391c8a 100644 --- a/inc/geshi/bash.php +++ b/inc/geshi/bash.php @@ -4,7 +4,7 @@ * -------- * Author: Andreas Gohr (andi@splitbrain.org) * Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/20 * * BASH language file for GeSHi. @@ -91,7 +91,7 @@ $language_data = array ( ), 2 => array( 'aclocal', 'aconnect', 'aplay', 'apm', 'apmsleep', 'apropos', - 'apt-cache', 'apt-get', 'apt-key', 'aptitude', + 'apt-cache', 'apt-file', 'apt-get', 'apt-key', 'apt-src', 'aptitude', 'ar', 'arch', 'arecord', 'as', 'as86', 'ash', 'autoconf', 'autoheader', 'automake', 'awk', @@ -104,10 +104,11 @@ $language_data = array ( 'chown', 'chroot', 'chsh', 'chvt', 'clear', 'cmp', 'comm', 'co', 'col', 'cp', 'cpio', 'cpp', 'csh', 'cut', 'cvs', 'cvs-pserver', - 'dash', 'date', 'dd', 'dc', 'dcop', 'deallocvt', 'df', 'dialog', - 'diff', 'diff3', 'dir', 'dircolors', 'directomatic', 'dirname', - 'dmesg', 'dnsdomainname', 'domainname', 'dpkg', 'dselect', 'du', - 'dumpkeys', + 'dash', 'date', 'dc', 'dch', 'dcop', 'dd', 'ddate', 'ddd', + 'deallocvt', 'debconf', 'defoma', 'depmod', 'df', 'dh', + 'dialog', 'diff', 'diff3', 'dig', 'dir', 'dircolors', 'directomatic', + 'dirname', 'dmesg', 'dnsdomainname', 'domainname', 'dpkg', + 'dselect', 'du', 'dumpkeys', 'ed', 'egrep', 'env', 'expr', @@ -208,8 +209,10 @@ $language_data = array ( 'valgrind', 'vdir', 'vi', 'vim', 'vmstat', - 'w', 'wall', 'wc', 'wget', 'whatis', 'whereis', 'which', 'whiptail', - 'who', 'whoami', 'write', + 'w', 'wall', 'watch', 'wc', 'wget', 'whatis', 'whereis', + 'which', 'whiptail', 'who', 'whoami', 'whois', 'wine', 'wineboot', + 'winebuild', 'winecfg', 'wineconsole', 'winedbg', 'winedump', + 'winefile', 'wodim', 'write', 'xargs', 'xhost', 'xmodmap', 'xset', @@ -302,7 +305,7 @@ $language_data = array ( //Shorthand shell variables 4 => "\\$[*#\$\\-\\?!\d]", //Parameters of commands - 5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|$)" + 5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|<(?:SEMI|PIPE)>|$)" ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( diff --git a/inc/geshi/basic4gl.php b/inc/geshi/basic4gl.php index 55be6dc34..7ac869304 100644 --- a/inc/geshi/basic4gl.php +++ b/inc/geshi/basic4gl.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Matthew Webb (bmatthew1@blueyonder.co.uk) * Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/09/15 * * Basic4GL language file for GeSHi. diff --git a/inc/geshi/bf.php b/inc/geshi/bf.php index c69155e88..ba44e6caf 100644 --- a/inc/geshi/bf.php +++ b/inc/geshi/bf.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * Brainfuck language file for GeSHi. diff --git a/inc/geshi/bibtex.php b/inc/geshi/bibtex.php index 82c13b8bc..e47e0665c 100644 --- a/inc/geshi/bibtex.php +++ b/inc/geshi/bibtex.php @@ -4,7 +4,7 @@ * ----- * Author: Quinn Taylor (quinntaylor@mac.com) * Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/04/29 * * BibTeX language file for GeSHi. diff --git a/inc/geshi/blitzbasic.php b/inc/geshi/blitzbasic.php index c3871a21e..e43ec4635 100644 --- a/inc/geshi/blitzbasic.php +++ b/inc/geshi/blitzbasic.php @@ -4,7 +4,7 @@ * -------------- * Author: P�draig O`Connel (info@moonsword.info) * Copyright: (c) 2005 P�draig O`Connel (http://moonsword.info) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 16.10.2005 * * BlitzBasic language file for GeSHi. diff --git a/inc/geshi/bnf.php b/inc/geshi/bnf.php index db5cdb59d..f52df9cb8 100644 --- a/inc/geshi/bnf.php +++ b/inc/geshi/bnf.php @@ -4,7 +4,7 @@ * -------- * Author: Rowan Rodrik van der Molen (rowan@bigsmoke.us) * Copyright: (c) 2006 Rowan Rodrik van der Molen (http://www.bigsmoke.us/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/09/28 * * BNF (Backus-Naur form) language file for GeSHi. @@ -45,21 +45,26 @@ $language_data = array ( 'LANG_NAME' => 'bnf', - 'COMMENT_SINGLE' => array(), + 'COMMENT_SINGLE' => array(';'), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"', "'"), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array(), 'SYMBOLS' => array( - '(', ')', '<', '>', '::=', '|' + 0 => array('(', ')'), + 1 => array('<', '>'), + 2 => array('[', ']'), + 3 => array('{', '}'), + 4 => array('=', '*', '/', '|', ':'), ), 'CASE_SENSITIVE' => array( - //GESHI_COMMENTS => false + GESHI_COMMENTS => false ), 'STYLES' => array( 'KEYWORDS' => array(), 'COMMENTS' => array( + 0 => 'color: #666666; font-style: italic;', // Single Line comments ), 'ESCAPE_CHAR' => array( 0 => '' @@ -78,8 +83,12 @@ $language_data = array ( 0 => '' ), 'SYMBOLS' => array( - 0 => 'color: #000066; font-weight: bold;', // Unused - ), + 0 => 'color: #000066; font-weight: bold;', // Round brackets + 1 => 'color: #000066; font-weight: bold;', // Angel Brackets + 2 => 'color: #000066; font-weight: bold;', // Square Brackets + 3 => 'color: #000066; font-weight: bold;', // BRaces + 4 => 'color: #006600; font-weight: bold;', // Other operator symbols + ), 'REGEXPS' => array( 0 => 'color: #007;', ), @@ -107,4 +116,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/boo.php b/inc/geshi/boo.php index df843797d..09d4ee40e 100644 --- a/inc/geshi/boo.php +++ b/inc/geshi/boo.php @@ -4,7 +4,7 @@ * -------- * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com) * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/09/10 * * Boo language file for GeSHi. diff --git a/inc/geshi/c.php b/inc/geshi/c.php index bb6be43e1..b0e2987d7 100644 --- a/inc/geshi/c.php +++ b/inc/geshi/c.php @@ -7,7 +7,7 @@ * - Jack Lloyd (lloyd@randombit.net) * - Michael Mol (mikemol@gmail.com) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * C language file for GeSHi. @@ -96,8 +96,22 @@ $language_data = array ( ), 4 => array( 'auto', 'char', 'const', 'double', 'float', 'int', 'long', - 'register', 'short', 'signed', 'sizeof', 'static', 'string', 'struct', - 'typedef', 'union', 'unsigned', 'void', 'volatile', 'wchar_t' + 'register', 'short', 'signed', 'sizeof', 'static', 'struct', + 'typedef', 'union', 'unsigned', 'void', 'volatile', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t' ), ), 'SYMBOLS' => array( diff --git a/inc/geshi/c_mac.php b/inc/geshi/c_mac.php index 6ead4ae15..1a034ae08 100644 --- a/inc/geshi/c_mac.php +++ b/inc/geshi/c_mac.php @@ -4,7 +4,7 @@ * --------- * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net) * Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * C for Macs language file for GeSHi. @@ -112,10 +112,25 @@ $language_data = array ( ), 4 => array( 'auto', 'char', 'const', 'double', 'float', 'int', 'long', - 'register', 'short', 'signed', 'static', 'string', 'struct', + 'register', 'short', 'signed', 'static', 'struct', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf', 'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t', - 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', + 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t', + // Mac-specific types: 'CFArrayRef', 'CFDictionaryRef', 'CFMutableDictionaryRef', 'CFBundleRef', 'CFSetRef', 'CFStringRef', 'CFURLRef', 'CFLocaleRef', 'CFDateFormatterRef', 'CFNumberFormatterRef', 'CFPropertyListRef', diff --git a/inc/geshi/caddcl.php b/inc/geshi/caddcl.php index 27474627e..74310d6d9 100644 --- a/inc/geshi/caddcl.php +++ b/inc/geshi/caddcl.php @@ -4,7 +4,7 @@ * ---------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * CAD DCL (Dialog Control Language) language file for GeSHi. diff --git a/inc/geshi/cadlisp.php b/inc/geshi/cadlisp.php index 5061c79e4..9277e5192 100644 --- a/inc/geshi/cadlisp.php +++ b/inc/geshi/cadlisp.php @@ -4,7 +4,7 @@ * ----------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/blog) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * AutoCAD/IntelliCAD Lisp language file for GeSHi. diff --git a/inc/geshi/cfdg.php b/inc/geshi/cfdg.php index 8d03b89df..ee17fdf53 100644 --- a/inc/geshi/cfdg.php +++ b/inc/geshi/cfdg.php @@ -4,7 +4,7 @@ * -------- * Author: John Horigan * Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/ - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/03/11 * * CFDG language file for GeSHi. diff --git a/inc/geshi/cfm.php b/inc/geshi/cfm.php index cdb7bf32c..dd508eec7 100644 --- a/inc/geshi/cfm.php +++ b/inc/geshi/cfm.php @@ -4,7 +4,7 @@ * ------- * Author: Diego * Copyright: (c) 2006 Diego - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/02/25 * * ColdFusion language file for GeSHi. diff --git a/inc/geshi/chaiscript.php b/inc/geshi/chaiscript.php new file mode 100644 index 000000000..e1baad4db --- /dev/null +++ b/inc/geshi/chaiscript.php @@ -0,0 +1,140 @@ + 'ChaiScript', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + //Regular Expressions + 'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'break', 'else', 'else if', 'eval', 'for', 'if', 'return', 'while', 'try', 'catch', 'finally', + ), + 2 => array( + 'def', 'false', 'fun', 'true', 'var', 'attr', + ), + 3 => array( + // built in functions + 'throw', + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', + '+', '-', '*', '/', '%', + '!', '@', '&', '|', '^', + '<', '>', '=', + ',', ';', '?', ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000066; font-weight: bold;', + 2 => 'color: #003366; font-weight: bold;', + 3 => 'color: #000066;' + ), + 'COMMENTS' => array( + 1 => 'color: #006600; font-style: italic;', + 2 => 'color: #009966; font-style: italic;', + 'MULTI' => 'color: #006600; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #3366CC;' + ), + 'NUMBERS' => array( + 0 => 'color: #CC0000;' + ), + 'METHODS' => array( + 1 => 'color: #660066;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + ), + 1 => array( + ) + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/cil.php b/inc/geshi/cil.php index 4ca93ecb0..142c7743a 100644 --- a/inc/geshi/cil.php +++ b/inc/geshi/cil.php @@ -4,7 +4,7 @@ * -------- * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com) * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/10/24 * * CIL (Common Intermediate Language) language file for GeSHi. diff --git a/inc/geshi/clojure.php b/inc/geshi/clojure.php index b970deea8..4bcb9a3ae 100644 --- a/inc/geshi/clojure.php +++ b/inc/geshi/clojure.php @@ -4,7 +4,7 @@ * -------- * Author: Jess Johnson (jess@grok-code.com) * Copyright: (c) 2009 Jess Johnson (http://grok-code.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/09/20 * * Clojure language file for GeSHi. @@ -51,10 +51,10 @@ $language_data = array ( 'defn', 'defn-', 'defmulti', 'defmethod', 'defmacro', 'deftest', 'defstruct', 'def', 'defonce', 'let', 'letfn', 'do', 'cond', 'condp', 'for', 'loop', 'recur', 'when', 'when-not', 'when-let', 'when-first', - 'if', 'if-let', 'if-not', 'doto', 'and', 'or', + 'if', 'if-let', 'if-not', 'doto', 'and', 'or','not','aget','aset', 'dosync', 'doseq', 'dotimes', 'dorun', 'doall', - 'load', 'import', 'unimport', 'ns', 'in-ns', 'refer', - 'try', 'catch', 'finally', 'throw', + 'load', 'import', 'unimport', 'ns', 'in-ns', 'refer', 'print', + 'try', 'catch', 'finally', 'throw', 'fn', 'update-in', 'with-open', 'with-local-vars', 'binding', 'gen-class', 'gen-and-load-class', 'gen-and-save-class', 'implement', 'proxy', 'lazy-cons', 'with-meta', @@ -72,7 +72,7 @@ $language_data = array ( 'line-seq', 'resultset-seq', 're-seq', 're-find', 'tree-seq', 'file-seq', 'iterator-seq', 'enumeration-seq', 'declare', 'xml-seq', 'symbol?', 'string?', 'vector', 'conj', 'str', - 'pos?', 'neg?', 'zero?', 'nil?', 'inc', 'format', + 'pos?', 'neg?', 'zero?', 'nil?', 'inc', 'dec', 'format', 'alter', 'commute', 'ref-set', 'floor', 'assoc', 'send', 'send-off' ) ), diff --git a/inc/geshi/cmake.php b/inc/geshi/cmake.php index a9cfaafdc..ccd855b0b 100644 --- a/inc/geshi/cmake.php +++ b/inc/geshi/cmake.php @@ -4,7 +4,7 @@ * ------- * Author: Daniel Nelson (danieln@eng.utah.edu) * Copyright: (c) 2009 Daniel Nelson - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/04/06 * * CMake language file for GeSHi. diff --git a/inc/geshi/cobol.php b/inc/geshi/cobol.php index 63abf3f09..c1220a06f 100644 --- a/inc/geshi/cobol.php +++ b/inc/geshi/cobol.php @@ -4,7 +4,7 @@ * ---------- * Author: BenBE (BenBE@omorphia.org) * Copyright: (c) 2007-2008 BenBE (http://www.omorphia.de/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/07/02 * * COBOL language file for GeSHi. diff --git a/inc/geshi/cpp-qt.php b/inc/geshi/cpp-qt.php index a96cd38af..8523d16b7 100644 --- a/inc/geshi/cpp-qt.php +++ b/inc/geshi/cpp-qt.php @@ -4,7 +4,7 @@ * ------- * Author: Iulian M * Copyright: (c) 2006 Iulian M - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/09/27 * * C++ (with QT extensions) language file for GeSHi. @@ -89,7 +89,7 @@ $language_data = array ( 'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC', 'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace', 'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast', - 'static_cast', 'explicit', 'friend', 'wchar_t', 'typename', 'typeid', 'class' , + 'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class' , 'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals', 'Q_SIGNALS', 'Q_SLOTS', 'Q_FOREACH', 'QCOMPARE', 'QVERIFY', 'qDebug', 'kDebug', 'QBENCHMARK' ), @@ -120,7 +120,21 @@ $language_data = array ( 'register', 'short', 'shortint', 'signed', 'static', 'struct', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf', 'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t', - 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', + 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t' ), 5 => array( "Q_UINT16", "Q_UINT32", "Q_UINT64", "Q_UINT8", "Q_ULLONG", diff --git a/inc/geshi/cpp.php b/inc/geshi/cpp.php index 7fb1da360..30f5a93f2 100644 --- a/inc/geshi/cpp.php +++ b/inc/geshi/cpp.php @@ -7,7 +7,7 @@ * - M. Uli Kusterer (witness.of.teachtext@gmx.net) * - Jack Lloyd (lloyd@randombit.net) * Copyright: (c) 2004 Dennis Bayer, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/09/27 * * C++ language file for GeSHi. @@ -97,7 +97,7 @@ $language_data = array ( 'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC', 'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace', 'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast', - 'static_cast', 'explicit', 'friend', 'wchar_t', 'typename', 'typeid', 'class' + 'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class' ), 3 => array( 'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this', @@ -126,7 +126,21 @@ $language_data = array ( 'register', 'short', 'shortint', 'signed', 'static', 'struct', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf', 'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t', - 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', + 'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t' ), ), 'SYMBOLS' => array( diff --git a/inc/geshi/csharp.php b/inc/geshi/csharp.php index aa166801d..6a9c3c2bd 100644 --- a/inc/geshi/csharp.php +++ b/inc/geshi/csharp.php @@ -5,7 +5,7 @@ * Author: Alan Juden (alan@judenware.org) * Revised by: Michael Mol (mikemol@gmail.com) * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * C# language file for GeSHi. diff --git a/inc/geshi/css.php b/inc/geshi/css.php index 04313d6d8..51f261486 100644 --- a/inc/geshi/css.php +++ b/inc/geshi/css.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/18 * * CSS language file for GeSHi. diff --git a/inc/geshi/cuesheet.php b/inc/geshi/cuesheet.php index 2fd610c15..81c607c10 100644 --- a/inc/geshi/cuesheet.php +++ b/inc/geshi/cuesheet.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (benbe@geshi.org) * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/12/21 * * Cuesheet language file for GeSHi. diff --git a/inc/geshi/d.php b/inc/geshi/d.php index f9157a514..5ef349d52 100644 --- a/inc/geshi/d.php +++ b/inc/geshi/d.php @@ -4,7 +4,7 @@ * ----- * Author: Thomas Kuehne (thomas@kuehne.cn) * Copyright: (c) 2005 Thomas Kuehne (http://thomas.kuehne.cn/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/04/22 * * D language file for GeSHi. diff --git a/inc/geshi/dcs.php b/inc/geshi/dcs.php index daad329c3..4762ed906 100644 --- a/inc/geshi/dcs.php +++ b/inc/geshi/dcs.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Stelio Passaris (GeSHi@stelio.net) * Copyright: (c) 2009 Stelio Passaris (http://stelio.net/stiki/GeSHi) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/01/20 * * DCS language file for GeSHi. diff --git a/inc/geshi/delphi.php b/inc/geshi/delphi.php index 2b758d7db..ff54af8f9 100644 --- a/inc/geshi/delphi.php +++ b/inc/geshi/delphi.php @@ -4,7 +4,7 @@ * ---------- * Author: J�rja Norbert (jnorbi@vipmail.hu), Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2004 J�rja Norbert, Benny Baumann (BenBE@omorphia.de), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/07/26 * * Delphi (Object Pascal) language file for GeSHi. diff --git a/inc/geshi/diff.php b/inc/geshi/diff.php index f1a4baf65..5570406da 100644 --- a/inc/geshi/diff.php +++ b/inc/geshi/diff.php @@ -4,7 +4,7 @@ * -------- * Author: Conny Brunnkvist (conny@fuchsia.se), W. Tasin (tasin@fhm.edu) * Copyright: (c) 2004 Fuchsia Open Source Solutions (http://www.fuchsia.se/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/12/29 * * Diff-output language file for GeSHi. diff --git a/inc/geshi/div.php b/inc/geshi/div.php index 5804bb727..276e9e882 100644 --- a/inc/geshi/div.php +++ b/inc/geshi/div.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Gabriel Lorenzo (ermakina@gmail.com) * Copyright: (c) 2005 Gabriel Lorenzo (http://ermakina.gazpachito.net) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/06/19 * * DIV language file for GeSHi. diff --git a/inc/geshi/dos.php b/inc/geshi/dos.php index c111e1b5e..9484d3766 100644 --- a/inc/geshi/dos.php +++ b/inc/geshi/dos.php @@ -4,7 +4,7 @@ * ------- * Author: Alessandro Staltari (staltari@geocities.com) * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/07/05 * * DOS language file for GeSHi. @@ -64,7 +64,10 @@ $language_data = array ( 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array(), //DOS comment lines - 'COMMENT_REGEXP' => array(1 => "/^\s*@?REM.*$/mi"), + 'COMMENT_REGEXP' => array( + 1 => "/^\s*@?REM\b.*$/mi", + 2 => "/^\s*::.*$/m" + ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array(), 'ESCAPE_CHAR' => '', @@ -114,7 +117,8 @@ $language_data = array ( 4 => 'color: #0000ff; font-weight: bold;' ), 'COMMENTS' => array( - 1 => 'color: #808080; font-style: italic;' + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #b100b1; font-style: italic;', ), 'ESCAPE_CHAR' => array( 0 => 'color: #ff0000; font-weight: bold;' @@ -195,4 +199,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/dot.php b/inc/geshi/dot.php index 6e4df2fff..04b6792d7 100644 --- a/inc/geshi/dot.php +++ b/inc/geshi/dot.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Adrien Friggeri (adrien@friggeri.net) * Copyright: (c) 2007 Adrien Friggeri (http://www.friggeri.net) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/05/30 * * dot language file for GeSHi. diff --git a/inc/geshi/ecmascript.php b/inc/geshi/ecmascript.php new file mode 100644 index 000000000..3e61b57cb --- /dev/null +++ b/inc/geshi/ecmascript.php @@ -0,0 +1,210 @@ + 'ECMAScript', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + // Regular Expression Literals + 'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]{2}#", + //Hexadecimal Char Specs + 3 => "#\\\\u[\da-fA-F]{4}#", + //Hexadecimal Char Specs + 4 => "#\\\\U[\da-fA-F]{8}#", + //Octal Char Specs + 5 => "#\\\\[0-7]{1,3}#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + 1 => array( // Reserved literals + 'false', 'true', + 'null' + ), + 2 => array( // Main keywords + 'break', 'case', 'catch', 'continue', 'default', 'delete', 'do', 'else', + 'finally', 'for', 'function', 'if', 'in', 'instanceof', 'new', 'return', + 'switch', 'this', 'throw', 'try', 'typeof', 'var', 'void', 'while', + 'with' + ), + 3 => array( // Extra keywords or keywords reserved for future use + 'abstract', 'as', 'boolean', 'byte', 'char', 'class', 'const', 'debugger', + 'double', 'enum', 'export', 'extends', 'final', 'float', 'goto', 'implements', + 'import', 'int', 'interface', 'is', 'long', 'native', 'namespace', 'package', + 'private', 'protected', 'public', 'short', 'static', 'super', 'synchronized', 'throws', + 'transient', 'use', 'volatile' + ), + 4 => array( // Operators + 'get', 'set' + ), + 5 => array( // Built-in object classes + 'Array', 'Boolean', 'Date', 'EvalError', 'Error', 'Function', 'Math', 'Number', + 'Object', 'RangeError', 'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError' + ), + 6 => array( // Global properties + 'Infinity', 'NaN', 'undefined' + ), + 7 => array( // Global methods + 'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', + 'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', + // The escape and unescape functions do not work properly for non-ASCII characters and have been deprecated. + // In JavaScript 1.5 and later, use encodeURI, decodeURI, encodeURIComponent, and decodeURIComponent. + 'escape', 'unescape' + ), + 8 => array( // Function's arguments + 'arguments' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', + '+', '-', '*', '/', '%', + '!', '.', '&', '|', '^', + '<', '>', '=', '~', + ',', ';', '?', ':' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #009999;', + 2 => 'color: #1500C8;', + 3 => 'color: #1500C8;', + 4 => 'color: #1500C8;', + 5 => 'color: #1500C8;', + 6 => 'color: #1500C8;', + 7 => 'color: #1500C8;', + 8 => 'color: #1500C8;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #CC0000;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #3366CC;', + 1 => 'color: #3366CC;', + 2 => 'color: #3366CC;', + 3 => 'color: #3366CC;', + 4 => 'color: #3366CC;', + 5 => 'color: #3366CC;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #008800;' + ), + 'STRINGS' => array( + 0 => 'color: #9900FF;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF00FF;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #FF00FF;', + GESHI_NUMBER_OCT_PREFIX => 'color: #FF00FF;', + GESHI_NUMBER_HEX_PREFIX => 'color: #FF00FF;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color: #FF00FF;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color: #FF00FF;', + GESHI_NUMBER_FLT_NONSCI_F => 'color: #FF00FF;', + GESHI_NUMBER_FLT_NONSCI => 'color: #FF00FF;' + ), + 'METHODS' => array( + 1 => 'color: #660066;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?> \ No newline at end of file diff --git a/inc/geshi/eiffel.php b/inc/geshi/eiffel.php index fa293c074..89cef7965 100644 --- a/inc/geshi/eiffel.php +++ b/inc/geshi/eiffel.php @@ -4,7 +4,7 @@ * ---------- * Author: Zoran Simic (zsimic@axarosenberg.com) * Copyright: (c) 2005 Zoran Simic - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/06/30 * * Eiffel language file for GeSHi. diff --git a/inc/geshi/email.php b/inc/geshi/email.php index a902433bf..91a104840 100644 --- a/inc/geshi/email.php +++ b/inc/geshi/email.php @@ -4,7 +4,7 @@ * --------------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/10/19 * * Email (mbox \ eml \ RFC format) language file for GeSHi. diff --git a/inc/geshi/erlang.php b/inc/geshi/erlang.php index cb7f25bf8..d98de2f37 100644 --- a/inc/geshi/erlang.php +++ b/inc/geshi/erlang.php @@ -7,7 +7,7 @@ * - Uwe Dauernheim (uwe@dauernheim.net) * - Dan Forest-Barbier (dan@twisted.in) * Copyright: (c) 2008 Uwe Dauernheim (http://www.kreisquadratur.de/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008-09-27 * * Erlang language file for GeSHi. @@ -381,7 +381,7 @@ $language_data = array( ), // Functions 3 => array( - GESHI_SEARCH => '([a-z][a-zA-Z0-9_]*|\'[a-zA-Z0-9_]*\')\s*(\()', + GESHI_SEARCH => '([a-z]\w*|\'\w*\')(\s*\()', GESHI_REPLACE => '\1', GESHI_MODIFIERS => '', GESHI_BEFORE => '', @@ -397,7 +397,7 @@ $language_data = array( ), // Variables - With hack to avoid interfering wish GeSHi internals 5 => array( - GESHI_SEARCH => '([([{,<+*-\/=\s!]|<)(?!(?:PIPE|SEMI|DOT|NUM|REG3XP\d*)[^a-zA-Z0-9_])([A-Z_][a-zA-Z0-9_]*)', + GESHI_SEARCH => '([([{,<+*-\/=\s!]|<)(?!(?:PIPE|SEMI|DOT|NUM|REG3XP\d*)\W)([A-Z_]\w*)(?!\w)', GESHI_REPLACE => '\2', GESHI_MODIFIERS => '', GESHI_BEFORE => '\1', diff --git a/inc/geshi/fo.php b/inc/geshi/fo.php index aa4567961..3a1d24021 100644 --- a/inc/geshi/fo.php +++ b/inc/geshi/fo.php @@ -4,7 +4,7 @@ * -------- * Author: Tan-Vinh Nguyen (tvnguyen@web.de) * Copyright: (c) 2009 Tan-Vinh Nguyen - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/03/23 * * fo language file for GeSHi. diff --git a/inc/geshi/fortran.php b/inc/geshi/fortran.php index 7b390eda7..6eac52ae0 100644 --- a/inc/geshi/fortran.php +++ b/inc/geshi/fortran.php @@ -4,7 +4,7 @@ * ----------- * Author: Cedric Arrabie (cedric.arrabie@univ-pau.fr) * Copyright: (C) 2006 Cetric Arrabie - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/04/22 * * Fortran language file for GeSHi. diff --git a/inc/geshi/freebasic.php b/inc/geshi/freebasic.php index faeee92f9..35fc8ca6f 100644 --- a/inc/geshi/freebasic.php +++ b/inc/geshi/freebasic.php @@ -4,7 +4,7 @@ * ------------- * Author: Roberto Rossi * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/08/19 * * FreeBasic (http://www.freebasic.net/) language file for GeSHi. diff --git a/inc/geshi/fsharp.php b/inc/geshi/fsharp.php index 7743d3643..56146958c 100644 --- a/inc/geshi/fsharp.php +++ b/inc/geshi/fsharp.php @@ -4,7 +4,7 @@ * ---------- * Author: julien ortin (jo_spam-divers@yahoo.fr) * Copyright: (c) 2009 julien ortin - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/09/20 * * F# language file for GeSHi. diff --git a/inc/geshi/gambas.php b/inc/geshi/gambas.php index a848440df..0fc89bb59 100644 --- a/inc/geshi/gambas.php +++ b/inc/geshi/gambas.php @@ -5,7 +5,7 @@ * Author: Jesus Guardon (jguardon@telefonica.net) * Copyright: (c) 2009 Jesus Guardon (http://gambas-es.org), * Benny Baumann (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/20 * * GAMBAS language file for GeSHi. diff --git a/inc/geshi/gdb.php b/inc/geshi/gdb.php index 10a35cd38..ed7ee2ffa 100644 --- a/inc/geshi/gdb.php +++ b/inc/geshi/gdb.php @@ -4,7 +4,7 @@ * -------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2009 Milian Wolff - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/06/24 * * GDB language file for GeSHi. diff --git a/inc/geshi/genero.php b/inc/geshi/genero.php index 0b5611627..a7ccf5fee 100644 --- a/inc/geshi/genero.php +++ b/inc/geshi/genero.php @@ -4,7 +4,7 @@ * ---------- * Author: Lars Gersmann (lars.gersmann@gmail.com) * Copyright: (c) 2007 Lars Gersmann, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/07/01 * * Genero (FOURJ's Genero 4GL) language file for GeSHi. diff --git a/inc/geshi/genie.php b/inc/geshi/genie.php new file mode 100644 index 000000000..66bea6dc7 --- /dev/null +++ b/inc/geshi/genie.php @@ -0,0 +1,157 @@ + 'Genie', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Using and Namespace directives (basic support) + //Please note that the alias syntax for using is not supported + 3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'HARDQUOTE' => array('@"', '"'), + 'HARDESCAPE' => array('""'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'and', 'as', 'abstract', 'break', 'case', 'cast', 'catch', 'const', + 'construct', 'continue', 'default', 'def', 'delete', 'div', + 'dynamic', 'do', 'downto', 'else', 'ensures', 'except', 'extern', + 'false', 'final', 'finally', 'for', 'foreach', 'get', 'if', 'in', + 'init', 'inline', 'internal', 'implements', 'lock', 'not', 'null', + 'of', 'or', 'otherwise', 'out', 'override', 'pass', 'raise', + 'raises', 'readonly', 'ref', 'requires', 'self', 'set', 'static', + 'super', 'switch', 'to', 'true', 'try', 'unless', 'uses', 'var', 'virtual', + 'volatile', 'void', 'when', 'while' + ), +// 2 => array( +// ), + 3 => array( + 'is', 'isa', 'new', 'owned', 'sizeof', 'typeof', 'unchecked', + 'unowned', 'weak' + ), + 4 => array( + 'bool', 'byte', 'class', 'char', 'date', 'datetime', 'decimal', 'delegate', + 'double', 'enum', 'event', 'exception', 'float', 'int', 'interface', + 'long', 'object', 'prop', 'sbyte', 'short', 'single', 'string', + 'struct', 'ulong', 'ushort' + ), +// 5 => array( +// ), + ), + 'SYMBOLS' => array( + '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';', + '(', ')', '{', '}', '[', ']', '|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, +// 2 => false, + 3 => false, + 4 => false, +// 5 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0600FF;', +// 2 => 'color: #FF8000; font-weight: bold;', + 3 => 'color: #008000;', + 4 => 'color: #FF0000;', +// 5 => 'color: #000000;' + ), + 'COMMENTS' => array( + 1 => 'color: #008080; font-style: italic;', +// 2 => 'color: #008080;', + 3 => 'color: #008080;', + 'MULTI' => 'color: #008080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #008080; font-weight: bold;', + 'HARD' => 'color: #008080; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #666666;', + 'HARD' => 'color: #666666;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF0000;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF;', + 2 => 'color: #0000FF;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', +// 2 => '', + 3 => '', + 4 => '', +// 5 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])" + ) + ) +); + +?> diff --git a/inc/geshi/gettext.php b/inc/geshi/gettext.php index 10201bd1a..e1c88e185 100644 --- a/inc/geshi/gettext.php +++ b/inc/geshi/gettext.php @@ -4,7 +4,7 @@ * -------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/05/25 * * GNU Gettext .po/.pot language file for GeSHi. diff --git a/inc/geshi/glsl.php b/inc/geshi/glsl.php index 8f521bfc1..f9a37ed07 100644 --- a/inc/geshi/glsl.php +++ b/inc/geshi/glsl.php @@ -4,7 +4,7 @@ * ----- * Author: Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2008 Benny Baumann (BenBE@omorphia.de) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/03/20 * * glSlang language file for GeSHi. diff --git a/inc/geshi/gml.php b/inc/geshi/gml.php index ec7cb5512..3f8a06c4f 100644 --- a/inc/geshi/gml.php +++ b/inc/geshi/gml.php @@ -4,7 +4,7 @@ * -------- * Author: Jos� Jorge Enr�quez (jenriquez@users.sourceforge.net) * Copyright: (c) 2005 Jos� Jorge Enr�quez Rodr�guez (http://www.zonamakers.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/06/21 * * GML language file for GeSHi. diff --git a/inc/geshi/gnuplot.php b/inc/geshi/gnuplot.php index b4762156c..980561d35 100644 --- a/inc/geshi/gnuplot.php +++ b/inc/geshi/gnuplot.php @@ -4,7 +4,7 @@ * ---------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff (http://milianw.de) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/07/07 * * Gnuplot script language file for GeSHi. diff --git a/inc/geshi/groovy.php b/inc/geshi/groovy.php index 0270d0135..f2a2e9ab5 100644 --- a/inc/geshi/groovy.php +++ b/inc/geshi/groovy.php @@ -4,7 +4,7 @@ * ---------- * Author: Ivan F. Villanueva B. (geshi_groovy@artificialidea.com) * Copyright: (c) 2006 Ivan F. Villanueva B.(http://www.artificialidea.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/04/29 * * Groovy language file for GeSHi. diff --git a/inc/geshi/gwbasic.php b/inc/geshi/gwbasic.php new file mode 100644 index 000000000..7b2385de7 --- /dev/null +++ b/inc/geshi/gwbasic.php @@ -0,0 +1,153 @@ + 'GwBasic', + 'COMMENT_SINGLE' => array(1 => "'", 2=> "REM"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* Statements */ + 1 => array('END','FOR','NEXT','DATA','INPUT','DIM','READ','LET', + 'GOTO','RUN','IF','RESTORE','GOSUB','RETURN','REM', + 'STOP','PRINT','CLEAR','LIST','NEW','ON','WAIT','DEF', + 'POKE','CONT','OUT','LPRINT','LLIST','WIDTH','ELSE', + 'TRON','TROFF','SWAP','ERASE','EDIT','ERROR','RESUME', + 'DELETE','AUTO','RENUM','DEFSTR','DEFINT','DEFSNG', + 'DEFDBL','LINE','WHILE','WEND','CALL','WRITE','OPTION', + 'RANDOMIZE','OPEN','CLOSE','LOAD','MERGE','SAVE', + 'COLOR','CLS','MOTOR','BSAVE','BLOAD','SOUND','BEEP', + 'PSET','PRESET','SCREEN','KEY','LOCATE','TO','THEN', + 'STEP','USR','FN','SPC','NOT','ERL','ERR','STRING', + 'USING','INSTR','VARPTR','CSRLIN','POINT','OFF', + 'FILES','FIELD','SYSTEM','NAME','LSET','RSET','KILL', + 'PUT','GET','RESET','COMMON','CHAIN','PAINT','COM', + 'CIRCLE','DRAW','PLAY','TIMER','IOCTL','CHDIR','MKDIR', + 'RMDIR','SHELL','VIEW','WINDOW','PMAP','PALETTE','LCOPY', + 'CALLS','PCOPY','LOCK','UNLOCK','RANDOM','APPEND', + ), + 2 => array( + /* Functions */ + 'CVI','CVS','CVD','MKI','MKS','MKD','ENVIRON', + 'LEFT','RIGHT','MID','SGN','INT','ABS', + 'SQR','SIN','LOG','EXP','COS','TAN','ATN', + 'FRE','INP','POS','LEN','STR','VAL','ASC', + 'CHR','PEEK','SPACE','OCT','HEX','LPOS', + 'CINT','CSNG','CDBL','FIX','PEN','STICK', + 'STRIG','EOF','LOC','LOF' + ), + 3 => array( + /* alpha Operators */ + 'AND','OR','XOR','EQV','IMP','MOD' + ), + 4 => array( + /* parameterless functions */ + 'INKEY','DATE','TIME','ERDEV','RND' + ) + ), + 'SYMBOLS' => array( + 0 => array( + '>','=','<','+','-','*','/','^','\\' + ), + 1 => array( + '?' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00a1a1;font-weight: bold', + 2 => 'color: #000066;font-weight: bold', + 3 => 'color: #00a166;font-weight: bold', + 4 => 'color: #0066a1;font-weight: bold' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;', + 2 => 'color: #808080;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + /* Same as KEYWORDS[3] (and, or, not...) */ + 0 => 'color: #00a166;font-weight: bold', + 1 => 'color: #00a1a1;font-weight: bold', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + 1 => 'color: #708090' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 1 => '^[0-9]+ ' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/haskell.php b/inc/geshi/haskell.php index 024382deb..4997a26c3 100644 --- a/inc/geshi/haskell.php +++ b/inc/geshi/haskell.php @@ -4,7 +4,7 @@ * ---------- * Author: Jason Dagit (dagit@codersbase.com) based on ocaml.php by Flaie (fireflaie@gmail.com) * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/08/27 * * Haskell language file for GeSHi. @@ -41,7 +41,10 @@ $language_data = array ( 'LANG_NAME' => 'Haskell', 'COMMENT_SINGLE' => array( 1 => '--'), 'COMMENT_MULTI' => array('{-' => '-}'), - 'COMMENT_REGEXP' => array(2 => "/-->/"), + 'COMMENT_REGEXP' => array( + 2 => "/-->/", + 3 => "/{-(?:(?R)|.)-}/s", //Nested Comments + ), 'CASE_KEYWORDS' => 0, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => "\\", @@ -146,7 +149,8 @@ $language_data = array ( 'COMMENTS' => array( 1 => 'color: #5d478b; font-style: italic;', 2 => 'color: #339933; font-weight: bold;', - 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purpHle */ + 3 => 'color: #5d478b; font-style: italic;', /* light purple */ + 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */ ), 'ESCAPE_CHAR' => array( 0 => 'background-color: #3cb371; font-weight: bold;' @@ -195,4 +199,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/hicest.php b/inc/geshi/hicest.php new file mode 100644 index 000000000..6cb61f87c --- /dev/null +++ b/inc/geshi/hicest.php @@ -0,0 +1,108 @@ + 'HicEst', + 'COMMENT_SINGLE' => array(1 => '!'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', '\''), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + '$cmd_line', 'abs', 'acos', 'alarm', 'alias', 'allocate', 'appendix', 'asin', 'atan', 'axis', 'beep', + 'call', 'ceiling', 'char', 'character', 'com', 'continue', 'cos', 'cosh', 'data', 'diffeq', 'dimension', 'dlg', 'dll', + 'do', 'edit', 'else', 'elseif', 'end', 'enddo', 'endif', 'exp', 'floor', 'function', 'fuz', 'goto', 'iand', 'ichar', + 'ieor', 'if', 'index', 'init', 'int', 'intpol', 'ior', 'key', 'len', 'len_trim', 'line', 'lock', 'log', 'max', 'maxloc', + 'min', 'minloc', 'mod', 'nint', 'not', 'open', 'pop', 'ran', 'read', 'real', 'return', 'rgb', 'roots', 'sign', 'sin', + 'sinh', 'solve', 'sort', 'subroutine', 'sum', 'system', 'tan', 'tanh', 'then', 'time', 'use', 'window', 'write', 'xeq' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '(', ')', '+', '-', '*', '/', '=', '<', '>', '!', '^', ':', ',' + ), + 2 => array( + '$', '$$' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #ff0000;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;', + 2 => 'color: #ff0000;' + ), + 'REGEXPS' => array(), + 'SCRIPT' => array() + ), + 'URLS' => array(1 => ''), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +?> \ No newline at end of file diff --git a/inc/geshi/hq9plus.php b/inc/geshi/hq9plus.php index 89af3bee8..50a0f80c6 100644 --- a/inc/geshi/hq9plus.php +++ b/inc/geshi/hq9plus.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * HQ9+ language file for GeSHi. diff --git a/inc/geshi/html4strict.php b/inc/geshi/html4strict.php index 08c7f30c7..301513e4e 100644 --- a/inc/geshi/html4strict.php +++ b/inc/geshi/html4strict.php @@ -4,7 +4,7 @@ * --------------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * HTML 4.01 strict language file for GeSHi. diff --git a/inc/geshi/icon.php b/inc/geshi/icon.php new file mode 100644 index 000000000..0712c21c3 --- /dev/null +++ b/inc/geshi/icon.php @@ -0,0 +1,212 @@ + 'Icon', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', '\''), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'break', 'case', 'continue', 'create', 'default', 'do', 'else', + 'end', 'every', 'fail', 'for', 'if', 'import', 'initial', + 'initially', 'invocable', 'link', 'next', 'not', 'of', 'package', + 'procedure', 'record', 'repeat', 'return', 'switch', 'suspend', + 'then', 'to', 'until', 'while' + ), + 2 => array( + 'global', 'local', 'static' + ), + 3 => array( + 'allocated', 'ascii', 'clock', 'collections', + 'column', 'cset', 'current', 'date', 'dateline', 'digits', + 'dump', 'e', 'error', 'errornumber', 'errortext', + 'errorvalue', 'errout', 'eventcode', 'eventsource', 'eventvalue', + 'fail', 'features', 'file', 'host', 'input', 'lcase', + 'letters', 'level', 'line', 'main', 'now', 'null', + 'output', 'phi', 'pi', 'pos', 'progname', 'random', + 'regions', 'source', 'storage', 'subject', 'syserr', 'time', + 'trace', 'ucase', 'version', 'col', 'control', 'interval', + 'ldrag', 'lpress', 'lrelease', 'mdrag', 'meta', 'mpress', + 'mrelease', 'rdrag', 'resize', 'row', 'rpress', 'rrelease', + 'shift', 'window', 'x', 'y' + ), + 4 => array( + 'abs', 'acos', 'any', 'args', 'asin', 'atan', 'bal', 'center', 'char', + 'chmod', 'close', 'cofail', 'collect', 'copy', 'cos', 'cset', 'ctime', 'delay', 'delete', + 'detab', 'display', 'dtor', 'entab', 'errorclear', 'event', 'eventmask', 'EvGet', 'exit', + 'exp', 'fetch', 'fieldnames', 'find', 'flock', 'flush', 'function', 'get', 'getch', + 'getche', 'getenv', 'gettimeofday', 'globalnames', 'gtime', 'iand', 'icom', 'image', + 'insert', 'integer', 'ior', 'ishift', 'ixor', 'key', 'left', 'list', 'load', 'loadfunc', + 'localnames', 'log', 'many', 'map', 'match', 'member', 'mkdir', 'move', 'name', 'numeric', + 'open', 'opmask', 'ord', 'paramnames', 'parent', 'pipe', 'pop', 'pos', 'proc', 'pull', + 'push', 'put', 'read', 'reads', 'real', 'receive', 'remove', 'rename', 'repl', 'reverse', + 'right', 'rmdir', 'rtod', 'runerr', 'seek', 'select', 'send', 'seq', 'serial', 'set', + 'setenv', 'sort', 'sortf', 'sql', 'sqrt', 'stat', 'stop', 'string', 'system', 'tab', + 'table', 'tan', 'trap', 'trim', 'truncate', 'type', 'upto', 'utime', 'variable', 'where', + 'write', 'writes' + ), + 5 => array( + 'Active', 'Alert', 'Bg', 'Clip', 'Clone', 'Color', 'ColorValue', + 'CopyArea', 'Couple', 'DrawArc', 'DrawCircle', 'DrawCurve', 'DrawCylinder', 'DrawDisk', + 'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon', 'DrawRectangle', 'DrawSegment', + 'DrawSphere', 'DrawString', 'DrawTorus', 'EraseArea', 'Event', 'Fg', 'FillArc', + 'FillCircle', 'FillPolygon', 'FillRectangle', 'Font', 'FreeColor', 'GotoRC', 'GotoXY', + 'IdentifyMatrix', 'Lower', 'MatrixMode', 'NewColor', 'PaletteChars', 'PaletteColor', + 'PaletteKey', 'Pattern', 'Pending', 'Pixel', 'PopMatrix', 'PushMatrix', 'PushRotate', + 'PushScale', 'PushTranslate', 'QueryPointer', 'Raise', 'ReadImage', 'Refresh', 'Rotate', + 'Scale', 'Texcoord', 'TextWidth', 'Texture', 'Translate', 'Uncouple', 'WAttrib', + 'WDefault', 'WFlush', 'WindowContents', 'WriteImage', 'WSync' + ), + 6 => array( + 'define', 'include', 'ifdef', 'ifndef', 'else', 'endif', 'error', + 'line', 'undef' + ), + 7 => array( + '_V9', '_AMIGA', '_ACORN', '_CMS', '_MACINTOSH', '_MSDOS_386', + '_MS_WINDOWS_NT', '_MSDOS', '_MVS', '_OS2', '_POR', 'T', '_UNIX', '_POSIX', '_DBM', + '_VMS', '_ASCII', '_EBCDIC', '_CO_EXPRESSIONS', '_CONSOLE_WINDOW', '_DYNAMIC_LOADING', + '_EVENT_MONITOR', '_EXTERNAL_FUNCTIONS', '_KEYBOARD_FUNCTIONS', '_LARGE_INTEGERS', + '_MULTITASKING', '_PIPES', '_RECORD_IO', '_SYSTEM_FUNCTION', '_MESSAGING', '_GRAPHICS', + '_X_WINDOW_SYSTEM', '_MS_WINDOWS', '_WIN32', '_PRESENTATION_MGR', '_ARM_FUNCTIONS', + '_DOS_FUNCTIONS' + ), + 8 => array( + 'line' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '\\', '%', '=', '<', '>', '!', '^', + '&', '|', '?', ':', ';', ',', '.', '~', '@' + ), + 2 => array( + '$(', '$)', '$<', '$>', '$' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #b1b100;', + 3 => 'color: #b1b100;', + 4 => 'color: #b1b100;', + 5 => 'color: #b1b100;', + 6 => 'color: #b1b100;', + 7 => 'color: #b1b100;', + 8 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;', + 2 => 'color: #b1b100;' + ), + 'REGEXPS' => array(), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array(1 => '.'), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_BEFORE' => '(?<=&)' + ), + 4 => array( + 'DISALLOWED_BEFORE' => "(? "(?![a-zA-Z0-9_\"\'])" + ), + 6 => array( + 'DISALLOWED_BEFORE' => '(?<=\$)' + ), + 8 => array( + 'DISALLOWED_BEFORE' => '(?<=#)' + ) + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/idl.php b/inc/geshi/idl.php index 64472140a..d2d9a92fa 100644 --- a/inc/geshi/idl.php +++ b/inc/geshi/idl.php @@ -4,7 +4,7 @@ * ------- * Author: Cedric Bosdonnat (cedricbosdo@openoffice.org) * Copyright: (c) 2006 Cedric Bosdonnat - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/08/20 * * Unoidl language file for GeSHi. diff --git a/inc/geshi/ini.php b/inc/geshi/ini.php index ae0e81ec4..e48cc045c 100644 --- a/inc/geshi/ini.php +++ b/inc/geshi/ini.php @@ -4,7 +4,7 @@ * -------- * Author: deguix (cevo_deguix@yahoo.com.br) * Copyright: (c) 2005 deguix - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/03/27 * * INI language file for GeSHi. diff --git a/inc/geshi/inno.php b/inc/geshi/inno.php index 6d1b97965..9ec8cdfd9 100644 --- a/inc/geshi/inno.php +++ b/inc/geshi/inno.php @@ -4,7 +4,7 @@ * ---------- * Author: Thomas Klingler (hotline@theratech.de) based on delphi.php from J�rja Norbert (jnorbi@vipmail.hu) * Copyright: (c) 2004 J�rja Norbert, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/07/29 * * Inno Script language inkl. Delphi (Object Pascal) language file for GeSHi. diff --git a/inc/geshi/intercal.php b/inc/geshi/intercal.php index 958f886ce..cd800a8eb 100644 --- a/inc/geshi/intercal.php +++ b/inc/geshi/intercal.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * INTERCAL language file for GeSHi. diff --git a/inc/geshi/io.php b/inc/geshi/io.php index eb4d8646e..94c278f03 100644 --- a/inc/geshi/io.php +++ b/inc/geshi/io.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2006 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/09/23 * * Io language file for GeSHi. Thanks to Johnathan Wright for the suggestion and help diff --git a/inc/geshi/j.php b/inc/geshi/j.php new file mode 100644 index 000000000..61154c7ef --- /dev/null +++ b/inc/geshi/j.php @@ -0,0 +1,227 @@ + 'J', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 1 => '/(? '/(?<=\bNote\b).*?$\s+\)(?:(?!\n)\s)*$/sm', //multiline comments in Note + 3 => "/'[^']*?$/m" //incomplete strings/open quotes + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("'"), + 'HARDCHAR' => "'", + 'NUMBERS' => array( + //Some instances of infinity are not correctly handled by GeSHi NUMBERS currently + //There are two solutions labelled "infinity Method A" and "infinity Method B" + //infinity Method B - requires following adjustment to line 3349 of geshi.php + // preg_match('#\d#' becomes preg_match('#[\d_]#' + 0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?)(?![\w\.\:])', //infinity Method A + //0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?|__?)(?![\w\.\:])', //infinity Method B + ), + 'KEYWORDS' => array( + //Control words + 1 => array( + 'assert.', 'break.', 'case.', 'catch.', 'catcht.', 'continue.', 'do.', + 'else.', 'elseif.', 'end.', 'fcase.', 'for.', 'goto.', 'if.', 'label.', + 'return.', 'select.', 'throw.', 'trap.', 'try.', 'while.', 'whilst.' + ), + //Arguments + 2 => array( + 'm', 'n', 'u', 'v', 'x', 'y' + ), +/* +Commented out for now due to conflicts with Lang Check + //Primitives beginning with a symbol (except . or :) + 6 => array( + '=', '<', '<.', '<:', //verbs + '_:','>', '>.', '>:', + '+', '+.', '+:', '*', '*.', '*:', '-', '-.', '-:', '%', '%.', '%:', + '^', '^.', '$', '$.', '$:', '~.', '~:', '\|', '|.', '|:', + ',', ',.', ',:', ';', ';:', '#', '#.', '#:', '!', '/:', '\:', + '[', '[:', ']', '{', '{.', '{:', '{::', '}.', '}:', + '".', '":', '?', '?.', + '~', '\/;', '\\', '/.', '\\.', '}', //adverbs + '^:', ';.', '!.', '!:', //conj + '"', '`', '`:', '@', '@.', '@:', + '&', '&.', '&:', '&.:', + '_.', //nouns + '=.', '=:', //other + ), + //Primitives beginning with a letter or number + 7 => array( + 'A.', 'c.', 'C.', 'e.', 'E.', //verbs + 'i.', 'i:', 'I.', 'j.', 'L.', 'o.', + 'p.', 'p..', 'p:', 'q:', 'r.', 's:', 'u:', 'x:', + '_9:', '_8:', '_7:', '_6:', '_5:', '_4:', '_3:', '_2:', '_1:', + '0:', '1:', '2:', '3:', '4:', '5:', '6:', '7:', '8:', '9:', + 'b.', 'f.', 'M.', 't.', 't:', //adverbs + 'd.', 'D.', 'D:', 'H.', 'L:', 'S:', 'T.', //conj + 'a.', 'a:', //nouns + ), + //Primitives beginning with symbol . or : + 8 => array( + '..', '.:', '.', ':.', '::', ':', //conj + ), +*/ + ), + 'SYMBOLS' => array( + //Punctuation + 0 => array( + '(', ')' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, +// 6 => true, +// 7 => true, +// 8 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000ff; font-weight: bold;', + 2 => 'color: #0000cc; font-weight: bold;', +// 6 => 'color: #000000; font-weight: bold;', +// 7 => 'color: #000000; font-weight: bold;', +// 8 => 'color: #000000; font-weight: bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #666666; font-style: italic; font-weight: bold;', + 3 => 'color: #ff00ff; ', //open quote + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 'HARD' => 'font-weight: bold;', + 0 => '', + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 'HARD' => 'color: #ff0000;', + 0 => 'color: #ff0000;', + ), + 'NUMBERS' => array( + 0 => 'color: #009999; font-weight: bold;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #009900; font-weight: bold;' + ), + 'REGEXPS' => array( + 0 => 'color: #0000ff; font-weight: bold;', //for_xyz. - same as kw1 + 1 => 'color: #009999; font-weight: bold;' //infinity - same as nu0 + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', //'http://www.jsoftware.com/help/dictionary/ctrl.htm', + 2 => '', +// 6 => '', //'http://www.jsoftware.com/jwiki/Vocabulary', +// 7 => '', //'http://www.jsoftware.com/jwiki/Vocabulary', +// 8 => '', //'http://www.jsoftware.com/jwiki/Vocabulary', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + 0 => '\b(for|goto|label)_[a-zA-Z]\w*\.', //for_xyz. - should be kw1 + 1 => '\b__?(?![\w\.\:])' //infinity - should be nu0 + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + ), + 'KEYWORDS' => array( + //Control words + 2 => array( + 'DISALLOWED_BEFORE' => '(? '(?![\w\.\:])', + ), + //Primtives starting with a symbol (except . or :) + 6 => array( + 'DISALLOWED_BEFORE' => '(?!K)', // effect should be to allow anything + 'DISALLOWED_AFTER' => '(?=.*)', + ), + //Primtives starting with a letter + 7 => array( + 'DISALLOWED_BEFORE' => '(? '(?=.*)', + ), + //Primtives starting with symbol . or : + 8 => array( + 'DISALLOWED_BEFORE' => '(?<=\s)', + 'DISALLOWED_AFTER' => '(?=.*)', + ), + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/java.php b/inc/geshi/java.php index b4080f7ac..3269dffe2 100644 --- a/inc/geshi/java.php +++ b/inc/geshi/java.php @@ -4,7 +4,7 @@ * -------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * Java language file for GeSHi. diff --git a/inc/geshi/java5.php b/inc/geshi/java5.php index 4abffc663..bc9af739a 100644 --- a/inc/geshi/java5.php +++ b/inc/geshi/java5.php @@ -4,7 +4,7 @@ * -------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * Java language file for GeSHi. @@ -56,7 +56,7 @@ $language_data = array ( 'COMMENT_MULTI' => array('/*' => '*/'), 'COMMENT_REGEXP' => array( //Import and Package directives (Basic Support only) - 2 => '/(?:(?<=import[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i', + 2 => '/(?:(?<=import[\\n\\s](?!static))|(?<=import[\\n\\s]static[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i', // javadoc comments 3 => '#/\*\*(?![\*\/]).*\*/#sU' ), @@ -1025,6 +1025,12 @@ $language_data = array ( 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(?|^&"\'])', + 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-;"\'])' + ) ) ); diff --git a/inc/geshi/javascript.php b/inc/geshi/javascript.php index 96c345477..429cdd653 100644 --- a/inc/geshi/javascript.php +++ b/inc/geshi/javascript.php @@ -4,7 +4,7 @@ * -------------- * Author: Ben Keen (ben.keen@gmail.com) * Copyright: (c) 2004 Ben Keen (ben.keen@gmail.com), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/20 * * JavaScript language file for GeSHi. diff --git a/inc/geshi/jquery.php b/inc/geshi/jquery.php index b4264cb1c..54e653ed1 100644 --- a/inc/geshi/jquery.php +++ b/inc/geshi/jquery.php @@ -4,7 +4,7 @@ * -------------- * Author: Rob Loach (http://www.robloach.net) * Copyright: (c) 2009 Rob Loach (http://www.robloach.net) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/07/20 * * jQuery 1.3 language file for GeSHi. diff --git a/inc/geshi/kixtart.php b/inc/geshi/kixtart.php index 3d37f8ce6..62cb54652 100644 --- a/inc/geshi/kixtart.php +++ b/inc/geshi/kixtart.php @@ -4,7 +4,7 @@ * -------- * Author: Riley McArdle (riley@glyff.net) * Copyright: (c) 2007 Riley McArdle (http://www.glyff.net/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/08/31 * * PHP language file for GeSHi. diff --git a/inc/geshi/klonec.php b/inc/geshi/klonec.php index 24f32dbc3..e47e597ef 100644 --- a/inc/geshi/klonec.php +++ b/inc/geshi/klonec.php @@ -4,7 +4,7 @@ * -------- * Author: AUGER Mickael * Copyright: Synchronic - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/04/16 * * KLone with C language file for GeSHi. diff --git a/inc/geshi/klonecpp.php b/inc/geshi/klonecpp.php index ad2844c6d..1a2d2082b 100644 --- a/inc/geshi/klonecpp.php +++ b/inc/geshi/klonecpp.php @@ -4,7 +4,7 @@ * -------- * Author: AUGER Mickael * Copyright: Synchronic - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/04/16 * * KLone with C++ language file for GeSHi. diff --git a/inc/geshi/latex.php b/inc/geshi/latex.php index ae7f0b3c5..1ba3d409e 100644 --- a/inc/geshi/latex.php +++ b/inc/geshi/latex.php @@ -4,7 +4,7 @@ * ----- * Author: efi, Matthias Pospiech (matthias@pospiech.eu) * Copyright: (c) 2006 efi, Matthias Pospiech (matthias@pospiech.eu), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/09/23 * * LaTeX language file for GeSHi. @@ -147,7 +147,7 @@ $language_data = array ( ), // [options] 2 => array( - GESHI_SEARCH => "(?<=\[).+(?=\])", + GESHI_SEARCH => "(?<=\[).*(?=\])", GESHI_REPLACE => '\0', GESHI_MODIFIERS => 'Us', GESHI_BEFORE => '', diff --git a/inc/geshi/lisp.php b/inc/geshi/lisp.php index 3ca20fdc5..a8f50691e 100644 --- a/inc/geshi/lisp.php +++ b/inc/geshi/lisp.php @@ -4,7 +4,7 @@ * -------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * Generic Lisp language file for GeSHi. @@ -73,7 +73,7 @@ $language_data = array ( 'rem','min','max','abs','sin','cos','tan','expt','exp','sqrt', 'random','logand','logior','logxor','lognot','bignums','logeqv', 'lognand','lognor','logorc2','logtest','logbitp','logcount', - 'integer','nil','parse-integer' + 'integer','nil','parse-integer','make-list','print','write' ) ), 'SYMBOLS' => array( @@ -141,4 +141,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/locobasic.php b/inc/geshi/locobasic.php index e0cceea3d..a3e22a7be 100644 --- a/inc/geshi/locobasic.php +++ b/inc/geshi/locobasic.php @@ -4,7 +4,7 @@ * ------------- * Author: Nacho Cabanes * Copyright: (c) 2009 Nacho Cabanes (http://www.nachocabanes.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/03/22 * * Locomotive Basic (Amstrad CPC series) language file for GeSHi. diff --git a/inc/geshi/logtalk.php b/inc/geshi/logtalk.php index 3321e0de4..fb77bd6d3 100644 --- a/inc/geshi/logtalk.php +++ b/inc/geshi/logtalk.php @@ -5,7 +5,7 @@ * * Author: Paulo Moura (pmoura@logtalk.org) * Copyright: (c) 2009 Paulo Moura (http://logtalk.org/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/10/24 * * Logtalk language file for GeSHi. diff --git a/inc/geshi/lolcode.php b/inc/geshi/lolcode.php index 26e486d3a..a804913cc 100644 --- a/inc/geshi/lolcode.php +++ b/inc/geshi/lolcode.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * LOLcode language file for GeSHi. diff --git a/inc/geshi/lotusformulas.php b/inc/geshi/lotusformulas.php index 67fd4fa0a..862adbc82 100644 --- a/inc/geshi/lotusformulas.php +++ b/inc/geshi/lotusformulas.php @@ -4,7 +4,7 @@ * ------------------------ * Author: Richard Civil (info@richardcivil.net) * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/04/12 * * @Formula/@Command language file for GeSHi. diff --git a/inc/geshi/lotusscript.php b/inc/geshi/lotusscript.php index 5c1d61f92..1ef2f3eee 100644 --- a/inc/geshi/lotusscript.php +++ b/inc/geshi/lotusscript.php @@ -4,7 +4,7 @@ * ------------------------ * Author: Richard Civil (info@richardcivil.net) * Copyright: (c) 2008 Richard Civil (info@richardcivil.net), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/04/12 * * LotusScript language file for GeSHi. diff --git a/inc/geshi/lscript.php b/inc/geshi/lscript.php index 33cd0163d..b7e313212 100644 --- a/inc/geshi/lscript.php +++ b/inc/geshi/lscript.php @@ -4,7 +4,7 @@ * --------- * Author: Arendedwinter (admin@arendedwinter.com) * Copyright: (c) 2008 Beau McGuigan (http://www.arendedwinter.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 15/11/2008 * * Lightwave Script language file for GeSHi. diff --git a/inc/geshi/lsl2.php b/inc/geshi/lsl2.php index 8b62fc219..e5f40969b 100644 --- a/inc/geshi/lsl2.php +++ b/inc/geshi/lsl2.php @@ -4,7 +4,7 @@ * -------- * Author: William Fry (william.fry@nyu.edu) * Copyright: (c) 2009 William Fry - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/02/04 * * Linden Scripting Language (LSL2) language file for GeSHi. diff --git a/inc/geshi/lua.php b/inc/geshi/lua.php index 2a630b2c8..abeaa54ea 100644 --- a/inc/geshi/lua.php +++ b/inc/geshi/lua.php @@ -4,7 +4,7 @@ * ------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * LUA language file for GeSHi. diff --git a/inc/geshi/m68k.php b/inc/geshi/m68k.php index 9aae868af..543b73c8b 100644 --- a/inc/geshi/m68k.php +++ b/inc/geshi/m68k.php @@ -4,7 +4,7 @@ * -------- * Author: Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2007 Benny Baumann (http://www.omorphia.de/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/02/06 * * Motorola 68000 Assembler language file for GeSHi. diff --git a/inc/geshi/magiksf.php b/inc/geshi/magiksf.php new file mode 100644 index 000000000..f3da7fcf2 --- /dev/null +++ b/inc/geshi/magiksf.php @@ -0,0 +1,193 @@ + null, + 'LANG_NAME' => 'MagikSF', + 'COMMENT_SINGLE' => array(1 => '##', 2 => '#%', 3 => '#'), + 'COMMENT_MULTI' => array("_pragma(" => ")"), + //Multiline-continued single-line comments + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + '_block', '_endblock', '_proc', '_endproc', '_loop', '_endloop', + '_method', '_endmethod', + '_protect', '_endprotect', '_protection', '_locking', + '_continue', + ), + 2 => array( + '_self', '_thisthread', '_pragma', '_private', '_abstract', + '_local', '_global', '_dynamic', '_package', '_constant', + '_import', '_iter', '_lock', '_optional', '_recursive', '_super' + ), + 3 => array( + '_if', '_endif', '_then', '_else', '_elif', '_orif', '_andif', '_for', '_over', + '_try', '_endtry', '_when', '_throw', '_catch', '_endcatch', '_handling', + '_finally', '_loopbody', '_return', '_leave', '_with' + ), + 4 => array( + '_false', '_true', '_maybe', '_unset', '_no_way' + ), + 5 => array( + '_mod', '_div', '_or', '_and', '_cf', '_is', '_isnt', '_not', '_gather', '_scatter', + '_allresults', '_clone', '_xor' + ), + 6 => array( + 'def_slotted_exemplar', 'write_string', 'write', 'condition', + 'record_transaction', 'gis_program_manager', 'perform', 'define_shared_constant', + 'property_list', 'rope', 'def_property', 'def_mixin' + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + '+', '-', '*', '/', '**', + '=', '<', '>', '<<', '>>', + ',', '$', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #ff3f3f;', + 3 => 'color: #3f7f3f; font-weight: bold;', + 4 => 'color: #cc66cc;', + 5 => 'color: #ff3fff; font-weight: bold;', + 6 => 'font-weight: bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #339933; font-weight: bold;', + 2 => 'color: #993333;', + 3 => 'color: #339933;', + 'MULTI' => 'color: #7f7f7f; font-style: italic', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #ff3f3f;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #ff3f3f;' + ), + 'REGEXPS' => array( + 1 => 'color: #3f3fff;', + 2 => 'color: #3f3fff;', + 3 => 'color: #cc66cc;', + 4 => 'color: #7f3f7f; font-style: italic;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + 1 => array( + GESHI_SEARCH => '\b[a-zA-Z0-9_]+:', // package identifiers + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( + GESHI_SEARCH => ':(?:[a-zA-Z0-9!?_]+|(?:[].*?[]))*', //symbols + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 3 => array( + GESHI_SEARCH => '%space|%tab|%newline|%.', //characters + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 4 => array( + GESHI_SEARCH => '@(?:[a-zA-Z0-9!?_]+|(?:[].*?[]))*', //symbols + GESHI_REPLACE => '\\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?> \ No newline at end of file diff --git a/inc/geshi/make.php b/inc/geshi/make.php index 021265548..689552312 100644 --- a/inc/geshi/make.php +++ b/inc/geshi/make.php @@ -4,7 +4,7 @@ * -------- * Author: Neil Bird * Copyright: (c) 2008 Neil Bird - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/08/26 * * make language file for GeSHi. diff --git a/inc/geshi/mapbasic.php b/inc/geshi/mapbasic.php index 74be1f673..0025d4e22 100644 --- a/inc/geshi/mapbasic.php +++ b/inc/geshi/mapbasic.php @@ -4,7 +4,7 @@ * ------ * Author: Tomasz Berus (t.berus@gisodkuchni.pl) * Copyright: (c) 2009 Tomasz Berus (http://sourceforge.net/projects/mbsyntax/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/11/25 * * MapBasic language file for GeSHi. diff --git a/inc/geshi/matlab.php b/inc/geshi/matlab.php index f3ad34968..1f9c12b78 100644 --- a/inc/geshi/matlab.php +++ b/inc/geshi/matlab.php @@ -4,7 +4,7 @@ * ----------- * Author: Florian Knorn (floz@gmx.de) * Copyright: (c) 2004 Florian Knorn (http://www.florian-knorn.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/02/09 * * Matlab M-file language file for GeSHi. @@ -215,7 +215,7 @@ $language_data = array ( ), 'REGEXPS' => array( //Complex numbers - 0 => '(? '(?html)' ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( @@ -224,4 +224,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/mirc.php b/inc/geshi/mirc.php index a27c6c265..1b7df83aa 100644 --- a/inc/geshi/mirc.php +++ b/inc/geshi/mirc.php @@ -4,7 +4,7 @@ * ----- * Author: Alberto 'Birckin' de Areba (Birckin@hotmail.com) * Copyright: (c) 2006 Alberto de Areba - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/05/29 * * mIRC Scripting language file for GeSHi. diff --git a/inc/geshi/mmix.php b/inc/geshi/mmix.php index efdb932f1..3e90dce29 100644 --- a/inc/geshi/mmix.php +++ b/inc/geshi/mmix.php @@ -4,7 +4,7 @@ * ------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/10/16 * * MMIX Assembler language file for GeSHi. diff --git a/inc/geshi/modula2.php b/inc/geshi/modula2.php new file mode 100644 index 000000000..042e7404a --- /dev/null +++ b/inc/geshi/modula2.php @@ -0,0 +1,136 @@ + 'Modula-2', + 'COMMENT_MULTI' => array('(*' => '*)'), + 'COMMENT_SINGLE' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("''"), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( /* reserved words */ + 'AND', 'ARRAY', 'BEGIN', 'BY', 'CASE', 'CONST', 'DEFINITION', + 'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EXIT', 'EXPORT', 'FOR', + 'FROM', 'IF', 'IMPLEMENTATION', 'IMPORT', 'IN', 'LOOP', 'MOD', + 'MODULE', 'NOT', 'OF', 'OR', 'POINTER', 'PROCEDURE', 'QUALIFIED', + 'RECORD', 'REPEAT', 'RETURN', 'SET', 'THEN', 'TO', 'TYPE', + 'UNTIL', 'VAR', 'WHILE', 'WITH' + ), + 2 => array( /* pervasive constants */ + 'NIL', 'FALSE', 'TRUE', + ), + 3 => array( /* pervasive types */ + 'BITSET', 'CAP', 'CHR', 'DEC', 'DISPOSE', 'EXCL', 'FLOAT', + 'HALT', 'HIGH', 'INC', 'INCL', 'MAX', 'MIN', 'NEW', 'ODD', 'ORD', + 'SIZE', 'TRUNC', 'VAL' + ), + 4 => array( /* pervasive functions and macros */ + 'ABS', 'BOOLEAN', 'CARDINAL', 'CHAR', 'INTEGER', + 'LONGCARD', 'LONGINT', 'LONGREAL', 'PROC', 'REAL' + ), + ), + 'SYMBOLS' => array( + ',', ':', '=', '+', '-', '*', '/', '#', '~' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #000066; font-weight: bold;' + ), + 'COMMENTS' => array( + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + 'HARD' => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #0066ee;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?> \ No newline at end of file diff --git a/inc/geshi/modula3.php b/inc/geshi/modula3.php index caff92788..ad827a3e6 100644 --- a/inc/geshi/modula3.php +++ b/inc/geshi/modula3.php @@ -4,7 +4,7 @@ * ---------- * Author: mbishop (mbishop@esoteriq.org) * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/01/21 * * Modula-3 language file for GeSHi. diff --git a/inc/geshi/mpasm.php b/inc/geshi/mpasm.php index d97f0b17f..59247ff69 100644 --- a/inc/geshi/mpasm.php +++ b/inc/geshi/mpasm.php @@ -4,7 +4,7 @@ * --------- * Author: Bakalex (bakalex@gmail.com) * Copyright: (c) 2004 Bakalex, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/12/6 * * Microchip Assembler language file for GeSHi. diff --git a/inc/geshi/mxml.php b/inc/geshi/mxml.php index a2073d3ab..df4c9d50e 100644 --- a/inc/geshi/mxml.php +++ b/inc/geshi/mxml.php @@ -4,7 +4,7 @@ * ------- * Author: David Spurr * Copyright: (c) 2007 David Spurr (http://www.defusion.org.uk/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/10/04 * * MXML language file for GeSHi. Based on the XML file by Nigel McNie diff --git a/inc/geshi/mysql.php b/inc/geshi/mysql.php index 3bc6f9504..ca171733f 100644 --- a/inc/geshi/mysql.php +++ b/inc/geshi/mysql.php @@ -4,7 +4,7 @@ * --------- * Author: Marjolein Katsma (marjolein.is.back@gmail.com) * Copyright: (c) 2008 Marjolein Katsma (http://blog.marjoleinkatsma.com/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008-12-12 * * MySQL language file for GeSHi. diff --git a/inc/geshi/newlisp.php b/inc/geshi/newlisp.php index ee2589a07..027e86588 100644 --- a/inc/geshi/newlisp.php +++ b/inc/geshi/newlisp.php @@ -4,7 +4,7 @@ * ---------- * Author: cormullion (cormullion@mac.com) Sept 2009 * Copyright: (c) 2009 Cormullion (http://unbalanced-parentheses.nfshost.com/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/09/30 * * newLISP language file for GeSHi. diff --git a/inc/geshi/nsis.php b/inc/geshi/nsis.php index d5f631101..5631a8389 100644 --- a/inc/geshi/nsis.php +++ b/inc/geshi/nsis.php @@ -4,7 +4,7 @@ * -------- * Author: deguix (cevo_deguix@yahoo.com.br), Tux (http://tux.a4.cz/) * Copyright: (c) 2005 deguix, 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/12/03 * * Nullsoft Scriptable Install System language file for GeSHi. diff --git a/inc/geshi/oberon2.php b/inc/geshi/oberon2.php index 35152b55f..8339f3fb8 100644 --- a/inc/geshi/oberon2.php +++ b/inc/geshi/oberon2.php @@ -4,7 +4,7 @@ * ---------- * Author: mbishop (mbishop@esoteriq.org) * Copyright: (c) 2009 mbishop (mbishop@esoteriq.org) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/02/10 * * Oberon-2 language file for GeSHi. diff --git a/inc/geshi/objc.php b/inc/geshi/objc.php index 084be7124..5a5c5940f 100644 --- a/inc/geshi/objc.php +++ b/inc/geshi/objc.php @@ -5,7 +5,7 @@ * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net) * Contributors: Quinn Taylor (quinntaylor@mac.com) * Copyright: (c) 2008 Quinn Taylor, 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * Objective-C language file for GeSHi. diff --git a/inc/geshi/ocaml-brief.php b/inc/geshi/ocaml-brief.php index d9e3124f0..2e2a82fb2 100644 --- a/inc/geshi/ocaml-brief.php +++ b/inc/geshi/ocaml-brief.php @@ -4,7 +4,7 @@ * ---------- * Author: Flaie (fireflaie@gmail.com) * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/08/27 * * OCaml (Objective Caml) language file for GeSHi. diff --git a/inc/geshi/ocaml.php b/inc/geshi/ocaml.php index a14d2dec1..46e6a22aa 100644 --- a/inc/geshi/ocaml.php +++ b/inc/geshi/ocaml.php @@ -4,7 +4,7 @@ * ---------- * Author: Flaie (fireflaie@gmail.com) * Copyright: (c) 2005 Flaie, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/08/27 * * OCaml (Objective Caml) language file for GeSHi. @@ -43,6 +43,7 @@ $language_data = array ( 'LANG_NAME' => 'OCaml', 'COMMENT_SINGLE' => array(), 'COMMENT_MULTI' => array('(*' => '*)'), + 'COMMENT_REGEXP' => array(1 => '/\(\*(?:(?R)|.)+?\*\)/s'), 'CASE_KEYWORDS' => 0, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => "", @@ -58,13 +59,17 @@ $language_data = array ( ), /* define names of main librarys, so we can link to it */ 2 => array( - 'Arg', 'Arith_status', 'Array', 'ArrayLabels', 'Big_int', 'Bigarray', 'Buffer', 'Callback', - 'CamlinternalOO', 'Char', 'Complex', 'Condition', 'Dbm', 'Digest', 'Dynlink', 'Event', - 'Filename', 'Format', 'Gc', 'Genlex', 'Graphics', 'GraphicsX11', 'Hashtbl', 'Int32', 'Int64', - 'Lazy', 'Lexing', 'List', 'ListLabels', 'Map', 'Marshal', 'MoreLabels', 'Mutex', 'Nativeint', - 'Num', 'Obj', 'Oo', 'Parsing', 'Pervasives', 'Printexc', 'Printf', 'Queue', 'Random', 'Scanf', - 'Set', 'Sort', 'Stack', 'StdLabels', 'Str', 'Stream', 'String', 'StringLabels', 'Sys', 'Thread', - 'ThreadUnix', 'Tk' + 'Arg', 'Arith_status', 'Array', //'Array1', 'Array2', 'Array3', + 'ArrayLabels', 'Big_int', 'Bigarray', 'Buffer', 'Callback', + 'CamlinternalLazy', 'CamlinternalMod', 'CamlinternalOO', 'Char', + 'Complex', 'Condition', 'Dbm', 'Digest', 'Dynlink', 'Event', + 'Filename', 'Format', 'Gc', 'Genlex', 'Graphics', 'GraphicsX11', + 'Hashtbl', 'Int32', 'Int64', 'Lazy', 'Lexing', 'List', 'ListLabels', + 'Map', 'Marshal', 'MoreLabels', 'Mutex', 'Nativeint', 'Num', 'Obj', + 'Oo', 'Parsing', 'Pervasives', 'Printexc', 'Printf', 'Queue', + 'Random', 'Scanf', 'Set', 'Sort', 'Stack', 'StdLabels', 'Str', + 'Stream', 'String', 'StringLabels', 'Sys', 'Thread', 'ThreadUnix', + 'Tk', 'Unix', 'UnixLabels', 'Weak' ), /* just link to the Pervasives functions library, cause it's the default opened library when starting OCaml */ 3 => array( @@ -93,7 +98,9 @@ $language_data = array ( ), /* here Pervasives Types */ 4 => array ( - 'fpclass', 'in_channel', 'out_channel', 'open_flag', 'Sys_error', 'format' + 'array','bool','char','exn','file_descr','format','fpclass', + 'in_channel','int','int32','int64','list','nativeint','open_flag', + 'out_channel','string','Sys_error','unit' ), /* finally Pervasives Exceptions */ 5 => array ( @@ -102,8 +109,9 @@ $language_data = array ( ), /* highlighting symbols is really important in OCaml */ 'SYMBOLS' => array( + '+.', '-.', '*.', '/.', '[<', '>]', ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+', - '>', '<', '(', ')', '[', ']', '&', '|', '#', "'" + '>', '<', '(', ')', '[', ']', '&', '|', '#', "'", ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, @@ -122,12 +130,13 @@ $language_data = array ( 5 => 'color: #06c; font-weight: bold;' /* nice blue */ ), 'COMMENTS' => array( - 'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */ + 'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */ + 1 => 'color: #5d478b; font-style: italic;' /* light purple */ ), 'ESCAPE_CHAR' => array( ), 'BRACKETS' => array( - 0 => 'color: #6c6;' + 0 => 'color: #a52a2a;' ), 'STRINGS' => array( 0 => 'color: #3cb371;' /* nice green */ @@ -139,6 +148,8 @@ $language_data = array ( 1 => 'color: #060;' /* dark green */ ), 'REGEXPS' => array( + 1 => 'font-weight:bold; color:#339933;', + 2 => 'font-weight:bold; color:#993399;' ), 'SYMBOLS' => array( 0 => 'color: #a52a2a;' /* maroon */ @@ -158,11 +169,13 @@ $language_data = array ( /* link to Pervasives exceptions */ 5 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#EXCEPTION{FNAME}' ), - 'OOLANG' => true, + 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( 1 => '.' ), 'REGEXPS' => array( + 1 => '~\w+', + 2 => '`(?=(?-i:[a-z]))\w*', ), 'STRICT_MODE_APPLIES' => GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( @@ -171,4 +184,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/oobas.php b/inc/geshi/oobas.php index b3a5a0b6d..6f6e13fc2 100644 --- a/inc/geshi/oobas.php +++ b/inc/geshi/oobas.php @@ -4,7 +4,7 @@ * --------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * OpenOffice.org Basic language file for GeSHi. diff --git a/inc/geshi/oracle11.php b/inc/geshi/oracle11.php index 08c25b66d..f57c3f044 100644 --- a/inc/geshi/oracle11.php +++ b/inc/geshi/oracle11.php @@ -6,7 +6,7 @@ * Contributions: * - Updated for 11i by Simon Redhead * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * Oracle 11i language file for GeSHi. diff --git a/inc/geshi/oracle8.php b/inc/geshi/oracle8.php index 5ac18786d..e470e0dd4 100644 --- a/inc/geshi/oracle8.php +++ b/inc/geshi/oracle8.php @@ -4,7 +4,7 @@ * ----------- * Author: Guy Wicks (Guy.Wicks@rbs.co.uk) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * Oracle 8 language file for GeSHi. diff --git a/inc/geshi/oxygene.php b/inc/geshi/oxygene.php new file mode 100644 index 000000000..3af03bfc2 --- /dev/null +++ b/inc/geshi/oxygene.php @@ -0,0 +1,152 @@ + 'Oxygene (Delphi Prism)', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'), + //Compiler directives + 'COMMENT_REGEXP' => array(2 => '/{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'), + 'CASE_KEYWORDS' => 0, + 'QUOTEMARKS' => array("'"), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'and', 'begin', 'case', 'const', 'div', 'do', 'downto', 'else', + 'end', 'for', 'function', 'if', 'in', 'mod', 'not', 'of', 'or', + 'procedure', 'repeat', 'record', 'set', 'shl', 'shr', 'then', 'to', + 'type', 'until', 'uses', 'var','while', 'with', 'xor', 'exit', 'break', + 'class', 'constructor', 'inherited', 'private', 'public', 'protected', + 'property', 'As', 'Is', 'Unit', 'Continue', 'Try', 'Except', 'Forward', + 'Interface','Implementation', 'nil', 'out', 'loop', 'namespace', 'true', + 'false', 'new', 'ensure', 'require', 'on', 'event', 'delegate', 'method', + 'raise', 'assembly', 'module', 'using','locking', 'old', 'invariants', 'operator', + 'self', 'async', 'finalizer', 'where', 'yield', 'nullable', 'Future', + 'From', 'Finally', 'dynamic' + ), + 2 => array( + 'override', 'virtual', 'External', 'read', 'add', 'remove','final', 'abstract', + 'empty', 'global', 'locked', 'sealed', 'reintroduce', 'implements', 'each', + 'default', 'partial', 'finalize', 'enum', 'flags', 'result', 'readonly', 'unsafe', + 'pinned', 'matching', 'static', 'has', 'step', 'iterator', 'inline', 'nested', + 'Implies', 'Select', 'Order', 'By', 'Desc', 'Asc', 'Group', 'Join', 'Take', + 'Skip', 'Concat', 'Union', 'Reverse', 'Distinct', 'Into', 'Equals', 'params', + 'sequence', 'index', 'notify', 'Parallel', 'create', 'array', 'Queryable', 'Aspect', + 'volatile' + ), + 3 => array( + 'chr', 'ord', 'inc', 'dec', 'assert', 'iff', 'assigned','futureAssigned', 'length', 'low', 'high', 'typeOf', 'sizeOf', 'disposeAndNil', 'Coalesce', 'unquote' + ), + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, +// 4 => false, + ), + 'SYMBOLS' => array( + 0 => array('(', ')', '[', ']'), + 1 => array('.', ',', ':', ';'), + 2 => array('@', '^'), + 3 => array('=', '+', '-', '*', '/') + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', +// 4 => 'color: #000066; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #008000; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #ff0000; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000066;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000ff;' + ), + 'METHODS' => array( + 1 => 'color: #000000;' + ), + 'REGEXPS' => array( + 0 => 'color: #9ac;', + 1 => 'color: #ff0000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000066;', + 1 => 'color: #000066;', + 2 => 'color: #000066;', + 3 => 'color: #000066;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', +// 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + //Hex numbers + 0 => '\$[0-9a-fA-F]+', + //Characters + 1 => '\#\$?[0-9]{1,3}' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 2 +); + +?> \ No newline at end of file diff --git a/inc/geshi/oz.php b/inc/geshi/oz.php new file mode 100644 index 000000000..cd594d4ca --- /dev/null +++ b/inc/geshi/oz.php @@ -0,0 +1,144 @@ + 'OZ', + 'COMMENT_SINGLE' => array(1 => '%'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"','\''), + 'ESCAPE_CHAR' => '\\', + 'NUMBERS' => array(), + 'KEYWORDS' => array( + 1 => array( + 'declare','local','in','end','proc','fun','functor','require','prepare', + 'import','export','define','at','case','then','else','of','elseof', + 'elsecase','if','elseif','class','from','prop','attr','feat','meth', + 'self','true','false','unit','div','mod','andthen','orelse','cond','or', + 'dis','choice','not','thread','try','catch','finally','raise','lock', + 'skip','fail','for','do' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true + ), + 'SYMBOLS' => array( + '@', '!', '|', '<-', ':=', '<', '>', '=<', '>=', '<=', '#', '~', '.', + '*', '-', '+', '/', '<:', '>:', '=:', '=<:', '>=:', '\\=', '\\=:', ',', + '!!', '...', '==', '::', ':::' + ), + 'STYLES' => array( + 'REGEXPS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #00a030;', + 3 => 'color: #bc8f8f;', + 4 => 'color: #0000ff;', + 5 => 'color: #a020f0;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #bc8f8f;' + ), + 'KEYWORDS' => array( + 1 => 'color: #a020f0;' + ), + 'COMMENTS' => array( + 1 => 'color: #B22222;', + 'MULTI' => 'color: #B22222;' + ), + 'STRINGS' => array( + 0 => 'color: #bc8f8f;' + ), + 'SYMBOLS' => array( + 0 => 'color: #a020f0;' + ), + 'BRACKETS' => array(), + 'NUMBERS' => array(), + 'METHODS' => array(), + 'SCRIPT' => array() + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'URLS' => array( + 1 => '' + ), + 'REGEXPS' => array( + // function and procedure definition + 1 => array( + GESHI_SEARCH => "(proc|fun)([^{}\n\)]*)(\\{)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)", + GESHI_REPLACE => '\4', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1\2\3', + GESHI_AFTER => '' + ), + // class definition + 2 => array( + GESHI_SEARCH => "(class)([^A-Z\$]*)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)", + GESHI_REPLACE => '\3\4', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1\2', + GESHI_AFTER => '' + ), + // single character + 3 => array( + GESHI_SEARCH => "&.", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + // method definition + 4 => array( + GESHI_SEARCH => "(meth)([^a-zA-Z]+)([a-zA-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9]*)", + GESHI_REPLACE => '\3', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\1\2', + GESHI_AFTER => '' + ), + // highlight "[]" + // ([] is actually a keyword, but that causes problems in validation; putting it into symbols doesn't work.) + 5 => array( + GESHI_SEARCH => "\[\]", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/pascal.php b/inc/geshi/pascal.php index 948c00ce4..7ee5729a6 100644 --- a/inc/geshi/pascal.php +++ b/inc/geshi/pascal.php @@ -4,7 +4,7 @@ * ---------- * Author: Tux (tux@inamil.cz) * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/07/26 * * Pascal language file for GeSHi. diff --git a/inc/geshi/pcre.php b/inc/geshi/pcre.php new file mode 100644 index 000000000..a67cf2858 --- /dev/null +++ b/inc/geshi/pcre.php @@ -0,0 +1,188 @@ + 'PCRE', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array( + ), + 'COMMENT_REGEXP' => array( + // Non-matching groups + 1 => "/(?<=\()\?(?::|(?=\())/", + + // Modifier groups + 2 => "/(?<=\()\?[cdegimopsuxUX\-]+(?::|(?=\)))/", + + // Look-Aheads + 3 => "/(?<=\()\?[!=]/", + + // Look-Behinds + 4 => "/(?<=\()\?<[!=]/", + + // Forward Matching + 5 => "/(?<=\()\?>/", + + // Recursive Matching + 6 => "/(?<=\()\?R(?=\))/", + + // Named Subpattern + 7 => "/(?<=\()\?(?:P?<\w+>|\d+(?=\))|P[=>]\w+(?=\)))/", + + // Back Reference + 8 => "/\\\\(?:[1-9]\d?|g\d+|g\{(?:-?\d+|\w+)\}|k<\w+>|k'\w+'|k\{\w+\})/", + + // Byte sequence: Octal + 9 => "/\\\\[0-7]{2,3}/", + + // Byte sequence: Hex + 10 => "/\\\\x[0-9a-fA-F]{2}/", + + // Byte sequence: Hex + 11 => "/\\\\u[0-9a-fA-F]{4}/", + + // Byte sequence: Hex + 12 => "/\\\\U[0-9a-fA-F]{8}/", + + // Byte sequence: Unicode + 13 => "/\\\\[pP]\{[^}\n]+\}/", + + // One-Char Escapes + 14 => "/\\\\[abdefnrstvwzABCDGSWXZ\\\\\\.\[\]\(\)\{\}\^\\\$\?\+\*]/", + + // Byte sequence: Control-X sequence + 15 => "/\\\\c./", + + // Quantifier + 16 => "/\{(?:\d+,?|\d*,\d+)\}/", + + // Comment Subpattern + 17 => "/(?<=\()\?#[^\)]*/", + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + ), + 'SYMBOLS' => array( + 0 => array('.'), + 1 => array('(', ')'), + 2 => array('[', ']', '|'), + 3 => array('^', '$'), + 4 => array('?', '+', '*'), + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + ), + 'COMMENTS' => array( + 1 => 'color: #993333; font-weight: bold;', + 2 => 'color: #cc3300; font-weight: bold;', + 3 => 'color: #cc0066; font-weight: bold;', + 4 => 'color: #cc0066; font-weight: bold;', + 5 => 'color: #cc6600; font-weight: bold;', + 6 => 'color: #cc00cc; font-weight: bold;', + 7 => 'color: #cc9900; font-weight: bold; font-style: italic;', + 8 => 'color: #cc9900; font-style: italic;', + 9 => 'color: #669933; font-style: italic;', + 10 => 'color: #339933; font-style: italic;', + 11 => 'color: #339966; font-style: italic;', + 12 => 'color: #339999; font-style: italic;', + 13 => 'color: #663399; font-style: italic;', + 14 => 'color: #999933; font-style: italic;', + 15 => 'color: #993399; font-style: italic;', + 16 => 'color: #333399; font-style: italic;', + 17 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #333399; font-weight: bold;', + 1 => 'color: #993333; font-weight: bold;', + 2 => 'color: #339933; font-weight: bold;', + 3 => 'color: #333399; font-weight: bold;', + 4 => 'color: #333399; font-style: italic;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + 'NUMBERS' => GESHI_NEVER + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/per.php b/inc/geshi/per.php index 06cf2e41b..b656c105e 100644 --- a/inc/geshi/per.php +++ b/inc/geshi/per.php @@ -4,7 +4,7 @@ * -------- * Author: Lars Gersmann (lars.gersmann@gmail.com) * Copyright: (c) 2007 Lars Gersmann - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/06/03 * * Per (forms) (FOURJ's Genero 4GL) language file for GeSHi. diff --git a/inc/geshi/perl.php b/inc/geshi/perl.php index 57b8971e8..5d1c4320b 100644 --- a/inc/geshi/perl.php +++ b/inc/geshi/perl.php @@ -4,7 +4,7 @@ * -------- * Author: Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com) * Copyright: (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/20 * * Perl language file for GeSHi. diff --git a/inc/geshi/perl6.php b/inc/geshi/perl6.php index 1c04098c0..9ea20fc78 100644 --- a/inc/geshi/perl6.php +++ b/inc/geshi/perl6.php @@ -4,7 +4,7 @@ * --------- * Author: Kodi Arfer (kodiarfer {at} warpmail {period} net); forked from perl.php 1.0.8 by Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com) * Copyright: (c) 2009 Kodi Arfer, (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/11/07 * * Perl 6 language file for GeSHi. diff --git a/inc/geshi/pf.php b/inc/geshi/pf.php new file mode 100644 index 000000000..d59a609d5 --- /dev/null +++ b/inc/geshi/pf.php @@ -0,0 +1,178 @@ + 'OpenBSD Packet Filter', + 'COMMENT_SINGLE' => array('#'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 1 => "/\\$\\{[^\\n\\}]*?\\}/i", + 2 => '/<<-?\s*?(\'?)([a-zA-Z0-9]+)\1\\n.*\\n\\2(?![a-zA-Z0-9])/siU', + 3 => "/\\\\['\"]/siU" + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("\'"), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + 1 => "#\\\\[nfrtv\\$\\\"\n]#i", + 2 => "#\\$[a-z_][a-z0-9_]*#i", + 3 => "/\\$\\{[^\\n\\}]*?\\}/i", + 4 => "/\\$\\([^\\n\\)]*?\\)/i", + 5 => "/`[^`]*`/" + ), + 'KEYWORDS' => array( + 1 => array( + 'pass' + ), + 2 => array( + 'block' + ), + 3 => array( + 'quick','keep','state','antispoof','table','persist','file','scrub', + 'set','skip','flags','on' + ), + 4 => array( + 'in','out','proto' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`','=' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #009900; font-weight: bold;', + 2 => 'color: #990000; font-weight: bold;', + 3 => 'color: #7a0874;', + 4 => 'color: #336699;' + ), + 'COMMENTS' => array( + 0 => 'color: #666666; font-style: italic;', + 1 => 'color: #800000;', + 2 => 'color: #cc0000; font-style: italic;', + 3 => 'color: #000000; font-weight: bold;' + ), + 'ESCAPE_CHAR' => array( + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #007800;', + 3 => 'color: #007800;', + 4 => 'color: #007800;', + 5 => 'color: #780078;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #7a0874; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'color: #CC0000;', + 'HARD' => 'color: #CC0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff00cc;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000000; font-weight: bold;' + ), + 'REGEXPS' => array( + 0 => 'color: #007800;', + 1 => 'color: #007800;', + 2 => 'color: #007800;', + 4 => 'color: #007800;', + 5 => 'color: #660033;', + 6 => 'color: #000099; font-weight: bold;', + 7 => 'color: #0000ff;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Variables (will be handled by comment_regexps) + 0 => "\\$\\{[a-zA-Z_][a-zA-Z0-9_]*?\\}", + //Variables without braces + 1 => "\\$[a-zA-Z_][a-zA-Z0-9_]*", + //Variable assignment + 2 => "(? "\\$[*#\$\\-\\?!]", + //Parameters of commands + 5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|$)", + //IPs + 6 => "([0-9]{1,3}\.){3}[0-9]{1,3}", + //Tables + 7 => "(<(.*)>)" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'COMMENTS' => array( + 'DISALLOWED_BEFORE' => '$' + ), + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(? "(?![\.\-a-zA-Z0-9_%\\/])" + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/php-brief.php b/inc/geshi/php-brief.php index ceaf423af..c28d985f4 100644 --- a/inc/geshi/php-brief.php +++ b/inc/geshi/php-brief.php @@ -4,7 +4,7 @@ * ------------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/02 * * PHP (brief version) language file for GeSHi. diff --git a/inc/geshi/php.php b/inc/geshi/php.php index 9b0bc822d..ec6981134 100644 --- a/inc/geshi/php.php +++ b/inc/geshi/php.php @@ -4,7 +4,7 @@ * -------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/20 * * PHP language file for GeSHi. diff --git a/inc/geshi/pic16.php b/inc/geshi/pic16.php index 88d4a6745..626a768b0 100644 --- a/inc/geshi/pic16.php +++ b/inc/geshi/pic16.php @@ -4,7 +4,7 @@ * ------- * Author: Phil Mattison (mattison@ohmikron.com) * Copyright: (c) 2008 Ohmikron Corp. (http://www.ohmikron.com/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/07/30 * * PIC16 Assembler language file for GeSHi. diff --git a/inc/geshi/pike.php b/inc/geshi/pike.php index e67975fe2..2b860ccd6 100644 --- a/inc/geshi/pike.php +++ b/inc/geshi/pike.php @@ -4,7 +4,7 @@ * -------- * Author: Rick E. (codeblock@eighthbit.net) * Copyright: (c) 2009 Rick E. - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/12/10 * * Pike language file for GeSHi. diff --git a/inc/geshi/pixelbender.php b/inc/geshi/pixelbender.php index d19754f3e..82c64ae52 100644 --- a/inc/geshi/pixelbender.php +++ b/inc/geshi/pixelbender.php @@ -4,7 +4,7 @@ * ---------------- * Author: Richard Olsson (r@richardolsson.se) * Copyright: (c) 2008 Richard Olsson (richardolsson.se) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/11/16 * * Pixel Bender 1.0 language file for GeSHi. diff --git a/inc/geshi/plsql.php b/inc/geshi/plsql.php index 0779ca04f..e0145362c 100644 --- a/inc/geshi/plsql.php +++ b/inc/geshi/plsql.php @@ -4,7 +4,7 @@ * ------- * Author: Victor Engmark * Copyright: (c) 2006 Victor Engmark (http://l0b0.net/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/10/26 * * Oracle 9.2 PL/SQL language file for GeSHi. diff --git a/inc/geshi/postgresql.php b/inc/geshi/postgresql.php new file mode 100644 index 000000000..7f89fe2a4 --- /dev/null +++ b/inc/geshi/postgresql.php @@ -0,0 +1,288 @@ + 2010-05-03 + * Copyright: (c) 2007 Christophe Chauvet (http://kryskool.org/), Nigel McNie (http://qbnz.com/highlighter) + * Release Version: 1.0.8.8 + * Date Started: 2007/07/20 + * + * PostgreSQL language file for GeSHi. + * + * CHANGES + * ------- + * 2007/07/20 (1.0.0) + * - First Release + * + * TODO (updated 2007/07/20) + * ------------------------- + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'PostgreSQL', + 'COMMENT_SINGLE' => array(1 => '--'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"', '`'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + //Put PostgreSQL reserved keywords here. I like mine uppercase. + 1 => array( + 'ABORT','ABSOLUTE','ACCESS','ACTION','ADD','ADMIN','AFTER', + 'AGGREGATE','ALL','ALSO','ALTER','ALWAYS','ANALYSE','ANALYZE','AND', + 'ANY','AS','ASC,','ASSERTION','ASSIGNMENT','ASYMMETRIC','AT', + 'AUTHORIZATION','BACKWARD','BEFORE','BEGIN','BETWEEN','BOTH','BY', + 'CACHE','CALLED','CASCADE','CASCADED','CASE','CAST','CATALOG', + 'CHAIN','CHARACTERISTICS','CHECK','CHECKPOINT','CLASS','CLOSE', + 'CLUSTER','COALESCE','COLLATE','COLUMN','COMMENT','COMMIT', + 'COMMITTED','CONCURRENTLY','CONFIGURATION','CONNECTION', + 'CONSTRAINT','CONSTRAINTS','CONTENT','CONTINUE','CONVERSION','COPY', + 'COST','CREATE','CREATEDB','CREATEROLE','CREATEUSER','CROSS','CSV', + 'CURRENT','CURRENT_CATALOG','CURRENT_DATE','CURRENT_ROLE', + 'CURRENT_SCHEMA','CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER', + 'CURSOR','CYCLE','DATA','DATABASE','DAY','DEALLOCATE','DEC', + 'DECLARE','DEFAULT','DEFAULTS','DEFERRABLE','DEFERRED','DEFINER', + 'DELETE','DELIMITER','DELIMITERS','DESC','DICTIONARY','DISABLE', + 'DISCARD','DISTINCT','DO','DOCUMENT','DOMAIN','DOUBLE','DROP', + 'EACH','ELSE','ENABLE','ENCODING','ENCRYPTED','END','ESCAPE', + 'EXCEPT','EXCLUDING','EXCLUSIVE','EXECUTE','EXISTS','EXPLAIN', + 'EXTERNAL','EXTRACT','FALSE','FAMILY','FETCH','FIRST','FOLLOWING', + 'FOR','FORCE','FOREIGN','FORWARD','FREEZE','FROM','FULL','FUNCTION', + 'GLOBAL','GRANT','GRANTED','GREATEST','GROUP','HANDLER','HAVING', + 'HEADER','HOLD','HOUR','IDENTITY','IF','ILIKE','IMMEDIATE', + 'IMMUTABLE','IMPLICIT','IN','INCLUDING','INCREMENT','INDEX', + 'INDEXES','INHERIT','INHERITS','INITIALLY','INNER','INOUT','INPUT', + 'INSENSITIVE','INSERT','INSTEAD','INTERSECT','INTO','INVOKER','IS', + 'ISNULL','ISOLATION','JOIN','KEY','LANCOMPILER','LANGUAGE','LARGE', + 'LAST','LC_COLLATE','LC_CTYPE','LEADING','LEAST','LEFT','LEVEL', + 'LIKE','LIMIT','LISTEN','LOAD','LOCAL','LOCALTIME','LOCALTIMESTAMP', + 'LOCATION','LOCK','LOGIN','LOOP','MAPPING','MATCH','MAXVALUE', + 'MINUTE','MINVALUE','MODE','MONTH','MOVE','NAME','NAMES','NATIONAL', + 'NATURAL','NEW','NEXT','NO','NOCREATEDB','NOCREATEROLE', + 'NOCREATEUSER','NOINHERIT','NOLOGIN','NONE','NOSUPERUSER','NOT', + 'NOTHING','NOTIFY','NOTNULL','NOWAIT','NULL','NULLIF','NULLS', + 'NUMERIC','OBJECT','OF','OFF','OFFSET','OIDS','OLD','ON','ONLY', + 'OPERATOR','OPTION','OPTIONS','OR','ORDER','OUT','OUTER','OVER', + 'OVERLAPS','OVERLAY','OWNED','OWNER','PARSER','PARTIAL','PARTITION', + 'PASSWORD','PLACING','PLANS','POSITION','PRECEDING','PRECISION', + 'PREPARE','PREPARED','PRESERVE','PRIMARY','PRIOR','PRIVILEGES', + 'PROCEDURAL','PROCEDURE','QUOTE','RANGE','READ','REASSIGN', + 'RECHECK','RECURSIVE','REFERENCES','REINDEX','RELATIVE','RELEASE', + 'RENAME','REPEATABLE','REPLACE','REPLICA','RESET','RESTART', + 'RESTRICT','RETURN','RETURNING','RETURNS','REVOKE','RIGHT','ROLE', + 'ROLLBACK','ROW','ROWS','RULE','SAVEPOINT','SCHEMA','SCROLL', + 'SEARCH','SECOND', + 'SECURITY','SELECT','SEQUENCE','SERIALIZABLE','SERVER','SESSION', + 'SESSION_USER','SET','SETOF','SHARE','SHOW','SIMILAR','SIMPLE', + 'SOME','STABLE','STANDALONE','START','STATEMENT','STATISTICS', + 'STDIN','STDOUT','STORAGE','STRICT','STRIP','SUPERUSER', + 'SYMMETRIC','SYSID','SYSTEM','TABLE','TABLESPACE','TEMP','TEMPLATE', + 'TEMPORARY','THEN','TO','TRAILING','TRANSACTION','TREAT','TRIGGER', + 'TRUE','TRUNCATE','TRUSTED','TYPE','UNBOUNDED','UNCOMMITTED', + 'UNENCRYPTED','UNION','UNIQUE','UNKNOWN','UNLISTEN','UNTIL', + 'UPDATE','USER','USING','VACUUM','VALID','VALIDATOR','VALUE', + 'VALUES','VARIADIC','VERBOSE','VERSION','VIEW','VOLATILE','WHEN', + 'WHERE','WHILE','WHITESPACE','WINDOW','WITH','WITHOUT','WORK','WRAPPER', + 'WRITE','XMLATTRIBUTES','XMLCONCAT','XMLELEMENT','XMLFOREST', + 'XMLPARSE','XMLPI','XMLROOT','XMLSERIALIZE','YEAR','YES','ZONE' + ), + + //Put functions here + 3 => array( + // mathematical functions + 'ABS','CBRT','CEIL','CEILING','DEGREES','DIV','EXP','FLOOR','LN', + 'LOG','MOD','PI','POWER','RADIANS','RANDOM','ROUND','SETSEED', + 'SIGN','SQRT','TRUNC','WIDTH_BUCKET', + // trigonometric functions + 'ACOS','ASIN','ATAN','ATAN2','COS','COT','SIN','TAN', + // string functions + 'BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH','LOWER', + 'OCTET_LENGTH','POSITION','SUBSTRING','TRIM','UPPER', + // other string functions + 'ASCII','BTRIM','CHR','CONVERT','CONVERT_FROM','CONVERT_TO', + 'DECODE','ENCODE','INITCAP','LENGTH','LPAD','LTRIM','MD5', + 'PG_CLIENT_ENCODING','QUOTE_IDENT','QUOTE_LITERAL','QUOTE_NULLABLE', + 'REGEXP_MATCHES','REGEXP_REPLACE','REGEXP_SPLIT_TO_ARRAY', + 'REGEXP_SPLIT_TO_TABLE','REPEAT','RPAD','RTRIM','SPLIT_PART', + 'STRPOS','SUBSTR','TO_ASCII','TO_HEX','TRANSLATE', + // binary string functions + 'GET_BIT','GET_BYTE','SET_BIT','SET_BYTE', + // data type formatting functions + 'TO_CHAR','TO_DATE','TO_NUMBER','TO_TIMESTAMP', + // date/time functions + 'AGE','CLOCK_TIMESTAMP','DATE_PART','DATE_TRUNC','EXTRACT', + 'ISFINITE','JUSTIFY_DAYS','JUSTIFY_HOURS','JUSTIFY_INTERVAL','NOW', + 'STATEMENT_TIMESTAMP','TIMEOFDAY','TRANSACTION_TIMESTAMP', + // enum support functions + 'ENUM_FIRST','ENUM_LAST','ENUM_RANGE', + // geometric functions + 'AREA','CENTER','DIAMETER','HEIGHT','ISCLOSED','ISOPEN','NPOINTS', + 'PCLOSE','POPEN','RADIUS','WIDTH', + 'BOX','CIRCLE','LSEG','PATH','POINT','POLYGON', + // cidr and inet functions + 'ABBREV','BROADCAST','FAMILY','HOST','HOSTMASK','MASKLEN','NETMASK', + 'NETWORK','SET_MASKLEN', + // text search functions + 'TO_TSVECTOR','SETWEIGHT','STRIP','TO_TSQUERY','PLAINTO_TSQUERY', + 'NUMNODE','QUERYTREE','TS_RANK','TS_RANK_CD','TS_HEADLINE', + 'TS_REWRITE','GET_CURRENT_TS_CONFIG','TSVECTOR_UPDATE_TRIGGER', + 'TSVECTOR_UPDATE_TRIGGER_COLUMN', + 'TS_DEBUG','TS_LEXISE','TS_PARSE','TS_TOKEN_TYPE','TS_STAT', + // XML functions + 'XMLCOMMENT','XMLCONCAT','XMLELEMENT','XMLFOREST','XMLPI','XMLROOT', + 'XMLAGG','XPATH','TABLE_TO_XMLSCHEMA','QUERY_TO_XMLSCHEMA', + 'CURSOR_TO_XMLSCHEMA','TABLE_TO_XML_AND_XMLSCHEMA', + 'QUERY_TO_XML_AND_XMLSCHEMA','SCHEMA_TO_XML','SCHEMA_TO_XMLSCHEMA', + 'SCHEMA_TO_XML_AND_XMLSCHEMA','DATABASE_TO_XML', + 'DATABASE_TO_XMLSCHEMA','DATABASE_TO_XML_AND_XMLSCHEMA', + // sequence manipulating functions + 'CURRVAL','LASTVAL','NEXTVAL','SETVAL', + // conditional expressions + 'COALESCE','NULLIF','GREATEST','LEAST', + // array functions + 'ARRAY_APPEND','ARRAY_CAT','ARRAY_NDIMS','ARRAY_DIMS','ARRAY_FILL', + 'ARRAY_LENGTH','ARRAY_LOWER','ARRAY_PREPEND','ARRAY_TO_STRING', + 'ARRAY_UPPER','STRING_TO_ARRAY','UNNEST', + // aggregate functions + 'ARRAY_AGG','AVG','BIT_AND','BIT_OR','BOOL_AND','BOOL_OR','COUNT', + 'EVERY','MAX','MIN','STRING_AGG','SUM', + // statistic aggregate functions + 'CORR','COVAR_POP','COVAR_SAMP','REGR_AVGX','REGR_AVGY', + 'REGR_COUNT','REGR_INTERCEPT','REGR_R2','REGR_SLOPE','REGR_SXX', + 'REGR_SXY','REGR_SYY','STDDEV','STDDEV_POP','STDDEV_SAMP', + 'VARIANCE','VAR_POP','VAR_SAMP', + // window functions + 'ROW_NUMBER','RANK','DENSE_RANK','PERCENT_RANK','CUME_DIST','NTILE', + 'LAG','LEAD','FIRST_VALUE','LAST_VALUE','NTH_VALUE', + // set returning functions + 'GENERATE_SERIES','GENERATE_SUBSCRIPTS' + // system information functions not currently included + ), + + //Put your postgresql var + 4 => array( + 'client_encoding', + 'standard_conforming_strings' + ), + + //Put your data types here + 5 => array( + 'ARRAY','ABSTIME','BIGINT','BIGSERIAL','BINARY','BIT','BIT VARYING', + 'BOOLEAN','BOX','BYTEA','CHAR','CHARACTER','CHARACTER VARYING', + 'CIDR','CIRCLE','DATE','DECIMAL','DOUBLE PRECISION','ENUM','FLOAT', + 'INET','INT','INTEGER','INTERVAL','NCHAR','REAL','SMALLINT','TEXT', + 'TIME','TIMESTAMP','VARCHAR','XML', + ), + + // //Put your package names here + // 6 => array( + // ), + + ), + 'SYMBOLS' => array( + '(', ')', '=', '<', '>', '|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 3 => false, + 4 => false, + 5 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + // regular keywords + 1 => 'color: #000000; font-weight: bold; text-transform: uppercase;', + // inbuilt functions + 3 => 'color: #333399; font-weight: bold; text-transform: uppercase;', + // postgresql var(?) + 4 => 'color: #993333; font-weight: bold; text-transform: uppercase;', + // data types + 5 => 'color: #993333; font-weight: bold; text-transform: uppercase;', + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #ff0000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 3 => '', + 4 => 'http://paste.postgresql.fr/wiki/desc.php?def={FNAME}', + 5 => '', + ), + + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 1 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + + 3 => array( + 'DISALLOWED_AFTER' => '(?=\()' + ), + + 4 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + + 5 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + ) + ) + +); + +?> \ No newline at end of file diff --git a/inc/geshi/povray.php b/inc/geshi/povray.php index 80bf5a478..c987a013e 100644 --- a/inc/geshi/povray.php +++ b/inc/geshi/povray.php @@ -4,7 +4,7 @@ * -------- * Author: Carl Fürstenberg (azatoth@gmail.com) * Copyright: © 2007 Carl Fürstenberg - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/07/11 * * Povray language file for GeSHi. diff --git a/inc/geshi/powerbuilder.php b/inc/geshi/powerbuilder.php index e276d85ee..ef86c242c 100644 --- a/inc/geshi/powerbuilder.php +++ b/inc/geshi/powerbuilder.php @@ -4,7 +4,7 @@ * ------ * Author: Doug Porter (powerbuilder.geshi@gmail.com) * Copyright: (c) 2009 Doug Porter - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/07/13 * * PowerBuilder (PowerScript) language file for GeSHi. diff --git a/inc/geshi/powershell.php b/inc/geshi/powershell.php index fe8a5da07..c90538809 100644 --- a/inc/geshi/powershell.php +++ b/inc/geshi/powershell.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Frode Aarebrot (frode@aarebrot.net) * Copyright: (c) 2008 Frode Aarebrot (http://www.aarebrot.net) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/06/20 * * PowerShell language file for GeSHi. @@ -49,7 +49,7 @@ $language_data = array ( 'LANG_NAME' => 'PowerShell', 'COMMENT_SINGLE' => array(1 => '#'), - 'COMMENT_MULTI' => array(), + 'COMMENT_MULTI' => array('<#' => '#>'), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), 'ESCAPE_CHAR' => '`', diff --git a/inc/geshi/progress.php b/inc/geshi/progress.php index 3824e7b0b..90c3bf0fa 100644 --- a/inc/geshi/progress.php +++ b/inc/geshi/progress.php @@ -4,7 +4,7 @@ * -------- * Author: Marco Aurelio de Pasqual (marcop@hdi.com.br) * Copyright: (c) 2008 Marco Aurelio de Pasqual, Benny Baumann (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/07/11 * * Progress language file for GeSHi. diff --git a/inc/geshi/prolog.php b/inc/geshi/prolog.php index 1f35a1b82..4dd01ff7e 100644 --- a/inc/geshi/prolog.php +++ b/inc/geshi/prolog.php @@ -4,7 +4,7 @@ * -------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/10/02 * * Prolog language file for GeSHi. @@ -130,7 +130,7 @@ $language_data = array ( ), 'REGEXPS' => array( //Variables - 0 => "(? "(? GESHI_NEVER, 'SCRIPT_DELIMITERS' => array( @@ -140,4 +140,4 @@ $language_data = array ( 'TAB_WIDTH' => 4 ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/properties.php b/inc/geshi/properties.php index 231dd6e8b..9fc8b8da4 100644 --- a/inc/geshi/properties.php +++ b/inc/geshi/properties.php @@ -4,7 +4,7 @@ * -------- * Author: Edy Hinzen * Copyright: (c) 2009 Edy Hinzen - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/04/03 * * Property language file for GeSHi. diff --git a/inc/geshi/providex.php b/inc/geshi/providex.php index aaa02e797..0352ac2a1 100644 --- a/inc/geshi/providex.php +++ b/inc/geshi/providex.php @@ -4,7 +4,7 @@ * ---------- * Author: Jeff Wilder (jeff@coastallogix.com) * Copyright: (c) 2008 Coastal Logix (http://www.coastallogix.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/10/18 * * ProvideX language file for GeSHi. diff --git a/inc/geshi/purebasic.php b/inc/geshi/purebasic.php index b644af3fe..b24986f57 100644 --- a/inc/geshi/purebasic.php +++ b/inc/geshi/purebasic.php @@ -4,7 +4,7 @@ * ------- * Author: GuShH * Copyright: (c) 2009 Gustavo Julio Fiorenza - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 13/06/2009 * * PureBasic language file for GeSHi. diff --git a/inc/geshi/python.php b/inc/geshi/python.php index a482d6928..1be7e2953 100644 --- a/inc/geshi/python.php +++ b/inc/geshi/python.php @@ -4,7 +4,7 @@ * ---------- * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * Python language file for GeSHi. diff --git a/inc/geshi/q.php b/inc/geshi/q.php new file mode 100644 index 000000000..9629ded4a --- /dev/null +++ b/inc/geshi/q.php @@ -0,0 +1,149 @@ +) + * ------------------------- + * - Fix the handling of single line comments + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array ( + 'LANG_NAME' => 'q/kdb+', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + 2 => '/ \s\/.*/', # This needs to get fixed up, since it won't catch some instances + # Multi line comments (Moved from REGEXPS) + 3 => '/^\/\s*?\n.*?\n\\\s*?\n/smi' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'TAB_WIDTH' => 4, + 'KEYWORDS' => array( + 1 => array( + 'abs', 'acos', 'all', 'and', 'any', 'asc', 'asin', 'asof', 'atan', 'attr', 'avg', 'avgs', 'bin', 'ceiling', + 'cols', 'cor', 'cos', 'count', 'cov', 'cross', 'cut', 'deltas', 'desc', 'dev', 'differ', 'distinct', + 'div', 'each', 'enlist', 'eval', 'except', 'exec', 'exit', 'exp', 'fills', 'first', 'flip', 'floor', + 'fkeys', 'get', 'getenv', 'group', 'gtime', 'hclose', 'hcount', 'hdel', 'hopen', 'hsym', 'iasc', 'idesc', + 'in', 'insert', 'inter', 'inv', 'joins', 'key', 'keys', 'last', 'like', 'load', 'log', 'lower', + 'lsq', 'ltime', 'ltrim', 'mavg', 'max', 'maxs', 'mcount', 'md5', 'mdev', 'med', 'meta', 'min', 'mins', + 'mmax', 'mmin', 'mmu', 'mod', 'msum', 'neg', 'next', 'not', 'null', 'or', 'over', 'parse', 'peach', + 'plist', 'prd', 'prds', 'prev', 'rand', 'rank', 'ratios', 'raze', 'read0', 'read1', 'reciprocal', + 'reverse', 'rload', 'rotate', 'rsave', 'rtrim', 'save', 'scan', 'set', 'setenv', 'show', 'signum', + 'sin', 'sqrt', 'ss', 'ssr', 'string', 'sublist', 'sum', 'sums', 'sv', 'system', 'tables', 'tan', 'til', 'trim', + 'txf', 'type', 'ungroup', 'union', 'upper', 'upsert', 'value', 'var', 'view', 'views', 'vs', + 'wavg', 'within', 'wsum', 'xasc', 'xbar', 'xcol', 'xcols', 'xdesc', 'xexp', 'xgroup', 'xkey', + 'xlog', 'xprev', 'xrank' + ), + # kdb database template keywords + 2 => array( + 'aj', 'by', 'delete', 'fby', 'from', 'ij', 'lj', 'pj', 'select', 'uj', 'update', 'where', 'wj', + ), + ), + 'SYMBOLS' => array( + '?', '#', ',', '_', '@', '.', '^', '~', '$', '!', '\\', '\\', '/:', '\:', "'", "':", '::', '+', '-', '%', '*' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #009900; font-weight: bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #666666; font-style: italic;', + 3 => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #660099; font-weight: bold;', + 3 => 'color: #660099; font-weight: bold;', + 4 => 'color: #660099; font-weight: bold;', + 5 => 'color: #006699; font-weight: bold;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #990000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + 2 => 'color: #999900;', + ), + 'SCRIPT' => array( + ) + ), + 'REGEXPS' => array( + # Symbols + 2 => '`[^\s"]*', + ), + 'URLS' => array( + 1 => '', + 2 => '', + ), +); + +?> \ No newline at end of file diff --git a/inc/geshi/qbasic.php b/inc/geshi/qbasic.php index c83cb188e..da4372258 100644 --- a/inc/geshi/qbasic.php +++ b/inc/geshi/qbasic.php @@ -4,7 +4,7 @@ * ---------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/20 * * QBasic/QuickBASIC language file for GeSHi. diff --git a/inc/geshi/rails.php b/inc/geshi/rails.php index 777fdd814..64d83ea16 100644 --- a/inc/geshi/rails.php +++ b/inc/geshi/rails.php @@ -4,7 +4,7 @@ * --------- * Author: Moises Deniz * Copyright: (c) 2005 Moises Deniz - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/03/21 * * Ruby (with Ruby on Rails Framework) language file for GeSHi. diff --git a/inc/geshi/rebol.php b/inc/geshi/rebol.php index 1a2e95824..a3889eec9 100644 --- a/inc/geshi/rebol.php +++ b/inc/geshi/rebol.php @@ -4,7 +4,7 @@ * -------- * Author: Lecanu Guillaume (Guillaume@LyA.fr) * Copyright: (c) 2004-2005 Lecanu Guillaume (Guillaume@LyA.fr) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/12/22 * * Rebol language file for GeSHi. diff --git a/inc/geshi/reg.php b/inc/geshi/reg.php index d70189cc9..bb2e845f3 100644 --- a/inc/geshi/reg.php +++ b/inc/geshi/reg.php @@ -4,7 +4,7 @@ * ------- * Author: Sean Hanna (smokingrope@gmail.com) * Copyright: (c) 2006 Sean Hanna - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 03/15/2006 * * Microsoft Registry Editor language file for GeSHi. diff --git a/inc/geshi/robots.php b/inc/geshi/robots.php index 82ff18f4f..baf286b7f 100644 --- a/inc/geshi/robots.php +++ b/inc/geshi/robots.php @@ -4,7 +4,7 @@ * -------- * Author: Christian Lescuyer (cl@goelette.net) * Copyright: (c) 2006 Christian Lescuyer http://xtian.goelette.info - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/02/17 * * robots.txt language file for GeSHi. diff --git a/inc/geshi/rpmspec.php b/inc/geshi/rpmspec.php new file mode 100644 index 000000000..96dc9556f --- /dev/null +++ b/inc/geshi/rpmspec.php @@ -0,0 +1,133 @@ + 'RPM Specification File', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'QUOTEMARKS' => array('"','`'), + 'ESCAPE_CHAR' => '\\', + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + ), + 'KEYWORDS' => array( + ), + 'SYMBOLS' => array( + '<', '>', '=', + '!', '@', '~', '&', '|', '^', + '+','-', '*', '/', '%', + ',', ';', '?', '.', ':' + ), + 'STYLES' => array( + 'KEYWORDS' => array( + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + 1 => 'color: #0000ff;', + 2 => 'color: #009999;', + 3 => 'color: #000000; font-weight: bold;', + 4 => 'color: #ff6600; font-style: italic;', + ), + 'SCRIPT' => array( + ) + ), + 'REGEXPS' => array( + 1 => array( + // search for generic macros + GESHI_SEARCH => '(%{?[a-zA-Z0-9_]+}?)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '', + GESHI_AFTER => '', + ), + 2 => array( + // search for special macros + GESHI_SEARCH => '(%(?:define|patch\d*|mklibname|mkrel|configure\S+|makeinstall\S+|make_session|make|defattr|config|doc|setup))', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '', + ), + 3 => array ( + // special definitions + GESHI_SEARCH => '((?:summary|license|buildroot|buildrequires|provides|version|release|source\d*|group|buildarch|autoreqprov|provides|obsoletes|vendor|distribution|suggests|autoreq|autoprov|conflicts|name|url|requires|patch\d*):)', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '', + ), + 4 => array ( + // section delimiting words + GESHI_SEARCH => '(%(?:description|package|prep|build|install|clean|postun|preun|post|pre|files|changelog))', + GESHI_REPLACE => '\\1', + GESHI_MODIFIERS => 'i', + GESHI_BEFORE => '', + GESHI_AFTER => '', + ), + ), + 'URLS' => array(), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), +); + +?> \ No newline at end of file diff --git a/inc/geshi/rsplus.php b/inc/geshi/rsplus.php index 10fa5a89e..b73f5ea77 100644 --- a/inc/geshi/rsplus.php +++ b/inc/geshi/rsplus.php @@ -6,7 +6,7 @@ * Contributors: * - Benilton Carvalho (beniltoncarvalho@gmail.com) * Copyright: (c) 2009 Ron Fredericks (http://www.LectureMaker.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/03/28 * * R language file for GeSHi. diff --git a/inc/geshi/ruby.php b/inc/geshi/ruby.php index 57d379d66..47ecbb2e2 100644 --- a/inc/geshi/ruby.php +++ b/inc/geshi/ruby.php @@ -4,7 +4,7 @@ * -------- * Author: Moises Deniz * Copyright: (c) 2007 Moises Deniz - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/03/21 * * Ruby language file for GeSHi. @@ -40,6 +40,10 @@ $language_data = array ( 'LANG_NAME' => 'Ruby', 'COMMENT_SINGLE' => array(1 => "#"), 'COMMENT_MULTI' => array("=begin" => "=end"), + 'COMMENT_REGEXP' => array( + //Heredoc + 4 => '/<<\s*?(\w+)\\n.*?\\n\\1(?![a-zA-Z0-9])/si', + ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"', '`','\''), 'ESCAPE_CHAR' => '\\', @@ -145,6 +149,7 @@ $language_data = array ( ), 'COMMENTS' => array( 1 => 'color:#008000; font-style:italic;', + 4 => 'color: #cc0000; font-style: italic;', 'MULTI' => 'color:#000080; font-style:italic;' ), 'ESCAPE_CHAR' => array( diff --git a/inc/geshi/sas.php b/inc/geshi/sas.php index 16617b58e..c4d426fa0 100644 --- a/inc/geshi/sas.php +++ b/inc/geshi/sas.php @@ -4,7 +4,7 @@ * ------- * Author: Galen Johnson (solitaryr@gmail.com) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/12/27 * * SAS language file for GeSHi. Based on the sas vim file. diff --git a/inc/geshi/scala.php b/inc/geshi/scala.php index 5ebe9ed96..202c06c83 100644 --- a/inc/geshi/scala.php +++ b/inc/geshi/scala.php @@ -4,7 +4,7 @@ * ---------- * Author: Franco Lombardo (franco@francolombardo.net) * Copyright: (c) 2008 Franco Lombardo, Benny Baumann - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/02/08 * * Scala language file for GeSHi. diff --git a/inc/geshi/scheme.php b/inc/geshi/scheme.php index dac7c6f06..2e2430bff 100644 --- a/inc/geshi/scheme.php +++ b/inc/geshi/scheme.php @@ -4,7 +4,7 @@ * ---------- * Author: Jon Raphaelson (jonraphaelson@gmail.com) * Copyright: (c) 2005 Jon Raphaelson, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * Scheme language file for GeSHi. diff --git a/inc/geshi/scilab.php b/inc/geshi/scilab.php index 9bd0658db..d1ff6fc16 100644 --- a/inc/geshi/scilab.php +++ b/inc/geshi/scilab.php @@ -4,7 +4,7 @@ * -------- * Author: Christophe David (geshi@christophedavid.org) * Copyright: (c) 2008 Christophe David (geshi@christophedavid.org) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/08/04 * * SciLab language file for GeSHi. diff --git a/inc/geshi/sdlbasic.php b/inc/geshi/sdlbasic.php index 1f1440bf5..876dc09a6 100644 --- a/inc/geshi/sdlbasic.php +++ b/inc/geshi/sdlbasic.php @@ -4,7 +4,7 @@ * ------------ * Author: Roberto Rossi * Copyright: (c) 2005 Roberto Rossi (http://rsoftware.altervista.org) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/08/19 * * sdlBasic (http://sdlbasic.sf.net) language file for GeSHi. diff --git a/inc/geshi/smalltalk.php b/inc/geshi/smalltalk.php index 9bc351d8e..b475ad711 100644 --- a/inc/geshi/smalltalk.php +++ b/inc/geshi/smalltalk.php @@ -4,7 +4,7 @@ * -------- * Author: Bananeweizen (Bananeweizen@gmx.de) * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/03/27 * * Smalltalk language file for GeSHi. diff --git a/inc/geshi/smarty.php b/inc/geshi/smarty.php index f59d9fbf3..7f4489289 100644 --- a/inc/geshi/smarty.php +++ b/inc/geshi/smarty.php @@ -4,7 +4,7 @@ * ---------- * Author: Alan Juden (alan@judenware.org) * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/07/10 * * Smarty template language file for GeSHi. diff --git a/inc/geshi/sql.php b/inc/geshi/sql.php index ea2965a8e..9e45e850d 100644 --- a/inc/geshi/sql.php +++ b/inc/geshi/sql.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * SQL language file for GeSHi. diff --git a/inc/geshi/systemverilog.php b/inc/geshi/systemverilog.php index 832769f9e..19405c097 100644 --- a/inc/geshi/systemverilog.php +++ b/inc/geshi/systemverilog.php @@ -4,7 +4,7 @@ * ------- * Author: Sean O'Boyle * Copyright: (C) 2008 IntelligentDV - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/06/25 * * SystemVerilog IEEE 1800-2009(draft8) language file for GeSHi. diff --git a/inc/geshi/tcl.php b/inc/geshi/tcl.php index 0b52a2687..2a07ccd46 100644 --- a/inc/geshi/tcl.php +++ b/inc/geshi/tcl.php @@ -4,7 +4,7 @@ * --------------------------------- * Author: Reid van Melle (rvanmelle@gmail.com) * Copyright: (c) 2004 Reid van Melle (sorry@nowhere) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/05/05 * * TCL/iTCL language file for GeSHi. @@ -54,7 +54,7 @@ $language_data = array ( 'COMMENT_MULTI' => array(), 'COMMENT_REGEXP' => array( 1 => '/(? '/{[^}\n]+}/' + //2 => '/{[^}\n]+}/' ), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"', "'"), @@ -138,7 +138,7 @@ $language_data = array ( ), 'COMMENTS' => array( 1 => 'color: #808080; font-style: italic;', - 2 => 'color: #483d8b;', +// 2 => 'color: #483d8b;', 'MULTI' => 'color: #808080; font-style: italic;' ), 'ESCAPE_CHAR' => array( @@ -191,4 +191,4 @@ $language_data = array ( ) ); -?> +?> \ No newline at end of file diff --git a/inc/geshi/teraterm.php b/inc/geshi/teraterm.php index b4ac619df..443bf7b4c 100644 --- a/inc/geshi/teraterm.php +++ b/inc/geshi/teraterm.php @@ -4,7 +4,7 @@ * -------- * Author: Boris Maisuradze (boris at logmett.com) * Copyright: (c) 2008 Boris Maisuradze (http://logmett.com) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/09/26 * * Tera Term Macro language file for GeSHi. diff --git a/inc/geshi/text.php b/inc/geshi/text.php index 24d3f10ee..66f459293 100644 --- a/inc/geshi/text.php +++ b/inc/geshi/text.php @@ -4,7 +4,7 @@ * -------- * Author: Sean Hanna (smokingrope@gmail.com) * Copyright: (c) 2006 Sean Hanna - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 04/23/2006 * * Standard Text File (No Syntax Highlighting). diff --git a/inc/geshi/thinbasic.php b/inc/geshi/thinbasic.php index 6a0b72f9f..693c698d6 100644 --- a/inc/geshi/thinbasic.php +++ b/inc/geshi/thinbasic.php @@ -4,7 +4,7 @@ * ------ * Author: Eros Olmi (eros.olmi@thinbasic.com) * Copyright: (c) 2006 Eros Olmi (http://www.thinbasic.com), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/05/12 * * thinBasic language file for GeSHi. diff --git a/inc/geshi/tsql.php b/inc/geshi/tsql.php index 4750997a3..b915b087d 100644 --- a/inc/geshi/tsql.php +++ b/inc/geshi/tsql.php @@ -4,7 +4,7 @@ * -------- * Author: Duncan Lock (dunc@dflock.co.uk) * Copyright: (c) 2006 Duncan Lock (http://dflock.co.uk/), Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/11/22 * * T-SQL language file for GeSHi. @@ -43,7 +43,7 @@ $language_data = array ( 'COMMENT_MULTI' => array('/*' => '*/'), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', + 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( // Datatypes diff --git a/inc/geshi/typoscript.php b/inc/geshi/typoscript.php index be809e856..525271428 100644 --- a/inc/geshi/typoscript.php +++ b/inc/geshi/typoscript.php @@ -4,7 +4,7 @@ * -------- * Author: Jan-Philipp Halle (typo3@jphalle.de) * Copyright: (c) 2005 Jan-Philipp Halle (http://www.jphalle.de/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/07/29 * * TypoScript language file for GeSHi. diff --git a/inc/geshi/unicon.php b/inc/geshi/unicon.php new file mode 100644 index 000000000..edad62df3 --- /dev/null +++ b/inc/geshi/unicon.php @@ -0,0 +1,210 @@ + 'Unicon (Unified Extended Dialect of Icon)', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', '\''), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'break', 'case', 'class', 'continue', 'create', 'default', 'do', + 'else', 'end', 'every', 'fail', 'for', 'if', 'import', 'initial', 'initially', + 'invocable', 'link', 'method', 'next', 'not', 'of', 'package', 'procedure', 'record', + 'repeat', 'return', 'switch', 'suspend', 'then', 'to', 'until', 'while' + ), + 2 => array( + 'global', 'local', 'static' + ), + 3 => array( + 'allocated', 'ascii', 'clock', 'collections', + 'column', 'cset', 'current', 'date', 'dateline', 'digits', + 'dump', 'e', 'error', 'errornumber', 'errortext', + 'errorvalue', 'errout', 'eventcode', 'eventsource', 'eventvalue', + 'fail', 'features', 'file', 'host', 'input', 'lcase', + 'letters', 'level', 'line', 'main', 'now', 'null', + 'output', 'phi', 'pi', 'pos', 'progname', 'random', + 'regions', 'source', 'storage', 'subject', 'syserr', 'time', + 'trace', 'ucase', 'version', 'col', 'control', 'interval', + 'ldrag', 'lpress', 'lrelease', 'mdrag', 'meta', 'mpress', + 'mrelease', 'rdrag', 'resize', 'row', 'rpress', 'rrelease', + 'shift', 'window', 'x', 'y' + ), + 4 => array( + 'abs', 'acos', 'any', 'args', 'asin', 'atan', 'bal', 'center', 'char', + 'chmod', 'close', 'cofail', 'collect', 'copy', 'cos', 'cset', 'ctime', 'dbcolumns', + 'dbdriver', 'dbkeys', 'dblimits', 'dbproduction', 'dbtables', 'delay', 'delete', 'detab', + 'display', 'dtor', 'entab', 'errorclear', 'event', 'eventmask', 'EvGet', 'exit', 'exp', + 'fetch', 'fieldnames', 'find', 'flock', 'flush', 'function', 'get', 'getch', 'getche', + 'getenv', 'gettimeofday', 'globalnames', 'gtime', 'iand', 'icom', 'image', 'insert', + 'integer', 'ior', 'ishift', 'ixor', 'key', 'left', 'list', 'load', 'loadfunc', + 'localnames', 'log', 'many', 'map', 'match', 'member', 'mkdir', 'move', 'name', 'numeric', + 'open', 'opmask', 'ord', 'paramnames', 'parent', 'pipe', 'pop', 'pos', 'proc', 'pull', + 'push', 'put', 'read', 'reads', 'real', 'receive', 'remove', 'rename', 'repl', 'reverse', + 'right', 'rmdir', 'rtod', 'runerr', 'seek', 'select', 'send', 'seq', 'serial', 'set', + 'setenv', 'sort', 'sortf', 'sql', 'sqrt', 'stat', 'staticnames', 'stop', 'string', 'system', 'tab', + 'table', 'tan', 'trap', 'trim', 'truncate', 'type', 'upto', 'utime', 'variable', 'where', + 'write', 'writes' + ), + 5 => array( + 'Active', 'Alert', 'Bg', 'Clip', 'Clone', 'Color', 'ColorValue', + 'CopyArea', 'Couple', 'DrawArc', 'DrawCircle', 'DrawCurve', 'DrawCylinder', 'DrawDisk', + 'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon', 'DrawRectangle', 'DrawSegment', + 'DrawSphere', 'DrawString', 'DrawTorus', 'EraseArea', 'Event', 'Fg', 'FillArc', + 'FillCircle', 'FillPolygon', 'FillRectangle', 'Font', 'FreeColor', 'GotoRC', 'GotoXY', + 'IdentifyMatrix', 'Lower', 'MatrixMode', 'NewColor', 'PaletteChars', 'PaletteColor', + 'PaletteKey', 'Pattern', 'Pending', 'Pixel', 'PopMatrix', 'PushMatrix', 'PushRotate', + 'PushScale', 'PushTranslate', 'QueryPointer', 'Raise', 'ReadImage', 'Refresh', 'Rotate', + 'Scale', 'Texcoord', 'TextWidth', 'Texture', 'Translate', 'Uncouple', 'WAttrib', + 'WDefault', 'WFlush', 'WindowContents', 'WriteImage', 'WSync' + ), + 6 => array( + 'define', 'include', 'ifdef', 'ifndef', 'else', 'endif', 'error', + 'line', 'undef' + ), + 7 => array( + '_V9', '_AMIGA', '_ACORN', '_CMS', '_MACINTOSH', '_MSDOS_386', + '_MS_WINDOWS_NT', '_MSDOS', '_MVS', '_OS2', '_POR', 'T', '_UNIX', '_POSIX', '_DBM', + '_VMS', '_ASCII', '_EBCDIC', '_CO_EXPRESSIONS', '_CONSOLE_WINDOW', '_DYNAMIC_LOADING', + '_EVENT_MONITOR', '_EXTERNAL_FUNCTIONS', '_KEYBOARD_FUNCTIONS', '_LARGE_INTEGERS', + '_MULTITASKING', '_PIPES', '_RECORD_IO', '_SYSTEM_FUNCTION', '_MESSAGING', '_GRAPHICS', + '_X_WINDOW_SYSTEM', '_MS_WINDOWS', '_WIN32', '_PRESENTATION_MGR', '_ARM_FUNCTIONS', + '_DOS_FUNCTIONS' + ), + 8 => array( + 'line') + ), + 'SYMBOLS' => array( + 1 => array( + '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '\\', '%', '=', '<', '>', '!', '^', + '&', '|', '?', ':', ';', ',', '.', '~', '@' + ), + 2 => array( + '$(', '$)', '$<', '$>' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #b1b100;', + 3 => 'color: #b1b100;', + 4 => 'color: #b1b100;', + 5 => 'color: #b1b100;', + 6 => 'color: #b1b100;', + 7 => 'color: #b1b100;', + 8 => 'color: #b1b100;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 'MULTI' => 'color: #666666; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + 0 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;' + ), + 'REGEXPS' => array(), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array(1 => '.'), + 'REGEXPS' => array(), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array(), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_BEFORE' => '(?<=&)' + ), + 4 => array( + 'DISALLOWED_BEFORE' => "(? "(?![a-zA-Z0-9_\"\'])" + ), + 6 => array( + 'DISALLOWED_BEFORE' => '(?<=\$)' + ), + 8 => array( + 'DISALLOWED_BEFORE' => '(?<=#)' + ) + ) + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/vala.php b/inc/geshi/vala.php new file mode 100644 index 000000000..334398a87 --- /dev/null +++ b/inc/geshi/vala.php @@ -0,0 +1,151 @@ + 'Vala', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Using and Namespace directives (basic support) + //Please note that the alias syntax for using is not supported + 3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'HARDQUOTE' => array('"""'), + 'HARDESCAPE' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'as', 'abstract', 'base', 'break', 'case', 'catch', 'const', + 'construct', 'continue', 'default', 'delete', 'dynamic', 'do', + 'else', 'ensures', 'extern', 'false', 'finally', 'for', 'foreach', + 'get', 'if', 'in', 'inline', 'internal', 'lock', 'namespace', + 'null', 'out', 'override', 'private', 'protected', 'public', 'ref', + 'requires', 'return', 'set', 'static', 'switch', 'this', 'throw', + 'throws', 'true', 'try', 'using', 'value', 'var', 'virtual', + 'volatile', 'void', 'yield', 'yields', 'while' + ), + 2 => array( + '#elif', '#endif', '#else', '#if' + ), + 3 => array( + 'is', 'new', 'owned', 'sizeof', 'typeof', 'unchecked', 'unowned', 'weak' + ), + 4 => array( + 'bool', 'char', 'class', 'delegate', 'double', 'enum', + 'errordomain', 'float', 'int', 'int8', 'int16', 'int32', 'int64', + 'interface', 'long', 'short', 'signal', 'size_t', 'ssize_t', + 'string', 'struct', 'uchar', 'uint', 'uint8', 'uint16', 'uint32', + 'ulong', 'unichar', 'ushort' + ) + ), + 'SYMBOLS' => array( + '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';', + '(', ')', '{', '}', '[', ']', '|' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0600FF;', + 2 => 'color: #FF8000; font-weight: bold;', + 3 => 'color: #008000;', + 4 => 'color: #FF0000;' + ), + 'COMMENTS' => array( + 1 => 'color: #008080; font-style: italic;', + 3 => 'color: #008080;', + 'MULTI' => 'color: #008080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #008080; font-weight: bold;', + 'HARD' => 'color: #008080; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #666666;', + 'HARD' => 'color: #666666;' + ), + 'NUMBERS' => array( + 0 => 'color: #FF0000;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF;', + 2 => 'color: #0000FF;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])" + ) + ) +); + +?> diff --git a/inc/geshi/vb.php b/inc/geshi/vb.php index 9849b3e86..f24d86505 100644 --- a/inc/geshi/vb.php +++ b/inc/geshi/vb.php @@ -5,7 +5,7 @@ * Author: Roberto Rossi (rsoftware@altervista.org) * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), * Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/08/30 * * Visual Basic language file for GeSHi. @@ -57,34 +57,53 @@ $language_data = array ( 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( - 'AddressOf', 'Alias', 'And', 'Append', 'As', 'BF', 'Binary', - 'Boolean', 'ByRef', 'Byte', 'ByVal', 'Call', 'Case', 'CBool', - 'CByte', 'CCur', 'CDate', 'CDbl', 'CDec', 'CInt', 'CLng', - 'Close', 'Collection', 'Const', 'Control', 'CSng', 'CStr', - 'Currency', 'CVar', 'Date', 'Declare', 'Dim', 'Do', 'Double', - 'Each', 'Else', 'ElseIf', 'End', 'Enum', 'Erase', 'Error', - 'Event', 'Exit', 'Explicit', 'False', 'For', 'Friend', - 'Function', 'Get', 'GoSub', 'Goto', 'If', 'Implements', 'In', - 'Input', 'Integer', 'Is', 'LBound', 'Let', 'Lib', 'Like', - 'Line', 'Long', 'Loop', 'Mod', 'New', 'Next', 'Not', - 'Nothing', 'Object', 'On', 'Open', 'Option', 'Optional', - 'Or', 'Output', 'ParamArray', 'Preserve', 'Print', 'Private', - 'Property', 'Public', 'RaiseEvent', 'Random', 'ReDim', - 'Resume', 'Select', 'Set', 'Single', 'Static', 'Step', - 'Stop', 'String', 'Sub', 'Then', 'To', 'True', 'Type', - 'TypeOf', 'UBound', 'Until', 'Variant', 'While', 'With', - 'WithEvents', 'Xor' - ) + 'Binary', 'Boolean', 'Byte', 'Currency', 'Date', 'Decimal', 'Double', + 'String', 'Enum', 'Integer', 'Long', 'Object', 'Single', 'Variant' + ), + 2 => array( + 'CreateObject', 'GetObject', 'New', 'Option', 'Function', + 'Call', 'Private', 'Public', 'Sub', 'Explicit', 'Compare', 'Exit' + ), + 3 => array( + 'And', 'Case', 'Do', 'Each', 'Else', 'ElseIf', 'For', + 'Goto', 'If', 'Is', 'Loop', 'Next', 'Not', 'Or', 'Select', 'Step', + 'Then', 'To', 'Until', 'While', 'With', 'Xor', 'WithEvents', + 'DoEvents', 'Close', 'Like', 'In', 'End' + ), + 4 => array( + 'As', 'Dim', 'Get', 'Set', 'ReDim', 'Error', + 'Resume', 'Declare', 'Let', 'ByRef', 'ByVal', + 'Optional', 'Property', 'Control', 'UBound', 'Mod', + 'GoSub', 'Implements', 'Input', 'LBound', 'Static', 'Stop', + 'Type', 'TypeOf', 'On', 'Open', 'Output', 'ParamArray', + 'Preserve', 'Print', 'RaiseEvent', 'Random', 'Line' + ), + 5 => array( + 'Nothing', 'False', 'True', 'Null', 'Empty' + ), + 6 => array( + 'ErrorHandler','ExitProc', 'PublishReport' + ), ), 'SYMBOLS' => array( ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, - 1 => false + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false ), 'STYLES' => array( 'KEYWORDS' => array( - 1 => 'color: #000080;' + 1 => 'color: #F660AB; font-weight: bold;', + 2 => 'color: #E56717; font-weight: bold;', + 3 => 'color: #8D38C9; font-weight: bold;', + 4 => 'color: #151B8D; font-weight: bold;', + 5 => 'color: #00C2FF; font-weight: bold;', + 6 => 'color: #3EA99F; font-weight: bold;' ), 'COMMENTS' => array( 1 => 'color: #008000;' @@ -109,7 +128,12 @@ $language_data = array ( ) ), 'URLS' => array( - 1 => '' + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( diff --git a/inc/geshi/vbnet.php b/inc/geshi/vbnet.php index 683b744f9..f74775214 100644 --- a/inc/geshi/vbnet.php +++ b/inc/geshi/vbnet.php @@ -4,7 +4,7 @@ * --------- * Author: Alan Juden (alan@judenware.org) * Copyright: (c) 2004 Alan Juden, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/06/04 * * VB.NET language file for GeSHi. diff --git a/inc/geshi/verilog.php b/inc/geshi/verilog.php index 6fc469487..14c1d7172 100644 --- a/inc/geshi/verilog.php +++ b/inc/geshi/verilog.php @@ -4,7 +4,7 @@ * ----------- * Author: G�nter Dannoritzer * Copyright: (C) 2008 Guenter Dannoritzer - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/05/28 * * Verilog language file for GeSHi. diff --git a/inc/geshi/vhdl.php b/inc/geshi/vhdl.php index ea93cf87b..6856933c7 100644 --- a/inc/geshi/vhdl.php +++ b/inc/geshi/vhdl.php @@ -4,7 +4,7 @@ * -------- * Author: Alexander 'E-Razor' Krause (admin@erazor-zone.de) * Copyright: (c) 2005 Alexander Krause - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2005/06/15 * * VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi. diff --git a/inc/geshi/vim.php b/inc/geshi/vim.php index a95dc244c..f4f93ad2e 100644 --- a/inc/geshi/vim.php +++ b/inc/geshi/vim.php @@ -1,5 +1,4 @@ 'Vim Script', 'COMMENT_SINGLE' => array(), 'COMMENT_REGEXP' => array( - 1 => "/^\s*\"[^\"]*?$/m" + 1 => "/\s*\"[^\"]*?$/m", + //Regular expressions (Ported from perl.php) +// 2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU", ), 'COMMENT_MULTI' => array(), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, @@ -65,12 +66,12 @@ $language_data = array( 1 => array( 'au', 'augroup', 'autocmd', 'brea', 'break', 'bufadd', 'bufcreate', 'bufdelete', 'bufenter', 'buffilepost', - 'buffilepre', 'bufhidden', 'bufleave', 'bufnew', 'bufnewfile', + 'buffilepre', 'bufleave', 'bufnew', 'bufnewfile', 'bufread', 'bufreadcmd', 'bufreadpost', 'bufreadpre', 'bufunload', 'bufwinenter', 'bufwinleave', 'bufwipeout', 'bufwrite', 'bufwritecmd', 'bufwritepost', 'bufwritepre', 'call', 'cat', 'catc', 'catch', 'cmd-event', 'cmdwinenter', - 'cmdwinleave', 'colorscheme', 'con', 'cont', 'conti', + 'cmdwinleave', 'colorscheme', 'con', 'confirm', 'cont', 'conti', 'contin', 'continu', 'continue', 'cursorhold', 'cursorholdi', 'cursormoved', 'cursormovedi', 'ec', 'echo', 'echoe', 'echoer', 'echoerr', 'echoh', 'echohl', 'echom', 'echoms', @@ -80,7 +81,7 @@ $language_data = array( 'endwhil', 'endwhile', 'exe', 'exec', 'execu', 'execut', 'execute', 'fileappendcmd', 'fileappendpost', 'fileappendpre', 'filechangedro', 'filechangedshell', 'filechangedshellpost', - 'fileencoding', 'filereadcmd', 'filereadpost', 'filereadpre', + 'filereadcmd', 'filereadpost', 'filereadpre', 'filetype', 'filewritecmd', 'filewritepost', 'filewritepre', 'filterreadpost', 'filterreadpre', 'filterwritepost', 'filterwritepre', 'fina', 'final', 'finall', 'finally', @@ -94,7 +95,7 @@ $language_data = array( 'shellcmdpost', 'shellfilterpost', 'sourcecmd', 'sourcepre', 'spellfilemissing', 'stdinreadpost', 'stdinreadpre', 'swapexists', 'syntax', 'tabenter', 'tableave', 'termchanged', - 'termresponse', 'th', 'thr', 'thro', 'throw', 'try', 'unl', + 'termresponse', 'th', 'thr', 'thro', 'throw', 'tr', 'try', 'unl', 'unle', 'unlet', 'unlo', 'unloc', 'unlock', 'unlockv', 'unlockva', 'unlockvar', 'user', 'usergettingbored', 'vimenter', 'vimleave', 'vimleavepre', 'vimresized', 'wh', @@ -116,17 +117,17 @@ $language_data = array( 'bdir', 'bdlay', 'beval', 'bex', 'bexpr', 'bg', 'bh', 'bin', 'binary', 'biosk', 'bioskey', 'bk', 'bkc', 'bl', 'bomb', 'breakat', 'brk', - 'browsedir', 'bs', 'bsdir', 'bsk', 'bt', 'bufhidden', - 'buflisted', 'buftype', 'casemap', 'cb', + 'bs', 'bsdir', 'bsk', 'bt', 'bufhidden', + 'buftype', 'casemap', 'cb', 'ccv', 'cd', 'cdpath', 'cedit', 'cf', 'cfu', 'ch', - 'charconvert', 'ci', 'cin', 'cindent', 'cink', + 'charconvert', 'ci', 'cin', 'cink', 'cinkeys', 'cino', 'cinoptions', 'cinw', 'cinwords', 'clipboard', 'cmdheight', 'cmdwinheight', 'cmp', 'cms', 'co', 'columns', 'com', 'comc', 'comcl', 'comcle', 'comclea', 'comclear', 'comm', 'comma', 'comman', 'command', 'comments', 'commentstring', - 'compatible', 'complete', 'completefunc', 'completeopt', - 'confirm', 'consk', 'conskey', 'copyindent', + 'compatible', 'completefunc', 'completeopt', + 'consk', 'conskey', 'copyindent', 'cot', 'cp', 'cpo', 'cpoptions', 'cpt', 'cscopepathcomp', 'cscopeprg', 'cscopequickfix', 'cscopetag', 'cscopetagorder', 'cscopeverbose', @@ -138,19 +139,18 @@ $language_data = array( 'diffopt', 'digraph', 'dip', 'dir', 'directory', 'display', 'dlcomma', 'dy', 'ea', 'ead', 'eadirection', 'eb', 'ed', 'edcompatible', 'ef', 'efm', - 'ei', 'ek', 'enc', 'encoding', 'endofline', + 'ei', 'ek', 'enc', 'encoding', 'endfun', 'endofline', 'eol', 'ep', 'equalalways', 'equalprg', 'errorbells', 'errorfile', 'errorformat', 'esckeys', 'et', 'eventignore', 'ex', 'expandtab', 'exrc', 'fcl', 'fcs', 'fdc', 'fde', 'fdi', 'fdl', 'fdls', 'fdm', 'fdn', 'fdo', 'fdt', 'fen', 'fenc', 'fencs', 'fex', 'ff', 'ffs', 'fileencoding', 'fileencodings', 'fileformat', - 'fileformats', 'filetype', 'fillchars', 'fk', + 'fileformats', /*'filetype',*/ 'fillchars', 'fk', 'fkmap', 'flp', 'fml', 'fmr', 'fo', 'foldclose', 'foldcolumn', 'foldenable', 'foldexpr', 'foldignore', - 'foldlevel', 'foldlevelstart', 'foldmarker', - 'foldmethod', 'foldminlines', 'foldnestmax', 'foldopen', - 'foldtext', 'formatexpr', 'formatlistpat', + 'foldlevelstart', 'foldmarker', 'foldmethod', 'foldminlines', + 'foldnestmax', 'foldopen', 'formatexpr', 'formatlistpat', 'formatoptions', 'formatprg', 'fp', 'fs', 'fsync', 'ft', 'gcr', 'gd', 'gdefault', 'gfm', 'gfn', 'gfs', 'gfw', 'ghr', 'go', 'gp', 'grepformat', 'grepprg', 'gtl', @@ -255,13 +255,13 @@ $language_data = array( 'sidescrolloff', 'siso', 'sj', 'slm', 'sm', 'smartcase', 'smartindent', 'smarttab', 'smc', 'smd', 'sn', 'so', 'softtabstop', 'sol', 'sp', 'spc', 'spell', - 'spellcapcheck', 'spellfile', 'spelllang', 'spellsuggest', + 'spellcapcheck', 'spellfile', 'spelllang', 'spf', 'spl', 'splitbelow', 'splitright', 'spr', 'sps', 'sr', 'srr', 'ss', 'ssl', 'ssop', 'st', 'sta', 'stal', 'startofline', 'statusline', 'stl', 'stmp', 'sts', 'su', 'sua', 'suffixes', 'suffixesadd', 'sw', 'swapfile', 'swapsync', 'swb', 'swf', 'switchbuf', - 'sws', 'sxq', 'syn', 'synmaxcol', 'syntax', 'ta', + 'sws', 'sxq', 'syn', 'synmaxcol', 'ta', 'tabline', 'tabpagemax', 'tabstop', 'tag', 'tagbsearch', 'taglength', 'tagrelative', 'tags', 'tagstack', 'tal', 'tb', 'tbi', 'tbidi', 'tbis', 'tbs', @@ -270,7 +270,7 @@ $language_data = array( 'thesaurus', 'tildeop', 'timeout', 'timeoutlen', 'title', 'titlelen', 'titleold', 'titlestring', 'tl', 'tm', 'to', 'toolbar', 'toolbariconsize', 'top', - 'tpm', 'tr', 'ts', 'tsl', 'tsr', 'ttimeout', + 'tpm', 'ts', 'tsl', 'tsr', 'ttimeout', 'ttimeoutlen', 'ttm', 'tty', 'ttybuiltin', 'ttyfast', 'ttym', 'ttymouse', 'ttyscroll', 'ttytype', 'tw', 'tx', 'uc', 'ul', 'undolevels', 'updatecount', 'updatetime', 'ut', @@ -278,7 +278,7 @@ $language_data = array( 'vfile', 'vi', 'viewdir', 'viewoptions', 'viminfo', 'virtualedit', 'visualbell', 'vop', 'wa', 'wak', 'warn', 'wb', 'wc', 'wcm', 'wd', 'weirdinvert', 'wfh', - 'wfw', 'wh', 'whichwrap', 'wi', 'wig', 'wildchar', + 'wfw', /*'wh',*/ 'whichwrap', 'wi', 'wig', 'wildchar', 'wildcharm', 'wildignore', 'wildmenu', 'wildmode', 'wildoptions', 'wim', 'winaltkeys', 'window', 'winfixheight', 'winfixwidth', 'winheight', @@ -315,7 +315,7 @@ $language_data = array( 'bufexists', 'buflisted', 'bufloaded', 'bufname', 'bufnr', 'bufwinnr', 'byte2line', 'byteidx', 'ceil', 'changenr', 'char2nr', 'cindent', 'clearmatches', 'col', 'complete', - 'complete_add', 'complete_check', 'confirm', 'copy', + 'complete_add', 'complete_check', 'copy', 'cos', 'count', 'cscope_connection', 'cursor', 'deepcopy', 'delete', 'did_filetype', 'diff_filler', 'diff_hlID', 'empty', 'escape', 'eval', 'eventhandler', 'executable', @@ -354,10 +354,10 @@ $language_data = array( 'strridx', 'strtrans', 'submatch', 'substitute', 'synID', 'synIDattr', 'synIDtrans', 'synstack', 'system', 'tabpagebuflist', 'tabpagenr', 'tabpagewinnr', 'tagfiles', - 'taglist', 'tempname', 'tolower', 'toupper', 'tr', 'trunc', + 'taglist', 'tempname', 'tolower', 'toupper', 'trunc', 'type', 'values', 'virtcol', 'visualmode', 'winbufnr', - 'wincol', 'winheight', 'winline', 'winnr', 'winrestcmd', - 'winrestview', 'winsaveview', 'winwidth', 'writefile' + 'wincol', 'winline', 'winnr', 'winrestcmd', + 'winrestview', 'winsaveview', 'writefile' ) ), 'SYMBOLS' => array( @@ -375,7 +375,8 @@ $language_data = array( 0 => 'color: #000000;' ), 'COMMENTS' => array( - 1 => 'color: #adadad; font-style: italic;' + 1 => 'color: #adadad; font-style: italic;', +// 2 => 'color: #009966; font-style: italic;' ), 'ESCAPE_CHAR' => array( 0 => '' @@ -416,4 +417,4 @@ $language_data = array( 'HIGHLIGHT_STRICT_BLOCK' => array() ); -?> \ No newline at end of file +?> diff --git a/inc/geshi/visualfoxpro.php b/inc/geshi/visualfoxpro.php index 4d9f649ce..7d804257f 100644 --- a/inc/geshi/visualfoxpro.php +++ b/inc/geshi/visualfoxpro.php @@ -4,7 +4,7 @@ * ---------------- * Author: Roberto Armellin (r.armellin@tin.it) * Copyright: (c) 2004 Roberto Armellin, Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/09/17 * * Visual FoxPro language file for GeSHi. diff --git a/inc/geshi/visualprolog.php b/inc/geshi/visualprolog.php index 5c9bbd4d0..5afd7de8d 100644 --- a/inc/geshi/visualprolog.php +++ b/inc/geshi/visualprolog.php @@ -4,7 +4,7 @@ * ---------- * Author: Thomas Linder Puls (puls@pdc.dk) * Copyright: (c) 2008 Thomas Linder Puls (puls@pdc.dk) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/11/20 * * Visual Prolog language file for GeSHi. diff --git a/inc/geshi/whitespace.php b/inc/geshi/whitespace.php index a27a7b920..c47775d44 100644 --- a/inc/geshi/whitespace.php +++ b/inc/geshi/whitespace.php @@ -4,7 +4,7 @@ * ---------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2009/10/31 * * Whitespace language file for GeSHi. diff --git a/inc/geshi/whois.php b/inc/geshi/whois.php index 019e91450..9b4b24179 100644 --- a/inc/geshi/whois.php +++ b/inc/geshi/whois.php @@ -4,7 +4,7 @@ * -------- * Author: Benny Baumann (BenBE@geshi.org) * Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/09/14 * * Whois response (RPSL format) language file for GeSHi. diff --git a/inc/geshi/winbatch.php b/inc/geshi/winbatch.php index 5b5dcc1df..949e61c14 100644 --- a/inc/geshi/winbatch.php +++ b/inc/geshi/winbatch.php @@ -4,7 +4,7 @@ * ------------ * Author: Craig Storey (storey.craig@gmail.com) * Copyright: (c) 2004 Craig Storey (craig.xcottawa.ca) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2006/05/19 * * WinBatch language file for GeSHi. diff --git a/inc/geshi/xbasic.php b/inc/geshi/xbasic.php new file mode 100644 index 000000000..a2d85a6df --- /dev/null +++ b/inc/geshi/xbasic.php @@ -0,0 +1,144 @@ + 'XBasic', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'WHILE', 'UNTIL', 'TRUE', 'TO', 'THEN', 'SUB', 'STOP', 'STEP', + 'SELECT', 'RETURN', 'PROGRAM', 'NEXT', 'LOOP', 'IFZ', + 'IFT', 'IFF', 'IF', 'GOTO', 'GOSUB', 'FOR', 'FALSE', 'EXIT', + 'ENDIF', 'END', 'ELSE', 'DO', 'CASE', 'ALL' + ), + 2 => array( + 'XMAKE', 'XLONGAT', 'XLONG', 'WRITE', 'VOID', 'VERSION$', 'VERSION', + 'USHORTAT', 'USHORT', 'UNION', 'ULONGAT', 'ULONG', 'UCASE$', + 'UBYTEAT', 'UBYTE', 'UBOUND', 'TYPE','TRIM$', 'TAB', 'SWAP', + 'SUBADDRESS', 'SUBADDR', 'STUFF$', 'STRING', 'STRING$', 'STR$', + 'STATIC', 'SSHORTAT', 'SSHORT', 'SPACE$', 'SMAKE', 'SLONGAT', 'SLONG', + 'SIZE', 'SINGLEAT', 'SINGLE', 'SIGNED$', 'SIGN', 'SHELL', 'SHARED', + 'SGN', 'SFUNCTION', 'SET', 'SEEK', 'SCOMPLEX', 'SBYTEAT', 'SBYTE', + 'RTRIM$', 'ROTATER', 'ROTATEL', 'RJUST$', 'RINSTRI', 'RINSTR', + 'RINCHRI', 'RINCHR', 'RIGHT$', 'REDIM', 'READ', 'RCLIP$', 'QUIT', + 'PROGRAM$', 'PRINT', 'POF', 'OPEN', 'OCTO$', 'OCT$', 'NULL$', 'MIN', + 'MID$', 'MAX', 'MAKE', 'LTRIM$', 'LOF', 'LJUST$', 'LIBRARY', 'LEN', + 'LEFT$', 'LCLIP$', 'LCASE$', 'INTERNAL', 'INT', 'INSTRI', 'INSTR', + 'INLINE$', 'INFILE$', 'INCHRI', 'INCHR', 'INC', 'IMPORT', 'HIGH1', + 'HIGH0', 'HEXX$', 'HEX$', 'GOADDRESS', 'GOADDR', 'GMAKE', 'GLOW', + 'GIANTAT', 'GIANT', 'GHIGH', 'FUNCTION', 'FUNCADDRESS', 'FUNCADDR', + 'FORMAT$', 'FIX', 'EXTU', 'EXTS', 'EXTERNAL', 'ERROR', 'ERROR$', + 'EOF', 'DOUBLEAT', 'DOUBLE', 'DMAKE', 'DLOW', 'DIM', 'DHIGH', + 'DECLARE', 'DEC', 'DCOMPLEX', 'CSTRING$', 'CSIZE', 'CSIZE$', 'CLR', + 'CLOSE', 'CLEAR', 'CJUST$', 'CHR$', 'CFUNCTION', 'BITFIELD', 'BINB$', + 'BIN$', 'AUTOX', 'AUTOS', 'AUTO', 'ATTACH', 'ASC', 'ABS' + ), + 3 => array( + 'XOR', 'OR', 'NOT', 'MOD', 'AND' + ), + 4 => array( + 'TANH', 'TAN', 'SQRT', 'SINH', 'SIN', 'SECH', 'SEC', 'POWER', + 'LOG10', 'LOG', 'EXP10', 'EXP', 'CSCH', 'CSC', 'COTH', 'COT', 'COSH', + 'COS', 'ATANH', 'ATAN', 'ASINH', 'ASIN', 'ASECH', 'ASEC', 'ACSCH', + 'ACSC', 'ACOSH', 'ACOS' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', + '=','+','-' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00a1a1;font-weight: bold', + 2 => 'color: #000066;font-weight: bold', + 3 => 'color: #00a166;font-weight: bold', + 4 => 'color: #0066a1;font-weight: bold' + ), + 'COMMENTS' => array( + 1 => 'color: #808080;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.xbasic.org', + 4 => 'http://www.xbasic.org' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/inc/geshi/xml.php b/inc/geshi/xml.php index 608c99f00..efd3e6c33 100644 --- a/inc/geshi/xml.php +++ b/inc/geshi/xml.php @@ -4,7 +4,7 @@ * ------- * Author: Nigel McNie (nigel@geshi.org) * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2004/09/01 * * XML language file for GeSHi. Based on the idea/file by Christian Weiske diff --git a/inc/geshi/xorg_conf.php b/inc/geshi/xorg_conf.php index cdb6c36c9..5cde8e171 100644 --- a/inc/geshi/xorg_conf.php +++ b/inc/geshi/xorg_conf.php @@ -4,7 +4,7 @@ * ---------- * Author: Milian Wolff (mail@milianw.de) * Copyright: (c) 2008 Milian Wolff (http://milianw.de) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2008/06/18 * * xorg.conf language file for GeSHi. diff --git a/inc/geshi/xpp.php b/inc/geshi/xpp.php index 5f009ec8c..216c46eaf 100644 --- a/inc/geshi/xpp.php +++ b/inc/geshi/xpp.php @@ -4,7 +4,7 @@ * ------- * Author: Simon Butcher (simon@butcher.name) * Copyright: (c) 2007 Simon Butcher (http://simon.butcher.name/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/02/27 * * Axapta/Dynamics Ax X++ language file for GeSHi. diff --git a/inc/geshi/z80.php b/inc/geshi/z80.php index b41e80c74..f28593cd2 100644 --- a/inc/geshi/z80.php +++ b/inc/geshi/z80.php @@ -4,7 +4,7 @@ * ------- * Author: Benny Baumann (BenBE@omorphia.de) * Copyright: (c) 2007-2008 Benny Baumann (http://www.omorphia.de/) - * Release Version: 1.0.8.6 + * Release Version: 1.0.8.8 * Date Started: 2007/02/06 * * ZiLOG Z80 Assembler language file for GeSHi. -- cgit v1.2.3 From db6f7eaea3a9b1b536f2b65e54c911f2a4d49bd8 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 29 Aug 2010 12:27:41 +0200 Subject: don't load disabled plugins FS#1990 --- inc/plugincontroller.class.php | 17 ++++++++++++----- inc/pluginutils.php | 4 ++-- 2 files changed, 14 insertions(+), 7 deletions(-) (limited to 'inc') diff --git a/inc/plugincontroller.class.php b/inc/plugincontroller.class.php index 61f460414..ad394e11f 100644 --- a/inc/plugincontroller.class.php +++ b/inc/plugincontroller.class.php @@ -55,15 +55,23 @@ class Doku_Plugin_Controller { * * @author Andreas Gohr * - * @param $type string type of plugin to load - * @param $name string name of the plugin to load - * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance + * @param $type string type of plugin to load + * @param $name string name of the plugin to load + * @param $new bool true to return a new instance of the plugin, false to use an already loaded instance + * @param $disabled bool true to load even disabled plugins * @return objectreference the plugin object or null on failure */ - function &load($type,$name,$new=false){ + function &load($type,$name,$new=false,$disabled=false){ //we keep all loaded plugins available in global scope for reuse global $DOKU_PLUGINS; + list($plugin,$component) = $this->_splitName($name); + + // check if disabled + if(!$disabled && $this->isdisabled($plugin)){ + return null; + } + //plugin already loaded? if(!empty($DOKU_PLUGINS[$type][$name])){ if ($new || !$DOKU_PLUGINS[$type][$name]->isSingleton()) { @@ -75,7 +83,6 @@ class Doku_Plugin_Controller { } //try to load the wanted plugin file - list($plugin,$component) = $this->_splitName($name); $dir = $this->get_directory($plugin); $file = $component ? "$type/$component.php" : "$type.php"; diff --git a/inc/pluginutils.php b/inc/pluginutils.php index da0704bec..85bcaee1e 100644 --- a/inc/pluginutils.php +++ b/inc/pluginutils.php @@ -16,9 +16,9 @@ function plugin_list($type='',$all=false) { global $plugin_controller; return $plugin_controller->getList($type,$all); } -function &plugin_load($type,$name,$new=false) { +function &plugin_load($type,$name,$new=false,$disabled=false) { global $plugin_controller; - return $plugin_controller->load($type,$name,$new); + return $plugin_controller->load($type,$name,$new,$disabled); } function plugin_isdisabled($plugin) { global $plugin_controller; -- cgit v1.2.3 From 06853c0e060769b5fa39cdf608b1926785c9c557 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 29 Aug 2010 13:31:02 +0200 Subject: fixed namespace subscription file location FS#2013 If you subscribed to namespaces other than the root namespace using the new develonly subscription feature you'll need to renew your subscriptions. --- inc/subscription.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'inc') diff --git a/inc/subscription.php b/inc/subscription.php index 22d8fccd5..f39b87eb5 100644 --- a/inc/subscription.php +++ b/inc/subscription.php @@ -29,13 +29,11 @@ function subscription_filename($id) { $meta_fname = '.mlist'; if ((substr($id, -1, 1) === ':')) { $meta_froot = getNS($id); - if ($meta_froot === false) { - $meta_fname = '/' . $meta_fname; - } + $meta_fname = '/' . $meta_fname; } else { $meta_froot = $id; } - return metaFN($meta_froot, $meta_fname); + return metaFN((string) $meta_froot, $meta_fname); } /** -- cgit v1.2.3 From 5479a8c3341247ca228026819f20f3ab5c34a80f Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 29 Aug 2010 14:13:47 +0200 Subject: fixed page lookup when useheading is disabled this was broken by d0bdf7659fce98c2922b151766d51d5c7e8814d6 --- inc/fulltext.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/fulltext.php b/inc/fulltext.php index cac2de4a4..e90205e9c 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -243,11 +243,11 @@ function _ft_pageLookup(&$data){ $titles = array_map('rtrim', idx_getIndex('title', '')); $pages = array_combine($pages, $titles); - if ($id !== '' && cleanID($id) !== '') { - $cleaned = cleanID($id); + $cleaned = cleanID($id); + if ($id !== '' && $cleaned !== '') { foreach ($pages as $p_id => $p_title) { if ((strpos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) === false) && - ($in_title && stripos($p_title, $id) === false)) { + (!$in_title || (stripos($p_title, $id) === false)) ) { unset($pages[$p_id]); } } -- cgit v1.2.3