Ejemplo n.º 1
0
use frontend\modules\bbii\models\BbiiPost;
use frontend\modules\bbii\models\BbiiMessage;
use yii\bootstrap\ActiveForm;
use yii\helpers\Html;
use yii\widgets\ListView;
/* @var $this ForumController */
/* @var $forum BbiiForum */
/* @var $dataProvider ArrayDataProvider */
/* $this->context->bbii_breadcrumbs = array(
    Yii::t('BbiiModule.bbii', 'Forum') => array('forum/index'),
    $forum->name,
); */
$this->title = Yii::t('forum', $forum->name);
$this->params['breadcrumbs'][] = $this->title;
$approvals = BbiiPost::find()->unapproved()->count();
$reports = BbiiMessage::find()->report()->count();
$item = array(array('label' => Yii::t('BbiiModule.bbii', 'Forum'), 'url' => array('forum/index')), array('label' => Yii::t('BbiiModule.bbii', 'Members'), 'url' => array('member/index')), array('label' => Yii::t('BbiiModule.bbii', 'Approval') . ' (' . $approvals . ')', 'url' => array('moderator/approval'), 'visible' => $this->context->isModerator()), array('label' => Yii::t('BbiiModule.bbii', 'Reports') . ' (' . $reports . ')', 'url' => array('moderator/report'), 'visible' => $this->context->isModerator()));
?>

<?php 
foreach (\Yii::$app->session->getAllFlashes() as $key => $message) {
    echo '<div class="alert alert-' . $key . '">' . $message . '</div>';
}
\Yii::$app->session->removeAllFlashes();
?>

<div id="bbii-wrapper" class="well clearfix">
    <div class="row">
        <div class="col col-md-12">
            <?php 
echo $this->render('_header', array('item' => $item));
Ejemplo n.º 2
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 = BbiiMessage::find();
     $dataProvider = new ActiveDataProvider(['pagination' => false, 'query' => $query, 'sort' => ['defaultOrder' => ['create_time' => SORT_ASC, 'subject' => SORT_ASC]]]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $this->addCondition('content', $this->content, true);
     $this->addCondition('id', $this->id, true);
     $this->addCondition('inbox', $this->inbox);
     $this->addCondition('ip', $this->ip, true);
     $this->addCondition('outbox', $this->outbox);
     $this->addCondition('post_id', $this->post_id, true);
     $this->addCondition('read_indicator', $this->read_indicator);
     $this->addCondition('sendfrom', $this->sendfrom, true);
     $this->addCondition('sendto', $this->sendto, true);
     $this->addCondition('subject', $this->subject, true);
     $this->addCondition('type', $this->type);
     $criteria->limit = 100;
     return $dataProvider;
 }
Ejemplo n.º 3
0
/* @var $this ForumController */
/* @var $item array */
?>

<?php 
echo Html::dropDownList('bbii-jumpto', null, ArrayHelper::map(BbiiForum::getForumOptions(), 'id', 'name'), array('prompt' => 'Jump to a Forum', 'class' => 'form-control', 'onchange' => "window.location.href = '" . \Yii::$app->urlManager->createAbsoluteUrl(array('forum')) . "/forum/forum?id='+\$(this).val()"));
?>

<br />

<div id = "bbii-header">
    <?php 
if (!\Yii::$app->user->isGuest) {
    ?>
        <?php 
    $messages = BbiiMessage::find()->where(['sendto' => \Yii::$app->user->identity->id])->inbox()->unread()->count();
    ?>
        <div class = "btn-group pull-right">
        <?php 
    if ($messages) {
        echo Html::a(Html::img($assets->baseUrl . '/images/newmail.png', array('title' => $messages . ' ' . Yii::t('BbiiModule.bbii', 'new messages'), 'style' => 'vertical-align:bottom;')), array('message/inbox'), array('class' => 'btn btn-default'));
    } else {
        echo Html::a(Html::img($assets->baseUrl . '/images/mail.png', array('title' => Yii::t('BbiiModule.bbii', 'no new messages'), 'style' => 'vertical-align:bottom;')), array('message/inbox'), array('class' => 'btn btn-default'));
    }
    echo Html::a(Html::img($assets->baseUrl . '/images/settings.png', array('title' => Yii::t('BbiiModule.bbii', 'My settings'), 'style' => 'vertical-align:bottom;')), array('member/view', 'id' => \Yii::$app->user->identity->id), array('class' => 'btn btn-default'));
    if ($this->context->isModerator()) {
        echo Html::a(Html::img($assets->baseUrl . '/images/moderator.png', array('title' => Yii::t('BbiiModule.bbii', 'Moderate'), 'style' => 'vertical-align:bottom;')), array('moderator/approval'), array('class' => 'btn btn-default'));
        echo Html::a(Html::img($assets->baseUrl . '/images/config.png', array('title' => Yii::t('BbiiModule.bbii', 'Forum settings'), 'style' => 'vertical-align:bottom;')), array('setting/index'), array('class' => 'btn btn-default'));
    }
    ?>
        </div>
Ejemplo n.º 4
0
 /**
  * [getMessageMDL description]
  * @param  [type] $param [description]
  * @return [type]        [description]
  */
 private function getMessageMDL($param)
 {
     return BbiiMessage::find()->where(['id' => $this->getMessageID($param)])->one();
 }
Ejemplo n.º 5
0
use yii\bootstrap\Nav;
use yii\widgets\Breadcrumbs;
use frontend\modules\bbii\AppAsset;
$assets = AppAsset::register($this);
/* @var $this ModeratorController */
/* @var $item array */
$approvals = BbiiPost::find()->unapproved()->count();
$reports = BbiiMessage::find()->report()->count();
$item = array(array('label' => Yii::t('BbiiModule.bbii', 'Forum'), 'url' => array('forum/index')), array('label' => Yii::t('BbiiModule.bbii', 'Posts'), 'url' => array('moderator/admin'), 'visible' => $this->context->isModerator()), array('label' => Yii::t('BbiiModule.bbii', 'Send mail'), 'url' => array('moderator/sendmail'), 'visible' => $this->context->isModerator()));
?>
<div id = "bbii-header">
    <?php 
if (!\Yii::$app->user->isGuest) {
    ?>
    <?php 
    $messages = BbiiMessage::find()->inbox()->unread()->count('sendto = ' . \Yii::$app->user->identity->id);
    ?>
        <div class = "btn-group pull-right">
        <?php 
    if ($messages) {
        echo Html::a(Html::img($assets->baseUrl . '/images/newmail.png', array('title' => $messages . ' ' . Yii::t('BbiiModule.bbii', 'new messages'), 'style' => 'vertical-align:bottom;')), array('message/inbox'), array('class' => 'btn btn-default'));
    } else {
        echo Html::a(Html::img($assets->baseUrl . '/images/mail.png', array('title' => Yii::t('BbiiModule.bbii', 'no new messages'), 'style' => 'vertical-align:bottom;')), array('message/inbox'), array('class' => 'btn btn-default'));
    }
    echo Html::a(Html::img($assets->baseUrl . '/images/settings.png', array('title' => Yii::t('BbiiModule.bbii', 'My settings'), 'style' => 'vertical-align:bottom;')), array('member/view', 'id' => \Yii::$app->user->identity->id), array('class' => 'btn btn-default'));
    echo Html::a(Html::img($assets->baseUrl . '/images/moderator.png', array('title' => Yii::t('BbiiModule.bbii', 'Moderate'), 'style' => 'vertical-align:bottom;')), array('moderator/approval'), array('class' => 'btn btn-default'));
    echo Html::a(Html::img($assets->baseUrl . '/images/config.png', array('title' => Yii::t('BbiiModule.bbii', 'Forum settings'), 'style' => 'vertical-align:bottom;')), array('setting/index'), array('class' => 'btn btn-default'));
    ?>
        </div>
    <?php 
}
Ejemplo n.º 6
0
 /**
  * Delete a post
  */
 public function actionDelete($id = null)
 {
     if (isset(\Yii::$app->request->get()['id'])) {
         $id = \Yii::$app->request->get()['id'];
     }
     $post = BbiiPost::find()->where(['id' => (int) $id])->one();
     if ($post === null) {
         throw new \yii\web\HttpException(404, Yii::t('BbiiModule.bbii', 'The requested post does not exist.'));
     }
     $forum = BbiiForum::find()->where(['id' => $post->forum_id])->one();
     $topic = BbiiTopic::find()->where(['id' => $post->topic_id])->one();
     // if the posters count is > 0 , reduce it by one
     $post->poster->posts > 0 ? $post->poster->updateCounters(array('posts' => -1)) : null;
     $post->delete();
     if ($topic->approved == 0) {
         $topic->delete();
     } else {
         $forum->updateCounters(array('num_posts' => -1));
         // method since Yii 1.1.8
         if ($topic->num_replies > 0) {
             $topic->updateCounters(array('num_replies' => -1));
             // method since Yii 1.1.8
         } else {
             $topic->delete();
             $forum->updateCounters(array('num_topics' => -1));
             // method since Yii 1.1.8
         }
     }
     $this->resetFirstTopicPost($id);
     $this->resetLastPost($id);
     // remove messages related to the post
     $messageMDL = BbiiMessage::find()->where(['post_id' => $id])->all();
     if ($messageMDL->id) {
         $messageMDL->delete();
     }
     // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
     if (!isset(\Yii::$app->request->get()['ajax'])) {
         \Yii::$app->response->redirect(isset(\Yii::$app->request->post()['returnUrl']) ?: \Yii::$app->urlManager->createAbsoluteUrl(['forum/forum', 'id' => $forum->id]));
     }
     return false;
 }