]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Full-Text RSS included as a script instead of file_get_contents call. Tnx to @Faless...
authorMaryana Rozhankivska <mariroz@mr.lviv.ua>
Wed, 19 Feb 2014 17:08:19 +0000 (19:08 +0200)
committerMaryana Rozhankivska <mariroz@mr.lviv.ua>
Wed, 19 Feb 2014 17:08:19 +0000 (19:08 +0200)
inc/3rdparty/config.php [changed mode: 0644->0755]
inc/3rdparty/makefulltextfeed.php [changed mode: 0644->0755]
inc/poche/Poche.class.php [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 61fc0d0..e618117
@@ -11,6 +11,8 @@
 // options you'd like to override in custom_config.php.\r
 // .....................................................\r
 \r
+global $options;\r
+\r
 // Create config object\r
 if (!isset($options)) $options = new stdClass();\r
 \r
old mode 100644 (file)
new mode 100755 (executable)
index 7104bc7..2852c4c
@@ -424,6 +424,7 @@ $http->rewriteUrls = $options->rewrite_url;
 //////////////////////////////////\r
 // Set up Content Extractor\r
 //////////////////////////////////\r
+global $extractor;\r
 $extractor = new ContentExtractor(dirname(__FILE__).'/site_config/custom', dirname(__FILE__).'/site_config/standard');\r
 $extractor->debug = $debug_mode;\r
 SiteConfig::$debug = $debug_mode;\r
old mode 100644 (file)
new mode 100755 (executable)
index 753bd7f..fc9a455
@@ -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);
     }