All Versions
336
Latest Version
Avg Release Cycle
7 days
Latest Release
839 days ago
Changelog History
Page 22
Changelog History
Page 22
-
v3.3.4.1 Changes
September 17, 2019π Fixed
- π Fixed a bug where elements with enabled Lightswitch fields werenβt getting returned in element queries. (#4951)
-
v3.3.3 Changes
September 12, 2019π Changed
- The GraphQL API now prebuilds the schema for all introspection queries, regardless of whether Dev Mode is enabled.
π Fixed
- π Fixed a bug where Craft was ignoring the
invalidUserTokenPath
request when it was set to an empty string. (#1998) - π Fixed a bug where the
invalidUserTokenPath
was affecting Control Panel requests. - π Fixed a bug where revisions werenβt being sorted correctly in Structure sections.
- π Fixed a bug where Edit Entry pages werenβt working with certain versions of PHP if the userβs preferred language was set to French. (#4930)
-
v3.3.2 Changes
September 11, 2019β Added
- β Added the
graphql/dump-schema
andgraphql/print-schema
commands. (#4834) - Itβs now possible to access a
parent
field on entries and categories when querying the GraphQL API. (#4880) - π± Itβs now possible to apply transforms to assets via
url
field arguments when querying the GraphQL API.
π Changed
- Craft now resets the
dateCreated
attribute when duplicating elements. (#4906) - Itβs no longer possible to access the
author
field for entries when querying the GraphQL API, if the schema doesnβt include user data. - Itβs no longer possible to access the
photo
field for users when querying the GraphQL API, if the schema doesnβt include the user photo volume.
π Fixed
- π Fixed a bug where Lightswitch fields werenβt returning a boolean value for the GraphQL API.
- π Fixed a bug where
craft\web\View::renderString()
andrenderObjectTemplate()
could leave Craft set to thesite
template mode if an error occurred when preparing or rendering the template. (#4912) - π Fixed a bug where the Plugin Store wasnβt applying edition upgrade pricing for plugins if the higher edition was already installed as a trial.
- β Added the
-
v3.3.1 Changes
September 06, 2019β Added
- β Added support for setting
offset
andlimit
params to individual pathsβ criteria when eager loading elements. - β Added the
enableGql
config setting. (#4836) - β Added the
children
field to theEntryInterface
andCategoryInterface
GraphQL types. (#4843) - β Added the
markdown
GraphQL directive. (#4832)
π Changed
- Preview target URIs can now be set to environment variables (e.g.
$NEWS_INDEX
) or URLs that begin with an alias (e.g.@rootUrl/news
or@rootUrl/news/{slug}
). - π Templates passed to
craft\web\View::renderString()
andrenderObjectTemplate()
can now include front-end templates. - 0οΈβ£ Element queries with the
revisions
param set will now return revisions ordered bynum DESC
by default. (#4825) graphql/api
responses now set theAccess-Control-Allow-Headers: Content-Type
header for preflight requests.- Craft no longer forces preview target URLs to use
https
if the current request is over SSL. (#4867)
β Removed
- β Removed
craft\elements\MatrixBlock::getField()
. (#4882)
π Fixed
- π Fixed a bug where Number fields werenβt showing validation errors when non-numeric values were entered. (#4849)
- π Fixed an error that occurred when accessing the GraphQL section in the Control Panel if the
allowAdminChanges
config setting was disabled. (#4884) - π Fixed an error that could occur when executing a GraphQL query if a Matrix field had been converted to a different field type. (#4848)
- π Fixed a deprecation warning when running tests in PhpStorm. (#4772)
- π Fixed an SQL error that occurred when eager loading children for an element that wasnβt in a structure.
- π Fixed a bug that could cause queue jobs to fail when they were run automatically by Craft, if the
enableCsrfProtection
config setting was disabled. (#4854) - π Fixed an error that could occur if the
select
clause had been completely overridden on an element query, but theasArray
param wasnβt enabled. (#4886) - π Fixed a bug where Craft wasnβt always respecting the site-specific status when saving new entries. (#4892)
- β Added support for setting
-
v3.3.1.2 Changes
September 08, 2019π Fixed
- π Fixed an error that occurred after saving an element with a validation error. (#4898)
-
v3.3.1.1 Changes
September 06, 2019π Changed
graphql/api
preflight responses now explicitly allowAuthorization
headers. (#4830)- β‘οΈ Updated Garnish to 0.1.30.
π Fixed
- π Fixed a bug where selecting Matrix blocks would cause the content container to scroll. (#3762)
- π Fixed an error that occurred if Stringy 5.2 was installed.
-
v3.3.0 Changes
August 27, 2019β Added
- β Added a built-in, autogenerated GraphQL API for content (Craft Pro only). (#4540)
- β Added βHeadless Modeβ, which optimizes the system and Control Panel for headless CMS implementations.
- Itβs now possible to create Single sections without URLs. (#3883)
- β Added the
hiddenInput()
Twig function, which generates a hidden input tag. - β Added the
input()
Twig function, which generates an input tag. - β Added the
tag()
Twig function, which generates an HTML tag. - β Added the
|attr
Twig filter, which modifies the attributes on an HTML tag. (#4660) - β Added the
|append
and|prepend
Twig filters, which add new HTML elements as children of an HTML tag. (#3937) - β Added the
headlessMode
config setting. - β Added the
purgeStaleUserSessionDuration
config setting. - π» Admin users can now opt into getting the full stack trace view when an uncaught exception occurs when Dev Mode isnβt enabled. (#4765)
- Admin users can now opt into having Twig templates profiled when Dev Mode isnβt enabled.
- β Added the
graphql/api
controller action. - β Added
craft\base\ApplicationTrait::getGql()
. - β Added
craft\base\EagerLoadingFieldInterface::getEagerLoadingGqlConditions()
. - β Added
craft\base\ElementInterface::getGqlTypeName()
. - β Added
craft\base\ElementInterface::gqlScopesByContext()
. - β Added
craft\base\ElementInterface::gqlTypeNameByContext()
. - β Added
craft\base\Field::getEagerLoadingGqlConditions()
. - β Added
craft\base\FieldInterface::getContentGqlType()
. - β Added
craft\base\GqlInlineFragmentFieldInterface
. - β Added
craft\base\GqlInlineFragmentInterface
. - β Added
craft\controllers\GraphqlController
. - β Added
craft\errors\GqlException
. - β Added
craft\events\RegisterGqlDirectivesEvent
. - β Added
craft\events\RegisterGqlQueriesEvent
. - β Added
craft\events\RegisterGqlTypesEvent
. - β Added
craft\gql\arguments\elements\Asset
. - β Added
craft\gql\arguments\elements\Category
. - β Added
craft\gql\arguments\elements\Entry
. - β Added
craft\gql\arguments\elements\GlobalSet
. - β Added
craft\gql\arguments\elements\MatrixBlock
. - β Added
craft\gql\arguments\elements\Tag
. - β Added
craft\gql\arguments\elements\User
. - β Added
craft\gql\base\Arguments
. - β Added
craft\gql\base\Directive
. - β Added
craft\gql\base\ElementArguments
. - β Added
craft\gql\base\ElementResolver
. - β Added
craft\gql\base\GeneratorInterface
. - β Added
craft\gql\base\GqlTypeTrait
. - β Added
craft\gql\base\InterfaceType
. - β Added
craft\gql\base\ObjectType
. - β Added
craft\gql\base\Query
. - β Added
craft\gql\base\Resolver
. - β Added
craft\gql\base\StructureElementArguments
. - β Added
craft\gql\directives\FormatDateTime
. - β Added
craft\gql\directives\Transform
. - β Added
craft\gql\GqlEntityRegistry
. - β Added
craft\gql\interfaces\Element
. - β Added
craft\gql\interfaces\elements\Asset
. - β Added
craft\gql\interfaces\elements\Category
. - β Added
craft\gql\interfaces\elements\Entry
. - β Added
craft\gql\interfaces\elements\GlobalSet
. - β Added
craft\gql\interfaces\elements\MatrixBlock
. - β Added
craft\gql\interfaces\elements\Tag
. - β Added
craft\gql\interfaces\elements\User
. - β Added
craft\gql\interfaces\Structure
. - β Added
craft\gql\queries\Asset
. - β Added
craft\gql\queries\Category
. - β Added
craft\gql\queries\Entry
. - β Added
craft\gql\queries\GlobalSet
. - β Added
craft\gql\queries\Ping
. - β Added
craft\gql\queries\Tag
. - β Added
craft\gql\queries\User
. - β Added
craft\gql\resolvers\elements\Asset
. - β Added
craft\gql\resolvers\elements\Category
. - β Added
craft\gql\resolvers\elements\Entry
. - β Added
craft\gql\resolvers\elements\GlobalSet
. - β Added
craft\gql\resolvers\elements\MatrixBlock
. - β Added
craft\gql\resolvers\elements\Tag
. - β Added
craft\gql\resolvers\elements\User
. - β Added
craft\gql\TypeLoader
. - β Added
craft\gql\types\DateTime
. - β Added
craft\gql\types\elements\Asset
. - β Added
craft\gql\types\elements\Category
. - β Added
craft\gql\types\elements\Element
. - β Added
craft\gql\types\elements\Entry
. - β Added
craft\gql\types\elements\GlobalSet
. - β Added
craft\gql\types\elements\MatrixBlock
. - β Added
craft\gql\types\elements\Tag
. - β Added
craft\gql\types\elements\User
. - β Added
craft\gql\types\generators\AssetType
. - β Added
craft\gql\types\generators\CategoryType
. - β Added
craft\gql\types\generators\ElementType
. - β Added
craft\gql\types\generators\EntryType
. - β Added
craft\gql\types\generators\GlobalSetType
. - β Added
craft\gql\types\generators\MatrixBlockType
. - β Added
craft\gql\types\generators\TableRowType
. - β Added
craft\gql\types\generators\TagType
. - β Added
craft\gql\types\generators\UserType
. - β Added
craft\gql\types\Query
. - β Added
craft\gql\types\TableRow
. - β Added
craft\helpers\App::webResponseConfig()
. - β Added
craft\helpers\ArrayHelper::whereMultiple()
. - β Added
craft\helpers\ElementHelper::sourceElement()
. - β Added
craft\helpers\Gql
. - β Added
craft\helpers\Html::a()
. - β Added
craft\helpers\Html::actionInput()
. - β Added
craft\helpers\Html::appendToTag()
. - β Added
craft\helpers\Html::csrfInput()
. - β Added
craft\helpers\Html::modifyTagAttributes()
. - β Added
craft\helpers\Html::normalizeTagAttributes()
. - β Added
craft\helpers\Html::parseTag()
. - β Added
craft\helpers\Html::parseTagAttributes()
. - β Added
craft\helpers\Html::prependToTag()
. - β Added
craft\helpers\Html::redirectInput()
. - β Added
craft\helpers\StringHelper::afterFirst()
. - β Added
craft\helpers\StringHelper::afterLast()
. - β Added
craft\helpers\StringHelper::append()
. - β Added
craft\helpers\StringHelper::appendRandomString()
. - β Added
craft\helpers\StringHelper::appendUniqueIdentifier()
. - β Added
craft\helpers\StringHelper::at()
. - β Added
craft\helpers\StringHelper::beforeFirst()
. - β Added
craft\helpers\StringHelper::beforeLast()
. - β Added
craft\helpers\StringHelper::capitalizePersonalName()
. - β Added
craft\helpers\StringHelper::count()
. - β Added
craft\helpers\StringHelper::dasherize()
. - β Added
craft\helpers\StringHelper::endsWithAny()
. - β Added
craft\helpers\StringHelper::escape()
. - β Added
craft\helpers\StringHelper::extractText()
. - β Added
craft\helpers\StringHelper::htmlDecode()
. - β Added
craft\helpers\StringHelper::htmlEncode()
. - β Added
craft\helpers\StringHelper::humanize()
. - β Added
craft\helpers\StringHelper::is()
. - β Added
craft\helpers\StringHelper::isBase64()
. - β Added
craft\helpers\StringHelper::isBlank()
. - β Added
craft\helpers\StringHelper::isHexadecimal()
. - β Added
craft\helpers\StringHelper::isHtml()
. - β Added
craft\helpers\StringHelper::isJson()
. - β Added
craft\helpers\StringHelper::isSerialized()
. - β Added
craft\helpers\StringHelper::isUtf8()
. - β Added
craft\helpers\StringHelper::isWhitespace()
. - β Added
craft\helpers\StringHelper::lastSubstringOf()
. - β Added
craft\helpers\StringHelper::lineWrapAfterWord()
. - β Added
craft\helpers\StringHelper::pad()
. - β Added
craft\helpers\StringHelper::padBoth()
. - β Added
craft\helpers\StringHelper::padLeft()
. - β Added
craft\helpers\StringHelper::padRight()
. - β Added
craft\helpers\StringHelper::removeHtml()
. - β Added
craft\helpers\StringHelper::removeHtmlBreak()
. - β Added
craft\helpers\StringHelper::repeat()
. - β Added
craft\helpers\StringHelper::replaceAll()
. - β Added
craft\helpers\StringHelper::replaceBeginning()
. - β Added
craft\helpers\StringHelper::replaceEnding()
. - β Added
craft\helpers\StringHelper::replaceFirst()
. - β Added
craft\helpers\StringHelper::replaceLast()
. - β Added
craft\helpers\StringHelper::safeTruncate()
. - β Added
craft\helpers\StringHelper::shortenAfterWord()
. - β Added
craft\helpers\StringHelper::shuffle()
. - β Added
craft\helpers\StringHelper::slice()
. - β Added
craft\helpers\StringHelper::slugify()
. - β Added
craft\helpers\StringHelper::split()
. - β Added
craft\helpers\StringHelper::startsWithAny()
. - β Added
craft\helpers\StringHelper::stripCssMediaQueries()
. - β Added
craft\helpers\StringHelper::stripEmptyHtmlTags()
. - β Added
craft\helpers\StringHelper::stripHtml()
. - β Added
craft\helpers\StringHelper::stripWhitespace()
. - β Added
craft\helpers\StringHelper::substringOf()
. - β Added
craft\helpers\StringHelper::surround()
. - β Added
craft\helpers\StringHelper::tidy()
. - β Added
craft\helpers\StringHelper::titleizeForHumans()
. - β Added
craft\helpers\StringHelper::toBoolean()
. - β Added
craft\helpers\StringHelper::toSpaces()
. - β Added
craft\helpers\StringHelper::toTabs()
. - β Added
craft\helpers\StringHelper::toTransliterate()
. - β Added
craft\helpers\StringHelper::trimLeft()
. - β Added
craft\helpers\StringHelper::trimRight()
. - β Added
craft\helpers\StringHelper::upperCamelize()
. - β Added
craft\helpers\StringHelper::upperCaseFirst()
. - β Added
craft\helpers\Template::beginProfile()
. - β Added
craft\helpers\Template::endProfile()
. - β Added
craft\helpers\UrlHelper::buildQuery()
. - β Added
craft\model\MatrixBlockType::getField()
. - β Added
craft\models\GqlSchema
. - β Added
craft\records\GqlSchema
. - β Added
craft\services\Fields::getGroupByUid()
. - β Added
craft\services\Gql
. - β Added
craft\services\Matrix::getAllBlockTypes()
. - β Added
craft\services\Sections::getAllEntryTypes()
. - β Added
craft\web\assets\graphiql\GraphiqlAsset
. - β Added
craft\web\assets\graphiql\VendorAsset
. - β Added
craft\web\twig\nodes\ProfileNode
. - β Added
craft\web\twig\nodevisitors\Profiler
.
π Changed
- 0οΈβ£ Relational fields without a specific target site will now only return related elements from the same site as the source element by default, as they did before Craft 3.2. (#4751)
- 0οΈβ£ Element arrays no longer include
hasDescendants
ortotalDescendants
keys by default. (#4820) - 0οΈβ£ Matrix block queries no longer include blocks owned by drafts or revisions by default. (#4790)
- βͺ Entriesβ drafts and revisions are now soft-deleted and restored along with their source elements. (#4797)
- Global set reference tags can now refer to the global set by its handle. (#4645)
- π Improved Twig template profiling to include blocks and macros.
- Twig template profiling no longer occurs when Dev Mode isnβt enabled, unless an admin user is logged in and has opted into it.
- π The
actionInput()
,csrfInput()
, andredirectInput()
Twig functions now support anoptions
argument for customizing the HTML tag attributes. - β The
_layouts/forms/field.html
template now supportslabel
,instructions
,tip
,warning
, andinput
blocks that can be overridden when including the template with an{% embed %}
tag. - π Editable tables now support a
fullWidth
setting, which can be set tofalse
to prevent the table from spanning the full width of the page. - π Editable tables now support
thin
column settings. - π Editable tables now support
headingHtml
column settings. - π Craft no longer overrides the base Twig template class, unless the now-deprecated
suppressTemplateErrors
config setting is enabled. (#4755) - β‘οΈ Edit Entry pages now get updated preview target URLs after saving a draft, in case the URLs have changed.
- The confirmation dialog that can appear after running the Asset Indexes utility no longer will close by pressing the Esc key or clicking outside of the modal. (#4795)
- β Section and Matrix βPropagation Methodβ settings now display warnings about the potential for data loss when appropriate.
- β Site group settings now display a warning about the potential for data loss.
- Control Panel subnav items can now have badge counts. (#4756)
- π Improved the performance of element duplication on multi-site installs.
- π Improved the performance of
craft\web\View::renderString()
for templates that donβt contain any Twig code. craft\behaviors\DraftBehavior::getCreator()
can now returnnull
.- π
craft\helpers\Db::parseParam()
now has an optional$columnType
argument. (#4807) - β
craft\test\TestSetup::setupCraftDb()
no longer accepts a second argument. Ensure thatcraft\test\Craft::$testConfig
is set before calling this function. (#4804) - π
craft\web\Request::post()
andgetBodyParam()
will now work with posted JSON data, if the requestβs content type is set toapplication/json
. - Switched from the
stringy/stringy
library tovoku/stringy
. (#4753)
π Deprecated
- π Deprecated the
suppressTemplateErrors
config setting. - π Deprecated
craft\services\Sections::isSectionTemplateValid()
. - π Deprecated
craft\web\twig\Template
.
β Removed
- β Removed
craft\base\ElementInterface::getSource()
. (#4754) - β Removed
craft\web\twig\Extension::actionInputFunction()
. - β Removed
craft\web\twig\Extension::csrfInputFunction()
. - β Removed
craft\web\twig\Extension::redirectInputFunction()
.
π Fixed
- π Fixed an error that could occur if garbage collection was run while Craft 3.2 migrations were pending. (#4720)
- π Fixed a bug where the βPublish live changes for other authorsβ entriesβ permission was being enforced when saving another authorβs entry as a new entry. (#4758)
- π Fixed a bug where
craft\helpers\UrlHelper
methods would strip out array params in the query string. (#4778) - π Fixed a SQL error that occurred when a
{% cache %}
tag was used on a page with a 4-byte character in the URI. (#4780) - π Fixed a bug where Craft could show a nondescript error when navigating away from a Control Panel page if an Ajax request was currently in progress. (#4796)
- π Fixed an error that occurred when editing an entry with a draft that was created by a soft-deleted user. (#4800)
- π Fixed a bug where entry revisions and drafts would be deleted when the user that created them was hard-deleted.
- π Fixed a SQL error that could occur when executing an element query that had custom
JOIN
andWHERE
clauses if thesearch
param was also set. (#4788) - π Fixed a bug where default field values werenβt being applied to Matrix blocks that were autocreated per the Min Blocks setting. (#4806)
- π Fixed Plugin Store dropdowns which were not working properly with Windows Edge browsers.
- π Fixed a SQL error that could occur when
:empty:
ornot :empty:
was passed to a date param on an element query when running MySQL 8. (#4808) - π Fixed a bug where Dropdown and Multi-select fieldsβ Dropdown Options settings werenβt autofocusing on the first input when adding a new row with the keyboard. (#4823)
-
v3.3.0.1 Changes
August 27, 2019 -
v3.2.10 Changes
August 13, 2019β Added
- β Added
craft\fields\BaseRelationField::settingsTemplateVariables()
. (#4732) - β Added
craft\services\Search::deleteOrphanedIndexes()
. - β Added
craft\validators\UriFormatValidator::$disallowTriggers
. - β Added the
Craft.startsWith()
JavaScript method.
π Changed
- π Improved garbage collection performance when hard-deleting hundreds of thousands of elements. (#4735)
- Element queriesβ
title
param will now accept a value of'0'
. craft\services\Elements::deleteElementById()
now has a$hardDelete
argument. (#4747)- Itβs no longer possible to save routes or URI formats that begin with the
actionTrigger
orcpTrigger
config settings. (#4154) - Categories fieldsβ selection modals now show the site menu. (#4749)
β Removed
- β Removed
craft\records\Route
.
π Fixed
- π Fixed a bug where Entry fixtures wouldnβt get unloaded. (#4663)
- π Fixed a bug where entry content wouldnβt get propagated to other sites if an entry was created and then saved before Craft had finished autosaving the draft. (#4423)
- π Fixed a bug where entry forms could miss the fact that a Matrix block had been deleted. (#4727)
- Fixed a PHP error that could occur on environments where the Intl PHP extension was installed but the
IDNA_NONTRANSITIONAL_TO_ASCII
orINTL_IDNA_VARIANT_UTS46
constants werenβt defined. (#4722) - π Fixed a PHP error that could occur if a plugin was configured with settings even though it didnβt support settings. (#4706)
- π Fixed an error that occurred when a validation error occurred on an entry while it was being created or updated from a draft. (#4733)
- π Fixed an infinite recursion bug that could occur when validating circular relations. (#4482)
- π Fixed a bug where elements with a title of β0β would show their ID instead of their title in element indexes and relational fields. (#4745)
- π Fixed a bug where Craft was redirecting to the Dashboard when attempting to export elements, if the
tokenParam
config setting was set to something besidestoken
. (#4737)
- β Added
-
v3.2.9 Changes
August 06, 2019β Added
- β Added the
ignorePlaceholders
element query param. - β Added the
cp.entries.edit.meta
andcp.entries.edit.settings
template hooks to the Edit Entry page. - β Added
craft\base\ElementInterface::getSource()
. - β Added
craft\base\ElementTrait::$newSiteIds
. - β Added
craft\models\Site::$dateCreated
and$dateUpdated
. (#4703)
π Changed
- π Improved the Control Panel header styling for mobile and on pages with long titles. (#4548)
- Element references in the Control Panel now reveal the site the element was fetched from in their tooltips, on multi-site installs. (#4690)
- Element editor HUDs now always show a header with the elementβs site name on multi-site installs, even if the element is only editable in one site. (#4690)
- 0οΈβ£ Entry preview tokens now respect the
defaultTokenDuration
config setting, rather than always expiring after 24 hours. (#4683) - π Improved disabled select field styling. (#4709)
π Deprecated
- π Deprecated
craft\behaviors\DraftBehavior::getSource()
. - π Deprecated
craft\behaviors\RevisionBehavior::getSource()
.
π Fixed
- π Fixed a bug where elements listed in a Structure view could be missing their descendant toggles even if all of their descendants were disabled. (#4685)
- π Fixed a bug where element CSV exports were limited to 50 elements if no limit was set. (#4692)
- π Fixed a 400 error that occurred when submitting an entry form that didnβt have an
entryId
param. (#4693) - π Fixed a bug where
craft\base\Element::getDescendants()
and other structure methods could return the wrong results when called on a draft. (#4694) - π Fixed a bug where Matrix blocks werenβt getting duplicated to newly-enabled sites for elements if the fieldβs Propagation Method setting wasnβt set to βSave blocks to all sites the owner element is saved inβ. (#4698)
- π Fixed a bug where the Database Backup could result in a 404 error on load-balanced environments. (#4699)
- π Fixed a bug where the βCurrentβ entry revision link wouldnβt always work. (#4705)
- Fixed a bug where the
craft\services\Search::EVENT_AFTER_SEARCH
event wasnβt always firing. (#4710) - π Fixed a bug where
craft\services\Users::purgeExpiredPendingUsers()
was attempting to delete already-trashed users.
π Security
- π Fixed an XSS vulnerability.
- β Added the