Version Description
= v121204 = Maintenance release. Upgrade immediately.
Download this release
Release Info
| Developer | PriMoThemes |
| Plugin | |
| 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.
|
