Cheetah
All Classes Namespaces Files Functions Variables Pages
ChWsbEmailTemplates.php
Go to the documentation of this file.
1 <?php
2 
8 ch_import('ChWsbPaginate');
9 
11 {
13 
17  function __construct()
18  {
19  $sLang = getParam('lang_default');
20  if(empty($sLang))
21  $sLang = 'en';
22 
23  $this->iDefaultLangId = $GLOBALS['MySQL']->getOne("SELECT `ID` FROM `sys_localization_languages` WHERE `Name`='" . $sLang . "' LIMIT 1");
24  }
25 
35  function setTemplate( $sTemplateName, $sTemplateSubj, $sTemplateBody, $iLangID )
36  {
37  if ( !db_value("SELECT `ID` FROM `sys_email_templates` WHERE `Name` = '" . process_db_input($sTemplateName) . "' AND `LangID` = '{$iLangID}'") ) {
38  $sQuery =
39  "
40  INSERT INTO
41  `sys_email_templates` (`Name`, `Subject`, `Body`, `LangID`)
42  VALUES
43  (
44  '" . process_db_input($sTemplateName) . "',
45  '" . process_db_input($sTemplateSubj) . "',
46  '" . process_db_input($sTemplateBody) . "',
47  '" . (int) $iLangID . "'
48  )
49  ";
50 
51  $sMessage = 'Template was created';
52  } else {
53  $sQuery =
54  "
55  UPDATE
56  `sys_email_templates`
57  SET
58  `Subject` = '" . process_db_input($sTemplateSubj) . "',
59  `Body` = '" . process_db_input($sTemplateBody) . "'
60  WHERE
61  `Name` = '" . process_db_input($sTemplateName) . "'
62  AND
63  `LangID` = '" . (int) $iLangID . "'
64  LIMIT 1
65  ";
66 
67  $sMessage = 'Template was updated';
68  }
69 
70  db_res($sQuery);
71  return $this -> genTemplatesForm( $sTemplateName, $iLangID, $sMessage ) ;
72  }
73 
81  function getTemplate($sTemplateName, $iMemberId = 0 )
82  {
83  if($iMemberId != 0) {
85  $iUseLang = $aProfile['LangID'] ? $aProfile['LangID'] : $this->iDefaultLangId;
86  } else {
87  $iUseLang = $this->iDefaultLangId;
88  }
89 
90  $sSql = "SELECT `Subject`, `Body` FROM `sys_email_templates` WHERE `Name`= ? AND (`LangID` = ? OR `LangID` = ?) ORDER BY `LangID` DESC LIMIT 1";
91  return $GLOBALS['MySQL']->getRow($sSql, [$sTemplateName, $iUseLang, 0]);
92  }
93 
94  function parseTemplate($sTemplateName, $aTemplateKeys, $iMemberId = 0)
95  {
96  $aTemplate = $this->getTemplate($sTemplateName, $iMemberId);
97 
98  return array(
99  'subject' => $this->parseContent($aTemplate['Subject'], $aTemplateKeys, $iMemberId),
100  'body' => $this->parseContent($aTemplate['Body'], $aTemplateKeys, $iMemberId)
101  );
102  }
103  function parseContent($sContent, $aKeys, $iMemberId = 0)
104  {
105  $aResultKeys = $this->getDefaultKeys();
106  if($iMemberId != 0) {
108 
109  $aResultKeys = array_merge($aResultKeys, array(
110  'recipientID' => $aProfile['ID'],
111  'RealName' => getNickName($aProfile['ID']),
112  'NickName' => getNickName($aProfile['ID']),
113  'Username' => getUsername($aProfile['ID']),
114  'RecipientUrl'=> getProfileLink($aProfile['ID']),
115  'Email' => $aProfile['Email'],
116  'Password' => $aProfile['Password'],
117  'SiteName' => getParam('site_title'),
118  ));
119  }
120  if(is_array($aKeys))
121  $aResultKeys = array_merge($aResultKeys, $aKeys);
122 
123  return $GLOBALS['oSysTemplate']->parseHtmlByContent($sContent, $aResultKeys, array('<', '>'));
124  }
125 
126  function getDefaultKeys()
127  {
128  return array(
129  'Domain' => $GLOBALS['site']['url'],
130  'SiteName' => $GLOBALS['site']['title'],
131  'CheetahEmailFooter' => getParam('enable_cheetah_footer') ? _t('_powered_by_Cheetah') : '',
132  );
133  }
134 }
process_db_input
process_db_input($sText, $iStripTags=0)
Definition: utils.inc.php:256
$sMessage
$sMessage
Definition: actions.inc.php:17
$iMemberId
$iMemberId
Definition: profile.php:91
ChWsbEmailTemplates\__construct
__construct()
Definition: ChWsbEmailTemplates.php:17
ChWsbEmailTemplates
Definition: ChWsbEmailTemplates.php:11
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
php
ChWsbEmailTemplates\getDefaultKeys
getDefaultKeys()
Definition: ChWsbEmailTemplates.php:126
getParam
getParam($sParamName, $bUseCache=true)
Definition: db.inc.php:130
$aProfile
$aProfile
Definition: flash.php:14
getNickName
getNickName( $ID='')
Definition: profiles.inc.php:461
getUsername
getUsername( $ID='')
Definition: profiles.inc.php:443
ChWsbEmailTemplates\parseTemplate
parseTemplate($sTemplateName, $aTemplateKeys, $iMemberId=0)
Definition: ChWsbEmailTemplates.php:94
$sContent
$sContent
Definition: bottom_menu_compose.php:169
_t
_t($key, $arg0="", $arg1="", $arg2="")
Definition: languages.inc.php:509
getProfileLink
getProfileLink( $iID, $sLinkAdd='')
Definition: profiles.inc.php:484
ChWsbEmailTemplates\$iDefaultLangId
$iDefaultLangId
Definition: ChWsbEmailTemplates.php:12
db_res
db_res($query, $bindings=[])
Definition: db.inc.php:39
db_value
db_value($query, $bindings=[], $error_checking=true, $index=0)
Definition: db.inc.php:98
ChWsbEmailTemplates\setTemplate
setTemplate( $sTemplateName, $sTemplateSubj, $sTemplateBody, $iLangID)
Definition: ChWsbEmailTemplates.php:35
getProfileInfo
getProfileInfo($iProfileID=0, $checkActiveStatus=false, $forceCache=false)
Definition: profiles.inc.php:249
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
ChWsbEmailTemplates\parseContent
parseContent($sContent, $aKeys, $iMemberId=0)
Definition: ChWsbEmailTemplates.php:103
ChWsbEmailTemplates\getTemplate
getTemplate($sTemplateName, $iMemberId=0)
Definition: ChWsbEmailTemplates.php:81
$GLOBALS
$GLOBALS['iAdminPage']
Definition: advanced_settings.php:10