function onAction()
 {
     global $application;
     $request = $application->getInstance('Request');
     $SessionPost = $_POST;
     $topics_ids = $request->getValueByKey('topic_id');
     $emails_ids = $request->getValueByKey('email_id');
     modApifunc('Subscriptions', 'deleteEmails', $topics_ids, $emails_ids);
     modApiFunc('Session', 'set', 'SessionPost', $SessionPost);
     $request = new Request();
     $request->setView(CURRENT_REQUEST_URL);
     $request->setKey('topic', reset($topics_ids));
     $application->redirect($request);
 }
 function initShowTopic()
 {
     $this->_search_email = trim(modApiFunc('Request', 'getValueByKey', 'email'));
     $var = 'Subscription_Email_Search_' . $this->_topic_id;
     $this->_prev_search_email = modApifunc('Session', 'is_set', $var) ? modApifunc('Session', 'get', $var) : '';
     modApiFunc('Session', 'set', $var, $this->_search_email);
     $this->_topic = modApiFunc('Subscriptions', 'getTopic', $this->_topic_id);
     if (empty($this->_topic)) {
         return;
     }
     $this->_pager_name = 'Subscription_Topic_' . $this->_topic_id;
     modAPIFunc('Paginator', 'setCurrentPaginatorName', $this->_pager_name);
     $page = modApiFunc('Paginator', 'getPaginatorPage', $this->_pager_name);
     if ($page <= 0) {
         modapiFunc('Paginator', 'resetPaginator', $this->_pager_name);
     }
     if ($this->_search_email != $this->_prev_search_email) {
         modApiFunc('Paginator', 'resetPaginator', $this->_pager_name);
     }
     $this->emails =& $this->fetchEmails();
     $paginator_offset = modApiFunc('paginator', 'getCurrentPaginatorOffset');
     $this->emails_total = modAPIFunc('paginator', 'getCurrentPaginatorTotalRows');
     $emails_per_page = modAPIFunc('paginator', 'getPaginatorRowsPerPage', $this->_pager_name);
     if ($paginator_offset >= 0 && $this->emails_total > 0) {
         $this->emails_from = 1 + $paginator_offset;
         $this->emails_to = min($paginator_offset + $emails_per_page, $this->emails_total);
     } else {
         $this->emails_from = 0;
         $this->emails_to = 0;
     }
 }
 function onCustomerRegistered($reg_data)
 {
     // link subscription address to the customer account
     $email = $reg_data['info']['Email'];
     if (!modApiFunc('Users', 'isValidEmail', $email)) {
         return;
     }
     $params = array('account' => $reg_data['account'], 'email' => $email);
     execQuery('SUBSCR_LINK_SUBSCRIPTION_TO_CUSTOMER', $params);
     // subscribe to auto-subscription topics
     $topics_ids = execQuery('SUBSCR_GET_AUTO_SUBSCRIBE_TOPICS', null);
     if (empty($topics_ids)) {
         return;
     }
     foreach (array_keys($topics_ids) as $i) {
         $topics_ids[$i] = $topics_ids[$i]['topic_id'];
     }
     modApifunc('Subscriptions', 'subscribeEmails', $topics_ids, $email);
 }
 function importCustomerDB()
 {
     execQuery('SUBSCR_IMPORT_ORDERS_EMAILS', array('key' => $this->_action_key));
     execQuery('SUBSCR_IMPORT_CUSTOMERS_EMAILS', array('key' => $this->_action_key));
     $this->_valid_emails_count = modApifunc('Subscriptions', 'countTempEmails', $this->_action_key);
 }