Exemplo n.º 1
0
 /**
  * @param ActiveRecord $object
  *
  * @return string
  */
 public static function niceUrlTo(ActiveRecord $object)
 {
     /** @var Language $language */
     $language = Language::findOne(['symbol' => \Yii::$app->language]);
     /** @var NiceUrl $niceUrl */
     $niceUrl = NiceUrl::findOne(['object_class' => get_class($object), 'object_id' => $object->id, 'language_id' => $language->id, 'redirect' => 0]);
     return sprintf('%s', $niceUrl->url);
 }
Exemplo n.º 2
0
 /**
  * @return bool
  */
 public function beforeValidate()
 {
     if (is_null(Language::getDefault()) == false) {
         $this->addError('default', '`language.default_already_exists`');
     }
     return parent::beforeValidate();
     // TODO: Change the autogenerated stub
 }
Exemplo n.º 3
0
 /**
  * process nice url for request
  */
 public static function process()
 {
     $request = \Yii::$app->getRequest();
     /** @var Language $language */
     $language = Language::findOne(['symbol' => \Yii::$app->language]);
     $niceUrlProcessor = new RequestProcessor($language, new Finder());
     list($route, $params) = $niceUrlProcessor->processRequest($request);
     $routes = array_merge([$route], $params);
     \Yii::$app->catchAll = $routes;
 }
Exemplo n.º 4
0
 /**
  * @param string $field
  * @param array $rules
  * @return array
  */
 public static function process($field, $rules)
 {
     $languages = Language::find()->all();
     $fields = [];
     /** @var Language $language */
     foreach ($languages as $language) {
         $fields[] = $field . '__' . $language->symbol;
     }
     $fields = array_merge([$fields], $rules);
     return $fields;
 }
Exemplo n.º 5
0
 public function createCategory()
 {
     $cols['id'] = 'pk';
     foreach (Language::find()->all() as $lang) {
         $name = LanguageHelper::processForLang('name', $lang);
         $cols[$name] = "varchar(255) DEFAULT NULL";
     }
     $cols['ordering'] = 'int(11) DEFAULT NULL';
     $options = 'ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8';
     $query = $this->db->getQueryBuilder();
     $createTableSyntax = $query->createTable('core_category', $cols, $options);
     $this->db->createCommand($createTableSyntax)->execute();
 }
Exemplo n.º 6
0
 protected function createTable()
 {
     $cols['id'] = 'pk';
     $cols['created_at'] = 'datetime NOT NULL';
     foreach (Language::find()->all() as $lang) {
         $title = LanguageHelper::processForLang('title', $lang);
         $cols[$title] = "varchar(255) NOT NULL";
         $body = LanguageHelper::processForLang('body', $lang);
         $cols[$body] = "longtext";
     }
     $options = "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
     $query = \Yii::$app->getDb()->queryBuilder;
     $createTableSyntax = $query->createTable('page', $cols, $options);
     $db = \Yii::$app->getDb();
     $db->createCommand($createTableSyntax)->execute();
 }
Exemplo n.º 7
0
 public static function langSwitcher()
 {
     $languages = Language::find()->all();
     $html = '<div class="pull-right langs">';
     $i = 0;
     /** @var Language $language */
     foreach ($languages as $language) {
         $currentLang = \Yii::$app->language;
         $currentClass = $currentLang == $language->symbol ? ' class="current"' : '';
         $lang = $language->symbol == 'en' ? 'gb' : $language->symbol;
         $langIco = $flag = Flags::widget(['flag' => $lang, 'type' => Flags::SHINY_16, 'useSprite' => false]);
         $html .= '<a href="#" data-src="' . $language->symbol . '"' . $currentClass . '>' . $langIco . '</a>';
         $i++;
     }
     $html .= '</div>';
     return $html;
 }
Exemplo n.º 8
0
 /**
  * @return bool
  */
 public function beforeValidate()
 {
     if ($this->fillEmptyFields) {
         $sql = "SELECT symbol FROM language";
         $langs = \Yii::$app->getDb()->createCommand($sql)->queryAll(PDO::FETCH_COLUMN);
         $defaultLang = Language::getDefault();
         unset($langs[array_search($defaultLang->symbol, $langs)]);
         // now contains langs without defaultLang
         foreach ($this->getMultiLangFields() as $field) {
             $defaultField = $this->buildMultilangFieldName($field, $defaultLang->symbol);
             foreach ($langs as $lang) {
                 $field = $this->buildMultilangFieldName($field, $lang);
                 if (!$this->{$field}) {
                     // copy value from default language to current one
                     $this->{$field} = $this->{$defaultField};
                 }
             }
         }
     }
     return parent::beforeValidate();
     // TODO: Change the autogenerated stub
 }
Exemplo n.º 9
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getLanguage()
 {
     return $this->hasOne(Language::className(), ['id' => 'language_id']);
 }
Exemplo n.º 10
0
 public function __construct(SlugCounterInterface $slugCounter)
 {
     $this->languages = Language::find()->all();
     $this->slugCounter = $slugCounter;
 }