clarkwinkelmann Let me know if you have ideas for the next weeks!

There's a feature I miss: being able to see who deleted a message in a discussion without going in the database. I don't know if it's too easy to build as an extension, but I wouldn't be able to do that, so... 🙂

    matteocontrini Let me know if you have ideas for the next weeks!

    Would be great if you build an addon to push a discussion to the top if a tag in the discussion was updated.

      matteocontrini the information actually exists in the database, so it shouldn't be too hard to show it.

      panteLx I wonder where this idea comes from 😛

      Thanks for the comments, I'll see if I can integrate that. It's almost too short, I'd have to combine multiple things in the stream.

      If you are searching an idea I could suggest you a Firebase extension in order to push messages on any events like private messages via cloud messages I tried a proof of concept but I haven't found the problem why my messages aren't received yet and I no more answers on stackoverflow so...
      What is your opinion about such an extension ?

        brian85 that's highly connected with a third party. The Flarum side of that must be very simple. But I know nothing about Firebase, so wouldn't try to debug something built with it. For "simple" things like that, there's clerly more work on testing and debugging than coding.

        If I wanted to get familiar with a new service/library like Firebase, I'd probably first build a much simpler app, maybe with some vanilla PHP (or something like Laravel if a framework will ease the process), and if it works, try to re-do it as a Flarum extension.

        clarkwinkelmann Let me know if you have ideas for the next weeks!

        A clear cache button for admins somewhere in the front-end profile drop-down would really rock if that is possible. This is there for almost all cache plugins in Wordpress. There won't be any need to go the command line all the time for that. Thanks.

          clarkwinkelmann Дайте мне знать, если у вас есть идеи на ближайшие недели

          Give rewards to users for certain actions on the forum. Example: write the first discussion

            Alkir I would love to work on something like that one day, but it requires a whole ecosystem. First we need to define what rewards can be. Then we need to implement these rewards (badges, emails, levels, groups, physical goods, ...?). Then we need to implement ways to unlock them. If everything is in a single extension, it would be incredibly massive and I wouldn't make it open-source (unless it's sponsored). If everything is separate extensions, we need to come together and define how these will interact with each others, including maybe a (core) extension to handle the base logic on which extension developers can build upon.

            clarkwinkelmann Let me know if you have ideas for the next weeks!

            I have an extension in mind that can be used together with custom CSS in multiple ways. The extension just adds classes to the <body> element like the existing no-touch for a variety of states like the login status, the chosen language, the selected tags for discussions, indicators for pages, user lists etc.

            In your video you wouldn't need to provide classes for everything, instead your approach could be used by others to build upon your work.

              clarkwinkelmann Let me know if you have ideas for the next weeks!

              I'm working on two extensions, one requires the other. I have my project set up with a workbench folder like you have in your video's. There are no resources available on the compat API yet and I can't seem to get it right. Maybe you could touch on it?

                nxta good idea, I'll see how I can introduce that.

                The "compat" API actually is only a feature meant to be used by Flarum core extension to export to the flarum namespace.

                What extensions can do is export objects from their index.js. Here's an example I worked on in the past:

                User directory exports the UserDirectoryPage object https://github.com/FriendsOfFlarum/user-directory/blob/master/js/src/forum/index.js#L9

                Mailing checks the user directory extension is enabled and gets the exported object from the extension object https://github.com/kilowhat/flarum-ext-mailing/blob/master/js/src/forum/addMailingLinks.js#L40

                  Pollux I have an extension in mind that can be used together with custom CSS in multiple ways. The extension just adds classes to the <body> element like the existing no-touch for a variety of states like the login status, the chosen language, the selected tags for discussions, indicators for pages, user lists etc.

                  For those who question the usefulness of an extension like that... with this extension one could:

                  • provide links to pages only visible to guests or logged in users
                  • style different parts of the forum in completely unique ways (e.g. according to tags)
                  • change the appearance according to time and date (e.g. night view, christmas decoration)
                  • provide localised FAQs (provide a link for every language and show only the one that applies based on the selected language)
                  • give a custom visual indicator for locked discussions, very old discussions, newbie questions etc.

                  The possibilities are endless.

                  Pollux In your video you wouldn't need to provide classes for everything, instead your approach could be used by others to build upon your work.

                  Regarding this part I'm not sure it's easy to build upon to add new classes. Pushing new classes to an element or body is very easy. It's writing the logic for each kind of class that's difficult. So even after watching my video, you would still be left with the most difficult part if you wanted to implement a new class for a new kind of thing 😬

                  From the educational point of view, watching this extension being written would primarily teach the various properties of objects like tags and discussions I think. Which is also an interesting thing.

                  I'll see what ideas I keep.

                  I need to build a public review+comment (google like) extension for one of my projects, this will probably be this week's extension. I will incorporate some extensibility aspects into it (server side though).

                  Join me live in two hours!

                  We will create a "google-like" ratings extension that will be designed to integrate with other extensions.

                  14 days later

                  Join me live in 2 hours:

                  We will be revisiting the carving extension to make it more flexible and more performant.

                  I have created this page on my website to list the videos I made: https://clark-writes-code.winkelmann.dev/

                  Right now the only additional info compared to YouTube is the Flarum version, but I will probably add a short list of topics on each video so you can better pick one.

                    clarkwinkelmann thanks to the live viewers who joined! The replay is available above for everyone else.

                    The Carving extension update created tonight has been released https://discuss.flarum.org/d/21828-pumpkin-carving-contest/9

                    As always the code is available on GitHub https://github.com/clarkwinkelmann/flarum-ext-carving-contest

                    Next stream will be the last of the year. Any suggestions for something festive (Christmas or New Year) is welcome!

                    clarkwinkelmann

                    How would I create a new component that extends the exported one? If that makes sense

                    eg.
                    class NewUserDirectoryPage extends UserDirectoryPage

                    flarum.extensions is not available at this point

                      nxta I would say it's probably a rare use case, as I've never felt the need to extend a javascript class that way.

                      You could create your new class inside your initializer method, after having checked the extension is available in flarum.extensions. Classes can be defined inside of a function, they don't absolutely need to be defined in their own files.