protected function verify_data(&$data, $model = null, $name_required = false) { $country = @(isset($data['country']) && $data['country']) ? $data['country'] : (is_object($model) ? $model->country : ''); if ($country) { $data['currency'] = $this->country2currency($country); } if (!$model) { $model = $this->event(); } if ($name_required && !$model->name) { if (!isset($data['name']) || !$data['name']) { return $this->error(21); } } $this->check_input(['tags' => ['*' => 1], 'guests' => ['*' => ['tags' => ['*' => 1]]], 'img' => ['labels' => 1], 'images' => ['*' => ['labels' => 1]]]); if (isset($data['payment'])) { $userController = new userController(); $userController->check_payment(Bootstrap::$main->user['country'], $data['payment']); } if (isset($data['host_agreement'])) { $userController = new userController(); $userController->set_agreement(); } if ($model->active == -1) { return $this->error(61); } if (isset($data['name']) && strlen($data['name']) > 200) { return $this->error(21); } if (isset($data['url']) && strlen($data['url']) > 200) { return $this->error(21); } if (isset($data['url'])) { $data['url'] = Tools::str_to_url($data['url'], -1); } foreach ($data as $k => $v) { if (substr($k, 0, 2) == 'd_') { return $this->error(22); } } if (!$model->active) { if (isset($data['event_end']) && isset($data['duration'])) { unset($data['event_end']); } if (isset($data['event_start'])) { $data['d_event_start'] = $this->strtotime($data['event_start']); } if (isset($data['event_end'])) { $data['d_event_end'] = $this->strtotime($data['event_end']); } if (isset($data['deadline'])) { $data['d_deadline'] = $this->strtotime($data['deadline']); } if (isset($data['d_event_start']) && $data['d_event_start'] < Bootstrap::$main->now) { return $this->error(66); } if (!isset($data['d_event_end']) && !isset($data['d_event_start']) && $model->d_event_end) { $data['d_event_end'] = $model->d_event_end; } if (!isset($data['d_event_start']) && $model->d_event_start) { $data['d_event_start'] = $model->d_event_start; } if (isset($data['d_event_start']) && isset($data['duration']) && !is_array($data['duration'])) { $data['d_event_end'] = $data['d_event_start'] + $data['duration']; unset($data['duration']); } if (isset($data['d_event_start']) && isset($data['d_event_end']) && $data['d_event_start'] >= $data['d_event_end']) { return $this->error(25); } if (isset($data['d_event_start']) && isset($data['d_deadline']) && $data['d_event_start'] <= $data['d_deadline']) { $data['d_deadline'] = $data['d_event_start'] - 3600 * Bootstrap::$main->getConfig('event.default_deadline'); } if (isset($data['d_event_start']) && isset($data['d_deadline']) && $data['d_event_start'] - $data['d_deadline'] > 7 * 24 * 3600) { $data['d_deadline'] = $data['d_event_start'] - 3600 * Bootstrap::$main->getConfig('event.default_deadline'); } if (isset($data['d_event_start']) && !isset($data['d_event_end'])) { $data['d_event_end'] = $data['d_event_start'] + 3600 * Bootstrap::$main->getConfig('event.default_duration'); } if (isset($data['d_event_start']) && !isset($data['d_deadline'])) { $data['d_deadline'] = $data['d_event_start'] - 3600 * Bootstrap::$main->getConfig('event.default_deadline'); } if (!isset($data['d_deadline']) && $model->d_deadline) { $data['d_deadline'] = $model->d_deadline; } if (!isset($data['min_guests']) && $model->min_guests) { $data['min_guests'] = $model->min_guests; } if (!isset($data['max_guests']) && $model->max_guests) { $data['max_guests'] = $model->max_guests; } if (!isset($data['min_guests']) || !$data['min_guests']) { $data['min_guests'] = 1; } if (!isset($data['max_guests']) || !$data['max_guests']) { $data['max_guests'] = $model->lastMaxGuests(); } if (!isset($data['max_guests']) || !$data['max_guests']) { $data['max_guests'] = 4; } if (isset($data['min_guests']) && isset($data['max_guests']) && $data['min_guests'] > $data['max_guests']) { return $this->error(26); } $user = new userModel(Bootstrap::$main->user); $user_needs_save = false; foreach ($this->user_fields_to_copy as $uk) { if ($this->data($uk) && !Bootstrap::$main->user[$uk]) { $user->{$uk} = $this->data($uk); $user_needs_save = true; } } if ($user_needs_save) { $user->save(); Bootstrap::$main->user = $user->data(); Bootstrap::$main->session('user', $user->data()); } } if (isset($data['active'])) { if ($data['active'] && !$model->active) { @$this->may_activate($data, $model); } if (!$data['active'] && $model->active) { $this->may_deactivate($model); } } if (isset($data['img']['id'])) { $data['img'] = $data['img']['id']; } }