名前とIDどちらでも検索可能な関数を里々、YAYA、華和梨で書いてみます。
(YAYAはそういった関数がテンプレートに用意されています)
戻り値はBOOL値です。
里々
# [b1]プラグイン名(1)[b1]プラグインID(1)[b1]プラグイン名(2)[b1]...[b1]プラグインID(n)[b1]というリストができます。 @installedplugin (set,プラグインリスト,)(loop,プラグインリスト作成,0,(Rの数)) @プラグインリスト作成 (set,プラグインリスト,(call,プラグインリスト)(バイト値,1)(R(プラグインリスト作成カウンタ))) @IsPluginExist (count,(call,プラグインリスト),(バイト値,1)(A0)(バイト値,1)) #--■使い方■--# *ラベル (call,IsPluginExist,PlaylistMaker)#=> 0 or 1
YAYA
// 「はろーYAYAわーるど」yaya_tmpl_util.txtに記述済み On_installedplugin : void { _n = ARRAYSIZE(reference) AYATEMPLATE.installedplugin_name = IARRAY AYATEMPLATE.installedplugin_id = IARRAY for _i = 0 ; _i < _n ; _i++ { _a = RE_SPLIT(reference[_i],'[,\x1]') AYATEMPLATE.installedplugin_name ,= _a[0] AYATEMPLATE.installedplugin_id ,= _a[1] } } AYATEMPLATE.IsPluginExist { if _argc == 0 { 0 return } if ASEARCH(_argv[0],AYATEMPLATE.installedplugin_id) >= 0 { 1 return } if ASEARCH(_argv[0],AYATEMPLATE.installedplugin_name) >= 0 { 1 return } 0 } //--■使い方■--// foo { AYATEMPLATE.IsPluginExist('PlaylistMaker')// => 0 or 1 }
華和梨
# ミドルウェアによって接頭辞の書き方などは異なる resource.installedplugin : $( clear System.InstalledPlugin.Name; clear System.InstalledPlugin.ID; setstr @i 0; while $[ ${System.Request.Reference${@i}} != $(NULL) ] $( clear @a; split @a ${System.Request.Reference${@i}} $(chr 1); adddictstr System.InstalledPlugin.Name $@a[0]; adddictstr System.InstalledPlugin.ID $@a[1]; inc @i; ); ) =kis function IsPluginExist $( if $[$[$(find System.InstalledPlugin.Name $@arg[1]) >= 0] || $[$(find System.InstalledPlugin.ID $@arg[1]) >= 0]] $( return 1; ) else $( return 0; ); ); =end #--■使い方■--# エントリ : $(IsPluginExist PlaylistMaker)#=> 0 or 1