summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/gallery/controllers/admin_theme_options.php52
-rw-r--r--modules/gallery/helpers/gallery_event.php21
-rw-r--r--modules/gallery/helpers/theme.php33
-rw-r--r--modules/gallery/views/admin_theme_options.html.php2
4 files changed, 61 insertions, 47 deletions
diff --git a/modules/gallery/controllers/admin_theme_options.php b/modules/gallery/controllers/admin_theme_options.php
index dc421ee1..27a67bdb 100644
--- a/modules/gallery/controllers/admin_theme_options.php
+++ b/modules/gallery/controllers/admin_theme_options.php
@@ -21,44 +21,48 @@ class Admin_Theme_Options_Controller extends Admin_Controller {
public function index() {
$view = new Admin_View("admin.html");
$view->content = new View("admin_theme_options.html");
-
- $theme_name = theme::$site;
- $info = theme::get_info($theme_name);
-
- // Don't use the Kohana cascading file system because we don't want to mess up the admin theme
- $theme_helper = THEMEPATH . "$theme_name/helpers/{$theme_name}.php";
- @require_once($theme_helper);
- $view->content->form = call_user_func_array(array(theme::$site, "get_admin_form"),
- array("admin/theme_options/save/"));
-
- $view->content->title = t("%name options", array("name" => $info->name));
-
+ $view->content->form = theme::get_edit_form_admin();
print $view;
}
public function save() {
access::verify_csrf();
- // Don't use the Kohana cascading file system because we don't want to mess up the admin theme
- $theme_name = theme::$site;
- $theme_helper = THEMEPATH . "$theme_name/helpers/{$theme_name}.php";
- @require_once($theme_helper);
+ $form = theme::get_edit_form_admin();
+ if ($form->validate()) {
+ module::set_var("gallery", "page_size", $form->edit_theme->page_size->value);
- $info = theme::get_info($theme_name);
+ $thumb_size = $form->edit_theme->thumb_size->value;
+ $thumb_dirty = false;
+ if (module::get_var("gallery", "thumb_size") != $thumb_size) {
+ graphics::remove_rule("gallery", "thumb", "gallery_graphics::resize");
+ graphics::add_rule(
+ "gallery", "thumb", "gallery_graphics::resize",
+ array("width" => $thumb_size, "height" => $thumb_size, "master" => Image::AUTO),
+ 100);
+ module::set_var("gallery", "thumb_size", $thumb_size);
+ }
- $form = call_user_func_array(array(theme::$site, "get_admin_form"),
- array("admin/theme_options/save/"));
- if ($form->validate()) {
+ $resize_size = $form->edit_theme->resize_size->value;
+ $resize_dirty = false;
+ if (module::get_var("gallery", "resize_size") != $resize_size) {
+ graphics::remove_rule("gallery", "resize", "gallery_graphics::resize");
+ graphics::add_rule(
+ "gallery", "resize", "gallery_graphics::resize",
+ array("width" => $resize_size, "height" => $resize_size, "master" => Image::AUTO),
+ 100);
+ module::set_var("gallery", "resize_size", $resize_size);
+ }
- $view->content->form = call_user_func_array(array(theme::$site, "update_options"),
- array($form));
+ module::set_var("gallery", "header_text", $form->edit_theme->header_text->value);
+ module::set_var("gallery", "footer_text", $form->edit_theme->footer_text->value);
+ module::set_var("gallery", "show_credits", $form->edit_theme->show_credits->value);
- message::success(t("Updated %name options", array("name" => $info->name)));
+ message::success(t("Updated theme details"));
url::redirect("admin/theme_options");
} else {
$view = new Admin_View("admin.html");
$view->content = $form;
- $view->content->title = t("%name options", array("name" => $info->name));
print $view;
}
}
diff --git a/modules/gallery/helpers/gallery_event.php b/modules/gallery/helpers/gallery_event.php
index 88f4a67b..3139951f 100644
--- a/modules/gallery/helpers/gallery_event.php
+++ b/modules/gallery/helpers/gallery_event.php
@@ -245,7 +245,11 @@ class gallery_event_Core {
->id("themes")
->label(t("Theme choice"))
->url(url::site("admin/themes")))
- ->append(Menu::factory("link")
+ ->append(Menu::factory("link")
+ ->id("theme_options")
+ ->label(t("Theme options"))
+ ->url(url::site("admin/theme_options")))
+ ->append(Menu::factory("link")
->id("sidebar")
->label(t("Manage sidebar"))
->url(url::site("admin/sidebar"))))
@@ -256,21 +260,6 @@ class gallery_event_Core {
->id("maintenance")
->label(t("Maintenance"))
->url(url::site("admin/maintenance")));
-
- $theme_name = theme::$site;
- $theme_helper = THEMEPATH . "$theme_name/helpers/{$theme_name}.php";
- if (file_exists($theme_helper)) {
- require_once($theme_helper);
-
- if (method_exists($theme_name, "get_admin_form")) {
- $info = theme::get_info($theme_name);
- $menu->get("appearance_menu")
- ->add_after("themes", Menu::factory("link")
- ->id("theme_options")
- ->label(t("%name options", array("name" => $info->name)))
- ->url(url::site("admin/theme_options")));
- }
- }
return $menu;
}
diff --git a/modules/gallery/helpers/theme.php b/modules/gallery/helpers/theme.php
index 6e8943b3..16ed104e 100644
--- a/modules/gallery/helpers/theme.php
+++ b/modules/gallery/helpers/theme.php
@@ -24,9 +24,6 @@
* Note: by design, this class does not do any permission checking.
*/
class theme_Core {
- public static $site;
- public static $admin;
-
/**
* Load the active theme. This is called at bootstrap time. We will only ever have one theme
* active for any given request.
@@ -38,16 +35,39 @@ class theme_Core {
$path = "/" . $input->get("kohana_uri");
}
- self::$site = module::get_var("gallery", "active_site_theme");
- self::$admin = module::get_var("gallery", "active_admin_theme");
if (!(identity::active_user()->admin && $theme_name = $input->get("theme"))) {
- $theme_name = $path == "/admin" || !strncmp($path, "/admin/", 7) ? self::$admin : self::$site;
+ $theme_name = module::get_var(
+ "gallery",
+ $path == "/admin" || !strncmp($path, "/admin/", 7) ?
+ "active_admin_theme" : "active_site_theme");
}
$modules = Kohana::config("core.modules");
array_unshift($modules, THEMEPATH . $theme_name);
Kohana::config_set("core.modules", $modules);
}
+ static function get_edit_form_admin() {
+ $form = new Forge("admin/theme_options/save/", "", null, array("id" =>"g-theme-options-form"));
+ $group = $form->group("edit_theme");
+ $group->input("page_size")->label(t("Items per page"))->id("g-page-size")
+ ->rules("required|valid_digit")
+ ->value(module::get_var("gallery", "page_size"));
+ $group->input("thumb_size")->label(t("Thumbnail size (in pixels)"))->id("g-thumb-size")
+ ->rules("required|valid_digit")
+ ->value(module::get_var("gallery", "thumb_size"));
+ $group->input("resize_size")->label(t("Resized image size (in pixels)"))->id("g-resize-size")
+ ->rules("required|valid_digit")
+ ->value(module::get_var("gallery", "resize_size"));
+ $group->textarea("header_text")->label(t("Header text"))->id("g-header-text")
+ ->value(module::get_var("gallery", "header_text"));
+ $group->textarea("footer_text")->label(t("Footer text"))->id("g-footer-text")
+ ->value(module::get_var("gallery", "footer_text"));
+ $group->checkbox("show_credits")->label(t("Show site credits"))->id("g-footer-text")
+ ->checked(module::get_var("gallery", "show_credits"));
+ $group->submit("")->value(t("Save"));
+ return $form;
+ }
+
static function get_info($theme_name) {
$theme_name = preg_replace("/[^\w]/", "", $theme_name);
$file = THEMEPATH . "$theme_name/theme.info";
@@ -58,3 +78,4 @@ class theme_Core {
return $theme_info;
}
}
+
diff --git a/modules/gallery/views/admin_theme_options.html.php b/modules/gallery/views/admin_theme_options.html.php
index 9f28e055..a4bf1c4e 100644
--- a/modules/gallery/views/admin_theme_options.html.php
+++ b/modules/gallery/views/admin_theme_options.html.php
@@ -1,6 +1,6 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
<div class="g-block">
- <h1> <?= t($title) ?> </h1>
+ <h1> <?= t("Theme Options") ?> </h1>
<div class="g-block-content">
<?= $form ?>