// メニュープラグイン
// $Id: chrome.inc.php 13 2008-07-15 09:51:12Z AKKO $
//
// #chrome(メニュー用のデータページ[,mode[,top]])
// |00|トップ|[[index]]|
// |10|はじめに|[[はじめに]]|
// |11|インストール|[[インストール]]|
// |12|初期設定|[[setup]]|
// モードはCSSの番号になる。
// 06/05/15 bug
// 08/02/20 new ver
// URL をSKINDIR
// top追加
function plugin_chrome_convert()
{
global $is_admin,$head_tags,$tag_xxx;
list($page,$opt,$top,$xn) = func_get_args();
$ret = plugin_chrome_string($page,$xn);
$url = SKIN_DIR.'chrome';
if( $ret != '' ) {
if($top){
$ret = "\n<div class=\"chromestyle\" id=\"chromemenu\" style=\"position:relative; top:".$top."px;\">".$ret;
}else{
$ret = "\n<div class=\"chromestyle\" id=\"chromemenu\" style=\"position:relative; top:0px;\">\n".$ret;
}
$ret .= "<script type=\"text/javascript\">\n";
$ret .= "cssdropdown.startchrome(\"chromemenu\")\n";
$ret .= "</script>\n";
if( $opt < 1 ) $opt = 1;
$tx1 = "<link rel=\"stylesheet\" type=\"text/css\" href=\"$url/chromestyle$opt.css\" />\n";
$tx1 .= "<script type=\"text/javascript\" src=\"$url/chrome.js\">\n";
$tx1 .= "</script>\n";
$head_tags['chrome'] = $tx1;
}
return $ret;
}
function plugin_chrome_string($page, $xn)
{
if (!is_page($page)) {
return '';
}
if($xn < 10 ) $xn = 150;
$mode = 0;
$mmnue = "<ul>\n";
//|メニュー位置|表示名|ジャンプ先|
foreach (get_source($page) as $line)
{
if ( preg_match('/^\|(.*)\|(.*)\|\[\[(.*)\]\]\|$/', $line, $m)) {
if( $m[3] != '#' ){
// $url = sd_url($m[3]);
if( is_url($m[3])){
$url = $m[3];
}else{
$aa = make_link('[['.$m[3].'>'.$m[3].']]') ;
preg_match('/href="(.*)" title="/', $aa, $mu);
$url = $mu[1];
}
}else{
$url = "#";
}
switch ($m[1]) {
case '00':
$mmnue .= "<li><a href=\"".$url."\" %%0%%>".$m[2]."</a></li>\n";
break;
case '10':
case '20':
case '30':
case '40':
case '50':
case '60':
case '70':
case '80':
case '90':
$mmnue .= "<li><a href=\"".$url."\" %%".$m[1]."%%>".$m[2]."</a></li>\n";
break;
default :
$menutbl[$m[1]] ="<a href=\"".$url."\">".$m[2]."</a>\n";
break;
}
}
}
$mmnue .= "</ul>\n</div>\n";
$mmnue2 = '';
for($j = 0; $j < 100 ; $j= $j+10){
$tmnue= '';
for( $i = $j+1 ; $i < $j+10; $i++){
if($menutbl[$i]) $tmnue .=$menutbl[$i];
}
if( $tmnue ) {
$mmnue2 .= "<div id=\"dropmenu". $j/10 ."\" class=\"dropmenudiv\" style=\"width: ".$xn."px;\" >\n" ;
$mmnue2 .= $tmnue;
$mmnue2 .= "</div>\n";
$mmnue = str_replace('%%'.$j.'%%'," rel=\"dropmenu" . $j/10 . "\"",$mmnue);
}else {
$mmnue = str_replace('%%'.$j.'%%',"",$mmnue);
}
}
return $mmnue .$mmnue2;
}
?>
PukiWiki/1.4/Manual/Plugin/V-Z|オープンソースを活用したシステムのご提案 エフユー
version
†
- 種別
ブロック型プラグイン
インライン型プラグイン
- 重要度
★☆☆☆☆
- 書式
#version
&version;
- 概要
インストールされているPukiWikiのバージョンを表示します。
versionlist
†
- 種別
コマンド
ブロック型プラグイン
- 重要度
★☆☆☆☆
- 書式
?plugin=versionlist
#versionlist
- 概要
pukiwiki.phpのあるディレクトリとpluginのディレクトリ内のphpファイルのバージョンを表示します。
vote
†
- 種別
コマンド
ブロック型プラグイン
- 重要度
★★☆☆☆
- 書式
- #vote(
選択肢1[選択肢1の投票数]
[,選択肢2[選択肢2の投票数]
[,選択肢3[選択肢3の投票数]…
[,選択肢n[選択肢nの投票数]]]
)
- 概要
選択肢と投票数と投票ボタンが並んだ簡易投票フォームを表示します。
- 引数
選択肢1〜nに投票項目を指定します。投票項目に続けて半角大括弧"[]"で括った数値を指定すると選択肢の投票数を指定できます。
- 備考
各選択肢の投票数は編集によって容易に改竄できるため、厳密な投票には向きません。
yetlist
†
- 種別
コマンド
- 重要度
★★☆☆☆
- 書式
- ?plugin=yetlist
- 概要
まだ作られていないページを一覧表示します。
まだ作られていないページとは、既存のページでWikiNameあるいはBracketNameで指定されていて、まだ作られていないページです。
- 備考
自分以外の誰かがページを書くかもしれないという点は非常にWiki的ですが、実際の運用面ではcommentに記述された一見さんの名前やWikiName同様のパラメータ名など、ページ化しにくいキーワードが大量に引っかかってしまいます。