/** * Process incoming parameters and display the page. * * @return void * @access public */ public function launch() { global $interface; global $configArray; // Check if the request is an ajax request $isAjax = false; if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) and strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') { $isAjax = true; } // Check if user is logged in if (!$this->_user) { // Needed for "back to record" link in view-alt.tpl: $interface->assign('id', $_GET['id']); // Needed for login followup: $interface->assign('recordId', $_GET['id']); if (isset($_GET['lightbox'])) { $interface->assign('title', $_GET['message']); $interface->assign('message', 'You must be logged in first'); $interface->assign('followup', true); $interface->assign('followupModule', 'MetaLib'); $interface->assign('followupAction', 'Save'); Login::setupLoginFormVars(); return $interface->fetch('AJAX/login.tpl'); } else { $interface->assign('followup', true); $interface->assign('followupModule', 'MetaLib'); $interface->assign('followupAction', 'Save'); $interface->setPageTitle('You must be logged in first'); Login::setupLoginFormVars(); $interface->assign('subTemplate', '../MyResearch/login.tpl'); $interface->setTemplate('view-alt.tpl'); $interface->display('layout.tpl', 'RecordSave' . $_GET['id']); } exit; } if (isset($configArray['Site']['quickAddToFavorites']) && $configArray['Site']['quickAddToFavorites'] && $isAjax) { $this->saveRecord($this->_user); exit; } if (isset($_GET['submit'])) { $this->saveRecord($this->_user); header('Location: ' . $configArray['Site']['url'] . '/MetaLib/Record?id=' . urlencode($_GET['id'])); exit; } // Setup Search Engine Connection $db = ConnectionManager::connectToIndex('MetaLib'); // Get Record Information $record = $db->getRecord($_GET['id']); $interface->assign('record', $record); // Find out if the item is already part of any lists; save list info/IDs $saved = $this->_user->getSavedData($_GET['id']); $containingLists = array(); $containingListIds = array(); foreach ($saved as $current) { $containingLists[] = array('id' => $current->list_id, 'title' => $current->list_title); $containingListIds[] = $current->list_id; } $interface->assign('containingLists', $containingLists); // Create a list of all the lists that do NOT already contain the item: $lists = $this->_user->getLists(); $nonContainingLists = array(); foreach ($lists as $current) { if (!in_array($current->id, $containingListIds)) { $nonContainingLists[] = array('id' => $current->id, 'title' => $current->title); } } $interface->assign('nonContainingLists', $nonContainingLists); // Display Page $interface->assign('id', $_GET['id']); $interface->assign('lastListUsed', User_list::getLastUsed()); if (isset($_GET['lightbox'])) { $interface->assign('title', $_GET['message']); return $interface->fetch('MetaLib/save.tpl'); } else { $interface->setPageTitle('Add to favorites'); $interface->assign('subTemplate', 'save.tpl'); $interface->setTemplate('view-alt.tpl'); $interface->display('layout.tpl', 'RecordSave' . $_GET['id']); } }
/** * Process Non-LightBox Request * Display error message on terminal error or save details page on success * * @return void * @access public */ private function _processNonLightBox() { global $interface; // Assign IDs if (isset($_REQUEST['selectAll']) && is_array($_REQUEST['idsAll'])) { $ids = $_REQUEST['idsAll']; } else { if (isset($_REQUEST['ids'])) { $ids = $_REQUEST['ids']; } } // Without IDs, we can't continue if (empty($ids)) { header("Location: " . $this->followupUrl . "?errorMsg=bulk_noitems_advice"); exit; } // Create a list of all lists $lists = $this->user->getLists(); $parts = array(); foreach ($ids as $id) { $parts[] = urlencode('ids[]') . '=' . urlencode($id); } $url = implode('&', $parts); $interface->assign('idURL', $url); $interface->assign('lastListUsed', User_list::getLastUsed()); $interface->assign('itemIDS', $ids); $interface->assign('itemList', $this->getRecordDetails($ids)); $interface->assign('lists', $lists); $interface->setPageTitle('bookbag_save_selected'); $interface->assign('subTemplate', 'save.tpl'); $interface->setTemplate('view.tpl'); $interface->display('layout.tpl'); }