Open Journal Systems  3.3.0
NavigationMenuItemAssignmentDAO.inc.php
1 <?php
2 
18 import('lib.pkp.classes.navigationMenu.NavigationMenu');
19 import('lib.pkp.classes.navigationMenu.NavigationMenuItem');
20 import('lib.pkp.classes.navigationMenu.NavigationMenuItemAssignment');
21 
23 
29  function getById($navigationMenuItemAssignmentId) {
30  $params = array((int) $navigationMenuItemAssignmentId);
31  $result = $this->retrieve(
32  'SELECT * FROM navigation_menu_item_assignments WHERE navigation_menu_item_assignment_id = ?',
33  $params
34  );
35 
36  $returner = null;
37  if ($result->RecordCount() != 0) {
38  $returner = $this->_fromRow($result->GetRowAssoc(false));
39  }
40  $result->Close();
41  return $returner;
42  }
43 
48  public function newDataObject() {
49  return new NavigationMenuItemAssignment();
50  }
51 
56  public function getByMenuId($menuId) {
57  $params = array((int) $menuId);
58  $result = $this->retrieve(
59  'SELECT nmi.*,nmh.navigation_menu_id,nmh.parent_id,nmh.seq, nmh.navigation_menu_item_assignment_id
60  FROM navigation_menu_item_assignments as nmh
61  LEFT JOIN navigation_menu_items as nmi ON (nmh.navigation_menu_item_id = nmi.navigation_menu_item_id)
62  WHERE nmh.navigation_menu_id = ?
63  ORDER BY nmh.seq',
64  $params
65  );
66 
67  return new DAOResultFactory($result, $this, '_fromRow');
68  }
69 
75  public function getByMenuItemId($menuItemId) {
76  $params = array((int) $menuItemId);
77  $result = $this->retrieve(
78  'SELECT nmi.*, nmh.navigation_menu_id, nmh.parent_id, nmh.seq, nmh.navigation_menu_item_assignment_id
79  FROM navigation_menu_item_assignments as nmh
80  LEFT JOIN navigation_menu_items as nmi ON (nmh.navigation_menu_item_id = nmi.navigation_menu_item_id)
81  WHERE nmh.navigation_menu_item_id = ?
82  ORDER BY nmh.seq',
83  $params
84  );
85 
86  return new DAOResultFactory($result, $this, '_fromRow');
87  }
88 
95  public function getByNMIIdAndMenuIdAndParentId($navigationMenuItemId, $menuId, $parentId = null) {
96  $params = array(
97  (int) $menuId,
98  (int) $navigationMenuItemId
99  );
100  if ($parentId) $params[] = (int) $parentId;
101 
102  $result = $this->retrieve(
103  'SELECT nmh.*
104  FROM navigation_menu_item_assignments as nmh
105  WHERE nmh.navigation_menu_id = ?
106  AND nmh.navigation_menu_item_id = ?' .
107  ($parentId?' AND nmh.parent_id = ?':''),
108  $params
109  );
110 
111  $returner = null;
112  if ($result->RecordCount() != 0) {
113  $returner = $this->_fromRow($result->GetRowAssoc(false));
114  }
115  $result->Close();
116  return $returner;
117  }
118 
124  public function getByMenuIdAndParentId($menuId, $parentId) {
125  $params = array(
126  (int) $menuId,
127  (int) $parentId
128  );
129 
130  $result = $this->retrieve(
131  'SELECT nmh.*
132  FROM navigation_menu_item_assignments as nmh
133  WHERE nmh.navigation_menu_id = ?
134  AND nmh.parent_id = ?',
135  $params
136  );
137 
138  return new DAOResultFactory($result, $this, '_fromRow');
139  }
140 
147  public function _fromRow($row) {
148  $assignment = $this->newDataObject();
149  $assignment->setId($row['navigation_menu_item_assignment_id']);
150  $assignment->setMenuId($row['navigation_menu_id']);
151  $assignment->setMenuItemId($row['navigation_menu_item_id']);
152  $assignment->setParentId($row['parent_id']);
153  $assignment->setSequence($row['seq']);
154 
155  $this->getDataObjectSettings('navigation_menu_item_assignment_settings', 'navigation_menu_item_assignment_id', $row['navigation_menu_item_assignment_id'], $assignment);
156 
157  return $assignment;
158  }
159 
165  function updateObject($navigationMenuItemAssignment) {
166  $returner = $this->update(
167  'UPDATE navigation_menu_item_assignments
168  SET
169  navigation_menu_id = ?,
170  navigation_menu_item_id = ?,
171  parent_id = ?,
172  seq = ?,
173  WHERE navigation_menu_item_assignment_id = ?',
174  array(
175  (int) $navigationMenuItemAssignment->getMenuId(),
176  (int) $navigationMenuItemAssignment->getMenuItemId(),
177  (int) $navigationMenuItemAssignment->getParentId(),
178  (int) $navigationMenuItemAssignment->getSequence(),
179  (int) $navigationMenuItemAssignment->getId(),
180  )
181  );
182  $this->updateLocaleFields($navigationMenuItemAssignment);
183 
184  $this->unCacheRelatedNavigationMenus($navigationMenuItemAssignment->getId());
185 
186  return $returner;
187  }
188 
194  public function insertObject($assignment) {
195  $this->update(
196  'INSERT INTO navigation_menu_item_assignments
197  (navigation_menu_id, navigation_menu_item_id, parent_id, seq)
198  VALUES
199  (?, ?, ?, ?)',
200  array(
201  (int) $assignment->getMenuId(),
202  (int) $assignment->getMenuItemId(),
203  (int) $assignment->getParentId(),
204  (int) $assignment->getSequence(),
205  )
206  );
207 
208  // Add default title (of the navigationMenuItem)
209  $navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /* @var $navigationMenuItemDao NavigationMenuItemDAO */
210  $navigationMenuItem = $navigationMenuItemDao->getById($assignment->getMenuItemId());
211 
212  $assignment->setTitle($navigationMenuItem->getTitle(null), null);
213 
214  $assignment->setId($this->getInsertId());
215  $this->updateLocaleFields($assignment);
216 
217  $this->unCacheRelatedNavigationMenus($assignment->getId());
218 
219  return $assignment->getId();
220  }
221 
227  function deleteByMenuId($menuId) {
228  $navigationMenuItemAssignments = $this->getByMenuId($menuId);
229  while ($navigationMenuItemAssignment = $navigationMenuItemAssignments->next()) {
230  $this->deleteObject($navigationMenuItemAssignment);
231  }
232 
233  return true;
234  }
235 
241  function deleteByMenuItemId($menuItemId) {
242  $navigationMenuItemAssignments = $this->getByMenuItemId($menuItemId);
243  while ($navigationMenuItemAssignment = $navigationMenuItemAssignments->next()) {
244  $this->deleteObject($navigationMenuItemAssignment);
245  }
246 
247  return true;
248  }
249 
255  function deleteObject($navigationMenuItemAssignment) {
256  return $this->deleteById($navigationMenuItemAssignment->getId());
257  }
258 
264  function deleteById($navigationMenuItemAssignmentId) {
265  $this->unCacheRelatedNavigationMenus($navigationMenuItemAssignmentId);
266 
267  $this->update('DELETE FROM navigation_menu_item_assignment_settings WHERE navigation_menu_item_assignment_id = ?', (int) $navigationMenuItemAssignmentId);
268  $this->update('DELETE FROM navigation_menu_item_assignments WHERE navigation_menu_item_assignment_id = ?', (int) $navigationMenuItemAssignmentId);
269  }
270 
275  function getLocaleFieldNames() {
276  return array('title');
277  }
278 
283  function getInsertId() {
284  return $this->_getInsertId('navigation_menu_item_assignments', 'navigation_menu_item_assignment_id');
285  }
286 
291  function updateLocaleFields($navigationMenuItemAssignment) {
292  $this->updateDataObjectSettings('navigation_menu_item_assignment_settings', $navigationMenuItemAssignment, array(
293  'navigation_menu_item_assignment_id' => $navigationMenuItemAssignment->getId()
294  ));
295  }
296 
302  $navigationMenuItemAssignment = $this->getById($id);
303  if ($navigationMenuItemAssignment) {
304  $navigationMenuDao = \DAORegistry::getDAO('NavigationMenuDAO');
305  $cache = $navigationMenuDao->getCache($navigationMenuItemAssignment->getMenuId());
306  if ($cache) $cache->flush();
307  }
308  }
309 }
310 
311 
NavigationMenuItemAssignmentDAO\updateLocaleFields
updateLocaleFields($navigationMenuItemAssignment)
Definition: NavigationMenuItemAssignmentDAO.inc.php:291
DAOResultFactory
Wrapper around ADORecordSet providing "factory" features for generating objects from DAOs.
Definition: DAOResultFactory.inc.php:21
NavigationMenuItemAssignmentDAO\deleteObject
deleteObject($navigationMenuItemAssignment)
Definition: NavigationMenuItemAssignmentDAO.inc.php:255
NavigationMenuItemAssignmentDAO\unCacheRelatedNavigationMenus
unCacheRelatedNavigationMenus($id)
Definition: NavigationMenuItemAssignmentDAO.inc.php:301
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
NavigationMenuItemAssignmentDAO\newDataObject
newDataObject()
Definition: NavigationMenuItemAssignmentDAO.inc.php:48
NavigationMenuItemAssignmentDAO
Definition: NavigationMenuItemAssignmentDAO.inc.php:22
NavigationMenuItemAssignmentDAO\getByNMIIdAndMenuIdAndParentId
getByNMIIdAndMenuIdAndParentId($navigationMenuItemId, $menuId, $parentId=null)
Definition: NavigationMenuItemAssignmentDAO.inc.php:95
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
NavigationMenuItemAssignmentDAO\deleteByMenuItemId
deleteByMenuItemId($menuItemId)
Definition: NavigationMenuItemAssignmentDAO.inc.php:241
NavigationMenuItemAssignmentDAO\insertObject
insertObject($assignment)
Definition: NavigationMenuItemAssignmentDAO.inc.php:194
NavigationMenuItemAssignmentDAO\getInsertId
getInsertId()
Definition: NavigationMenuItemAssignmentDAO.inc.php:283
NavigationMenuItemAssignmentDAO\getById
getById($navigationMenuItemAssignmentId)
Definition: NavigationMenuItemAssignmentDAO.inc.php:29
NavigationMenuItemAssignmentDAO\updateObject
updateObject($navigationMenuItemAssignment)
Definition: NavigationMenuItemAssignmentDAO.inc.php:165
NavigationMenuItemAssignmentDAO\getLocaleFieldNames
getLocaleFieldNames()
Definition: NavigationMenuItemAssignmentDAO.inc.php:275
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
DAO\_getInsertId
_getInsertId($table='', $id='')
Definition: DAO.inc.php:255
DAO\getDataObjectSettings
getDataObjectSettings($tableName, $idFieldName, $idFieldValue, $dataObject)
Definition: DAO.inc.php:582
NavigationMenuItemAssignment
Basic class describing a NavigationMenuItemAssignment. Each assignment describes a NavigationMenuItem...
Definition: NavigationMenuItemAssignment.inc.php:19
NavigationMenuItemAssignmentDAO\getByMenuId
getByMenuId($menuId)
Definition: NavigationMenuItemAssignmentDAO.inc.php:56
NavigationMenuItemAssignmentDAO\getByMenuItemId
getByMenuItemId($menuItemId)
Definition: NavigationMenuItemAssignmentDAO.inc.php:75
NavigationMenuItemAssignmentDAO\deleteById
deleteById($navigationMenuItemAssignmentId)
Definition: NavigationMenuItemAssignmentDAO.inc.php:264
NavigationMenuItemAssignmentDAO\deleteByMenuId
deleteByMenuId($menuId)
Definition: NavigationMenuItemAssignmentDAO.inc.php:227
NavigationMenuItemAssignmentDAO\_fromRow
_fromRow($row)
Definition: NavigationMenuItemAssignmentDAO.inc.php:147
DAO\updateDataObjectSettings
updateDataObjectSettings($tableName, $dataObject, $idArray)
Definition: DAO.inc.php:488
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31
NavigationMenuItemAssignmentDAO\getByMenuIdAndParentId
getByMenuIdAndParentId($menuId, $parentId)
Definition: NavigationMenuItemAssignmentDAO.inc.php:124