示例#1
0
 function display($tpl = null)
 {
     $layout = $this->getLayout();
     if ($layout == 'multisubscription') {
         $this->newsletters = array();
         if (isset($this->mmsg)) {
             jincimport('utility.servicelocator');
             $servicelocator = ServiceLocator::getInstance();
             $logger = $servicelocator->getLogger();
             jincimport('core.newsletterfactory');
             $ninstance = NewsletterFactory::getInstance();
             foreach ($this->mmsg as $news_id => $text) {
                 if ($newsletter = $ninstance->loadNewsletter($news_id, true)) {
                     $this->newsletters[$news_id] = $newsletter;
                 }
             }
         }
     } else {
         $news_id = JRequest::getInt('id', 0);
         jincimport('core.newsletterfactory');
         $ninstance = NewsletterFactory::getInstance();
         if ($newsletter = $ninstance->loadNewsletter($news_id, true)) {
             $this->newsletter = $newsletter;
         }
     }
     parent::display($tpl);
 }
示例#2
0
 /**
  * Method to get an array of data items.
  *
  * @return	mixed	An array of data items on success, false on failure.
  * @since	1.6
  */
 public function getItems()
 {
     $items = array();
     $news_id = JRequest::getInt('news_id', 0);
     if ($news_id != 0) {
         jincimport('core.newsletterfactory');
         $ninstance = NewsletterFactory::getInstance();
         if ($newsletter = $ninstance->loadNewsletter($news_id, false)) {
             $items = $newsletter->getTagsList();
         }
     }
     $msg_id = JRequest::getInt('msg_id', 0);
     if ($msg_id != 0) {
         jincimport('core.messagefactory');
         $minstance = MessageFactory::getInstance();
         if ($message = $minstance->loadMessage($msg_id)) {
             $news_id = $message->get('news_id');
             jincimport('core.newsletterfactory');
             $ninstance = NewsletterFactory::getInstance();
             if ($newsletter = $ninstance->loadNewsletter($news_id, false)) {
                 $items = $newsletter->getTagsList();
                 if ($message->getType() == MESSAGE_TYPE_MASSIVE) {
                     unset($items['USER']);
                 }
                 unset($items['OPTIN']);
             }
         }
     }
     return $items;
 }
示例#3
0
 protected function getInput()
 {
     jincimport('core.newsletterfactory');
     $themes = array();
     $ninstance = NewsletterFactory::getInstance();
     if ($themes = $ninstance->loadThemes()) {
         return JHTML::_('select.genericlist', $themes, $this->name, 'class="inputbox"', 'value', 'id', $this->value, $this->id);
     }
     return false;
 }
示例#4
0
 function getData()
 {
     jincimport('core.newsletterfactory');
     $id = JRequest::getInt('id', 0, 'GET');
     $ninstance = NewsletterFactory::getInstance();
     if (!($notice = $ninstance->loadNotice($id))) {
         $this->setError('COM_JINC_ERR023');
         return false;
     }
     return $notice;
 }
示例#5
0
 public function getInfo()
 {
     if ($item = parent::getItem()) {
         jincimport('core.newsletterfactory');
         $ninstance = NewsletterFactory::getInstance();
         if ($newsletter = $ninstance->loadNewsletter($item->news_id)) {
             return $newsletter->getSubscriber($item->id);
         }
     }
     return false;
 }
示例#6
0
 function getDefaultTemplate()
 {
     header("Content-Type: text/plain; charset=UTF-8");
     jincimport('core.newsletterfactory');
     jincimport('utility.jsonresponse');
     jincimport('utility.jinchtmlhelper');
     $id = JRequest::getInt('id', 0);
     $tem_id = 0;
     $tag_string = '';
     $ninstance = NewsletterFactory::getInstance();
     if ($newsletter = $ninstance->loadNewsletter($id, false)) {
         $tem_id = $newsletter->get('default_template');
     }
     // Building JSON response
     $response = new JSONResponse();
     $response->set('tem_id', (int) $tem_id);
     echo $response->toString();
 }
示例#7
0
 function stats()
 {
     jincimport('statistics.statisticfactory');
     jincimport('core.newsletterfactory');
     $session = JFactory::getSession();
     $config = JFactory::getConfig();
     $tzoffset = $config->getValue('config.offset');
     $id = JRequest::getInt('id', 0);
     $stat_type = JRequest::getInt('stat_type', 0);
     $time_type = JRequest::getInt('time_type', 0);
     $start_date = JRequest::getString('start_date');
     $end_date = JRequest::getString('end_date');
     $sdate = JFactory::getDate($start_date, $tzoffset);
     $edate = JFactory::getDate($end_date, $tzoffset);
     $stat = StatisticFactory::getStatistic($stat_type, $time_type, $sdate->toUNIX(), $edate->toUNIX(), $id);
     $values = $stat->getValues();
     $legend = $stat->getTimeValues();
     $session->set('stats.values', $values);
     $session->set('stats.legend', $legend);
     $timeline = $stat->getTimeLine();
     JRequest::setVar('start_date', $timeline->getStartTime());
     JRequest::setVar('end_date', $timeline->getEndTime());
     $stattypes = StatisticFactory::getTypeList();
     $timetypes = StatisticFactory::getTimeList();
     $time_format = $timeline->getJFormat();
     JRequest::setVar('view', 'stats');
     $view = $this->getView('stats', 'html');
     $ninstance = NewsletterFactory::getInstance();
     if ($newsletters = $ninstance->loadNames()) {
         $empty_filter = array("id" => "0", "name" => JText::_('COM_JINC_SELECT_NEWSLETTER'));
         array_unshift($newsletters, $empty_filter);
     } else {
         $newsletters = array(array("id" => "0", "name" => JText::_('COM_JINC_SELECT_NEWSLETTER')));
     }
     $view->assignRef('time_format', $time_format);
     $view->assignRef('stattypes', $stattypes);
     $view->assignRef('timetypes', $timetypes);
     $view->assignRef('newsletters', $newsletters);
     parent::display();
 }
示例#8
0
 /**
  * Method to remove attributes after unsubscription.
  *
  * @access	private
  * @param   integer $sub_id subscription identifier
  * @since	0.7
  * @abstract
  */
 function removeAttributeOnUnsubscription($sub_id)
 {
     jincimport('utility.servicelocator');
     $servicelocator = ServiceLocator::getInstance();
     $logger = $servicelocator->getLogger();
     $dbo =& JFactory::getDBO();
     $news_id = $this->get('id');
     $ninstance = NewsletterFactory::getInstance();
     $attributes = $ninstance->loadAttributesList();
     foreach ($attributes as $attribute) {
         $attr_name_db = $dbo->getEscaped($attribute['name']);
         $query = 'DELETE FROM `#__jinc_attribute_' . $attr_name_db . '` ' . 'WHERE news_id = ' . (int) $news_id . ' AND id = ' . (int) $sub_id;
         $logger->debug('PublicNewsletter: Executing query: ' . $query);
         $dbo->setQuery($query);
         if (!$dbo->query()) {
             $this->setError('COM_JINC_ERR048');
             $logger->warning($this->getError());
         }
     }
 }
 *   You should have received a copy of the GNU General Public License
 *   along with JINC.  If not, see <http://www.gnu.org/licenses/>.
 */
defined('_JEXEC') or die('Restricted access');
jimport('joomla.plugin.plugin');
jimport('joomla.filesystem.file');
// Preload the JINCFactory
jimport('joomla.filesystem.file');
require_once JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_jinc' . DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . 'factory.php';
$lang = JFactory::getLanguage();
$lang->load('com_jinc');
$lang->load('mod_jinc_subscription');
$id = $params->get('id', 0);
jincimport('core.newsletterfactory');
$input_style = $params->get('mod_input_style', INPUT_STYLE_INHERITED);
$ninstance = NewsletterFactory::getInstance();
if ($newsletter = $ninstance->loadNewsletter($id, true)) {
    $user = JFactory::getUser();
    if ($newsletter->getType() == NEWSLETTER_PRIVATE_NEWS && $user->guest) {
        echo JText::_('COM_JINC_ERR005');
    } else {
        if ($user->authorise('jinc.subscribe', 'com_jinc.newsletter.' . $id)) {
            if ($input_style == INPUT_STYLE_INHERITED) {
                $input_style = $newsletter->get('input_style');
            }
            $layout = JModuleHelper::getLayoutPath('mod_jinc_unsubscription');
            require $layout;
        } else {
            echo JText::_('COM_JINC_ERR005');
        }
    }
示例#10
0
 function delconfirm($id, $user_mail, $random)
 {
     jincimport('core.newsletterfactory');
     $ninstance = NewsletterFactory::getInstance();
     if (!($newsletter = $ninstance->loadNewsletter($id, true))) {
         $this->setError('COM_JINC_ERR020');
         return false;
     }
     if ($newsletter->getType() != NEWSLETTER_PUBLIC_NEWS) {
         $this->setError('COM_JINC_ERR020');
         return false;
     }
     if (!$newsletter->confirmUnsubscription($user_mail, $random)) {
         $this->setError('ERROR_FER004');
         return false;
     }
     return true;
 }
示例#11
0
 /**
  * The newsletter loader. It load newsletter the message belongs to from his
  * newsletter identifier.
  *
  * @access	public
  * @param	boolean $reload true to force newsletter info reloading
  * @return  The loaded newsletter
  * @since	0.6
  * @see     NewsletterFactory
  */
 function loadNewsletter($reload = false)
 {
     if (is_null($this->_newsletter) || $reload) {
         $ninstance = NewsletterFactory::getInstance();
         $this->_newsletter = $ninstance->loadNewsletter($this->get('news_id'));
     }
     return $this->_newsletter;
 }
示例#12
0
 function getNewsletter()
 {
     jincimport('core.newsletterfactory');
     jincimport('core.messagefactory');
     jincimport('utility.servicelocator');
     $servicelocator = ServiceLocator::getInstance();
     $logger = $servicelocator->getLogger();
     $id = JRequest::getInt('id', 0);
     $minstance = MessageFactory::getInstance();
     $ninstance = NewsletterFactory::getInstance();
     if ($message = $minstance->loadMessage($id)) {
         $news_id = $message->get('news_id');
         if ($newsletter = $ninstance->loadNewsletter($news_id)) {
             return $newsletter;
         }
     }
     return false;
 }
示例#13
0
 /**
  * Method to construct a Newsletter Object from id.
  *
  * @param	integer	The id of the primary key.
  *
  * @return	mixed	Object on success, false on failure.
  */
 public function getNewsletter($pk = null)
 {
     if ($item = parent::getItem($pk)) {
         jincimport('core.newsletterfactory');
         $ninstance = NewsletterFactory::getInstance();
         $newsletter = $ninstance->loadNewsletter($item->id);
         return $newsletter;
     }
     return false;
 }
示例#14
0
 /**
  * It ussubscribes just deleted user from every newsletters.
  *
  * @param array   $user   Array of user info
  * @param boolean $succes true if user is created successfully
  * @param string  $msg    User deletion message
  */
 public function onUserAfterDelete($user, $succes, $msg)
 {
     if (!$succes) {
         return;
     }
     if (is_array($user)) {
         $user_id = $user['id'];
         $user_email = $user['email'];
     } elseif (is_object($user)) {
         $user_id = $user->id;
         $user_email = $user->email;
     } else {
         return;
     }
     jincimport('core.newsletterfactory');
     jincimport('utility.servicelocator');
     $servicelocator = ServiceLocator::getInstance();
     $logger = $servicelocator->getLogger();
     $query = 'SELECT id FROM #__jinc_newsletter n ' . 'WHERE type = ' . (int) NEWSLETTER_PRIVATE_NEWS;
     $logger->debug('plgUserJINCSubscription: Executing query: ' . $query);
     $dbo =& JFactory::getDBO();
     $dbo->setQuery($query);
     // Unsubscribing user from every JINC newsletter
     if ($result = $dbo->loadAssocList()) {
         foreach ($result as $row) {
             $news_id = (int) $row['id'];
             $ninstance = NewsletterFactory::getInstance();
             if ($newsletter = $ninstance->loadNewsletter($news_id, false)) {
                 $subscriber_info = array('user_id' => $user_id);
                 $newsletter->unsubscribe($subscriber_info);
             }
         }
     }
 }