↑その後 match を使うともっと楽なことがわかった…
<%if(match,blogid=8)%> でブログidで表示
<%if(match,REQUEST_URI=/)%><div id="flashue"><%else%>
<div id="menuue"><%endif%>
と書くとトップページとそれ以外で分岐できる。
<%if(match,REQUEST_URI=^(/hogehoge/hoge2/|/hoge3/)$,ereg)%>
こんな風に複数指定できます。 こちらにも詳しい情報あり 便利っす!
吹田まごの手サービス様のブログ
ちなみに…カテゴリーごとのbody を変更
<%if(category,catid,1)%>
<body id="dogran">
<%elseif(category,catid,2)%>
<body id="trimming">
<%elseif(category,catid,3)%>
<body id="train">
<%elseif(category,catid,4)%>
<body id="hotel">
<%elseif(category,catid,5)%>
<body id="charge">
<%elseif(category,catid,6)%>
<body id="staff">
<%else%>
<body id="home">
<%endif%>
ここのロールオーバーjavaを使って簡単にメニューの色を変更できます。
大阪のドックランぷらすわん様
ちなみに…
<%if(item,itemid,アイテムID)%> というような書き方は単純にはできないのでCSSで工夫するか… /nucleus/libs/actions.phpの
function checkConditionを改造する方法があるようです。スキンにおいてしか条件分岐できません。
function checkCondition($field, $name='', $value = '') {↑上記ネタ元:<%if(item,itemid,itemID)%>を実現する/nucleus/libs/ACTIONS.phpの改造
global $catid, $blog, $member, $itemidnext, $itemidprev, $manager, $archiveprevexists, $archivenextexists,$itemid;
$condition = 0;
switch($field) {
case 'category':
$condition = ($blog && $this->_ifCategory($name,$value));
break;
case 'blogsetting':
$condition = ($blog && ($blog->getSetting($name) == $value));
break;
case 'loggedin':
$condition = $member->isLoggedIn();
break;
case 'onteam':
$condition = $member->isLoggedIn() && $this->_ifOnTeam($name);
break;
case 'admin':
$condition = $member->isLoggedIn() && $this->_ifAdmin($name);
break;
case 'nextitem':
$condition = ($itemidnext != '');
break;
case 'previtem':
$condition = ($itemidprev != '');
break;
case 'archiveprevexists':
$condition = ($archiveprevexists == true);
break;
case 'archivenextexists':
$condition = ($archivenextexists == true);
break;
case 'skintype':
$condition = ($name == $this->skintype);
break;
case 'hasplugin':
$condition = $this->_ifHasPlugin($name, $value);
break;
case 'item':
$condition = ($itemid == $value);
break;
default:
$condition = $manager->pluginInstalled('NP_' . $field) && $this->_ifPlugin($field, $name, $value);
break;
}
return $condition;
}
またプラグインもありますが、NP_match.phpでスキンにしか対応していません。 この場合文法が少し変わります。<%if(match,itemid=256)%> などど書きます。
このプラグインでテンプレート内でも条件分岐が可能になります。 正し上記のmatch.phpにしか対応しません。
また複数カテゴリー設定による条件分岐を実現するnucleus/libs/ACTIONS.php の改造
0 コメント :
コメントを投稿
コメントありがとうございます。