I.Wojnicki, Tech.Inter.



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

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

Kompozycja Proceduralna

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Smarty PHP. Leksykon kieszonkowy

media Blitz wydajne sytemy szablonów

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

PHP zaawansowane programowanie

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

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

Technologie Informacyjne

Programowanie CGI. Jolanta Bachan Informatyka

Wybrane działy Informatyki Stosowanej

PHP: bloki kodu, tablice, obiekty i formularze

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

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

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

L eszek Sewastianowicz P odstawy systemu szablonów Smarty 1

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Nazwa Platforma Wspierane bazy danych Ostatnia stabilna wersja

Wybrane działy Informatyki Stosowanej

Tomasz Grześ. Systemy zarządzania treścią

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

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Zaawansowany kurs języka Python

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

Programowanie internetowe

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Wprowadzenie do framework a Symfony

Wybrane działy Informatyki Stosowanej

REFERAT O PRACY DYPLOMOWEJ

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Aplikacje WWW Wprowadzenie

Database Connectivity

(Apache) CouchDB. Krzysztof Kulewski 2008

Analiza i projektowanie aplikacji Java

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Obiektowe bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki skryptowe w programie Plans

WPROWADZENIE. Użycie PHP

Internetowe bazy danych

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Agenda. Wstęp Zmiany Co nowego dla web developerów? Nowości we front-end developingu Czego spodziewać się może końcowy użytkownik?

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Budowa nowoczesnej aplikacji SPA z wykorzystaniem biblioteki Ember.js

Wielojęzykowość w aplikacjach J2EE. Tomasz.Skutnik@e-point.pl

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

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

I.Wojnicki, Tech.Inter.

Facelets ViewHandler

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

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

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX

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

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Przypisywanie bibliotek w architekturze SAS

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Języki programowania wysokiego poziomu. Forum, Blog, Sample DB - wskazówki

Bazy Danych i Usługi Sieciowe

Podstawy wzorca MVC MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

SIECI KOMPUTEROWE I BAZY DANYCH

Umieszczanie kodu. kod skryptu

Właściwości i metody obiektu Comment Właściwości

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

O stronach www, html itp..

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

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

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Projektowani Systemów Inf.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Model semistrukturalny

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

Szkolenie wycofane z oferty

Programowanie zorientowane obiektowo. Mateusz Kołecki

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

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

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

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

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

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

Kurs WWW. Paweł Rajba

System operacyjny Linux

Rys.2.1. Drzewo modelu DOM [1]

EJB 3.0 (Enterprise JavaBeans 3.0)

SOP System Obsługi Parkingów

Programowanie w Internecie

Transkrypt:

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 1 / 31 Frameworks oraz Serwery Aplikacji Igor Wojnicki Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie 28 maja 2012

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 2 / 31 Spis Treści 1 Smarty: Cele Użyteczne funkcje i modyfikatory 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 3 / 31 Outline 1 Smarty: Cele Użyteczne funkcje i modyfikatory 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia Smarty: Cele

Smarty: Cele Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 4 / 31 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://smarty.php.net

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 5 / 31 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.

Smarty: Cele Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 6 / 31 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, KA) Frameworks 28 maja 2012 7 / 31 Outline 1 Smarty: Cele Użyteczne funkcje i modyfikatory 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 8 / 31 Model index.php include( Smarty.class.php ); // create object $smarty = new Smarty; // assign some content. This would typically come from // a database or other source, but we ll use static // values for the purpose of this example. $smarty->assign( name, george smith ); $smarty->assign( address, 45th & Harris ); // display it $smarty->display( index.tpl );

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 9 / 31 View index.tpl <html> <head> <title>user Info</title> </head> <body> User Information:<p> Name: {$name}<br> Address: {$address}<br> </body> </html> wyjście <html> <head> <title>user Info</title> </head> <body> User Information:<p> Name: george smith<br> Address: 45th & Harris<br> </body> </html>

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 10 / 31 Konkurencyjny View Użycie modyfikatorów logika prezentacji. index.tpl wyjście: <html> <head> <title>user Info</title> </head> <body> User Information:<p> Name: {$name capitalize}<br> Addr: {$address escape}<br> Date: {$smarty.now date_format:"%y-%m-%d"}<br> </body> </html> <html> <head> <title>user Info</title> </head> <body> User Information:<p> Name: George Smith<br> Addr: 45th & Harris<br> Date: 2003-12-19<br> </body> </html>

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 11 / 31 Funkcje View I index.tpl wartość title tylko dla wskazanego pliku. {include file="header.tpl" title="user Info"} User Information:<p> Name: {$name capitalize}<br> Address: {$address escape}<br> {include file="footer.tpl"}

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 12 / 31 Funkcje View II header.tpl wartość domyślna title jeżeli nie jest przekazana. <html> <head> <title>{$title default:"no title"}</title> </head> <body> footer.tpl </body> </html>

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 13 / 31 Funkcje View III wyjście: <html> <head> <title>user Info</title> </head> <body> User Information:<p> Name: George Smith<br> Address: 45th & Harris<br> </body> </html>

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 14 / 31 Funkcje generujace HTML I index.php include( Smarty.class.php ); // create object $smarty = new Smarty; // assign options arrays $smarty->assign( id, array(1,2,3,4,5)); $smarty->assign( names, array( bob, jim, joe, jerr // display it $smarty->display( index.tpl );

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 15 / 31 Funkcje generujace HTML II index.tpl <select name="user"> {html_options values=$id output=$names 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">fre </select>

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 16 / 31 Pętle w View I index.php include( Smarty.class.php ); // create object $smarty = new Smarty; // assign an array of data $smarty->assign( name, array( bob, jim, joe, jerry // assign an associative array of data $smarty->assign( users, array( array( name => bob, phone => 555-3425 ), array( name => jim, phone => 555-4364 ), array( name => joe, phone => 555-3422 ),

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 17 / 31 Pętle w View II array( name => jerry, phone => 555-4973 ), array( name => fred, phone => 555-3235 ) )); // display it $smarty->display( index.tpl );

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 18 / 31 Pętle w View III index.tpl <table> {section name=mysec loop=$name} {strip} <tr class="{cycle values="odd,even"}"> <td>{$name[mysec]}</td> </tr> {/strip} {/section} </table> strip usunięcie wielokrotnych spacji, znaku nowej linii, tabulatora

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 19 / 31 Pętle w View IV <table> {section name=mysec loop=$users} {strip} <tr class="{cycle values="odd,even"}"> <td>{$users[mysec].name}</td> <td>{$users[mysec].phone}</td> </tr> {/strip} {/section} </table>

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 20 / 31 Pętle w View V wyjście: <table> <tr class="odd"><td>bob</td></tr> <tr class="even"><td>jim</td></tr> <tr class="odd"><td>joe</td></tr> <tr class="even"><td>jerry</td></tr> <tr class="odd"><td>fred</td></tr> </table><table> <tr class="odd"><td>bob</td><td>555-3425</td></tr> <tr class="even"><td>jim</td><td>555-4364</td></tr> <tr class="odd"><td>joe</td><td>555-3422</td></tr> <tr class="even"><td>jerry</td><td>555-4973</td></tr> <tr class="odd"><td>fred</td><td>555-3235</td></tr> </table>

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 21 / 31 Outline 1 Smarty: Cele Użyteczne funkcje i modyfikatory 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia Użyteczne funkcje i modyfikatory

Użyteczne funkcje i modyfikatory Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 22 / 31 Modyfikatory I 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, KA) Frameworks 28 maja 2012 23 / 31 Funkcje I Użyteczne funkcje i modyfikatory {capture} przypisanie fragmentu wzorca do zmiennej {for} {foreach} {while} pętle {if} {elseif} {else} konstrukcje warunkowe {function} funkcje

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 24 / 31 Outline Serwery Aplikacji Zope 1 Smarty: Cele Użyteczne funkcje i modyfikatory 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Serwery Aplikacji Zope Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 25 / 31 Zope: Charakterystyka Kompletny serwer aplikacji: Model, View. Oparty o Python. Koncepcja obiektowej bazy danych. Kombajn, integruje języki wysokiego poziomu, szablony, bazę danych. Szeroka gama dostępnych modułów: obsługa dokumentów, galerii zdjęć, blogów, wiki. Zarzadzany poprzez interfejs Web. Ścisła kontrola dostępu (użytkownicy). Open Source. http://www.zope.org

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 26 / 31 Zope: zarzadzanie Serwery Aplikacji Zope

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 27 / 31 Zope: aplikacja Serwery Aplikacji Zope

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 28 / 31 Outline Serwery Aplikacji Inne 1 Smarty: Cele Użyteczne funkcje i modyfikatory 2 Serwery Aplikacji Zope Inne 3 Zarzadzanie Treścia

Serwery Aplikacji Inne Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 29 / 31 Inne J2EE (JSP), Java EE, (SUN) specyfikacja, produkty: Sun Java System Application Server, http://www.sun.com JBoss (Open Source), http://www.jboss.org. WebSphere (IBM), http://www.ibm.com/software/websphere/. Ruby on Rails (Open Source) silne użycie koncepcji MVC, http://www.rubyonrails.org.

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 30 / 31 Zarzadzanie Treścia Systemy zarzadzania treścia CMS Content Management System (nie mylić z Course Management System!) System Zarzadzania Treścia. Drupal. Joomla. Wiki MediaWiki. DokuWiki.

Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 31 / 31 Zarzadzanie Treścia Systemy Zarzadzania Dokumentami CMS: Content Management System!!! (nazwa poważnie przeciażona), bardziej szczęśliwa nazwa: ECM: Enterprise Content Management. Documentum, EMC, www.emc.com. Alfresco, www.alfresco.com, (Opensource). Nuxeo, www.nuxeo.org, (Opensource).