18 import(
'lib.pkp.classes.navigationMenu.NavigationMenu');
19 import(
'lib.pkp.classes.navigationMenu.NavigationMenuItem');
20 import(
'lib.pkp.classes.navigationMenu.NavigationMenuItemAssignment');
29 function getById($navigationMenuItemAssignmentId) {
30 $params = array((
int) $navigationMenuItemAssignmentId);
32 'SELECT * FROM navigation_menu_item_assignments WHERE navigation_menu_item_assignment_id = ?',
37 if ($result->RecordCount() != 0) {
38 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
57 $params = array((
int) $menuId);
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 = ?
76 $params = array((
int) $menuItemId);
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 = ?
98 (
int) $navigationMenuItemId
100 if ($parentId) $params[] = (int) $parentId;
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 = ?':
''),
112 if ($result->RecordCount() != 0) {
113 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
132 FROM navigation_menu_item_assignments as nmh
133 WHERE nmh.navigation_menu_id = ?
134 AND nmh.parent_id = ?',
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']);
155 $this->
getDataObjectSettings(
'navigation_menu_item_assignment_settings',
'navigation_menu_item_assignment_id', $row[
'navigation_menu_item_assignment_id'], $assignment);
166 $returner = $this->
update(
167 'UPDATE navigation_menu_item_assignments
169 navigation_menu_id = ?,
170 navigation_menu_item_id = ?,
173 WHERE navigation_menu_item_assignment_id = ?',
175 (
int) $navigationMenuItemAssignment->getMenuId(),
176 (
int) $navigationMenuItemAssignment->getMenuItemId(),
177 (
int) $navigationMenuItemAssignment->getParentId(),
178 (
int) $navigationMenuItemAssignment->getSequence(),
179 (
int) $navigationMenuItemAssignment->getId(),
196 'INSERT INTO navigation_menu_item_assignments
197 (navigation_menu_id, navigation_menu_item_id, parent_id, seq)
201 (
int) $assignment->getMenuId(),
202 (
int) $assignment->getMenuItemId(),
203 (
int) $assignment->getParentId(),
204 (
int) $assignment->getSequence(),
210 $navigationMenuItem = $navigationMenuItemDao->getById($assignment->getMenuItemId());
212 $assignment->setTitle($navigationMenuItem->getTitle(
null),
null);
219 return $assignment->getId();
228 $navigationMenuItemAssignments = $this->
getByMenuId($menuId);
229 while ($navigationMenuItemAssignment = $navigationMenuItemAssignments->next()) {
243 while ($navigationMenuItemAssignment = $navigationMenuItemAssignments->next()) {
256 return $this->
deleteById($navigationMenuItemAssignment->getId());
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);
276 return array(
'title');
284 return $this->
_getInsertId(
'navigation_menu_item_assignments',
'navigation_menu_item_assignment_id');
293 'navigation_menu_item_assignment_id' => $navigationMenuItemAssignment->getId()
302 $navigationMenuItemAssignment = $this->
getById($id);
303 if ($navigationMenuItemAssignment) {
305 $cache = $navigationMenuDao->getCache($navigationMenuItemAssignment->getMenuId());
306 if ($cache) $cache->flush();