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); } } }
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); }