public function updateCustomValidate() { // sprawdzanie czy id_zolnierza do ktorego jest przypisana szkola zgadza sie z tym do edycji if ($this->id_soldier_tmp != $this->id_soldier) { $this->errors = "Żołnierz nie posiada tego adresu."; return false; } // sprawdzenie czy wybrano typ if (!is_array($this->id_address_types) || count($this->id_address_types) < 1) { $this->errors = "Proszę wybrać przynajmniej 1 typ."; return false; } // sprawdzanie czy wszystkie typy istnieja i sa aktywne $addres_types = ClassAddressType::sqlGetAllItemsNameById(NULL, false, true); foreach ($this->id_address_types as $id_address_type) { if (!isset($addres_types[$id_address_type])) { $this->errors = "Przynajmniej 1 typ nie istnieje lub jest wyłączony."; return false; } } // sprawdzanie czy zolnierz nie chce posiadac wiecej typow adresu niz powinien if ($soldier_address_types = self::sqlGetAllAddresses2TypesBySoldier($this->id_soldier)) { // print_r($soldier_address_types); foreach ($this->id_address_types as $id_address_type) { if (isset($soldier_address_types[$id_address_type]) && !in_array($this->id, $soldier_address_types[$id_address_type]['id_addresses']) && $soldier_address_types[$id_address_type]['max_addresses'] !== NULL && $soldier_address_types[$id_address_type]['max_addresses'] <= $soldier_address_types[$id_address_type]['count_types']) { $this->errors = "<b>{$soldier_address_types[$id_address_type]['name']}</b>: Nie można posiadać więcej tego typu adresu."; return false; } } } return true; }
protected function getPageEdit($soldier) { // tylul na pasku $this->top_title = 'Edytuj adres żołnierza'; // zmienne wyswietlania na wypadek gdy strona z odznaczeniem nie istnieje $this->tpl_values['wstecz'] = "/zolnierze/{$soldier->id}/adresy"; // sprawdzanie czy id istnieje w linku if (!($id_child_item = ClassTools::getValue('id_child_item'))) { $this->alerts['danger'] = 'Brak podanego id'; // ladowanie strony do wyswietlania bledow // zmienne ktore mozna uzyc: wstecz, title oraz alertow return $this->loadTemplate('alert'); } $this->actions(); $this->tpl_values['wstecz'] = "/zolnierze/{$soldier->id}/adresy"; // ladowanie klasy $item = new ClassSoldierAddress($id_child_item); // sprawdzanie czy klasa zostala poprawnie zaladowana if (!$item->load_class) { $this->alerts['danger'] = 'Adres nie istnieje'; // ladowanie strony do wyswietlania bledow // zmienne ktore mozna uzyc: wstecz, title oraz alertow return $this->loadTemplate('alert'); } // sprawdzanie szkola jest przypisana do tego zolnierza if ($soldier->id != $item->id_soldier) { $this->alerts['danger'] = 'Adres nie jest przypisany do tego żołnierza'; // ladowanie strony do wyswietlania bledow // zmienne ktore mozna uzyc: wstecz, title oraz alertow return $this->loadTemplate('alert'); } // tytul $this->tpl_title = "{$soldier->name} {$soldier->surname}: Adresy: Edycja"; $this->breadcroumb[] = array('name' => htmlspecialchars($item->street), 'link' => "/zolnierze/{$soldier->id}/adresy/podglad/{$item->id}"); $this->breadcroumb[] = array('name' => "Edytuj", 'link' => "/zolnierze/{$soldier->id}/adresy/edytuj/{$item->id}"); // skrypty $this->load_select2 = true; $this->load_js_functions = true; // pobieranie typow adresu $this->tpl_values['address_types'] = ClassAddressType::sqlGetAllItemsNameById(NULL, false, true); // zmienna ktora decyduje co formularz ma robic $this->tpl_values['sew_action'] = 'edit'; // przypisanie zmiennych formularza do zmiennych klasy $array_form_class = array('id_address' => $item->id, 'id_soldier' => $soldier->id, 'form_street' => $item->street, 'form_postcode' => $item->postcode, 'form_city' => $item->city, 'form_country' => $item->country, 'form_type' => $item->soldier_address_types && is_array($item->soldier_address_types) ? array_keys($item->soldier_address_types) : false); // przypisywanieszych zmiennych do zmiennych formularza $this->setValuesTemplateByArrayPost($array_form_class); // ladowanie strony z formularzem return $this->loadTemplate('/soldier/addresses-form'); }