Esempio n. 1
0
/**
 * Adds the filter menu for todos
 *
 * @param string         $hook   name of the hook
 * @param string         $type   type of the hook
 * @param ElggMenuItem[] $return return value
 * @param array          $params hook parameters
 *
 * @return ElggMenuItem[]
 */
function todos_filter_menu_register($hook, $type, $return, $params)
{
    if (elgg_get_context() !== 'todos') {
        return $return;
    }
    $page_owner = elgg_get_page_owner_entity();
    if (todos_enabled_for_container($page_owner)) {
        $base_url = 'todos';
        if (elgg_instanceof($page_owner, 'group')) {
            $base_url .= "/group/{$page_owner->getGUID()}/all";
        }
        $return[] = ElggMenuItem::factory(array('name' => 'active', 'text' => elgg_echo('todos:filter:active'), 'href' => $base_url));
        $return[] = ElggMenuItem::factory(array('name' => 'completed', 'text' => elgg_echo('todos:filter:completed'), 'href' => "{$base_url}?filter=completed"));
        if ($page_owner instanceof ElggGroup) {
            $return[] = ElggMenuItem::factory(array('name' => 'assigned_per_user', 'text' => elgg_echo('todos:filter:assigned_per_user'), 'href' => "todos/assigned_per_user/{$page_owner->getGUID()}"));
        }
        $return[] = ElggMenuItem::factory(array('name' => 'overdue', 'text' => elgg_echo('todos:filter:overdue'), 'href' => "{$base_url}?filter=overdue"));
    }
    $user = elgg_get_logged_in_user_entity();
    if (!empty($user)) {
        $href = "todos/assigned/{$user->username}";
        if (elgg_instanceof($page_owner, 'group')) {
            $href .= "/{$page_owner->getGUID()}";
        }
        $return[] = ElggMenuItem::factory(array('name' => 'assigned', 'text' => elgg_echo('todos:filter:assigned'), 'href' => $href));
    }
    return $return;
}
Esempio n. 2
0
<?php

$page_owner = elgg_get_page_owner_entity();
if (!$page_owner instanceof ElggGroup) {
    forward(REFERER);
}
if (!todos_enabled_for_container($page_owner)) {
    forward(REFERER);
}
// breadcrumb
elgg_push_breadcrumb(elgg_echo('todos'), "todos/group/{$page_owner->getGUID()}/all");
elgg_push_breadcrumb($page_owner->name);
// build page elements
$title = elgg_echo('todos:filter:assigned_per_user');
$filter_tabs = elgg_view_menu('filter', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz'));
$sidebar = elgg_view('todos/sidebar');
// get items
$dbprefix = elgg_get_config('dbprefix');
$options = array('type' => 'object', 'subtype' => TodoItem::SUBTYPE, 'limit' => false, 'pagination' => false, 'metadata_name_value_pairs' => array(), 'joins' => array("JOIN {$dbprefix}entities ce ON e.container_guid = ce.guid"), 'wheres' => array("ce.container_guid = {$page_owner->getGUID()}"));
// filter options
$filters = get_input('filters');
// show completed
if (!elgg_extract('show_completed', $filters)) {
    $options['metadata_name_value_pairs'][] = array('name' => 'order', 'value' => 0, 'operand' => '>=');
}
// due date filters
$date_filter = elgg_extract('date', $filters);
switch ($date_filter) {
    case 'today':
        $options['metadata_name_value_pairs'][] = array('name' => 'due', 'value' => mktime(0, 0, 0), 'operand' => '>=');
        $options['metadata_name_value_pairs'][] = array('name' => 'due', 'value' => mktime(0, 0, 0) + 24 * 60 * 60, 'operand' => '<=');