Esempio n. 1
0
 /**
  * Load letter from DB, load SMTP settings
  * TODO: Move this to NewsletterModel or NewsletterModelEntity
  * 	
  * @param <string> $name - id of a letter
  *
  * @return object - letter
  * @since 1.0
  */
 public static function loadLetter($id = false)
 {
     $letter = JTable::getInstance('Newsletter', 'NewsletterTable');
     $letter->load((int) $id);
     // If letter absent then fail.
     if (!$letter) {
         return false;
     }
     $letter = (object) $letter->getProperties();
     $letter->params = (array) json_decode($letter->params);
     if (empty($letter->params['encoding'])) {
         $letter->params['encoding'] = 'utf-8';
     }
     PlaceholderHelper::setPlaceholders($letter->params);
     $profileEntity = JModel::getInstance('Smtpprofile', 'NewsletterModelEntity');
     $profileEntity->load((int) $letter->smtp_profile_id);
     $letter->smtp_profile = $profileEntity->toObject();
     // Set data when using J! SMTP profile
     if ($letter->smtp_profile_id == NewsletterModelEntitySmtpprofile::JOOMLA_SMTP_ID) {
         if (!empty($letter->params['newsletter_from_email'])) {
             $letter->smtp_profile->from_email = $letter->params['newsletter_from_email'];
         }
         if (!empty($letter->params['newsletter_from_name'])) {
             $letter->smtp_profile->from_name = $letter->params['newsletter_from_name'];
         }
         if (!empty($letter->params['newsletter_to_email'])) {
             $letter->smtp_profile->reply_to_email = $letter->params['newsletter_to_email'];
         }
         if (!empty($letter->params['newsletter_to_name'])) {
             $letter->smtp_profile->reply_to_name = $letter->params['newsletter_to_name'];
         }
     }
     return $letter;
 }
Esempio n. 2
0
 /**
  * Set all data of the current subscriber as he has been logined in system
  * Don't trigger any plugins events
  *
  * @param int the subscriber id (not j! user id)
  *
  * @return boolean
  * @since  1.0
  */
 public static function emulateUser($params)
 {
     if (empty($params['email']) && empty($params['subscriber_id'])) {
         return false;
     }
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->select('*');
     $query->from('#__newsletter_subscribers');
     if (!empty($params['email'])) {
         $query->where('email="' . $params['email'] . '"');
     }
     if (!empty($params['subscriber_id'])) {
         $query->where('subscriber_id="' . (int) $params['subscriber_id'] . '"');
     }
     $db->setQuery($query);
     $subscriber = $db->loadObject();
     $user = JUser::getInstance();
     if (!empty($subscriber->user_id)) {
         // Get a database object
         $user->load($subscriber->user_id);
     }
     // bind data
     if (!empty($subscriber->subscriber_id)) {
         $user->set('subscriber_id', $subscriber->subscriber_id);
         $user->set('name', $subscriber->name);
         $user->set('email', $subscriber->email);
         $user->set('subscription_key', $subscriber->subscription_key);
     }
     // Mark the user as logged in
     $user->set('guest', 0);
     $user->set('isRoot', true);
     // Register the needed session variables
     $session = JFactory::getSession();
     $session->set('user', $user);
     $session->set('registry', null);
     // fetch the dynamic data for placeholders
     PlaceholderHelper::setPlaceholders(array('username' => $user->name, 'useremail' => $user->email, 'userid' => !empty($subscriber->subscriber_id) ? $user->subscriber_id : null, 'subscription key' => !empty($user->subscription_key) ? $user->subscription_key : null));
     return $user;
 }
Esempio n. 3
0
 /**
  * Load a template file
  *
  * @param string	$template	The name of the template
  * @param string	$filename	The actual filename
  *
  * @return string The contents of the template
  * @since  1.0
  */
 protected function _loadTemplate($id)
 {
     // Try to find the newsletter by id.
     // Supported both standard and custom
     $model = JModel::getInstance("Template", "NewsletterModel");
     $template = $model->getTemplateBy($id, 'preserve positions!');
     if (!$template) {
         $this->setError($model->getError());
         return false;
     }
     $template->params = $this->_mapParams($template->params);
     PlaceholderHelper::setPlaceholders($template->params);
     return $template;
 }