www.gusucode.com > Flarum中文优化论坛PHP源码程序 > FlarumChina-master/vendor/flarum/flarum-ext-tags/src/Listener/CreatePostWhenTagsAreChanged.php
<?php /* * This file is part of Flarum. * * (c) Toby Zerner <toby.zerner@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Flarum\Tags\Listener; use Flarum\Event\ConfigurePostTypes; use Flarum\Tags\Event\DiscussionWasTagged; use Flarum\Tags\Post\DiscussionTaggedPost; use Illuminate\Contracts\Events\Dispatcher; class CreatePostWhenTagsAreChanged { /** * @param Dispatcher $events */ public function subscribe(Dispatcher $events) { $events->listen(ConfigurePostTypes::class, [$this, 'addPostType']); $events->listen(DiscussionWasTagged::class, [$this, 'whenDiscussionWasTagged']); } /** * @param ConfigurePostTypes $event */ public function addPostType(ConfigurePostTypes $event) { $event->add(DiscussionTaggedPost::class); } /** * @param DiscussionWasTagged $event */ public function whenDiscussionWasTagged(DiscussionWasTagged $event) { $post = DiscussionTaggedPost::reply( $event->discussion->id, $event->user->id, array_pluck($event->oldTags, 'id'), $event->discussion->tags()->lists('id')->all() ); $event->discussion->mergePost($post); } }