hudhaifas/silverstripe-dataobject-manager

Wrap any Silverstripe DataObject in a page.

Installs: 366

Dependents: 6

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 0

Open Issues: 0

Language:CSS

Type:silverstripe-vendormodule

4.2.1 2019-09-26 16:32 UTC

This package is not auto-updated.

Last update: 2020-04-03 18:14:21 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

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.

Live Demo

Screenshots

  • List Objects

  • Show Object

  • Edit Object

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.