[CONTROLLER][FeedController] Make post processing happen more automatically, reducing noise in individual controllers. Now it's enough to simply extends App\Core\Controller\FeedController, to implement a feed

This commit is contained in:
2021-12-08 10:20:37 +00:00
parent 7783922b2e
commit 3b8a3e953d
6 changed files with 27 additions and 17 deletions

View File

@@ -33,6 +33,7 @@ declare(strict_types = 1);
namespace App\Core;
use App\Core\Controller\FeedController;
use function App\Core\I18n\_m;
use App\Util\Common;
use App\Util\Exception\ClientException;
@@ -130,6 +131,15 @@ abstract class Controller extends AbstractController implements EventSubscriberI
Event::handle('OverrideTemplate', [$this->vars, &$template]); // Allow plugins to replace the template used for anything
unset($this->vars['_template'], $response['_template']);
$controller = $request->get('_controller');
if (\is_array($controller)) {
$controller = $controller[0];
}
if (is_subclass_of($controller, FeedController::class)) {
$this->vars = FeedController::post_process($this->vars);
}
// Respond in the most preferred acceptable content type
$route = $request->get('_route');
$accept = $request->getAcceptableContentTypes() ?: ['text/html'];