Skip to content

Instantly share code, notes, and snippets.

@yablko
Last active July 13, 2017 10:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yablko/c251b6293ad604ae15f28e6288b84804 to your computer and use it in GitHub Desktop.
Save yablko/c251b6293ad604ae15f28e6288b84804 to your computer and use it in GitHub Desktop.

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