X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fphotos.php;h=91642229d4b39e41593e5bc6f56952ac91f13206;hb=a3ddbb5d7c95f36724343a450418b388fff9454d;hp=345a22d504485e86ab47dc2a871b70fa0d45eb88;hpb=e25e40f1ef4e1ad703c55b13069461ee0d712eae;p=friendica.git
diff --git a/mod/photos.php b/mod/photos.php
index 345a22d504..91642229d4 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -3,9 +3,12 @@
require_once('Photo.php');
require_once('include/items.php');
require_once('view/acl_selectors.php');
+require_once('include/bbcode.php');
function photos_init(&$a) {
+ $o = '';
+
if($a->argc > 1) {
$nick = $a->argv[1];
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' LIMIT 1",
@@ -35,6 +38,9 @@ function photos_init(&$a) {
}
$o .= '';
}
+
+ if(! x($a->page,'aside'))
+ $a->page['aside'] = '';
$a->page['aside'] .= $o;
}
return;
@@ -46,18 +52,22 @@ function photos_init(&$a) {
function photos_post(&$a) {
- if(! local_user()) {
- notice( t('Permission denied.') . EOL );
- killme();
- }
-
-
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL );
+ killme();
+ }
- $r = q("SELECT `contact`.* `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
+ $r = q("SELECT `contact`.*, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
WHERE `user`.`uid` = %d AND `self` = 1 LIMIT 1",
- intval(get_uid())
+ intval(local_user())
);
+ if(! count($r)) {
+ notice( t('Contact information unavailable') . EOL);
+ logger('photos_post: unable to locate contact record for logged in user. uid=' . local_user());
+ killme();
+ }
+
$contact_record = $r[0];
@@ -71,7 +81,7 @@ function photos_post(&$a) {
$r = q("SELECT count(*) FROM `photo` WHERE `album` = '%s' AND `uid` = %d",
dbesc($album),
- intval(get_uid())
+ intval(local_user())
);
if(! count($r)) {
notice( t('Album not found.') . EOL);
@@ -84,7 +94,7 @@ function photos_post(&$a) {
q("UPDATE `photo` SET `album` = '%s' WHERE `album` = '%s' AND `uid` = %d",
dbesc($newalbum),
dbesc($album),
- intval(get_uid())
+ intval(local_user())
);
$newurl = str_replace(bin2hex($album),bin2hex($newalbum),$_SESSION['photo_return']);
goaway($a->get_baseurl() . '/' . $newurl);
@@ -95,7 +105,7 @@ function photos_post(&$a) {
$res = array();
$r = q("SELECT distinct(`resource-id`) as `rid` FROM `photo` WHERE `uid` = %d AND `album` = '%s'",
- intval(get_uid()),
+ intval(local_user()),
dbesc($album)
);
if(count($r)) {
@@ -110,27 +120,26 @@ function photos_post(&$a) {
$str_res = implode(',', $res);
q("DELETE FROM `photo` WHERE `resource-id` IN ( $str_res ) AND `uid` = %d",
- intval(get_uid())
+ intval(local_user())
);
$r = q("SELECT `parent-uri` FROM `item` WHERE `resource-id` IN ( $str_res ) AND `uid` = %d",
- intval(get_uid())
+ intval(local_user())
);
if(count($r)) {
foreach($r as $rr) {
q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d",
dbesc(datetime_convert()),
dbesc($rr['parent-uri']),
- intval(get_uid())
+ intval(local_user())
);
$drop_id = intval($rr['id']);
$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($rr['visible'])
- proc_close(proc_open("\"$php_path\" \"include/notifier.php\" \"drop\" \"$drop_id\" $proc_debug & ",
+ proc_close(proc_open("\"$php_path\" \"include/notifier.php\" \"drop\" \"$drop_id\" & ",
array(),$foo));
}
@@ -142,36 +151,32 @@ function photos_post(&$a) {
if(($a->argc > 1) && (x($_POST,'delete')) && ($_POST['delete'] == t('Delete Photo'))) {
$r = q("SELECT `id` FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' LIMIT 1",
- intval(get_uid()),
+ intval(local_user()),
dbesc($a->argv[1])
);
if(count($r)) {
q("DELETE FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s'",
- intval(get_uid()),
+ intval(local_user()),
dbesc($r[0]['resource-id'])
);
$i = q("SELECT * FROM `item` WHERE `resource-id` = '%s' AND `uid` = %d LIMIT 1",
dbesc($r[0]['resource-id']),
- intval(get_uid())
+ intval(local_user())
);
if(count($i)) {
q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc($i[0]['uri']),
- intval(get_uid())
+ intval(local_user())
);
$url = $a->get_baseurl();
$drop_id = intval($i[0]['id']);
$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 & ",
+ proc_close(proc_open("\"$php_path\" \"include/notifier.php\" \"drop\" \"$drop_id\" & ",
array(),$foo));
}
}
@@ -180,51 +185,54 @@ function photos_post(&$a) {
return; // NOTREACHED
}
+ if(($a->argc > 1) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false))) {
-
- if(($a->argc > 1) && (x($_POST,'desc') !== false)) {
- $desc = notags(trim($_POST['desc']));
- $tags = notags(trim($_POST['tags']));
- $item_id = intval($_POST['item_id']);
+ $desc = ((x($_POST,'desc')) ? notags(trim($_POST['desc'])) : '');
+ $rawtags = ((x($_POST,'newtag')) ? notags(trim($_POST['newtag'])) : '');
+ $item_id = ((x($_POST,'item_id')) ? intval($_POST['item_id']) : 0);
$resource_id = $a->argv[1];
$p = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d ORDER BY `scale` DESC",
dbesc($resource_id),
- intval(get_uid())
+ intval(local_user())
);
- if(count($r)) {
+ 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(get_uid())
+ intval(local_user())
);
}
if(! $item_id) {
+ // Create item container
+
$title = '';
$basename = basename($filename);
- $uri = item_new_uri($a->get_hostname(),get_uid());
- // Create item container
+ $uri = item_new_uri($a->get_hostname(),local_user());
$arr = array();
- $arr['uid'] = get_uid();
- $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['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'] . ']'
+ $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]';
@@ -232,20 +240,181 @@ function photos_post(&$a) {
}
- $r = q("UPDATE `item` SET `tag` = '%s', `edited` = '%s', `changed` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
- dbesc($tags),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- intval($item_id),
- intval(get_uid())
- );
+ 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)) {
+ $newname = $r[0]['name'];
+ $profile = $r[0]['url'];
+ $notify = 'cid:' . $r[0]['id'];
+ if(strlen($inform))
+ $inform .= ',';
+ $inform .= $notify;
+ }
+ }
+ if($profile) {
+ if(substr($notify,0,4) === 'cid:')
+ $taginfo[] = array($newname,$profile,$notify,$r[0],'@[url=' . str_replace(',','%2c',$profile) . ']' . $newname . '[/url]');
+ else
+ $taginfo[] = array($newname,$profile,$notify,null,$str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]');
+ 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())
+ );
+
+ $best = 0;
+ foreach($p as $scales) {
+ if(intval($scales['scale']) == 2) {
+ $best = 2;
+ break;
+ }
+ if(intval($scales['scale']) == 4) {
+ $best = 4;
+ break;
+ }
+ }
+ if(count($taginfo)) {
+ foreach($taginfo as $tagged) {
+
+ $uri = item_new_uri($a->get_hostname(),local_user());
+
+ $arr = array();
+
+ $arr['uid'] = local_user();
+ $arr['uri'] = $uri;
+ $arr['parent-uri'] = $uri;
+ $arr['type'] = 'activity';
+ $arr['wall'] = 1;
+ $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'] = '';
+ $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['visible'] = 1;
+ $arr['verb'] = ACTIVITY_TAG;
+ $arr['object-type'] = ACTIVITY_OBJ_PERSON;
+ $arr['target-type'] = ACTIVITY_OBJ_PHOTO;
+ $arr['tag'] = $tagged[4];
+ $arr['inform'] = $tagged[2];
+
+ $arr['body'] = '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]' . ' ' . t('was tagged in a') . ' ' . '[url=' . $a->get_baseurl() . '/photos/' . $contact_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('photo') . '[/url]' . ' ' . t('by') . ' ' . '[url=' . $contact_record['url'] . ']' . $contact_record['name'] . '[/url]' ;
+ $arr['body'] .= "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $contact_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . '[img]' . $a->get_baseurl() . "/photo/" . $p[0]['resource-id'] . '-' . $best . '.jpg' . '[/img][/url]' . "\n" ;
+
+ $arr['object'] = '' . "\n";
+
+ $arr['target'] = '