dokuwiki:dokuwiki_tips

DokuWiki 改造メモ

ちょっとした変更とか。

使う人の生活圏と違うタイムゾーンにサーバがある場合、タイムスタンプがサーバのタイムゾーン基準で表示されて不便です。Setting TimeZone に従って、タイムスタンプの標準時の設定をすることで、問題回避ができます。

conf ディレクトリに local.protected.php という次のような内容のファイルを作成。local.php が管理設定の変更で書き換わっても変更されないよう、別ファイルにすることになっています。たとえば日本の標準時に合わせるには、次の内容で保存します。

<?php
    date_default_timezone_set("Asia/Tokyo");
?>

サイト管理メモ に書いたものを転載。

DokuWiki のページを編集して保存したとき、この日時をテキストファイルに書き出しておくと、外部から最終更新日時の確認が楽になります。

スクリプトを編集する場所は inc/actions.php のなかほど、//delete draft のセクションのすぐ後ろです。

//write to timestamp file
$date = gmdate('(Y/m/d H:i)', time()+32400);
$fp = fopen('timestamp.dat', w);
fputs($fp, $date);
fclose($fp);

これで DokuWiki 設置のルートに timestamp.dat というファイルができ、記事書込みのたびに更新されるようになるはずですので、好きなところから参照することができます。

DokuWiki では最終編集者がログインユーザーでない場合に、IP が表示される仕様になっています。日本での運用では、IP 表示が敬遠される場合もあるので、これをまったく表示しないように改変してみました。

ページ末尾の最終更新者の表示を変更

DokuWiki フォルダ内の inc/common.php の if($revinfo['user']) の部分(200行よりちょっと後のあたり)で、次の行を、

$info['editor'] = $revinfo['ip'];

次のように変更。

if($revinfo['ip']){
  $info['editor'] = 'guest';
}

編集履歴の一覧で IP アドレスを表示しない

inc/html.php の if($info['user']) の部分(525行あたり)で、次の行を

      if($info['user']){
          $form->addElement(editorinfo($info['user']));
          if(auth_ismanager()){
              $form->addElement(' ('.$info['ip'].')');
          }
      }else{
          $form->addElement($info['ip']);
      }

次のように変更。

      if($info['user']){
          $form->addElement(editorinfo($info['user']));
          if(auth_ismanager()){
              $form->addElement(' ('.$info['ip'].')');
          }
      }else{
          //$form->addElement($info['ip']);
          if($info['ip']){
            $form->addElement('guest');
          }
          if(auth_ismanager()){
              $form->addElement(' ('.$info['ip'].')');
          }
      }
  • dokuwiki/dokuwiki_tips.txt
  • 最終更新: 2011/09/29 00:33
  • (外部編集)