Пример #1
0
 /**
  * Relation to \app\models\Object
  * @return \yii\db\ActiveQuery
  */
 public function getObject()
 {
     return $this->hasOne(Object::className(), ['id' => 'object_id']);
 }
Пример #2
0
    <div class="btn-group pull-right">
    <?php 
echo \yii\helpers\Html::a(Yii::t('app', 'Add'), Url::toRoute(['create', 'parent_id' => 0]), ['class' => 'btn btn-success']);
?>
    <?php 
echo \app\backend\widgets\RemoveAllButton::widget(['url' => Url::toRoute(['remove-all', 'returnUrl' => Yii::$app->request->url]), 'gridSelector' => '.grid-view', 'htmlOptions' => ['class' => 'btn btn-danger']]);
?>
    </div>
<div class="clearfix"></div>
<?php 
$this->endBlock();
?>

<div class="reviews-index">
    <?php 
echo DynaGrid::widget(['options' => ['id' => 'reviews-grid'], 'theme' => 'panel-default', 'gridOptions' => ['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'hover' => true, 'panel' => ['heading' => Html::tag('h3', $this->title, ['class' => 'panel-title']), 'after' => $this->blocks['add-button']]], 'columns' => [['class' => \kartik\grid\CheckboxColumn::className(), 'options' => ['width' => '10px']], 'id', 'author_email', ['attribute' => 'submission.form.name', 'label' => Yii::t('app', 'Form name')], ['attribute' => 'object_id', 'filter' => \app\components\Helper::getModelMap(\app\models\Object::className(), 'id', 'name'), 'label' => Yii::t('app', 'Object'), 'value' => function ($data) {
    $obj = \app\models\Object::findById($data->object_id);
    return is_null($obj) ? Yii::t('yii', '(not set)') : $obj->name;
}], ['class' => yii\grid\DataColumn::className(), 'attribute' => 'object_model_id', 'value' => function ($data) {
    /** @var $object \app\models\Object*/
    if (null !== ($object = \app\models\Object::findById($data->object_id))) {
        $class = $object->object_class;
        $resource = $class::findById($data->object_model_id);
        if (null !== $resource) {
            return $resource->name;
        }
        return null;
    }
}], ['class' => yii\grid\DataColumn::className(), 'attribute' => 'processed_by_user_id', 'value' => function ($data) {
    if (isset($data->submission)) {
        if (null !== $data->submission->processed_by_user_id) {
Пример #3
0
 public function loadDynamicContent($object_id, $route, $selections)
 {
     if (Yii::$app->response->is_prefiltered_page === true) {
         // DynamicContent should not work on prefiltered pages - all needed content is set in corresponding model
         return;
     }
     /**
      * @var $this \yii\web\Controller
      */
     $dynamicCacheKey = 'dynamicCacheKey' . json_encode([$object_id, $route, $selections]);
     if (!($dynamicResult = Yii::$app->cache->get($dynamicCacheKey))) {
         $dynamicResult = [];
         $models = DynamicContent::find()->where(['object_id' => $object_id, 'route' => $route])->all();
         if (isset($selections['properties']) === false) {
             $selections['properties'] = [];
         }
         /**
          * @var $model DynamicContent
          */
         foreach ($models as $model) {
             if (is_integer($model->apply_if_last_category_id) === true && $model->apply_if_last_category_id !== 0) {
                 if (!isset($selections['last_category_id'])) {
                     continue;
                 } elseif ($selections['last_category_id'] != $model->apply_if_last_category_id) {
                     continue;
                 }
             }
             $model_selections = Json::decode($model->apply_if_params);
             $matches = false;
             if (is_array($model_selections) === true) {
                 $matches = true;
                 foreach ($model_selections as $property_id => $value) {
                     if (isset($selections['properties']) === true) {
                         if (isset($selections['properties'][$property_id]) === true) {
                             if ($selections['properties'][$property_id][0] == $value) {
                                 // all ok
                             } else {
                                 $matches = false;
                             }
                         } else {
                             $matches = false;
                             break;
                         }
                     } else {
                         $matches = false;
                         break;
                     }
                 }
                 if ($matches === false) {
                     continue;
                 }
                 if (count($selections['properties']) != count($model_selections)) {
                     $matches = false;
                 }
                 if ($matches === true) {
                     $dynamicResult['model'] = $model;
                     if ($model->title) {
                         $dynamicResult['title'] = $model->title;
                     }
                     if ($model->meta_description) {
                         $dynamicResult['meta_description'] = $model->meta_description;
                     }
                     if ($model->h1) {
                         $dynamicResult['blocks']['h1'] = $model->h1;
                     }
                     if ($model->announce) {
                         $dynamicResult['blocks']['announce'] = $model->announce;
                     }
                     if ($model->content) {
                         $dynamicResult['blocks'][$model->content_block_name] = $model->content;
                     }
                 }
             } else {
                 $matches = true;
             }
         }
         Yii::$app->cache->set($dynamicCacheKey, $dynamicResult, 86400, new TagDependency(['tags' => [ActiveRecordHelper::getCommonTag(DynamicContent::className()), ActiveRecordHelper::getObjectTag(Object::className(), $object_id), $route]]));
     }
     if (is_array($dynamicResult) === true && $dynamicResult !== []) {
         Yii::$app->response->dynamic_content_trait = true;
         Yii::$app->response->matched_dynamic_content_trait_model = $dynamicResult['model'];
         if (isset($dynamicResult['title']) && $dynamicResult['title']) {
             Yii::$app->response->title = $dynamicResult['title'];
         }
         if (isset($dynamicResult['meta_description']) && $dynamicResult['meta_description']) {
             Yii::$app->response->meta_description = $dynamicResult['meta_description'];
         }
         if (isset($dynamicResult['blocks']) && is_array($dynamicResult['blocks'])) {
             foreach ($dynamicResult['blocks'] as $nameBlock => $contentBlock) {
                 Yii::$app->response->blocks[$nameBlock] = $contentBlock;
             }
         }
     }
 }
Пример #4
0
    </div>
    <?php 
$this->endBlock();
?>

<?php 
$form = ActiveForm::begin(['id' => 'product-form', 'type' => ActiveForm::TYPE_HORIZONTAL, 'options' => ['enctype' => 'multipart/form-data']]);
?>
<div class="review-show">
    <div class="row">
        <article class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
            <?php 
BackendWidget::begin(['title' => Yii::t('app', 'Reviews'), 'icon' => 'pencil', 'footer' => $this->blocks['buttons']]);
?>
            <?php 
echo $form->field($review, 'object_id')->dropDownList(array_merge([0 => ''], Helper::getModelMap(Object::className(), 'id', 'name', true, true)));
?>
            <?php 
/**
 * @TODO: Create link for view/edit object
 */
$_jsDataFunc = <<<'JSCODE'
function (term, page) {
    return {
        search: {term:term.term, object:$('select#review-object_id').val()}
    };
}
JSCODE;
$_jsTemplateResultFunc = <<<'JSCODE'
function (data) {
    if (data.loading) return data.text;