fix

parent a01fd672
...@@ -12,6 +12,8 @@ class MetaTagBehavior extends Behavior ...@@ -12,6 +12,8 @@ class MetaTagBehavior extends Behavior
{ {
public $meta; public $meta;
public $actions = [];
public function events() public function events()
{ {
return [ return [
...@@ -24,11 +26,11 @@ class MetaTagBehavior extends Behavior ...@@ -24,11 +26,11 @@ class MetaTagBehavior extends Behavior
} }
public function eventInit($event) public function eventInit($event)
{
if(in_array(Yii::$app->controller->action->id, $this->actions))
{ {
$langs = Languages::find()->all(); $langs = Languages::find()->all();
if($this->owner->isNewRecord)
{
foreach ($langs as $lang) foreach ($langs as $lang)
{ {
$mt = new MetaTags; $mt = new MetaTags;
...@@ -39,11 +41,11 @@ class MetaTagBehavior extends Behavior ...@@ -39,11 +41,11 @@ class MetaTagBehavior extends Behavior
} }
public function eventFind($event) public function eventFind($event)
{
if(in_array(Yii::$app->controller->action->id, $this->actions))
{ {
$langs = Languages::find()->all(); $langs = Languages::find()->all();
if(!$this->owner->isNewRecord)
{
foreach ($langs as $lang) foreach ($langs as $lang)
{ {
$mt = $this->owner->getMetaTags($lang->id)->one(); $mt = $this->owner->getMetaTags($lang->id)->one();
......
...@@ -68,6 +68,7 @@ class Post extends \common\components\ActiveRecordModel ...@@ -68,6 +68,7 @@ class Post extends \common\components\ActiveRecordModel
return [ return [
'meta' => [ 'meta' => [
'class' => 'common\components\activeRecordBehaviors\MetaTagBehavior', 'class' => 'common\components\activeRecordBehaviors\MetaTagBehavior',
'actions' => ['create', 'update']
], ],
'langs' => [ 'langs' => [
'class' => 'common\modules\languages\components\LanguageHelperBehavior', 'class' => 'common\modules\languages\components\LanguageHelperBehavior',
......
...@@ -40,13 +40,13 @@ use common\modules\content\widgets\MetaTagsWidget; ...@@ -40,13 +40,13 @@ use common\modules\content\widgets\MetaTagsWidget;
<?= $form->field($model, 'unlinkFile')->checkbox(); ?> <?= $form->field($model, 'unlinkFile')->checkbox(); ?>
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<?php $c = 0; foreach ($model->langs as $i => $content) : $c++; ?> <?php $c = 0; foreach ($model->getLangsHelper() as $i => $content) : $c++; ?>
<li class="<?=($c==1?'active':'')?>"><a href="#lang-<?=$content->lang->url?>" data-toggle="tab"><?=$content->lang->name?></a></li> <li class="<?=($c==1?'active':'')?>"><a href="#lang-<?=$content->lang->url?>" data-toggle="tab"><?=$content->lang->name?></a></li>
<?php endforeach; ?> <?php endforeach; ?>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<?php $c = 0; foreach ($model->langs as $content) : $c++; <?php $c = 0; foreach ($model->getLangsHelper() as $content) : $c++;
$lang_id = $content->lang->id; ?> $lang_id = $content->lang->id; ?>
<div class="tab-pane fade <?=($c==1?'active in':'')?>" id="lang-<?=$content->lang->url;?>"> <div class="tab-pane fade <?=($c==1?'active in':'')?>" id="lang-<?=$content->lang->url;?>">
......
...@@ -53,6 +53,7 @@ class CoContent extends \common\components\ActiveRecordModel ...@@ -53,6 +53,7 @@ class CoContent extends \common\components\ActiveRecordModel
return [ return [
'meta' => [ 'meta' => [
'class' => 'common\components\activeRecordBehaviors\MetaTagBehavior', 'class' => 'common\components\activeRecordBehaviors\MetaTagBehavior',
'actions' => ['create', 'update']
], ],
'langs' => [ 'langs' => [
'class' => 'common\modules\languages\components\LanguageHelperBehavior', 'class' => 'common\modules\languages\components\LanguageHelperBehavior',
......
...@@ -30,13 +30,13 @@ use common\modules\content\models\CoBlocks; ...@@ -30,13 +30,13 @@ use common\modules\content\models\CoBlocks;
<?= $form->field($model, 'title')->textInput(['maxlength' => 250])->hint('Заголовок страницы виден пользователю сайта и как правило оформляется в тег &lt;h1&gt;. Если дизайном страницы не предусмотрен вывод заголовка, то он не будет выводиться даже если был введен в данное поле.') ?> <?= $form->field($model, 'title')->textInput(['maxlength' => 250])->hint('Заголовок страницы виден пользователю сайта и как правило оформляется в тег &lt;h1&gt;. Если дизайном страницы не предусмотрен вывод заголовка, то он не будет выводиться даже если был введен в данное поле.') ?>
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<?php $c = 0; foreach ($model->langs as $i => $block) : $c++; ?> <?php $c = 0; foreach ($model->getLangsHelper() as $i => $block) : $c++; ?>
<li class="<?=($c==1?'active':'')?>"><a href="#lang-<?=$block->lang->url?>" data-toggle="tab"><?=$block->lang->name?></a></li> <li class="<?=($c==1?'active':'')?>"><a href="#lang-<?=$block->lang->url?>" data-toggle="tab"><?=$block->lang->name?></a></li>
<?php endforeach; ?> <?php endforeach; ?>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<?php $c = 0; foreach ($model->langs as $block) : $c++; <?php $c = 0; foreach ($model->getLangsHelper() as $block) : $c++;
$lang_id = $block->lang->id; ?> $lang_id = $block->lang->id; ?>
<div class="tab-pane fade <?=($c==1?'active in':'')?>" id="lang-<?=$block->lang->url;?>"> <div class="tab-pane fade <?=($c==1?'active in':'')?>" id="lang-<?=$block->lang->url;?>">
......
...@@ -53,7 +53,7 @@ $blocks = \common\modules\content\models\CoBlocks::find()->all(); ...@@ -53,7 +53,7 @@ $blocks = \common\modules\content\models\CoBlocks::find()->all();
<?= $form->field($model, 'file')->fileInput() ?> <?= $form->field($model, 'file')->fileInput() ?>
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<?php $c = 0; foreach ($model->langs as $i => $content) : $c++; ?> <?php $c = 0; foreach ($model->getLangsHelper() as $i => $content) : $c++; ?>
<li class="<?=($c==1?'active':'')?>"><a href="#lang-<?=$content->lang->url?>" data-toggle="tab"><?=$content->lang->name?></a></li> <li class="<?=($c==1?'active':'')?>"><a href="#lang-<?=$content->lang->url?>" data-toggle="tab"><?=$content->lang->name?></a></li>
<?php endforeach; ?> <?php endforeach; ?>
</ul> </ul>
...@@ -72,7 +72,7 @@ $blocks = \common\modules\content\models\CoBlocks::find()->all(); ...@@ -72,7 +72,7 @@ $blocks = \common\modules\content\models\CoBlocks::find()->all();
?> ?>
<div class="tab-content"> <div class="tab-content">
<?php $c = 0; foreach ($model->langs as $content) : $c++; <?php $c = 0; foreach ($model->getLangsHelper() as $content) : $c++;
$lang_id = $content->lang->id; ?> $lang_id = $content->lang->id; ?>
<div class="tab-pane fade <?=($c==1?'active in':'')?>" id="lang-<?=$content->lang->url;?>"> <div class="tab-pane fade <?=($c==1?'active in':'')?>" id="lang-<?=$content->lang->url;?>">
......
...@@ -9,13 +9,14 @@ use common\modules\languages\models\Languages; ...@@ -9,13 +9,14 @@ use common\modules\languages\models\Languages;
class LanguageHelperBehavior extends Behavior class LanguageHelperBehavior extends Behavior
{ {
public $langs; private $_langs;
public $langClass; public $langClass;
public $field; public $field;
public $langField = 'lang_id'; public $langField = 'lang_id';
public $actions; public $actions = [];
public function events() public function events()
{ {
...@@ -28,6 +29,11 @@ class LanguageHelperBehavior extends Behavior ...@@ -28,6 +29,11 @@ class LanguageHelperBehavior extends Behavior
]; ];
} }
public function getLangsHelper()
{
return $this->_langs;
}
private function getShotNameClass() private function getShotNameClass()
{ {
return (new \ReflectionClass($this->langClass))->getShortName(); return (new \ReflectionClass($this->langClass))->getShortName();
...@@ -39,16 +45,13 @@ class LanguageHelperBehavior extends Behavior ...@@ -39,16 +45,13 @@ class LanguageHelperBehavior extends Behavior
{ {
$langs = Languages::find()->all(); $langs = Languages::find()->all();
if($this->owner->isNewRecord)
{
foreach ($langs as $lang)
{
$field = $this->langField; $field = $this->langField;
foreach ($langs as $lang)
{
$lng = new $this->langClass; $lng = new $this->langClass;
$lng->$field = $lang->id; $lng->$field = $lang->id;
$this->langs[$lang->id] = $lng; $this->_langs[$lang->id] = $lng;
}
} }
} }
} }
...@@ -59,22 +62,19 @@ class LanguageHelperBehavior extends Behavior ...@@ -59,22 +62,19 @@ class LanguageHelperBehavior extends Behavior
{ {
$langs = Languages::find()->all(); $langs = Languages::find()->all();
if(!$this->owner->isNewRecord) $field = $this->langField;
{
foreach ($langs as $lang) foreach ($langs as $lang)
{ {
$lng = $this->owner->getLang($lang->id)->one(); $lng = $this->owner->getLang($lang->id)->one();
if(!$lng) if(!$lng)
{ {
$field = $this->langField;
$lng = new $this->langClass; $lng = new $this->langClass;
$lng->$field = $lang->id; $lng->$field = $lang->id;
} }
$this->langs[$lang->id] = $lng; $this->_langs[$lang->id] = $lng;
}
} }
} }
} }
......
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