157 lines
3.9 KiB
PHP
157 lines
3.9 KiB
PHP
<?php
|
|
/**
|
|
* @file mod/subthread.php
|
|
*/
|
|
use Friendica\App;
|
|
use Friendica\Core\Hook;
|
|
use Friendica\Core\L10n;
|
|
use Friendica\Core\Logger;
|
|
use Friendica\Core\System;
|
|
use Friendica\Database\DBA;
|
|
use Friendica\Model\Item;
|
|
use Friendica\Util\Security;
|
|
use Friendica\Util\Strings;
|
|
use Friendica\Util\XML;
|
|
|
|
function subthread_content(App $a) {
|
|
|
|
if (!local_user() && !remote_user()) {
|
|
return;
|
|
}
|
|
|
|
$activity = ACTIVITY_FOLLOW;
|
|
|
|
$item_id = (($a->argc > 1) ? Strings::escapeTags(trim($a->argv[1])) : 0);
|
|
|
|
$condition = ["`parent` = ? OR `parent-uri` = ? AND `parent` = `id`", $item_id, $item_id];
|
|
$item = Item::selectFirst([], $condition);
|
|
|
|
if (empty($item_id) || !DBA::isResult($item)) {
|
|
Logger::log('subthread: no item ' . $item_id);
|
|
return;
|
|
}
|
|
|
|
$owner_uid = $item['uid'];
|
|
|
|
if (!Security::canWriteToUserWall($owner_uid)) {
|
|
return;
|
|
}
|
|
|
|
$remote_owner = null;
|
|
|
|
if (!$item['wall']) {
|
|
// The top level post may have been written by somebody on another system
|
|
$contact = DBA::selectFirst('contact', [], ['id' => $item['contact-id'], 'uid' => $item['uid']]);
|
|
if (!DBA::isResult($contact)) {
|
|
return;
|
|
}
|
|
if (!$contact['self']) {
|
|
$remote_owner = $contact;
|
|
}
|
|
}
|
|
|
|
$owner = null;
|
|
// this represents the post owner on this system.
|
|
|
|
$r = q("SELECT `contact`.*, `user`.`nickname` FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = |