Youen
969d68cba8
Less and CSS files are now loaded from forum.js so that webpack can load resources from node modules (leaflet etc.)
64 lines
1.9 KiB
PHP
64 lines
1.9 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of justoverclock/users-map-location.
|
|
*
|
|
* Copyright (c) 2022 Marco Colia.
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE.md
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Justoverclock\UsersMapLocation;
|
|
|
|
|
|
use Justoverclock\UsersMapLocation\Listeners\SaveLocationToDatabase;
|
|
use Justoverclock\UsersMapLocation\Listeners\AddLocationAttribute;
|
|
use Flarum\Api\Serializer\UserSerializer;
|
|
use Flarum\Extend;
|
|
use Flarum\User\Event\Saving;
|
|
use Flarum\Api\Event\Serializing;
|
|
use Flarum\User\Filter\UserFilterer;
|
|
use Flarum\Filter\FilterState;
|
|
use Flarum\Query\QueryCriteria;
|
|
|
|
class UserLocationFilterMutator
|
|
{
|
|
public function __invoke(FilterState $filterState, QueryCriteria $queryCriteria)
|
|
{
|
|
if($queryCriteria->mustHaveLocation)
|
|
{
|
|
$filterState->getQuery()->where('location_latitude', '!=', 'null');
|
|
}
|
|
}
|
|
}
|
|
|
|
return [
|
|
(new Extend\Frontend('forum'))
|
|
->js(__DIR__.'/js/dist/forum.js')
|
|
->css(__DIR__.'/js/dist/forum.less'),
|
|
|
|
(new Extend\Frontend('admin'))
|
|
->js(__DIR__.'/js/dist/admin.js')
|
|
->css(__DIR__.'/less/admin.less'),
|
|
|
|
new Extend\Locales(__DIR__.'/locale'),
|
|
|
|
(new Extend\Event())
|
|
->listen(Saving::class, SaveLocationToDatabase::class),
|
|
|
|
(new Extend\ApiSerializer(UserSerializer::class))
|
|
->attributes(AddLocationAttribute::class),
|
|
|
|
(new Extend\Settings)->serializeToForum('justoverclock-users-map-location.mapBox-api-key', 'justoverclock-users-map-location.mapBox-api-key'),
|
|
|
|
(new Extend\Frontend('forum'))
|
|
->route('/global-map', 'justoverclock.global-map'),
|
|
|
|
(new Extend\Filter(UserFilterer::class))
|
|
->addFilterMutator(UserLocationFilterMutator::class),
|
|
|
|
(new Extend\Routes('api'))
|
|
->get('/user-locations', 'user-locations.index', Api\Controller\ListUserLocationsController::class)
|
|
];
|