if(skintype,error) の記述順

if(skintype,error) の記述順

Author : pushman|Nucleus|2006-03-28 Tue 01:07

Nucleus のプラグインの中には、エラーが発生した時に思い通りの表示をしてくれないものがあります。そんな時はプラグインを改造するよりも、Nucleus のスキン変数「<%if(skintype,error)%>」を使った方がラクチンです。ところが if を入れ子にしていると <%if(skintype,error)%> が無視されてしまう場合がありましたので、メモ。

僕の意図した動作は、エラースキンの時はなにも表示しなくていいよ、ということなので、まっさきに「<%if(skintype,error)%>」を持ってきて以下のように記述。

<%if(skintype,error)%>
<%else%>
 <%if(blogsetting,bnumber,2)%>
  <%MultiBlogs(template)%>
 <%else%>
  <%if(category)%>
   <%MultiBlogs(template)%>
  <%else%>
   <%if(skintype,archivelist)%>
    <%MultiBlogs(template)%>
   <%else%>
    <%MultiBlogs(template)%>
   <%endif%>
  <%endif%>
 <%endif%>
<%endif%>

ところがなぜだかエラースキン適用時にエラーが発生。ややこしい。ということで、「<%if(skintype,error)%>」を入れ子の一番内側に配置することで解決できました。こんな感じ。

<%if(blogsetting,bnumber,2)%>
 <%MultiBlogs(template)%>
<%else%>
 <%if(category)%>
  <%MultiBlogs(template)%>
 <%else%>
  <%if(skintype,archivelist)%>
   <%MultiBlogs(template)%>
  <%else%>
   <%if(skintype,error)%>
   <%else%>
    <%MultiBlogs(template)%>
   <%endif%>
  <%endif%>
 <%endif%>
<%endif%>

こういう仕様なのかもしれませんし、僕の考え方が間違っているのかもしれません。そもそもここまで入れ子にする必要があるのか、などと根本的な疑問は解決していませんが、まあとにかくこれで意図したとおりに動いてくれていますので気持ちいいです。

Tag(s): Nucleus Tips

[Nucleus] Next & Previous

Comment Form (policy)

(メールアドレスは非公開です)

Others
Newest 5 Items

NP_znItemFieldEXとNP_ifの連携

NP_znItemFieldEX|PHP 5で検索機能を有効にする

NP_GoogleMaps|最大ズームレベルを変更

NP_ImageExtractor|エラー修正

NP_ImageExtractor|画像を抽出するプラグイン

Web Service

Google Mapsで緯度と経度を測定

Nucleus CMS: Pure Publishing