diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/config/config.php | 2 | ||||
-rw-r--r-- | core/controllers/album.php | 2 | ||||
-rw-r--r-- | core/libraries/Block.php | 32 | ||||
-rw-r--r-- | core/libraries/Theme.php | 16 | ||||
-rw-r--r-- | core/tests/Theme_Test.php | 11 | ||||
-rw-r--r-- | core/views/block.html.php | 9 |
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> |