public function testConfiguration() { $post = new Post(); $post->detachBehavior('ml'); try { $post->attachBehavior('ml', ['class' => MultilingualBehavior::className(), 'languages' => []]); $this->fail("Expected exception not thrown"); } catch (InvalidConfigException $e) { $this->assertEquals(101, $e->getCode()); } try { $post->detachBehavior('ml'); $post->attachBehavior('ml', ['class' => MultilingualBehavior::className(), 'languages' => 'Some value']); $this->fail("Expected exception not thrown"); } catch (InvalidConfigException $e) { $this->assertEquals(101, $e->getCode()); } try { $post->detachBehavior('ml'); $post->attachBehavior('ml', ['class' => MultilingualBehavior::className(), 'languages' => ['ru' => 'Russian', 'en-US' => 'English'], 'langForeignKey' => 'post_id', 'tableName' => "{{%postLang}}"]); $this->fail("Expected exception not thrown"); } catch (InvalidConfigException $e) { $this->assertEquals(103, $e->getCode()); } try { $post->detachBehavior('ml'); $post->attachBehavior('ml', ['class' => MultilingualBehavior::className(), 'languages' => ['ru' => 'Russian', 'en-US' => 'English'], 'attributes' => ['title', 'body']]); $this->fail("Expected exception not thrown"); } catch (InvalidConfigException $e) { $this->assertEquals(105, $e->getCode()); } $post->detachBehavior('ml'); $post->attachBehavior('ml', ['class' => MultilingualBehavior::className(), 'languages' => ['ru' => 'Russian', 'en-US' => 'English'], 'langForeignKey' => 'post_id', 'attributes' => ['title', 'body']]); $this->assertNotNull($post->defaultLanguage); }
public function behaviors() { $languagesModel = Lang::find()->all(); $languageDefault = Lang::findOne(['default' => 1]); $languages = []; foreach ($languagesModel as $model) { $languages[$model->url] = $model->name; } return ['ml' => ['class' => MultilingualBehavior::className(), 'languages' => $languages, 'defaultLanguage' => $languageDefault->url, 'langForeignKey' => 'page_id', 'tableName' => "{{%cms_pages_lang}}", 'attributes' => ['title', 'content', 'content_heading', 'meta_keywords', 'meta_description']], ['class' => '\\yiidreamteam\\upload\\ImageUploadBehavior', 'attribute' => 'main_img', 'thumbs' => ['thumb' => ['width' => 300, 'height' => 200]], 'filePath' => '@webroot/media/cms/pages/[[pk]]/[[pk]].[[extension]]', 'fileUrl' => '@web/media/cms/pages/[[pk]]/[[pk]].[[extension]]', 'thumbPath' => '@webroot/media/cms/pages/[[pk]]/[[profile]]_[[pk]].[[extension]]', 'thumbUrl' => '@web/media/cms/pages/[[pk]]/[[profile]]_[[pk]].[[extension]]'], 'timestamp' => ['class' => 'yii\\behaviors\\TimestampBehavior', 'value' => new Expression('NOW()')]]; }
public function behaviors() { $languagesModel = Lang::find()->all(); $languageDefault = Lang::findOne(['default' => 1]); $languages = []; foreach ($languagesModel as $model) { $languages[$model->url] = $model->name; } return ['ml' => ['class' => MultilingualBehavior::className(), 'languages' => $languages, 'defaultLanguage' => $languageDefault->url, 'langForeignKey' => 'option_id', 'tableName' => "{{%members_attributes_to_options_lang}}", 'attributes' => ['title']]]; }
public function behaviors() { $languagesModel = Lang::find()->all(); $languageDefault = Lang::findOne(['default' => 1]); $languages = []; foreach ($languagesModel as $model) { $languages[$model->url] = $model->name; } return ['ml' => ['class' => MultilingualBehavior::className(), 'languages' => $languages, 'defaultLanguage' => $languageDefault->url, 'langForeignKey' => 'category_id', 'tableName' => "{{%cms_faq_categories_lang}}", 'attributes' => ['title']], 'timestamp' => ['class' => 'yii\\behaviors\\TimestampBehavior', 'value' => new Expression('NOW()')]]; }
public function behaviors() { $languagesModel = Lang::find()->all(); $languageDefault = Lang::findOne(['default' => 1]); $languages = []; foreach ($languagesModel as $model) { $languages[$model->url] = $model->name; } return ['ml' => ['class' => MultilingualBehavior::className(), 'languages' => $languages, 'defaultLanguage' => $languageDefault->url, 'langForeignKey' => 'video_id', 'tableName' => "{{%videos_lang}}", 'attributes' => ['title', 'description']], ['class' => '\\yiidreamteam\\upload\\FileUploadBehavior', 'attribute' => 'file', 'filePath' => '@webroot/media/videos/[[pk]]/[[filename]].[[extension]]', 'fileUrl' => '@web/media/videos/[[pk]]/[[filename]].[[extension]]'], 'timestamp' => ['class' => 'yii\\behaviors\\TimestampBehavior', 'value' => new Expression('NOW()')]]; }
public function behaviors() { $languagesModel = Lang::find()->all(); $languageDefault = Lang::findOne(['default' => 1]); $languages = []; foreach ($languagesModel as $model) { $languages[$model->url] = $model->name; } return ['ml' => ['class' => MultilingualBehavior::className(), 'languages' => $languages, 'defaultLanguage' => $languageDefault->url, 'langForeignKey' => 'recipe_id', 'tableName' => "{{%cms_recipes_lang}}", 'attributes' => ['title', 'content', 'content_heading', 'meta_keywords', 'meta_description']]]; }
/** * @inheritdoc */ public function behaviors() { return ['timestamp' => ['class' => 'yii\\behaviors\\TimestampBehavior', 'attributes' => [ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'], ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at']]], 'blameable' => ['class' => 'yii\\behaviors\\BlameableBehavior', 'attributes' => [ActiveRecord::EVENT_BEFORE_INSERT => ['created_by', 'updated_by'], ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_by']]], 'ml' => ['class' => MultilingualBehavior::className(), 'languages' => Yii::$app->lang->getLanguages(), 'defaultLanguage' => Yii::$app->params['defaultLanguage'], 'langForeignKey' => 'entity_id', 'tableName' => "{{%content_lang}}", 'attributes' => ['title', 'content', 'short_content', 'seo_keywords', 'seo_description']], 'sitemap' => ['class' => SitemapBehavior::className(), 'scope' => function ($model) { $model->select(['alias', 'updated_at', 'type', 'available_translations']); $model->andWhere(['enabled' => 1]); }, 'dataClosure' => function ($model) { $out = []; $translations = explode(',', $model->available_translations); $alias = ltrim($model->alias, '/'); foreach ($translations as $key) { $url = Yii::$app->getUrlManager()->getHostInfo() . '/' . $key . ($alias ? '/' . $alias : ''); $data = ['loc' => $url, 'lastmod' => $model->updated_at, 'changefreq' => SitemapBehavior::CHANGEFREQ_DAILY, 'priority' => 0.8, 'translations' => []]; foreach ($translations as $translationKey) { $data['translations'][$translationKey] = Yii::$app->getUrlManager()->getHostInfo() . '/' . $translationKey . ($alias ? '/' . $alias : ''); } $out[] = $data; } return $out; }]]; }
public function behaviors() { return ['ml' => ['class' => MultilingualBehavior::className(), 'languages' => ['de' => 'German', 'es' => 'Spanish', 'en-US' => 'English'], 'defaultLanguage' => 'en-US', 'langForeignKey' => 'country_id', 'tableName' => "{{%countries_lang}}", 'attributes' => ['name', 'short_name']], TimestampBehavior::className()]; }
public function behaviors() { return ArrayHelper::merge(parent::behaviors(), ['ml' => ['class' => MultilingualBehavior::className(), 'languages' => Languages::getAllowedLanguages(), 'defaultLanguage' => Languages::getDefaultLanguage(), 'langForeignKey' => 'item_id', 'tableName' => "{{%" . $this->tableName() . "Lang}}", 'attributes' => $this->multiLangAttributes]]); }
/** * @inheritdoc */ public function behaviors() { return ['ml' => ['class' => MultilingualBehavior::className(), 'languages' => ['ru' => 'Russian', 'en-US' => 'English'], 'defaultLanguage' => 'ru', 'langForeignKey' => 'post_id', 'tableName' => "{{%postLang}}", 'attributes' => ['title', 'body']]]; }
public function behaviors() { return ['ml' => ['class' => MultilingualBehavior::className(), 'languages' => ['de' => 'German', 'es' => 'Spanish', 'en-US' => 'English'], 'defaultLanguage' => 'en-US', 'langForeignKey' => 'email_template_id', 'tableName' => "{{%email_templatesLang}}", 'attributes' => ['title', 'subject', 'content']], TimestampBehavior::className()]; }
/** * @inheritdoc */ public function init() { parent::init(); $this->languages = Yii::$app->yee->languages; $this->defaultLanguage = Yii::$app->language; }