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(); }
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(); }
public static function multiLangTextarea($object, $name, $options) { $languages = Language::find()->all(); $html = ''; /** @var Language $lang */ foreach ($languages as $lang) { $field = LanguageHelper::processForLang($name, $lang); $value = $object->{$field}; $reflectionCLass = new \ReflectionClass($object); $shortName = $reflectionCLass->getShortName(); $fieldName = $shortName . '[' . $field . ']'; $langSymbol = $lang->symbol; $html .= "<div class='lang' data-lang='{$langSymbol}'>"; $html .= parent::textarea($fieldName, $value, $options); $html .= "</div>"; } return $html; }