PageRenderTime 237ms CodeModel.GetById 150ms RepoModel.GetById 14ms app.codeStats 0ms

/wp-content/plugins/s2member/includes/classes/systematics-sp.inc.php

https://gitlab.com/Gashler/dp
PHP | 135 lines | 76 code | 5 blank | 54 comment | 54 complexity | e53a0f80d3ef40646e62d60680ea8872 MD5 | raw file
  1. <?php
  2. /**
  3. * Systematics *(for a specific page)*.
  4. *
  5. * Copyright: © 2009-2011
  6. * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
  7. * (coded in the USA)
  8. *
  9. * Released under the terms of the GNU General Public License.
  10. * You should have received a copy of the GNU General Public License,
  11. * along with this software. In the main directory, see: /licensing/
  12. * If not, see: {@link http://www.gnu.org/licenses/}.
  13. *
  14. * @package s2Member\Systematics
  15. * @since 3.5
  16. */
  17. if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
  18. exit("Do not access this file directly.");
  19. if (!class_exists ("c_ws_plugin__s2member_systematics_sp"))
  20. {
  21. /**
  22. * Systematics *(for a specific page)*.
  23. *
  24. * @package s2Member\Systematics
  25. * @since 3.5
  26. */
  27. class c_ws_plugin__s2member_systematics_sp
  28. {
  29. /**
  30. * Determines if a specific Post/Page ID, or URI, is s2Member® Systematic.
  31. *
  32. * @package s2Member\Systematics
  33. * @since 111115
  34. *
  35. * @param int|str $singular_id Optional. A numeric Post/Page ID in WordPress®.
  36. * @param str $uri Optional. A request URI to test against.
  37. * @return bool True if s2Member® Systematic, else false.
  38. */
  39. public static function is_s2_systematic_use_specific_page ($singular_id = FALSE, $uri = FALSE)
  40. {
  41. $singular_id = ($singular_id && is_numeric ($singular_id)) ? (int)$singular_id : false; // Force types.
  42. $uri = ($uri && is_string ($uri) && ($uri = c_ws_plugin__s2member_utils_urls::parse_uri ($uri))) ? $uri : false;
  43. if ($uri && ($_q = c_ws_plugin__s2member_utils_urls::parse_url ($uri, PHP_URL_QUERY)) && preg_match ("/[\?&]s2member/", $_q) && c_ws_plugin__s2member_utils_conds::is_site_root ($uri))
  44. {
  45. return ($is_s2_systematic = apply_filters ("ws_plugin__s2member_is_s2_systematic_use_specific_page", true, get_defined_vars ()));
  46. }
  47. else // Otherwise, we return false (i.e. it's NOT an s2Member® Systematic Use Page).
  48. return ($is_s2_systematic = apply_filters ("ws_plugin__s2member_is_s2_systematic_use_specific_page", false, get_defined_vars ()));
  49. }
  50. /**
  51. * Determines if a specific Post/Page ID, or URI, is WordPress® Systematic.
  52. *
  53. * @package s2Member\Systematics
  54. * @since 111002
  55. *
  56. * @param int|str $singular_id Optional. A numeric Post/Page ID in WordPress®.
  57. * @param str $uri Optional. A request URI to test against.
  58. * @return bool True if WordPress® Systematic, else false.
  59. */
  60. public static function is_wp_systematic_use_specific_page ($singular_id = FALSE, $uri = FALSE)
  61. {
  62. $singular_id = ($singular_id && is_numeric ($singular_id)) ? (int)$singular_id : false; // Force types.
  63. $uri = ($uri && is_string ($uri) && ($uri = c_ws_plugin__s2member_utils_urls::parse_uri ($uri))) ? $uri : false;
  64. if ($uri && preg_match ("/\/wp-admin(?:\/|\?|$)/", $uri)) // Inside a WordPress® administrative area?
  65. {
  66. return ($is_wp_systematic = apply_filters ("ws_plugin__s2member_is_wp_systematic_use_specific_page", true, get_defined_vars ()));
  67. }
  68. else if ($uri && preg_match ("/^\/(?:wp-.+?|xmlrpc)\.php$/", c_ws_plugin__s2member_utils_urls::parse_url ($uri, PHP_URL_PATH)))
  69. {
  70. return ($is_wp_systematic = apply_filters ("ws_plugin__s2member_is_wp_systematic_use_specific_page", true, get_defined_vars ()));
  71. }
  72. else // Otherwise, we return false (i.e. it's NOT a WordPress® Systematic Use Page).
  73. return ($is_wp_systematic = apply_filters ("ws_plugin__s2member_is_wp_systematic_use_specific_page", false, get_defined_vars ()));
  74. }
  75. /**
  76. * Determines if a specific Post/Page ID, or URI, is Systematic in any way.
  77. *
  78. * @package s2Member\Systematics
  79. * @since 3.5
  80. *
  81. * @param int|str $singular_id Optional. A numeric Post/Page ID in WordPress®.
  82. * @param str $uri Optional. A request URI to test against.
  83. * @return bool True if Systematic, else false.
  84. *
  85. * @todo Test URIs against formulated links for Systematic Pages like the Membership Options Page?
  86. * Don't think this is required though; as it's already handled in other areas, correct?
  87. */
  88. public static function is_systematic_use_specific_page ($singular_id = FALSE, $uri = FALSE)
  89. {
  90. global $bp; // If BuddyPress is installed, we'll need this global reference.
  91. $singular_id = ($singular_id && is_numeric ($singular_id)) ? (int)$singular_id : false; // Force types.
  92. $uri = ($uri && is_string ($uri) && ($uri = c_ws_plugin__s2member_utils_urls::parse_uri ($uri))) ? $uri : false;
  93. if (c_ws_plugin__s2member_systematics_sp::is_s2_systematic_use_specific_page /* An s2Member® Systematic Use Page? */ ($singular_id, $uri))
  94. {
  95. return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
  96. }
  97. else if (c_ws_plugin__s2member_systematics_sp::is_wp_systematic_use_specific_page /* A WordPress® Systematic Use Page? */ ($singular_id, $uri))
  98. {
  99. return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
  100. }
  101. else if ($uri && c_ws_plugin__s2member_utils_conds::bp_is_installed () && preg_match ("/\/(?:" . preg_quote (trim (((function_exists ("bp_get_signup_slug")) ? bp_get_signup_slug () : BP_REGISTER_SLUG), "/"), "/") . "|" . preg_quote (trim (((function_exists ("bp_get_activate_slug")) ? bp_get_activate_slug () : BP_ACTIVATION_SLUG), "/"), "/") . ")(?:\/|\?|$)/", $uri))
  102. {
  103. return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
  104. }
  105. else if ($singular_id && c_ws_plugin__s2member_utils_conds::bp_is_installed () && ((!empty ($bp->pages->register->id) && $singular_id === (int)$bp->pages->register->id) || (!empty ($bp->pages->activate->id) && $singular_id === (int)$bp->pages->activate->id)))
  106. {
  107. return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
  108. }
  109. else if ($singular_id && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_welcome_page"] && $singular_id === (int)$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_welcome_page"])
  110. {
  111. return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
  112. }
  113. else if ($singular_id && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["membership_options_page"] && $singular_id === (int)$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["membership_options_page"])
  114. {
  115. return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
  116. }
  117. else if ($singular_id && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["file_download_limit_exceeded_page"] && $singular_id === (int)$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["file_download_limit_exceeded_page"])
  118. {
  119. return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
  120. }
  121. else if ($uri && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_override"] && ($_lro = c_ws_plugin__s2member_login_redirects::login_redirection_uri (false, "root-returns-false")) && preg_match ("/^" . preg_quote ($_lro, "/") . "$/", $uri))
  122. {
  123. return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
  124. }
  125. else // Otherwise, we return false (i.e. it's NOT a Systematic Use Page in any way).
  126. return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", false, get_defined_vars ()));
  127. }
  128. }
  129. }
  130. ?>