Q&A/プラグイン

主なFAQ
PukiWikiのプラグイン・デフォルトプラグインについてよくある質問

下記のページも参考にしてください。


プラグイン

Q. プラグイン名を大文字で書くと動作しない

A.PukiWiki1.4*にて、articleやmemo等、一部のプラグインの呼び出しを大文字で書くとプラグインが動作しないバグがありました。
現在では、既にこのバグは修正されています。(もしもこのバグが疑われる場合にはバージョンアップしてください)

Q. 自作プラグインで紹介されているプラグインの導入方法は?

インストールについて特別な説明が無い場合は以下の 手順に従って下さい(プラグインによっては手順が異なる場合があります)。
配布されているファイル名が「xxxx.inc.php.1.4」のように末尾にバージョン などが付加されていたりすることがありますが、
その場合は「xxxx.inc.php」 のように、他のプラグインと同じように変更して下さい。
保存先はPukiWikiのディレクトリの下にある、pluginディレクトリに保存(アップロード)します。
パーミッション(プラグインは644)も、他のプラグイン同様にあわせておきます。

Reference カスタマイズ

Q. プラグイン国際化をしたいのですが

Q.続き
スキンやメッセージなどの日本語以外の言語対応はUI_LANG 設定(1.4.4 までは、LANG 設定)を変更することで対応できますが、プラグインの国際化はどのようにするの?

A. プラグイン内での表示メッセージは、

  1. ja.lng及びen.lngで設定する
  2. ja.lng、en.lngで設定されていない場合の初期値については、プラグインのfunctin plugin_xxxx_init()の中で$messages配列に設定しset_plugin_messages($messages)で設定する。

という方法が推奨されています。
この方法で設定されているプラグインについては、UI_LANG(LANG) 設定を変更することで自動的にメッセージが切り替わります。
残念ながらこの方法を採用しているのはまだ一部のプラグインだけで、日本語メッセージを直書きしているプラグインが残っています。
設定をen にした時に、プラグイン内で日本語メッセージが直書きされている部分で文字化けした場合には、dev:BugTrackでそのプラグイン名を報告していただくと、修正が優先的に行なわれますので、ご報告ください。

また、上の方法以外に、set_plugin_messages() を使わずに、プラグイン名を冠した定数を(defindで確認してから)設定する方法もあります。

Q. プラグインの改造をするにはどうすればよいですか

A. dev:PukiWiki/Plug-inの仕様のページを参考にして下さい。

他に、1.4.5 以降にはプラグインのサンプルとして、stationary プラグインが同梱されています。
プラグインがどのような仕組みで動作しているのかを知る参考にして下さい。

A

Q. articleがうまく動作しない

A.#articleの後に改行は入っていますか? 改行がなく文章が続いている場合、動作がおかしくなることがあります。
またPukiWiki1.3.4にて、articleプラグインの改行に関するバグがありました。
現在ではこの問題は解決されていますので、該当バージョンを使用している場合には、最新のarticleプラグインを使うようにしてください。

Q. 見出しに固定アンカーanchorをつけたい

A. pukiwiki.ini.php内に「見出し行に固有のアンカーを挿入する」という項目があります。
これを以下のように$fixed_heading_anchor = 1と設定してください

/////////////////////////////////////////////////
// 見出し行に固有のアンカーを自動挿入する
$fixed_heading_anchor = 1;

Wiki ソースの見出しの横に [#o87a2774] のようなアンカーが自動的に挿入され、http://PukiWikiアドレス/?ページ名#o87a2774 のようにブラウザからアクセスことで、見出しに直接飛んでいくことが可能です。
固定アンカーをつけないでいると、ページ中の見出しの数が変わる度にアンカーが変わってしまいます。外部のページからアンカー付きのリンクを貼っても、将来も有効に働くか怪しいわけです。固定アンカ-でその問題を解決できます。

B

Q. BugTrackの状態の変更は手動で切り替えるしかない?

A.BugTrack プラグインにて「提案」 で追加した内容を、後から「着手」などに状態変更させたい場合には、基本的には手動で直接内容を書き換える必要があります。
BugTrackプラグインとよく似たTrackerプラグインの高機能版である自作プラグイン/tracker_plus.inc.php自作プラグイン/listbox3.inc.phpの組み合わせによって、セレクトボックスを使っての状態変更が可能なインターフェースを実現できます。

Q. bugtrackで作ったページを削除した時にbugtrack_listでの一覧表示時に残る時がある

A.ページ名を指定してバグトラックを投稿した場合、指定したページ名のほかにそのページへのリンクを記録した「設置ページ名/数字」のページを作成しますので、このページを削除してください。

Reference 質問箱/299

C

Q. calendar_viewでのSegmentation fault

A. 続・質問箱/18

Q. counterのIPチェックを外したい

A. counter.inc.phpの114~119行でipが異なればカウントアップするという処理が行なわれています。IPは配列$defaultの一部なので、その部分だけでなくcounter.inc.phpのあちこち変更する必要があります。ただしIPチェックをはずすと、カウンタの態をなさないと思いますが…

Q. counterの値をPukiWiki外と共用したい

A. 続・質問箱/13

Q. &colorの中での「{」や「}」の表記方法

A. 続・質問箱/7

Q. counterを1からでなく特定の数値から開始する方法はありますか?

A. 続・質問箱/42

L

Q. ページの更新日時を表示させたい

A. lastmod プラグインをご利用ください。

Reference 質問箱/213 (lastmod プラグインが添付ファイルとして存在)

M

Q. memoプラグインを入れると画面の幅が広くなる

A. memo.inc.phpの下記の部分の数値を書き換えて調整してください。

define('MEMO_COLS', 60); // Columns of textarea

Reference 質問箱/285

N

Q. &new{日付};のフォントサイズを変えたい

A. comment_dateのclassに対するCSSでのフォントサイズ指定を削除すれば、&size(9){&new{...};};というように指定してフォントサイズを自由に変えられます。

具体的には、pukiwiki.css.phpの span.comment_dateを下記のように空にしてください。

span.comment_date { }

Reference 質問箱/206

P

Q. paintが動かない

Q.続き
PukiWiki 1.4標準プラグインのpaintの説明に従いBBSPainter.jarを入手し、pukiwiki.ini.phpと同じディレクトリに放り込んだのですが、うまく動作しません。

A. 以下の項目をチェックしてみてください。

  1. 各ブラウザ用のプラグインはインストールしたか確認してください。
  2. Java ConsoleがONになってるのなら、OFF(「開始しない」)にしてみてください。
  3. Windows XPでは、SunのJavaがうまく動かないことがあるようです。SunのJavaの代わりに、MicrosoftのJavaを試してみてください。
  4. paint.inc.phpの151行目あたりの「archive="BBSPainter.jar"」という記述を「archive="/BBSPainter.jar"」に書き換えてみてください
  5. ファイル名が「bbspainter.jar」となっていたら、「BBSPainter.jar」に変更してみてください。

Reference 質問箱/217

Q. ページ名置換(&page;)が置換されない

A. PukiWiki 1.4rcX の場合は、pukiwiki.ini.php の中で以下のユーザー定義が行なわれているか確認してください。

// ユーザ定義ルール(直接ソースを置換)
$str_rules = array(
	'&now;' => format_date(UTIME),
	  <<   中略   >>
	'time\?' => get_date($time_format),
	'&page;' => substr($page,strrpos('/'.$page,'/')),
	'&fpage;' => $page,
);

(パッケージの)PukiWiki 1.4 以降の場合は、rules.ini.php の$str_rules 中で次のような定義となります。

	'&page;' => array_pop(explode('/',$vars['page'])),

ただし、PukiWiki 1.4rc4では不具合があったようです。詳細は質問箱/286を参照してください。

Reference 質問箱/286

Q. MenuBarのpopularが最新のものにならない

A. 続・質問箱/40

R

Q. 違うバージョンのRSSを出力したい

A. デフォルトのスキンにリンクアイコンがありませんが、RSS1.0を出力することが出来ます。(?cmd=rss10)
PukiWiki1.4.5 以降ではRSS1.0(?cmd=rss&ver=1.0)、RSS2.0(?cmd=rss&ver=2.0)を出力することができます。

Q. refで添付ファイルの画像が表示されない

A. 続・質問箱/6, Q. 添付ファイルが表示できない

Q. recentで特定のページを「最新の*件」からチェック除外

A. pukiwiki.ini.phpの中の$non_listに除外したいページ名を正規表現で指定すれば、recentプラグインで表示されません。
ただし、設定変更後にキャッシュを再生成しないと、反映されない場合があります。

Q. recentの表示件数が一定以上表示できない

A. pukiwiki.ini.phpの$maxshowを大きくしてみてください。

pukiwiki.ini.phpの$maxshowはRecentChangesのページに保存する件数を指定します。recentプラグインの引数では、RecentChangesに保存されたうちの何件を表示するかを指定します。したがって、$maxshowで指定した数値よりも大きい数値をrecentプラグインの引数で指定しても$maxshowで指定した数値になります。

Reference 質問箱/260

Q. recentで「最新の~件」の表記を変えたい

A. ja.lngの312行目付近の$_recent_plugin_frameの値を変更してください。例えば「更新された~ページ」と表示するには、

$_recent_plugin_frame = '<h5 class="side_label">最新の%d件</h1><div class="rec_list_box">%s</div>';

これを以下のように書き換えます。

$_recent_plugin_frame = '<h5 class="side_label">更新された%dページ</h1><div class="rec_list_box">%s</div>';

Reference 質問箱/403

Q. MenuBarのrecentが最新のものにならない

A. 続・質問箱/40

Q. relatedが$non_listで指定したページに対し動かない

A. 正しい動作です。$non_listはリストから除外するページを正規表現で記述するものです。#relatedもその扱いに従っています。
デフォルトの設定では

$non_list = '^\:';

となっているので、半角コロン「:」から始まる名前のページ名は除外されます。

Reference 質問箱/269

Q. バージョンアップしたらrelatedで出力していたリストの一部が表示されなくなった

A. PukiWiki/1.4/Manual/Plugin/L-N#m5bbd018のlinksを使ってページ間のキャッシュを更新してください。

Reference 質問箱/270

Q. relatedで表示される一覧から特定のページを除外するには

A.現在、制御方法はありません。
が、InterWikiNameを利用すると#relatedに表示されなくなりますので、そうした方法を用いることで。やや変則的になりますが実現は可能です。

Q. relatedの一覧で、閲覧制限のかかったページの表示について

A. 続・質問箱/36

Q. RSS が正しく動作しない

A. Q. バナー広告表示型サーバで運営すると添付やRSSなどが正しく動作しない

S

Q. URL に検索ワードを含めて検索しようとしても、検索結果が表示されない(検索を呼び出すだけになる)

Q.詳細 InterWikiName やlookup プラグインなどを利用してURL に検索ワードを含め、そのURL からアクセスした場合に検索結果が表示されず、検索フォームを呼び出すだけになってしまう。

A. spam や負荷への対策のため、デフォルトではGET メソッドを経由して検索できないようになっています。ページ内容に検索フォーム埋め込みたい場合は、search プラグインを使うようにしてください。

#search()

ローカルで利用しているなど安全が確保されている場合は、各自の必要においてsearch プラグインの設定を、GET メソッドの受け入れを許可するように変更してください。

Reference dev:BugTrack/796, search プラグインのマニュアル

Q. showrssで「can't open http://*****」と表示される

A. 利用している環境がプロキシを経由していないか確認してください。

Reference 質問箱/164

Q. showrssでプロキシを使ってRSSを表示させたい

A. 簡単な操作では難しいです。意欲があれば、以下を試してみてください。

  1. http://www.php.net/manual/ja/ref.curl.php で定義されている cURL を使って #showrss を書き換える
  2. お使いの環境に、プロキシ経由でファイルを取得できる方法を探す
  3. dev:保守ツールを利用する

Reference 質問箱/164

Q. showrssで「xml extension is not loaded」

A. 続・質問箱/10

Q. &sizeの中での「{」や「}」の表記方法

A. 続・質問箱/7

T

Q. templateプラグインの使い方を知りたい

Q.続き
ヘルプのプラグインマニュアルのtemplateの説明文や、質問箱を読んでみたのですが、どうしてもtemplateの使い方が理解できません。具体例で説明してもらえないでしょうか。

A. まず、あらかじめテンプレートとなる定型文章を書いたページを任意のページ名で作成しておきます。テンプレートを使って新規ページを作成するときに、

http://hogehoge.com/pukiwiki.php?plugin=template&refer=テンプレートページ名

をブラウザのアドレスバーに入力すれば複写画面になります。複写の範囲(複写開始行と複写終了行)を指定し、新規作成ページ名を入力すると、テンプレートが複写された状態で新規ページ作成画面になります。
上のように説明しましたが、&refer=で指定するテンプレートページ名はURLエンコードされている必要があるため、毎回手入力するのは難しいです。1.4.1 以降では複写のアイコンメニューを用意してあります。
それ以前では、PukiWiki-officialのようにスキンに複写用のアイコンメニューを用意しておくことをおすすめします。スキンのアイコンメニュー部分に下記のものを追加すれば、複写用のメニューが表示されるようになります。

<?php if($fmt) { ?>
<a href="<?php echo "$script?plugin=template&amp;refer=$r_page"?>">
<img src="./image/copy.png" width="20" height="20" alt="複写" 
 title="複写" /></a>
<?php } ?>

Reference 質問箱/281, dev:PukiWiki/1.4/マニュアル/テンプレート

Q. テンプレートに&date;を置き新規ページに自動的に日付けが入るようにしたい

A. 次の手順でテンプレートを作成してください。

  1. 一時的にpukiwiki.ini.php(rules.ini.php) にある$str_rules の中の'&date\?' と'&date;' の定義の行頭を // でコメントアウト
  2. &date;(またはdate;)を記入したテンプレートを作成・保存
  3. pukiwiki.ini.phpのコメントアウトを元に戻す

Reference 質問箱/181, dev:PukiWiki/1.4/マニュアル/テンプレート


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-03-03 (日) 19:11:38
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 1.040 sec.

SourceForge