public function publish($state = 1)
{
if (!$this->getId()) {
throw new RecordNotLoaded("Can't change the state of a not loaded DataModel");
}
if (!$this->hasField('enabled')) {
return $this;
}
$this->triggerEvent('onBeforePublish', array());
$enabled = $this->getFieldAlias('enabled');
$this->{$enabled} = $state;
$this->save();
$this->triggerEvent('onAfterPublish');
return $this;
}