Cheetah
notifies.php
Go to the documentation of this file.
1 <?php
2 
8 define('CH_SECURITY_EXCEPTIONS', true);
10  'POST.body',
11  'REQUEST.body',
12 );
13 
14 require_once( '../inc/header.inc.php' );
15 require_once( CH_DIRECTORY_PATH_INC . 'design.inc.php' );
16 require_once( CH_DIRECTORY_PATH_INC . 'admin_design.inc.php' );
17 require_once( CH_DIRECTORY_PATH_INC . 'utils.inc.php' );
18 require_once( CH_DIRECTORY_PATH_INC . 'prof.inc.php' );
19 
20 ch_import('ChTemplFormView');
21 ch_import('ChWsbEmailTemplates');
22 ch_import('ChWsbPaginate');
23 ch_import('ChWsbSubscription');
24 ch_import('ChTemplSearchResult');
25 
26 $logged['admin'] = member_auth(1, true, true);
27 
29 
30 if(getPostFieldIfSet('queue_message') && getPostFieldIfSet('msgs_id')) {
31  set_time_limit(1800);
32  $sActionResult = QueueMessage();
33 }
34 if (getPostFieldIfSet('add_message'))
35  $action = 'add';
36 if(getPostFieldIfSet('delete_message') && getPostFieldIfSet('msgs_id'))
37  $sActionResult = DeleteMessage() ? _t('_adm_mmail_Message_was_deleted') : _t('_adm_mmail_Message_was_not_deleted');
38 if(getPostFieldIfSet('preview_message'))
39  $action = 'preview';
40 if(ch_get('action') == 'empty' )
41  $sActionResult = EmptyQueue() ? _t('_adm_mmail_Queue_empty') : _t('_adm_mmail_Queue_emptying_failed');
42 
43 if (isset($_POST['adm-ms-delete'])) {
44  foreach($_POST['members'] as $iMemberId)
45  $oSubscription->unsubscribe(array(
46  'type' => 'visitor',
47  'id' => $iMemberId
48  ));
49 }
50 
51 $aPages = array (
52  'massmailer' => array (
53  'index' => 13,
54  'title' => _t('_adm_mmail_title'),
55  'url' => CH_WSB_URL_ADMIN . 'notifies.php?mode=massmailer',
56  'func' => 'PageCodeMassmailer',
57  'func_params' => array(),
58  ),
59  'manage_subscribers' => array (
60  'index' => 9,
61  'title' => _t('_adm_page_cpt_manage_subscribers'),
62  'url' => CH_WSB_URL_ADMIN . 'notifies.php?mode=manage_subscribers',
63  'func' => 'PageCodeManageSubscribers',
64  'func_params' => array($oSubscription),
65  ),
66  'settings' => array (
67  'index' => 9,
68  'title' => _t('_Settings'),
69  'url' => CH_WSB_URL_ADMIN . 'notifies.php?mode=settings',
70  'func' => 'PageCodeSettings',
71  'func_params' => array(),
72  ),
73 );
74 
75 if (!isset($_GET['mode']) || !isset($aPages[$_GET['mode']]))
76  $sMode = 'massmailer';
77 else
78  $sMode = $_GET['mode'];
79 
80 $aTopItems = array();
81 foreach ($aPages as $k => $r)
82  $aTopItems['dbmenu_' . $k] = array(
83  'href' => $r['url'],
84  'title' => $r['title'],
85  'active' => $k == $sMode ? 1 : 0
86  );
87 
89 $_page = array(
90  'name_index' => $iNameIndex,
91  'css_name' => array('forms_adv.css', 'manage_subscribers.css'),
92  'header' => _t('_adm_mmail_title')
93 );
94 
95 $_page_cont[$iNameIndex] = call_user_func_array($aPages[$sMode]['func'], $aPages[$sMode]['func_params']);
96 
98 
99 function PageCodeMassmailer ()
100 {
101  global $sActionResult, $action;
102  return array(
103  'page_code_status' => PrintStatus($sActionResult),
104  'page_code_new_message' => getEmailMessage($action),
105  'page_code_preview_message' => $action == 'preview' && $_POST['body'] ? PreviewMessage() : '',
106  'page_code_all_messages' => getAllMessagesBox(),
107  'page_code_queue_message' => getQueueMessage()
108  );
109 }
110 
112 {
113  $iStart = ch_get('start') !== false ? (int)ch_get('start') : 0;
114  $iPerPage = 20;
115  $oPaginate = new ChWsbPaginate(array(
116  'start' => $iStart,
117  'per_page' => $iPerPage,
118  'count' => $oSubscription->getSubscribersCount(),
119  'page_url' => CH_WSB_URL_ADMIN . 'notifies.php?mode=manage_subscribers&start={start}',
120 
121  ));
122 
123  $sControls = ChTemplSearchResult::showAdminActionsPanel('adm-ms-form', array(
124  'adm-ms-delete' => _t('_adm_btn_ms_delete')
125  ), 'members');
126 
127  $aSubscribers = $oSubscription->getSubscribers(CH_WSB_SBS_TYPE_VISITOR, $iStart, $iPerPage);
128 
129  $s = $GLOBALS['oAdmTemplate']->parseHtmlByName('manage_subscribers.html', array(
130  'ch_repeat:items' => is_array($aSubscribers) && !empty($aSubscribers) ? $aSubscribers : MsgBox(_t('_Empty')),
131  'paginate' => $oPaginate->getPaginate(),
132  'controls' => $sControls
133  ));
134 
135  return array('page_main_code' => DesignBoxAdmin(_t('_adm_page_cpt_manage_subscribers'), $s, $GLOBALS['aTopItems'], '', 1));
136 }
137 
139 {
140  global $aPages;
141 
142  ch_import('ChWsbAdminSettings');
144 
145  $sResults = false;
146  if (isset($_POST['save']) && isset($_POST['cat']))
147  $sResult = $oSettings->saveChanges($_POST);
148 
149  $s = $oSettings->getForm();
150  if ($sResult)
151  $s = $sResult . $s;
152 
153  return array('page_main_code' => DesignBoxAdmin(_t('_Settings'), $s, $GLOBALS['aTopItems'], '', 11));
154 }
155 
156 function PrintStatus($sActionResult)
157 {
158  $sSubjC = _t('_Subject');
159  $sEmailsC = _t('_adm_mmail_emails');
160  $sEmptyQueueC = _t('_adm_mmail_Empty_Queue');
161  $sCupidStatusC = _t('_adm_mmail_Cupid_mails_status');
162 
163  $sSingleEmailsTRs = '';
164 
165  // Select count of emails in queue per one message
166  $iCount = (int)$GLOBALS['MySQL']->getOne("SELECT COUNT(`id`) AS `count` FROM `sys_sbs_queue`");
167  if ($iCount <= 0)
168  $sSingleEmailsTRs .= "<tr><td align=center><b class='sys-adm-failed'>" . _t('_adm_mmail_no_emails_in_queue') . "</b></td></tr>";
169  else
170  $sSingleEmailsTRs .= "<tr><td align='center'>" . _t('_adm_mmail_mails_in_queue', $iCount) . "</td></tr>";
171 
172  $sEmptyQueueTable = '';
173  // If queue is not empty then show link to clear it
174  if($iCount > 0) {
175  $sEmptyQueueTable = "
176  <div class=\"ch-def-hr\"></div>
177  <table class=\"text\" width=\"50%\" style=\"height: 30px;\">
178  <tr class=\"table\">
179  <td align=\"center\" colspan=\"3\">
180  <a href=\"" . CH_WSB_URL_ADMIN . "notifies.php?action=empty\">{$sEmptyQueueC}</a>
181  </td>
182  </tr>
183  </table>
184  <div class=\"ch-def-hr\"></div>";
185  }
186 
187  ob_start();
188 ?>
189 <center>
190  <table cellspacing=2 cellpadding=2 class=text border=0>
191  <tr class=header align="center"><td><?=_t('_adm_mmail_Queue_status');?>:</td></tr>
192  <?=$sSingleEmailsTRs;?>
193  </table>
194  <?=$sEmptyQueueTable;?>
195 </center>
196 <?php
197  $sResult = ob_get_clean();
198 
199  if(!empty($sActionResult))
200  $sResult = MsgBox($sActionResult, 3) . $sResult;
201 
202  return DesignBoxAdmin(_t('_adm_mmail_title'), $sResult, $GLOBALS['aTopItems'], '', 11);
203 }
204 
206 {
207  $aMessages = $GLOBALS['MySQL']->getAll("SELECT `id`, `subject`, (`id`= ? OR `subject`= ? ) AS `selected` FROM `sys_sbs_messages`", [
208  getPostFieldIfSet('msgs_id'),
209  getPostFieldIfSet('Subj')
210  ]);
211 
212  $sAllMessagesOptions = '';
213  foreach($aMessages as $aMessage)
214  $sAllMessagesOptions .= "<option value=\"" . $aMessage['id'] . "\" " . ($aMessage['selected'] ? "selected=\"selected\"" : "") . ">" . $aMessage['subject'] . "</option>";
215 
216  ob_start();
217 ?>
218 <form name="form_messages" method="POST" action="<?=$GLOBALS['site']['url_admin'] . 'notifies.php';?>">
219  <input type="hidden" name="action" value="view">
220  <center class="text"><?= _t('_Messages'); ?>:&nbsp;
221  <select name=msgs_id onChange="javascript: document.forms['form_messages'].submit();">
222  <option value=0><?=_t('_None');?></option>
223  <?=$sAllMessagesOptions;?>
224  </select>
225  </center>
226 </form>
227 <?php
228  $sResult = ob_get_clean();
229 
230  return DesignBoxContent(_t('_adm_mmail_All_Messages'), $sResult, 11);
231 }
232 
234 {
235  $sErrorC = _t('_Error Occured');
236  $sApplyChangesC = _t('_Save');
237  $sSubjectC = _t('_Subject');
238  $sBodyC = _t('_adm_mmail_Body');
239  $sTextBodyC = _t('_adm_mmail_Text_email_body');
240  $sPreviewMessageC = _t('_Preview');
241  $sDeleteC = _t('_Delete');
242 
243  $sMessageID = (int)getPostFieldIfSet('msgs_id');
244 
245  $sSubject = $sBody = "";
246  if(isset($_POST['body']) && getPostFieldIfSet('action') != 'delete' ) {
247  $sSubject = process_pass_data( $_POST['subject'] );
248  $sBody = process_pass_data( $_POST['body'] );
249  } elseif ( $sMessageID )
250  list($sSubject, $sBody) = $GLOBALS['MySQL']->getRow("SELECT `subject`, `body` FROM `sys_sbs_messages` WHERE `id`= ? LIMIT 1", [$sMessageID], PDO::FETCH_NUM);
251 
252  $sSubject = htmlspecialchars($sSubject);
253 
254  $aForm = array(
255  'form_attrs' => array(
256  'name' => 'sys_sbs_messages',
257  'action' => $GLOBALS['site']['url_admin'] . 'notifies.php',
258  'method' => 'post',
259  ),
260  'params' => array (
261  'db' => array(
262  'table' => 'sys_sbs_messages',
263  'key' => 'ID',
264  'submit_name' => 'add_message',
265  ),
266  ),
267  'inputs' => array(
268  'subject' => array(
269  'type' => 'text',
270  'name' => 'subject',
271  'value' => $sSubject,
272  'caption' => $sSubjectC,
273  'required' => true,
274  'checker' => array (
275  'func' => 'length',
276  'params' => array(2,128),
277  'error' => $sErrorC,
278  ),
279  'db' => array (
280  'pass' => 'Xss',
281  ),
282  ),
283  'body' => array(
284  'type' => 'textarea',
285  'name' => 'body',
286  'value' => $sBody,
287  'caption' => $sBodyC,
288  'required' => true,
289  'html' => 2,
290  'html_no_link_conversion' => true,
291  'attrs' => array('style' => "height:400px;"),
292  'checker' => array (
293  'func' => 'length',
294  'params' => array(10,32000),
295  'error' => $sErrorC,
296  ),
297  'db' => array (
298  'pass' => 'XssHtml',
299  ),
300  ),
301  'msgs_id' => array(
302  'type' => 'hidden',
303  'name' => 'msgs_id',
304  'value' => $sMessageID,
305  ),
306  'control' => array (
307  'type' => 'input_set',
308  array(
309  'type' => 'submit',
310  'name' => 'add_message',
311  'caption' => $sApplyChangesC,
312  'value' => $sApplyChangesC,
313  ),
314  array(
315  'type' => 'submit',
316  'name' => 'preview_message',
317  'caption' => $sPreviewMessageC,
318  'value' => $sPreviewMessageC,
319  ),
320  )
321  ),
322  );
323  if($sMessageID) {
324  $aForm['inputs']['control'][] = array (
325  'type' => 'submit',
326  'name' => 'delete_message',
327  'caption' => $sDeleteC,
328  'value' => $sDeleteC,
329  );
330  }
331 
332  $sResult = '';
334  $oForm->initChecker();
335  if ($oForm->isSubmittedAndValid()) {
336  if ($sAction == 'add') {
337  if ($sMessageID > 0) {
338  $oForm->update($sMessageID);
339  } else {
340  $sMessageID = $oForm->insert();
341  }
342  }
343 
344  $sResult = $sMessageID > 0 ? MsgBox(_t('_Success'), 3) : MsgBox($sErrorC);
345  }
346 
347  return DesignBoxContent(_t('_adm_mmail_Email_message'), $sResult . $oForm->getCode(), 11);
348 }
349 
350 function getQueueMessage()
351 {
352  global $aPreValues;
353 
354  if ( isset($_POST['msgs_id']) ) {
355  $aSexValues = $aAgeValues = array(
356  'all' => _t('_All'),
357  'selectively' => _t('_Selectively'),
358  );
359 
360  $aSexesValues = getFieldValues('Sex');
361  foreach($aSexesValues as $sKey => $sValue)
362  $aSexesValues[$sKey] = _t($sValue);
363 
364  $aStartAgesOptions = array();
365  $aEndAgesOptions = array();
366  $gl_search_start_age = (int)getParam('search_start_age');
367  $gl_search_end_age = (int)getParam('search_end_age');
368  for ( $i = $gl_search_start_age ; $i <= $gl_search_end_age ; $i++ ) {
369  $aStartAgesOptions[$i] = $i;
370  }
371  for ( $i = $gl_search_start_age ; $i <= $gl_search_end_age ; $i++ ) {
372  $aEndAgesOptions[$i] = $i;
373  }
374 
375  $aCountryOptions = array('all' => _t('_All'));
376  foreach ( $aPreValues['Country'] as $key => $value ) {
377  $aCountryOptions[$key] = _t($value['LKey']);
378  }
379 
380  $aMembershipOptions = array('all' => _t('_All'));
381  $memberships_arr = getMemberships();
382  foreach ( $memberships_arr as $membershipID => $membershipName ) {
383  if ($membershipID == MEMBERSHIP_ID_NON_MEMBER) continue;
384  $aMembershipOptions[$membershipID] = $membershipName;
385  }
386 
387  $iRecipientMembers = (int)$GLOBALS['MySQL']->getOne("SELECT COUNT(`ID`) AS `count` FROM `Profiles` WHERE `Status`<>'Unconfirmed' AND `EmailNotify` = 1 LIMIT 1");
388  $aForm = array(
389  'form_attrs' => array(
390  'name' => 'form_queue',
391  'class' => 'form_queue_form',
392  'action' => $GLOBALS['site']['url_admin'] . 'notifies.php',
393  'method' => 'post',
394  ),
395  'inputs' => array (
396  'Send1' => array(
397  'type' => 'checkbox',
398  'name' => 'send_to_subscribers',
399  'label' => _t('_adm_mmail_Send_to_subscribers'),
400  'value' => 'non',
401  'checked' => true
402  ),
403  'Send2' => array(
404  'type' => 'checkbox',
405  'name' => 'send_to_members',
406  'label' => _t('_adm_mmail_Send_to_members'),
407  'value' => 'memb',
408  'checked' => true,
409  'attrs' => array(
410  'onClick' => 'setControlsState();',
411  ),
412  'info' => _t('_adm_mmail_Send_to_members_info', $iRecipientMembers),
413  ),
414  'Sex' => array (
415  'type' => 'select',
416  'name' => 'sex',
417  'caption' => _t('_adm_mmail_Sex'),
418  'value' => 'all',
419  'values' => $aSexValues,
420  'attrs' => array(
421  'onClick' => 'setSexState();',
422  ),
423  ),
424  'Sexes' => array (
425  'type' => 'checkbox_set',
426  'name' => 'sexes',
427  'values' => $aSexesValues,
428  'value' => array_keys($aSexesValues)
429  ),
430  'Age' => array (
431  'type' => 'select',
432  'name' => 'age',
433  'caption' => _t('_adm_mmail_Age'),
434  'value' => 'all',
435  'values' => $aAgeValues,
436  'attrs' => array(
437  'onClick' => 'setAgeState();',
438  ),
439  ),
440  'StartAge' => array (
441  'type' => 'select',
442  'name' => 'age_start',
443  'caption' => _t('_from'),
444  'values' => $aStartAgesOptions,
445  'value' => $gl_search_start_age,
446  ),
447  'EndAge' => array (
448  'type' => 'select',
449  'name' => 'age_end',
450  'caption' => _t('_to'),
451  'values' => $aEndAgesOptions,
452  'value' => $gl_search_end_age,
453  ),
454  'Country' => array (
455  'type' => 'select',
456  'name' => 'country',
457  'caption' => _t('_Country'),
458  'values' => $aCountryOptions,
459  'value' => 'all',
460  ),
461  'Membership' => array (
462  'type' => 'select',
463  'name' => 'membership',
464  'caption' => _t('_adm_mmi_membership_levels'),
465  'values' => $aMembershipOptions,
466  'value' => 'all',
467  ),
468  'msgs_id' => array (
469  'type' => 'hidden',
470  'name' => 'msgs_id',
471  'value' => (int)$_POST['msgs_id'],
472  ),
473  'submit' => array (
474  'type' => 'submit',
475  'name' => 'queue_message',
476  'value' => _t('_Submit'),
477  )
478  )
479  );
480 
482  $sTmplResult = $GLOBALS['oAdmTemplate']->parseHtmlByName('notifies_filter.html', array());
483  return DesignBoxContent(_t('_adm_mmail_Queue_message'), $oForm->getCode() . $sTmplResult, 11);
484  }
485 }
486 
487 function QueueMessage()
488 {
489  global $MySQL;
490 
491  $iEmails = 0;
492  $sReturn = "";
493  $iMsgId = (int)$_POST['msgs_id'];
494 
495  $aOriginalMessage = $MySQL->getRow("SELECT `id`, `subject`, `body` FROM `sys_sbs_messages` WHERE `id`= ? LIMIT 1", [$iMsgId]);
496  if(!is_array($aOriginalMessage) || empty($aOriginalMessage)) {
497  return _t('_adm_mmail_Failed_to_queue_emails_X', $iMsgId);
498  }
499 
500  //--- Send to all subscribers
501  $oEmailTemplates = new ChWsbEmailTemplates();
502  if($_POST['send_to_subscribers'] == 'non') {
503  $sSql = "SELECT
504  `tsu`.`name` AS `user_name`,
505  `tsu`.`email` AS `user_email`,
506  `tst`.`template` AS `template_name`
507  FROM `sys_sbs_types` AS `tst`
508  INNER JOIN `sys_sbs_entries` AS `tse` ON `tst`.`id`=`tse`.`subscription_id` AND `tse`.`subscriber_type`='" . CH_WSB_SBS_TYPE_VISITOR . "'
509  INNER JOIN `sys_sbs_users` AS `tsu` ON `tse`.`subscriber_id`=`tsu`.`id`
510  WHERE
511  `tst`.`unit`='system' AND
512  `tst`.`action`='mass_mailer'";
513  $aSubscribers = $MySQL->getAll($sSql);
514 
515  foreach($aSubscribers as $aSubscriber) {
516  if(empty($aSubscriber['user_email']))
517  continue;
518 
519  $aMessage = $oEmailTemplates->parseTemplate($aSubscriber['template_name'], array(
520  'RealName' => $aSubscriber['user_name'],
521  'Email' => $aSubscriber['user_email'],
522  'MessageSubject' => $aOriginalMessage['subject'],
523  'MessageText' => $aOriginalMessage['body']
524  ));
525 
526  $mixedResult = $MySQL->query("INSERT INTO `sys_sbs_queue`(`email`, `subject`, `body`) VALUES('" . $aSubscriber['user_email'] . "', '" . process_db_input($aMessage['subject'], CH_TAGS_STRIP) . "', '" . process_db_input($aMessage['body'], CH_TAGS_VALIDATE) . "')");
527  if($mixedResult === false) {
528  $sReturn .= _t('_adm_mmail_Email_not_added_to_queue_X', $aSubscriber['user_email']);
529  continue;
530  }
531  $iEmails++;
532  }
533  }
534 
535  //--- Send to all profiles
536  if($_POST['send_to_members'] == 'memb') {
537  //--- Sex filter
538  $sex_filter_sql = '';
539  $sex = $_POST['sex'];
540  if($sex != 'all' && !empty($_POST['sexes']) && is_array($_POST['sexes']))
541  $sex_filter_sql = "AND `Sex` IN ('" . implode("','", $_POST['sexes']) . "')";
542 
543  //--- Age filter
544  $age_filter_sql = '';
545  $age = $_POST['age'];
546  if($age != 'all') {
547  $age_start = (int)$_POST['age_start'];
548  $age_end = (int)$_POST['age_end'];
549  if ( $age_start && $age_end ) {
550  $date_start = (int)( date( "Y" ) - $age_start );
551  $date_end = (int)( date( "Y" ) - $age_end - 1 );
552  $date_start = $date_start . date( "-m-d" );
553  $date_end = $date_end . date( "-m-d" );
554  $age_filter_sql = "AND (TO_DAYS(`DateOfBirth`) BETWEEN TO_DAYS('{$date_end}') AND (TO_DAYS('{$date_start}')+1))";
555  }
556  }
557 
558  //--- Country filter
559  $country_filter_sql = '';
560  if($_POST['country'] != 'all') {
561  $country = process_db_input($_POST['country']);
562  $country_filter_sql = "AND `Country` = '{$country}'";
563  }
564 
565  //--- Membership filter
566  $membershipID = $_POST['membership'] != 'all' ? (int)$_POST['membership'] : -1;
567 
568  $aMembers = $MySQL->getAll("SELECT `ID` AS `id`, `Email` AS `email` FROM `Profiles` WHERE `Status` <> 'Unconfirmed' AND `EmailNotify` = 1 AND (`Couple` = '0' OR `Couple` > `ID`) {$sex_filter_sql} {$age_filter_sql} {$country_filter_sql}");
569  foreach($aMembers as $aMember) {
570  if(empty($aMember['email']))
571  continue;
572 
573  //--- Dynamic membership filter
574  if ($membershipID != -1) {
575  $membership_info = getMemberMembershipInfo($aMember['id']);
576  if ($membership_info['ID'] != $membershipID )
577  continue;
578  }
579 
580  $aMessage = $oEmailTemplates->parseTemplate('t_AdminEmail', array(
581  'MessageSubject' => $aOriginalMessage['subject'],
582  'MessageText' => $aOriginalMessage['body']
583  ), $aMember['id']);
584 
585  $mixedResult = $MySQL->query("INSERT INTO `sys_sbs_queue`(`email`, `subject`, `body`) VALUES('" . $aMember['email'] . "', '" . process_db_input($aMessage['subject'], CH_TAGS_STRIP) . "', '" . process_db_input($aMessage['body'], CH_TAGS_VALIDATE) . "')");
586  if($mixedResult === false) {
587  $sReturn .= _t('_adm_mmail_Email_not_added_to_queue_X', $aMember['email']);
588  continue;
589  }
590  $iEmails++;
591  }
592  }
593 
594  $sReturn .= _t('_adm_mmail_X_emails_was_succ_added_to_queue', (int)$iEmails);
595  return $sReturn;
596 }
597 
598 function PreviewMessage()
599 {
600  $oEmailTemplate = new ChWsbEmailTemplates();
601  $aMessage = $oEmailTemplate->parseTemplate('t_AdminEmail', array(
602  'MessageText' => process_pass_data($_POST['body'])
603  ));
604 
605  return DesignBoxContent(_t('_Preview'), $aMessage['body'], 11);
606 }
607 
608 function DeleteMessage()
609 {
610  $mixedResult = $GLOBALS['MySQL']->query("DELETE FROM `sys_sbs_messages` WHERE `id`='". (int)$_POST['msgs_id'] . "' LIMIT 1");
611  if($mixedResult === false)
612  return $mixedResult;
613 
614  $_POST['msgs_id'] = 0;
615  return true;
616 }
617 
618 function EmptyQueue()
619 {
620  return db_res("TRUNCATE TABLE `sys_sbs_queue`");
621 }
process_db_input
process_db_input($sText, $iStripTags=0)
Definition: utils.inc.php:256
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
$oSettings
$oSettings
Definition: advanced_settings.php:20
$iMemberId
$iMemberId
Definition: profile.php:91
ChTemplFormView
Definition: ChTemplFormView.php:11
$iNameIndex
$iNameIndex
Definition: notifies.php:88
MsgBox
MsgBox($sText, $iTimer=0)
Definition: design.inc.php:175
DeleteMessage
DeleteMessage()
Definition: notifies.php:608
getPostFieldIfSet
getPostFieldIfSet($sField)
Definition: utils.inc.php:1954
name
Core AllowHostnameUnderscore underscores are not permitted in host most browsers do the right thing when faced with an underscore in the host name
Definition: Core.AllowHostnameUnderscore.txt:11
$sResult
$sResult
Definition: advanced_settings.php:26
CH_TAGS_VALIDATE
const CH_TAGS_VALIDATE
Definition: utils.inc.php:24
getFieldValues
getFieldValues($sField, $sUseLKey='LKey')
Definition: design.inc.php:128
$aPages
if(isset($_POST['adm-ms-delete'])) $aPages
Definition: notifies.php:51
ChWsbEmailTemplates
Definition: ChWsbEmailTemplates.php:11
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
getQueueMessage
getQueueMessage()
Definition: notifies.php:350
ch_get
ch_get($sName)
Definition: utils.inc.php:1664
php
$aTopItems
$aTopItems
Definition: notifies.php:80
getEmailMessage
getEmailMessage($sAction)
Definition: notifies.php:233
ChWsbSubscription\getInstance
static getInstance()
Definition: ChWsbSubscription.php:67
$iPerPage
else $iPerPage
Definition: browse.php:61
EmptyQueue
EmptyQueue()
Definition: notifies.php:618
getMemberships
getMemberships($purchasableOnly=false)
Definition: membership_levels.inc.php:670
$oForm
$oForm
Definition: host_tools.php:42
DesignBoxAdmin
DesignBoxAdmin($sTitle, $sContent, $mixedTopItems='', $sBottomItems='', $iIndex=1)
Definition: admin_design.inc.php:50
PrintStatus
PrintStatus($sActionResult)
Definition: notifies.php:156
$_GET
$_GET['debug']
Definition: index.php:67
PageCodeManageSubscribers
PageCodeManageSubscribers($oSubscription)
Definition: notifies.php:111
getParam
getParam($sParamName, $bUseCache=true)
Definition: db.inc.php:130
PreviewMessage
PreviewMessage()
Definition: notifies.php:598
table
and distribute a copy of this License along with the Library You may charge a fee for the physical act of transferring a and you may at your option offer warranty protection in exchange for a fee You may modify your copy or copies of the Library or any portion of thus forming a work based on the and copy and distribute such modifications or work under the terms of Section provided that you also meet all of these other than as an argument passed when the facility is then you must make a good faith effort to ensure in the event an application does not supply such function or table
Definition: license.txt:180
$sMode
else $sMode
Definition: notifies.php:78
PageCodeMassmailer
PageCodeMassmailer()
Definition: notifies.php:99
type
if(!defined("USER_STATUS_TYPE")) define("USER_STATUS_TYPE" type
Definition: constants.inc.php:13
ChWsbPaginate
Definition: ChWsbPaginate.php:69
global
if(!defined("GLOBAL_MODULE")) define("GLOBAL_MODULE" global
Definition: header.inc.php:25
PageCodeAdmin
PageCodeAdmin($oTemplate=null)
Definition: admin_design.inc.php:45
_t
_t($key, $arg0="", $arg1="", $arg2="")
Definition: languages.inc.php:509
PageCodeSettings
PageCodeSettings()
Definition: notifies.php:138
value
URI Base such as when URI MakeAbsolute is on You may use a non absolute URI for this value
Definition: URI.Base.txt:11
member_auth
member_auth($member=0, $error_handle=true, $bAjx=false)
Definition: admin.inc.php:262
method
and that you are informed that you can do these things To protect your we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it For if you distribute copies of the whether gratis or for a you must give the recipients all the rights that we gave you You must make sure that receive or can get the source code If you link other code with the you must provide complete object files to the so that they can relink them with the library after making changes to the library and recompiling it And you must show them these terms so they know their rights We protect your rights with a two step method
Definition: license.txt:49
ChWsbAdminSettings
Definition: ChWsbAdminSettings.php:35
MEMBERSHIP_ID_NON_MEMBER
const MEMBERSHIP_ID_NON_MEMBER
Definition: membership_levels.inc.php:48
$aChSecurityExceptions
$aChSecurityExceptions
Definition: notifies.php:9
CH_TAGS_STRIP
const CH_TAGS_STRIP
Definition: utils.inc.php:22
$action
$action
Definition: index.php:66
$s
$s
Definition: embed.php:13
getMemberMembershipInfo
getMemberMembershipInfo($iMemberId, $iTime='', $bCheckUserStatus=false)
Definition: membership_levels.inc.php:234
process_pass_data
process_pass_data($text, $strip_tags=0)
Definition: utils.inc.php:290
db_res
db_res($query, $bindings=[])
Definition: db.inc.php:39
$_page
$_page
Definition: notifies.php:89
$aForm
$aForm
Definition: forgot.php:43
ChBaseSearchResult\showAdminActionsPanel
static showAdminActionsPanel($sWrapperId, $aButtons, $sCheckboxName='entry', $bSelectAll=true, $bSelectAllChecked=false, $sCustomHtml='')
Definition: ChBaseSearchResult.php:81
CH_WSB_SBS_TYPE_VISITOR
const CH_WSB_SBS_TYPE_VISITOR
Definition: ChWsbSubscription.php:10
$logged
$logged['admin']
Definition: notifies.php:26
$sAction
$sAction
Definition: categories.php:274
DesignBoxContent
DesignBoxContent($title, $content, $db_num=0, $caption_item='', $bottom_item='')
Definition: design.inc.php:78
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
$_page_cont
$_page_cont[$iNameIndex]
Definition: notifies.php:95
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
QueueMessage
QueueMessage()
Definition: notifies.php:487
form
iii in the case of the organization that transmits the broadcast Work means the literary and or artistic work offered under the terms of this License including without limitation any production in the scientific and artistic whatever may be the mode or form of its expression including digital form
Definition: license.txt:19
$GLOBALS
$GLOBALS['iAdminPage']
Definition: advanced_settings.php:10
getAllMessagesBox
getAllMessagesBox()
Definition: notifies.php:205
$oSubscription
$oSubscription
Definition: notifies.php:28