diff options
| author | Tristan Zur <tzur@webserver.ccwn.org> | 2015-06-10 20:55:53 +0200 |
|---|---|---|
| committer | Tristan Zur <tzur@webserver.ccwn.org> | 2015-06-10 20:55:53 +0200 |
| commit | 406abd7c4df1ace2cd3e4e17159e8941a2e8c0c4 (patch) | |
| tree | a324be16021f44f2fd6d55e609f47024e945b1db /modules/calendarview/helpers | |
Initial import
Diffstat (limited to 'modules/calendarview/helpers')
| -rw-r--r-- | modules/calendarview/helpers/calendarview.php | 48 | ||||
| -rw-r--r-- | modules/calendarview/helpers/calendarview_block.php | 72 | ||||
| -rw-r--r-- | modules/calendarview/helpers/calendarview_event.php | 99 | ||||
| -rw-r--r-- | modules/calendarview/helpers/calendarview_installer.php | 40 | ||||
| -rw-r--r-- | modules/calendarview/helpers/calendarview_theme.php | 25 |
5 files changed, 284 insertions, 0 deletions
diff --git a/modules/calendarview/helpers/calendarview.php b/modules/calendarview/helpers/calendarview.php new file mode 100644 index 0000000..4807bc0 --- /dev/null +++ b/modules/calendarview/helpers/calendarview.php @@ -0,0 +1,48 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2013 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 calendarview_Core { + static function get_items_count($where=array()) { + // Returns the number of viewable items identified by $where. + return ORM::factory("item") + ->viewable() + ->merge_where($where) + ->order_by("captured", "ASC") + ->count_all(); + } + + static function get_items($limit=null, $offset=null, $where=array()) { + // Returns the items identified by $where, up to $limit, and starting at $offset. + return ORM::factory("item") + ->viewable() + ->merge_where($where) + ->order_by("captured", "ASC") + ->find_all($limit, $offset); + } + + static function get_position($item, $where=array()) { + // Get's $item's position within $where. + return ORM::factory("item") + ->viewable() + ->merge_where($where) + ->where("items.id", "<=", $item->id) + ->order_by("captured", "ASC") + ->count_all(); + } +} diff --git a/modules/calendarview/helpers/calendarview_block.php b/modules/calendarview/helpers/calendarview_block.php new file mode 100644 index 0000000..05e470d --- /dev/null +++ b/modules/calendarview/helpers/calendarview_block.php @@ -0,0 +1,72 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2013 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 calendarview_block_Core { + static function get_site_list() { + return array("calendarview_photo" => t("More Photos From This Date")); + } + + static function get($block_id, $theme) { + $block = ""; + + // Make sure the current page belongs to an item. + if (!$theme->item()) { + return; + } + $item = $theme->item; + + $display_date = ""; + if (isset($item->captured)) { + $display_date = $item->captured; + }elseif (isset($item->created)) { + $display_date = $item->created; + } + + // Make sure there are photo's to display. + $day_count = ORM::factory("item") + ->viewable() + ->where("type", "!=", "album") + ->where("captured", ">=", mktime(0, 0, 0, date("n", $display_date), date("j", $display_date), date("Y", $display_date))) + ->where("captured", "<", mktime(0, 0, 0, date("n", $display_date), date("j", $display_date)+1, date("Y", $display_date))) + ->find_all() + ->count(); + $month_count = ORM::factory("item") + ->viewable() + ->where("type", "!=", "album") + ->where("captured", ">=", mktime(0, 0, 0, date("n", $display_date), 1, date("Y", $display_date))) + ->where("captured", "<", mktime(0, 0, 0, date("n", $display_date)+1, 1, date("Y", $display_date))) + ->find_all() + ->count(); + + switch ($block_id) { + case "calendarview_photo": + if ( ($display_date != "") && (($day_count > 0) || ($month_count > 0)) ) { + $block = new Block(); + $block->css_id = "g-calendarview-sidebar"; + $block->title = t("Calendar"); + $block->content = new View("calendarview_sidebar.html"); + $block->content->date = $display_date; + $block->content->day_count = $day_count; + $block->content->month_count = $month_count; + } + break; + } + return $block; + } +} diff --git a/modules/calendarview/helpers/calendarview_event.php b/modules/calendarview/helpers/calendarview_event.php new file mode 100644 index 0000000..e98415c --- /dev/null +++ b/modules/calendarview/helpers/calendarview_event.php @@ -0,0 +1,99 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2013 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 calendarview_event_Core { + static function photo_menu($menu, $theme) { + $menu->append(Menu::factory("link") + ->id("calendarview") + ->label(t("View Calendar")) + ->url(url::site("calendarview/calendar/")) + ->css_id("g-calendarview-link")); + } + + static function movie_menu($menu, $theme) { + $menu->append(Menu::factory("link") + ->id("calendarview") + ->label(t("View Calendar")) + ->url(url::site("calendarview/calendar/")) + ->css_id("g-calendarview-link")); + } + + static function album_menu($menu, $theme) { + $menu->append(Menu::factory("link") + ->id("calendarview") + ->label(t("View Calendar")) + ->url(url::site("calendarview/calendar/")) + ->css_id("g-calendarview-link")); + } + + static function tag_menu($menu, $theme) { + $menu->append(Menu::factory("link") + ->id("calendarview") + ->label(t("View Calendar")) + ->url(url::site("calendarview/calendar/")) + ->css_id("g-calendarview-link")); + } + + static function pre_deactivate($data) { + // If the admin is about to deactivate EXIF, warn them that this module requires it. + if ($data->module == "exif") { + $data->messages["warn"][] = t("The CalendarView module requires the EXIF module."); + } + } + + static function module_change($changes) { + // If EXIF is deactivated, display a warning that it is required for this module to function properly. + if (!module::is_active("exif") || in_array("exif", $changes->deactivate)) { + site_status::warning( + t("The CalendarView module requires the EXIF module. " . + "<a href=\"%url\">Activate the EXIF module now</a>", + array("url" => html::mark_clean(url::site("admin/modules")))), + "calendarview_needs_exif"); + } else { + site_status::clear("calendarview_needs_exif"); + } + } + + static function show_user_profile($data) { + // Display a few months on the user profile screen. + $v = new View("user_profile_calendarview.html"); + $v->user_id = $data->user->id; + + // Figure out what month the users newest photo was taken it. + // Make that the last month to display. + // If a user hasn't uploaded anything, make the current month + // the last to be displayed. + $latest_photo = ORM::factory("item") + ->viewable() + ->where("type", "!=", "album") + ->where("captured", "!=", "") + ->where("owner_id", "=", $data->user->id) + ->order_by("captured", "DESC") + ->find_all(1); + if (count($latest_photo) > 0) { + $v->user_year = date('Y', $latest_photo[0]->captured); + $v->user_month = date('n', $latest_photo[0]->captured); + } else { + $v->user_year = date('Y'); + $v->user_month = date('n'); + } + + $data->content[] = (object) array("title" => t("User calendar"), "view" => $v); + } +} diff --git a/modules/calendarview/helpers/calendarview_installer.php b/modules/calendarview/helpers/calendarview_installer.php new file mode 100644 index 0000000..986a13f --- /dev/null +++ b/modules/calendarview/helpers/calendarview_installer.php @@ -0,0 +1,40 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2013 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 calendarview_installer { + static function install() { + module::set_version("calendarview", 1); + } + + static function deactivate() { + site_status::clear("calendarview_needs_exif"); + } + + static function can_activate() { + $messages = array(); + if (!module::is_active("exif")) { + $messages["warn"][] = t("The CalendarView module requires the EXIF module."); + } + return $messages; + } + + static function uninstall() { + module::delete("calendarview"); + } +} diff --git a/modules/calendarview/helpers/calendarview_theme.php b/modules/calendarview/helpers/calendarview_theme.php new file mode 100644 index 0000000..d299bf3 --- /dev/null +++ b/modules/calendarview/helpers/calendarview_theme.php @@ -0,0 +1,25 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2013 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 calendarview_theme_Core { + static function head($theme) { + return $theme->css("calendarview_calendar.css") . + $theme->css("calendarview_menu.css"); + } +} |
