|
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Collections;
using System.Collections.ObjectModel;
using System.Windows.Forms;
namespace ExtendedWebGallery
{
public class CTemplate
{
public CTemplate()
{
mainbeforetag = new List<string>();
mainaftertag = new List<string>();
pagesbeforetag = new List<string>();
pagesaftertag = new List<string>();
ReadTemplates();
}
private List<string> mainbeforetag;
private List<string> mainaftertag;
private List<string> pagesbeforetag;
private List<string> pagesaftertag;
/// <summary>
/// Get main template
/// </summary>
/// <param name="before"></param>
/// <param name="after"></param>
public void GetMainTemplate(ref List<string> before, ref List<string> after)
{
before = new List<string>(mainbeforetag);
after = new List<string>(mainaftertag);
}
/// <summary>
/// Get pages template
/// </summary>
/// <param name="before"></param>
/// <param name="after"></param>
public void GetPagesTemplate(ref List<string> before, ref List<string> after)
{
before = new List<string>(pagesbeforetag);
after = new List<string>(pagesaftertag);
}
/// <summary>
/// Refreshes both templates
/// </summary>
/// <returns></returns>
public bool RefreshTemplates()
{
mainbeforetag.Clear();
mainaftertag.Clear();
pagesbeforetag.Clear();
pagesaftertag.Clear();
ReadTemplates();
return true;
}
/// <summary>
/// Checks the presence of templates
/// </summary>
/// <returns></returns>
public bool CheckTemplates()
{
if ((File.Exists(Application.StartupPath+"\\maintemplate.htm")))
{
if (!ValidateMainTemplate())
{
File.Copy(Application.StartupPath+"\\maintemplate.htm", Application.StartupPath+"\\maintemplate_broken.htm");
generatedefaulttemplates(true, false, true);
}
}
else
{
generatedefaulttemplates(true, false, true);
}
if ((File.Exists(Application.StartupPath+"\\pagestemplate.htm")))
{
if (!ValidatePagesTemplate())
{
File.Copy(Application.StartupPath+"\\pagestemplate.htm", Application.StartupPath+"\\pagestemplate_broken.htm");
generatedefaulttemplates(false, true, true);
}
}
else
{
generatedefaulttemplates(false, true, true);
}
return true;
}
/// <summary>
/// Validates main template
/// </summary>
/// <returns></returns>
private bool ValidateMainTemplate()
{
// A template is an html document that have inside "<!-- GalleryMain -->"
bool findok = false;
StreamReader re = File.OpenText(Application.StartupPath+"\\maintemplate.htm");
string input = null;
while ((input = re.ReadLine()) != null)
{
if (input.Contains("<!-- GalleryMain -->")) findok = true;
}
re.Close();
return findok;
}
/// <summary>
/// Validates pages template
/// </summary>
/// <returns></returns>
private bool ValidatePagesTemplate()
{
// A template is an html document that have inside "<!-- GalleryPages -->"
bool findok = false;
StreamReader re = File.OpenText(Application.StartupPath+"\\pagestemplate.htm");
string input = null;
while ((input = re.ReadLine()) != null)
{
if (input.Contains("<!-- GalleryPages -->")) findok = true;
}
re.Close();
return findok;
}
/// <summary>
/// Read templates
/// </summary>
/// <returns></returns>
private bool ReadTemplates()
{
CheckTemplates();
mainbeforetag.Clear();
mainaftertag.Clear();
StreamReader re = File.OpenText(Application.StartupPath+"\\maintemplate.htm");
string input = null;
// prima parte
while ((input = re.ReadLine()) != null)
{
if (input.Contains("<!-- GalleryMain -->")) break;
mainbeforetag.Add(input);
}
// seconda parte
while ((input = re.ReadLine()) != null)
{
mainaftertag.Add(input);
}
re.Close();
// Pagine img
pagesbeforetag.Clear();
pagesaftertag.Clear();
re = File.OpenText(Application.StartupPath+"\\pagestemplate.htm");
input = null;
// prima parte
while ((input = re.ReadLine()) != null)
{
if (input.Contains("<!-- GalleryPages -->")) break;
pagesbeforetag.Add(input);
}
// seconda parte
while ((input = re.ReadLine()) != null)
{
pagesaftertag.Add(input);
}
re.Close();
return true;
}
/// <summary>
/// Generates default templates
/// </summary>
/// <param name="main"></param>
/// <param name="pages"></param>
/// <param name="overwrite"></param>
private void generatedefaulttemplates(bool main, bool pages, bool overwrite)
{
if (File.Exists(Application.StartupPath+"\\maintemplate.htm") || overwrite)
{
if (main)
{
try
{
StreamWriter wrind = File.CreateText(Application.StartupPath+"\\maintemplate.htm");
wrind.WriteLine("<html>");
wrind.WriteLine("<head>");
wrind.WriteLine("<title>Galery</title>");
wrind.WriteLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">");
wrind.WriteLine("<STYLE type=\"text/css\">");
wrind.WriteLine("<!--");
wrind.WriteLine("BODY {");
wrind.WriteLine("scrollbar-face-color:#0A0A89;");
wrind.WriteLine("scrollbar-highlight-color:#330066;");
wrind.WriteLine("scrollbar-3dlight-color:#330066;");
wrind.WriteLine("scrollbar-darkshadow-color:#000000;");
wrind.WriteLine("scrollbar-shadow-color:#808080;");
wrind.WriteLine("scrollbar-arrow-color:#FFFF00;");
wrind.WriteLine("scrollbar-track-color:#0000CC;");
wrind.WriteLine("}");
wrind.WriteLine("-->");
wrind.WriteLine("</STYLE>");
wrind.WriteLine("</head>");
wrind.WriteLine(" ");
wrind.WriteLine("<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#0000FF\" vlink=\"#00FF00\" alink=\"#00FF00\">");
wrind.WriteLine("<div align=\"center\">");
wrind.WriteLine("<p><font face=\"Script MT Bold\" size=\"5\" color=\"#000000\">Web Gallery</font></p>");
wrind.WriteLine("<p align=\"left\"> </p>");
wrind.WriteLine("<p align=\"left\"> </p>");
wrind.WriteLine("<!-- GalleryMain -->");
wrind.WriteLine("<p> </p>");
wrind.WriteLine("<p><font face=\"Georgia, Times New Roman, Times, serif\" size=\"3\">Click over the thumbnails to view them larger in a new window</font></p>");
wrind.WriteLine("<p> </p>");
wrind.WriteLine("<p><font face=\"Georgia, Times New Roman, Times, serif\" size=\"1\" color=\"#00FF00\"><a href=\"http://www.solchiere.it\" target=\"_blank\">Powered by www.solchiere.it</a></font></p>");
wrind.WriteLine("</div>");
wrind.WriteLine("</body>");
wrind.WriteLine("</html>");
wrind.Close();
}
catch
{
}
}
}
if (File.Exists(Application.StartupPath+"\\pagestemplate.htm") || overwrite)
{
if (pages)
{
try
{
StreamWriter wrind = File.CreateText(Application.StartupPath+"\\pagestemplate.htm");
wrind.WriteLine("<html>");
wrind.WriteLine("<head>");
wrind.WriteLine("<title>Image</title>");
wrind.WriteLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">");
wrind.WriteLine("<STYLE type=\"text/css\">");
wrind.WriteLine("<!--");
wrind.WriteLine("BODY {");
wrind.WriteLine("scrollbar-face-color:#0A0A89;");
wrind.WriteLine("scrollbar-highlight-color:#330066;");
wrind.WriteLine("scrollbar-3dlight-color:#330066;");
wrind.WriteLine("scrollbar-darkshadow-color:#000000;");
wrind.WriteLine("scrollbar-shadow-color:#808080;");
wrind.WriteLine("scrollbar-arrow-color:#FFFF00;");
wrind.WriteLine("scrollbar-track-color:#0000CC;");
wrind.WriteLine("}");
wrind.WriteLine("-->");
wrind.WriteLine("</STYLE>");
wrind.WriteLine("</head>");
wrind.WriteLine(" ");
wrind.WriteLine("<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#0000FF\" vlink=\"#00FF00\" alink=\"#00FF00\">");
wrind.WriteLine("<div align=\"center\">");
wrind.WriteLine("<p><font face=\"Script MT Bold\" size=\"5\" color=\"#000000\">Single Image</font></p>");
wrind.WriteLine("<!-- GalleryPages -->");
wrind.WriteLine("</div>");
wrind.WriteLine("</body>");
wrind.WriteLine("</html>");
wrind.Close();
}
catch
{
}
}
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I'm an electronic engeneer form Genoa.
I like very much dotnet and C#. I've developed some works like an html gallery generator, a graphic formula viewer (user defined), a webcam grabber and html gallery generator, a little framework for image processing, an image resizer, elaboration in batch and some other application tool.
Actually I'm working in VC++ 6 MFC, but I hope that my future is .net !!!
Some of my works are downloadable at:
http://www.solchiere.it
Lorenzo Banderali