Cheetah
ChWsbXMLRPCMessages.php
Go to the documentation of this file.
1 <?php
2 
9 {
10 
12  {
14  }
15 
17  {
19  }
20 
21  function getMessageInbox($sUser, $sPwd, $iMsgId)
22  {
23  return ChWsbXMLRPCMessages::_getMessage($sUser, $sPwd, $iMsgId, true);
24  }
25 
26  function getMessageSent($sUser, $sPwd, $iMsgId)
27  {
28  return ChWsbXMLRPCMessages::_getMessage($sUser, $sPwd, $iMsgId, false);
29  }
30 
31  function sendMessage($sUser, $sPwd, $sRecipient, $sSubj, $sText, $sSendTo)
32  {
33  $aRet = array ();
35  return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
36 
37  ch_import('ChTemplMailBox');
38 
39  $sRecipient = process_db_input ($sRecipient, CH_TAGS_NO_ACTION, CH_SLASHES_NO_ACTION);
40  $aRecipient = db_arr("SELECT * FROM `Profiles` WHERE `NickName` = '$sRecipient'");
41  if (!$aRecipient)
43 
44  $aMailBoxSettings = array ('member_id' => $iId);
45  $oMailBox = new ChTemplMailBox('mail_page_compose', $aMailBoxSettings);
46 
47  $aComposeSettings = array (
48  'send_copy' => 'recipient' == $sSendTo || 'both' == $sSendTo ? true : false,
49  'notification' => false,
50  'send_copy_to_me' => 'me' == $sSendTo || 'both' == $sSendTo ? true : false,
51  );
52  $oMailBox->sendMessage($sSubj, nl2br($sText), $aRecipient['ID'], $aComposeSettings);
53  return new xmlrpcval ($oMailBox->iSendMessageStatusCode);
54  }
55 
56  function _getMessage($sUser, $sPwd, $iMsgId, $isInbox)
57  {
58  $aRet = array ();
60  return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
61 
62  $aMsgs = array ();
63  $iMsgId = (int)$iMsgId;
64  $sFieldsAdd = $isInbox ? ", `m`.`Sender` AS `AuthorID`" : ", `m`.`Recipient` AS `AuthorID` ";
65  $aRow = db_arr ("SELECT
66  `m`.`ID`, UNIX_TIMESTAMP(`m`.`Date`) AS `Date`, `m`.`Sender`, `m`.`Recipient`, `m`.`Subject`, `m`.`Text`, `m`.`New` $sFieldsAdd
67  FROM `sys_messages` AS `m`
68  WHERE `m`.`ID` = '$iMsgId'");
69  if ($aRow) {
70  $sIcon = ChWsbXMLRPCUtil::getThumbLink($isInbox ? $aRow['Sender'] : $aRow['Recipient'], 'thumb');
71  $aMsg = array (
72  'ID' => new xmlrpcval($aRow['ID']),
73  'Date' => new xmlrpcval(defineTimeInterval($aRow['Date'])),
74  'Sender' => new xmlrpcval($aRow['Sender']),
75  'Recipient' => new xmlrpcval($aRow['Recipient']),
76  'Subject' => new xmlrpcval($aRow['Subject']),
77  'Text' => new xmlrpcval($aRow['Text']),
78  'New' => new xmlrpcval($aRow['New']),
79  'Nick' => new xmlrpcval(getUsername($aRow['AuthorID'])),
80  'UserTitleInterlocutor' => new xmlrpcval(getNickName($aRow['AuthorID'])),
81  'Thumb' => new xmlrpcval($sIcon),
82  );
83  if ($isInbox && $aRow['New'])
84  db_res("UPDATE `sys_messages` SET `New` = 0 WHERE `ID` = '$iMsgId'");
85  } else {
86  return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
87  }
88  return new xmlrpcval ($aMsg, "struct");
89  }
90 
91  function _getMessages($sUser, $sPwd, $isInbox)
92  {
93  $aRet = array ();
95  return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct"));
96 
97  $aMsgs = array ();
98 
99  if ($isInbox)
100  $sWhere = "`Recipient` = '$iId' AND NOT FIND_IN_SET('recipient', `Trash`)";
101  else
102  $sWhere = "`Sender` = '$iId' AND NOT FIND_IN_SET('sender', `Trash`)";
103 
104  $sFieldsAdd = $isInbox ? ", `m`.`Sender` AS `AuthorID`" : ", `m`.`Recipient` AS `AuthorID` ";
105  $r = db_res ("SELECT
106  `m`.`ID`, UNIX_TIMESTAMP(`m`.`Date`) AS `Date`, `m`.`Sender`, `m`.`Recipient`, `m`.`Subject`, `m`.`New` $sFieldsAdd
107  FROM `sys_messages` AS `m`
108  INNER JOIN `Profiles` as `p` ON (`p`.`ID` = `m`.`Sender`)
109  WHERE $sWhere
110  ORDER BY `Date` DESC");
111  while ($aRow = $r->fetch()) {
112  $sIcon = ChWsbXMLRPCUtil::getThumbLink($isInbox ? $aRow['Sender'] : $aRow['Recipient'], 'thumb');
113  $aMsg = array (
114  'ID' => new xmlrpcval($aRow['ID']),
115  'Date' => new xmlrpcval(defineTimeInterval($aRow['Date'])),
116  'Sender' => new xmlrpcval($aRow['Sender']),
117  'Recipient' => new xmlrpcval($aRow['Recipient']),
118  'Subject' => new xmlrpcval($aRow['Subject']),
119  'New' => new xmlrpcval($aRow['New']),
120  'Nick' => new xmlrpcval(getUsername($aRow['AuthorID'])),
121  'UserTitleInterlocutor' => new xmlrpcval(getNickName($aRow['AuthorID'])),
122  'Thumb' => new xmlrpcval($sIcon),
123  );
124  $aMsgs[] = new xmlrpcval($aMsg, 'struct');
125  }
126  return new xmlrpcval ($aMsgs, "array");
127  }
128 }
process_db_input
process_db_input($sText, $iStripTags=0)
Definition: utils.inc.php:256
ChWsbXMLRPCMessages\sendMessage
sendMessage($sUser, $sPwd, $sRecipient, $sSubj, $sText, $sSendTo)
Definition: ChWsbXMLRPCMessages.php:31
ChWsbXMLRPCMessages\_getMessage
_getMessage($sUser, $sPwd, $iMsgId, $isInbox)
Definition: ChWsbXMLRPCMessages.php:56
$aMailBoxSettings
if( $sMessagesList) $aMailBoxSettings
Definition: mail.php:66
defineTimeInterval
defineTimeInterval($iTime, $bAutoDateConvert=true, $bShort=false)
Definition: utils.inc.php:831
ChWsbXMLRPCMessages\getMessagesInbox
getMessagesInbox($sUser, $sPwd)
Definition: ChWsbXMLRPCMessages.php:11
$aComposeSettings
$aComposeSettings
Definition: mail.php:115
ChWsbXMLRPCMessages\_getMessages
_getMessages($sUser, $sPwd, $isInbox)
Definition: ChWsbXMLRPCMessages.php:91
ChWsbXMLRPCMessages\getMessagesSent
getMessagesSent($sUser, $sPwd)
Definition: ChWsbXMLRPCMessages.php:16
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
xmlrpcval
Definition: xmlrpc.inc:2696
php
CH_MAILBOX_SEND_UNKNOWN_RECIPIENT
const CH_MAILBOX_SEND_UNKNOWN_RECIPIENT
Definition: ChWsbMailBox.php:16
$iId
$iId
Definition: license.php:15
$sPwd
$sPwd
Definition: r.php:14
ChWsbXMLRPCMessages
Definition: ChWsbXMLRPCMessages.php:9
CH_SLASHES_NO_ACTION
const CH_SLASHES_NO_ACTION
Definition: utils.inc.php:30
ChWsbXMLRPCMessages\getMessageSent
getMessageSent($sUser, $sPwd, $iMsgId)
Definition: ChWsbXMLRPCMessages.php:26
db_arr
db_arr($query, $bindings=[])
Definition: db.inc.php:76
getNickName
getNickName( $ID='')
Definition: profiles.inc.php:461
CH_TAGS_NO_ACTION
const CH_TAGS_NO_ACTION
Definition: utils.inc.php:21
getUsername
getUsername( $ID='')
Definition: profiles.inc.php:443
ChWsbXMLRPCMessages\getMessageInbox
getMessageInbox($sUser, $sPwd, $iMsgId)
Definition: ChWsbXMLRPCMessages.php:21
db_res
db_res($query, $bindings=[])
Definition: db.inc.php:39
ChTemplMailBox
Definition: ChTemplMailBox.php:11
xmlrpcresp
Definition: xmlrpc.inc:1911
ChWsbXMLRPCUtil\checkLogin
static checkLogin($sUser, $sPwd)
Definition: ChWsbXMLRPCUtil.php:239
$oMailBox
if(isset($_GET['messages_types'])) switch($aMailBoxSettings['mailbox_mode']) $oMailBox
Definition: mail.php:163
ChWsbXMLRPCUtil\getThumbLink
static getThumbLink($iId, $sType='thumb')
Definition: ChWsbXMLRPCUtil.php:91
$sUser
$sUser
Definition: r.php:13