diff options
-rwxr-xr-x[-rw-r--r--] | inc/3rdparty/config.php | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | inc/3rdparty/makefulltextfeed.php | 1 | ||||
-rw-r--r-- | inc/poche/Database.class.php | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | inc/poche/Poche.class.php | 56 |
4 files changed, 52 insertions, 11 deletions
diff --git a/inc/3rdparty/config.php b/inc/3rdparty/config.php index 61fc0d0e..e618117b 100644..100755 --- a/inc/3rdparty/config.php +++ b/inc/3rdparty/config.php | |||
@@ -11,6 +11,8 @@ | |||
11 | // options you'd like to override in custom_config.php. | 11 | // options you'd like to override in custom_config.php. |
12 | // ..................................................... | 12 | // ..................................................... |
13 | 13 | ||
14 | global $options; | ||
15 | |||
14 | // Create config object | 16 | // Create config object |
15 | if (!isset($options)) $options = new stdClass(); | 17 | if (!isset($options)) $options = new stdClass(); |
16 | 18 | ||
diff --git a/inc/3rdparty/makefulltextfeed.php b/inc/3rdparty/makefulltextfeed.php index 7104bc73..2852c4c2 100644..100755 --- a/inc/3rdparty/makefulltextfeed.php +++ b/inc/3rdparty/makefulltextfeed.php | |||
@@ -424,6 +424,7 @@ $http->rewriteUrls = $options->rewrite_url; | |||
424 | ////////////////////////////////// | 424 | ////////////////////////////////// |
425 | // Set up Content Extractor | 425 | // Set up Content Extractor |
426 | ////////////////////////////////// | 426 | ////////////////////////////////// |
427 | global $extractor; | ||
427 | $extractor = new ContentExtractor(dirname(__FILE__).'/site_config/custom', dirname(__FILE__).'/site_config/standard'); | 428 | $extractor = new ContentExtractor(dirname(__FILE__).'/site_config/custom', dirname(__FILE__).'/site_config/standard'); |
428 | $extractor->debug = $debug_mode; | 429 | $extractor->debug = $debug_mode; |
429 | SiteConfig::$debug = $debug_mode; | 430 | SiteConfig::$debug = $debug_mode; |
diff --git a/inc/poche/Database.class.php b/inc/poche/Database.class.php index 3332b5a3..a366e866 100644 --- a/inc/poche/Database.class.php +++ b/inc/poche/Database.class.php | |||
@@ -345,7 +345,7 @@ class Database { | |||
345 | } | 345 | } |
346 | 346 | ||
347 | public function retrieveAllTags($user_id) { | 347 | public function retrieveAllTags($user_id) { |
348 | $sql = "SELECT tags.* FROM tags | 348 | $sql = "SELECT DISTINCT tags.* FROM tags |
349 | LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id | 349 | LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id |
350 | LEFT JOIN entries ON tags_entries.entry_id=entries.id | 350 | LEFT JOIN entries ON tags_entries.entry_id=entries.id |
351 | WHERE entries.user_id=?"; | 351 | WHERE entries.user_id=?"; |
@@ -357,7 +357,7 @@ class Database { | |||
357 | 357 | ||
358 | public function retrieveTag($id, $user_id) { | 358 | public function retrieveTag($id, $user_id) { |
359 | $tag = NULL; | 359 | $tag = NULL; |
360 | $sql = "SELECT tags.* FROM tags | 360 | $sql = "SELECT DISTINCT tags.* FROM tags |
361 | LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id | 361 | LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id |
362 | LEFT JOIN entries ON tags_entries.entry_id=entries.id | 362 | LEFT JOIN entries ON tags_entries.entry_id=entries.id |
363 | WHERE tags.id=? AND entries.user_id=?"; | 363 | WHERE tags.id=? AND entries.user_id=?"; |
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index 753bd7f0..fc9a455a 100644..100755 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php | |||
@@ -348,17 +348,55 @@ class Poche | |||
348 | 348 | ||
349 | protected function getPageContent(Url $url) | 349 | protected function getPageContent(Url $url) |
350 | { | 350 | { |
351 | $options = array('http' => array('user_agent' => 'poche')); | 351 | // Saving and clearing context |
352 | if (isset($_SERVER['AUTH_TYPE']) && "basic" === strtolower($_SERVER['AUTH_TYPE'])) { | 352 | $REAL = array(); |
353 | $options['http']['header'] = sprintf( | 353 | foreach( $GLOBALS as $key => $value ) { |
354 | "Authorization: Basic %s", | 354 | if( $key != "GLOBALS" && $key != "_SESSION" ) { |
355 | base64_encode( | 355 | $GLOBALS[$key] = array(); |
356 | sprintf('%s:%s', $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) | 356 | $REAL[$key] = $value; |
357 | ) | 357 | } |
358 | } | ||
359 | // Saving and clearing session | ||
360 | $REAL_SESSION = array(); | ||
361 | foreach( $_SESSION as $key => $value ) { | ||
362 | $REAL_SESSION[$key] = $value; | ||
363 | unset($_SESSION[$key]); | ||
364 | } | ||
365 | |||
366 | // Running code in different context | ||
367 | $scope = function() { | ||
368 | extract( func_get_arg(1) ); | ||
369 | $_GET = $_REQUEST = array( | ||
370 | "url" => $url->getUrl(), | ||
371 | "max" => 5, | ||
372 | "links" => "preserve", | ||
373 | "exc" => "", | ||
374 | "format" => "json", | ||
375 | "submit" => "Create Feed" | ||
358 | ); | 376 | ); |
377 | ob_start(); | ||
378 | require func_get_arg(0); | ||
379 | $json = ob_get_flush(); | ||
380 | return $json; | ||
381 | }; | ||
382 | $json = $scope( "inc/3rdparty/makefulltextfeed.php", array("url" => $url) ); | ||
383 | |||
384 | // Clearing and restoring context | ||
385 | foreach( $GLOBALS as $key => $value ) { | ||
386 | if( $key != "GLOBALS" && $key != "_SESSION" ) { | ||
387 | unset($GLOBALS[$key]); | ||
388 | } | ||
389 | } | ||
390 | foreach( $REAL as $key => $value ) { | ||
391 | $GLOBALS[$key] = $value; | ||
392 | } | ||
393 | // Clearing and restoring session | ||
394 | foreach( $_SESSION as $key => $value ) { | ||
395 | unset($_SESSION[$key]); | ||
396 | } | ||
397 | foreach( $REAL_SESSION as $key => $value ) { | ||
398 | $_SESSION[$key] = $value; | ||
359 | } | 399 | } |
360 | $context = stream_context_create($options); | ||
361 | $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); | ||
362 | return json_decode($json, true); | 400 | return json_decode($json, true); |
363 | } | 401 | } |
364 | 402 | ||