コード例 #1
0
ファイル: summary.php プロジェクト: mined-gatech/hubzero-cms
 /**
  * Initial render view
  *
  * @return (string) view contents
  */
 public static function render()
 {
     // Load language
     Lang::load('plg_time_summary', __DIR__);
     // Create view
     $view = new \Hubzero\Plugin\View(array('folder' => 'time', 'element' => 'summary', 'name' => 'overview'));
     // Get vars from request
     $permissions = new Permissions('com_time');
     $view->hub_id = Request::getInt('hub_id', null);
     $view->task_id = Request::getInt('task_id', null);
     $view->start = Request::getCmd('start_date', Date::of(strtotime('today - 1 month'))->format('Y-m-d'));
     $view->end = Request::getCmd('end_date', Date::format('Y-m-d'));
     $view->hubs = array();
     $records = Record::where('date', '>=', Date::of($view->start . ' 00:00:00', Config::get('offset'))->toSql())->where('date', '<=', Date::of($view->end . ' 23:59:59', Config::get('offset'))->toSql());
     if (isset($view->task_id) && $view->task_id > 0) {
         $records->whereEquals('task_id', $view->task_id);
     } else {
         if (isset($view->hub_id) && $view->hub_id > 0) {
             $hub_id = $view->hub_id;
             $records->whereRelatedHas('task', function ($task) use($hub_id) {
                 $task->whereEquals('hub_id', $hub_id);
             });
         }
     }
     foreach ($records->including('task.hub', 'user') as $record) {
         if (isset($view->hubs[$record->task->hub_id])) {
             $view->hubs[$record->task->hub_id]['total'] += $record->time;
             if (isset($view->hubs[$record->task->hub_id]['tasks'][$record->task_id])) {
                 $view->hubs[$record->task->hub_id]['tasks'][$record->task_id]['total'] += $record->time;
                 $view->hubs[$record->task->hub_id]['tasks'][$record->task_id]['records'][] = $record;
             } else {
                 $view->hubs[$record->task->hub_id]['tasks'][$record->task_id] = ['name' => $record->task->name, 'total' => $record->time, 'records' => array($record)];
             }
         } else {
             if ($permissions->can('view.report', 'hub', $record->task->hub_id)) {
                 $view->hubs[$record->task->hub_id] = ['name' => $record->task->hub->name, 'tasks' => array($record->task_id => ['name' => $record->task->name, 'total' => $record->time, 'records' => [$record]]), 'total' => $record->time];
             }
         }
     }
     // Pass permissions to view
     $view->permissions = $permissions;
     return $view->loadTemplate();
 }