public function saveNavigation(AmNav_NavigationModel $navigation)
{
// Navigation data
if ($navigation->id) {
$navigationRecord = AmNav_NavigationRecord::model()->findById($navigation->id);
if (!$navigationRecord) {
throw new Exception(Craft::t('No navigation exists with the ID “{id}”.', array('id' => $navigation->id)));
}
} else {
$navigationRecord = new AmNav_NavigationRecord();
}
// Set attributes
$navigationRecord->setAttributes($navigation->getAttributes());
$navigationRecord->setAttribute('settings', json_encode($navigation->settings));
// Validate
$navigationRecord->validate();
$navigation->addErrors($navigationRecord->getErrors());
// Save navigation
if (!$navigation->hasErrors()) {
// Save in database
return $navigationRecord->save();
}
return false;
}