A class representing back actions.
Special request handler for admin/batchaction
The object manages the main CMS menu. See {@link LeftAndMain::init()} for example usage.
A simple CMS menu item.
Abstract form builder for insert link form
Imports {@link Group} records by CSV upload, as defined in {@link GroupCsvBulkLoader}.
LeftAndMain is the parent class of all the two-pane views in the CMS.
Plug-ins for additional functionality in your LeftAndMain classes.
Allows CMS forms to be decorated with additional context arguments.
Allow overriding finished state for faux redirects.
Abstract interface for a class which may be used to filter the results displayed in a nested tree
Imports {@link Member} records by CSV upload, as defined in {@link MemberCsvBulkLoader}.
Parent controller for all CMS-global modals
Generates a three-pane UI for editing model classes, with an automatically generated search panel, tabular results and edit forms.
Security section of the CMS
Delete multiple {@link Folder} records (and the associated filesystem nodes).
AssetAdmin is the 'file store' section of the CMS.
Update File dataobjects to be editable in this asset admin
Extension that updates the Popover menu of FileFormFactory.
Decorates ModalController with an insert-oembed modal
Scaffolds a form for searching files
Empty form factory, because the defaults from AssetFormFactory was enough
History view for file editor form
For providing schema data to the client side to build a preview field with upload replacement feature
Represents a file upload field with ReactJS based frontend.
API available but currently not used, as create folder uses FormBuilder
Handles create and update
Handles create and update
Encapsulation of an embed tag, linking to an external media source.
Generate thumbnails and thumbnail links
This class provides the necessary business logic to ensure that any assets attached to a record are safely deleted, published, or protected during certain operations.
Provides a mechanism for determining the effective visibility of a set of assets (identified by filename and hash), given their membership to objects of varying visibility.
This class handles the representation of a file on the filesystem within the framework.
Permissions for root files with Can*Type = Inherit
A utility class that finds any files matching a set of rules that are present within a directory tree.
Service to help migrate File dataobjects to the new APL.
Filter certain characters from file name, for nicer (more SEO-friendly) URLs as well as better filesystem compatibility. Can be used for files and folders.
A collection of static methods for manipulating the filesystem.
Adapter for local filesystem based on assets directory
Asset store based on flysystem Filesystem as a backend
Simple Flysystem implementation of GeneratedAssetHandler for storing generated content
An adapter which does not publicly expose protected files
Represents an AbstractAdapter which exposes its assets via public urls
Represents a logical folder, which may be used to organise assets stored in the configured backend.
Represents an Image
Creates backends for images as necessary, avoiding redundant asset writes and loads
Provides image manipulation functionality.
Provides shortcodes for File dataobject
Class ImageShortcodeProvider
Represents a container for a specific asset.
Provides a mechanism for suggesting filename alterations to a file
Represents an abstract asset persistence layer. Acts as a backend to files.
Represents a store usable with ProtectedFileController to serve up non-direct file requests
Represents a file reference stored in a database
Basic filename renamer
Interface to define a handler for persistent generated files
Provides routing for session-whitelisted protected files
An object which may have a thumbnail url
Manages uploads via HTML forms processed by PHP, uploads to Silverstripe's default upload directory, and either creates a new or uses an existing File-object for syncing with the database.
Delete items batch action.
Publish items batch action.
Batch restore of pages
Unpublish items batch action.
The main "content" area of the CMS.
Base class for filtering the subtree for certain node statuses.
Gets all pages which have changed on stage.
Works a bit different than the other filters: Shows all pages including those deleted from stage and live.
This filter will display the SiteTree as a site visitor might see the site, i.e only the pages that is currently published.
Filters pages which have a status "Deleted".
Filters pages which have a status "Draft".
Filters pages which have a status "Removed from Draft".
The most common kind of controller; effectively a controller linked to a {@link DataObject}.
Extension to include custom page icons
ModelAsController deals with mapping the initial request to the first {@link SiteTree}/{@link ContentController} pair, which are then used to handle the request.
Utility class representing links to different views of a record for CMS authors, usually for {@link SiteTree} objects with "stage" and "live" links.
Navigator items are links that appear in the $SilverStripeNavigator bar.
Assists with selecting anchors on a given page
Provides a form factory for inserting internal page links in a HTML editor
Decorates ModalController with insert internal link
Used to edit the SiteTree->URLSegment property, and suggest input based on the serverside rules defined through {@link SiteTree->generateURLSegment()} and {@link URLSegmentFilter}.
Readonly version of a site tree URL segment field
This interface lets us set up objects that will tell us what the current page is.
A redirector page redirects when the page is visited.
Controller for the {@link RedirectorPage}.
Basic data-object representing all pages within the site tree. All page types that live within the hierarchy should inherit from this. In addition, it contains a number of static methods for querying the site tree and working with draft and published states.
Plug-ins for additional functionality in your SiteTree classes.
Extension applied to {see File} object to track links to {see SiteTree} records.
Extension applied to {see FileFormFactory} to decorate with a "Used on:" information area.
Adds tracking of links in any HTMLText fields which reference SiteTree or File items.
A helper object for extracting information about links.
Virtual Page creates an instance of a page, with the same fields that the original page had, but readonly.
Content side-report listing pages with broken links
Extension to provide a search interface when applied to ContentController
Standard basic search form which conducts a fulltext search on all {@link SiteTree} objects.
Rewrites plain internal HTML links into shortcode form, using existing link tracking information.
Identify "orphaned" pages which point to a parent that no longer exists in a specific stage.
Class AddToCampaignHandler - handle the AddToCampaign action.
A form action to return from geCMSActions or otherwise include in a CMS Edit Form that has the right action name and CSS classes to trigger the AddToCampaignHandler.
Campaign section of the CMS
Warning: Volatile API as placeholder for standard "GridField"
This represents a colletction of config keys and values.
Applies config modifications as a set of deltas on top of the middleware, instead of as modifications to the underlying list.
Basic mutable config collection stored in memory
Applies a set of user-customised modifications to config
Abstract flag-aware middleware
CLI specific request building logic
Base class invoked from CLI rather than the webserver (Cron jobs, handling email bounces).
The content negotiator performs "text/html" or "application/xhtml+xml" switching. It does this through the public static function ContentNegotiator::process(). By default, ContentNegotiator will comply to the Accept headers the clients sends along with the HTTP request, which is most likely "application/xhtml+xml" (see "Order of selection" below).
Controllers are the cornerstone of all site functionality in SilverStripe. The {@link Director} selects a controller to pass control to, and then calls {@link handleRequest()}. This method will execute the appropriate action - either by calling the action method, or displaying the action's template.
A set of static methods for manipulating cookies.
A default backend for the setting and getting of cookies
The Cookie_Backend interface for use with Cookie::$inst.
Director is responsible for processing URLs, and providing environment information.
Class to support sending emails.
Mailer objects are responsible for actually sending emails.
A class with HTTP-related helpers. Like Debug, this is more a bundle of methods than a class.
Invokes the HTTP application within an ErrorControlChain
Represents a HTTP-request, including a URL that is tokenised for parsing, and a request method (GET/POST/PUT/DELETE). This is used by {@link RequestHandler} objects to decide what to do.
Represents a response returned by a controller.
A {@link HTTPResponse} encapsulated in an exception, which can interrupt the processing flow and be caught by the {@link RequestHandler} and returned to the user.
A response which contains a streamable data source.
Indicator for a class which cannot handle requests directly, but is able to generate a delegate for those requests.
Secures requests by only allowing a whitelist of Host values
Allows events to be registered and passed through middleware.
Triggers a call to flush() on all implementors of Flushable.
HTTP Request middleware Based on https://github.com/php-fig/fig-standards/blob/master/proposed/http-middleware/middleware.md#21-psrhttpservermiddlewaremiddlewareinterface
Adds middleware support to an object.
Decorates a request handler with the HTTP Middleware pattern
This middleware will rewrite headers that provide IP and host details from an upstream proxy.
Interface that is implemented by controllers that are designed to hand control over to another controller.
Implements the "Null Object" pattern for a missing http request.
Handle the X-Pjax header that AJAX responses may provide, returning the fragment, or, in the case of non-AJAX form submissions, redirecting back to the submitter.
RSSFeed class
RSSFeed_Entry class
RequestFilter deprecated
A request filter is an object that's executed before and after a request occurs. By returning 'false' from the preRequest method, request execution will be stopped from continuing
This class is the base class of any SilverStripe object that can be used to handle HTTP requests.
RequestProcessor deprecated
Middleware that provides back-support for the deprecated RequestFilter API.
Handles all manipulation of the session.
Generate URLs assuming that BASE_PATH is also the webroot Standard SilverStripe 3 operation
Http utility functions.
Identifies a class as a root silverstripe application
Returns the most performant combination of caches available on the system: - PhpFilesCache (PHP 7 with opcache enabled) - ApcuCache (requires APC) with a FilesystemCache fallback (for larger cache volumes) - FilesystemCache if none of the above is available
Assists with building of manifest cache prior to config being available
Defines a service that can flush its cache for a list of members
Provides introspection information about the class tree.
Registers config sources via ConfigCollectionInterface
Provides extensions to this object to integrate it with standard config API methods.
Factory for silverstripe configs
Library of conversion functions, implemented as static methods.
Simple Kernel container
Allows an object to declare a set of custom methods
Consolidates access and modification of PHP global variables and settings.
Loads environment variables from .env files Loosely based on https://github.com/vlucas/phpdotenv/blob/master/src/Loader.php
Allows an object to have extensions applied to it.
Add extension that can be added to an object with {@link Object::add_extension()}.
Provides an interface for classes to implement their own flushing functionality whenever flush=1 is requested.
An AfterCallAspect is run after a method is executed
A class that proxies another, allowing various functionality to be injected.
A BeforeCallAspect is run before a method is executed.
A factory which is used for creating service instances.
A class that can be instantiated or replaced via DI
A class for creating new objects by the injector.
A simple injection manager that manages creating objects and injecting dependencies between them. It borrows quite a lot from ideas taken from Spring's configuration, but is adapted to the stateless PHP way of doing things.
Registers chained injectors
Used to locate configuration for a particular named service.
Use the SilverStripe configuration system to lookup config for a particular service.
Represents the core state of a SilverStripe application Based loosely on symfony/http-kernel's KernelInterface component
Class ClassContentRemover
A class that handles loading classes and interfaces from a class manifest instance.
A utility class which builds a manifest of all classes, interfaces and caches it.
An extension to the default file finder with some extra filters to faciliate autoload and template manifest generation: - Only modules with _config.php files are scanned.
Module manifest holder
A utility class which builds a manifest of configuration items
This object represents a single resource file attached to a module, and can be used as a reference to this to be later turned into either a URL or file path.
Helper for mapping module resources to paths / urls
Sorts an associative array of items given a list of priorities, where priorities are the keys of the items in the order they are desired.
Generate URLs for client-side assets and perform any preparation of those assets needed.
The version provider will look up configured modules and examine the composer.lock file to find the current version installed for each. This is used for the logo title in the CMS via {@link LeftAndMain::CMSVersion()}
Path manipulation helpers
Represents a class with a local cache which normally invalidates itself between requests.
Class ErrorControlChain
Decorates application bootstrapping with errorcontrolchain
Specialised Director class used by ErrorControlChain to handle error and redirect conditions
Class ParameterConfirmationToken
Guesses location for temp folder
Backtrace helper
Interface for a generic build task. Does not support dependencies. This will simply run a chunk of code when called.
A base for bulk loaders of content into the SilverStripe database.
Encapsulates the result of a {@link BulkLoader} import (usually through the {@link BulkLoader->processAll()} method).
Class to facilitate command-line output.
CSSContentParser enables parsing & assertion running of HTML content via CSS selectors.
Class to handle parsing of CSV files, where the column headers are in the first row.
A basic HTML wrapper for stylish rendering of a developement info view.
Constraint for checking if a SS_List contains items matching the given key-value pairs.
Constraint for checking if a SS_List contains only items matching the given key-value pairs. Each match must correspond to 1 distinct record.
Constraint for checking if every item in a SS_List matches a given match, e.g. every Member has isActive set to true
Constraint for checking if a ViewableData (e.g. ArrayData or any DataObject) contains fields matching the given key-value pairs.
Utility class to facilitate complex CSV-imports by defining column-mappings and custom converters.
Supports debugging and core error handling.
A basic HTML wrapper for stylish rendering of a developement info view.
Handles raising an notice when accessing a deprecated method
Base class for development tools.
A blueprint on how to create instances of a certain {@link DataObject} subclass.
Manages a set of database fixtures for {@link DataObject} records as well as raw database table rows.
SilverStripe-specific testing object designed to support functional testing of your web app. It simulates get/post requests, form submission, and can validate resulting HTML, looking up content by CSS selector.
This class keeps track of the available database adapters and provides a meaning of registering community built adapters in to the installer process.
Interface for database helper classes.
Provides environment settings from the current request + environment
This class checks requirements Each of the requireXXX functions takes an argument which gives a user description of the test.
This installer doesn't use any of the fancy SilverStripe stuff in case it's unsupported.
This is a helper class for the SS installer.
Simple controller that the installer uses to test that URL rewriting is working.
A migration task is a build task that is reversible.
A custom exporter for prettier formatting of SilverStripe specific Objects in PHPUnit's failing test messages.
Returns information about the current site instance.
Test case class for the Sapphire framework.
Manages illegal and required extensions for sapphiretest
Clears flushable / resettable objects
Cleans up and reset global env vars between tests
Handles nesting of kernel before / after tests
Helper for resetting, booting, or cleaning up test state.
Cleans up leftover databases from aborted test executions (starting with ss_tmpdb) Task is restricted to users with administrator rights or running through CLI.
Migrates all 3.x file dataobjects to use the new DBFile field.
Collects i18n strings
Kernel for running unit tests
Classes that implement TestOnly are only to be used during testing
Represents a test usage session of a web-app It will maintain session-state from request to request
Wrapper around HTTPResponse to make it look like a SimpleHTTPResposne
Provides upgrade interface for bootstrapping.
Uses Symfony's YAML component to parse a YAML document (see http://yaml.org).
ErrorPage holds the content for the page of an error response.
Controller for ErrorPages.
Enhances error handling for a controller with ErrorPage generated output
Provides {see ErrorPage}-gnostic error handling
Decorates {see File} with ErrorPage support
Single checkbox field.
Readonly version of a checkbox field - "Yes" or "No".
Displays a set of checkboxes as a logical group.
Base class for all fields that contain other fields.
Two masked input fields, checks for matching passwords.
Renders a text field, validating its input as a currency.
Readonly version of a {@link CurrencyField}.
Readonly version of a {@link CurrencyField}.
Abstract class for all fields without data.
Form used for editing a date stirng
Disabled version of {@link DateField}.
Form field used for editing date time strings.
Default form builder class.
Transformation that disables all the fields on the form.
Dropdown field, created from a select tag.
Text input field with validation for correct email format according to RFC 2822.
Lets you include a nested group of fields inside a template.
A list designed to hold form field instances.
Represents a file type which can be added to a form.
Provides operations for reading and writing uploaded files to/from {see File} dataobject instances.
Base class for all forms.
The action buttons are as well as
A service which can generate a form
Represents a field in a form.
Form component which contains a castable message
A helper class for managing {@link Form} and {@link FormField} HTML template output.
This class represents "transformations" of a form - such as making it printable or making it readonly.
Displays a {@link SS_List} in a grid format.
This class is is responsible for adding objects to another object's has_many and many_many relation, as defined by the {@link RelationList} passed to the {@link GridField} constructor.
This component provides a button for opening the add new form provided by {@link GridFieldDetailForm}.
Adding this class to a {@link GridFieldConfig} of a {@link GridField} adds a button row to that field.
Base interface for all components that can be added to GridField.
Encapsulates a collection of components following the {@link GridFieldComponent} interface. While the {@link GridField} itself has some configuration in the form of setters, most of the details are dealt with through components.
A simple readonly, paginated view of records, with sortable and searchable headers.
Allows editing of records contained within the GridField, instead of only allowing the ability to view records in the GridField.
Allows viewing readonly details of individual records.
Similar to {@link GridFieldConfig_RecordEditor}, but adds features to work on has-many or many-many relationships.
This class is a {@link GridField} component that adds a delete action for objects.
Provides view and edit forms at GridField-specific URLs.
Provides the entry point to editing a single record presented by the {@link GridField}.
Adds an "Export list" button to the bottom of a {@link GridField}.
GridFieldFilterHeader alters the {@link GridField} with some filtering fields in the header of each column.
Adding this class to a {@link GridFieldConfig} of a {@link GridField} adds a footer bar to that field.
Adds a delete action for the gridfield to remove a relationship from group.
Adds a "level up" link to a GridField table, which is useful when viewing hierarchical data. Requires the managed record to have a "getParent()" method or has_one relationship called "Parent".
GridFieldPage displays a simple current page count summary.
GridFieldPaginator paginates the {@link GridField} list and adds controls to the bottom of the {@link GridField}.
Adds an "Print" button to the bottom or top of a GridField.
GridFieldSortableHeader adds column headers to a {@link GridField} that can also sort the columns.
Adding this class to a {@link GridFieldConfig} of a {@link GridField} adds a header title to that field.
A button that allows a user to view readonly details of a record. This is disabled by default and intended for use in readonly {@link GridField} instances.
An action is defined by two things: an action name, and zero or more named arguments.
Add a new column to the table display body, or modify existing columns.
Can modify the data list.
This class is the base class when you want to have an action that alters the state of the {@link GridField}, rendered as a button element.
A GridField manipulator that provides HTML for the header/footer rows, or f or before/after the template.
A component which is used to handle when a {@link GridField} is saved into a record.
Sometimes an action isn't enough: you need to provide additional support URLs for the {@link GridField}.
This class is a snapshot of the current status of a {@link GridField}.
Simple set of data, similar to stdClass, but without the notice-level errors.
Grouped dropdown, using optgroup tags.
A PHP version of TinyMCE's configuration, to allow various parameters to be configured on a site or section basis
A TinyMCE-powered WYSIWYG HTML editor field with image and link insertion and tracking capabilities. Editor fields are created from