use a simple template system to allow theming (fixes #32)
commit 502c8903b4c7eb09d36c4fedb86deec8689fe7c6 Author: Jan Dittberner <jan@dittberner.info> Date: Sat Jul 11 00:20:03 2009 +0200 * extract html part of index.php into the first default theme commit cddcc777bba2efecdcad0f3b130e7e5e6b1e2a73 Author: Jan Dittberner <jan@dittberner.info> Date: Fri Jul 10 23:38:32 2009 +0200 * add a template class
This commit is contained in:
parent
0cdd30bb05
commit
0ed421b1ce
5 changed files with 155 additions and 72 deletions
63
includes/template.class.php
Normal file
63
includes/template.class.php
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @file simple template system for ScrollingJQueryGallery
|
||||||
|
*
|
||||||
|
* @author Jan Dittberner <jan@dittberner.info>
|
||||||
|
*
|
||||||
|
* @version $Id$
|
||||||
|
*
|
||||||
|
* Copyright (c) 2009 Jan Dittberner
|
||||||
|
* Jan Dittberner IT-Consulting & -Solutions
|
||||||
|
* Cottbuser Str. 1, D-01129 Dresden
|
||||||
|
*
|
||||||
|
* This file is part of the ScrollingJQueryGallery component of the
|
||||||
|
* gnuviech-server.de Websitetools
|
||||||
|
*
|
||||||
|
* ScrollingJQueryGallery is free software: you can redistribute it
|
||||||
|
* and/or modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation, either version 3 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* ScrollingJQueryGallery is distributed in the hope that it will be
|
||||||
|
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
||||||
|
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with ScrollingJQueryGallery. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class provides a simple template mechanism. It was inspired by
|
||||||
|
* http://mylittlehomepage.net/ueber-den-sinn-von-php-template-engines
|
||||||
|
* (german).
|
||||||
|
*/
|
||||||
|
class Template {
|
||||||
|
/**
|
||||||
|
* associative array containing the template content.
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
var $content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assign a value to the template.
|
||||||
|
* @param string $name variable name
|
||||||
|
* @param mixed $value variable value
|
||||||
|
*/
|
||||||
|
function assign($name, $value) {
|
||||||
|
$this->content[$name] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the given template file.
|
||||||
|
* @param string $template template file name
|
||||||
|
*/
|
||||||
|
function display($template) {
|
||||||
|
if($this->content) {
|
||||||
|
$content = $this->content;
|
||||||
|
}
|
||||||
|
include($template);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
104
index.php
104
index.php
|
@ -6,7 +6,7 @@
|
||||||
* @author Jan Dittberner <jan@dittberner.info>, Jeremias Arnstadt
|
* @author Jan Dittberner <jan@dittberner.info>, Jeremias Arnstadt
|
||||||
* <douth024@googlemail.com>
|
* <douth024@googlemail.com>
|
||||||
*
|
*
|
||||||
* @version \$Id$
|
* @version $Id$
|
||||||
*
|
*
|
||||||
* Copyright (c) 2008, 2009 Jan Dittberner
|
* Copyright (c) 2008, 2009 Jan Dittberner
|
||||||
* Jan Dittberner IT-Consulting & -Solutions
|
* Jan Dittberner IT-Consulting & -Solutions
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
/**
|
/**
|
||||||
* Inkludiert die Funktionsbibliothek.
|
* Inkludiert die Funktionsbibliothek.
|
||||||
*/
|
*/
|
||||||
require 'includes/galleryfunctions.php';
|
require('includes/galleryfunctions.php');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Name der aktuellen Galerie.
|
* Name der aktuellen Galerie.
|
||||||
|
@ -47,25 +47,20 @@ $gallery = getCurrentGallery();
|
||||||
*/
|
*/
|
||||||
$thumbinfo = getThumbNailInfo($gallery);
|
$thumbinfo = getThumbNailInfo($gallery);
|
||||||
|
|
||||||
?>
|
require('includes/template.class.php');
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/strict.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
|
$template = new Template();
|
||||||
<head>
|
$scripts = array('js/jquery.js',
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
'js/jquery.colorBlend.js',
|
||||||
<title><?php print getGalleryTitle($thumbinfo); ?></title>
|
'js/jquery.lightbox.js',
|
||||||
<link rel="stylesheet" type="text/css" href="css/main.css" />
|
'scripts/ourhandlers.js');
|
||||||
<link rel="stylesheet" href="css/format.css" type="text/css" />
|
$styles = array('css/jquery.lightbox.css');
|
||||||
<link rel="stylesheet" href="css/jquery.lightbox.css" type="text/css" />
|
|
||||||
<script src="js/jquery.js" type="text/javascript" ></script>
|
$inlinestyles = sprintf("\n#scrollable { width:%dpx; }\n", $thumbinfo[0]);
|
||||||
<script src="js/jquery.colorBlend.js" type="text/javascript"></script>
|
|
||||||
<script src="js/jquery.lightbox.js" type="text/javascript" ></script>
|
$inlinestyles .= <<<EOD
|
||||||
<script src="scripts/ourhandlers.js" type="text/javascript" ></script>
|
a {
|
||||||
<style type="text/css">
|
|
||||||
<?php
|
|
||||||
printf("#scrollable { width:%dpx; }", $thumbinfo[0]);
|
|
||||||
?>
|
|
||||||
a {
|
|
||||||
font-size: 9px;
|
font-size: 9px;
|
||||||
}
|
}
|
||||||
a:link {
|
a:link {
|
||||||
|
@ -80,54 +75,19 @@ a:hover {
|
||||||
a:active {
|
a:active {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
</style>
|
EOD;
|
||||||
</head>
|
|
||||||
<body>
|
$template->assign('scripts', $scripts);
|
||||||
<!-- container -->
|
$template->assign('styles', $styles);
|
||||||
<div id="container">
|
$template->assign('inlinestyle', $inlinestyles);
|
||||||
<div id="content">
|
$template->assign('title', getGalleryTitle($thumbinfo));
|
||||||
<ul id="menu"><?php
|
$template->assign('gallerylinks', getGalleryLinks());
|
||||||
foreach (getGalleryLinks() as $data) {
|
$template->assign('thumbnails', getAllThumbnails($thumbinfo));
|
||||||
printf('<li class="menu%s"><a class="menu" href="%s">%s </a></li>',
|
$template->assign('firstpreview', getFirstPreview($thumbinfo));
|
||||||
($data['gallery'] == $gallery) ? ' active' : '',
|
$template->assign('firstdescription', getFirstDescription($thumbinfo));
|
||||||
$data['url'], $data['label']);
|
$template->assign('lang', 'de');
|
||||||
} ?></ul>
|
$template->assign('themepath', 'themes/default_horizontal');
|
||||||
<div id="content_container">
|
|
||||||
<div id="slider">
|
$template->display('themes/default_horizontal/theme.php');
|
||||||
<div id="arrleft"><img src="css/grafiken/aro-lft.png" alt="nach links"
|
|
||||||
width="10" height="65" /></div>
|
?>
|
||||||
<div id="imgscroller"><div id="scrollable"><?php
|
|
||||||
// zeigt die eingelesenen Thumnails an
|
|
||||||
foreach (getAllThumbnails($thumbinfo) as $thumbdata) {
|
|
||||||
printf('<div class="thumbnail"><img src="%s" alt="%s" %s /></div>',
|
|
||||||
$thumbdata['src'], $thumbdata['alt'], $thumbdata['sizes']);
|
|
||||||
}
|
|
||||||
?></div></div>
|
|
||||||
<div id="arrright"><img src="css/grafiken/aro-rt.png" alt="nach rechts"
|
|
||||||
width="10" height="65" /></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="content_sub">
|
|
||||||
<div id="content_main">
|
|
||||||
<div class="bildposition"><?php
|
|
||||||
// bindet die Bilder in den Hauptbereich ein
|
|
||||||
$data = getFirstPreview($thumbinfo);
|
|
||||||
printf('<a class="lightbox" title="%s" href="%s" rel="lightbox">' .
|
|
||||||
'<img id="contentimg" src="%s" alt="%s" %s /></a>',
|
|
||||||
$data['title'], $data['full'], $data['src'], $data['alt'],
|
|
||||||
$data['sizes']);
|
|
||||||
?></div>
|
|
||||||
</div>
|
|
||||||
<div id="content_nav">
|
|
||||||
<img id="backbtn" src="css/grafiken/back.png" alt="back" class="back" width="10" height="10" /><img id="fwdbtn" src="css/grafiken/next.png" alt="next" class="next" width="10" height="10" />
|
|
||||||
</div>
|
|
||||||
<div class="imgdescription" id="imagedescription"><?php
|
|
||||||
// liest die Bildbeschreibung für das jeweilige Bild (wenn definiert)
|
|
||||||
print getFirstDescription($thumbinfo);
|
|
||||||
?></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- /container -->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
60
themes/default_horizontal/theme.php
Normal file
60
themes/default_horizontal/theme.php
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $content['lang'] ; ?>">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<title><?php echo $content['title']; ?></title>
|
||||||
|
<style type="text/css">
|
||||||
|
<?php print($content['inlinestyle']); ?>
|
||||||
|
</style>
|
||||||
|
<?php foreach ($content['styles'] as $style) { ?>
|
||||||
|
<link rel="stylesheet" type="text/css" href="<?php echo $style; ?>" />
|
||||||
|
<?php } ?>
|
||||||
|
<link rel="stylesheet" type="text/css" href="<?php echo $content['themepath']; ?>/css/main.css" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="<?php echo $content['themepath']; ?>/css/format.css" />
|
||||||
|
<?php foreach ($content['scripts'] as $script) { ?>
|
||||||
|
<script type="text/javascript" src="<?php echo $script; ?>"></script>
|
||||||
|
<?php } ?>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<div id="content">
|
||||||
|
<ul id="menu"><?php
|
||||||
|
foreach ($content['gallerylinks'] as $data) {
|
||||||
|
printf('<li class="menu%s"><a class="menu" href="%s">%s </a></li>',
|
||||||
|
($data['gallery'] == $gallery) ? ' active' : '',
|
||||||
|
$data['url'], $data['label']);
|
||||||
|
} ?></ul>
|
||||||
|
<div id="content_container">
|
||||||
|
<div id="slider">
|
||||||
|
<div id="arrleft"><img src="css/grafiken/aro-lft.png" alt="nach links" width="10" height="65" /></div>
|
||||||
|
<div id="imgscroller"><div id="scrollable"><?php
|
||||||
|
// show Thumnails an
|
||||||
|
foreach ($content['thumbnails'] as $thumbdata) {
|
||||||
|
?><div class="thumbnail"><img src="<?php echo $thumbdata['src']; ?>" alt="<?php echo $thumbdata['alt']; ?>" <?php echo $thumbdata['sizes']; ?> /></div><?php
|
||||||
|
} ?></div></div>
|
||||||
|
<div id="arrright"><img src="css/grafiken/aro-rt.png" alt="nach rechts" width="10" height="65" /></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="content_sub">
|
||||||
|
<div id="content_main">
|
||||||
|
<div class="bildposition"><?php
|
||||||
|
// bindet die Bilder in den Hauptbereich ein
|
||||||
|
$data = $content['firstpreview'];
|
||||||
|
printf('<a class="lightbox" title="%s" href="%s" rel="lightbox">' .
|
||||||
|
'<img id="contentimg" src="%s" alt="%s" %s /></a>',
|
||||||
|
$data['title'], $data['full'], $data['src'], $data['alt'],
|
||||||
|
$data['sizes']);
|
||||||
|
?></div>
|
||||||
|
</div>
|
||||||
|
<div id="content_nav">
|
||||||
|
<img id="backbtn" src="css/grafiken/back.png" alt="back" class="back" width="10" height="10" /><img id="fwdbtn" src="css/grafiken/next.png" alt="next" class="next" width="10" height="10" />
|
||||||
|
</div>
|
||||||
|
<div class="imgdescription" id="imagedescription"><?php
|
||||||
|
echo $content['firstdescription'];
|
||||||
|
?></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Reference in a new issue