public function saveBlock(Neo_BlockModel $block, $validate = true)
{
if ($block->modified && (!$validate || $this->validateBlock($block))) {
$blockRecord = $this->_getBlockRecord($block);
$isNewBlock = $blockRecord->isNewRecord();
$blockRecord->fieldId = $block->fieldId;
$blockRecord->ownerId = $block->ownerId;
$blockRecord->ownerLocale = $block->ownerLocale;
$blockRecord->typeId = $block->typeId;
$blockRecord->collapsed = $block->collapsed;
$transaction = $this->beginTransaction();
try {
if (craft()->elements->saveElement($block, false)) {
if ($isNewBlock) {
$blockRecord->id = $block->id;
}
$blockRecord->save(false);
$this->commitTransaction($transaction);
return true;
}
} catch (\Exception $e) {
$this->rollbackTransaction($transaction);
throw $e;
}
}
return false;
}