Merge pull request #7097 from nupplaphil/task/mod_after_PR_fixing

Fixings for Mod-Refactorings
This commit is contained in:
Hypolite Petovan 2019-05-05 20:28:57 -04:00 committed by GitHub
commit bb8d297ae4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 111 additions and 52 deletions

View File

@ -89,7 +89,7 @@ class Router
$this->routeCollector->addRoute(['GET'], '/apps', Module\Apps::class);
$this->routeCollector->addRoute(['GET'], '/attach/{item:\d+}', Module\Attach::class);
$this->routeCollector->addRoute(['GET'], '/babel', Module\Babel::class);
$this->routeCollector->addRoute(['GET'], '/bookmarklet', Module\BookMarklet::class);
$this->routeCollector->addRoute(['GET'], '/bookmarklet', Module\Bookmarklet::class);
$this->routeCollector->addGroup('/contact', function (RouteCollector $collector) {
$collector->addRoute(['GET'], '[/]', Module\Contact::class);
$collector->addRoute(['GET'], '/{id:\d+}[/posts|conversations]', Module\Contact::class);

View File

@ -1174,7 +1174,7 @@ class Contact extends BaseObject
// The link could be provided as http although we stored it as https
$ssl_url = str_replace('http://', 'https://', $url);
$fields = ['url', 'addr', 'alias', 'notify', 'poll', 'name', 'nick',
$fields = ['id', 'uid', 'url', 'addr', 'alias', 'notify', 'poll', 'name', 'nick',
'photo', 'keywords', 'location', 'about', 'network',
'priority', 'batch', 'request', 'confirm', 'poco'];

View File

@ -1249,56 +1249,96 @@ class Profile
*/
public static function searchProfiles($start = 0, $count = 100, $search = null)
{
if ($search) {
$search = DBA::escape($search);
$sql_extra = " AND ((`profile`.`name` LIKE '%$search%') OR
(`user`.`nickname` LIKE '%$search%') OR
(`profile`.`pdesc` LIKE '%$search%') OR
(`profile`.`locality` LIKE '%$search%') OR
(`profile`.`region` LIKE '%$search%') OR
(`profile`.`country-name` LIKE '%$search%') OR
(`profile`.`gender` LIKE '%$search%') OR
(`profile`.`marital` LIKE '%$search%') OR
(`profile`.`sexual` LIKE '%$search%') OR
(`profile`.`about` LIKE '%$search%') OR
(`profile`.`romance` LIKE '%$search%') OR
(`profile`.`work` LIKE '%$search%') OR
(`profile`.`education` LIKE '%$search%') OR
(`profile`.`pub_keywords` LIKE '%$search%') OR
(`profile`.`prv_keywords` LIKE '%$search%'))";
} else {
$sql_extra = '';
}
$publish = (Config::get('system', 'publish_all') ? '' : " AND `publish` = 1 ");
$total = 0;
$cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total`
if (!empty($search)) {
$searchTerm = '%' . $search . '%';
$cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total`
FROM `profile`
LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` $sql_extra");
WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed`
AND ((`profile`.`name` LIKE ?) OR
(`user`.`nickname` LIKE ?) OR
(`profile`.`pdesc` LIKE ?) OR
(`profile`.`locality` LIKE ?) OR
(`profile`.`region` LIKE ?) OR
(`profile`.`country-name` LIKE ?) OR
(`profile`.`gender` LIKE ?) OR
(`profile`.`marital` LIKE ?) OR
(`profile`.`sexual` LIKE ?) OR
(`profile`.`about` LIKE ?) OR
(`profile`.`romance` LIKE ?) OR
(`profile`.`work` LIKE ?) OR
(`profile`.`education` LIKE ?) OR
(`profile`.`pub_keywords` LIKE ?) OR
(`profile`.`prv_keywords` LIKE ?))",
$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm,
$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm);
} else {
$cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total`
FROM `profile`
LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed`");
}
if (DBA::isResult($cnt)) {
$total = $cnt['total'];
}
$order = " ORDER BY `name` ASC ";
$limit = $start . ',' . $count;
$profiles = [];
$profiles = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`,
// If nothing found, don't try to select details
if ($total > 0) {
if (!empty($search)) {
$searchTerm = '%' . $search . '%';
$profiles = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`,
`contact`.`addr`, `contact`.`url` AS `profile_url`
FROM `profile`
LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
LEFT JOIN `contact` ON `contact`.`uid` = `user`.`uid`
WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `contact`.`self`
$sql_extra $order LIMIT $limit"
);
AND ((`profile`.`name` LIKE ?) OR
(`user`.`nickname` LIKE ?) OR
(`profile`.`pdesc` LIKE ?) OR
(`profile`.`locality` LIKE ?) OR
(`profile`.`region` LIKE ?) OR
(`profile`.`country-name` LIKE ?) OR
(`profile`.`gender` LIKE ?) OR
(`profile`.`marital` LIKE ?) OR
(`profile`.`sexual` LIKE ?) OR
(`profile`.`about` LIKE ?) OR
(`profile`.`romance` LIKE ?) OR
(`profile`.`work` LIKE ?) OR
(`profile`.`education` LIKE ?) OR
(`profile`.`pub_keywords` LIKE ?) OR
(`profile`.`prv_keywords` LIKE ?))
$order LIMIT ?,?",
$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm,
$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm,
$start, $count
);
} else {
$profiles = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`,
`contact`.`addr`, `contact`.`url` AS `profile_url`
FROM `profile`
LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
LEFT JOIN `contact` ON `contact`.`uid` = `user`.`uid`
WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `contact`.`self`
$order LIMIT ?,?",
$start, $count
);
}
}
if (DBA::isResult($profiles)) {
if (DBA::isResult($profiles) && $total > 0) {
return [
'total' => $total,
'entries' => DBA::toArray($profiles),
];
} else {
return [
'total' => $total,

View File

@ -12,7 +12,7 @@ use Friendica\Util\Strings;
* Creates a bookmarklet
* Shows either a editor browser or adds the given bookmarklet to the current user
*/
class BookMarklet extends BaseModule
class Bookmarklet extends BaseModule
{
public static function content()
{

View File

@ -3,7 +3,7 @@
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\Core\Renderer;
use Friendica\Util\XML;
/**
* Prints the rsd.xml
@ -13,9 +13,43 @@ class ReallySimpleDiscovery extends BaseModule
{
public static function rawContent()
{
header ('Content-Type: text/xml');
$tpl = Renderer::getMarkupTemplate('rsd.tpl');
echo Renderer::replaceMacros($tpl);
header('Content-Type: text/xml');
$app = self::getApp();
$xml = null;
echo XML::fromArray([
'rsd' => [
'@attributes' => [
'version' => '1.0',
'xmlns' => 'http://archipelago.phrasewise.com/rsd',
],
'service' => [
'engineName' => 'Friendica',
'engineLink' => 'http://friendica.com',
'apis' => [
'api' => [
'@attributes' => [
'name' => 'Twitter',
'preferred' => 'true',
'apiLink' => $app->getBaseURL(),
'blogID' => '',
],
'settings' => [
'docs' => [
'http://status.net/wiki/TwitterCompatibleAPI',
],
'setting' => [
'@attributes' => [
'name' => 'OAuth',
],
'false',
],
],
]
],
],
],
], $xml);
exit();
}
}

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
<service>
<engineName>Friendica</engineName>
<engineLink>http://friendica.com/</engineLink>
<apis>
<api name="Twitter" preferred="true" apiLink="{{$baseurl}}/api/" blogID="">
<settings>
<docs>http://status.net/wiki/TwitterCompatibleAPI</docs>
<setting name="OAuth">false</setting>
</settings>
</api>
</apis>
</service>
</rsd>