プラグインからスキン変数<%if%>を制御したいナ
2006年4月2日
ヘルプページより
skintype:現在のスキンタイプがvalue(index, search, item, archive, archivelist, ...)と一致するか調べる(URLでの表記となることに注意 2.5から)
が使えそう。
このスキン変数は『<%if(skintype,archive)%>』の様に使用する。ここで、スキンタイプは以下のうちのどれかのはず。
archive
archivelist
error
imagepopup
index
item
member
search
ここの判定ルーチンは、NUcleus3.22 では SKIN.php のACTIONSクラス内にある。
これは、ver2.5から変わっていない仕様。時期バージョンでも、BaseActions クラスに移るようだけれど、ACTIONS クラス自体が BaseActions クラスから派生しているので、基本的に変わらない。
で、肝心のACTIONSクラスのインスタンスがどこで作成されているかというと…
SKIN::parse()内(SKIN.php)
だめだ。ここの $handler は、関数内のローカル変数。PARSER 内でも、この $handler を捕まえる方法が見つからない。べつの方法を考えないと。
skintype:現在のスキンタイプがvalue(index, search, item, archive, archivelist, ...)と一致するか調べる(URLでの表記となることに注意 2.5から)
が使えそう。
このスキン変数は『<%if(skintype,archive)%>』の様に使用する。ここで、スキンタイプは以下のうちのどれかのはず。
archive
archivelist
error
imagepopup
index
item
member
search
ここの判定ルーチンは、NUcleus3.22 では SKIN.php のACTIONSクラス内にある。
case 'skintype': $condition = ($name == $this->skintype); break;
これは、ver2.5から変わっていない仕様。時期バージョンでも、BaseActions クラスに移るようだけれど、ACTIONS クラス自体が BaseActions クラスから派生しているので、基本的に変わらない。
で、肝心のACTIONSクラスのインスタンスがどこで作成されているかというと…
SKIN::parse()内(SKIN.php)
$handler =& new ACTIONS($type, $this); $parser =& new PARSER($actions, $handler); $handler->setParser($parser); $handler->setSkin($this); $parser->parse($contents);
だめだ。ここの $handler は、関数内のローカル変数。PARSER 内でも、この $handler を捕まえる方法が見つからない。べつの方法を考えないと。