/** * Alter QubitMenu data * * @return QubitMigrate107 this object */ protected function alterQubitMenus() { // Remove "import/export" menu // difficult to just rename because both the mainmenu and the submenu share the 'import/export' name in 1.0.7 // so, remove both and add a new 'import' mainmenu and 'import xml' sub-menu $importExportMenuKey = $this->getRowKey('QubitMenu', 'name', 'import/export'); if ($importExportMenuKey) { $this->data['QubitMenu'] = QubitMigrate::cascadeDelete($this->data['QubitMenu'], $importExportMenuKey); } // Remove "upload" menu // some 1.0.8-dev sites had "upload" menus so add this remove just to be sure $uploadMenuKey = $this->getRowKey('QubitMenu', 'name', 'upload'); if ($uploadMenuKey) { $this->data['QubitMenu'] = QubitMigrate::cascadeDelete($this->data['QubitMenu'], $uploadMenuKey); } // Add 'import' menu $importMenu = array('QubitMenu_mainmenu_import' => array('id' => '<?php echo QubitMenu::IMPORT_ID."\\n" ?>', 'parent_id' => '<?php echo QubitMenu::MAIN_MENU_ID."\\n" ?>', 'source_culture' => 'en', 'name' => 'import', 'path' => 'object/importSelect', 'label' => array('en' => 'Import', 'es' => 'importar', 'fa' => 'وارد كردن', 'fr' => 'importer', 'it' => 'importa', 'nl' => 'import', 'pt' => 'importar', 'sl' => 'uvoz'))); // Attempt to insert 'import' menu before 'admin' menu if ($adminMenuKey = $this->getRowKey('QubitMenu', 'id', '<?php echo QubitMenu::ADMIN_ID."\\n" ?>')) { QubitMigrate::insertBeforeNestedSet($this->data['QubitMenu'], $adminMenuKey, $importMenu); } else { array_merge($this->data['QubitMenu'], $importMenu); } // Add 'import xml' menu as child of 'import' $this->data['QubitMenu']['QubitMenu_mainmenu_import_xml'] = array('parent_id' => 'QubitMenu_mainmenu_import', 'source_culture' => 'en', 'name' => 'import xml', 'path' => 'object/importSelect', 'label' => array('en' => 'xml')); // Add 'import digital objects' menu as child of 'import' $this->data['QubitMenu']['QubitMenu_mainmenu_import_digitalobjects'] = array('parent_id' => 'QubitMenu_mainmenu_import', 'source_culture' => 'en', 'name' => 'import digital objects', 'path' => 'digitalobject/multiFileUpload', 'label' => array('en' => 'digital objects')); // Remove previous OAI harvester menu $harvesterKey = $this->getRowKey('QubitMenu', 'name', 'harvester'); if ($harvesterKey) { $this->data['QubitMenu'] = QubitMigrate::cascadeDelete($this->data['QubitMenu'], $harvesterKey); } // Add 'import OAI' menu as child of 'import' $this->data['QubitMenu']['QubitMenu_mainmenu_import_oai'] = array('parent_id' => 'QubitMenu_mainmenu_import', 'source_culture' => 'en', 'name' => 'import oai', 'path' => 'oai/harvesterList', 'label' => array('en' => 'oai')); // Add user and group sub-menus if (null !== ($userMenuKey = $this->getRowKey('QubitMenu', 'name', 'users'))) { $this->data['QubitMenu']['QubitMenu_mainmenu_admin_users_users'] = array('parent_id' => $userMenuKey, 'source_culture' => 'en', 'name' => 'users', 'path' => 'user/list', 'label' => array('en' => 'users')); $this->data['QubitMenu']['QubitMenu_mainmenu_admin_users_groups'] = array('parent_id' => $userMenuKey, 'source_culture' => 'en', 'name' => 'groups', 'path' => 'aclGroup/list', 'label' => array('en' => 'groups')); } // Update path for home page if (null !== ($menuKey = $this->getRowKey('QubitMenu', 'name', 'home'))) { $this->data['QubitMenu'][$menuKey]['path'] = 'staticpage/static?permalink=homepage'; } // Pluralize English 'Add/Edit' menu options for Qubit $menuOption = $this->getRowKey('QubitMenu', 'label', array('en' => 'Information object')); if ($menuOption) { $this->data['QubitMenu'][$menuOption]['label']['en'] = 'Information objects'; } $menuOption = $this->getRowKey('QubitMenu', 'label', array('en' => 'Person/organization')); if ($menuOption) { $this->data['QubitMenu'][$menuOption]['label']['en'] = 'Persons/organizations'; } $menuOption = $this->getRowKey('QubitMenu', 'label', array('en' => 'Repository')); if ($menuOption) { $this->data['QubitMenu'][$menuOption]['label']['en'] = 'Repositories'; } $menuOption = $this->getRowKey('QubitMenu', 'label', array('en' => 'Term')); if ($menuOption) { $this->data['QubitMenu'][$menuOption]['label']['en'] = 'Terms'; } // Pluralize English 'Add/Edit' menu options for ICA-AtoM variations $menuOption = $this->getRowKey('QubitMenu', 'label', array('en' => 'Archival description')); if ($menuOption) { $this->data['QubitMenu'][$menuOption]['label']['en'] = 'Archival descriptions'; } $menuOption = $this->getRowKey('QubitMenu', 'label', array('en' => 'Authority record')); if ($menuOption) { $this->data['QubitMenu'][$menuOption]['label']['en'] = 'Authority records'; } $menuOption = $this->getRowKey('QubitMenu', 'label', array('en' => 'Archival institution')); if ($menuOption) { $this->data['QubitMenu'][$menuOption]['label']['en'] = 'Archival institutions'; } // Pluralize English 'Add/Edit' menu options for DCB variations $menuOption = $this->getRowKey('QubitMenu', 'label', array('en' => 'resource')); if ($menuOption) { $this->data['QubitMenu'][$menuOption]['label']['en'] = 'resources'; } $menuOption = $this->getRowKey('QubitMenu', 'label', array('en' => 'organization')); if ($menuOption) { $this->data['QubitMenu'][$menuOption]['label']['en'] = 'organizations'; } return $this; }
/** * Ver 13: Promote 'groups' menu to child of 'admin' * * @return QubitMigrate108 this object */ protected function promoteGroupsMenu() { // Try to find existing 'Groups' menu if ($groupMenuKey = $this->getRowKey('QubitMenu', 'name', 'groups')) { $groupMenu = $this->data['QubitMenu'][$groupMenuKey]; $groupMenu['parent_id'] = '<?php echo QubitMenu::ADMIN_ID."\\n" ?>'; } else { // If 'Groups' menu doesn't exist already then create it $groupMenu = array('parent_id' => '<?php echo QubitMenu::ADMIN_ID."\\n" ?>', 'name' => 'groups', 'path' => 'aclGroup/list', 'source_culture' => 'en', 'label' => array('en' => 'Groups')); } // Remove all children of 'User' menu. This cleans up repeated 'user' // sub-menus from r3510 $userMenuKey = null; foreach ($this->data['QubitMenu'] as $key => $row) { if (null != $userMenuKey) { $nextKey = $key; break; } else { if (isset($row['name']) && 'users' == $row['name']) { // Find the 'users' menu that is a child of the admin menu if (strpos($row['parent_id'], 'QubitMenu::ADMIN_ID') || isset($this->data['QubitMenu'][$row['parent_id']]) && strpos($this->data['QubitMenu'][$row['parent_id']]['id'], 'QubitMenu::ADMIN_ID')) { $userMenuKey = $key; // Delete all children of user menu (users and groups) foreach ($this->data['QubitMenu'] as $key2 => $item) { if (isset($item['parent_id']) && $userMenuKey == $item['parent_id']) { unset($this->data['QubitMenu'][$key2]); } } } } } } // Insert 'Groups' menu right after 'Users' menu if (isset($nextKey)) { QubitMigrate::insertBeforeNestedSet($this->data['QubitMenu'], $nextKey, array('QubitMenu_mainmenu_admin_groups' => $groupMenu)); } else { $this->data['QubitMenu']['QubitMenu_mainmenu_admin_users_users'] = $groupMenu; } return $this; }