Как использовать [функцию] в вебдне - PullRequest
1 голос
/ 22 февраля 2012

Я часами копаю в Говинде отличную работу в WebdnaCodeSparker.

Должен признаться, я никогда не использовал [функцию], и теперь мне интересно, как ее использовать ... Я подумал, что документ, мне ясно, как отправить переменную в функцию, которая будет ее выполнять.

Но как использовать функцию с контекстами поиска? пример:

Я поместил следующий код в [function]

[search mydb.db & neSKUdata: FINDALL] [founditems] [/ founditems] [/ search]

И я хочу получить результат в

[SKU] - [имя]

Может быть, функция не предназначена для такого рода действий?

1 Ответ

1 голос
/ 22 февраля 2012

Я бы сказал, что если вы не знаете, что хотите чего-то (например, [function]), то лучше избегать добавления сложности только потому, что вы думаете, что должны делать это со сложностью).... как если бы вы могли просто вставить свой [search] в свой код.

Но если вы готовы, есть несколько веских причин для использования [function] в вебдне, по крайней мере, это некоторыепричины:

  1. для упрощения чтения кода

  2. для упрощения обслуживания кода

  3. для удаления нежелательных пробелов из вашего кода

  4. для облегчения написания кода
    (после того, как вы выполнили дополнительную работу по настройке набора функций для выполнения различныхзадач, на сложном сайте, затем написание нового кода для использования этих функций намного быстрее / проще! Вы просто вызываете функции!)

Вы можете думать о функции как [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>
...