mirror of
https://github.com/flarum/framework.git
synced 2025-02-01 12:51:47 +08:00
Use new extenders (#36)
This commit is contained in:
parent
032ad4aadc
commit
2ef3bf411f
|
@ -7,8 +7,9 @@
|
||||||
* LICENSE file that was distributed with this source code.
|
* LICENSE file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Flarum\Api\Event\Serializing;
|
|
||||||
use Flarum\Api\Serializer\BasicDiscussionSerializer;
|
use Flarum\Api\Serializer\BasicDiscussionSerializer;
|
||||||
|
use Flarum\Api\Serializer\DiscussionSerializer;
|
||||||
|
use Flarum\Discussion\Discussion;
|
||||||
use Flarum\Discussion\Event\Saving;
|
use Flarum\Discussion\Event\Saving;
|
||||||
use Flarum\Discussion\Event\Searching;
|
use Flarum\Discussion\Event\Searching;
|
||||||
use Flarum\Event\ConfigureDiscussionGambits;
|
use Flarum\Event\ConfigureDiscussionGambits;
|
||||||
|
@ -21,7 +22,6 @@ use Flarum\Post\Event\Restored;
|
||||||
use Flarum\Subscriptions\Gambit\SubscriptionGambit;
|
use Flarum\Subscriptions\Gambit\SubscriptionGambit;
|
||||||
use Flarum\Subscriptions\Listener;
|
use Flarum\Subscriptions\Listener;
|
||||||
use Flarum\Subscriptions\Notification\NewPostBlueprint;
|
use Flarum\Subscriptions\Notification\NewPostBlueprint;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
(new Extend\Frontend('forum'))
|
(new Extend\Frontend('forum'))
|
||||||
|
@ -37,23 +37,25 @@ return [
|
||||||
(new Extend\Notification())
|
(new Extend\Notification())
|
||||||
->type(NewPostBlueprint::class, BasicDiscussionSerializer::class, ['alert', 'email']),
|
->type(NewPostBlueprint::class, BasicDiscussionSerializer::class, ['alert', 'email']),
|
||||||
|
|
||||||
function (Dispatcher $events) {
|
(new Extend\ApiSerializer(DiscussionSerializer::class))
|
||||||
$events->listen(Serializing::class, Listener\AddDiscussionSubscriptionAttribute::class);
|
->attribute('subscription', function (DiscussionSerializer $serializer, Discussion $discussion) {
|
||||||
$events->listen(Saving::class, Listener\SaveSubscriptionToDatabase::class);
|
if ($state = $discussion->state) {
|
||||||
|
return $state->subscription ?: false;
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
$events->listen(ConfigureDiscussionGambits::class, function (ConfigureDiscussionGambits $event) {
|
(new Extend\Event())
|
||||||
|
->listen(Saving::class, Listener\SaveSubscriptionToDatabase::class)
|
||||||
|
->listen(ConfigureDiscussionGambits::class, function (ConfigureDiscussionGambits $event) {
|
||||||
$event->gambits->add(SubscriptionGambit::class);
|
$event->gambits->add(SubscriptionGambit::class);
|
||||||
});
|
})
|
||||||
$events->listen(Searching::class, Listener\FilterDiscussionListBySubscription::class);
|
->listen(Searching::class, Listener\FilterDiscussionListBySubscription::class)
|
||||||
|
->listen(Posted::class, Listener\SendNotificationWhenReplyIsPosted::class)
|
||||||
$events->listen(Posted::class, Listener\SendNotificationWhenReplyIsPosted::class);
|
->listen(Hidden::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class)
|
||||||
$events->listen(Hidden::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class);
|
->listen(Restored::class, Listener\RestoreNotificationWhenPostIsRestored::class)
|
||||||
$events->listen(Restored::class, Listener\RestoreNotificationWhenPostIsRestored::class);
|
->listen(Deleted::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class)
|
||||||
$events->listen(Deleted::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class);
|
->listen(ConfigureUserPreferences::class, function (ConfigureUserPreferences $event) {
|
||||||
|
|
||||||
$events->listen(ConfigureUserPreferences::class, function (ConfigureUserPreferences $event) {
|
|
||||||
$event->add('followAfterReply', 'boolval', false);
|
$event->add('followAfterReply', 'boolval', false);
|
||||||
});
|
})
|
||||||
$events->listen(Posted::class, Listener\FollowAfterReply::class);
|
->listen(Posted::class, Listener\FollowAfterReply::class),
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Flarum.
|
|
||||||
*
|
|
||||||
* For detailed copyright and license information, please view the
|
|
||||||
* LICENSE file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Flarum\Subscriptions\Listener;
|
|
||||||
|
|
||||||
use Flarum\Api\Event\Serializing;
|
|
||||||
use Flarum\Api\Serializer\DiscussionSerializer;
|
|
||||||
|
|
||||||
class AddDiscussionSubscriptionAttribute
|
|
||||||
{
|
|
||||||
public function handle(Serializing $event)
|
|
||||||
{
|
|
||||||
if ($event->isSerializer(DiscussionSerializer::class)
|
|
||||||
&& ($state = $event->model->state)) {
|
|
||||||
$event->attributes['subscription'] = $state->subscription ?: false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user