Avatar billede juks Novice
05. oktober 2006 - 14:45 Der er 13 kommentarer og
1 løsning

dynamiske billeder på vores forside

Hej ,

vi har nogle sponsore på vores hjemmeside
men vi ville gerne lave det sådan at blive udskiftet dynamisk sådan at det ikke er de samme billeder der bliver vist.
er der nogle der ved hvordan man kan lave det så man har en mappe også "skifter"  den selv ud hver 30. sek  fx
Avatar billede softspot Forsker
05. oktober 2006 - 14:54 #1
En metode kunne være at smide reklamen i en iframe og som lade den opdatere hvert halve minut. Siden der vises skal så vælge reklamen i en eller anden orden eller tilfældigt alt efter hvordan du ønsker det.

Alternativt kan man lave et javascript som hvert halve minut skifter src på et img-element ud fra et array af billedestier som sendes med til klienten for hver server-forspørgsel.

En 3. mulighed er at foretage en server-forspørgsel i baggrunden som returnerer navnet på et billede. Man kunne måske endda bare bruge en asp-side i src på img-elementet, som opdateresdes hvert halve minut vha. js. På serveren skal udvælgende i alle tilfælde sørge for billederne kommer i en rotationsorden efter et eller andet mønster.
Avatar billede juks Novice
05. oktober 2006 - 15:04 #2
har du evt en kode jeg kunne "låne " er lidt rookie i ASP
Avatar billede softspot Forsker
05. oktober 2006 - 15:08 #3
Arbejder på en - øjeblik :)
Avatar billede softspot Forsker
05. oktober 2006 - 15:21 #4
Udvælgelse af tilfældige filnavne i en folder:

Først og fremmest laver vi en funktion som læser alle filerne i en folder over i en liste/streng:

<%
' ----------------------------------------
' Generer en liste af filer fra den folder
' som reklamerne ligger i
' ----------------------------------------
function getFiles()
  dim fso, fldr, lstFiles
  lstFiles = ""
  set fso = Server.CreateObject("Scripting.FileSystemObject")
  set fldr = fso.GetFolder(Server.MapPath("/reklamer"))
  for each fl in fldr.Files
    if fl.
    if len(lstFiles) > 0 then
      lstFiles = lstFiles & "|"
    end if
    lstFiles = lstFiles & fl.Name
  next
  set fldr = nothing
  set fso = nothing

  getFiles = lstFiles
end function

' ----------------------------------------
' Hvis fillisten ikke er indlæst, så gør det og
' gem den i en session-variabel...
' ----------------------------------------
if isEmpty(session("filelist")) then
  session("filelist") = getFiles()
end if
%>


Dernæst bestemmer vi os for en metode at returnere den valgte fil. En metode kunne være tilfældig valg som vises i en iframe:

<%
' ----------------------------------------
' find et indeks til opslag i listen med billedenavne
' ----------------------------------------
arrFiles = split(session("filelist"), "|")
Randomize
idx = rnd * ubound(arrFiles)

' ----------------------------------------
' Generer en HTML-side med et img-element
' med det nye billede, som genindlæser sig
' selv efter 30 sekunder (30.000 millisekunder)...
' ----------------------------------------
%>
<html>
<head>
<script type="text/javascript">
window.onload = function() {
  setTimeout("window.location.reload(true)",30000);
}
</script>
</head>
<body style="margin:0;padding:0;width:100%;height:100%;">
<img src="/reklamer/<%=arrFiles(idx)%>">
</body>
</html>


selve hovedsiden har så en iframe med de ønskede dimensioner, der hvor reklamen skal vises.
Avatar billede softspot Forsker
05. oktober 2006 - 16:04 #5
Der var vist lige en fejl i indlæsningen af filerne... du får lige en rettet version:

<%
' ----------------------------------------
' Generer en liste af filer fra den folder
' som reklamerne ligger i
' ----------------------------------------
function getFiles()
  dim fso, fldr, lstFiles
  lstFiles = ""
  set fso = Server.CreateObject("Scripting.FileSystemObject")
  set fldr = fso.GetFolder(Server.MapPath("/reklamer"))
  for each fl in fldr.Files
    if len(lstFiles) > 0 then
      lstFiles = lstFiles & "|"
    end if
    lstFiles = lstFiles & fl.Name
  next
  set fldr = nothing
  set fso = nothing

  getFiles = lstFiles
end function

' ----------------------------------------
' Hvis fillisten ikke er indlæst, så gør det og
' gem den i en session-variabel...
' ----------------------------------------
if isEmpty(session("filelist")) then
  session("filelist") = getFiles()
end if
%>
Avatar billede juks Novice
06. oktober 2006 - 08:59 #6
ser kanon ud , nu er vores udbyder lige gået ned så vi kan ikke bruge vores server men jeg tester det i weekenden .. kan du smide et svar..
Avatar billede softspot Forsker
06. oktober 2006 - 09:03 #7
Du får et svar her, men test det lige inden du tildeler point, så vi er sikre på at du ikke belønner mig for noget som ikke fungerer :)
Avatar billede juks Novice
06. oktober 2006 - 09:20 #8
ahhh . har lige glemt at den skal også kunne gemme et link.... :-(
Avatar billede softspot Forsker
06. oktober 2006 - 09:59 #9
Du kan evt. lave en fil (hvis altså ikke du har en database), hvor du kobler link og billede sammen vha. et pipesepareret format, f.eks.:

billede1.jpg|http://www.annoncør1.dk/
billede2.jpg|http://www.annoncør2.dk/

Denne fil vedligeholdes så med de reklamer du vil have tilgængelige i dit system (koden nedenfor kræver at der ikke er tomme linier i filen).

Det betyder også at du skal ændre måden for hvordan du indlæser filnavne (nu skal de læses fra en fil i stedet for fra filsystemet). Det kan du gøre således (udskift den forrige funktion med denne):

' ----------------------------------------
' Indlæs konfigurationsfilen med reklamer
' og urls til annoncørerne...
' ----------------------------------------
function getFiles()
  dim fso, fldr, lstFiles
  lstFiles = ""
  set fso = Server.CreateObject("Scripting.FileSystemObject")
  set ftxt = fso.OpenTextStream(Server.MapPath("/reklamer/config.txt"))
  indhold = ftxt.ReadAll
  ftxt.close
  set fso = nothing

  arrLines = Split(indhold, vbCrLf)
  getFiles = arrLines
end function


Dernæst skal funktionaliteten vedr. udvælgelsen også skiftes ud, da den skal håndtere et array i stedet for en streng. Således:

<%
' ----------------------------------------
' find et indeks til opslag i listen med billedenavne
' ----------------------------------------
arrFiles = session("filelist")
Randomize
idx = rnd * ubound(arrFiles)

' ----------------------------------------
' Generer en HTML-side med et img-element
' med det nye billede, som genindlæser sig
' selv efter 30 sekunder (30.000 millisekunder)...
' ----------------------------------------
%>
<html>
<head>
<script type="text/javascript">
window.onload = function() {
  setTimeout("window.location.reload(true)",30000);
}
</script>
</head>
<body style="margin:0;padding:0;width:100%;height:100%;">
<a href="<%=arrFiles(idx)(1)%>"><img src="/reklamer/<%=arrFiles(idx)(0)%>" border="0"></a>
</body>
</html>
Avatar billede softspot Forsker
06. oktober 2006 - 10:01 #10
Du skal nok lige fjerne decimalerne fra det tilfældige idx:

' ----------------------------------------
' find et indeks til opslag i listen med billedenavne
' ----------------------------------------
arrFiles = session("filelist")
Randomize
idx = int(rnd * ubound(arrFiles))
Avatar billede softspot Forsker
05. marts 2007 - 13:46 #11
Hva' så! Skal der tildeles point?
Avatar billede juks Novice
05. marts 2007 - 13:50 #12
ja arbejder på at få det til at virke
Avatar billede softspot Forsker
05. marts 2007 - 14:15 #13
OK, men har du så brug for noget assistance eller er det stadig udbyderen der gør knuder?
Avatar billede softspot Forsker
24. oktober 2007 - 14:32 #14
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester