Cheetah
ChWsbAlertsResponceMatch.php
Go to the documentation of this file.
1 <?php
2 
8 require_once( CH_DIRECTORY_PATH_INC . "match.inc.php");
9 ch_import('ChWsbAlerts');
10 ch_import('ChWsbDb');
11 ch_import('ChWsbEmailTemplates');
12 
14 {
15  function response($oAlert)
16  {
17  $iRecipientId = $oAlert->iObject;
18 
19  if ($oAlert->sUnit == 'profile') {
20  switch ($oAlert->sAction) {
21  case 'join':
22  case 'edit':
23  $this->_checkProfileMatch($iRecipientId, $oAlert->sAction);
24  break;
25 
26  case 'change_status':
27  $this->_profileChangeStatus();
28  break;
29 
30  case 'delete':
31  $this->_profileDelete($iRecipientId);
32  break;
33  }
34  }
35  }
36 
38  {
39  if (!getParam('enable_match'))
40  return;
41 
43 
44  if ($aProfile['Status'] == 'Active' && ($aProfile['UpdateMatch'] || $sAction == 'join')) {
46 
47  // clear field "UpdateMatch"
48  $oDb->query("UPDATE `Profiles` SET `UpdateMatch` = 0 WHERE `ID`= $iProfileId");
49 
50  // clear cache
51  $oDb->query("DELETE FROM `sys_profiles_match`");
52 
53  // get send mails
54  $aSendMails = $oDb->getRow("SELECT `profiles_match` FROM `sys_profiles_match_mails` WHERE `profile_id` = ?", [$iProfileId]);
55  $aSend = !empty($aSendMails) ? unserialize($aSendMails['profiles_match']) : array();
56 
57  $aProfiles = getMatchProfiles($iProfileId);
58  foreach ($aProfiles as $iProfId) {
59  if (isset($aSend[(int)$iProfId]))
60  continue;
61 
63  if (1 != $aProfile['EmailNotify'] || 'Unconfirmed' == $aProfile['Status'])
64  continue;
65 
66  $oEmailTemplate = new ChWsbEmailTemplates();
67  $aMessage = $oEmailTemplate->parseTemplate('t_CupidMail', array(
68  'StrID' => $iProfId,
69  'MatchProfileLink' => getProfileLink($iProfileId)
70  ), $iProfId);
71 
72  if (!empty($aProfile) && $aProfile['Status'] == 'Active')
73  $oDb->query("INSERT INTO `sys_sbs_queue`(`email`, `subject`, `body`) VALUES('" . $aProfile['Email'] . "', '" . process_db_input($aMessage['subject'], CH_TAGS_NO_ACTION, CH_SLASHES_NO_ACTION) . "', '" . process_db_input($aMessage['body'], CH_TAGS_NO_ACTION, CH_SLASHES_NO_ACTION) . "')");
74 
75  $aSend[(int)$iProfId] = 0;
76  }
77 
78  if (empty($aSendMails))
79  $oDb->query("INSERT INTO `sys_profiles_match_mails`(`profile_id`, `profiles_match`) VALUES($iProfileId, '" . serialize($aSend) . "')");
80  else
81  $oDb->query("UPDATE `sys_profiles_match_mails` SET `profiles_match` = '" . serialize($aSend) . "' WHERE `profile_id` = $iProfileId");
82  }
83  }
84 
86  {
88 
89  $oDb->query("DELETE FROM `sys_profiles_match`");
90  $oDb->query("DELETE FROM `sys_profiles_match_mails` WHERE `profile_id` = $iProfileId");
91  }
92 
94  {
96  $oDb->query("DELETE FROM `sys_profiles_match`");
97  }
98 }
ChWsbAlertsResponse
Definition: ChWsbAlerts.php:127
process_db_input
process_db_input($sText, $iStripTags=0)
Definition: utils.inc.php:256
ChWsbEmailTemplates
Definition: ChWsbEmailTemplates.php:11
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
$oAlert
$oAlert
Definition: embed.php:15
ChWsbAlertsResponceMatch
Definition: ChWsbAlertsResponceMatch.php:14
php
CH_SLASHES_NO_ACTION
const CH_SLASHES_NO_ACTION
Definition: utils.inc.php:30
ChWsbAlertsResponceMatch\_profileDelete
_profileDelete($iProfileId)
Definition: ChWsbAlertsResponceMatch.php:85
getParam
getParam($sParamName, $bUseCache=true)
Definition: db.inc.php:130
getMatchProfiles
getMatchProfiles($iProfileId, $bForce=false, $sSort='none')
Definition: match.inc.php:19
$aProfile
$aProfile
Definition: flash.php:14
$oDb
global $oDb
Definition: db.inc.php:39
CH_TAGS_NO_ACTION
const CH_TAGS_NO_ACTION
Definition: utils.inc.php:21
ChWsbAlertsResponceMatch\_profileChangeStatus
_profileChangeStatus()
Definition: ChWsbAlertsResponceMatch.php:93
getProfileLink
getProfileLink( $iID, $sLinkAdd='')
Definition: profiles.inc.php:484
ChWsbAlertsResponceMatch\response
response($oAlert)
Definition: ChWsbAlertsResponceMatch.php:15
getProfileInfo
getProfileInfo($iProfileID=0, $checkActiveStatus=false, $forceCache=false)
Definition: profiles.inc.php:249
ChWsbAlertsResponceMatch\_checkProfileMatch
_checkProfileMatch($iProfileId, $sAction)
Definition: ChWsbAlertsResponceMatch.php:37
$iProfId
$iProfId
Definition: short_profile_info.php:22
$sAction
$sAction
Definition: categories.php:274
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
ChWsbDb\getInstance
static getInstance()
Definition: ChWsbDb.php:82
$iProfileId
if( $sMembersList) $iProfileId
Definition: communicator.php:29