diff --git a/modules/minislideshow/controllers/admin_minislideshow.php b/modules/minislideshow/controllers/admin_minislideshow.php new file mode 100644 index 00000000..1dab4f1a --- /dev/null +++ b/modules/minislideshow/controllers/admin_minislideshow.php @@ -0,0 +1,127 @@ +content = new View("admin_minislideshow.html"); + $view->content->minislideshow_form = $this->_get_admin_form(); + print $view; + } + + public function saveprefs() { + // Process the admin form. + + // Prevent Cross Site Request Forgery + access::verify_csrf(); + + // Save user specified settings to the database. + $str_slideshow_url = Input::instance()->post("slideshow_url"); + module::set_var("minislideshow", "slideshow_url", $str_slideshow_url); + + $str_slideshow_shuffle = Input::instance()->post("shuffle"); + module::set_var("minislideshow", "shuffle", $str_slideshow_shuffle); + + $str_slideshow_dropshadow = Input::instance()->post("dropshadow"); + module::set_var("minislideshow", "dropshadow", $str_slideshow_dropshadow); + + $str_slideshow_show_title = Input::instance()->post("show_title"); + module::set_var("minislideshow", "show_title", $str_slideshow_show_title); + + $str_slideshow_trans_in_type = Input::instance()->post("trans_in_type"); + module::set_var("minislideshow", "trans_in_type", $str_slideshow_trans_in_type); + + $str_slideshow_trans_out_type = Input::instance()->post("trans_out_type"); + module::set_var("minislideshow", "trans_out_type", $str_slideshow_trans_out_type); + + $str_slideshow_mask = Input::instance()->post("mask"); + module::set_var("minislideshow", "mask", $str_slideshow_mask); + + $str_slideshow_use_full_image = Input::instance()->post("use_full_image"); + module::set_var("minislideshow", "use_full_image", $str_slideshow_use_full_image); + + $str_slideshow_delay = Input::instance()->post("delay"); + module::set_var("minislideshow", "delay", $str_slideshow_delay); + + // Display a success message and load the admin screen. + message::success(t("Your Settings Have Been Saved.")); + $view = new Admin_View("admin.html"); + $view->content = new View("admin_minislideshow.html"); + $view->content->minislideshow_form = $this->_get_admin_form(); + print $view; + } + + private function _get_admin_form() { + // Generate a form for configuring the slideshow. + + // Make a new Form. + $form = new Forge("admin/minislideshow/saveprefs", "", "post", + array("id" => "gMinislideshowAdminForm")); + + + // Get location of slideshow files. + $group_slideshow_files = $form->group("Minislideshow"); + $group_slideshow_files->input("slideshow_url") + ->label(t("URL to your minislideshow.swf")) + ->value(module::get_var("minislideshow", "slideshow_url")); + + // Get additional settings for the slideshow. + $group_slideshow_settings = $form->group("MinislideshowSettings"); + $group_slideshow_settings->label(t("MiniSlide Show Settings")); + $group_slideshow_settings->dropdown('shuffle') + ->label(t("Shuffle:")) + ->options(array('true'=>'True', ''=>'False')) + ->selected(module::get_var("minislideshow", "shuffle")); + $group_slideshow_settings->dropdown('dropshadow') + ->label(t("Drop Shadow:")) + ->options(array('true'=>'True', ''=>'False')) + ->selected(module::get_var("minislideshow", "dropshadow")); + $group_slideshow_settings->dropdown('show_title') + ->label(t("Show Title:")) + ->options(array('top'=>'Top', 'bottom'=>'Bottom', ''=>'False')) + ->selected(module::get_var("minislideshow", "show_title")); + $group_slideshow_settings->dropdown('trans_in_type') + ->label(t("Transition In:")) + ->options(array('Blinds'=>'Blinds', ''=>'Fade', 'Fly'=>'Fly', 'Iris'=>'Iris', 'Photo'=>'Photo', 'PixelDissolve'=>'Pixel Dissolve', 'Rotate'=>'Rotate', 'Squeeze'=>'Squeeze', 'Wipe'=>'Wipe', 'Zoom'=>'Zoom', 'Random'=>'Random')) + ->selected(module::get_var("minislideshow", "trans_in_type")); + $group_slideshow_settings->dropdown('trans_out_type') + ->label(t("Transition Out:")) + ->options(array('Blinds'=>'Blinds', ''=>'Fade', 'Fly'=>'Fly', 'Iris'=>'Iris', 'Photo'=>'Photo', 'PixelDissolve'=>'Pixel Dissolve', 'Rotate'=>'Rotate', 'Squeeze'=>'Squeeze', 'Wipe'=>'Wipe', 'Zoom'=>'Zoom', 'Random'=>'Random')) + ->selected(module::get_var("minislideshow", "trans_out_type")); + $group_slideshow_settings->dropdown('mask') + ->label(t("Mask:")) + ->options(array(''=>'None', 'circleMask'=>'Circle', 'roundedMask'=>'Rounded Corners', 'starMask'=>'Star')) + ->selected(module::get_var("minislideshow", "mask")); + $group_slideshow_settings->dropdown('use_full_image') + ->label(t("Use Full Image:")) + ->options(array('true', 'false', 'Use Resize')) + ->selected(module::get_var("minislideshow", "use_full_image")); + $group_slideshow_settings->input("delay") + ->label(t("Delay:")) + ->value(module::get_var("minislideshow", "delay")); + + // Add a save button to the form. + $form->submit("SaveSettings")->value(t("Save")); + + // Return the newly generated form. + return $form; + } +} \ No newline at end of file diff --git a/modules/minislideshow/controllers/minislideshow.php b/modules/minislideshow/controllers/minislideshow.php new file mode 100644 index 00000000..453e1257 --- /dev/null +++ b/modules/minislideshow/controllers/minislideshow.php @@ -0,0 +1,69 @@ +is_album()) { + $view->item_id = $item->id; + } else { + $view->item_id = $item->parent_id; + $item = ORM::factory("item", $item_id); + } + access::required("view", $item); + + // Generate additional slideshow parameters from database values. + $slideshow_params = ""; + if (module::get_var("minislideshow", "shuffle") != "") { + $slideshow_params = $slideshow_params . "&shuffle=" . module::get_var("minislideshow", "shuffle"); + } + if (module::get_var("minislideshow", "dropshadow") != "") { + $slideshow_params = $slideshow_params . "&showDropShadow=" . module::get_var("minislideshow", "dropshadow"); + } + if (module::get_var("minislideshow", "show_title") != "") { + $slideshow_params = $slideshow_params . "&showTitle=" . module::get_var("minislideshow", "show_title"); + } + if (module::get_var("minislideshow", "trans_in_type") != "") { + $slideshow_params = $slideshow_params . "&transInType=" . module::get_var("minislideshow", "trans_in_type"); + } + if (module::get_var("minislideshow", "trans_out_type") != "") { + $slideshow_params = $slideshow_params . "&transOutType=" . module::get_var("minislideshow", "trans_out_type"); + } + if (module::get_var("minislideshow", "mask") != "") { + $slideshow_params = $slideshow_params . "&" . module::get_var("minislideshow", "mask") . "=true"; + } + if (module::get_var("minislideshow", "use_full_image") != "") { + $slideshow_params = $slideshow_params . "&useFull=true"; + if (module::get_var("minislideshow", "use_full_image") != "2") { + $slideshow_params = $slideshow_params . "useResizes=true"; + } + } + if (module::get_var("minislideshow", "delay") != "") { + $slideshow_params = $slideshow_params . "&delay=" . module::get_var("minislideshow", "delay"); + } + $view->slideshow_params = $slideshow_params; + + // Display the slideshow. + print $view; + } +} diff --git a/modules/minislideshow/helpers/minislideshow_event.php b/modules/minislideshow/helpers/minislideshow_event.php new file mode 100644 index 00000000..11196954 --- /dev/null +++ b/modules/minislideshow/helpers/minislideshow_event.php @@ -0,0 +1,64 @@ +get("settings_menu") + ->append(Menu::factory("link") + ->id("minislideshow") + ->label(t("MiniSlide Show settings")) + ->url(url::site("admin/minislideshow"))); + } + + static function module_change($changes) { + // Display a warning message if the RSS module is not installed. + if (!module::is_active("rss") || in_array("rss", $changes->deactivate)) { + site_status::warning( + t("The MiniSlide Show module requires the RSS module. " . + "Activate the RSS module now", + array("url" => url::site("admin/modules"))), + "minislideshow_needs_rss"); + } else { + site_status::clear("minislideshow_needs_rss"); + } + } + + static function album_menu($menu, $theme) { + // Add an option to access the slideshow from the album view. + $menu + ->append(Menu::factory("link") + ->id("minislideshow") + ->label(t("View MiniSlide Show")) + ->url(url::site("minislideshow/showslideshow/" . $theme->item())) + ->css_class("gDialogLink") + ->css_id("gSlideshowLink")); + } + + static function photo_menu($menu, $theme) { + // Add an option to access the slideshow from the photo view. + $menu + ->append(Menu::factory("link") + ->id("minislideshow") + ->label(t("View MiniSlide Show")) + ->url(url::site("minislideshow/showslideshow/" . $theme->item())) + ->css_class("gDialogLink") + ->css_id("gSlideshowLink")); + } +} diff --git a/modules/minislideshow/helpers/minislideshow_installer.php b/modules/minislideshow/helpers/minislideshow_installer.php new file mode 100644 index 00000000..1255ad3d --- /dev/null +++ b/modules/minislideshow/helpers/minislideshow_installer.php @@ -0,0 +1,32 @@ + +
+

+ +
diff --git a/modules/minislideshow/views/minislideshow_dialog.html.php b/modules/minislideshow/views/minislideshow_dialog.html.php new file mode 100644 index 00000000..a7cf1e25 --- /dev/null +++ b/modules/minislideshow/views/minislideshow_dialog.html.php @@ -0,0 +1,18 @@ + + +

+
+" width="485" height="300" + align="middle" pluginspage="http://www.macromedia.com/go/getflashplayer" +type="application/x-shockwave-flash" name="minislide" wmode="transparent" + allowFullscreen="true" allowScriptAccess="always" quality="high" +flashvars="xmlUrl="> + + + +
Embed:" width="485" height="300" align="middle" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="minislide" wmode="transparent" allowFullscreen="true" allowScriptAccess="always" quality="high" flashvars="xmlUrl=">" readonly>
+
\ No newline at end of file