I.Wojnicki, PHP. Smarty. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie. 28 marca 2014



Podobne dokumenty
I.Wojnicki, Tech.Inter.

I.Wojnicki, JiTW. Frameworks oraz Serwery Aplikacji. Igor Wojnicki. Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie

media Blitz wydajne sytemy szablonów

Instalacja i uruchomienie Na stronie domowej projektu Smarty znajdziemy między innymi dokumentację oraz najnowszą wersję oprogramowania.

Kompozycja Proceduralna

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Smarty PHP. Leksykon kieszonkowy

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

PHP: bloki kodu, tablice, obiekty i formularze

Programowanie CGI. Jolanta Bachan Informatyka

Bazy Danych i Usługi Sieciowe

NoSQL Not Only SQL, CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Igor Wojnicki

L eszek Sewastianowicz P odstawy systemu szablonów Smarty 1

NoSQL Not Only SQL: CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków.

Test z przedmiotu. Witryny i aplikacje internetowe

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Dokument hipertekstowy

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Umieszczanie kodu. kod skryptu

System operacyjny Linux

Bazy Danych i Usługi Sieciowe

Kurs WWW. Paweł Rajba

MVC w praktyce tworzymy system artykułów. cz. 1

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

Podstawy programowania C. dr. Krystyna Łapin

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Wprowadzenie do framework a Symfony

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Facelets ViewHandler

Bazy Danych i Usługi Sieciowe

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Szablon główny (plik guestbook.php) będzie miał postać:

Laboratorium 1 Wprowadzenie do PHP

Rys.2.1. Drzewo modelu DOM [1]

Przed Tobą znajduje się kilka prostych zadań praktycznych dotyczących języka HTML.

ŁAŃCUCHY W JĘZYKU C/C++

Co nie powinno być umieszczane w plikach nagłówkowych:

Microsoft IT Academy kurs programowania

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

PHP zaawansowane programowanie

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Języki skryptowe w programie Plans

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

ECDL Podstawy programowania Sylabus - wersja 1.0

WYMAGANIA EDUKACYJNE. Programowanie Aplikacji Internetowych klasa III

Wybrane działy Informatyki Stosowanej

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Zajęcia 10 obsługa formularzy w PHP

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Backend Administratora

Program szkolenia: Symfony, nowoczesny framework PHP

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

CSS. Kaskadowe Arkusze Stylów

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Michał Bielecki, KNI 'BIOS'

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Informatyka. Wy-02 Tablice, wskaźniki, warunki i pętle. mgr inż. Krzysztof Kołodziejczyk

Wymagania edukacyjne z przedmiotu Witryny i aplikacje internetowe klasa 2iA. tworzenia stron. animację - multimedia

Programowanie w Internecie

MVC, Razor i Azure technologie dla programistów. Wykonanie: Adam Augustyniak Kamil Kołodziejski Łukasz Żmudziński UWM 2015

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

HTML5 i CSS. Deklaracja <!DOCTYPE> musi być na początki dokumentu napisanego w HTML5 przed tagiem <html>.

do drukowania tekstu służy funkcja echo <?php echo "hello world!";?> jeżeli użyjemy jej kilka razy: <?php

O HTML. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Wykład 2 Składnia języka C# (cz. 1)

SSK - Techniki Internetowe

OPT Open Power Template. System szablonów OPT. Przykładowy skrypt oraz szablon OPT OPT API

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Budowa nowoczesnej aplikacji SPA z wykorzystaniem biblioteki Ember.js

Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Grafika PHP dla początkujących

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

KURSY PROGRAMOWANIA DLA DZIECI

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Szkolenie wycofane z oferty. Programowanie w JavaScript (zawiera jquery)

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

Specyfikacja implementacyjna aplikacji serwerowej

Zaawansowane programowanie w C++ (PCP)

1 Podstawy c++ w pigułce.

Transkrypt:

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 1 / 33 Smarty Igor Wojnicki Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie 28 marca 2014 $Id: smarty.tex,v 1.2 2013/06/22 22:09:45 wojnicki Exp wojnicki $

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 2 / 33 Spis Treści 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 3 / 33 Spis Treści Smarty: Cele 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 4 / 33 Smarty: Cele Charakterystyka Template/Presentation Framework tworzenie interfejsu. Buforowanie. Programowanie PHP Definiowanie szablonów (ograniczony język znaczników). Szablony do typowych zastosowań: Tabele, Formularze. Kompilacja on-the-fly do kodu PHP. http://www.smarty.net

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 5 / 33 Cel Smarty: Cele Separacja modelu oraz interfejsu (wizualizacji): Model/View (zastosowanie koncepcji MVC). Model: PHP. przyporzadkowanie logicznej struktury generowanym danym: tytuł, paragraf, zawartość tabeli, autor etc. View: Szablony. prezentacja struktury: HTML(statyczne oraz generowane przez PHP)+CSS.

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 6 / 33 Smarty: Cele Wersje Smarty 3.x: PHP 5.2+ Smarty 2.x: PHP 4 lub 5

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 7 / 33 Smarty: Cele Zalety Model/View Projektant interfejsu nie może zepsuć modelu. Interfejs może być przeprojektowany bez konieczności zmiany/modyfikacji modelu. Programista koncentruje się na modelu, nie na interfejsie.

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 8 / 33 Spis Treści Instalacja 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 9 / 33 Instalacja Instalacja tar xvfz Smarty-stable.tar.gz mkdir templates templates_c configs cache chmod a+xr cache/ configs/ templates/ chmod a+w templates_c/ cache/

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 10 / 33 Test instalacji Instalacja index.php <?php require(./smarty-3.1.7/libs/smarty.class.php ); $smarty = new Smarty(); $smarty->testinstall();?>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 11 / 33 Test instalacji, rezultat, cd. Instalacja <PRE> Smarty Installation test... Testing template directory... /home/users/vip/wojnicki/public_html/smarty/templates is OK. Testing compile directory... /home/users/vip/wojnicki/public_html/smarty/templates_c is OK. Testing plugins directory... /home/users/vip/wojnicki/public_html/smarty/smarty-3.1.7/libs/plugins is O Testing cache directory... /home/users/vip/wojnicki/public_html/smarty/cache is OK. Testing configs directory... /home/users/vip/wojnicki/public_html/smarty/configs is OK. Testing sysplugin files...... OK Testing plugin files...... OK Tests complete. </PRE>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 12 / 33 Test instalacji, typowe błędy Instalacja <PRE> Smarty Installation test... Testing template directory... /home/users/vip/wojnicki/public_html/smarty/templates is OK. Testing compile directory... FAILED: /home/users/vip/wojnicki/public_html/smarty/templates_c is not writable. Testing plugins directory... /home/users/vip/wojnicki/public_html/smarty/smarty-3.1.7/libs/plugins is O Testing cache directory... FAILED: /home/users/vip/wojnicki/public_html/smarty/cache is not writable. Testing configs directory... /home/users/vip/wojnicki/public_html/smarty/configs is OK. Testing sysplugin files...... OK Testing plugin files...... OK Tests complete. </PRE>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 13 / 33 Instalacja Test instalacji, prosta aplikacja index.php <?php require(./smarty-3.1.7/libs/smarty.class.php ); $smarty = new Smarty(); $smarty->assign( imie, Ned ); $smarty->display( index.tpl );?>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 14 / 33 Test instalacji, szablon Instalacja templates/index.tpl <html> <head> <title>smarty</title> </head> <body> Czesc, {$imie}! </body> </html>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 15 / 33 Test instalacji, rezultat Instalacja templates/index.tpl <html> <head> <title>smarty</title> </head> <body> Czesc, Adam! </body> </html>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 16 / 33 Spis Treści 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 17 / 33 Model index.php 1 include( Smarty.class.php ); // utwórz obiekt $smarty = new Smarty; $smarty->assign( nazwisko, adam kowalski ); $smarty->assign( adres, 45th & Harris ); // użyj wzorca $smarty->display( index.tpl ); 1 Na podstawie: http://www.smarty.net/crash_course

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 18 / 33 View index.tpl <html> <head> <title>osoba</title> </head> <body> <p>informacje osobowe: <p> Nazwisko: {$nazwisko}<br> Adres: {$adres}<br> wyjście <html> <head> <title>osoba</title> </head> <body> <p>informacje osobowe: <p> Nazwisko: adam kowalski<br> Adres: 45th & Harris<br> </body> </html> </body> </html>

Konkurencyjny View Użycie modyfikatorów logika prezentacji. index.tpl wyjście: <html> <head> <title>osoba</title> </head> <body> <p>informacje: <p> {$nazwisko capitalize}<br> Adres: {$adres escape}<br> Data: {$smarty.now date_format:"%y-%m-%d"}<br> </body> </html> <html> <head> <title>osoba</title> </head> <body> <p>informacje <p> Adam Kowalski<br> Adres: 45th & Harris<br> Data: 2003-12-19<br> </body> </html> Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 19 / 33

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 20 / 33 Funkcje View I index.tpl wartość title tylko dla wskazanego pliku. {include file="header.tpl" title="informacje osobowe"} <p>informacje <p> Nazwisko: {$nazwisko capitalize}<br> Adres: {$adres escape}<br> {include file="footer.tpl"}

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 21 / 33 Funkcje View II header.tpl wartość domyślna title jeżeli nie jest przekazana. <html> <head> <title>{$title default:"brak tytułu"}</title> </head> <body> footer.tpl </body> </html>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 22 / 33 Funkcje View III wyjście: <html> <head> <title>informacje osobowe</title> </head <p>informacje <p> Nazwisko: Adam Kowalski<br> Adres: 45th & Harris<br> </body> </html>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 23 / 33 Funkcje generujace HTML I index.php include( Smarty.class.php ); // utwórz obiekt $smarty = new Smarty; // wartościami atrybutów mogą być tablice $smarty->assign( id, array(1,2,3,4,5)); $smarty->assign( imiona, array( bob, jim, joe, jerry, fred )); // użyj wzorca $smarty->display( index.tpl );

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 24 / 33 Funkcje generujace HTML II index.tpl <select name="user"> {html_options values=$id output=$imiona selected="5"} </select> wyjście: <select name="user"> <option label="bob" value="1">bob</option> <option label="jim" value="2">jim</option> <option label="joe" value="3">joe</option> <option label="jerry" value="4">jerry</option> <option label="fred" value="5" selected="selected">fred</option> </select>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 25 / 33 Pętle w View I index.php include( Smarty.class.php ); // utwórz obiekt $smarty = new Smarty; // złożone dane $smarty->assign( imie, array( bob, jim, joe, jerry, fred )); // tablice asocjacyjne $smarty->assign( users, array( array( imie => bob, tel => 555-3425 ), array( imie => jim, tel => 555-4364 ),

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 26 / 33 Pętle w View II array( imie => joe, tel => 555-3422 ), array( imie => jerry, tel => 555-4973 ), array( imie => fred, tel => 555-3235 ) )); // display it $smarty->display( index.tpl );

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 27 / 33 Pętle w View III index.tpl <table> {section name=i loop=$imie} {strip} <tr class="{cycle values="n,p"}"> <td>{$imie[i]}</td> </tr> {/strip} {/section} </table>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 28 / 33 Pętle w View IV <table> {section name=i loop=$users} {strip} <tr class="{cycle values="n,p"}"> <td>{$users[i].imie}</td> <td>{$users[i].tel}</td> </tr> {/strip} {/section} </table>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 29 / 33 Pętle w View V wyjście: <table> <tr class="n"><td>bob</td></tr> <tr class="p"><td>jim</td></tr> <tr class="n"><td>joe</td></tr> <tr class="p"><td>jerry</td></tr> <tr class="n"><td>fred</td></tr> </table><table> <tr class="n"><td>bob</td><td>555-3425</td></tr> <tr class="p"><td>jim</td><td>555-4364</td></tr> <tr class="n"><td>joe</td><td>555-3422</td></tr> <tr class="p"><td>jerry</td><td>555-4973</td></tr> <tr class="n"><td>fred</td><td>555-3235</td></tr> </table>

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 30 / 33 Spis Treści Użyteczne modyfikatory 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 31 / 33 Modyfikatory I Użyteczne modyfikatory count_characters ilość znaków count_paragraphs ilość akapitów (oddzielone pusta linia) count_sentences ilość zdań lower zamiana znaków na małe upper zamiana znaków na duże replace zastap ciag znaków string_format formatowanie danych, podobnie jak format dla printf strip usunięcie wielokrotnych spacji, znaku nowej linii, tabulatora strip_tags usuwa znaczniki HTML truncate obcinanie łańcucha znaków escape zastapienie znaków encjami unescape zastapienie encji znakami

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 32 / 33 Spis Treści Użyteczne funkcje 1 Smarty: Cele Instalacja Użyteczne modyfikatory Użyteczne funkcje

Igor Wojnicki (AGH, KIS) Smarty 28 marca 2014 33 / 33 Funkcje I Użyteczne funkcje {capture} przypisanie fragmentu wzorca do zmiennej {for} {foreach} {while} pętle {if} {elseif} {else} konstrukcje warunkowe {function} funkcje