何か(のような)が必要かどうかわからない場合は[function]
、複雑さでそれを行うことになっていると思っているという理由だけで、複雑さを追加しないようにする方がよいと思います)。[search]
...コードにインラインを入れることができるように。
しかし、準備ができたら、[function]
webdnaで使用するいくつかの大きな理由があります..少なくともこれらはいくつかの理由です:
コードを読みやすくするため
コードの保守を容易にするため
コードから不要な空白を削除するには
コードを書きやすくするため
(複雑なサイトでさまざまなタスクを実行するための一連の関数を設定するための追加の作業を行った後、それらの関数を使用するための新しいコードを書くことははるかに速く/簡単です!関数!)
[include]
関数は..のように考えることができます。これにより、ページの1つの場所に大量のコードを効果的に配置できます。短い行(関数呼び出し)を1つだけ使用できます。私はそのような関数をインクルードとして使用するのが好きです...同じファイルに関数定義を入れることがよくあります(その関数のコードがそのページだけに固有である場合)...しかし、関数定義を入れますページの上部にあり、邪魔にならないように、関数の呼び出しがある場所ではなく、コードが読みにくくなります。
同じコードを何度も書かずに、同じことを何度も繰り返す(または同じようなことを何度も繰り返す)方法として関数を使用するのも良いことです。これにより、コードの保守が容易になります。後で必要な変更がある場合(クライアントが順序なしリスト(<ol>
)ではなく順序付きリスト(<ul>
)を必要としている場合など)...変更する必要があるのは、(関数定義内の)1か所だけです。関数が呼び出されるすべての場所で。
[function]
間にあるコードのみを出力するため[return]...[/return]
、すべての計算を..の内部で実行できます[function...]...[/function]
。[return]...[/return]
次に、出力したい最終結果を..の内部に配置することで出力できます[return]...[/return]
。
[function name=finalResult]
[math]a=0[/math]
this
is
to
mimic
a
big
super
long
block
of
code
[text]finalResult=
[math]a=[a]+1[/math]
[/text]
with
tons
of
white
space
where
we
do
lots
of
calculations
[return][finalResult][/return]
[/function]
関数呼び出しを使用して検索結果を返す方法の具体例を示すと、データベースは変更できますが、結果は常に同じ形式になります。次のようにします。
[function name=getResults]
[search db=[whichDb].db&neSKUdata=[blank]]
[founditems]
[return]<div class"myclass">[SKU]-[name]</div>[/return]
[/founditems]
[showif [numfound]=0]
[return]Nothing to see here[/return]
[/showif]
[/search]
[/function]
そしてあなたのページで
<div class="resultsContainer">
[getResults whichDb=myDb]
</div>
そしてまたどこか
<div class="resultsContainer">
[getResults whichDb=anotherDb]
</div>