zend_pomocni_materijal_2013_14
|
|
- Анте Гашић
- пре 6 година
- Прикази:
Транскрипт
1 Visoka škola strukovnih studija za informacione i komunikacione tehnologije Napredno web programiranje Materijal za auditorne i laboratorijske vežbe dr Nenad Kojić Marko M Spasojević 2013
2 Priprema za rad u zend framework-u 1. Potrebno je preuzeti verziju zend framework-a sa sajta 2. Nakon toga potrebno je raspakovati preuzeti fajl u okviru downloadd direktorijuma 3. Proverite da li možete da izvršite komandu php v u bilo gde u konzoli ako ne onda morate dodati putanju do fajla php.exe u Environment Variables->path promenljivu (podešava se u okviru Windows operativnog sistema MyComputer (desni taster)-> Properties-> Tab Advanced->Dugme Evironmet Variables->System Variables->Pathse razdvajaju sa ;). >Edit i na postojeći tekst dopisati putanju do php.exe fajla. Putanje 4. Nakon toga je potrebnoo datoteke zf.bat i zf.php (nalaze se u okviru Zend biblioteke u poddirektorijumu bin) prekopirati u direktorijum u kome se nalazi php.exe (ako se koristi XAMPP onda se nalazi u xampp/php). Naime, zf.bat predstavlja pomoćnu skriptu koja automatizuje neke zadatke u okviru Zend Framework-a recimo izradu kontrolera itd. Ako koristite XAMPPP Zend Framework najčešće dolazi zajedno u paketu i nalazi se u php/pear direktorijumu. Verzija koja se tu nalazi može da se razlikuje od one koju ste vi preuzeli i koja se nalazi u library direktorijumu Zend Framework-a. Ako se dvoumite oko verzije koju želite da koristite možete se odlučiti za sledeće opcije: a. da koristite postojeći pri čemu će vam biti nedostupan onaj koji se nalazi u okviru vašeg direktorijuma library ili b. da koristite novi koji se nalazi u okviru library tako što se u fajlu php.ini doda putanja u okviru direktive include_path ili c. se izvrši kopiranje Zend Frameworka iz Zend/library u direktorijum xampp/php/pear 5. Ozvršite komandu zf show version (bilo gde u konzoli) 6. Ako dobijete rezultat kao na slici onda je sve urañeno kako treba Slika 1 provera da li je Zend instaliran
3 Kreiranje projekta 1. Pozicionirajte se na xampp/htdocs direktorijum ako koristite XAMPP 2. Izvršiti komandu zf create project sajt.nawp.ict, nakon čege se kreira projekat sa kompletnom strukturom zf create project vezba1.nawp.ict 3. Nakon toga potrebno je kreirati vhost (omogućava da se na jednom serveru postavi više sajtova). Na apache-uu je potrebno u fajl xampp/apache/config/extra/httpd-vhosts.conf upisati sledeće i omogućiti direktivu (ukloniti # ) NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "[X]:/xampp/htdocs/sajt.nawp.ict/public" ServerName v1.nawp.ict <Directory "[X]:/xampp/htdocs/sajt.nawp.ict/public"> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:80> ServerName localhost DocumentRoot "[X]:\xampp\htdocs" </VirtualHost> 4. Potrebno je izvršiti editovanje hosts fajla u okviru windows-a kako bi windows mogao da poveže vaš novi fiktivni domen sa ip adresom lokalnog računara. Fajl se nalazi u c:\windows\system32\drivers\etc\hosts vezba1.nawp.ict Napomena: Ako menjate ovaj fajl na Windows-u 7 morate to raditii kao administrator. Ako menjate fajl na XP-u onda morate fajl da prekopirate u neki drugi direktorijum, zatim da ga editujete i tako izmenjenog vratite (prekopirate preko postojećeg) na mesto u okviru direktorijuma etc. 5. Nakon toga je potrebnoo restartovati server (isključiti/uključiti apache servis). Pokušajte da startujete sajt vezba.nawp.ict, trebalo bi da dobijete prikaz kao na slici.
4 Slika 2 Izgled poöetne stranice na blanko aplikaciji Slika 3 - Struktura Zend aplikacije
5 Napomena: Ako niste uključili Zend Framework u okviru promenljive include_path onda je preporljučljivo da Zend direktorijum koji sadrži sve biblioteke prekopirate u okviru library direktorijuma. Nakon što ste kreirali projekat u okviru direktorijuma koji nosi ime projekta kreirana je sledeća struktura: application: predstavlja direktorijum o kome se nalazi kod vaše aplikacije (vaši kontroleri, modeli i view-i). Takoñe pored toga tu se nalazi fajl koji se naziva Bootstrap.php koji je odgovoran za početnu inicijalizaciju vašeg projekta docs: sadrži dokumentaciju sajta library: sadrži sporedne biblioteke koje se koriste u aplikaciji public: sadrži fajlove koji se ne obrañuju od strne glavnog kontrolera, css, slike, javascript kod itd.,a takoñe sadrže fajl index.php koji prestavlja glavni kontroler koji vrši obradu svih zahteva koji su poslati aplikaciji. Pored njega tu je i fajl.htaccess u kome se nalaze naredbe koje redirektuju sve zahteva ka glavnom kontroleru. test: sadrži kod za testiranje aplikacije.zfproject.xml: predstavlja fajl koji u kome se nalaze evidentirane sve promene koje je napravila zf komanda.
6 Razvojno okruženje Za razvoj aplikacija pomoću Zend Framework-a koristićemo Net Beans razvojno okruženje. Da bi ovo okruženje moglo da se koristi za razvoj PHP aplikacija potrebno je tokom instalacije odabrati opciju razvoja PHP aplikacija. Podešavanje okružennja U glavnom meniju odaberite Tools->Options i zatim tab PHP pa zatip tab Zend, i dobijate sledeći prikaz: Slika 4 Podešavanje zf scripte Potrebno je da u polje Zend script upišete putanju do fajla zf.bat ili da pronañete isti preko Browse. Kliknite na Ok. Kreiranje projekta Projekat se kreira odabiromstavki File->New Project i odaberite PHP iz liste Categories kao na slici ispod. Slika 5 Odabir vrste aplikacije
7 Kliknite na Next > i u novom prozor trebate da navedete ime projekta (polje Project Name). Slika 6 Definisanje imena projekta Nakon što ste zadali ime projekta koje bi trebalo da bude isto kao domensko ime preko kojeg će aplikacija biti dostupna, kliknite na Next i u sledećem prozoru obratite pažnju na putanju projekta tj. Project URL. (mora da bude lokalna) Nakon podešavanja lokalnog URL-a kliknite na Next, i zatim se pojavljuje prozor u kome birate Framework u kome želite da radite (izaberite Zend) i kliknite na Finish. Slika 7 Odabir framework-a Klikom Finish kreira se projekt u htdocs folderu server.
8 Omogućavanje AutoComplete-a Ako se kompletna biblioteka Zend Framework-a nalazi van vašeg projekta onda bi bilo dobro da je uključite kako bi razvojno oruženje moglo da ima uvid u metode i svojstva Zend klasa. U stablu projekta odaberite folder Include Path kliknite desnim tasterom miša na taj folder i odaverite Properties. Otvara dijalog u kome trebate dodati putanju do Zend Framework-a. Slika 8 Uključivanje InteliSense-a za Zend Framework Osnovni pojmovi Bootstrap Predstavlja klasu (fajl) smešten u folderu application i definiše resurse i komponente koji treba inicijalizovati prilikom pokretanja aplikacije kao i kod svakog zahteva (request). Tipičan primer je definicija proizvoljnih putanja. Podrazumevano se inicijalizuje FrontController čiji je zadatak da traži akcije u okviru direktorijuma application/controllers/ Konfiguracija Sam Zend Framework nije konfigurabilan ali vaša aplikacija jeste. Podaci o konfiguraciji se smeštaju u fajl application/configs/application.ini. Sastoji se od direktiva pomoću kojih podešavate promenljive PHP okruženja.
9 U okviru fajla može se primetiti da je fajl podeljen na nekoliko celina production, starting, testing, development. Ove celine omogućavaju da se odreñene promenljivee menjaju u zavisnosti od stanja u kome se nalazi aplikacija. Stanje se definiše kroz konstantu APPLICATION_PATH i definišete je u okviru servera, načešće u.htaccess fajlu ili u okviru fajla za podešavanje virtuelnih hostova na web serveru. Podešavanja mogu i da se redefinišu u okviru narednih sekcija. Kontroleri Kontroleri su realizovani kao klase i sastoje se od metoda (akcija) čija se imena završavaju sa Action. Na osnovu podatakaa u URL-u odreñuje se kontroler i akcija (metoda) koja će biti pozvana. Naime, URL-ovi u MVC arhitekturi imaju sledeću strukturu /controller/action gde je controller ime klase, a action je ime metode bez sufiksa Action. Svaka aplikacija poseduje podrazumevani kontroler IndexController i ErrorController koji je namenjen obradi grešaka kao što je recimo greška 404. Glavni kontroler u svakoj aplikaciji realizovanoj putem Zend-a je Front Controller I ima zadataka da obradi podatke iz URL-a.
10 Slika 9 Šema obrade zahteva i generisanje odgovora
11 Pravila za realizaciju kontrolera: 1. Savko ime kontrolera mora početi velikim slovom i predstavlja klasu koja mora imati sledeći format imena Ime_kontroleraController. Tako kreirana klasa izvodi se iz klase Zend_Controller_Action. 2. Ime fajla u kome se nalazi klasa mora u potpunosti odgovarati imenu klase i mora imati ekstenziju php (Ime_kontroleraController.php) Kontroler se najjednostavnije može kreirati preko komande zf create controler Prvi (komandu izvršiti u okviru direktorijuma projekta tj. na root-u projekta). Nakon njenog izvršavanja u application/controllers kreira se kontroler sa datim imenom i pratećim podrazumevanim kodom.
12 U okviru razvojnog okruženja NetBeans da bi kreirali kontroler kliknite desnim tastrom miša na projekat i u novootvorenom meniju izaberite Zend->Run Command... kako bi se otvorio dijalog za izvršavanje komande. Slika 10 NetBeans dijalog za ivršvanje komande U polju Filter kucate ime komande koju tražite i za to vreme u polju Matching Tasks prikazuju se pronañene komande zajedno sa sintaksom. U polju Parameters unosite potrebne parametre komande. Kada završite sa parametrima kliknite na dugme Run kako bi izvršili komandu. Prilikom kreiranja kontrolera inicijalno se kreira metoda pod imenom init() koja ima ulogu konstruktora tj. inicijalizatora. Svaki kontroler se sastoji od akcija tj. metoda koje su definisane u okviru njega. Sve metode koje želimo da budu akcije mora da poštuju pravila imenovanja akcije i ona glase: 1. Ime akcije mora početi malim slovom. 2. Format: ime_akcijeaction. Komanda koja kreira akciju u okviru kontrolera je: zf create action ime_akcije ime_kontrolera Prilikom kreiranja akcije podrazumevano se kreira i fajl ime_akcije.phtml u okviru foldera application/views/script/naziv_kontrolera/ime_akcije.phtml koje je zadužej za prikazivanje podatka iz odabrane akcije. O ovome nešto više u tekstu koji sledi.
13 Views Predstavljaju fajlove koji se sastoje od standardnog PHP-a i HTML-a. Fajlovi sa navedenom kombinaciom koda smeštaju se u okviru foldera application/views/scripts/. U okviru navedenog foldera prave se posebni folderi koji predstavljaju imena kontrolera i ovako kreirani folderi sadrže fajlove sa ekstenziom.phtml čija imena odgovaraju imenima akcijaa u okviru tekućeg kontrolera. Tako na primer za kontrolere Index i Error postojali bi direktorijumi index/ i error/ sa fajlovima index/index.phtml error/error.phtml. Ove fajlove možete i zasebno kreirati komadom zf create view controller filename. index/index.phtml <style> a:link,a:visited{color: #0398CA; span#zf-name{color: #91BE3F; div#welcome{ color: #FFFFFF; background-image: url( ( width: 600px;height: 400px;border: 2px solid #444444;overflow: hidden;text-align: center; div#more-information{ background-image: url( ( height: 100%; </style> <div id="welcome"> <h1>welcome to the <span id="zf-name">zend Framework!</span>< </h1> <h3>this is your project's main page</h3> <div id="more-information"> <p><img src=" 4LightBG.png" /></p> <p>helpful Links: <br /> <a href=" Framework Website</a> <a href=" Framework Manual</a> </p> </div> </div> error/error.phtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " <html xmlns="
14 error/error.phtml(nastavak) <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>zend Framework Default Application</title> </head> <body> <h1>an error occurred</h1> <h2><?php echo $this->message?></h2> <?php if (isset($this->exception)):?> <h3>exception information:</h3> <p><b>message:</b> <?php echo $this->exception->getmessage()?>< </p> <h3>stack trace:</h3> <pre><?php echo $this->exception->gettraceasstring()?></pre> <h3>request Parameters:< </h3> <pre><?php echo $this->escape(var_export($this->request->getparams( (), true))?> </pre> <?php endif?> </body> </html> Sigurno se pitate kako da prosledim nešto u pripadajući view fajl i naravno to nije teško potrebno je da u okviru akcije uradite sledeće: // fajl PrviController.php public function indexaction(){ $this->view-> >imeprezime="marko Spasojevic"; application/views/scripts/prvi/ /index.phtml <br /><br /> <div id="view-content"> <p>view script for controller <b>prvi</b> and script/action name <b>index</b></p> <div><p>zdravo, <??php print $this->imeprezime;?></p></div> </div>
15 Upravljanje prikazom (view) Prilikom pozivanja akcije unutar kontrolera, prikaz podataka se obavlja putem unapred kreiranog prikaza (view) koji predstavljaa fajl sa nazivom ime_akcije.phtml i nalazi se u direktorijumu application/views/scripts/ime kontrolera/. Ako ipak želite da podatke prikažete pomoću nekog drugog fajla čije ime odstupa od podrazumevanog potrebno je da navedete ime drugog fajla koji će se koristit za prikaz $this->view->render( drugi..phtml ); //kod ako se za prikaz koristi drugi fajl koji se nalazi u nekom drugom direktorijumu $this->view->setscriptpath( ('/application/scripts/mobile/about/'); $this->view->render('contact.phtml'); Isključivanje prikaza Ako želite da isključite generisanje prikaza to možete uraditi pomoću koda koji trebate staviti u odgovarajuće telo akcije: $this->_helper->viewrenderer->setnorender(true); //deo koda ako želite da onemogućite i prikaz strukture $this->_helper->layout()->disablelayout(); $this->_helper->viewrenderer->setnorender(); Helper metode za prikaz (View Helpers) View Helper-i su namenjeni lakšem generisaje prikaza pojedinih elemenata, kao na primer generisanje linkova na osnovu osnovnih podataka o linku. To su funkcije/metode koje generišu odreñeni HTML sadržaj. Za generisanje linkova koristi se metoda url i to na sledeći način: <a href="<?= $this->url(array('controller' => 'naziv','action' => 'anaziv','ime_paremetra' => 'vrednost','ime_custom_putanje'));?>">naziv linka</a> Tabela 1- Neki View Helper-i Naziv Currency Cycle Doctype HeadLink HeadMeta HeadScript HeadStyle Opis Prikaz iznosa u lokalnom formatu Prikazuje zebru od predefisanog skupa vrednosti Ubacuje DOCTYPE direktivu u html dokument Genisanje koda za eksterni CSS, favicon, RSS Generisanje meta tagova Generisanje dela za script Generisanje style taga
16 Kreiranje sopstvenih View Helper-a Da bi napravili sopstvene View Helper-e morate napraviti izvedenu iz Zend_View_Helper_Abstractt. application/views/helpers/pol.php <?php class Zend_View_Helper_Pol extends Zend_View_Helper_Abstract{ public function Pol($oz_pol){ if ($oz_pol== m ){return On ;else{ return Ona ; Za generisanje elemenata formulara mogu se koristi i helper-i. Detaljnu listu ovh helper-a možete naći na stranici Kreiranje strukture stranice Da bi kreirali jedinstven prikaz u okviru web aplikacije (sajta) koristimo komponentu koja se zove Zend Layout. Zend Framework koristi dva šablona za generisanje prikaza (view): Two Step View, aplikacija kreira prikaz (view) koji se kasnije ubacuje u glavni prikaz Composite View, prikaz se sastoji iz više manjih prikaza (view) koji zajedno grade strukturu Da bi se kreirao layout neophodno je da izvršite komandu: zf enable layout. Izvršavanjem ove komande u okviru foldera application/layouts/scripts kreira se fajl layout.phtml koji sadrži PHP i HTML kod za generisanje strukture stranice u aplikaciji (sajtu). U ovako kreiranom fajlu inicijalno ima više HTML koda nego što ima PHP-a. Od PHP-a pojavljuje se samo jedna linija koda: <?php echo $this->layout()->content;?> Sadržaj ove promenljive jer sadržaj view-a koji je pozvan. layout.phtml <html> <head><title>ovo je proba layout-a</title></head> <body> <div id="test"> <h1>naslov iz glavnog layout-a</h1> <?php echo $this->layout()->content;?> </div> </body> </html>
17 Manipulacija strukturom stranice Instanci Zend_Layout klase možete pristupiti na nekoliko načina: U okviru view script-a <?php $layout = $this->layout();?> U okviru akcije kontrolera $layout = $this->_helper->layout(); // ili $helper = $this->_helper->gethelper('layout'); $layout = $helper->getlayoutinstance(); Upotrebom statičke metode $layout = Zend_Layout::getMvcInstance(); Preko bootstrap-a $layout = $bootstrap->getresource('layout'); Takoñe mogu se i izvršiti sledeće operacije: Podešavanje promenljivih u layout-u $layout->somekey = "foo" echo $layout->somekey; // 'foo' $layout->assign('someotherkey', 'bar'); echo $layout->someotherkey; // 'bar' disablelayout(). Ako imate potreba da isključite generisanje strukture onda koristite ovu metodu. Na primer jedna od situacija je odgovor na AJAX zahtev. $layout->disablelayout(); Odabir drugog prikazaa // upotreba script "alternate.phtml": $layout->setlayout(' 'alternate'); Parcijalni šabloni (Partial View) Mnoge stranice se sastoje iz delova koji su u pogledu HTML koda indentični tako da se nameće potreba da se definiše šablom kojim će ovaj deo ili delovi generisati. Ovaj šablon se u Zend Framework-u naziva Partial View.Imena pomenljivih u okviru parcijalnih šablona mogu biti ista
18 kao i imena u glavnom prikazu (view-u) jer parcijalni šabloni predstavljaju zasebne poddomene i bilo bi dobro da usvojite načinn za imenovanje fajlova parcijalnih šablona. Fajlovi se smeštaju u application/views/scripts. application/views/scripts/_post.phtml <?= $this->partial( _post.phtml,array( naslov =>$post->title, telo =>$po ost->body));?> Ako doñe do slučaja da je potrebno da se parcijalni šablom ponavlja više puta može se primeniti sledeća sintaksa: <div class= posts > <?=$this->partialloop( posts.phtml,array( array( naslov => Post 1, telo = => Ovo je post ), array( naslov => Post 2, telo = => Ovo je post ), )); </div> Putanje do spoljnih resursa Putanje do odgovarajućih resursa (slike,css i javascript) zadaju se relativno u odnosu na index.php fajl. Praksa je da se ovi resursi postave u posebne foldere u okviru public direktorijuma. Upotreba placeholder-a Placeholder predstavlja jedinstvenu celinu čija struktura i sadržaj zavisi od stanja aplikacije. Svaka stranica sadrži jedan ilii više placeholeder-a (deklaracija DOCTYPE, naslov dokumenta itd.). Placeholedr-i predstavljaju kontejnere koji se mogu posmatrati kao kolekcije što vodi do zaključka da se sanjima može raditi sledeće: Dodavanje stavki na kraj ili početak Zamena cele kolekcijee sa jednom vrednošću Dodavanje sadržaja na kraj i početak elementa kolekcije Definisanje stringa koji razdvaja elemente Ubacivanje sadržaja u kolekciju
19 Standardni placeholder-i Većina standardnih placeholder-a se odnosi na generisanje sadržaja za <head> sekciju html strane. Podešavanje DOCTYPE $this->doctype('xhtml1_strict'); //XHTML1_TRANSITIONAL HTML4_STRICT HTML4_Loose HTML5 Ovaj podataka možete štampati na klasičan način kao rezultat neke funkcije ali je praksa da se to radi u okviru Bootstrap klase class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{ protected function _initdoctype(){ // da bi naredna naredba fukcionisala potrebno je u application..ini fajlu dodati resources.view[]= $this->bootstrap('view') ); $view = $this->getresource('view'); $view->doctype('xhtml1_strict'); <?php echo $this->doctype( ()?> <html>.. Generisanje sadržaja taga <title> bootstrap.php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{ //... protected function _initplaceholders(){ $this->bootstrap('view'); $view = $this->getresource('view'); $view->doctype('xhtml1_strict'); // Definisanje title i separatora: $view->headtitle('moj Sajt')->setSeparator(' :: '); Kod u nekoj akciji <?php $this->headtitle( ()->append('neka strana'); //dodavanje na kraj?> <?php $this->headtitle( ()->prepend('neka strana'); // dodavanje pre?>
20 . layout.phtml <?php echo $this->doctype()?> <html> <?php echo $this->headtitle()?> <! Ako se koristi append() --> <title>moj sajt :: Neka strana</title> <! Ako se kotisti prepend() --> <title>neka strana :: Moj sajt</title> </html> Generisanje linkova ka stilovma Postavljanje stilova se obavljaa preko placeholder-a headlink(). Povratni objekat metode headlink() sadrži nekoliko virtuelnih metoda koji nam pomažu prilikom generisanja linkova. Dve metode koje najviše koriste su appendstylesheet() i prependstylesheet(). Svaka od ovih metoda uzima četiri argumenta $href (relativna putanja do css-a), $media (MIME tip, podrazumevano text/css), $conditionalstylesheet (uslov pod kojim se koristi dati css fajl), $extras (asocijativni niz koji služi za podešavanje atributa media). bootstrap.php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{ //... protected function _initplaceholders(){ $this->bootstrap('view'); $view = $this->getresource('view'); $view->doctype('xhtml1_strict'); $view->headtitle('my Site')->setSeparator(' :: '); $view->headlink()->prependstylesheet('/styles/site.css'); //... Kod u nekoj akciji <?php $this->headlink( ()->appendstylesheet('/styles/user-list.css')?>
21 layout.phtml <?php echo $this->doctype()?> <html> <?php echo $this->headtitle()?> <?php echo $this->headlink()?> </html> Generisanje script dela Placeholder za script se definiše preko headscript() metode tj. objekta koga vrća ova metoda. Ovaj objekat poseduje nekoliko metoda: prependfile(), appendfile(), prependscript() i appendscript(). Prve dve metode omogućavaju da dodate script fajlove pre i posle, dok druge dve služe za eksplicitno ubacivanje skripta pre ili posle. bootstrap.php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{ //... protected function _initplaceholders(){ $this->bootstrap('view'); $view = $this->getresource('view'); $view->doctype('xhtml1_strict'); // Podesiti inicijalni title i separator: $view->headtitle('my Site')->setSeparator(' :: '); $view->headlink()->prependstylesheet('/styles/site.css'); $view->headscript()->prependfile('/js/site.js'); Kod u nekoj akciji <?php $this->headscript()->appendfile('/js/user-list.js')?> Definisanje script dela kroz kod <?php $this->headscript()->capturestart()?> site = {baseurl: "<?php echo $this->baseurl()?>"; <?php $this->headscript()->captureend()?>
22 layout.phtml <?php echo $this->doctype( ()?> <html> <?php echo $this->headtitle()?> <?php echo $this->headlink()?> <?php echo $this->headscript()?> </html> Html kod nakon renderovanjaa <script type="text/javascript" src="/js/site.js"></script> <script type="text/javascript" src="/js/user-list.js"></script> <script type="text/javascript"> site = { baseurl: "<?php echo $this->baseurl()?>" ; </script> Izrada sopstvenih placeholder-a _sidebar.phtml <?php print $this->placeholder('sidebar')->capturestart();?> <?php print $this->placeholder('sidebar')->menu;?> <?php print $this->placeholder('sidebar')->captureend();?> layout.phtml <?php if(is_array($this->sidebar_menu) &&!empty($this->sidebar_menu)):?> <?php print $this->placeholder('sidebar')->menu=$this->htmllist($th his->sidebar_menu, false,false,false);?> <?php endif;?> kontroler public function predispatch( (){ $this->view->render(' sidebar.phtml');
23 Prosleñivanje parametaraa Parametri se mogu prosleñivati preko GET i POST zahteva. Kada se parametri prosleñuju preko GET zahteva oni su sastavni deo URL-a. U samom URL-u nalaze se podaci o tome koji se kontroler poziva i koja akcija kontrolera se poziva kao na primer: Pored toga u URL-u mogu da se nalaze i neki podaci koji se mogu proslediti akciji kao parovi naziv/vrednost i to na sledeći način što znači da se poziva kontroler prvi i njegova akcija proba kojoj se prosleñuju ime marko i prezime spasojevic. Da bi ovako prosleñene podatke mogli da dohvatimo u metodi koja se odnosi na akciju moramo da koristimo sledeći kod: $this->getparam( ime_parametra ); PrviController.php public function probaaction(){ // action body $ime=$this-> >getparam('ime'); $prezime=$this->getparam('prezime'); $this->view-> >imeprezime=$ime." ".$prezime; proba.phtml <br /><br /> <div id="view-content"> <p>view script za kontroler <b>prvi</b> i script/ime akcije <b>proba</b></p> <p>podaci koji su dosli preko URL-a su : <?php print $this->imeprezime;?></p> </div> Da bi prikazali kako se prenose podaci putem POST zahteva pretpostavimoo da imamo akciju koja se zove prenos u okviru kontrolera prvi. U novokreiranom prezentacionom fajlu (view-u) prenos.phtml napravićemo html formular sa jednim tekstualnim poljem gde unosimo odreñeni string koji treba da prenesemo preko POST zahteva. Ako taj podatak postoji onda ga ispisujemo ako ne pojavljuje se forma.
24 PrviController.php public function prenosaction(){ $dugme=$this->getparam("btnsubmit"); $request=$this->getrequest(); if(isset($dugme) &&& $request->ispost()){ $ =$this->getparam("tb "); $this->view-> =$ ; prenos.html <br /><br /> <div id="view-content"> <p>view script for controller <b>prvi</b> and script/action name <b>prenos</b></p> <div> <h3>prenos preko posta</h3> <?php if(!isset($this-> )){?> <form action="/prvi/prenos" method="post"> <label for=" "> adresa:</label><input type="text" name="tb " value="" size="25" /><br /> <input type="submit" name="btnsubmit" value="posalji" /> </form> <?php else {?> <p> je: <?php print $this-> ;?> </p> <?php?> </div> </div> Flash Messanger Funkcija Flasg Messanger-a je da prenosi poruke izmeñu zahteva. Podaci se čuvaju u sesiji. $this->_helper->flashmessenger->addmessage('ova poruka je dodata'); // šta se prosleñuje $this->_helper->redirector('index', 'index'); //kome se prosleñuje kom contoller-u kojoj akciji //ispis poruke,ovaj deo koda se može ubaciti i u init() metod if ($this->_helper->flashmessenger->hasmessages()) { $this->view->messages = $this->_helper->flashmessenger->getmessages();
25 Kreiranje proizvoljnih putanja Da bi kreirali proizvoljnu putanju, moramo da otvorimo fajl application/bootstrap.php i u njemu putem metode definisati proizvoljnu putanju. Sve metode koje morate pozivati prilikom svakog poziva strane moraku počinjati sa _init. Tako na primer, naša metoda za proizvoljne putanje nosiće naziv _initroutes. Napravićemo proizvoljnu putanju koja se zove početna i koja će voditi na početnu stranu sajta. application/bootstrap.php public function _initroutes(){ $frontcontroller= Zend Controller_Front::getInstance(); $router=$frontcontroller->getrouter(); //statička ruta bez promenljivih parametara $route=new Zend_Controller_Router_Route_Static('pocetna', array('controller'=>'index','action'=>'index')); //dodaje u tabelu putanjaa rutu sa jedinstvenim imenom $router->addroute('pocetna',$route); Meñutim, šta ako vaša proizvoljna putanja zahteva promenljivi deo tj. parametar. Onda je potrebno da na umesto klase Zend_Controller_Router_Route_Static upotrebite klasu Zend_Controller_Router application/bootstrap.php public function _initroutes(){ $routegalerija=new Zend_Controller_Router_Route('galerija/:im me', array('controller'=>'galerija' ','action'=>'pregled','ime'=>''),array('ime'=>'\w w+')); $router->addroute('galerija',$routegalerija);
26 application.ini ;custom routes,ako se ovo koristi u Boostrap.php fajlu moraju biti zakomentarisane odgovarajuce rute resources.router.routes.login.route="login" resources.router.routes.login.defaults.controller = Formulari resources.router.routes.login.defaults.action = login resources.router.routes.galerija.route="galerija/:ime" resources.router.routes.galerija.defaults.controller = Slike resources.router.routes.galerija.defaults.action = galerija resources.router.routes.galerija.defaults.ime = sve resources.router.routes.galerija.reqs.year = "[a-z]+"
27 Formulari Formulari u okviru Zend Framework-a se konstruišu preko objekata instance objekta Zend_Form. Ova klasa omogućava sledeće: Filtraciju i validaciju podataka Redosled elemenata Renderovanje formulara i elemenata Grupisanje elemenata i formulara Kada želite da napravite formular imate dve mogućnosti da kreirate instancu klase Zend_Form ili da napravite sopstvenu klasu koja nasleñuje klasu Zend_Form. $form = new Zend_Form; $form->setaction('/resource/process')->setmethod('post'); $form->setattrib('id', 'login');
28 Primeri koda za formular i njegove elemente // Kreiranje elemenata,prvi način $username =$form-> addelement(new Zend_Form_Element_Text('username')); //drugi način $username =$form->addelement('text', 'username'); $username->setlabel('username'); // vrednosti iz forme u obliku asocijativnog niza name =>vrednost $values = $form->getvalues(); // samo validne vrednosti $values = $form->getvalidvalues($_post); // ako je došlo do greške if (!$form->isvalid($_post)) {echo $form; // ili $this->view->form = $form; return $this->render('form'); // podaci o greškama $form->geterrors();// asocijativni niz ime/kodovi $form->getmessages();// / asocijativni niz name/poruke //dodela vrednosti $username->setvalue('korisničko ime'); //poruka o grešci $username-> adderrormessage( Vasa poruka ); $form = new Registracija_Forma(); //asocijativni niz name =>vrednost $data = array('username' => 'wjgilmore',//name/value ' ' => 'wj@example.com', 'zip_code' => '43201' ); $form->setdefaults($data); $this->view->form = $form; //popunjavanje padajiće liste $status = new Zend_Form_Element_Select('status'); $options = array(1 => "On the Shelf", 2 => "Currently Playing", 3 => "For Sale", 4 => "On Loan"); $status->addmultioptions($ $options);
29 Primeri koda za formular i njegove elemente (nastavak) //dodavanje validatora $username->addvalidator(new Zend_Validate_Alnum());//ili $username->addvalidator('alnum'); //drugi parameter označava da li se validacija zaustavlja na elementu ili ne $username->addvalidator('regex', false, array('/^[a-z]/i')) -> adderrormessage( Vasa poruka ); //obavezan element $username->setrequired(true); $username->addfilter('stringtolower'); //dodavanje filetera //kraći zapisi prethodnog $username->addvalidator('alnum') ->addvalidator('regex', false, array('/^[a-z]/')) ->setrequired(true)->addfilter('stringtolower'); $username->addvalidators(array('alnum', array('regex', false, '/^[a-z]/i')))) - >setrequired(true)->addfilters(array('stringtolower')); $form->addelement('text', 'username', array( 'validators' => array( 'alnum',array('regex', false, '/^[a-z]/i')), 'required' => true, 'filters' => array('stringtolower'), )); //poruka o grešci $username-> adderrormessage( Vasa poruka ); if ($form->isvalid($this->getrequest()->ispost())) {//uredu else {// greška // validacija preko AJAX-a if ($form->isvalidpartial($_post)) {// uredu else {//greška // podaci o greškama $form->geterrors();// asocijativni niz ime/kodovi $form->getmessages();// asocijativni niz name/poruke // definisanje grešaka $username->addvalidator('alpha', false, array( 'messages' => array(zend_validate_alpha::invalid => "ERROR: Invalid name", Zend_Validate_Alpha::NOT_ALPHA => "ERROR: Name cannot contain non-alpha characters", Zend_Validate_Alpha::STRING_EMPTY => "ERROR: Name cannot be empty") ));
30 Tabela - Filteri Tabela-Validatori
31 Tabela-Validatori (nastavak)
32 Primer formulara- Forma za logovanje $form = new Zend_Form(); $form->setaction('/user/ /login')->setmethod('post'); // element za korisničko ime $username = $form->createelement('text', 'username'); $username->addvalidator('alnum') ->addvalidator('regex', false, array('/^[a-z]+/')) ->addvalidator('stringlength', false, array(6, 20)) ->setrequired(true) ->addfilter('stringtolower'); // Element za lozinku: $password = $form->createelement('password', 'password'); $password->addvalidator('stringlength', false, array(6)) ->setrequired(true); // Dodavanje elemenata formulara $form->addelement($username)->addelement($password) ->addelement('submit', 'login', array('label' => 'Login')); // kreiranje kontrolera class UserController extends Zend_Controller_Action{ public function getform(){return $form; public function indexaction(){ // render user/form.phtml $this->view->form = $this->getform(); $this->render('form'); public function loginaction(){ if (!$this->getrequest()->ispost()) { return $this->_forward('index'); $form = $this->getform( (); if (!$form->isvalid($_post)) { $this->view->form = $form; return $this->render('form'); $values = $form->getvalues(); // a sada autentifikacija // user/form.phtml <h2>login:</h2> <?php echo $this->form;?>
33 Realizacija forme preko nasleñivanja <?php class Application_Model_FormTest extends Zend_Form { public function construct($options=null){ parent:: construct($options); $this->setname('test');// name="test" $this->setmethod('post');/ // method="post" $this->setaction('/prvi/forma'); $ime_prezime=new Zend Form_Element_Text('tbImePrezime'); $ime_prezime->setattrib( ('size',35); $ =new Zend_Form Element_Text('tb '); $ ->setattrib('size',35); $submit=new Zend_Form_Element_Submit("btnSubmit"); $submit->setattrib('value','prijavi'); $this->setdecorators(array(array('viewscript',array('viewscript'=>'_fo orm_test.phtml')))); $this->addelements(array($ime_prezime,$ ,$submit)); application/view/scripts/_form_test.phtml (prikaz-renderovanje pojedinih delova formulara) <form id="test" action="<?php print $this->element->getaction();?>" method="<?php print $this->element->getmethod( ();?>"> <p>ime i prezime:<?php print $this->element->tbimeprezime;?></p> > <p> <?php print $this->element->tb ;?></p> <p><?php print $this->element->btnsubmit;?></p> </form>
34 Dekoratori Zend_Form_Decorator Dekoratori predstavljaju delove HTML koda u koje se smeštaju elementi formulara. Podrazumevani dekoratori koji se koriste su: Labele formulara se ubacuju izmeñu <dt>...</dt> Input elementi izmeñu <dd>...</dd> Podaci o greškama se prikazuju kao neureñena lista Da bi se promenio dekorator koji se koriste se sledeće metode: adddecorators() uzima niz imena dekoratora koji se trebaju primeniti i uvek se primenjuje poslednji dodati cleardecorators() uklanja sve dekoratore sa elementa setdecorators() uklanja sve postojeće i postavlja nove Prikazivanje formulara pomoću dekoratora // eksplicinto pozivanje metode render() echo $form->render($view);// ili echo $form; // u.phtml fajlu <?php echo $this->form?> // dekoratori su metode koje vrše renderovanje elemenata $element->adddecorators(array('viewhelper','errors', array('htmltag', array('tag' => 'dd')), array('label', array('tag' => 'dt')), ));
35 Prikazivanje formulara pomoću dekoratora (nastavak) // podešavanje redosleda $element->setorder(10); // ili $form->addelement('text', 'username', array('order' => 10)); // gupisanje elemenata // adddisplaygroup(niz imena elemenata,ime grupe) $this ili $form $this->adddisplaygroup(array('name', ' ', 'tel', 'address'),'contact'); $this->getdisplaygroup('contact')->setlegend('contact Information'); $loginform->setelementdecorators( array('viewhelper',array(array('data'=>'htmltag'),array('tag'=>'div')), array('label',array('tag'=>'div','class'=>'test')), array('description',array('tag'=>'div')) )); $loginform->setdecorators( array('formelements',array ('HtmlTag',array('tag'=>'div')),'Form') ); Prikaz forme za logovanje u formi tabele, primenom dekoratora $this->setelementdecorators(array( 'ViewHelper', 'Errors', array(array('data'=>'htmltag'),array('tag'=>'td','class'=>'elem ment')), array('label',array('tag'=>'td')), array(array('row'=>'htmltag'),array('tag'=>'tr')) )); $submitdugme->setdecorators(array( 'ViewHelper', array(array('data'=>'htmltag'), array('tag'=>'td','class'=> >'element')), array(array('emptyrow'= =>'HtmlTag'), array('tag'=>'td', 'class'= =>'element', 'placement'=>'prepend')), array(array('row'=>'htmltag'),array('tag'=>'tr')) )); $this->setdecorators(array( ('FormElements', array('htmltag' ',array('tag'=>'table')),'form', array('fieldset',array('legend'=>'login')) ));
36 Rad sa bazama podataka Osnovna namena modela u okviru MVC arhitekture je da komunicira sa bazom podataka. Za realizaciju modela postoje dva načina realizacije: DataMapper i ActiveRecord. Razlika izmeñu ova dva načina je u tome što ActiveRecord način komunicira direktno sa abelom/tabelama, dok DataMapper koristi sloj koji omogućava komunikaciju entiteta u kodu i entiteta u bazi podataka tj. obavlja odgovarajuće mapiranje podataka. Poslednji način omogućava nezavisnost od sistema baza podataka i jako je imun na promene sistema baze podataka. Podešavanje adaptera Prva stvar koju trebate uradite je podešavanje veze adaptera i odgovarajuće baze podataka. To se može uraditi sledećom komandom: zf configure db-adapter \"adapter=pdo_mysql&host=localhost&username=root&password=& & dbname=nazivbazepodatala\" Podešavanje adaptera u okviru application.ini fajla resources.db.adapter = "PDO_MYSQL" resources.db.params.host = "localhost" resources.db.params.username = "root" resources.db.params.password = "" resources.db.params.dbnamee = "zendtest" resources.db.params.charset= ="utf8" Podešavanje adaptera u kodu $db = new Zend_Db_Adapter_Pdo_Mysql(array( 'host' => ' ', 'username' => 'koirsnik', 'password' => 'lozinka', 'dbname' => 'test' )); Metoda ActiveRecord Ovaj metod omogućava da direktno preko instace adaptera komunicirate sa bazom podataka.
37 Select upiti $db=zend_db_table::getdefaultadapter(); Dohvatanje rezultata $sql = 'SELECT * FROM tabela WHERE tabela_id =?'; $result = $db->fetchall($sql, 2);//asocijativni niz redova Izvršavanje upita i dohvatanje rezultata $select=$db->select()->from('tabela'); //SELECT * FROM tabela $rezultat=$db->query($select); $rezultat->fetchall(); Promena formata vraćenih podataka $db->setfetchmode(zend_db::fetch_obj); // može još Zend_Db::FETCH_NUM, Zend_Db::FETCH_BOTH, Zend_Db::FETCH_COLUMN, Zend_Db::FETCH_OBJ $result = $db->fetchall('select * FROM tabela WHERE tabela_id =?', 2); // $result je niz objekata echo $result[0]->kolona3; Preuzimanje podataka u formi niz asocijativnih nizova $db->setfetchmode(zend_db::fetch_obj); $result = $db->fetchassoc('select kolona1, kolona2, kolona3 FROM tabela'); echo $result[2]['kolona3']; echo $result[1]['kolona3']; /// $result je niz asocijativnih nizova Preuzimanje podataka jednee kolone $db->setfetchmode(zend_db::fetch_obj); $result = $db->fetchcol('select kolona1, kolona2 FROM tabela WHERE kolona2 =?', 2); echo $result[0]; // vraca samo vrednost prve kolone $db->setfetchmode(zend_db::fetch_obj); $result = $db->fetchpairs('select kolona1, kolona2 FROM tabela'); echo $result[2];// red 3 gde su elementi u formi asocijativnog niza Preuzimanje jednog reda podataka $db->setfetchmode(zend_db::fetch_obj); $result = $db->fetchrow('select * FROM tabela WHERE tabela_id = 2'); // $result je jedan objekat echo $result->kolona3;
38 Insert upit //Unošenje podataka u tabelu $data = array( 'datum' => ' ', 'naslov' => 'Something wrong', 'status' => 'NEW' ); $db->insert('tabela', $data); //Unošenje sa MySql kodom $data = array( 'datum' => new Zend_Db_Expr('CURDATE()'), 'naslov' => 'Something wrong', 'status' => 'NEW' ); $db->insert('tabela', $data); // posledenja vrednost unesenog id-a $db->insert('tabela', $data); $id = $db->lastinsertid(); Update upit $data = array('updated_on' => ' ', 'bug_status' => 'FIXED' ); $n = $db->update('bugs', $data, 'bug_id = 2'); $data = array('updated_on' => ' ', 'bug_status' => 'FIXED' ); $where[] = "reported_by = 'goofy'"; $where[] = "bug_status = 'OPEN'"; $n = $db->update('bugs', $data, $where); // SQL upit: // UPDATE "bugs" SET "update_on" = ' ', "bug_status" = 'FIXED' // WHERE ("reported_by" = 'goofy') AND ("bug_status" = 'OPEN')
39 Update upiti (nastavak) $data = array( 'updated_on' => ' ', 'bug_status' => 'FIXED' ); $where['reported_by =?'] = 'goofy'; $where['bug_status =?'] = 'OPEN'; $n = $db->update('bugs', $data, $where); // SQL upit: // UPDATE "bugs" SET "update_on" = ' ', "bug_status" = 'FIXED' // WHERE ("reported_by" = 'goofy') AND ("bug_status" = 'OPEN') Delete upiti $n = $db->delete('bugs', 'bug_id = 3'); Enkodovanje podataka Da bi sprečili da odreñene vrednosti u okviru promenljivih ugroze integritet baze podataka potrebno je sve vrednosti koje se prosleñuju u SQL upit dodatno obraditi. //loše $name = "O'Reilly"; $sql = "SELECT * FROM bugs WHERE reported_by = '$name'"; echo $sql; // SELECT * FROM bugs WHERE reported_by = 'O'Reilly' // dobro $name = $db->quote("o'reilly"); echo $name; // 'O\'Reilly' $sql = "SELECT * FROM bugs WHERE reported_by = $name"; echo $sql; // SELECT * FROM bugs WHERE reported_by = 'O\'Reilly' // dobro, konverzija u odgovarajući SQL tip $value = '1234'; $sql = 'SELECT * FROM atable WHERE intcolumn = '. $db->quote($value, 'INTEGER');
40 enkodovanje (nastavak) // funkcija quoteinto $sql = $db->quoteinto("select * FROM bugs WHERE reported_by =?", "O'Reilly"); echo $sql; // SELECT * FROM bugs WHERE reported_by = 'O\'Reilly' $sql = $db->quoteinto("select * FROM bugs WHERE bug_id =?", '1234', 'INTEGER'); echo $sql; // SELECT * FROM bugs WHERE reported_by = 1234 //enkodovanje SQL sintakse $tablename = $db->quoteidentifier("order"); $sql = "SELECT * FROM $tablename"; echo $sql; // SELECT * FROM "order"" Metoda Active Record preko modela class Application_Model_Kategorija{ protected $db;public $idkategorija;public $naziv;public $roditelj; public function construct() { try{ $this->db=zend_db_table::getdefaultadapter(); catch (Zend_Exception $ex){ print $ex->getmessage(); public function fetchall(){ //$result=$this->db->query("select * FROM kategorija"); $select=$this->db->select()->from('kategorija'); $result=$this->db->query($select); return $result->fetchall( (); public function insert(){ $data=array('naziv'=>$ $this->naziv,'roditelj'=>$this->roditelj); $this->db->insert('kategorija', $data);
41 public function fetch(){ $id=$this->db->quote($ $this->id); $select=$this->db->select()->from('kategorija')->where('idkategorij ja=?',$id); return $this->db->query($select)->fetchobject(); //return $this->db->query('select * FROM kategorija WHERE idkategorija=?',array($id))-> >fetchobject(); public function update(){ $data=array('naziv'=>$ $this->naziv,'roditelj'=>$this->roditelj); $where['idkategorija=??']=$this->idkategorija; $this->db->update('kategorija', $data, $where); public function delete(){ $id=$this->db->quote($this->idkategorija); $delete=$this->db->delete('kategorija','idkategorija='.$id); Metoda DataMapper Ova metoda je znatno zastupljenija u aplikacijama jer kao što je rečeno u uvodom delu ovog poglavlja obezbeñuje interfacee izmeñu entiteta u OO jeziku i entiteta u bazi podataka. Kada imate bazu podatka potrebno je da napravite kod koji će komuniciratii sa podacima iz baze podataka. Izrada koda uključuje izradu klase koja opisuje tabelu u bazi podataka i ta klasa je izvedena iz klase Zend_Db_Table_Abstract. zf create db-table ImeKlase Imetabele Ova izvedena klasa ima nekoliko promenljivih koje se odnose na osnovne podatke o samoj tabeli kao što je ime tabele ($_name) i primarnog ključa ($_id). Promenljiva $_id se inicijalizuje samo ako je ime kolone različito od id. Nakon kreiranja klase koja opisuje tabelu kreira se klasa koja predstavlja DataMapper i čiji je osnovni zadatak da vrši "prevoñenje" izmeñu strukture podataka u tabeli i strukture podataka u OO jeziku. Ova klasa se sastoji od metoda koje posreduju u razmeni podataka izmeñu koda i baze podataka. zf create model ImeMapper Na kraju se kreira model klasaa koja opisuje jedan red tabele. zf create model ImeModela Ovako kreiran model se sada može koristiti u kontroleru preko instance klase Mapper.
42 Šema baze podataka U prilogu ovog materija dat je kod svih klasa koje čine model.
43 Komponente Zend Framework-a za rad sa bazom podataka Zend_Db_Adapter Predstavlja klasu koja omogućava komunikaciju vaše aplikacije sa bazom podataka. $db = new Zend_Db_Adapter_Pdo_Mysql(array( 'host' => ' ', 'username' => 'webuser', 'password' => 'xxxxxxxx', 'dbname' => 'test' )); // isti efekat kao sa konstruktorom $db = Zend_Db::factory( ('Pdo_Mysql', array( 'host' => ' ', 'username' => 'webuser', 'password' => 'xxxxxxxx', 'dbname' => 'test' )); Čitanje rezultata upita $sql = 'SELECT * FROM bugs WHERE bug_id =?'; $result = $db->fetchall( ($sql, 2); $db->setfetchmode(zend_db::fetch_obj); $result = $db->fetchall( ('SELECT * FROM bugs WHERE bug_id =?', 2); // $result je niz objekata echo $result[0]->bug_description; $db->setfetchmode(zend_db::fetch_obj); $result = $db->fetchassoc('select bug_id, bug_description, bug_status FROM bugs'); // $result je niz asocijativnih nizova echo $result[2]['bug_description']; // opis Bug #2 echo $result[1]['bug_description']; // opis Bug #1 $db->setfetchmode(zend_db::fetch_obj); $result = $db->fetchcol( ('SELECT bug_description, bug_id FROM bugs WHERE bug_id =?', 2); // vraca samo bug_description; echo $result[0]; $db->setfetchmode(zend_db::fetch_obj); $result = $db->fetchrow('select * FROM bugs WHERE bug_id = 2'); // $result je objekat echo $result->bug_description;
44 $result = $db->fetchone('select bug_status FROM bugs WHERE bug_id = 2'); // samo jedna vrednost echo $result; Upis promena u bazu podataka $data = array( 'created_on' => ' ', 'bug_description' => 'Something wrong', 'bug_status' => 'NEW'); $db->insert('bugs', $data); $data = array( 'created_on' => new Zend_Db_Expr('CURDATE()'), 'bug_description' => 'Something wrong', 'bug_status' => 'NEW'); $db->insert('bugs', $data); $db->insert('bugs', $data); // return the last value generated by an auto-increment column $id = $db->lastinsertid() ); $db->insert('bugs', $data); // return the last value generated by sequence 'bugs_bug_id_seq'. $id = $db->lastinsertid('bugs', 'bug_id'); // alternatively, return the last value generated by sequence 'bugs_seq'. $id = $db->lastinsertid('bugs');
45 Ažiriranje podataka $data = array( 'updated_on' => ' ', 'bug_status' => 'FIXED'); $n = $db->update('bugs', $data, 'bug_id = 2'); $data = array( 'updated_on' => ' ', 'bug_status' => 'FIXED'); $where[] = "reported_by = 'goofy'"; $where[] = "bug_status = 'OPEN'"; $n = $db->update('bugs', $data, $where); $data = array( 'updated_on' => ' ', 'bug_status' => 'FIXED'); $where['reported_by =?'] = 'goofy'; $where['bug_status =?'] = 'OPEN'; $n = $db->update('bugs', $data, $where); Brisanje podataka $n = $db->delete('bugs', 'bug_id = 3'); Transakcije // Start transakcije. $db->begintransaction() ); try { //pokušaj izvršavanja više upita: $db->query(...); $db->query(...); $db->query(...); $db->commit(); catch (Exception $e) { $db->rollback(); echo $e->getmessage( (); Zatvaranje konekcije $db->closeconnection();
46 Zend_Db_Statement Svaki upit koji se izvrši vraća metode query() koja može da prosleñuju upitu) instancu objekta tipa Zend_Db_Statement. Upit se izvršava preko sadrži dva parametra (sql upit i opcioni niz vrednosti koje se $sql = 'SELECT * FROM bugs WHERE reported_by =? AND bug_status =?'; $stmt = new Zend_Db_Statement_Mysqli($db, $sql); $stmt->execute(array('goofy', 'FIXED')); $sql = 'SELECT * FROM bugs WHERE '. 'reported_by = :reporter AND bug_status = :status'; $stmt = new Zend_Db_Statement_Mysqli($db, $sql); $stmt->execute (array(':reporter' => 'goofy', ':status' => 'FIXED')); Dohvatanje rezultata $stmt = $db->query('select * FROM bugs'); while ($row = $stmt->fetch()) { echo $row['bug_description']; $stmt = $db->query('select * FROM bugs'); $rows = $stmt->fetchall(); echo $rows[0]['bug_description']; Promena načina vraćanja podataka $stmt = $db->query('select * FROM bugs'); $stmt->setfetchmode(zend_db::fetch_num); $rows = $stmt->fetchall(); echo $rows[0][0]; $stmt = $db->query('select bug_id, bug_description, bug_status FROM bugs'); $bug_status = $stmt->fetchcolumn(2); $stmt = $db->query('select bug_id, bug_description, bug_status FROM bugs'); $obj = $stmt->fetchobject(); echo $obj->bug_description;
47 Zend_Db_Select Predstavlja klasu koja opisuje SELECT upit i poseduje metode neophodne za konstruisanje SELECT upita posredstvom PHP koda. $db = Zend_Db::factory(...options... ); $select = $db->select(); // Kreiranje Zend_Db_Select objekta $db = Zend_Db::factory(...options... ); $select = new Zend_Db Select($db); // Kreiranje upita $select = $db->select(); // dodavanje FROM klauzule $select->from(...specify table and columns... ) // dodavanje WHERE klauzule $select->where(...specify search criteria... ) // dodavanje ORDER BY klauzule $select->order(...specify sorting criteria... ); // ili $select = $db->select() ->from(...specify table and columns... ) ->where(...specify search criteria... ) ->order(...specify sorting criteria... ); //form klauzula // SELECT * FROM "products" $select = $db->select()-> >from( 'products' ); // Build this query:select p.* FROM "products" AS p $select = $db->select()-> >from( array('p' => 'products') ); //rad sa kolonama // Build this query: // SELECT p."product id", p."product_name" // FROM "products" AS p $select = $db->select() -> >from(array('p' => 'products'), array('product_id', 'product_name'));
48 // Build the same query, specifying correlation names: // SELECT p."product id", p."product_name" // FROM "products" AS p $select = $db->select()-> >from(array('p' => 'products'), array('p.product_id', 'p.product_name')); // Build this query with an alias for one column: // SELECT p."product id" AS prodno, p."product_name" // FROM "products" AS p $select = $db->select()-> >from(array('p' => 'products'), array('prodno' => 'product_id', 'product_name')); // izrazi u kolonama //SELECT p."product_id", LOWER(product_name) FROM "products" AS p $select = $db->select()-> >from(array('p' => 'products'), array('product_id', 'LOWER(product_name)')); // SELECT p."product id", (p.cost * 1.08) AS cost_plus_tax // FROM "products" AS p $select = $db->select()->from(array('p' => 'products'), array('product_id','cost_plus_tax' => '(p.cost * 1.08)')); //SELECT p."product_id", p.cost * 1.08 AS cost_plus_taxfrom "products" AS p $select = $db->select()-> >from(array('p' => 'products'),array('product_id', 'cost_plus_tax' =>new Zend_Db_Expr('p.cost * 1.08' '))); // dodavanje kolona na postojeće upite // SELECT p."product id", p."product_name" FROM "products" AS p $select = $db->select()-> >from(array('p' => 'products'), 'product_id') -> columns('product_name'); // SELECT p."product id", p."product_name" FROM "products" AS p $select = $db->select() ->from(array('p' => 'products'), 'p.product_id') ->columns('product_name', 'p'); // Alternatively use columns('p.product_name') // JOIN // SELECT p."product id", p."product_name", l.* // FROM "products" AS p JOIN "line_items" AS l // ON p.product_id = l.product_id $select = $db->select()->from(array('p' => 'products'), array('product_id', 'product_name')) ->join(array('l' => 'line_items'),'p.product_id = l.product_id'); // joinusing // SELECT * FROM "table1" JOIN "table2" ON "table1".column1 = "table2".column1 WHERE column2 = 'foo''
Microsoft PowerPoint - 1. Zend_1 - Instalacija frameworka
Instalacija Zend framework-a Preuzimanje framework-a Sa zvaničnog sajta Zend-a, preuzeti jednu od verzija framework-a (sada koristiti verziju 1.12.0 ) http://framework.zend.com/downloads/latest Raspakivanje
ВишеPowerPoint Presentation
Visoka škola strukovnih studija za informacione i komunikacione tehnologije MVC - Modeli Školska 2017/18. Dr Nenad Kojić, dipl. inž. Luka Lukić, struk. inž. Danijela Nikitin, spec.stuk.inž MVC.htaccess
ВишеMicrosoft PowerPoint - 6. CMS [Compatibility Mode]
Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd WEB TEHNOLOGIJE Drupal CMS(Content Managment System) Školska 2012/13. Marko M. Spasojević, spec. inž. Dr Nenad Kojić,
ВишеPHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji
PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji podrška za IBM DB2, Oracle, Ingres, MySQL, PostgreSQL,
ВишеR u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s
UPUTSTVO ZA BRZO UMREŽAVANJE PROGRAMA MPP2 Da bi program MPP2 radio u mrežnom okruženju po sistemu klijent-server, potrebno je da se na računarima koji su mrežno povezani instalira: serverska verzija programa
ВишеPrimenjeno programiranje - vezbe GUI i baze podataka
Primenjeno programiranje - Vežbe Java i NetBeans IDE 6.5 Kreiranje korisničkog interfejsa Primer jednostavne aplikacije: 1. Odabrati opciju File > New Project 2. Meñu kategorijama odabrati Java i podkategoriju
ВишеUpute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa
1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa koju možete pronaći na sljedećem linku: http://wordpress.org/download/ Kliknite na
ВишеPrimenjeno programiranje - Vežbe
VISOKA POSLOVNA ŠKOLA STRUKOVNIH STUDIJA NOVI SAD Primena integrisanih razvojnih alata Java i NetBeans IDE 7.0 vežba 9 i 10 Kreiranje desktop aplikacije sa konekcijom na bazu Pokrenuti NetBeans, u kartici
Више** Osnovni meni
Instalacija serverske verzije Kataloga propisa Instalacija Kataloga propisa se vrši na sljedeći način: 1. Ubacite Instalacioni disk ili USB memoriju u računar. 2. Instalacioni program će se automatski
ВишеSELECT statement basic form
NAZIV OBJEKTA ZNANJA Uvod u JQuery PROLOG Autor * Katarina Kaplarski Klasifikacija * Težina * Osnovni nivo Ključne reči * Ko sluša * Student OAS Trajanje * Komentari autora SADRŽAJ Apstrakt Cilj * Uvodne
ВишеMicrosoft PowerPoint - 6. Query Builder.pptx
Visokaškola strukovnihstudija za informacione i komunikacione tehnologije Query builder Query builder je sastavni deo Laravel framework-a koji pruža pouzdan interfejs za rad sa bazom podataka, kreiranje
ВишеPDO
PDO Marijan Šuflaj FER, 2018 Sadržaj PDO Osnove Izvršavanje upita Ranjivosti Dohvaćanje rezultata upita PDO - PHP Data Objects Jednostavno i konzistetno sučelje za pristup bazama podataka iz PHP-a Isti
ВишеOvaj fajl ima 5 stranica. Prvi i drugi domaći zadatak iz Internet tehnologija, Svi css fajlovi su u folderu css a sve slike su u folderu i
Ovaj fajl ima 5 stranica. Prvi i drugi domaći zadatak iz Internet tehnologija, 08.03.2018. Svi css fajlovi su u folderu css a sve slike su u folderu images. Sve slike, osim onih koje se koriste u prvom
ВишеVALIDNOST CERTIFIKATA ZA PRISTUP INTERNET APLIKACIJAMA POREZNE UPRAVE FEDERACIJE BOSNE I HERCEGOVINE (npis I ejs)
VALIDNOST CERTIFIKATA ZA PRISTUP INTERNET APLIKACIJAMA POREZNE UPRAVE FEDERACIJE BOSNE I HERCEGOVINE (NPIS I EJS) POREZNA UPRAVA FEDERACIJE BOSNE I HERCEGOVINE Sektor za informacione tehnologije Sarajevo,
ВишеSlide 1
predmet Inženjerska informatika Operativni sistem dr Anica Milošević Koji operativni sistemi postoje? Microsoft Windows Linux Suse Red Hat Ubuntu Unix 26.1.2018. 2 Šta je Windows operativni sistem? Operativni
ВишеUpute-podesavanj -accounta
Strana :...1... ISO UPUTA 7.5/02-02 Kreiranje i podešavanje mail account-a Korisničko uputstvo za kreiranje i podešavanje Secure (SSL) Email Accounta 1. Upute za podešavanje Secure (SSL) mail account-a
ВишеELEKTRONSKO BANKARSTVO BBI Instalacija USB ključa - Windows XP operativni sistem - Windows Vista i Windows 7 operativni sistem
ELEKTRONSKO BANKARSTVO BBI Instalacija USB ključa - Windows XP operativni sistem - Windows Vista i Windows 7 operativni sistem Windows XP operativni sistem Ovaj dokument opisuje instalaciju USB ključa
ВишеPowerPoint Presentation
Visoka škola strukovnih studija za informacione i komunikacione tehnologije Grupisanje ruta i patterni Školska 2017/18. Dr Nenad Kojić, dipl. inž. Luka Lukić, struk. inž. Danijela Nikitin, spec.stuk.inž
ВишеUPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS
UPUTSTVO ZA PODEŠAVANJE MOBILNIH UREĐAJA ZA MMS Sadržaj AUTOMATSKO PODEŠAVANJE... 3 PODEŠAVANJE PUTEM MTS VODIČA... 3 PODEŠAVANJE PUTEM SMS PORUKE... 3 PODEŠAVANJE PUTEM USSD MENIJA... 3 MANUELNO PODEŠAVANJE
ВишеPodešavanje za eduroam – Windows Vista operativni sistem
Podešavanje za eduroam Windows Vista operativni sistem Kako bi korisnik na siguran način pristupio mrežnim resursima i uz pomoć neophodnih podataka (npr. korisničkog imena i lozinke) izvršio proces autentifikacije
ВишеBaze podataka MySQL Community Server i MySQL Workbench
Baze podataka MySQL Community Server i MySQL Workbench Preuzimanje i instalacija Iz Internet browser-a pristupiti adresi: www.mysql.com Kliknuti na link Downloads Kliknuti na link Community Kliknuti na
ВишеBiz web hosting
BIZ WEB HOSTING KORISNIČKO UPUTSTVO WWW.OBLACI.RS SADRŽAJ PRISTUP KORISNIČKOM PORTALU... 2 KUPOVINA BIZ WEB HOSTING SERVISA... 4 PRISTUP PLESK WEB KONTROLNOM PANELU... 14 PORTALI I DOMENI... 14 FAJL MENADŽER...
ВишеУПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након
УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: http://www.srpskiarhiv.rs/ Након тога се на екрану појављује форма за пријаву на часопис
Више4. Веза између табела практичан рад 1. Повежите табеле Proizvodi и Proizvođači у бази података Prodavnica.accdb везом типа 1:N. 2. Креирајте табелу St
4. Веза између табела практичан рад 1. Повежите табеле Proizvodi и Proizvođači у бази података Prodavnica.accdb везом типа 1:N. 2. Креирајте табелу Stavke_računa која ће разрешити проблем везе типа N:N
ВишеNAPOMENA: Studenti na ispit donose kod urađenog zadatka
Пројекат из предмета Интернет програмирање за августовски и септембарски испитни рок школске 2018/19. године Коришћењем PHP технологије, технологије AJAX и MySQL базе података, реализовати следећу веб
ВишеCPHP_19
Upotreba PHP-a u drugim jezicima Za ovu lekciju se podrazumevaju osnovna znanja iz JavaScript-a i ActionScript-a. Ono što smo do sada radili, jeste PHP van konteksta ili u veb kontekstu, što je zapravo
ВишеWordPress & CSP Polisa Sigurnosti Sadržaja za WordPress Milan Petrović WordCamp Niš
WordPress & CSP Polisa Sigurnosti Sadržaja za WordPress Milan Petrović 18.5.2019. WordCamp Niš Predavanje, Google Docs: https://d4p.me/wordcampnis HTTP Zaglavlja Svaki HTTP odgovor počinje zaglavljima
ВишеUniverzitet u Beogradu Mašinski fakultet Konstrukcija i tehnologija proizvodnje letelica PODEŠAVANJE PROGRAMSKOG PAKETA CATIA V5 Miloš D. Petrašinović
Univerzitet u Beogradu Mašinski fakultet Konstrukcija i tehnologija proizvodnje letelica PODEŠAVANJE PROGRAMSKOG PAKETA CATIA V5 Miloš D. Petrašinović Beograd, 2019 Sadržaj Sadržaj i 1 Uvod u programski
ВишеLaboratorija za termičku obradu Inženjerstvo površina Kratko uputstvo za obradu i analizu profila u programskom paketu SPIP Programski paket SPIP preu
Kratko uputstvo za obradu i analizu profila u programskom paketu SPIP Programski paket SPIP preuzmite sa sledećeg linka https://www.imagemet.com/products/spip/download/downloadspip/. Instalirajte softver,
Више[youtube]t2mptqulvr8[/youtube] [quote]pre svega potrebno je na kompjuteru imati instaliran winrar, koji cemo koristiti za deljenje arhiva i stavljanje
[youtube]t2mptqulvr8[/youtube] [quote]pre svega potrebno je na kompjuteru imati instaliran winrar, koji cemo koristiti za deljenje arhiva i stavljanje rar sifre SerbianForum.org. Za pocetak izaberiti zeljenu
ВишеПриручник о полагању матурског испита у образовном профилу Електротехничар информационих технологија - оглед ВЕБ ДИЗАЈН У следећим задацима заокружите
ВЕБ ДИЗАЈН У следећим задацима заокружите број испред траженог одговора 35. Инернет као глобална мрежа светског система умрежених рачунарских мрежа настао је:. Интернет је настао деведесетих година након
ВишеPowerPoint Presentation
УВОД Дa би рaчунaри нa мрежи могли међусобно да кoмуницирaју и рaзмeњују пoдaткe, пoтрeбнo je: дa сe увeду ПРOТOКOЛИ (утврђeна прaвилa и процедуре за комуникацију) да постоје АДРEСE кoje су jeдинствeнe
ВишеУПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након
УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: http://www.srpskiarhiv.rs/ Након тога се на екрану појављује форма за пријаву на часопис
ВишеR u z v e l t o v a 5 5, B e o g r a d, t e l : , e - m a i l : p r o d a j p s i t. r s, w w w. p s i t. r s
R u z v e l t o v a 5 5, 1 1 0 0 0 B e o g r a d, t e l : + 3 8 1 0 1 1 7 8 5 0 3 6 1, e - m a i l : p r o d a j a @ p s i t. r s, w w w. p s i t. r s Instalacija izmena i dopuna programa MPP2 Izmene i
ВишеOVO JE ZVANIČAN RCUB TEMPLATE: Normal
Korisničko uputstvo za instalaciju i podešavanje securew2 programa za pristup eduroam servisu Termin supplicant se koristi u IEEE 802.1X standardu. U širem značenju, ovaj termin predstavlja entitet (korisnik
Више_Outlook
Outlook 2010 i Outlook 2013 Otvorite Outlook. Kada se pojavi prvi ekran čarobnjaka pritisnite Next (dalje). Na sljedećem ekranu pod nazivom E-mail Accounts (email nalozi) ponovo pritisnite Next (dalje)
ВишеMicrosoft Word - Uputstvo za koristenje aplikacije GIPKO
Aplikacija za elektronsko popunjavanje obrasca GIP-1022 i spašavanje podataka u datoteku u XML formatu GIPKO Verzija 1.2 Sadržaj Uvod... 3 Instalacija aplikacije... 4 Pokretanje aplikacije... 7 Meni aplikacije...
ВишеMicrosoft Word - MySQL_3.doc
7. Data Manipulation Language (DML) Jezik za rad sa podacima (Data Manipulation Language (DML)) služi za umetanje, brisanje i ažuriranje podataka u bazi. 7.1. Umetanje novih redova u tabelu INSERT sintaksa
ВишеUputstvo za podešavanje za pristup eduroam servisu za Mac OS X Snow Leopard Copyright AMRES
Uputstvo za podešavanje za pristup eduroam servisu za Mac OS X Snow Leopard Copyright AMRES Ovo uputstvo se odnosi na sve Mac računare sa Mac OS X Snow Leopard operativnim sistemom. Podešavanja na različitim
ВишеFra Serafina Schoena Rijeka MB: MBO: Žiro račun: kod RBA d.d. GSM:
EKLIPS MINI CMS upute za korištenje v1.0 1. Sadržaj isporuke i opće informacije EKLIPS MINI CMS sustav napravljen je pomoću sljedećih open source tehnologija Java JDK 1.5 - http://java.sun.com/javase/downloads/index_jdk5.jsp
ВишеNACIONALNI REGISTAR IZVORA ZAGAĐIVANJA UPUTSTVO ZA KORIŠĆENJE INFORMACIONOG SISTEMA NACIONALNOG REGISTRA IZVORA ZAGAĐIVANJA Beograd, 2014.
NACIONALNI REGISTAR IZVORA ZAGAĐIVANJA UPUTSTVO ZA KORIŠĆENJE INFORMACIONOG SISTEMA NACIONALNOG REGISTRA IZVORA ZAGAĐIVANJA Beograd, 2014. Sadržaj Uvod... 2 Prvo pokretanje aplikacije... 3 Važne informacije
ВишеApache Maven Bojan Tomić
Bojan Tomić tomicb@fon.rs Kako se pravi Java projekat (build) Osnovni koraci (skraćena procedura bez testiranja) 1)Preuzimanje *.java fajlova sa početne destinacije (obično src folder) 2)Preuzimanje odgovarajućih
ВишеУпутство за коришћење АМРЕС FileSender услуге
Упутство за коришћење АМРЕС FileSender услуге Copyright 205 АМРЕС Историја верзија документа Верзија Датум Иницијали аутора Опис промене.0 Јул 205 НИ Прва верзија овог документа Садржај Садржај УВОД...
ВишеСТАРТ - СТОП ПАРКИНГ СИСТЕМ КОРИСНИЧКО УПУТСТВО страна 1 од 12
СТАРТ - СТОП ПАРКИНГ СИСТЕМ КОРИСНИЧКО УПУТСТВО страна 1 од 12 РЕГИСТРАЦИЈА НА СТАРТ-СТОП ПАРКИНГ СИСТЕМ За коришћење СТАРТ-СТОП ПАРКИНГ система, корисник (физичко или правно лице) попуњава упитник у просторијама
ВишеMicrosoft Word - X-Lite_EUnetUputstvo_Mart11.doc
VOIP Sadržaj: 1 COUNTERPATH X-LITE... 3 1.1 Preuzimanje programa... 3 1.2 Instalacija CounterPath X-Lite -a... 3 1.3 Podešavanje korisničkog naloga... 3 1.4 Upućivanje poziva... 5 1.4.1 Pozivanje korisnika
ВишеO Nanokinetik NeeS TOC Builder-u NeeS TOC Builder je aplikacija koja se koristi za kreiranje Tabele sadržaja (TOC) za elektronske podneske u NeeS form
O Nanokinetik NeeS TOC Builder-u NeeS TOC Builder je aplikacija koja se koristi za kreiranje Tabele sadržaja (TOC) za elektronske podneske u NeeS formatu. Ključne pojedinosti Nanokinetik NeeS TOC Builder-a:
ВишеKorisnicki nalog je skup informacija i postavki koje koristite za interakciju sa racunarom i prilagodite Windows da radi onako kako vi zelite. Sa kori
Korisnicki nalog je skup informacija i postavki koje koristite za interakciju sa racunarom i prilagodite Windows da radi onako kako vi zelite. Sa korisnickim nalozima, nekoliko ljudi moze lako da deli
ВишеOpenDNS Family Shield CERT.hr-PUBDOC
OpenDNS Family Shield CERT.hr-PUBDOC-2019-6-381 Sadržaj 1 UVOD... 3 2 INSTALACIJA USLUGE OPENDNS FAMILY SHIELD... 5 2.1 KONFIGURACIJA NA OPERACIJSKOM SUSTAVU WINDOWS 10... 5 2.2 KONFIGURACIJA NA KUĆNOM/UREDSKOM
Више12.WT-javaScript-Drupal
Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd WEB TEHNOLOGIJE Drupal i javascript (jquery) Školska 2014/15. dr Nenad Kojić, dipl. inž. Milena Vesić, spec. inž. Marko
ВишеBoostrap.1.1
Boostrap Bootsrap je CSS framework. Функционише на принципу грид система и готових класа за поједине елементе. У сваком случају, потребно је познавање HTML-а и CSS-а да би се елементи додтно прилагодили
ВишеPowerPoint Presentation
III Razvoj Android aplikacija S A D R Ž A J 3.1 Razvoj Android aplikacija 3.2 Razvojno okruženje Android aplikacija 3.3 Instalacija JDK 3.4 Instalacija Eclipse 3.5 Instalacija Android SDK 3.6 Dodatna podešavanja
ВишеWINDOWS 8 Pre nego sto zapocnete instalaciju operativnog sistema potrebno je u vassem BIOS-u da podesite opciju bootanja sa CD/DVD rooma a zatim ubaci
WINDOWS 8 Pre nego sto zapocnete instalaciju operativnog sistema potrebno je u vassem BIOS-u da podesite opciju bootanja sa CD/DVD rooma a zatim ubacite u vas CD/DVD room instalacijski DVD disk-mediju
ВишеWINREDUCER 8 PRIPREMA Obradu Windows 8 operativnog sistema po vasoj zelji i ukusu mozete jednostavno uraditi sa WDI alatom.potrebno je da u racunaru i
WINREDUCER 8 PRIPREMA Obradu Windows 8 operativnog sistema po vasoj zelji i ukusu mozete jednostavno uraditi sa WDI alatom.potrebno je da u racunaru imate instaliran 7zip program pomocu koga cete raspakovati
ВишеKREIRANJE TORRENTA Ako zelite da kreirate torrent fajl od nekog fajla ili foldera u vasem racunaru a kasnije podeliti sa drugim korisnicima i uploadov
KREIRANJE TORRENTA Ako zelite da kreirate torrent fajl od nekog fajla ili foldera u vasem racunaru a kasnije podeliti sa drugim korisnicima i uploadovati ga na neki od servera predvidjenih u te svthe (Trackera)
ВишеMultiBoot Korisnički priručnik
MultiBoot Korisnički priručnik Autorsko pravo 2006., 2007. Hewlett- Packard Development Company, L.P. Informacije sadržane u ovom dokumentu podložne su promjenama bez najave. Jedina jamstva za HP-ove proizvode
ВишеSlide 1
Web site development using MCMS 2002 Koncept Autori: Multiautorsko okruženje sa podijeljenim ulogama Autori ne moraju imati tehnička predznanja Veza sa MicrosoftWord Developeri: Integracija sa VS.NET Integracija
ВишеFTDI DRAJVER uputstvo za instalaciju NEMANJINA 57 A, POŽAREVAC TEL: FAX:
FTDI DRAJVER uputstvo za instalaciju NEMANJINA 57 A, 12000 POŽAREVAC TEL: 012 541 022 FAX: 012 541 026 WWW.AIS.D-LOGIC.RS FTDI DRAJVER uputstvo za instalaciju www.ais.d-logic.rs AIS FREE SOFTVER uputstvo
ВишеMicrosoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]
Programski jezik C organizacija izvornog programa Prevođenje Pisanje programa izvorni program Prevođenje programa izvršni program Izvršavanje programa rezultat Faze prevođenja Pretprocesiranje Kompilacija
ВишеПисање и превођење модула
Писање и превођење модула ЦИЉ Научити како се пишу и преводе модули. ИСХОД Након ове вежбе ћете моћи да: Напишете кернел модул са неколико могућности, укључујући параметре Приступите кернелу из вашег модула
ВишеUpitni jezik SQL
Šta je SQL? SQL (Structured Query Language) je jezik koji je Američki Institut za Nacionalne Standarde (ANSI - American National Standards Institute) prihvatio kao standardni jezik za relacione baze podataka.
ВишеMicrosoft Word - KORISNIČKA UPUTA za pripremu računala za rad s Fina potpisnim modulom_RSV_ doc
Uputa za pripremu računala za rad s Fininim potpisnim modulom Zagreb, lipanj 2019. Sadržaj: 1. UVOD... 3 2. POJMOVI I SKRAĆENICE... 3 3. TEHNIČKI PREDUVJETI KORIŠTENJA... 3 4. PODEŠAVANJE INTERNET PREGLEDNIKA
ВишеKontrola korisnickih racuna (UAC) pomaze tako sto sprecava potencijalno stetne programe da izvrse promene u vasem racunaru i obavestava vas pre izvrse
Kontrola korisnickih racuna (UAC) pomaze tako sto sprecava potencijalno stetne programe da izvrse promene u vasem racunaru i obavestava vas pre izvrsenja svake promene a koje zahtevaju administratorsku
ВишеČesto postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako
Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako instalirati (novi) finin certifikat? 4. Kako ispisati
ВишеNIGOS menadžer
HelpAndManual_unregistered_evaluation_copy NIGOS menadžer 2012 NIGOS Elektronik Sadržaj 1 Index 2 2 Opis 2 3 Zahtevi 2 4 Instalacija 2 5 Osnovni prikaz 3 6 Otključavanje 5 7 Promena šifre 6 8 Opcije programa
ВишеУниверзитет у Београду Економски факултет Катедра за економску политику и развој Јавне финансије 2018/19 УПУТСТВО ЗА ПРИЈАВЉИВАЊЕ НА Е-КУРС ИЗ ПРЕДМЕТ
УПУТСТВО ЗА ПРИЈАВЉИВАЊЕ НА Е-КУРС ИЗ ПРЕДМЕТА ЈАВНЕ ФИНАНСИЈЕ Да бисте били у могућности да активно учествујете на настави из предмета Јавне финансије и радите обавезне тестове као део предиспитне обавезе,
ВишеFakultet tehničkih nauka, Novi Sad Predmet: ISIBP
Fakultet tehničkih nauka, Novi Sad Predmet: Informacioni sistemi i baze podataka dr Slavica Kordid Angelina Vujanovid Marina Nenid Marija Kukid Sistem ocenjivanja Ukupno: 100 bodova Teoretski deo (predavanja)
ВишеStartovanje Androida u Windowsu Jednostavno ako zelite mozete instalirati operativni sistem Android u okviru samog Windowsa (to se takodje moze uradit
Startovanje Androida u Windowsu Jednostavno ako zelite mozete instalirati operativni sistem Android u okviru samog Windowsa (to se takodje moze uraditi i iz Linuxa) i to u virtualnom okruzenju.dakle za
ВишеGetDeb je odlican server za Ubuntu softvere i moze vam pruziti instalaciju raznih paketa i aplikacija za vas Linux Ubuntu. Pomocu njega mozemo dobiti
GetDeb je odlican server za Ubuntu softvere i moze vam pruziti instalaciju raznih paketa i aplikacija za vas Linux Ubuntu. Pomocu njega mozemo dobiti PPAs cak i za razne Ubuntu softvere koji nisu dostupni
ВишеMicrosoft Word - WP_kolokvij_2_rjesenja.doc
Napomena WEB PROGRAMIRANJE I PRIMJENE DRUGI KOLOKVIJ vrijeme predviđeno za rješavanje kolokvija je 60 minuta kolokvij se sastoji od 15 pitanja, a ukupan broj bodova je 165 (uz svaki zadatak istaknut je
ВишеWeb programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju
Osnovni pojmovi WEB tehnologije korišteni u kolegiju Ivan Vazler Odjel za matematiku Sveučilište u Osijeku 16. listopada 2013. WWW - World Wide Web World Wide Web (WWW) svjetska mreža računala s izvorima
ВишеSlide 1
Kako jednostavnije preći na višu verziju Formsa Ivan Lovrić, Vedran Latin 14.10.2009. Sadržaj prezentacije Predmet migracije Razlozi za migraciju Infrastruktura potrebna za migraciju Pilot migracija Migracija
ВишеP R O G R A M I R A N J E Z A I N T E R N E T Lab. vježba 2 PROGRAMIRANJE ZA INTERNET Upute za laboratorijske vježbe (izradio: Marin Bugarić, Frano Re
P R O G R A M I R A N J E Z A I N T E R N E T Lab. vježba 2 PROGRAMIRANJE ZA INTERNET Upute za laboratorijske vježbe (izradio: Marin Bugarić, Frano Rezo) Uvod u HTML 1 Općenito o HTML-u HTML - Hyper Text
ВишеSEMINAR
1. Cilj vežbe Lekcija 9 Akvizicija i osnovna obrada slike u LabVIEW Cilj vežbe je da studente upozna sa: Akvizicijom slike. Osnovnim koracima pri obradi slike Zadatak 9.1. Povezati USB kameru i kreirati
ВишеUPUTA za uvođenje JOPPD - prva faza
UPUTA ZA UVOĐENJE OBRASCA JOPPD PRVA FAZA Prva faza uvođenja obrasca JOPPD uključuje slijedeće aktivnosti: 1. Instalacija nove verzije 2. Punjenje šifarnika potrebnih za JOPPD obrazac a. Oznake stjecatelja
ВишеКорисничко упутство апликације езапослени верзија Рачунски центар Електротехничког факултета, Универзитет у Београду
Корисничко упутство апликације езапослени 2011 Рачунски центар Електротехничког факултета, Универзитет у Београду 1. Пријава на систем и сигурност података... 1 2. Корисник... 5 2.1. Обавештења... 5 2.2.
ВишеVEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr
VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstrirana upotreba konstruktora, svojstava, metoda klase,
ВишеPowerPoint Presentation
NAREDBE U PHP-U Naredbe if else elseif/else if while do-while for foreach break continue switch return require include require_once include_once goto If-else if (izraz) uradi 1 else uradi 2 ili if (izraz)
ВишеEkonomski fakultet u Osijeku Kolegij: Elektroničko i mobilno poslovanje Nositelj: prof. dr. sc. Branimir Dukić Nastavni materijali za vježbe 3. HTML o
Ekonomski fakultet u Osijeku Kolegij: Elektroničko i mobilno poslovanje Nositelj: prof. dr. sc. Branimir Dukić Nastavni materijali za vježbe 3. HTML obrasci 1. HTML obrasci HTML obrasci služe za prikupljanje
ВишеInženjering informacionih sistema
Fakultet tehničkih nauka, Novi Sad Inženjering informacionih sistema Dr Ivan Luković Dr Slavica Kordić Nikola Obrenović Milanka Bjelica Dr Jelena Borocki Dr Milan Delić UML UML (Unified Modeling Language)
ВишеDomaći zadatak - GUI (rok za sve grupe je ) Napraviti repozitorijum na GitHub-u koji se zove MenjacnicaGUI i postaviti Eclipse projekat menj
Domaći zadatak - GUI (rok za sve grupe je 10.5.2017.) Napraviti repozitorijum na GitHub-u koji se zove MenjacnicaGUI i postaviti Eclipse projekat menjacnicagui koji je povezan sa ovim repozitorijumom.
ВишеMicrosoft Word - SYLLABUS -Dinamicki
Univerzitet UKSHIN HOTI PRIZREN Fakultet kompjuterskih nauka Nastava na bosanskom jeziku NASTAVNI PLAN - PROGRAM SYLLABUS Akademska Nivo studija Bachelor Departament god. PREDMET Dinamički sadržaj web
ВишеIBM EMM MAAS
IBM EMM MAAS KORISNIČKO UPUTSTVO WWW.OBLACI.RS SADRŽAJ SADRŽAJ... 1 PRISTUP KORISNIČKOM PORTALU... 2 KUPOVINA IBM EMM MAAS SERVISA... 4 MAAS360 PORTAL... 13 IZBOR PLATFORMI... 14 DODAVANJE UREĐAJA... 20
Вишеm-intesa ZA KRETANJE BEZ GRANICA... INTESA SANPAOLO BANKA ZA UREĐAJE SVIJET MOGUĆEG.
m-intesa ZA KRETANJE BEZ GRANICA... INTESA SANPAOLO BANKA ZA UREĐAJE SVIJET MOGUĆEG. m-intesa ZA KRETANJE BEZ GRANICA... m-intesa Vam omogućava jednostavno, brzo i sigurno obavljanje finansijskih transakcija
ВишеKombinatorno testiranje
Kombinatorno testiranje Uvod Na ponašanje aplikacije utiče puno faktora, npr. ulazne vrednosti, konfiguracije okruženja. Tehnike kao što je podela na klase ekvivalencije ili analiza graničnih vrednosti
ВишеMetodolosko uputstvo Internet registra medicinske opreme
Institut za javno zdravlje Srbije "Dr Milan Jovanović Batut" Centar za informatiku i biostatistiku METODOLOŠKO UPUTSTVO INTERNET REGISTRA MEDICINSKE OPREME SADRŽAJ SADRŽAJ... 1 UVOD... 2 NADLEŽNOSTI U
ВишеMicrosoft PowerPoint - OOPpredavanja05 [Compatibility Mode]
OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 5 OBJEKTI U INTERAKCIJI Miloš Kovačević Đorđe Nedeljković 1 /25 OSNOVNI KONCEPTI - Abstrakcija - Modularizacija - Objektne reference - Klasni dijagram - Objektni
ВишеAko koriste Dual boot (imate u racunaru instaliran Linux i Windows Operativni sistem) a za logovanje u zeljeni operativni sistem koristite Linuxov Gru
Ako koriste Dual boot (imate u racunaru instaliran Linux i Windows Operativni sistem) a za logovanje u zeljeni operativni sistem koristite Linuxov Grub meni kao na slici, mozete doci u situaciju da ga
ВишеZIS
DIGITALNA FORENZIKA prof. dr Saša Adamović sadamovic@singidunum.ac.rs Forenzička istraga operativnih sistema Operativni sistem Pruža softversku platformu za pokretanje drugih programa. OS je odgovoran
ВишеModem i lokalna mreža Vodič za korisnika
Modem i lokalna mreža Vodič za korisnika Copyright 2009 Hewlett-Packard Development Company, L.P. Ovde navedene informacije podložne su promeni bez prethodne najave. Garancije za HP-ove proizvode i usluge
ВишеKorisničko uputstvo mobilne aplikacije Digitalni Kiosk 1
Korisničko uputstvo mobilne aplikacije Digitalni Kiosk 1 Sadržaj Opis mobilne aplikacije Digitalni Kiosk... 3 Pokretanje aplikacije... 3 Registracija/Kreiranje novog korisničkog naloga... 3 Dodavanje platne
ВишеCOMARC/A Format
COMARC/A 856 856 ELEKTRONSKA LOKACIJA I PRISTUP Polje možemo da koristimo u normativnim zapisima za obezbeđivanje dodatnih (elektronskih) informacija o entitetu za koji je zapis kreiran. Polje sadrži podatke
ВишеMicrosoft Word - Lekcija 11.doc
Лекција : Креирање графова Mathcad олакшава креирање x-y графика. Треба само кликнути на нови фајл, откуцати израз који зависи од једне варијабле, например, sin(x), а онда кликнути на дугме X-Y Plot на
ВишеAster
ASTER V7 Multi-user Extension za Microsoft Windows 7 Vodič za brzi početak Instalirajte ASTER V7 softver koristeći instalaciju dobavljača. Od ostalih instalacionih opcija preporučujemo da svako posebno
ВишеPages from 5527 lite guick guide from PDF - prevod_IO_FC - Serbian.doc
Pregled LCD ekran 1. Poklopac baterije 2. Taster za blokiranje 3. Poklopac USB konektora 4. USB konektor 5. Uključivanje/isključivanje i Reprodukcija/pauziranje 6. Jačina zvuka 7. MENI 8. Fn A B 9. REC
ВишеSveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 10 Zvonimir Bujanović Luka Grubišić Vinko Petričević
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 10 Zvonimir Bujanović Luka Grubišić Vinko Petričević JavaScript JavaScript je programski jezik prvenstveno namijenjen za davanje dinamičnosti
ВишеПрипејд картица Корисничко упутство
Припејд картица Корисничко упутство Садржај 1 Регистрација корисника... 3 1.1 Креирање налога... 3 1.2 Активација налога... 6 2 Захтев за персонализацију Припејд картице... 8 2.1 Креирање захтева за персонализацију
ВишеPOSTAVLJANJE PLEJERA ZA VREME INSTALACIJE PROGRAMA U WPI Verovatno ko koristi postinstalacioni paket programa zna zasigurno koliko moze biti dosadna a
POSTAVLJANJE PLEJERA ZA VREME INSTALACIJE PROGRAMA U WPI Verovatno ko koristi postinstalacioni paket programa zna zasigurno koliko moze biti dosadna automatska instalacija programa.o cemu se zapravo radi...
ВишеCARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:
Sadržaj... 1 1. Predgovor... 2 2. Prijava u sustav... 2 3. Postavke... 3 4. Kreiranje zahtjeva za nadzorom razrednih knjiga... 4 5. Pregled razredne knjige... 6 5.1 Dnevnik rada... 7 5.2 Imenik... 11 5.3
ВишеMicrosoft PowerPoint - 01 Uvod u operativne sisteme.ppt
Uvod u operativne sisteme v.as.mr. Samir Lemeš slemes@mf.unze.ba Univerzitet u Zenici 2009 Operativni sistemi i mreže: način realizacije vježbi Tokom semestra 3 periodična testa (Operativni sistemi, Mrežni
Више