]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge branch 'dev' of git://github.com/mariroz/wallabag into mariroz-dev
authorNicolas Lœuillet <nicolas.loeuillet@gmail.com>
Thu, 20 Feb 2014 11:49:49 +0000 (12:49 +0100)
committerNicolas Lœuillet <nicolas.loeuillet@gmail.com>
Thu, 20 Feb 2014 11:49:49 +0000 (12:49 +0100)
inc/3rdparty/config.php [changed mode: 0644->0755]
inc/3rdparty/makefulltextfeed.php [changed mode: 0644->0755]
inc/poche/Database.class.php
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
index 3332b5a39477dab196dbe8c8bd9afbca70592f61..a366e866451be4bb2097290666269402761a1739 100644 (file)
@@ -345,7 +345,7 @@ class Database {
     }
 
     public function retrieveAllTags($user_id) {
-        $sql = "SELECT tags.* FROM tags
+        $sql = "SELECT DISTINCT tags.* FROM tags
           LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id
           LEFT JOIN entries ON tags_entries.entry_id=entries.id
           WHERE entries.user_id=?";
@@ -357,7 +357,7 @@ class Database {
 
     public function retrieveTag($id, $user_id) {
         $tag  = NULL;
-        $sql    = "SELECT tags.* FROM tags
+        $sql    = "SELECT DISTINCT tags.* FROM tags
           LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id
           LEFT JOIN entries ON tags_entries.entry_id=entries.id
           WHERE tags.id=? AND entries.user_id=?";
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);
     }