]> git.mxchange.org Git - friendica.git/commitdiff
fix bugs
authorZach Prezkuta <fermion@gmx.com>
Sun, 8 Jul 2012 00:47:13 +0000 (18:47 -0600)
committerZach Prezkuta <fermion@gmx.com>
Sun, 8 Jul 2012 00:50:33 +0000 (18:50 -0600)
include/bbcode.php
include/conversation.php
include/items.php
mod/message.php

index 6a1c4b043bb7bb8e734334693270a6e11d8ae348..63dd9695e76f1bad88a19d922a9098eec53360b3 100644 (file)
@@ -66,10 +66,10 @@ function bb_extract_images($body) {
                if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
                        // This is an embedded image
 
-                       $saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - $img_start);
-                       $cnt++;
-
+                       $saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
                        $new_body = $new_body . substr($orig_body, 0, $img_start) . '[$#saved_image' . $cnt . '#$]';
+
+                       $cnt++;
                }
                else
                        $new_body = $new_body . substr($orig_body, 0, $img_end + strlen('[/img]'));
index 4fea52c9c7a556a1733f4071b6dc4fcbcd726309..240cd374f375a02a73a8b0bfc14edfab01d83c1c 100644 (file)
@@ -22,10 +22,10 @@ function item_extract_images($body) {
                if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
                        // This is an embedded image
 
-                       $saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - $img_start);
-                       $cnt++;
-
+                       $saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
                        $new_body = $new_body . substr($orig_body, 0, $img_start) . '[!#saved_image' . $cnt . '#!]';
+
+                       $cnt++;
                }
                else
                        $new_body = $new_body . substr($orig_body, 0, $img_end + strlen('[/img]'));
@@ -48,22 +48,29 @@ function item_extract_images($body) {
 if(! function_exists('item_redir_and_replace_images')) {
 function item_redir_and_replace_images($body, $images, $cid) {
 
-       $newbody = $body;
+       $origbody = $body;
+       $newbody = '';
 
        for($i = 0; $i < count($images); $i++) {
                $search = '/\[url\=(.*?)\]\[!#saved_image' . $i . '#!\]\[\/url\]' . '/is';
                $replace = '[url=' . z_path() . '/redir/' . $cid 
                           . '?f=1&url=' . '$1' . '][!#saved_image' . $i . '#!][/url]' ;
 
-               $newbody = preg_replace($search, $replace, $newbody);
+               $img_end = strpos($origbody, '[!#saved_image' . $i . '#!][/url]') + strlen('[!#saved_image' . $i . '#!][/url]');
+               $process_part = substr($origbody, 0, $img_end);
+               $origbody = substr($origbody, $img_end);
+
+               $process_part = preg_replace($search, $replace, $process_part);
+               $newbody = $newbody . $process_part;
        }
+       $newbody = $newbody . $origbody;
 
        $cnt = 0;
        foreach($images as $image) {
                // We're depending on the property of 'foreach' (specified on the PHP website) that
                // it loops over the array starting from the first element and going sequentially
                // to the last element
-               $newbody = str_replace('[$#saved_image' . $cnt . '#$]', '[img]' . $image . '[/img]', $newbody);
+               $newbody = str_replace('[!#saved_image' . $cnt . '#!]', '[img]' . $image . '[/img]', $newbody);
                $cnt++;
        }
 
index 7bb33d943911648b50e1df5b39cb0b9d721ec4eb..eb3f27a16653e750c414787b901270a274510fea 100755 (executable)
@@ -326,7 +326,7 @@ function limit_body_size($body) {
                                }
                                else {
                                        $new_body = $new_body . substr($orig_body, 0, $img_start);
-                                       $textlen += $img_start
+                                       $textlen += $img_start;
                                }
 
                                $new_body = $new_body . substr($orig_body, $img_start, $img_end - $img_start);
@@ -3192,7 +3192,7 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
 
        $img_start = strpos($orig_body, '[img');
        $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
-       $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
+       $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/img]') : false);
        while( ($img_st_close !== false) && ($img_len !== false) ) {
 
                $img_st_close++; // make it point to AFTER the closing bracket
@@ -3277,10 +3277,10 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
 
                $img_start = strpos($orig_body, '[img');
                $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
-               $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
+               $img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/img]') : false);
        }
 
-       $new_body = $new_body + $orig_body;
+       $new_body = $new_body . $orig_body;
 
        return($new_body);
 }
index 4ffdebb1210637992b3e31350aec64640eeb5dc0..1e9d731a4502064c39f830150a601d967fd0bff2 100644 (file)
@@ -109,10 +109,10 @@ function item_extract_images($body) {
                if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
                        // This is an embedded image
 
-                       $saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - $img_start);
-                       $cnt++;
-
+                       $saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
                        $new_body = $new_body . substr($orig_body, 0, $img_start) . '[!#saved_image' . $cnt . '#!]';
+
+                       $cnt++;
                }
                else
                        $new_body = $new_body . substr($orig_body, 0, $img_end + strlen('[/img]'));
@@ -135,22 +135,29 @@ function item_extract_images($body) {
 if(! function_exists('item_redir_and_replace_images')) {
 function item_redir_and_replace_images($body, $images, $cid) {
 
-       $newbody = $body;
+       $origbody = $body;
+       $newbody = '';
 
        for($i = 0; $i < count($images); $i++) {
                $search = '/\[url\=(.*?)\]\[!#saved_image' . $i . '#!\]\[\/url\]' . '/is';
                $replace = '[url=' . z_path() . '/redir/' . $cid 
                           . '?f=1&url=' . '$1' . '][!#saved_image' . $i . '#!][/url]' ;
 
-               $newbody = preg_replace($search, $replace, $newbody);
+               $img_end = strpos($origbody, '[!#saved_image' . $i . '#!][/url]') + strlen('[!#saved_image' . $i . '#!][/url]');
+               $process_part = substr($origbody, 0, $img_end);
+               $origbody = substr($origbody, $img_end);
+
+               $process_part = preg_replace($search, $replace, $process_part);
+               $newbody = $newbody . $process_part;
        }
+       $newbody = $newbody . $origbody;
 
        $cnt = 0;
        foreach($images as $image) {
                // We're depending on the property of 'foreach' (specified on the PHP website) that
                // it loops over the array starting from the first element and going sequentially
                // to the last element
-               $newbody = str_replace('[$#saved_image' . $cnt . '#$]', '[img]' . $image . '[/img]', $newbody);
+               $newbody = str_replace('[!#saved_image' . $cnt . '#!]', '[img]' . $image . '[/img]', $newbody);
                $cnt++;
        }