X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Flike.php;h=793ea04215e62b0be9607b667d70373c7f5ce7fd;hb=b3e6a1d2832be024819328e51e9e1df4c25b560f;hp=a6e67c0ba5926e3c09d70a63eab8938acdc9ee93;hpb=f23469121662325745660b3e39ca31f02365a8b2;p=friendica.git diff --git a/include/like.php b/include/like.php index a6e67c0ba5..793ea04215 100644 --- a/include/like.php +++ b/include/like.php @@ -3,6 +3,8 @@ use Friendica\App; use Friendica\Core\System; use Friendica\Core\Worker; +use Friendica\Database\DBM; +use Friendica\Model\Contact; use Friendica\Protocol\Diaspora; /** @@ -22,7 +24,7 @@ use Friendica\Protocol\Diaspora; function do_like($item_id, $verb) { $a = get_app(); - if (! local_user() && ! remote_user()) { + if (!local_user() && !remote_user()) { return false; } @@ -71,28 +73,33 @@ function do_like($item_id, $verb) { dbesc($item_id) ); - if (! $item_id || ! dbm::is_result($items)) { + if (!$item_id || !DBM::is_result($items)) { logger('like: unknown item ' . $item_id); return false; } $item = $items[0]; + $uid = $item['uid']; - if (! can_write_wall($a, $item['uid'])) { - logger('like: unable to write on wall ' . $item['uid']); + if (($uid == 0) && local_user()) { + $uid = local_user(); + } + + if (!can_write_wall($uid)) { + logger('like: unable to write on wall ' . $uid); return false; } // Retrieves the local post owner $owners = q("SELECT `contact`.* FROM `contact` - WHERE `contact`.`self` = 1 + WHERE `contact`.`self` AND `contact`.`uid` = %d", - intval($item['uid']) + intval($uid) ); - if (dbm::is_result($owners)) { + if (DBM::is_result($owners)) { $owner_self_contact = $owners[0]; } else { - logger('like: unknown owner ' . $item['uid']); + logger('like: unknown owner ' . $uid); return false; } @@ -102,7 +109,7 @@ function do_like($item_id, $verb) { $contacts = q("SELECT * FROM `contact` WHERE `id` = %d", intval($author_id) ); - if (dbm::is_result($contacts)) { + if (DBM::is_result($contacts)) { $author_contact = $contacts[0]; } else { logger('like: unknown author ' . $author_id); @@ -110,16 +117,16 @@ function do_like($item_id, $verb) { } // Contact-id is the uid-dependant author contact - if (local_user() == $item['uid']) { + if (local_user() == $uid) { $item_contact_id = $owner_self_contact['id']; $item_contact = $owner_self_contact; } else { - $item_contact_id = get_contact($author_contact['url'], $item['uid']); + $item_contact_id = Contact::getIdForURL($author_contact['url'], $uid); $contacts = q("SELECT * FROM `contact` WHERE `id` = %d", intval($item_contact_id) ); - if (dbm::is_result($contacts)) { + if (DBM::is_result($contacts)) { $item_contact = $contacts[0]; } else { logger('like: unknown item contact ' . $item_contact_id); @@ -149,7 +156,7 @@ function do_like($item_id, $verb) { ); // If it exists, mark it as deleted - if (dbm::is_result($existing_like)) { + if (DBM::is_result($existing_like)) { $like_item = $existing_like[0]; // Already voted, undo it @@ -161,12 +168,10 @@ function do_like($item_id, $verb) { // Clean up the Diaspora signatures for this like // Go ahead and do it even if Diaspora support is disabled. We still want to clean up // if it had been enabled in the past - q("DELETE FROM `sign` WHERE `iid` = %d", - intval($like_item['id']) - ); + dba::delete('sign', array('iid' => $like_item['id'])); $like_item_id = $like_item['id']; - Worker::add(PRIORITY_HIGH, "notifier", "like", $like_item_id); + Worker::add(PRIORITY_HIGH, "Notifier", "like", $like_item_id); if (!$event_verb_flag || $like_item['verb'] == $activity) { return true; @@ -240,20 +245,19 @@ EOT; // @todo: Explain this block if (! $item['visible']) { - q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d", - intval($item['id']), - intval($item['uid']) + q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d", + intval($item['id']) ); } // Save the author information for the like in case we need to relay to Diaspora - Diaspora::store_like_signature($item_contact, $new_item_id); + Diaspora::storeLikeSignature($item_contact, $new_item_id); $new_item['id'] = $new_item_id; call_hooks('post_local_end', $new_item); - Worker::add(PRIORITY_HIGH, "notifier", "like", $new_item_id); + Worker::add(PRIORITY_HIGH, "Notifier", "like", $new_item_id); return true; }