Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

DOKONCI MOVIES APLIKACIU

Stiahni si movies.zip. Je tam hotova validacia iba pre rezisera.
V config.php zmen define( 'BASE_URL', 'http://localhost:8888/movies' ); na tvoju url adresu.


 

1) Dokonci validaciu

  • spravil som validaciu pre rezisera, ty sprav validaciu pre filmy (pouzi pri pridavani aj editovani)
  • pozor, nestaci kontrolovat ci boli policka vyplnene, napr.:
  • pri year alebo director_id treba kontrolovat, ci je to int
  • pri gross treba kontrolovat, ci je to float s desatinnymi cislami, ktore moze byt oddelene bodkou alebo ciarkou (podobne, ako v sanitize_movie_data())
     

2) Uprav error mesidze po validacii, ktore sa teraz vypisuju v zozname nad formularom

  • zmen to tak, aby kazdy zle vyplneny input svietil na cerveno
  • ked zabudnem zadat first_name, toto policko svieti na cerveno a hlaska sa vypise vedla neho (alebo pod nim)
     

3) Pridaj nove policko, popis filmu, do movie.php?id=3 stranky pre film

  • do databazovej tabulky movies pridaj cez adminer/phpmyadmin novy stlpec summary, typu TEXT
  • v zozname filmov kliknutim na nazov sa dostanem na stranku filmu movie.php?id=3
  • na nej budu vylistovane podobne udaje, ako v tabulke, ale pribudne k nim aj sumar/popis filmu
  • samozrejme to treba pridat do new/edit formularov (<textarea>) a do validacie
  • môže to vyzerať takto

     

4) Vyrob header.php a footer.php

  • include sprav pomocou APP_PATH, zariad, aby v <title> bol spravny text
     

5) Na stranke mame funkcie url() a anchor(), ktore vyrobia spravne linky

  • sprav funkcie ako edit_url('movie', 4) a delete_url('director', 2), ktore vyrobia spravne linky
  • edit a delete linky na stranke vyrabaj pomocou tychto novych funkcii
     

6) Pridaj flash mesidze (spravy ulozene do $_SESSION) do aplikacie

  • pekny zeleny, ked sa podari pridat novy film
  • skarede cerveny, ak sa nepodari alebo ak sa clovek snazi zobrazit taky, co neexistuje
  • atd. popridavat spravy podla uvazenia;)
     

7) Dorob uploadovanie obrazku k filmom

  • v edit forme filmu pribudne <input type="file"> cez ktory mozem uploadnut obrazok
  • html edit formu musi vyzerat <form action="" method="post" enctype="multipart/form-data">
  • musis don pridat enctype="multipart/form-data"
  • podobne ako existuje $_POST[] pre text z formularu, existuje $_FILES[] pre odoslane subory
  • odoslany obrazok musis ulozit niekde na disk a jeho nazov (alebo cestu k nemu) musis ulozit k filmu do databazy
  • dobry napad moze byt pouzit package, napr. http://image.intervention.io/getting_started/installation

PRECVIC SI SQL SELECTY

Stiahni si movies.zip. Je tam hotova validacia iba pre rezisera.
V config.php zmen define( 'BASE_URL', 'http://localhost:8888/movies' ); na tvoju url adresu.


 

1) Precvic si vyrobu formularov a pisanie SQL selectov

  • sprav form s inputom, do ktoreho ked napisem meno rezisera, najde mi vsetky jeho filmy
  • input, do ktoreho ked napisem cast nazvu filmu, najde mi vsetky udaje o nom
  • dalsi form, kde budu policka rok od a rok do, kde mozem zadat rozmedzie
  • ked zadam 2000 a 2005, najde len filmy z tohto rozmedzia
  • ked zadam 2000, najde vsetky filmy natocene po roku 2000
  • podobne pre gross
  • pridaj dalsi <select> ktory zobrazi filmy podla zanru (tak isto, ako teraz vieme podla rezisera)
     

2) Skus spravit strankovanie

  • v $config v premennej zadas kolko maximalne filmov sa moze zobrazit na stranke
  • napr. v zozname bude iba 5 filmov, pod nim vyrob linky na nasledovnu/predoslu stranku
  • pripadne linky na page 1, page 2, page 3, atd
  • url bude /movies?page=2 alebo /movies/director.php?id=3&page=2
     

3) V tabulke filmov sprav usporiadanie podla stlpcov

  • nadpisy stlpcov sa zmenia na linky typu ?orderby=year&order=asc alebo desc
  • ked kliknem na "year", usporiadaju sa filmy od najnovsieho a ked kliknem znova, od najstarsieho
  • rovnako ostatne stlpce - abecedne
     

4) Prerob aplikaciu na filmy tak, ze

  • na hlavnej stranke vedla seba budu 2 zoznamy linkov: najnovsich 5 filmov a najnovsich 5 reziserov
  • linky budu odkazovat na /movie.php?id=3 a /director.php?id=4
  • pod zoznamom filmov bude odkaz na "vsetky filmy" (ta ista tabulka, ako mame teraz)
  • ak som logged_in(), po zoznamami budu linky na pridanie noveho filmu a rezisera
  • na reziserovom profile bude odkaz na pridanie filmu s tym, ze sa jeho meno prednastavi v selecte
     

5) Do TODO appky pridaj strankovanie

SCRAPOVANIE STRANKY

V learn2code diskusii je import.php subor na stiahnutie (v "Materiály a zdrojáky [ 24. máj ]").
Je v nom spraveny scraping imdb.com stranky pre popis filmov.
Pouziva sa k tomu https://github.com/paquettg/php-html-parser.

  1. nainstaluj composer (videa)
  2. do _inc adresara vytvor composer.json subor, v ktorom bude tento kod {} (normalne iba prazdne zatvorky tam budu)
  3. cez cmder/terminal/konzolu sa nastav do _inc adesara a spusti "composer require paquettg/php-html-parser"
  4. do config.php pridaj require_once 'vendor/autoload.php';

Ten krok 4 staci spravit iba raz.
Composer tento subor po pridani kazdeho dalsieho package iba updatne.
Ten autoload.php sa sam postara a include-nutie vsetkych packagov do tvojho kodu.

Ked mas nainstalovane, skus:

1) Spravit scraping popisov filmu z csfd.cz alebo rottentomatoes.com alebo harcore level - z imhd.sk

Najprv sprav ulohu 3 z "DOKONCI MOVIES APLIKACIU" sekcie na vrchu stranky.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.