private function validateForm()
{
if ($this->frm->isSubmitted()) {
$this->frm->cleanupFields();
// validate fields
$this->frm->getField('title')->isFilled(BL::err('TitleIsRequired'));
$this->frm->getField('street')->isFilled(BL::err('FieldIsRequired'));
$this->frm->getField('number')->isFilled(BL::err('FieldIsRequired'));
$this->frm->getField('zip')->isFilled(BL::err('FieldIsRequired'));
$this->frm->getField('city')->isFilled(BL::err('FieldIsRequired'));
if ($this->frm->isCorrect()) {
// build item
$item['id'] = $this->id;
$item['language'] = BL::getWorkingLanguage();
$item['extra_id'] = $this->record['extra_id'];
$item['title'] = $this->frm->getField('title')->getValue();
$item['street'] = $this->frm->getField('street')->getValue();
$item['number'] = $this->frm->getField('number')->getValue();
$item['zip'] = $this->frm->getField('zip')->getValue();
$item['city'] = $this->frm->getField('city')->getValue();
$item['country'] = $this->frm->getField('country')->getValue();
// check if it's necessary to geocode again
if ($this->record['lat'] === null || $this->record['lng'] === null || $item['street'] != $this->record['street'] || $item['number'] != $this->record['number'] || $item['zip'] != $this->record['zip'] || $item['city'] != $this->record['city'] || $item['country'] != $this->record['country']) {
// define coordinates
$coordinates = BackendLocationModel::getCoordinates($item['street'], $item['number'], $item['city'], $item['zip'], $item['country']);
// define latitude and longitude
$item['lat'] = $coordinates['latitude'];
$item['lng'] = $coordinates['longitude'];
} else {
$item['lat'] = $this->record['lat'];
$item['lng'] = $this->record['lng'];
}
// insert the item
BackendLocationModel::update($item);
// everything is saved, so redirect to the overview
if ($item['lat'] && $item['lng']) {
// trigger event
BackendModel::triggerEvent($this->getModule(), 'after_edit', array('item' => $item));
}
// redirect to the overview
if ($this->frm->getField('redirect')->getValue() == 'overview') {
$this->redirect(BackendModel::createURLForAction('Index') . '&report=edited&var=' . rawurlencode($item['title']) . '&highlight=row-' . $item['id']);
} else {
$this->redirect(BackendModel::createURLForAction('Edit') . '&id=' . $item['id'] . '&report=edited');
}
}
}
}