예제 #1
0
 public function newsletterSubscribe($user_id = 0, $data = array(), $sendmail = 0)
 {
     $newsletter = 1;
     $user = JFactory::getUser();
     if ($user_id == 0) {
         $user_id = $user->id;
     }
     if (DEFAULT_NEWSLETTER > 0) {
         $newsletter = DEFAULT_NEWSLETTER;
     }
     if (count($data) <= 0) {
         $data['user_id'] = $user->id;
         $data['username'] = $user->username;
         $data['email'] = $user->email;
         $data['name'] = $user->name . " (" . $user->username . ")";
     } else {
         $data['user_id'] = $user_id;
         $data['name'] = $data['name'];
         $data['email'] = $data['email1'];
         if (isset($data['username'])) {
             $data['name'] = $data['username'];
         }
         if ($user->id && $user->email == $data['email']) {
             $data['name'] = $user->name . " (" . $user->username . ")";
         }
     }
     $data['date'] = time();
     $data['newsletter_id'] = $newsletter;
     $data['published'] = 1;
     if (NEWSLETTER_CONFIRMATION && $sendmail) {
         $data['published'] = 0;
     }
     JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_redshop/tables');
     $row = JTable::getInstance('newslettersubscr_detail', 'Table');
     if (!$row->bind($data)) {
         $this->setError($this->_db->getErrorMsg());
     }
     if (!$row->store()) {
         $this->setError($this->_db->getErrorMsg());
     }
     if (NEWSLETTER_CONFIRMATION && $sendmail) {
         $redshopMail = new redshopMail();
         $redshopMail->sendNewsletterConfirmationMail($row->subscription_id);
     }
     return true;
 }