/** * Method to get a list of grouped activity items * * @return array $items The activity items */ public function getItemsGrouped() { if (JDEBUG) { JProfiler::getInstance('Application')->mark('beforeUserActivityGetItemsGrouped'); } $order_dir = $this->state->get('list.direction', 'desc'); $list = parent::getItems(); $items = array(); $new_frame = array(); $time_frames = array(); if ($order_dir == 'desc') { // Must process items in chronological order $list = array_reverse($list); } // Group items into time frames foreach ($list as &$item) { // Generate the frame key $frame_key = implode('.', array($item->event_id, $item->type_id, $item->created_by)); // Create frame if not exists if (!isset($time_frames[$frame_key])) { $time_frames[$frame_key] = array(); $new_frame[$frame_key] = false; } // Check if the item is within the desired time frame if ((int) $item->delta_time > $this->group_activity) { $new_frame[$frame_key] = true; } // Create packet if not exists if (count($time_frames[$frame_key]) == 0 || $new_frame[$frame_key]) { $time_frames[$frame_key][] = array(); end($time_frames[$frame_key]); $packet_key = key($time_frames[$frame_key]); $items[] =& $time_frames[$frame_key][$packet_key]; $new_frame[$frame_key] = false; } else { end($time_frames[$frame_key]); $packet_key = key($time_frames[$frame_key]); } // Add segment/data to the packet if (isset($time_frames[$frame_key][$packet_key][$item->item_id]) && $order_dir == 'desc') { $time_frames[$frame_key][$packet_key][$item->item_id] =& $item; } else { $time_frames[$frame_key][$packet_key][$item->item_id] =& $item; } } // Translate the items $clients = array(JText::_('JSITE'), JText::_('JADMINISTRATOR')); $config = array('user_link' => $this->user_link); foreach ($items as &$item) { if (!is_array($item)) { $item->client = $clients[$item->client_id]; $item = UserActivityHelper::translate($item, $config); continue; } reset($item); if ($order_dir == 'desc') { $item = array_reverse($item); } if (count($item) == 1) { $key = key($item); $item = UserActivityHelper::translate($item[$key], $config); } else { $item = UserActivityHelper::translate($item, $config); } $item->client = $clients[$item->client_id]; } if ($order_dir == 'desc') { // Reverse back to descending $items = array_reverse($items); } if (JDEBUG) { JProfiler::getInstance('Application')->mark('afterUserActivityGetItemsGrouped'); } return $items; }
<span class="row-title"><?php echo $item->text; ?> </span> </div> <div class="span3"> <?php if ($date_rel) { ?> <span class="label hasTip" title="<?php echo $date; ?> " style="cursor: help;"> <i class="icon-clock"></i> <?php echo UserActivityHelper::relativeDateTime($item->created); ?> </span> <?php } else { ?> <span class="small"> <i class="icon-clock"></i> <?php echo $date; ?> </span> <?php } ?> </div>
* * @author Tobias Kuhn (eaxs) * @copyright Copyright (C) 2013 Tobias Kuhn. All rights reserved. * @license http://www.gnu.org/licenses/gpl.html GNU/GPL, see LICENSE.txt */ defined('_JEXEC') or die; $items = array(); $com_params = JComponentHelper::getParams('com_useractivity'); $date_rel = $params->get('date_relative', $com_params->get('date_relative', 1)); $date_format = $params->get('date_format'); if (!$date_format) { $date_format = JText::_('DATE_FORMAT_LC1'); } foreach ($data['items'] as $item) { $date = JHtml::_('date', $item->created, $date_format); $html = '<div class="row-fluid">'; $html .= ' <div class="span12">'; $html .= ' <span class="small muted pull-right">'; if ($date_rel) { $html .= '<span class="hasTooltip" title="' . $date . '" style="cursor: help;">' . UserActivityHelper::relativeDateTime($item->created) . ' </span>'; } else { $html .= $date; } $html .= ' </span>'; $html .= ' <span class="label label-' . $item->name . '">' . $item->name . '</span> '; $html .= ' <strong class="row-title">' . $item->text . '</strong>'; $html .= ' </div>'; $html .= '</div>'; $items[] = $html; } echo json_encode(array('total' => $data['total'], 'items' => $items));