Source of file WidgetListItem.php
Size: 2,123 Bytes - Last Modified: 2021-12-24T05:18:55+00:00
/var/www/docs.ssmods.com/process/src/src/Model/WidgetListItem.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | <?php namespace IQnection\BigCommerceApp\Model; use SilverStripe\ORM\DataObject; use SilverStripe\Forms; use SilverStripe\View\ArrayData; use SilverStripe\ORM\ArrayList; use IQnection\BigCommerceApp\Extensions\ApiRelatedObject; use IQnection\BigCommerceApp\Extensions\Sortable; class WidgetListItem extends DataObject implements \JsonSerializable { private static $extensions = [ ApiRelatedObject::class, Sortable::class ]; private static $table_name = 'BCWidgetListItem'; private static $db = [ 'Title' => 'Varchar(255)', ]; private static $has_one = [ 'Widget' => Widget::class ]; private static $frontend_required_fields = []; public function getFrontEndFields($params = []) { $fields = parent::getFrontEndFields(); $fields->removeByName([ 'ID', 'WidgetID' ]); if ($this->Exists()) { $fields->push( Forms\HiddenField::create('RelatedID','')->setValue($this->ID) ); } return $fields; } public function getFrontEndRequiredFields(Forms\FieldList &$fields) { $requiredFields = []; foreach($this->Config()->get('frontend_required_fields') as $requiredField) { if ($field = $fields->dataFieldByName($requiredField)) { $requiredFields[] = $requiredField; $fields->dataFieldByName($requiredField)->addExtraClass('required'); } } return Forms\RequiredFields::create($requiredFields); } public function onAfterWrite() { parent::onAfterWrite(); if ($this->Widget()->Exists()) { $this->Widget()->QueueSync(); } } public function jsonSerialize() { $data = $this->WidgetData(); if ($data instanceof ArrayData) { return $data->toMap(); } return $data; } public function WidgetData() { return [ 'id' => $this->ID, 'title' => $this->Title ]; } public function forTemplate() { $fields = $this->getFrontEndFields(); $fields->setValues($this->toMap()); $fields = $fields->makeReadonly(); return $fields->forTemplate(); } public function DashboardDisplay() { return ArrayList::create([ ArrayData::create([ 'Title' => 'Name', 'Value' => $this->Title ]) ]); } } |