にゃんこうけ | src | ブログ | コンタクト | 統計 | 御串 | 小束 | 裏ミク | つ痛 | 顔本 |

10年ぶりに部屋に入るとコウモリや猫の巣窟だった

Nucleus CMS

2009-01-28 17:57:44 JST-9 | akebia | Nucleus | コメント | トラックバック | 履歴

インストールすると、通常、カテゴリに対して動作する機能が、テンプレートのアイテムの本体で動作するようになるかもしれないプラグインです。

NP_ItemCatID.php

<?php
class NP_ItemCatID extends NucleusPlugin{
  function getName()       {return 'Item Cat ID';}
  function getAuthor()     {return 'akebia';}
  function getURL()        {return 'http://nyan.co.uk/akebia/item/291';}
  function getVersion()    {return '1.0';}
  function getDescription(){return '';}
  function supportsFeature($w){return ($w == 'SqlTablePrefix') ? 1 : 0;}
  function getEventList()
    {return array('PreSkinParse', 'PreItem', 'PostItem');}
  function event_PreSkinParse(){$this->org_catid = $GLOBALS['catid'];}
  function event_PreItem($data){
    $GLOBALS['catid'] = quickQuery('SELECT icat as result FROM ' .
      sql_table('item') . ' WHERE inumber=' . $data['item']->itemid);
  }
  function event_PostItem(){$GLOBALS['catid'] = $this->org_catid;}
}
?>

NP_znItemCacheと併用する時には、NP_znItemCacheのオプションの「常に動作させるプラグイン」に「NP_ItemCatID」を加えて下さい。

NP_ItemCatIDは、アイテム毎のテンプレートが処理される直前に、Nucleusのグローバル変数「catid」にアイテムに関連付けられたカテゴリのIDを格納します。アイテム毎のテンプレートの処理が終了すると、Nucleusのグローバル変数「catid」をスキンが処理される直前の状態に戻します。こうすると、Nucleusのグローバル変数「catid」が真の時に動作するタイプの機能をアイテム毎に動作させることができます。

あけび猫は、これを、NP_ExtraSkinJPの部品タイプが「blogとcategory」の部品をアイテムの本体に挿入するのに使っています。ちょっと、使ってみている所では、問題なく動作しているようですが、今後、どのような不具合に気が付くかは謎です。

NP_ItemCatIDをインストールすると、アイテムの本体において、Nucleusのグローバル変数「catid」は、クエリ文字列等に関わらず常に当該アイテムに関連付けられたカテゴリのIDになるので、アイテムの本体において、catidがクエリ文字列等で指定されたカテゴリIDになることを前提としたテンプレートで不具合が出るかもしれません。また、アイテムの処理後にcatidがスキンの処理前の状態に戻されるので、スキンの処理中にcatidが変更される事を前提としたシステムで不具合が出るかもしれません。

人気ブログランキングへ MyMiniCity WebMoney ぷちカンパ

Comments

No comments yet

Add Comment



Trackback

このトラックバックURL(右クリックして、リンクのURLをコピー)を使ってこの記事にトラックバックを送ることができます。もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。トラックバックの手動送信に失敗したり、拒否された場合には、あけび猫が入力しますので、こちらまでご連絡下さい。重複したトラックバックは、自動的に1つにまとめられるようなので、気軽に色々試してみて下さい。

人気アイテム(人気順) 人気アイテム(不人気順)
  1. NP_Revision (v0.7-x) - 記事の変更履歴管理と差分表示(32/2656)
  2. Mobile with single page (v2.1.0-1 beta)(13/1567)
  3. 携帯電話用のスキン(7/843)
  4. NP_Revisionで初版の記事中で引用符等がエスケープされないようにするパッチ(7/877)
  5. NP_znItemCacheをNP_Revisionに対応させるパッチ(7/877)
  6. NP_GeSHi2で空行にスペースが入らないようにするパッチ(6/789)
  7. NP_Revisionをfancy URLで動作させるパッチ(6/757)
  8. Simple Category Tree [Custom Edition] (v0.1.2-x)(6/704)
  9. NP_Markdownでタブがスペースに変換されないようにするパッチ(6/734)
  10. NP_RevisionFirst - ドラフト以外の最も古いリビジョン番号を挿入(6/734)
  11. MonthlyArchivLinks (v0.1-1)(6/711)
  12. NP_AutoTwitterをfancy URLとbit.lyに対応させるパッチ(5/280)
  13. NP_CustomThumbnailをNP_MarkdownEditorで使いやすくするパッチ(5/661)
  14. NP_Popularity - 人気記事のリストを作成(5/629)
  15. NP_ActionURL - Action URL(5/656)
  16. NP_CatDescをテーブルプリフィックスに対応させるパッチ(5/629)
  17. NP_PluginListで名前や作者に特殊文字が含まれているプラグインを正しく表示させるパッチ(4/553)
  18. NP_ItemCatID - カテゴリ向けの機能をアイテムテンプレートで動作させる(4/557)
  19. NP_AdminURL - Admin URL(4/548)
  20. Count Entries (v1.3-1)(3/439)
  1. memory_limit - NP_CustomThumbnailがアボートする場合の対策(3/446)
  2. Count Entries (v1.3-1)(3/439)
  3. NP_AdminURL - Admin URL(4/548)
  4. NP_PluginListで名前や作者に特殊文字が含まれているプラグインを正しく表示させるパッチ(4/553)
  5. NP_ItemCatID - カテゴリ向けの機能をアイテムテンプレートで動作させる(4/557)
  6. NP_AutoTwitterをfancy URLとbit.lyに対応させるパッチ(5/280)
  7. NP_ActionURL - Action URL(5/656)
  8. NP_CustomThumbnailをNP_MarkdownEditorで使いやすくするパッチ(5/661)
  9. NP_CatDescをテーブルプリフィックスに対応させるパッチ(5/629)
  10. NP_Popularity - 人気記事のリストを作成(5/629)
  11. NP_Markdownでタブがスペースに変換されないようにするパッチ(6/734)
  12. NP_GeSHi2で空行にスペースが入らないようにするパッチ(6/789)
  13. MonthlyArchivLinks (v0.1-1)(6/711)
  14. NP_Revisionをfancy URLで動作させるパッチ(6/757)
  15. NP_RevisionFirst - ドラフト以外の最も古いリビジョン番号を挿入(6/734)
  16. Simple Category Tree [Custom Edition] (v0.1.2-x)(6/704)
  17. NP_Revisionで初版の記事中で引用符等がエスケープされないようにするパッチ(7/877)
  18. 携帯電話用のスキン(7/843)
  19. NP_znItemCacheをNP_Revisionに対応させるパッチ(7/877)
  20. Mobile with single page (v2.1.0-1 beta)(13/1567)

http://nyan.co.uk/akebia/