bugtrack_status.inc.php

サマリbugtrackの状態書き換えプラグイン
リビジョン1.0
対応バージョン1.4.5_1で確認
投稿者a-isd
投稿日2006-03-17 (金) 18:42:28

概要

bugtrackは便利なんだが、ステータスを変える面倒くささを何とかしたいと思って作ったプラグインです。

状態のセレクションを出し、選んで「変更」ボタン1発で本文中の

-状態: 

で始まる行を見つけて書き換えます。「着手」とすべきところを「作業中」などど変えてしまい行が真っ赤になって慌てて書き換えることを無くせます。

どう動くのか試すには、プラグインをインストールし、

-状態:

#bugtrack_status

だけ書いたページを作ってみてください。

変更ボタンを押すたびに状態行を書き換え、変更履歴を残していきます。

説明

bugtrack_statusは引数をとります。

#bugtrack_status('提案','着手','テスト中','承認待ち','リリース待ち','完了','保留','却下')

の様に。取った引数がセレクションに現れます。

引数がない場合、bugtrack標準の

'提案','着手','CVS待ち','完了','保留','却下'

がセレクションになります。

bugtrackにこれを組み込むには、bugtrack.inc.phpを書き換え、bugtrackが新しくページを作る際のテンプレートに埋め込めばOKです。

ライセンス

CC-GNU LGPL

ソース

bugtrack_status.inc.php

<?php
/* Bugtrack Status plugin
 *
 * Licence: CC-GNU LGPL
 *
 * rev1.0 by ISHIDA,Akiya (email:ishida-pkw63h@kardia.co.jp) on 2006/3/17 
 */

function plugin_bugtrack_status_action()
{
	global $script, $vars, $now, $_title_updated, $_no_name;
	global $_msg_comment_collided, $_title_comment_collided;

	if (PKWK_READONLY) die_message('PKWK_READONLY prohibits editing');

	$oldpage  = get_source($vars['refer']);
	foreach ($oldpage as $line) {
		if (preg_match('/^-状態:/',$line)){
			$page[]='-状態: '.$vars['status']."\n";
		}
		elseif (preg_match('/#bugtrack_status/',$line)){
			$page[]='--'.$vars['status'].' '.$now."\n";
			$page[]=$line;
		}
		else $page[]=$line;
	}

	$title = $_title_updated;
	$body = '';
	if (md5(@join('', $oldpage)) != $vars['digest']) {
		$title = $_title_comment_collided;
		$body  = $_msg_comment_collided . make_pagelink($vars['refer']);
	}

	page_write($vars['refer'], join('',$page));

	$retvars['msg']  = $title;
	$retvars['body'] = $body;

	$vars['page'] = $vars['refer'];

	return $retvars;
}

function plugin_bugtrack_status_convert()
{
	global $script, $vars, $digest;


	if (PKWK_READONLY) return ''; // Show nothing

	$page  = get_source($vars['page']);
	foreach ($page as $line) {
		if (preg_match('/^-状態:\s(\S+)/',$line,$m)){
			$status=$m[1];
			break;
		}
	}

	$options = func_num_args() ? func_get_args() : array('提案','着手','CVS待ち','完了','保留','却下');
	$s_page = htmlspecialchars($vars['page']);
	foreach ($options as $v){
		$sels[]=sprintf('<option value="%s"%s>%s</option>',$v,($status==$v)?" selected":"",$v);
	}
	$sels = join('',$sels);

	$string = <<<EOD
<div>
<form action="$script" method="post">
  <input type="hidden" name="refer"  value="$s_page" />
  <input type="hidden" name="plugin" value="bugtrack_status" />
  <input type="hidden" name="digest" value="$digest" />
  <select name="status">
$sels
  </select>
  <input type="submit" name="bugtrack_status" value="変更" />
</form>
</div>
EOD;
	return $string;
}

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

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

SourceForge