適当ですがこんな感じではどうでしょうか。
<?php
define('PLUGIN_TIMESTAMP_BTN','記入');
define('PLUGIN_TIMESTAMP_TIME_FORMAT','Y-m-d H:i:s');
define('PLUGIN_TIMESTAMP_COLLIDED_MSG','更新が衝突しました');
define('PLUGIN_TIMESTAMP_COLLIDED_BODY','<strong>アクションはキャンセルされました。戻って再度実行してください。</strong>');
function plugin_timestamp_convert()
{
global $vars, $digest,$script;
static $count=0;
$args = func_get_args();
$id = $count++;
$page = $vars['page'];
$r_page = rawurlencode($page);
$s_page = htmlspecialchars($page);
$btn_comment = (isset($args[0])) ? htmlspecialchars($args[0]) : PLUGIN_TIMESTAMP_BTN;
$string = <<<EOD
<div style="padding:5px;margin:1px;color:inherit;">
<form action="{$script}" method="post">
<input type="hidden" name="plugin" value="timestamp" />
<input type="hidden" name="refer" value="{$s_page}" />
<input type="hidden" name="timestamp_id" value="{$id}" />
<input type="hidden" name="digest" value="{$digest}" />
<input type="submit" name="timestamp" value="{$btn_comment}" />
</form>
</div>
EOD;
return $string;
}
function plugin_timestamp_action()
{
global $vars,$_title_updated;
if(!is_page($vars['refer'])) return false;
if (md5(@join('', get_source($vars['refer']))) != $vars['digest']) {
$retvars = array(
'msg' => PLUGIN_TIMESTAMP_COLLIDED_MSG,
'body' => PLUGIN_TIMESTAMP_COLLIDED_BODY .'<br/>'. make_pagelink($vars['refer'])
);
return $retvars;
}
$postdata = '';
$id = 0;
foreach (get_source($vars['refer']) as $line) {
if (preg_match('/^#timestamp/i', $line) && $id++ == $vars['timestamp_id']) {
$line = date(PLUGIN_TIMESTAMP_TIME_FORMAT,time())."\n";
}
else if (preg_match('/^\|(.+)\|([hHfFcC]?)$/', $line, $m)) {
$fields = explode('|',$m[1]);
$line = "|";
foreach($fields as $field){
if (preg_match('/^((LEFT:|CENTER:|RIGHT:|BGCOLOR\([^)]+\):|COLOR\([^)]+\):|SIZE\([^)]+\):)*)?#timestamp/i', $field,$n) && $id++ == $vars['timestamp_id']) {
$line .= $n[1].date(PLUGIN_TIMESTAMP_TIME_FORMAT,time()) . "|";
}
else $line .= $field . "|";
}
$line .= $m[2]. "\n";
}
$postdata .= $line;
}
$title = $_title_updated;
$body = '';
page_write($vars['refer'], $postdata);
$retvars['msg'] = $title;
$retvars['body'] = $body;
$vars['page'] = $vars['refer'];
return $retvars;
}
?>