Example #1
0
 /**
  * Retrieves a list of models based on the current search/filter conditions.
  * 
  * @param  [type] $params [description]
  * @return ActiveDataProvider The data provider that can return the models based on the search/filter conditions.
  */
 public function search($params = null)
 {
     $query = BbiiSession::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $this->addCondition('id', $this->id, true);
     $this->addCondition('last_visit', $this->last_visit, true);
     return $dataProvider;
 }
Example #2
0
 /**
  * this method is called before any module controller action is performed
  * you may place customized code here
  *
  * @version  2.2.0
  * @param  [type] $controller [description]
  * @param  [type] $action     [description]
  * @return [type]             [description]
  */
 public function beforeAction($controller, $action = null)
 {
     if (parent::beforeAction($controller, $action)) {
         // register last visit by member
         if (isset(\Yii::$app->user->identity->id)) {
             //$model = BbiiMember::find(\Yii::$app->user->identity->id );
             $model = BbiiMember::find()->where(['id' => \Yii::$app->user->identity->id])->one();
             if ($model !== null) {
                 $model->setAttribute('last_visit', date('Y-m-d H:i:s'));
                 $model->save();
             } else {
                 $userClass = new User();
                 $user = $userClass::find()->where([$this->userIdColumn => \Yii::$app->user->identity->id])->one();
                 $username = $user->getAttribute($this->userNameColumn);
                 $model = new BbiiMember();
                 $model->setAttribute('first_visit', date('Y-m-d H:i:s'));
                 $model->setAttribute('id', \Yii::$app->user->identity->id);
                 $model->setAttribute('last_visit', date('Y-m-d H:i:s'));
                 $model->setAttribute('member_name', $username);
                 $model->save();
             }
         }
         // register visits
         if (isset($_SERVER['HTTP_USER_AGENT'])) {
             // web spider visit
             $spider = BbiiSpider::find()->where(['user_agent' => $_SERVER['HTTP_USER_AGENT']])->one();
             if ($spider !== null) {
                 $spider->setScenario('visit');
                 $spider->hits++;
                 $spider->last_visit = null;
                 if (!$spider->validate() || !$spider->save()) {
                     // todo Some kind of logging when the spider model does not validate or save - DJE : 2015-07-20
                 }
                 // guest visit
             } else {
                 $model = BbiiSession::find()->where(['id' => \Yii::$app->session->getId()])->one();
                 $model = $model ?: new BbiiSession();
                 $model->id = \Yii::$app->session->getId();
                 if (!$model->validate() || !$model->save()) {
                     // todo Some kind of logging when the user model does not validate or save - DJE : 2015-07-20
                 }
             }
         }
         // delete older session entries
         BbiiSession::deleteAll('last_visit < \'' . date('Y-m-d H:i:s', time() - 24 * 3600) . '\'');
         return true;
     }
     return false;
 }
Example #3
0
                    <?php 
echo Yii::t('BbiiModule.bbii', 'Total members');
?>
                    <div class="badge pull-right"><?php 
echo BbiiMember::find()->count();
?>
</div>
                </li>
                <li class="list-group-item">
                    <?php 
echo Yii::t('BbiiModule.bbii', 'Newest member');
?>
                    <div class="pull-right"><?php 
echo Html::a($member->member_name, array('member/view', 'id' => $member->id));
?>
</div>
                </li>
                <li class="list-group-item">
                    <?php 
echo Yii::t('BbiiModule.bbii', 'Visitors today');
?>
                    <div class="badge pull-right"><?php 
echo BbiiSession::find()->count();
?>
</div>
                </li>
            </ul>
        </div>
    </div>
</div>