Version Description
= v121204 = Maintenance release. Upgrade immediately.
Download this release
Release Info
Developer | PriMoThemes |
Plugin | s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) |
Version | 121204 |
Comparing to | |
See all releases |
Code changes from version 121201 to 121204
- includes/classes/paypal-utilities.inc.php +55 -3
- includes/menu-pages/code-samples/jwplayer-standard-mp4.x-php +12 -19
- includes/menu-pages/code-samples/jwplayer-streaming-mp4-sca.x-php +12 -16
- includes/menu-pages/code-samples/jwplayer-streaming-mp4-webm.x-php +13 -20
- includes/menu-pages/code-samples/jwplayer-streaming-mp4.x-php +12 -16
- includes/menu-pages/code-samples/jwplayer-v5-standard-mp4.x-php +30 -0
- includes/menu-pages/code-samples/jwplayer-v5-streaming-mp4-sca.x-php +42 -0
- includes/menu-pages/code-samples/jwplayer-v5-streaming-mp4-webm.x-php +45 -0
- includes/menu-pages/code-samples/jwplayer-v5-streaming-mp4.x-php +38 -0
- includes/menu-pages/down-ops.inc.php +37 -3
- includes/translations/s2member.pot +27 -27
- readme.txt +8 -3
- s2member.php +4 -4
includes/classes/paypal-utilities.inc.php
CHANGED
@@ -170,6 +170,10 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
170 |
$post_vars["PWD"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_password"];
|
171 |
$post_vars["SIGNATURE"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_signature"];
|
172 |
/**/
|
|
|
|
|
|
|
|
|
173 |
$input_time = /* Record input/nvp for logging. */ date("D M j, Y g:i:s a T");
|
174 |
/**/
|
175 |
$nvp = trim(c_ws_plugin__s2member_utils_urls::remote($url, $post_vars, array("timeout" => 20)));
|
@@ -239,6 +243,28 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
239 |
return $response; /* Filters already applied with: ``ws_plugin__s2member_paypal_api_response``. */
|
240 |
}
|
241 |
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
* Calls upon the PayPal® PayFlow API, and returns the response.
|
243 |
*
|
244 |
* @package s2Member\PayPal
|
@@ -260,15 +286,19 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
260 |
$post_vars = apply_filters("ws_plugin__s2member_paypal_payflow_api_post_vars", $post_vars, get_defined_vars());
|
261 |
$post_vars = (is_array($post_vars)) ? $post_vars : array();
|
262 |
/**/
|
263 |
-
$post_vars["VERBOSITY"] = "
|
264 |
$post_vars["USER"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_payflow_api_username"];
|
265 |
$post_vars["PARTNER"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_payflow_api_partner"];
|
266 |
$post_vars["VENDOR"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_payflow_api_vendor"];
|
267 |
$post_vars["PWD"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_payflow_api_password"];
|
268 |
/**/
|
|
|
|
|
|
|
|
|
269 |
$input_time = /* Record input/nvp for logging. */ date("D M j, Y g:i:s a T");
|
270 |
/**/
|
271 |
-
$nvp_post_vars = "";
|
272 |
foreach($post_vars as $_key => $_value /* A ridiculous `text/namevalue` format. */)
|
273 |
$nvp_post_vars .= (($nvp_post_vars) ? "&" : "").$_key."[".strlen($_value)."]=".$_value;
|
274 |
unset($_key, $_value);
|
@@ -311,7 +341,7 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
311 |
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"])
|
312 |
if(is_dir($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"]))
|
313 |
if(is_writable($logs_dir) && c_ws_plugin__s2member_utils_logs::archive_oversize_log_files())
|
314 |
-
if(($log = "-------- Input vars: ( ".$input_time." ) --------\n".var_export($post_vars, true)."\n"))
|
315 |
if(($log .= "-------- Output string/vars: ( ".$output_time." ) --------\n".$nvp."\n".var_export($response, true)))
|
316 |
file_put_contents($logs_dir."/".$log2, $logv."\n".$logm."\n".$log4."\n".$log."\n\n", FILE_APPEND);
|
317 |
/**/
|
@@ -349,6 +379,28 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
349 |
return $response; /* Filters already applied with: ``ws_plugin__s2member_paypal_payflow_api_response``. */
|
350 |
}
|
351 |
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
352 |
* Converts a term `D|W|M|Y` into PayPal® Pro format.
|
353 |
*
|
354 |
* @package s2Member\PayPal
|
170 |
$post_vars["PWD"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_password"];
|
171 |
$post_vars["SIGNATURE"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_signature"];
|
172 |
/**/
|
173 |
+
foreach($post_vars as $_key => &$_value /* We need to clean these up. */)
|
174 |
+
$_value = c_ws_plugin__s2member_paypal_utilities::paypal_api_nv_cleanup($_key, $_value);
|
175 |
+
unset($_key, $_value);
|
176 |
+
/**/
|
177 |
$input_time = /* Record input/nvp for logging. */ date("D M j, Y g:i:s a T");
|
178 |
/**/
|
179 |
$nvp = trim(c_ws_plugin__s2member_utils_urls::remote($url, $post_vars, array("timeout" => 20)));
|
243 |
return $response; /* Filters already applied with: ``ws_plugin__s2member_paypal_api_response``. */
|
244 |
}
|
245 |
/**
|
246 |
+
* Cleans up values passed through PayPal® NVP strings.
|
247 |
+
*
|
248 |
+
* @package s2Member\PayPal
|
249 |
+
* @since 121202
|
250 |
+
*
|
251 |
+
* @param string $key Expects a string value.
|
252 |
+
* @param string $value Expects a string value.
|
253 |
+
* @return string Cleaned string value.
|
254 |
+
*/
|
255 |
+
public static function paypal_api_nv_cleanup($key = FALSE, $value = FALSE)
|
256 |
+
{
|
257 |
+
$value = (string)$value;
|
258 |
+
$value = preg_replace('/"/', "'", $value);
|
259 |
+
/**/
|
260 |
+
if(($key === "DESC" || $key === "BA_DESC" #
|
261 |
+
|| preg_match("/^L_NAME[0-9]+$/", $key) || preg_match("/^PAYMENTREQUEST_[0-9]+_DESC$/", $key) || preg_match("/^PAYMENTREQUEST_[0-9]+_NAME[0-9]+$/", $key) #
|
262 |
+
|| preg_match("/^L_BILLINGAGREEMENTDESCRIPTION[0-9]+$/", $key)) && strlen($value) > 60)
|
263 |
+
$value = substr($value, 0, 57)."...";
|
264 |
+
/**/
|
265 |
+
return apply_filters("ws_plugin__s2member_paypal_api_nv_cleanup", $value, get_defined_vars());
|
266 |
+
}
|
267 |
+
/**
|
268 |
* Calls upon the PayPal® PayFlow API, and returns the response.
|
269 |
*
|
270 |
* @package s2Member\PayPal
|
286 |
$post_vars = apply_filters("ws_plugin__s2member_paypal_payflow_api_post_vars", $post_vars, get_defined_vars());
|
287 |
$post_vars = (is_array($post_vars)) ? $post_vars : array();
|
288 |
/**/
|
289 |
+
$post_vars["VERBOSITY"] = "MEDIUM";
|
290 |
$post_vars["USER"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_payflow_api_username"];
|
291 |
$post_vars["PARTNER"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_payflow_api_partner"];
|
292 |
$post_vars["VENDOR"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_payflow_api_vendor"];
|
293 |
$post_vars["PWD"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_payflow_api_password"];
|
294 |
/**/
|
295 |
+
foreach($post_vars as $_key => &$_value /* We need to clean these up. */)
|
296 |
+
$_value = c_ws_plugin__s2member_paypal_utilities::paypal_payflow_api_nv_cleanup($_key, $_value);
|
297 |
+
unset($_key, $_value);
|
298 |
+
/**/
|
299 |
$input_time = /* Record input/nvp for logging. */ date("D M j, Y g:i:s a T");
|
300 |
/**/
|
301 |
+
$nvp_post_vars = /* Initialize this to an empty string. */ "";
|
302 |
foreach($post_vars as $_key => $_value /* A ridiculous `text/namevalue` format. */)
|
303 |
$nvp_post_vars .= (($nvp_post_vars) ? "&" : "").$_key."[".strlen($_value)."]=".$_value;
|
304 |
unset($_key, $_value);
|
341 |
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"])
|
342 |
if(is_dir($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"]))
|
343 |
if(is_writable($logs_dir) && c_ws_plugin__s2member_utils_logs::archive_oversize_log_files())
|
344 |
+
if(($log = "-------- Input vars: ( ".$input_time." ) --------\n".$nvp_post_vars."\n".var_export($post_vars, true)."\n"))
|
345 |
if(($log .= "-------- Output string/vars: ( ".$output_time." ) --------\n".$nvp."\n".var_export($response, true)))
|
346 |
file_put_contents($logs_dir."/".$log2, $logv."\n".$logm."\n".$log4."\n".$log."\n\n", FILE_APPEND);
|
347 |
/**/
|
379 |
return $response; /* Filters already applied with: ``ws_plugin__s2member_paypal_payflow_api_response``. */
|
380 |
}
|
381 |
/**
|
382 |
+
* Cleans up values passed through PayPal® text/namevalue strings.
|
383 |
+
*
|
384 |
+
* @package s2Member\PayPal
|
385 |
+
* @since 121202
|
386 |
+
*
|
387 |
+
* @param string $key Expects a string value.
|
388 |
+
* @param string $value Expects a string value.
|
389 |
+
* @return string Cleaned string value.
|
390 |
+
*/
|
391 |
+
public static function paypal_payflow_api_nv_cleanup($key = FALSE, $value = FALSE)
|
392 |
+
{
|
393 |
+
$value = (string)$value;
|
394 |
+
$value = preg_replace('/"/', "'", $value);
|
395 |
+
/**/
|
396 |
+
if(($key === "DESC" || $key === "BA_DESC" #
|
397 |
+
|| preg_match("/^L_NAME[0-9]+$/", $key) || preg_match("/^PAYMENTREQUEST_[0-9]+_DESC$/", $key) || preg_match("/^PAYMENTREQUEST_[0-9]+_NAME[0-9]+$/", $key) #
|
398 |
+
|| preg_match("/^L_BILLINGAGREEMENTDESCRIPTION[0-9]+$/", $key)) && strlen($value) > 60)
|
399 |
+
$value = substr($value, 0, 57)."...";
|
400 |
+
/**/
|
401 |
+
return apply_filters("ws_plugin__s2member_paypal_payflow_api_nv_cleanup", $value, get_defined_vars());
|
402 |
+
}
|
403 |
+
/**
|
404 |
* Converts a term `D|W|M|Y` into PayPal® Pro format.
|
405 |
*
|
406 |
* @package s2Member\PayPal
|
includes/menu-pages/code-samples/jwplayer-standard-mp4.x-php
CHANGED
@@ -8,23 +8,16 @@ $s2_jw_config["mp4_video_file_name"] = "video.mp4"; // Name of your MP4 test fil
|
|
8 |
<div id="jw-container">JW Player® appears here.</div>
|
9 |
<script type="text/javascript" src="<?php echo $s2_jw_config["jwplayer"]; ?>jwplayer.js"></script>
|
10 |
<script type="text/javascript">
|
11 |
-
jwplayer(
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
/* Else, this is a safe fallback. */
|
24 |
-
{type: "download", /* Download the file. */
|
25 |
-
config: {file: "/wp-content/plugins/s2member-files/s2member-file-inline/<?php echo $s2_jw_config["mp4_video_file_name"]; ?>"}}
|
26 |
-
/* Shortcode equivalent: [s2File rewrite="yes" inline="yes" download="<?php echo $s2_jw_config["mp4_video_file_name"]; ?>" /] */
|
27 |
-
],
|
28 |
-
/* Set video dimensions. */ width: 480, height: 270
|
29 |
-
});
|
30 |
</script>
|
8 |
<div id="jw-container">JW Player® appears here.</div>
|
9 |
<script type="text/javascript" src="<?php echo $s2_jw_config["jwplayer"]; ?>jwplayer.js"></script>
|
10 |
<script type="text/javascript">
|
11 |
+
jwplayer('jw-container').setup({
|
12 |
+
playlist:
|
13 |
+
[{
|
14 |
+
sources: /* List all available sources. */
|
15 |
+
[
|
16 |
+
{type: 'mp4', file: '/wp-content/plugins/s2member-files/s2member-file-inline/<?php echo $s2_jw_config["mp4_video_file_name"]; ?>'}
|
17 |
+
/* Shortcode equivalent: [s2File rewrite="yes" inline="yes" download="<?php echo $s2_jw_config["mp4_video_file_name"]; ?>" /] */
|
18 |
+
]
|
19 |
+
}],
|
20 |
+
primary: 'flash' /* Try Flash® first, fallback on HTML5 or direct download of MP4 file. */,
|
21 |
+
width: 480, height: 270 /* Set video dimensions for all sources. */
|
22 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
</script>
|
includes/menu-pages/code-samples/jwplayer-streaming-mp4-sca.x-php
CHANGED
@@ -18,22 +18,18 @@ $s2_jw_config["mp4_video_file_name"] = "video.mp4"; // Name of your MP4 test fil
|
|
18 |
<script type="text/javascript">
|
19 |
if(typeof mp4 === 'object') /* `s2File` returns a null object if access is denied to the current User. */
|
20 |
{
|
21 |
-
jwplayer(
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
config: {file: mp4['url']}}
|
34 |
-
],
|
35 |
-
/* Set video dimensions. */ width: 480, height: 270
|
36 |
-
});
|
37 |
}
|
38 |
else /* Else, `s2File` returned a null object value. */
|
39 |
{
|
18 |
<script type="text/javascript">
|
19 |
if(typeof mp4 === 'object') /* `s2File` returns a null object if access is denied to the current User. */
|
20 |
{
|
21 |
+
jwplayer('jw-container').setup({
|
22 |
+
playlist:
|
23 |
+
[{
|
24 |
+
sources: /* List all available sources. */
|
25 |
+
[
|
26 |
+
{type: 'rtmp', file: mp4['streamer'] + '/' + mp4['file']},
|
27 |
+
{type: 'mp4', file: mp4['url']}
|
28 |
+
]
|
29 |
+
}],
|
30 |
+
primary: 'flash' /* Try Flash® RTMP first, fallback on HTML5 or direct download of MP4 file. */,
|
31 |
+
width: 480, height: 270 /* Set video dimensions for all sources. */
|
32 |
+
});
|
|
|
|
|
|
|
|
|
33 |
}
|
34 |
else /* Else, `s2File` returned a null object value. */
|
35 |
{
|
includes/menu-pages/code-samples/jwplayer-streaming-mp4-webm.x-php
CHANGED
@@ -18,26 +18,19 @@ if (($mp4 = s2member_file_download_url ($mp4_cfg, "get-streamer-array"))
|
|
18 |
&& ($webm["url"] = s2member_file_download_url ($webm_cfg))) { ?>
|
19 |
|
20 |
<script type="text/javascript">
|
21 |
-
jwplayer(
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
/* Else, this is a safe fallback. */
|
36 |
-
{type: "download", /* Download the file. */
|
37 |
-
config: {file: "<?php echo $mp4["url"]; ?>"}}
|
38 |
-
],
|
39 |
-
/* Set video dimensions. */ width: 480, height: 270
|
40 |
-
});
|
41 |
</script>
|
42 |
|
43 |
<?php } else /* Access is denied to the current User. */ { ?>
|
18 |
&& ($webm["url"] = s2member_file_download_url ($webm_cfg))) { ?>
|
19 |
|
20 |
<script type="text/javascript">
|
21 |
+
jwplayer('jw-container').setup({
|
22 |
+
playlist:
|
23 |
+
[{
|
24 |
+
sources: /* List all available sources. */
|
25 |
+
[
|
26 |
+
{type: 'rtmp', file: '<?php echo $mp4["streamer"]; ?>/<?php echo $mp4["file"]; ?>'},
|
27 |
+
{type: 'mp4', file: '<?php echo $mp4["url"]; ?>'},
|
28 |
+
{type: 'webm', file: '<?php echo $webm["url"]; ?>'}
|
29 |
+
]
|
30 |
+
}],
|
31 |
+
primary: 'flash' /* Try Flash® RTMP first, fallback on HTML5 or direct download of MP4/WEBM files. */,
|
32 |
+
width: 480, height: 270 /* Set video dimensions for all sources. */
|
33 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
</script>
|
35 |
|
36 |
<?php } else /* Access is denied to the current User. */ { ?>
|
includes/menu-pages/code-samples/jwplayer-streaming-mp4.x-php
CHANGED
@@ -15,22 +15,18 @@ $cfg = array ("file_download" => $s2_jw_config["mp4_video_file_name"], "url_to_s
|
|
15 |
if (($mp4 = s2member_file_download_url ($cfg, "get-streamer-array"))) { ?>
|
16 |
|
17 |
<script type="text/javascript">
|
18 |
-
jwplayer(
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
config: {file: "<?php echo $mp4["url"]; ?>"}}
|
31 |
-
],
|
32 |
-
/* Set video dimensions. */ width: 480, height: 270
|
33 |
-
});
|
34 |
</script>
|
35 |
|
36 |
<?php } else /* Access is denied to the current User. */ { ?>
|
15 |
if (($mp4 = s2member_file_download_url ($cfg, "get-streamer-array"))) { ?>
|
16 |
|
17 |
<script type="text/javascript">
|
18 |
+
jwplayer('jw-container').setup({
|
19 |
+
playlist:
|
20 |
+
[{
|
21 |
+
sources: /* List all available sources. */
|
22 |
+
[
|
23 |
+
{type: 'rtmp', file: '<?php echo $mp4["streamer"]; ?>/<?php echo $mp4["file"]; ?>'},
|
24 |
+
{type: 'mp4', file: '<?php echo $mp4["url"]; ?>'}
|
25 |
+
]
|
26 |
+
}],
|
27 |
+
primary: 'flash' /* Try Flash® RTMP first, fallback on HTML5 or direct download of MP4 file. */,
|
28 |
+
width: 480, height: 270 /* Set video dimensions for all sources. */
|
29 |
+
});
|
|
|
|
|
|
|
|
|
30 |
</script>
|
31 |
|
32 |
<?php } else /* Access is denied to the current User. */ { ?>
|
includes/menu-pages/code-samples/jwplayer-v5-standard-mp4.x-php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Configuration.
|
3 |
+
$s2_jw_config["jwplayer"] = "/jwplayer/"; // Relative URL path to JW Player files directory.
|
4 |
+
$s2_jw_config["mp4_video_file_name"] = "video.mp4"; // Name of your MP4 test file.
|
5 |
+
// Don't edit anything else below unless you know what you're doing.
|
6 |
+
?>
|
7 |
+
|
8 |
+
<div id="jw-container">JW Player® appears here.</div>
|
9 |
+
<script type="text/javascript" src="<?php echo $s2_jw_config["jwplayer"]; ?>jwplayer.js"></script>
|
10 |
+
<script type="text/javascript">
|
11 |
+
jwplayer("jw-container").setup({modes: /* JW Player®. */
|
12 |
+
[
|
13 |
+
/* First try psuedo-streaming with Flash® player. */
|
14 |
+
{type: "flash", provider: "http", src: "<?php echo $s2_jw_config["jwplayer"]; ?>player.swf",
|
15 |
+
config: {file: "/wp-content/plugins/s2member-files/s2member-file-inline/<?php echo $s2_jw_config["mp4_video_file_name"]; ?>"}},
|
16 |
+
/* Shortcode equivalent: [s2File rewrite="yes" inline="yes" download="<?php echo $s2_jw_config["mp4_video_file_name"]; ?>" /] */
|
17 |
+
|
18 |
+
/* Else, try an HTML5 video tag. */
|
19 |
+
{type: "html5", provider: "video",
|
20 |
+
config: {file: "/wp-content/plugins/s2member-files/s2member-file-inline/<?php echo $s2_jw_config["mp4_video_file_name"]; ?>"}},
|
21 |
+
/* Shortcode equivalent: [s2File rewrite="yes" inline="yes" download="<?php echo $s2_jw_config["mp4_video_file_name"]; ?>" /] */
|
22 |
+
|
23 |
+
/* Else, this is a safe fallback. */
|
24 |
+
{type: "download", /* Download the file. */
|
25 |
+
config: {file: "/wp-content/plugins/s2member-files/s2member-file-inline/<?php echo $s2_jw_config["mp4_video_file_name"]; ?>"}}
|
26 |
+
/* Shortcode equivalent: [s2File rewrite="yes" inline="yes" download="<?php echo $s2_jw_config["mp4_video_file_name"]; ?>" /] */
|
27 |
+
],
|
28 |
+
/* Set video dimensions. */ width: 480, height: 270
|
29 |
+
});
|
30 |
+
</script>
|
includes/menu-pages/code-samples/jwplayer-v5-streaming-mp4-sca.x-php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Configuration.
|
3 |
+
$s2_jw_config["jwplayer"] = "/jwplayer/"; // Relative URL path to JW Player files directory.
|
4 |
+
$s2_jw_config["mp4_video_file_name"] = "video.mp4"; // Name of your MP4 test file.
|
5 |
+
// Don't edit anything else below unless you know what you're doing.
|
6 |
+
?>
|
7 |
+
|
8 |
+
<div id="jw-container">JW Player® appears here.</div>
|
9 |
+
<script type="text/javascript" src="<?php echo $s2_jw_config["jwplayer"]; ?>jwplayer.js"></script>
|
10 |
+
|
11 |
+
<script type="text/javascript">
|
12 |
+
/* The Shortcode here will return a JSON object for JavaScript notation. */
|
13 |
+
/* A direct URL to the RTMP source; counting the file against the current User in real-time. */
|
14 |
+
/* API Shortcode `s2File` returns a null object if access is denied to the current User/Member. */
|
15 |
+
var mp4 = [s2File download="<?php echo $s2_jw_config["mp4_video_file_name"]; ?>" url_to_storage_source="true" count_against_user="true" get_streamer_json="true" /];
|
16 |
+
</script>
|
17 |
+
|
18 |
+
<script type="text/javascript">
|
19 |
+
if(typeof mp4 === 'object') /* `s2File` returns a null object if access is denied to the current User. */
|
20 |
+
{
|
21 |
+
jwplayer("jw-container").setup({modes: /* JW Player®. */
|
22 |
+
[
|
23 |
+
/* First try real-time streaming with Flash® player. */
|
24 |
+
{type: "flash", provider: "rtmp", src: "<?php echo $s2_jw_config["jwplayer"]; ?>player.swf",
|
25 |
+
config: {streamer: mp4['streamer'], file: mp4['file']}},
|
26 |
+
|
27 |
+
/* Else, try an HTML5 video tag. */
|
28 |
+
{type: "html5", provider: "video",
|
29 |
+
config: {file: mp4['url']}},
|
30 |
+
|
31 |
+
/* Else, this is a safe fallback. */
|
32 |
+
{type: "download", /* Download the file. */
|
33 |
+
config: {file: mp4['url']}}
|
34 |
+
],
|
35 |
+
/* Set video dimensions. */ width: 480, height: 270
|
36 |
+
});
|
37 |
+
}
|
38 |
+
else /* Else, `s2File` returned a null object value. */
|
39 |
+
{
|
40 |
+
document.write('Sorry, you do NOT have access to this file.');
|
41 |
+
}
|
42 |
+
</script>
|
includes/menu-pages/code-samples/jwplayer-v5-streaming-mp4-webm.x-php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Configuration.
|
3 |
+
$s2_jw_config["jwplayer"] = "/jwplayer/"; // Relative URL path to JW Player files directory.
|
4 |
+
$s2_jw_config["mp4_video_file_name"] = "video.mp4"; // Name of your MP4 test file.
|
5 |
+
$s2_jw_config["webm_video_file_name"] = "video.webm"; // Name of your WEBM test file.
|
6 |
+
// Don't edit anything else below unless you know what you're doing.
|
7 |
+
?>
|
8 |
+
|
9 |
+
<div id="jw-container">JW Player® appears here.</div>
|
10 |
+
<script type="text/javascript" src="<?php echo $s2_jw_config["jwplayer"]; ?>jwplayer.js"></script>
|
11 |
+
|
12 |
+
<?php /* A direct URL to the RTMP source; counting the file against the current User in real-time. */
|
13 |
+
$mp4_cfg = array ("file_download" => $s2_jw_config["mp4_video_file_name"], "url_to_storage_source" => true, "count_against_user" => true);
|
14 |
+
$webm_cfg = array ("file_download" => $s2_jw_config["webm_video_file_name"], "url_to_storage_source" => true /* Don't count variations. */); ?>
|
15 |
+
|
16 |
+
<?php /* API Function `s2member_file_download_url()` returns false if access is denied to the current User. */
|
17 |
+
if (($mp4 = s2member_file_download_url ($mp4_cfg, "get-streamer-array"))
|
18 |
+
&& ($webm["url"] = s2member_file_download_url ($webm_cfg))) { ?>
|
19 |
+
|
20 |
+
<script type="text/javascript">
|
21 |
+
jwplayer("jw-container").setup({modes: /* JW Player®. */
|
22 |
+
[
|
23 |
+
/* First try real-time streaming with Flash® player. */
|
24 |
+
{type: "flash", provider: "rtmp", src: "<?php echo $s2_jw_config["jwplayer"]; ?>player.swf",
|
25 |
+
config: {streamer: "<?php echo $mp4["streamer"]; ?>", file: "<?php echo $mp4["file"]; ?>"}},
|
26 |
+
|
27 |
+
/* Else, try an HTML5 video tag with the `mp4` file. */
|
28 |
+
{type: "html5", provider: "video",
|
29 |
+
config: {file: "<?php echo $mp4["url"]; ?>"}},
|
30 |
+
|
31 |
+
/* Else, try an HTML5 video tag with a `webm` file. */
|
32 |
+
{type: "html5", provider: "video",
|
33 |
+
config: {file: "<?php echo $webm["url"]; ?>"}},
|
34 |
+
|
35 |
+
/* Else, this is a safe fallback. */
|
36 |
+
{type: "download", /* Download the file. */
|
37 |
+
config: {file: "<?php echo $mp4["url"]; ?>"}}
|
38 |
+
],
|
39 |
+
/* Set video dimensions. */ width: 480, height: 270
|
40 |
+
});
|
41 |
+
</script>
|
42 |
+
|
43 |
+
<?php } else /* Access is denied to the current User. */ { ?>
|
44 |
+
Sorry, you do NOT have access to this file.
|
45 |
+
<?php } ?>
|
includes/menu-pages/code-samples/jwplayer-v5-streaming-mp4.x-php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Configuration.
|
3 |
+
$s2_jw_config["jwplayer"] = "/jwplayer/"; // Relative URL path to JW Player files directory.
|
4 |
+
$s2_jw_config["mp4_video_file_name"] = "video.mp4"; // Name of your MP4 test file.
|
5 |
+
// Don't edit anything else below unless you know what you're doing.
|
6 |
+
?>
|
7 |
+
|
8 |
+
<div id="jw-container">JW Player® appears here.</div>
|
9 |
+
<script type="text/javascript" src="<?php echo $s2_jw_config["jwplayer"]; ?>jwplayer.js"></script>
|
10 |
+
|
11 |
+
<?php /* A direct URL to the RTMP source; counting the file against the current User in real-time. */
|
12 |
+
$cfg = array ("file_download" => $s2_jw_config["mp4_video_file_name"], "url_to_storage_source" => true, "count_against_user" => true); ?>
|
13 |
+
|
14 |
+
<?php /* API Function `s2member_file_download_url()` returns false if access is denied to the current User. */
|
15 |
+
if (($mp4 = s2member_file_download_url ($cfg, "get-streamer-array"))) { ?>
|
16 |
+
|
17 |
+
<script type="text/javascript">
|
18 |
+
jwplayer("jw-container").setup({modes: /* JW Player®. */
|
19 |
+
[
|
20 |
+
/* First try real-time streaming with Flash® player. */
|
21 |
+
{type: "flash", provider: "rtmp", src: "<?php echo $s2_jw_config["jwplayer"]; ?>player.swf",
|
22 |
+
config: {streamer: "<?php echo $mp4["streamer"]; ?>", file: "<?php echo $mp4["file"]; ?>"}},
|
23 |
+
|
24 |
+
/* Else, try an HTML5 video tag. */
|
25 |
+
{type: "html5", provider: "video",
|
26 |
+
config: {file: "<?php echo $mp4["url"]; ?>"}},
|
27 |
+
|
28 |
+
/* Else, this is a safe fallback. */
|
29 |
+
{type: "download", /* Download the file. */
|
30 |
+
config: {file: "<?php echo $mp4["url"]; ?>"}}
|
31 |
+
],
|
32 |
+
/* Set video dimensions. */ width: 480, height: 270
|
33 |
+
});
|
34 |
+
</script>
|
35 |
+
|
36 |
+
<?php } else /* Access is denied to the current User. */ { ?>
|
37 |
+
Sorry, you do NOT have access to this file.
|
38 |
+
<?php } ?>
|
includes/menu-pages/down-ops.inc.php
CHANGED
@@ -480,10 +480,10 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_down_ops"))
|
|
480 |
{
|
481 |
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_before_rtmp_streaming", get_defined_vars());
|
482 |
/**/
|
483 |
-
echo '<div class="ws-menu-page-group" title="JW Player® & RTMP Protocol Examples">'."\n";
|
484 |
/**/
|
485 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-rtmp-streaming-section">'."\n";
|
486 |
-
echo '<h3>JW Player® & RTMP Protocol Examples</h3>'."\n";
|
487 |
echo '<a href="http://www.longtailvideo.com/players/" target="_blank"><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/images/jwplayer-logo.png" class="ws-menu-page-right" style="width:179px; height:58px; border:0;" alt="." /></a>'."\n";
|
488 |
echo '<p>While it is possible to serve audio/video files protected by s2Member, without needing to integrate Amazon® S3 or CloudFront; we DO highly recommend that you integrate both Amazon® S3 and Amazon® CloudFront in order to maximize speed and compatibility across various viewing platforms. That being said, there are code samples below that will serve audio/video files both with and without Amazon® S3/CloudFront. You can also check the <a href="'.esc_attr(c_ws_plugin__s2member_readmes::parse_readme_value("Forum URI")).'" target="_blank" rel="external">s2Member Support Forums</a> for tips/tricks if you like.</p>'."\n";
|
489 |
echo '<p><strong>One of the great things about Amazon® CloudFront</strong>, is its ability to <strong>stream/seek media files</strong> in the truest sense of the word. For sites delivering protected <em>FLV/MP4/OGG/WEBM</em> and other streaming audio/video file types over the <em>RTMP</em> protocol, Amazon® CloudFront is our recommendation. Once you\'ve successfully configured s2Member to use both Amazon® S3 and Amazon® CloudFront together, please review the code samples below. s2Member can automatically serve your protected files over the <em>RTMP</em> protocol using an Amazon® CloudFront Streaming Distribution.</p>'."\n";
|
@@ -500,7 +500,7 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_down_ops"))
|
|
500 |
echo '<p style="font-size:110%;"><a href="#" onclick="jQuery(\'p#ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-sca\').toggle(); return false;" class="ws-dotted-link">JW Player® ( RTMP streaming MP4, via s2Member\'s JSON/Shortcode alternative )</a></p>'."\n";
|
501 |
echo '<p id="ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-sca" style="display:none;">Download <a href="http://www.longtailvideo.com/players/" target="_blank" rel="external">JW Player® here</a>, and upload <code>/jwplayer/</code> to your website\'s root directory.<br />This requires s2Member to be integrated with Amazon® S3/CloudFront.<br />Also see: <a href="http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/" target="_blank" rel="external">s2Member Codex -> API Functions</a>.<br /><br />'.c_ws_plugin__s2member_utils_strings::highlight_php(file_get_contents(dirname(__FILE__)."/code-samples/jwplayer-streaming-mp4-sca.x-php")).'</p>'."\n";
|
502 |
/**/
|
503 |
-
echo '<p style="font-size:110%;"><a href="#" onclick="jQuery(\'p#ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-webm\').toggle(); return false;" class="ws-dotted-link">JW Player® ( RTMP streaming MP4, advanced w/ multiple
|
504 |
echo '<p id="ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-webm" style="display:none;">Download <a href="http://www.longtailvideo.com/players/" target="_blank" rel="external">JW Player® here</a>, and upload <code>/jwplayer/</code> to your website\'s root directory.<br />This requires s2Member to be integrated with Amazon® S3/CloudFront.<br />Also see: <a href="http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/" target="_blank" rel="external">s2Member Codex -> API Functions</a>.<br /><br />'.c_ws_plugin__s2member_utils_strings::highlight_php(file_get_contents(dirname(__FILE__)."/code-samples/jwplayer-streaming-mp4-webm.x-php")).'</p>'."\n";
|
505 |
/**/
|
506 |
echo '</div>'."\n";
|
@@ -510,6 +510,40 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_down_ops"))
|
|
510 |
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_after_rtmp_streaming", get_defined_vars());
|
511 |
}
|
512 |
/**/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
513 |
if(apply_filters("ws_plugin__s2member_during_down_ops_page_during_left_sections_display_rewrite_linkage", true, get_defined_vars()))
|
514 |
{
|
515 |
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_before_rewrite_linkage", get_defined_vars());
|
480 |
{
|
481 |
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_before_rtmp_streaming", get_defined_vars());
|
482 |
/**/
|
483 |
+
echo '<div class="ws-menu-page-group" title="JW Player® v6 & RTMP Protocol Examples">'."\n";
|
484 |
/**/
|
485 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-rtmp-streaming-section">'."\n";
|
486 |
+
echo '<h3>JW Player® v6 & RTMP Protocol Examples</h3>'."\n";
|
487 |
echo '<a href="http://www.longtailvideo.com/players/" target="_blank"><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/images/jwplayer-logo.png" class="ws-menu-page-right" style="width:179px; height:58px; border:0;" alt="." /></a>'."\n";
|
488 |
echo '<p>While it is possible to serve audio/video files protected by s2Member, without needing to integrate Amazon® S3 or CloudFront; we DO highly recommend that you integrate both Amazon® S3 and Amazon® CloudFront in order to maximize speed and compatibility across various viewing platforms. That being said, there are code samples below that will serve audio/video files both with and without Amazon® S3/CloudFront. You can also check the <a href="'.esc_attr(c_ws_plugin__s2member_readmes::parse_readme_value("Forum URI")).'" target="_blank" rel="external">s2Member Support Forums</a> for tips/tricks if you like.</p>'."\n";
|
489 |
echo '<p><strong>One of the great things about Amazon® CloudFront</strong>, is its ability to <strong>stream/seek media files</strong> in the truest sense of the word. For sites delivering protected <em>FLV/MP4/OGG/WEBM</em> and other streaming audio/video file types over the <em>RTMP</em> protocol, Amazon® CloudFront is our recommendation. Once you\'ve successfully configured s2Member to use both Amazon® S3 and Amazon® CloudFront together, please review the code samples below. s2Member can automatically serve your protected files over the <em>RTMP</em> protocol using an Amazon® CloudFront Streaming Distribution.</p>'."\n";
|
500 |
echo '<p style="font-size:110%;"><a href="#" onclick="jQuery(\'p#ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-sca\').toggle(); return false;" class="ws-dotted-link">JW Player® ( RTMP streaming MP4, via s2Member\'s JSON/Shortcode alternative )</a></p>'."\n";
|
501 |
echo '<p id="ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-sca" style="display:none;">Download <a href="http://www.longtailvideo.com/players/" target="_blank" rel="external">JW Player® here</a>, and upload <code>/jwplayer/</code> to your website\'s root directory.<br />This requires s2Member to be integrated with Amazon® S3/CloudFront.<br />Also see: <a href="http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/" target="_blank" rel="external">s2Member Codex -> API Functions</a>.<br /><br />'.c_ws_plugin__s2member_utils_strings::highlight_php(file_get_contents(dirname(__FILE__)."/code-samples/jwplayer-streaming-mp4-sca.x-php")).'</p>'."\n";
|
502 |
/**/
|
503 |
+
echo '<p style="font-size:110%;"><a href="#" onclick="jQuery(\'p#ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-webm\').toggle(); return false;" class="ws-dotted-link">JW Player® ( RTMP streaming MP4, advanced w/ multiple fallbacks )</a></p>'."\n";
|
504 |
echo '<p id="ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-webm" style="display:none;">Download <a href="http://www.longtailvideo.com/players/" target="_blank" rel="external">JW Player® here</a>, and upload <code>/jwplayer/</code> to your website\'s root directory.<br />This requires s2Member to be integrated with Amazon® S3/CloudFront.<br />Also see: <a href="http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/" target="_blank" rel="external">s2Member Codex -> API Functions</a>.<br /><br />'.c_ws_plugin__s2member_utils_strings::highlight_php(file_get_contents(dirname(__FILE__)."/code-samples/jwplayer-streaming-mp4-webm.x-php")).'</p>'."\n";
|
505 |
/**/
|
506 |
echo '</div>'."\n";
|
510 |
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_after_rtmp_streaming", get_defined_vars());
|
511 |
}
|
512 |
/**/
|
513 |
+
if(apply_filters("ws_plugin__s2member_during_down_ops_page_during_left_sections_display_rtmp_streaming", true, get_defined_vars()))
|
514 |
+
{
|
515 |
+
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_before_rtmp_streaming", get_defined_vars());
|
516 |
+
/**/
|
517 |
+
echo '<div class="ws-menu-page-group" title="JW Player® v5 & RTMP Protocol Examples">'."\n";
|
518 |
+
/**/
|
519 |
+
echo '<div class="ws-menu-page-section ws-plugin--s2member-rtmp-streaming-section">'."\n";
|
520 |
+
echo '<h3>JW Player® v5 & RTMP Protocol Examples</h3>'."\n";
|
521 |
+
echo '<a href="http://www.longtailvideo.com/players/" target="_blank"><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/images/jwplayer-logo.png" class="ws-menu-page-right" style="width:179px; height:58px; border:0;" alt="." /></a>'."\n";
|
522 |
+
echo '<p>While it is possible to serve audio/video files protected by s2Member, without needing to integrate Amazon® S3 or CloudFront; we DO highly recommend that you integrate both Amazon® S3 and Amazon® CloudFront in order to maximize speed and compatibility across various viewing platforms. That being said, there are code samples below that will serve audio/video files both with and without Amazon® S3/CloudFront. You can also check the <a href="'.esc_attr(c_ws_plugin__s2member_readmes::parse_readme_value("Forum URI")).'" target="_blank" rel="external">s2Member Support Forums</a> for tips/tricks if you like.</p>'."\n";
|
523 |
+
echo '<p><strong>One of the great things about Amazon® CloudFront</strong>, is its ability to <strong>stream/seek media files</strong> in the truest sense of the word. For sites delivering protected <em>FLV/MP4/OGG/WEBM</em> and other streaming audio/video file types over the <em>RTMP</em> protocol, Amazon® CloudFront is our recommendation. Once you\'ve successfully configured s2Member to use both Amazon® S3 and Amazon® CloudFront together, please review the code samples below. s2Member can automatically serve your protected files over the <em>RTMP</em> protocol using an Amazon® CloudFront Streaming Distribution.</p>'."\n";
|
524 |
+
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_during_rtmp_streaming", get_defined_vars());
|
525 |
+
/**/
|
526 |
+
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
527 |
+
/**/
|
528 |
+
echo '<p style="font-size:110%;"><a href="#" onclick="jQuery(\'p#ws-plugin--s2member-rtmp-streaming-details-jwplayer-standard-mp4\').toggle(); return false;" class="ws-dotted-link">JW Player® ( MP4 file, via Rewrite URLs. Amazon® S3/CloudFront NOT required )</a></p>'."\n";
|
529 |
+
echo '<p id="ws-plugin--s2member-rtmp-streaming-details-jwplayer-standard-mp4" style="display:none;">Download <a href="http://www.longtailvideo.com/players/" target="_blank" rel="external">JW Player® here</a>, and upload <code>/jwplayer/</code> to your website\'s root directory.<br />This does NOT require s2Member to be integrated with Amazon® S3/CloudFront.<br />Also see: <code>s2Member -> Download Options -> Advanced Mod Rewrite Linkage</code>.<br /><br />'.c_ws_plugin__s2member_utils_strings::highlight_php(file_get_contents(dirname(__FILE__)."/code-samples/jwplayer-v5-standard-mp4.x-php")).'</p>'."\n";
|
530 |
+
/**/
|
531 |
+
echo '<p style="font-size:110%;"><a href="#" onclick="jQuery(\'p#ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4\').toggle(); return false;" class="ws-dotted-link">JW Player® ( RTMP streaming MP4, via s2Member\'s Amazon® S3/CloudFront integration )</a></p>'."\n";
|
532 |
+
echo '<p id="ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4" style="display:none;">Download <a href="http://www.longtailvideo.com/players/" target="_blank" rel="external">JW Player® here</a>, and upload <code>/jwplayer/</code> to your website\'s root directory.<br />This requires s2Member to be integrated with Amazon® S3/CloudFront.<br />Also see: <a href="http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/" target="_blank" rel="external">s2Member Codex -> API Functions</a>.<br /><br />'.c_ws_plugin__s2member_utils_strings::highlight_php(file_get_contents(dirname(__FILE__)."/code-samples/jwplayer-v5-streaming-mp4.x-php")).'</p>'."\n";
|
533 |
+
/**/
|
534 |
+
echo '<p style="font-size:110%;"><a href="#" onclick="jQuery(\'p#ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-sca\').toggle(); return false;" class="ws-dotted-link">JW Player® ( RTMP streaming MP4, via s2Member\'s JSON/Shortcode alternative )</a></p>'."\n";
|
535 |
+
echo '<p id="ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-sca" style="display:none;">Download <a href="http://www.longtailvideo.com/players/" target="_blank" rel="external">JW Player® here</a>, and upload <code>/jwplayer/</code> to your website\'s root directory.<br />This requires s2Member to be integrated with Amazon® S3/CloudFront.<br />Also see: <a href="http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/" target="_blank" rel="external">s2Member Codex -> API Functions</a>.<br /><br />'.c_ws_plugin__s2member_utils_strings::highlight_php(file_get_contents(dirname(__FILE__)."/code-samples/jwplayer-v5-streaming-mp4-sca.x-php")).'</p>'."\n";
|
536 |
+
/**/
|
537 |
+
echo '<p style="font-size:110%;"><a href="#" onclick="jQuery(\'p#ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-webm\').toggle(); return false;" class="ws-dotted-link">JW Player® ( RTMP streaming MP4, advanced w/ multiple fallbacks )</a></p>'."\n";
|
538 |
+
echo '<p id="ws-plugin--s2member-rtmp-streaming-details-jwplayer-streaming-mp4-webm" style="display:none;">Download <a href="http://www.longtailvideo.com/players/" target="_blank" rel="external">JW Player® here</a>, and upload <code>/jwplayer/</code> to your website\'s root directory.<br />This requires s2Member to be integrated with Amazon® S3/CloudFront.<br />Also see: <a href="http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/" target="_blank" rel="external">s2Member Codex -> API Functions</a>.<br /><br />'.c_ws_plugin__s2member_utils_strings::highlight_php(file_get_contents(dirname(__FILE__)."/code-samples/jwplayer-v5-streaming-mp4-webm.x-php")).'</p>'."\n";
|
539 |
+
/**/
|
540 |
+
echo '</div>'."\n";
|
541 |
+
/**/
|
542 |
+
echo '</div>'."\n";
|
543 |
+
/**/
|
544 |
+
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_after_rtmp_streaming", get_defined_vars());
|
545 |
+
}
|
546 |
+
/**/
|
547 |
if(apply_filters("ws_plugin__s2member_during_down_ops_page_during_left_sections_display_rewrite_linkage", true, get_defined_vars()))
|
548 |
{
|
549 |
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_before_rewrite_linkage", get_defined_vars());
|
includes/translations/s2member.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the s2Member® Framework package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: s2Member® Framework
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/___s2member\n"
|
7 |
-
"POT-Creation-Date: 2012-12-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -660,30 +660,30 @@ msgstr ""
|
|
660 |
#. again`, or something to that affect. Or, if you prefer, you could Filter
|
661 |
#. ``$response["__error"]`` with `ws_plugin__s2member_paypal_api_response`.
|
662 |
|
663 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
664 |
msgctxt "s2member-front"
|
665 |
msgid "Error #%1$s. %2$s. %3$s."
|
666 |
msgstr ""
|
667 |
|
668 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
669 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
670 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
671 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:97
|
672 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:322
|
673 |
msgctxt "s2member-front"
|
674 |
msgid "Error. Please contact Support for assistance."
|
675 |
msgstr ""
|
676 |
|
677 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
678 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
679 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
680 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
681 |
msgctxt "s2member-front"
|
682 |
msgid "Error #%s. Transaction declined. Please use an alternate funding source."
|
683 |
msgstr ""
|
684 |
|
685 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
686 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
687 |
msgctxt "s2member-front"
|
688 |
msgid "Error #%s. Transaction declined. Express Checkout was NOT confirmed."
|
689 |
msgstr ""
|
@@ -703,8 +703,8 @@ msgstr ""
|
|
703 |
#. ``$response["__error"]`` with
|
704 |
#. `ws_plugin__s2member_pro_authnet_arb_response`.
|
705 |
|
706 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
707 |
-
#: s2member/includes/classes/paypal-utilities.inc.php:
|
708 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:94
|
709 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:319
|
710 |
msgctxt "s2member-front"
|
@@ -2466,8 +2466,8 @@ msgstr ""
|
|
2466 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:580
|
2467 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:294
|
2468 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:617
|
2469 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2470 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2471 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:425
|
2472 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:853
|
2473 |
msgctxt "s2member-front"
|
@@ -2478,8 +2478,8 @@ msgstr ""
|
|
2478 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:696
|
2479 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:456
|
2480 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:769
|
2481 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2482 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2483 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:687
|
2484 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1005
|
2485 |
msgctxt "s2member-front"
|
@@ -2496,10 +2496,10 @@ msgstr ""
|
|
2496 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:486
|
2497 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:778
|
2498 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:799
|
2499 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2500 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2501 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2502 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2503 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:696
|
2504 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:717
|
2505 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1014
|
@@ -2514,8 +2514,8 @@ msgstr ""
|
|
2514 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:717
|
2515 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:477
|
2516 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:790
|
2517 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2518 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2519 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:708
|
2520 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1026
|
2521 |
msgctxt "s2member-front"
|
@@ -2524,7 +2524,7 @@ msgstr ""
|
|
2524 |
|
2525 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:737
|
2526 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:810
|
2527 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2528 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1046
|
2529 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:138
|
2530 |
msgctxt "s2member-front"
|
@@ -3595,8 +3595,8 @@ msgstr ""
|
|
3595 |
|
3596 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:306
|
3597 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:629
|
3598 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
3599 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
3600 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:442
|
3601 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:865
|
3602 |
msgctxt "s2member-front"
|
2 |
# This file is distributed under the same license as the s2Member® Framework package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: s2Member® Framework 121204\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/___s2member\n"
|
7 |
+
"POT-Creation-Date: 2012-12-05 08:31:10+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
660 |
#. again`, or something to that affect. Or, if you prefer, you could Filter
|
661 |
#. ``$response["__error"]`` with `ws_plugin__s2member_paypal_api_response`.
|
662 |
|
663 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:190
|
664 |
msgctxt "s2member-front"
|
665 |
msgid "Error #%1$s. %2$s. %3$s."
|
666 |
msgstr ""
|
667 |
|
668 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:193
|
669 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:320
|
670 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:329
|
671 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:97
|
672 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:322
|
673 |
msgctxt "s2member-front"
|
674 |
msgid "Error. Please contact Support for assistance."
|
675 |
msgstr ""
|
676 |
|
677 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:234
|
678 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:240
|
679 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:370
|
680 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:376
|
681 |
msgctxt "s2member-front"
|
682 |
msgid "Error #%s. Transaction declined. Please use an alternate funding source."
|
683 |
msgstr ""
|
684 |
|
685 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:237
|
686 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:373
|
687 |
msgctxt "s2member-front"
|
688 |
msgid "Error #%s. Transaction declined. Express Checkout was NOT confirmed."
|
689 |
msgstr ""
|
703 |
#. ``$response["__error"]`` with
|
704 |
#. `ws_plugin__s2member_pro_authnet_arb_response`.
|
705 |
|
706 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:317
|
707 |
+
#: s2member/includes/classes/paypal-utilities.inc.php:326
|
708 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:94
|
709 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:319
|
710 |
msgctxt "s2member-front"
|
2466 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:580
|
2467 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:294
|
2468 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:617
|
2469 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:338
|
2470 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:671
|
2471 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:425
|
2472 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:853
|
2473 |
msgctxt "s2member-front"
|
2478 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:696
|
2479 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:456
|
2480 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:769
|
2481 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:510
|
2482 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:823
|
2483 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:687
|
2484 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1005
|
2485 |
msgctxt "s2member-front"
|
2496 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:486
|
2497 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:778
|
2498 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:799
|
2499 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:519
|
2500 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:540
|
2501 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:832
|
2502 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:853
|
2503 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:696
|
2504 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:717
|
2505 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1014
|
2514 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:717
|
2515 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:477
|
2516 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:790
|
2517 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:531
|
2518 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:844
|
2519 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:708
|
2520 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1026
|
2521 |
msgctxt "s2member-front"
|
2524 |
|
2525 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:737
|
2526 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:810
|
2527 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:864
|
2528 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1046
|
2529 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:138
|
2530 |
msgctxt "s2member-front"
|
3595 |
|
3596 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:306
|
3597 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:629
|
3598 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:350
|
3599 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:683
|
3600 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:442
|
3601 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:865
|
3602 |
msgctxt "s2member-front"
|
readme.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
=== s2Member® Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
|
2 |
|
3 |
-
Version:
|
4 |
-
Stable tag:
|
5 |
|
6 |
SSL Compatible: yes
|
7 |
bbPress® Compatible: yes
|
@@ -91,11 +91,16 @@ Please see [this FAQ entry](http://www.s2member.com/faqs/#s2-faqs-translations)
|
|
91 |
|
92 |
== Upgrade Notice ==
|
93 |
|
94 |
-
=
|
95 |
Maintenance release. Upgrade immediately.
|
96 |
|
97 |
== Changelog ==
|
98 |
|
|
|
|
|
|
|
|
|
|
|
99 |
= v121201 =
|
100 |
* **(Maintenance Release) Upgrade immediately.**
|
101 |
* (s2Member / s2Member Pro) **Bug Fix**. Support Rep Cristián Lávaque found a bug in the behavior of s2Member’s Alternative View Restrictions, associated with Category listings in custom menu widgets. Fixed in this release. Discussed in [this thread](http://www.s2member.com/forums/topic/welcome-page-title-shows-but-no-content/page/2/#post-29802).
|
1 |
=== s2Member® Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
|
2 |
|
3 |
+
Version: 121204
|
4 |
+
Stable tag: 121204
|
5 |
|
6 |
SSL Compatible: yes
|
7 |
bbPress® Compatible: yes
|
91 |
|
92 |
== Upgrade Notice ==
|
93 |
|
94 |
+
= v121204 =
|
95 |
Maintenance release. Upgrade immediately.
|
96 |
|
97 |
== Changelog ==
|
98 |
|
99 |
+
= v121204 =
|
100 |
+
* **(Maintenance Release) Upgrade immediately.**
|
101 |
+
* (s2Member / s2Member Pro) **Bug Fix**. An issue with long billing agreement descriptions under PayPal® Pro (Payflow® Edition) accounts, when coupon codes were being used by customers, was addressed in this release. Symptoms of this bug were errors in s2Member® log files from the Payflow® API, with error code: ``11581-Profile description is invalid``. Caused by undocumented length requirements for the billing agreement description under the Payflow® API. Fixed in this release. Discussed in [this thread](http://www.s2member.com/forums/topic/error-generic-processor-error-11581/page/2/#post-33477).
|
102 |
+
* (s2Member / s2Member Pro) **Compatibility**. Updated JW Player code samples for compatibility with JW Player v6. Discussed in [this thread](http://www.s2member.com/forums/topic/jw-player-rtmp-streaming-mp4-amazon-s3/page/2/#post-32074).
|
103 |
+
|
104 |
= v121201 =
|
105 |
* **(Maintenance Release) Upgrade immediately.**
|
106 |
* (s2Member / s2Member Pro) **Bug Fix**. Support Rep Cristián Lávaque found a bug in the behavior of s2Member’s Alternative View Restrictions, associated with Category listings in custom menu widgets. Fixed in this release. Discussed in [this thread](http://www.s2member.com/forums/topic/welcome-page-title-shows-but-no-content/page/2/#post-29802).
|
s2member.php
CHANGED
@@ -19,8 +19,8 @@
|
|
19 |
*/
|
20 |
/* -- This section for WordPress® parsing. ------------------------------------------------------------------------------
|
21 |
|
22 |
-
Version:
|
23 |
-
Stable tag:
|
24 |
|
25 |
SSL Compatible: yes
|
26 |
bbPress® Compatible: yes
|
@@ -75,7 +75,7 @@ if(realpath(__FILE__) === realpath($_SERVER["SCRIPT_FILENAME"]))
|
|
75 |
* @var str
|
76 |
*/
|
77 |
if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
|
78 |
-
define("WS_PLUGIN__S2MEMBER_VERSION", "
|
79 |
/**
|
80 |
* Minimum PHP version required to run s2Member.
|
81 |
*
|
@@ -105,7 +105,7 @@ if(!defined("WS_PLUGIN__S2MEMBER_MIN_WP_VERSION"))
|
|
105 |
* @var str
|
106 |
*/
|
107 |
if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
|
108 |
-
define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "
|
109 |
/*
|
110 |
Several compatibility checks.
|
111 |
If all pass, load the s2Member plugin.
|
19 |
*/
|
20 |
/* -- This section for WordPress® parsing. ------------------------------------------------------------------------------
|
21 |
|
22 |
+
Version: 121204
|
23 |
+
Stable tag: 121204
|
24 |
|
25 |
SSL Compatible: yes
|
26 |
bbPress® Compatible: yes
|
75 |
* @var str
|
76 |
*/
|
77 |
if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
|
78 |
+
define("WS_PLUGIN__S2MEMBER_VERSION", "121204" /* !#distro-version#! */);
|
79 |
/**
|
80 |
* Minimum PHP version required to run s2Member.
|
81 |
*
|
105 |
* @var str
|
106 |
*/
|
107 |
if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
|
108 |
+
define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "121204" /* !#distro-version#! */);
|
109 |
/*
|
110 |
Several compatibility checks.
|
111 |
If all pass, load the s2Member plugin.
|