From 35d47b972bb5db0e455d8f3f10aefe69f1b545ad Mon Sep 17 00:00:00 2001 From: shish Date: Thu, 19 Jul 2007 12:13:46 +0000 Subject: [PATCH] setup themed git-svn-id: file:///home/shish/svn/shimmie2/trunk@324 7f39781d-f577-437e-ae19-be835c7a54ca --- ext/setup/main.php | 77 +++------------------------------------------ ext/setup/theme.php | 73 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 72 deletions(-) create mode 100644 ext/setup/theme.php diff --git a/ext/setup/main.php b/ext/setup/main.php index 80a3788b..63393d51 100644 --- a/ext/setup/main.php +++ b/ext/setup/main.php @@ -123,16 +123,15 @@ class SetupBlock extends Block { // }}} class Setup extends Extension { + var $theme; // event handling {{{ public function receive_event($event) { + if(is_null($this->theme)) $this->theme = get_theme_object("setup", "SetupTheme"); + if(is_a($event, 'PageRequestEvent') && ($event->page_name == "setup")) { global $user; if(!$user->is_admin()) { - global $page; - $page->set_title("Error"); - $page->set_heading("Error"); - $page->add_block(new NavBlock()); - $page->add_block(new Block("Permission Denied", "This page is for admins only")); + $this->theme->display_not_admin($event->page); } else { if($event->get_arg(0) == "save") { @@ -147,7 +146,7 @@ class Setup extends Extension { else { $panel = new SetupPanel(); send_event(new SetupBuildingEvent($panel)); - $this->build_page($panel); + $this->theme->display_page($event->page, $panel); } } } @@ -166,7 +165,6 @@ class Setup extends Extension { $sb->add_text_option("base_href", "
Base URL: "); $sb->add_text_option("contact_link", "
Contact URL: "); $sb->add_choice_option("theme", $themes, "
Theme: "); - // $sb->add_int_option("anon_id", "
Anonymous ID: "); // FIXME: create advanced options page $event->panel->add_block($sb); } if(is_a($event, 'ConfigSaveEvent')) { @@ -190,71 +188,6 @@ class Setup extends Extension { } } } -// }}} -// HTML building {{{ - private function build_page($panel) { - $setupblock_html1 = ""; - $setupblock_html2 = ""; - - usort($panel->blocks, "blockcmp"); - - /* - $flip = true; - foreach($panel->mainblocks as $block) { - if(is_a($block, 'SetupBlock')) { - if($flip) $setupblock_html1 .= $this->sb_to_html($block); - else $setupblock_html2 .= $this->sb_to_html($block); - $flip = !$flip; - } - } - */ - - /* - * Try and keep the two columns even; count the line breaks in - * each an calculate where a block would work best - */ - $len1 = 0; - $len2 = 0; - foreach($panel->blocks as $block) { - if(is_a($block, 'SetupBlock')) { - $html = $this->sb_to_html($block); - $len = count(explode("
", $html))+1; - if($len1 <= $len2) { - $setupblock_html1 .= $this->sb_to_html($block); - $len1 += $len; - } - else { - $setupblock_html2 .= $this->sb_to_html($block); - $len2 += $len; - } - } - } - - $table = " -
- - -
$setupblock_html1$setupblock_html2
- "; - - global $page; - $page->set_title("Shimmie Setup"); - $page->set_heading("Shimmie Setup"); - $page->add_block(new Block("Navigation", $this->build_navigation(), "left", 0)); - $page->add_block(new Block("Setup", $table)); - } - - private function build_navigation() { - return " - Index -
Help - "; - } - - private function sb_to_html($block) { - return "
{$block->header}
{$block->body}
\n"; - } -// }}} } add_event_listener(new Setup()); ?> diff --git a/ext/setup/theme.php b/ext/setup/theme.php new file mode 100644 index 00000000..ed732c85 --- /dev/null +++ b/ext/setup/theme.php @@ -0,0 +1,73 @@ +set_title("Error"); + $page->set_heading("Error"); + $page->add_block(new NavBlock()); + $page->add_block(new Block("Permission Denied", "This page is for admins only")); + } + + public function display_page($page, $panel) { + $setupblock_html1 = ""; + $setupblock_html2 = ""; + + usort($panel->blocks, "blockcmp"); + + /* + $flip = true; + foreach($panel->mainblocks as $block) { + if(is_a($block, 'SetupBlock')) { + if($flip) $setupblock_html1 .= $this->sb_to_html($block); + else $setupblock_html2 .= $this->sb_to_html($block); + $flip = !$flip; + } + } + */ + + /* + * Try and keep the two columns even; count the line breaks in + * each an calculate where a block would work best + */ + $len1 = 0; + $len2 = 0; + foreach($panel->blocks as $block) { + if(is_a($block, 'SetupBlock')) { + $html = $this->sb_to_html($block); + $len = count(explode("
", $html))+1; + if($len1 <= $len2) { + $setupblock_html1 .= $this->sb_to_html($block); + $len1 += $len; + } + else { + $setupblock_html2 .= $this->sb_to_html($block); + $len2 += $len; + } + } + } + + $table = " +
+ + +
$setupblock_html1$setupblock_html2
+ "; + + $page->set_title("Shimmie Setup"); + $page->set_heading("Shimmie Setup"); + $page->add_block(new Block("Navigation", $this->build_navigation(), "left", 0)); + $page->add_block(new Block("Setup", $table)); + } + + private function build_navigation() { + return " + Index +
Help + "; + } + + private function sb_to_html($block) { + return "
{$block->header}
{$block->body}
\n"; + } +} +?>