バージョン | 1.4以降 |
---|---|
投稿者 | snailar |
状態 | 完了 |
投稿日 | 2005-10-14 (金) 19:59:17 |
日記に
+(通し番号)[分類](発想バランス)発想内容
という形式でアイデアを書いているのですが、 この通し番号(できれば発想バランスも)を自動でカウント・表示してくれるプラグインは作れないものでしょうか。
日記の具体例:
【日記/2005-10-13】
【日記/2005-10-14】
発想バランスはその日の1つ目のアイデアを出した時点では増えず、2つ目から増えます。(2005年10月14日にもうひとつアイデアを出せば、発想バランスは+2に増えます)これは一日1つは必ずアイデアを出さなくてはいけないためです(一日1つ出すのが最低条件だから1つ目はカウントしない)。アイデアを出さなければマイナスになります。
他のユーザーの方にも有用かどうかと聞かれると言葉が詰まりますが…よろしくお願いします。
<?php // PukiWiki - Yet another WikiWikiWeb clone // imarathon.inc.php v0.1 2005/10/20 function plugin_imarathon_inline() { global $vars; static $call_count = 1; $args = func_get_args(); if (preg_match('#^(.*)(\d{4}-\d{2}-\d{2})$#', $vars['page'], $matches)) { $base_dir = $matches[1]; $present_date = $matches[2]; } else return; $pattern = '#^' . $base_dir . '(\d{4}-\d{2}-\d{2})$#'; foreach(get_existpages() as $filename => $pagename) { if (preg_match($pattern, $pagename, $matches)) { $source = implode('', get_source($pagename)); if ($count = preg_match_all('/&imarathon\(.*\);/i', $source, $dummy)) { $data[$matches[1]] = $count; } } if ($pagename == $vars['page']) break; } $start_date = key($data); $dayspan = (strtotime($present_date) - strtotime($start_date)) / (24 * 60 * 60); array_pop($data); $idea_count = array_sum($data) + $call_count; $idea_balance = $idea_count - $dayspan - 1; ++$call_count; if ($idea_balance > 0) { $idea_balance = '+' . $idea_balance; } elseif ($idea_balance == 0) { $idea_balance = '±0'; } $string = '(' . $idea_count . ')[' . make_link($args[0]) . '](' . $idea_balance . ')'; return $string; } ?>&imarathon(wiki);のように使ってください。