AnonSec Team
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  ]

Current File : /home/ifk/web/protected/Common/KUserRecord.php
<?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.&nbsp;" . $this->Name . ",&nbsp;prof. UW";
        } else {
            return $this->Title . "&nbsp;" . $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();
    }
}
?>

AnonSec - 2021