SilverStripe DataObject Manager
, (*1)
DataObject Manager is a standard Fronend wapper fot a certain DataObject instances without relationship with a Page, results to list all, search, show object, and edit obejct., (*2)
Screenshots
-
List Objects
, (*3)
-
Show Object
, (*4)
-
Edit Object
, (*5)
Features
- Manage a certain DataObject without a relationship with a Page.
- Create a standard Page to show, edit, list, and search for a certain DataObject type.
- Include RichSnippets to the object show page.
- Decrease the response time by using AJAX to load the page content after the page layout is completely loaded to .
- Compatible with Google Custom Search.
- Easy to customize the page layout.
Limitations
- Create a Page class for each DataObject.
- Edit Only $db and $has_one fields.
Todos
- Edit many_many relationship fields.
- Add create new function from the frontend.
- Waiting for your contributions
Usage
Requirements
- SilverStripe Framework 4.x
- SilverStripe CMS 4.x
- jQuery 3.x
- Bootstrap 4.x
Installation
- Install the module through composer:
$ composer require hudhaifas/silverstripe-dataobject-manager
- Run dev/build
Usage
ManageableDataObject
- Create / Adjust a class to extend DataObject and implement ManageableDataObject interface to provide the following required data to render your object:
Function |
Documentation |
Default |
getObjectItem() |
Renders object as a list item |
return $this->renderWith('List_Item'); |
getObjectTitle() |
The object title or name |
return $this->getTitle(); |
getObjectLink() |
The link to show the object |
return $this->renderWith('List_Item'); |
getObjectEditLink() |
The link to edit the object |
return $this->renderWith('List_Item'); |
getObjectImage() |
Image of the object |
return $this->Image(); |
getObjectDefaultImage() |
Default image for objects with no image |
return "path/to/images/image.jpg"; |
getObjectSummary() |
Summary data of the object could be array(Title=>Content) or rendered object |
return array(); |
getObjectNav() |
Extra nav bar |
getObjectRelated() |
List of related objects |
getObjectTabs() |
Object's details and content returned in an array(Title=>Content), the content could be text or rendered object |
- Create / Adjust Page to extend DataObjectPage
Function |
Documentation |
Required |
getObjectsList() |
List of all eligible objects |
Required |
restrictFields() |
Excluded fields from edit |
Optional |
searchObjects() |
Filter objects based on the gived keyword |
Optional |
getFiltersList() |
Not implemented yet |
Not Required |
License
MIT License
Copyright (c) 2016 Hudhaifa Shatnawi
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without
limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.