Trac Wiki 動的変数を使用したマイルストーンレポートの作成方法

このQ&Aのポイント
  • Trac Wikiを使用してプロジェクトのマイルストーンごとにレポートを作成する方法を紹介します。
  • マイルストーン名の変更をせずにレポートの内容を同じにするために、リンク元で動的変数を利用する方法を提案します。
  • しかし、現在の方法ではうまくいかないようです。別の解決策を探す必要があるかもしれません。
回答を見る
  • ベストアンサー

Trac Wiki 動的変数

TracLighting を使用しています。 マニュアルや様々なサイトを調べましたが、 回答が得られず、ここに質問させていただきます。 すでに、議論されているのでしたら御容赦願います。 プロジェクトのマイルストーンごとにレポートを作成しようと 考えています。たとえば、 [[TicketQuery(format=table,milestone=MS1,col=id|summary)]] のように、そのマイルストーンに関係するチケットを表示させたり、 グラフ化したりしたいと考えています。 テンプレートは完成しましたが、ただ、マイルストーンが新設されるたびに、 マイルストーン名(上記ではMS1)の変更をしなければならず、煩雑です。 そこで、 リンク元では、 [wiki:MilestoneReport?MS_NAME=MS1 MilestoneReport MS1] [wiki:MilestoneReport?MS_NAME=MS2 MilestoneReport MS2] として、MilestoneReport では、 [[TicketQuery(format=table,milestone=$MS_NAME,col=id|summary)]] というように、リンク元でマイルストーンの名前を指定して、 レポートの内容は同じにしたく、考えています。 しかし、上記では上手くいかないようです。 このアイデアは、可能なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#251971
noname#251971
回答No.1

Trac Wikiに対するするパラメータは特定の決められたパラメータのみしか受け付けられず、ユーザ指定の任意のパラメータは渡せない(はず)なので質問内容の方法は不可能と思われます。 http://trac.edgewall.org/wiki/TracLinks#ParameterizedTraclinks 複数のレポートへのリンクを並べるだけであればクエリリンク([query:~~])を用いておこなうこともできますが、 「グラフ化したり~」とありますので、レポート以外の要素も含んだWikiページとして表示したいと言うことですよね。 上に示したリンク先でも記述がありますがSQLベースのレポートモジュールでは、 レポートに対する動的パラメータ指定を与えることが出来ますので、 レポートとレポートの説明欄にWikiFormattingによる記述を行って チケットリスト+αというのが出来なくはないとおもいます。 ただ、レイアウトが限られますし、説明欄の内容に動的パラメータが使えるわけではないので、 たとえばグラフ作成に対する部分には動的パラメータが適用出来ないかとおもいます。 # グラフが[[QueryChart]]マクロの場合にはqueryパラメータ省略記述を利用して出来る可能性も?試していませんが。 あとは、目的に合いそうなマクロを探してみるか、 自分で作成してみるなどぐらいでしょうか。。 http://trac.edgewall.org/wiki/WikiMacros#DevelopingCustomMacros

yan2005
質問者

お礼

回答、ありがとうございます。 やはりそうでしたか。 SQLも検討しましたが、思ったことが出来そうにないので、 この方法は諦めていました。 初心者の私にはマクロ作成するのは敷居が高そうなので、 Trac では存在しないページをクリックした時には、 テンプレートのフォルダーからテンプレートをメニューから選択し、 コピーすると思いますので、そのときに文字列変換できないか、 検討してみます。 ありがとうございました。

yan2005
質問者

補足

その後、試行錯誤して、  sed で、template内の MS_NAME を実際のマイルストーン名に変換し、  そのファイルを、trac-admin で、import して、  不本意な方法ですが、一応目的は達しました。 ありがとうございました。

関連するQ&A

  • MySQL:一つを除いてすべてのフィールドを選択

    こんにちは、 データベースにはTABLE1とTABLE2の二つのテーブルがあって、TABLE1からTABLE2に、一つのフィールドを除いてほかのすべてのフィルードを移すには、どうすればいいのでしょうか INSERT INTO TABLE2 SELECT * FROM TABLE1 WHERE field_name != ID みたいなものがないのでしょうか IDフィールド以外にほかのすべてのフィールドを移したい。 TABLE 2の構造は IDフィールド COL2 COL3 COL4 ... COL50 つまりCOL2からCOL50までのデータを移したいのですが、できればフィールドを一つ一つ書くのを避けたいのです。 詳しい方がいらっしゃいましたら。ご回答をよろしくお願いします。

    • ベストアンサー
    • MySQL
  • テーブル自体にページ内リンク

    テーブル自体にページ内リンクを貼りたいです。 以下のようにテーブルそのものにリンクを貼ると 正常に動作はするのですが、 htmlチェッカーで ”<table> を ×行目の <a>~</a> 内に書くことはできません。 ” という重大なエラーになってしまいます。 <a href="#r01">テーブルへ</a> <a name="r01" id="r01"><table class="table-01" summary="相談料金・弁護士費用のご案内"></a> そこで、以下のようにcaptionやthやtdにリンクを貼ってみたところ htmlチェッカーでのエラーは消えたのですが ブラウザによって正常にリンク先へ飛んでくれませんでした。 <caption><a name="r01" id="r01">××</a></caption> 上記だと、Firefoxだと正常に動きますがIEだと動きませんでした。 <th><a name="r01" id="r01">××</a></th> <td><a name="r01" id="r01">××</a></td> 上記だと、Firefox,IEともに正常に動きませんでした。 どのように修正したらいいのでしょうか? ご教授お願いいたします!

    • ベストアンサー
    • HTML
  • MySQL ERROR 1064

    下記のDDL文を出力し実行したところ、ERROR 1064となりました。 どのように修正すればいいでしょうか? よろしくお願いします。 create table summary_type ( summary_type_id INT not null comment 'summary_type_id' , summary_type_name VARCHAR not null comment 'summary_type_name' , summary_type_order INT not null comment 'summary_type_order' , constraint summary_type_PKC primary key (summary_type_id) ) comment 'summary_type' ;

    • ベストアンサー
    • MySQL
  • ファイルの内容が表示できるか?

    外部ファイルでお願いします。 参照ボタンから、何でもいいのでファイルを選びます。ファイル名がテキストボックスに表示されます。 下にあるYESボタンを押すと、その下にコメントアウト してあるテキストボックスが上記のID,ファイル名に追加されテキストボックスの中に参照ボタンから選んだ ファイルが挿入される。また、左のNOボタンを押すと その列が削除されるというやり方は可能でしょうか? <html> <head> <title>画面</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <table> <col width="100"> <col width="100"> <tr> <td> <input type="file" name="file"size="50"> </td> </tr> </table> <table border ="1"> <col width="50"> <col width="200"> <tr> <th>ID</th> <th>ファイル名</th> </tr> </table> <input type="button" name="yes" value="YES"value="" > <!-- <table border="1"> <col width="50"> <col width="200"> <tr> <td><input type="button" name="no"value="NO"value="" ></td> <td><input type="text" name="file" size="40" value=""></td> </tr> </table> --> </body> </html>

  • テーブルの情報が一部しか表示されません。(php)

    すべてのID分の提出状況を表示させたい("○"か"×")のですが、 id=1の提出状況しか表示されません。 テストデータはid=5までの5件を入力しています。 $recordSet2 = mysql_query('SELECT * FROM report'); をwhileにいれてみたり試行錯誤してみたのですが、上手くいきません。 ご指摘よろしくお願い致します。 プログラム <table width="70%"> <tr> <th scope="col"><bl>ID</bl></th> <th scope="col"><bl>教科名</bl></th> <th scope="col"><bl>課題名</bl></th> <th scope="col"><bl>担当教員</bl></th> <th scope="col"><bl>提出期限</bl></th> <th scope="col"><bl>再提出</bl></th> <th scope="col"><bl>再提出期限</bl></th> <th scope="col"><bl>提出状況</bl></th> </tr> <?php $recordSet = mysql_query('SELECT * FROM exercise ORDER BY id'); while ($table = mysql_fetch_assoc($recordSet)){ ?> <tr> <td><?php print(htmlspecialchars($table['id'])); ?></td> <td><?php print(htmlspecialchars($table['lessonname'])); ?></td> <td><?php print(htmlspecialchars($table['name'])); ?></td> <td><?php print(htmlspecialchars($table['teacher'])); ?></td> <td><?php print(htmlspecialchars($table['presentday'])); ?></td> <td><?php print(htmlspecialchars($table['represent'])); ?></td> <td><?php print(htmlspecialchars($table['representday'])); ?></td> <td><?php $recordSet2 = mysql_query('SELECT * FROM report'); $report = mysql_fetch_assoc($recordSet2); if ($table['lessonname'] == $report['lessonname'] && $table['name'] == $report['exercisename']) { if(eregi($member['name'], $report['upfile'])) { echo "○"; }else { echo "×"; } } ?></td> </tr> <?php } ?> </table>

    • ベストアンサー
    • PHP
  • テーブルの情報が一部しか表示されません。(php)

    すべてのID分の提出状況を表示させたい("○"か"×")のですが、 id=1の提出状況しか表示されません。 >>CODE $recordSet2 = mysql_query('SELECT * FROM report'); <<CODE をwhileにいれてみたり試行錯誤してみたのですが、上手くいきません。 ご指摘よろしくお願い致します。 プログラム >>CODE <table width="70%"> <tr> <th scope="col"><bl>ID</bl></th> <th scope="col"><bl>教科名</bl></th> <th scope="col"><bl>課題名</bl></th> <th scope="col"><bl>担当教員</bl></th> <th scope="col"><bl>提出期限</bl></th> <th scope="col"><bl>再提出</bl></th> <th scope="col"><bl>再提出期限</bl></th> <th scope="col"><bl>提出状況</bl></th> </tr> <?php $recordSet = mysql_query('SELECT * FROM exercise ORDER BY id'); while ($table = mysql_fetch_assoc($recordSet)){ ?> <tr> <td><?php print(htmlspecialchars($table['id'])); ?></td> <td><?php print(htmlspecialchars($table['lessonname'])); ?></td> <td><?php print(htmlspecialchars($table['name'])); ?></td> <td><?php print(htmlspecialchars($table['teacher'])); ?></td> <td><?php print(htmlspecialchars($table['presentday'])); ?></td> <td><?php print(htmlspecialchars($table['represent'])); ?></td> <td><?php print(htmlspecialchars($table['representday'])); ?></td> <td><?php $recordSet2 = mysql_query('SELECT * FROM report'); $report = mysql_fetch_assoc($recordSet2); if ($table['lessonname'] == $report['lessonname'] && $table['name'] == $report['exercisename']) { if(eregi($member['name'], $report['upfile'])) { echo "○"; }else { echo "×"; } } ?></td> </tr> <?php } ?> </table> <<CODE

    • ベストアンサー
    • PHP
  • PHP、mysql、html 表のセル内の文字列の長さによってセル幅が変わる。

    こんばんは。PHP・mysql共に初心者の者です。どなたかお知恵をお貸しください。以下に環境を記します。 Windows2000/sp5 Apache/2.0.55 PHP/5.0.5 MySQL 5.0 mysqlから取り出したレコードを<table>で表形式にて表示する物を作っておりますが、ヘッダ部と表示部を別々に<table>タグで囲んであるせいか、セルの大きさの整合性が取れなくなりました。 表示部では、データの文字列の長さによってそれぞれのセルの大きさが違っている状態です。ヘッダ部と表示部をまとめて<table>タグで囲んだり等、色々と試行錯誤しましたが、行き詰まりました。何か良いアイデアはないものでしょうか? 長くなりますのでwhile文からのソースを晒します。 while ($col = mysql_fetch_array($rst)) { $body .=<<<eof <table> <tr> <td NOWRAP><input type="checkbox" name="chk[]" value="{$col["id2"]}"></td> <td NOWRAP>{$col["id"]}</td> <td NOWRAP><a href='/meibo_view.php?id={$col["id"]}'>$col[name]</a></td> <td NOWRAP>{$col["age"]}</td> </tr> </table> eof; } $body = <<<eof <table> <tr> <th NOWRAP>詳細</th> <th NOWRAP>ID</th> <th NOWRAP>氏名</th> <th NOWRAP>年齢</th> </tr> {$body} </table> eof; mysql_free_result($rst); $con = mysql_close($con); ?>

    • 締切済み
    • PHP
  • リストから詳細画面に遷移するためのリンク作成と詳細画面の表示

    PHP5とMySQL4.0の組み合わせで、初歩的なことがわかりません。 例えば、(1)社員IDと、(2)年齢、(3)名前をリストアップする画面があるとして、 IDのところをハイパーリンクにして、それを押すとその社員の レコード内容を更新する画面を出す、みたいなことをしたいのですが、 これって method="POST" でなく、GETでやるのですよね? 「IDのリンク」とは、<a href="syain_detail.php?id=100">みたいなカタチに なるのでしょうが、具体的なスクリプトでご教示いただけないでしょうか。 単純に(IDへのリンクを考えずに)DBのレコードをPOSTでざーっと リストアップするHTMLまではできるのですが、 IDをハイパーリンクにして次の画面を構成するPHPがさっぱり わからないのです。下記、DBのサンプルと、わたしにわかるスクリプトです。 --------syainmaster---------- id   age  name ---------------------- 100   20   suzuki 200   24   sato 300   30   tanaka ----------------------- <?php   $con = mysql_connect(localhost, root, mypass);   $selectdb = mysql_select_db(mydb, $con);   $sql = "select * from syainmaster";   $rst = mysql_query($sql, $con);   $recmax = mysql_num_rows($rst);   $body = "<TABLE>";   for ($recnum = 0; $recnum < $recmax; $recnum++) {     $col = mysql_fetch_array($rst);     $body .= "<TR>";     $body .= "<TD>" . $col["id"] . "</TD>";     $body .= "<TD>" . $col["age"] . "</TD>";     $body .= "<TD>" . $col["name"] . "</TD>";     $body .= "</TR>";   }   $body .= "</TABLE>";   $con = mysql_close($con); ?> <HTML> <BODY> <?= $body ?> </BODY> </HTML>

    • ベストアンサー
    • PHP
  • フォームの値の再表示

    PostgreSQLのデータベースからPHPで問い合わせしたレコードをブラウザで更新するために問い合わせた結果をブラウザ上に表示させています。 $sql = "select col1,col2 from table where id = '$id' ;"; <form action = "update.php" method=post> タイトル: <input type="text"name="col1" value=<?print("$col1");?>> </form> $col1がスペースを含んでいるとこのフォームにはスペースの前まで文字列しか表示されません。 すべての文字列を正しく表示するためにはどういう方法が よいでしょうか?

    • ベストアンサー
    • PHP
  • 「未定義の変数」の定義について(PHP)

    ●質問の主旨 添付画像の左端に Notice: Undefined index: page in C:\xampp\htdocs\shop\index.php on line 3 ということで、未定義の変数ということでおしらせが出ています。 この表示を消すためにはどうすれば良いでしょうか? ご存知のかた、ご教示願います。 ●質問の補足 下記のコードで言えば、 $page =$_REQUEST['page']; のうち、pageが定義されていないことが、表示の原因である気がします。 しかし、どこをどう書き換えれば、表示が消えるのかが分かりません。 ●参考文献 たにぐちまこと「よくわかるPHPの教科書」(P210)の index.phpファイル ●開発環境 windows8 xammp1.8.1 ●コード <?php require('dbconnect.php'); $page =$_REQUEST['page']; if ($page == '') { $page = 1; } $page = max($page, 1); //最終ページを取得する $sql = 'SELECT COUNT(*) AS cnt FROM my_items'; $recordSet = mysql_query($sql); $table = mysql_fetch_assoc($recordSet); $maxPage = ceil($table['cnt'] / 5); $page = min($page, $maxPage); $start = ($page - 1) * 5; $recordSet = mysql_query('SELECT m.name, i. * FROM makers m, my_items i WHERE m.id=i.maker_id ORDER BY id DESC LIMIT ' . $start .',5'); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="style.css" /> <title>Webシステムをつくる</title> </head> <body> <div id="wrap"> <div id="head"> <h1>トップページ</h1> </div> <div id="content"> <p style="margin-top: 20px"> <table width="100%"> <tr> <th scope="col">ID</th> <th scope="col">メーカー</th> <th scope="col">商品名</th> <th scope="col">価格</th> </tr> <?php while ($table = mysql_fetch_assoc($recordSet)) { ?> <tr> <td><?php print(htmlspecialchars($table['id'])); ?></td> <td><?php print(htmlspecialchars($table['name'])); ?></td> <td><?php print(htmlspecialchars($table['item_name'])); ?></td> <td><?php print(htmlspecialchars($table['price'])); ?></td> </tr> <?php } ?> </table> <ul class="paging"> <?php if ($page > 1) { ?> <li><a href="index.php?page=<?php print($page - 1); ?>">前のページへ</a></li> <?php } else { ?> <li>前のページへ</li> <?php } ?> <?php if ($page < $maxPage) { ?> <li><a href="index.php?page=<?php print($page + 1); ?>">次のページへ</a></li> <?php } else { ?> <li>次のページへ</li> <?php } ?> </ul> </p> </div> <div id="foot"> <p><img src="images/txt_copyright.png" width="136" height="15" alt="(C) H2O Space. MYCOM" /></p> </div> </div> </body> </html>

    • ベストアンサー
    • PHP