Я бы сказал, что если вы не знаете, что хотите чего-то (например, [function]
), то лучше избегать добавления сложности только потому, что вы думаете, что должны делать это со сложностью).... как если бы вы могли просто вставить свой [search]
в свой код.
Но если вы готовы, есть несколько веских причин для использования [function]
в вебдне, по крайней мере, это некоторыепричины:
для упрощения чтения кода
для упрощения обслуживания кода
для удаления нежелательных пробелов из вашего кода
для облегчения написания кода
(после того, как вы выполнили дополнительную работу по настройке набора функций для выполнения различныхзадач, на сложном сайте, затем написание нового кода для использования этих функций намного быстрее / проще! Вы просто вызываете функции!)
Вы можете думать о функции как [include]
... он фактически позволяет вам разместить кучу кода в одном месте на вашей странице ... всего одной короткой строкой (вызов функции).Мне нравится использовать такие функции ... как включение ... где я часто помещаю определение функции даже в один и тот же файл (если код этой функции уникален только для этой страницы), ... но я помещаю определение функциивверху страницы, вне пути, а НЕ в месте, где находится вызов функции, где это затруднит чтение моего кода.
Также хорошо использовать функции какспособ делать одно и то же снова и снова (или делать что-то подобное снова и снова) без написания одного и того же кода снова и снова.Это облегчает поддержку вашего кода.Если позднее требуется какое-то изменение (например, клиент теперь хочет упорядоченный список (<ol>
) вместо неупорядоченного списка (<ul>
)) ... тогда вам нужно изменить его только в одном месте (вопределение функции), а не во всех местах, где вызывается функция.
Поскольку [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>