// メニュープラグイン
// $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|オープンソースを活用したシステムのご提案 エフユー
PukiWikiは Wiki(WikiWikiWeb) と呼ばれているもののひとつで、基本的に誰でも全てのページを作成・編集することができます。
また、編集には特別な知識を要することなく、簡単なルールに従うだけで整形されたHTML文書を生成できます。
- 漢字をサポートしています。日本語のページ名もOK!
- 全てのデータはテキストファイルに保存されます
- 定期的にバックアップが保存されるので、復旧も簡単
- ページ単位の凍結なども可能です
- URLを短く表現できるInterWikiをサポート
- PHPで書かれています
- ライセンスはGPL*1です
リンク
†
関連ページ
†