Re: [WebDNA] How to use [function]

This WebDNA talk-list message is from

2012


It keeps the original formatting.
numero = 108659
interpreted = N
texte = Lawrence I tend to use functions where I have a complicated bit of logic (either = within or without a search context), more often when I would prefer no = white space in between lines you can do it like this [hideif [myVar]=3D1][!] [/!][text]myNewVar=3D100[/text][!] [/!][/hideif] is the same as this [function name=3DgenerateNewVar] [hideif [myVar]=3D1] [text scope=3Dglobal]myNewVar=3D100[/text] [/hideif] [return][/return] [/function][generateNewVar] I find the 2nd one easier to read. It is especially handy when generating XML, I find. Alternatively I would use it for text translation - [translateMyText = textToTranslate=3D[myDateVar]&language=3Dfrench] - and MySQL functions - = somehow it's easier to print out [findMyRecords myVar=3D1] than do all = the steps necessary for=20 Normally a repeated bit of logic where the output is always in the same = format, but small input elements change is where I would use it most. In = the example you have given, I would almost always write this as inline = code. If, however, you wanted to have a find function that always = printed the results out in the same manner, you could do the following: [function name=3DgetResults] [search db=3D[whichDb].db&&neSKUdata=3D[blank]] [founditems] [return]
[SKU]-[name]
[/return] [/founditems] [showif [numfound]=3D0] [return]Nothing to see here[/return] [/showif] [/search] [/function] and on your page
[getResults whichDb=3DmyDb]
and again somewhere else
[getResults whichDb=3DanotherDb]
Hope this helps.... TC > Toby,=20 > I'm trying to understand in which case I should use the [function] or = not. > Your example is clear, It looks like it would be nice to have all the = webdna code in separate files, and have only the result called in the = page, that would make page codes clear. > for the break/stop the documentation says : > "'The [return] context does NOT 'break out' of a function call, so it = is possible to use one or more [return] contexts to 'tailor' the = functions output. " >=20 > Kenneth,=20 > how would you use an array with this kind of search function? >=20 > Thanks > Lawrence Associated Messages, from the most recent to the oldest:

    
  1. Re: [WebDNA] How to use [function] (Govinda 2012)
  2. Re: [WebDNA] How to use [function] (Donovan Brooke 2012)
  3. Re: [WebDNA] How to use [function] (Banahan 2012)
  4. Re: [WebDNA] How to use [function] (Toby Cox 2012)
  5. Re: [WebDNA] How to use [function] (WebDNA Solutions 2012)
  6. Re: [WebDNA] How to use [function] (Toby Cox 2012)
  7. Re: [WebDNA] How to use [function] (WebDNA Solutions 2012)
  8. Re: [WebDNA] How to use [function] (Banahan 2012)
  9. Re: [WebDNA] How to use [function] (Toby Cox 2012)
  10. Re: [WebDNA] How to use [function] (WebDNA Solutions 2012)
  11. Re: [WebDNA] How to use [function] (Banahan 2012)
  12. Re: [WebDNA] How to use [function] (WebDNA Solutions 2012)
  13. [WebDNA] How to use [function] (Banahan 2012)
Lawrence I tend to use functions where I have a complicated bit of logic (either = within or without a search context), more often when I would prefer no = white space in between lines you can do it like this [hideif [myVar]=3D1][!] [/!][text]myNewVar=3D100[/text][!] [/!][/hideif] is the same as this [function name=3DgenerateNewVar] [hideif [myVar]=3D1] [text scope=3Dglobal]myNewVar=3D100[/text] [/hideif] [return][/return] [/function][generateNewVar] I find the 2nd one easier to read. It is especially handy when generating XML, I find. Alternatively I would use it for text translation - [translateMyText = textToTranslate=3D[myDateVar]&language=3Dfrench] - and MySQL functions - = somehow it's easier to print out [findMyRecords myVar=3D1] than do all = the steps necessary for=20 Normally a repeated bit of logic where the output is always in the same = format, but small input elements change is where I would use it most. In = the example you have given, I would almost always write this as inline = code. If, however, you wanted to have a find function that always = printed the results out in the same manner, you could do the following: [function name=3DgetResults] [search db=3D[whichDb].db&&neSKUdata=3D[blank]] [founditems] [return]
[SKU]-[name]
[/return] [/founditems] [showif [numfound]=3D0] [return]Nothing to see here[/return] [/showif] [/search] [/function] and on your page
[getResults whichDb=3DmyDb]
and again somewhere else
[getResults whichDb=3DanotherDb]
Hope this helps.... TC > Toby,=20 > I'm trying to understand in which case I should use the [function] or = not. > Your example is clear, It looks like it would be nice to have all the = webdna code in separate files, and have only the result called in the = page, that would make page codes clear. > for the break/stop the documentation says : > "'The [return] context does NOT 'break out' of a function call, so it = is possible to use one or more [return] contexts to 'tailor' the = functions output. " >=20 > Kenneth,=20 > how would you use an array with this kind of search function? >=20 > Thanks > Lawrence Toby Cox

DOWNLOAD WEBDNA NOW!

Top Articles:

Talk List

The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...

Related Readings:

I give up!! (1997) Help name our technology! I found it (1997) WebCat b13 CGI -shownext- (1997) Make sure I understand this??? (1997) I found a bug ... (1997) WebCat2b13 Mac plugin - [sendmail] and checkboxes (1997) Appending current [date] to a database (1997) Have no fear of WebCatalog Builder..... (2000) OT: Limit on # of Pulldown entries (1997) Snake Bites (1997) Problem 2: Prefs file... (1997) Attn: Bug in GeneralStore example b15 (1997) What do you charge? (1998) Max Record length (1997) writing orders to a db (1997) Email (1998) WebCat2b13MacPlugIn - [include] (1997) New WebDNA Example from Olin -- (1998) [ShowIf] and empty fields (1997) Error: Too many nested [xxx] contexts (1997)