Ideally we could do this without session, but pragmatically
we still need it, because of the inflexible routing system,
and because of performance considerations.
Example: The tree is lazy loaded via a generic URL (admin/pages/treeview).
While we could add ?ID=<currentpage> to make the view (more or less) stateless,
it would trigger a full tree reload on every tree navigation action.
Instead, we assume that all "reachable" nodes are already cached,
and simply mark a different one as current. For this to work, we need
shared session state between CMS controllers.
See http://open.silverstripe.org/ticket/7815 for detail.
Related to #7740. The sort field gets stale if the current
record is moved in the tree. Since the sort value can't
be altered by interacting with the form, its not required
as a hidden field, either.
Was fetching the record from live (and its direct URLSegment),
but all of its parents from the current stage, which might be draft,
leading to "mixed" draft/live nested URLs which might no longer
be reachable in live mode.
By renaming fields to "StageLink" and "LiveLink",
which means they don't get influenced by the model getters
on Form->loadDataFrom(). Its also a more accurate
name for the field value, since it contains a full (nested) URL
rather than just a segment. Only used internally, so no API change.
Removed ineffective FieldGroup->subfieldParam setting,
replaced with a specialised template, as well as a new "stacked" styling
(both added to framework codebase)
Installer was feeing the title "Title" to the template. Template
rearranged for usability concerns (people were missing the email and
password when going to the CMS login page)
translations were not added in the same translation group, and the
translation module didn't work. Also commited changes in the translation module, which will need this commit.
Called for each subclass by the collector,
so we don't need to aggregate here.
In fact, its harmful because it causes entities
to be placed in the wrong definitions file.
The <class>.DESCRIPTION entity was always placed in cms/lang/en.yml,
regardless of the original location of the file containing the class.
Allow loading a SiteConfig by ID (by specifying $tree_class),
and pass the ID through with the form data. Unifies processing
with SiteTree, and allows the Translatable module
to use the same logic for interacting with the load/save process.
Mainly to make it compatible with the Translatable
extension linking to existing translations of it,
but also to make it work similarly to the SiteTree logic elsewhere.
- Use DataQuery for generating the search query.
- For custom field matching, use searchcontext rather than a LIKE query.
- Added an extension hook for updating the search form.
The specific situation is if the SearchForm.ss is overriden, and the
$SearchQuery parameter is used in the template. This will throw a Notice
in case the form is rendered without searching.