public function actionSaveCreator()
{
$this->requirePostRequest();
$locale = craft()->request->getPost('locale');
if (!$locale) {
$locale = craft()->language;
}
$record = Seomatic_SettingsRecord::model()->findByAttributes(array('locale' => $locale));
if (!$record) {
throw new Exception(Craft::t('No SEOmatic Settings record exists'));
}
/* -- Set the Creator attributes, defaulting to the existing values for whatever is missing from the post data */
$record->googleSiteVerification = craft()->request->getPost('googleSiteVerification', $record->googleSiteVerification);
$record->siteCreatorType = craft()->request->getPost('siteCreatorType', $record->siteCreatorType);
$record->siteCreatorSubType = craft()->request->getPost('siteCreatorSubType', $record->siteCreatorSubType);
$record->siteCreatorSpecificType = craft()->request->getPost('siteCreatorSpecificType', $record->siteCreatorSpecificType);
/* -- Generic Creator fields */
$record->genericCreatorName = craft()->request->getPost('genericCreatorName', $record->genericCreatorName);
$record->genericCreatorAlternateName = craft()->request->getPost('genericCreatorAlternateName', $record->genericCreatorAlternateName);
$record->genericCreatorDescription = craft()->seomatic->truncateStringOnWord(craft()->request->getPost('genericCreatorDescription', $record->genericCreatorDescription), 1024);
$record->genericCreatorUrl = craft()->request->getPost('genericCreatorUrl', $record->genericCreatorUrl);
$record->genericCreatorTelephone = craft()->request->getPost('genericCreatorTelephone', $record->genericCreatorTelephone);
$record->genericCreatorEmail = craft()->request->getPost('genericCreatorEmail', $record->genericCreatorEmail);
$record->genericCreatorStreetAddress = craft()->request->getPost('genericCreatorStreetAddress', $record->genericCreatorStreetAddress);
$record->genericCreatorAddressLocality = craft()->request->getPost('genericCreatorAddressLocality', $record->genericCreatorAddressLocality);
$record->genericCreatorAddressRegion = craft()->request->getPost('genericCreatorAddressRegion', $record->genericCreatorAddressRegion);
$record->genericCreatorPostalCode = craft()->request->getPost('genericCreatorPostalCode', $record->genericCreatorPostalCode);
$record->genericCreatorAddressCountry = craft()->request->getPost('genericCreatorAddressCountry', $record->genericCreatorAddressCountry);
$record->genericCreatorGeoLatitude = craft()->request->getPost('genericCreatorGeoLatitude', $record->genericCreatorGeoLatitude);
$record->genericCreatorGeoLongitude = craft()->request->getPost('genericCreatorGeoLongitude', $record->genericCreatorGeoLongitude);
/* -- Corporation Creator fields http://schema.org/Organization */
$record->organizationCreatorDuns = craft()->request->getPost('organizationCreatorDuns', $record->organizationCreatorDuns);
$record->organizationCreatorFounder = craft()->request->getPost('organizationCreatorFounder', $record->organizationCreatorFounder);
$record->organizationCreatorFoundingDate = craft()->request->getPost('organizationCreatorFoundingDate', $record->organizationCreatorFoundingDate);
$record->organizationCreatorFoundingLocation = craft()->request->getPost('organizationCreatorFoundingLocation', $record->organizationCreatorFoundingLocation);
$record->organizationCreatorContactPoints = craft()->request->getPost('organizationCreatorContactPoints', array());
/* -- Person Creator fields https://schema.org/Person */
$record->personCreatorGender = craft()->request->getPost('personCreatorGender', $record->personCreatorGender);
$record->personCreatorBirthPlace = craft()->request->getPost('personCreatorBirthPlace', $record->personCreatorBirthPlace);
/* -- Corporation Creator fields http://schema.org/Corporation */
$record->corporationCreatorTickerSymbol = craft()->request->getPost('corporationCreatorTickerSymbol', $record->corporationCreatorTickerSymbol);
/* -- Restaurant creator fields https://schema.org/Restaurant */
$record->restaurantCreatorServesCuisine = craft()->request->getPost('restaurantCreatorServesCuisine', $record->restaurantCreatorServesCuisine);
$record->restaurantCreatorMenuUrl = craft()->request->getPost('restaurantCreatorMenuUrl', $record->restaurantCreatorMenuUrl);
$record->restaurantCreatorReservationsUrl = craft()->request->getPost('restaurantCreatorReservationsUrl', $record->restaurantCreatorReservationsUrl);
$record->genericCreatorImageId = craft()->request->getPost('genericCreatorImageId', $record->genericCreatorImageId);
$assetId = !empty($record->genericCreatorImageId) ? $record->genericCreatorImageId[0] : null;
$record->genericCreatorImageId = $assetId;
/* -- Humans.txt */
$record->genericCreatorHumansTxt = craft()->request->getPost('genericCreatorHumansTxt', $record->genericCreatorHumansTxt);
if ($record->save()) {
craft()->userSession->setNotice(Craft::t('SEOmatic Site Creator saved.'));
$this->redirectToPostedUrl($record);
} else {
craft()->userSession->setError(Craft::t('Couldn’t save SEOmatic Site Creator.'));
$this->redirectToPostedUrl($record);
}
}