* @version SVN: $Id: Builder.php 7490 2010-03-29 19:53:27Z jwage $ */ abstract class PluginsaSetting extends BasesaSetting { // convert the options text area to an array public function getOptionsArray() { return sfToolkit::stringToArray($this->getWidgetOptions()); } public function getValue() { $value = $this->_get('value'); switch ($this['type']) { case 'checkbox': return !($value == '' || $value == 'off'); break; case 'yesno': return (bool) $value; case 'daterange': return (array) json_decode($value); case 'fileEditable': return strlen($value) ? '/uploads/saSettings/'.$value : ''; } return $value; } public function setValue($value) { if(strtolower($this->getType()) == 'daterange') { $value = json_encode($value); } $this->_set('value', $value); } // remove cache when an item is updated public function postSave($event) { saSettings::clearSettingsCache(); } public function postDelete($event) { saSettings::clearSettingsCache(); } }