+ $p = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d ORDER BY `scale` DESC",
+ dbesc($resource_id),
+ intval(local_user())
+ );
+ if((count($p)) && ($p[0]['desc'] !== $desc)) {
+ $r = q("UPDATE `photo` SET `desc` = '%s' WHERE `resource-id` = '%s' AND `uid` = %d",
+ dbesc($desc),
+ dbesc($resource_id),
+ intval(local_user())
+ );
+ }
+ if(! $item_id) {
+
+ // Create item container
+
+ $title = '';
+ $basename = basename($filename);
+ $uri = item_new_uri($a->get_hostname(),local_user());
+
+ $arr = array();
+
+ $arr['uid'] = local_user();
+ $arr['uri'] = $uri;
+ $arr['parent-uri'] = $uri;
+ $arr['type'] = 'photo';
+ $arr['wall'] = 1;
+ $arr['resource-id'] = $p[0]['resource-id'];
+ $arr['contact-id'] = $contact_record['id'];
+ $arr['owner-name'] = $contact_record['name'];
+ $arr['owner-link'] = $contact_record['url'];
+ $arr['owner-avatar'] = $contact_record['thumb'];
+ $arr['author-name'] = $contact_record['name'];
+ $arr['author-link'] = $contact_record['url'];
+ $arr['author-avatar'] = $contact_record['thumb'];
+ $arr['title'] = $title;
+ $arr['allow_cid'] = $p[0]['allow_cid'];
+ $arr['allow_gid'] = $p[0]['allow_gid'];
+ $arr['deny_cid'] = $p[0]['deny_cid'];
+ $arr['deny_gid'] = $p[0]['deny_gid'];
+ $arr['last-child'] = 1;
+ $arr['body'] = '[url=' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $p[0]['resource-id'] . ']'
+ . '[img]' . $a->get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.jpg' . '[/img]'
+ . '[/url]';
+
+ $item_id = item_store($arr);
+
+ }
+
+ if($item_id) {
+ $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ intval($item_id),
+ intval(local_user())
+ );
+ }
+ if(count($r)) {
+ $old_tag = $r[0]['tag'];
+ $old_inform = $r[0]['inform'];
+ }
+
+ if(strlen($rawtags)) {
+
+ $str_tags = '';
+ $inform = '';
+
+ // if the new tag doesn't have a namespace specifier (@foo or #foo) give it a hashtag
+
+ $x = substr($rawtags,0,1);
+ if($x !== '@' && $x !== '#')
+ $rawtags = '#' . $rawtags;
+
+ $taginfo = array();
+ $tags = get_tags($rawtags);
+
+ if(count($tags)) {
+ foreach($tags as $tag) {
+ if(strpos($tag,'@') === 0) {
+ $name = substr($tag,1);
+ if((strpos($name,'@')) || (strpos($name,'http://'))) {
+ $newname = $name;
+ $links = @lrdd($name);
+ if(count($links)) {
+ foreach($links as $link) {
+ if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page')
+ $profile = $link['@attributes']['href'];
+ if($link['@attributes']['rel'] === 'salmon') {
+ $salmon = '$url:' . str_replace(',','%sc',$link['@attributes']['href']);
+ if(strlen($inform))
+ $inform .= ',';
+ $inform .= $salmon;
+ }
+ }
+ }
+ $taginfo[] = array($newname,$profile,$salmon);
+ }
+ else {
+ $newname = $name;
+ if(strstr($name,'_')) {
+ $newname = str_replace('_',' ',$name);
+ $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
+ dbesc($newname),
+ intval(local_user())
+ );
+ }
+ else {
+ $r = q("SELECT * FROM `contact` WHERE `nick` = '%s' AND `uid` = %d LIMIT 1",
+ dbesc($name),
+ intval(local_user())
+ );
+ }
+ if(count($r)) {
+ $profile = $r[0]['url'];
+ $notify = 'cid:' . $r[0]['id'];
+ if(strlen($inform))
+ $inform .= ',';
+ $inform .= $notify;
+ }
+ }
+ if($profile) {
+ $taginfo[] = array($newname,$profile,$notify);
+ if(strlen($str_tags))
+ $str_tags .= ',';
+ $profile = str_replace(',','%2c',$profile);
+ $str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]';
+ }
+ }
+ }
+ }
+
+ $newtag = $old_tag;
+ if(strlen($newtag) && strlen($str_tags))
+ $newtag .= ',';
+ $newtag .= $str_tags;
+
+ $newinform = $old_inform;
+ if(strlen($newinform) && strlen($inform))
+ $newinform .= ',';
+ $newinform .= $inform;
+
+ $r = q("UPDATE `item` SET `tag` = '%s', `inform` = '%s', `edited` = '%s', `changed` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ dbesc($newtag),
+ dbesc($newinform),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ intval($item_id),
+ intval(local_user())
+ );
+
+ if(count($taginfo)) {
+ foreach($taginfo as $tagged) {
+// $slap = create_photo_tag(local_user(),$item_id, $tagged);
+
+
+//
+ }
+ // call notifier on new tag activity
+ }
+
+// $php_path = ((strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
+
+// $proc_debug = get_config('system','proc_debug');
+
+ // send the notification upstream/downstream as the case may be
+
+// if($i[0]['visible'])
+// proc_close(proc_open("\"$php_path\" \"include/notifier.php\" \"drop\" \"$drop_id\" $proc_debug & ",
+// array(),$foo));