Add Ons and Modules
Remarks#
Addons and modules are encouraged to be registered with Packagist which then means they are found and registered with the SilverStripe add-on repository
Installation of modules is recommended through use of Composer
SilverStripe Grid Field Extensions Module
The SilverStripe Grid Field Extensions Module has some very nice features to enhance the basic GridField
…
GridFieldAddExistingSearchButton
- a more advanced search form for adding itemsGridFieldAddNewInlineButton
- builds onGridFieldEditableColumns
to allow inline creation of records.GridFieldAddNewMultiClass
- lets the user select from a list of classes to create a new record fromGridFieldEditableColumns
- allows inline editing of recordsGridFieldOrderableRows
- drag and drop re-ordering of rowsGridFieldRequestHandler
- a basic utility class which can be used to build custom grid field detail views including tabs, breadcrumbs and other CMS featuresGridFieldTitleHeader
- a simple header which displays column titles
More documentation is found within the module here.
Better Buttons for GridField
The module Better Buttons for GridField adds new form actions and buttons to the GridField detail form.
- Save and add another: Create a record, and go right to adding another one, without having to click the back button, and then add again
- Save and close: Save the record and go back to list view
- User-friendly delete: Extracted from the tray of constructive actions and moved away so is less likely to be clicked accidentally. Includes inline confirmation of action instead of browser alert box
- Cancel: Same as the back button, but in a more convenient location
- Previous/Next record: Navigate to the previous or next record in the list without returning to list view
- and many more…
More documentation (and images) on the documentation for the module
UserForms
The module UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code.
Main Features
- Construct a form using all major form fields (text, email, dropdown, radio, checkbox..)
- Ability to extend userforms from other modules to provide extra fields.
- Ability to email multiple people the form submission
- View submitted submissions and export them to CSV
- Define custom error messages and validation settings
- Optionally display and hide fields using javascript based on users input
- Displays a confirmation message when navigating away from a partially completed form
More documentation links can be found here in the github repository
Display Logic
The Display Logic module allows you to add conditions for displaying or hiding certain form fields based on client-side behavior. This module is incredibly useful to make forms much more professional by showing only the appropriate fields and without adding a lot of custom JavaScript.
Example usage…
$products->displayIf("HasProducts")->isChecked();
$sizes->hideUnless("ProductType")->isEqualTo("t-shirt")
->andIf("Price")->isGreaterThan(10);
$payment->hideIf("Price")->isEqualTo(0);
$shipping->displayIf("ProductType")->isEqualTo("furniture")
->andIf()
->group()
->orIf("RushShipping")->isChecked()
->orIf("ShippingAddress")->isNotEmpty()
->end();
There are many more examples on the module readme.md
Grouped CMS Menu
The Grouped CMS Menu Module allows you to group CMS menu items into nested lists which expand when hovered over. This is useful when there are so many CMS menu items that screen space becomes an issue.
Dashboard
The Dashboard module provides a splash page for the CMS in SilverStripe 3 with configurable widgets that display relevant information. Panels can be created and extended easily. The goal of the Dashboard module is to provide users with a launchpad for common CMS actions such as creating specific page types or browsing new content.
There are Images and videos about this module can be found in this blog post.
There are some included Panels by default…
- Recently edited pages
- Recently uploaded files
- RSS Feed
- Quick links
- Section editor
- Google Analytics
- Weather
When you have this module installed it creates a dashboard per member, so if you have a large amount of members which will never use the admin and performance becomes an issue I recommend creating the members with these extra settings before writing it…
Member::create(array(
'HasConfiguredDashboard' => 1
));
There is much more documentation in the modules readme.md