Merge pull request #12103 from MrPetovan/task/4090-move-mod-suggest

Move mod/suggest.php to src/Module
This commit is contained in:
Philipp 2022-11-04 17:56:17 +01:00 committed by GitHub
commit 16b3db343b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 125 additions and 104 deletions

View File

@ -93,7 +93,7 @@ function match_content(App $a)
DI::sysmsg()->addInfo(DI::l10n()->t('No matches')); DI::sysmsg()->addInfo(DI::l10n()->t('No matches'));
} }
$tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl'); $tpl = Renderer::getMarkupTemplate('contact/list.tpl');
$o = Renderer::replaceMacros($tpl, [ $o = Renderer::replaceMacros($tpl, [
'$title' => DI::l10n()->t('Profile Match'), '$title' => DI::l10n()->t('Profile Match'),
'$contacts' => array_slice($entries, 0, $limit), '$contacts' => array_slice($entries, 0, $limit),

View File

@ -1,58 +0,0 @@
<?php
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
use Friendica\App;
use Friendica\Content\Widget;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Module\Contact as ModuleContact;
use Friendica\Network\HTTPException;
function suggest_content(App $a)
{
if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
}
$_SESSION['return_path'] = DI::args()->getCommand();
DI::page()['aside'] .= Widget::findPeople();
DI::page()['aside'] .= Widget::follow();
$contacts = Contact\Relation::getSuggestions(DI::userSession()->getLocalUserId());
if (!DBA::isResult($contacts)) {
return DI::l10n()->t('No suggestions available. If this is a new site, please try again in 24 hours.');
}
$entries = [];
foreach ($contacts as $contact) {
$entries[] = ModuleContact::getContactTemplateVars($contact);
}
$tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl');
return Renderer::replaceMacros($tpl,[
'$title' => DI::l10n()->t('Friend Suggestions'),
'$contacts' => $entries,
]);
}

View File

@ -132,7 +132,7 @@ class BaseSearch extends BaseModule
} }
} }
$tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl'); $tpl = Renderer::getMarkupTemplate('contact/list.tpl');
return Renderer::replaceMacros($tpl, [ return Renderer::replaceMacros($tpl, [
'title' => $header, 'title' => $header,
'$contacts' => $entries, '$contacts' => $entries,

View File

@ -0,0 +1,77 @@
<?php
/**
* @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Module\Contact;
use Friendica\App;
use Friendica\Core\L10n;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Module\Response;
use Friendica\Util\Profiler;
use Psr\Log\LoggerInterface;
use Friendica\Content\Widget;
use Friendica\Core\Renderer;
use Friendica\Model\Contact;
use Friendica\Module\Contact as ModuleContact;
use Friendica\Network\HTTPException;
class Suggestions extends \Friendica\BaseModule
{
/** @var IHandleUserSessions */
private $session;
/** @var App\Page */
private $page;
public function __construct(App\Page $page, IHandleUserSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
{
parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->session = $session;
$this->page = $page;
}
protected function content(array $request = []): string
{
if (!$this->session->getLocalUserId()) {
throw new HTTPException\ForbiddenException($this->t('Permission denied.'));
}
$this->page['aside'] .= Widget::findPeople();
$this->page['aside'] .= Widget::follow();
$contacts = Contact\Relation::getSuggestions($this->session->getLocalUserId());
if (!$contacts) {
return $this->t('No suggestions available. If this is a new site, please try again in 24 hours.');
}
$entries = [];
foreach ($contacts as $contact) {
$entries[] = ModuleContact::getContactTemplateVars($contact);
}
$tpl = Renderer::getMarkupTemplate('contact/list.tpl');
return Renderer::replaceMacros($tpl, [
'$title' => $this->t('Friend Suggestions'),
'$contacts' => $entries,
]);
}
}

View File

@ -178,7 +178,7 @@ class Network extends BaseModule
} elseif (self::$forumContactId) { } elseif (self::$forumContactId) {
$contact = Contact::getById(self::$forumContactId); $contact = Contact::getById(self::$forumContactId);
if (DBA::isResult($contact)) { if (DBA::isResult($contact)) {
$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('viewcontact_template.tpl'), [ $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('contact/list.tpl'), [
'contacts' => [ModuleContact::getContactTemplateVars($contact)], 'contacts' => [ModuleContact::getContactTemplateVars($contact)],
'id' => DI::args()->get(0), 'id' => DI::args()->get(0),
]) . $o; ]) . $o;

View File

@ -373,25 +373,26 @@ return [
'/compose[/{type}]' => [Module\Item\Compose::class, [R::GET, R::POST]], '/compose[/{type}]' => [Module\Item\Compose::class, [R::GET, R::POST]],
'/contact' => [ '/contact' => [
'[/]' => [Module\Contact::class, [R::GET]], '[/]' => [Module\Contact::class, [R::GET]],
'/{id:\d+}[/]' => [Module\Contact\Profile::class, [R::GET, R::POST]], '/{id:\d+}[/]' => [Module\Contact\Profile::class, [R::GET, R::POST]],
'/{id:\d+}/{action:block|ignore|update|updateprofile}' '/{id:\d+}/{action:block|ignore|update|updateprofile}'
=> [Module\Contact\Profile::class, [R::GET]], => [Module\Contact\Profile::class, [R::GET]],
'/{id:\d+}/advanced' => [Module\Contact\Advanced::class, [R::GET, R::POST]], '/{id:\d+}/advanced' => [Module\Contact\Advanced::class, [R::GET, R::POST]],
'/{id:\d+}/conversations' => [Module\Contact\Conversations::class, [R::GET]], '/{id:\d+}/conversations' => [Module\Contact\Conversations::class, [R::GET]],
'/{id:\d+}/contacts[/{type}]' => [Module\Contact\Contacts::class, [R::GET]], '/{id:\d+}/contacts[/{type}]' => [Module\Contact\Contacts::class, [R::GET]],
'/{id:\d+}/media' => [Module\Contact\Media::class, [R::GET]], '/{id:\d+}/media' => [Module\Contact\Media::class, [R::GET]],
'/{id:\d+}/posts' => [Module\Contact\Posts::class, [R::GET]], '/{id:\d+}/posts' => [Module\Contact\Posts::class, [R::GET]],
'/{id:\d+}/revoke' => [Module\Contact\Revoke::class, [R::GET, R::POST]], '/{id:\d+}/revoke' => [Module\Contact\Revoke::class, [R::GET, R::POST]],
'/archived' => [Module\Contact::class, [R::GET]], '/archived' => [Module\Contact::class, [R::GET]],
'/batch' => [Module\Contact::class, [R::GET, R::POST]], '/batch' => [Module\Contact::class, [R::GET, R::POST]],
'/pending' => [Module\Contact::class, [R::GET]], '/blocked' => [Module\Contact::class, [R::GET]],
'/blocked' => [Module\Contact::class, [R::GET]], '/follow' => [Module\Contact\Follow::class, [R::GET, R::POST]],
'/hidden' => [Module\Contact::class, [R::GET]], '/hidden' => [Module\Contact::class, [R::GET]],
'/ignored' => [Module\Contact::class, [R::GET]], '/hovercard' => [Module\Contact\Hovercard::class, [R::GET]],
'/hovercard' => [Module\Contact\Hovercard::class, [R::GET]], '/ignored' => [Module\Contact::class, [R::GET]],
'/follow' => [Module\Contact\Follow::class, [R::GET, R::POST]], '/pending' => [Module\Contact::class, [R::GET]],
'/unfollow' => [Module\Contact\Unfollow::class, [R::GET, R::POST]], '/suggestions' => [Module\Contact\Suggestions::class, [R::GET]],
'/unfollow' => [Module\Contact\Unfollow::class, [R::GET, R::POST]],
], ],
'/credits' => [Module\Credits::class, [R::GET]], '/credits' => [Module\Credits::class, [R::GET]],

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2022.12-dev\n" "Project-Id-Version: 2022.12-dev\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-11-03 22:30-0400\n" "POT-Creation-Date: 2022-11-04 08:00-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -105,10 +105,10 @@ msgstr ""
#: mod/item.php:870 mod/message.php:69 mod/message.php:114 mod/notes.php:44 #: mod/item.php:870 mod/message.php:69 mod/message.php:114 mod/notes.php:44
#: mod/ostatus_subscribe.php:33 mod/photos.php:159 mod/photos.php:886 #: mod/ostatus_subscribe.php:33 mod/photos.php:159 mod/photos.php:886
#: mod/repair_ostatus.php:31 mod/settings.php:40 mod/settings.php:50 #: mod/repair_ostatus.php:31 mod/settings.php:40 mod/settings.php:50
#: mod/settings.php:156 mod/suggest.php:34 src/Module/Attach.php:56 #: mod/settings.php:156 src/Module/Attach.php:56 src/Module/BaseApi.php:94
#: src/Module/BaseApi.php:94 src/Module/BaseNotifications.php:98 #: src/Module/BaseNotifications.php:98 src/Module/Contact/Advanced.php:60
#: src/Module/Contact/Advanced.php:60 src/Module/Contact/Follow.php:86 #: src/Module/Contact/Follow.php:86 src/Module/Contact/Follow.php:158
#: src/Module/Contact/Follow.php:158 src/Module/Contact/Unfollow.php:66 #: src/Module/Contact/Suggestions.php:54 src/Module/Contact/Unfollow.php:66
#: src/Module/Contact/Unfollow.php:80 src/Module/Contact/Unfollow.php:112 #: src/Module/Contact/Unfollow.php:80 src/Module/Contact/Unfollow.php:112
#: src/Module/Delegation.php:118 src/Module/FollowConfirm.php:38 #: src/Module/Delegation.php:118 src/Module/FollowConfirm.php:38
#: src/Module/FriendSuggest.php:57 src/Module/Group.php:40 #: src/Module/FriendSuggest.php:57 src/Module/Group.php:40
@ -1323,16 +1323,6 @@ msgstr ""
msgid "Move to folder:" msgid "Move to folder:"
msgstr "" msgstr ""
#: mod/suggest.php:44
msgid ""
"No suggestions available. If this is a new site, please try again in 24 "
"hours."
msgstr ""
#: mod/suggest.php:55 src/Content/Widget.php:83 view/theme/vier/theme.php:201
msgid "Friend Suggestions"
msgstr ""
#: src/App.php:490 #: src/App.php:490
msgid "No system theme config value set." msgid "No system theme config value set."
msgstr "" msgstr ""
@ -2529,6 +2519,11 @@ msgstr ""
msgid "Find" msgid "Find"
msgstr "" msgstr ""
#: src/Content/Widget.php:83 src/Module/Contact/Suggestions.php:73
#: view/theme/vier/theme.php:201
msgid "Friend Suggestions"
msgstr ""
#: src/Content/Widget.php:84 view/theme/vier/theme.php:202 #: src/Content/Widget.php:84 view/theme/vier/theme.php:202
msgid "Similar Interests" msgid "Similar Interests"
msgstr "" msgstr ""
@ -7106,6 +7101,12 @@ msgstr ""
msgid "Yes" msgid "Yes"
msgstr "" msgstr ""
#: src/Module/Contact/Suggestions.php:62
msgid ""
"No suggestions available. If this is a new site, please try again in 24 "
"hours."
msgstr ""
#: src/Module/Contact/Unfollow.php:98 src/Module/Contact/Unfollow.php:167 #: src/Module/Contact/Unfollow.php:98 src/Module/Contact/Unfollow.php:167
msgid "You aren't following this contact." msgid "You aren't following this contact."
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@
<div id="viewcontact_wrapper-{{$id}}"> <div id="viewcontact_wrapper-{{$id}}">
{{foreach $contacts as $contact}} {{foreach $contacts as $contact}}
{{include file="contact_template.tpl"}} {{include file="contact/entry.tpl"}}
{{/foreach}} {{/foreach}}
</div> </div>
<div class="clear"></div> <div class="clear"></div>

View File

@ -8,7 +8,7 @@ at the suggest page and also at many other places *}}
<ul id="viewcontact_wrapper{{if $id}}-{{$id}}{{/if}}" class="viewcontact_wrapper media-list"> <ul id="viewcontact_wrapper{{if $id}}-{{$id}}{{/if}}" class="viewcontact_wrapper media-list">
{{foreach $contacts as $contact}} {{foreach $contacts as $contact}}
<li>{{include file="contact_template.tpl"}}</li> <li>{{include file="contact/entry.tpl"}}</li>
{{/foreach}} {{/foreach}}
</ul> </ul>
<div class="clear"></div> <div class="clear"></div>

View File

@ -1,7 +1,7 @@
<div id="contact-drop-confirm"> <div id="contact-drop-confirm">
<h2 class="heading">{{$l10n.header}}</h2> <h2 class="heading">{{$l10n.header}}</h2>
{{include file="contact_template.tpl" no_contacts_checkbox=True}} {{include file="contact/entry.tpl" no_contacts_checkbox=True}}
{{include file="confirm.tpl"}} {{include file="confirm.tpl"}}

View File

@ -49,10 +49,10 @@
</ul> </ul>
<div class="clear"></div> <div class="clear"></div>
<div id="contact-list"> <div id="contact-list">
{{* format each contact with the contact_template.tpl *}} {{* format each contact with the contact/entry.tpl *}}
<ul id="viewcontact_wrapper" class="viewcontact_wrapper media-list"> <ul id="viewcontact_wrapper" class="viewcontact_wrapper media-list">
{{foreach $contacts as $contact}} {{foreach $contacts as $contact}}
<li>{{include file="contact_template.tpl"}}</li> <li>{{include file="contact/entry.tpl"}}</li>
{{/foreach}} {{/foreach}}
</ul> </ul>
</div> </div>

View File

@ -28,10 +28,10 @@
<div id="directory-search-end" class="clear"></div> <div id="directory-search-end" class="clear"></div>
{{* format each contact with the contact_template.tpl *}} {{* format each contact with the contact/entry.tpl *}}
<ul id="viewcontact_wrapper" class="viewcontact_wrapper media-list"> <ul id="viewcontact_wrapper" class="viewcontact_wrapper media-list">
{{foreach $contacts as $contact}} {{foreach $contacts as $contact}}
<li>{{include file="contact_template.tpl"}}</li> <li>{{include file="contact/entry.tpl"}}</li>
{{/foreach}} {{/foreach}}
</ul> </ul>

View File

@ -6,12 +6,12 @@
{{* The contacts who are already members of the contact group *}} {{* The contacts who are already members of the contact group *}}
{{foreach $groupeditor.members as $contact}} {{foreach $groupeditor.members as $contact}}
<li class="members active">{{include file="contact_template.tpl"}}</li> <li class="members active">{{include file="contact/entry.tpl"}}</li>
{{/foreach}} {{/foreach}}
{{* The contacts who are not members of the contact group *}} {{* The contacts who are not members of the contact group *}}
{{foreach $groupeditor.contacts as $contact}} {{foreach $groupeditor.contacts as $contact}}
<li class="contacts">{{include file="contact_template.tpl"}}</li> <li class="contacts">{{include file="contact/entry.tpl"}}</li>
{{/foreach}} {{/foreach}}
</ul> </ul>

View File

@ -10,7 +10,7 @@
{{if $contacts}} {{if $contacts}}
<ul id="viewcontact_wrapper{{if $id}}-{{$id}}{{/if}}" class="viewcontact_wrapper media-list"> <ul id="viewcontact_wrapper{{if $id}}-{{$id}}{{/if}}" class="viewcontact_wrapper media-list">
{{foreach $contacts as $contact}} {{foreach $contacts as $contact}}
<li>{{include file="contact_template.tpl"}}</li> <li>{{include file="contact/entry.tpl"}}</li>
{{/foreach}} {{/foreach}}
</ul> </ul>
{{else}} {{else}}

View File

@ -15,7 +15,7 @@
<div class="side-link" id="side-directory-link"><a href="{{$nv.global_dir}}" target="extlink">{{$nv.directory}}</a></div> <div class="side-link" id="side-directory-link"><a href="{{$nv.global_dir}}" target="extlink">{{$nv.directory}}</a></div>
{{* Additional links *}} {{* Additional links *}}
<div class="side-link" id="side-match-link"><a href="match">{{$nv.similar}}</a></div> <div class="side-link" id="side-match-link"><a href="match">{{$nv.similar}}</a></div>
<div class="side-link" id="side-suggest-link"><a href="suggest">{{$nv.suggest}}</a></div> <div class="side-link" id="side-suggest-link"><a href="contact/suggestions">{{$nv.suggest}}</a></div>
<div class="side-link" id="side-random-profile-link"><a href="randprof" target="extlink">{{$nv.random}}</a></div> <div class="side-link" id="side-random-profile-link"><a href="randprof" target="extlink">{{$nv.random}}</a></div>
{{if $nv.inv}} {{if $nv.inv}}