class Admin_Theme_Options_Controller extends Admin_Controller { protected $min_gallery_ver = 49; private function load_theme_info() { $file = THEMEPATH . "greydragon/theme.info"; $theme_info = new ArrayObject(parse_ini_file($file), ArrayObject::ARRAY_AS_PROPS); return $theme_info; } private function get_theme_version() { $theme_info = $this->load_theme_info(); return ($theme_info->version); } private function get_theme_name() { $theme_info = $this->load_theme_info(); return ($theme_info->name); } private function get_packlist($type, $filename) { $packlist = array(); $packroot = THEMEPATH . 'greydragon/css/' . $type . '/'; foreach (scandir($packroot) as $pack_name): if (file_exists($packroot . "$pack_name/css/" . $filename . ".css")): if ($pack_name[0] == "."): continue; endif; $packlist[$pack_name] = t($pack_name); endif; endforeach; return $packlist; } private function get_colorpacks() { return $this->get_packlist('colorpacks', 'colors'); } private function get_framepacks() { return $this->get_packlist('framepacks', 'frame'); } private function prerequisite_check($group, $id, $is_ok, $caption, $caption_ok, $caption_failed, $iswarning, $msg_error) { $confirmation_caption = ($is_ok)? $caption_ok : $caption_failed; $checkbox = $group->checkbox($id) ->label($caption . " " . $confirmation_caption) ->checked($is_ok) ->disabled(true); if ($is_ok): $checkbox->class("g-success"); elseif ($iswarning): $checkbox->class("g-prerequisite g-warning")->error_messages("failed", $msg_error)->add_error("failed", 1); else: $checkbox->class("g-error")->error_messages("failed", $msg_error)->add_error("failed", 1); endif; } /* Convert old values ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ protected function upgrade_settings() { if (module::get_var("th_greydragon", "hide_thumbmeta")): module::set_var("th_greydragon", "thumb_metamode", "hide"); module::clear_var("th_greydragon", "hide_thumbmeta"); endif; if (module::get_var("gallery", "appletouchicon_url")): $temp = module::get_var("gallery", "appletouchicon_url"); module::set_var("gallery", "apple_touch_icon_url", $temp); module::clear_var("gallery", "appletouchicon_url"); endif; if (module::get_var("th_greydragon", "flex_rows", FALSE)): module::set_var("th_greydragon", "column_count", -1); module::clear_var("th_greydragon", "flex_rows"); endif; if (module::get_var("th_greydragon", "thumb_descmode") == "overlay_static"): module::set_var("th_greydragon", "thumb_descmode", "overlay_top"); endif; if (module::get_var("th_greydragon", "mainmenu_position") == "1"): module::set_var("th_greydragon", "mainmenu_position", "top"); endif; if (module::get_var("th_greydragon", "hide_breadcrumbs")): module::set_var("th_greydragon", "breadcrumbs_position", "hide"); module::clear_var("th_greydragon", "hide_breadcrumbs"); endif; if (module::get_var("th_greydragon", "photonav_position")): $temp = module::get_var("th_greydragon", "photonav_position"); module::set_var("th_greydragon", "paginator_album", $temp); module::set_var("th_greydragon", "paginator_photo", $temp); module::clear_var("th_greydragon", "photonav_position"); endif; if (module::get_var("th_greydragon", "sidebar_allowed") == "none"): module::set_var("th_greydragon", "sidebar_allowed", "default"); endif; if (module::get_var("th_greydragon", "thumb_topalign")): module::set_var("th_greydragon", "thumb_imgalign", "top"); module::clear_var("th_greydragon", "thumb_topalign"); elseif ((module::get_var("th_greydragon", "thumb_ratio") == "photo") && (!module::get_var("th_greydragon", "thumb_imgalign"))): module::set_var("th_greydragon", "thumb_imgalign", "center"); endif; } protected function isCurlInstalled() { if (in_array('curl', get_loaded_extensions())) { return true; } else { return false; } } protected function get_edit_form_admin() { $this->upgrade_settings(); $form = new Forge("admin/theme_options/save/", "", null, array("id" =>"g-theme-options-form")); $rssmodulecheck = (module::is_active("rss") && module::info("rss")); /* Prerequisites ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $group = $form->group("requirements")->label(t("Prerequisites")); $gallery_ver = module::get_version("gallery"); $this->prerequisite_check($group, "vercheck", $gallery_ver >= $this->min_gallery_ver, t("Gallery 3 Core v.") . $this->min_gallery_ver . "+", t("Installed"), t("Required"), FALSE, sprintf(t("Check Failed. Minimum Required Version is %s. Found %s."), $this->min_gallery_ver, $gallery_ver)); if (module::get_var("th_greydragon", "allow_root_page")): $this->prerequisite_check($group, "rsscheck", $rssmodulecheck, t("RSS Module"), t("Found"), t("not Found"), TRUE, t("Install RSS module to Enable Root Page Support")); endif; $this->prerequisite_check($group, "curlcheck", ($this->isCurlInstalled()), t("PHP CURL Support is"), t("Enabled"), t("Disabled"), TRUE, t("Please make sure CURL support is enabled in PHP")); /* Suggested Modules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $group = $form->group("recommended")->label(t("Suggested Modules")); $check_infos = array(); if (!module::get_var("th_greydragon", "hide_thumbmeta")): $this->prerequisite_check($group, "info", (module::is_active("info") and module::info("info")), t("Info Module"), t("Found"), t("Required"), FALSE, t("Check Failed. Module is required to display Thumb metadata.")); endif; if (module::is_active("fancybox") && module::info("fancybox")): $check_infos[] = array("module" => "fancybox", "module_name" => "Fancybox", "link" => ''); endif; if (module::is_active("colorbox") && module::info("colorbox")): $check_infos[] = array("module" => "colorbox", "module_name" => "Colorbox", "link" => ''); endif; if (module::is_active("shadowbox") && module::info("shadowbox")): $check_infos[] = array("module" => "shadowbox", "module_name" => "Shadowbox", "link" => ''); endif; switch (count($check_infos)): case 0: $check_infos[] = array("module" => "fancybox", "module_name" => "Fancybox", "link" => ''); $this->prerequisite_check($group, "fancybox", FALSE, t("Fancybox/Colorbox/Shadowbox") . " " . t("Module"), t("Found"), t("not Found"), TRUE, sprintf(t("Install %smodule%s to Enable %s Support"), '', '', t("Fancybox"))); break; case 1: $check_info = $check_infos[0]; $this->prerequisite_check($group, $check_info["module"], TRUE, t($check_info["module_name"]) . " " . t("Module"), t("Found"), t("not Found"), TRUE, sprintf(t("Install %smodule%s to Enable %s Support"), $check_info["link"], '', t($check_info["module_name"]))); break; default: $list = ""; $first = TRUE; foreach ($check_infos as $key => $check_info): if ($first): $list .= $check_infos[$key]["module_name"]; $first = FALSE; else: $list .= ", " . $check_infos[$key]["module_name"]; endif; endforeach; $this->prerequisite_check($group, "fancybox", FALSE, t($list . " Modules are Active"), "", "", TRUE, t("Slideshow feature would not work correctly. Please activate just one of these modules.")); break; endswitch; $check_info = $check_infos[0]; $thumbnavcheck = module::is_active("thumbnav") and module::info("thumbnav"); $this->prerequisite_check($group, "kbdnavcheck", ((module::is_active("kbd_nav")) and (module::info("kbd_nav"))), t("Kbd Navigation Module"), t("Found"), t("not Found"), TRUE, sprintf(t("Install %smodule%s to Enable Keyboard Navigation Support"), '', '')); $this->prerequisite_check($group, "thumbnavcheck", $thumbnavcheck, t("ThumbNav Module"), t("Found"), t("not Found"), TRUE, sprintf(t("Install %smodule%s to Enable Thumb Navigation Support"), '', '')); $thumb_ratio = module::get_var("th_greydragon", "thumb_ratio", "photo"); $thumb_ratio_ex = FALSE; switch ($thumb_ratio): case "photo_ex": $thumb_ratio = "photo"; $thumb_ratio_ex = TRUE; break; case "film_ex": $thumb_ratio = "film"; $thumb_ratio_ex = TRUE; break; case "digital_ex": $thumb_ratio = "digital"; $thumb_ratio_ex = TRUE; break; case "wide_ex": $thumb_ratio = "wide"; $thumb_ratio_ex = TRUE; break; default: break; endswitch; /* General Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $sidebar_allowed = module::get_var("th_greydragon", "sidebar_allowed"); $sidebar_visible = module::get_var("th_greydragon", "sidebar_visible"); $group = $form->group("edit_theme")->label(t("General Settings")); $group->hidden("g_auto_delay") ->value(module::get_var("th_greydragon", "auto_delay", 30)); $group->input("row_count") ->label(t("Rows per Album Page")) ->rules("required|valid_digit") ->error_messages("required", t("You must enter a number")) ->error_messages("valid_digit", t("You must enter a number")) ->value(module::get_var("th_greydragon", "row_count", 3)); $group->dropdown("column_count") ->label(t("Columns per Album Page")) ->options(array("2" => t("2 columns"), "3" => t("3 columns"), "4" => t("4 columns"), "5" => t("5 columns"), "-1" => t("Flexible (3 x Number of Rows)"))) ->selected(module::get_var("th_greydragon", "column_count", 3)); $group->input("resize_size") ->label(t("Resized Image Size (in pixels)")) ->rules("required|valid_digit") ->error_messages("required", t("You must enter a number")) ->error_messages("valid_digit", t("You must enter a number")) ->value(module::get_var("gallery", "resize_size")); $group->input("logo_path") ->label(t("Alternate Logo Image")) ->value(module::get_var("th_greydragon", "logo_path")); $group->input("favicon") ->label(t("URL (or relative path) to your favicon.ico")) ->value(module::get_var("gallery", "favicon_url")); $group->input("appletouchicon") ->label(t("URL (or relative path) to your Apple Touch icon")) ->value(module::get_var("gallery", "apple_touch_icon_url")); $group->input("header_text") ->label(t("Header Text")) ->value(module::get_var("gallery", "header_text")); $group->input("footer_text") ->label(t("Footer Text")) ->value(module::get_var("gallery", "footer_text")); $group->input("copyright") ->label(t("Copyright Message")) ->value(module::get_var("th_greydragon", "copyright")); $group->dropdown("colorpack") ->label(t("Color Pack/Site theme")) ->options(self::get_colorpacks()) ->selected(module::get_var("th_greydragon", "color_pack", "greydragon")); $group->dropdown("framepack") ->label(t("Thumb Frame Pack")) ->options(self::get_framepacks()) ->selected(module::get_var("th_greydragon", "frame_pack", "greydragon")); /* Advanced Options - General ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $group = $form->group("edit_theme_adv_main")->label(t("Advanced Options - General")); $group->dropdown("viewmode") ->label(t("Theme View Mode")) ->options(array("default" => t("Full Mode (Default)"), "mini" => t("Mini Mode"))) ->selected(module::get_var("th_greydragon", "viewmode", "default")); $group->dropdown("mainmenu_position") ->label(t("Main Menu Position")) ->options(array("default" => t("Bottom-Left (Default)"), "top" => t("Top-Left"), "bar" => t("Top Bar"))) ->selected(module::get_var("th_greydragon", "mainmenu_position")); $group->dropdown("loginmenu_position") ->label(t("Login Menu Position")) ->options(array("header" => t("Header"), "default" => t("Footer (Default)"), "hide" => t("Hide"))) ->selected(module::get_var("th_greydragon", "loginmenu_position", "default")); $group->dropdown("breadcrumbs_position") ->label(t("Breadcrumbs Position")) ->options(array("default" => t("Bottom-Right (Default)"), "bottom-left" => t("Bottom-Left"), "top-right" => t("Top-Right"), "top-left" => t("Top-Left"), "hide" => t("Hide"))) ->selected(module::get_var("th_greydragon", "breadcrumbs_position")); $group->dropdown("title_source") ->label(t("Title Source")) ->options(array("default" => t("Title (Default)"), "no-filename" => t("Title/Suppress File Name"), "description" => t("Description"))) ->selected(module::get_var("th_greydragon", "title_source", "default")); $group->input("custom_css_path") ->label(t("File Name of custom.css or equivalent")) ->value(module::get_var("th_greydragon", "custom_css_path")); $group->input("thumb_quality") ->label(t("Thumb Image Quallity (in %)")) ->rules("required|valid_digit") ->error_messages("required", t("You must enter a number")) ->error_messages("valid_digit", t("You must enter a number")) ->value(module::get_var("th_greydragon", "thumb_quality", 100)); $group->input("resize_quality") ->label(t("Resized Image Quallity (in %)")) ->rules("required|valid_digit") ->error_messages("required", t("You must enter a number")) ->error_messages("valid_digit", t("You must enter a number")) ->value(module::get_var("th_greydragon", "resize_quality", 100)); $group->input("visible_title_length") ->label(t("Visible Title Length")) ->rules("required|valid_digit") ->error_messages("required", t("You must enter a number")) ->error_messages("valid_digit", t("You must enter a number")) ->value(module::get_var("gallery", "visible_title_length", 15)); $group->checkbox("show_guest_menu") ->label(t("Show Main Menu for Guest Users")) ->checked(module::get_var("th_greydragon", "show_guest_menu")); $group->checkbox("toolbar_large") ->label(t("Use Large Toolbar Buttons")) ->checked(module::get_var("th_greydragon", "toolbar_large")); $group->checkbox("show_credits") ->label(t("Show Site Credits")) ->checked(module::get_var("gallery", "show_credits")); $group->checkbox("breadcrumbs_showinroot") ->label(t("Show Breadcrumbs in root album/root page")) ->checked(module::get_var("th_greydragon", "breadcrumbs_showinroot")); $group->checkbox("disable_seosupport") ->label(t("Disallow Search Engine Indexing (No Bots)")) ->checked(module::get_var("th_greydragon", "disable_seosupport")); $group->checkbox("desc_allowbbcode") ->label(t("Allow BBCode/HTML in Descriptions")) ->checked(module::get_var("th_greydragon", "desc_allowbbcode")); $group->checkbox("use_permalinks") ->label(t("Use Permalinks for Navigation")) ->checked(module::get_var("th_greydragon", "use_permalinks")); /* Advanced Options - Album page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $group = $form->group("edit_theme_adv_album")->label(t("Advanced Options - Album Page")); $group->dropdown("paginator_album") ->label(t("Paginator Position")) ->options(array("top" => t("Top"), "bottom" => t("Bottom"), "both" => t("Both"), "none" => t("None"))) ->selected(module::get_var("th_greydragon", "paginator_album")); $group->dropdown("album_descmode") ->label(t("Description Display Mode")) ->options(array("hide" => t("Hide"), "top" => t("Top"), "bottom" => t("Bottom"))) ->selected(module::get_var("th_greydragon", "album_descmode")); $group->checkbox("disablephotopage") ->label(t("Disable Photo Page (use Slideshow Mode)")) ->checked(module::get_var("th_greydragon", "disablephotopage")); $group->checkbox("hidecontextmenu") ->label(t("Hide Context Menu")) ->checked(module::get_var("th_greydragon", "hidecontextmenu")); /* Advanced Options - Album page - Thumbs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $group = $form->group("edit_theme_adv_thumb")->label(t("Advanced Options - Album page - Thumbs")); $group->dropdown("thumb_ratio") ->label(t("Aspect Ratio")) ->options(array("photo" => t("Actual"), "film" => t("Film/Full Frame 3:2"), "digital" => t("Digital 4:3"), "wide" => t("Wide/HDTV 16:9"))) ->selected($thumb_ratio); $group->checkbox("thumb_ratio_ex") ->label(t("Expanded Aspect Ratio (300px wide)")) ->checked($thumb_ratio_ex); $group->dropdown("thumb_imgalign") ->label(t("Thumb Image Align")) ->options(array("top" => t("Top"), "center" => t("Center"), "bottom" => t("Bottom"), "fit" => t("Fit"))) ->selected(module::get_var("th_greydragon", "thumb_imgalign")); $group->dropdown("thumb_descmode_a") ->label(t("Title Display Mode (Album)")) ->options(array("overlay" => t("Overlay Top"), "overlay_top" => t("Overlay Top (Static)"), "overlay_bottom" => t("Overlay Bottom (Static)"), "bottom" => t("Bottom"), "hide" => t("Hide"))) ->selected(module::get_var("th_greydragon", "thumb_descmode_a")); $group->dropdown("thumb_descmode") ->label(t("Title Display Mode (Photo)")) ->options(array("overlay" => t("Overlay Top"), "overlay_top" => t("Overlay Top (Static)"), "overlay_bottom" => t("Overlay Bottom (Static)"), "bottom" => t("Bottom"), "hide" => t("Hide"))) ->selected(module::get_var("th_greydragon", "thumb_descmode")); $group->dropdown("thumb_metamode") ->label(t("Meta Data Display Mode")) ->options(array("default" => t("Overlay (Default)"), "merged" => t("Merge with Title"), "hide" => t("Hide"))) ->selected(module::get_var("th_greydragon", "thumb_metamode", "default")); $group->checkbox("thumb_random") ->label(t("Randomize Thumb Image")) ->checked(module::get_var("th_greydragon", "thumb_random")); /* Advanced Options - Photo page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $group = $form->group("edit_theme_adv_photo")->label(t("Advanced Options - Photo Page")); $group->dropdown("paginator_photo") ->label(t("Paginator Position")) ->options(array("top" => t("Top"), "bottom" => t("Bottom"), "both" => t("Both"), "none" => t("None"))) ->selected(module::get_var("th_greydragon", "paginator_photo")); $group->dropdown("photo_descmode") ->label(t("Description Display Mode")) ->options(array("overlay_top" => t("Overlay Top"), "overlay_bottom" => t("Overlay Bottom"), "overlay_top_s" => t("Overlay Top (Static)"), "overlay_bottom_s" => t("Overlay Bottom (Static)"), "bottom" => t("Bottom"), "top" => t("Top"), "hide" => t("Hide"))) ->selected(module::get_var("th_greydragon", "photo_descmode")); $group->dropdown("photo_popupbox") ->label(t($check_info["module_name"]) . " " . t("Mode")) ->options(array("default" => t("Default (Slideshow/Preview)"), "preview" => t("Preview Only"), "none" => t("Disable"))) ->selected(module::get_var("th_greydragon", "photo_popupbox")); $group->checkbox("thumb_inpage") ->label(t("Keep Thumb Nav Block on the side")) ->checked(module::get_var("th_greydragon", "thumb_inpage")); if (!$thumbnavcheck): $group->thumb_inpage->disabled(true); endif; $group->checkbox("hide_photometa") ->label(t("Hide Item Meta Data")) ->checked(module::get_var("th_greydragon", "hide_photometa", TRUE)); /* Advanced Options - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $group = $form->group("edit_theme_adv_root")->label(t("Advanced Options - Root Page")); $group->checkbox("allow_root_page") ->label(t("Allow root page")) ->checked(module::get_var("th_greydragon", "allow_root_page")); $group->checkbox("show_root_desc") ->label(t("Show Gallery Description")) ->checked(!module::get_var("th_greydragon", "hide_root_desc")); $group->input("root_feed") ->label(t("Slideshow RSS Feed URL")) ->value(module::get_var("th_greydragon", "root_feed", "/gallery3/index.php/rss/feed/gallery/latest")); $group->dropdown("root_cyclemode") ->label(t("Cycle Effect (Default: Fade)")) ->options(array("fade" => t("Fade"), "fadeZoom" => t("Fade Zoom"), "blindX" => t("Blind X"), "blindY" => t("Blind Y"), "blindZ" => t("Blind Z"), "cover" => t("Cover"), "curtainX" => t("Curtain X"), "curtainY" => t("Curtain Y"), "growX" => t("Grow X"), "growY" => t("Grow Y"), "none" => t("None"), "scrollUp" => t("Scroll Up"), "scrollDown" => t("Scroll Down"), "scrollLeft" => t("Scroll Left"), "scrollRight" => t("Scroll Right"), "scrollHorz" => t("Scroll Horz"), "scrollVert" => t("Scroll Vert"), "shuffle" => t("Shuffle"), "slideX" => t("Slide X"), "slideY" => t("Slide Y"), "toss" => t("Toss"), "turnUp" => t("Turn Up"), "turnDown" => t("Turn Down"), "turnLeft" => t("Turn Left"), "turnRight" => t("Turn Right"), "uncover" => t("Uncover"), "wipe" => t("Wipe"), "zoom" => t("Zoom"))) ->selected(module::get_var("th_greydragon", "root_cyclemode")); $group->input("root_delay") ->label(t("Slideshow Delay (Default: 15)")) ->rules("required|valid_digit") ->error_messages("required", t("You must enter a number")) ->error_messages("valid_digit", t("You must enter a number")) ->value(module::get_var("th_greydragon", "root_delay", "15")); $group->checkbox("hide_root_sidebar") ->label(t("Hide Sidebar")) ->checked(module::get_var("th_greydragon", "hide_root_sidebar")); $group->textarea("root_description") ->label(t("Alternative Description (optional)")) ->value(module::get_var("th_greydragon", "root_description")); /* Sidebar Options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $group = $form->group("edit_theme_side")->label(t("Sidebar Options")); $group->checkbox("hide_blockheader") ->label(t("Hide Block Header")) ->checked(module::get_var("th_greydragon", "hide_blockheader")); $group->checkbox("sidebar_albumonly") ->label(t("Show Sidebar for Albums Only")) ->checked(module::get_var("th_greydragon", "sidebar_albumonly")); $group->checkbox("sidebar_hideguest") ->label(t("Show Sidebar for Guest Users")) ->checked(!module::get_var("th_greydragon", "sidebar_hideguest")); $group->dropdown("sidebar_allowed") ->label(t("Allowed Sidebar Positions")) ->options(array("any" => t("Any"), "left" => t("Left"), "right" => t("Right"), "bottom" => t("Bottom"), "top" => t("Top"), "default" => t("Default Only"))) ->selected($sidebar_allowed); $group->dropdown("sidebar_visible") ->label(t("Default Sidebar Position")) ->options(array("right" => t("Right"), "left" => t("Left"), "bottom" => t("Bottom"), "top" => t("Top"), "none" => t("No sidebar"))) ->selected($sidebar_visible); /* Maintenance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ $group = $form->group("maintenance")->label(t("Maintenance")); $group->checkbox("build_thumbs")->label(t("Mark all Thumbnails for Rebuild"))->checked(false); $group->checkbox("build_resize")->label(t("Mark all Image Resizes for Rebuild"))->checked(false); $group->checkbox("build_exif")->label(t("Mark Exif Info data for reload"))->checked(false); $group->checkbox("purge_cache")->label(t("Purge cache data"))->checked(false); $group->checkbox("reset_theme")->label(t("Reset Theme to a Default State"))->checked(false); module::event("theme_edit_form", $form); $form->submit("g-theme-options-save")->value(t("Save Changes")); return $form; } protected function get_edit_form_help() { $help = '
'; return $help; } private function save_item_state($statename, $state, $value) { if ($state): module::set_var("th_greydragon", $statename, $value); else: module::clear_var("th_greydragon", $statename); endif; } protected function legacy() { module::clear_var("th_greydragon", "photonav_top"); module::clear_var("th_greydragon", "photonav_bottom"); module::clear_var("th_greydragon", "hide_sidebar_photo"); module::clear_var("th_greydragon", "hide_thumbdesc"); module::clear_var("th_greydragon", "use_detailview"); module::clear_var("th_greydragon", "horizontal_crop"); module::clear_var("th_greydragon", "photo_shadowbox"); module::clear_var("th_greydragon", "root_text"); module::clear_var("th_greydragon", "enable_pagecache"); module::clear_var("th_greydragon", "navigator_album"); module::clear_var("th_greydragon", "navigator_photo"); module::clear_var("th_greydragon", "blendpagetrans"); module::clear_var("th_greydragon", "last_update"); } protected function reset_theme() { // Default core theme settings module::set_var("gallery", "page_size", 9); module::set_var("gallery", "resize_size", 640); module::set_var("gallery", "thumb_size", 200); module::set_var("gallery", "header_text", ""); module::set_var("gallery", "footer_text", ""); module::set_var("gallery", "show_credits", FALSE); module::clear_all_vars("th_greydragon"); } public function save() { site_status::clear("gd_init_configuration"); access::verify_csrf(); $form = self::get_edit_form_admin(); if ($form->validate()): $this->legacy(); if ($form->maintenance->reset_theme->value): $this->reset_theme(); module::event("theme_edit_form_completed", $form); message::success(t("Theme details are reset")); else: // * General Settings **************************************************** $resize_size = $form->edit_theme->resize_size->value; $build_resize = $form->maintenance->build_resize->value; $build_thumbs = $form->maintenance->build_thumbs->value; $build_exif = $form->maintenance->build_exif->value; if (module::is_active("iptc") and module::info("iptc")): $build_iptc = $form->maintenance->build_iptc->value; else: $build_iptc = FALSE; endif; $purge_cache = $form->maintenance->purge_cache->value; $color_pack = $form->edit_theme->colorpack->value; $frame_pack = $form->edit_theme->framepack->value; $thumb_imgalign = $form->edit_theme_adv_thumb->thumb_imgalign->value; $thumb_descmode_a = $form->edit_theme_adv_thumb->thumb_descmode_a->value; $thumb_descmode = $form->edit_theme_adv_thumb->thumb_descmode->value; $thumb_metamode = $form->edit_theme_adv_thumb->thumb_metamode->value; $photo_descmode = $form->edit_theme_adv_photo->photo_descmode->value; $photo_popupbox = $form->edit_theme_adv_photo->photo_popupbox->value; $resize_quality = $form->edit_theme_adv_main->resize_quality->value; $thumb_quality = $form->edit_theme_adv_main->thumb_quality->value; if ($build_resize): 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), $resize_quality); endif; if (module::get_var("gallery", "resize_size") != $resize_size): module::set_var("gallery", "resize_size", $resize_size); endif; $_priorratio = module::get_var("th_greydragon", "thumb_ratio", "photo"); $thumb_ratio = $form->edit_theme_adv_thumb->thumb_ratio->value; $thumb_ratio_ex = $form->edit_theme_adv_thumb->thumb_ratio_ex->value; if ($thumb_ratio_ex): $thumb_ratio .= "_ex"; endif; if ($thumb_ratio_ex): $thumb_size = 300; else: $thumb_size = 200; endif; if ($thumb_ratio == "photo"): $rule = Image::AUTO; else: $rule = Image::WIDTH; endif; if ($build_thumbs): graphics::remove_rule("gallery", "thumb", "gallery_graphics::resize"); graphics::add_rule("gallery", "thumb", "gallery_graphics::resize", array("width" => $thumb_size, "height" => $thumb_size, "master" => $rule), $thumb_quality); endif; if (module::get_var("gallery", "thumb_size") != $thumb_size): module::set_var("gallery", "thumb_size", $thumb_size); endif; $row_count = $form->edit_theme->row_count->value; $column_count = $form->edit_theme->column_count->value; $this->save_item_state("row_count", 3, $row_count); $this->save_item_state("column_count", 3, $column_count); if ($column_count == -1): $column_count = 3; endif; module::set_var("gallery", "page_size", $row_count * $column_count); 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", "favicon_url", $form->edit_theme->favicon->value); module::set_var("gallery", "apple_touch_icon_url", $form->edit_theme->appletouchicon->value); $this->save_item_state("copyright", $form->edit_theme->copyright->value, $form->edit_theme->copyright->value); $this->save_item_state("logo_path", $form->edit_theme->logo_path->value, $form->edit_theme->logo_path->value); $this->save_item_state("color_pack", (($color_pack) and ($color_pack != "greydragon")), $color_pack); $this->save_item_state("frame_pack", (($frame_pack) and ($frame_pack != "greydragon")), $frame_pack); $auto_delay = $form->edit_theme->g_auto_delay->value; $this->save_item_state("auto_delay", $auto_delay != 30, $auto_delay); // * Advanced Options - General ****************************************** $this->save_item_state("viewmode", $form->edit_theme_adv_main->viewmode->value != "default", $form->edit_theme_adv_main->viewmode->value); $this->save_item_state("toolbar_large", $form->edit_theme_adv_main->toolbar_large->value, TRUE); module::set_var("gallery", "show_credits", $form->edit_theme_adv_main->show_credits->value); $this->save_item_state("show_guest_menu", $form->edit_theme_adv_main->show_guest_menu->value, TRUE); $this->save_item_state("loginmenu_position", $form->edit_theme_adv_main->loginmenu_position->value != "default", $form->edit_theme_adv_main->loginmenu_position->value); $this->save_item_state("mainmenu_position", $form->edit_theme_adv_main->mainmenu_position->value != "default", $form->edit_theme_adv_main->mainmenu_position->value); $this->save_item_state("breadcrumbs_position", $form->edit_theme_adv_main->breadcrumbs_position->value != "default", $form->edit_theme_adv_main->breadcrumbs_position->value); $this->save_item_state("breadcrumbs_showinroot",$form->edit_theme_adv_main->breadcrumbs_showinroot->value, TRUE); $this->save_item_state("custom_css_path", $form->edit_theme_adv_main->custom_css_path->value != "", $form->edit_theme_adv_main->custom_css_path->value); $this->save_item_state("disable_seosupport", $form->edit_theme_adv_main->disable_seosupport->value, TRUE); $this->save_item_state("desc_allowbbcode", $form->edit_theme_adv_main->desc_allowbbcode->value, TRUE); $this->save_item_state("resize_quality", $resize_quality != 100, $resize_quality); $this->save_item_state("thumb_quality", $thumb_quality != 100, $thumb_quality); module::set_var("gallery", "visible_title_length", $form->edit_theme_adv_main->visible_title_length->value); $this->save_item_state("title_source", $form->edit_theme_adv_main->title_source->value != "default", $form->edit_theme_adv_main->title_source->value); $this->save_item_state("use_permalinks", $form->edit_theme_adv_main->use_permalinks->value, TRUE); // * Advanced Options - Album page *************************************** $this->save_item_state("album_descmode", $form->edit_theme_adv_album->album_descmode->value != "hide", $form->edit_theme_adv_album->album_descmode->value); $this->save_item_state("paginator_album", $form->edit_theme_adv_album->paginator_album->value != "top", $form->edit_theme_adv_album->paginator_album->value); $this->save_item_state("disablephotopage", $form->edit_theme_adv_album->disablephotopage->value, TRUE); $this->save_item_state("hidecontextmenu", $form->edit_theme_adv_album->hidecontextmenu->value, TRUE); // * Advanced Options - Album page - Thumbs ****************************** $this->save_item_state("thumb_ratio", $thumb_ratio != "photo", $thumb_ratio); $this->save_item_state("thumb_imgalign", $thumb_imgalign != "top", $thumb_imgalign); $this->save_item_state("thumb_descmode_a", $thumb_descmode_a != "overlay", $thumb_descmode_a); $this->save_item_state("thumb_descmode", $thumb_descmode != "overlay", $thumb_descmode); $this->save_item_state("thumb_metamode", $thumb_metamode != "default", $thumb_metamode); $this->save_item_state("thumb_random", $form->edit_theme_adv_thumb->thumb_random->value, TRUE); // * Advanced Options - Photo page *************************************** $this->save_item_state("paginator_photo", $form->edit_theme_adv_photo->paginator_photo->value != "top", $form->edit_theme_adv_photo->paginator_photo->value); $this->save_item_state("photo_descmode", $photo_descmode != "overlay_top", $photo_descmode); $this->save_item_state("photo_popupbox", $photo_popupbox != "default", $photo_popupbox); $this->save_item_state("thumb_inpage", $form->edit_theme_adv_photo->thumb_inpage->value, TRUE); $this->save_item_state("hide_photometa", !$form->edit_theme_adv_photo->hide_photometa->value, FALSE); // * Advanced Options - Root page **************************************** $rssmodulecheck = module::is_active("rss") and module::info("rss"); $root_feed = $form->edit_theme_adv_root->root_feed->value; $root_cyclemode = $form->edit_theme_adv_root->root_cyclemode->value; $root_delay = $form->edit_theme_adv_root->root_delay->value; $root_description = $form->edit_theme_adv_root->root_description->value; $this->save_item_state("allow_root_page", $form->edit_theme_adv_root->allow_root_page->value, TRUE); $this->save_item_state("hide_root_desc", !$form->edit_theme_adv_root->show_root_desc->value, TRUE); $this->save_item_state("root_feed", $root_feed != "gallery/latest", $root_feed); $this->save_item_state("root_cyclemode", $root_cyclemode != "fade", $root_cyclemode); $this->save_item_state("root_delay", $root_delay != "15", $root_delay); $this->save_item_state("hide_root_sidebar", $form->edit_theme_adv_root->hide_root_sidebar->value, TRUE); $this->save_item_state("root_description", $root_description, $root_description); // * Sidebar Options ***************************************************** $sidebar_allowed = $form->edit_theme_side->sidebar_allowed->value; $sidebar_visible = $form->edit_theme_side->sidebar_visible->value; if ($sidebar_allowed == "right"): $sidebar_visible = "right"; endif; if ($sidebar_allowed == "left"): $sidebar_visible = "left"; endif; $this->save_item_state("hide_blockheader", $form->edit_theme_side->hide_blockheader->value, TRUE); $this->save_item_state("sidebar_albumonly", $form->edit_theme_side->sidebar_albumonly->value, TRUE); $this->save_item_state("sidebar_hideguest", !$form->edit_theme_side->sidebar_hideguest->value, TRUE); $this->save_item_state("sidebar_allowed", $sidebar_allowed != "any", $sidebar_allowed); $this->save_item_state("sidebar_visible", $sidebar_visible != "right", $sidebar_visible); $this->save_item_state("last_update", TRUE, time()); module::event("theme_edit_form_completed", $form); if ($_priorratio != $thumb_ratio): message::warning(t("Thumb aspect ratio has been changed. Consider rebuilding thumbs if needed.")); endif; message::success(t("Updated theme details")); if ($build_exif): db::update('exif_records') ->set(array('dirty'=>'1')) ->execute(); endif; if ($build_iptc): db::update('iptc_records') ->set(array('dirty'=>'1')) ->execute(); endif; if ($purge_cache): db::build() ->delete("caches") ->execute(); endif; endif; url::redirect("admin/theme_options"); else: print $this->get_admin_view(); endif; } protected function get_admin_view() { $view = new Admin_View("admin.html"); $view->page_title = t("Grey Dragon Theme"); $view->content = new View("admin_theme_options.html"); $view->content->name = self::get_theme_name(); $view->content->version = self::get_theme_version(); $view->content->form = self::get_edit_form_admin(); $view->content->help = self::get_edit_form_help(); return $view; } public function index() { site_status::clear("gd_init_configuration"); print $this->get_admin_view(); } } ?>