namespace Friendica\Module\Contact;
use Friendica\BaseModule;
+use Friendica\Content\Widget;
use Friendica\Core\Hook;
use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model;
+use Friendica\Model\Contact;
use Friendica\Network\HTTPException;
use Friendica\Protocol\Activity;
use Friendica\Util\XML;
class Poke extends BaseModule
{
- public static function post(array $parameters = [])
+ public function post()
{
- if (!local_user() || empty($parameters['id'])) {
+ if (!local_user() || empty($this->parameters['id'])) {
return self::postReturn(false);
}
$activity = Activity::POKE . '#' . urlencode($verbs[$verb][0]);
- $contact_id = intval($parameters['id']);
+ $contact_id = intval($this->parameters['id']);
if (!$contact_id) {
return self::postReturn(false);
}
Logger::info('verb ' . $verb . ' contact ' . $contact_id);
- $contact = DBA::selectFirst('contact', ['id', 'name'], ['id' => $parameters['id'], 'uid' => local_user()]);
+ $contact = DBA::selectFirst('contact', ['id', 'name', 'url', 'photo'], ['id' => $this->parameters['id'], 'uid' => local_user()]);
if (!DBA::isResult($contact)) {
return self::postReturn(false);
}
$a = DI::app();
- $private = (!empty($_GET['private']) ? intval($_GET['private']) : Model\Item::PUBLIC);
+ $private = !empty($_POST['private']) ? Model\Item::PRIVATE : Model\Item::PUBLIC;
- $allow_cid = ($private ? '<' . $contact['id']. '>' : $a->user['allow_cid']);
- $allow_gid = ($private ? '' : $a->user['allow_gid']);
- $deny_cid = ($private ? '' : $a->user['deny_cid']);
- $deny_gid = ($private ? '' : $a->user['deny_gid']);
+ $user = Model\User::getById($a->getLoggedInUserId());
+ $allow_cid = ($private ? '<' . $contact['id']. '>' : $user['allow_cid']);
+ $allow_gid = ($private ? '' : $user['allow_gid']);
+ $deny_cid = ($private ? '' : $user['deny_cid']);
+ $deny_gid = ($private ? '' : $user['deny_gid']);
- $actor = $a->contact;
+ $actor = Contact::getById($a->getContactId());
$uri = Model\Item::newURI($uid);
$arr['guid'] = System::createUUID();
$arr['uid'] = $uid;
$arr['uri'] = $uri;
- $arr['parent-uri'] = $uri;
$arr['wall'] = 1;
$arr['contact-id'] = $actor['id'];
$arr['owner-name'] = $actor['name'];
$arr['object-type'] = Activity\ObjectType::PERSON;
$arr['origin'] = 1;
- $arr['body'] = '[url=' . $actor['url'] . ']' . $actor['name'] . '[/url]' . ' ' . $verbs[$verb][2] . ' ' . '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
+ $arr['body'] = '@[url=' . $actor['url'] . ']' . $actor['name'] . '[/url]' . ' ' . $verbs[$verb][2] . ' ' . '@[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
$arr['object'] = '<object><type>' . Activity\ObjectType::PERSON . '</type><title>' . XML::escape($contact['name']) . '</title><id>' . XML::escape($contact['url']) . '</id>';
$arr['object'] .= '<link>' . XML::escape('<link rel="alternate" type="text/html" href="' . $contact['url'] . '" />') . "\n";
*/
private static function postReturn(bool $success)
{
- if ($success) {
- info(DI::l10n()->t('Poke successfully sent.'));
- } else {
+ if (!$success) {
notice(DI::l10n()->t('Error while sending poke, please retry.'));
}
return $success;
}
- public static function content(array $parameters = [])
+ public function content(): string
{
if (!local_user()) {
throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this module.'));
}
- if (empty($parameters['id'])) {
+ if (empty($this->parameters['id'])) {
throw new HTTPException\BadRequestException();
}
- $contact = DBA::selectFirst('contact', ['id', 'url', 'name'], ['id' => $parameters['id'], 'uid' => local_user()]);
+ $contact = DBA::selectFirst('contact', ['id', 'url', 'name'], ['id' => $this->parameters['id'], 'uid' => local_user()]);
if (!DBA::isResult($contact)) {
throw new HTTPException\NotFoundException();
}
- Model\Profile::load(DI::app(), '', Model\Contact::getByURL($contact["url"], false));
+ DI::page()['aside'] = Widget\VCard::getHTML(Model\Contact::getByURL($contact["url"], false));
$verbs = [];
foreach (DI::l10n()->getPokeVerbs() as $verb => $translations) {