Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
inbox_prefs.inc
1 <?php
18 require_once SQ_LIB_PATH.'/config/prefs.inc';
19 
31 class Inbox_Prefs extends Prefs
32 {
33 
34  var $pref_vars = Array (
35  'SQ_INBOX_MAIL_PER_PAGE' => Array(
36  'name' => 'inbox_pref_backend_mail_per_page',
37  'description' => 'You can specify the number of emails per page',
38  'default' => 20,
39  'protected' => FALSE,
40  ),
41  );
42 
43 
48  function inboxPrefs($pref_file='')
49  {
50  $this->Prefs($pref_file);
51 
52  }//end inboxPrefs()
53 
54 
65  function paintBackend(&$o, $have_lock, $pref=NULL)
66  {
67  $is_root = $GLOBALS['SQ_SYSTEM']->userRoot();
68  $is_admin = ($is_root || $GLOBALS['SQ_SYSTEM']->userSystemAdmin());
69 
70  if (is_null($pref) || $pref == 'SQ_INBOX_MAIL_PER_PAGE') {
71  if (is_null($pref)) {
72  $o->openField(translate($this->pref_vars['SQ_INBOX_MAIL_PER_PAGE']['name']));
73  }
74 
75  if ($have_lock && $is_admin) {
76  text_box('prefs[SQ_INBOX_MAIL_PER_PAGE]', $this->pref_vars['SQ_INBOX_MAIL_PER_PAGE']['default'], 5);
77  } else {
78  echo array_get_index($this->pref_vars['SQ_INBOX_MAIL_PER_PAGE'], 'default', 5);
79  }
80 
81  if (is_null($pref)) $o->closeField();
82  }//end if
83 
84  return TRUE;
85 
86  }//end paintBackend()
87 
88 
99  function processBackend($o, $have_lock, $pref=NULL)
100  {
101 
102  $is_root = $GLOBALS['SQ_SYSTEM']->userRoot();
103  $is_admin = ($is_root || $GLOBALS['SQ_SYSTEM']->userSystemAdmin());
104  if (!$is_admin) return FALSE;
105 
106  /* $changed = FALSE; */
107 
108  // Backend page size
109  if (isset($_POST['prefs']['SQ_INBOX_MAIL_PER_PAGE'])) {
110 
111  // Not an integer = user mistake, or possible script injection?
112  if (!is_numeric($_POST['prefs']['SQ_INBOX_MAIL_PER_PAGE'])) {
113  trigger_localised_error('IBOX0001', E_USER_WARNING);
114  return FALSE;
115  }
116  $mail_number = (int)$_POST['prefs']['SQ_INBOX_MAIL_PER_PAGE'];
117 
118  // Page size needs to be at least 1
119  if ($mail_number <= 0) {
120  trigger_localised_error('IBOX0001', E_USER_WARNING);
121  return FALSE;
122  }
123 
124  $this->pref_vars['SQ_INBOX_MAIL_PER_PAGE']['default'] = $mail_number;
125 
126  /* $changed = TRUE; */
127  }
128 
129 
130  return TRUE;
131 
132  }//end processBackend()
133 
134 
135 }//end class
136 
137 ?>