Open Journal Systems  3.3.0
UserSettingsDAO.inc.php
1 <?php
2 
18 class UserSettingsDAO extends DAO {
27  function getSetting($userId, $name, $contextId = CONTEXT_SITE) {
28  $result = $this->retrieve(
29  'SELECT setting_value,
30  setting_type
31  FROM user_settings
32  WHERE user_id = ? AND
33  setting_name = ? AND
34  assoc_type = ? AND
35  assoc_id = ?',
36  array(
37  (int) $userId,
38  $name,
40  (int) $contextId
41  )
42  );
43 
44  if ($result->RecordCount() != 0) {
45  $row = $result->getRowAssoc(false);
46  $returner = $this->convertFromDB($row['setting_value'], $row['setting_type']);
47  } else {
48  $returner = null;
49  }
50  $result->Close();
51  return $returner;
52  }
53 
62  function getUsersBySetting($name, $value, $type = null, $contextId = CONTEXT_SITE) {
63  $value = $this->convertToDB($value, $type);
64  $result = $this->retrieve(
65  'SELECT u.*
66  FROM users u,
67  user_settings s
68  WHERE u.user_id = s.user_id AND
69  s.setting_name = ? AND
70  s.setting_value = ? AND
71  s.assoc_type = ? AND
72  s.assoc_id = ?',
73  array($name, $value, Application::getContextAssocType(), (int) $contextId)
74  );
75 
76  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
77  return new DAOResultFactory($result, $userDao, '_returnUserFromRow');
78  }
79 
86  function getSettingsByContextId($userId, $contextId = CONTEXT_SITE) {
87  $result = $this->retrieve(
88  'SELECT setting_name,
89  setting_value,
90  setting_type
91  FROM user_settings
92  WHERE user_id = ? AND
93  assoc_type = ?
94  AND assoc_id = ?',
95  array((int) $userId, Application::getContextAssocType(), (int) $contextId)
96  );
97 
98  $userSettings = array();
99  while (!$result->EOF) {
100  $row = $result->getRowAssoc(false);
101  $value = $this->convertFromDB($row['setting_value'], $row['setting_type']);
102  $userSettings[$row['setting_name']] = $value;
103  $result->MoveNext();
104  }
105  $result->Close();
106  return $userSettings;
107  }
108 
117  function updateSetting($userId, $name, $value, $type = null, $contextId = CONTEXT_SITE) {
118  $result = $this->retrieve(
119  'SELECT COUNT(*)
120  FROM user_settings
121  WHERE user_id = ? AND
122  setting_name = ?
123  AND assoc_type = ?
124  AND assoc_id = ?',
125  array((int) $userId, $name, Application::getContextAssocType(), (int) $contextId)
126  );
127 
128  $value = $this->convertToDB($value, $type);
129  if ($result->fields[0] == 0) {
130  $this->update(
131  'INSERT INTO user_settings
132  (user_id, setting_name, assoc_type, assoc_id, setting_value, setting_type)
133  VALUES
134  (?, ?, ?, ?, ?, ?)',
135  array(
136  (int) $userId,
137  $name,
139  (int) $contextId,
140  $value,
141  $type
142  )
143  );
144  } else {
145  $this->update(
146  'UPDATE user_settings
147  SET setting_value = ?,
148  setting_type = ?
149  WHERE user_id = ? AND
150  setting_name = ? AND
151  assoc_type = ? AND
152  assoc_id = ?',
153  array(
154  $value,
155  $type,
156  (int) $userId,
157  $name,
159  (int) $contextId
160  )
161  );
162  }
163 
164  $result->Close();
165  }
166 
173  function deleteSetting($userId, $name, $contextId = CONTEXT_SITE) {
174  $this->update(
175  'DELETE FROM user_settings WHERE user_id = ? AND setting_name = ? AND assoc_type = ? AND assoc_id = ?',
176  array((int) $userId, $name, Application::getContextAssocType(), (int) $contextId)
177  );
178  }
179 
184  function deleteSettings($userId) {
185  return $this->update(
186  'DELETE FROM user_settings WHERE user_id = ?', (int) $userId
187  );
188  }
189 }
190 
DAOResultFactory
Wrapper around ADORecordSet providing "factory" features for generating objects from DAOs.
Definition: DAOResultFactory.inc.php:21
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
DAO\convertToDB
convertToDB($value, &$type)
Definition: DAO.inc.php:401
UserSettingsDAO\getSettingsByContextId
getSettingsByContextId($userId, $contextId=CONTEXT_SITE)
Definition: UserSettingsDAO.inc.php:86
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
DAO\convertFromDB
convertFromDB($value, $type)
Definition: DAO.inc.php:341
Application\getContextAssocType
static getContextAssocType()
Definition: Application.inc.php:199
UserSettingsDAO\getUsersBySetting
getUsersBySetting($name, $value, $type=null, $contextId=CONTEXT_SITE)
Definition: UserSettingsDAO.inc.php:62
UserSettingsDAO
Operations for retrieving and modifying user settings.
Definition: UserSettingsDAO.inc.php:18
UserSettingsDAO\updateSetting
updateSetting($userId, $name, $value, $type=null, $contextId=CONTEXT_SITE)
Definition: UserSettingsDAO.inc.php:117
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
UserSettingsDAO\deleteSetting
deleteSetting($userId, $name, $contextId=CONTEXT_SITE)
Definition: UserSettingsDAO.inc.php:173
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31
UserSettingsDAO\getSetting
getSetting($userId, $name, $contextId=CONTEXT_SITE)
Definition: UserSettingsDAO.inc.php:27
UserSettingsDAO\deleteSettings
deleteSettings($userId)
Definition: UserSettingsDAO.inc.php:184