PHP beginner |
|
Hallo allen,
Het idee:
Een eenvoudige Csharp.net photogallery met albums. Ik stel voor om bij de begin pagina te beginnen.
Op de begin pagina van het fotoboek staat een overzicht met alle albums en een preview image van het album. Door hier op te klikken verschijnen alle foto's in het album.
De album pagina weergeeft alle foto's. Door op 1 van deze foto's te klikken wordt de foto weergeven. Dat zou met lightbox, thickbox of shadowbox kunnen.
Het is de bedoeling dat een directory uitgelezen wordt met de volgende structuur:
/gallery
* Album_1
* Album_2
* enz.
Nog even in het kort:
- Beginpagina: Overzicht van alle foto-albums met een preview, waarop je klikt om het album te openen. Tevens voorzien van album-titel.
- Albumpagina: Overzicht van alle foto's die in het album staan. Als je op een foto klikt opent deze in een lightbox, thickbox of shadowbox.
In het verleden heeft Titjes mij al een stukje op weg geholpen door het schrijven van een class. Alleen wil de implementatie ervan mij niet echt lukken. Vandaar dat ik de code nog even bijvoeg:
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using System.Collections;
namespace nGallery
{
public class Album : CollectionBase
{
private string strDirectDir = String.Empty, strDir = String.Empty, _Naam = String.Empty;
public Album(string physicalPath)
{
strDir = physicalPath;
_Naam = strDir.Substring(strDir.LastIndexOf(@"\")).Remove(0, 1);
Fill();
}
public Album(string physicalPath, string albumDir)
{
strDirectDir = albumDir;
strDir = physicalPath + "\\" + strDirectDir;
_Naam = strDir.Substring(strDir.LastIndexOf(@"\")).Remove(0, 1);
Fill();
}
public Image this[int index]
{
get { return ((Image)List[index]); }
set { List[index] = value; }
}
public string AlbumNaam
{
get { return _Naam; }
}
public void Add(Image img)
{
List.Add(img);
}
public int CountPhotos
{
get { return List.Count; }
}
private void Fill()
{
Image img;
int i = 1;
foreach (string file in Directory.GetFiles(strDir, "*.bmp"))
{
string strTempLink = file.Replace(@"\", "/");
img = new Image();
img.ImageUrl = strDirectDir + "/" + file.Substring(strTempLink.LastIndexOf("/") + 1);
img.AlternateText = i.ToString();
img.ToolTip = file.Substring(strTempLink.LastIndexOf("/") + 1);
img.CssClass = "photoExtraData";
List.Add(img);
i++;
}
}
}
public class Gallery : CollectionBase
{
private string strDirectDir = "";
public Gallery(string physicalPath, string dir)
{
strDirectDir = physicalPath + dir;
GetAllAlbums();
}
public Album this[int index]
{
get { return ((Album)List[index]); }
set { List[index] = value; }
}
public void Add(Album a)
{
List.Add(a);
}
public int CountAlbums
{
get { return List.Count; }
}
public void GetAllAlbums()
{
foreach (string subdir in Directory.GetDirectories(strDirectDir))
Add(new Album(subdir));
}
}
}
using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.IO; using System.Collections; namespace nGallery { public class Album : CollectionBase { private string strDirectDir = String.Empty, strDir = String.Empty, _Naam = String.Empty; public Album(string physicalPath) { strDir = physicalPath; _Naam = strDir.Substring(strDir.LastIndexOf(@"\")).Remove(0, 1); Fill(); } public Album(string physicalPath, string albumDir) { strDirectDir = albumDir; strDir = physicalPath + "\\" + strDirectDir; _Naam = strDir.Substring(strDir.LastIndexOf(@"\")).Remove(0, 1); Fill(); } public Image this[int index] { get { return ((Image)List[index]); } set { List[index] = value; } } public string AlbumNaam { get { return _Naam; } } public void Add(Image img) { List.Add(img); } public int CountPhotos { get { return List.Count; } } private void Fill() { Image img; int i = 1; foreach (string file in Directory.GetFiles(strDir, "*.bmp")) { string strTempLink = file.Replace(@"\", "/"); img.ImageUrl = strDirectDir + "/" + file.Substring(strTempLink.LastIndexOf("/") + 1); img.AlternateText = i.ToString(); img.ToolTip = file.Substring(strTempLink.LastIndexOf("/") + 1); img.CssClass = "photoExtraData"; List.Add(img); i++; } } } public class Gallery : CollectionBase { private string strDirectDir = ""; public Gallery(string physicalPath, string dir) { strDirectDir = physicalPath + dir; GetAllAlbums(); } public Album this[int index] { get { return ((Album)List[index]); } set { List[index] = value; } } public void Add(Album a) { List.Add(a); } public int CountAlbums { get { return List.Count; } } public void GetAllAlbums() { foreach (string subdir in Directory.GetDirectories(strDirectDir)) } } }
Is er iemand die mij op weg kan helpen met het scripten van een photogallery in Csharp.net?
Dank alvast voor jullie hulp!
Martijn!!
|