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); } }