Statamic 3 is the flat-first, Laravel + Git powered CMS designed for building beautiful, easy to manage websites.

Overview

Statamic Logo

About Statamic 3

Statamic 3 is the flat-first, Laravel + Git powered CMS designed for building beautiful, easy to manage websites.

Note: This repository contains the code for the core CMS package. To start your own website project with Statamic, visit the Statamic application repository.

Learning Statamic

Statamic 3 has extensive documentation. We dedicate a significant amount of time and energy every day to improving them, so if something is unclear, feel free to open issues for anything you find confusing or incomplete. We are happy to consider anything you feel will make the docs and CMS better.

Support

We provide official developer support on Statamic 3 Pro projects. Community-driven support is available on the forum and in Discord.

Contributing

Thank you for considering contributing to Statamic! We simply ask that you review the contribution guide before you open issues or send pull requests.

Code of Conduct

In order to ensure that the Statamic community is welcoming to all and generally a rad place to belong, please review and abide by the Code of Conduct.

Important Links

Comments
  • ✨ Brand New Antlers Engine ✨

    ✨ Brand New Antlers Engine ✨

    This PR provides a complete rewrite of the Antlers parser to separate it into two pieces:

    • An Antlers parser: parses input strings into a list of nodes that can be evaluated to produce a final string
    • An Antlers Runtime: a virtual execution environment to evaluate parser nodes

    Important Note: While some new Antlers features look like PHP, Antlers is still not PHP :)

    Issues Accounted For

    This PR resolves, or makes improvements for, the following issues:

    • Closes #4249 - ensure_right doesn't work with |

    Developers may use shorthand syntax to supply the vertical pipe as an argument: {{ title | ensure_right:"|" }}

    Developers utilizing parameter-style modifiers will still need to use the HTML entity version: {{ title ensure_right=" |" }}

    • Closes #4099 - Logical operator || seen as modifier in some case
    • Closes #3636 - where doesn't work on terms
    • Closes #4066 - in_array or contains not working as expected
    • Closes #2671 - Passing data through a partial to a grandchild partial results in "NULL"
    • Closes #2066 - {{ select_var:label }} is not working
    • Closes #1798 - Can't render Antlers in content
    • Closes #3286 - Yield and section tags are affected by order
    • Closes #2505 - Modifier doesn't accept parameter

    Any tag/expression can be returned from an Antlers sub-expression. The {{ title translate="{site:short_locale}" }} syntax will work, but the variable reference will not.

    • Closes #3624
    • Closes #5128
    • Closes #3980 - Shorthand if/else doesn't work with pagination
    • Closes #3631 - Antlers tag is rendered in bard code block
    • Closes #2161 - Noparse issue with markdown fields
    • Closes #2655 - modifier & logical operators in conditions
    • Closes #2722 - Some Antlers logic not working combining modifiers
    • Closes #1945 - {{ if {collection:count in="collection_name" taxonomy:year="2019"} > 0}} throws an error when taxonomy condition is added
    • Closes #3381 - Antlers if-statements do not evaluate tags correctly when using more than one
    • Closes #3610 - Using double quoted parameters for modifiers in Antlers if condition throws error about unexpected double-quote
    • Closes #2001 - {{ if (collection == "pages") && (parent:slug != "home") }} causes error
    • Closes #3685 - simple OR/AND condition does not work
    • Closes #3835 - Using ?? instead of or causes form tag parser weirdness

    These two are now equivalent: { foo || 'contact' } and { foo or 'contact' }

    • Closes #3790 - Can't access view's array variable with dynamic key
    • Closes #3514 - Can't use old variable with dynamic key
    • Closes #3097 - Collection tag flawed. Maybe deeper Antlers/Syntax issues?

    For 3097, the syntax should preferentially use single-braces inside the tag, but double braces will technically work here:

    {{ collection from="faq" limit="3"
      faq_categories:contains="{faq_categories:0:id}"
      :id:isnt="id"
      sort="{ randomizer ? 'random' : 'order' }"
    }}
    

    Adds test coverage for #2529 (Can't use modifiers in array syntax). Cannot repro in current 3.2 branch, however.

    Cannot reproduce #4993 with Runtime parser. Partial tag receives expected parameters.

    Ideas Implemented

    • Fixes statamic/ideas#492 - Named slots for partials

    Partial: partials/_card.antlers.html:

    <div class="max-w-sm rounded overflow-hidden shadow-lg">
        <img class="w-full" src="image/path.jpg" alt="{{ title }}">
        <div class="px-6 py-4">
            <div class="font-bold text-xl mb-2">{{ title }}</div>
            <p class="text-gray-700 text-base">{{ slot }}</p>
        </div>
        <div class="px-6 pt-4 pb-2">
            {{ if !slot:bottom }}
            <span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2">#tag1</span>
            <span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2">#tag2</span>
            <span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2">#tag3</span>
            {{ else }}
                {{ slot:bottom }}
            {{ /if }}
        </div>
    </div>
    

    Other code:

    {{ partial:card }}
    
    {{ slot:bottom }}
        <span>I'll appear in the bottom section.</span>
    {{ /slot:bottom }}
    
    Default slot content.
    {{ /partial:card }}
    
    • Fixes statamic/ideas#479 - user:can should be a conditional

    Any Antlers tag/expression can now be used in a condition (even if has spaces, or HTML-like parameters):

    {{ if {user:cant do="edit projects collection"} }}
    
    {{ else }}
    
    {{ /if }}
    
    • Fixes statamic/ideas#364 - Output array from custom tag as var rather than iterable tag pair
      • Results of tags (or any Antlers) can be assigned to variables if from an interpolation region:
        • {{ articles = {collection:articles} }}
        • {{ data = {my_tag_pair_data} }}
    • Fixes statamic/ideas#200 - YAML front matter with Antlers
      • Custom variables now takes its place
    • Fixes statamic/ideas#41 - Temporary Variables in Antlers

    Backwards Compatibility

    • All existing Antlers tests pass when targeting the updated runtime

    There are some instances where backwards compatibility has been broken (Antlers tags nested inside other tags, and anything that is currently taking advantage of parser bugs).

    Great care has been taken to break as little as possible, but accounting for every possible scenario in the wild is not possible. Because of this, existing Antlers has not been removed, and can be used on existing projects.

    Creating Variables

    This PR allows developers to create variables within Antlers:

    {{ total = 0 }}
    
    {{ loop from="1" to="10" }}
        {{ total += 1 }}
    {{ /loop }}
    
    <p>The total is: {{ total }}</p>
    

    Sub-expression/interpolated regions can also be assigned to variables:

    {{ pages = {collection:pages limit="5"} }}
    
    <p>Pages:</p>
    
    {{# Use pages as if it were the actual tag #}}
    {{ pages }}
        {{ if no_results }}
    
        {{ /if }}
    {{ /pages }}
    

    Creating Arrays

    Developers may create arrays within Antlers if they want to (although getting them from a view model, view composer, etc. is still preferred):

    {{ myarray = arr('one', 'two', 'three') }}
    

    Associative arrays are also supported:

    {{
        my_array = arr(
                        "one" => 1,
                        "two" => 2,
                        "three" => arr(
                            1,
                            2,
                            3,
                            4 => arr(
                                1,
                                2
                            )
                        ))
    }}
    

    Calling Methods

    Developers may now call methods on objects using the {{ VARNAME:METHOD_NAME() }} syntax:

    {{ object:method() }}
    

    Developers may also pass arguments to methods:

    {{ object:method('arg1', 'arg2', 'etc') }}
    

    Additional Improvements

    • Can now use nested parenthesis to get as complex as you want
    • Behavior of {} single brace sub-expressions (interpolations) as well as nested parenthesis is now deterministic
    • Predictable/deterministic tag pairing algorithm
    • Developers can now use self-closing Antlers tags: {{ myarray | length /}}
    • Better parser error messages
    • Internal runtime caching for augmentation (only persists for the current request)
    • Large and extensive test suite
    • Introduces a once tag-like to ensure that a part of a template only executes once
    • Adds support for template stacks and queues
    • Adds ways to tell the runtime how to resolve variable and tag name collisions
    • Improves escaped content handling
    • A low-level runtime "tracing" API that allows developers to create very complex integrations with third party tools
    • Configurable block-list to prevent variable name patterns, tags, or modifiers from being executed
    • And a whole lot more

    Upgrading/Downgrading

    By default, all existing sites and all new sites will continue to use the regex Antlers parser.

    To upgrade, set the statamic.antlers.version configuration option to runtime.

    In config/statamic/antlers.php:

    <?php
    
    return [
    
    
        'version' => 'runtime',
    
        // ...
    ];
    

    To downgrade to "legacy" Antlers, set the value to regex (new default):

    In config/statamic/antlers.php:

    <?php
    
    return [
    
    
        'version' => 'regex',
    
        // ...
    ];
    
    opened by JohnathonKoster 35
  • The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly

    The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly

    Bug Description

    Upgrading or downgrading Statamic from the cp results in an error due to the HOME or COMPOSER_HOME env variables not being set.

    How to Reproduce

    Upgrade or downgrade Statamic from the cp

    Extra Detail

    In Factory.php line 677:
                                                                                   
      The HOME or COMPOSER_HOME environment variable must be set for composer to   
      run correctly     
    

    Environment

    Statamic: 3.0.46 Solo Laravel: 8.32.1 PHP: 7.4.16 OS: Ubuntu 20.04 Environment: Laravel Sail / Docker

    No addons installed

    Install method (choose one): Fresh install from statamic/statamic with laravel/sail added afterwards to serve.

    Workarounds

    • Running composer update from the command line works fine and Statamic is properly upgraded or downgraded.
    • Manually hacking the core of vendor/composer/composer/src/Composer/Factory.php from $home = getenv('HOME'); to $home = '/home/sail'; makes it work properly. I only mention this in case it's of any use.

    Other notes

    • If I do artisan tinker and then run dd(_$ENV); I can see that there is a HOME variable specifically set to /home/sail which is what it should be (and which is what makes it work as per the workaround above) but if I insert the same dd($_ENV) into the Factory.php file then the HOME env var is no longer present.
    • I have tried adding both HOME='/home/sail' and COMPOSER_HOME='/home/sail to my .env and it doesn't make any difference
    • Laravel Sail uses Laravel's own artisan serve to serve the application rather than nginx/apache. However, I don't believe that this is related to the error as I already spoke to someone on Discord who's running a regular Ubuntu 20.04 setup (ie: no Sail or Docker) and experiencing the same issue.
    opened by joseph-d 33
  • Querybuilder: add whereJsonContains(), whereJsonDoesntContain() and whereJsonLength()

    Querybuilder: add whereJsonContains(), whereJsonDoesntContain() and whereJsonLength()

    This change allows you to do queries on values that are arrays, which is particularly useful for searching taxonomy terms, e.g.:

    Entry::query()
        ->whereIn('test_taxonomy', ['test-term'])
        ->get();
    

    and

    Entry::query()
        ->whereNotIn('test_taxonomy', ['test-term'])
        ->get();
    

    I intend to do the legwork on tests, but wanted to push up the simple code change to be sure you'd be happy to merge it in principle?

    opened by ryanmitchell 31
  • v3.3 — 504 errors for some collection indexes (indices? ugh)

    v3.3 — 504 errors for some collection indexes (indices? ugh)

    Bug description

    The problem

    When viewing collections in v3.3, some of them don't load properly. I have ~16 collections, and two of them get stuck in a state like this:

    CleanShot 2022-03-18 at 13 12 53

    This collection shouldn't be empty. It should contain roughly 30 entries in the default site, as well as other multi-site entries.

    Additional context

    DevTools

    DevTools logs two identical requests to http://admix-service-corporate.test/cp/collections/pages/entries?sort=title&order=asc&page=1&perPage=50&search=&filters=eyJzaXRlIjp7InNpdGUiOiJkZWZhdWx0In19&columns=title,site,slug. The first one usually gets cancelled right away. The second one hangs for about 30 seconds before returning a 504 timeout.

    Tinker

    I've attempted to recreate very roughly the queries performed using Tinker with \Statamic\Facades\Entry::query()->where('collection', 'pages')->get(), and it doesn't seem to have a problem loading the data.

    Telescope

    Telescope seems to notice the requests for the page at GET /cp/collections/pages, but it never logs any 504 responses for the request to http://admix-service-corporate.test/cp/collections/pages/entries?sort=title&order=asc&page=1&perPage=50&search=&filters=eyJzaXRlIjp7InNpdGUiOiJkZWZhdWx0In19&columns=title,site,slug, despite what I see in the browser devtools.

    PHP-FPM

    When I run the request more than once (by refreshing while it's still loading), PHP-FPM logs that it's run out of it's workers (5 have been allocated).

    How to reproduce

    I've tried to reproduce this issue in some minimal repo setups, but with no success.

    Logs

    No response

    Versions

    Statamic 3.3.1 Pro Laravel 9.5.1 PHP 8.1.2 aryehraber/statamic-impersonator 2.4.1 goldnead/statamic-collapse-fieldtype 1.0.4 handmadeweb/statamic-laravel-packages 1.0.2 jacksleight/statamic-bard-mutator 1.0.3 jacksleight/statamic-bard-texstyle 0.2.0 jacksleight/statamic-focal-link 0.2.3 rias/statamic-color-swatches 2.0.5 statamic/collaboration 0.4.0 statamic/seo-pro 3.1.0 theutz/statamic-ant-design-icons 1.0.0 webographen/statamic-widget-cache-controller 1.0.1 webographen/statamic-widget-continue-editing 1.0.1

    Installation

    Fresh statamic/statamic site via CLI

    Additional details

    I haven't been able to load many of these pages in the front-end, either. I'm assuming that's due to changes in the Antlers runtime, but I haven't really got a chance to debug them since I can't even see them in the CP anymore.

    opened by theutz 26
  • Mail Notifications unstyled

    Mail Notifications unstyled

    Bug Description

    How to Reproduce

    composer create-project --prefer-dist statamic/statamic test php artisan make:notification TestNotification

    ...set up mail sending for mailtrap and add in default from address to .env

    Illuminate\Support\Facades\Notification::route(
        'mail',
        '[email protected]'
    )->notify(new App\Notifications\TestNotification());
    

    ...then do the same but using laravel new test

    Extra Detail

    Result from new statamic project:

    Screenshot 2020-10-27 at 11 39 20

    Result from new laravel 8.11.2 project:

    Screenshot 2020-10-27 at 11 39 25

    Environment

    Statamic 3.0.20 Solo
    Laravel 8.11.2
    PHP 7.4.8
    No addons installed
    
    bug laravel 
    opened by admench 26
  • Date field always saves date including time

    Date field always saves date including time

    Bug Description

    The date field always saves time which is weird, because we're saving a date. Not date and time. At least when you turned off the time picker.

    Having the time there makes a lot of stuff more complicated. Also it's not correct when just handling with dates.

    Bonus: It would be really really nice if you could save dates in whatever format you want. 🎉

    Environment

    Statamic 3.0.11 Pro Laravel 7.28.3 PHP 7.4.6

    bug v2 compatibility fieldtypes 
    opened by robdekort 26
  • Insane performance issues

    Insane performance issues

    Bug Description

    I do get insane load times in development. Especially with multisite being enabled. No addons installed.

    Example site 1 with multisite (2 locales): image

    Example site 2 with multisite (7 locales): image

    Example site 3 without multisite: image

    To me it seems the more locales present, the worse the performance. With static caching enabled in production, it isn't a problem. But it's a huge downside for developing.

    Environment

    Statamic 3.0.7 Pro Laravel 7.28.1 PHP 7.4.10 No addons installed

    multisite performance 
    opened by AndreasSchantl 26
  • `multisite` command fails w/ 'undefined offset' error

    `multisite` command fails w/ 'undefined offset' error

    Bug Description

    Created a brand new site, no content (only the default home page), then did php please multisite and got an error (see below.

    Maybe exit with an explanation if pro isn't enabled?

    How to Reproduce

    1. create site w/ statamic new multi-site
    2. create user
    3. run php please multisite

    Extra Detail

    [2020-11-05 01:00:46] local.ERROR: Undefined offset: 1 {"exception":"[object] (ErrorException(code: 0): Undefined offset: 1 at /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Stache/Stores/CollectionEntriesStore.php:103)
    [stacktrace]
    #0 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Stache/Stores/CollectionEntriesStore.php(103): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'Undefined offse...', '/Users/erin/Sit...', 103, Array)
    #1 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Stache/Stores/CollectionEntriesStore.php(121): Statamic\\Stache\\Stores\\CollectionEntriesStore->extractAttributesFromPath('/Users/erin/Sit...')
    #2 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Stache/Stores/Store.php(223): Statamic\\Stache\\Stores\\CollectionEntriesStore->handleDeletedItem('/Users/erin/Sit...', 'home')
    #3 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(234): Statamic\\Stache\\Stores\\Store->Statamic\\Stache\\Stores\\{closure}('/Users/erin/Sit...', 0)
    #4 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Stache/Stores/Store.php(225): Illuminate\\Support\\Collection->each(Object(Closure))
    #5 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Stache/Stores/Store.php(38): Statamic\\Stache\\Stores\\Store->handleFileChanges()
    #6 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Stache/Stores/CollectionsStore.php(81): Statamic\\Stache\\Stores\\Store->index('uri')
    #7 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Stache/Repositories/CollectionRepository.php(83): Statamic\\Stache\\Stores\\CollectionsStore->updateEntryUris(Object(Statamic\\Entries\\Collection))
    #8 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Statamic\\Stache\\Repositories\\CollectionRepository->updateEntryUris(Object(Statamic\\Entries\\Collection))
    #9 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Entries/Collection.php(337): Illuminate\\Support\\Facades\\Facade::__callStatic('updateEntryUris', Array)
    #10 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Entries/Collection.php(327): Statamic\\Entries\\Collection->updateEntryUris()
    #11 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Console/Commands/Multisite.php(112): Statamic\\Entries\\Collection->save()
    #12 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Console/Commands/Multisite.php(50): Statamic\\Console\\Commands\\Multisite->updateCollection(Object(Statamic\\Entries\\Collection))
    #13 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(234): Statamic\\Console\\Commands\\Multisite->Statamic\\Console\\Commands\\{closure}(Object(Statamic\\Entries\\Collection), 0)
    #14 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Console/Commands/Multisite.php(52): Illuminate\\Support\\Collection->each(Object(Closure))
    #15 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Statamic\\Console\\Commands\\Multisite->handle()
    #16 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Container/Util.php(40): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
    #17 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\\Container\\Util::unwrapIfClosure(Object(Closure))
    #18 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\Application), Array, Object(Closure))
    #19 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Container/Container.php(596): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application), Array, Array, NULL)
    #20 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Console/Command.php(136): Illuminate\\Container\\Container->call(Array)
    #21 /Users/erin/Sites/multi-site/vendor/symfony/console/Command/Command.php(258): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
    #22 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle))
    #23 /Users/erin/Sites/multi-site/vendor/statamic/cms/src/Console/EnhancesCommands.php(15): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
    #24 /Users/erin/Sites/multi-site/vendor/symfony/console/Application.php(920): Statamic\\Console\\Commands\\Multisite->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
    #25 /Users/erin/Sites/multi-site/vendor/symfony/console/Application.php(266): Symfony\\Component\\Console\\Application->doRunCommand(Object(Statamic\\Console\\Commands\\Multisite), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
    #26 /Users/erin/Sites/multi-site/vendor/symfony/console/Application.php(142): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
    #27 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
    #28 /Users/erin/Sites/multi-site/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(129): Illuminate\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
    #29 /Users/erin/Sites/multi-site/please(37): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
    #30 {main}
    "} 
    

    Statamic 3.0.24 Solo Laravel 8.13.0 PHP 7.4.12 No addons installed

    ## Environment
    
    Statamic 3.0.24 Solo
    Laravel 8.13.0
    PHP 7.4.12
    No addons installed
    
    
    bug multisite 
    opened by edalzell 25
  • Ranged date field ranged saves dates minus one

    Ranged date field ranged saves dates minus one

    Bug Description

    The date field (ranged in this case) always saves the dates a day before.

    How to Reproduce

    field:
              mode: range
              time_enabled: false
              time_required: false
              earliest_date: '2020-01-01'
              full_width: true
              inline: true
              columns: 1
              rows: 1
              type: date
              listable: hidden
              instructions: 'When is the climate adaptation week?'
              display: 'Climate adaptation week'
    

    Extra Detail

    Screenshot 2020-09-02 at 11 05 51

    Environment

    Statamic 3.0.2 Pro Laravel 7.26.1 PHP 7.4.6 No addons installed

    Install method (choose one):

    • Starter Kit Peak
    bug 
    opened by robdekort 25
  • Page rendering  using s3 and cloudfront notably slow

    Page rendering using s3 and cloudfront notably slow

    Bug Description

    Using the flysystem s3 driver and setting url to the cloudfront domain that was setup is working. Images are loading ... but notably slow. Glide was being used, so I removed those tags from home page in case that caused the slowness. Still notably slow. Cleared all cache and no difference.

    I noticed the other issue with assets list in CP being slow with s3. Seeing that as well. It is unusably slow. Similar rendering of front end using s3/cloudfront is unusably slow.

    How to Reproduce

    Wire up a site with s3 and cloudfront.

    Extra Detail

    Environment

    Statamic 3.0.0 Pro Laravel 7.25.0 PHP 7.4.9 statamic/seo-pro 2.0.7

    Install method (choose one):

    • Fresh install from statamic/statamic
    needs more info stale 
    opened by sg-modlab 25
  • resources/dist folder missing

    resources/dist folder missing

    Trying to publish the CP resources, but they appear to be missing?

    Can't locate path: </Volumes/Projects/valet/website/vendor/statamic/cms/src/Providers/../../resources/dist>
    
    opened by glennjacobs 25
  • Auto propagation on collections de-syncs fields

    Auto propagation on collections de-syncs fields

    Bug description

    If you have an auto propagating collection on a multisite environment with fields that have localizable set to false fields only sync on initial creation. After that the fields stop syncing and CP users are stuck with values that were initially set.

    This behaviour doesn't happen when auto propagation is disabled. It then works as intended.

    How to reproduce

    1. Create a multisite with two sites at minimum.
    2. Create a collection
    3. Set the collection to be available in both sites
    4. Enable auto propagation
    5. Add a field to the collection blueprint (don't make it localizable)
    6. Create an entry for the main site
    7. Fill in the fields
    8. Check the auto propagated entry for the second site
    9. See the fields are locked and filled in with the origin values (good)
    10. Change the fields on the main site
    11. Go back to the localised entry and see the initially saved values (bad)

    This behaviour doesn't happen when auto propagation is false. The values continue to updated for all other sites when they are changed on the origin entry. This how it also work on globals for example. You often want fields to be only set in one locale and have them available on all translated versions.

    Logs

    No response

    Environment

    Environment
    Application Name: Studio 1902
    Laravel Version: 9.45.0
    PHP Version: 8.1.13
    Composer Version: 2.2.7
    Environment: local
    Debug Mode: ENABLED
    URL: 1902.test
    Maintenance Mode: OFF
    
    Cache
    Config: NOT CACHED
    Events: NOT CACHED
    Routes: NOT CACHED
    Views: CACHED
    
    Drivers
    Broadcasting: log
    Cache: statamic
    Database: mysql
    Logs: stack / single
    Mail: smtp
    Queue: sync
    Session: file
    
    Statamic
    Addons: 3
    Antlers: runtime
    Stache Watcher: Enabled
    Static Caching: Disabled
    Version: 3.3.62 PRO
    
    Statamic Addons
    jonassiewertsen/statamic-jobs: 1.1.0
    jonassiewertsen/statamic-livewire: 2.9.0
    studio1902/statamic-peak-commands: 1.9
    

    Installation

    Starter Kit using via CLI

    Antlers Parser

    runtime (new)

    Additional details

    No response

    multisite blueprints & fieldsets 
    opened by robdekort 0
  • Bump json5, laravel-mix and sass-loader

    Bump json5, laravel-mix and sass-loader

    Bumps json5 to 2.2.3 and updates ancestor dependencies json5, laravel-mix and sass-loader. These dependencies need to be updated together.

    Updates json5 from 2.2.1 to 2.2.3

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Updates laravel-mix from 5.0.9 to 6.0.49

    Release notes

    Sourced from laravel-mix's releases.

    v6.0.0

    This release brings Laravel Mix current with webpack 5. It additionally includes a variety of bug fixes and enhancements.

    v6.0.0-alpha.0

    Add webpack 5 support.

    Changelog

    Sourced from laravel-mix's changelog.

    Changelog

    6.0.14

    • BabelConfig.fetchBabelRc / static BabelConfig.default / static BabelConfig.generate have all been deprecated. They are no longer used by Mix itself but remain for backwards compatability.
    • MixDefinitionsPlugin.getDefinitions and static MixDefinitionsPlugin.build have been deprecated. They are no longer used by Mix itself but remain for backwards compatability.
    • static Chunks._instance / static Chunks.instance() / static Chunks.reset() are now deprecated and will be removed in a future release.
    • The static methods on HotReloading are now deprecated. They have been replaced with instance methods.
    • The use of the globals Mix, Config, and webpackConfig are now deprecated and will warn on use in Mix v7.

    We are working toward an API for access to Mix for extensions that does not assume that it is a global or that it is the same instance in all cases.

    In the mean time:

    • Uses of Chunks.instance() may be replaced with Mix.chunks
    • Uses of Config may be replaced with Mix.config
    • Uses of webpackConfig may be replaced with Mix.webpackConfig
    • Uses of HotReloading.* methods Mix.hot.*

    6.0

    View upgrade guide.

    Added

    • Support for webpack 5
    • New npx mix executable for triggering your build
    • Support for Vue 3 applications
    • Support for PostCSS 8
    • New mix.vue() and mix.react() commands
    • New mix.alias() command (Learn More)
    • Support for changing the webpack manifest output path (Learn More)
    • New mix.before() hook (Learn More)
    • Improved mix.combine() wildcard support
    • Improved mix.extract() priority and tree-shaking logic

    Changed

    • Fixed "empty CSS file" extraction bug when using dynamic imports
    • Fixed mix.ts() TypeScript bug that skipped Babel transformation in certain cases
    • Fixed and improved PostCSS plugin autoloading and merging
    • Fixed an issue related to hot module reloading when versioning is enabled
    • Added TypeScript types for API
    Upgrade guide

    Sourced from laravel-mix's upgrade guide.

    Upgrade to Mix 6

    npm install laravel-mix@latest
    

    Review Your Dependencies

    Laravel Mix 6 ships with support for the latest versions of numerous dependencies, including webpack 5, PostCSS 8, Vue Loader 16, and more. These are significant releases with their own sets of breaking changes. We've done our best to normalize these changes, but it's still particularly important that you take the time to fully test your build after upgrading to Mix 6.

    Please review your package.json dependencies list for any third-party tools or plugins that may not yet be compatible with webpack 5 or PostCSS 8.

    Check Your Node Version

    Mix has bumped its minimum Node requirement from version 8 to 12.14.0. Please check which version you have installed (node -v) and ensure that it meets this requirement.

    Update Your NPM Scripts

    If your build throws an error such as Unknown argument: --hide-modules, the scripts section of your package.json file will need to be updated. The Webpack 5 CLI removed a number of options that your NPM scripts was likely referencing.

    While you're at it, go ahead and switch over to the new Mix CLI.

    Before
    "scripts": {
        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "npm run development -- --watch",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
    }
    </tr></table> 
    

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by thecrypticace, a new releaser for laravel-mix since your current version.


    Updates sass-loader from 8.0.2 to 13.2.0

    Release notes

    Sourced from sass-loader's releases.

    v13.2.0

    13.2.0 (2022-11-09)

    Features

    v13.1.0

    13.1.0 (2022-10-06)

    Features

    v13.0.2

    13.0.2 (2022-06-27)

    Bug Fixes

    v13.0.1

    13.0.1 (2022-06-24)

    Bug Fixes

    v13.0.0

    13.0.0 (2022-05-18)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 14.15.0 (#1048)
    • emit @warn at-rules as webpack warnings by default, if you want to revert behavior please use the warnRuleAsWarning option (#1054) (58ffb68)

    Bug Fixes

    • do not crash on importers for modern API (#1052) (095814e)
    • do not store original sass error in webpack error(#1053) (06d7533)

    v12.6.0

    12.6.0 (2022-02-15)

    ... (truncated)

    Changelog

    Sourced from sass-loader's changelog.

    13.2.0 (2022-11-09)

    Features

    13.1.0 (2022-10-06)

    Features

    13.0.2 (2022-06-27)

    Bug Fixes

    13.0.1 (2022-06-24)

    Bug Fixes

    13.0.0 (2022-05-18)

    ⚠ BREAKING CHANGES

    • minimum supported Node.js version is 14.15.0 (#1048)
    • emit @warn at-rules as webpack warnings by default, if you want to revert behavior please use the warnRuleAsWarning option (#1054) (58ffb68)

    Bug Fixes

    • do not crash on importers for modern API (#1052) (095814e)
    • do not store original sass error in webpack error(#1053) (06d7533)

    12.6.0 (2022-02-15)

    Features

    • added support for automatic loading of sass-embedded (#1025) (c8dae87)

    12.5.0 (2022-02-14)

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 1
  • Antlers: improve switch operator parsing

    Antlers: improve switch operator parsing

    This PR makes it easier to utilize the switch operator by relaxing the parsing:

    After this change, the following will now "just work":

    {{
        switch (
            (['doc', 'docx'] | in_array(filetype)) => 'word.svg',
            () => 'default.svg'
        )
    }}
    

    Currently it will produce a parsing error.

    opened by JohnathonKoster 2
  • Creation of dynamic property Statamic\Extensions\Translation\Translator::$files is deprecated

    Creation of dynamic property Statamic\Extensions\Translation\Translator::$files is deprecated

    Bug description

    On seemingly any request a warning get's spit out, visible in monitoring tools like Laravel Telescope. The warning is about the creation of dynamic properties, deprecated in PHP 8.2. The warning is not stored in any log in storage/logs. Happens both in Production and Development environment, logs are from Development env.

    How to reproduce

    As far as I know:

    1. Use PHP 8.2
    2. Make a request to the website

    Logs

    Creation of dynamic property Statamic\Extensions\Translation\Translator::$files is deprecated in /var/www/vendor/statamic/cms/src/Extensions/Translation/Translator.php on line 14
    

    Environment

    Environment
    Application Name: *************
    Laravel Version: 9.45.1
    PHP Version: 8.2.0
    Composer Version: 2.5.1
    Environment: local
    Debug Mode: ENABLED
    URL: localhost 
    Maintenance Mode: OFF
    
    Cache
    Config: NOT CACHED
    Events: NOT CACHED
    Routes: NOT CACHED
    Views: CACHED
    
    Drivers
    Broadcasting: log
    Cache: redis
    Database: mysql
    Logs: daily
    Mail: smtp
    Queue: sync
    Session: file
    
    Statamic
    Addons: 2
    Antlers: runtime
    Stache Watcher: Enabled
    Static Caching: Disabled
    Version: 3.3.63 Solo
    
    Statamic Addons
    aryehraber/statamic-captcha: 1.9.1
    statamic/eloquent-driver: 1.1.2
    

    Installation

    Existing Laravel app

    Antlers Parser

    runtime (new)

    Additional details

    No response

    php 
    opened by nbeerten 0
  • Adding multiple field conditions to a form field doesn't work

    Adding multiple field conditions to a form field doesn't work

    Bug description

    If I add multiple conditions for a field and then click on "Finish" and then re-open the field conditions, only the last option is saved and the others are gone. I tested this behaviour with a fresh installation (blank) of Statamic 3.3.63 and in an existing site.

    How to reproduce

    Create a new form. Go to "edit form" Go to Fields > Blueprint > Edit add two fields in the second field go to "Conditions" > Show when enter multiple conditions click on "Finish" re-open the field and then go to "Conditions" Your options are gone :(

    Logs

    No response

    Environment

    Environment
    Application Name: Statamic
    Laravel Version: 9.45.1
    PHP Version: 8.1.12
    Composer Version: 2.4.0
    Environment: local
    Debug Mode: ENABLED
    URL: statamic.test
    Maintenance Mode: OFF
    
    Cache
    Config: NOT CACHED
    Events: NOT CACHED
    Routes: NOT CACHED
    Views: CACHED
    
    Drivers
    Broadcasting: log
    Cache: statamic
    Database: mysql
    Logs: stack / single
    Mail: smtp
    Queue: sync
    Session: file
    
    Statamic
    Addons: 0
    Antlers: regex
    Stache Watcher: Enabled
    Static Caching: Disabled
    Version: 3.3.63 Solo
    

    Installation

    Fresh statamic/statamic site via CLI

    Antlers Parser

    regex (default)

    Additional details

    No response

    blueprints & fieldsets 
    opened by jmartsch 1
Releases(v3.3.63)
  • v3.3.63(Dec 21, 2022)

    What's new

    • Ability to use separate queue for in the static:warm command. #7184 by @robbanl

    What's improved

    • Order collection and taxonomy fieldtype options by title. #7246 by @duncanmcclean
    • Order roles, groups, and sites fieldtype options by title. #7259 by @j3ll3yfi5h
    • German translations. #7252 by @j3ll3yfi5h, #7260 by @helloDanuk

    What's fixed

    • Fix duplicate action not respecting entries without slugs. #7243 by @duncanmcclean
    • Support Carbon values in conditions. #6931 by @edalzell
    • Fix focus related JS error when there are no inputs. #7257 by @martyf
    • Remove sound effects on tree drag & drop interactions. #7255 by @jackmcdade
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(79.44 KB)
    dist.tar.gz(6.96 MB)
  • v3.3.62(Dec 16, 2022)

    What's new

    • Support default manipulations for Glide. Support using aliases in presets. #7239 by @jackmcdade
    • Support prepend and append options on the integer fieldtype. #7241 by @jackmcdade
    • Support for search transformers to be classes. #7177 by @ryanmitchell

    What's improved

    • Improve Control Panel's UX when using an invalid site key format. #7110 by @joshuablum
    • Links in field instructions will in new windows. #7223 by @jackmcdade

    What's fixed

    • Fix asset thumbnails and file icons in entry listings and assets field. #7195 by @jacksleight
    • Fix autofocusing of the first field in Control Panel forms. #7242 by @jackmcdade
    • Fix default preferences not being tracked with the Git integration. #7230 by @jesseleite
    • The color fieldtype's picker closes when clicking save. #7219 by @jacksleight
    • The collection widget's "create entry" button works with multiple blueprints. #7217 by @jackmcdade
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(79.44 KB)
    dist.tar.gz(6.96 MB)
  • v3.3.61(Dec 13, 2022)

    What's new

    • Add user:profile_form and user:password_form tags. #6400 by @jacksleight
    • Add info about Stache watcher and Static Caching to the about and support:details commands. #7213 by @joshuablum

    What's improved

    • French translations. #7196 by @ebeauchamps
    • Hungarian translations. #7162 by @zsoltjanes

    What's fixed

    • Handle edits within front-end fields. #7178 by @jasonvarga
    • Handle empty checkboxes fieldtype on front-end. #7180 by @jasonvarga
    • Fix term slugs not using appropriate language when creating through fieldtype. #7208 by @FrittenKeeZ
    • Fix deprecation notices in link fieldtype when empty. #7201 by @linaspasv
    • Fix Statamic's file cache driver not honoring custom permission setting. #7189 by @tomgillett
    • Fix utility route authorization. #7214 by @jasonvarga
    • Fix Javascript error on publish form in Chrome. #7170 by @arthurperton
    • Fix focal point not saving when editing other asset fields. #7171 by @arthurperton
    • Hook up REST API pagination size config. #7161 by @duncanmcclean
    • Allow version 6 of symfony/var-exporter. #7191 by @tomschlick
    • Bump express from 4.17.1 to 4.18.2 #7187 by @dependabot
    • Bump minimatch from 3.0.4 to 3.1.2 #7167 by @dependabot
    • Bump qs from 6.9.4 to 6.9.7 #7176 by @dependabot
    • Fix npm build issues. #7190 by @jasonvarga
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(79.35 KB)
    dist.tar.gz(6.97 MB)
  • v3.3.60(Dec 2, 2022)

    What's new

    • Add when and unless to partial tag. #7054 by @edalzell
    • Ability to override greeting in activation mail. #7154 by @ruslansteiger

    What's improved

    • Replicator and Bard sets can be toggled with a single click. #7037 by @jacksleight
    • Improve accessibility for tabs. #6704 by @arthurperton
    • Show YouTube Shorts in video fieldtype preview. #7153 by @duncanmcclean
    • German translations. #7157 by @helloDanuk
    • Dutch translations. #7152 by @oakeddev

    What's fixed

    • Maintain sort parameter in REST API links. #7158 by @edalzell
    • Make Antlers value resolution "lazy", and make pluck operator work with nulls. #7151 by @JohnathonKoster
    • Prevent deprecation warning when using yield tag with no matching section and no fallback. #7149 by @xuneXTW
    • Add authorization to "duplicate" actions. #7150 by @jasonvarga
    • Avoid wrapping of date fields in listings. #7146 by @jackmcdade
    • Allows localization variable to be saved as false. #7087 by @tao
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.88 KB)
    dist.tar.gz(6.94 MB)
  • v3.3.59(Nov 29, 2022)

    What's new

    • Ability to duplicate entries, terms, assets, and forms. #6307 by @duncanmcclean
    • Ability to use HTTP auth support to the static:warm command. #7115 by @moritzlang
    • Ability for addons to set their fieldset namespace. #7105 by @edalzell

    What's improved

    • Added a typehint to the schedule method in addon service providers. #7081 by @robbanl
    • Improve the speed of the updater page. #7140 by @arthurperton

    What's fixed

    • Fix invalid slug validation when single-depth orderable collections. #7134 by @arthurperton
    • Prevent error when creating entry while using multisite #7143 by @jasonvarga
    • The link fieldtype will localize appropriately. #7093 by @arthurperton
    • Fix search on users listing when storing users in the database and using separate first/last name fields. #7138 by @duncanmcclean
    • Fix static caching error when using exclusion URLs without leading slashes. #7130 by @arthurperton
    • Fix issue where it looked like asset fields would disappear. #7131 by @arthurperton
    • Fix case insensitive entry URLs. #7103 by @jasonvarga
    • Fix super user handling within JavaScript based permission checks. #7101 by @jasonvarga
    • Add psr_autoloading rule to pint.json. #7142 by @jasonvarga
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.88 KB)
    dist.tar.gz(6.94 MB)
  • v3.3.58(Nov 21, 2022)

    What's new

    • Ability to disable generating asset preset manipulations on upload. #7076 by @ryanmitchell

    What's improved

    • Norwegian translations. #7092 by @espenlg

    What's fixed

    • Prevent error in Static Caching middleware when using JSON responses. #7075 by @FrittenKeeZ
    • Prevent dates being added to localized entries in non-dated collections. #7086 by @tao
    • Support for JsonResource::withoutWrapping. #7072 by @jhhazelaar
    • Prevent error in form route binding when customizing action route. #7083 by @julesjanssen
    • Fix incorrect home icon and slug in entry listings. #7095 by @jasonvarga
    • Prevent entire assets:generate-presets command failing when encountering invalid images. #7091 by @ryatkins
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.65 KB)
    dist.tar.gz(6.94 MB)
  • v3.3.57(Nov 18, 2022)

  • v3.3.56(Nov 16, 2022)

    What's new

    • Split permissions for assigning roles/groups and editing them. #6614 by @ryanmitchell
    • User creation wizard can have the email step disabled. #7062 by @jasonvarga
    • Allow filtering by blueprints in entries fieldtype. #7047 by @FrittenKeeZ

    What's improved

    • Dutch Translations #7053 by @oakeddev

    What's fixed

    • Fix grid table header position inside stacks. #7061 by @jackmcdade
    • Fix empty template fieldtype dropdown style. #7060 by @jackmcdade
    • Fix lowercasing of asset folder names to match user's configuration. #7055 by @jesseleite
    • Make sure SVGs are rendered in collection listing. #7059 by @jackmcdade
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.65 KB)
    dist.tar.gz(6.94 MB)
  • v3.3.55(Nov 14, 2022)

  • v3.3.54(Nov 9, 2022)

  • v3.3.53(Nov 8, 2022)

  • v3.3.52(Nov 4, 2022)

  • v3.3.51(Nov 2, 2022)

  • v3.3.50(Nov 1, 2022)

    What's new

    • Added a confirmation modal for selecting the origin site when creating an entry localization. #6943 by @arthurperton
    • Add Turkish translation. #6963 by @sineld
    • The delimiter can be configured for Form CSV exports. #6964 by @theLeroy

    What's improved

    • Improve configuration options for the slug fieldtype. #6978 by @jackmcdade
    • The first modifier now supports associative arrays. #6977 by @royvanv

    What's fixed

    • Clicking the "toggle all" checkbox will select the proper amount of items if max selections have been restricted. #6816 by @ncla
    • Prevent the assets:meta command from wiping data. #6854 by @ncla
    • The @nocache Blade directive properly handles additional data passed to it. #6934 by @jacksleight
    • Fix compatibility with Laravel's Str::slug() method. #6981 by @jasonvarga
    • Fix Runtime Antlers issue when using recursion in the nav tag. #6968 by @JohnathonKoster
    • Fix the relative modifier's "extra words" parameter. #6976 by @jacksleight
    • Fix subtraction in Antlers. #6970 by @JohnathonKoster
    • The entry publish form will be updated with server-side values on save. #6842 by @arthurperton
    • Replace deprecated utf8_encode method usage. #6823 by @krzysztofrewak
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.65 KB)
    dist.tar.gz(6.94 MB)
  • v3.3.49(Oct 26, 2022)

    What's improved

    • Dutch translations. #6953 by @robdekort
    • German translations #6944 by @helloDanuk

    What's fixed

    • Fix Replicator and Bard collapsed set state issues. #6902 by @jesseleite
    • Fix Antlers issue when using nested tag loops in some situations. #6894 by @JohnathonKoster
    • Fix shorthand array syntax in Antlers. #6939 by @JohnathonKoster
    • Fix leaking of locale and carbon string format outside of requests. #6945 by @jasonvarga
    • Added methods to GlobalSet contract. #6938 by @Z3d0X
    • Fix @nocache Blade directive serialization errors. #6935 by @jacksleight
    • Fix error when using custom primary key for users database table. #6919 by @jhhazelaar
    • Swapped forum for GitHub Discussions in the readme. #6946 by @robdekort
    • Adjusted grammar in assets config file. #6936 by @JohnathonKoster
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.65 KB)
    dist.tar.gz(6.93 MB)
  • v3.3.48(Oct 20, 2022)

  • v3.3.47(Oct 19, 2022)

  • v3.3.46(Oct 19, 2022)

    What's new

    • Support binding a custom LocalizedTerm class. #6910 by @jacksleight

    What's improved

    • Improve performance of relationship fields. #6909 by @wiebkevogel
    • Improve performance of textarea fields. #6907 by @wiebkevogel

    What's fixed

    • Disable password protection when in live preview. #6856 by @duncanmcclean
    • Prevent recursion when generating slug from autogenerated title. #6903 by @jasonvarga
    • Order user fields by name. #6896 by @ryanmitchell
    • Fix taxonomy term field filters not working. #6900 by @jacksleight
    • Fix asset grid listing in narrow containers. #6888 by @jacksleight
    • Fix variable collision on full measure static cache nocache JS code. #6895 by @ryanmitchell
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.65 KB)
    dist.tar.gz(6.93 MB)
  • v3.3.45(Oct 14, 2022)

    What's new

    • Use a users search index in the control panel if one exists. #6886 by @jasonvarga

    What's improved

    • French translations #6881 by @ebeauchamps

    What's fixed

    • Avoid caching tokenized REST API requests. #6806 by @notnek
    • Asset title could use a field named title if one exists. #6884 by @jasonvarga
    • Fix error when updating asset references in empty bard fields. #6825 by @AndrewHaine
    • Fix nocache placeholder appearing in responses. #6838 by @arthurperton
    • Invalidate statically cached urls with query strings. #6866 by @jasonvarga
    • Fix dirty state when switching sites in entries. #6861 by @arthurperton
    • Fix issue where things wouldn't get updated appropriately when running in a queue. #6726 by @jesseleite
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.65 KB)
    dist.tar.gz(6.93 MB)
  • v3.3.44(Oct 13, 2022)

    What's new

    • Added JavaScript event on nocache replacement. #6828 by @DanielDarrenJones
    • Added input_label field to revealer config. #6850 by @jacksleight
    • Added flip parameter to glide tag. #6852 by @jacksleight
    • Added Edit Blueprint option to term publish form. #6851 by @jacksleight

    What's improved

    • Auto-focus the field when opening a rename action modal. #6858 by @ncla
    • Using status for a field handle will now validate as a reserved word. #6857 by @jasonvarga

    What's fixed

    • Fixed an asset performance issue (especially when using S3) by waiting to load metadata until necessary. #6871 by @jasonvarga
    • Fixed JS error when using nocache tags on full measure static caching and with a CSRF token starting with a number. #6855 by @jasonvarga
    • Fix date fieldtype format handling in listings. #6845 by @granitibrahimi
    • Fix Bard's "Save as HTML" setting label. #6849 by @jackmcdade
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.65 KB)
    dist.tar.gz(6.93 MB)
  • v3.3.43(Oct 6, 2022)

  • v3.3.42(Oct 3, 2022)

    What's new

    • Added a filter for the users fieldtype. #6654 by @jacksleight
    • Add width to GraphQL form field type. #6815 by @duncanmcclean

    What's improved

    • An exception is thrown if composer.lock is missing when finding the Statamic version. #6808 by @flolanger
    • Resolve redirects through fieldtype. #6562 by @jacksleight
    • German translations. #6809 by @dominikradl

    What's fixed

    • Fix focal point not saving when asset blueprint has no fields #6814 by @ncla
    • Fix asset meta bottleneck. #6822 by @jasonvarga
    • Avoid prompt to make user when installing starter kit via statamic/cli. #6810 by @jesseleite
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.65 KB)
    dist.tar.gz(6.93 MB)
  • v3.3.41(Sep 29, 2022)

    What's new

    • Starter kit post-install hooks. #6792 by @jesseleite

    What's improved

    • Asset's glide cache is busted when focus changes. #6769 by @edalzell
    • Dutch translations. #6805 by @robdekort

    What's fixed

    • Uppercase acronyms are left alone in the title modifier. #6783 by @joshuablum
    • Fix assets fieldtype error. #6799 by @jacksleight
    • Fix GitHub Action workflow to test on multiple Laravel versions. #6801 by @crynobone
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.66 KB)
    dist.tar.gz(6.93 MB)
  • v3.3.40(Sep 27, 2022)

  • v3.3.39(Sep 23, 2022)

  • v3.3.38(Sep 22, 2022)

    What's new

    • Add single asset/folder actions to grid view. #6677 by @jacksleight
    • Add key_by modifier. #6763 by @jasonvarga
    • Add glide:data_url tag to generate data URLs. #6753 by @jacksleight
    • Add collapse option to Bard fieldtype. #6734 by @jacksleight
    • Add cookie tag #6748 by @ryanmitchell
    • Add custom build directory and hot file to vite tag. #6752 by @joshuablum
    • Add files fieldtype. #6736 by @jasonvarga

    What's improved

    • Asset Browser thumbnail style now matches the fieldtype. #6715 by @jackmcdade
    • Improve display of Grid and Replicator replicator preview. #6733 by @jacksleight
    • SVGs get a better replicator preview, and ability to set alt text. #6765 by @jacksleight
    • Spanish Translations. #6761 by @cesaramirez

    What's fixed

    • Fix asset replicator preview. #6732 by @jacksleight
    • Fix using prefixed variables in conditions. #6760 by @JohnathonKoster
    • Fix action value processing. #6754 by @jasonvarga
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.87 KB)
    dist.tar.gz(6.93 MB)
  • v3.3.37(Sep 20, 2022)

  • v3.3.36(Sep 13, 2022)

    What's new

    • Initial support for default preferences. #6642 by @jesseleite

    What's improved

    • Norwegian translations. #6709 by @hgrimelid
    • Dutch translations. #6699 by @robdekort
    • French translations. #6690 by @ebeauchamps

    What's fixed

    • Existing user data gets merged when logging in using OAuth for the first time. #6692 by @arthurperton
    • Fix multisite and queue related static caching issues. #6621 by @arthurperton
    • Fix publish form tab not being set properly on load. #6710 by @jasonvarga
    • Fix date fieldtype in range mode. #6703 by @jasonvarga
    • Fix asset folder permissions. #6698 by @jasonvarga
    • Don't show the asset picker when squished or inside a Grid. #6701 by @jackmcdade
    • The cache tag will properly scope per site. #6702 by @arthurperton
    • Fix sidebar on publish form being inaccessible. #6694 by @arthurperton
    • Fix negative test assertion counts. #6689 by @jasonvarga
    • Fix risky test warnings. #6691 by @jesseleite
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.88 KB)
    dist.tar.gz(6.93 MB)
  • v3.3.35(Sep 9, 2022)

    What's new

    • Ability to specify search:results query value rather than reading from the URL. #6684 by @jacksleight

    What's improved

    • Improve performance and readability of publish components. #6680 by @arthurperton
    • Grid row controls are hidden when there are no available actions. #6647 by @arthurperton

    What's fixed

    • Fix styling of lists inside tables and blockquotes in Bard. #6685 by @jacksleight
    • Fix empty live preview fields falling back to original values, by distinguishing supplemented nulls from missing values. #6666 by @arthurperton
    • Fix deleting an entry with children from the collection tree view. #6644 by @arthurperton
    • Fix incorrect localized term collection URLs. #6659 by @AndrewHaine
    • Fix date field default format not including time when mode isn't explicitly set. #6657 by @FrittenKeeZ
    • Fix search within the asset browser not restricting to a folder where necessary. #6673 by @arthurperton
    • Fix missing view nav authorization. #6663 by @ryanmitchell
    • Fix blank URLs being flagged as external. #6668 by @arthurperton
    • Fix JS error in Popover when resizing. #6679 by @arthurperton
    • Fix JS error when downloading assets. #6669 by @jacksleight
    • Fix JS error when resizing edit pages. #6660 by @arthurperton
    • Fix 'Add child link to entry' appearing in nav builder when no collection is set. #6672 by @jacksleight
    • Fix marking external CP navigation items as current. #6655 by @arthurperton
    • Fix asset fieldtype drag mirror. #6671 by @jackmcdade
    • Fix asset tile controls position. #6656 by @jackmcdade
    • Fix date not showing in Safari. #6651 by @arthurperton
    • Fix date picker value format. #6688 by @jasonvarga
    • Fix augmentation test. #6676 by @jasonvarga
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.88 KB)
    dist.tar.gz(6.93 MB)
  • v3.3.34(Sep 5, 2022)

    What's new

    • Add support for downloading multiple assets as a zip. #6606 #6626 by @jacksleight
    • Add support for filtering entries by taxonomy terms in the REST API. #6615 by @arthurperton

    What's improved

    • Asset fieldtype UI/UX improvements such as ability to set missing alt attributes, and better thumbnails. #6638 by @jackmcdade
    • Static caching: When saving a collection (or its tree), the configured collection urls will be invalidated. #6636 by @arthurperton
    • Static caching excluded URLs treat trailing slashes as optional. #6633 by @arthurperton

    What's fixed

    • Exclude published from data when saving entries. #6641 by @jasonvarga
    • Show placeholder in form select fields. #6637 by @fjahn
    • Avoid fieldtypes getting mounted twice. #6632 by @arthurperton
    • Fix popper causing overflow. #6628 by @jasonvarga
    • Fix missing permission translation keys being shown. #6624 by @jasonvarga
    • Fix numeric separators JS error. #6625 by @jesseleite
    • Fix asset data handling. #6591 by @jesseleite
    Source code(tar.gz)
    Source code(zip)
    dist-frontend.tar.gz(78.88 KB)
    dist.tar.gz(6.93 MB)
Owner
Statamic
Build beautiful, easy to manage websites. The flat-first, open source, Laravel + git powered CMS.
Statamic
Statamic 3 - the flat-first, Laravel + Git powered CMS designed for building beautiful, easy to manage websites

Statamic 3 - the flat-first, Laravel + Git powered CMS designed for building beautiful, easy to manage websites

Statamic 600 Jan 4, 2023
Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

Grav Grav is a Fast, Simple, and Flexible, file-based Web-platform. There is Zero installation required. Just extract the ZIP archive, and you are alr

Grav 13.6k Dec 24, 2022
True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

null 4 Oct 28, 2022
A collection of tools for rapidly building beautiful TALL stack interfaces, designed for humans.

Filament is a collection of tools for rapidly building beautiful TALL stack interfaces, designed for humans. Packages Admin Panel • Documentation • De

Filament 5.4k Jan 4, 2023
Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS

Grav Grav is a Fast, Simple, and Flexible, file-based Web-platform. There is Zero installation required. Just extract the ZIP archive, and you are alr

Grav 13.6k Jan 4, 2023
A simple, beautiful, mobile-first instant messaging web application backend build with ThinkPHP6 and Swoole.

OnChat A simple, beautiful, mobile-first instant messaging progressive web application build with ThinkPHP6 and Swoole. You can click here to view the

HyperLifelll9 138 Dec 26, 2022
Bolt CMS is an open source, adaptable platform for building and running modern websites.

Bolt CMS is an open source, adaptable platform for building and running modern websites. Built on PHP, Symfony and more. Read the site for more info.

Bolt 437 Jan 4, 2023
🚀Bolt CMS is an open source, adaptable platform for building and running modern websites

??Bolt CMS is an open source, adaptable platform for building and running modern websites

Bolt 32 Dec 3, 2022
A Magento 2 module that adds a CLI bin/magento cms:dump to dump all CMS pages and CMS blocks to a folder var/cms-output.

A Magento 2 module that adds a CLI bin/magento cms:dump to dump all CMS pages and CMS blocks to a folder var/cms-output.

Yireo 16 Dec 16, 2022
Bootstrap CMS - PHP CMS powered by Laravel 5 and Sentry

Bootstrap CMS Bootstrap CMS was created by, and is maintained by Graham Campbell, and is a PHP CMS powered by Laravel 5.1 and Sentry. It utilises many

Bootstrap CMS 2.5k Dec 27, 2022
Shiki is a beautiful syntax highlighter powered by the same language engine that many code editors use.

Shiki is a beautiful syntax highlighter powered by the same language engine that many code editors use. This package allows you to use Shiki from PHP.

Spatie 229 Jan 4, 2023
Official website of Giada Loop Machine. Powered by NodeJS, SASS, Pug and other beautiful JavaScript machineries.

Giada WWW Official website of Giada Loop Machine, proudly powered by NodeJS, SASS, Pug and other beautiful JavaScript machineries. What is Giada? Giad

Monocasual Laboratories 14 Oct 7, 2022
BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the project website for more information.

BaiCloud-cms About BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the

null 5 Aug 15, 2022
List of high-ranking websites powered by WordPress (everything but news and blogs)

Powered By WordPress About 25% of the web is powered by WordPress. A big majority of these sites are private blogs but also heavy-weights such as Sony

MB 19 Dec 23, 2022
Pico is a stupidly simple, blazing fast, flat file CMS.

Pico Pico is a stupidly simple, blazing fast, flat file CMS. Visit us at http://picocms.org/ and see http://picocms.org/about/ for more info. Screensh

null 3.6k Jan 5, 2023
Pico is a stupidly simple, blazing fast, flat file CMS.

Pico is a stupidly simple, blazing fast, flat file CMS.

null 3.6k Jan 5, 2023
Pico is a stupidly simple, blazing fast, flat file CMS.

Pico is a stupidly simple, blazing fast, flat file CMS.

null 15 Jul 30, 2022
Herbie is a simple Flat-File CMS- und Blogsystem based on human readable text files

Herbie is a simple Flat-File CMS- und Blogsystem based on human readable text files

HERBIE 63 Nov 13, 2022
Easily manage git hooks in your composer config

composer-git-hooks Manage git hooks easily in your composer configuration. This command line tool makes it easy to implement a consistent project-wide

Ezinwa Okpoechi 985 Jan 3, 2023
Snuffleupagus is a PHP 7+ and 8+ module designed to drastically raise the cost of attacks against websites, by killing entire bug classes

Snuffleupagus is a PHP 7+ and 8+ module designed to drastically raise the cost of attacks against websites, by killing entire bug classes

Julien Voisin 625 Jan 3, 2023