function onAfterRoute()
 {
     if (file_exists(JPATH_ROOT . '/components/com_osmembership/osmembership.php')) {
         $option = JRequest::getCmd('option');
         $task = JRequest::getCmd('task');
         $view = JRequest::getCmd('view');
         if ($option == 'com_users' && $view == 'registration' || $option == 'com_comprofiler' && $task == 'registers' || $option == 'com_community' && $view == 'register') {
             require_once JPATH_ROOT . '/components/com_osmembership/helper/helper.php';
             $url = $this->params->get('redirect_url', OSMembershipHelper::getViewUrl(array('categories', 'plans', 'plan', 'register')));
             if (!$url) {
                 $Itemid = OSMembershipHelper::getItemid();
                 $url = JRoute::_('index.php?option=com_osmembership&view=plans&Itemid=' . $Itemid);
             }
             JFactory::getApplication()->redirect($url);
         }
     }
     return true;
 }
 function onAfterInitialise()
 {
     $app = JFactory::getApplication();
     if ($app->isAdmin()) {
         return true;
     }
     if (JPluginHelper::isEnabled('osmembership', 'urls')) {
         $db = JFactory::getDbo();
         $currentUrl = trim(JUri::getInstance()->toString());
         //remove www in the url
         $currentUrl = str_replace('www.', '', $currentUrl);
         $siteURL = JURI::root();
         $siteURL = str_replace('www.', '', $siteURL);
         if ($siteURL == $currentUrl) {
             //Dont' prevent access to homepage
             return;
         }
         $sql = 'SELECT DISTINCT plan_id FROM #__osmembership_urls WHERE url = "' . $currentUrl . '"';
         $db->setQuery($sql);
         $planIds = $db->loadColumn();
         if (count($planIds)) {
             //Check to see the current user has an active subscription plans
             require_once JPATH_ROOT . '/components/com_osmembership/helper/helper.php';
             $activePlans = OSMembershipHelper::getActiveMembershipPlans();
             if (!count(array_intersect($planIds, $activePlans))) {
                 //Load language file
                 OSMembershipHelper::loadLanguage();
                 //Get title of these subscription plans
                 $sql = 'SELECT title FROM #__osmembership_plans WHERE id IN (' . implode(',', $planIds) . ') AND published=1 ORDER BY ordering';
                 $db->setQuery($sql);
                 $planTitles = $db->loadColumn();
                 $planTitles = implode(' OR ', $planTitles);
                 $msg = JText::_('OS_MEMBERSHIP_URL_ACCESS_RESITRICTED');
                 $msg = str_replace('[PLAN_TITLES]', $planTitles, $msg);
                 $redirectUrl = $this->params->get('redirect_url', OSMembershipHelper::getViewUrl(array('categories', 'plans', 'plan', 'register')));
                 if (!$redirectUrl) {
                     $redirectUrl = JUri::root();
                 }
                 JFactory::getApplication()->redirect($redirectUrl, $msg);
             }
         }
     }
 }
 function onAfterRoute()
 {
     $app = JFactory::getApplication();
     if ($app->isAdmin()) {
         return true;
     }
     $user = JFactory::getUser();
     if ($user->authorise('core.admin')) {
         return true;
     }
     $option = JRequest::getCmd('option');
     $view = JRequest::getCmd('view');
     if ($option != 'com_content' || $view != 'article') {
         return true;
     }
     require_once JPATH_ROOT . '/components/com_osmembership/helper/helper.php';
     OSMembershipHelper::loadLanguage();
     $db = JFactory::getDbo();
     $articleId = JRequest::getInt('id');
     $sql = 'SELECT DISTINCT plan_id FROM #__osmembership_articles WHERE article_id = ' . $articleId;
     $db->setQuery($sql);
     $planIds = $db->loadColumn();
     if (count($planIds)) {
         //Check to see the current user has an active subscription plans
         require_once JPATH_ROOT . '/components/com_osmembership/helper/helper.php';
         $activePlans = OSMembershipHelper::getActiveMembershipPlans();
         if (!count(array_intersect($planIds, $activePlans))) {
             //Get title of these subscription plans
             $sql = 'SELECT title FROM #__osmembership_plans WHERE id IN (' . implode(',', $planIds) . ') AND published=1 ORDER BY ordering';
             $db->setQuery($sql);
             $planTitles = $db->loadColumn();
             $planTitles = implode(' OR ', $planTitles);
             $msg = JText::_('OS_MEMBERSHIP_ARTICLE_ACCESS_RESITRICTED');
             $msg = str_replace('[PLAN_TITLES]', $planTitles, $msg);
             $redirectUrl = $this->params->get('redirect_url', OSMembershipHelper::getViewUrl(array('categories', 'plans', 'plan', 'register')));
             if (!$redirectUrl) {
                 $redirectUrl = JUri::root();
             }
             JFactory::getApplication()->redirect($redirectUrl, $msg);
         }
     }
 }
Example #4
0
 function display($tpl = null)
 {
     $db = JFactory::getDbo();
     $user = JFactory::getUser();
     if (!$user->id) {
         $return = JRoute::_('index.php?option=com_osmembership&view=profile&Itemid=' . JRequest::getInt('Itemid'));
         JFactory::getApplication()->redirect('index.php?option=com_users&view=login&return=' . base64_encode($return), JText::_('OSM_LOGIN_TO_EDIT_PROFILE'));
     }
     $config = OSMembershipHelper::getConfig();
     $Itemid = JRequest::getInt('Itemid');
     $item = $this->get('Data');
     if (!$item) {
         $redirectURL = OSMembershipHelper::getViewUrl(array('categories', 'plans', 'plan', 'register'));
         if (!$redirectURL) {
             $redirectURL = 'index.php';
         }
         JFactory::getApplication()->redirect('index.php', JText::_('OSM_DONOT_HAVE_SUBSCRIPTION_RECORD'));
     }
     //Get subscriptions history
     require_once JPATH_COMPONENT . '/models/subscriptions.php';
     $model = JModelLegacy::getInstance('Subscriptions', 'OSMembershipModel');
     $items = $model->getData();
     //Form
     $rowFields = OSMembershipHelper::getProfileFields(0, true, $item->language);
     $data = OSMembershipHelper::getProfileData($item, 0, $rowFields);
     $form = new RADForm($rowFields);
     $form->setData($data)->bindData();
     //Trigger third party add-on
     JPluginHelper::importPlugin('osmembership');
     $dispatcher = JDispatcher::getInstance();
     $results = $dispatcher->trigger('onProfileDisplay', array($item));
     //Get renew and upgrade options, only allow renew for active or expired subscriptions
     $sql = 'SELECT DISTINCT plan_id FROM #__osmembership_subscribers WHERE profile_id=' . $item->id . ' AND (published = 1 OR published = 2)';
     $db->setQuery($sql);
     $planIds = $db->loadColumn();
     //Check to see whether the user can renew or not
     $canRenew = false;
     foreach ($planIds as $planId) {
         $sql = 'SELECT recurring_subscription, enable_renewal FROM #__osmembership_plans WHERE id=' . $planId;
         $db->setQuery($sql);
         $plan = $db->loadObject();
         if (!$plan->recurring_subscription && $plan->enable_renewal) {
             $canRenew = true;
             break;
         }
     }
     //Load js file to support state field dropdown
     JFactory::getDocument()->addScript(JUri::base(true) . '/components/com_osmembership/assets/js/paymentmethods.js');
     //Need to get subscriptions information of the user
     $plans = OSMembershipHelper::getSubscriptions($item->profile_id);
     $renewOptions = array();
     $this->item = $item;
     $this->config = $config;
     $this->items = $items;
     $this->form = $form;
     $this->Itemid = $Itemid;
     $this->plugins = $results;
     $this->planIds = $planIds;
     $this->plans = $plans;
     $this->canRenew = $canRenew;
     parent::display($tpl);
 }