DokuWiki auf SemiByte.de

Auf dieser Homepage wird derzeit das DokuWiki der Version 2005-09-22a verwendet. Für das Seitenlayout wird eine modifizierte Version des „Sidebar Templates“ von http://wiki.jalakai.co.uk/dokuwiki eingesetzt. Zusätzliche Modifikationen wurden in den Quelltext eingebaut, um die Funktionalität zu erhalten, wie ich sie beabsichtigt habe. Meine DokuWiki-FAQ ist hier zu finden: DokuWiki-FAQ

Quelltext-Modifikationen

Export-Handling

Der Export einzelner Seiten nach reinem HTML und die RAW-Anzeige von Wiki-Text soll nur noch angemeldeten Benutzern möglich sein. Hierfür wurden die Dateien

  • inc/actions.php
  • inc/html.php (Button entfernt)
  • inc/template.php (Meta-Links entfert)

modifiziert. Der Patch ist nachfolgend wiedergegeben und kann hier heruntergeladen werden.

diff -Nru dokuwiki.orig/inc/actions.php dokuwiki/inc/actions.php
--- dokuwiki.orig/inc/actions.php   2005-09-22 19:21:12.000000000 +0200
+++ dokuwiki/inc/actions.php  2005-10-21 09:01:26.000000000 +0200
@@ -59,8 +59,15 @@
   }
 
   //handle export
-  if(substr($ACT,0,7) == 'export_')
-    $ACT = act_export($ACT);
+  if(substr($ACT,0,7) == 'export_'){
+    if($_SERVER['REMOTE_USER']){
+      $ACT = act_export($ACT);
+    }
+    else {
+      $ACT = 'denied';
+    }
+  }
+  
 
   //display some infos
   if($ACT == 'check'){
diff -Nru dokuwiki.orig/inc/html.php dokuwiki/inc/html.php
--- dokuwiki.orig/inc/html.php   2005-10-30 21:46:15.000000000 +0100
+++ dokuwiki/inc/html.php  2005-11-23 11:38:34.000000000 +0100
@@ -108,7 +108,7 @@
         $r = html_btn('create',$ID,'e',array('do' => 'edit','rev' => $REV),'post');
       }
     }else{
-      $r = html_btn('source',$ID,'v',array('do' => 'edit','rev' => $REV),'post');
+      //$r = html_btn('source',$ID,'v',array('do' => 'edit','rev' => $REV),'post');
     }
   }else{
     $r = html_btn('show',$ID,'v',array('do' => 'show'));
diff -Nru dokuwiki.orig/inc/template.php dokuwiki/inc/template.php
--- dokuwiki.orig/inc/template.php  2005-10-21 13:43:58.000000000 +0200
+++ dokuwiki/inc/template.php 2005-11-23 11:39:48.000000000 +0100
@@ -181,8 +181,12 @@
   ptln('<link rel="contents" href="'.wl($ID,'do=index').'" title="'.$lang['index'].'" />',$it);
   ptln('<link rel="alternate" type="application/rss+xml" title="Recent Changes" href="'.DOKU_BASE.'feed.php" />',$it);
   ptln('<link rel="alternate" type="application/rss+xml" title="Current Namespace" href="'.DOKU_BASE.'feed.php?mode=list&amp;ns='.$INFO['namespace'].'" />',$it);
-  ptln('<link rel="alternate" type="text/html" title="Plain HTML" href="'.wl($ID,'do=export_html').'" />',$it);
-  ptln('<link rel="alternate" type="text/plain" title="Wiki Markup" href="'.wl($ID, 'do=export_raw').'" />',$it);
+  if($conf['useacl']){
+    if($_SERVER['REMOTE_USER']){
+      ptln('<link rel="alternate" type="text/html" title="Plain HTML" href="'.wl($ID,'do=export_html').'" />',$it);
+      ptln('<link rel="alternate" type="text/plain" title="Wiki Markup" href="'.wl($ID, 'do=export_raw').'" />',$it);
+    }
+  }
   ptln('<link rel="stylesheet" media="screen" type="text/css" href="'.DOKU_BASE.'lib/styles/style.css" />',$it);
 
   // setup robot tags apropriate for different modes

Index

Beim Index sollen nichterreichbare Verzeichnisse und Namensräume aufgrund der Zugriffsrechte nicht mit angezeigt werden. Dies wurde durch eine Modifikation von inc/search.php erreicht, der Patch kann hier heruntergeladen werden und ist nachfolgend wiedergegeben.

diff -Nru dokuwiki.orig/inc/search.php dokuwiki/inc/search.php
--- dokuwiki.orig/inc/search.php 2005-09-22 19:21:13.000000000 +0200
+++ dokuwiki/inc/search.php   2005-10-20 16:04:54.000000000 +0200
@@ -120,6 +120,10 @@
   if($type == 'd' && !preg_match('#^'.$file.'(/|$)#','/'.$opts['ns'])){
     //add but don't recurse
     $return = false;
+    // FIX - hide inaccessible directories/namespaces in indexes
+    if(auth_quickaclcheck(str_replace('/',':',substr($file,1)).':')<AUTH_READ) {
+      return(false);
+    };    
   }elseif($type == 'f' && !preg_match('#\.txt$#',$file)){
     //don't add
     return false;

Lokale Interwiki Links

Für lokale Interwiki Links wurden die beiden Ziele local und do definiert. Diese solten jedoch nicht in einem neuen Fenster dargestellt werden, sondern im aktuellen eingebunden werden. In interwiki.local.conf wurden die beiden Ziele definiert und in inc/parser/xhtml.php für diese beiden Interwiki Links das aktuelle Fenster als Ziel eingestellt. Nachfolgend der Patch, der auch hier heruntergeladen werden kann.

diff -Nru dokuwiki.orig/conf/interwiki.local.conf dokuwiki/conf/interwiki.local.conf
--- dokuwiki.orig/conf/interwiki.local.conf  1970-01-01 01:00:00.000000000 +0100
+++ dokuwiki/conf/interwiki.local.conf 2005-11-24 07:21:22.000000000 +0100
@@ -0,0 +1,19 @@
+#--------------------------------------------------------------------
+# Local InterWiki configuration file
+#
+# $Id: interwiki.local.conf,v 1.1.2.1 2005/10/20 11:56:56 tobias Exp $
+# $Date: 2005/10/20 11:56:56 $
+#
+#--------------------------------------------------------------------
+# Each URL may contain one of the placeholders {URL} or {NAME}
+# {URL}  is replaced by the URL encoded representation of the wikiname
+#        this is the right thing to do in most cases
+# {NAME} this is replaced by the wikiname as given in the document
+#        no further encoding is done
+# If no placeholder is defined the urlencoded name is appended to the URL
+
+# You can add more InterWiki shortcuts here.
+
+local             ./
+do                ./?do={URL}
+
diff -Nru dokuwiki.orig/inc/parser/xhtml.php dokuwiki/inc/parser/xhtml.php
--- dokuwiki.orig/inc/parser/xhtml.php 2005-10-18 23:21:16.000000000 +0200
+++ dokuwiki/inc/parser/xhtml.php   2005-11-23 11:47:31.000000000 +0100
@@ -596,6 +596,11 @@
         if( strpos($url,DOKU_URL) === 0 ){
             $link['target'] = $conf['target']['wiki'];
         }
+        //are the wikiName 'local' or 'do' (also internal interwiki links)? Use local target
+       // added by Tobias Brinkert <develop@semibyte.de>
+        if ( strpos($wikiName, 'local') === 0 || strpos($wikiName, 'do') === 0 ) {
+            $link['target'] = $conf['target']['wiki'];
+        }
 
         //split into hash and url part
         list($wikiUri,$hash) = explode('#',$wikiUri,2);

Layoutänderung der Dateisignatur am Ende der Seite

Unten auf der Wiki-Seite wird der Dateiname und das Änderungsdatum der Wiki-Datei angegeben. Den Dateinamen mit anzugeben fand ich unschön, da diese Information auch keinen Wert darstellt. Um nur noch das Änderungsdatum und den Benutzer anzugeben, kann der folgende Patch verwendet werden, der auch hier heruntergeladen werden kann.

diff -Nru dokuwiki.orig/inc/template.php dokuwiki/inc/template.php
--- dokuwiki.orig/inc/template.php  2005-11-24 07:38:36.000000000 +0100
+++ dokuwiki/inc/template.php 2005-11-23 11:39:48.000000000 +0100
@@ -622,8 +622,8 @@
 
   // print it
   if($INFO['exists']){
-    print $fn;
-    print ' &middot; ';
+    // print $fn;
+    // print ' &middot; ';
     print $lang['lastmod'];
     print ': ';
     print $date;

PDF-Dateien nicht zum Download makieren

Da ich viele PDF-Dateien einsetzte, um den Inhalt zu generieren, war es für meinen Einsatzzweck des Wikis unpraktisch, daß PDF-Dateien als Download-Datei makiert werden. Der nachfolgende Patch öffnet PDF-Dateien in einem neuen Fenster und nicht den Download-Dialog des Browsers. Der Patch ist auch hier herunterladbar.

diff -Nru dokuwiki.orig/lib/exe/fetch.php dokuwiki/lib/exe/fetch.php
--- dokuwiki.orig/lib/exe/fetch.php 2005-09-22 19:21:14.000000000 +0200
+++ dokuwiki/lib/exe/fetch.php   2005-11-23 11:17:09.000000000 +0100
@@ -80,7 +80,9 @@
 
   //application mime type is downloadable
   if(substr($mime,0,11) == 'application'){
-    header('Content-Disposition: attachment; filename="'.basename($file).'";');
+    if (! $mime == 'application/pdf' ) {
+      header('Content-Disposition: attachment; filename="'.basename($file).'";');
+   }
   }
 
   $fp = @fopen($file,"rb");

informatik/entwicklung/dokuwiki.txt · Zuletzt geändert: 14.11.2010 10:46 (Externe Bearbeitung)
Recent changes RSS feed Kontakt GPG-Schlüssel Get Firefox Driven by DokuWiki Valid CSS Valid XHTML 1.0