summaryrefslogtreecommitdiff
path: root/lib/lib_rss.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-03-11 22:57:20 +0100
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-03-11 22:57:20 +0100
commit8dcc0fd65a36adedb12e5d54bafb39e7e553d38b (patch)
treebf47fd99928a6782a309cdd1171516029d4f9611 /lib/lib_rss.php
parent919c9c83013ea310f01c309f00dea3f8afa9033e (diff)
parent8f4c61a4154641ac22e6d541b6994add3c4803cb (diff)
Merge pull request #1119 from FreshRSS/dev1.3.1-beta
Merge dev in 1.3.1-beta
Diffstat (limited to 'lib/lib_rss.php')
-rw-r--r--lib/lib_rss.php49
1 files changed, 44 insertions, 5 deletions
diff --git a/lib/lib_rss.php b/lib/lib_rss.php
index 2a23fca45..135115ea5 100644
--- a/lib/lib_rss.php
+++ b/lib/lib_rss.php
@@ -1,20 +1,49 @@
<?php
if (!function_exists('json_decode')) {
require_once('JSON.php');
- function json_decode($var) {
- $JSON = new Services_JSON;
- return (array)($JSON->decode($var));
+ function json_decode($var, $assoc = false) {
+ $JSON = new Services_JSON($assoc ? SERVICES_JSON_LOOSE_TYPE : 0);
+ return $JSON->decode($var);
}
}
if (!function_exists('json_encode')) {
require_once('JSON.php');
function json_encode($var) {
- $JSON = new Services_JSON;
+ $JSON = new Services_JSON();
return $JSON->encodeUnsafe($var);
}
}
+if (!function_exists('array_replace_recursive')) { //PHP 5.2
+ function arr_recurse($array, $array1) {
+ foreach ($array1 as $key => $value) {
+ if (!isset($array[$key]) || (isset($array[$key]) && !is_array($array[$key]))) {
+ $array[$key] = array(); //create new key in $array, if it is empty or not an array
+ }
+ if (is_array($value)) {
+ $value = arr_recurse($array[$key], $value); // overwrite the value in the base array
+ }
+ $array[$key] = $value;
+ }
+ return $array;
+ }
+ function array_replace_recursive($array, $array1) { //http://php.net/manual/function.array-replace-recursive.php#92574
+ // handle the arguments, merge one by one
+ $args = func_get_args();
+ $array = $args[0];
+ if (!is_array($array)) {
+ return $array;
+ }
+ for ($i = 1; $i < count($args); $i++) {
+ if (is_array($args[$i])) {
+ $array = arr_recurse($array, $args[$i]);
+ }
+ }
+ return $array;
+ }
+}
+
/**
* Build a directory path by concatenating a list of directory names.
*
@@ -180,7 +209,7 @@ function customSimplePie() {
$simplePie->strip_attributes(array_merge($simplePie->strip_attributes, array(
'autoplay', 'onload', 'onunload', 'onclick', 'ondblclick', 'onmousedown', 'onmouseup',
'onmouseover', 'onmousemove', 'onmouseout', 'onfocus', 'onblur',
- 'onkeypress', 'onkeydown', 'onkeyup', 'onselect', 'onchange', 'seamless')));
+ 'onkeypress', 'onkeydown', 'onkeyup', 'onselect', 'onchange', 'seamless', 'sizes', 'srcset')));
$simplePie->add_attributes(array(
'img' => array('lazyload' => '', 'postpone' => ''), //http://www.w3.org/TR/resource-priorities/
'audio' => array('lazyload' => '', 'postpone' => '', 'preload' => 'none'),
@@ -209,6 +238,16 @@ function customSimplePie() {
'src',
),
));
+ $https_domains = array();
+ $force = @file(DATA_PATH . '/force-https.default.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
+ if (is_array($force)) {
+ $https_domains = array_merge($https_domains, $force);
+ }
+ $force = @file(DATA_PATH . '/force-https.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
+ if (is_array($force)) {
+ $https_domains = array_merge($https_domains, $force);
+ }
+ $simplePie->set_https_domains($https_domains);
return $simplePie;
}