public function init()
 {
     $this->name = \Yii::t('skeeks/reviews2', "Management reviews");
     $this->modelShowAttribute = "id";
     $this->modelClassName = Reviews2Message::className();
     parent::init();
 }
Esempio n. 2
0
    <?php 
echo $form->field($model, 'user_email')->textInput();
?>
    <?php 
echo $form->field($model, 'user_phone')->textInput();
?>
    <?php 
echo $form->field($model, 'user_city')->textInput();
echo $form->fieldSetEnd();
?>

<?php 
echo $form->fieldSet(\Yii::t('skeeks/reviews2', 'Processing'));
?>
    <?php 
echo $form->fieldSelect($model, 'status', \skeeks\cms\reviews2\models\Reviews2Message::getStatuses());
?>

    <?php 
echo $form->fieldSelect($model, 'processed_by', \yii\helpers\ArrayHelper::map(\skeeks\cms\models\User::find()->active()->all(), 'id', 'displayName'));
?>

    <?php 
echo $form->field($model, 'published_at')->widget(\kartik\datecontrol\DateControl::classname(), ['type' => \kartik\datecontrol\DateControl::FORMAT_DATETIME]);
?>


<?php 
echo $form->fieldSetEnd();
?>
<?php

/**
 * @author Semenov Alexander <*****@*****.**>
 * @link http://skeeks.com/
 * @copyright 2010 SkeekS (СкикС)
 * @date 14.07.2015
 */
/* @var $this yii\web\View */
/* @var $model \skeeks\cms\models\CmsContentElement */
$search = new \skeeks\cms\models\Search(\skeeks\cms\reviews2\models\Reviews2Message::className());
$dataProvider = $search->search(\Yii::$app->request->queryParams);
$dataProvider->query->andWhere(['element_id' => $model->id]);
?>

<?php 
echo $this->render('@skeeks/cms/reviews2/views/admin-message/index', ['dataProvider' => $dataProvider, 'searchModel' => $search->getLoadedModel(), 'controller' => \Yii::$app->createController('/reviews2/admin-message')[0], 'isOpenNewWindow' => true]);
 public function initDataProvider()
 {
     $this->search = new Search(Reviews2Message::className());
     $this->dataProvider = $this->search->getDataProvider();
     if ($this->enabledPaging == Cms::BOOL_Y) {
         $this->dataProvider->getPagination()->defaultPageSize = $this->pageSize;
         $this->dataProvider->getPagination()->pageParam = $this->pageParamName;
     } else {
         $this->dataProvider->pagination = false;
     }
     if ($this->orderBy) {
         $this->dataProvider->getSort()->defaultOrder = [$this->orderBy => (int) $this->order];
     }
     return $this;
 }
Esempio n. 5
0
<?php

/**
 * @author Semenov Alexander <*****@*****.**>
 * @link http://skeeks.com/
 * @copyright 2010 SkeekS (СкикС)
 * @date 21.09.2016
 */
/* @var $this yii\web\View */
/* @var $searchModel common\models\searchs\Game */
/* @var $dataProvider yii\data\ActiveDataProvider */
$filter = new \yii\base\DynamicModel(['id']);
$filter->addRule('id', 'integer');
$filter->load(\Yii::$app->request->get());
if ($filter->id) {
    $dataProvider->query->andWhere(['id' => $filter->id]);
}
?>
<? $form = \skeeks\cms\modules\admin\widgets\filters\AdminFiltersForm::begin([
        'action' => '/' . \Yii::$app->request->pathInfo,
    ]); ?>

    <?php 
echo $form->field($searchModel, 'status')->listBox(\yii\helpers\ArrayHelper::merge(['' => null], \skeeks\cms\reviews2\models\Reviews2Message::getStatuses()), ['size' => 1])->setVisible();
?>

<? $form::end(); ?>
Esempio n. 6
0
    <?php 
echo $this->render('_search', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]);
?>

<?php 
echo \skeeks\cms\modules\admin\widgets\GridViewStandart::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'adminController' => $controller, 'pjax' => $pjax, 'isOpenNewWindow' => @$isOpenNewWindow ? true : false, 'columns' => [['attribute' => 'status', 'class' => \yii\grid\DataColumn::className(), 'filter' => \skeeks\cms\reviews2\models\Reviews2Message::getStatuses(), 'format' => 'raw', 'value' => function (\skeeks\cms\reviews2\models\Reviews2Message $model) {
    if ($model->status == \skeeks\cms\reviews2\models\Reviews2Message::STATUS_NEW) {
        $class = "default";
    } else {
        if ($model->status == \skeeks\cms\reviews2\models\Reviews2Message::STATUS_PROCESSED) {
            $class = "warning";
        } else {
            if ($model->status == \skeeks\cms\reviews2\models\Reviews2Message::STATUS_CANCELED) {
                $class = "danger";
            } else {
                if ($model->status == \skeeks\cms\reviews2\models\Reviews2Message::STATUS_ALLOWED) {
                    $class = "success";
                }
            }
        }
    }
    return '<span class="label label-' . $class . '">' . \yii\helpers\ArrayHelper::getValue(\skeeks\cms\reviews2\models\Reviews2Message::getStatuses(), $model->status) . '</span>';
}], ['class' => \skeeks\cms\grid\CreatedAtColumn::className(), 'label' => \Yii::t('skeeks/reviews2', 'Added')], ['class' => \skeeks\cms\grid\CreatedByColumn::className()], ['class' => \skeeks\cms\grid\SiteColumn::className()], ['attribute' => 'element_id', 'relation' => 'element', 'class' => \skeeks\cms\grid\CmsContentElementColumn::className()], ['filter' => \skeeks\cms\models\CmsContent::getDataForSelect(), 'attribute' => 'content_id', 'class' => \yii\grid\DataColumn::className(), 'value' => function (\skeeks\cms\reviews2\models\Reviews2Message $model) {
    return $model->element->cmsContent->name;
}], ['filter' => \Yii::$app->reviews2->ratings, 'attribute' => 'rating', 'class' => \yii\grid\DataColumn::className()]]]);
?>

<? $pjax::end(); ?>

 public function actionSubmit()
 {
     $rr = new RequestResponse();
     $model = new Reviews2Message();
     if ($rr->isRequestOnValidateAjaxForm()) {
         return $rr->ajaxValidateForm($model);
     }
     if ($rr->isRequestAjaxPost()) {
         $model->scenario = Reviews2Message::SCENARIO_SITE_INSERT;
         $model->page_url = \Yii::$app->request->referrer;
         if ($model->load(\Yii::$app->request->post())) {
             //Проверка на максимальное количество отзывов к одному посту от одного пользователя.
             $messagesFind = Reviews2Message::find();
             if (\Yii::$app->user->isGuest) {
                 $messagesFind->andWhere(['ip' => \Yii::$app->request->userIP])->andWhere(['or', ['created_by' => null], ['created_by' => '']]);
             } else {
                 $messagesFind->andWhere(['created_by' => \Yii::$app->user->identity->id]);
             }
             $messagesFind2 = clone $messagesFind;
             $messagesFind->andWhere(['status' => Reviews2Message::STATUS_ALLOWED])->andWhere(['element_id' => $model->element_id]);
             if (\Yii::$app->reviews2->maxCountMessagesForUser != 0) {
                 if ($messagesFind->count() >= \Yii::$app->reviews2->maxCountMessagesForUser) {
                     $rr->success = false;
                     $rr->message = \Yii::t('skeeks/reviews2', "You have already added a review for this post earlier.");
                     return $rr;
                 }
             }
             //Проверка частоты добавления отзывов
             if (\Yii::$app->reviews2->securityEnabledRateLimit == Cms::BOOL_Y) {
                 $messagesFind2 = Reviews2Message::find();
                 if (\Yii::$app->user->isGuest) {
                     $messagesFind2->andWhere(['ip' => \Yii::$app->request->userIP]);
                 } else {
                     $messagesFind2->andWhere(['created_by' => \Yii::$app->user->identity->id]);
                 }
                 $lastTime = \Yii::$app->formatter->asTimestamp(time()) - (int) \Yii::$app->reviews2->securityRateLimitTime;
                 $messagesFind2->andWhere(['>=', 'created_at', $lastTime]);
                 //print_r($messagesFind2->createCommand()->rawSql);die;
                 if ($messagesFind2->count() >= \Yii::$app->reviews2->securityRateLimitRequests) {
                     $rr->success = false;
                     $rr->message = \Yii::t('skeeks/reviews2', "You too often add reviews.");
                     return $rr;
                 }
             }
             if ($model->save()) {
                 $rr->success = true;
                 if (\Yii::$app->reviews2->enabledBeforeApproval == Cms::BOOL_Y) {
                     $rr->message = \Yii::$app->reviews2->messageSuccessBeforeApproval;
                 } else {
                     $rr->message = \Yii::$app->reviews2->messageSuccess;
                     //Отключена предмодерация, сразу публикуем
                     $model->status = Reviews2Message::STATUS_ALLOWED;
                     $model->save();
                 }
                 $model->notifyCreate();
             } else {
                 $rr->success = false;
                 $rr->message = \Yii::t('skeeks/reviews2', "Review not added") . ": " . implode(",", $model->getFirstErrors());
             }
         } else {
             $rr->success = false;
             $rr->message = \Yii::t('skeeks/reviews2', "Review not added") . ": " . implode(",", $model->getFirstErrors());
         }
     }
     return $rr;
 }