summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/config/config.php2
-rw-r--r--core/controllers/album.php2
-rw-r--r--core/libraries/Block.php32
-rw-r--r--core/libraries/Theme.php16
-rw-r--r--core/tests/Theme_Test.php11
-rw-r--r--core/views/block.html.php9
6 files changed, 68 insertions, 4 deletions
diff --git a/core/config/config.php b/core/config/config.php
index de872455..06c5c8f0 100644
--- a/core/config/config.php
+++ b/core/config/config.php
@@ -122,5 +122,7 @@ $config['modules'] = array
MODPATH . 'unit_test',
MODPATH . 'forge',
+ MODPATH . 'carousel',
+
THEMEPATH . 'default',
);
diff --git a/core/controllers/album.php b/core/controllers/album.php
index a00a5138..9c78dfca 100644
--- a/core/controllers/album.php
+++ b/core/controllers/album.php
@@ -28,6 +28,8 @@ class Album_Controller extends Template_Controller {
$this->template->set_global('item', $item);
$this->template->set_global('children', $item->children());
+
+ /** @todo: this needs to be data-driven */
$this->template->set_global('theme', new Theme("default", $this->template));
}
}
diff --git a/core/libraries/Block.php b/core/libraries/Block.php
new file mode 100644
index 00000000..25a0689b
--- /dev/null
+++ b/core/libraries/Block.php
@@ -0,0 +1,32 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2008 Bharat Mediratta
+ *
+ * This program 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 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+class Block_Core {
+ public $id = null;
+ public $title = null;
+ public $content = null;
+
+ public function __toString() {
+ $v = new View("block.html");
+ $v->id = $this->id;
+ $v->title = $this->title;
+ $v->content = $this->content;
+ return $v->__toString();
+ }
+}
diff --git a/core/libraries/Theme.php b/core/libraries/Theme.php
index 924e978c..04032b20 100644
--- a/core/libraries/Theme.php
+++ b/core/libraries/Theme.php
@@ -17,18 +17,30 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
-class theme_Core {
+class Theme_Core {
private $theme_name = null;
+ private $template = null;
- public function __construct($theme_name) {
+ public function __construct($theme_name, $template) {
$this->theme_name = $theme_name;
+ $this->template = $template;
}
public function url($path) {
return url::base() . "themes/{$this->theme_name}/$path";
}
+ public function item() {
+ return $this->template->item;
+ }
+
public function display($page_name, $view_class="View") {
return new $view_class($page_name);
}
+
+ public function blocks() {
+ /** @todo: this needs to be made data-driven */
+ $blocks = array('carousel' => carousel::block($this));
+ return $blocks;
+ }
}
diff --git a/core/tests/Theme_Test.php b/core/tests/Theme_Test.php
index f73a98eb..8852a6a1 100644
--- a/core/tests/Theme_Test.php
+++ b/core/tests/Theme_Test.php
@@ -20,15 +20,22 @@
class Theme_Test extends Unit_Test_Case {
public function url_test() {
- $theme = new Theme("fake_theme");
+ $theme = new Theme("fake_theme", new View());
$this->assert_equal("http://./themes/fake_theme/file", $theme->url("file"));
}
public function display_test() {
- $theme = new Theme("fake_theme");
+ $theme = new Theme("fake_theme", new View());
$view = $theme->display("test_page", "Theme_Test_Mock_View");
$this->assert_equal("test_page", $view->page_name);
}
+
+ public function item_test() {
+ $v = new View();
+ $v->item = "fake_item";
+ $theme = new Theme("fake_theme", $v);
+ $this->assert_equal("fake_item", $theme->item());
+ }
}
class Theme_Test_Mock_View {
diff --git a/core/views/block.html.php b/core/views/block.html.php
new file mode 100644
index 00000000..bd6bc44b
--- /dev/null
+++ b/core/views/block.html.php
@@ -0,0 +1,9 @@
+<? defined("SYSPATH") or die("No direct script access."); ?>
+<div id="<?= $id ?>" class="gBlock">
+ <div class="gBlockHeader">
+ <h2><?= $title ?></h2>
+ </div>
+ <div class="gBlockContent">
+ <?= $content ?>
+ </div>
+</div>