1
0
mirror of https://github.com/flarum/core.git synced 2025-08-06 08:27:42 +02:00

Use Frontend extender for embedding statistics in admin frontend

Refs flarum/core#1602, flarum/core#1608.
This commit is contained in:
Franz Liedke
2018-10-21 22:35:12 +02:00
parent 54266ea341
commit 6d2ebadcbf
2 changed files with 8 additions and 25 deletions

View File

@@ -11,14 +11,10 @@
use Flarum\Extend; use Flarum\Extend;
use Flarum\Statistics\Listener; use Flarum\Statistics\Listener;
use Illuminate\Contracts\Events\Dispatcher;
return [ return [
(new Extend\Frontend('admin')) (new Extend\Frontend('admin'))
->js(__DIR__.'/js/dist/admin.js') ->js(__DIR__.'/js/dist/admin.js')
->css(__DIR__.'/less/admin.less'), ->css(__DIR__.'/less/admin.less')
->content(Listener\AddStatisticsData::class),
function (Dispatcher $events) {
$events->subscribe(Listener\AddStatisticsData::class);
}
]; ];

View File

@@ -14,12 +14,12 @@ namespace Flarum\Statistics\Listener;
use DateTime; use DateTime;
use DateTimeZone; use DateTimeZone;
use Flarum\Discussion\Discussion; use Flarum\Discussion\Discussion;
use Flarum\Frontend\HtmlDocument;
use Flarum\Post\Post; use Flarum\Post\Post;
use Flarum\User\User; use Flarum\User\User;
use Flarum\Frontend\Event\Rendering; use Flarum\Frontend\Event\Rendering;
use Flarum\Settings\SettingsRepositoryInterface; use Flarum\Settings\SettingsRepositoryInterface;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Contracts\Events\Dispatcher;
class AddStatisticsData class AddStatisticsData
{ {
@@ -36,25 +36,12 @@ class AddStatisticsData
$this->settings = $settings; $this->settings = $settings;
} }
/** public function __invoke(HtmlDocument $view)
* @param Dispatcher $events
*/
public function subscribe(Dispatcher $events)
{ {
$events->listen(Rendering::class, [$this, 'addStatisticsData']); $view->payload['statistics'] = array_merge(
} $this->getStatistics(),
['timezoneOffset' => $this->getUserTimezone()->getOffset(new DateTime)]
/** );
* @param Rendering $event
*/
public function addStatisticsData(Rendering $event)
{
if ($event->isAdmin()) {
$event->view->setVariable('statistics', array_merge(
$this->getStatistics(),
['timezoneOffset' => $this->getUserTimezone()->getOffset(new DateTime)]
));
}
} }
private function getStatistics() private function getStatistics()