/** * Function to record activity, ie: a page view. * * @static * */ public static function RecordActivity(){ $request = \PageRequest::GetSystemRequest(); $view = $request->getView(); if(!$view->record) return true; try{ $processingtime = (round(Profiler::GetDefaultProfiler()->getTime(), 3) * 1000); $log = new \UserActivityModel(); $log->setFromArray( [ 'datetime' => microtime(true), 'session_id' => session_id(), 'user_id' => \Core\user()->get('id'), 'ip_addr' => REMOTE_IP, 'useragent' => $request->useragent, 'referrer' => $request->referrer, 'type' => $_SERVER['REQUEST_METHOD'], 'request' => $_SERVER['REQUEST_URI'], 'baseurl' => $request->getBaseURL(), 'status' => $view->error, 'db_reads' => DatamodelProfiler::GetDefaultProfiler()->readCount(), 'db_writes' => (DatamodelProfiler::GetDefaultProfiler()->writeCount() + 1), 'processing_time' => $processingtime, ] ); if(defined('XHPROF_RUN') && defined('XHPROF_SOURCE')){ $log->set('xhprof_run', XHPROF_RUN); $log->set('xhprof_source', XHPROF_SOURCE); } $log->save(); } catch(\Exception $e){ // I don't actually care if it couldn't save. // This could happen if the user refreshes the page twice with in a second. // (and with a system that responds in about 100ms, it's very possible). \Core\ErrorManagement\exception_handler($e); } }
public function actionLogAlbum() { $id = Yii::app()->request->getParam('id'); $album = AlbumModel::model()->findByPk($id); if (!Yii::app()->user->isGuest) { $activity = new UserActivityModel(); $activity->channel = 'wap'; $activity->user_id = Yii::app()->user->getId(); $activity->user_phone = Yii::app()->user->getState('phone'); $activity->loged_time = date('Y-m-d H:i:s'); $activity->activity = 'play_album'; $activity->obj1_id = $album->id; $activity->obj1_name = $album->name; $activity->obj1_url_key = $album->url_key; $activity->obj2_id = $album->artist_id; $activity->obj2_name = $album->artist_name; $ret = $activity->save(); if ($ret) { echo "1"; } else { echo CHtml::errorSummary($activity); } Yii::app()->end(); } echo ''; Yii::app()->end(); }