Nucleusのif文を拡張しよう パート2
(03/11) カテゴリ: Nucleus
この記事は 2009-03-11 に更新されています
Nucleusのif文ではカテゴリ判定で
<%if(category,catid,カテゴリID)%>
のような使い方ができます。
これのitemidバージョンを使えるように /nucleus/libs/ACTIONS.phpを改造しました。function checkCondition()を下記と入れ替えます。下記は3.31SP3のものです。具体的にはfunction checkCondition()の3行目に「,$itemid」を追加して「case item:」のブロックを追加しただけです。
これでアイテムIDの判定が下記の書式でできるようになります。
<%if(item,itemid,アイテムID)%>
function checkCondition($field, $name='', $value = '') {
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;
}
function checkCondition($field, $name='', $value = '') {
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;
}
この記事のトラックバックURL
http://jbar.jp/action.php?action=plugin&name=TrackBack&tb_id=974
http://jbar.jp/action.php?action=plugin&name=TrackBack&tb_id=974



















