From ec95e5a2dacc4e9f04e75c22a968f781a5a09239 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 23 Dec 2012 03:24:55 +0100 Subject: [PATCH] forumlist: added a "div" for styling reasons privacy_image_cache: If a picture comes from another picture cache (like facebook) take the original picture --- forumlist/forumlist.php | 2 +- privacy_image_cache/privacy_image_cache.php | 28 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/forumlist/forumlist.php b/forumlist/forumlist.php index 37752462..95ae9890 100644 --- a/forumlist/forumlist.php +++ b/forumlist/forumlist.php @@ -74,7 +74,7 @@ function forumlist_network_mod_init($a,$b) { if(count($contacts)) { foreach($contacts as $contact) { - $forumlist .= '' . $contact['url'] . ' ' . $contact["name"]."
"; + $forumlist .= '
' . $contact['url'] . ' ' . $contact["name"]."
"; } } else { diff --git a/privacy_image_cache/privacy_image_cache.php b/privacy_image_cache/privacy_image_cache.php index 3be42620..b9367e49 100644 --- a/privacy_image_cache/privacy_image_cache.php +++ b/privacy_image_cache/privacy_image_cache.php @@ -119,6 +119,15 @@ function privacy_image_cache_init() { // It shouldn't happen but it does - spaces in URL $_REQUEST['url'] = str_replace(" ", "+", $_REQUEST['url']); + // if the picture seems to be from another picture cache then take the original source + $queryvar = privacy_image_cache_parse_query($_REQUEST['url']); + if ($queryvar['url'] != "") + $_REQUEST['url'] = urldecode($queryvar['url']); + + // if fetching facebook pictures don't fetch the thumbnail but the big one + if (strpos($_REQUEST['url'], ".fbcdn.net/") and (substr($_REQUEST['url'], -6) == "_s.jpg")) + $_REQUEST['url'] = substr($_REQUEST['url'], 0, -6)."_n.jpg"; + $img_str = fetch_url($_REQUEST['url'],true); $tempfile = tempnam(get_config("system","temppath"), "cache"); @@ -372,3 +381,22 @@ function privacy_image_cache_plugin_admin_post(&$a = null, &$o = null){ q('DELETE FROM `photo` WHERE `uid` = 0 AND `resource-id` LIKE "pic:%%"'); } } + +function privacy_image_cache_parse_query($var) { + /** + * Use this function to parse out the query array element from + * the output of parse_url(). + */ + $var = parse_url($var, PHP_URL_QUERY); + $var = html_entity_decode($var); + $var = explode('&', $var); + $arr = array(); + + foreach($var as $val) { + $x = explode('=', $val); + $arr[$x[0]] = $x[1]; + } + + unset($val, $x, $var); + return $arr; +}