プラグインからスキン変数<%if%>を制御したいナ2
2006年4月2日
ヘルプページより
blogsetting:blog設定のname項目の値がvalueと一致しているか調べる(nameはSQLテーブルnucleus_blogにあるカラム名)
SQLテーブルnucleus_blogにあるカラム名は、次のものが相当。
bnumber bname bshortname bdesc bcomments bmaxcomments btimeoffset bnotify burl bupdate bdefskin bpublic bsendping bconvertbreaks bdefcat bnotifytype ballowpast bincludesearch
使用方法の例としては、『<if(blogsetting,bnumber,1)%>』。
これの判定ルーチンは、Nucleus3.22 では SKIN.php のACTIONSクラス内にある。
BLOG::getSetting() はどうなっているかというと、
この仕様は、Nucleus2.0から変わっていない。これは使えそう。グローバル $blog で、$blog->setSetting()関数を用いて値をセットすれば、そのまま<%if%>文で使えるわけである。
(動作確認)
スキンで、
と記述し、NP_gzCache.php内で
と記述すると、『1st trial』のみが表示されることを確認。
blogsetting:blog設定のname項目の値がvalueと一致しているか調べる(nameはSQLテーブルnucleus_blogにあるカラム名)
SQLテーブルnucleus_blogにあるカラム名は、次のものが相当。
bnumber bname bshortname bdesc bcomments bmaxcomments btimeoffset bnotify burl bupdate bdefskin bpublic bsendping bconvertbreaks bdefcat bnotifytype ballowpast bincludesearch
使用方法の例としては、『<if(blogsetting,bnumber,1)%>』。
これの判定ルーチンは、Nucleus3.22 では SKIN.php のACTIONSクラス内にある。
global $catid, $blog..... ........ case 'blogsetting': $condition = ($blog && ($blog->getSetting($name) == $value)); break;
BLOG::getSetting() はどうなっているかというと、
function getSetting($key) {
return $this->settings[$key];
}
function setSetting($key,$value) {
$this->settings[$key] = $value;
}この仕様は、Nucleus2.0から変わっていない。これは使えそう。グローバル $blog で、$blog->setSetting()関数を用いて値をセットすれば、そのまま<%if%>文で使えるわけである。
(動作確認)
スキンで、
<%gzCache()%> <%if(blogsetting,gzCache)%> 1st trial. <%endif%> <%gzCache()%> <%if(blogsetting,gzCache)%> 2nd trial. <%endif%>
と記述し、NP_gzCache.php内で
function doSkinVar($skinType,$type) {
global $blog;
$blog->setSetting('gzCache','');
if ($this->firstdone) $blog->setSetting('gzCache','true');
$this->firstdone=true;
}と記述すると、『1st trial』のみが表示されることを確認。