Commit 55b366cd authored by andre's avatar andre

Merge branch 'blog-hashtag-filtr'

parents bbabb84a 0b41790e
...@@ -8,12 +8,14 @@ ...@@ -8,12 +8,14 @@
namespace common\modules\cases\controllers; namespace common\modules\cases\controllers;
use common\modules\cases\models\CasesPreviewType;
use Yii; use Yii;
use yii\filters\VerbFilter; use yii\filters\VerbFilter;
use yii\web\NotFoundHttpException; use yii\web\NotFoundHttpException;
use common\components\AdminController; use common\components\AdminController;
use common\modules\content\models\CoContent; use common\modules\content\models\CoContent;
use common\modules\content\models\SearchCoContent; use common\modules\content\models\SearchCoContent;
use common\modules\cases\models\CaseContent;
class CasesAdminController extends AdminController { class CasesAdminController extends AdminController {
public static function actionsTitles(){ public static function actionsTitles(){
...@@ -68,7 +70,11 @@ class CasesAdminController extends AdminController { ...@@ -68,7 +70,11 @@ class CasesAdminController extends AdminController {
*/ */
public function actionCreatecase() public function actionCreatecase()
{ {
$model = new CoContent(); // $model = new CoContent();
$model = new CaseContent();
$model->category_id = \common\models\Settings::getValue('case-category-id');
$model->previewType = new CasesPreviewType();
Yii::$app->controller->page_title = 'Добавить кейс'; Yii::$app->controller->page_title = 'Добавить кейс';
...@@ -85,7 +91,8 @@ class CasesAdminController extends AdminController { ...@@ -85,7 +91,8 @@ class CasesAdminController extends AdminController {
try try
{ {
$model->attributes = Yii::$app->request->post('CoContent'); // $model->attributes = Yii::$app->request->post('CoContent');
$model->attributes = Yii::$app->request->post('CaseContent');
if($model->save()) if($model->save())
{ {
...@@ -102,7 +109,7 @@ class CasesAdminController extends AdminController { ...@@ -102,7 +109,7 @@ class CasesAdminController extends AdminController {
return $this->render('create', [ return $this->render('create', [
'model' => $model, 'model' => $model,
'id' => 4 'id' => \common\models\Settings::getValue('case-category-id'),
]); ]);
} }
...@@ -173,9 +180,11 @@ class CasesAdminController extends AdminController { ...@@ -173,9 +180,11 @@ class CasesAdminController extends AdminController {
try try
{ {
$category_id = $model->category_id; $category_id = $model->category_id;
$model->attributes = Yii::$app->request->post('CoContent'); // $model->attributes = Yii::$app->request->post('CoContent');
$model->attributes = Yii::$app->request->post('CaseContent');
$model->category_id = $category_id; $model->category_id = $category_id;
if($model->save()) if($model->save())
{ {
$transaction->commit(); $transaction->commit();
...@@ -219,9 +228,11 @@ class CasesAdminController extends AdminController { ...@@ -219,9 +228,11 @@ class CasesAdminController extends AdminController {
try try
{ {
$model = new CoContent; // $model = new CoContent;
$model = new CaseContent;
$model->attributes = Yii::$app->request->post('CoContent'); // $model->attributes = Yii::$app->request->post('CoContent');
$model->attributes = Yii::$app->request->post('CaseContent');
if($model->save()) if($model->save())
{ {
...@@ -259,9 +270,18 @@ class CasesAdminController extends AdminController { ...@@ -259,9 +270,18 @@ class CasesAdminController extends AdminController {
* @return CoContent the loaded model * @return CoContent the loaded model
* @throws NotFoundHttpException if the model cannot be found * @throws NotFoundHttpException if the model cannot be found
*/ */
// protected function findModel($id)
// {
// if (($model = CoContent::findOne($id)) !== null) {
// return $model;
// } else {
// throw new NotFoundHttpException('The requested page does not exist.');
// }
// }
protected function findModel($id) protected function findModel($id)
{ {
if (($model = CoContent::findOne($id)) !== null) { if (($model = CaseContent::findOne($id)) !== null) {
return $model; return $model;
} else { } else {
throw new NotFoundHttpException('The requested page does not exist.'); throw new NotFoundHttpException('The requested page does not exist.');
......
<?php
namespace common\modules\cases\models;
use common\modules\messageTemplate\models\MessageTemplate;
use Yii;
use yii\behaviors\TimestampBehavior;
use frontend\modules\sitemap\behaviors\SitemapBehavior;
use \yii\helpers\Url;
use common\modules\content\models\CoBlocks;
use common\modules\content\models\CoContentLang;
use common\modules\languages\models\Languages;
use common\models\MetaTags;
use common\modules\content\models\CoContent;
/**
* This is the model class for table "cases_bids".
*
* @property integer $id
* @property string $content_id
* @property string $type
*/
class CaseContent extends CoContent
{
public function getPreviewType()
{
return $this->hasOne(CasesPreviewType::className(), ['content_id' => 'id'])->one();
}
public function setPreviewType(CasesPreviewType $pwt)
{
return $this->previewType = $pwt;
}
public function afterSave($insert, $changedAttributes)
{
parent::afterSave($insert, $changedAttributes);
$previewType = $this->previewType ? $this->previewType : new CasesPreviewType();
$previewType->attributes = Yii::$app->request->post('CasesPreviewType');
$previewType->content_id = $this->id;
$previewType->save();
}
// public function __construct(array $config)
// {
// parent::__construct($config);
//
// print_r($this);die;
//
// if($this->isNewRecord)
// {
// $this->category_id = \common\models\Settings::getValue('case-category-id');
// $this->previewType = new CasesPreviewType();
// }
// }
}
<?php
namespace common\modules\cases\models;
use common\components\ActiveRecordModel;
use common\modules\triggers\models\CasesSchedule;
use Yii;
use common\modules\users\models\User;
/**
* This is the model class for table "cases_bids".
*
* @property integer $id
* @property string $content_id
* @property string $type
*/
class CasesPreviewType extends \yii\db\ActiveRecord
{
const PREVIEW_SQUARE = 1;
const PREVIEW_RECTANGLE = 2;
public static $preview_type_names = [
self::PREVIEW_SQUARE => 'square',
self::PREVIEW_RECTANGLE => 'rectangle',
];
public static $preview_type_names_ru = [
self::PREVIEW_SQUARE => 'одинарный',
self::PREVIEW_RECTANGLE => 'двойной',
];
/**
* @inheritdoc
*/
public static function tableName()
{
return 'cases_preview_type';
}
/**
* @inheritdoc
*/
public function name() {
return 'Типы превью';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['content_id', 'type'], 'required'],
[['content_id', 'type'], 'integer'],
[['tag'], 'string', 'max' => 255],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'content_id' => 'ID контента',
'type' => 'Тип превью',
'tag' => 'Таг превью',
];
}
}
...@@ -6,6 +6,7 @@ use yii\helpers\ArrayHelper; ...@@ -6,6 +6,7 @@ use yii\helpers\ArrayHelper;
use common\modules\content\models\CoContent; use common\modules\content\models\CoContent;
use common\modules\content\widgets\MetaTagsWidget; use common\modules\content\widgets\MetaTagsWidget;
use common\modules\cases\models\CasesPreviewType;
/* @var $this yii\web\View */ /* @var $this yii\web\View */
/* @var $model common\modules\content\models\CoContent */ /* @var $model common\modules\content\models\CoContent */
...@@ -13,6 +14,7 @@ use common\modules\content\widgets\MetaTagsWidget; ...@@ -13,6 +14,7 @@ use common\modules\content\widgets\MetaTagsWidget;
$blocks = \common\modules\content\models\CoBlocks::find()->all(); $blocks = \common\modules\content\models\CoBlocks::find()->all();
//echo $model->previewType->type;
?> ?>
<div class="co-content-form"> <div class="co-content-form">
...@@ -77,6 +79,12 @@ $blocks = \common\modules\content\models\CoBlocks::find()->all(); ...@@ -77,6 +79,12 @@ $blocks = \common\modules\content\models\CoBlocks::find()->all();
'class' => 'form-control', 'class' => 'form-control',
]) ?> ]) ?>
<?= $form->field($model->previewType, 'type')->dropDownList(CasesPreviewType::$preview_type_names_ru, [
'class' => 'form-control',
]) ?>
<?= $form->field($model->previewType, 'tag')->textInput(['maxlength' => 255]) ?>
<?php if($model->preview) <?php if($model->preview)
{ {
echo Html::img(\Yii::$app->params['frontUrl'] . $model->preview); echo Html::img(\Yii::$app->params['frontUrl'] . $model->preview);
......
<?php
use yii\db\Migration;
use yii\db\Schema;
/**
* Handles adding colums to table `cases`.
*/
class m160708_132302_create_cases_preview_type extends Migration
{
public function safeUp()
{
$this->createTable('cases_preview_type', [
'id' => Schema::TYPE_PK,
'content_id' => Schema::TYPE_INTEGER . ' NOT NULL',
'type' => Schema::TYPE_INTEGER . ' NOT NULL',
'tag' => Schema::TYPE_STRING . ' NOT NULL',
], 'ENGINE=InnoDB DEFAULT CHARSET=utf8');
$this->createIndex('content_id', 'cases_preview_type', 'content_id');
$this->addForeignKey('cases_preview_type_ibfk_1', 'cases_preview_type', 'content_id', 'co_content', 'id', 'CASCADE', 'CASCADE');
}
public function safeDown()
{
$this->dropTable('cases_preview_type');
}
}
...@@ -2,10 +2,13 @@ ...@@ -2,10 +2,13 @@
use \common\modules\content\models\CoContent; use \common\modules\content\models\CoContent;
use yii\helpers\Html; use yii\helpers\Html;
use yii\helpers\Url; use yii\helpers\Url;
use common\modules\cases\models\CaseContent;
use common\modules\cases\models\CasesPreviewType;
$models = CoContent::find() //$models = CoContent::find()
$models = CaseContent::find()
->where([ ->where([
'category_id' => 4, 'category_id' => \common\models\Settings::getValue('case-category-id'),
'active' => true 'active' => true
]) ])
->orderBy('id DESC') ->orderBy('id DESC')
...@@ -15,16 +18,34 @@ $models = CoContent::find() ...@@ -15,16 +18,34 @@ $models = CoContent::find()
<div class="row"> <div class="row">
<?php foreach ($models as $model) : ?> <?php foreach ($models as $model) : ?>
<? if(!$model->previewType || $model->previewType->type == CasesPreviewType::PREVIEW_SQUARE): ?>
<div class="col-md-6 col-xs-6 col-sm-12"> <div class="col-md-6 col-xs-6 col-sm-12">
<a href="<?=Url::to(['/'.$model->url])?>" class="keys_block_small"> <div class="keys_block_small">
<img src="<?=$model->preview?>" height="338" width="455"> <img src="<?= $model->preview ?>" height="338" width="455" alt="">
<div class="keys_small_title" <?if($model->custom==CoContent::CUSTOM_WHITE){?>style="color:#fff;"<?}?>><?=$model->lang->title?></div> <div class="keys_small_title"<?if($model->custom==CoContent::CUSTOM_WHITE){?>style="color:#fff;"<?}?>><?=$model->lang->title?></div>
<div class="keys_small_foot"> <div class="keys_small_foot">
<div class="keys_small_btn_more"><span><?=Yii::t('case', 'Read more')?></span></div> <a href="http://mikulin.cz/project/artproject/keys_kns.html" class="keys_small_btn_more"><span><?=Yii::t('case', 'Read more')?></span></a>
<!-- <a href="#" class="keys_small_tags"># Big data</a> --> <a href="#" class="keys_small_tags"><?= $model->previewType->tag ? "#{$model->previewType->tag}" : "" ?></a>
</div> </div>
</a> </div>
</div>
<? elseif($model->previewType->type == CasesPreviewType::PREVIEW_RECTANGLE): ?>
<div class="col-md-12 col-xs-12 col-sm-12">
<div class="keys_block_big">
<a href="<?=Url::to(['/'.$model->url])?>">
<picture>
<source srcset="images/keys_big338.jpg" media="(max-width: 768px)">
<img src="images/keys_big1.jpg" height="338" width="940" alt="">
</picture>
<div class="keys_small_title"<?if($model->custom==CoContent::CUSTOM_WHITE){?>style="color:#fff;"<?}?>><?=$model->lang->title?></div>
<div class="keys_small_foot">
<a href="<?=Url::to(['/'.$model->url])?>" class="keys_small_btn_more"><span><?=Yii::t('case', 'Read more')?></span></a>
<a href="#" class="keys_small_tags"><?= $model->previewType->tag ? "#{$model->previewType->tag}" : "" ?></a>
</div>
</a>
</div>
</div> </div>
<? endif ?>
<?php endforeach; ?> <?php endforeach; ?>
</div> </div>
<!-- <div class="row"> <!-- <div class="row">
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment