meraproject/themes/merakomis/history/model.php

139 lines
4.8 KiB
PHP
Raw Normal View History

<?
namespace themes\merakomis;
use core\columns\structure\eFilterType;
use core\db\structure\Column as C;
use core\db\structure\eColumnType;
use core\lang\structure\LangVariable as V;
use themes\merakomis\History\structure\eType;
use themes\merakomis\history\structure\lang as Vars;
use themes\merakomis\structure\merakomisModuleTable;
class History extends merakomisModuleTable {
static $self;
static $cache = [];
static $table_name = 'tMerakomisHistory';
static $controller = 'themes.merakomis.history';
static $easy_left_joins = [];
static $default_sort;
static $ID = 'id';
static $EMP = 'emp';
static $TYPE = 'type';
static $PORTAL = 'portal';
static $PROFILE = 'profile';
static $ACCOUNT = 'account';
static $CREATED = 'created';
//--
static $EMAIL = 'email';
static function getTitle(){return V::get(Vars::$MODULE_NAME);}
static function getSystemLangValues():array{ return Vars::getArray(); }
public function __construct($install_id = null) {
parent::__construct($install_id);
static::$easy_left_joins = [
[Emp::$table_name,Emp::$ID,self::$EMP]
];
}
static function login($emp) { self::add($emp,eType::LOGIN); }
static function exit($emp) { self::add($emp,eType::EXIT); }
static function login_bad($emp) { self::add($emp,eType::LOGIN_BAD); }
static function reg($emp) { self::add($emp,eType::REG); }
static function remind($emp) { self::add($emp,eType::REMIND); }
static function ban($emp) { self::add($emp,eType::BAN); }
static function add($emp,$type){
self::insert([
self::$EMP => $emp,
self::$TYPE => $type,
]);
}
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,
C::HIDDEN =>true,
C::TH =>V::get(Vars::$ID),
]),
new C([
C::VAR_NAME => &self::$EMP,
C::TYPE => eColumnType::INT,
C::TH => 'Сотрудник',
C::FUNC_VALUE_DATA => function($v){
return Emp::getName($v);
},
C::FILTER_TYPE => eFilterType::SELECT,
C::FUNC_FILTER_SELECT_OPTIONS => function(){
return Emp::getNameList();
},
]),
new C([
C::VAR_NAME => &self::$EMAIL,
C::TYPE => eColumnType::NONE,
C::TH => 'Логин',
C::FUNC_VALUE_DATA => function($v){
return $v[Emp::$LOGIN];
}
]),
new C([
C::VAR_NAME => &self::$TYPE,
C::TYPE => eColumnType::TINYINT,
C::TH => 'Тип',
C::FUNC_VALUE_DATA => function($v){
return eType::getName($v[self::$TYPE]);
},
C::FILTER_TYPE => eFilterType::SELECT,
C::FUNC_FILTER_SELECT_OPTIONS => function(){
return eType::getNameList();
}
]),
new C([
C::VAR_NAME => &self::$PORTAL,
C::TYPE => eColumnType::INT,
C::DEFAULT => intval(\Site::$portal_id),
c::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$PROFILE,
C::TYPE => eColumnType::INT,
C::DEFAULT => intval(PID),
//C::TH => V::get(Vars::$PROFILE),
c::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$ACCOUNT,
C::TYPE => eColumnType::INT,
C::DEFAULT => intval(\Site::$owner_id),
//C::TH => V::get(Vars::$ACCOUNT),
c::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$CREATED,
C::TYPE => eColumnType::INT,
C::LENGTH => 11,
C::TH => V::get(Vars::$CREATED),
C::DEFAULT => time(),
c::FUNC_VALUE_DATA => function($v){return self::formatDate($v[self::$CREATED]);},
//c::HIDDEN => true,
]),
];
}
}
new History();
///