Q&A/プラグイン/trackerプラグイン

主なFAQ
プラグイン「tracker(tracker.inc.php)」関連

関連ページ

引数の説明
:config ページでの設定の説明

関連の深いプラグイン(ここに挙げた他にも、貴方のアイデア次第ではまだあるかもしれません. また新しいプラグインが登場しているかもしれません.)

こんなページを設定したい

質問箱、BugTrack、ToDoリスト、ゲストページ、Linkリストなどがありますが、 どのように使うかは貴方のアイデア次第です.

Q. officialの質問箱のような機能を実現したい

A. tracker プラグインをお使いください。これは、pukiwiki-1.4 以降で利用可能です。
1.3・1.4用 には 類似のプラグインとして、bugtrack プラグインが存在します。 (tracker プラグインは、これを汎用の目的に利用できるように拡張したプラグインです。)
項目の追加や、削除、表示内容の変更などといったカスタマイズについては、trackerプラグインの関連ページをご覧ください。

( 質問箱/176, 質問箱/212, 続・質問箱/43 , 続・質問箱/411, 質問箱3/120, 続・質問箱/173, 質問箱4/308 )

Q. trackerで ToDoリストを作成したいのですが、どういった設定が必要ですか?

Q.続き

#tracker(Todo) としてページを編集すると

config file 'ObjectTodo' not found.

と、なってしまいます

A. まずは tracker のプラグインヘルプをご覧ください。

テンプレートは基本的に設置するtracker毎に1組(4ページ)作成します。 以下のページを参考にして、Todo 用のテンプレートページを :config/plugin/tracker/ 以下に作成してください。

( 質問箱/282 )

Q. ゲストページを設置したい

Q.続き

投稿フォームに対して回答すると、その定型フォームを元に記入結果を反映した、新しいページを作成する... といったことを実現したいですが、何を使えば可能でしょうか?

A trackerプラグインを使ってみてはいかがでしょうか?
なお振り分けを実現する方法としては、以下の記事が参考になると思います.

( 続・質問箱/208 )

Trackerプラグインへの要求/要望?!

Q. tracker_listで listboxプラグインを利用した状態変更はできませんか?

A. できません。

( 質問箱/386 )

Q. 投稿前にその内容を確認したいのですが、プレビュー機能はありませんか?

A. 今はありません。但し、この機能を追加するためのカスタマイズ内容が dev:BugTrack2/205で議論されています.

Q. 更新されたページは表示せずに、新規作製されたページのリストを表示させるには?

A. ページ名を指定して作成しなければ、trackerはページ名として昇順に数値をページ名割り振ります。例えばページ一覧などで、新しいtrackerに割り振られた新しい番号のページをチェックしてはどうでしょう?
但しtrackerのデフォルトの動作では、投稿ページの削除によって欠番が生じた場合、その番号を優先して次の投稿ページの名前に割り振るため、運用方法にも考慮が必要です。

( 続・質問箱/524 )

Q. 1度に表示する件数を制限して残りはページングで表示できませんか?

A. デフォルトのtrackerではページング はできませんが、tracker_list には、ページ内に表示する一覧件数の上限を設定するパラメータがあります。また 自作プラグイン/tracker_plus.inc.phpを試してみるという方法もあります.

( 質問箱3/29 )

Q. Trackerの投稿ページ名を、定義した項目や予約項目の組み合わせて作成できませんか?

Q.続き
投稿時の属性(年齢別や都道府県別など)によって以下のようにページを階層化させたいのです。

  • [listbox,チェックボックスでの選択項目]/[_date]
  • [選択項目1]/[選択項目2]/連番

A. カスタマイズが必要です。特定の項目のみの組み合わせであれば、改造パッチが提供されています。 teanan:自作プラグイン/tracker.inc.php

( 質問箱3/349, 続・質問箱/208, 質問箱/409 )

Q. tracker の textareaに記載したメッセージを、改行つきでtracker_listに出力するには?

A. pukiwiki.ini.phpの$line_breakを1に設定します。

( 続・質問箱/88 , 質問箱/344 )

Q. tracker の configページに記載する textarea のデフォルト値に 改行(&br;)を含めたい

A. カスタマイズをしないとできません。
カスタマイズの一例としては、tracker.inc.php 347行目あたりで以下のように一行追加します。

	function get_tag()
	{
		$s_name = htmlspecialchars($this->name);
		$s_cols = htmlspecialchars($this->values[0]);
		$s_rows = htmlspecialchars($this->values[1]);
		$s_value = htmlspecialchars($this->default_value);
+		$s_value = preg_replace('/&br;/',"\n",$s_value);
		return "<textarea name=\"$s_name\" cols=\"$s_cols\" rows=\"$s_rows\">$s_value</textarea>";
	}

こうすると &br; が改行に変換されますが、ただしこの中にテーブル表記を 設定したり、そもそも &br; を書いたりできなくなってしまいます。
trakcer での config ページの読み込みには、config.php が利用されていますが、 今の config.php(2004-06-23時点) ではなんでも自由に埋め込むのは無理っぽいです。

( 続・質問箱/226 )

初期設定について

Q.設定内容を変更するには、どのページを変更すればよいのでしょうか?

A :config/plugin/tracker/ 以下のページを変更します。tracker のプラグインヘルプをご覧ください。

( 質問箱/389 )

Q. 入力フォームと一覧を別々のページに分けて設置できますか?

A 第2引数を指定すれば、好きなページに配置できます。

しろくろのへや:tracker.inc.php参照。

  • 第2引数 : 投稿されたトラッキング項目を記録する基準ページの指定
    #tracker(hoge,記録ページ)
    のように指定すると、trackerによって作成されるページ名は 記録ページ/1,記録ページ/2...のようになります。リストも同様に
    #tracker_list(hoge,記録ページ)
    と指定することで、記録ページ配下の項目をリストアップするようになります。

( 質問箱/289, 続・質問箱/142 )

Q. trackerで投稿した内容を、異なるページでそれぞれ別のフォーマットで表示させることは可能ですか?

A 可能です。

configページ名の/tracker/の後に続く設定名と、フォーム/リストページを設置するページ名は同じである必要はありません。
list用の設定ページを追加し、#tracker_listの 第一引数にはリストの定義名、第二引数には #trackerの設置ページ名を設定を指定してください。

例:

  • #tracker 設定名:Sample1
  • #tracker 設置先ページ : BugTrack
    #tracker(Sample1)
  • #tracker_list 設置先ページ1 : BugTrack
    #tracker_list(Sample1)

  • 新しいlistフォーマット設定:
    :config/plugin/tracker/Sample1/list2 
  • #tracker_list 設置先ページ2 : BugList
    #tracker_list(Sample1/list2, BugTrack)

( 質問箱/323 , 続・質問箱/392 )

Q. 入力フォームを複数用意して、フォーム毎に異なる初期値を設定することは可能ですか?

A 可能です。(でも複数のリストフォーマットを用意するようにはいきません。)

:config/plugin/tracker以下の設定ページ(の組み合わせ)を複数用意し、記録ページを同じにしてください。

( 続・質問箱/196 )

Q. bugtrackの「状態」のところを簡単に書き換えるようにできませんか?

A tracker と listbox2 プラグインもしくはlistbox3 プラグインを 組み合わせれば実現可能です。

( 続・質問箱/12 , 質問箱/386 )

Q. tracker で作成されるページのコメントを階層的に記述するには?

A #comment を用いている場合、コメントの本文の先頭に マイナス 「-」を入れてやればいいです。 ただし特定のコメントに付ける事は、commentプラグインでは出来ないので、「編集」で直接編集します。但し、この方法でのコメントの階層はデフォルトでは 3 階層までです。

A もうひとつ の方法は、pcomment プラグインを使う方法です。 :config/plugin/tracker/.../page の comment を pcomment に置き換えます。この時の pcomment の設定では、以下のように第一引数([コメント記録ページ])に何も指定しないでおきます。

#pcomment(,,reply)

( 補足:reply 指定用のボタンの前にリストの - が表示を抑制する方法 )

CSSファイルに下記のものを追加すれば黒丸や白丸を消せます。

li.pcmt
{
	list-style-type: none;
}

ついでに下記も追加しておくと、少し幸せになるかもしれません。

input.pcmt
{
	text-indent: -2em;
	padding:0px 0px 0px 2em;
 	margin-right:.5em;
}

( 質問箱/288 )

Q. trackerのフォームで 添付ファイルの登録/tracker_listで添付ファイルへのリンクを表示させられますか?

A 可能です。file形式を利用します.
この時の注意点:ファイルアップロード時に、trackerは、attach.inc.php の機能を利用します. この時 attach.inc.phpの設定が管理人のパスワードを求める設定になっていると、ファイルが作成したページに添付できません. サイトの利用者が、悪意を持って、不適切なファイル(ウィルスに感染したファイルやコンテンツにそぐわないもの) を添付しないという前提がおける場合のみ、attach.inc.php の PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY の値をFALSEに変える必要があります.

- define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', TRUE);
+ define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', FALSE);

trackerの設定該当とその例を示します.

  • 設定概要
    1. (前提) trackerの定義ファイル(ここではsample)に、ファイル用のフィールド名を[attachfile]とします。
    2. :config/plugin/tracker/sample の *fileds に追加.
      |attachfile|添付ファイル|file|||
    3. :config/plugin/tracker/sample/form の適切な部分に[attachfile]を追加.
    4. :config/plugin/tracker/sample/page の適切な部分に#ref([attachfile]) または、&ref(): File not found: "[attachfile]" at page "Q&A/プラグイン/trackerプラグイン";を追加. (該当行をコメント行にしても構いませんが必要です)
    5. :config/plugin/tracker/sample/list に [attachfile] を追加.
      |..|..|..|~[attachfile]|h
      |..|..|..|&ref([attachfile]);|h
  • 設定サンプル
    • :config/plugin/tracker/sample
      * fields
      |項目名    |見出し      |形式|オプション|デフォルト値|h
      |reporter  |投稿者      |page|20        ||
      |attachfile|添付ファイル|file|          ||
    • :config/plugin/tracker/sample/form
      |RIGHT:       |LEFT:       |c
      |~投稿者      |[reporter]  |
      |~添付ファイル|[attachfile]|
      |>|CENTER:[_submit]        |
    • :config/plugin/tracker/sample/page
      * [_name]
      |RIGHT:|LEFT:|c
      |~投稿ページ|[_refer]|
      |~投稿者|[reporter]|
      |~添付ファイル|&ref([attachfile]);|
    • :config/plugin/tracker/sample/list
      |~[_page]|~[reporter]|~[attachfile]|h
      |[_page] |[reporter] |&ref([attachfile]);|

( 続・質問箱/427, 続・質問箱/609 )

Q. trackerプラグイン の予約項目の表示名を変更できませんか?

A1. 可能です。 ja.lngの$_tracker_messages の内容を変更してください。

( 続・質問箱/335 )

A2. 定義ごとに名前を変更したい場合には、fields 設定に予約項目を追加してください。

項目名見出し形式オプションデフォルト値
...............
_pageページめい

この例では、予約項目「_page」の表示名を「ページめい」に変更します。(空文字が出力されている場所は、設定が上書きされません)

表示のカスタマイズ

Q. tracker の予約項目、_name の枠の大きさを指定する方法はありませんか?

A tracker の設定 (デフォルトは :config/plugin/tracker/defaut という名前のページ) の fields セクションに以下のように _name の値を定義する事で、(内部的な)デフォルト値から変更できます.

項目名見出し形式オプションデフォルト値
...............
_nametext80

( 質問箱3/44 )

Q. tracker_list項目の幅を指定するには?

Q.続き

tracker_listで表示する項目が多く、また表がウィンドウ幅に合ってしまっているので、ある項目は縦書きのようになってしまいます。ブラウザのウィンドウ幅に依らずに、表の幅を固定するにはどうしたらよいですか?

A

default.ja.css の.style_table に table-layout: fixed;を指定した上で、list の レイアウト設定(デフォルトでは :config/plugin/tracker/default/list) で、書式指定行(行末にcを記述した書式を指定した行) を追加しセル幅も明示的に指定します.

|CENTER:50|LEFT:75|LEFT:40|LEFT:260|c
|~[state]|CENTER:~[_page]|CENTER:~[version]|CENTER:~[summary]|h
|[state]|[_page]|[version]|[summary]|

( 続・質問箱/317 )

Q. tracker_listでの _update の表示を変更する方法はありませんか?

Q.続き

tracke_listで[_update]の表示をより簡潔にしたいと思っています.
pukiwiki.ini.php での $date_format の指定は、コメントページなどの日付表示のフォーマットとして利用しており、tracker_list の _update のみ 特定の表示方法をさせたいと思っています.

A

コードのカスタマイズをすれば可能です. 以下に変更箇所と変更例を例示します.

(例)tracker_listの_updateのみ mm-dd と表示する場合.

  class Tracker_field_date extends Tracker_fileld
  {
 	function format_cell($timestamp)
	{
-		return format_date($timestamp);
+		return date("m-d", $timestamp + ZONETIME);
	}

( 質問箱3/108 )

tracker_listのソートの設定方法

Q. ページ内に設置したtracker_list によって表示される一覧のソート条件を指定できますか?

A 可能です.
tracker_listの第3引数で、リストのソート順序を指定できます.

( 続・質問箱/200 )

Q. 更新順にソートすることは可能ですか?

A 可能です.
"_past" という予約項目を list の項目や、ソート条件に利用すれば可能です.

( 続・質問箱/523 )

Q. tracker_listで複数の項目に対するソート指定はどうしたらよいですか?

A 最近のプラグインマニュアルには説明があります. そちらをご覧ください.

( 続・質問箱/486 )

Q. tracker_list のソートオプションには何がありますか ?

A 最近のプラグインマニュアルには説明があります. そちらをご覧ください.

( 続・質問箱/629 )

Q. 閲覧者がソート順を制御できるtracker_listの設定方法は ?

A ソートオプションを ASC/DESC の代わりに、SORT_ASC/SORT_DESC を利用すると、ユーザがソート順を変更するためのリンクがヘッダ部分に表示されるようになります. 
また trackerのlist設定( :config/plugin/tracker/XXXX/list ) では、header 部分に、trackerの設定( :config/plugin/tracker/XXXX ) で定義した項目名を用いる必要があります. (以下の例のように表示内容(状態) を直書きするとうまくいきません)

(良い例)
|CENTER:50|LEFT:75|LEFT:40|LEFT:260|c
|~[state]|CENTER:~[_page]|CENTER:~[version]|CENTER:~[summary]|h
|[state]|[_page]|[version]|[summary]|
(失敗例:状態と書いた部分がソートを指示するリンクにならない)
|CENTER:50|LEFT:75|LEFT:40|LEFT:260|c
|~状態|CENTER:~[_page]|CENTER:~[version]|CENTER:~[summary]|h
|[state]|[_page]|[version]|[summary]|

( 続・質問箱/631 , 質問箱3/111 )

フォームで投稿時に作成するページについて

Q. trackerで作成する(階層化された)ページの親ページはどこになりますか ?

A trackerおよびtracker_listの第二引数で「記録ページ」を指定しない場合、tracker や tracker_listを設置したページが「記録ページ」つまり 親ページになります.

( 続・質問箱/62 )

Q. trackerで作成されるページを階層化されたページにしたくないのですが可能ですか?

A できません.

( 続・質問箱/433 )

運用後の設定変更について

Q. 設置済みのtracker に、後から追加した項目を反映するには?

Q.続き :config/plugin/tracker/ の設定、form/listにも追加した項目を記述しました。フォームには反映されました(表示項目がふえました)が、そのフォーム上の(追加した項目の)テキストボックスに入力した値が、list に反映されません。反映させるにはどのようにしたらよいでしょう?

A 追加した項目に該当するフィールドは、trackerの各pageに反映されていますか? 新しいフォーマットに合致するよう、既存ページに項目を手で追加してください。
なお設定ページ間での、該当フィールド名の綴り間違えなどがないかどうかも確認してください。

( 続・質問箱/428 )

カスタマイズされたコードで実現されている機能

Q. tracker_list の一覧表示の際にフィルターをかけるには?

A デフォルトの tracker_list にフィルター機能はありません.
自作プラグイン/tracker_plus.inc.php 、あるいは、しろくろのへや:tracker.inc.phpで実現されているEnable Filter 機能を試してみてはいかがでしょうか?( しろくろのへや:質問箱/99 に公開先のURIが記載されているようです)

( 続・質問箱/202 )

Q. tracker の form に 入力補助用のカレンダーを持つ日付入力用のフィールドを設置できますか ?

A デフォルトの tracker_list にフィルター機能はありません. 自作プラグイン/tracker_plus.inc.php を試してみてください.

( 質問箱3/126 )

応用・その他

trackerは数千件のデータの登録に耐えられますか?

A 耐えられない可能性が高いです. サーバとなるマシンスペックに対し、どの程度まで実用に耐え得るのかわかりませんが、official の質問箱も、登録数が多くなり過ぎて、一覧表示に時間がかかり過ぎてしまうということで、続・質問箱という形で分割した経緯があります。

( 続・質問箱/208, 続・質問箱/291 )

Q. tracker で「追加」権限($edit_auth_pages の対象であってもページの追加ができてしまうのですが...

A dev:BugTrack2/121 に起票されていますが、まだ closeされていません. teanan さんによって tracker自体を認証必須に修正する改造パッチが提示されています.

plugin/tracker.inc.php(1.28): 104行目付近
		);
	}
-	if (!is_page($source))
+	if (!is_page($source) || !edit_auth($post['_base']))
	{
		return array(

( 質問箱3/211 )

設定方法・設置ミスなど

Q. tracker_listが思い通りに表示されません. 何が原因なのでしょう?

A ページ内容が反映されない不具合の原因としてよくある問題のひとつは、設定ファイルの設定ミスです.
trackerの設定ファイル(:config/plugin/tracker/XXX)の fields セクションで定義した項目名と、その配下の form/list/page で用いている項目名の名称が噛み合っていない可能性があります.
もうひとつは、設定ファイルと作成したページのレイアウトが合っていないことです.
これは、trackerのフォームによってページを作成後に、trackerの設定...特に page ファイルの設定変更によって、既存ページとのレイアウトの不整合が起きた時に生じます.

( 続・質問箱/646 )

Q. ページの文字数が多くなると、その項目がtracker_listの表示に失敗するのですが...?

A1. trackerの設定ページ(:config/plugin/tracker/XXX ) の page の設定内容から生成する正規表現と、フォームから生成したページとのレイアウトのミスマッチによる不具合の可能性があります.
見出し(*,**,***) で区切られた範囲において、tracker_listに転記する項目とそれ以外とを、混在させない方がよいようです.

不具合が起きた設定ファイルの例 (:config/plugin/tracker/XXX/page)

* [Summary] [#p7ce2136]
-お客さま:   [User]
-S営業:      [S_Eigyo]
-R営業:      [R_Eigyo]
-優先順位:   [Severity]
-状態:       [Status]
-カテゴリー: [Category]
-投稿日:     [_date]

#contents
** 概要 [#waba4dc8]
[Messages]
----

#comment

不具合を回避する方法

以下のようにすると発生しなくなります.( 初めの見出し(* [Summary]) から 次の見出し(** 概要)までの間から、#contentsを取り除いています.)

  * [Summary]
  -項目1: [Koumoku1]
  -項目2: [Koumoku2]
+ ** 目次 (この行を追加)
  #contents
  ** 概要

A2. 内部で利用しているPHP関数:preg-matchに長い文字列を処理をさせた時の不具合である可能性もあります. ( しろくろのへや:tracker.inc.php/44 を参照 )

trackerプラグインで「/page」の内容が長すぎると#tracker_listの表示に失敗する件に対するパッチ が公開されていますので、パッチを適用してフォーマットを見直して運用すれば、回避可能です.
そのほかの方法としては、dev:開発日記/2007-11-05 に挙がっている最新のものを利用するという方法がありますが、CVS版 のため発生したトラブルの原因が、バグなのかそれ以外(設定ミス)なのか、を判断できる必要があります。

( 質問箱3/69, 質問箱3/339, 質問箱4/21, 質問箱4/319, dev:BugTrack2/240 )

Q. trackerの使い方がよくわからないのですが、詳しい説明はありませんか?

A まず、プラグイン説明として PukiWiki/1.4/Manual/Plugin/S-U があるのでご覧ください.
さらに 作者であるぱんださんの しろくろのへや:tracker.inc.php が参考になるでしょう.
また、2006-03現在、メンテナンス中ということでアクセスできませんが、 merlinさんのサイトには listbox2プラグインを組み合わせたサンプルが掲載されていました.

( 質問箱3/229 )

Q&Aとしてまとめるつもりのないもの

Q&Aの対象リストとして一度はリストアップしましたが、 今更、Q&Aにしても仕方がないと考えているもの. 必要だと感じた方は書き起こしてください.


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

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

SourceForge