• Extensions
  • FriendsOfFlarum Byōbu, well integrated, advanced private discussions

Edited after reviewing the comments in the post

Hi! Sorry for asking these questions as I had a hard time skimming for the answers in the 1.1k posts:

Question: Depending on the permission settings, "Private Discussions" will remain empty unless somebody from the Admin or Moderator group sends me a message, correct? So if the permission level is set to "Members" then does that mean members can send each other private messages?

  • Yes, depending on how you set the permission level, only the creator and recipient can access the private discussion. At this point in time, only the creator can add more recipients to the private discussion.

Question: Can Admins and/or Moderators access a private discussion between two forum members?

  • No, unless the admin or moderator is the creator or recipient of the private discussion. It may confuse first-time users though because it looks like a regular discussion, but it is actually a private one. Think of PM in a discussion format.

Question: Lastly, can any participant of the discussion delete their own posts inside the private discussion?

  • Like a regular discussion, participants can delete their own posts and even leave the discussion. In the near future, an option to hard delete the discussion will be offered.

Please ignore this comment as I have found the answers to my own questions.

Hey, I just installed this extension, when I enabled it I got a boot error, in the logs I get this error over and over again, any hints on what's going on to fix it?

flarum.ERROR: Error: Class "FoF\Byobu\Notifications\DiscussionCreatedBlueprint" not found in /var/www/flarum/vendor/flarum/core/src/Extend/Notification.php:37 Stack trace:

#0 /var/www/flarum/vendor/fof/byobu/extend.php(122): Flarum\Extend\Notification->type()
#1 /var/www/flarum/vendor/flarum/core/src/Extension/Extension.php(376): require('...')
#2 /var/www/flarum/vendor/flarum/core/src/Extension/Extension.php(139): Flarum\Extension\Extension->getExtenders()
#3 /var/www/flarum/vendor/flarum/core/src/Extension/ExtensionManager.php(382): Flarum\Extension\Extension->extend()
#4 /var/www/flarum/vendor/flarum/core/src/Extension/ExtensionServiceProvider.php(31): Flarum\Extension\ExtensionManager->extend()
#5 [internal function]: Flarum\Extension\ExtensionServiceProvider->Flarum\Extension\{closure}()
#6 /var/www/flarum/vendor/flarum/core/src/Foundation/Application.php(329): call_user_func()
#7 /var/www/flarum/vendor/flarum/core/src/Foundation/Application.php(270): Flarum\Foundation\Application->fireAppCallbacks()
#8 /var/www/flarum/vendor/flarum/core/src/Foundation/InstalledSite.php(151): Flarum\Foundation\Application->boot()
#9 /var/www/flarum/vendor/flarum/core/src/Foundation/InstalledSite.php(82): Flarum\Foundation\InstalledSite->bootLaravel()
#10 /var/www/flarum/vendor/flarum/core/src/Http/Server.php(58): Flarum\Foundation\InstalledSite->bootApp()
#11 /var/www/flarum/vendor/flarum/core/src/Http/Server.php(35): Flarum\Http\Server->safelyBootAndGetHandler()
#12 /var/www/flarum/public/index.php(26): Flarum\Http\Server->listen()
#13 {main}

    Darkle About this, just for update, I have disabled all the extensions one by one, to find compatibility issues, even the core ones (I only left the English language pack), and I still get the same error, I'm quite confused about it, could it be something in the environment? I don't think that makes too much sense...

    Sometimes in the logs I got the same error but with a bigger stack trace, not sure if it's useful:

    [2022-11-03 03:34:41] flarum.ERROR: Error: Class "FoF\Byobu\Notifications\DiscussionCreatedBlueprint" not found in /var/www/flarum/vendor/flarum/core/src/Extend/Notification.php:37
    Stack trace:
    #0 /var/www/flarum/vendor/fof/byobu/extend.php(122): Flarum\Extend\Notification->type()
    #1 /var/www/flarum/vendor/flarum/core/src/Extension/Extension.php(376): require('...')
    #2 /var/www/flarum/vendor/flarum/core/src/Extension/Extension.php(391): Flarum\Extension\Extension->getExtenders()
    #3 /var/www/flarum/vendor/flarum/core/src/Extension/Extension.php(306): Flarum\Extension\Extension->getLifecycleExtenders()
    #4 /var/www/flarum/vendor/flarum/core/src/Extension/ExtensionManager.php(208): Flarum\Extension\Extension->enable()
    #5 /var/www/flarum/vendor/flarum/core/src/Extension/Command/ToggleExtensionHandler.php(36): Flarum\Extension\ExtensionManager->enable()
    #6 /var/www/flarum/vendor/illuminate/bus/Dispatcher.php(122): Flarum\Extension\Command\ToggleExtensionHandler->handle()
    #7 /var/www/flarum/vendor/illuminate/pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}()
    #8 /var/www/flarum/vendor/illuminate/pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
    #9 /var/www/flarum/vendor/illuminate/bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then()
    #10 /var/www/flarum/vendor/illuminate/bus/Dispatcher.php(78): Illuminate\Bus\Dispatcher->dispatchNow()
    #11 /var/www/flarum/vendor/flarum/core/src/Api/Controller/UpdateExtensionController.php(43): Illuminate\Bus\Dispatcher->dispatch()
    #12 /var/www/flarum/vendor/flarum/core/src/Http/RouteHandlerFactory.php(41): Flarum\Api\Controller\UpdateExtensionController->handle()
    #13 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/ExecuteRoute.php(27): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}()
    #14 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ExecuteRoute->process()
    #15 /var/www/flarum/vendor/flarum/core/src/Api/Middleware/ThrottleApi.php(33): Laminas\Stratigility\Next->handle()
    #16 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Api\Middleware\ThrottleApi->process()
    #17 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(44): Laminas\Stratigility\Next->handle()
    #18 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\CheckCsrfToken->process()
    #19 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/ResolveRoute.php(67): Laminas\Stratigility\Next->handle()
    #20 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ResolveRoute->process()
    #21 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/SetLocale.php(51): Laminas\Stratigility\Next->handle()
    #22 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\SetLocale->process()
    #23 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(58): Laminas\Stratigility\Next->handle()
    #24 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\AuthenticateWithHeader->process()
    #25 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(31): Laminas\Stratigility\Next->handle()
    #26 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\AuthenticateWithSession->process()
    #27 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(52): Laminas\Stratigility\Next->handle()
    #28 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\RememberFromCookie->process()
    #29 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle()
    #30 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\StartSession->process()
    #31 /var/www/flarum/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(29): Laminas\Stratigility\Next->handle()
    #32 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Api\Middleware\FakeHttpMethods->process()
    #33 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle()
    #34 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ParseJsonBody->process()
    #35 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle()
    #36 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\HandleErrors->process()
    #37 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/InjectActorReference.php(25): Laminas\Stratigility\Next->handle()
    #38 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\InjectActorReference->process()
    #39 /var/www/flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(75): Laminas\Stratigility\Next->handle()
    #40 /var/www/flarum/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process()
    #41 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Middlewares\RequestHandler->process()
    #42 /var/www/flarum/vendor/middlewares/base-path-router/src/BasePathRouter.php(101): Laminas\Stratigility\Next->handle()
    #43 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Middlewares\BasePathRouter->process()
    #44 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(36): Laminas\Stratigility\Next->handle() 
    #45 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Laminas\Stratigility\Middleware\OriginalMessages->process()
    #46 /var/www/flarum/vendor/middlewares/base-path/src/BasePath.php(73): Laminas\Stratigility\Next->handle()
    #47 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Middlewares\BasePath->process()
    #48 /var/www/flarum/vendor/flarum/core/src/Http/Middleware/ProcessIp.php(24): Laminas\Stratigility\Next->handle()
    #49 /var/www/flarum/vendor/laminas/laminas-stratigility/src/Next.php(49): Flarum\Http\Middleware\ProcessIp->process()
    #50 /var/www/flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(75): Laminas\Stratigility\Next->handle()
    #51 /var/www/flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(64): Laminas\Stratigility\MiddlewarePipe->process()
    #52 /var/www/flarum/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle()
    #53 /var/www/flarum/vendor/flarum/core/src/Http/Server.php(44): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
    #54 /var/www/flarum/public/index.php(26): Flarum\Http\Server->listen()
    #55 {main}

      Darkle a likely reason would be that the Composer classmap is out of date. You can try running composer dump-autoload again to re-generate it. It would also be re-generated each time you install or uninstall an extension though Composer.

        clarkwinkelmann I have run that command and it doesn't seem to fix it, also the log type doesn't change, I have also tried to delete the composer.lock and generate it again with composer update but no change.

          luceos I'm trying to install the latest one with "*", I remember I used it almost two years ago on this same site/database, could it be something from the database when I used it at that time?

            Darkle no the database can't affect that. Is opcache enabled?

              luceos Yes, it's enabled, should I check something on it?

                luceos Finally! When I restarted php-fpm, it completely crashed the site (HTTP ERROR 500), so I disable opcache completely, that brought the site back up and with that I could finally enable Byōbu without problems.

                Honestly how do you guys come up with these things? experience? no way I would have thought it could be opcache 🤦‍♂️

                I'm going to check the opcache settings because the ones I was using seem to be problematic, thanks a lot.

                  Darkle Honestly how do you guys come up with these things? experience?

                  Yes.

                  The longer it takes to resolve, the better the lesson. I won't bore you about that time that my code triggered segmentation faults in production, caused by one specific php version. Segmentation faults are notoriously hard to solve, I haven't encountered any since the early PHP 7 days. It took me over a week to solve.

                  hrvoje_hr

                  m4v3rick If one user opens a private discussion with another one and both later leave this discussion, the discussion still exists but seems to lose the "private"-tag. It is then a discussion without any tag but suddenly visible to Admin and Supermod/Mod.

                  Please, add option to hide private discussion in page All Discussion.
                  I think need add specified id "PrivateDiscussion" to div "DiscussionListItem" and after add css for this id display: none

                  Or add hidden tag private-discussion for private discussion and use extension Flarum/Tags to hide discussion with this tag private-discussion on page All Discussion.

                  9 days later

                  Hi, we are working in www.forandoavela.es and while using this plugin we have identified a bug.

                  When trying to send a private message through an user profile, the window to create the message is empty and unresponsive (see a snapshot here https://photos.app.goo.gl/aUG97okVFiugYvVAA).

                  It does work if you go to private messages section and create a new private message.

                  Can anyone help me with this? Let me know if you need any further information.

                    luceos here you go

                    Flarum core 1.5.0
                    PHP version: 8.1.2-1ubuntu2.8
                    MySQL version: 5.5.5-10.9.3-MariaDB-1:10.9.3+mariaubu2204
                    Loaded extensions: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, pcntl, Reflection, SPL, session, standard, sodium, mysqlnd, PDO, xml, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, exif, mysqli, pdo_mysql, Phar, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, Zend OPcache
                    +---------------------------------+---------+--------+
                    | Flarum Extensions | | |
                    +---------------------------------+---------+--------+
                    | ID | Version | Commit |
                    +---------------------------------+---------+--------+
                    | flarum-tags | v1.5.0 | |
                    | flarum-flags | v1.5.0 | |
                    | flarum-suspend | v1.5.0 | |
                    | fof-sitemap | 2.0.1 | |
                    | flarum-markdown | v1.5.0 | |
                    | flarum-sticky | v1.5.0 | |
                    | fof-oauth | 1.2.5 | |
                    | fof-byobu | 1.1.7 | |
                    | zerosonesfun-direct-links | 3.1 | |
                    | webbinaro-calendar | 1.5.1 | |
                    | v17development-user-badges | v1.1.0 | |
                    | v17development-seo | v1.8.0 | |
                    | therealsujitk-gifs | v4.1.1 | |
                    | the-turk-stickiest | 3.0.1 | |
                    | the-turk-flamoji | 1.0.4 | |
                    | sycho-profile-cover | v1.3.3 | |
                    | sycho-move-posts | v0.1.7 | |
                    | migratetoflarum-canonical | 1.0.0 | |
                    | michaelbelgium-discussion-views | v7.1.3 | |
                    | katosdev-signature | 1.2 | |
                    | jslirola-login2seeplus | v0.2.1 | |
                    | fof-user-bio | 1.1.1 | |
                    | fof-upload | 1.2.3 | |
                    | fof-terms | 1.2.0 | |
                    | fof-stopforumspam | 1.2.3 | |
                    | fof-socialprofile | 1.1.4 | |
                    | fof-share-social | 1.1.0 | |
                    | fof-secure-https | 1.1.0 | |
                    | fof-recaptcha | 1.1.0 | |
                    | fof-profile-image-crop | 1.1.0 | |
                    | fof-polls | 1.2.1 | |
                    | fof-gamification | 1.6.2 | |
                    | fof-drafts | 1.1.2 | |
                    | fof-default-user-preferences | 1.1.1 | |
                    | fof-analytics | 1.1.0 | |
                    | flarum-subscriptions | v1.5.0 | |
                    | flarum-statistics | v1.5.1 | |
                    | flarum-nicknames | v1.5.0 | |
                    | flarum-mentions | v1.5.0 | |
                    | flarum-lock | v1.5.0 | |
                    | flarum-lang-spanish | 1.3.2 | |
                    | flarum-bbcode | v1.5.0 | |
                    | datlechin-signup-button | v0.1.1 | |
                    | askvortsov-rich-text | v2.1.7 | |
                    +---------------------------------+---------+--------+
                    Base URL: https://www.forandoavela.es
                    Installation path: /mnt/data-new/host/forandoavela
                    Queue driver: sync
                    Mail driver: smtp
                    Debug mode: off