diff options
author | friendica <info@friendica.com> | 2012-05-21 22:54:39 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2012-05-21 22:54:39 -0700 |
commit | a16382529135a76c5afaf4d4189856734a8e7f58 (patch) | |
tree | d18813f3fa56c23738385aa627ac5b4da38cea61 /include | |
parent | 9ca3ac6e61ff57a2bc615b133a64b0a7f66b3c41 (diff) | |
download | volse-hubzilla-a16382529135a76c5afaf4d4189856734a8e7f58.tar.gz volse-hubzilla-a16382529135a76c5afaf4d4189856734a8e7f58.tar.bz2 volse-hubzilla-a16382529135a76c5afaf4d4189856734a8e7f58.zip |
redir links for permission controlled attachments
Diffstat (limited to 'include')
-rw-r--r-- | include/conversation.php | 1 | ||||
-rw-r--r-- | include/text.php | 38 |
2 files changed, 23 insertions, 16 deletions
diff --git a/include/conversation.php b/include/conversation.php index 6bf673b97..dc574ddff 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -174,6 +174,7 @@ function localize_item(&$item){ } } + } /** diff --git a/include/text.php b/include/text.php index e3c683338..e93c24ef4 100644 --- a/include/text.php +++ b/include/text.php @@ -901,24 +901,30 @@ function prepare_body($item,$attach = false) { foreach($arr as $r) { $matches = false; $icon = ''; - $cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches); + $cnt = preg_match_all('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches, PREG_SET_ORDER); if($cnt) { - $icontype = strtolower(substr($matches[3],0,strpos($matches[3],'/'))); - switch($icontype) { - case 'video': - case 'audio': - case 'image': - case 'text': - $icon = '<div class="attachtype icon s22 type-' . $icontype . '"></div>'; - break; - default: - $icon = '<div class="attachtype icon s22 type-unkn"></div>'; - break; + foreach($matches as $mtch) { + $icontype = strtolower(substr($mtch[3],0,strpos($mtch[3],'/'))); + switch($icontype) { + case 'video': + case 'audio': + case 'image': + case 'text': + $icon = '<div class="attachtype icon s22 type-' . $icontype . '"></div>'; + break; + default: + $icon = '<div class="attachtype icon s22 type-unkn"></div>'; + break; + } + $title = ((strlen(trim($mtch[4]))) ? escape_tags(trim($mtch[4])) : escape_tags($mtch[1])); + $title .= ' ' . $mtch[2] . ' ' . t('bytes'); + if((local_user() == $item['uid']) && $item['contact-id'] != $a->contact['id']) + $the_url = $a->get_baseurl() . '/redir/' . $item['contact-id'] . '?f=1&url=' . $mtch[1]; + else + $the_url = $mtch[1]; + + $s .= '<a href="' . strip_tags($the_url) . '" title="' . $title . '" class="attachlink" target="external-link" >' . $icon . '</a>'; } - $title = ((strlen(trim($matches[4]))) ? escape_tags(trim($matches[4])) : escape_tags($matches[1])); - $title .= ' ' . $matches[2] . ' ' . t('bytes'); - - $s .= '<a href="' . strip_tags($matches[1]) . '" title="' . $title . '" class="attachlink" target="external-link" >' . $icon . '</a>'; } } $s .= '<div class="clear"></div></div>'; |