diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index f7398067b9..efbf347587 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -17,11 +17,36 @@ function diaspora2bb($s) {
$s = preg_replace("/\[url\=?(.*?)\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/url\]/ism",'[vimeo]$2[/vimeo]',$s);
$s = preg_replace("/\[url\=https?:\/\/vimeo.com\/([0-9]+)\](.*?)\[\/url\]/ism",'[vimeo]$1[/vimeo]',$s);
$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)(vimeo|youtu|www\.youtube|soundcloud)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url]$2$3$4[/url]',$s);
-
+ $s = scale_diaspora_images($s);
return $s;
}
+function scale_diaspora_images($s) {
+
+ $matches = null;
+ $c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
+ if($c) {
+ require_once('include/Photo.php');
+ foreach($matches as $mtch) {
+ $i = fetch_url($mtch[1]);
+ if($i) {
+ $ph = new Photo($i);
+ if($ph->is_valid()) {
+ if($ph->getWidth() > 600 || $ph->getHeight() > 600) {
+ $ph->scaleImage(600);
+ $new_width = $ph->getWidth();
+ $new_height = $ph->getHeight();
+ $s = str_replace($mtch[0],'[img=' . $new_width . 'x' . $new_height. ']' . $mtch[1] . '[/img]'
+ . "\n" . '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n",$s);
+ }
+ }
+ }
+ }
+ }
+ return $s;
+}
+
function stripdcode_br_cb($s) {
return '[code]' . str_replace('
', "\n\t", $s[1]) . '[/code]';
}
diff --git a/js/fk.autocomplete.js b/js/fk.autocomplete.js
index 6a1f1965aa..c17d61fc57 100644
--- a/js/fk.autocomplete.js
+++ b/js/fk.autocomplete.js
@@ -65,7 +65,7 @@ ACPopup.prototype._search = function(){
that.cont.show();
$(data.items).each(function(){
html = "{1} ({2})".format(this.photo, this.name, this.nick)
- that.add(html, this.nick + ' - ' + this.link);
+ that.add(html, this.nick + '+' + this.id + ' - ' + this.link);
});
} else {
that.cont.hide();
diff --git a/mod/item.php b/mod/item.php
index 0e855d54d9..2c8704a315 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -407,7 +407,17 @@ function item_post(&$a) {
else {
$newname = $name;
$alias = '';
- if(strstr($name,'_') || strstr($name,' ')) {
+ $tagcid = 0;
+ if(strrpos($newname,'+'))
+ $tagcid = intval(substr($newname,strrpos($newname,'+') + 1));
+
+ if($tagcid) {
+ $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ intval($tagcid),
+ intval($profile_uid)
+ );
+ }
+ elseif(strstr($name,'_') || strstr($name,' ')) {
$newname = str_replace('_',' ',$name);
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
diff --git a/mod/photos.php b/mod/photos.php
index 663d0a40cb..63bd46a6cb 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -408,7 +408,18 @@ function photos_post(&$a) {
}
else {
$newname = $name;
- if(strstr($name,'_') || strstr($name,' ')) {
+ $alias = '';
+ $tagcid = 0;
+ if(strrpos($newname,'+'))
+ $tagcid = intval(substr($newname,strrpos($newname,'+') + 1));
+
+ if($tagcid) {
+ $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ intval($tagcid),
+ intval($profile_uid)
+ );
+ }
+ elseif(strstr($name,'_') || strstr($name,' ')) {
$newname = str_replace('_',' ',$name);
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
diff --git a/mod/search.php b/mod/search.php
index e2c365fd3a..819100204c 100644
--- a/mod/search.php
+++ b/mod/search.php
@@ -96,10 +96,11 @@ function search_content(&$a) {
// Only public wall posts can be shown
// OR your own posts if you are a logged in member
+ $escaped_search = str_replace(array('[',']'),array('\\[','\\]'),$search);
// $s_bool = sprintf("AND MATCH (`item`.`body`) AGAINST ( '%s' IN BOOLEAN MODE )", dbesc($search));
$s_regx = sprintf("AND ( `item`.`body` REGEXP '%s' OR `item`.`tag` REGEXP '%s' )",
- dbesc($search), dbesc('\\]' . $search . '\\['));
+ dbesc($escaped_search), dbesc('\\]' . $escaped_search . '\\['));
// if(mb_strlen($search) >= 3)
// $search_alg = $s_bool;