1. Nordisk e-handel Manual

2. Starta webbutik - 10 steg

Helpdesk

Helpdesk vägleder dig i systemet.

040-692 50 60 eller helpdesk@nordiskehandel.com

Vanliga symboler

- På varje flik i din webbutiks admin så finns ett frågetecken, längst upp i hörnet på sidan. Om du trycker där så kommer du automatiskt till det aktuella avsnittet i manualen.
- Denna symbol betyder att du kan lägga till ett nytt objekt.
- Denna symbol betyder att du kan kopiera ett objekt.
- Denna symbol betyder att du kan redigera och visa information för ett objekt.
- Radera ett objekt.
- Sortera ett objekt uppåt.
- Sortera ett objekt neråt.
- Statistik och historikinformation.
- Kundikon, normalt länkad till kundkort eller kundlista.
- Orderikon - länkad till ett orderkort.
- Skicka mail.
 - Länkikon för nyhetsbrev.
- Exportera objekt.
- Filartikel.
- Öppna objekt i webbutik.
- Lista varor.
- Denna symbol betyder att du kan bestämma hur och vad som skall visas i översikterna.
 - Skriv ut.
 - Packsedel.

14. Avancerad design / webDAV RSS för 14. Avancerad design / webDAV


14.2 Mallöversikt

Skriven av: Helpdesk

14.3 Mallarnas syntax

Skriven av: Helpdesk

14.3.1 Bakgrund

Det finns många olika sätt att bygga interaktiva webbtjänster på, tyvärr så har de flesta mer än sin beskärda del av problem. Några av de vanligaste problemen man stöter på är: mediokra programmeringsspråk, omständliga att använda, inte flexibla nog, alltför plattformsberoende, inte skalbara, begränsade möjligheter till att göra vad man vill. Efter att ha prövat på ett flertal av de lösningar som finns på marknaden så kunde vi bara konstatera att det här kan göras bättre!

Denna insikt var fröet till den programvara som nu finns bakom Nordisk e-handel. Den är byggd utifrån följande enkla föresatser:

Form och design skilda från kod.
Den som utvecklar funktionalitet brukar inte vara samma person som skapar designen av sidorna. Designern skall bara behöva veta vad han/hon vill göra, inte hur det skall göras. Det skall gå att skapa sidor i en grafisk editor. Om man lägger programkod i sidorna och sedan låter en icke programmeringskunnig designer ta hand om dem kan det bara gå illa. Finns inte en önskad funktion i systemet redan får den utvecklas av programmeraren.

Full frihet att välja design.
Systemet får inte begränsa sidornas utseende eller inbördes struktur. Detta gör att systemet inte skall känna till vilka sidor som finns i den aktuella applikationen

Kod skall så långt det går kunna återanvändas.
Det säger sig självt att kod som skrivs i en HTML-sida bara kan återanvändas genom kopiering, hur bra det fungerar i längden veta alla som har någon erfarenhet av programmering.

Lätt att bygga ut med nya funktioner.
Stommen i systemet skall tillhandahålla ett antal grundläggande funktioner, allt annat kund/applikations-specifikt skall kunna läggas till i plug-in-moduler.

Skalbart och plattformsoberoende.
Systemet skall bygga på komponenter som går att flytta till andra plattformar om behov skulle uppstå.

Med dessa enkla föresatser som bakgrund är sedan systemet uppbyggt i en väl genomtänkt flexibel struktur med en databas och HTML-sidor samt kod som binder dessa samman. 

14.3.2 Minne (Stack)

För att hålla reda på vad som skall visas, dvs vilket tillstånd/läge som användaren befinner sig i har systemet en stackliknande minnesfunktion. Denna stack kan liknas vid ett höghus med många våningar och flera lägenheter på varje våning. Man ger varje våning ett våningsnamn och man ser sedan till att det på varje våning inte bor två personer med samma namn. Man kan nu identifiera en specifik lägenhet genom att ange Våning.Namn. Om man nu vill ha tag i en Pettersson och man inte vet vilken våning han bor på, får man kontrollera varje våning för sig tills man hittar honom. Detta kan man göra på två olika sätt, genom att börja på den lägsta våningen och vandra uppåt, eller genom att börja på den översta och fortsätta neråt. Om det finns mer än en Pettersson i huset så kommer man att hitta olika personer beroende på vilken metod man använder. Vi utökar modellen genom att kunna bygga en ny våning överst i huset för nya personer att flytta in, samt att kunna ta bort en våning och alla över denna från huset.

 

Table 11.1: Information som finns på stacken innan en sida bearbetas.
TaggnamnNivåBeskrivning av innehållSkrivning möjlig
YYY n+1 Resultat från QUERY YYY kommando i HTML sida NEJ
XXX n Resultat från QUERY XXX kommando i HTML sida NEJ
Cart 8 Statusinfo om kundvagnen NEJ
Data 7 Data som skickats via POST eller GET i requesten. Värden från POST slår ut samma värde från GET (kan vara tomt) JA
Session 6 Data i den nuvarande sessionen. (kan vara tomt) JA
Customer 5 Information om aktuell kund (om sådan finns). NEJ
Cookie 4 Alla cookies som skickats. NEJ
Shop 3 Butikens inställningar. NEJ
System 2 Systeminställningar. NEJ
ENV 1 Alla environment variabler som ett CGI program har tillgång till. NEJ

 

Längst ner i stacken finns en rad nivåer som skapas automatiskt av systemet innan HTML- sidan läses in för bearbetning. Ovanpå dessa kommer det att finnas flera nivåer beroende på vilka kommandon som finns i sidan och var i körningen programmet är. När bearbetningen av en sida är klar så skall det inte finnas fler nivåer i stacken än när den startades.

All data som finns i stacken kan läsas men bara data och session under Cart-taggen kan ändras/skapas med SET-kommandot från en webbsida.

Ett speciellt värde (som vi i fortsättningen kallar variabel) i stacken refereras med $Taggnamn.Namn och om man bara är intresserad av det senaste namnet skriver man $Namn som då söker uppifrån i stacken $.Namn gör samma sökning men nerifrån istället.

14.3.3 SBscript

Makrospråket är det verktyg designern har för att kunna hämta information från systemet och att lägga in den i HTML-sidorna. SBscript som vi kallar språket är mycket enkelt och stödjer bara det absolut nödvändigaste. Det byggs ut med mer funktioner efterhand som behoven blir mer krävande men grundstrukturen påverkas inte. När man hämtar en sida från http-servern som slutar på .htm så startas en speciell program-modul som går igenom sidan och bearbetar alla kommandon i denna, resultatet dvs sida utan makro-taggar skickas till användaren. Denna operation tar naturligtvis en viss tid så det är bra om man bara kallar sidor som verkligen behöver processas för .htm, det normala är som bekant att sidorna skall heta .html

Det finns två typer av operationer i språket, det ena är skriv ut och det andra är hämta:

Skriv ut
Är den mest använda operationen och har inget kommando som underlättar vid design. Att skriva ut ett värde gör man genom att helt enkelt skriva namnet på vad man vill skriva ut t. ex. <h1>Välkommen till $Shop.ShopName, butiken för dig!</h1> $Shop.ShopName kommer att bytas ut mot den text som finns lagrad under ShopName i Shop-taggen på nivå 3 i stacken. Om vi hade skrivet $Shop.FinnsInte så hade detta ersatts med tomrum då något sådant namn inte finns i stacken.

Hämta
Operationen Hämta är flera olika kommandon som har det gemensamt att de söker rätt på information ur databasen och stoppar in denna i stacken eller skriver ut den istället för kommandot. Kommandon skrivs alltid innanför <% %> taggar i HTML koden, om en variabel står innan för <% %> taggarna skrivs den inte ut, utan den skall då höra till något kommando.

<p>Kontakta oss

<%IF $Shop.FAX THEN%>

på fax $Shop.FAX

<%ELSE%>

med post

<%ENDIF%>.

</p>

Uppmanar besökaren att faxa om $Shop.FAX finns och har något innehåll, annars får besökaren skriva brev.

Vissa kommandon t. ex. IF i exemplet ovan gör att ett stycke HTML-kod visas ingen/en/flera gånger. Detta stycke kallar vi för ett Block och det kan innehålla HTML-kod, utskrifter och kommandon. på fax och med post ovan är två exempel på block.

14.3.4 Översikt av kommandon i SBscript

Teckenförklaring:

query
en databasfråga

$var
En variabel

{...}
Diverse programkod, allt ifrån ingenting till flera sidor.

[ ]
Någonting som kan utelämnas

expr
Ett matematiskt uttryck

logical
Ett logiskt uttryck

string
En textsträng

TEXT
NOCACHE
CALL string
CALL ID( expr_list )
PRINT expr
DEBUG INCLUDE expr
INCLUDE_QUOTE expr
SELECT query [$var] [string]
QUERY query(parameter=expr,...) [SHOWONCE] [PAGE expr PAGEROWS expr] DO {...} DISPLAY {...} NEXTROW {...} ENDQUERY
DRAW ID( expr_list ) } [$var] [query] DISPLAY {...} [NEXTBLOCK {...}]
ENDDRAW
IF logical
THEN {...} [ELSIF logical {...}] [ELSE {...}] ENDIF
SET $var [=] expr $var = expr
POP var
PICTURE [( expr )]
PICTURE_DATA [( expr )]

14.3.5 Hämta information från databasen

QUERY query(...) DO {...} DISPLAY {...} NEXTROW {...} ENDQUERY

Namn:
QUERY

Syntax:
QUERY Fråga(paramer=expr,...) [SHOWONCE] [PAGE expr PAGEROWS expr] DO {Block1} DISPLAY {Block2} NEXTROW {Block3} ENDQUERY

Funktion:
Hämtar information från systemet. Fråga anger vilken fördefinierad fråga som skall anropas. Efter frågan specifieras inom parenteser en lista med parametrar att söka på.

Resultat:
{Block1} exekveras en gång före frågan. Aktiva variabler: $Pagenum, $Numpages, $Rownum, $Numrows, $Pagerows. {Block2} exekveras en gång för varje post som hittas. Aktiva variabler: $Pagenum, $Numpages, $Rownum, $Numrows, $Pagerows, Alla variabler från frågan. {Block3} exekveras en gång efter frågan. Aktiva variabler: $Pagenum, $Numpages, $Rownum, $Numrows, $Pagerows

Begränsa antalet returnerade rader

För att styra hur många rader som visas per sida, resp vilken sida som visas så lägger man till PAGE expr PAGEROWS expr efter frågan. PAGE är vilken sida som ska visas och PAGEROWS är antal rader per sida.

Ex.

QUERY Product() PAGE 1 PAGEROWS 10 DO DISPLAY ... NEXTROW ENDQUERY

Visa åtminstone en rad

Om man vill att Block2 skall skall visas även om man inte fått någon träff så sätt SHOWONCW efter frågan.

Detta behövs för att kunna ta fram en post och visa den i samma formulär oavsett om posten redan finns eller skall skapas.

Ex.

QUERY Product() SHOWONCE DO DISPLAY ... NEXTROW ENDQUERY

14.3.6 QUERY-Frågor

De frågor som man kan ställa med QUERY-kommandot definieras i en fil på servern och de som rör kunddelen i de enklare butikerna är:

Product
Ger produkt utan variant-info, för butiker med varianter.
Primärnyckel: product_id
Övriga nycklar: shop_id, category_id
Resultat: Product 

Category
Hämtar en/flera grupper
Primärnyckel: category_id
Övriga nycklar: shop_id, parent_category_id
Resultat: Category 

SubCategory
Hämtar en/flera grupper, används för att hämta undergrupper när man redan har $category_id definierat.
Primärnyckel: INGEN
Övriga nycklar: shop_id, parent_category_id
Resultat: Category 

ProductVariant
Ger produkt och en variant för butiker utan varianter.
Primärnyckel: product_id
Övriga nycklar: shop_id, category_id
Resultat: Product, Variant, (Unit) 

Variant
Ger varianter, mest användbar om product_id är satt då man får alla varianter till en vara.
Primärnyckel: variant_id
Övriga nycklar: shop_id, product_id
Resultat: Variant, (Unit) 

Variant_numrows
Ger antalet varianter i $Count.
Primärnyckel: ingen!
Övriga nycklar: shop_id, product_id
Resultat: $Count 

Item_numrows
Ger antalet varor i $Count.
Primärnyckel: ingen!
Övriga nycklar: shop_id, category_id
Resultat: $Count 

Group_numrows
Ger antalet grupper i $Count.
Primärnyckel: ingen!
Övriga nycklar: shop_id
Resultat: $Count 

vCampain
Ger alla kampanjmärkta varor.
Primärnyckel: ingen!
Övriga nycklar: shop_id
Resultat: $ID, $shop_id, $category_id, $Text1, $Img_File, $Img_X, $Img_Y 

Shipping
Primärnyckel: shipping_id
Övriga nycklar: shop_id
Resultat: Shipping 

Choose_Shipping
Primärnyckel: ingen!
Övriga nycklar: shop_id
Resultat: Shipping 

Payment
Primärnyckel: payment_id
Övriga nycklar: shop_id
Resultat: Payment 

Choose_Payment
Primärnyckel: ingen!
Övriga nycklar: shop_id
Resultat: Payment

14.3.7 Speciella frågor

CART
Ger innehållet i kundvagnen, det är olika varianter som ligger i vagnen.
Inga nycklar
Resultat: Product, Variant, $variant_id, $unit

SEARCH
Söker efter varor
Sökbegrepp i $Data.Search_Text ord separerade med mellanslag, komma, semikolon etc.
Sökmetod i $Data.Search_Method AND eller OR, blir AND om den ej specificerats.
Sökning i vilka fält i $Data.Search_Where, default värden (Product.Name, Product.Descr, Product.Brand, Variant.TextID, Variant.Size) Om man specificerar ISBN och sökbegreppet är ett giltigt ISBN nummer så sker sökning endast i Variant.TextID fältet och då mot samma ISBN-nummer.
Sökningen är av fritexttyp utom i artikelnummerfältet Variant.TextID som måste ge en fullständig matchning för att träffa. Vid sökning i textfält betraktas versaler och gemena som samma tecken.
Sökresultat begränsas automatiskt till max. 200 träffar om ingenting annat är satt.

CATEGORY_TRACE
Ger vägen av grupper från rooten till aktuell grupp
Indata $category_id
Retultat: Category

CATEGORY_TREE
Ger alla grupper under aktuell i snygg trädstruktur
Indata $category_id
Retultat: Category, $Rownum (med aktuellt djup)

PAGE_SELECTOR
Stegar sig genom ett intervall av sidnummer (för närvarande hårdkodat till 11). Skall utföras mellan QUERY och DISPLAY eller mellan NEXTROW och ENDQUERY för att vara meningsfull. Dessa variabler är aktiva under hela frågan:
$first_page, $last_page - första och sista sidnummer på alla sidor
$cur_page - Sidnummer på aktuell sida.
$start, $end - Sidnummer på första och sista sidan som kommer att visas. Denna variabel är aktiv under loop delen:
$n - loopvariabel, går från $start till $end.

PRICE_QUANTITY
Ger alla stafflingspriser för en vara. Skall utföras innanför QUERY Variant sats för att vara meningsfull.
Resultat:
$QTY = Antalsgräns för denna kolumn.
$PRICE_EA = Pris/st
$PRICE_PQTY = Pris per priskvantitet.

Det går inte att begränsa antalet returnerade rader på ovanstående frågor förutom SEARCH.

14.3.8 Flödeskontroll

IF ... THEN {...} ELSE {...} ENDIF

IF Expr THEN Block1 ENDIF

IF Expr THEN Block1 ELSE Block2 ENDIF

Ett Expr är ett logiskt uttryck, i sin enklaste form bara en variabel som är sann om den har ett värde skilt från 0 eller ''(tomma strängen). Man kan jämföra variabler med varandra och med tal, strängar och konstanter med följande operatorer:

==
Likhet.!

=
Olikhet.

> < >= <=
Större än, mindre än, större eller lika med, mindre eller lika med. %Modulus-operator (resten vid divison lika med 0 eller inte)

Det går tyvärr inte att skriva några mer avancerade uttryck, t.ex. matematiska och parenteser och det saknas även AND,OR, NOT funktionalitet, detta kommer att läggas till vad det lider.

En variabel skrivs som $Tagg.Namn eller bara $Namn. Ett tal skrivs som 5, strängar skrivs inom enkelfnuttar t.ex. 'Potatis'.

14.3.9 Förhindra cachning av sidan

NOCACHE

Gör att sidan inte cachas hos användaren ( och i framtiden på servern )

14.3.10 Tilldela variabler ett värde

<% SET $Rownum 11 %> <% $Rownum = 11 %>

Det finns två olika sätt satt skriva en tilldelning på:

Det gamala sättet: SET $variabel värde
Obs inget = mellan variabel och värde.

Det nya sättet: $variabel = värde
Inget SET komando.

Alla variabler man tilldelar hamnar i $Data.variabel .

14.3.11 Skriva ut selectbox

SELECT ID [$To_from_Variable] ['Options to include in HTML statement']

Skapar en select-kontroll och väljer aktuellt värde efter den primärnyckel som hittas på stacken.

ID är antingen en vanlig fråga eller en speciell värdemängd. To_From anger att svaret och defaultvärdet skall hamna resp hämtas från denna variabel och inte från tabellens primärnyckel som man oftast gör.

Speciella ID:n för SELCT är:

Tax_Class
De momsklasser som definierats i butiken.

Enter_Tax
Med moms, Utan moms.

show_level
Utförligt, Ej bilder, Kompakt.

parent_category_id
Alla grupper som kan bli förälder till denna. Dvs ej de som redan är barn till denna.

GroupID
Alla grupper som inte är gömda och hör till aktuell butik. Om $parent_category_id är satt visas bara de som är barn direkt under den gruppen.

SPLIT($selectvariabel)
Delar upp selectvariabeln och använder dessa delar som texter till selectlistan.

SPLIT_EMPTY($selectvariabel)
Delar upp selectvariabeln och använder dessa delar som texter till selectlistan. Lägger in ett tomt alternativ först.

14.3.12 Utskrift av variabler, radiobuttons, mm.

Variabler skrivs ut med någon av följande syntax: (allt skrivs in inkl. klammer)

$Variabelnamn
Rå utskrift av variabelns värde, om det är pengar så blir det exakt som det kommer från databasen.

$Variabelnamn;
Samma som ovan men semikolonet anger var variabelnamnet slutar. Används om man vill bygga ihop ett ord av utskriften och något annat. t ex. $category_id;sida.html.

$*Variabelnamn
Samma som första men " tecken blir &quot; skall används då man skriver i attributfält i HTML koden.

$$Variabelnamn
Snabbformat för att formattera variablen som pengar.

14.3.13 Anropa specialfunktion

CALL CALLBACK_ID

Denna funktion används för att anropa någon speciell subrutin i systemet.

14.3.14 Ta bort definierad variabel

POP $Namn

Raderar $Data.Namn, dvs tar bort namnet helt så att det inte hittas vid sökning. Är mest användbart efter att man skapat/uppdaterat en post och man sedan vill visa alla poster på resultatsidan.


14.4 SBscript

Skriven av: Helpdesk

All SBscript-kod skrivs i html-sidor eller mailmallar. Man skriver <% för att tala om var SBscriptet börjar och %> för slutet.

<% /*SBscript kommentar som inte skrivs ut på html-sidan*/ %>

14.4.1 DEBUG

Funktionen listar all information som är tillgänglig på stacken vid tillfället då DEBUG anropas.
Ett frågetecken visas på html-sidan och klick på frågetecknet öppnar ett fönster med all data.

Se nedan avsnitt för exempel på hur man kan använda DEBUG.

<%DEBUG%>

14.4.2 PRINT

Används för att kunna skriva ut text inne i sbscript koden.

<html>
  <body>
    <div>
      <% IF $i==1 THEN
        PRINT '<p>Hello World</p>'
      ENDIF%>
    </div>
  </body>
</html>

 

Alternativet är att avsluta scriptkoden och skriva ut texten i html men nackdelen är
att koden blir något långsammare.

<html>
  <body>
    <div>
      <% IF $i==1 THEN%>
        <p>Hello World</p>
      <% ENDIF%>
    </div>
  </body>
</html>

14.4.3 Operatorer

== Likhet.

!= Olikhet.

> Större än

< Mindre än

>= Större eller lika med

<= Mindre eller lika med.

% Modulus-operator resten vid divison.

AND och

OR eller

NOT invertering

<< Bitshiftning till vänter

>> Bitshiftning till höger

& Logisk och

| Logisk eller

^ XOR

~ Logisk NOT

+= Addera och tilldela

-= Subtrahera och tilldela

*= Multiplicera och tilldela

/= Dividera och tilldela

%= Modulus och tilldelning

DEFINED Används för att se om variabel finns

 

Exempel 1 (med %-operator):

<%IF $i%5==0 THEN%> Denna rad kommer att skrivas ut om $i är jämt delbart med 5 tex 0,5,10,15 <%ENDIF%>

 

Exempel 2:

<%IF $Name=='Produkt 1' AND $Price!=5 THEN%> egen text <%ENDIF%>

 

Exempel3 (med << och >>):

Om lock_no = 1 så blir $lock_no_temp=2 dvs 0001 blir 0010
Om lock_no = 2 så blir $lock_no_temp=4 dvs 0010 blir 0100
<%$lock_no_temp = 1 << $lock_no%>

Om lock_no = 10 så blir $lock_no_temp=5 dvs 1010 blir 0101
Om lock_no = 4 så blir $lock_no_temp=2 dvs 0100 blir 0010
$lock_no_temp = $lock_no >> 1

Exempel 4 (%=):

<%$test=5
$test%=3
PRINT $test%>
Resultatet kommer att vara 2, vilket är resten av 5/3

14.4.4 IF

<%IF $Shop.FAX THEN%> på fax $Shop.FAX <%ELSE%> med post <%ENDIF%>

14.4.5 FOR

<%FOR $i=0 TO 10 DO%> loop nummer $i <%ENDFOR%>

14.4.6 Spara variabel

Tilldelning av variabler sker automatiskt till $Data i stacken.
Det finns vissa specifika variabler som man kan skriva till tex $Cart.shipping_id och $Cart.payment_id

<%$myvariabel=1%>


eller

<%$Data.myvariabel=1%>

14.4.7 Skriv ut variabel

<div> <%PRINT $myvariabel%> </div>


eller

<div>$myvariabel</div>

14.4.8 DRAW

Är en gammal funktion som inte ska användas. Den användes för att skriva ut tabeller utifrån en listdefinition.

Har främst använts i admin.

14.4.9 POP

POST och GET parametrar sparas i $Data och även alla värden som man själv använder i sidan. Ibland kan detta skapa problem
med tex FETCH som automatiskt plockar värden från stacken. För att undvika problem och för att städa $Data stacken så
kan man använda

<%POP $variable%>


för att ta bort variabeln från $Data stacken. (det går inte att ta bort andra variabler med POP)

14.4.10 PICTURE

Funktionen skriver automatiskt ut html-kod för en bild.
Inparametrar:

xTransform - (valfritt) unikt id för den transform som ska användas

picture_id - (valfritt) id för den bild som ska visas.

Om man använder PICTURE så kommer padding automatiskt att skapas så att bilden tar upp rätt utrymme (förutsatt att marginaler är aktiverade i admin för transformen)

Produktbilder har flera vyer därför måste $xView anges annars visas alla bilder för alla vyerna.

Anrop utan parametrar:

<%$xTransform='PRODUCT' $xView='DEFAULT' PICTURE() %>


I koden ovan kommer PICTURE att ta första bästa picture_id från stacken.

Anrop med parametrar:

<% $xView='DEFAULT' PICTURE('PRODUCT',$picture_id) %>

14.4.11 PICTURE_URL

Skillnaden mot PICTURE är att endast URL för vald bild kommer att skrivas ut.
Om man använder denna måste man själv skapa img-taggen och padding kommer inte att fungera.

14.4.12 PICTURE_DATA

Fungerar som PICTURE_URL men returnerar strängen "URL,bredd (px), höjd (px)".
Används tex på produktsidan för att öppna en produktbild i fullstorlek.

14.4.13 Kommentar

<% /*Detta är en kommentar*/ %>

14.4.14 CALL

CALL används för att köra en funktion från html-sidan. Man kan skicka in parametrar och får en variabel tillbaka.
Resultatet sparar man på stacken.

Systemet innehåller vissa färdiga CALL-funktioner men man kan även göra egna i plugin till specifika butiker.

<% $result=CALL MyFunc($param1,$param2) PRINT $result %>

GET

Kan användas för att hämta variabel på stacken om man variabelnamnet varierar.

<% CALL GET('HTML_keywords_'+$SHOW)%>

SHOW_TAX_OR_NOT

Det finns flera olika inställningar som påverkar om kunden kommer att se priset i butiken med eller utan moms.
Med denna funktion får man direkt veta vilket pris som visas.

<%IF CALL SHOW_TAX_OR_NOT() THEN%> [%VAT_INFO Varav moms%] <%ELSE%> [%VAT Moms%] <%ENDIF%>: $[$%8s]tax

EVAL

Används för att skriva ut en variabel som innehåller SBscript-kod. EVAL kör koden som finns i varibeln och visar resultatet.
I exemplet nedan innehåller $show_code koden som avgör vilken information som ska visas om en vara är i lager eller slut på lager.
Man kan även använda formatkod här så i detta fallet översätts översättningstaggar som finns i $show_code.

<%CALL EVAL($[TR]show_code)%>

EXEC

Fungerar som EVAL men skillnaden är att resultatet returneras istället för att skrivas ut direkt.

<%$result=CALL EXEC($show_code)%>

REGEX_REPLACE

Inparamterar:

$subject

$regex

$replace

$flags

Exempel: Ta bort alla siffor från $mytext

<%$newtext=CALL REGEX_REPLACE($mytext,'\d','',g)%>

REGEX_MATCH

Inparametrar:

$subject = shift;

$find = shift;

$flags = shift;

Exempel: Kollar om "test" finns $mytext.

<%$result=CALL REGEX_MATCH($mytext,'test)%>

MD5_HEX

<%$encoded_text=CALL MD5_HEX('$text')%>

SHA1_HEX

<%$encoded_text=CALL SHA1_HEX('$text')%>

REMOVE_FIRST_SLASH

Tar bort det första tecknet i strängen om det är /.

<%$text = CALL REMOVE_FIRST_SLASH($text)%>

DATE_ADD_DELTA

Öka ett datum
Inparametrar:

$date - ursprungsdatum

$ys - år som sträng

$ms - månad som strång

$ds - dag som sträng

<%$result=CALL DATE_ADD_DELTA('2012-01-30','0','0','5')%> $result
ger 2012-02-04
Kan även skriva
<%PRINT CALL DATE_ADD_DELTA('2012-01-30','0','0','5')%>

14.4.15 NOCACHE

Förhindrar att sidan cachas hos användaren.

<%NOCACHE%>

14.5 QUERY

Skriven av: Helpdesk

14.6 Formatkoder

Skriven av: Helpdesk