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); } } }
* @author Tuan Pham Ngoc * @copyright Copyright (C) 2012 Ossolution Team * @license GNU/GPL, see LICENSE.php */ defined('_JEXEC') or die; error_reporting(0); if (file_exists(JPATH_ROOT . '/components/com_osmembership/osmembership.php')) { require_once JPATH_ROOT . '/components/com_osmembership/libraries/rad/bootstrap.php'; //OS Framework require_once JPATH_ROOT . '/administrator/components/com_osmembership/libraries/defines.php'; require_once JPATH_ROOT . '/administrator/components/com_osmembership/libraries/inflector.php'; require_once JPATH_ROOT . '/administrator/components/com_osmembership/libraries/autoload.php'; $document = JFactory::getDocument(); $user = JFactory::getUser(); $db =& JFactory::getDBO(); OSMembershipHelper::loadLanguage(); $styleUrl = JURI::base(true) . '/components/com_osmembership/assets/css/style.css'; $document->addStylesheet($styleUrl, 'text/css', null, null); $config = OSMembershipHelper::getConfig(); if (@$config->load_jquery !== '0') { OSMembershipHelper::loadJQuery(); } OSMembershipHelper::loadBootstrap(true); JHtml::_('script', OSMembershipHelper::getSiteUrl() . 'components/com_osmembership/assets/js/jquery-noconflict.js', false, false); $Itemid = JRequest::getInt('Itemid'); $planIds = $params->get('plan_ids', '*'); $layout = $params->get('layout_type', 'default'); $fieldSuffix = OSMembershipHelper::getFieldSuffix(); if (!$planIds) { $planIds = '*'; }
/** * Replace callback function * * @param array $matches */ function displayPlans($matches) { require_once JPATH_ROOT . '/components/com_osmembership/libraries/rad/bootstrap.php'; //OS Framework require_once JPATH_ROOT . '/administrator/components/com_osmembership/libraries/defines.php'; require_once JPATH_ROOT . '/administrator/components/com_osmembership/libraries/inflector.php'; require_once JPATH_ROOT . '/administrator/components/com_osmembership/libraries/autoload.php'; $document = JFactory::getDocument(); $user = JFactory::getUser(); $db = JFactory::getDBO(); $config = OSMembershipHelper::getConfig(); if (@$config->load_jquery !== '0') { OSMembershipHelper::loadJQuery(); } OSMembershipHelper::loadBootstrap(true); JHtml::_('script', OSMembershipHelper::getSiteUrl() . 'components/com_osmembership/assets/js/jquery-noconflict.js', false, false); OSMembershipHelper::loadLanguage(); $styleUrl = JURI::base(true) . '/components/com_osmembership/assets/css/style.css'; $document->addStylesheet($styleUrl, 'text/css', null, null); OSMembershipHelper::loadBootstrap(false); $Itemid = OSMembershipHelper::getItemid(); $planIds = $matches[1]; $fieldSuffix = OSMembershipHelper::getFieldSuffix(); $layout = $this->params->get('layout_type', 'default'); if ($planIds == '*') { $sql = 'SELECT a.*, a.title' . $fieldSuffix . ' AS title, a.description' . $fieldSuffix . ' AS description, a.short_description' . $fieldSuffix . ' AS short_description FROM #__osmembership_plans AS a WHERE a.published = 1 ORDER BY a.ordering'; } elseif (strpos($planIds, 'cat-') !== false) { $catId = (int) substr($planIds, 4); $sql = 'SELECT a.*, a.title' . $fieldSuffix . ' AS title, a.description' . $fieldSuffix . ' AS description, a.short_description' . $fieldSuffix . ' AS short_description FROM #__osmembership_plans AS a WHERE a.published = 1 AND a.category_id=' . $catId . ' ORDER BY a.ordering'; } else { $sql = 'SELECT a.*, a.title' . $fieldSuffix . ' AS title, a.description' . $fieldSuffix . ' AS description, a.short_description' . $fieldSuffix . ' AS short_description FROM #__osmembership_plans AS a WHERE a.published = 1 AND a.id IN (' . $planIds . ') ORDER BY a.ordering'; } $db->setQuery($sql); $rows = $db->loadObjectList(); if ($user->id) { for ($i = 0, $n = count($rows); $i < $n; $i++) { $row = $rows[$i]; $taxRate = OSMembershipHelper::calculateTaxRate($row->id); if ($config->show_price_including_tax && $taxRate > 0) { $row->price = $row->price * (1 + $taxRate / 100); $row->trial_amount = $row->trial_amount * (1 + $taxRate / 100); } if (!$row->enable_renewal) { $sql = 'SELECT COUNT(*) FROM #__osmembership_subscribers WHERE (email="' . $user->email . '" OR user_id=' . $user->id . ') AND plan_id=' . $row->id . ' AND published != 0 '; $db->setQuery($sql); $total = (int) $db->loadResult(); if ($total) { $row->disable_subscribe = 1; } } } } elseif ($config->show_price_including_tax) { for ($i = 0, $n = count($rows); $i < $n; $i++) { $row = $rows[$i]; $taxRate = OSMembershipHelper::getPlanTaxRate($row->id); if ($taxRate > 0) { $row->price = $row->price * (1 + $taxRate / 100); $row->trial_amount = $row->trial_amount * (1 + $taxRate / 100); } } } if ($layout == 'default') { return '<div class="osm-container row-fluid clearfix">' . OSMembershipHelperHtml::loadCommonLayout('common/default_plans.php', array('items' => $rows, 'config' => $config, 'Itemid' => $Itemid)) . '</div>'; } else { return '<div class="osm-container row-fluid clearfix">' . OSMembershipHelperHtml::loadCommonLayout('common/columns_plans.php', array('items' => $rows, 'config' => $config, 'Itemid' => $Itemid)) . '</div>'; } }