Simple forum software for building great communities.

Overview

PHP Tests Total Downloads Latest Version License StyleCI

About Flarum

Flarum is a delightfully simple discussion platform for your website. It's fast and easy to use, with all the features you need to run a successful community. It is designed to be:

  • Fast and simple. No clutter, no bloat, no complex dependencies. Flarum is built with PHP so it’s quick and easy to deploy. The interface is powered by Mithril, a performant JavaScript framework with a tiny footprint.

  • Beautiful and responsive. This is forum software for humans. Flarum is carefully designed to be consistent and intuitive across platforms, out-of-the-box.

  • Powerful and extensible. Customize, extend, and integrate Flarum to suit your community. Flarum’s architecture is amazingly flexible, with a powerful Extension API.

Installation

This repository contains Flarum's core code. If you want to set up a forum, visit the Flarum skeleton repository.

Contributing

Thank you for considering contributing to Flarum! Please read the Contributing guide to learn how you can help.

Security Vulnerabilities

If you discover a security vulnerability within Flarum, please send an e-mail to [email protected]. All security vulnerabilities will be promptly addressed. More details can be found in our security policy.

License

Flarum is open-source software licensed under the MIT License.

Comments
  • New PHP Extension API

    New PHP Extension API

    In every extension, we have an AddClientAssets listener which is basically the same:

    class AddClientAssets
    {
        public function subscribe(Dispatcher $events)
        {
            $events->listen(ConfigureClientView::class, [$this, 'addAssets']);
        }
    
        public function addAssets(ConfigureClientView $event)
        {
            if ($event->isForum()) {
                $event->addAssets([
                    __DIR__.'/../../js/forum/dist/extension.js',
                    __DIR__.'/../../less/forum/extension.less'
                ]);
                $event->addBootstrapper('flarum/auth/facebook/main');
            }
    
            if ($event->isAdmin()) {
                $event->addAssets([
                    __DIR__.'/../../js/admin/dist/extension.js',
                    __DIR__.'/../../less/forum/extension.less'
                ]);
                $event->addBootstrapper('flarum/auth/facebook/main');
            }
        }
    }
    

    Given that this asset file-structure is a best practice, we could reduce this duplication by providing an instantiable AddDefaultClientAssets listener. In bootstrap.php, instead of:

    return function (Dispatcher $events) {
        $events->subscribe(Listener\AddClientAssets::class);
    };
    

    you would use:

    return function (Dispatcher $events, Extension $extension) {
        $events->subscribe(new AddDefaultClientAssets($extension));
    };
    

    This would add the default asset file paths if they exist, along with JS bootstrappers using the Extension's ID as a prefix.

    We could also extend this idea of shortcut listeners to other things, e.g.:

    return function (Dispatcher $events) {
        $events->subscribe(new AddForumRoute($extension, 'get', '/auth/facebook', 'auth', FacebookAuthController::class));
    
        $events->subscribe(new AddPostType(DiscussionStickiedPost::class));
    };
    

    This needs discussion because to me it's a little unclear how far we would want to go with providing these helpers. Where do we draw the line?

    type/feature 
    opened by tobyzerner 55
  • MariaDB 10.2.7+ nullable date/time (Invalid default value for 'notifications_read_time')

    MariaDB 10.2.7+ nullable date/time (Invalid default value for 'notifications_read_time')

    Bug report

    • Version of Flarum: 0.1.0-beta.7
    • The webserver you are running: apache + nginx
    • PHP version: 7.1.7
    • MySQL version: MariaDB 10.2.7

    Getting this error when trying to install:

    Something went wrong: SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'notifications_read_time' (SQL: ALTER TABLE main_users CHANGE notification_read_time notifications_read_time DATETIME DEFAULT 'NULL')
    

    error

    UPDATE: Adding composer show

    components/font-awesome         4.7.0         The iconic font designed for use with Twitter Bootstrap.
    danielstjules/stringy           1.10.0        A string manipulation library with multibyte support
    dflydev/fig-cookies             v1.0.2        Cookies for PSR-7 HTTP Message Interface.
    doctrine/annotations            v1.5.0        Docblock Annotations Parser
    doctrine/cache                  v1.7.0        Caching library offering an object-oriented API for many cache backends
    doctrine/collections            v1.5.0        Collections Abstraction library
    doctrine/common                 v2.8.0        Common Library for Doctrine projects
    doctrine/dbal                   v2.6.0        Database Abstraction Layer
    doctrine/inflector              v1.2.0        Common String Manipulations with regard to casing and singular/plural rules.
    doctrine/lexer                  v1.0.1        Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.
    filp/whoops                     2.1.9         php error handling for cool kids
    flarum/core                     v0.1.0-beta.7 Delightfully simple forum software.
    flarum/flarum-ext-akismet       v0.1.0-beta.6 Stop spam using the Akismet anti-spam service.
    flarum/flarum-ext-approval      v0.1.0-beta.7 Make discussions and posts require moderator approval.
    flarum/flarum-ext-auth-facebook v0.1.0-beta.6 Allow users to log in with Facebook.
    flarum/flarum-ext-auth-github   v0.1.0-beta.6 Allow users to log in with GitHub.
    flarum/flarum-ext-auth-twitter  v0.1.0-beta.6 Allow users to log in with Twitter.
    flarum/flarum-ext-bbcode        v0.1.0-beta.5 Allow posts to be formatted with BBCode.
    flarum/flarum-ext-emoji         v0.1.0-beta.6 Convert text and unicode emoji into Twemoji.
    flarum/flarum-ext-english       v0.1.0-beta.7 English language pack.
    flarum/flarum-ext-flags         v0.1.0-beta.7 Allow users to flag posts for moderator review.
    flarum/flarum-ext-likes         v0.1.0-beta.6 Allow users to like posts.
    flarum/flarum-ext-lock          v0.1.0-beta.7 End a discussion and don't let anyone add further replies.
    flarum/flarum-ext-markdown      v0.1.0-beta.5 Allow posts to be formatted with Markdown.
    flarum/flarum-ext-mentions      v0.1.0-beta.7 Mention and reply to specific posts and users.
    flarum/flarum-ext-pusher        v0.1.0-beta.6 See new discussions and posts in real-time using Pusher.
    flarum/flarum-ext-sticky        v0.1.0-beta.7 Pin discussions to the top of the list.
    flarum/flarum-ext-subscriptions v0.1.0-beta.6 Allow users to follow discussions and receive notifications for new posts.
    flarum/flarum-ext-suspend       v0.1.0-beta.7 Suspend users so they can't post.
    flarum/flarum-ext-tags          v0.1.0-beta.8 Organize discussions into a hierarchy of tags and categories.
    franzl/studio                   0.11.2        Develop your Composer libraries with style
    franzl/whoops-middleware        0.4.1        
    guzzlehttp/guzzle               6.3.0         Guzzle is a PHP HTTP client library
    guzzlehttp/promises             v1.3.1        Guzzle promises library
    guzzlehttp/psr7                 1.4.2         PSR-7 message implementation that also provides common utility methods
    http-interop/http-middleware    0.2.0         Common interface for HTTP middleware
    illuminate/bus                  v5.1.41       The Illuminate Bus package.
    illuminate/cache                v5.1.41       The Illuminate Cache package.
    illuminate/config               v5.1.41       The Illuminate Config package.
    illuminate/container            v5.1.41       The Illuminate Container package.
    illuminate/contracts            v5.1.41       The Illuminate Contracts package.
    illuminate/database             v5.1.41       The Illuminate Database package.
    illuminate/events               v5.1.41       The Illuminate Events package.
    illuminate/filesystem           v5.1.41       The Illuminate Filesystem package.
    illuminate/hashing              v5.1.41       The Illuminate Hashing package.
    illuminate/mail                 v5.1.41       The Illuminate Mail package.
    illuminate/pipeline             v5.1.41       The Illuminate Pipeline package.
    illuminate/support              v5.1.41       The Illuminate Support package.
    illuminate/validation           v5.1.41       The Illuminate Validation package.
    illuminate/view                 v5.1.41       The Illuminate View package.
    intervention/image              2.4.0         Image handling and manipulation library with support for Laravel integration
    ircmaxell/random-lib            v1.2.0        A Library For Generating Secure Random Numbers
    ircmaxell/security-lib          v1.1.0        A Base Security Library
    league/flysystem                1.0.40        Filesystem abstraction: Many filesystems, one API.
    league/oauth1-client            1.7.0         OAuth 1.0 Client Library
    league/oauth2-client            1.4.2         OAuth 2.0 Client Library
    league/oauth2-facebook          1.4.5         Facebook OAuth 2.0 Client Provider for The PHP League OAuth2-Client
    league/oauth2-github            0.2.2         Github OAuth 2.0 Client Provider for The PHP League OAuth2-Client
    matthiasmullie/minify           1.3.46        CSS & JS minifier
    matthiasmullie/path-converter   1.1.0         Relative path converter
    monolog/monolog                 1.23.0        Sends your logs to files, sockets, inboxes, databases and various web services
    nesbot/carbon                   1.22.1        A simple API extension for DateTime.
    nikic/fast-route                v0.6.0        Fast request router for PHP
    oyejorge/less.php               v1.7.0.14     PHP port of the Javascript version of LESS http://lesscss.org (Originally maintained by Josh Schmidt)
    paragonie/random_compat         v1.4.2        PHP 5.x polyfill for random_bytes() and random_int() from PHP 7
    psr/http-message                1.0.1         Common interface for HTTP messages
    psr/log                         1.0.2         Common interface for logging libraries
    pusher/pusher-php-server        2.6.4         Library for interacting with the Pusher REST API
    s9e/text-formatter              0.8.5         Multi-purpose text formatting and markup library. Plugins offer support for BBCodes, Markdown, emoticons, HTML, embedding media (YouTube, e...
    swiftmailer/swiftmailer         v5.4.8        Swiftmailer, free feature-rich PHP mailer
    symfony/console                 v2.8.25       Symfony Console Component
    symfony/debug                   v2.7.32       Symfony Debug Component
    symfony/filesystem              v3.3.5        Symfony Filesystem Component
    symfony/finder                  v2.7.32       Symfony Finder Component
    symfony/http-foundation         v2.7.32       Symfony HttpFoundation Component
    symfony/polyfill-mbstring       v1.4.0        Symfony polyfill for the Mbstring extension
    symfony/process                 v3.3.5        Symfony Process Component
    symfony/translation             v2.7.32       Symfony Translation Component
    symfony/yaml                    v2.8.25       Symfony Yaml Component
    tijsverkoyen/akismet            1.1.1         Akismet is a wrapper-class to communicate with the Akismet API.
    tobscure/json-api               v0.3.0        JSON-API responses in PHP
    zendframework/zend-diactoros    1.4.0         PSR HTTP Message implementations
    zendframework/zend-escaper      2.5.2        
    zendframework/zend-stratigility 1.3.3         Middleware for PHP
    
    type/bug 
    opened by KitsuneSolar 54
  • #258 SMTP UI Settings & Advanced Page

    #258 SMTP UI Settings & Advanced Page

    This (i think) fixes #258. Please give me feedback to make anything better :wink:

    The only thing missing is the locale in flarum/flarum-ext-english I've tested it, and it works fine; aka it puts the data in the database correctly. Here is a screenshot:

    Flarum Admin: Advanced Page w/ SMPT Settings

    opened by datitisev 50
  • Convention for permissions

    Convention for permissions

    Before stable we need to:

    • decide on a permission convention
    • decide whether we want to enact this convention
    • if so, apply the changes to core and bundled extensions.

    Some options in the conventions:

    • using dot namespaced permission, eg user.edit
    • using camelcase userEdit

    What we have to consider is that permissions are usually made an attribute on a model. So it's pretty confusing if different conventions are used for model attributes, permissions and permission grid keys, for instance:

    camelCase used in core for viewDiscussions: https://github.com/flarum/core/blob/88366fe8af3baa566ad625743016acb85a0cf345/js/src/admin/components/PermissionGrid.js#L104-L113

    camelCase and dot mixed viewLastSeenAt and user.viewLastSeenAt: https://github.com/flarum/core/blob/88366fe8af3baa566ad625743016acb85a0cf345/js/src/admin/components/PermissionGrid.js#L153-L157

    needs-discussion meta documentation 
    opened by luceos 45
  • Rewrite JavaScript component layer for Mithril 1.0

    Rewrite JavaScript component layer for Mithril 1.0

    Part of #262.

    The base Component class is an abstraction layer on top of Mithril's raw components which makes components a bit easier to work with, a bit more React-like, and is better for extensibility.

    It's very generic, with no specific ties to Flarum, so it should be extracted into its own external package so it can be used in other projects and developed independently of Flarum.

    Unfortunately, its API is also very unfamiliar. It's really an odd mix of Mithril and React. We have the view method from Mithril, config as a method instead of a vdom attribute, onunload from Mithril, this.props from React, this.$() from Ember, and some of our own inventions like init and initProps. This mixture is bad for onboarding new core/extension developers, because they'll have to learn something new/different even if they're already familiar with Mithril/React.

    I propose that when we extract this package, we change the API so that it reflects React as closely as possible. (The React API is more flexible and better for extensibility than the Mithril API.) The package can be called tobscure/mithreact – a React-like API for Mithril components.

    Here is an example of a simple component – first with the current API, and then the equivalent with my proposed Mithreact API:

    Current

    class MyComponent extends Component {
      // 1. Initialize props as they come in
      static initProps(props) {
        props.icon = props.icon || 'mail';
        props.className += ' bar';
      }
    
      init() {
        super.init();
    
        // 2. Set initial state
        this.email = m.prop('[email protected]');
    
        // 3. Determine whether the component should redraw by dirty-checking a value
        this.subtree = new SubtreeRetainer(this.email);
      }
    
      view() {
        // 3. Determine whether the component should redraw by dirty-checking a value
        return this.subtree.retain() || () =>
          <div className={this.props.className}>
            <i className={'fa fa-'+this.props.icon}/>
            // 4. Get and set component state
            <input type="text" value={this.email()} onchange={m.withAttr('value', this.email)}/>
          </div>;
      }
    
      config(isInitialized) {
        if (!isInitialized) {
          // 5. Initialize the DOM
          this.$('input').css('border-color', 'red');
        } else {
          // 6. Update the DOM
          this.$('input').css('border-color', 'blue');
        }
      }
    
      onunload(e) {
        // 7. Hook onto component dismount, and potentially prevent it
        if (this.email() !== '[email protected]') {
          e.preventDefault();
        }
      }
    }
    

    Mithreact

    class Dropdown extends Component {
      // 1. Initialize props as they come in
      getDefaultProps() {
        return {icon: 'mail'};
      }
    
      componentWillReceiveProps(nextProps) {
        nextProps.className += ' bar';
      }
    
      // 2. Set initial state
      getInitialState() {
        return {email: '[email protected]'};
      }
    
      render() {
        return (
          <div className={this.props.className}>
            <i className={'fa fa-'+this.props.icon}/>
            // 4. Get and set component state
            <input type="text" value={this.state.email} onchange={this.handleEmailChange.bind(this)}/>
          </div>
        );
      }
    
      handleEmailChange(e) {
        this.setState({email: e.target.value});
      }
    
      componentDidMount() {
        // 5. Initialize the DOM
        this.$('input').css('border-color', 'red');
      }
    
      shouldComponentUpdate(nextProps, nextState) {
        // 3. Determine whether the component should redraw by dirty-checking a value
        return nextState.email !== this.state.email;
      }
    
      componentDidUpdate() {
        // 6. Update the DOM
        this.$('input').css('border-color', 'blue');
      }
    
      componentWillUnmount() {
        // 7. Hook onto component dismount, and potentially prevent it
        if (this.email() !== '[email protected]') {
          return false;
        }
      }
    }
    

    Advantages of Mithreact:

    • It's more or less the same as the React API, so people will be familiar with it
    • By dividing things up into more methods with less arguments, things are cleaner, and extensions will have an easier time monkey-patching
    • Component state is encapsulated so we can potentially get some performance gains for free

    Disadvantages:

    • Lots of refactoring to do for core + existing extensions

    Thoughts?

    type/cleanup 
    opened by tobyzerner 44
  • Revamp admin interface

    Revamp admin interface

    _1 Upvote_ The Extensions page should be divided into categories so extensions will be easier to locate.

    Possible categories to add:

    • Authentication & Security
    • Formatting (Markdown, BBcode, etc.)
    • Language packs
    • Themes
    • Other

    The Extension page will need to use composer.json tag info to determine which category an installed extension should be displayed under.

    type/feature needs-discussion 
    opened by dcsjapan 43
  • [Markdown] Toolbar causes issues in IE 11

    [Markdown] Toolbar causes issues in IE 11

    Bug Report

    Current Behavior In Internet Explorer Version 11 (11.407.17134.0) on Windows 10 (10.0.17134 Build 17134), I am unable to create a discussion or even reply to one when I am logged in. What makes this absolutely weird is that I'm getting no errors in the console and the only reason how I came across these bugs was that I was in the process of retesting to #1174. I can reproduce this both locally and on Flarum Discuss (despite Flarum Discuss running on dev-master). I have kept in mind that Microsoft does not support this browser anymore as of January 12, 2016, but it is still bundled with the OS and is still widely used with legacy web applications.

    Steps to Reproduce

    Part 1:

    1. Open up Internet Explorer (Version 11).
    2. Go to your locally hosted Flarum or https://discuss.flarum.org/
    3. Log in if you aren't already.
    4. Click on the "Start a Discussion button".
    5. Observe as the discussion composer does not appear.

    Part 2:

    1. Open up Internet Explorer (Version 11).
    2. Go to your locally hosted Flarum or https://discuss.flarum.org/
    3. Log in if you aren't already.
    4. Open up any discussion that is not locked.
    5. Attempt to reply to the discussion.
    6. Observe as the reply/pos composer does not appear.

    Expected Behavior In using IE11, I should be able to create a new discussion and see the discussion composer pop-up as well as being able to reply to any discussion that is not locked.

    Screenshots N/A

    Environment

    • Flarum version: v0.1.0-beta.8.1 (locally hosted) or dev-master on Flarum Discuss
    • Website URL: Localhost or https://discuss.flarum.org/
    • Webserver: Apache (locally hosted)
    • Hosting environment: Locally hosted (WAMP)
    • PHP version: 7.2.4 (locally hosted)
    • Browser: Internet Explorer Version 11 (11.407.17134.0)
    Output of "php flarum info", run this in terminal in your Flarum directory.
    
    Flarum core 0.1.0-beta.8.1
    PHP version: 7.2.4
    Loaded extensions: Core, bcmath, calendar, ctype, date, filter, hash, iconv, jso
    n, mcrypt, SPL, pcre, readline, Reflection, session, standard, mysqlnd, tokenize
    r, zip, zlib, libxml, dom, PDO, bz2, SimpleXML, xml, wddx, xmlreader, xmlwriter,
     openssl, curl, fileinfo, gd, gettext, gmp, intl, imap, ldap, mbstring, exif, my
    sqli, Phar, pdo_mysql, pdo_sqlite, soap, sockets, sqlite3, xmlrpc, xsl
    +----------------------+-----------------+--------+
    | 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.8   |        |
    | flarum-flags         | v0.1.0-beta.8.1 |        |
    | flarum-likes         | v0.1.0-beta.8.1 |        |
    | flarum-lock          | v0.1.0-beta.8   |        |
    | flarum-markdown      | v0.1.0-beta.8   |        |
    | flarum-mentions      | v0.1.0-beta.8.1 |        |
    | flarum-statistics    | v0.1.0-beta.8   |        |
    | flarum-sticky        | v0.1.0-beta.8   |        |
    | flarum-subscriptions | v0.1.0-beta.8   |        |
    | flarum-suspend       | v0.1.0-beta.8   |        |
    | flarum-tags          | v0.1.0-beta.8.2 |        |
    +----------------------+-----------------+--------+
    Base URL: http://b81.test
    Installation path: C:\wamp64\www\b81.test
    Debug mode: off
    

    Possible Solution N/A

    Additional Context N/A

    type/bug Good first issue 
    opened by Ralkage 40
  • Database changes

    Database changes

    Closes #1236

    Related PRs https://github.com/flarum/flarum-ext-akismet/pull/10 https://github.com/flarum/flarum-ext-approval/pull/15 https://github.com/flarum/flarum-ext-flags/pull/15 https://github.com/flarum/flarum-ext-likes/pull/16 https://github.com/flarum/flarum-ext-lock/pull/16 https://github.com/flarum/flarum-ext-mentions/pull/34 https://github.com/flarum/flarum-ext-sticky/pull/11 https://github.com/flarum/flarum-ext-subscriptions/pull/18 https://github.com/flarum/flarum-ext-suspend/pull/19 https://github.com/flarum/flarum-ext-tags/pull/53

    opened by luceos 38
  • Problems with utf-8 characters in emails

    Problems with utf-8 characters in emails

    See example below:

    Hey lcarlos!
    
    rafaelazem mentioned you in a post in Transportadora no FKcarrier - dobrando o valor do frete.
    
    http://www.modulosfk.com.br/modulosfk/flarum/d/19/6
    
    ---
    
    @lcarlos resolvido! Muito obrigado!
    
    Apenas uma &uacute;ltima d&uacute;vida, o FKcorreios G2 substitui o FKcarrier em suas funcionalidades, isto?
    
    Obrigado!
    
    type/bug 
    opened by lcarlos-fokus 37
  • Usernames cannot be numeric

    Usernames cannot be numeric

    Currently username can be any matching regex:/^[a-z0-9_-]+$/i and the other rules (eg, min: 3). A drawback of this regex is that it allows for numeric usernames. As a consequence consider:

    User

    • id: 1337 username: Toby
    • id: 1338 username: 1337

    Hitting /api/user/1337 returns user 1337 for any other user.

    What we have to do is disallow any numeric usernames, the UserValidator has to be modified. A consideration is what to do with existing users.

    type/cleanup 
    opened by luceos 34
  • User list

    User list

    We want to offer an extensible user list which displays users sorted by metrics (no. of posts/discussions in core, and could be extended to show no. of likes received, etc.)

    What needs to be done:

    • Decide if this should be part of core, or should be a default extension. (i.e. should we allow it to be disabled?)
    • Design it.
    • Implementation needs to be nutted out
    type/feature prio/high 
    opened by tobyzerner 34
  • [Approval] User comment count not updated when approving reply

    [Approval] User comment count not updated when approving reply

    Current Behavior

    Approving a reply held for approval does not update the user comment_count property.

    If a user is subject to approval in every tag they have access to, this means their comment_count value stays at zero until one of the post is deleted or if a discussion is approved, at which point it'll be recalculated.

    Steps to Reproduce

    1. Configure "Reply to discussions without approval" permission to exclude the test user.
    2. Take note of test user comment_count value.
    3. Write reply on existing discussion with test user.
    4. Approve new post using an admin account.
    5. Check comment_count value on the test user. The value is still the same as before.

    Expected Behavior

    comment_count should be updated when a reply is approved.

    Screenshots

    No response

    Environment

    • Flarum version: 1.6.2
    • Website URL: localhost
    • Webserver: Apache
    • Hosting environment: local
    • PHP version: 8.1
    • Browser: Firefox

    Output of php flarum info

    Flarum core 1.6.2
    PHP version: 8.1.13
    MySQL version: 8.0.31-0ubuntu0.20.04.1
    Loaded extensions: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, pcntl, Reflection, SPL, session, standard, sodium, mysqlnd, PDO, xml, bcmath, bz2, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, iconv, imagick, 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.6.1     |                                          |
    | flarum-lock               | v1.6.1     |                                          |
    | flarum-flags              | v1.6.1     |                                          |
    | v17development-blog       | v0.6.4     |                                          |
    | flarum-sticky             | v1.6.1     |                                          |
    | flarum-approval           | v1.6.1     |                                          |
    | migratetoflarum-fake-data | dev-master | 45a06cb693e0413fbf7c748bc0b32c6411be9a49 |
    | kilowhat-audit-free       | dev-master | 01f23babb7249bd586e04c7b80b2c1dfb12129bc |
    | fof-byobu                 | 1.1.8      |                                          |
    | flarum-subscriptions      | v1.6.1     |                                          |
    | flarum-mentions           | v1.6.1     |                                          |
    | flarum-markdown           | v1.6.1     |                                          |
    | flarum-lang-french        | v4.3.0     |                                          |
    | flarum-lang-english       | v1.6.0     |                                          |
    | flarum-bbcode             | v1.6.0     |                                          |
    +---------------------------+------------+------------------------------------------+
    Base URL: http://1.6.flarum.localhost
    Installation path: /home/clark/Projects/flarum-1.6
    Queue driver: sync
    Session driver: file
    Mail driver: smtp
    Debug mode: ON
    
    

    Possible Solution

    The code does call User::refreshCommentCount(), but on the discussion author rather than the post author. It looks it might have been an error when the code was written since it's not really needed to call that method when approving the first post of a discussion which wouldn't count towards the comment count value.

    https://github.com/flarum/framework/blob/d7b9a03f31847c39631ba495df8f515509774610/extensions/approval/src/Listener/UpdateDiscussionAfterPostApproval.php#L35-L38

    Additional Context

    Reported here https://discuss.flarum.org/d/25055-first-post-approval/80

    type/bug 
    opened by clarkwinkelmann 0
  • The negate field doesn't get used, which means you cant exclude tags

    The negate field doesn't get used, which means you cant exclude tags

    Currently you cannot filter discussions/posts by excluding tag ids, as the $negate boolean is ignored.

    /api/posts?sort=-createdAt&filter[tag]=14 to include tag 14

    and

    /api/posts?sort=-createdAt&filter[tag]=-14 to exclude tag 14


    Unless there's a different way to handle this?

    opened by OwenMelbz 0
  • feat: Admin User Search

    feat: Admin User Search

    Fixes #3711

    Changes proposed in this pull request:

    • Adds search input to admin users list

    Reviewers should focus on:

    • If the search input works as intended

    Screenshot

    Necessity

    • [ ] Has the problem that is being solved here been clearly explained?
    • [ ] If applicable, have various options for solving this problem been considered?
    • [ ] For core PRs, does this need to be in core, or could it be in an extension?
    • [ ] Are we willing to maintain this for years / potentially forever?

    Confirmed

    • [X] Frontend changes: tested on a local Flarum installation.
    • [ ] Backend changes: tests are green (run composer test).
    • [ ] Core developer confirmed locally this works as intended.
    • [ ] Tests have been added, or are not appropriate here.
    opened by OrdinaryJellyfish 0
  • Admin user search

    Admin user search

    Description The user list on the admin panel currently shows all users ordered by ID. It would be a big improvement to be able to search through it based on username and use the available search gambits. (https://flarum.test/admin#/users)

    What needs to be done The logic/endpoint for searching on the backend is already available, so we just need to hit the API with a search query from the frontend.

    • First, we need to add the search input above the table (https://github.com/flarum/framework/blob/0e2053da1f7e1b9e1eb63221a6a186bb6fee355e/framework/core/js/src/admin/components/UserListPage.tsx#L94)
    • Then we need the input to store the updated value on a state variable, we an use a Stream property and the bidi attribute for that, here's an example with the nameSingular input value: https://github.com/flarum/framework/blob/cf818aae9e65d713d889b0dfe1ca7e0fd16b5ca4/framework/core/js/src/admin/components/EditGroupModal.tsx#L74
    • Finally, we need to add the input value to the query (https://github.com/flarum/framework/blob/0e2053da1f7e1b9e1eb63221a6a186bb6fee355e/framework/core/js/src/admin/components/UserListPage.tsx#L340-L345) it would need to be under filter: { q: query }
    • We might need to set a debounce to prevent xhr requests from firing too fast when typing.
    type/feature 
    opened by SychO9 0
  • PHP Xdebug has detected a possible infinite loop when logged in with non-admin user

    PHP Xdebug has detected a possible infinite loop when logged in with non-admin user

    Current Behavior

    When using PHP Xdebug for development purpose, logging-in or signing-up with a non-admin user (e.g. a newly created one) I get the following warning and xdebug stops the thread:

    [Thu Dec 15 13:11:09 2022] PHP Warning:  Uncaught Error: Xdebug has detected a possible infinite loop, and aborted your script with a stack depth of '200' frames in /home/nicolas/Source/www/flarum/vendor/illuminate/collections/Traits/EnumeratesValues.php:981
    

    Disabling Xdebug (e.g. with sudo phpdismod xdebug) allows the script to continue and eventually display the page.

    I would like to be able to use Xdebug while developing Flarum extension.

    It seems Xdebug is wrong with its assumption about a possible infinite loop, but it may however still be a performance problem to have such deep stack nesting.

    Here is the full log of the error: xdebug_possible_infinite_loop_200_frames.log

    Steps to Reproduce

    On a Debian based Linux distribution, assuming a working fresh install of Flarum (with mailer configured):

    1. make sure php-xdebug installed and enabled

      sudo apt install php-xdebug
      sudo phpenmod xdebug
      
    2. run server then visit http://localhost:8080

      php -S localhost:8080 -t public
      
    3. sign up a new user

    4. get the above PHP Xdebug error

    5. disable Xdebug then restart server

      sudo phpdismod xdebug
      
    6. refresh the page and now everything is working

    Expected Behavior

    Being able to use Xdebug while developing Flarum extensions.

    Screenshots

    No response

    Environment

    • Flarum version: 1.6.2
    • Website URL: http://localhost:8080
    • Webserver: PHP Built-in web server
    • Hosting environment: local machine
    • PHP version: PHP 8.1.12 (cli)
    • Browser: Mozilla Firefox 107.0.1

    Output of php flarum info

    Flarum core 1.6.2
    PHP version: 8.1.12
    MySQL version: 10.6.10-MariaDB-1+b1
    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, iconv, intl, exif, mysqli, pdo_mysql, pdo_sqlite, Phar, posix, readline, shmop, SimpleXML, sockets, sqlite3, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, Zend OPcache, xdebug
    +----------------------+---------+--------+
    | Flarum Extensions    |         |        |
    +----------------------+---------+--------+
    | ID                   | Version | Commit |
    +----------------------+---------+--------+
    | flarum-flags         | v1.6.1  |        |
    | flarum-approval      | v1.6.1  |        |
    | flarum-tags          | v1.6.1  |        |
    | flarum-suspend       | v1.6.1  |        |
    | flarum-subscriptions | v1.6.1  |        |
    | flarum-sticky        | v1.6.1  |        |
    | flarum-statistics    | v1.6.1  |        |
    | flarum-mentions      | v1.6.1  |        |
    | flarum-markdown      | v1.6.1  |        |
    | flarum-lock          | v1.6.1  |        |
    | flarum-likes         | v1.6.1  |        |
    | flarum-lang-english  | v1.6.0  |        |
    | flarum-emoji         | v1.6.1  |        |
    | flarum-bbcode        | v1.6.0  |        |
    +----------------------+---------+--------+
    Base URL: http://localhost:8080
    Installation path: /home/nicolas/Source/www/flarum
    Queue driver: sync
    Session driver: file
    Mail driver: smtp
    Debug mode: ON
    
    Don't forget to turn off debug mode! It should never be turned on in a production system.
    
    

    Possible Solution

    No response

    Additional Context

    No response

    type/bug 
    opened by n-peugnet 0
  • chore: php 8.2

    chore: php 8.2

    Fixes #0000

    Changes proposed in this pull request:

    Reviewers should focus on:

    Screenshot

    Necessity

    • [ ] Has the problem that is being solved here been clearly explained?
    • [ ] If applicable, have various options for solving this problem been considered?
    • [ ] For core PRs, does this need to be in core, or could it be in an extension?
    • [ ] Are we willing to maintain this for years / potentially forever?

    Confirmed

    • [ ] Frontend changes: tested on a local Flarum installation.
    • [ ] Backend changes: tests are green (run composer test).
    • [ ] Core developer confirmed locally this works as intended.
    • [ ] Tests have been added, or are not appropriate here.

    Required changes:

    • [ ] Related documentation PR: (Remove if irrelevant)
    • [ ] Related core extension PRs: (Remove if irrelevant)
    opened by imorland 1
Releases(v1.6.2)
  • v1.6.2(Nov 18, 2022)

  • v1.6.1(Nov 16, 2022)

  • v1.6.0(Nov 15, 2022)

    v1.6.0

    Fixed

    • (approval) posts approved for deleted users error (b5874a0)
    • (regression) bad import (5f2d7fb)
    • akismet fails when the extension is not on a version (45d9121)
    • apply flex for AppearancePage colors input [#3651]
    • groupmentions have poor contrast on some backgrounds [#3672]
    • larastan v1 incompatible with phpstan v1.9.0 [#3665]
    • package manager failures not showing alerts [#3647]
    • password reset leaks user existence [#3616]
    • statistics previous period chart is unclear [#3654]

    Changed

    • (package-manager) config composer to use web php version (fd19645)
    • (package-manager) set min core version and add warning (31c3cfc)
    • (statistics) prepare v1.5.1 (dc215ab)
    • Apply fixes from StyleCI (267f675)
    • Fix tag discussion count decreased by 2 when hiding before deleting [#3660]
    • Log migration path when up/down keys are missing [#3664]
    • Make it possible to extend SetupScript [#3643]
    • Setup PHPStan Level 5 [#3553]
    • yarn format (c5c312d)
    • add missing last period to custom date ranges [#3661]
    • add priorities to profile settings page [#3657]
    • allow specifying php extensions in workflow (b0b47a0)
    • format js (06963df)
    • group mentions [#3658]
    • remove styleci from changelog (b2fa28e)
    • set flarum version to dev for 1.6.0 (fc743ba)
    • throw an exception when no serializer is provided to the controller [#3614]

    Added

    • (statistics) support for custom date ranges [#3622]
    • Allow additional login params, Introduce LogInValidator [#3670]
    • Allow additional reset password params, introduce ForgotPasswordValidator [#3671]
    • add statistics chart export button [#3662]
    • allow specifying extensions when installing an instance [#3655]
    • contrast util with yiq calculator [#3652]
    • customizable session driver [#3610]
    • replace ColorPreviewInput for GroupModal color input [#3650]
    • send notifications of a new reply when post is approved [#3656]
    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Sep 13, 2022)

    v1.5.0

    Fixed

    • (a11y) add accessible labels to notification grid options [#3520]
    • (a11y) present post streams as feeds [#3522]
    • (a11y) set aria-busy when editing a post stream item [#3521]
    • (compilation) versioner not inject into compilers [#3589]
    • (mentions) accessing id of null user relation [#3618]
    • (subscriptions) add missing table prefix for filter gambit [#3599]
    • (tags) use default index sortmap [#3615]
    • Move guzzle requirement to core [#3544]
    • MyISAM tables for extensions during installation (75aaef7, f926c58)
    • Set the translator locale to user preference for email notifications [#3525]
    • $events property declared dynamically [#3598]
    • core settings header has no priority (33bf228)
    • html entities shown raw in page title [#3542]
    • incorrect centring of deleted user avatars in notification list [#3569]
    • intellisense imports defaulting to absolute path from src folder [#3549]
    • minor backward compatible fix for php 8.1 in st_replace (07b2f86)
    • post query wildcard selection causes ambiguity [#3621]
    • potential static caching memory exhaustion [#3548]
    • prepare release workflow has invalid layout (70e483d)
    • remove deprecation warning for decoding null values (590639f)
    • replace .fa() mixin usage with .fas() [#3537]
    • return type hint static is php 8+ (b01b75e)
    • sticky nav content displays below post stream [#3575]
    • titles positioned wrongly with custom header height [#3550]
    • typo in error message (1a189f4)
    • unread notifications are globally cached between users. [#3543]
    • update workflow name (628c281)
    • user has wrong discussion read status [#3591]

    Changed

    • (approval, likes) use subscribers [#3577]
    • (package-manager) last tweaks before beta tag (335c602)
    • (statistics) add release notes for 1.4.1 (f4ace73)
    • (statistics) rewrite for performance on very large communities [#3531]
    • (statistics) split timed data into per-model XHR requests [#3601]
    • (tags) Replace event helper with event dispatcher [#3570]
    • Add loading="lazy" attribute for avatars [#3578]
    • Create CODEOWNERS (6e48a03)
    • MyISAM tables for extensions during installation" (f128190)
    • convert AlertManager IndexPage and UserPage components to TS [#3536]
    • convert Badge Checkbox and Navigation components to TS [#3532]
    • convert core modals to TypeScript [#3515]
    • convert page components to TypeScript [#3538]
    • debug line slipped in while rebasing a PR [#3580]
    • don't pass password field between auth modals [#3626]
    • fix github issue templates (d3e456a)
    • format code (4954621)
    • getting the release workflow in (5530400)
    • link logo at the top with the official website [#3552]
    • prevent running both push and pull_request actions at the same time [#3597]
    • refactor prefix matrix and add MySQL 8.0 & PHP 7.3 to workflows [#3595]
    • relying on a third-party for avatar URL tests is unreliable [#3586]
    • require guzzle 6 or 7 (46b3b7a)
    • split FA imports into separate Less file for easy overriding [#3535]
    • unify JS actions into one (rewritten flarum/action-build) [#3573]
    • update version constant during cycle 22 (d864405)
    • use isCollapsed instead of rangeCount [#3581]
    • use github issue template forms [#3526]

    Added

    • (likes) Add likes tab to user profile [#3528]
    • (likes) Option to prevent users liking their own posts [#3534]
    • (modals) support stacking modals, remove bootstrap modals dependency [#3456]
    • (subscriptions) add option to send notifications when not caught up [#3503]
    • Add custom class for email confirmation alert [#3584]
    • Admin debug mode warning [#3590]
    • Delete all notifications [#3529]
    • Queue package manager commands [#3418]
    • Restart the queue worker after cache clearing, ext enable/disable, save settings [#3565]
    • add createTableIfNotExists migration helper [#3576]
    • add new workflow for generating release meta (0901e59)
    • clear password & email tokens when appropriate [#3567]
    • discussion UTF-8 slug driver [#3606]
    • expose assets base url to frontend forum model [#3566]
    • extender to add custom less variables [#3530]
    • publish assets on admin dashboard cache clear [#3564]
    • throttle email change, email confirmation, and password reset endpoints. [#3555]
    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Jul 13, 2022)

    Added

    • created_at and updated_at columns added to several tables (https://github.com/flarum/framework/pull/3435)
    • Priorities added to AdminNav links (https://github.com/flarum/framework/pull/3453)
    • app.translator allows retrieving and setting locale (https://github.com/flarum/framework/pull/3451)
    • Extensions can now declare custom settings components for use with buildSettingComponent (https://github.com/flarum/framework/pull/3494)
    • Implement extensibility on rel and target attributes on links (https://github.com/flarum/framework/pull/3455)
    • New backend tests were added to some of the bundled extensions (https://github.com/flarum/framework/issues/3508)

    Changed

    • Split boot script for Flarum in HTML footer into two parts for CSP hashing (https://github.com/flarum/framework/pull/3461)
    • Split asset compilation by giving assembling compilers its own method (https://github.com/flarum/framework/pull/3446)
    • Increase visibility of Component typescript class for better extensibility (https://github.com/flarum/framework/pull/3437)

    Fixed

    • Mentioning an event post breaks the notification dropdown (https://github.com/flarum/framework/pull/3493)
    • Suspension modal shows after suspension is over (https://github.com/flarum/framework/pull/3449)
    • CLI based installations don't exit with an error code on failure (https://github.com/flarum/framework/pull/3452)
    • Tabbing through dropdown controls doesn't make them visible (https://github.com/flarum/framework/pull/3450)
    • Requiring zero tags on new discussions forces the user to select tags (https://github.com/flarum/framework/pull/3448)
    • Long topic titles in the notification list don't overflow (https://github.com/flarum/framework/pull/3500)
    • Subtags of tags the user has access to are visible even if these are not accessible (https://github.com/flarum/framework/pull/3419)
    • assertAdmin tests access based on wrong gate ability (https://github.com/flarum/framework/pull/3501)
    • Increasing the composer header size causes elements to slip underneath (https://github.com/flarum/framework/pull/3502)
    • The profile mentions tab errors when sorting by created_at (https://github.com/flarum/framework/pull/3506)
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Jun 7, 2022)

    Changed

    • UserCard now has ItemList for easier extending (https://github.com/flarum/framework/pull/3436)

    Fixed

    • Button to go directly to all results page is hidden while API request for search hasn't completed (https://github.com/flarum/framework/pull/3431)
    • Setting extender does not register modifications beyond first fluent call (https://github.com/flarum/framework/pull/3439)
    • Link to font awesome icons list no longer works (https://github.com/flarum/framework/commit/df1bdd2ad84e992414c0e1e7be576558b4b0fe29)
    • Mentions: mentions with deleted authors not showing (https://github.com/flarum/framework/pull/3432)
    • Nicknames: regex validation isn't functional (https://github.com/flarum/framework/pull/3430)
    • Subscriptions: reply notifications not working (https://github.com/flarum/framework/pull/3445)
    • Suspend: not providing suspension reason breaks mail (https://github.com/flarum/framework/pull/3433)
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(May 16, 2022)

    Added

    • [A11Y] Added role feed to DiscussionList (https://github.com/flarum/framework/pull/3359)
    • Support multiple confirmation dialogs when closing a tab/window (https://github.com/flarum/framework/pull/3372)
    • Markdown: markdown toolbar support for admin frontend (https://github.com/flarum/framework/commit/16d5cc11e3aee5c94aeed877987cdb199a2a0d2c)

    Changed

    • Post number calculation is now executed inside the database layer, preventing integrity constraints (https://github.com/flarum/framework/pull/3358)
    • Errors from within extensions no longer make Flarum crash but trigger a visible warning (https://github.com/flarum/framework/pull/3349)
    • Sorting options for discussion index is now extensible (https://github.com/flarum/framework/pull/3377)
    • Event listeners from the framework now are added before those of extensions (https://github.com/flarum/framework/pull/3373)

    Fixed

    • Typings and missing typescript components (https://github.com/flarum/framework/pull/3348)
    • Post--by-start-user CSS class is not added to post html (https://github.com/flarum/framework/pull/3356)
    • Timestamps for notifications are incorrect on servers that have a timezone different than UTC (https://github.com/flarum/framework/pull/3379)
    • Extensions with dependencies that are enabled do not cause dependencies to be enforced (https://github.com/flarum/framework/pull/3352)
    • Search using non-words doesn't work (https://github.com/flarum/framework/pull/3385)
    • Slugs are not working for other languages than English (https://github.com/flarum/framework/pull/3387)
    • Deprecations are triggered on PHP 8.1 (https://github.com/flarum/framework/pull/3384)
    • Post permalink for subdirectory installs have duplicate paths segments (https://github.com/flarum/framework/pull/3354)
    • Composer discussion title is not always clearly visible (https://github.com/flarum/framework/pull/3413)
    • Mentions: extensions re-using mentions can cause errors due to missing context (https://github.com/flarum/framework/pull/3382)
    • Tags: tag selection modal errors on new discussions when pressing down (https://github.com/flarum/framework/issues/3403)
    • [A11Y] Tags: focus to input and layout of tag selection modal are off (https://github.com/flarum/framework/pull/3412)
    • Subscriptions: searching inside the following page will search in all discussions (https://github.com/flarum/framework/pull/3376)

    Full Changelog: https://github.com/flarum/framework/compare/33d939cb012716ed6309ea02236737ad4f25a75b...v1.3.0

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Mar 17, 2022)

    Fixed

    • Don't escape single quotes in discussion title meta tags (60600f4d2b8f0c5dac94c329041427a0a08fad42)

    Full Changelog: https://github.com/flarum/framework/compare/v1.2.0...v1.2.1

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Jan 20, 2022)

    Added

    • View README documentation in extension pages (https://github.com/flarum/core/pull/3094).
    • Declare & Use CSS Custom Properties (https://github.com/flarum/core/pull/3146).
    • Lazy draw dropdowns to improve performance (https://github.com/flarum/core/pull/2925).
    • Default Settings Extender (https://github.com/flarum/core/pull/3127).
    • Add textarea setting type to admin pages (https://github.com/flarum/core/pull/3141).
    • Allow registering settings as Less config vars through Settings Extender (https://github.com/flarum/core/pull/3011).
    • Allow replacing of blade template namespaces via extender (https://github.com/flarum/core/pull/3167).
    • Update to Webpack 5 (https://github.com/flarum/core/pull/3135).
    • Introduce Less custom function extender with a is-extension-enabled function (https://github.com/flarum/core/pull/3190).
    • Support for few in ICU Message syntax (https://github.com/flarum/core/pull/3122).
    • ES6 local support for number formatting (https://github.com/flarum/core/pull/3099).
    • Added dedicated endpoint for retrieving single groups (https://github.com/flarum/core/pull/3084).
    • Callback loadWhere relation eager loading extender (https://github.com/flarum/core/pull/3116).
    • Extensible document title driver implementation (https://github.com/flarum/core/pull/3109).
    • Type checks, typescript coverage GH action (https://github.com/flarum/core/pull/3136).
    • Add color indicator in appearance admin page instead of validating colors (https://github.com/flarum/core/pull/3140).
    • Add typing files for our translator libraries (https://github.com/flarum/core/pull/3175).
    • StatusWidget tools extensibility (https://github.com/flarum/core/pull/3189).
    • Allow switching the ImageManager driver (https://github.com/flarum/core/pull/3195).
    • Events for notification read/all read actions (https://github.com/flarum/core/pull/3203).

    Changed

    • Testing with php8.1 (https://github.com/flarum/core/pull/3102).
    • Migrate fully to Yarn (https://github.com/flarum/core/pull/3155).
    • Handle post rendering errors to avoid crashes (https://github.com/flarum/core/pull/3061).
    • Added basic filtering, sorting, and pagination to groups endpoint (https://github.com/flarum/core/pull/3084).
    • Pass IP address to API Client pipeline (https://github.com/flarum/core/pull/3124).
    • Rename Extension Page "Uninstall" to "Purge" (https://github.com/flarum/core/pull/3123).
    • [A11Y] Improve accessibility for discussion reply count on post stream (https://github.com/flarum/core/pull/3090).
    • Improved post loading support (https://github.com/flarum/core/pull/3100).
    • Rewrite SubtreeRetainer into Typescript (https://github.com/flarum/core/pull/3137).
    • Rewrite ModalManager and state to Typescript (https://github.com/flarum/core/pull/3007).
    • Rewrite frontend application files to Typescript (https://github.com/flarum/core/pull/3006).
    • Allow extensions to modify the minimum search length in the Search component (https://github.com/flarum/core/pull/3130).
    • Allow use of any tag in listItems helper (https://github.com/flarum/core/pull/3147).
    • Replace for ... in with Array.reduce (https://github.com/flarum/core/pull/3149).
    • Page title format is now implemented through translations (https://github.com/flarum/core/pull/3077, https://github.com/flarum/core/pull/3228)
    • Add aria-label attribute to the navigation drawer button (https://github.com/flarum/core/pull/3157).
    • Convert extend util to TypeScript (https://github.com/flarum/core/pull/2928).
    • Better typings for DiscussionListState (https://github.com/flarum/core/pull/3132).
    • Rewrite ItemList, update ItemList typings (https://github.com/flarum/core/pull/3005).
    • Add priority order to discussion page controls (https://github.com/flarum/core/pull/3165).
    • Use @php in Blade templates (https://github.com/flarum/core/pull/3172).
    • Convert some common classes/utils to TS (https://github.com/flarum/core/pull/2929).
    • Convert routes to Typescript (https://github.com/flarum/core/pull/3177).
    • Move admin colorItems to an ItemList (https://github.com/flarum/core/pull/3186).
    • Centralize pagination/canonical meta URL generation in Document (https://github.com/flarum/core/pull/3077).
    • Use revision versioner to allow custom asset versioning (https://github.com/flarum/core/pull/3183).
    • Split up application error handling (https://github.com/flarum/core/pull/3184).
    • Make SlugManager available to blade template (https://github.com/flarum/core/pull/3194).
    • Convert models to TS (https://github.com/flarum/core/pull/3174).
    • Allow loading relations in other discussion endpoints (https://github.com/flarum/core/pull/3191).
    • Improve selected text stylization (https://github.com/flarum/core/pull/2961).
    • Extract notification primaryControl items to an ItemList (https://github.com/flarum/core/pull/3204).
    • Frontend code housekeeping (#3214, #3213).
    • Only retain scroll position if coming from discussion (https://github.com/flarum/core/pull/3229).
    • Use aria-live regions to focus screenreader attention on alerts as they appear (https://github.com/flarum/core/pull/3237).
    • Prevent unwarranted a11y warnings on custom Button subclasses (https://github.com/flarum/core/pull/3238).

    Fixed

    • Missing locale text in the user editing modal (https://github.com/flarum/core/pull/3093).
    • Dashes in table prefix prevent installation (https://github.com/flarum/core/pull/3089).
    • Missing autocomplete attributes to input fields (https://github.com/flarum/core/pull/3088).
    • Missing route parameters throwing an error (https://github.com/flarum/core/pull/3118).
    • Mail settings select component never used (https://github.com/flarum/core/pull/3120).
    • White avatar image throws javascript errors on the profile page (https://github.com/flarum/core/pull/3119).
    • Unformatted avatar upload validation errors (https://github.com/flarum/core/pull/2946).
    • Webkit input clear button shows up with the custom one (https://github.com/flarum/core/pull/3128).
    • Media query breakpoints conflict with Windows display scaling (https://github.com/flarum/core/pull/3139).
    • typeof this not recognized by some IDEs (https://github.com/flarum/core/pull/3142).
    • Model.save() cannot save null hasOne relationship (https://github.com/flarum/core/pull/3131).
    • Edit post until reply policy broken on PHP 8 (https://github.com/flarum/core/pull/3145).
    • Inaccurate Component.component argument typings (https://github.com/flarum/core/pull/3148).
    • Scrolling notification list infinitely repeats (https://github.com/flarum/core/pull/3159).
    • Argument for INFO constant was assigned to maxfiles argument incorrectly (bfd81a83cfd0fa8125395a147ff0c9ce622f38e3).
    • Activated event is sent every time an email is confirmed instead of just once (https://github.com/flarum/core/pull/3163).
    • [A11Y] Modal close button missing accessible label (https://github.com/flarum/core/pull/3161).
    • [A11Y] Auth modal inputs missing accessible labels (https://github.com/flarum/core/pull/3207).
    • [A11Y] Triggering click on drawer button can cause layered backdrops (https://github.com/flarum/core/pull/3018).
    • [A11Y] Focus can leave open nav drawer on mobile (https://github.com/flarum/core/pull/3018).
    • [A11Y] Post action items not showing when focus is within the post (https://github.com/flarum/core/pull/3173).
    • [A11Y] Missing accessible label for alert dismiss button (https://github.com/flarum/core/pull/3237).
    • Error accessing the forum after saving a setting with more than 65k characters (https://github.com/flarum/core/pull/3162).
    • Cannot restart queue from within (https://github.com/flarum/core/pull/3166).
    • Post--by-actor not showing when comparing user instances (https://github.com/flarum/core/pull/3170).
    • Incorrect typings for Modal hide() method (https://github.com/flarum/core/pull/3180).
    • Avatar Upload throws errors with correct mimetype and incorrect extension (https://github.com/flarum/core/pull/3181).
    • Clicking the dropdown button on a post opens all dropdowns in Post-actions (https://github.com/flarum/core/pull/3185).
    • getPlainContent() causes external content to be fetched (https://github.com/flarum/core/pull/3193).
    • listItems not accepting all Mithril.Children (https://github.com/flarum/core/pull/3176).
    • Notifications mark as read option updates all notifications including the read ones (https://github.com/flarum/core/pull/3202).
    • Post meta permalink not properly generated (https://github.com/flarum/core/pull/3216).
    • Broken contribution link in README (https://github.com/flarum/core/pull/3211).
    • WelcomeHero is displayed when content is empty (https://github.com/flarum/core/pull/3219).
    • last_activity_at, last_seen_at updated on all API requests (https://github.com/flarum/core/pull/3231).
    • RememberMe access token updated twice in API requests (https://github.com/flarum/core/pull/3233).
    • Error in funding item in composer.json bricks the frontend (https://github.com/flarum/core/pull/3239).
    • Escaped quotes in window title (https://github.com/flarum/core/pull/3264)
    • schedule:list command fails due to missing timezone configuration.

    Deprecated

    • Unused evented utility (https://github.com/flarum/core/pull/3125).
    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Oct 22, 2021)

  • v1.1.0(Oct 13, 2021)

    Added

    • Info command now displays MySQL version, queue driver, mail driver (https://github.com/flarum/core/pull/2991)
    • Use organization Prettier config (https://github.com/flarum/core/pull/2967)
    • Support for global typings in extensions (https://github.com/flarum/core/pull/2992)
    • Typings for class component state attribute (https://github.com/flarum/core/pull/2995)
    • Custom colorising with CSS custom properties (https://github.com/flarum/core/pull/3001)
    • Theme Extender to allow overriding LESS files (https://github.com/flarum/core/pull/3008)
    • Update lastSeenAt when authenticating via API (https://github.com/flarum/core/pull/3058)
    • NoJs Admin View (https://github.com/flarum/core/pull/3059)
    • Preload FontAwesome, JS and CSS, and add preload extender (https://github.com/flarum/core/pull/3057)

    Changed

    • Move Day.js plugin types import to global typings (https://github.com/flarum/core/pull/2954)
    • Avoid resolving excluded middleware on each middleware items
    • Allow extra attrs provided to <Select> to be passed through to the DOM element (https://github.com/flarum/core/pull/2959)
    • Limit height of code blocks (https://github.com/flarum/core/pull/3012)
    • Update normalize.css from v3.0.2 to v8.0.1 (https://github.com/flarum/core/pull/3015)
    • Permission Grid: stick the headers to handle a lot of tags (https://github.com/flarum/core/pull/2887)
    • Use ItemList for DiscussionPage content (https://github.com/flarum/core/pull/3004)
    • Move email confirmation to POST request (https://github.com/flarum/core/pull/3038)
    • Minor CSS code cleanup (https://github.com/flarum/core/pull/3026)
    • Replace username with display name in more places (https://github.com/flarum/core/pull/3040)
    • Rewrite Button to Typescript (https://github.com/flarum/core/pull/2984)
    • Rewrite AdminPage abstract component into Typescript (https://github.com/flarum/core/pull/2996)
    • Allow adding page parameters to PaginatedListState (https://github.com/flarum/core/pull/2935)
    • Pass filter params to getApiDocument (https://github.com/flarum/core/pull/3037)
    • Use author filter instead of gambit to get a user's discussions (https://github.com/flarum/core/pull/3068)
    • [A11Y] Accessibility improvements for the Search component (https://github.com/flarum/core/pull/3017)
    • Add determinsm to extension order resolution (https://github.com/flarum/core/pull/3076)
    • Add cache control headers to the admin area (https://github.com/flarum/core/pull/3097)

    Fixed

    • HLJS 11 new styles resulting in double padding (https://github.com/flarum/core/pull/2909)
    • Internal API client attempting to load an uninstantiated session
    • Empty post footer taking visual space (https://github.com/flarum/core/pull/2926)
    • Unrecognized component class custom attribute typings (https://github.com/flarum/core/pull/2962)
    • User edit groups permission not visually depending on view hidden groups permission (https://github.com/flarum/core/pull/2880)
    • Event post excerpt preview triggers error (https://github.com/flarum/core/pull/2964)
    • Missing settings defaults for display name driver and User slug driver (https://github.com/flarum/core/pull/2971)
    • [A11Y] Icons not hidden from screenreaders (https://github.com/flarum/core/pull/3027)
    • [A11Y] Checkboxes not focusable (https://github.com/flarum/core/pull/3014)
    • Uploading ICO favicons resulting in server errors (https://github.com/flarum/core/pull/2949)
    • Missing proper validation for large avatar upload payload (https://github.com/flarum/core/pull/3042)
    • [A11Y] Missing focus rings in control elements (https://github.com/flarum/core/pull/3016)
    • Unsanitised integer query parameters (https://github.com/flarum/core/pull/3064)
    Code Contributors

    @lhsazevedo, @Ornanovitch, @pierres, @the-turk, @iPurpl3x

    Issue Reporters

    @uamv, @dannyuk1982, @BurnNoticeSpy, @haarp, @peopleinside, @matteocontrini

    Source code(tar.gz)
    Source code(zip)
  • v1.0.4(Jun 28, 2021)

  • v1.0.3(Jun 22, 2021)

    Changed

    • Removed [forum] prefix from Request Password and Email Confirmation emails (a4a81c0)
    • Adopt huntr.dev for handling our security vulnerability reports (https://github.com/flarum/core/pull/2918)
    • Maintenance handler can now be replaced through the service container (ioc) (4acff91)
    • The colors on the auto generated avatars are now based on the Display Name of the user (https://github.com/flarum/core/pull/2873)

    Fixed

    • Avatar in notifications list are incorrectly aligned (https://github.com/flarum/core/pull/2906)
    • FilesystemManager is not compatible with upstream Laravel implementation (https://github.com/flarum/core/pull/2936)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Jun 6, 2021)

  • v1.0.1(Jun 2, 2021)

    Fixed

    • Installation fails on environments without proc_* functions enabled or mysql client binary (https://github.com/flarum/core/issues/2890)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(May 27, 2021)

    Added

    • Task scheduling
    • load() method on ApiController extender to allow eager loading of relations (https://github.com/flarum/core/pull/2724)
    • Installation supports enabling a set of extensions (https://github.com/flarum/core/pull/2757)
    • RequestUtil helper class added to abstract the logic of the actor, session, locale and route name from the request (https://github.com/flarum/core/pull/2449)
    • Code scanning action with GitHub CodeQL (https://github.com/flarum/core/pull/2744)
    • The Formatter extender now has an unparse method to allow extensions to hook into the unparsing of content (https://github.com/flarum/core/pull/2780)
    • A Filesystem extender allows direct modification and addition of filesystem disks (https://github.com/flarum/core/pull/2732)
    • A slug driver based on the User ID was introduced (https://github.com/flarum/core/pull/2787)
    • An extensible users list was added to the admin area (https://github.com/flarum/core/pull/2626)
    • Headers hardened by adding Referer Policy, Xss Protection and Content type (https://github.com/flarum/core/pull/2721)
    • Tooltip component (https://github.com/flarum/core/pull/2843)
    • Moved insertText and styleSelectedText from markdown to core (https://github.com/flarum/core/pull/2826)
    • A squashed database schema install dump to speed up new installs (https://github.com/flarum/core/pull/2842)
    • Pagination in the canonical URL for discussion pages (https://github.com/flarum/core/pull/2853)
    • PaginatedListState for the DiscussionList and to support paginated lists in the frontend (https://github.com/flarum/core/pull/2781)
    • Introduce the new webpack config and flarum-tsconfig for typehinting (https://github.com/flarum/core/pull/2856)

    Changed

    • Now tracking bundle sizes to keep an eye on web performance (https://github.com/flarum/core/pull/2695)
    • Eager load relations on ListPostsController to improve performance (https://github.com/flarum/core/pull/2717)
    • Replace classList with clsx library (https://github.com/flarum/core/pull/2760)
    • Replaced the javascript based loading spinner with a pure CSS version (https://github.com/flarum/core/pull/2764)
    • Route names now have to be unique (https://github.com/flarum/core/pull/2771)
    • ActorReference is now available from the error handler middleware (https://github.com/flarum/core/pull/2410)
    • The migrations table now has an Auto Increment ID (https://github.com/flarum/core/pull/2794)
    • Assets and avatars are now managed using Laravel filesystem disks (https://github.com/flarum/core/pull/2729)
    • Extracted asset publishing (php flarum assets:publish) from migrating (https://github.com/flarum/core/pull/2731)
    • Assets were compiled in the format <asset>-<revision>.<js|css>, this is now <asset>.<js|css>?v=<revision> (https://github.com/flarum/core/pull/2805)
    • The powered by header can now be configured in the config under headers (https://github.com/flarum/core/pull/2777)
    • Switched to the ICU format for translation files (https://github.com/flarum/core/pull/2759)
    • Allow extend and override to apply to multiple methods in one call
    • Notifications dropdown and list refactored (https://github.com/flarum/core/pull/2822)
    • Updated validation locale strings based on Laravel 8 changes (https://github.com/flarum/core/pull/2829)
    • Caching of permissions is now taken care of centrally, reducing code duplication (https://github.com/flarum/core/pull/2832)
    • Replaced lodash-es by throttle-debounce to reduce bundle size (https://github.com/flarum/core/pull/2827)
    • Internal API requests are now executed through middleware (https://github.com/flarum/core/pull/2783)
    • Permission changes: viewDiscussions to viewForum and viewUserList to searchUsers (https://github.com/flarum/core/pull/2854)

    Fixes

    • Javascript is shown when editing the title of a discussion (https://github.com/flarum/core/pull/2693)
    • Canonical url logic uses request object which causes wrong URL's when a different page is default (https://github.com/flarum/core/pull/2674)
    • Dropdown toggle has no aria label (https://github.com/flarum/core/pull/2668)
    • Nav drawer is focusable when off-screen on small viewports (https://github.com/flarum/core/pull/2666)
    • Search input has no aria-label and no role (https://github.com/flarum/core/pull/2669)
    • Code duplication exists between SendConfirmationEmailController and AccountActivationMailer (https://github.com/flarum/core/pull/2493)
    • When setting tags as homepage default, visiting a tag will show all posts (https://github.com/flarum/core/pull/2754)
    • Locale cache is cleared twice when cache clearing (https://github.com/flarum/core/pull/2738)
    • When cache clearing fails an exception can be thrown due to a partial flush (https://github.com/flarum/core/pull/2756)
    • Database migrations rely on MyISAM even though the eventual migrated database does not use it (https://github.com/flarum/core/pull/2442)
    • Discussion search result is not sorted by relevance by default (https://github.com/flarum/core/pull/2773)
    • Extensions cannot register custom searcher classes (https://github.com/flarum/core/pull/2755)
    • Searching discussion titles is not possible (https://github.com/flarum/core/pull/2698)
    • Boot errors due to failing extenders throw a generic error (https://github.com/flarum/core/pull/2740)
    • Required argument to Component.$() isn't really required (https://github.com/flarum/core/pull/2844)
    • Component does not allows use of all mithril lifecycle functionality (https://github.com/flarum/core/pull/2847)

    Removed

    • The make:migration command has been removed (https://github.com/flarum/core/pull/2686)
    • Background fade on the header has been removed (https://github.com/flarum/core/pull/2685)
    • Remove vendor prefixes in less (https://github.com/flarum/core/pull/2766)
    • The session is no longer available from the User class (https://github.com/flarum/core/pull/2790)
    • The mail key is removed from the laravel related config (https://github.com/flarum/core/pull/2796)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.16(Mar 15, 2021)

    Added

    • Allow event subscribers (https://github.com/flarum/core/pull/2535)
    • Allow Settings extender to have a default value (https://github.com/flarum/core/pull/2495)
    • Allow hooking into the sending of notifications before being send (https://github.com/flarum/core/pull/2533)
    • PHP 8 support (https://github.com/flarum/core/pull/2507)
    • Search extender (https://github.com/flarum/core/pull/2483)
    • User badges to post preview (https://github.com/flarum/core/pull/2555)
    • Optional extension dependencies allow a booting order (https://github.com/flarum/core/pull/2579)
    • Auth extender (https://github.com/flarum/core/pull/2176)
    • X-Powered-By header added to allow indexers easier data aggregation of Flarum adoption (https://github.com/flarum/core/pull/2618)

    Changed

    • Run integration tests in transaction (https://github.com/flarum/core/pull/2304)
    • Allow policies to return a boolean for simplified allow/deny (https://github.com/flarum/core/pull/2534)
    • Converted highlight helper to typescript (https://github.com/flarum/core/pull/2532)
    • Add accessibility attributes to Mark as Read button (https://github.com/flarum/core/pull/2564)
    • Dismiss errors on change email modal upon a new request (00913d5)
    • Disabled extensions now are marked with a red circle instead of a red dot (https://github.com/flarum/core/pull/2562)
    • Extension dependency errors now show the extension title instead of the ID (https://github.com/flarum/core/pull/2563)
    • Change mutate method on ApiSerializer extender to attributes (https://github.com/flarum/core/pull/2578)
    • Moved locale files to the core from the language pack (https://github.com/flarum/core/pull/2408)
    • AdminPage extensibility and generic improvements (https://github.com/flarum/core/pull/2593)
    • Remove entry of authors, link to https://flarum.org/team (https://github.com/flarum/core/pull/2625)
    • Search and filtering are split (https://github.com/flarum/core/pull/2454)
    • Move IP identification into a middleware (https://github.com/flarum/core/pull/2624)
    • Editor Driver abstraction introduced (https://github.com/flarum/core/pull/2594)
    • Allow overriding routes (https://github.com/flarum/core/pull/2577)
    • Split user edit permissions into permissions for editing of user credentials, username, groups and suspending (https://github.com/flarum/core/pull/2620)
    • Reduced number of admin extension categories (https://github.com/flarum/core/pull/2604)
    • Move search related classes to a dedicated Query namespace (https://github.com/flarum/core/pull/2645)
    • Rewrite common helpers into typescript (https://github.com/flarum/core/pull/2541)
    • TextEditor is moved to the common namespace for use in the admin frontend (https://github.com/flarum/core/pull/2649)
    • Update Laravel/Illuminate components to 8 (https://github.com/flarum/core/pull/2576)
    • Eager load relations in discussion listing to improve performance (https://github.com/flarum/core/pull/2639)
    • Adopt flarum/testing package (https://github.com/flarum/core/pull/2545)
    • Replace user gambit with author gambit (612a57c)
    • Posts page of on user profile loads posts using username instead of id (30017ee)

    Fixed

    • Transform css breaks iOS scroll functionality (https://github.com/flarum/core/pull/2527)
    • Composer header is hidden on mobile devices (https://github.com/flarum/core/pull/2279)
    • Cannot delete a post or discussion of a deleted user (https://github.com/flarum/core/pull/2521)
    • DiscussionListPane jumps around not keeping the scroll position (https://github.com/flarum/core/pull/2402)
    • Infinite scroll on notifications dropdown broken (https://github.com/flarum/core/pull/2524)
    • The show language selector switch remains toggled on (9347b12)
    • Model Visibility extender throws exception on extensions that aren't installed or enabled (https://github.com/flarum/core/pull/2580)
    • Extensions are marked as enabled when enabling fails to unmet extension dependencies (https://github.com/flarum/core/pull/2558)
    • Routes to admin extension pages without a valid ID break the admin page (https://github.com/flarum/core/pull/2584)
    • Disabled fieldset use an incorrect CSS property disallowed (https://github.com/flarum/core/pull/2585)
    • Scrolling to a post that is already loaded the Load More button shows and does not trigger (https://github.com/flarum/core/pull/2388)
    • Opening discussions on some mobile devices require a double tap (https://github.com/flarum/core/pull/2607)
    • iOS devices show erratic behavior in the post stream while updating (https://github.com/flarum/core/pull/2548)
    • Small mobile screens partially hides the composer when the keyboard is open (https://github.com/flarum/core/pull/2631)
    • Clearing cache does not clear the template cache in storage/views (https://github.com/flarum/core/pull/2648)
    • Boot errors show critical information (https://github.com/flarum/core/pull/2633)
    • List user endpoint discloses last online even if user choose against it (https://github.com/flarum/core/pull/2634)
    • Group gambit disclosed hidden groups (https://github.com/flarum/core/pull/2657)
    • Search results on small windows not fully visible (https://github.com/flarum/core/pull/2650)
    • Composer goes off screen on Safari when starting to type (https://github.com/flarum/core/pull/2660)
    • A search that has no results shows the search results dropdown (b88a7cb)
    • The composer modal moves around when typing on Safari (a64c398)

    Removed

    • Deprecated CSRF wildcard path match
    • Deprecated policy and visibility scoping events
    • Deprecated post types event
    • Deprecated validation events
    • Deprecated notification events
    • Deprecated floodgate
    • Deprecated user preferences event
    • Deprecated formatting events
    • Deprecated api events
    • Deprecated bootstrap.php support
    • PHP 7.2 support (https://github.com/flarum/core/pull/2507)
    • Bidi attribute in the rendered HTML (https://github.com/flarum/core/pull/2602)
    • AccessToken::find, use AccessToken::findValid instead (https://github.com/flarum/core/pull/2651)

    Deprecated

    • GetModelIsPrivate event (https://github.com/flarum/core/pull/2587)
    • CheckingPassword event (https://github.com/flarum/core/pull/2176)
    • event() helper (https://github.com/flarum/core/pull/2608)
    • AccessToken::generate argument $lifetime (https://github.com/flarum/core/pull/2651)
    • Rememberer::remember argument $token should receive an instance of RememberAccessToken with AccessToken being deprecated (https://github.com/flarum/core/pull/2651)
    • Rememberer::rememberUser (https://github.com/flarum/core/pull/2651)
    • SessionAuthenticator::logIn argument $userId, should be replaced with AccessToken (https://github.com/flarum/core/pull/2651)
    • TextEditor has been moved to common (https://github.com/flarum/core/pull/2649)
    • UserFilter (91e8b56)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.15(Dec 20, 2020)

    Added

    • Slug drivers support (https://github.com/flarum/core/pull/2456).
    • Notification type extender (https://github.com/flarum/core/pull/2424).
    • Validation extender (https://github.com/flarum/core/pull/2102).
    • Post extender (https://github.com/flarum/core/pull/2101).
    • Notification channel extender (https://github.com/flarum/core/pull/2432).
    • Service provider extender (https://github.com/flarum/core/pull/2437).
    • API serializer extender (https://github.com/flarum/core/pull/2438).
    • User preferences extender (https://github.com/flarum/core/pull/2463).
    • Settings extender (https://github.com/flarum/core/pull/2452).
    • ApiController extender (https://github.com/flarum/core/pull/2451).
    • Model visibility extender (https://github.com/flarum/core/pull/2460).
    • Policy extender (https://github.com/flarum/core/pull/2461).

    Changed

    • Time helpers converted to Typescript (https://github.com/flarum/core/pull/2391).
    • Improved the formatter extender (https://github.com/flarum/core/pull/2098).
    • Improve wording on installer when facing file permission issues (https://github.com/flarum/core/pull/2435).
    • Background color of checkbox toggles improved for better usability (https://github.com/flarum/core/pull/2443).
    • Route resolving refactored (https://github.com/flarum/core/pull/2425).
    • Administration panel UX refactored (https://github.com/flarum/core/pull/2409).
    • Floodgate moved to middleware and extender added (https://github.com/flarum/core/pull/2170).
    • DRY up image uploading logic (https://github.com/flarum/core/pull/2477).
    • Process isolation on testing (https://github.com/flarum/core/commit/984f751c718c89501cc09857bc271efa2c7eea8c).
    • Forum and admin javascript exports namespaced (https://github.com/flarum/core/pull/2488).

    Fixed

    • Web updater does not take into account subfolder installations (https://github.com/flarum/core/pull/2426).
    • Callables handling in extenders failed (https://github.com/flarum/core/pull/2423).
    • Scrolling on mobile from PostSteam changes didn't work correctly (https://github.com/flarum/core/pull/2385).
    • Side pane covers part of the discussion page due to app.discussions being empty (https://github.com/flarum/core/commit/102e76b084bf47fdfb4c73f95e1fbb322537f7aa).
    • Change email modal keeps showing the previous error message even on success (https://github.com/flarum/core/pull/2467).
    • Comment count not updated when discussions are deleted (https://github.com/flarum/core/pull/2472).
    • goToIndex in PostStream does not trigger an xhr to retrieve new data (https://github.com/flarum/core/commit/09e2736cbcc267594b660beabbd001d9030f9880).
    • On refresh the post number is reduced by one (https://github.com/flarum/core/pull/2476).
    • Queue worker would instantiate a new Queue factory, not the bound one (https://github.com/flarum/core/pull/2481).
    • Header accidentally has a border bottom (https://github.com/flarum/core/pull/2489).
    • Namespace mentioned in docblock is incorrect (https://github.com/flarum/core/pull/2494).
    • Scrolling inside longer discussions (especially Firefox) skips posts (https://github.com/flarum/core/commit/210a6b3e253d7917bd1eacd3ed8d2f95073ae99d).
    • Uploading avatars that are jpg/jpeg fails with a validation error (https://github.com/flarum/core/pull/2497).

    Removed

    • MomentJS alias (https://github.com/flarum/core/pull/2428).
    • Deprecated user events GetDisplayName and PrepareUserGroups (https://github.com/flarum/core/pull/2428).
    • AssertPermissionTrait (https://github.com/flarum/core/pull/2428).
    • Path related helpers and methods in Application (https://github.com/flarum/core/pull/2428).
    • Backward compatibility layers from the frontend rewrite (https://github.com/flarum/core/pull/2428).

    Deprecated

    • CheckingForFlooding (https://github.com/flarum/core/commit/8e25bcb68f86cc992c46dfa70368419fe9f936ac).
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.14(Oct 20, 2020)

    Cairns Birdwing

    Added

    • Check dependencies before enabling / disabling extensions (https://github.com/flarum/core/pull/2188)
    • Set up temporary infrastructure for TypeScript in core (https://github.com/flarum/core/pull/2206)
    • Better UI for request error modals (https://github.com/flarum/core/pull/1929)
    • Display name extender, tests, frontend UI (https://github.com/flarum/core/pull/2174)
    • Scroll to post or show alert when editing a post from another page (https://github.com/flarum/core/pull/2108)
    • Feature to test email config by sending an email to the current user (https://github.com/flarum/core/pull/2023)
    • Allow searching users by group ID using the group gambit (https://github.com/flarum/core/pull/2192)
    • Use liveHumanTimes helper to update times without reload/rerender (https://github.com/flarum/core/pull/2208)
    • View extender, tests (https://github.com/flarum/core/pull/2134)
    • User extender to replace PrepareUserGroups (https://github.com/flarum/core/pull/2110)
    • Increase extensibility of skeleton PHP (https://github.com/flarum/core/pull/2308, https://github.com/flarum/core/pull/2318)
    • Pass a translator instance to getEmailSubject in MailableInterface (https://github.com/flarum/core/pull/2244)
    • Force LF line endings on windows (https://github.com/flarum/core/pull/2321)
    • Add a Link component for internal and external links (https://github.com/flarum/core/pull/2315)
    • ConfirmDocumentUnload component
    • Error handler middleware can now be manipulated by the middleware extender

    Changed

    • Update to Mithril 2 (https://github.com/flarum/core/pull/2255)
    • Stop storing component instances (https://github.com/flarum/core/issues/1821, https://github.com/flarum/core/issues/2144)
    • Update to Laravel 6.x (https://github.com/flarum/core/issues/2055)
    • Flarum\Foundation\Application no longer implements Illuminate\Contracts\Foundation\Application (#2142)
    • Flarum\Foundation\Application no longer inherits Illuminate\Container\Container (#2142)
    • paths have been split off from Flarum\Foundation\Application into Flarum\Foundation\Paths, which can be injected where needed (#2142)
    • Flarum\User\Gate no longer implements Illuminate\Contracts\Auth\Access\Gate (https://github.com/flarum/core/pull/2181)
    • Improve Group Gambit performance (https://github.com/flarum/core/pull/2192)
    • Switch to dayjs from momentjs (https://github.com/flarum/core/pull/2219)
    • Don't create a bio column in users for new installations (https://github.com/flarum/core/pull/2215)
    • Start converting core JS to TypeScript (https://github.com/flarum/core/pull/2207)
    • Make Carbon an explicit dependency (https://github.com/flarum/core/commit/3b39c212e0fef7522e7d541a9214ff3817138d5d)
    • Use Symfony's translator interface instead of Laravel's (https://github.com/flarum/core/pull/2243)
    • Use newer versions of fontawesome (https://github.com/flarum/core/pull/2274)
    • Use URL generator instead of app()->url() where possible (https://github.com/flarum/core/pull/2302)
    • Move config from config.php into an injectable helper class (https://github.com/flarum/core/pull/2271)
    • Use reserved TLD for bogus and test urls (https://github.com/flarum/core/commit/6860b24b70bd04544dde90e537ce021a5fc5a689)
    • Replace m.stream with flarum/utils/Stream (https://github.com/flarum/core/pull/2316)
    • Replace affixedSidebar util with AffixedSidebar component
    • Replace m.withAttr with flarum/utils/withAttr
    • Scroll Listener is now passive, performance improvement (https://github.com/flarum/core/pull/2387)

    Fixed

    • generate:migration command for extensions (https://github.com/flarum/core/commit/443949f7b9d7558dbc1e0994cb898cbac59bec87)
    • Container config for UninstalledSite (https://github.com/flarum/core/commit/ecdce44d555dd36a365fd472b2916e677ef173cf)
    • Tooltip glitch on page chang (https://github.com/flarum/core/issues/2118)
    • Using multiple extenders in tests (https://github.com/flarum/core/commit/c4f4f218bf4b175a30880b807f9ccb1a37a25330)
    • Header glitch when opening modals (https://github.com/flarum/core/pull/2131)
    • Ensure SameSite is explicitly set for cookies (https://github.com/flarum/core/pull/2159)
    • Ensure Flarum\User\Event\AvatarChanged event is properly dispatched (https://github.com/flarum/core/pull/2197)
    • Show correct error message on wrong password when changing email (https://github.com/flarum/core/pull/2171)
    • Discussion unreadCount could be higher than commentCount if posts deleted (https://github.com/flarum/core/pull/2195)
    • Don't show page title on the default route (https://github.com/flarum/core/pull/2047)
    • Add page title to All Discussions page when it isn't the default route (https://github.com/flarum/core/pull/2047)
    • Accept '0' as false for flarum/components/Checkbox (https://github.com/flarum/core/pull/2210)
    • Fix PostStreamScrubber background (https://github.com/flarum/core/pull/2222)
    • Test port on BaseUrl tests (https://github.com/flarum/core/pull/2226)
    • UrlGenerator can now generate urls with optional parameters (https://github.com/flarum/core/pull/2246)
    • Allow less to be compiled independently of Flarum (https://github.com/flarum/core/pull/2252)
    • Use correct number abbreviation (https://github.com/flarum/core/pull/2261)
    • Ensure avatar html uses alt tags for accessibility (https://github.com/flarum/core/pull/2269)
    • Escape regex when searching (https://github.com/flarum/core/pull/2273)
    • Remove unneeded semicolons inserted during JS compilation (https://github.com/flarum/core/pull/2280)
    • Don't require a username/password for SMTP (https://github.com/flarum/core/pull/2287)
    • Allow uppercase entries for SMTP encryption validation (https://github.com/flarum/core/pull/2289)
    • Ensure that the right number of posts is returned from list posts API (https://github.com/flarum/core/pull/2291)
    • Fix a variety of PostStream bugs (https://github.com/flarum/core/pull/2160, https://github.com/flarum/core/pull/2160)
    • Sliding discussion glitch on mobile (https://github.com/flarum/core/pull/2324)
    • Sliding discussion button in wrong place (https://github.com/flarum/core/pull/2330, https://github.com/flarum/core/pull/2383)
    • Sliding discussion glitch on mobile (https://github.com/flarum/core/pull/2381)
    • Fix PostStream for posts with top margins, and scrubber position when scrolling below posts (https://github.com/flarum/core/pull/2369)

    Removed

    • Flarum\Event\AbstractConfigureRoutes event class
    • Flarum\Event\ConfigureApiRoutes event class
    • Flarum\Event\ConfigureForumRoutes event class
    • Flarum\Console\Event\Configuring event class
    • Flarum\Event\ConfigureModelDates event class
    • Flarum\Event\ConfigureLocales event class
    • Flarum\Event\ConfigureModelDefaultAttributes event class
    • Flarum\Event\GetModelRelationship event class
    • Flarum\User\Event\BioChanged event class
    • Flarum\Database\MigrationServiceProvider moved into Flarum\Database\DatabaseServiceProvider
    • Unused admin/components/Widget component (admin/component/DashboardWidget should be used instead)
    • Mandrill mail driver (https://github.com/flarum/core/commit/bca833d3f1c34d45d95bf905902368a2753b8908)

    Deprecated

    • Flarum\User\Event\GetDisplayName event class
    • Global path helpers, Flarum\Foundation\Application path methods (https://github.com/flarum/core/pull/2155)
    • Flarum\User\AssertPermissionTrait (https://github.com/flarum/core/pull/2044)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.13(May 6, 2020)

    Flying Fox

    Added

    • Console extender (#2057)
    • CSRF extender (#2095)
    • Event extender (#2097)
    • Mail extender (#2012)
    • Model extender (#2100)
    • Posts by users that started a discussion now have the CSS class .Post--by-start-user
    • PHPUnit 8 compatibility
    • Composer 2 compatibility
    • Permission groups can now be hidden (#2129)
    • Confirmation popup when hiding or deleting posts (#2135)

    Changed

    • Updated less.php dependency version to 3.0
    • Updated JS dependencies
    • All notifications and other emails now processed through the queue, if enabled (#978, #1928, #1931, #2096)
    • Simplified uploads, removing need to store intermediate files (#2117)
    • Improved date handling for dates older than 1 year (#2034)
    • Linting and automatic formatting for JS (#2099)
    • Translation files from Language Packs are only loaded for extensions that are enabled (#2020)
    • PHP extenders' properties are now private instead of protected, intentionally making it harder to extend these classes (#1958)
    • Preparation for upgrading Laravel components to 5.8 and then 6.0 (#2055, #2117)
    • Allowed permission checks based on model classes in addition to instances (#1977)

    Fixed

    • Users can no longer restore discussions hidden by admins (#2037)
    • Issues of the Modal not showing or auto hiding (#1504, #1813, #2080)
    • Columnar layout on admin extensions page was broken in Firefox (#2029, #2111)
    • Non-dismissible modals could still be dismissed using the ESC key (#1917)
    • New discussions were added to the discussion list above unread sticky posts (#1751, #1868)
    • New discussions not visible to users when using Pusher (#2076, #2077)
    • Permission icons were aligned unevenly in admin permissions list (#2016, #2018)
    • Notification bubble not inversed on mobile with colored header (#1983, #2109)
    • Post stream scrubber clicks jumped back to first post (#1945)
    • Loading state of Switch toggle component was hard to see (#2039, #1491)
    • Flarum\Extend\Middleware: The methods insertBefore() and insertAfter() did not work as described (#2063, #2084)

    Removed

    • Support for PHP 7.1 (#2014)
    • Zend compatibility bridge (#2010)
    • SES mail support (#2011)
    • Backward compatibility layer for Flarum\Mail\DriverInterface, new methods from beta.12 are now required
    • Flarum\Util\Str helper class
    • Flarum\Event\ConfigureMiddleware event

    Deprecated

    • Flarum\Event\AbstractConfigureRoutes event class
    • Flarum\Event\ConfigureApiRoutes event class
    • Flarum\Event\ConfigureForumRoutes event class
    • Flarum\Event\ConfigureLocales event class
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.12(Mar 4, 2020)

    Koala Relief

    Added

    • Full support for PHP 7.4 (#1980)
    • Mail settings: Configure region for the Mailgun driver (#1834, #1850)
    • Mail settings: Alert admins about incomplete settings (#1763, #1921)
    • New permission that allows users to post without throttling (#1255, #1938)
    • Basic transliteration of discussion "slugs" / pretty URLs (#194, #1975)
    • User profiles: Render basic content on server side (#1901)
    • New extender for configuring middleware (#1919, #1952, #1957, #1971)
    • New extender for configuring error handling (#1781, #1970)
    • Automated tests for PHP extenders to guarantee their backwards compatibility

    Changed

    • Profile URLs for non-existing users properly return HTTP 404 (#1846, #1901)
    • Confirmation email subject no longer contains the forum title (#1613)
    • Improved error handling during Flarum's early boot phase (#1607)
    • Updated deprecated "Zend" libraries to their new "Laminas" equivalents (#1963)

    Fixed

    • Update page did not work when installed in subdirectories (#1947)
    • Avatar upload did not work in IE11 / Edge (#1125, #1570)
    • Translation fallback was ignored for client-rendered pages (#1774, #1961)
    • The success alert when posting replies was invisible (#1976)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.11.1(Jun 26, 2020)

  • v0.1.0-beta.11(Nov 28, 2019)

    Redback Spider

    Added

    • Comments have an additional class Post--by-actor when posted by the user (#1927)

    Changed

    • Improved support for URL identification during installation (#1861)
    • KeyboardNavigatable now has a callback ability (#1922)
    • Links are no longer opened with target _blank but in the same window (#859)
    • Links now have nofollow ugc by default as their rel attribute (#859, #1884)
    • Improved performance of the full text gambit when searching for users (#1877)
    • The Queue implementation is now available under its Illuminate contract

    Fixed

    • No error handling was possible in the console/cli (#1789)
    • Enable scrollbars in log in modals so it fits for GitHub (#1716)
    • Reduce log in modal for SSO so it fits for Facebook (#1727)
    • Deleting discussions permanently did not delete its posts (#1909)
    • Fixed the queue:restart command (#1932)
    • Deleted posts were visible to all visitors (#1827)
    • Old avatars weren't being deleted when replaced (#1918)
    • The search performance regression was reverted (#1764)
    • No profile background could be set for remote images (#445)
    • Back button sends to home even though it could actually go back (#1942)
    • Debug button no longer visible (#1687)
    • Modals on smaller screens use the whole width of the page
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.10(Sep 16, 2019)

    New Holland

    Added

    • Initial queue support: Infrastructure for offloading long-running tasks (e.g. email sending) to background workers (#1773)
    • Notifications can now be marked as read without visiting a discussion (#151)
    • SEO: The discussion list now has a rel="canonical" meta tag, preventing duplicate content (#1134, #1814)
    • The "Edit User" permission can now be edited in the UI (#1845)
    • New status message and redirect after user deletion (#1750, #1777)
    • Errors in Flarum's boot process are now presented with more detailed information (#1607)

    Changed

    • Better, more detailed and extensible error handling (#1641, #1843)
    • Error pages in debug mode now return the same HTTP status codes as in production (#1648)
    • Tweak HTTP status codes for authentication / authorization errors (#1854)
    • Already-used links from account activation emails now show a better error message (#1337)

    Fixed

    • Security vulnerabilities in dependencies
    • Performance: High CPU usage when scrolling in a discussion (#1222)
    • Special characters crashed the search (#1498)
    • Missing declarations for language and text direction in HTML output (#1772)
    • Private messages were counted in user post counts (#1695)
    • Extensions could not change the forum's default page (#1819)
    • API requests authenticated using access tokens needed to provide a CSRF token (#1828)
    • Accessibility: Screenreaders did not read the "Back to discussion list" link (#1835)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.9(Jul 5, 2019)

    Leafy Seadragon

    See the release announcement.

    Added

    • New hasPermission() helper method for Group objects (9684fbc)
    • Expose supported mail drivers in IoC container (208bad3)
    • More test for some API endpoints (1670590)
    • The Formatter\Rendering event now receives the HTTP request instance as well (0ab9fac)
    • More and better validation in installer UIs
    • Check and enforce minimum MariaDB (7ff9a90)
    • Revert publication of assets when installation fails (ed9591c)
    • Benefit from Laravel's database reconnection logic in long-running tasks (e0becd0)
    • The "vendor path" (where Composer dependencies can be found) can now be configured (5e1680c)

    Changed

    • Performance: Actually cache translations on disk (0d16fac)
    • Allow per-site extenders to override extension extenders (ba594de)
    • Do not resolve objects from the IoC container (in service providers and extenders) until they are actually used
    • Replace event subscribers (that resolve objects from the IoC container) with listeners (that resolve lazily)
    • Use custom service provider for Mail component (ac5e26a)
    • Update to Laravel 5.7, revert custom logic for building database index names
    • Refactored installer, extracted Installation class and pipeline for reuse in CLI and web installers (790d5be)
    • Use whitelist for enabling pre-installed extensions during installation (4585f03)
    • Update minimum MySQL version (7ff9a90)

    Fixed

    • Signing up via OAuth providers was broken (67f9375)
    • Group badges were overlapping (16eb1fa)
    • API: Endpoint for uninstalling extensions returned an error (c761802)
    • Documentation links in installer were outdated (b58380e)
    • Event posts where counted when aggregating user posts (671fdec)
    • Admins could not reset user passwords (c67fb2d)
    • Several down migrations were invalid
    • Validation errors on reset password page resulted in HTTP 404 (4611abe)
    • is:unread gambit generated an invalid query (e17bb0b)
    • Entire forum was breaking when the custom_less setting was missing from the database (bf2c5a5)
    • Dropdown icon was not showing in user card when on user page (12fdfc9)
    • Requests were missing the original* attributes, which broke installations in subfolders (56fde28)
    • Special characters such as % and _ could return incorrect results (ee3640e)
    • FontAwesome component package changed paths in version 5.9.0 (5eb69e1)
    • Some server environments had problems accessing the system-wide tmp path for storing JS file maps (54660eb)
    • Content length of posts.content was not migrated to mediumText in 2017 (590b311)
    • An error occurred when going to the previous route if there was no previous route found (985b87da)

    Removed

    • php flarum install --defaults - this was meant to be used in our old development VM (44c9109)
    • Obsolete id attributes in JSON-API responses (ecc3b5e and 7a44086)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.8.2(Jun 26, 2020)

  • v0.1.0-beta.8.1(Jun 26, 2020)

    Stability fixes for the beta.8 line

    Fixed

    • InnoDB is now specified as the default table type to prevent SQL errors on foreign keys
    • Setting a meta description in the admin Basics tab will no longer generate an empty tag
    • If Likes fail to load properly, a discussion page will still function and not crash
    • Pusher is now functional again when creating new discussions
    • Admin users created by installation will have a valid join date
    • Searching the text inside posts will now work even with a database prefix
    • php flarum migrate:reset commands will now run without warnings

    See https://discuss.flarum.org/d/17745-flarum-0-1-0-beta-8-released/128.

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.8(Nov 29, 2018)

    See the release announcement.

    Added

    • PHP Extender API (docs)
    • Add ItemList#isEmpty method (#1218)
    • Allow setting the raw content of a CommentPost (084f749)
    • Allow full URLs to be used as the avatar path (c31c1ea)
    • Add user display names API (#1246)
    • Add apiKey request attribute (096e552)
    • Allow configuring cookie attributes (87bf84e)
    • Add LESS variable to configure expansion of sideNav dropdowns (2754a8c)
    • Add drag and drop avatar uploading (#1261)
    • New design for Reset Password page (9392e1b)
    • Add log out confirmation if CSRF token is invalid (e8a4e5e)
    • New design for error pages (b7c1cc5)
    • Basic implementation of admin dashboard widgets (1ef9217)
    • Add infinite scrolling in the notifications list (77c25ab)
    • Add custom footer HTML setting (#1315)
    • Automatically load an extend.php file at the forum root (#1559)
    • Add console configuration event (#1349)
    • Improve search performance and design (#1339, 7e95b80)
    • Allow notification methods to be extended (#1361)
    • Add flarum migrate:reset command (#1363)
    • Add message to exceptions thrown in DispatchRoute middleware (#1376)
    • Warn about debug mode in flarum info command (0cf351e, 5374f8a)
    • JS Extender API foundation (#1468)
    • Add support for JS sourcemaps (#1471)
    • Add canonical URL to discussion HTML (551ca23)
    • Add event to override floodgate behaviour (#1411)
    • Use ItemList for signup and login modals (#1420)
    • Display extensions in a table in flarum info command (#1562)
    • Add oldUsername parameter to User\Event\Renamed (#1563)
    • Live output of migrator notes in console (9e487b4)
    • Use ItemList for edit group modal (#1625)
    • Use ItemList for edit user modal (#1593)
    • Track API key last activity and allow keys to reference specific users (#1622)
    • Add a toolbar area to the TextEditor component (c13dfa2)
    • Add a tooltip to the Preview button (bf3934d)
    • Add database indices (#1577)
    • Log errors that occur in the API stack (222e3c3)
    • Add "clear cache" button to admin dashboard (2ef66ac)
    • New extensions page layout (#1496)

    Changed

    • Upgrade to Laravel 5.5 (#1252)
    • PHP namespace restructure (#1308)
    • Performance: Don't include post content in the "basic" serializer (37cf95f)
    • Only apply custom CSS and header HTML on forum frontend, not admin (40ebc13)
    • Performance: Load only basic information about terminal/relevant posts (dedcbae)
    • Performance: Load only basic information about post discussion/users (3c80612)
    • Organise views into directories (479e44d)
    • Use more sensible installation default data (b760d11)
    • Manage Composer height with overridable methods (#1272)
    • Rename AbstractPolicy::after to can to reflect removal of event priorities (ae2e07e)
    • Overhaul model visibility scoping (#1342)
    • Remove - separator in discussion URL if there is no slug (#1351)
    • API: Provide forum info under / (f0cea11)
    • Upgrade to Font Awesome 5 (#1372)
    • Upgrade to zend-stratigility v2.2 (9d30be1)
    • Use Illuminate Session component instead of Symfony (#1366)
    • Use PSR-15 middleware standard (#1441, #1443)
    • Simplify interface of migration-related classes (#1445)
    • Rename Api\Controller\TokenController to CreateTokenController (#1451)
    • Replace gulp with webpack and npm scripts for JS compilation (#1367)
    • Rename database columns and JSON-API attributes (#1344)
    • Refactor frontend code (#1471, edaca31)
    • Remove need for page reload if JS application will not boot (#1471)
    • Split permission for editing and deleting posts (#1466)
    • Upgrade to TextFormatter 1.2 (#1457)
    • Require PHP 7.1 (0278d52)
    • Rename extension bootstrap.php to extend.php (#1556)
    • Use default system font instead of Open Sans (07298e1)
    • Change composer submit button icon to paper plane (bf3934d)
    • New heading styles in posts (6fadc0b)

    Removed

    • Remove user bio feature (#1214)
    • Remove FastClick (a8826dc)
    • Remove server-side JavaScript minification, because it is done by Webpack (#1471)
    • Remove the "debug" button from request error alerts (64686ef)
    • Remove fileinfo dependency (105dd09)

    Fixed

    • Fix dropdown menu icon width (7ec9281)
    • Fix user online indicator spacing (57f828b)
    • Remove faulty default value for forum description (a2e0dae)
    • Fix scrubber icon alignment (287085d)
    • Don't hardcode admin URL (c037658)
    • Update zend-diactoros to v1.6 to fix Content-Length problems (1e8399c)
    • Security: Remove execute permissions from .php/.less files (#1338)
    • Fix post contentHtml sometimes breaking script parsing (ea4d889)
    • Make sure components receive all children properly (42ecee4)
    • Fix extractText breaking in some cases (f3b4d35)
    • Revert color input type (257ee93)
    • Make sure dropdowns don't go above the edge of the screen (3be98b9)
    • Improve mobile composer behaviour (a8826dc, 094345d)
    • Fix Composer textarea losing its height across route changes (1a10276)
    • Performance: Assign parent discussion to posts so it doesn't have to be reloaded (5f7060f)
    • Performance: Cache translation catalogue to avoid reparsing YAML (9cc67fe)
    • Fix email gambit (0aa74c9)
    • Fix users not being listed properly when searching (7796580)
    • Fix crash when post's user has been deleted (1a239ee)
    • Filter out notifications with non-existent subjects (a0c95e6)
    • Dispatch user events after password reset (#1340)
    • Only display pagination link if necessary (6913e8f)
    • Add pagination link for previous page (8c47095)
    • Prevent editing fields in sign up modal according to identification data (#1330)
    • Refactor MIME type guessing to work without any PHP extensions (ba96f31)
    • Fix modal title background on phone media (#1378)
    • Always return a promise in PostStream#update (#1392)
    • Fix absence of variable reference in Notification\Sending event (f51e29f)
    • Update doctrine/dbal to v2.7 to fix MariaDB compatibility (d42205a)
    • Escape string used in LIKE query (569e6c9)
    • Make ExtensionManager a singleton (050496a)
    • Fix discussion posts not being initialized correctly (#1455)
    • Prevent undefined class names from being rendered (#1456)
    • Fix asset recompilation issues (#1471)
    • Fix unread notifications badge appearing fuzzy (fb9a89f)
    • Fix generation of next/previous URLs in discussion HTML (3d845d5)
    • Prevent invalid custom CSS from crashing forum (#1471)
    • Fix profile page posts jumping when scrolling (6a6b9ac)
    • Fix git errors displaying in flarum info command (#1562)
    • Fix guests encountering permission errors when searching (#1527)
    • Add tokenizer to PHP extension requirements (c16ddf2)
    • Installer: add check for file existence and fix path resolving (#1397)
    • Change tab title after renaming discussion (#1543)
    • Fix post composer width bug on profile (#1541)
    • Fix wrong permission check in UserPolicy#find (#1536)
    • Fix registration errors when debug mode is on (5ce702a)
    • Sort user discussion list correctly (184ffcd)
    • Fix group badge misalignment if there is no group icon (c32af65)
    • Fix dropdown menu hidden by PermissionsPage header when going up (#1627, 3b630cb)
    • Fix scrubber index exceeding post count (#1634)
    • Perform visibility checks on notification subjects at the query level (6d14d0c)
    • Delete associated notifications when deleting discussions, posts, and users (bf8bc02)
    • Clear the search loading indicator after pressing Enter (b474843)

    Security

    • Always invalidate all user email tokens (66607a5)

    Also see the 0.1.0-beta.8 release notes for: akismet approval auth-facebook auth-github auth-twitter bbcode emoji lang-english flags likes lock markdown mentions pusher sticky subscriptions suspend tags

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0-beta.7.2(Nov 9, 2018)

  • v0.1.0-beta.7.1(Jan 6, 2018)

Owner
Flarum
Simple forum software for building great communities.
Flarum
Daux.io is an documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It helps you create great looking documentation in a developer friendly way.

Daux.io Daux.io is a documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It help

Daux.io 719 Jan 1, 2023
FluxBB is a fast, light, user-friendly forum application for your website.

FluxBB 1.5 Readme About FluxBB is an open source forum application released under the GNU General Public Licence. It is free to download and use and w

FluxBB 477 Dec 27, 2022
PunBB forum

PunBB PunBB is a fast and lightweight PHP-powered discussion board. It is released under the GNU General Public License. Its primary goals are to be f

PunBB 177 Jan 1, 2023
Application de forum des questions IT

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

null 3 Oct 11, 2021
PHP 7.1 ready Smart and Simple Documentation for your PHP project

Smart and Readable Documentation for your PHP project ApiGen is the simplest, the easiest to use and the most modern api doc generator. It is all PHP

ApiGen 2.1k Dec 22, 2022
PHP 7.1 ready Smart and Simple Documentation for your PHP project

Smart and Readable Documentation for your PHP project ApiGen is the simplest, the easiest to use and the most modern api doc generator. It is all PHP

ApiGen 2.1k Apr 20, 2021
Simple and effective multi-format Web API Server to host your PHP API as Pragmatic REST and / or RESTful API

Luracast Restler ![Gitter](https://badges.gitter.im/Join Chat.svg) Version 3.0 Release Candidate 5 Restler is a simple and effective multi-format Web

Luracast 1.4k Jan 2, 2023
Simple forum software for building great communities.

About Flarum Flarum is a delightfully simple discussion platform for your website. It's fast and easy to use, with all the features you need to run a

Flarum 13.6k Jan 1, 2023
Simple forum software for building great communities.

About Flarum Flarum is a delightfully simple discussion platform for your website. It's fast and easy to use, with all the features you need to run a

Flarum 13.6k Jan 7, 2023
Simple forum software for building great communities.

About Flarum Flarum is a delightfully simple discussion platform for your website. It's fast and easy to use, with all the features you need to run a

Flarum 5.8k Jan 3, 2023
The forum is a base for our Youtube tutorial series on "how to build a forum"

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

AngelJay 15 Oct 11, 2022
A forum software written in vanilla PHP with a MariaDB/MySQL database.

GloomyBB GloomyBB is a simple forum software written in vanilla PHP with a MariaDB/MySQL database. It is currently still in early development but is u

John Vinh 3 Nov 2, 2022
Platform for Citizen Engagement, Smart Communities, Smart Cities in the context of the Sustainable Development Goals 🏙️👩‍💻👨‍💼🙋‍♀️🙋‍♂️🦾🤖

Civikmind Plataforma Libre y de código abierto para la Participación Ciudadana, Veeduría Ciudadana, Gestión de Comunidades Inteligentes, Ciudades Inte

Smart Cities Community 29 Dec 8, 2022
A curated list of Awesome WordPress Theme, Plugins and Framework development Resources and WordPress Communities.

Awesome WordPress A curated list of Awesome WordPress Theme, Plugins and Framework development Resources and WordPress Communities. Inspired by bayand

Dropndot Limited 91 Dec 26, 2022
Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:

Latest Salt Documentation Open an issue (bug report, feature request, etc.) Salt is the world’s fastest, most intelligent and scalable automation engi

SaltStack 13k Jan 8, 2023
GLPI is a Free Asset and IT Management Software package, Data center management, ITIL Service Desk, licenses tracking and software auditing.

GLPI stands for Gestionnaire Libre de Parc Informatique is a Free Asset and IT Management Software package, that provides ITIL Service Desk features, licenses tracking and software auditing.

GLPI 2.9k Jan 2, 2023
CI4-Lic is a software license manager modul for Codeigniter 4, connecting to WordPress license server based on the Software License Manager Plugin.

CI4-Lic CI4-Lic is a software license manager modul for Codeigniter 4, connecting to WordPress license server based on Software License Manager Plugin

George Lewe 1 Jan 15, 2022
A high-performance license server system service for creating and managing products, major versions, and software licenses for the purpose of selling installable software products.

A high-performance license server system service for creating and managing products, major versions, and software licenses for the purpose of selling installable software products. Comes with a SDK and command-line tool. Works anywhere that PHP runs.

CubicleSoft 32 Dec 5, 2022
Daux.io is an documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It helps you create great looking documentation in a developer friendly way.

Daux.io - Deprecation Notice This repository is deprecated! Daux.io has been moved to an organization, to guarantee future development and support. So

Justin Walsh 4.6k Dec 16, 2022
Daux.io is an documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It helps you create great looking documentation in a developer friendly way.

Daux.io Daux.io is a documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It help

Daux.io 719 Jan 1, 2023