meraproject/module/core/lang/model.php

116 lines
3.1 KiB
PHP
Raw Normal View History

<?
namespace core;
use core\core\Rule;
use \core\db\structure\Column as C;
use \core\db\structure\eColumnType;
use core\lang\structure\eLangCode;
new Lang();
class Lang extends \ModuleTable {
// Название таблицы
static $table_name = 'lang';
// Ссылка на самого себя
static $self;
// Значение $TO
static $to = \To::LANG;
// Переменные столбцов
static $ID = 'id';
static $TEXT_ID = 'text_id';
static $VIS = 'vis';
static $IMG = 'img';
static $MAIN = 'main';
static $POS = 'pos';
// Мультиязычные значения столбцов
static $NAME = 1;
static $translates = [];
static $group = \Groups::LANG;
static $rules = Rule::READ_RULES;
public function __construct() {
self::$translates = [
self::$NAME=>'',
];
parent::__construct();
}
static $depends = [
'core\lang\structure\LangVariable',
'core\lang\structure\LangValue',
'core\lang\structure\Translate',
];
public static function afterInstall() {
parent::afterInstall(); // TODO: Change the autogenerated stub
}
static function beforeCreateRules(){
self::add([
self::$TEXT_ID=>eLangCode::RU,
self::$MAIN=>1,
self::$VIS=>1,
]);
self::add([
self::$TEXT_ID=>eLangCode::EN,
self::$MAIN=>0,
self::$VIS=>0,
]);
}
static function add($values){
$res = new \stdClass();
$res->e = 0;
$res->m = '';
$row = self::getByTextID($values[ self::$TEXT_ID ]);
if(!$row) {
$r = self::insert($values);
$res->id = $r->id;
}
return $res;
}
static function columnInfo() : array {
return [
new C([
C::VAR_NAME =>&self::$ID,
C::TYPE =>eColumnType::INT,
C::AUTO_INCREMENT =>true,
C::PRIMARY =>true,
C::DEFAULT =>0,
]),
new C([
C::VAR_NAME =>&self::$TEXT_ID,
C::TYPE =>eColumnType::VARCHAR,
C::LENGTH =>15,
]),
new C([
C::VAR_NAME =>&self::$VIS,
C::TYPE =>eColumnType::TINYINT,
C::LENGTH =>1,
C::DEFAULT =>0,
]),
new C([
C::VAR_NAME =>&self::$IMG,
C::TYPE =>eColumnType::VARCHAR,
C::LENGTH =>255,
]),
new C([
C::VAR_NAME =>&self::$MAIN,
C::TYPE =>eColumnType::TINYINT,
C::LENGTH =>1,
]),
new C([
C::VAR_NAME =>&self::$POS,
C::TYPE =>eColumnType::INT,
C::DEFAULT =>time(),
]),
];
}
}