Move mod/notice to src/Module/Notice
This commit is contained in:
parent
33ec3d8051
commit
9092cb1beb
|
@ -1,23 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file mod/notice.php
|
||||
* GNU Social -> friendica items permanent-url compatibility
|
||||
*/
|
||||
|
||||
use Friendica\App;
|
||||
use Friendica\Core\L10n;
|
||||
use Friendica\Database\DBA;
|
||||
|
||||
function notice_init(App $a)
|
||||
{
|
||||
$id = $a->argv[1];
|
||||
$r = q("SELECT `user`.`nickname` FROM `user` LEFT JOIN `item` ON `item`.`uid` = `user`.`uid` WHERE `item`.`id` = %d", intval($id));
|
||||
if (DBA::isResult($r)) {
|
||||
$nick = $r[0]['nickname'];
|
||||
$a->internalRedirect('display/' . $nick . '/' . $id);
|
||||
} else {
|
||||
throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('Item not found.'));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
|
@ -169,6 +169,7 @@ class Router
|
|||
$collector->addRoute(['GET'], '/view/{id:\d+}', Module\Notifications\Notify::class);
|
||||
$collector->addRoute(['GET'], '/mark/all', Module\Notifications\Notify::class);
|
||||
});
|
||||
$this->routeCollector->addRoute(['GET'], '/notice/{id:\d+}', Module\GnuSocial\Notice::class);
|
||||
$this->routeCollector->addRoute(['GET'], '/objects/{guid}', Module\Objects::class);
|
||||
$this->routeCollector->addGroup('/oembed', function (RouteCollector $collector) {
|
||||
$collector->addRoute(['GET'], '/b2h', Module\Oembed::class);
|
||||
|
|
36
src/Model/ItemUser.php
Normal file
36
src/Model/ItemUser.php
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Model;
|
||||
|
||||
use Exception;
|
||||
use Friendica\Database\DBA;
|
||||
|
||||
/**
|
||||
* Model for user specific operations of items
|
||||
*/
|
||||
class ItemUser
|
||||
{
|
||||
/**
|
||||
* Returns fields of the user for an item
|
||||
*
|
||||
* @param int $id The item id
|
||||
* @param array $fields The fields, which should get returned
|
||||
*
|
||||
* @return array|bool
|
||||
* @throws Exception In case of a DB-failure
|
||||
*/
|
||||
public static function getUserForItemId($id, array $fields = [])
|
||||
{
|
||||
$item = DBA::selectFirst('item', ['uid'], ['id' => $id]);
|
||||
if (empty($item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$user = DBA::selectFirst('user', $fields, ['uid' => $item['uid']]);
|
||||
if (!empty($user)) {
|
||||
return $user;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
34
src/Module/GnuSocial/Notice.php
Normal file
34
src/Module/GnuSocial/Notice.php
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Module\GnuSocial;
|
||||
|
||||
use Friendica\BaseModule;
|
||||
use Friendica\Core\L10n;
|
||||
use Friendica\Model\ItemUser;
|
||||
use Friendica\Network\HTTPException;
|
||||
|
||||
/**
|
||||
* GNU Social -> friendica items permanent-url compatibility
|
||||
*/
|
||||
class Notice extends BaseModule
|
||||
{
|
||||
public static function rawContent()
|
||||
{
|
||||
$a = self::getApp();
|
||||
|
||||
// @TODO: Replace with parameter from router
|
||||
$id = ($a->argc > 1) ? $a->argv[1] : 0;
|
||||
|
||||
if (empty($id)) {
|
||||
throw new HTTPException\NotFoundException(L10n::t('Item not found.'));
|
||||
}
|
||||
|
||||
$user = ItemUser::getUserForItemId($id, ['nickname']);
|
||||
|
||||
if (empty($user)) {
|
||||
throw new HTTPException\NotFoundException(L10n::t('Item not found.'));
|
||||
} else {
|
||||
$a->internalRedirect('display/' . $user['nickname'] . '/' . $id);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue