use Friendica\Core\L10n;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
-use Friendica\Core\System;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
+use Friendica\DI;
use Friendica\Model;
+use Friendica\Module\Security\Login;
use Friendica\Network\HTTPException\BadRequestException;
use Friendica\Network\HTTPException\NotFoundException;
-use Friendica\Network\Probe;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Proxy as ProxyUtils;
use Friendica\Util\Strings;
*/
class Contact extends BaseModule
{
- private static function batchActions(App $a)
+ private static function batchActions()
{
if (empty($_POST['contact_batch']) || !is_array($_POST['contact_batch'])) {
return;
info(L10n::tt('%d contact edited.', '%d contacts edited.', $count_actions));
}
- $a->internalRedirect('contact');
+ DI::baseUrl()->redirect('contact');
}
public static function post(array $parameters = [])
{
- $a = self::getApp();
+ $a = DI::app();
if (!local_user()) {
return;
// @TODO: Replace with parameter from router
if ($a->argv[1] === 'batch') {
- self::batchActions($a);
+ self::batchActions();
return;
}
if (!DBA::exists('contact', ['id' => $contact_id, 'uid' => local_user(), 'deleted' => false])) {
notice(L10n::t('Could not access contact record.') . EOL);
- $a->internalRedirect('contact');
+ DI::baseUrl()->redirect('contact');
return; // NOTREACHED
}
return Login::form($_SERVER['REQUEST_URI']);
}
- $a = self::getApp();
+ $a = DI::app();
$nets = $_GET['nets'] ?? '';
$rel = $_GET['rel'] ?? '';
- if (empty($a->page['aside'])) {
- $a->page['aside'] = '';
+ if (empty(DI::page()['aside'])) {
+ DI::page()['aside'] = '';
}
$contact_id = null;
if ($contact['self']) {
// @TODO: Replace with parameter from router
if (($a->argc == 3) && intval($a->argv[1]) && in_array($a->argv[2], ['posts', 'conversations'])) {
- $a->internalRedirect('profile/' . $contact['nick']);
+ DI::baseUrl()->redirect('profile/' . $contact['nick']);
} else {
- $a->internalRedirect('profile/' . $contact['nick'] . '?tab=profile');
+ DI::baseUrl()->redirect('profile/' . $contact['nick'] . '?tab=profile');
}
}
$groups_widget = null;
}
- $a->page['aside'] .= $vcard_widget . $findpeople_widget . $follow_widget . $groups_widget . $networks_widget . $rel_widget;
+ DI::page()['aside'] .= $vcard_widget . $findpeople_widget . $follow_widget . $groups_widget . $networks_widget . $rel_widget;
$tpl = Renderer::getMarkupTemplate('contacts-head.tpl');
- $a->page['htmlhead'] .= Renderer::replaceMacros($tpl, [
- '$baseurl' => $a->getBaseURL(true),
+ DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
+ '$baseurl' => DI::baseUrl()->get(true),
]);
$sort_type = 0;
if ($cmd === 'update' && ($orig_record['uid'] != 0)) {
self::updateContactFromPoll($contact_id);
- $a->internalRedirect('contact/' . $contact_id);
+ DI::baseUrl()->redirect('contact/' . $contact_id);
// NOTREACHED
}
if ($cmd === 'updateprofile' && ($orig_record['uid'] != 0)) {
self::updateContactFromProbe($contact_id);
- $a->internalRedirect('crepair/' . $contact_id);
+ DI::baseUrl()->redirect('crepair/' . $contact_id);
// NOTREACHED
}
$blocked = Model\Contact::isBlockedByUser($contact_id, local_user());
info(($blocked ? L10n::t('Contact has been blocked') : L10n::t('Contact has been unblocked')) . EOL);
- $a->internalRedirect('contact/' . $contact_id);
+ DI::baseUrl()->redirect('contact/' . $contact_id);
// NOTREACHED
}
$ignored = Model\Contact::isIgnoredByUser($contact_id, local_user());
info(($ignored ? L10n::t('Contact has been ignored') : L10n::t('Contact has been unignored')) . EOL);
- $a->internalRedirect('contact/' . $contact_id);
+ DI::baseUrl()->redirect('contact/' . $contact_id);
// NOTREACHED
}
info((($archived) ? L10n::t('Contact has been archived') : L10n::t('Contact has been unarchived')) . EOL);
}
- $a->internalRedirect('contact/' . $contact_id);
+ DI::baseUrl()->redirect('contact/' . $contact_id);
// NOTREACHED
}
if (!empty($_REQUEST['confirm'])) {
// <form> can't take arguments in its 'action' parameter
// so add any arguments as hidden inputs
- $query = explode_querystring($a->query_string);
+ $query = explode_querystring(DI::args()->getQueryString());
$inputs = [];
foreach ($query['args'] as $arg) {
if (strpos($arg, 'confirm=') === false) {
}
}
- $a->page['aside'] = '';
+ DI::page()['aside'] = '';
return Renderer::replaceMacros(Renderer::getMarkupTemplate('contact_drop_confirm.tpl'), [
'$header' => L10n::t('Drop contact'),
}
// Now check how the user responded to the confirmation query
if (!empty($_REQUEST['canceled'])) {
- $a->internalRedirect('contact');
+ DI::baseUrl()->redirect('contact');
}
self::dropContact($orig_record);
info(L10n::t('Contact has been removed.') . EOL);
- $a->internalRedirect('contact');
+ DI::baseUrl()->redirect('contact');
// NOTREACHED
}
if ($cmd === 'posts') {
}
}
- $_SESSION['return_path'] = $a->query_string;
+ $_SESSION['return_path'] = DI::args()->getQueryString();
if (!empty($a->data['contact']) && is_array($a->data['contact'])) {
$contact = $a->data['contact'];
- $a->page['htmlhead'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate('contact_head.tpl'), [
- '$baseurl' => $a->getBaseURL(true),
+ DI::page()['htmlhead'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate('contact_head.tpl'), [
+ '$baseurl' => DI::baseUrl()->get(true),
]);
$contact['blocked'] = Model\Contact::isBlockedByUser($contact['id'], local_user());
$poll_enabled = in_array($contact['network'], [Protocol::DFRN, Protocol::OSTATUS, Protocol::FEED, Protocol::MAIL]);
- $nettype = L10n::t('Network type: %s', ContactSelector::networkToName($contact['network'], $contact['url']));
+ $nettype = L10n::t('Network type: %s', ContactSelector::networkToName($contact['network'], $contact['url'], $contact['protocol']));
// tabs
$tab_str = self::getTabsHTML($a, $contact, 3);
return $arr['output'];
}
+ $select_uid = local_user();
+
// @TODO: Replace with parameter from router
$type = $a->argv[1] ?? '';
switch ($type) {
case 'blocked':
- $sql_extra = " AND `blocked`";
+ $sql_extra = sprintf(" AND EXISTS(SELECT `id` from `user-contact` WHERE `contact`.`id` = `user-contact`.`cid` and `user-contact`.`uid` = %d and `user-contact`.`blocked`)", intval(local_user()));
+ $select_uid = 0;
break;
case 'hidden':
- $sql_extra = " AND `hidden` AND NOT `blocked`";
+ $sql_extra = " AND `hidden` AND NOT `blocked` AND NOT `pending`";
break;
case 'ignored':
- $sql_extra = " AND `readonly` AND NOT `blocked`";
+ $sql_extra = sprintf(" AND EXISTS(SELECT `id` from `user-contact` WHERE `contact`.`id` = `user-contact`.`cid` and `user-contact`.`uid` = %d and `user-contact`.`ignored`)", intval(local_user()));
+ $select_uid = 0;
break;
case 'archived':
- $sql_extra = " AND `archive` AND NOT `blocked`";
+ $sql_extra = " AND `archive` AND NOT `blocked` AND NOT `pending`";
break;
case 'pending':
$sql_extra = sprintf(" AND `pending` AND NOT `archive` AND ((`rel` = %d)
$sql_extra2 = ((($sort_type > 0) && ($sort_type <= Model\Contact::FRIEND)) ? sprintf(" AND `rel` = %d ", intval($sort_type)) : '');
+ $sql_extra3 = Widget::unavailableNetworks();
+
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
- WHERE `uid` = %d AND `self` = 0 $sql_extra $sql_extra2 ",
- intval($_SESSION['uid'])
+ WHERE `uid` = %d AND `self` = 0 $sql_extra $sql_extra2 $sql_extra3",
+ intval($select_uid)
);
if (DBA::isResult($r)) {
$total = $r[0]['total'];
}
- $pager = new Pager($a->query_string);
-
- $sql_extra3 = Widget::unavailableNetworks();
+ $pager = new Pager(DI::args()->getQueryString());
$contacts = [];
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 $sql_extra $sql_extra2 $sql_extra3 ORDER BY `name` ASC LIMIT %d , %d ",
- intval($_SESSION['uid']),
+ intval($select_uid),
$pager->getStart(),
$pager->getItemsPerPage()
);
'$desc' => L10n::t('Search your contacts'),
'$finding' => $searching ? L10n::t('Results for: %s', $search) : '',
'$submit' => L10n::t('Find'),
- '$cmd' => $a->cmd,
+ '$cmd' => DI::args()->getCommand(),
'$contacts' => $contacts,
'$contact_drop_confirm' => L10n::t('Do you really want to delete this contact?'),
'multiselect' => 1,
'default_location' => $a->user['default-location'],
'nickname' => $a->user['nickname'],
'lockstate' => (is_array($a->user) && (strlen($a->user['allow_cid']) || strlen($a->user['allow_gid']) || strlen($a->user['deny_cid']) || strlen($a->user['deny_gid'])) ? 'lock' : 'unlock'),
- 'acl' => ACL::getFullSelectorHTML($a->user, true),
+ 'acl' => ACL::getFullSelectorHTML(DI::page(), $a->user, true),
'bang' => '',
'visitor' => 'block',
'profile_uid' => local_user(),
}
if (DBA::isResult($contact)) {
- $a->page['aside'] = '';
+ DI::page()['aside'] = '';
$profiledata = Model\Contact::getDetailsByURL($contact['url']);
$o = self::getTabsHTML($a, $contact, 2);
if (DBA::isResult($contact)) {
- $a->page['aside'] = '';
+ DI::page()['aside'] = '';
$profiledata = Model\Contact::getDetailsByURL($contact['url']);
if (local_user() && in_array($profiledata['network'], Protocol::FEDERATED)) {
- $profiledata['remoteconnect'] = System::baseUrl() . '/follow?url=' . urlencode($profiledata['url']);
+ $profiledata['remoteconnect'] = DI::baseUrl() . '/follow?url=' . urlencode($profiledata['url']);
}
Model\Profile::load($a, '', 0, $profiledata, true);
'sparkle' => $sparkle,
'itemurl' => ($rr['addr'] ?? '') ?: $rr['url'],
'url' => $url,
- 'network' => ContactSelector::networkToName($rr['network'], $rr['url']),
+ 'network' => ContactSelector::networkToName($rr['network'], $rr['url'], $rr['protocol']),
'nick' => $rr['nick'],
];
}