diff --git a/inc/3rdparty/config.php b/inc/3rdparty/config.php old mode 100644 new mode 100755 index 61fc0d0..e618117 --- a/inc/3rdparty/config.php +++ b/inc/3rdparty/config.php @@ -11,6 +11,8 @@ // options you'd like to override in custom_config.php. // ..................................................... +global $options; + // Create config object if (!isset($options)) $options = new stdClass(); diff --git a/inc/3rdparty/makefulltextfeed.php b/inc/3rdparty/makefulltextfeed.php old mode 100644 new mode 100755 index 7104bc7..2852c4c --- a/inc/3rdparty/makefulltextfeed.php +++ b/inc/3rdparty/makefulltextfeed.php @@ -424,6 +424,7 @@ $http->rewriteUrls = $options->rewrite_url; ////////////////////////////////// // Set up Content Extractor ////////////////////////////////// +global $extractor; $extractor = new ContentExtractor(dirname(__FILE__).'/site_config/custom', dirname(__FILE__).'/site_config/standard'); $extractor->debug = $debug_mode; SiteConfig::$debug = $debug_mode; diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php old mode 100644 new mode 100755 index 753bd7f..fc9a455 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php @@ -348,17 +348,55 @@ class Poche protected function getPageContent(Url $url) { - $options = array('http' => array('user_agent' => 'poche')); - if (isset($_SERVER['AUTH_TYPE']) && "basic" === strtolower($_SERVER['AUTH_TYPE'])) { - $options['http']['header'] = sprintf( - "Authorization: Basic %s", - base64_encode( - sprintf('%s:%s', $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) - ) - ); + // Saving and clearing context + $REAL = array(); + foreach( $GLOBALS as $key => $value ) { + if( $key != "GLOBALS" && $key != "_SESSION" ) { + $GLOBALS[$key] = array(); + $REAL[$key] = $value; + } + } + // Saving and clearing session + $REAL_SESSION = array(); + foreach( $_SESSION as $key => $value ) { + $REAL_SESSION[$key] = $value; + unset($_SESSION[$key]); + } + + // Running code in different context + $scope = function() { + extract( func_get_arg(1) ); + $_GET = $_REQUEST = array( + "url" => $url->getUrl(), + "max" => 5, + "links" => "preserve", + "exc" => "", + "format" => "json", + "submit" => "Create Feed" + ); + ob_start(); + require func_get_arg(0); + $json = ob_get_flush(); + return $json; + }; + $json = $scope( "inc/3rdparty/makefulltextfeed.php", array("url" => $url) ); + + // Clearing and restoring context + foreach( $GLOBALS as $key => $value ) { + if( $key != "GLOBALS" && $key != "_SESSION" ) { + unset($GLOBALS[$key]); + } + } + foreach( $REAL as $key => $value ) { + $GLOBALS[$key] = $value; + } + // Clearing and restoring session + foreach( $_SESSION as $key => $value ) { + unset($_SESSION[$key]); + } + foreach( $REAL_SESSION as $key => $value ) { + $_SESSION[$key] = $value; } - $context = stream_context_create($options); - $json = file_get_contents(Tools::getPocheUrl() . '/inc/3rdparty/makefulltextfeed.php?url='.urlencode($url->getUrl()).'&max=5&links=preserve&exc=&format=json&submit=Create+Feed', false, $context); return json_decode($json, true); }