/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Prob. med sotering af billeder i galleri!
Fra : Per Ahm


Dato : 02-09-04 18:49

Har denne liggende i dk.edb.internet.webdesign.serverside.asp

Men der sker ikke rigtig noget

Et galleri, og det virker... Finder selv billeder i angivne mappe, men
soterer stiende i alfabetisk, eller nummerisk... men alle billeder ligger i
formatet eks. 2004-02 , 2002-04 og den viser herfor
2002-04 først! -02 og -04 er "billeder i det år" det kunne ligesåvel være
2003-56

Kan der ikke ændres, så den ikke soterer "alfabetisk" eller nærmere
betegnet, falende istedet for stigene...

Håber måske dette hjalp lidt...

Per Ahm

----------------------


<%

ImageDir = "/galleri/" 'This is the directory where the pictures are stored
*CHANGE THIS*
' Remember to put the slash / in the end of these 2 variables
CopyDir = "/galleri/" ' Same directory again. Don't ask Why *CHANGE
THIS*
picturesperpage = 18 ' *CHANGE THIS TO THE AMOUNT OF PICTURES YOU WANT FOR
EACH PAGE*

' *******************************************************
' Check if we have a subdirectory in the parameter list.
' *******************************************************
subdir = REQUEST("subdir")
IF REQUEST("subdir") <> "" THEN
ImageDir = ImageDir & subdir & "/" ' Add the subdir in parameter to the
current dir.
end if
directpath = server.mappath("/") & ImageDir ' Find the absolute path to the
pictures
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<!-- Minus AutoDato -->
<TITLE>Galleri</TITLE>
<meta name="Generator" content="Microsoft FrontPage 5.0">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<body background="images/page-bg-2.jpg">
<%
' ******************************************************************
' This function is doing the popup window with the original picture
' ******************************************************************
%>
<script type="text/javascript">
function openwindow(photoname, thewidth, theheight) {
thewidth=thewidth+50
theheight=theheight+50
winleft = (screen.width - thewidth) / 2;
i = open("",
"displayWindow","top=10,left="+winleft+",width="+thewidth+",height="+theheig
ht+",status=no,toolbar=no,menubar=no,resize=no,dependent=yes");
i.focus();
i.document.open();
i.document.write('<html>')
i.document.write('<head>')
i.document.write('<title>Camilla & Pers Galleri<\/title>')
i.document.write('<\/head>')
i.document.write('<body>')
i.document.write('<A href="javascript:window.close();">Luk vinduet
igen!<\/A>')
i.document.write('<img src="<%response.write ImageDir%>'+photoname+'"
ALT="">')
i.document.write('<\/body>')
i.document.write('<\/html>')
}
</script>

<style type="text/css">
a.sider {
font-size: 0.9em;
text-decoration: none
}
</style>
</HEAD>

<body link="#000000" vlink="#000000" alink="#000000">
<div>
<p align="center">
<font size="2" face="Verdana">
<%
' ******************************************************************
' This function is checking if AspImage is installed or not.
' ******************************************************************
Function IsComponentInstalled(ProgId)
Dim tmpObject

On Error Resume Next

Set tmpObject = Server.CreateObject(ProgId)
If Err.Number = 0 Then
IsComponentInstalled = True
Else
IsComponentInstalled = False
End If
Set tmpObject = Nothing
End Function

' ******************************************************************
' Get picture, page and id, if they are passed as parameter
' ******************************************************************
picture = request("picture")
id = request("id")
pagenumber = request("page")
If isNumeric(pagenumber) = False Or pagenumber < 1 Then
pagenumber = 1
End If

'*********************************************************************
'* Find all pictures in dictory
'*********************************************************************
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir))
Set objFiles = objFolder.Files

numberofpictures = objFiles.Count
strScriptName = Request.Servervariables("ScriptName")
IF numberofpictures > 0 then
intPageCount = -Int(-(numberofpictures/picturesperpage))
ELSE
intPageCount = 1
END IF

IF picture="" then
Response.Write "Der er ialt " & numberofpictures & " billeder i galleriet"
Response.Write " &nbsp;Dette er side " & pagenumber & " af " &
intPageCount & "<BR><BR>"
END IF

'********************************************************************
'* Write "Prev. Page" if currentpage is not page 1
'********************************************************************
If pagenumber > 1 Then
newpage = pagenumber - 1
PgLink = "<a href='" & strScriptName & "?page=" & newpage
IF subdir <> "" then
PgLink = PgLink + "&amp;subdir=" & subdir
END IF
PgLink = PgLink + "' class='sider'><</A>&nbsp;"
Response.Write PgLink
End If
'*********************************************************************
'* Do a link to all single pages
'*********************************************************************
For i = 1 To intPageCount
PgLink = " <a href='" & strScriptName & "?page=" & i
IF subdir <> "" then
PgLink = PgLink + "&amp;subdir=" & subdir
END IF
PgLink = PgLink + "' class='sider'>" & i & "</A>"
Response.Write PgLink
Next

'*********************************************************************
'* Write "Next Page" if currentpage is not the last page
'*********************************************************************
If Cint(pagenumber) < Cint(intPageCount) then
newpage = pagenumber + 1
PgLink = "<a href='" & strScriptName & "?page=" & newpage
IF subdir <> "" then
PgLink = PgLink + "&amp;subdir=" & subdir
END IF
PgLink = PgLink + "' class='sider'>&nbsp;&nbsp;&nbsp;></A>"
Response.Write PgLink
End If
DIM picturearray

' ******************************************************************
' Run through all files in the directory and put them in the list
' ******************************************************************
For Each Image In objFiles
intFile = intFile + 1
picturelist = picturelist & Image.Name & ","
Next
response.write "<BR>"
picturearray = Split(picturelist,",")

' **************************************************************************
**************
' All places where testing on picture="" then it's because we have to show
the thumbnails
'
****************************************************************************
************
IF picture="" then

'
****************************************************************************
************
' Check if there are any sub-directories in the current folder. If any are
found,
' then show a link for them.
'
' First, if we already are in a subfolder, the do a link for the prev.
folder-
' I'm doing a lot "not easy to read" string manipulation here. I don't want
to use space
' to explain what i actually do in here.
'
****************************************************************************
************

IF subdir <> "" THEN
chkstr = "/"
manipstr = left(ImageDir, Len(ImageDir)-1)
NewDir=left(manipstr,InStrRev(manipstr, chkstr))
IF NewDir = CopyDir then ' This is because the prev. dir is the root.
response.write "&nbsp;&nbsp;<A href='foto.asp'><IMG src='prdir.gif'
alt='Root directory'></A>&nbsp;&nbsp;"
ELSE
NewDir = Mid(NewDir, Len(CopyDir)+1, Len(NewDir)-Len(CopyDir)-1)
Response.write "&nbsp;&nbsp;<A href='foto.asp?subdir="&NewDir&"'><IMG
src='prdir.gif' alt='"&NewDir&"'></A>&nbsp;&nbsp;"
END IF
END IF

Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(directpath)
Set subFolders = folder.SubFolders

For Each folderObject in SubFolders
if subdir <> "" then
thesubfolder = subdir & "/" & folderObject.Name
else
thesubfolder = folderObject.Name
end if
Response.Write "&nbsp;&nbsp;<A href='foto.asp?subdir="&thesubfolder&"'><IMG
src='dir.gif' alt='"&folderObject.Name & "'></A>&nbsp;&nbsp;"
Next
Set subFolders = Nothing
Set folder = Nothing
Set fso = Nothing
response.write "<BR>"

FOR countit=0 TO intFile-1
If (countit >= (pagenumber-1)*picturesperpage) And (countit <
(picturesperpage*pagenumber)) Then
If IsComponentInstalled("AspImage.Image") Then
PicLink = "<A
href='"&strScriptName&"?picture="&picturearray(countit)&"&amp;id="&countit
IF subdir <> "" then
PicLink = PicLink + "&amp;subdir=" & subdir
END IF
PicLink = PicLink + "'><IMG SRC='crttmb.asp?path="&directpath &
"&amp;File="&picturearray(countit)&"' alt='Klik for at se stort
billede.'></A>&nbsp;"
response.write PicLink
else
PicLink = "<A
href='foto.asp?picture="&picturearray(countit)&"&amp;id="&countit
IF subdir <> "" then
PicLink = PicLink + "&amp;subdir=" & subdir
END IF
PicLink = PicLink + "'><IMG SRC='"&ImageDir&picturearray(countit)&"'
width='100' height='100' alt='Klik for at se stort billede.'></A>&nbsp;"
response.write PicLink
end if
end if
next
END IF

'
****************************************************************************
************
' Setup variables for next and previous pictures. Test if current picture is
the first or
'
****************************************************************************
************ last
IF picture<>"" then
if cint(id)=0 then
prev=numberofpictures-1
else
prev=id-1
end if
if cint(id)=cint(numberofpictures-1) then
nextone=0
else
nextone=id+1
end if

' ********************************************
' Write the link to the previous picture
' ********************************************
PicLink = "<br><br><A
href='"&strScriptName&"?picture="&picturearray(prev)&"&amp;id="&prev
IF subdir <> "" then
PicLink = PicLink + "&amp;subdir=" & subdir
END IF
PicLink = PicLink + "'>Sidste Billede</A>&nbsp;&nbsp;"
response.write PicLink

' ********************************************
' Write the link to the next picture
' ********************************************
PicLink = "<A
href='"&strScriptName&"?picture="&picturearray(nextone)&"&amp;id="&nextone
IF subdir <> "" then
PicLink = PicLink + "&amp;subdir=" & subdir
END IF
PicLink = PicLink + "'>Næste billede</A>&nbsp;&nbsp;"
response.write PicLink


If IsComponentInstalled("AspImage.Image") Then
' Set AspImage object to load width and height of the picture (used with the
popup)
Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage directpath & picture
thewidth= Image.MaxX
theheight = Image.MaxY
Set objImg = Nothing
else
thewidth = 600
theheight = 400
end if

vaerd = """javascriptenwindow('"&picture&"',"&thewidth& ","&theheight
&")"""
response.write "<BR><BR><A href="&vaerd&"><IMG src=""" & ImageDir & picture
& """ width=""70%"" alt=""Klik for at åbne i original størelse.""></A>"
end if

Set objFS = Nothing
%> </font>
</DIV>


</BODY>
</HTML>



 
 
Per Ahm (02-09-2004)
Kommentar
Fra : Per Ahm


Dato : 02-09-04 18:53

"Per Ahm" <per@perahm.dk> skrev

> Har denne liggende i dk.edb.internet.webdesign.serverside.asp


Mener selvfølgelig "Har denne liggende i
dk.edb.internet.webdesign.serverside" ikke i .asp

Per Ahm



Ukendt (02-09-2004)
Kommentar
Fra : Ukendt


Dato : 02-09-04 19:44

On Thu, 2 Sep 2004 19:49:07 +0200, "Per Ahm" <per@perahm.dk> wrote:

>Et galleri, og det virker... Finder selv billeder i angivne mappe, men
>soterer stiende i alfabetisk, eller nummerisk... men alle billeder ligger i
>formatet eks. 2004-02 , 2002-04 og den viser herfor
>2002-04 først! -02 og -04 er "billeder i det år" det kunne ligesåvel være
>2003-56


Nu er det mig der har æren af at have lavet det galleri som du spørger
til (skulderklap.wav).

Jeg har i sin tid selv forsøgt at få FSO'en til at sortere på den ene
eller anden måde - uden held.


>For Each Image In objFiles
> intFile = intFile + 1
> picturelist = picturelist & Image.Name & ","
>Next
>response.write "<BR>"
>picturearray = Split(picturelist,",")


Som du kan se her, smider jeg alle filnavne ned i et array og du kan
herefter sortere denne. Prøv at søge på sort array asp på google eller
kig hos dine lokale asp pusher

Der findes mange sort funktioner til asp som allerede er lavet. Den
skal du så lægge ind lige efter ovenstående.



Mvh. Brian

Per Ahm (02-09-2004)
Kommentar
Fra : Per Ahm


Dato : 02-09-04 20:40

"Brian B. Christensen" skrev

> Nu er det mig der har æren af at have lavet det galleri som du spørger
> til (skulderklap.wav).

JA! Skulder klap x 300 , det virker squ....

> Som du kan se her, smider jeg alle filnavne ned i et array og du kan
> herefter sortere denne. Prøv at søge på sort array asp på google eller
> kig hos dine lokale asp pusher
> Der findes mange sort funktioner til asp som allerede er lavet. Den
> skal du så lægge ind lige efter ovenstående.

Har kigget og studeret , men må nok erkende at der er jeg lige rookie nok!
Men tak for det fede galleri

Per!



Ukendt (03-09-2004)
Kommentar
Fra : Ukendt


Dato : 03-09-04 07:13

On Thu, 2 Sep 2004 21:40:25 +0200, "Per Ahm" <per@perahm.dk> wrote:

>"Brian B. Christensen" skrev
>
>> Nu er det mig der har æren af at have lavet det galleri som du spørger
>> til (skulderklap.wav).
>
>JA! Skulder klap x 300 , det virker squ....

Fint at det virker. For det er vist ikke det bedste kode jeg har fået
lavet....

>Har kigget og studeret , men må nok erkende at der er jeg lige rookie nok!
>Men tak for det fede galleri

Jeg fandt nedenstående Bubblesort på activeserverpages:

Den lægger du ind nederst i foto.asp og så kalder du den lige efter
linien "picturearray = Split(picturelist,",")" ved at skrive:

Call BubbleSort(picturearray, 0, 0)


Det burde fungere - uden at jeg dog har testet det.


Mvh. Brian







======================================================================
' Name: BubbleSort
' Arguments: arrTemp = The array you want to be sorted
' sDim = The dimension you want to sort for
' sSort = Asc (0) OR Desc (1)
' Returns: A sorted array
' Developer: Dennis Knappe (dennis@activeserverpages.dk)
'
' This sourcecode can only be used if you DO NO remove my name and
e-mail
'
======================================================================

Dim n
Dim y
Dim t
Dim tmpTop
Dim tmpVal
Dim iBookMark
Dim BubbleElement

BubbleElement = False

For n = 0 To UBound(arrTemp,2)
tmpTop = arrTemp(sDim,n)
iBookmark = n

For y = n To UBound(arrTemp,2)
If sSort = 0 Then
If (tmpTop > arrTemp(sDim,y)) Then
BubbleElement = True
End If
Else
If (tmpTop < arrTemp(sDim,y)) Then
BubbleElement = True
End If
End If

If BubbleElement Then
tmpTop = arrTemp(sDim,y)
iBookmark = y
BubbleElement = False
End If
Next

For t = 0 to UBound(arrTemp, 1)
tmpVal = arrTemp(t, n)
arrTemp(t, n) = arrTemp(t, iBookmark)
arrTemp(t, iBookmark) = tmpVal
Next
Next

End Sub


Per Ahm (03-09-2004)
Kommentar
Fra : Per Ahm


Dato : 03-09-04 20:33

"Brian B. Christensen" skrev
> Det burde fungere - uden at jeg dog har testet det.

Desværre no go!!!

Får bla. fejl ved kaldet af "Call BubbleSort(picturearray, 0, 0)"
Og det er "BubbleSort" den klager over...
Hvad enten om det ligger før eller "kaldet" eller i bunde som du
foreskrev...

Men alternativt, må jeg jo omdøbe mine billeder, så jeg for den ønskede
rækkefølge!!

Tak for dit forsøg!

Per







Mikkel Sandø Larsen (23-05-2005)
Kommentar
Fra : Mikkel Sandø Larsen


Dato : 23-05-05 20:45

Ehm.. Nu er det jo godt nok noget tid siden du kom med denne forespørgsel,
så jeg ved ikke lige hvor relevant det her er.
Men som jeg forstod det ville du bare have billederne arrangeret i omvendt
rækkefølge. Du havde i din kode:
------------------------------------------
For Each Image In objFiles
intFile = intFile + 1
picturelist = picturelist & Image.Name & ","
Next
response.write "<BR>"
picturearray = Split(picturelist,",")
------------------------------------------
Du kan jo bare rette linien
picturelist = picturelist & Image.Name & ","
så der istedet står
picturelist = Image.Name & "," & picturelist

Løser det noget?


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste