1 00:00:00,000 --> 00:00:03,388 >> [Hudba hrať] 2 00:00:03,388 --> 00:00:09,196 3 00:00:09,196 --> 00:00:10,180 >> DAVID J. Malan: Dobrý deň. 4 00:00:10,180 --> 00:00:12,600 Poďme sa prejsť Problem Set 8 Mashup, 5 00:00:12,600 --> 00:00:15,880 ktorý sa chystá vyzvať vás k čerpajú prvky pre Google Maps 6 00:00:15,880 --> 00:00:20,905 s prvkami z Google News a kašou ich dohromady do webového applet, ktorý 7 00:00:20,905 --> 00:00:24,150 umožňuje užívateľovi vyhľadávať mapa pre novinky miestnej 8 00:00:24,150 --> 00:00:26,780 na konkrétne miest, mestá a PSČ. 9 00:00:26,780 --> 00:00:31,040 K tomu, že budeme integrovať nejaký HTML, CSS, PHP, SQL, 10 00:00:31,040 --> 00:00:34,390 JavaScript a technika všeobecne známe ako AJAX, aby 11 00:00:34,390 --> 00:00:36,850 K vytvoreniu tohto pohlcujúce užívateľské skúsenosti. 12 00:00:36,850 --> 00:00:38,920 >> Pozrime sa najprv na samotné Google Maps. 13 00:00:38,920 --> 00:00:41,220 To je samozrejme možná známy rozhranie. 14 00:00:41,220 --> 00:00:45,070 Ale ukazuje sa, že Google Maps tiež poskytuje aplikáciu API-- 15 00:00:45,070 --> 00:00:48,360 programovanie interface-- cez ktorý si môžete vziať prvky Google Maps 16 00:00:48,360 --> 00:00:50,740 a integrovať ich do vlastné aplikácie. 17 00:00:50,740 --> 00:00:52,650 Naozaj, v celom tomto proces, budete 18 00:00:52,650 --> 00:00:55,140 nájsť niekoľko adries URL obzvlášť užitočné, že 19 00:00:55,140 --> 00:00:57,820 sú uvedené v špecifikácia problému Set 8, 20 00:00:57,820 --> 00:01:00,980 Konkrétne to Začíname Sprievodca alebo Príručke pre vývojárov 21 00:01:00,980 --> 00:01:07,640 pre Google Maps API verzie 3, ako ako API Google Maps JavaScript 22 00:01:07,640 --> 00:01:10,260 v3 odkaz, ktorý je bit viac Arcane na čítanie 23 00:01:10,260 --> 00:01:14,600 ale v skutočnosti má všetky nižšej úrovni Podrobnosti o tom, čo funkcie alebo metódy 24 00:01:14,600 --> 00:01:18,220 a objekty a vlastnosti a Udalosti v skutočnosti prichádzajú s API, 25 00:01:18,220 --> 00:01:20,720 veľmi podobné v duchu na [] nepočuteľný stránok. 26 00:01:20,720 --> 00:01:23,480 >> Teraz, keď sa pozrieme na Google News, budete 27 00:01:23,480 --> 00:01:25,370 snáď vidieť známe rozhranie tu. 28 00:01:25,370 --> 00:01:29,350 Ale ukazuje sa, môžete vyhľadávať Google News pre konkrétne zemepisných 29 00:01:29,350 --> 00:01:32,000 pomocou parametra HTTP s názvom geo. 30 00:01:32,000 --> 00:01:35,100 V skutočnosti, keď som priblížiť tu, uvidíte, že 31 00:01:35,100 --> 00:01:41,672 Som na news.google.com/news/section?geo=02138. 32 00:01:41,672 --> 00:01:43,630 A naozaj, keď som zoom out, uvidíte, že ja som 33 00:01:43,630 --> 00:01:47,090 pri pohľade na stránku s celou partiou názory na Cambridge, Massachusetts. 34 00:01:47,090 --> 00:01:50,620 >> Medzitým, keď som skutočne zmení URL nebyť PSČ takto, 35 00:01:50,620 --> 00:01:55,580 ale niečo trochu Messier ako je Cambridge, Massachusetts +, 36 00:01:55,580 --> 00:02:00,740 kde a je spôsob, ako kódovať medzera v URL a stlačte klávesu Enter, 37 00:02:00,740 --> 00:02:02,907 uvidíte, že som vlastne vidieť takmer rovnaký správy. 38 00:02:02,907 --> 00:02:05,489 Možno, že je to trochu inak pretože Cambridge vlastne 39 00:02:05,489 --> 00:02:06,910 má viac poštové smerovacie čísla. 40 00:02:06,910 --> 00:02:09,410 Teraz, ako by som to mohla vedieť, a V skutočnosti, ako by som mohol nejako 41 00:02:09,410 --> 00:02:12,940 rozhodujuca miest a obcí na poštových smerovacích čísel pre prípad, že 42 00:02:12,940 --> 00:02:15,064 Chcete, aby užívateľ vyhľadať buď? 43 00:02:15,064 --> 00:02:17,480 No, ukázalo sa, že je tu webové stránky tam volal 44 00:02:17,480 --> 00:02:20,060 geonames.org ktorý je iniciatíva mať 45 00:02:20,060 --> 00:02:23,760 voľne k dispozícii databáza všetkých druhy geografických informácií, 46 00:02:23,760 --> 00:02:27,040 a to nielen pre USA, ale tiež pre ostatné krajiny rovnako. 47 00:02:27,040 --> 00:02:30,430 V skutočnosti, keď pôjdem na túto adresu URL, ktorá sem je tiež zmienil sa v probléme nastavenej 48 00:02:30,430 --> 00:02:34,510 špecifikácie, budete to vidieť tri výpis veľa zip súborov 49 00:02:34,510 --> 00:02:36,400 ktorýkoľvek z nich si môžete stiahnuť vami. 50 00:02:36,400 --> 00:02:39,900 V skutočnosti, pre tento problém nastaviť budete sťahovať us.zip. 51 00:02:39,900 --> 00:02:43,790 Teraz v tomto súbore, je celý banda dát v textovom formáte. 52 00:02:43,790 --> 00:02:47,760 Súbory je veľmi podobná CSV-- hodnoty oddelené file-- 53 00:02:47,760 --> 00:02:51,294 ale v skutočnosti používa Karty vymedziť pole. 54 00:02:51,294 --> 00:02:53,710 A teraz, zatiaľ, keď sa pozriete tu na to, čo som sa zvýrazní, 55 00:02:53,710 --> 00:02:56,459 polia v tomto súbore sa deje byť veci ako kódy krajín, 56 00:02:56,459 --> 00:02:58,980 poštové smerovacie čísla, miestne názvy, a potom, v nejakej forme 57 00:02:58,980 --> 00:03:04,230 alebo iných, stavy a kraja, komunity, a ďalšie. 58 00:03:04,230 --> 00:03:06,630 V skutočnosti, som už stiahli tento súbor vopred. 59 00:03:06,630 --> 00:03:09,750 Nechaj ma ísť napred a otvorte ho here-- us.text-- a samozrejme budete 60 00:03:09,750 --> 00:03:16,660 zistil, či by som prejdite na linku 16792 uvidíte niekoľko záznamov pre Cambridge, 61 00:03:16,660 --> 00:03:19,120 Massachusetts a jeho rôzne zips kódy. 62 00:03:19,120 --> 00:03:22,150 To, čo vidím tiež, že je kraj, niektoré čísla, ktoré som sa naozaj 63 00:03:22,150 --> 00:03:24,500 Rozumiem, ale tiež všetky ako na pravej, 64 00:03:24,500 --> 00:03:27,170 Niektoré GPS coordinates-- zemepisnej šírky a dĺžky. 65 00:03:27,170 --> 00:03:30,440 To je skvelé, pretože jeden z Rysy Google Maps API 66 00:03:30,440 --> 00:03:33,670 je schopnosť detekovať kde ste geograficky 67 00:03:33,670 --> 00:03:36,850 pokiaľ ide o GPS súradníc. 68 00:03:36,850 --> 00:03:40,210 >> Teraz poďme začať prísť na to, ako sa spustiť viazanie tieto veci dohromady. 69 00:03:40,210 --> 00:03:42,900 Dali sme vám celý banda distribúcia kódu, 70 00:03:42,900 --> 00:03:44,970 ako aj databázy MySQL. 71 00:03:44,970 --> 00:03:49,100 V skutočnosti, keď som vytiahnuť phpMyAdmin majúce už importované, ako skoro bude, 72 00:03:49,100 --> 00:03:54,800 pset8.SQL, uvidíte tabuľku MySQL, ktorý vyzerá to, ID poľa, krajiny 73 00:03:54,800 --> 00:03:57,400 kód, poštové smerovacie číslo, názov miesta a ďalšie. 74 00:03:57,400 --> 00:04:00,490 Typy všetky tie, stĺpce I odvodené jednoducho 75 00:04:00,490 --> 00:04:03,870 čítaním readme.text súbor tu uvedená 76 00:04:03,870 --> 00:04:07,330 či pole je celé číslo, alebo varchar alebo podobne. 77 00:04:07,330 --> 00:04:10,510 >> Preto sme vytvorili uvedenej tabuľky pre Vy a vám dal príkazy SQL 78 00:04:10,510 --> 00:04:12,770 vykonať vytvárať že stôl vo svojej vlastnej databáze, 79 00:04:12,770 --> 00:04:15,290 ale je to vlastne v nej doteraz žiadne údaje. 80 00:04:15,290 --> 00:04:19,600 Skôr, budete musieť k stiahnutiu us.zip alebo zips akejkoľvek krajiny 81 00:04:19,600 --> 00:04:21,500 súbor od tej tam URL. 82 00:04:21,500 --> 00:04:24,940 A potom budete musieť písať príkazový riadok skript v PHP, ktorý je 83 00:04:24,940 --> 00:04:28,420 chystá otvoriť, že text súbor, iteráciu cez svoje linky, 84 00:04:28,420 --> 00:04:31,180 a potom pre každú tieto riadky urobiť vložku 85 00:04:31,180 --> 00:04:34,940 do toho miesta tabuľky v databáze MySQL. 86 00:04:34,940 --> 00:04:37,880 Takže na konci tohto procesu, budete narazili, že skript nakoniec 87 00:04:37,880 --> 00:04:39,610 len raz v teórii. 88 00:04:39,610 --> 00:04:41,780 V skutočnosti pravdepodobne budete spustiť to veľa časov 89 00:04:41,780 --> 00:04:45,460 pri pokuse opraviť rôzne chyby. 90 00:04:45,460 --> 00:04:48,440 >> Nakoniec, budete mať naozaj veľké databázy s tisíckami 91 00:04:48,440 --> 00:04:50,139 a tisíce geografických riadkov. 92 00:04:50,139 --> 00:04:52,930 Potom sa chystáte dať, aby dovoz skript stranou raz, že to funguje 93 00:04:52,930 --> 00:04:55,140 a databázy je pekné a správne, a potom sa 94 00:04:55,140 --> 00:04:58,880 chystáte prejsť na skutočne vykonávanie mashup sám. 95 00:04:58,880 --> 00:05:01,670 Mashup bude vyzerať trochu niečo také. 96 00:05:01,670 --> 00:05:05,165 V mashup.cs50.net sme má riešenie zamestnancov 97 00:05:05,165 --> 00:05:06,990 že vyzerá trochu niečo také. 98 00:05:06,990 --> 00:05:11,070 V skutočnosti, keď som kliknite na tento noviny Ikonka pre Cambridge, Massachusetts, 99 00:05:11,070 --> 00:05:13,300 uvidíte spriadanie krátko a potom ikonu 100 00:05:13,300 --> 00:05:16,370 objednal zoznam odrážkami zoznam článkov 101 00:05:16,370 --> 00:05:18,280 vzťahujúce sa k Cambridge, Massachusetts. 102 00:05:18,280 --> 00:05:20,352 Keď kliknem na Charlestown, Massachusetts, 103 00:05:20,352 --> 00:05:21,685 Uvidím, rovnaké pre dané mesto. 104 00:05:21,685 --> 00:05:24,174 A keď som kliknite na Watertown, Massachusetts, 105 00:05:24,174 --> 00:05:26,090 mohlo by nemal byť žiadny Správy o z Watertown, 106 00:05:26,090 --> 00:05:28,630 takže uvidíte niečo ako pomalý novinky deň. 107 00:05:28,630 --> 00:05:32,140 >> A teraz, zatiaľ, v ľavej hornej časti sú Niektoré známe ovládacie Google Maps 108 00:05:32,140 --> 00:05:34,980 aby vám oddialiť, pán hore, dole, doľava a doprava, 109 00:05:34,980 --> 00:05:37,360 ale tiež vyhľadávacie pole, ktoré sme tam dal. 110 00:05:37,360 --> 00:05:40,910 Takže keď som sa hľadať, úprimne povedané, Jedinou ďalšou poštové smerovacie číslo viem, 111 00:05:40,910 --> 00:05:45,020 90.210, budeme skutočne vidieť Beverly Hills, Kalifornia. 112 00:05:45,020 --> 00:05:48,550 Po kliknutí ma to vedie k Kalifornia a celá partia 113 00:05:48,550 --> 00:05:50,369 zo správy o Beverly Hills. 114 00:05:50,369 --> 00:05:51,910 Teraz si všimnúť, aj to, čo sa tam stalo. 115 00:05:51,910 --> 00:05:57,040 Ak sa aj tentoraz hľadanie 02138 alebo dokonca Cambridge čiarka Massachusetts alebo nejaká 116 00:05:57,040 --> 00:06:00,300 variantu, dostanete málo autocomplete dropdown. 117 00:06:00,300 --> 00:06:03,840 Teraz to je pomocou plugin pre knižnicu s názvom jQuery, 118 00:06:03,840 --> 00:06:05,732 a že plugin sa nazýva doprednej. 119 00:06:05,732 --> 00:06:07,440 Proste sme prečítať dokumentácia, 120 00:06:07,440 --> 00:06:13,150 stiahli JS súbor integrovaných do distribučnej kódu, takže vás 121 00:06:13,150 --> 00:06:16,900 v konečnom dôsledku môže písať kód, ktorý vyplní, že rozbaľovacej ponuky sa auto 122 00:06:16,900 --> 00:06:19,350 výbery alebo ich auto návrhy. 123 00:06:19,350 --> 00:06:23,820 >> Teraz distribúcia kód, aj keď, že ste dostali nerobí skoro rovnako. 124 00:06:23,820 --> 00:06:26,860 Získate Map Google vložený, a dostanete ovládacie prvky v ľavom hornom rohu, 125 00:06:26,860 --> 00:06:28,240 a dostanete vyhľadávacie pole. 126 00:06:28,240 --> 00:06:32,760 Ale keď píšem niečo ako 02138, žiadne miesta sú nájdené doteraz. 127 00:06:32,760 --> 00:06:34,730 Takže to bude Jedným z našich cieľov tu. 128 00:06:34,730 --> 00:06:37,430 Navyše, ak budete mať o krok späť a pozrieť sa na mapu sám, 129 00:06:37,430 --> 00:06:38,950 nie je novinka vôbec. 130 00:06:38,950 --> 00:06:41,780 Aj keď som kliknite na tlačidlo a ťahať, žiadne značky vlastne 131 00:06:41,780 --> 00:06:45,560 sa objavujú novinky, pretože to Problém je ponechaný aj pre vás. 132 00:06:45,560 --> 00:06:48,490 >> Poďme sa pozrieť a potom v distribučnom kóde. 133 00:06:48,490 --> 00:06:51,460 Potom, čo ste si stiahli pset8.zip a rozopol ho 134 00:06:51,460 --> 00:06:54,430 do vhost adresára V CS50 Appliance, 135 00:06:54,430 --> 00:06:56,550 uvidíte tieto adresára tu vnútri. 136 00:06:56,550 --> 00:07:00,200 Bin-- čo všeobecne znamená binárne spustiteľné programs-- 137 00:07:00,200 --> 00:07:04,870 zahŕňa, ako je v pset7, niektoré PHP Súbory, ktoré ostatní súbory obsahujú, 138 00:07:04,870 --> 00:07:06,710 potom verejnosť, čo je súbory, ktoré potrebujú 139 00:07:06,710 --> 00:07:09,369 byť verejne prístupné užívateľovi v prostredí internetového prehliadača. 140 00:07:09,369 --> 00:07:11,410 Poďme sa pozrieť na bin, a my budeme 141 00:07:11,410 --> 00:07:13,890 vidieť, že tam je súbor tam už volal Importovať. 142 00:07:13,890 --> 00:07:17,591 Po otvorení to s gedit, uvidíme že, bohužiaľ, že to nie je moc 143 00:07:17,591 --> 00:07:18,090 tam. 144 00:07:18,090 --> 00:07:20,250 Všetko, čo je tam, aj keď, je shebang hore 145 00:07:20,250 --> 00:07:23,410 ktorý určuje, ktoré interpreter-- v tomto prípade PHP-- 146 00:07:23,410 --> 00:07:25,759 by mali byť použité pre skutočne spustiť tento súbor. 147 00:07:25,759 --> 00:07:27,550 Ale potom, kde sa hovorí, že TODO je miesto, kde ste 148 00:07:27,550 --> 00:07:31,130 bude musieť napísať nejaký kód ktorá pravdepodobne vyžaduje config 149 00:07:31,130 --> 00:07:35,820 Súbor, ktorý je v adresári zahŕňa ako sme urobili predtým s PHP súbory. 150 00:07:35,820 --> 00:07:38,180 A potom budete musieť nejako otvoriť 151 00:07:38,180 --> 00:07:41,920 us.text ktorá vám pravdepodobne rozbalenie už. 152 00:07:41,920 --> 00:07:44,690 Potom budete musieť opakovať na tratiach v tomto súbore, 153 00:07:44,690 --> 00:07:47,800 prípadne s využitím niektorých funkcií navrhnuté v špecifikácii. 154 00:07:47,800 --> 00:07:51,390 Potom vložte každý z nich linky do databázy MySQL 155 00:07:51,390 --> 00:07:54,940 pomocou funkcie dotazu, ktorý sme opäť vám poskytol with-- 156 00:07:54,940 --> 00:07:58,010 alebo aspoň variant tom functions.php, 157 00:07:58,010 --> 00:07:59,560 ktorý uvidíme za chvíľu. 158 00:07:59,560 --> 00:08:04,430 >> Teraz poďme uzavrieť dovoz a vrátiť sa do našom zozname, a tentoraz ísť do 159 00:08:04,430 --> 00:08:05,300 zahŕňa. 160 00:08:05,300 --> 00:08:09,210 A keď to urobím ls tam, uvidíte tri súbory celkom páči Zadanie problému 7. 161 00:08:09,210 --> 00:08:13,760 A poďme sa rýchlo pozrieť, Napríklad, v config.php. 162 00:08:13,760 --> 00:08:16,730 V tam je menej riadkov ako predtým, a to 163 00:08:16,730 --> 00:08:20,712 Zdá sa, tento súbor obsahuje constants.php a functions.php. 164 00:08:20,712 --> 00:08:23,670 Používame mierne odlišný Technika tentoraz skutočne 165 00:08:23,670 --> 00:08:30,910 upresniť, že tieto súbory sú relatívne k aktuálnemu adresáru __ DIR__ 166 00:08:30,910 --> 00:08:35,280 znamená čokoľvek adresár to súbor config.php, je sám o sebe v. 167 00:08:35,280 --> 00:08:37,600 Tak toto je viac explicitné spôsob zadávania 168 00:08:37,600 --> 00:08:40,100 aké ďalšie súbory, ktoré chcete potrebovať. 169 00:08:40,100 --> 00:08:44,020 >> Teraz, keď uzavriem tento súbor a otvoriť constants.php namiesto toho, 170 00:08:44,020 --> 00:08:47,430 uvidíte súbor veľmi pripomínajúce k problému Set 7 je tiež, aj keď 171 00:08:47,430 --> 00:08:50,050 s inej databáze s názvom pset8. 172 00:08:50,050 --> 00:08:54,020 A konečne, v functions.php, uvidíme len jednu funkciu 173 00:08:54,020 --> 00:08:55,942 tentoraz s názvom dotazu. 174 00:08:55,942 --> 00:08:59,150 To je takmer rovnaký s výnimkou vybavujeme Chyby tentoraz trochu 175 00:08:59,150 --> 00:09:02,860 inak, ale je to využitie je rovnako ako v problém nastaviť sedem. 176 00:09:02,860 --> 00:09:08,090 >> A teraz sa vráťme do našej pset8 adresár, ísť do verejnosti, a tam 177 00:09:08,090 --> 00:09:14,420 keď to urobím ls, uvidíte tohle-- articles.php, index.html, search.php, 178 00:09:14,420 --> 00:09:16,940 a update.php-- všetky súbory. 179 00:09:16,940 --> 00:09:22,010 A potom CSS fonty, img, a js adresár celkom rád pset7. 180 00:09:22,010 --> 00:09:24,660 >> Poďme sa pozrieť na index.html, ktorý je 181 00:09:24,660 --> 00:09:27,290 bude naozaj vstupný bod do smashup. 182 00:09:27,290 --> 00:09:31,820 Teraz v index.html, uvidíte celý banda odkazov prvkov v hlave, 183 00:09:31,820 --> 00:09:36,540 konkrétne pre bootstrap pre naše vlastné CSS nasleduje veľa skriptu 184 00:09:36,540 --> 00:09:41,520 tagy pre veci, ako mapy, API sám, špeciálne značka s popisom 185 00:09:41,520 --> 00:09:44,950 nástroj, ktorý sme spomenuli v špecifikácia je vám k dispozícii, 186 00:09:44,950 --> 00:09:48,420 jQuery sám, bootstrap sám, a ďalšie knižnice 187 00:09:48,420 --> 00:09:50,990 volal podčiarkovník, ktoré hovoríme o vo špec. 188 00:09:50,990 --> 00:09:57,031 Underscore.js ako jquery.js je knižnica JavaScript 189 00:09:57,031 --> 00:10:00,280 ktorý má veľa funkcií že mnoho ľudí vo svete prianí 190 00:10:00,280 --> 00:10:02,020 existovalo v samotnom JavaScriptu. 191 00:10:02,020 --> 00:10:04,560 Takže všetci z nich sú vlastne celkom populárne. 192 00:10:04,560 --> 00:10:07,140 Sme tiež zmienil doprednej ktorý je knižnica, ktorá 193 00:10:07,140 --> 00:10:11,180 robí automatického dokončovania dropdown a nakoniec odkaz na naše vlastné JavaScript. 194 00:10:11,180 --> 00:10:13,880 >> Medzitým, a možno Našťastie tento mashup 195 00:10:13,880 --> 00:10:17,550 je riadený pomerne málo HTML tu dole. 196 00:10:17,550 --> 00:10:22,330 Všimnite si, že sme zadali div v naše telo triedy kontajnera tekutiny. 197 00:10:22,330 --> 00:10:24,610 To, na Bootstrap je dokumentácia, len 198 00:10:24,610 --> 00:10:29,840 Znamená to, že tento div bude vyplniť výrez alebo okna prehliadača je plne. 199 00:10:29,840 --> 00:10:33,020 >> Medzitým, pod tým máme div že ich otvoril a okamžite zavrel 200 00:10:33,020 --> 00:10:34,790 s unikátnym ID mapového okna. 201 00:10:34,790 --> 00:10:37,400 To je teraz od spoločnosti Google Dokumentácia Mapy 202 00:10:37,400 --> 00:10:42,490 pre jeho API, čím som sa proste musíte máte prázdny DIV, do ktorej chcete aplikovať, 203 00:10:42,490 --> 00:10:44,470 nakoniec, skutočný Google Maps. 204 00:10:44,470 --> 00:10:46,310 Ale o tom viac v len trochu. 205 00:10:46,310 --> 00:10:48,850 >> Napokon, tam je formulár vnútri ktoré tu 206 00:10:48,850 --> 00:10:52,930 implementuje textového poľa hore vľavo hore v našom rozhranie pre vyhľadávanie. 207 00:10:52,930 --> 00:10:54,730 Všimnite si, že sme použili trochu bootstrap 208 00:10:54,730 --> 00:10:57,670 Tu too-- veci ako form-inline a forma-group. 209 00:10:57,670 --> 00:11:00,080 Dali sme skoršie Unikátne ID formy. 210 00:11:00,080 --> 00:11:04,510 A potom, konečne, vlastne mám typu vstupu, čo je celkom známy, 211 00:11:04,510 --> 00:11:06,440 ktorého ID je q. 212 00:11:06,440 --> 00:11:07,230 Len konvencie. 213 00:11:07,230 --> 00:11:09,234 Q pre query-- by mohli mať bol povolaný čokoľvek. 214 00:11:09,234 --> 00:11:11,400 A potom zástupný symbol, Medzitým, je mesto, štát, 215 00:11:11,400 --> 00:11:16,200 a poštové smerovacie číslo, ktoré by vás mohli vyvolať videnie v našom mashup demo skôr. 216 00:11:16,200 --> 00:11:17,980 Poďme uzavrieť tento súbor. 217 00:11:17,980 --> 00:11:24,460 >> Teraz sa pozri na súbory, PHP, ktoré čakajú a potom súbory JavaScript. 218 00:11:24,460 --> 00:11:27,700 V našich PHP súbory, máme ktorá už bola vykonaná pre vás, 219 00:11:27,700 --> 00:11:29,960 Napríklad, aktualizácie. 220 00:11:29,960 --> 00:11:35,060 Update.php-- nebudeme míňať obrovské Množstvo času na here-- v kocke 221 00:11:35,060 --> 00:11:38,400 je súbor, ktorý otázky Kód JavaScript sa deje 222 00:11:38,400 --> 00:11:41,610 kontaktovať cez AJAX, že asynchrónne technika, ktorá je 223 00:11:41,610 --> 00:11:45,980 zabudované do JavaScriptu v týchto dňoch, že je to bude nám umožní požiadať update.php 224 00:11:45,980 --> 00:11:47,410 Pre viac informácií. 225 00:11:47,410 --> 00:11:50,045 >> Konkrétne, kedykoľvek užívateľ ťahá mapu 226 00:11:50,045 --> 00:11:53,310 alebo vykoná vyhľadávanie, ktorý skáče Užívateľ na iné miesto, 227 00:11:53,310 --> 00:11:55,250 náš kód JavaScript ako čoskoro uvidíte, je 228 00:11:55,250 --> 00:11:59,610 zavolá update.php a požiadať o 10 alebo tak markerov 229 00:11:59,610 --> 00:12:02,630 vo výreze na báze o GPS súradniciach 230 00:12:02,630 --> 00:12:06,510 v hornej a dolnej časti rohy tejto mape. 231 00:12:06,510 --> 00:12:10,520 Potom sme sa znova osídliť mapy teraz, užívateľ presunul obrazovke v poradí 232 00:12:10,520 --> 00:12:14,210 vidieť, 10 asi nové markery rôznych mestách. 233 00:12:14,210 --> 00:12:18,340 Medzitým, tento súbor je v konečnom dôsledku chystá spustiť SQL dotazu 234 00:12:18,340 --> 00:12:21,680 proti našej databáze tabuľku s názvom miesta, ktoré 235 00:12:21,680 --> 00:12:26,380 sa bude vracať tie 10 alebo menej miesta. 236 00:12:26,380 --> 00:12:32,620 >> Medzitým, v articles.php, je ďalším súbor písali sme v plnom rozsahu. 237 00:12:32,620 --> 00:12:35,820 Je to veľmi podobné v duchu k Funkcia vyhľadávania Zadanie problému 7 je, 238 00:12:35,820 --> 00:12:39,450 ktorý kontaktoval Yahoo Finance pre vás. 239 00:12:39,450 --> 00:12:43,710 Tento súbor kontakty Google News pre vás, nakoniec schmatol 240 00:12:43,710 --> 00:12:46,050 strojovo čitateľné version-- v niečom 241 00:12:46,050 --> 00:12:49,720 volal RSS format-- z noviniek pre Cambridge alebo Beverly Hills 242 00:12:49,720 --> 00:12:52,880 alebo čo mesto, ktoré ste hľadali na na základe tohto geoparameter. 243 00:12:52,880 --> 00:12:57,250 My analyzovať tento RSS, ktorá je len typ značkovacieho jazyka XML volal, 244 00:12:57,250 --> 00:13:00,740 a potom sme vlastne vrátiť do vášho prehliadača 245 00:13:00,740 --> 00:13:03,570 a do kódu JavaScript konkrétne vo formáte s názvom 246 00:13:03,570 --> 00:13:06,097 JSON, JavaScript Object Notation. 247 00:13:06,097 --> 00:13:08,180 Teraz uvidíte v specification-- vám ukázať 248 00:13:08,180 --> 00:13:10,720 na to, ako môžete skutočne vidieť niektoré z JSON nadchádzajúcej back-- 249 00:13:10,720 --> 00:13:15,210 že táto funkcia nakoniec vám umožní naplniť tie vyskakovacie menu tak 250 00:13:15,210 --> 00:13:16,960 že po kliknutí na tlačidlo na marker v mape 251 00:13:16,960 --> 00:13:19,430 je skutočne vidieť veľa guličiek, z ktorých každá 252 00:13:19,430 --> 00:13:21,020 odkazy na článok. 253 00:13:21,020 --> 00:13:25,000 >> Teraz sa poďme pozrieť na jeden posledný PHP súbor, ktorý, našťastie, nie je 254 00:13:25,000 --> 00:13:27,970 majú veľa ísť on-- len celkom veľký TODO. 255 00:13:27,970 --> 00:13:32,170 Práve teraz tento súbor vyhlasuje pole s názvom miesta. 256 00:13:32,170 --> 00:13:35,980 A potom nakoniec publikácií že pole v JSON format-- 257 00:13:35,980 --> 00:13:38,720 to pekne, tlač len preto, aby veci sú jednoduchšie ladenie. 258 00:13:38,720 --> 00:13:41,480 Bohužiaľ, v Uprostred je to TODO, 259 00:13:41,480 --> 00:13:46,890 hovory, ktoré pre vás vyhľadávanie databázy pre miesta zodpovedajúcich geo HTTP 260 00:13:46,890 --> 00:13:47,490 parametrov. 261 00:13:47,490 --> 00:13:49,865 >> A skutočne, to bude byť jeden z vašich challenges-- 262 00:13:49,865 --> 00:13:54,240 implementovať túto funkciu tu tak, že keď sa obrátite na tento súbor 263 00:13:54,240 --> 00:14:00,610 URL ako vyhľadávanie. php? geo = niečo, Váš kód bude nakoniec vráti JSON 264 00:14:00,610 --> 00:14:05,020 pole zo všetkých miest vo vašom databázové tabuľky, ktoré zodpovedajú, že vstup. 265 00:14:05,020 --> 00:14:08,960 Takže v prípade, že používateľ zadá v meste Cambridge, váš súbor tu search.php 266 00:14:08,960 --> 00:14:12,680 by mala v konečnom dôsledku vrátiť pole JSON pre všetky zápasy na Cambridge, 267 00:14:12,680 --> 00:14:16,990 ktorý by mohol byť v Massachusetts ale môže byť aj kdekoľvek inde. 268 00:14:16,990 --> 00:14:21,040 >> A konečne, poďme sa pozrieť na dve súbory, ktoré sú statické ultimately-- 269 00:14:21,040 --> 00:14:23,680 Váš CSS súbor a váš súbor JavaScript. 270 00:14:23,680 --> 00:14:26,779 Keď idem do našej CSS adresára, je tu celá partia súborov tam, 271 00:14:26,779 --> 00:14:28,070 ale väčšina z nich sú knižnice. 272 00:14:28,070 --> 00:14:31,530 Idem sa pozrieť, špecificky, na styles.css, 273 00:14:31,530 --> 00:14:35,440 čo je naše vlastné globálne CSS, že je to bude štylizovať celý tento mashup. 274 00:14:35,440 --> 00:14:38,840 Nechám to na vás, aby ste prečítať komentáre tu, ale v kocke, 275 00:14:38,840 --> 00:14:43,490 to je CSS, ktorý zabezpečuje, že naše mashup, v predvolenom nastavení po vybalení z krabice, 276 00:14:43,490 --> 00:14:46,950 vyzerá presne tak, ako chceme to-- s mapou plniace výrezu 277 00:14:46,950 --> 00:14:49,720 a s hľadaním box sa v ľavom hornom rohu. 278 00:14:49,720 --> 00:14:52,870 Tiež sme vziať slobodu štylizácia, že typeahead rozbaľovací 279 00:14:52,870 --> 00:14:55,170 Ponuka trochu rovnako. 280 00:14:55,170 --> 00:14:58,030 >> Najdôležitejšie súbor možno pre tento problém nastaviť 281 00:14:58,030 --> 00:15:01,070 je to posledné, scripts.js. 282 00:15:01,070 --> 00:15:03,800 Vnútri adresára JS je aj viac súborov. 283 00:15:03,800 --> 00:15:08,090 Všetky z nich sú súbory knižníc s výnimkou pre tento jeden, scripts.js. 284 00:15:08,090 --> 00:15:11,460 Po otvorení toto hore, poďme sa naša Posledné turné prostredníctvom funkcií, ktoré 285 00:15:11,460 --> 00:15:13,820 sú zabudované do tohto súboru pre vás a upozorniť 286 00:15:13,820 --> 00:15:16,200 na Todos, ktoré ležia pred nami. 287 00:15:16,200 --> 00:15:19,110 >> V hornej časti tohto súboru, sú tri globálne premenné. 288 00:15:19,110 --> 00:15:22,910 Jeden pre mapy, ktorý sa chystá je odkaz na našu mapu Google. 289 00:15:22,910 --> 00:15:25,510 Môžete si ju trochu ako ukazovateľ. 290 00:15:25,510 --> 00:15:27,710 Medzitým, máme ďalšie globálne premenné 291 00:15:27,710 --> 00:15:31,500 volal info, ktorý sa zdá byť uloženie návratovej hodnoty volania 292 00:15:31,500 --> 00:15:34,170 nové google.maps.InfoWindow. 293 00:15:34,170 --> 00:15:37,835 JavaScript podporuje objekty, ktoré sú veľmi podobné v duchu k vzperami. 294 00:15:37,835 --> 00:15:40,250 A čo tento riadok pre naše účely je na tom 295 00:15:40,250 --> 00:15:42,820 je vytvorenie novej info Okno v pamäti a potom 296 00:15:42,820 --> 00:15:46,330 vedenie okolo odkazu nej v premennej s názvom Info. 297 00:15:46,330 --> 00:15:48,330 A medzi tými, Medzitým, je to, čo sa zdá 298 00:15:48,330 --> 00:15:51,060 byť prázdny JavaScript pole s názvom značky. 299 00:15:51,060 --> 00:15:55,392 Všetky tieto novín ikon, alebo môže zvoliť inú ikonu úplne, 300 00:15:55,392 --> 00:15:57,350 sa bude skladovať nakoniec v tomto poli 301 00:15:57,350 --> 00:16:01,570 takže môžeme veľmi ľahko pridať do Mapa a odstrániť z mapy. 302 00:16:01,570 --> 00:16:03,990 >> Teraz prejdite nadol trochu a svišťanie 303 00:16:03,990 --> 00:16:07,690 prostredníctvom kódu, ktorý ich bude urobí čo DOM alebo dokument 304 00:16:07,690 --> 00:16:10,480 objektový model, alebo strana sama o sebe je pripravený. 305 00:16:10,480 --> 00:16:12,942 Pripomeňme si, že túto syntax tu proste určuje 306 00:16:12,942 --> 00:16:14,900 že nasledujúci kód by mali byť vykonávané iba 307 00:16:14,900 --> 00:16:17,840 v prípade, že prehliadač dokončenie načítanie všetko ostatné. 308 00:16:17,840 --> 00:16:19,750 >> Prvýkrát sme sa vyhlásiť veľa štýlov, 309 00:16:19,750 --> 00:16:22,410 ktorý končí štylizácia Mapa podľa špec. 310 00:16:22,410 --> 00:16:24,790 Potom sme vyhlásiť veľa možností, 311 00:16:24,790 --> 00:16:28,630 čo ďalej prispôsobiť Google mapa, ktorá sa chystáme vložiť. 312 00:16:28,630 --> 00:16:32,090 My potom použiť trochu jQuery kódu, ktorá je vysvetlená v trochu podrobnejšie 313 00:16:32,090 --> 00:16:35,000 v spec, chytiť tento prvok, mapa, plátno 314 00:16:35,000 --> 00:16:36,980 že sme tak jednoznačne identifikované. 315 00:16:36,980 --> 00:16:40,640 A potom sa táto linka je tu to, čo sa zdá, ako mávnutím čarovného prútika, aby nám 316 00:16:40,640 --> 00:16:43,560 Google vnútri naše vlastné aplikácie, 317 00:16:43,560 --> 00:16:47,020 uloženie odkaz na ne V tejto premennej s názvom mapy. 318 00:16:47,020 --> 00:16:50,550 >> A konečne, tu dole sme sa zaregistrujte čo sa nazýva poslucháč. 319 00:16:50,550 --> 00:16:54,690 Myslíš, že back-- cesta, cesta back-- na týždeň nula v CS50 320 00:16:54,690 --> 00:16:57,430 keď sme sa pozreli na Scratch a jeho podpora prostredníctvom prechádzku 321 00:16:57,430 --> 00:16:59,935 vďaka za veci s názvom udalosti a vysielania. 322 00:16:59,935 --> 00:17:01,810 Možno nepoužili it yourself, ale je to 323 00:17:01,810 --> 00:17:03,900 mechanizmus, ktorý prehliadača v tomto prípade 324 00:17:03,900 --> 00:17:07,940 Môžete získať našu pozornosť, keď je to pripravení skutočne spustiť nejaký kód. 325 00:17:07,940 --> 00:17:12,170 V tomto prípade, že to bude počúvať na mapu na akciu s názvom nečinnosti. 326 00:17:12,170 --> 00:17:14,930 To znamená, že prehliadač má dokončil načítanie mapy Google. 327 00:17:14,930 --> 00:17:18,380 V tomto bode s názvom funkcie configure by nakoniec 328 00:17:18,380 --> 00:17:19,339 byť vykonané. 329 00:17:19,339 --> 00:17:22,510 Táto funkcia, konfigurovať, uvidíme, je napísaný u nás. 330 00:17:22,510 --> 00:17:24,550 >> Teraz tu je funkcia že, bohužiaľ, 331 00:17:24,550 --> 00:17:25,871 je len TODO add značka. 332 00:17:25,871 --> 00:17:28,620 Per špec. budete potrebovať napísať kód, ktorý skutočne 333 00:17:28,620 --> 00:17:32,840 pridáva marker-- nech to vyzerá ako noviny, alebo palec pripináčika, 334 00:17:32,840 --> 00:17:35,360 alebo niečo else-- na Google mape. 335 00:17:35,360 --> 00:17:37,720 Tu už je to, že funkcia volal configure. 336 00:17:37,720 --> 00:17:40,390 Nechám to na vás, aby ste prečítať cez to podrobnejšie, 337 00:17:40,390 --> 00:17:42,600 ale uvedomiť, že pridáme partia viac poslucháčov 338 00:17:42,600 --> 00:17:46,620 takže môžeme spustiť kód, keď užívateľ klikne na vytiahne mapu. 339 00:17:46,620 --> 00:17:50,730 Máme tiež kód tu, že inicializuje, že typeahead plugin 340 00:17:50,730 --> 00:17:53,120 takže dropdown ponuka skutočne funguje. 341 00:17:53,120 --> 00:17:55,690 >> Ale poďme zamerať na práve Pár miest tu. 342 00:17:55,690 --> 00:17:57,590 Konkrétne sa to robiť. 343 00:17:57,590 --> 00:18:00,410 Budem odložiť na on-line dokumentácie a špecifikácie 344 00:18:00,410 --> 00:18:02,530 na to, ako vyplniť túto TODO. 345 00:18:02,530 --> 00:18:05,890 Ale v skratke, táto knižnica doprednej umožňuje odovzdať 346 00:18:05,890 --> 00:18:09,790 v tom, čo je všeobecne známe ako šablónu, , Ktorá má nejaké premenné zástupné symboly 347 00:18:09,790 --> 00:18:13,690 veľmi podobný svojim duchom printf je%. * s. 348 00:18:13,690 --> 00:18:16,030 Ale v tomto prípade, Šablóna na spec 349 00:18:16,030 --> 00:18:18,760 umožňuje zadať to, čo chcete, premenné 350 00:18:18,760 --> 00:18:24,880 aplikovať z údajov, ktoré pochádzajú späť z niečoho, ako je PHP 351 00:18:24,880 --> 00:18:29,810 súbory, ktoré ste napísali ktoré sú emitujúca výstup JSON. 352 00:18:29,810 --> 00:18:35,170 >> Teraz sem si uvedomil, že sme počúvanie pre doprednej výbery 353 00:18:35,170 --> 00:18:38,050 keď používateľ skutočne vykonáva vyhľadávanie a vyberie hodnotu. 354 00:18:38,050 --> 00:18:40,270 To je, ako sme vlastne bude počúvať, že 355 00:18:40,270 --> 00:18:42,250 a spustiť nejaký kód ako výsledok. 356 00:18:42,250 --> 00:18:45,300 Ďalej budeme pokračovať v konfigurácii mashup len trochu. 357 00:18:45,300 --> 00:18:48,000 A nakoniec, nazývame táto funkcia aktualizácie. 358 00:18:48,000 --> 00:18:49,640 Aktualizuje značiek na obrazovke. 359 00:18:49,640 --> 00:18:51,529 Viac o tom za chvíľu. 360 00:18:51,529 --> 00:18:53,570 Medzitým, je tu pár malé funkcie v tu. 361 00:18:53,570 --> 00:18:56,820 Jedným z nich je hideInfo ktorý proste zavrie InfoWindow. 362 00:18:56,820 --> 00:19:00,020 Ďalšou funkciou, ktorá sem nakoniec nebude príliš dlhá, odstrániť značky. 363 00:19:00,020 --> 00:19:03,580 To bude vrátiť čokoľvek Váš add funkcie značka robí. 364 00:19:03,580 --> 00:19:04,960 A potom tu je vyhľadávanie. 365 00:19:04,960 --> 00:19:08,610 A toto je zaujímavé, pretože my písali kód JavaScriptu, ktorý je 366 00:19:08,610 --> 00:19:13,490 hovoriť do search.php na serveru a získať späť časť odpovede. 367 00:19:13,490 --> 00:19:16,110 >> Tie, samozrejme, bude aj naďalej musieť implementovať search.php, 368 00:19:16,110 --> 00:19:18,310 ale my sme realizovaný JavaScript kód, ktorý je 369 00:19:18,310 --> 00:19:22,480 bude zvládnuť skutočne vykonáva vyhľadáva od tohto textového poľa. 370 00:19:22,480 --> 00:19:25,340 Najmä, oznámenia že táto funkcia tu, 371 00:19:25,340 --> 00:19:29,160 vyhľadávanie, to volanie search.php metódou zvanou 372 00:19:29,160 --> 00:19:31,072 dostať JSON, ktorý sme videli v prednáške. 373 00:19:31,072 --> 00:19:32,780 A syntax tu je trochu inak 374 00:19:32,780 --> 00:19:37,110 z prednášky v tom, že sme pomocou jQuery tzv sľub rozhranie. 375 00:19:37,110 --> 00:19:38,479 O tom viac v špec. 376 00:19:38,479 --> 00:19:40,520 To jednoducho znamená pre našu účely sa, že tam 377 00:19:40,520 --> 00:19:43,870 sú dve špeciálne funkcie sme treba volať bodovým zápisom 378 00:19:43,870 --> 00:19:46,230 tu hneď po volaní dostať JSON. 379 00:19:46,230 --> 00:19:47,510 Jedným z nich je tzv hotovo. 380 00:19:47,510 --> 00:19:49,870 Jedným z nich je tzv zlyhanie. 381 00:19:49,870 --> 00:19:51,790 Môžete si myslieť o týchto ako ovládač úspech 382 00:19:51,790 --> 00:19:54,960 a psovod zlyhanie práve V prípade, že sa niečo pokazí. 383 00:19:54,960 --> 00:19:57,760 >> Teraz sa pozrime na poslednú niekoľko funkcií v tomto súbore. 384 00:19:57,760 --> 00:20:00,180 Tu dole je funkcia nazvaný showinfo, ktorý 385 00:20:00,180 --> 00:20:03,090 zobrazuje informácie v jednom z tých, malé info okná, ktoré 386 00:20:03,090 --> 00:20:05,380 sa objaví, keď používateľ klikne na značku. 387 00:20:05,380 --> 00:20:08,470 Tu dole je ďalší že funkcia aktualizácie 388 00:20:08,470 --> 00:20:10,510 že sme zaviedli pre vás. 389 00:20:10,510 --> 00:20:15,250 To určuje hranice mapy. 390 00:20:15,250 --> 00:20:19,360 Aké sú GPS súradnice jeho severovýchod a juhozápadnej rohy tu. 391 00:20:19,360 --> 00:20:22,780 Pripravili sme niektoré parametre HDP tu a potom prešiel ich nakoniec 392 00:20:22,780 --> 00:20:26,160 ku update.php, ktorý máme implementované aj pre vás. 393 00:20:26,160 --> 00:20:31,390 To nakoniec dostane späť časť JSON od súbor s názvom update.php 394 00:20:31,390 --> 00:20:34,050 a potom sa odstráni všetky značky na obrazovke 395 00:20:34,050 --> 00:20:36,650 a potom sa opakuje po Dáta, ktoré sa vráti 396 00:20:36,650 --> 00:20:40,350 z update.php, ktorý opäť je len pole JSON. 397 00:20:40,350 --> 00:20:45,130 A potom sa to nakoniec pridá značku pre každé z týchto miest, manipulácia zlyhanie 398 00:20:45,130 --> 00:20:47,750 alebo chyby, ktoré by mohli veľmi dobre stať. 399 00:20:47,750 --> 00:20:51,550 >> Teraz už len stačí, aby vám chuť na to, ako môže ísť o ladenie tohto projektu, 400 00:20:51,550 --> 00:20:55,420 Uvedomujem si, že som otvoril v vopred túto kartu sem na túto adresu URL, 401 00:20:55,420 --> 00:21:01,320 pset8 / articles.php? geo = 02138. 402 00:21:01,320 --> 00:21:04,050 Teraz, znovu, články o PHP sme zaviedli pre Vás 403 00:21:04,050 --> 00:21:06,320 takže to nie je tak moc to, čo budete používať 404 00:21:06,320 --> 00:21:08,190 ladenie, ale skôr techniky. 405 00:21:08,190 --> 00:21:10,590 Všimnite si, že som hľadal Cambridgeova PSČ tu, 406 00:21:10,590 --> 00:21:15,260 a ja som dostal späť, naozaj, JSON Pole JSON objektov vnútri ktorého 407 00:21:15,260 --> 00:21:17,640 sú dva keys-- odkaz a názov. 408 00:21:17,640 --> 00:21:19,860 >> Tak táto funkcia pracuje už pre vás. 409 00:21:19,860 --> 00:21:24,330 Ale táto technika manuálne deje na adresu URL, ako je to na niečo ako 410 00:21:24,330 --> 00:21:31,710 search.php? geo = Cambridge alebo 02138 alebo čo užívateľ napísal by mel 411 00:21:31,710 --> 00:21:35,770 neoceniteľné ako vy, sami, skúste presne zistiť, či je, alebo prečo 412 00:21:35,770 --> 00:21:38,510 search.php funguje, alebo nie. 413 00:21:38,510 --> 00:21:41,720 >> Nakoniec potom máte niekoľko Todos pred vami. 414 00:21:41,720 --> 00:21:44,250 Budeš prvý náradie že import skript, ktorý 415 00:21:44,250 --> 00:21:46,520 číta us.text do databázy. 416 00:21:46,520 --> 00:21:48,760 Tie potom bude potrebovať implementovať search.php 417 00:21:48,760 --> 00:21:51,320 tak, že sa správa presne tak, ako je uvedené. 418 00:21:51,320 --> 00:21:54,170 Tie potom bude chcieť zamerať sa na scripts.js 419 00:21:54,170 --> 00:21:57,520 a nakoniec implementuje tých pár Todos, 420 00:21:57,520 --> 00:21:59,950 vrátane configure a že šablóna, 421 00:21:59,950 --> 00:22:03,220 pridať značky, odstrániť značky, a potom posledný, ale v neposlednom rade, jeden 422 00:22:03,220 --> 00:22:04,330 osobný kontakt. 423 00:22:04,330 --> 00:22:07,477 >> Akonáhle máte mashup prácu celkom ako je tá naša, cieľ na dosah ruky 424 00:22:07,477 --> 00:22:09,560 je pre vás pridať osobné dotyk na vašej mashup, 425 00:22:09,560 --> 00:22:11,290 či už je to estetické alebo funkčné. 426 00:22:11,290 --> 00:22:13,950 Vezmite mashup niekedy tak mierne na ďalšiu úroveň. 427 00:22:13,950 --> 00:22:18,330 Tak dlho, ako budete tlačiť sami za Váš oboznámenosť s spec samotným 428 00:22:18,330 --> 00:22:20,840 a vyzdvihnúť jednu techniku nový, aj keď je to len 429 00:22:20,840 --> 00:22:25,610 niečo estetický ako meniace sa usporiadanie mapy, ktorý používate, 430 00:22:25,610 --> 00:22:28,070 rozsah, že očakávame budú spokojní. 431 00:22:28,070 --> 00:22:30,260 To je potom problém Set 8 Mashup. 432 00:22:30,260 --> 00:22:33,070 Zostaňte naladení na viac špecifikácie a veľa šťastia 433 00:22:33,070 --> 00:22:36,400 riešenie, vaša posledná CS50 problém nastaviť vôbec. 434 00:22:36,400 --> 00:22:39,750 >> [Hudba hrať] 435 00:22:39,750 --> 00:22:43,542