%PDF- %PDF-
Direktori : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/managers/helpdesk/classes/ |
Current File : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/managers/helpdesk/classes/thread.php |
<?php /* * Copyright 2004-2014, AfterLogic Corp. * Licensed under AGPLv3 license or AfterLogic license * if commercial version of the product was purchased. * See the LICENSE file for a full license statement. */ /** * @property int $IdHelpdeskThread * @property string $StrHelpdeskThreadHash * @property int $IdTenant * @property int $IdOwner * @property bool $ItsMe * @property bool $IsArchived * @property int $Type * @property string $Subject * @property int $Created * @property int $Updated * @property int $PostCount * @property int $LastPostId * @property int $LastPostOwnerId * @property bool $Notificated * @property bool $HasAttachments * @property bool $IsRead * @property array $Owner * * @package Helpdesk * @subpackage Classes */ class CHelpdeskThread extends api_AContainer { /** * @var array */ public $Owner; public function __construct() { parent::__construct(get_class($this)); $this->SetTrimer(array('Subject')); $this->Owner = null; $this->SetDefaults(array( 'IdHelpdeskThread' => 0, 'StrHelpdeskThreadHash' => trim(base_convert(md5(microtime(true).rand(1000, 9999)), 16, 32), '0'), 'IdTenant' => 0, 'IdOwner' => 0, 'ItsMe' => false, 'IsArchived' => false, 'Type' => EHelpdeskThreadType::None, 'Subject' => '', 'Created' => time(), 'Updated' => time(), 'PostCount' => 0, 'LastPostId' => 0, 'LastPostOwnerId' => 0, 'Notificated' => false, 'HasAttachments' => false, 'IsRead' => false )); } /** * @return bool */ public function Validate() { switch (true) { case 0 < $this->IdOwner: throw new CApiValidationException(Errs::Validation_ObjectNotComplete, null, array( '{{ClassName}}' => 'CHelpdeskPost', '{{ClassField}}' => 'IdOwner')); } return true; } /** * @return string */ private function helpdeskLink() { $sPath = rtrim(\MailSo\Base\Http::SingletonInstance()->GetFullUrl(), '\\/ '); if ('/crons' === substr($sPath, -6)) { $sPath = substr($sPath, 0, -6); } $sPath .= '/?helpdesk'; if (0 < $this->IdTenant) { $sPath .= '='.substr(md5($this->IdTenant.CApi::$sSalt), 0, 8); } return $sPath; } /** * @return string */ public function ThreadLink() { $sPath = $this->helpdeskLink(); $sPath .= '&thread='.$this->StrHelpdeskThreadHash; return $sPath; } /** * @return string */ public function LoginLink() { $sPath = $this->helpdeskLink(); return $sPath; } /** * @return array */ public function GetMap() { return self::GetStaticMap(); } /** * @return array */ public static function GetStaticMap() { return array( 'IdHelpdeskThread' => array('int', 'id_helpdesk_thread', false, false), 'StrHelpdeskThreadHash' => array('string', 'str_helpdesk_hash', true, false), 'IdTenant' => array('int', 'id_tenant', true, false), 'IdOwner' => array('int', 'id_owner', true, false), 'ItsMe' => array('bool'), 'IsArchived' => array('bool', 'archived'), 'Type' => array('int', 'type'), 'Subject' => array('string', 'subject'), 'Created' => array('datetime', 'created', true, false), 'Updated' => array('datetime', 'updated'), 'PostCount' => array('int', 'post_count'), 'LastPostId' => array('int', 'last_post_id'), 'LastPostOwnerId' => array('int', 'last_post_owner_id'), 'Notificated' => array('bool', 'notificated'), 'HasAttachments' => array('bool', 'has_attachments'), 'IsRead' => array('bool') ); } }