Obs!

Användargränssnittet i Dreamweaver CC och senare har förenklats. Det kan därför hända att du inte hittar en del av alternativen i den här artikeln i Dreamweaver CC och senare. Mer information finns i den här artikeln.

Om anpassade serverfunktioner

Dreamweaver har ett antal inbyggda serverbeteenden med vars hjälp det är enkelt att lägga till dynamiska funktioner på en webbplats. Du kan utöka funktionerna i Dreamweaver genom att skapa serverfunktioner som passar dina utvecklingsbehov eller genom att hämta serverfunktioner från webbplatsen Dreamweaver Exchange.

Innan du skapar egna serverfunktioner bör du leta igenom webbplatsen Dreamweaver Exchange och se om någon annan redan har skrivit en serverfunktion med de funktioner som du skulle vilja lägga till på webbplatsen. Många gånger har någon utomstående utvecklare skrivit och testat en serverfunktion som uppfyller dina behov.

Besöka Dreamweaver Exchange

  1. I Dreamweaver kommer du åt Dreamweaver Exchange på något av följande sätt:
    • Välj Hjälp > Dreamweaver Exchange.

    • Välj Fönster > Serverfunktioner, klicka på plusknappen (+) och välj Hämta fler serverfunktioner.

    Webbsidan Dreamweaver Exchange visas i webbläsaren.

  2. Logga in på Exchange med ditt Adobe ID eller följ anvisningarna om hur du öppnar ett Adobe-konto om du ännu inte har skaffat dig ett ID för Dreamweaver Exchange.

Installera en serverfunktion eller något annat tillägg i Dreamweaver

  1. Starta tilläggshanteraren genom att välja Kommandon > Hantera tillägg.
  2. Välj Arkiv > Installera Paket i tilläggshanteraren.

    Mer information finns i Använda tilläggshanteraren.

Arbetsflödet med anpassade serverfunktioner

Om du är webbutvecklare och duktig på ColdFusion, JavaScript, VBScript eller PHP, kan du skriva egna serverfunktioner. Följande åtgärder ingår i att skapa en serverfunktion:

  • Skriva ett eller flera kodblock som utför den nödvändiga åtgärden.

  • Ange var kodblocket ska infogas i sidans HTML-kod.

  • Om serverfunktionen kräver att ett parametervärde anges, skapar du en dialogruta där webbutvecklaren som använder funktionen får ange ett lämpligt värde.

  • Testa serverfunktionen innan du gör det tillgängligt för andra.

Använda Serverfunktionsverktyget

Använd Serverfunktionsverktyget då du lägger till kodblock eller block som funktionen infogar på en sida.

  1. Klicka på plusknappen (+) på panelen Serverfunktioner (Fönster > Serverfunktioner) och välj Ny serverfunktion.
  2. Välj den dokumenttyp som du utvecklar serverfunktionen för på snabbmenyn Dokumenttyp.
  3. Ange serverfunktionens namn i rutan Namn.
  4. (Valfritt) Om du vill kopiera en befintlig serverfunktion och lägga till den i funktionen som du skriver väljer du Kopiera befintlig serverfunktion och sedan serverfunktionen på snabbmenyn Funktion att kopiera. Klicka på OK.

    Dialogrutan Serverfunktionsverktyget visas.

  5. Lägg till ett nytt kodblock genom att klicka på plusknappen (+), ange kodblockets namn och klicka på OK.

    Namnet som du anger visas i Serverfunktionsverktyget och lämpliga skripttaggar visas i rutan Kodblock.

  6. Skriv den kod som behövs under körning för att implementera serverfunktionen i rutan Kodblock.

    Obs!

    När du anger kod i rutan Kodblock kan du bara infoga en enda tagg eller ett enda kodblock för varje namngivet kodblock (t.ex. minFuntion_block1, minFunktion_block2, minFunktion_blockn, o.s.v.). Om du måste mata in flera taggar eller kodblock, skapar du separata kodblock för vart och ett av dem. Du kan även kopiera och klistra in kod från andra sidor.

  7. Placera insättningspunkten i kodblocket där du vill infoga parametern eller markera en sträng som ska ersättas med en parameter.
  8. Klicka på Infoga parametrar i kodblock.
  9. Ange ett namn på parametern i rutan Parameter (till exempel Session), och klicka på OK.

    Parametern infogas i kodblocket på den plats där du placerade insättningspunkten innan du definierade parametern. Om du valde en sträng ersätts varje instans av den markerade strängen i kodblocket med en parametermarkör (till exempel @@Session@@).

  10. Välj ett alternativ på snabbmenyn Infoga kod som anger var kodblocken ska bäddas in.
  11. (Valfritt) Klicka på Avancerat om du vill ange ytterligare information om serverfunktionen.
  12. Upprepa steg 5 till och med 11 om du vill skapa fler kodblock.
  13. Om serverfunktionen kräver att parametrar anges måste du skapa en dialogruta där personen som använder funktionen kan ange dem. Se länken nedan.
  14. Klicka på OK när du har utfört alla steg som krävs för att skapa serverfunktionen.

    Funktionen visas i listan på panelen Serverfunktioner.

  15. Testa serverfunktionen och se till att den fungerar som det är tänkt.

Avancerade alternativ

Serverfunktionen är fullkomligt definierad då du har skrivit källkoden och angett var varje kodblock ska infogas. I de flesta fall behöver du inte ange någon ytterligare information.

Om du är en avancerad användare kan du ange följande alternativ om du vill:

Identifierare

Anger om kodblocket ska behandlas som en identifierare.

Varje kodblock är en identifierare om inget annat anges. Om Dreamweaver hittar ett identifierarkodblock någonstans i dokumentet visas funktionen på panelen Serverfunktioner. Använd alternativet Identifierare för att ange om kodblocket ska behandlas som en identifierare.

Minst ett av serverfunktionens kodblock måste vara en identifierare. Ett kodblock bör inte vara en identifierare om något av följande villkor är uppfyllt: samma kodblock används av någon annan serverfunktion eller kodblocket är så enkelt att det kunde finnas med ändå på sidan.

Serverfunktionsrubrik

Anger beteeendets rubrik på panelen Serverfunktioner.

När siddesignern klickar på plusknappen (+) på panelen Serverfunktioner visas den nya serverfunktionens rubrik på snabbmenyn. När en designer använder en instans av en serverfunktion i ett dokument, visas funktionen i listan med använda funktioner på panelen Serverfunktioner. Ange innehållet på snabbmenyn Plus (+) och listan med använda funktioner med hjälp av rutan Serverfunktionsrubrik.

Ursprungsvärdet i rutan är det namn som du angav i dialogrutan Ny serverfunktion. Om du definierar parametrar uppdateras namnet automatiskt, så att parametrar visas inom parenteser efter serverfunktionens namn.

Set Session Variable (@@Name@@, @@Value@@)

Om användaren godtar standardvärdet visas allting före parenteserna på snabbmenyn Plus (+) (till exempel Ange sessionsvariabel). Namnet och parametrarna visas i listan över använda funktioner, till exempel Ange sessionsvariabel ("abcd", "5").

Kodblock att välja

Anger vilket kodblock som markeras då användaren väljer beteendet på panelen Serverfunktioner.

När du använder en serverfunktion är ett av kodblocken i funktionen det ”kodblock som väljs”. Om du använder serverfunktioner och sedan väljer det på panelen Serverfunktioner, markeras det valda blocket i dokumentfönstret. Som standard väljer Dreamweaver det första kodblocket som inte är ovanför html-taggen. Om alla kodblock är placerade ovanför html-taggen markeras det första kodblocket. Avancerade användare kan välja vilket kodblock som markeras.

Skapa kodblock

Kodblocken som du skapar i Serverfunktionsverktyget är inkapslade i en serverfunktion som visas på panelen Serverfunktioner. Koden kan vara vilken giltig kod som helst för den valda servermodellen. Om du exempelvis väljer ColdFusion som dokumenttyp för det anpassade serverfunktionen, måste den kod som du skriver vara giltig ColdFusion-kod som går att köra på en ColdFusion-programserver.

Du kan skriva kodblocken antingen direkt i Serverfunktionsverktyget eller kopiera och klistra in koden från andra källor. Varje kodblock som du skriver i Serverfunktionsverktyget måste vara en tagg eller ett skriptblock. Om du måste infoga flera taggblock delar du upp dem i separata kodblock.

Villkor i kodblock

I Dreamweaver kan du skriva kodblock med kontrollsatser som utförs om ett villkor är uppfyllt. I Serverfunktionsverktyget används uttrycken if, elseif och else och även serverfunktionsparametrar. På så sätt kan du infoga alternativa textblock beroende på värdena på ELLER förhållandet mellan serverfunktionsparametrar.

I följande exempel visas satserna if, elseif och else. Hakparenteserna ([ ]) betecknar valfri kod och asterisken (*) noll eller flera instanser. Använd följande syntax om du vill köra en del av ett kodblock eller hela kodblocket endast om ett visst eller vissa villkor är uppfyllda:

<@ if (expression1) @>    conditional
text1[<@ elseif (expression2) @>    conditional text2]*[<@ else @> 
    conditional text3]<@ endif @>

Villkorsuttryck kan vara alla JavaScript-uttryck som går att verifiera med JavaScript-funktionen eval(), och kan innehålla en serverfunktionsparameter markerad med @@. (@@ särskiljer parametern från JavaScript-variabler och nyckelord.)

Använda villkorsuttryck effektivt

Om if, else och elseif används inom XML-taggen insertText, förbearbetas texten för tolkning av if-direktiven och bestämning av vilken text som ska inkluderas i resultatet. if- och elseif-direktiven behandlar uttrycket som ett argument. Villkorsuttrycket är detsamma som i JavaScript och kan även innehåller serverfunktionsparametrar. Direktiv som detta gör det möjligt att välja mellan alternativa kodblock på grundval av värden på eller förhållandet mellan serverfunktionsparametrar.

Följande JSP-kod, till exempel, är hämtat från en Dreamweaver-serverfunktion där ett villkorskodblock används:

@@rsName@@.close(); 
<@ if (@@callableName@@ != '') @> 
@@callableName@@.execute(); 
@@rsName@@ = @@callableName@@.getResultSet();<@ else @> 
@@rsName@@ = Statement@@rsName@@.executeQuery(); 
<@ endif @> 
@@rsName@@_hasData = @@rsName@@.next();

Villkorskodblocket börjar med <@ if (@@callableName@@ != '') @> och slutar med <@ endif @>. Koden anger att om användaren anger ett värde för parametern @@callableName@@ i serverfunktionens Parameter-dialogruta, det vill säga om värdet på parametern @@callableName@@ inte är null, eller om (@@callableName@@ != ''), så ersätts villkorskodblocket med följande satser:

@@callableName@@.execute(); 
@@rsName@@ = @@callableName@@.getResultSet();

Annars ersätts kodblocket med följande sats:

@@rsName@@ = Statement@@rsName@@.executeQuery();

Placera ett kodblock

När du skriver kodblock med hjälp av Serverfunktionsverktyget måste du ange var de ska infogas i sidans HTML-kod.

Om du till exempel infogar ett kodblock före den inledande <html>-taggen, måste du ange kodblockets position relativt andra taggar, skript och serverfunktioner i det aktuella avsnittet i sidans HTML-kod. Ett typexempel är att placera en funktion antingen före eller efter en postmängdsfråga som också kan finnas på sidan före den första <html>-taggen.

När du väljer ett placeringsalternativ på snabbmenyn Infoga kod ändras de tillgängliga alternativen på snabbmenyn Relativ placering och innehåller då relevanta alternativ för den delen av sidan. Om du till exempel väljer Ovanför <HTML>-koden på snabbmenyn Infoga kod, återspeglar placeringsalternativen på snabbmenyn Relativ placering de alternativ som är relevanta för den delen av sidan.

I följande tabell visas vilka möjligheter som ges för infogning av kodblock samt de relativa placeringsalternativen för var och en av dem:

Alternativ för Infoga kod

Alternativ för Relativ placering

Ovanför <HTML>-koden

  • I början av filen

  • Precis före postmängderna

  • Precis efter postmängderna

  • Precis ovanför <html>-taggen

  • Egen placering

Nedanför <HTML>-koden

  • Före filslutet

  • Före stängning av postmängd

  • Efter stängning av postmängd

  • Efter </html> -taggen

  • Egen placering

Relativt till en viss kod

Välj en tagg på snabbmenyn Tagg och sedan ett placeringsalternativ.

Relativt till markeringen

Före markeringen

Efter markeringen

Ersätt markeringen

Radbryt markeringen

Vill du ange en placering själv måste du tilldela kodblocket en vikt. Använd alternativet Egen placering då du behöver infoga mer än ett kodblock i en särskild ordning. Om du exempelvis vill infoga en ordnad serie om tre kodblock efter de kodblock som öppnar postmängder, skulle du ange vikten 60 för det första blocket, 65 för det andra och 70 för det tredje.

I Dreamweaver tilldelas som standard vikten 50 till alla postmängdinledande kodblock som infogas före <html>-taggen. Om två eller flera block har samma vikt ordnar Dreamweaver dem slumpmässigt.

Placera ett kodblock (allmänna anvisningar)

  1. Skriv ett kodblock med Serverfunktionsverktyget.
  2. Välj var kodblocket ska infogas på snabbmenyn Infoga kod i dialogrutan Serverfunktionsverktyget.
  3. Välj en placering relativt den som du valde på snabbmenyn Infoga kod i dialogrutan Serverfunktionsverktyget.
  4. Klicka på OK om du skriver färdigt kodblocket.

    Serverfunktioner listas på panelen Serverfunktioner (Fönster > Serverfunktioner). Klicka på plusknappen (+) om du vill se serverfunktionen.

  5. Testa serverfunktionen och se till att den fungerar som det är tänkt.

Placera ett kodblock relativt en annan tagg på sidan

  1. Välj Relativt till en viss tagg på snabbmenyn Infoga kod.
  2. Ange taggen i rutan Tagg eller välj en på snabbmenyn.

    Om du anger en tagg, utelämnar du vinkelparenteserna (<>).

  3. Ange en plats relativt taggen genom att välja ett alternativ på snabbmenyn Relativ placering.

Placera ett kodblock relativt en tagg som siddesignern väljer

  1. Välj Relativt till markeringen på snabbmenyn Infoga kod.
  2. Ange en plats relativt markeringen genom att välja ett alternativ på snabbmenyn Relativ placering.

    Du kan infoga kodblocket precis före eller efter markeringen. Du kan även ersätta markeringen med kodblocket eller låta det flöda runt markeringen.

    Om du vill flöda kodblocket runt en markering måste den bestå av en start- och en sluttagg utan något mellan dem, på följande vis:

    <CFIF Day=”Monday”></CFIF>

    Infoga den del av kodblocket som hör till starttaggen före markeringens starttagg och den del som tillhör sluttaggen efter markeringens sluttagg.

Upprepa kodblock med direktivet loop

Använd följande syntax om du vill återanvända en del av ett kodblock eller hela blocket ett antal gånger:

<@ loop (@@param1@@,@@param2@@) @>    code
block<@ endloop @>

När du skapar serverfunktioner kan du använda slingor för att repetera ett kodblock ett visst antal gånger. <@ loop (@@param1@@,@@param2@@,@@param3@@,@@param_n@@) @> kodblock <@ endloop @>Direktivet loop tar en kommaavgränsad lista med parametervektorer som argument. I det här fallet gör parametervektorargument det möjligt för användaren att ange flera värden för en och samma parameter. Den upprepade texten mångfaldigas n gånger, där n är längden på parametervektorargumenten. Om du använder mer än ett parametervektorargument måste samtliga vektorer vara lika långa. Den i:te gången slingan körs ersätter de i:te elementen i parametervektorerna motsvarande parameterinstanser i kodblocket.

När du skapar en dialogruta för serverfunktionen kan du lägga till en kontroll som ger siddesignern möjlighet att skapa parametervektorer. Dreamweaver har en enkel vektorkontroll som du kan använda då du skapar dialogrutor. Den här kontrollen, som heter Textfält med kommaseparerad lista, hittar du i Serverfunktionsverktyget. Vill du skapa mer komplicerade gränssnittselement läser du API-dokumentationen. Du kan skapa en dialogruta med en kontroll för att skapa vektorer (till exempel en rutnätskontroll).

Du kan kapsla in hur många villkor eller loop-direktiv du vill i ett villkorsdirektiv. Du kan till exempel ange att en slinga ska köras om ett uttryck är sant.

Följande exempel visar hur du kan använda sådana upprepade kodblock för att skapa serverfunktioner (exemplet är en ColdFusion-funktion som används för att få tillgång till en lagrad procedur):

<@ loop (@@param1@@,@@param2@@,@@param3@@,@@param_n@@) @>    code block 
<@ endloop @>
<CFSTOREDPROC procedure="AddNewBook" 
    datasource=#MM_connection_DSN# 
    username=#MM_connection_USERNAME# 
    password=#MM_connection_PASSWORD#> 
<CFPROCPARAM type="IN" dbvarname="@CategoryId" value="#Form.CategoryID#" 
    cfsqltype="CF_SQL_INTEGER"> 
<CFPROCPARAM type="IN" dbvarname="@ISBN" value="#Form.ISBN#" 
    cfsqltype="CF_SQL_VARCHAR"> 
</CFSTOREDPROC>

I det här exemplet kan taggen CFSTOREDPROC innehålla noll eller fler CFPROCPARAM-taggar. Utan stöd för loopdirektivet finns det emellertid inget sätt att inkludera CFPROCPARAM-taggarna i den infogade CFSTOREDPROC-taggen. Om denna skulle skapas som en serverfunktion utan att loopdirektivet användes, skulle du behöva dela upp det här exemplet i två deltagare: en CFSTOREDPROC-huvudtagg och en CFPROCPARAM-tagg vars deltagartyp är flerfaldig.

Med loop-direktivets hjälp kan du skriva samma procedur på följande sätt:

<CFSTOREDPROC procedure="@@procedure@@" 
datasource=#MM_@@conn@@_DSN# 
username=#MM_@@conn@@_USERNAME# 
password=#MM_@@conn@@_PASSWORD#> 
<@ loop (@@paramName@@,@@value@@,@@type@@) @> 
    <CFPROCPARAM type="IN" 
    dbvarname="@@paramName@@" 
    value="@@value@@" 
    cfsqltype="@@type@@"> 
<@ endloop @> 
</CFSTOREDPROC>

Obs!

Radmatningar efter ”@>” ignoreras.

Om användaren anger följande parametervärden i dialogrutan Serverfunktionsverktyget:

procedure = "proc1" 
conn = "connection1" 
paramName = ["@CategoryId", "@Year", "@ISBN"] 
value = ["#Form.CategoryId#", "#Form.Year#", "#Form.ISBN#"] 
type = ["CF_SQL_INTEGER", "CF_SQL_INTEGER", "CF_SQL_VARCHAR"]

Serverfunktionen skulle infoga följande kod på sidan:

<CFSTOREDPROC procedure="proc1" 
datasource=#MM_connection1_DSN# 
username=#MM_connection1_USERNAME# 
password=#MM_connection1_PASSWORD#> 
<CFPROCPARAM type="IN" dbvarname="@CategoryId" value="#Form.CategoryId#" 
    cfsqltype="CF_SQL_INTEGER"> 
<CFPROCPARAM type="IN" dbvarname="@Year" value="#Form.Year#" 
    cfsqltype="CF_SQL_INTEGER"> 
<CFPROCPARAM type="IN" dbvarname="@ISBN" value="#Form.ISBN#" 
    cfsqltype="CF_SQL_VARCHAR"> 
</CFSTOREDPROC>

Obs!

Parametervektorer går inte att använda utanför slingor, utom om de ingår i ett villkorsuttryck.

Använda slingdirektivets variabler _length och _index

Loopdirektivet innehåller två inbyggda variabler som du kan använda för inbäddade if-villkor. Variablerna är: _length och _index. Variabeln _length utvärderar längden på de matriser som bearbetas av loopdirektivet medan variabeln _index utvärderar det aktuella indexet för loopdirektivet. Se till att variablerna bara tolkas som direktiv och inte som aktuella parametrar som ska överföras till loopen genom att inte omsluta någon av dem med @@.

Ett exempel på hur inbyggda variabler används är när de används i import-attributet för siddirektivet. import-attributet kräver att paket avgränsas med kommatecken. Om loop-direktivet utökas kring hela import-attributet skulle attributnamnet import= endast skrivas ut vid loopens första upprepning – detta innefattar det avslutande citattecknet (") – och inget kommatecken skulle skrivas ut vid loopens sista upprepning. Med den inbyggda variabelns hjälp kan du uttrycka detta på följande sätt:

<@loop (@@Import@@)@> 
<@ if(_index == 0)@>import=" 
<@endif@>@@Import@@<@if (_index == _length-1)@>"<@else@>, 
<@ endif @> 
<@endloop@>

Begära en parameter för serverfunktionen

Serverfunktioner kräver många gånger att siddesignern anger ett parametervärde. Värdet måste infogas innan serverfunktionens kod infogas på sidan.

Du skapar dialogrutan genom att definiera de parametrar som designern ska ange i koden. Därefter genererar du en dialogruta för serverfunktionen. Där kan siddesignern ange ett parametervärde.

Obs!

En parameter läggs till automatiskt i kodblocket om du anger att koden ska infogas relativt en viss tagg som siddesignern väljer (det vill säga om du väljer Relativt till en viss kod på snabbmenyn Infoga kod). Parametern gör att en taggmeny läggs till i funktionens dialogruta så att siddesignern kan välja en tagg.

Definiera parametern i serverfunktionskoden

  1. Ange en parametermarkör i koden där du vill att det angivna parametervärdet ska infogas. Parametern har följande syntax:
    @@parameterName@@
  2. Omslut formParam-strängen med parametermärken (@@):
    <% Session(“lang_pref”) = Request.Form(“@@formParam@@”); %>

    Säg att serverfunktionen innehåller följande kodblock:

    <% Session(“lang_pref”) = Request.Form(“Form_Object_Name”); %>

    Om du vill att siddesignern ska ange värdet på Form_Object_Name, omgärda strängen med parametermarkörer (@@):<% Session(“lang_pref”) = Request.Form(“@@Form_Object_Name@@”); %>

    <% Session(“lang_pref”) = Request.Form(“@@Form_Object_Name@@”); %>

Du kan även markera strängen och klicka på knappen Infoga parameter i kodblock. Ange ett parameternamn och klicka på OK. Dreamweaver ersätter samtliga instanser av den markerade strängen med det angivna parameternamnet omslutet av parametermarkörer.

Dreamweaver utnyttjar strängarna som du omsluter med parametermarkörer för att etikettera kontrollerna i dialogrutan som genereras (se nästa procedur). I det föregående exemplet skapar Dreamweaver en dialogruta med följande etikett:

Obs!

Parameternamn i serverfunktionskod får inte innehålla mellanslag. Därför går det inte att ha mellanslag i etiketterna i dialogrutan. Om du vill att etiketten ska innehålla mellanslag kan du redigera den genererade HTML-filen.

Ange ett parameternamn
Ange ett parameternamn

Skapa en dialogruta för serverfunktionen för att begära parametervärdet

  1. Klicka på Nästa i Serverfunktionsverktyget.
  2. Om du vill ändra ordningen för dialogrutans kontroller kan du markera en parameter och klicka på upp- eller nedpilen.
  3. Om du vill ändra en parameters kontroll kan du markera den och välja en annan kontroll i kolumnen Visa som.
  4. Klicka på OK.

    Dreamweaver genererar en dialogruta med en etiketterad kontroll för varje parameter som du har definierat och som designern måste ange.

Visa dialogrutan

  1. Klicka på plusknappen (+) på panelen Serverfunktioner (Fönster > Serverfunktioner) och välj den anpassade serverfunktionen på snabbmenyn.

Redigera dialogrutan som du skapade för serverfunktionen

  1. Klicka på plusknappen (+) på panelen Serverfunktioner (Fönster > Serverfunktioner) och välj Redigera serverfunktioner på snabbmenyn.
  2. Välj serverfunktionen i listan och klicka på Öppna.
  3. Klicka på Nästa.

    En dialogruta visas med en lista över alla parametrar som du har definierat i koden och som designern måste ange.

  4. Om du vill ändra ordningen för dialogrutans kontroller kan du markera en parameter och klicka på upp- eller nedpilen.
  5. Om du vill ändra en parameters kontroll kan du markera den och välja en annan kontroll i kolumnen Visa som.
  6. Klicka på OK.

Redigera och ändra serverfunktioner

Du kan redigera serverfunktioner som har skapats i Serverfunktionsverktyget. Det gäller även funktioner som du har hämtat från webbplatsen Dreamweaver Exchange och andra utomstående utvecklare.

Om du tillämpar en serverfunktion på en sida och sedan redigerar den i Dreamweaver, visas inte längre några instanser av den gamla funktionen på panelen Serverfunktioner. Panelen Serverfunktioner söker igenom sidan efter kod som motsvarar koden i kända serverfunktioner. Om serverfunktionens kod ändras känner panelen inte igen tidigare vesioner av funktionen på sidan.

Behålla gamla och nya versioner av funktionen på panelen

  1. Klicka på plusknappen (+) på panelen Serverfunktioner (Fönster > Serverfunktioner), välj Ny serverfunktion och skapa en kopia av den gamla funktionen.

Redigera koden för en serverfunktion som har skapats med Serverfunktionsverktyget

  1. Klicka på plusknappen (+) på panelen Serverfunktioner (Fönster > Serverfunktioner) och välj Redigera serverfunktioner på snabbmenyn.

    I dialogrutan Redigera serverfunktioner visas samtliga funktioner för den aktuella servertekniken.

  2. Välj serverfunktionen och klicka på Redigera.
  3. Välj ett lämpligt kodblock och ändra koden, parametermarkörerna eller den plats där kodblocket ska infogas på sidorna.
  4. Om den ändrade koden inte innehåller några parametrar som designern måste ange, klickar du på OK.

    Dreamweaver återskapar serverfunktionen utan dialogruta. Den nya serverfunktionen visas på plussnabbmenyn (+) på panelen Serverfunktioner.

  5. Om den ändrade koden innehåller parametrar som designern måste ange klickar du på Nästa.

    Dreamweaver frågar om du vill skapa en nya dialogruta och ersätta den gamla. Gör de ändringar du vill och klicka på OK.

    Dreamweaver sparar alla ändringar i serverfunktionens EDML-fil.

Riktlinjer för kod

I allmänhet bör serverfunktionens kod vara kort och robust. Webbutvecklare är väldigt försiktiga med vilken kod de lägger till på sina sidor. Följ allmänt accepterad praxis för dokumenttypens språk (ColdFusion, JavaScript, VBScript eller PHP). När du skriver kommentarer bör du ta hänsyn till att de som behöver förstå koden har olika teknisk bakgrund. Det kan till exempel vara webb- och gränssnittsdesigners eller webbprogramutvecklare. Skriv kommentarer som återger syftet med koden och eventuella anvisningar om hur den infogas på sidan.

Håll följande riktlinjer i åtanke då du skapar serverfunktioner:

Felkontroll

Ett viktigt krav. Serverfunktionens kod bör hantera alla fel som inträffar. Försök förutse alla möjligheter. Vad händer till exempel om en parameterfråga inte får något svar? Vad händer om inga poster returneras från en fråga?

Unika namn

Är en god hjälp för att se till att koden är unik och undviker problemet med namn som står i konflikt med annan kod. Om sidan till exempel innehåller funktionen hideLayer() och den globala variabeln ERROR_STRING, och din serverfunktion infogar kod som också använder de här namnen, kan serverfunktionen stå i konflikt med den befintliga koden.

Kodprefix

Ger dig möjlighet att identifiera dina egna funktioner och globala variabler på en sida. En konvention är att använda dina initialer. Använd aldrig prefixet MM_, eftersom det är reserverat för Dreamweaver. Dreamweaver lägger till prefixet MM_ framför alla funktioner och globala variabler för att förhindra att de hamnar i konflikt med kod som du skriver.

var MM_ERROR_STRING = "..."; 
function MM_hideLayer() {

Undvik likartade kodblock

så att koden du skriver inte liknar den i andra block alltför mycket. Om ett kodblock är för likt ett annat block på sidan kan panelen Serverfunktioner av misstag identifiera det första blocket som en instans av det andra (eller omvänt). En enkel lösning är att lägga till en kommentar till ett kodblock så att det blir mer unikt.

Testa serverfunktioner

På Dreamweaver Exchange rekommenderas du att utföra följande test på samtliga serverfunktioner som du skriver:

  • Använd funktionen från panelen Serverfunktioner. Om det har en dialogruta anger du giltiga data i varje fält och klickar på OK. Kontrollera att inga fel inträffat då funktionen används. Kontrollera att serverfunktionens färdiga kod visas i Kodpanelen.

  • Använd serverfunktionen igen och ange ogiltiga data i samtliga fält i dialogrutan. Pröva med att lämna fältet tomt, använda stora eller negativa tal, ange ogiltiga tecken (till exempel /, ?, :, * och så vidare) och använda bokstäver i numeriska fält. Du kan skriva verifieringsrutiner för att hantera ogiltiga data (verifieringsrutiner måste kodas manuellt och det är ett ämne som inte tas upp i den här boken).

    Kontrollera följande saker efter att ha tillämpat serverfunktionen på sidan:

  • Kontrollera panelen Serverfunktioner och se till att funktionens namn visas i listan över funktioner som har lagts till på sidan.

  • Kontrollera i tillämpliga fall att serverskriptikoner visas på sidan. De generiska serverskriptikonerna är guldbrickor. Visa ikonerna genom att aktivera Osynliga element (Visa > Visuella hjälpmedel > Osynliga element).

  • Kontrollera att ingen ogiltig kod genereras i kodläge (Visa > Kod).

    Om serverfunktionen dessutom infogar kod i dokumentet som upprättar en anslutning till en databas, skapar du en testdatabas för att testa koden som infogas i dokumentet. Kontrollera anslutningen genom att definiera frågor som hämtar olika datauppsättningar samt datauppsättningar med olika storlekar.

    Skicka slutligen sidan till servern och öppna den i en webbläsare. Visa sidans HTML-källkod och kontrollera att serverskripten inte har genererat någon ogiltig HTML-kod.

Denna produkt är licensierad enligt en Creative Commons Erkännande-Ickekommersiell-Dela Lika 3.0 Unported-licens  Twitter™- och Facebook-inlägg omfattas inte av villkoren i Creative Commons-licensen.

Juridiska meddelanden   |   Onlinesekretesspolicy