SN addon: only shorteb links if neede

This commit is contained in:
Tobias Diekershoff 2012-02-21 18:39:55 +01:00
parent d61ce7709a
commit 439e62d1d4

View file

@ -442,12 +442,14 @@ function statusnet_post_hook(&$a,&$b) {
$tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp); $tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp);
// find all http or https links in the body of the entry and // find all http or https links in the body of the entry and
// apply the shortener if the link is longer then 20 characters // apply the shortener if the link is longer then 20 characters
preg_match_all ( '/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', $tmp, $allurls ); if (( strlen($tmp)>$max_char ) && ( $max_char > 0 )) {
foreach ($allurls as $url) { preg_match_all ( '/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/i', $tmp, $allurls );
foreach ($url as $u) { foreach ($allurls as $url) {
if (strlen($u)>20) { foreach ($url as $u) {
$sl = short($u); if (strlen($u)>20) {
$tmp = str_replace( $u, $sl, $tmp ); $sl = short($u);
$tmp = str_replace( $u, $sl, $tmp );
}
} }
} }
} }