<?php /** * Elgg event_calendar group profile content * * @package event_calendar * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 * @author Kevin Jardine <*****@*****.**> * @copyright Radagast Solutions 2008 * @link http://radagast.biz/ * */ elgg_load_library('elgg:event_calendar'); $page_owner_entity = elgg_get_page_owner_entity(); if (event_calendar_activated_for_group($page_owner_entity)) { $num = 4; // Get the upcoming events $start_date = time(); // now $end_date = $start_date + 60 * 60 * 24 * 365 * 2; // maximum is two years from now $events = event_calendar_get_events_between($start_date, $end_date, false, $num, 0, elgg_get_page_owner_guid()); // If there are any events to view, view them if (is_array($events) && sizeof($events) > 0) { foreach ($events as $event) { echo elgg_view("object/event_calendar", array('entity' => $event['event'])); } } }
/** * Add a menu item to an ownerblock */ function event_calendar_owner_block_menu($hook, $type, $return, $params) { elgg_load_library('elgg:event_calendar'); if (elgg_instanceof($params['entity'], 'group')) { if (event_calendar_activated_for_group($params['entity'])) { $url = "event_calendar/group/{$params['entity']->guid}"; $item = new ElggMenuItem('event_calendar', elgg_echo('event_calendar:group'), $url); $return[] = $item; } } return $return; }
function event_calendar_get_page_content_list($page_type, $container_guid, $start_date, $display_mode, $filter, $region = '-') { elgg_load_js('elgg.event_calendar'); global $autofeed; $autofeed = true; if ($page_type == 'group') { if (!event_calendar_activated_for_group($container_guid)) { forward(); } elgg_push_breadcrumb(elgg_echo('event_calendar:group_breadcrumb')); elgg_push_context('groups'); elgg_set_page_owner_guid($container_guid); $user_guid = elgg_get_logged_in_user_guid(); $group_calendar = elgg_get_plugin_setting('group_calendar', 'event_calendar'); if (!$group_calendar || $group_calendar == 'members') { if (elgg_get_page_owner_entity()->canWriteToContainer($user_guid)) { elgg_register_menu_item('title', array('name' => 'add', 'href' => "event_calendar/add/" . $container_guid, 'text' => elgg_echo('event_calendar:add'), 'class' => 'elgg-button elgg-button-action')); } } else { if ($group_calendar == 'admin') { if (elgg_is_admin_logged_in() || $group->owner_guid == $user_guid) { elgg_register_menu_item('title', array('name' => 'add', 'href' => "event_calendar/add/" . $container_guid, 'text' => elgg_echo('event_calendar:add'), 'class' => 'elgg-button elgg-button-action')); } } } } else { elgg_push_breadcrumb(elgg_echo('item:object:event_calendar')); $site_calendar = elgg_get_plugin_setting('site_calendar', 'event_calendar'); if (!$site_calendar || $site_calendar == 'admin') { // only admins can post directly to the site-wide calendar if (elgg_is_admin_logged_in()) { elgg_register_menu_item('title', array('name' => 'add', 'href' => "event_calendar/add", 'text' => elgg_echo('event_calendar:add'), 'class' => 'elgg-button elgg-button-action')); } } else { if ($site_calendar == 'loggedin') { // any logged-in user can post to the site calendar if (elgg_is_logged_in()) { elgg_register_menu_item('title', array('name' => 'add', 'href' => "event_calendar/add", 'text' => elgg_echo('event_calendar:add'), 'class' => 'elgg-button elgg-button-action')); } } } } $params = event_calendar_generate_listing_params($page_type, $container_guid, $start_date, $display_mode, $filter, $region); $url = full_url(); if (substr_count($url, '?')) { $url .= "&view=ical"; } else { $url .= "?view=ical"; } $url = elgg_format_url($url); $menu_options = array('name' => 'ical', 'id' => 'event-calendar-ical-link', 'text' => '<img src="' . elgg_get_site_url() . 'mod/event_calendar/images/ics.png" />', 'href' => $url, 'title' => elgg_echo('feed:ical'), 'priority' => 800); $menu_item = ElggMenuItem::factory($menu_options); elgg_register_menu_item('extras', $menu_item); $body = elgg_view_layout("content", $params); return elgg_view_page($title, $body); }
<?php elgg_load_library('elgg:event_calendar'); $fd = $vars['event']; $group_id = $vars['group_guid']; $site_calendar = elgg_get_plugin_setting('site_calendar', 'event_calendar'); $group_calendar = elgg_get_plugin_setting('group_calendar', 'event_calendar'); $admin = elgg_is_admin_logged_in(); $containers = array(); $user = elgg_get_logged_in_user_entity(); $groups = $user->getGroups(array('limit' => false)); foreach ($groups as $group) { if (event_calendar_activated_for_group($group)) { if ($admin || !$group_calendar || $group_calendar == 'members') { if ($group->canWriteToContainer($user->guid)) { $containers[$group->guid] = $group->name; } } else { if ($group->canEdit()) { $containers[$group->guid] = $group->name; } } } } $value = $vars['container_guid']; if ($vars['container_guid']) { $value = $vars['container_guid']; } else { $value = 0; } natcasesort($containers);
function event_calendar_can_add($group_guid = 0, $user_guid = 0) { if (!$user_guid) { if (elgg_is_logged_in()) { $user_guid = elgg_get_logged_in_user_guid(); } else { return FALSE; } } if ($group_guid) { if (!event_calendar_activated_for_group($group_guid)) { return FALSE; } $group = get_entity($group_guid); if (elgg_instanceof($group, 'group')) { $group_calendar = elgg_get_plugin_setting('group_calendar', 'event_calendar'); if (!$group_calendar || $group_calendar == 'members') { return $group->canWriteToContainer($user_guid); } else { if ($group_calendar == 'admin') { if ($group->canEdit($user_guid)) { return TRUE; } else { return FALSE; } } } } else { return FALSE; } } else { $site_calendar = elgg_get_plugin_setting('site_calendar', 'event_calendar'); if (!$site_calendar || $site_calendar == 'admin') { // only admins can post directly to the site-wide calendar return elgg_is_admin_user($user_guid); } else { if ($site_calendar == 'loggedin') { // any logged-in user can post to the site calendar return TRUE; } } } return FALSE; }