当前位置: 首页>>代码示例>>PHP>>正文


PHP ActivityModel::mark_as_computed方法代码示例

本文整理汇总了PHP中ActivityModel::mark_as_computed方法的典型用法代码示例。如果您正苦于以下问题:PHP ActivityModel::mark_as_computed方法的具体用法?PHP ActivityModel::mark_as_computed怎么用?PHP ActivityModel::mark_as_computed使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ActivityModel的用法示例。


在下文中一共展示了ActivityModel::mark_as_computed方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: compute_intervals

 private function compute_intervals($params)
 {
     if (isset($params[0]) && !empty($params[0])) {
         //a user is specified
         $users = array('user' => UserModel::find($params[0]));
     } else {
         //all users
         $users = UserModel::find_all();
     }
     if ($users) {
         foreach ($users as $user) {
             //get activity without incidences
             $activity = ActivityModel::find_all_by_user_not_computed($user->id);
             if ($activity) {
                 $activity_entries = array();
                 //group 2 by 2
                 $grouped_activities = null;
                 for ($i = 0; $i < count($activity); $i = $i + 2) {
                     //group only when we have both members
                     if ($activity[$i] && $activity[$i + 1]) {
                         $grouped_activities[] = array($activity[$i], $activity[$i + 1]);
                         //mark activities as computed
                         $activity_entries[] = $activity[$i]->id;
                         $activity_entries[] = $activity[$i + 1]->id;
                     }
                 }
                 $intervals = null;
                 foreach ($grouped_activities as $gactivity) {
                     //check data integrity
                     if ($gactivity[0]->action == 'checkin' && $gactivity[1]->action == 'checkout') {
                         //compute the interval
                         $date_start = new DateTime(date(DATE_ATOM, $gactivity[0]->timestamp));
                         $date_end = new DateTime(date(DATE_ATOM, $gactivity[1]->timestamp));
                         $date_diff = $date_start->diff($date_end);
                         $interval = new stdClass();
                         $interval->userid = $gactivity[0]->userid;
                         $interval->timestart = $gactivity[0]->timestamp;
                         $interval->timestop = $gactivity[1]->timestamp;
                         $interval->timediff = $gactivity[1]->timestamp - $gactivity[0]->timestamp;
                         $interval->week = date('W', $gactivity[0]->timestamp);
                         $interval->month = date('n', $gactivity[0]->timestamp);
                         $interval->year = date('o', $gactivity[0]->timestamp);
                         $interval->y = $date_diff->y;
                         $interval->m = $date_diff->m;
                         $interval->d = $date_diff->d;
                         $interval->h = $date_diff->h;
                         $interval->i = $date_diff->i;
                         $interval->s = $date_diff->s;
                         $intervals[] = $interval;
                     } else {
                         die(print_r("FATAL: Corrupted database!\n"));
                     }
                 }
                 //save the intervals to the DB
                 if ($intervals) {
                     IntervalModel::create_multiple($intervals);
                 }
                 if ($activity_entries) {
                     ActivityModel::mark_as_computed($activity_entries);
                 }
             }
         }
     }
 }
开发者ID:robertboloc,项目名称:presence-manager,代码行数:64,代码来源:CronController.php


注:本文中的ActivityModel::mark_as_computed方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。