2006-03-28 Tue

if(skintype,error) の記述順

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%>

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

Keyword:

2006-03-28 Tue / Author - pushman / Nucleus / Comment - 0 / TrackBack - 0

「if(skintype,error) の記述順」へのトラックバック

TrackBack URL:

「if(skintype,error) の記述順」へのコメント





このページの先頭に戻る