コード例 #1
0
ファイル: Unsubscribe.php プロジェクト: bharatm/NDL-VuFind
 /**
  * Process parameters and remove the subscription.
  *
  * @return void
  * @access public
  */
 public function launch()
 {
     global $interface;
     global $configArray;
     if (!isset($_REQUEST['id']) || !isset($_REQUEST['key']) || !isset($_REQUEST['type'])) {
         PEAR::raiseError('Can\'t unsubscribe');
         return;
     }
     $id = $_REQUEST['id'];
     $key = $_REQUEST['key'];
     $type = $_REQUEST['type'];
     // display confirm dialog
     if (!isset($_REQUEST['confirm']) || !$_REQUEST['confirm']) {
         $params = array('id' => $id, 'type' => $type, 'key' => $key, 'confirm' => true);
         $unsubscribeUrl = $configArray['Site']['url'] . '/MyResearch/Unsubscribe?' . http_build_query($params);
         $interface->assign('unsubscribeUrl', $unsubscribeUrl);
         $interface->setTemplate('unsubscribe.tpl');
         $interface->display('layout.tpl');
     } else {
         $success = false;
         // scheduled alert
         if ($type == 'alert') {
             $search = new SearchEntry();
             if ($search->get($id)) {
                 $user = new User();
                 if ($user->get($search->user_id)) {
                     $secret = $this->_getSecret($user, $id);
                     if ($key === $secret) {
                         $search->schedule = 0;
                         $search->update();
                         $success = true;
                     }
                 }
             }
         } else {
             if ($type == 'reminder') {
                 // due date reminder
                 $user = new User();
                 if ($user->get($id)) {
                     $secret = $this->_getSecret($user, $id);
                     if ($key === $secret) {
                         $user->due_date_reminder = 0;
                         $user->update();
                         $success = true;
                     }
                 }
             }
         }
         if ($success) {
             $interface->assign('success', true);
             $interface->setTemplate('unsubscribe.tpl');
             $interface->display('layout.tpl');
         } else {
             PEAR::raiseError('Can\'t unsubscribe');
         }
     }
 }