fix

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