Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2008-12-28 11:20:55

Katsumi
メンバー
From: CA
登録日: 2005-06-24
投稿: 637
ウェブサイト

Re: NP_SkinVarManager (スキン変数をマネージ)

スキン変数のマネージャをプラグインとして作成しました。このプラグインをインストールして、発生されるイベントを別のプラグインで処理することで以下のことが可能になります。

・一つのプラグインで複数の名前のスキン変数を処理することが可能(通常は、プラグイン名から NP_ を除いた一つだけ)。
・コアの機能を、プラグインでオーバライドすることが可能。
・parsedincludeなどでのスキンパース時のコンテンツを所得したり編集したりするイベントが利用可能。

発生するイベントは、RegisterSkinVars 及び PreParseCententsの2つです。

・RegisterSkinVarsイベントは、オーバライドするスキン変数の登録に使います。
・PreParseContentsは、PreSkinParse相当のものをparsedincludeの際にも発生するようにしたものです。

[size=150:3np7v9op]ソースコード及び使い方の説明は、Wikiにあります。

オフライン

#2 2009-01-16 01:39:41

h1028
メンバー
登録日: 2006-08-11
投稿: 80

Re: NP_SkinVarManager (スキン変数をマネージ)

例えば <%blog%> を オーバライドするプラグインってこんな感じでいいんでしょうか?

    function getEventList() 
    { 
        return array('RegisterSkinVars'); 
    }	
    	
    function event_RegisterSkinVars(&$data) 
    {
	    $data['skinvars']['blog']=array(&$this,'parse_blog');
    }
    
    function parse_blog($skinType, $template = 'default/index', $amount = '10', $category = '')
    {
		global $manager;
		if ($manager->pluginInstalled('NP_ShowBlogs')) {
		            $amount        = '3';             // amount/page
					   $bmode         = '';              // show or hide Blogs
					   $type          = '2.9';               // pagw switch type
					   $sort          = 'DESC';          // item sort mode (DESC or ASC)
					   $sticky        = '';              // sticky item id
					   $sticktemplate = 'default/index';
					   $catmode       = 'all';           // show or hide categories
					   $showAdCode    = '1';               // AdCode switch
					   $catStick      = '0';                // show sticky item when category selected ?
			$showblogplugin = $manager->getPlugin('NP_ShowBlogs');
			$res = $showblogplugin->doSkinVar($skinType, $template, $amount,'',$type);
		}

    }

注:プラグインコードの一部だけ取り出しています。

   書き方がおかしいかもです。

  メリットはスキンをどんどん変更しても、いちいち <%blog%> を <%ShowBlogs%> と書き換えたりしなくてもいいことかな?
   
  skintype による表示の仕方もプラグイン内で処理できそうですし。

  他に有効な使い方がありそうな気がするんですけど・・・・・ん~アイデアが浮かばない。 :?


 

オフライン

#3 2009-01-16 04:16:16

Katsumi
メンバー
From: CA
登録日: 2005-06-24
投稿: 637
ウェブサイト

Re: NP_SkinVarManager (スキン変数をマネージ)

parse_blog()メソッドの中身は検証していませんが、全体として使い方はそんな感じです。

オフライン

#4 2009-03-11 08:11:28

Katsumi
メンバー
From: CA
登録日: 2005-06-24
投稿: 637
ウェブサイト

Re: NP_SkinVarManager (スキン変数をマネージ)

バージョン 0.1.4 をリリースしました。PreParseContentsイベントの仕様が少し変更されています。

オフライン

Board footer