コード例 #1
3
<?php

$baseurl = Yii::app()->request->baseUrl;
$notfurl = $this->createUrl('/notificacao/render', array('id' => Yii::app()->user->getId()));
Yii::app()->clientScript->registerScript('notif', "\n        var template = '{$baseurl}';\n        var notf = new EJS({url: '{$baseurl}/js/templates/_notificacoes.ejs'});\n        \n        setInterval(function(){\n            \$.get('{$notfurl}',{json: true} ,function(data){ \n              \$('#notificacoes').html(notf.render(data));\n            }, 'json');\n        }, 15000); \n");
if (!isset($notificacoes)) {
    $notificacoes = Notificacao::getNotifications(Yii::app()->user->getId());
}
?>

<li class="dropdown" id="notificacoes">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Notificações
    <?php 
if ($notificacoes['count_new'] > 0) {
    ?>
    <span class="badge badge-warning"><?php 
    echo $notificacoes['count_new'];
    ?>
</span><b class="caret"></b>
    <?php 
}
?>
  </a>
  <ul class="dropdown-menu">
  <?php 
foreach ($notificacoes['items'] as $ntf) {
    ?>

  	<li class="ntf <?php 
    echo $ntf['read'] == true ? '' : 'notif-new';
    ?>
コード例 #2
0
 public function actionIndex()
 {
     $user = Yii::app()->user->getId();
     $model = Pessoa::model()->findByPk($user);
     if ($model === null) {
         throw new CHttpException(404);
     }
     $this->render('index', array('model' => $model, 'notificacoes' => Notificacao::getNotifications($user, 10)));
 }
コード例 #3
0
 /**
  * 
  * Edita um passo
  * @param integer $id - Identifica o passo
  */
 public function actionUpdatePasso($id)
 {
     $model = new AtividadePasso();
     $model = AtividadePasso::model()->findByPk($id);
     if ($model == null) {
         throw new CHttpException('404', 'Passo não encontrado');
     }
     $this->layout = false;
     if (isset($_POST['AtividadePasso'])) {
         $model->attributes = $_POST['AtividadePasso'];
         if ($model->save()) {
             $sender_id = Yii::app()->user->getId();
             $sender = Yii::app()->user->getName();
             if ($sender_id != $model->cod_pessoa) {
                 $notify = new Notificacao();
                 $notify->sender = $sender_id;
                 $notify->receiver = $model->cod_pessoa;
                 $notify->message = "<b>{$sender}</b> atualizou o passo <b>{$model->descricao}</b>";
                 $notify->url = $this->createUrl('view', array('id' => $model->cod_atividade));
                 $notify->save(false);
                 unset($notify);
             }
             $this->renderPartial('/atividade/passo/_view', array('model' => $model));
             Yii::app()->end();
         }
     }
     $this->render('/atividade/passo/_form_modal', array('model' => $model));
 }
コード例 #4
0
 public static function notify($receiver, $message, $url, $sender = null)
 {
     if ($sender == null) {
         $sender = Yii::app()->user->getId();
     }
     $notif = new Notificacao();
     $notif->sender = $sender;
     $notif->receiver = $receiver;
     $notif->message = $message;
     $notif->url = $url;
     return $notif->save();
 }
コード例 #5
0
 private function broadCast($id, $msg)
 {
     $model = $this->loadModel($id);
     $sender_id = Yii::app()->user->getId();
     $sender = Pessoa::model()->findByPk($sender_id)->nome;
     $message = "<b>{$sender}</b> {$msg} <b>{$model->nome}</b>";
     $url = $this->createUrl('view', array('id' => $model->cod_projeto));
     $receivers = array();
     $receivers[$model->cod_professor] = $model->coordenador;
     $receivers[$model->cod_pos_grad] = $model->vice_coordenador;
     $receivers[$model->cod_grad] = $model->fiscal;
     foreach ($model->pessoas as $p) {
         $receivers[$p->cod_pessoa] = $p;
     }
     //Não manda mensagem para o proprio criador da notificacao
     if (isset($receivers[$sender_id])) {
         unset($receivers[$sender_id]);
     }
     foreach ($receivers as $pessoa) {
         $ntf = new Notificacao();
         $ntf->sender = $sender_id;
         $ntf->message = $message;
         $ntf->url = $url;
         $ntf->receiver = $pessoa->cod_pessoa;
         $ntf->save(false);
     }
 }