Cheetah
ChSimpleMessengerModule.php
Go to the documentation of this file.
1 <?php
2 
8 ch_import('ChWsbModuleDb');
9 ch_import('ChWsbUserStatusView');
10 ch_import('ChWsbModule');
11 
12 require_once('ChSimpleMessengerPrivacy.php');
13 
58 {
59  var $sHomeUrl;
60 
62 
63  // contain some module information ;
65 
66  // contain some of messenger's engine settings ;
67  var $aCoreSettings = array();
68 
69  // contain current menu possition (allowed values : top, bottom, fixed)
71 
72  // logged member's id;
74 
75  // privacy object;
76  var $oPrivacy = null;
77  var $iMaxNickLength = 10;
78 
93  {
94  parent::__construct($aModule);
95 
96  $this->sHomeUrl = $this->_oConfig->_sHomeUrl;
97 
98  $this->sModuleName = 'ch_' . $aModule['uri'];
99 
100  $this->aModuleInfo = $aModule;
101 
102  $this->iLoggedMemberId = getLoggedId();
103 
104  $this->aCoreSettings = array(
105  // time (in seconds) script checks for messages ;
106  'update_time' => $this->_oConfig->iUpdateTime,
107 
108  // number of visible messages in chat box ;
109  'number_visible_messages' => $this->_oConfig->iVisibleMessages,
110 
111  // limit of returning messages in message box;
112  'limit_returning_messages' => $this->_oConfig->iCountRetMessages,
113 
114  // number of allowed chat boxes;
115  'number_of_allowed_chat_boxes' => $this->_oConfig->iCountAllowedChatBoxes,
116 
117  // contains block's id where the list of messages will be generated ;
118  'output_block' => $this->_oConfig->sOutputBlock,
119 
120  // page that will procces all ajax queries ;
121  'page_receiver' => CH_WSB_URL_ROOT . 'modules/?r=' . $this->aModuleInfo['uri'] . '/get_operation',
122 
123  // contain history block's prefix (need for defines the last message);
124  'history_block_prefix' => $this->_oConfig->sOutputBlockPrefix,
125 
126  // save messenger's chat history ;
127  'save_chat_history' => $this->_oConfig->bSaveChatHistory,
128 
129  // contain all needed language keys ;
130  'language_keys' => array(
131  // This message will be shown when user is trying to send an empty message ;
132  'empty_message' => _t('_simple_messenger_empty_message'),
133  ),
134 
135  // flashing signals amount of the non-active window ;
136  'blink_counter' => $this->_oConfig->iBlinkCounter,
137 
138  'message_date_format' => $this->_oConfig->sMessageDateFormat,
139  );
140 
141  $this->sMemberMenuPosition = (isset($_COOKIE['menu_position']))
142  ? $_COOKIE['menu_position']
143  : getParam('ext_nav_menu_top_position');
144 
145  $this->oPrivacy = new ChSimpleMessengerPrivacy($this);
146  }
147 
155  function actionGetOperation($sActionName, $iRecipientId = 0)
156  {
157  $iRecipientId = (int)$iRecipientId;
158 
159  // ** INTERNAL FUNCTIONS;
160 
168  function _addMessage(&$oObject, $iRecipientId, $sMessage)
169  {
170  $iRecipientId = (int)$iRecipientId;
171  $sMessage = trim(strip_tags($sMessage));
172 
173  if (($iRecipientId && $sMessage)
174  && (getProfileInfo($iRecipientId) && $iRecipientId != $oObject->iLoggedMemberId)
175  ) {
176 
177  // write received message ;
178  if (getProfileInfo($iRecipientId)) {
179 
180  $iMessage = $oObject->_oDb->createMessage($oObject->iLoggedMemberId, $iRecipientId, $sMessage);
181  if($iMessage !== false) {
182  $oAlert = new ChWsbAlerts($oObject->sModuleName, 'add', $iMessage, $oObject->iLoggedMemberId, array('RecipientId' => $iRecipientId, 'Message' => $sMessage));
183  $oAlert->alert();
184  }
185 
186  // check save chat history ;
187  if (!$oObject->aCoreSettings['save_chat_history']) {
188  $oObject->_oDb->deleteMessagesHistory($oObject->iLoggedMemberId,
189  $iRecipientId, $oObject->aCoreSettings['number_visible_messages']);
190  }
191  }
192  }
193  }
194 
201  function _checkAllowedAddMessage(&$aChatBoxes, $iMemberId)
202  {
203  $iMemberId = (int)$iMemberId;
204  foreach ($aChatBoxes as $iKey => $iCurMemberId) {
205  if ($iCurMemberId == $iMemberId) {
206  return true;
207  }
208  }
209 
210  return false;
211  }
212 
213  if (!$this->iLoggedMemberId) {
214  exit;
215  }
216 
217  $iRecipientId = (int)$iRecipientId;
218 
219  switch ($sActionName) {
220 
221  // send message action ;
222  case 'send_message' :
223 
224  $sMessage = (isset($_POST['message']))
225  ? urldecode($_POST['message'])
226  : '';
227 
228  if ($this->oPrivacy->check('contact', $iRecipientId, $this->iLoggedMemberId)) {
229  // get array with all sender's chat boxes;
230  $aActiveSenderChatBoxes = $this->_oDb->getChatBoxesCount($this->iLoggedMemberId);
231  $bSenderSendAllow = false;
232 
233  // check the sender's allow rulles for send message ;
234  if (is_array($aActiveSenderChatBoxes) && $aActiveSenderChatBoxes) {
235  if (count($aActiveSenderChatBoxes) < $this->aCoreSettings['number_of_allowed_chat_boxes']) {
236  $bSenderSendAllow = true;
237  } else {
238  // check if sender's id already registered in active chat boxes;
239  if (_checkAllowedAddMessage($aActiveSenderChatBoxes, $iRecipientId)) {
240  $bSenderSendAllow = true;
241  }
242  }
243  } else {
244  $bSenderSendAllow = true;
245  }
246 
247  // get array with all recipients's chat boxes;
248  $aActiveRecipientChatBoxes = $this->_oDb->getChatBoxesCount($iRecipientId);
249  $bRecipientSendAllow = false;
250 
251  // check the recipient's allow rulles for reciving new message ;
252  if (is_array($aActiveRecipientChatBoxes) && $aActiveRecipientChatBoxes) {
253  if (count($aActiveRecipientChatBoxes) < $this->aCoreSettings['number_of_allowed_chat_boxes']) {
254  $bRecipientSendAllow = true;
255  } else {
256  // check if sender's id already registered in active chat boxes;
257  if (_checkAllowedAddMessage($aActiveRecipientChatBoxes, $this->iLoggedMemberId)) {
258  $bRecipientSendAllow = true;
259  }
260  }
261  } else {
262  $bRecipientSendAllow = true;
263  }
264 
265  if ($bSenderSendAllow && $bRecipientSendAllow) {
266  // allow to add new message;
267  _addMessage($this, $iRecipientId, $sMessage);
268  } else {
269  header('Content-Type: text/html; charset=utf-8');
270  echo(!$bSenderSendAllow ? _t('_simple_messenger_max_allowed_windows') : _t('_simple_messenger_recipient_max_allowed_windows'));
271  }
272  } else {
273  header('Content-Type: text/html; charset=utf-8');
274  echo _t('_simple_messenger_privacy_disallow');
275  }
276  break;
277 
278  case 'get_chat_box' :
279  if ($iRecipientId) {
280 
281  // get chat box;
282  $aChatBox = $this->getChatBox($iRecipientId);
283  $sChatBox = $aChatBox['chat_box'];
284  $aRet = array();
285 
286  // get some sender's info;
287  $aSenderInfo = getProfileInfo($iRecipientId);
288  $aRet['senders'][] = array(
289  // contain sender id ;
290  'sender_id' => $iRecipientId,
291 
292  // message block will draw only ones ;
293  'chat_box' => $sChatBox,
294 
295  // contain messages block's messages list ;
296  'messages_list' => '',
297 
298  // contain the last update time of status text;
299  'status_update_time' => $aSenderInfo['UserStatusMessageWhen'],
300 
301  // contain sender's status;
302  'sender_status' => $aSenderInfo['UserStatus'],
303 
304  // last sent message's Id;
305  'last_message' => $aChatBox['last_message'],
306 
307  // count of sent messages;
308  'count_messages' => $aChatBox['count_messages'],
309  );
310 
311  // return result in JSON format ;
312  if ($aRet) {
313  header('Content-Type: application/json; charset=utf-8');
314  echo json_encode($aRet);
315  }
316  }
317  break;
318 
319  case 'new_messages' :
320  $aRet = array();
321 
322  // defines all registered messages box and last message's id in it ;
323  $sRegisteredBoxes = false != ch_get('registered_chat_boxes')
324  ? ch_get('registered_chat_boxes')
325  : '';
326 
327  $aAllBoxes = $sRegisteredBoxes ? explode(',', $sRegisteredBoxes) : '';
328 
329  if ($aAllBoxes && is_array($aAllBoxes)) {
330  $aRegBoxes = array();
331 
332  // procces registered box ;
333  foreach ($aAllBoxes as $sValue) {
334  if ($sValue) {
335  $aTemp = explode(':', $sValue);
336 
337  if (is_numeric($aTemp[0]) && $aTemp[0]) {
338  // get some sender's info;
339  $aSenderInfo = getProfileInfo($aTemp[0]);
340  $aRegBoxes[$aTemp[0]] = array(
341  'last_message' => (int)$aTemp[1],
342  'registered' => 1,
343 
344  // sender's status text changed time;
345  'status_change' => $aSenderInfo['UserStatusMessageWhen'],
346  // sender's status;
347  'sender_status' => (get_user_online_status($aSenderInfo['ID']))
348  ? $aSenderInfo['UserStatus']
349  : 'offline',
350  );
351  }
352  }
353  }
354  }
355 
356  // try to define new messages except existing;
357  $aNewSenders = $this->_oDb->getNewChatBoxes($this->iLoggedMemberId, $aRegBoxes);
358 
359  if ($aNewSenders) {
360  // procces new messages array ;
361  foreach ($aNewSenders as $iKey => $iSenderId) {
362  $iSenderId = (int)$iSenderId;
363 
364  // get some sender's info;
365  $aSenderInfo = getProfileInfo($iSenderId);
366  $aRegBoxes[$iSenderId] = array(
367  'last_message' => 0,
368  'registered' => 0,
369 
370  // sender's status text changed time;
371  'status_change' => $aSenderInfo['UserStatusMessageWhen'],
372  // sender's status;
373  'sender_status' => (get_user_online_status($iSenderId))
374  ? $aSenderInfo['UserStatus']
375  : 'offline',
376  );
377  }
378  }
379 
380  // preparing all boxes with messages ;
381  if ($aRegBoxes) {
382 
383  foreach ($aRegBoxes as $iSenderId => $aItems) {
384  $iSenderId = (int)$iSenderId;
385 
386  $iLastMessagesId = 0;
387  $iCountMessages = 0;
388 
389  $sChatBox = null;
390 
391  // check the chat box;
392  if (!$aItems['registered']) {
393  $aChatBox = $this->getChatBox($iSenderId);
394  $sChatBox = $aChatBox['chat_box'];
395 
396  $iLastMessagesId = $aChatBox['last_message'];
397  $iCountMessages = $aChatBox['count_messages'];
398  }
399 
400  // procces all current chat box's messages;
401  if (!$sChatBox) {
402  $aMessagesList = $this->getMessagesHistory($this->iLoggedMemberId,
403  $iSenderId, $aItems['last_message']);
404 
405  $iLastMessagesId = $aMessagesList['last_message'];
406  $iCountMessages = $aMessagesList['count_messages'];
407  $sMessagesList = $aMessagesList['messages_list'];
408  } else {
409  $sMessagesList = 'built-in';
410  }
411 
412  $aRet['senders'][] = array(
413  // contain sender id ;
414  'sender_id' => $iSenderId,
415 
416  // message block will draw only ones ;
417  'chat_box' => (!$aItems['registered']) ? $sChatBox : '',
418 
419  // contain messages block's messages list ;
420  'messages_list' => $sMessagesList,
421 
422  // contain the last update time of status text;
423  'status_update_time' => $aItems['status_change'],
424 
425  // contain sender's status;
426  'sender_status' => $aItems['sender_status'],
427 
428  // last sent message's Id;
429  'last_message' => $iLastMessagesId,
430 
431  // count of sent messages;
432  'count_messages' => $iCountMessages,
433  );
434  }
435  }
436 
437  // return result in JSON format ;
438  if ($aRet) {
439  header('Content-Type: application/json; charset=utf-8');
440  echo json_encode($aRet);
441  }
442  break;
443 
444  case 'close_window' :
445  if ($this->_oDb->closeChatWindow($this->iLoggedMemberId, $iRecipientId)) {
446  echo 'closed';
447  }
448  break;
449 
450  case 'get_status_text' :
451  $aSenderInfo = getProfileInfo($iRecipientId);
452  header('Content-Type: text/html; charset=utf-8');
453  echo $aSenderInfo['UserStatusMessage'];
454  break;
455 
456  case 'get_status' :
458  echo getTemplateIcon($oUserStatus->getStatusIcon($iRecipientId));
459  break;
460 
461  case 'get_sender_thumb' :
462  header('Content-Type: text/html; charset=utf-8');
463  echo $GLOBALS['oFunctions']->getMemberThumbnail($iRecipientId, 'none');
464  break;
465  }
466  }
467 
473  function getPrivacyPage()
474  {
475  global $site;
476 
477  $sOutputCode = null;
478  $sActionResult = null;
479 
480  if ($this->iLoggedMemberId) {
481 
482  // save changes;
483  if (!empty($_POST['allow_contact_to'])) {
484  $sActionResult = MsgBox(_t('_simple_messenger_privacy_page_group_created'), 3);
485  $this->_oDb->createPrivacyGroup($this->iLoggedMemberId, (int)$_POST['allow_contact_to']);
486  }
487 
488  $aPrivacyGroups = $this->oPrivacy->getGroupChooser($this->iLoggedMemberId, $this->aModuleInfo['uri'],
489  'contact', array(), _t('_simple_messenger_privacy_page_select_group'));
490 
491  $aForm = array(
492  'form_attrs' => array(
493  'action' => '',
494  'method' => 'post',
495  'name' => 'simple_messenger',
496  ),
497  'inputs' => array(
498 
499  'allow_contact_to' => $aPrivacyGroups,
500 
501  'submit' => array(
502  'type' => 'submit',
503  'value' => _t('_simple_messenger_privacy_page_submit_value'),
504  ),
505  ),
506  );
507 
508  $mixedValue = $this->_oDb->getPrivacyGroupValue($this->iLoggedMemberId);
509  if ((int)$mixedValue > 0) {
510  $aForm['inputs']['allow_contact_to']['value'] = (int)$mixedValue;
511  }
512 
514  $sOutputCode = $oForm->getCode();
515  }
516 
517  return $sActionResult . $sOutputCode;
518  }
519 
526  function getChatBox($iSender)
527  {
529 
530  $iSender = (int)$iSender;
531 
532  $oModuleDb = new ChWsbModuleDb();
534 
535  $sMemberThumb = $oFunctions->getMemberThumbnail($iSender, 'none');
536  $sMemberIcon = $oFunctions->getMemberIcon($iSender, 'none', false, '_plain');
537 
538  $aSenderInfo = getProfileInfo($iSender);
539  $sSenderLink = getProfileLink($iSender);
540 
541  $sStatusIcon = $oUserStatus->getStatusIcon($iSender);
542 
543  // language keys;
544  $aLanguageKeys = array(
545  'minimize' => _t('_simple_messenger_minimize_button'),
546  'close' => _t('_simple_messenger_close_button'),
547  'video_mess' => _t('_simple_messenger_switch_to_video'),
548  );
549 
550  // contain data for sender block;
551  $aSenderBlock = array(
552  'sender_thumb' => $sMemberThumb,
553  'sender_link' => $sSenderLink,
554  'status_text' => $aSenderInfo['UserStatusMessage'],
555  'sender_nick' => getNickName($aSenderInfo['ID']),
556 
557  'reduce_title' => $aLanguageKeys['minimize'],
558  'close_title' => $aLanguageKeys['close'],
559 
560  'history_window_id' => $this->aCoreSettings['history_block_prefix'] . $iSender,
561  'sender_id' => $iSender,
562 
563  'ch_if:video_messenger' => array(
564  'condition' => ($oModuleDb->isModule('messenger')),
565  'content' => array(
566  'sender_id' => $this->iLoggedMemberId,
567  'sender_passw' => getPassword($this->iLoggedMemberId),
568  'recipient_id' => $iSender,
569  'video_messenger' => $aLanguageKeys['video_mess'],
570  ),
571  ),
572  );
573 
574  $aMessagesList = $this->getMessagesHistory($this->iLoggedMemberId, $iSender, 0, false);
575 
576  // process nick name;
577  $sNickName = getNickName($aSenderInfo['ID']);
578  if (mb_strlen($sNickName) > $this->iMaxNickLength) {
579  $sNickName = mb_substr($sNickName, 0, $this->iMaxNickLength) . '...';
580  }
581 
582  $aTemplateKeys = array(
583 
584  'block_indent' => ($this->sMemberMenuPosition == 'bottom') ? 'bottom_indent' : 'top_indent',
585  'chat_block_position' => ($this->sMemberMenuPosition == 'bottom') ? 'chat_block_bottom_position' : 'chat_block_top_position',
586  'sender_nick' => $sNickName,
587  'sender_icon' => $sMemberIcon,
588 
589  'member_status' => $sStatusIcon,
590  'history_window_id' => $this->aCoreSettings['history_block_prefix'] . $iSender,
591 
592  'history_block_position' => ($this->sMemberMenuPosition == 'bottom') ? 'history_bottom_position' : 'history_top_position',
593  'recipient_id' => $iSender,
594 
595  'ch_if:menu_pos_top' => array(
596  'condition' => ($this->sMemberMenuPosition == 'bottom'),
597  'content' => $aSenderBlock,
598  ),
599 
600  'ch_if:menu_pos_bottom' => array(
601  'condition' => ($this->sMemberMenuPosition != 'bottom'),
602  'content' => $aSenderBlock,
603  ),
604 
605  // generate all members' chat histories;
606  'messages' => $aMessagesList['messages_list'],
607  );
608 
609  // generate the chat box's content;
610  $sOutputCode = $this->_oTemplate->parseHtmlByName('chat_block.html', $aTemplateKeys);
611 
612  $aRetArray = array(
613  'chat_box' => $sOutputCode,
614  'last_message' => $aMessagesList['last_message'],
615  'count_messages' => $aMessagesList['count_messages'],
616  );
617 
618  return $aRetArray;
619  }
620 
633  function getMessagesHistory($iRecipient, $iSender, $iLastMessageId = 0, $bLimit = true)
634  {
635  $sOutputMessages = '';
636 
637  if ($bLimit) {
638  $aMessages = $this->_oDb->getHistoryList($this->aCoreSettings, $iRecipient, $iSender,
639  $iLastMessageId, $this->aCoreSettings['limit_returning_messages']);
640  } else {
641  $aMessages = $this->_oDb->getHistoryList($this->aCoreSettings, $iRecipient,
642  $iSender, $iLastMessageId);
643  }
644 
645  // procces received mesasges;
646  $iLastMessageId = 0;
647  $iCountMessages = 0;
648 
649  if ($aMessages && is_array($aMessages)) {
650  foreach ($aMessages as $iKey => $aItems) {
651  $iKey = (int)$iKey;
652 
653  $iCountMessages++;
654  $iLastMessageId = $aMessages[$iKey]['ID'];
655 
656  $aTemplateKeys = array(
657  'message' => $aMessages[$iKey]['Message'],
658  'sender_nickname' => $aMessages[$iKey]['SenderID'] == $this->iLoggedMemberId ? _t('_simple_messenger_me') : getNickName($aMessages[$iKey]['SenderID']),
659  'date_add' => defineTimeInterval($aMessages[$iKey]['DateTS'], true, true),
660 
661  'owner_nick_extra' => ($aMessages[$iKey]['SenderID'] == $this->iLoggedMemberId)
662  ? 'sender'
663  : 'recipient',
664  );
665 
666  $sOutputMessages .= $this->_oTemplate
667  ->parseHtmlByName('message.html', $aTemplateKeys);
668  }
669  }
670 
671  if (!$iLastMessageId) {
672  $iLastMessageId = $this->_oDb->getLastMessagesId($iRecipient, $iSender);
673  }
674 
675  $aRetArray = array(
676  'messages_list' => $sOutputMessages,
677  'last_message' => $iLastMessageId,
678  'count_messages' => $iCountMessages,
679  );
680 
681  return $aRetArray;
682  }
683 
690  {
691  $sOutputCode = null;
692 
693  if (!$this->iLoggedMemberId) {
694  return;
695  }
696 
697  $this->_oTemplate->addJs(array(
698  'emoji-picker/js/jquery.emojipicker.js',
699  'emoji-picker/js/jquery.emojipicker.tw.js',
700  'messenger_core.js',
701  ));
702  $this->_oTemplate->addCss(array(
703  'plugins/emoji-picker/css/|jquery.emojipicker.css',
704  'simple_messenger.css',
705  'simple_messenger_phone.css',
706  ));
707 
708  $this->_oTemplate->addCssAsync('plugins/emoji-picker/css|jquery.emojipicker.tw.css'); // it's toooooooo big, so include it separately
709 
710  $sEmptyMessage = ch_js_string(_t('_simple_messenger_empty_message'));
711  $sWaitMessage = ch_js_string(_t('_simple_messenger_wait'));
712 
713  $sOutputCode .=
714  "
715  <script type=\"text/javascript\">
716  $(document).ready(function () {
717  var sMemberMenuOutputBlock = '{$this -> aCoreSettings['output_block']}';
718 
719  // if member menu was defined;
720  $('#' + sMemberMenuOutputBlock).each(
721  function(){
722  oSimpleMessenger.chatBoxSettings =
723  {
724  // the page which will process all AJAX queries ;
725  sPageReceiver : '{$this -> aCoreSettings['page_receiver']}',
726 
727  // contain block's id where the list of messages will be generated ;
728  sOutputBlockId : sMemberMenuOutputBlock,
729 
730  // time (in seconds) script checks for new messages ;
731  updateTime : {$this -> aCoreSettings['update_time']},
732 
733  // contain descriptor of the created timeout ;
734  updateTimeNotifyHandler : '',
735 
736  // the number of visible messages into chat box ;
737  iNumberVisibleMessages : {$this -> aCoreSettings['number_visible_messages']},
738 
739  // contains history block's prefix (block's name where will add the new messages);
740  sHistoryBlockPrefix : '{$this -> aCoreSettings['history_block_prefix']}',
741 
742  iParentContainerHeight : 0,
743 
744  // current member's menu position ;
745  sMemberMenuPosition : '{$this -> sMemberMenuPosition}',
746 
747  // wrapper for chat boxes;
748  sChatBox : 'simple_messenger_chat_block',
749 
750  // flashing signals amount of the non-active window ;
751  iMaxBlinkCounter : '{$this -> aCoreSettings['blink_counter']}'
752  };
753 
754  oSimpleMessenger.systemMessages.emptyMessage = '{$sEmptyMessage}';
755  oSimpleMessenger.systemMessages.waitMessage = '{$sWaitMessage}';
756 
757  var oMenuContainer = $(this).parents('div:first');
758  var iContainerHeight = parseInt( oMenuContainer.height() );
759 
760  oSimpleMessenger.chatBoxSettings.iParentContainerHeight = (iContainerHeight) ? iContainerHeight + 5 : 0;
761  oSimpleMessenger.oDefinedChatBoxes.boxes = Array();
762  oSimpleMessenger.messageNotification();
763  }
764  );
765  });
766  </script>
767  ";
768 
769  return $sOutputCode;
770  }
771 
779  function serviceGetMessengerField($iViewedMemberId)
780  {
781  if (!$this->iLoggedMemberId || !get_user_online_status($iViewedMemberId)
782  || $this->iLoggedMemberId == $iViewedMemberId
783  || isBlocked($iViewedMemberId, $this->iLoggedMemberId)
784  ) {
785  return '';
786  }
787 
788  $sOutputCode = '';
789  if ($this->isMessengerAlowed($iViewedMemberId)
790  && $this->isMessengerAlowed($this->iLoggedMemberId)
791  ) {
792 
793  $aTemplateKeys = array(
794  'message' => _t('_simple_messenger_chat_now') . '...',
795  'res_id' => $iViewedMemberId,
796  );
797 
798  $sOutputCode = $this->_oTemplate->parseHtmlByName('send_message_field.html', $aTemplateKeys);
799  }
800 
801  return $sOutputCode;
802  }
803 
810  {
811  $sOutputCode = '';
812  if ($this->isMessengerAlowed($this->iLoggedMemberId, true)) {
813  $sOutputCode = $this->getSimpleMessengerCore();
814  }
815 
816  return $sOutputCode;
817  }
818 
825  {
826  return array($this->getPrivacyPage(), array(), array(), false);
827  }
828 
835  function isMessengerAlowed($iMemberId, $isPerformAction = false)
836  {
837  //$this -> iLoggedMemberId
838  $this->_defineActions();
839  $aCheck = checkAction($iMemberId, CH_USE_SIMPLE_MESSENGER, $isPerformAction);
840 
842  }
843 
844  function _defineActions()
845  {
846  defineMembershipActions(array('use simple messenger'));
847  }
848 
849 }
header
</code > Be careful enabling this directive if you have a redirector script that does not use the< code > Location</code > HTTP header
Definition: URI.MungeResources.txt:10
ChSimpleMessengerModule\isMessengerAlowed
isMessengerAlowed($iMemberId, $isPerformAction=false)
Definition: ChSimpleMessengerModule.php:835
$aSenderInfo
$aSenderInfo
Definition: tellfriend.php:34
$sMessage
$sMessage
Definition: actions.inc.php:17
$iMemberId
$iMemberId
Definition: profile.php:91
ChTemplFormView
Definition: ChTemplFormView.php:11
ChSimpleMessengerModule\$aModuleInfo
$aModuleInfo
Definition: ChSimpleMessengerModule.php:64
MsgBox
MsgBox($sText, $iTimer=0)
Definition: design.inc.php:175
ChSimpleMessengerModule\$iMaxNickLength
$iMaxNickLength
Definition: ChSimpleMessengerModule.php:77
ch_js_string
ch_js_string($mixedInput, $iQuoteType=CH_ESCAPE_STR_AUTO)
Definition: utils.inc.php:1294
defineTimeInterval
defineTimeInterval($iTime, $bAutoDateConvert=true, $bShort=false)
Definition: utils.inc.php:831
CHECK_ACTION_RESULT_ALLOWED
const CHECK_ACTION_RESULT_ALLOWED
Definition: membership_levels.inc.php:60
$aModule
$aModule
Definition: classifieds.php:21
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
ch_get
ch_get($sName)
Definition: utils.inc.php:1664
$oAlert
$oAlert
Definition: embed.php:15
CHECK_ACTION_RESULT
const CHECK_ACTION_RESULT
Definition: membership_levels.inc.php:54
getPassword
getPassword( $ID='')
Definition: profiles.inc.php:475
php
ChWsbModuleDb
Definition: ChWsbModuleDb.php:12
ChSimpleMessengerModule\$sMemberMenuPosition
$sMemberMenuPosition
Definition: ChSimpleMessengerModule.php:70
ChSimpleMessengerPrivacy
Definition: ChSimpleMessengerPrivacy.php:11
ChSimpleMessengerModule
Definition: ChSimpleMessengerModule.php:58
ChSimpleMessengerModule\serviceGetMessengerField
serviceGetMessengerField($iViewedMemberId)
Definition: ChSimpleMessengerModule.php:779
ChSimpleMessengerModule\serviceGetSettings
serviceGetSettings()
Definition: ChSimpleMessengerModule.php:824
$oFunctions
$oFunctions
Definition: ChTemplFunctions.php:20
ChSimpleMessengerModule\getSimpleMessengerCore
getSimpleMessengerCore()
Definition: ChSimpleMessengerModule.php:689
$oForm
$oForm
Definition: host_tools.php:42
ChSimpleMessengerModule\actionGetOperation
actionGetOperation($sActionName, $iRecipientId=0)
Definition: ChSimpleMessengerModule.php:155
ChWsbAlerts
Definition: ChWsbAlerts.php:39
exit
exit
Definition: cart.php:21
$oModuleDb
$oModuleDb
Definition: classifieds.php:20
getParam
getParam($sParamName, $bUseCache=true)
Definition: db.inc.php:130
getLoggedId
getLoggedId()
Definition: profiles.inc.php:32
getTemplateIcon
getTemplateIcon($sFileName)
Definition: design.inc.php:193
getNickName
getNickName( $ID='')
Definition: profiles.inc.php:461
$site
$site['ver']
Definition: version.inc.php:8
ChSimpleMessengerModule\getPrivacyPage
getPrivacyPage()
Definition: ChSimpleMessengerModule.php:473
ChSimpleMessengerModule\getMessagesHistory
getMessagesHistory($iRecipient, $iSender, $iLastMessageId=0, $bLimit=true)
Definition: ChSimpleMessengerModule.php:633
ChSimpleMessengerModule\$aCoreSettings
$aCoreSettings
Definition: ChSimpleMessengerModule.php:67
ChWsbUserStatusView
Definition: ChWsbUserStatusView.php:9
global
if(!defined("GLOBAL_MODULE")) define("GLOBAL_MODULE" global
Definition: header.inc.php:25
ChWsbModule
Definition: ChWsbModule.php:41
_t
_t($key, $arg0="", $arg1="", $arg2="")
Definition: languages.inc.php:509
getProfileLink
getProfileLink( $iID, $sLinkAdd='')
Definition: profiles.inc.php:484
ChSimpleMessengerModule\$sModuleName
$sModuleName
Definition: ChSimpleMessengerModule.php:61
get_user_online_status
get_user_online_status($ID)
Definition: admin.inc.php:391
checkAction
checkAction($iMemberId, $actionID, $performAction=false, $iForcedProfID=0, $isCheckMemberStatus=true)
Definition: membership_levels.inc.php:313
isBlocked
isBlocked($iFirstProfile, $iSecondProfile)
Definition: utils.inc.php:128
defineMembershipActions
defineMembershipActions($aActionsAll, $sPrefix='CH_')
Definition: membership_levels.inc.php:744
ChSimpleMessengerModule\_defineActions
_defineActions()
Definition: ChSimpleMessengerModule.php:844
ChSimpleMessengerModule\serviceGetMessengerCore
serviceGetMessengerCore()
Definition: ChSimpleMessengerModule.php:809
getProfileInfo
getProfileInfo($iProfileID=0, $checkActiveStatus=false, $forceCache=false)
Definition: profiles.inc.php:249
$aForm
$aForm
Definition: forgot.php:43
ChSimpleMessengerModule\$oPrivacy
$oPrivacy
Definition: ChSimpleMessengerModule.php:76
ChSimpleMessengerModule\$iLoggedMemberId
$iLoggedMemberId
Definition: ChSimpleMessengerModule.php:73
$sMessagesList
$sMessagesList
Definition: mail.php:49
ChSimpleMessengerModule\$sHomeUrl
$sHomeUrl
Definition: ChSimpleMessengerModule.php:59
ChSimpleMessengerModule\__construct
__construct($aModule)
Definition: ChSimpleMessengerModule.php:92
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
$oUserStatus
$oUserStatus
Definition: short_profile_info.php:27
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
ChSimpleMessengerModule\getChatBox
getChatBox($iSender)
Definition: ChSimpleMessengerModule.php:526
$GLOBALS
$GLOBALS['iAdminPage']
Definition: advanced_settings.php:10