move more theme related functionality into the theme class (addresses #46)
This commit is contained in:
parent
fcea03a800
commit
ded7232146
3 changed files with 43 additions and 24 deletions
|
@ -28,6 +28,8 @@
|
||||||
* <http://www.gnu.org/licenses/>.
|
* <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
require('includes/template.class.php');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Theme class.
|
* Theme class.
|
||||||
*/
|
*/
|
||||||
|
@ -52,6 +54,9 @@ class Theme {
|
||||||
*/
|
*/
|
||||||
var $thumbsize;
|
var $thumbsize;
|
||||||
|
|
||||||
|
var $name;
|
||||||
|
var $template;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for themes. Expects a theme name and initializes the
|
* Constructor for themes. Expects a theme name and initializes the
|
||||||
* internal state of the instance from the 'theme.ini' file in the
|
* internal state of the instance from the 'theme.ini' file in the
|
||||||
|
@ -61,10 +66,25 @@ class Theme {
|
||||||
function __construct($name) {
|
function __construct($name) {
|
||||||
$themeconfig = parse_ini_file(
|
$themeconfig = parse_ini_file(
|
||||||
realpath(implode(DIRECTORY_SEPARATOR,
|
realpath(implode(DIRECTORY_SEPARATOR,
|
||||||
array('themes', $name, 'theme.ini'))));
|
array('themes', $name, 'theme.ini'))));
|
||||||
|
$this->name = $name;
|
||||||
$this->themetype = $themeconfig['themetype'];
|
$this->themetype = $themeconfig['themetype'];
|
||||||
$this->previewsize = intval($themeconfig['previewsize']);
|
$this->previewsize = intval($themeconfig['previewsize']);
|
||||||
$this->thumbsize = intval($themeconfig['thumbsize']);
|
$this->thumbsize = intval($themeconfig['thumbsize']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getTemplate() {
|
||||||
|
if (!$this->template) {
|
||||||
|
$this->template = new Template();
|
||||||
|
$this->template->assign('themepath',
|
||||||
|
implode(DIRECTORY_SEPARATOR, array('themes', $this->name)));
|
||||||
|
}
|
||||||
|
return $this->template;
|
||||||
|
}
|
||||||
|
|
||||||
|
function display() {
|
||||||
|
$this->template->display(implode(DIRECTORY_SEPARATOR,
|
||||||
|
array('themes', $this->name, 'theme.php')));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
29
index.php
29
index.php
|
@ -47,35 +47,19 @@ $gallery = getCurrentGallery();
|
||||||
*/
|
*/
|
||||||
$thumbinfo = getThumbNailInfo($gallery);
|
$thumbinfo = getThumbNailInfo($gallery);
|
||||||
|
|
||||||
require('includes/template.class.php');
|
|
||||||
|
|
||||||
$template = new Template();
|
|
||||||
|
|
||||||
$scripts = array('js/jquery.js',
|
$scripts = array('js/jquery.js',
|
||||||
'js/jquery.colorBlend.js',
|
'js/jquery.colorBlend.js',
|
||||||
'js/jquery.lightbox.js',
|
'js/jquery.lightbox.js',
|
||||||
'scripts/ourhandlers.js');
|
'scripts/ourhandlers.js');
|
||||||
$styles = array('css/jquery.lightbox.css');
|
$styles = array('css/jquery.lightbox.css');
|
||||||
|
|
||||||
$inlinestyles = sprintf("\n#scrollable { width:%dpx; }\n", $thumbinfo[0]);
|
$template = $theme->getTemplate();
|
||||||
|
|
||||||
$inlinestyles .= <<<EOD
|
if ($theme->themetype == 'horizontal') {
|
||||||
a {
|
$inlinestyles = sprintf("\n#scrollable { width:%dpx; }\n", $thumbinfo[0]);
|
||||||
font-size: 9px;
|
} else {
|
||||||
|
$inlinestyles = sprintf("\n#scrollable { height:%dpx; }\n", $thumbinfo[0]);
|
||||||
}
|
}
|
||||||
a:link {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
a:visited {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
a:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
a:active {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
EOD;
|
|
||||||
|
|
||||||
$template->assign('scripts', $scripts);
|
$template->assign('scripts', $scripts);
|
||||||
$template->assign('styles', $styles);
|
$template->assign('styles', $styles);
|
||||||
|
@ -86,9 +70,8 @@ $template->assign('thumbnails', getAllThumbnails($thumbinfo));
|
||||||
$template->assign('firstpreview', getFirstPreview($thumbinfo));
|
$template->assign('firstpreview', getFirstPreview($thumbinfo));
|
||||||
$template->assign('firstdescription', getFirstDescription($thumbinfo));
|
$template->assign('firstdescription', getFirstDescription($thumbinfo));
|
||||||
$template->assign('lang', 'de');
|
$template->assign('lang', 'de');
|
||||||
$template->assign('themepath', 'themes/default_horizontal');
|
|
||||||
$template->assign('gallery', $gallery);
|
$template->assign('gallery', $gallery);
|
||||||
|
|
||||||
$template->display('themes/default_horizontal/theme.php');
|
$theme->display();
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -6,6 +6,22 @@
|
||||||
<title><?php echo $content['title']; ?></title>
|
<title><?php echo $content['title']; ?></title>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
<?php print($content['inlinestyle']); ?>
|
<?php print($content['inlinestyle']); ?>
|
||||||
|
|
||||||
|
a {
|
||||||
|
font-size: 9px;
|
||||||
|
}
|
||||||
|
a:link {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a:visited {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a:active {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<?php foreach ($content['styles'] as $style) { ?>
|
<?php foreach ($content['styles'] as $style) { ?>
|
||||||
<link rel="stylesheet" type="text/css" href="<?php echo $style; ?>" />
|
<link rel="stylesheet" type="text/css" href="<?php echo $style; ?>" />
|
||||||
|
|
Reference in a new issue