Laboratorium 7 Blog: dodawanie i edycja wpisów



Podobne dokumenty
Laboratorium 6 Tworzenie bloga w Zend Framework

Modele danych walidacja widoki zorientowane na model

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Podstawy technologii WWW

Wprowadzenie do Doctrine ORM

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci

Laboratorium 1 Wprowadzenie do PHP

Backend Administratora

Aby przejść do edycji w tym module należy wybrać zakładkę "Dla Pracowników" -> "Sprawdziany".

Platforma e-learningowa

Aplikacje WWW - laboratorium

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

7. Formularze master-detail

Aplikacje WWW - laboratorium

Przewodnik... Tworzenie Landing Page

Wykład 5: PHP: praca z bazą danych MySQL

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

WellCommerce Poradnik: CMS

Marketing Automation:

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Dodawanie i modyfikacja atrybutów zbioru

Zaawansowane aplikacje internetowe - laboratorium

Podręcznik użytkownika Publikujący aplikacji Wykaz2

WOJEWÓDZTWO PODKARPACKIE

Aplikacje internetowe - laboratorium

Instrukcja obsługi uczelnianego systemu zarządzania stronami internetowymi (CMS)

e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda

Instrukcja dostępu do usługi Google Scholar

Instrukcja obsługi systemu zarządzania treścią dwajeden.pl

PRZYGOTOWANIE HARMONOGRAMU WEWNĘTRZNEGO EGZAMINÓW PISEMNYCH W OŚRODKU.

3. Budowa prostych raportów opartych o bazę danych

APLIKACJA SHAREPOINT

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Pierwsza strona internetowa

4. Budowa prostych formularzy, stany sesji, tworzenie przycisków

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

,Aplikacja Okazje SMS

Instalacja i obsługa aplikacji MAC Diagnoza EW

Dokumentacja użytkownika systemu

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

Podstawy technologii WWW

Zasady tworzenia podstron

Archiwum Prac Dyplomowych

Przewodnik użytkownika (instrukcja) AutoMagicTest

8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa

Instrukcja zarządzania kontem jednostki samorządu terytorialnego w serwisie internetowym

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

5.4. Tworzymy formularze

Platforma e-learningowa

System Obsługi Zleceń

Podstawy JavaScript ćwiczenia

1. INFORMACJE O DOKUMENCIE 2. WPROWADZENIE

BIBLIOTEKA LOKALNE CENTRUM WIEDZY PRAKTYCZNEJ PRZEWODNIK PO NARZĘDZIACH WARSZTAT NR 1: ARKUSZE KALKULACYJNE - MINI SKRYPT

GENERATOR OFERTY PDF DOKUMENTACJA UŻYTKOWA 1/20

I. Program II. Opis głównych funkcji programu... 19

Instrukcja obsługi Zaplecza epk dla Pracowników Instytucji w zakresie zarządzania danymi szczegółowymi dotyczącymi sposobu realizacji procedury

Przygotowanie formularza do wypożyczenia filmu:

Kadry Optivum, Płace Optivum

UONET+ moduł Dziennik. Praca z rozkładami materiału nauczania

E-czeki - zakładanie listy odbiorców, raport uprawnień (Bankowość Elektroniczna dla Klientów Korporacyjnych Getin Noble Bank SA)

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Ćwiczenie 22 Dynamiczne wczytywanie tekstu z pliku.txt

Instrukcja dostępu do Systemu Naboru i Oceny Wniosków (SNOW*)

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Przewodnik Szybki start

INSTRUKCJA OBSŁUGI PLATFORMY EDUSCIENCE Administrator/Administratorka szkoły. platforma.eduscience.pl

Skrócona instrukcja pracy z Generatorem Wniosków

Instrukcja importu przesyłek. z Menedżera Sprzedaży do aplikacji Webklient

Baza danych. Program: Access 2007

Instalacja i obsługa generatora świadectw i arkuszy ocen

Integracja z Facebook. Wersja 7.2.4

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Archiwum Prac Dyplomowych

Katalog książek cz. 2

autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej

Dokumentacja panelu Klienta

Archiwum Prac Dyplomowych

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

Materiały opracowane przez Ośrodek Edukacji Informatycznej i Zastosowań Komputerów w Warszawie

UONET+ moduł Dziennik. Dokumentowanie lekcji w systemie UONET+

Przewodnik... Budowanie listy Odbiorców

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

UONET+ moduł Dziennik. Dokumentowanie lekcji w systemie UONET+

Sigma Moduł dla szkół

Przewodnik użytkownika (instrukcja) AutoMagicTest

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym

Instrukcja obsługi uczelnianego cmsa

Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Diagnozy rozszerzonej

REFERAT O PRACY DYPLOMOWEJ

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

REKRUTACJA DO PRZEDSZKOLI

Transkrypt:

Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą z Zend_Form. W ciele tej klasy określamy, z jakich pól ma się składać formularz, a także jakie reguły filtrowania i walidacji do nich zastosować. 1. W katalogu application stwórz nowy podkatalog o nazwie forms. 2. W katalogu forms umieść nowy plik o nazwie Wpis.php. 3. W pliku Wpis.php umieścimy klasę Blog_Form_Wpis, dziedziczącą z Zend_Form. Klasa ta będzie odpowiedzialna za obsługę formularza dodawania oraz edycji wpisu. Kod klasy Blog_Form_Wpis: <?php class Blog_Form_Wpis extends Zend_Form { public function init() { $this->setmethod('post'); $tytul = $this->createelement('text', 'tytul'); $this->addelement($tytul); $skrot = $this->createelement('textarea', 'skrot'); $this->addelement($skrot); $tresc = $this->createelement('textarea', 'tresc'); $this->addelement($tresc); $this->addelement('hidden', 'id'); $this->addelement('submit', 'Zapisz'); Akcja dodawania wpisów 1. Dodawanie wpisów będzie realizowane przez akcję dodaj w kontrolerze Index. Aby utworzyć nową akcję, wydaj komendę: zf create action dodaj Index 2. Otwórz plik IndexController.php. W metodzie dodajaction() umieść następujący kod: $form = new Blog_Form_Wpis(); Strona 1 z 6

$url = $this->getrequest()->getbaseurl(); $form->setaction($url. '/index/dodaj'); $this->view->form = $form; W pierwszej linii tworzony jest obiekt klasy Blog_Form_Wpis, czyli obiekt reprezentujący tworzony formularz. Następnie ustawiamy akcję, do której mają być przesłane dane wpisane przez użytkownika w formularzu (w wygenerowanym kodzie HTML wartość ta znajdzie się w atrybucie action elementu form). Dane mają zostać przesłane z powrotem do akcji dodaj. URL prowadzący do akcji dodaj ma postać: '/index/dodaj'. W ostatniej linii przekazujemy utworzony formularz do widoku. Wyświetlanie formularza 1. Utworzony w kontrolerze formularz należy wyświetlić w widoku. 2. Otwórz plik widoku odpowiadający akcji dodaj, czyli dodaj.phtml. Umieść w nim następujący kod: <h2>dodaj wpis</h2> <?php echo $this->form;?> Dodanie odnośnika na stronie głównej W szablonie strony umieściliśmy odnośnik o nazwie Dodaj wpis. Teraz pora uzupełnić adres, do którego ma on prowadzić. 1. Otwórz plik szablonu (layouts/scripts/layout.phtml). 2. Znajdź fragment wyświetlający odnośnik: <a href="">dodaj wpis</a> i podmień go na następujący kod: <a href="<?php echo $this->baseurl();?>/index/dodaj">dodaj wpis</a> 3. Sprawdź działanie nowej akcji otwórz stronę główną bloga, następnie kliknij na linku Dodaj wpis. Modyfikacja formularza etykiety oraz atrybuty Aby poprawić wygląd formularza, dodamy etykiety oraz ustawimy rozmiar pól tekstowych. 1. Otwórz plik z definicją formularza (forms/wpis.php). 2. Uzupełnij definicje pól formularza, dodając wywołanie metod setlabel() oraz setattribute(). Kompletny kod definiujący pola powinien wyglądać następująco: Strona 2 z 6

$this->setmethod('post'); $tytul = $this->createelement('text', 'tytul'); $tytul->setlabel('tytuł:'); $tytul->setattrib('size', 60); $this->addelement($tytul); $skrot = $this->createelement('textarea', 'skrot'); $skrot->setlabel('krótki opis:'); $skrot->setattribs(array('cols' => 60, 'rows' => 5)); $this->addelement($skrot); $tresc = $this->createelement('textarea', 'tresc'); $tresc->setlabel('pełna treść:'); $tresc->setattribs(array('cols' => 60, 'rows' => 25)); $this->addelement($tresc); $this->addelement('hidden', 'id'); $this->addelement('submit', 'Zapisz'); 3. Sprawdź wygląd formularza na stronie. Obsługa przesłanych danych i zapisanie wpisu do bazy 1. Dane wpisane w formularzu zostaną przesłane z powrotem do akcji dodaj. Należy zatem w metodzie dodajaction() sprawdzić, czy przesłano dane, a następnie zapisać je do bazy. 2. Dopisz do metody dodajaction() następujący kod: if($this->getrequest()->ispost()) { if($form->isvalid($_post)) { $dane = $form->getvalues(); unset($dane['id']); $dane['autor'] = 1; $mdl = new Blog_Model_Wpisy(); $mdl->insert($dane); $this->_redirect('index'); Poniżej wyjaśniono znaczenie poszczególnych instrukcji kodu. Sprawdzenie, czy przesłano już dane z formularza: if($this->getrequest()->ispost()) {... Strona 3 z 6

Sprawdzenie poprawności danych: if($form->isvalid($_post)) {... Wyciągnięcie danych z formularza: $dane = $form->getvalues(); Stworzenie instancji modelu i zapisanie danych do bazy: $mdl = new Blog_Model_Wpisy(); $mdl->insert($dane); Przekierowanie przeglądarki na stronę główną: $this->_redirect('index'); 3. Sprawdź działanie programu wypełnij formularz i dodaj wpis do bazy; sprawdź, czy wpis pojawi się na stronie głównej. Walidacja i filtrowanie danych W kodzie odbierającym dane z formularza użyliśmy metody isvalid(). Metoda ta sprawdza, czy dane wpisane przez użytkownika są poprawne i kompletne. Wymagania odnośnie wpisywanych danych można określić w klasie definiującej formularz. Dodamy teraz sprawdzenie, czy użytkownik wypełnił pole Tytuł, a także przefiltrujemy dane, usuwając z nich kod HTML. 1. Otwórz plik forms/wpis.php. Zaraz po utworzeniu elementu $tytul dodaj linijkę: $tytul->setrequired(true); Spowoduje to oznaczenie pola Tytuł jako wymaganego. Użytkownik nie będzie mógł zapisać danych, jeśli nie uzupełni tego pola. 2. Sprawdź działanie formularza kliknij Dodaj wpis, pozostaw pole Tytuł puste, spróbuj zapisać wpis. 3. Dane wpisane w formularzu mogą być także filtrowane. Użyjemy filtra Zend_Filter_StripTags, który usuwa znaczniki HTML z wpisanego tekstu. Dodaj do definicji pola Tytuł następującą linijkę: $tytul->addfilter(new Zend_Filter_StripTags()); 4. Sprawdź działanie filtra dodaj nowy wpis, w polu tytuł wpisując np.: Oto nowy <i>pochylony</i> <font color='red'>wpis</font> Strona 4 z 6

Edycja wpisów Do edycji wpisów użyjemy tego samego formularza Blog_Form_Wpis. Potrzebna będzie nowa akcja edytuj w kontrolerze Index. Działanie tej akcji będzie bardzo podobne do akcji dodaj, z następującymi zmianami: jako parametr przekażemy do akcji identyfikator wpisu, który chcemy edytować; wstępnie wypełnimy formularz danymi pobranymi z bazy; zamiast tworzenia nowego rekordu, zaktualizujemy już istniejący. 1. Stwórz akcję edytuj w kontrolerze Index: zf create action edytuj Index 2. Otwórz plik IndexController.php powinna tam się znaleźć automatycznie dodana metoda edytujaction(), którą wypełnimy teraz treścią. 3. Zaczniemy od pobrania parametru id, wskazującego na wpis, który chcemy edytować. Następnie pobierzemy właściwy wpis z bazy: $id = $this->getrequest()->getparam('id'); $mdl = new Blog_Model_Wpisy(); $wpis = $mdl->find($id)->current(); 4. W następnym kroku stworzymy obiekt formularza i przekażemy go do widoku: $form = new Blog_Form_Wpis(); $url = $this->getrequest()->getbaseurl(); $form->setaction($url. '/index/edytuj'); $this->view->form = $form; 5. Podobnie jak w metodzie dodajaction, sprawdzimy, czy przesłano już dane z formularza: jeśli tak, obsłużymy zapisanie wpisu do bazy, jeśli nie, wypełnimy formularz danymi wpisu pobranego z bazy. if($this->getrequest()->ispost()) { if($form->isvalid($_post)) { $dane = $form->getvalues(); $wpis->tytul = $dane['tytul']; $wpis->skrot = $dane['skrot']; $wpis->tresc = $dane['tresc']; $wpis->save(); $this->_redirect('index'); else { $form->populate($wpis->toarray()); Strona 5 z 6

W powyższym kodzie zamiast tworzyć nowy wiersz w tabeli, modyfikujemy wiersz pobrany wcześniej z bazy. Przepisujemy tytuł, skrót oraz treść wpisu z formularza do obiektu $wpis, następnie wywołujemy metodę save() metoda ta zapisze zmienione dane do bazy danych. Po zapisaniu danych przekierowujemy użytkownika na stronę główną. Metoda populate() powoduje wypełnienie formularza danymi. Jako argument przekazujemy jej tablicę z polami, które mają być wyświetlone w formularzu. W tym przypadku wyświetlamy rekord pobrany z bazy danych. 6. Utworzymy teraz widok dla akcji edytuj. Widok będzie niemal identyczny, jak w przypadku akcji dodaj wyświetli jedynie nagłówek oraz przekazany formularz. Otwórz plik edytuj.phtml i wypełnij go następującym kodem: <h2>edytuj wpis</h2> <?php echo $this->form;?> 7. Pozostało nam dodanie na stronie głównej linków do edycji wpisów. Otwórz widok index.phtml i dodaj do niego kod wyświetlający stosowny link (kod umieść po wyświetleniu skrótu wpisu, a przed wyświetleniem linka Więcej ): echo '<a href="'. $this->baseurl(). '/index/edytuj/id/'. $wpis->id. '">Edytuj</a> '; Tak utworzony link prowadzi do akcji edytuj w kontrolerze index, przekazując jej parametr id o wartości 5. 8. Sprawdź działanie programu. Przejdź na stronę główną i zmodyfikuj wybrany wpis. Zadanie. Usuwanie wpisów 1. Dodaj do aplikacji możliwość usuwania wpisów. Stwórz akcję usun w kontrolerze Index. W akcji usun wykonaj kolejno czynności: o pobierz id wpisu z parametrów żądania (jak w akcji edytuj); o Pobierz wpis o danym id z bazy (jak w akcji edytuj); o Na obiekcie reprezentującym wpis wywołaj metodą delete(): $wpis->delete(); o Przekieruj przeglądarkę na stronę główną. Na stronie głównej przy każdym wpisie umieść link Usuń. Strona 6 z 6