NP_skinsetting
2008年12月23日
yama.kymsさんのNP_SkinEditを見ていて気がついたのは、ブログ情報表示のための<%blogsetting%>に相当する、スキン情報を表示するためのスキン変数がNucleusには無いこと。
もしあれば、何か便利かもしれない。今は思いつかないけれど。
なので、作ってみた。もしかしたら、似たプラグインがすでにあるかもしれない。
使い方:
<%skinsetting(id)%>
<%skinsetting(description)%>
<%skinsetting(contenttype)%>
<%skinsetting(includemode)%>
<%skinsetting(includeprefix)%>
<%skinsetting(name)%>
<%skinsetting(type)%>
高度な(?)使い方:
<%skinsetting(idfromname,[skin_name])%>
<%skinsetting(namefromid,[skin_id])%>
<%skinsetting(content,[skin_type])%>
ついでに、NP_otherskinsettingも作ってみた(NP_skinsettingが必要)。
NP_skinsetting.php
NP_ohterskinsetting.php
もしあれば、何か便利かもしれない。今は思いつかないけれど。
なので、作ってみた。もしかしたら、似たプラグインがすでにあるかもしれない。
使い方:
<%skinsetting(id)%>
<%skinsetting(description)%>
<%skinsetting(contenttype)%>
<%skinsetting(includemode)%>
<%skinsetting(includeprefix)%>
<%skinsetting(name)%>
<%skinsetting(type)%>
高度な(?)使い方:
<%skinsetting(idfromname,[skin_name])%>
<%skinsetting(namefromid,[skin_id])%>
<%skinsetting(content,[skin_type])%>
ついでに、NP_otherskinsettingも作ってみた(NP_skinsettingが必要)。
NP_skinsetting.php
<?php
class NP_skinsetting extends NucleusPlugin {
function getName() { return 'NP_skinsetting'; }
function getMinNucleusVersion() { return 220; }
function getAuthor() { return 'Katsumi'; }
function getVersion() { return '0.1'; }
function getURL() {return 'http://japan.nucleuscms.org/wiki/plugins:authors:katsumi';}
function getDescription() {
return 'Usage:<br />
<%skinsetting(id)%>,
<%skinsetting(description)%>,
<%skinsetting(contenttype)%>,
<%skinsetting(includemode)%>,
<%skinsetting(includeprefix)%>,
<%skinsetting(name)%>, or
<%skinsetting(type)%>';
}
function supportsFeature($what) { return ($what=='SqlTablePrefix')?1:0; }
function getEventList() { return array('InitSkinParse'); }
var $skinobj;
function event_InitSkinParse(&$data) {
$this->skinobj=&$data['skin'];
}
function doSkinVar($skintype,$type,$p1='') {
if ($type=='type') $data=$skintype;
elseif (method_exists($this->skinobj,"get$type")) {
$data=call_user_func(array($this->skinobj,"get$type"),$p1);
}
echo htmlspecialchars($data,ENT_QUOTES);
}
}NP_ohterskinsetting.php
<?php
class NP_otherskinsetting extends NucleusPlugin {
function getName() { return 'NP_otherskinsetting'; }
function getMinNucleusVersion() { return 220; }
function getAuthor() { return 'Katsumi'; }
function getVersion() { return '0.1'; }
function getURL() {return 'http://japan.nucleuscms.org/wiki/plugins:authors:katsumi';}
function getPluginDep() { return array('NP_skinsetting'); }
function getDescription() {
return str_replace('skinsetting(','otherskinsetting([skin_id/name],',
$this->skinsetting->getDescription());
}
function supportsFeature($what) { return ($what=='SqlTablePrefix')?1:0; }
var $skinsetting;
function init(){
global $manager;
$this->skinsetting=$manager->getPlugin('NP_skinsetting');
}
function doSkinVar($skintype,$id,$type,$p1='') {
static $objs=array();
if (!is_numeric($id)) $id=SKIN::getIdFromName($id);
$id=(int)$id;
if (!isset($objs[$id])) {
$objs[$id]=new NP_skinsetting;
$obj=new SKIN($id);
$data=array('type'=>$skintype,'skin'=>&$obj);
$objs[$id]->event_InitSkinParse($data);
}
return $objs[$id]->doSkinVar($skintype,$type,$p1);
}
}