Source of file StylingLimit.php
Size: 1,898 Bytes - Last Modified: 2021-12-24T06:47:59+00:00
/var/www/docs.ssmods.com/process/src/src/StylingLimit.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | <?php namespace Fractas\ElementalStylings; use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\FieldList; use SilverStripe\ORM\DataExtension; use SilverStripe\View\ArrayData; class StylingLimit extends DataExtension { private static $db = [ 'Limit' => 'Varchar(255)', ]; /** * @var string */ private static $singular_name = 'Limit'; /** * @var string */ private static $plural_name = 'Limits'; /** * @config * * @var array */ private static $limit = []; public function getStylingLimitNice($key) { return (!empty($this->owner->config()->get('limit')[$key])) ? $this->owner->config()->get('limit')[$key] : $key; } public function getStylingLimitData() { return ArrayData::create([ 'Label' => self::$singular_name, 'Value' => $this->getStylingLimitNice($this->owner->Limit), ]); } /** * @return string */ public function getLimitVariant() { $limit = $this->owner->Limit; $limits = $this->owner->config()->get('limit'); if (isset($limits[$limit])) { $limit = strtolower($limit); } else { $limit = ''; } return 'limit-'.$limit; } public function updateCMSFields(FieldList $fields) { $limit = $this->owner->config()->get('limit'); if ($limit && count($limit) > 1) { $fields->addFieldsToTab('Root.Styling', DropdownField::create('Limit', _t(__CLASS__.'.LIMIT', 'Limit'), $limit)); } else { $fields->removeByName('Limit'); } return $fields; } public function populateDefaults() { $limit = $this->owner->config()->get('limit'); $limit = reset($limit); $this->owner->Limit = $limit; parent::populateDefaults(); } } |