Subscribed by FriendsOfFlarum

License Latest Stable Version OpenCollective

Extiverse

A Flarum extension. Adds additional subscriptions to specific events.

IMPORTANT NOTICE: This is the continued development of the original extension created by Flagrow but moved to the FoF space for continued support and development. This has also been updated for Beta 9 with the notifications actually working properly now 🙂

Available Notifications (User Settings)

  • Someone creates a discussion
  • When someone registers
  • A created post needs approval

Available Events

  • New Discussion
    • {username} created a new discussion
  • New User
    • {username} had just signed up
  • Post Unapproved
    • {username} created a post that requires approval

Available Permissions

  • Allowed to receive notification upon new discussion
  • Allowed to receive notification upon new user
  • Allowed to receive notification upon new unapproved post

Installation

Install manually with composer:

composer require "fof/subscribed:*"

Updating

composer update fof/subscribed

Links

OpenCollective

An extension by FriendsOfFlarum.

Please note that despite what the Packagist badge says in the OP, this extension is no longer in Beta and is a full 1.0.0 release 🙈

Screenshots coming soon as well ❤️

@[deleted] I believe you were waiting for this update? 😉

    • [deleted]

    • Edited

    Installed, but no settings (unless I missed something) ?

    EDIT: Never mind - was too lazy to read through the previous thread and found what I needed 😀

    Ralkage
    With this extension installed, an error pops up in the lower left corner of publishing a new discussion, but the discussion has actually been successfully published.

    I installed these extensions "ReCache" and "Post Notification", I am not sure if they conflict with them.

    Ralkage
    Should be the problem with this extension, disable extensions and everything works fine

      Leanna can you post the output of php flarum info?

      I want to try and reproduce with your setup.

      Also, any error logs you have will help too, please also check your PHP logs for additional info.

      There were reported issues with some extensions becoming wonky with ReCache installed and enabled/disabled, I want to validate this before I come to any conclusions and waste @Kyrne's time 🙂

      I am also curious to see if @[deleted] is having any issues with this as well? I believe you have ReCache installed, correct?

        Ralkage

        Flarum core 0.1.0-beta.9
        PHP version: 7.2.20
        Loaded extensions: Core, date, libxml, openssl, pcre, sqlite3, zlib, bcmath, ctype, curl, dom, filter, ftp, gd, gettext, hash, iconv, intl, json, mbstring, SPL, session, pcntl, standard, PDO, mysqlnd, pdo_sqlite, Phar, posix, Reflection, pdo_mysql, shmop, SimpleXML, soap, sockets, mysqli, sysvsem, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, zip, fileinfo, exif, imagick, Zend OPcache
        +-----------------------------------+-------------------+--------+
        | Flarum Extensions                 |                   |        |
        +-----------------------------------+-------------------+--------+
        | ID                                | Version           | Commit |
        +-----------------------------------+-------------------+--------+
        | flarum-approval                   | v0.1.0-beta.8     |        |
        | flarum-bbcode                     | v0.1.0-beta.8     |        |
        | flarum-emoji                      | v0.1.0-beta.8     |        |
        | flarum-lang-english               | v0.1.0-beta.9     |        |
        | flarum-flags                      | v0.1.0-beta.9     |        |
        | flarum-likes                      | v0.1.0-beta.9     |        |
        | flarum-lock                       | v0.1.0-beta.9     |        |
        | flarum-markdown                   | v0.1.0-beta.9     |        |
        | flarum-mentions                   | v0.1.0-beta.9     |        |
        | flarum-statistics                 | v0.1.0-beta.9     |        |
        | flarum-sticky                     | v0.1.0-beta.9     |        |
        | flarum-subscriptions              | v0.1.0-beta.9     |        |
        | flarum-suspend                    | v0.1.0-beta.9     |        |
        | flarum-tags                       | v0.1.0-beta.9     |        |
        | isaced-email-verification-switch  | 0.1.3             |        |
        | reflar-level-ranks                | 1.2.1             |        |
        | csineneo-lang-simplified-chinese  | v0.1.0-beta.9.3   |        |
        | csineneo-lang-traditional-chinese | v0.1.0-beta.9.3   |        |
        | fof-formatting                    | 0.1.2             |        |
        | fof-merge-discussions             | 0.3.1             |        |
        | fof-profile-image-crop            | 0.1.1             |        |
        | fof-split                         | 0.4.3             |        |
        | fof-user-bio                      | 0.1.2             |        |
        | fof-user-directory                | 0.3.3             |        |
        | fof-follow-tags                   | 0.2.0             |        |
        | clarkwinkelmann-circle-groups     | 0.2.1             |        |
        | noriods-auto-more                 | 0.3.0             |        |
        | fof-default-group                 | 0.1.0             |        |
        | fof-byobu                         | 0.3.1             |        |
        | antoinefr-money                   | v0.7.0            |        |
        | flarum-pusher                     | v0.1.0-beta.9     |        |
        | flarum-auth-facebook              | v0.1.0-beta.9     |        |
        | flarum-auth-github                | v0.1.0-beta.9     |        |
        | saleksin-auth-google              | v0.1.0-beta.8.0.3 |        |
        | fof-links                         | 0.2.1             |        |
        | flagrow-upload                    | 0.7.1             |        |
        | fof-pages                         | 0.2.6             |        |
        | reflar-recache                    | 1.0.10            |        |
        | fof-transliterator                | 0.1.1             |        |
        | flagrow-ads                       | 0.2.3             |        |
        | reflar-nightmode                  | 0.2.0             |        |
        | flagrow-sitemap                   | 0.2.0             |        |
        | fof-default-user-preferences      | 0.2.0             |        |
        | v17development-seo                | 1.0.2             |        |
        | tpokorra-post-notification        | 0.2.1             |        |
        | fof-share-social                  | 0.1.1             |        |
        +-----------------------------------+-------------------+--------+

          Leanna anything in your Flarum or PHP error logs you can post here as well?

            Ralkage

            [2019-08-02 04:08:16] production.ERROR: Swift_TransportException: Expected response code 354 but got code "503", with message "503 Error: need RCPT command
            " in /www/wwwroot/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:457
            Stack trace:
            #0 /www/wwwroot/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(341): Swift_Transport_AbstractSmtpTransport->assertResponseCode('503 Error: need...', Array)
            #1 /www/wwwroot/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php(305): Swift_Transport_AbstractSmtpTransport->executeCommand('DATA\r\n', Array, Array, false, NULL)
            #2 /www/wwwroot/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(390): Swift_Transport_EsmtpTransport->executeCommand('DATA\r\n', Array, Array)
            #3 /www/wwwroot/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(497): Swift_Transport_AbstractSmtpTransport->doDataCommand(Array)
            #4 /www/wwwroot/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(516): Swift_Transport_AbstractSmtpTransport->doMailTransaction(Object(Swift_Message), 'admin@sescse.co...', Array, Array)
            #5 /www/wwwroot/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(206): Swift_Transport_AbstractSmtpTransport->sendTo(Object(Swift_Message), 'admin@sescse.co...', Array, Array)
            #6 /www/wwwroot/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php(71): Swift_Transport_AbstractSmtpTransport->send(Object(Swift_Message), Array)
            #7 /www/wwwroot/vendor/illuminate/mail/Mailer.php(483): Swift_Mailer->send(Object(Swift_Message), Array)
            #8 /www/wwwroot/vendor/illuminate/mail/Mailer.php(259): Illuminate\Mail\Mailer->sendSwiftMessage(Object(Swift_Message))
            #9 /www/wwwroot/vendor/flarum/core/src/Notification/NotificationMailer.php(45): Illuminate\Mail\Mailer->send(NULL, Array, Object(Closure))
            #10 /www/wwwroot/vendor/flarum/core/src/Notification/NotificationSyncer.php(202): Flarum\Notification\NotificationMailer->send(Object(FoF\Subscribed\Blueprints\DiscussionCreatedBlueprint), Object(Flarum\User\User))
            #11 /www/wwwroot/vendor/flarum/core/src/Notification/NotificationSyncer.php(188): Flarum\Notification\NotificationSyncer->mailNotifications(Object(FoF\Subscribed\Blueprints\DiscussionCreatedBlueprint), Array)
            #12 /www/wwwroot/vendor/flarum/core/src/Notification/NotificationSyncer.php(120): Flarum\Notification\NotificationSyncer->sendNotifications(Object(FoF\Subscribed\Blueprints\DiscussionCreatedBlueprint), Array)
            #13 /www/wwwroot/vendor/fof/subscribed/src/Listeners/DiscussionCreated.php(74): Flarum\Notification\NotificationSyncer->sync(Object(FoF\Subscribed\Blueprints\DiscussionCreatedBlueprint), Array)
            #14 /www/wwwroot/vendor/illuminate/events/Dispatcher.php(360): FoF\Subscribed\Listeners\DiscussionCreated->whenDiscussionWasStarted(Object(Flarum\Discussion\Event\Started))
            #15 /www/wwwroot/vendor/illuminate/events/Dispatcher.php(209): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}('Flarum\\Discussi...', Array)
            #16 /www/wwwroot/vendor/flarum/core/src/Foundation/DispatchEventsTrait.php(35): Illuminate\Events\Dispatcher->dispatch('Flarum\\Discussi...')
            #17 /www/wwwroot/vendor/flarum/core/src/Discussion/Command/StartDiscussionHandler.php(100): Flarum\Discussion\Command\StartDiscussionHandler->dispatchEventsFor(Object(Flarum\Discussion\Discussion), Object(Flarum\User\User))
            #18 /www/wwwroot/vendor/illuminate/bus/Dispatcher.php(90): Flarum\Discussion\Command\StartDiscussionHandler->handle(Object(Flarum\Discussion\Command\StartDiscussion))
            #19 /www/wwwroot/vendor/illuminate/pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(Flarum\Discussion\Command\StartDiscussion))
            #20 /www/wwwroot/vendor/illuminate/pipeline/Pipeline.php(104): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Flarum\Discussion\Command\StartDiscussion))
            #21 /www/wwwroot/vendor/illuminate/bus/Dispatcher.php(98): Illuminate\Pipeline\Pipeline->then(Object(Closure))
            #22 /www/wwwroot/vendor/illuminate/bus/Dispatcher.php(76): Illuminate\Bus\Dispatcher->dispatchNow(Object(Flarum\Discussion\Command\StartDiscussion))
            #23 /www/wwwroot/vendor/flarum/core/src/Api/Controller/CreateDiscussionController.php(73): Illuminate\Bus\Dispatcher->dispatch(Object(Flarum\Discussion\Command\StartDiscussion))
            #24 /www/wwwroot/vendor/flarum/core/src/Api/Controller/AbstractSerializeController.php(98): Flarum\Api\Controller\CreateDiscussionController->data(Object(Zend\Diactoros\ServerRequest), Object(Tobscure\JsonApi\Document))
            #25 /www/wwwroot/vendor/flarum/core/src/Api/Controller/AbstractCreateController.php(24): Flarum\Api\Controller\AbstractSerializeController->handle(Object(Zend\Diactoros\ServerRequest))
            #26 /www/wwwroot/vendor/flarum/core/src/Http/RouteHandlerFactory.php(40): Flarum\Api\Controller\AbstractCreateController->handle(Object(Zend\Diactoros\ServerRequest))
            #27 /www/wwwroot/vendor/flarum/core/src/Http/Middleware/DispatchRoute.php(67): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}(Object(Zend\Diactoros\ServerRequest), Array)
            #28 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\DispatchRoute->process(Object(Zend\Diactoros\ServerRequest), Object(Closure))
            #29 /www/wwwroot/vendor/reflar/recache/src/Middlewares/OptimizeImages.php(44): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #30 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Reflar\ReCache\Middlewares\OptimizeImages->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #31 /www/wwwroot/vendor/reflar/recache/src/Middlewares/CacheResponse.php(87): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #32 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Reflar\ReCache\Middlewares\CacheResponse->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #33 /www/wwwroot/vendor/flarum/core/src/Http/Middleware/SetLocale.php(51): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #34 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\SetLocale->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #35 /www/wwwroot/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(33): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #36 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\CheckCsrfToken->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #37 /www/wwwroot/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(56): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #38 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\AuthenticateWithHeader->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #39 /www/wwwroot/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(34): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #40 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\AuthenticateWithSession->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #41 /www/wwwroot/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(52): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #42 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\RememberFromCookie->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #43 /www/wwwroot/vendor/flarum/core/src/Http/Middleware/StartSession.php(62): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #44 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\StartSession->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #45 /www/wwwroot/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(31): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #46 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Api\Middleware\FakeHttpMethods->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #47 /www/wwwroot/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(29): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #48 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Http\Middleware\ParseJsonBody->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #49 /www/wwwroot/vendor/flarum/core/src/Api/Middleware/HandleErrors.php(42): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #50 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Flarum\Api\Middleware\HandleErrors->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #51 /www/wwwroot/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #52 /www/wwwroot/vendor/middlewares/request-handler/src/RequestHandler.php(84): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #53 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Middlewares\RequestHandler->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #54 /www/wwwroot/vendor/middlewares/base-path-router/src/BasePathRouter.php(97): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #55 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Middlewares\BasePathRouter->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #56 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Middleware/OriginalMessages.php(41): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #57 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Zend\Stratigility\Middleware\OriginalMessages->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #58 /www/wwwroot/vendor/middlewares/base-path/src/BasePath.php(53): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #59 /www/wwwroot/vendor/zendframework/zend-stratigility/src/Next.php(60): Middlewares\BasePath->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\Next))
            #60 /www/wwwroot/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(83): Zend\Stratigility\Next->handle(Object(Zend\Diactoros\ServerRequest))
            #61 /www/wwwroot/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php(72): Zend\Stratigility\MiddlewarePipe->process(Object(Zend\Diactoros\ServerRequest), Object(Zend\Stratigility\EmptyPipelineHandler))
            #62 /www/wwwroot/vendor/zendframework/zend-httphandlerrunner/src/RequestHandlerRunner.php(95): Zend\Stratigility\MiddlewarePipe->handle(Object(Zend\Diactoros\ServerRequest))
            #63 /www/wwwroot/vendor/flarum/core/src/Http/Server.php(46): Zend\HttpHandlerRunner\RequestHandlerRunner->run()
            #64 /www/wwwroot/public/index.php(22): Flarum\Http\Server->listen()
            #65 {main}  

              Leanna That looks like a mailing error... not sure what it means though.

                datitisev Enable the "subscribed" extension, post a discussion prompt error, I disable this extension, no error message, the error log does not know what it means.

                  Leanna It is still an issue with mailing error, as it is unable to send an email notifying subscribed users about the discussion.

                  Leanna The errors are telling you that your SMTP (outgoing mail) connection was not properly authenticated by your email server.

                  The two most common causes of this error are:

                  • Your host requires checking on all outbound email. (Checking email first is one way your email provider manages the security of your email account.)
                  • Your installation of Flarum contains erroneous mail details.

                  Are you able to receive emails on signing signing up to your forum?

                    Hi, sorry for bugging you, but can someone please describe exactly to which events are these subscriptions? Thanks in advance!

                      EricEndo my apologies, I was to provide some screenshots today but I became VERY busy and didn't have time.

                      The two event notification types available are for when a new user joins and when a user creates a new discussion.

                      katos

                      1. I can also receive emails normally using this extension ("Post Notification"),
                      2. registered members can receive emails normally.

                        Hi @EricEndo and to those who are wondering what this extension actually does, I added some screenshots to my first post just to clear any concerns and mystery 😃

                        Also, feel free to suggest any other events you think would be good candidates for this extension!

                        The localisation file of this extension mentions two options I can't find anywhere:

                        defaults_label: Set "{setting}" enabled by default
                        forced_label: Force enable "{setting}" for everyone

                        Is this a planned feature or just hidden well enough?