diff options
author | Andrew Dolgov <[email protected]> | 2013-01-13 10:56:54 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-01-13 10:56:54 +0400 |
commit | 8c685908b1ebb7f096b116b785876067e2f1453e (patch) | |
tree | b5d4151adad09251f0eaab5f2eb2002ddee597fb /plugins/af_unburn | |
parent | 9b72506855af2d08a8553f960065d2eeb6b33a32 (diff) |
af_unburn: remove utm_* query parts
Diffstat (limited to 'plugins/af_unburn')
-rw-r--r-- | plugins/af_unburn/init.php | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/plugins/af_unburn/init.php b/plugins/af_unburn/init.php index 593f1abd9..759be9e61 100644 --- a/plugins/af_unburn/init.php +++ b/plugins/af_unburn/init.php @@ -36,7 +36,28 @@ class Af_Unburn extends Plugin { $real_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); + curl_close($ch); + if ($real_url) { + /* remove the rest of it */ + + $query = parse_url($real_url, PHP_URL_QUERY); + + if ($query && strpos($query, "utm_source") !== FALSE) { + $args = array(); + parse_str($query, $args); + + foreach (array("utm_source", "utm_medium", "utm_campaign") as $param) { + if (isset($args[$param])) unset($args[$param]); + } + + $new_query = http_build_query($args); + + if ($new_query != $query) { + $real_url = str_replace("?$query", "?$new_query", $real_url); + } + } + $article["guid"] = "unburn,$owner_uid:" . $article["guid"]; $article["link"] = $real_url; } |