Exemple #1
0
 /**
  * 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']);
     }
 }
Exemple #2
0
 /**
  * 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');
 }