Externé zdroje kódu
V tomto momente už rozumieme, že webstránka je tvorená kódom HTML. Ak máme len stránku HTML uloženú lokálne, prehliadač si načíta obsah súboru a zobrazí ho ako webstránku. Ak máme stránku niekde na serveri, či už u nás lokálne alebo vzdialene (remote), po zadaní URL adresy dostaneme zo servera rovnako obsah súboru. V prípade jazyka PHP sa tento kód najskôr spracuje na serveri, vygeneruje kód HTML a následne nám je vrátený komplet HTML kód. Ak aj máme použitú napríklad funkciu include, dostaneme kompletný kód aj so všetkým, čo sme do stránky zakomponovali. Môžeme si to otestovať tým, že si zobrazíme zdrojový kód našej stránky a vidíme, že sa tam nachádza aj kód zo súboru menu.php a podobne. Jednoducho, všetko čo vidíme na našej stránke, vidíme momentálne v jej zdrojovom súbore a v súboroch k nemu prislúchajúcich (napr. global.css).
Predstavte si situáciu, že nejaká webstránka chce ponúkať širokej verejnosti (v tomto prípade majiteľom iných stránok) nejakú interaktívnu reklamu na svoju vlastnú stránku. Môžete si to predstaviť ako nejaký štvorček, v ktorom je reklamný banner (obrázok/animácia/video) aj s nejakým ovládacím prvkom. Ovládacím prvkom rozumejme nejaký element, pomocou ktorého môže používateľ vyvolať nejakú interakciu, napr. tlačítko alebo odkaz, ktorý ho niekam presmeruje alebo zapríčiní vykonanie nejakej akcie. Isto už ako začínajúci programátori viete, že takéto niečo je jednoducho nejaký kód v HTML, kde by to bol nejaký div s obrázkom (img) a pod ním nejaké tlačítko alebo odkaz (a). Otázka ale znie, ako si všetci tí prevádzkovatelia stránok implementujú (vložia) túto časť kódu do svojej stránky? Možno vás napadlo, že jednoducho stránka, ktorá ponúka svoju reklamu, zverejní jednotlivé riadky kódu (kompletný kód) a ostatní si ho iba vložia do svojich zdrojových súborov.
Áno, je to jedna z ciest, ale úplne neefektívna a nevýhodná. Predstavte si, že by takto malo ďalších sto stránok vložený tento kód a následne by sa firma rozhodla niečo na ňom zmeniť. Musela by potom všetkých externých odberateľov kontaktovať a riešiť zmenu kódu. Ako sa to teda rieši? No asi tušíte, že si to každý zo záujemcov iba nejako externe načítava do svojej stránky. Podobne, ako sme si predtým zobrazovali obrázky uložené externe na nejakom serveri, do atribútu src sme vkladali Url adresy na konkrétne obrázky. To isté by sme mohli použiť aj vo funkcii include, zadali by sme namiesto lokálnej nejakú externú URL adresu súboru, ktorý by sme chceli do našej stránky zakomponovať. Tým pádom by mala stránka, ktorá ponúka reklamu, niekde na svojom serveri uložený súbor, ktorý reklamu obsahuje a záujemcom by iba poskytla URL adresu na tento súbor, ktorý by si mohli do svojej stránky vložiť.
Použitie funkcie include je jedna z ciest, ale myslím, že sa skoro vôbec v praxi nevyužíva. Zvykne sa to robiť dvoma inými spôsobmi. Jeden už poznáte a je to použitie elementu iframe, ktorý nám zobrazí vo vnútri našej stránky akokeby inú samostatnú webstránku. Dosiahneme to zadaním správnej adresy do atribútu src tohto prvku. Stránka alebo niekto iný ponúkajúci niečo svoje interné na zobrazenie na iných stránkach (reklama, video, banner atď.) iba jednoducho zverejní tento element so správnymi hodnotami atribútov (rozmery, src). Webmastrovi, ktorý má záujem tento prvok do svojej stránky zakomponovať, stačí iba tento kód vložiť niekde na správne miesto do kódu a je hotovo, externý prvok sa bude na stránke zobrazovať a bude spĺňať funkcionalitu. Pri prezeraní zdrojového kódu sa však tento kód nevložil do stránky, ako to bolo v prípade funkcie include. V tomto prípade je iba viditeľný kód prvku iframe, obsah stránky (kód) zadanej v atribúte src sa však nezobrazuje. Ten je uložený v súbore, na ktorý odkazuje zadaná URL adresa ifrejmu.
Vo svete programovania existujú tzv. skriptovacie jazyky, pomocou ktorých, ako to vyplýva z názvu, je možné tvoriť skripty. Podrobnejšie si o tom budeme hovoriť v sekcii jazyka JavaScript, nateraz nám len stačí vedieť, že skript je akýsi program, ktorý je ľahko spustiteľný na strane klienta. Vo väčšine slúži na zautomatizovanie viacerých príkazov (alebo nejakej funkcionality), ktoré by mohol postupne po jednom spúšťať aj klient. Ale kľudne to môže byť aj komplexný program alebo nejaká špeciálna funkcionalita. Prečo si o tom hovoríme? Pretože takéto skripty je možné do webstránok vkladať alebo ich aj priamo v nich písať.
K písaniu skriptov sa dostaneme troška neskôr, podstata je v tom, že vloženie skriptu, resp. jeho načítanie z externého miesta je druhá možnosť, ako niečo pridať do stránky. V prípade prvku iframe vo väčšine importujeme niečo vizuálne – nejaké viditeľné prvky na stránke (bannery, reklamy, mini verzie iných stránok a pod.), v prípade kódu JavaScript je to vo väčšine nejaké funkcionálne vylepšenie stránky, nejaké pluginy, niečo špeciálne (vizuálne vylepšenia, vizuálne efekty a pod.).
O týchto veciach si hovoríme preto, pretože na jazyk JavaScript nemáme v bakalárskom stupni priestor, budeme si ho brať troška neskôr. Môže sa vám ale ešte predtým stať, že budete pracovať na nejakom projekte a niekto bude od vás chcieť, aby ste si vložili nejaký skript na stránku. Neviete síce ešte úplne čo to je a čo to obnáša, už ale viete, že niečo také existuje a na sa to zvykne používať. Aby sme si o tom iba teoreticky nerozprávali, vyskúšame si veľmi bežnú vec a to je vložiť na stránku interaktívnu mapku z Google Maps. Čo to je? Určite ste boli na nejakej stránke v sekcii kontakt, kde bolo dané miesto zobrazený na malom prvku z GoogleMaps a priamo na tej stránke ste mohli vykonávať interakciu s týmto prvkom. Na stránke GoogleMaps si zadajte ľubovoľný bod aký chcete, my použijeme Banskú Bystricu. Následne kliknite v ľavom paneli na odkaz Zdieľať (Share) a vyberte záložku vložiť mapu (Insert map). Následne sa vám zobrazí html kód tohto prvku – konkrétne iframe tag. Skopírujte tento kód a vložte ho do stránky kontakt.php. Obalíme si ho divom, ktorému priradíme triedu pre aplikovanie nejakého štýlu. Mohlo by to vyzerať nejako takto:
kontakt.php (len pridaný kód):
<div class="map">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d84199.38373426767!2d19.06093170408453!3d48.73928892777478!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47153de36e8ad42f%3A0xf8223f8a0b8b9032!2sBansk%C3%A1+Bystrica!5e0!3m2!1ssk!2ssk!4v1465151393672" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>
global.css (len pridaný kód):
.map{
margin: 30px 0px;
text-align: center;
padding: 25px 0px;
background-color: #FFFFFF;
}
Ak sa teraz prepnete na našu stránku kontakt, uvidíte na nej načítanú mapku, ktorú môžeme používať rovnako, akokeby sme boli priamo na stránke maps.google.com. Keďže však tento súbor nemáme uložený lokálne, ale načítavamé externý zdroj – z externej URL adresy, bez pripojenia do internetu sa nám samozrejme nič nezobrazí, všetko ide z externého zdroja. Takto podobne je možné do stránky vložiť čokoľvek, čo je potrebné a nutné, ako napríklad reklamné bannery, pluginy pre funkcionalitu a efekty na stránke, mini Facebook FunPage a podobe...