public static function checkURL(&$has_access, &$found_shared, &$redirect, $memberships, $extras) { $option = RSMembershipHelper::getOption(); $app = JFactory::getApplication(); $type = $app->isAdmin() ? 'backendurl' : 'frontendurl'; $shared = RSMembershipHelper::getShared($type, $option . '%'); // Get the database object $db = JFactory::getDBO(); $query = $db->getQuery(true); if (!empty($shared)) { foreach ($shared as $share) { $what = isset($share->membership_id) ? 'membership_id' : 'extra_value_id'; $where = isset($share->membership_id) ? $memberships : $extras; $table = isset($share->membership_id) ? '#__rsmembership_memberships' : '#__rsmembership_extra_values'; $url = RSMembershipHelper::parseQuery($share->params); $current_query = array(); foreach ($url as $q => $value) { $var = JFactory::getApplication()->input->get($q, false, 'string'); if ($var !== false) { $current_query[] = $q . '=' . $var; } } $current_query = $option . (!empty($current_query) ? '&' . implode('&', $current_query) : ''); if ($current_query == $share->params || RSMembershipHelper::_is_match($current_query, $share->params)) { $found_shared = true; if (in_array($share->{$what}, $where)) { $has_access = true; break; } else { // Get the redirect page $query->clear(); $query->select($db->qn('share_redirect'))->from($db->qn($table))->where($db->qn('id') . ' = ' . $db->q($share->{$what})); $db->setQuery($query); $redirect = $db->loadResult(); } } } } }
function checkURL(&$has_access, &$found_shared, &$redirect, $memberships, $extras) { $option = RSMembershipHelper::getOption(); $mainframe =& JFactory::getApplication(); $type = $mainframe->isAdmin() ? 'backendurl' : 'frontendurl'; $shared = RSMembershipHelper::getShared($type, $option . '%'); // Get the database object $db =& JFactory::getDBO(); if (!empty($shared)) { foreach ($shared as $share) { $what = isset($share->membership_id) ? 'membership_id' : 'extra_value_id'; $where = isset($share->membership_id) ? $memberships : $extras; $table = isset($share->membership_id) ? '#__rsmembership_memberships' : '#__rsmembership_extra_values'; $query = RSMembershipHelper::parseQuery($share->params); $current_query = array(); foreach ($query as $q => $value) { $var = JRequest::getVar($q, false, 'request', 'none', JREQUEST_ALLOWRAW); if ($var !== false) { $current_query[] = $q . '=' . $var; } } $current_query = $option . (!empty($current_query) ? '&' . implode('&', $current_query) : ''); if ($current_query == $share->params || RSMembershipHelper::_is_match($current_query, $share->params)) { $found_shared = true; if (in_array($share->{$what}, $where)) { $has_access = true; break; } else { // Get the redirect page $db->setQuery("SELECT `share_redirect` FROM " . $table . " WHERE `id`='" . $share->{$what} . "'"); $redirect = $db->loadResult(); } } } } }