X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Ffsuggest.php;h=d41363ad7b38d153043b2afa7484bff30fdd8370;hb=a72e65a7603bc901d1f36faad4b88ddf19ef552f;hp=b3d5439712f5e7e9b9b1410ddee75cc056bf6d1e;hpb=30a77cc10a21728efdca48e6cd3cb04586b1df23;p=friendica.git diff --git a/mod/fsuggest.php b/mod/fsuggest.php index b3d5439712..d41363ad7b 100644 --- a/mod/fsuggest.php +++ b/mod/fsuggest.php @@ -1,9 +1,20 @@ argv[1]); - - $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval($contact_id), - intval(local_user()) - ); - if (! dbm::is_result($r)) { - notice( t('Contact not found.') . EOL); + if (empty($contact_id)) { return; } - $contact = $r[0]; - - $new_contact = intval($_POST['suggest']); - - $hash = random_string(); - - $note = escape_tags(trim($_POST['note'])); - - if($new_contact) { - $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval($new_contact), - intval(local_user()) - ); - if (dbm::is_result($r)) { - - $x = q("INSERT INTO `fsuggest` ( `uid`,`cid`,`name`,`url`,`request`,`photo`,`note`,`created`) - VALUES ( %d, %d, '%s','%s','%s','%s','%s','%s')", - intval(local_user()), - intval($contact_id), - dbesc($r[0]['name']), - dbesc($r[0]['url']), - dbesc($r[0]['request']), - dbesc($r[0]['photo']), - dbesc($hash), - dbesc(datetime_convert()) - ); - $r = q("SELECT `id` FROM `fsuggest` WHERE `note` = '%s' AND `uid` = %d LIMIT 1", - dbesc($hash), - intval(local_user()) - ); - if (dbm::is_result($r)) { - $fsuggest_id = $r[0]['id']; - q("UPDATE `fsuggest` SET `note` = '%s' WHERE `id` = %d AND `uid` = %d", - dbesc($note), - intval($fsuggest_id), - intval(local_user()) - ); - proc_run(PRIORITY_HIGH, 'include/notifier.php', 'suggest', $fsuggest_id); - } - - info( t('Friend suggestion sent.') . EOL); - } + // We do query the "uid" as well to ensure that it is our contact + if (!DBA::exists('contact', ['id' => $contact_id, 'uid' => local_user()])) { + notice(L10n::t('Contact not found.') . EOL); + return; } + $suggest_contact_id = intval($_POST['suggest']); + if (empty($suggest_contact_id)) { + return; + } -} + // We do query the "uid" as well to ensure that it is our contact + $contact = DBA::selectFirst('contact', ['name', 'url', 'request', 'avatar'], ['id' => $suggest_contact_id, 'uid' => local_user()]); + if (!DBA::isResult($contact)) { + notice(L10n::t('Suggested contact not found.') . EOL); + return; + } + $note = Strings::escapeHtml(trim($_POST['note'] ?? '')); + $fields = ['uid' => local_user(),'cid' => $contact_id, 'name' => $contact['name'], + 'url' => $contact['url'], 'request' => $contact['request'], + 'photo' => $contact['avatar'], 'note' => $note, 'created' => DateTimeFormat::utcNow()]; + DBA::insert('fsuggest', $fields); -function fsuggest_content(App $a) { + Worker::add(PRIORITY_HIGH, 'Notifier', Delivery::SUGGESTION, DBA::lastInsertId()); - require_once('include/acl_selectors.php'); + info(L10n::t('Friend suggestion sent.') . EOL); +} +function fsuggest_content(App $a) +{ if (! local_user()) { - notice( t('Permission denied.') . EOL); + notice(L10n::t('Permission denied.') . EOL); return; } - if($a->argc != 2) + if ($a->argc != 2) { return; + } $contact_id = intval($a->argv[1]); - $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval($contact_id), - intval(local_user()) - ); - if (! dbm::is_result($r)) { - notice( t('Contact not found.') . EOL); + $contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => local_user()]); + if (! DBA::isResult($contact)) { + notice(L10n::t('Contact not found.') . EOL); return; } - $contact = $r[0]; - $o = '

' . t('Suggest Friends') . '

'; + $o = '

' . L10n::t('Suggest Friends') . '

'; - $o .= '
' . sprintf( t('Suggest a friend for %s'), $contact['name']) . '
'; + $o .= '
' . L10n::t('Suggest a friend for %s', $contact['name']) . '
'; $o .= '
'; - $o .= contact_selector('suggest','suggest-select', false, - array('size' => 4, 'exclude' => $contact_id, 'networks' => 'DFRN_ONLY', 'single' => true)); + $o .= ACL::getSuggestContactSelectHTML( + 'suggest', + 'suggest-select', + ['size' => 4, 'exclude' => $contact_id, 'networks' => 'DFRN_ONLY', 'single' => true] + ); - $o .= '
'; + $o .= '
'; $o .= '
'; return $o;