s2Member v110815
Source Code: s2member\includes\classes\pages-sp.inc.php
Docs updated: August 15, 2011, 3:12 pm
Open for public discussion.
(!-- s-words :: --)Source Code Documentation Packages ( Overview ) Classes Deprecated Todo Index Source Code jQuery(window).load(function(){ if(typeof location.hash === 'string' && location.hash.match(/^#/)) jQuery('olli'+location.hash).addClass('hilite'); }); jQuery(window).bind('hashchange', function(){ if(typeof location.hash === 'string' && location.hash.match(/^#/)) jQuery('olli').removeClass('hilite'); jQuery('olli'+location.hash).addClass('hilite'); }); [ full view ]s2member\includes\classes\pages-sp.inc.php ?php /** * s2Member's Page protection routines *( for specific Pages )*. * * Copyright: © 2009-2011 * {@link http://www.websharks-inc.com/ WebSharks, Inc.} * ( coded in the USA ) * * Released under the terms of the GNU General Public License. * You should have received a copy of the GNU General Public License, * along with this software. In the main directory, see: /licensing/ * If not, see: {@link http://www.gnu.org/licenses/}. * * @package s2Member\Pages * @since 3.5 */ if ( realpath ( __FILE__ ) === realpath ( $_SERVER [ "SCRIPT_FILENAME" ] ) ) exit ( "Do not access this file directly." ) ; /**/ if ( ! class_exists ( "c_ws_plugin__s2member_pages_sp" ) ) { /** * s2Member's Page protection routines *( for specific Pages )*. * * @package s2Member\Pages * @since 3.5 */ class c_ws_plugin__s2member_pages_sp { /** * Handles Page Level Access *( for specific Pages )*. * * @package s2Member\Pages * @since 3.5 * * @param int|str $page_id Numeric Page ID. * @param bool $check_user Test permissions against the current User? Defaults to true. * @return null|array Non-empty array ( with details ) if access is denied, else null if access is allowed. */ public static function check_specific_page_level_access ( $page_id = FALSE , $check_user = TRUE ) { do_action ( "ws_plugin__s2member_before_check_specific_page_level_access" , get_defined_vars ( ) ) ; /**/ $excluded = apply_filters ( "ws_plugin__s2member_check_specific_page_level_access_excluded" , false , get_defined_vars ( ) ) ; /**/ if ( ! $excluded && $page_id && $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "membership_options_page" ] ) /* Check? */ { $page_uri = c_ws_plugin__s2member_utils_urls:: parse_uri ( get_page_link ( $page_id ) ) ; /**/ $user = ( is_user_logged_in ( ) ) ? wp_get_current_user ( ) : false ; /* Get the current User's object. */ /**/ if ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "login_welcome_page" ] && $page_id == $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "login_welcome_page" ] && ( ! $check_user || ! $user || ! current_user_can ( "access_s2member_level0" ) ) && $page_id != $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "membership_options_page" ] ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_level_req" = 0 ) , get_defined_vars ( ) ) ; /**/ else if ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "login_redirection_override" ] && ( $login_redirection_uri = c_ws_plugin__s2member_login_redirects:: login_redirection_uri ( $user , "root-returns-false" ) ) && preg_match ( "/^" . preg_quote ( $login_redirection_uri , "/" ) . "$/" , $page_uri ) && ( ! $check_user || ! $user || ! current_user_can ( "access_s2member_level0" ) ) && $page_id != $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "membership_options_page" ] ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_level_req" = 0 ) , get_defined_vars ( ) ) ; /**/ else if ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "file_download_limit_exceeded_page" ] && $page_id == $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "file_download_limit_exceeded_page" ] && ( ! $check_user || ! $user || ! current_user_can ( "access_s2member_level0" ) ) && $page_id != $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "membership_options_page" ] ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_level_req" = 0 ) , get_defined_vars ( ) ) ; /**/ else if ( !c_ws_plugin__s2member_systematics_sp:: is_systematic_use_specific_page ( $page_id , $page_uri ) ) /* However, there are 3 exceptions ^. */ { for ( $n = $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "c" ] [ "levels" ] ; $n = 0 ; $n -- ) /* Page Level restrictions. Go through each Level. */ { if ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "level" . $n . "_pages" ] === "all" && ( ! $check_user || ! $user || ! current_user_can ( "access_s2member_level" . $n ) ) ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_level_req" = $n ) , get_defined_vars ( ) ) ; /**/ else if ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "level" . $n . "_pages" ] && in_array ( $page_id , preg_split ( "/[\r \n \t\s;,]+/" , $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "level" . $n . "_pages" ] ) ) && ( ! $check_user || ! $user || ! current_user_can ( "access_s2member_level" . $n ) ) ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_level_req" = $n ) , get_defined_vars ( ) ) ; } /**/ if ( has_tag ( "" , $page_id ) ) /* Here we take a look to see if this Page has any Tags. If so, we need to run the full set of routines against Tags also. */ { for ( $n = $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "c" ] [ "levels" ] ; $n = 0 ; $n -- ) /* Tag Level restrictions ( possibly through Page Tagger ). Go through each Level. */ { if ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "level" . $n . "_ptags" ] === "all" && ( ! $check_user || ! $user || ! current_user_can ( "access_s2member_level" . $n ) ) ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_level_req" = $n ) , get_defined_vars ( ) ) ; /**/ else if ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "level" . $n . "_ptags" ] && has_tag ( preg_split ( "/[\r \n \t;,]+/" , $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "level" . $n . "_ptags" ] ) , $page_id ) && ( ! $check_user || ! $user || ! current_user_can ( "access_s2member_level" . $n ) ) ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_level_req" = $n ) , get_defined_vars ( ) ) ; } } /**/ for ( $n = $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "c" ] [ "levels" ] ; $n = 0 ; $n -- ) /* URIs. Go through each Level. */ { if ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "level" . $n . "_ruris" ] ) foreach ( preg_split ( "/[\r \n \t]+/" , c_ws_plugin__s2member_ruris:: fill_ruri_level_access_rc_vars ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "level" . $n . "_ruris" ] , $user ) ) as $str ) if ( $str && preg_match ( "/" . preg_quote ( $str , "/" ) . "/" , $page_uri ) && ( ! $check_user || ! $user || ! current_user_can ( "access_s2member_level" . $n ) ) ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_level_req" = $n ) , get_defined_vars ( ) ) ; } /**/ if ( is_array ( $ccaps_req = get_post_meta ( $page_id , "s2member_ccaps_req" , true ) ) && ! empty ( $ccaps_req ) ) foreach ( $ccaps_req as $ccap ) /* The $user MUST satisfy ALL Custom Capabilities. Serialized array. */ if ( strlen ( $ccap ) && ( ! $check_user || ! $user || ! $user - has_cap ( "access_s2member_ccap_" . $ccap ) ) ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_ccap_req" = $ccap ) , get_defined_vars ( ) ) ; /**/ if ( $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "specific_ids" ] && in_array ( $page_id , preg_split ( "/[\r \n \t\s;,]+/" , $GLOBALS [ "WS_PLUGIN__" ] [ "s2member" ] [ "o" ] [ "specific_ids" ] ) ) && ( ! $check_user || !c_ws_plugin__s2member_sp_access:: sp_access ( $page_id , "read-only" ) ) ) return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , array ( "s2member_sp_req" = $page_id ) , get_defined_vars ( ) ) ; } /**/ do_action ( "ws_plugin__s2member_during_check_specific_page_level_access" , get_defined_vars ( ) ) ; } /**/ return apply_filters ( "ws_plugin__s2member_check_specific_page_level_access" , null , get_defined_vars ( ) ) ; } } } ? [ full view ]s2member\includes\classes\pages-sp.inc.php Source Code Documentation Packages ( Overview ) Classes Deprecated Todo Index Source Code(!-- :: s-words --)Statistics: Posted by System Robot — August 15th, 2011, 2:12 pm
]]>