Open Journal Systems  3.3.0
FilterGroupDAO.inc.php
1 <?php
2 
17 import('lib.pkp.classes.filter.FilterGroup');
18 
19 class FilterGroupDAO extends DAO {
20 
27  function insertObject(&$filterGroup) {
28  $this->update(
29  sprintf('INSERT INTO filter_groups
30  (symbolic, display_name, description, input_type, output_type)
31  VALUES (?, ?, ?, ?, ?)'),
32  array(
33  $filterGroup->getSymbolic(),
34  $filterGroup->getDisplayName(),
35  $filterGroup->getDescription(),
36  $filterGroup->getInputType(),
37  $filterGroup->getOutputType()
38  )
39  );
40  $filterGroup->setId((int)$this->getInsertId());
41  return $filterGroup->getId();
42  }
43 
49  function &getObject(&$filterGroup) {
50  return $this->getObjectById($filterGroup->getId());
51  }
52 
58  function &getObjectById($filterGroupId) {
59  $result = $this->retrieve(
60  'SELECT * FROM filter_groups'.
61  ' WHERE filter_group_id = ?', $filterGroupId);
62 
63  $filterGroup = null;
64  if ($result->RecordCount() != 0) {
65  $filterGroup = $this->_fromRow($result->GetRowAssoc(false));
66  }
67 
68  $result->Close();
69  return $filterGroup;
70  }
71 
77  function &getObjectBySymbolic($filterGroupSymbolic) {
78  $result = $this->retrieve(
79  'SELECT * FROM filter_groups'.
80  ' WHERE symbolic = ?', $filterGroupSymbolic);
81 
82  $filterGroup = null;
83  if ($result->RecordCount() != 0) {
84  $filterGroup = $this->_fromRow($result->GetRowAssoc(false));
85  }
86 
87  $result->Close();
88  return $filterGroup;
89  }
90 
95  function updateObject(&$filterGroup) {
96  $this->update(
97  'UPDATE filter_groups
98  SET symbolic = ?,
99  display_name = ?,
100  description = ?,
101  input_type = ?,
102  output_type = ?
103  WHERE filter_group_id = ?',
104  array(
105  $filterGroup->getSymbolic(),
106  $filterGroup->getDisplayName(),
107  $filterGroup->getDescription(),
108  $filterGroup->getInputType(),
109  $filterGroup->getOutputType(),
110  (integer)$filterGroup->getId()
111  )
112  );
113  }
114 
120  function deleteObject(&$filterGroup) {
121  $filterDao = DAORegistry::getDAO('FilterDAO'); /* @var $filterDao FilterDAO */
122 
123  // Check whether there are still templates saved for this filter group.
124  $filterTemplates = $filterDao->getObjectsByGroup($filterGroup->getSymbolic(), null, true, false);
125  if (!empty($filterTemplates)) return false;
126 
127  // Check whether there are still filters saved for this filter group.
128  $filters = $filterDao->getObjectsByGroup($filterGroup->getSymbolic(), null, false, false);
129  if (!empty($filters)) return false;
130 
131  // Delete the group if it's empty.
132  $this->update('DELETE FROM filter_groups WHERE filter_group_id = ?', $filterGroup->getId());
133 
134  return true;
135  }
136 
142  function deleteObjectById($filterGroupId) {
143  $filterGroupId = (int)$filterGroupId;
144  $filterGroup =& $this->getObjectById($filterGroupId);
145  if (!is_a($filterGroup, 'FilterGroup')) return false;
146  return $this->deleteObject($filterGroup);
147  }
148 
154  function deleteObjectBySymbolic($filterGroupSymbolic) {
155  $filterGroup =& $this->getObjectBySymbolic($filterGroupSymbolic);
156  if (!is_a($filterGroup, 'FilterGroup')) return false;
157  return $this->deleteObject($filterGroup);
158  }
159 
160 
161  //
162  // Protected helper methods
163  //
168  function getInsertId() {
169  return parent::_getInsertId('filter_groups', 'filter_group_id');
170  }
171 
176  function newDataObject() {
177  return new FilterGroup();
178  }
179 
180 
181  //
182  // Private helper methods
183  //
191  function _fromRow($row) {
192  // Instantiate the filter group.
193  $filterGroup = $this->newDataObject();
194 
195  // Configure the filter group.
196  $filterGroup->setId((int)$row['filter_group_id']);
197  $filterGroup->setSymbolic($row['symbolic']);
198  $filterGroup->setDisplayName($row['display_name']);
199  $filterGroup->setDescription($row['description']);
200  $filterGroup->setInputType($row['input_type']);
201  $filterGroup->setOutputType($row['output_type']);
202 
203  return $filterGroup;
204  }
205 }
206 
207 
FilterGroup
Class that represents filter groups.
Definition: FilterGroup.inc.php:45
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
FilterGroupDAO\deleteObject
deleteObject(&$filterGroup)
Definition: FilterGroupDAO.inc.php:120
FilterGroupDAO\getObjectById
& getObjectById($filterGroupId)
Definition: FilterGroupDAO.inc.php:58
FilterGroupDAO\newDataObject
newDataObject()
Definition: FilterGroupDAO.inc.php:176
FilterGroupDAO\getInsertId
getInsertId()
Definition: FilterGroupDAO.inc.php:168
FilterGroupDAO\_fromRow
_fromRow($row)
Definition: FilterGroupDAO.inc.php:191
FilterGroupDAO\getObject
& getObject(&$filterGroup)
Definition: FilterGroupDAO.inc.php:49
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
FilterGroupDAO\updateObject
updateObject(&$filterGroup)
Definition: FilterGroupDAO.inc.php:95
FilterGroupDAO
Operations for retrieving and modifying FilterGroup objects.
Definition: FilterGroupDAO.inc.php:19
FilterGroupDAO\deleteObjectById
deleteObjectById($filterGroupId)
Definition: FilterGroupDAO.inc.php:142
FilterGroupDAO\insertObject
insertObject(&$filterGroup)
Definition: FilterGroupDAO.inc.php:27
FilterGroupDAO\deleteObjectBySymbolic
deleteObjectBySymbolic($filterGroupSymbolic)
Definition: FilterGroupDAO.inc.php:154
FilterGroupDAO\getObjectBySymbolic
& getObjectBySymbolic($filterGroupSymbolic)
Definition: FilterGroupDAO.inc.php:77
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31