トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Wikiカスタマイズ

Last-modified: 2011-07-15 (金) 10:15:11 (2140d)
Top / Wikiカスタマイズ
サーバの設定やPukiWikiに関する変更点を記述しています。
一部ローカルサーバー設置に関する部分も含まれています。(当サイト適用外)

2011-06-02

Trackerで添付ファイルを上手く表示できるようにrefおよびattachrefプラグラインを改造

  • ref.inc.php
    • 対象ファイルがない場合やファイル名が違っていても &ref(): File not found: の表示がでないよう変更。
      function plugin_ref_inline()
      {
      	// Not reached, because of "$aryargs[] = & $body" at plugin.php
      	// if (! func_num_args())
      	//	return '&ref(): Usage:' . PLUGIN_REF_USAGE . ';';
      
      	$params = plugin_ref_body(func_get_args());
      
      	if (isset($params['_error']) && $params['_error'] != '') {
      		// Error
      -		return '&ref(): ' . $params['_error'] . ';';
      +		return '';
      	} else {
      		return $params['_body'];
      	}
      }
      ※:インライン型の一切のエラーメッセージが表示されなくなる。
  • attachref.inc.php
    • デフォルトでは ファイル名 のみが格納されるが、 ページ名/ファイル名 が格納されるように変更。
      172行目付近(function plugin_attachref_action()内)
      -	$file['name'] = $attachname;
      +	$file['name'] = $vars['refer'].'/'.$attachname;

2011-05-30

rename を一般ユーザでも可能に変更/plugin/rename.inc.php

  • デフォルトの状態ではrenameプラグインによるリネームをしようとすると、管理者パスワードが求められるが、一般ユーザでも可能なようにrename.inc.phpを改造する。
    2箇所(-行を削除して+行を追加)
    • 223行目付近
      if ($pass != '' && pkwk_login($pass)) {
      	return plugin_rename_proceed($pages, $files, $exists);
      } else if ($pass != '') {
      	$msg = plugin_rename_err('adminpass');
      }
      if ($pass != '' ) {
      	return plugin_rename_proceed($pages, $files, $exists);
      }
      に変更
  • 280行目付近*1
     <label for="_p_rename_adminpass">{$_rename_messages['msg_adminpass']}</label>
     <input type="password" name="pass" id="_p_rename_adminpass" value="" />
    を削除して
     <input type="hidden" name="pass" value="dummy" />
    を追加

2011-04-25

検索結果のカスタマイズ/lib/func.php

  • デフォルトでは検索結果のページ名が表示されるだけで分かりづらいので、単語検索の結果表示を拡張する。
    /lib/func.phpを直します。
  • do_search関数をごっそり書き換える(置き換える)
    +  do_search関数
    • 大規模改修のためデフォルトのfunc.phpをコピーしてfunc1.phpとして保存し、func.phpを改造した。

2011-04-12

ページを編集した人のIPを記録する

  • 編集者のIPアドレスを管理出来るようにWikiを改造する。
  • lib/file.phpの90行目、links_update($page);の後ろに
    $fp = fopen(DATA_DIR.encode(':iplog').'.txt', 'a');
    flock( $fp, LOCK_EX);
    fputs( $fp, '|'.date("r").'|'.$_SERVER['REMOTE_ADDR'].'|[['.$page."]]|\n");
    flock( $fp, LOCK_UN);
    fclose( $fp);
    を書き加える。(ページ'iplog'に日付、REMOTE_ADDR、編集ページ名を追記する)

2010-07-30

一度にインクルードできるページの最大数を変更

  • 標準プラグインincludeのプラグイン内設定を変更(規定値4→10)
// Max pages allowed to be included at a time 
define('PLUGIN_INCLUDE_MAX', 10);

2010-04-12

追加プラグインmake_pages.inc.phpに関わる変更

  • 追加プラグインmake_pagesを使用するため以下をja.lngに追加。
    ///////////////////////////////////////
    // make_pages.inc.php
    $_make_pages_messages = array(
        'title_make_pages' => '連番ページ作成プラグイン',
        'title_success' => '成功',
        'title_error' => 'エラー',
        'msg_success' => '<p>以上のページを作成しました</p>',
        'msg_auth_error' => '<p>認証エラー</p>',
        'msg_error' => '<p>エラー。</p><p>引数の指定が間違ってませんか?</p>',
        'msg_prefix' => 'ページ名プレフィクスを記入<span class="new1">*</span>',
        'msg_first' => '始めの番号',
        'msg_last' => '終わりの番号',
        'msg_slash' => 'ページ名プレフィクスと連番の間の"/"の有無',
        'msg_slash_true' => '有',
        'msg_slash_false' => '無',
        'msg_list' => 'ページ名リスト(セパレータで区切る)<span class="new1">*</span>',
        'msg_post' => 'メッセージ',
        'msg_password' => '管理者パスワード<span class="new1">*</span>',
        'msg_body_start' => '必要事項を記入して実行ボタンを押してください。<span class="new1">*</span>印は省略できません。',
        'btn_exec' => '実行');

2010-03-02

追加プラグインtable_edit2のカスタマイズ

  • ボタン名称を日本語化
    • table_edit2.inc.php 1574行目付近
      $s_table_ok         = _('OK');
      $s_table_cancel     = _('cancel');
      $s_table_delete     = _('delete');
      $s_table_time_stamp = _('no time stamp');
           ↓
      $s_table_ok         = _(' 更 新 ');
      $s_table_cancel     = _('キャンセル');
      $s_table_delete     = _('削除');
      $s_table_time_stamp = _('タイムスタンプを変更しない');
  • データ更新時に誤って行削除をしてしまう事例がたびたび発生しているため削除ボタンをなくしました。(2010-06-15変更)
    行の削除を実施する場合は編集で実施のこと。
  • table_edit2.inc.php 1677行目付近
    $s_table_time_stamp
    $helptags
    $delete_or_addshow ←(この行を削除)
         ↓
    <input type="checkbox" name="notimestamp" />
    $s_table_time_stamp
    $helptags

2010-02-26

表示カスタマイズ

  • skin/pukiwiki.css.php
    • 表枠線の色を変更
      デフォルト設定ではヘッダー行指定時に枠線が見難いため変更を実施。
      .style_table {
         /* background-color:#ccd5dd; */  ←変更前(デフォルト)
         background-color:#90A0B0;     ←変更後
      }
    • 見出しフォーマット時のバックカラー変更
      h3 {
      	font-family:verdana, arial, helvetica, Sans-Serif;
      	border-bottom:  1px solid #DDEEFF; /* def=3 */
      	border-top:     1px solid #DDEEFF;
      	border-left:   15px solid #DDEEFF; /* def=10px */
      	border-right:  15px solid #DDEEFF; /* def=5px */
      
      	color:inherit;
      	background-color:#EEF7FF; /* def=FFFFFF */
      	padding:.3em;
      	margin:0px 0px .5em 0px;
      }
      h4 {
      	font-family:verdana, arial, helvetica, Sans-Serif;
      	border-left:    9px solid #DDEEFF; /* def=18px */
      
      	color:inherit;
      	background-color:#F8FAFF; /* def=FFFFFF */
      	padding:.3em;
      	margin:0px 0px .5em 0px;
      }

2010-02-25

データのバックアップ

Wikiのページを一括バックアップ
コマンド型プラグインなので以下のようにコマンドをうちこむ。

index.php?plugin=dump

その後は、画面の指示に従って操作していく。【要:管理者パスワード】


2009-12-15

Dangling link (未決定のリンク)の削除

  • Wikiの仕様上
    "WikiName" のように大文字で始まる単語を二つ以上連結したものは(自動的に)ページ名として扱われます。
    そのページが存在していない場合は Dangling link (未決定のリンク) が表示されます。
    このままだと不要なページが作成されてしまったりユーザーが混乱するためDangling link (未決定のリンク)を表示しないように変更する。

−変更内容

  • ja.lng.php の62行目付近のアポストロフィの間にある ? を消す。
    $_symbol_noexists = '?'; 
      ↓
    $_symbol_noexists = ''; 
  • pukiwiki.css.phpの200行目付近のnoexistsに関する記述を削除する。
    span.noexists {
    	color:inherit;
    	background-color:#FFFACC;
    }
      ↓
    span.noexists {
    }

2009-12-09

attach.inc.php ./plugin

  • 添付ファイルサイズの上限をデフォルトの1MBから50MBに変更する。
// Max file size for upload on PHP (PHP default: 2MB)
ini_set('upload_max_filesize', '2M');

// Max file size for upload on script of PukiWikiX_FILESIZE
define('PLUGIN_ATTACH_MAX_FILESIZE', (1024 * 1024)); // default: 1MB

// Max file size for upload on PHP (PHP default: 2MB)
ini_set('upload_max_filesize', '60M');

// Max file size for upload on script of PukiWikiX_FILESIZE
define('PLUGIN_ATTACH_MAX_FILESIZE', (50 * 1024 * 1024)); // default: 1MB

に変更


2009-12-08

pukiwiki.css.php

  • メニューバーの横幅を変更(デフォルト9em→16em)
    td.menubar {
    	width:16em;
    }
    div#menubar {
    	width:16em;
    }

2009-12-08

instag-2.3【テキストエリアの入力補助】

  • テキストエリアの入力補助としてテキストエリアの上部に装飾タグのアイコンを追加するプラグインを設置
  1. pukiwikiのskinディレクトリの中にjscriptsディレクトリをアップロード。( skin/jscripts )
  2. skin/pukiwiki.skin.php を編集し、<head></head>の間だに以下のコードを埋め込む。
    <?php if ($_GET['cmd']=='edit'|| isset($_POST['preview']) || isset($_POST['template']) || $_GET['plugin']=='paraedit' ) { ?>
    <script language="javascript" type="text/javascript" src="skin/jscripts/instag/instag.js" charset="EUC-JP"></script>
    <script language="javascript" type="text/javascript">
    	g_insTag.init({
    		theme : "pukiwiki",
    		mode : "textareas",
    		language : "ja_JP.utf8"
    	});
    </script>
    <?php } ?>

2009-12-08

ローカルファイルへのリンク追加(/lib/make_link.php)

(?:(?:https?|ftp|news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+

(?:(?:(?:\+?https?|\+?ftp|\+?news):\/\/|mailto:)[\S\/\@\$()!?&%#:;.,~'=*+-]+)
|
(?:\+?file:\/\/.+)

に変更

また

return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>';

if (ereg("^(\+)(.*)", $this->name, $regs)) {
  return '<a href="' . $regs[2] . '" target="_blank" ' . $rel . '>' . $this->alias . '</a>';
} else {
  return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>';
}

に変更


2009-12-08

insert.inc.php

  • デフォルトのままだと挿入文章毎に区切り線(hr)が入らない。
    plugin/insert.inc.php の中の
    $insert = ($post['msg'] == '') ? '' : "\n{$post['msg']}\n";
    $insert = ($vars['msg'] != '') ? "\n&date; \n{$vars['msg']}\n----\n" : '';
    に変更する事により区切線(hr)と挿入時のタイムスタンプを自動的に追加できるように改造
  • コメント入力欄の大きさ変更(デフォルトは70-5)
    define('INSERT_COLS', 100); // Columns of textarea
    define('INSERT_ROWS',  8); // Rows of textarea
  • コメント欄の下側に表示(デフォルトは1(上))
    define('INSERT_INS',   0); // Order of insertion (1:before the textarea, 0:after)

2009-12-08

ローカルサーバーへのPukiwiki設置

  • ローカルサーバーでWikiを稼働させるための準備
  • IISサービスの開始
    • 役割の追加でIISをインストールを実施
  • PHPのインストール
    • PHPの公式サイト(http://www.php.net )より「Non-thread-safe zip package」をダウンロード。
    • サーバー上「C:\php」フォルダ内に、解凍した「php-5.2.10-Win32」フォルダ内のすべてをコピー。
    • php.iniの設定
      PHPのフォルダの中にあるphp.ini-recommendedを編集してphp.iniを作成
      (1)「;open_basedir =」行の行頭の「;」を外し、値として「"C:\inetpub\wwwroot;C:\php\session;C:\php\upload"」と入力する。
      (2)「extension_dir = "./"」行の値を「"./"」から「"./ext"」に変更する。
      (3)「;session.save_path = "/tmp"」行の行頭の「;」を外し、値を「"/tmp"」から「"C:\php\session"」に変更する
        (実際に「C:\php\session」というフォルダを作っておく)。
      (4)「;upload_tmp_dir =」行の行頭の「;」を外し、値に「”C:\php\upload”」と追加する
        (実際に「C:\php\upload」というフォルダを作っておく)。
      (5)「; fastcgi.impersonate = 1」行の行頭の「;」を外す
      (6)「; cgi.fix_pathinfo=1」行の行頭の「;」を外す
      (7)「; cgi.force_redirect = 1」行の行頭の「;」を外し、値を「0」にする
      (8)「;extension=php_mysql.dll」 行の行頭の「;」を外す
      (9)「display_errors = Off」行の「Off」を「On」に変更する
  • なお、この後のステップで行うIISとphpの関連付け以降にphp.iniを編集した場合は、php.iniが再読み込みが必要になる。
    • 「IISマネージャ > コンピューター名 > アプリケーションプール」をクリックし、
    • phpと関連付けられたアプリケーションプール(標準では「DefaultAppPool」)をクリックし、
    • 操作パネルから「リサイクル」をクリックを実施
  • コマンドインタープリタからphpを実行できるようにPathの設定実施
    • 「スタート > コンピューター」で右クリック
    • 「プロパティ > システムの詳細設定 > 環境変数」で「システム環境変数」の「Path」を編集し「C:\php;」を変数値の先頭に追加。
  • FastCGIをIISで使えるようにする
    • IISにCGIの役割サービスを追加
      「サーバーマネージャ > 役割 > Webサーバー(IIS)」を開き、「役割サービスの追加」をクリックし、
      「アプリケーション開発のCGI」にチェックを入れて「次へ > インストール」
    • IISとの関連付け
      「IISマネージャ > コンピューター名」を選択し、
      機能の中から「ハンドラマッピング」を開く。
      右の操作パネルの「モジュールマップの追加」をクリックし、
      「モジュールマップの追加」の画面に以下のように入力し次に進む。
      要求パス: *.php
      モジュール: FastCgiModule
      実行可能ファイル: C:\php\php-cgi.exe
      名前: PHP via FastCGI
  • Perl(ActivePerl)のインストール
    • 公式サイト(http://www.activestate.com/activeperl/ )からx86版(32bit版)をダウンロード
      • ダウンロードしたインストーラーを実行しインストールを開始
        ライセンスに同意し、後は画面に従って進めていくだけでインストール完了
    • PerlとIISの関連付け
      • 「IISマネージャ > コンピューター名 > ハンドラマッピング > スクリプトマップの追加」をクリックし
        「スクリプトマップの追加」画面が表示されるので、以下のように入力する。
        要求パス: *.cgi
        実行可能ファイル: C:\Perl\bin\perl.exe “%s” %s
        名前: Perl via Script Map
        「このISAPI拡張機能を有効にしますか?」と聞かれるので、「はい」をクリック
        同様に「*.pl」の場合のマッピングも追加
        要求パス: *.pl
        実行可能ファイル: C:\Perl\bin\perl.exe “%s” %s
        名前: Perl via Script Map (pl)
  • Pukiwikiのインストール
  • mysqlのインストール
    • MySQLの公式サイト(http://dev.mysql.com/downloads/mysql/5.1.html )にある「MySQL Community Server」の最新版をダウンロード
      ・文字コードセットの設定個所
       (「Please select the default character set.」)で「Best Support For Multilingualism」を選択。
      ・Pathの設定個所
       (Please set the Windows option.」の「Include Bin Directory in Windows PATH」)にはチェックを入れる。
       「Please set the security options.」の「Modify Security Settings」ではrootの新しいパスワードを入力する。
  • wordpressのインストール

Wikiの使い方


*1 HTMLタグ内部の記述になるので//によるコメントアウトは不可
*2 ローカルサーバはその時の気分と勢いでUTF-8版にしてみた。こちらのサイトはノーマル版