Separierung der Darstellung durch Templates

Ähnliche Dokumente
php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen

Datenbanksysteme SS 2007

Internet-Technologien

von T. Janda, D. Letz, J. Trümper und S. Voigt

Grundlagen. Wie sind PHP-Dateien aufgebaut?

Praktikum im Grundstudium

Multimedia im Netz Wintersemester 2012/13. Übung 02

Web-basierte Anwendungssysteme PHP Teil 2

for ($i=1 ;$i<=25 ;$i++) { echo "$i "; }?> <br> <a href=" zur Index-Seite</a> </body> </html>

PHP Formulare. Stefan Maihack Dipl. Ing. (FH) Datum:

Smarty Templates. von Sebastian Hardt

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

Java zur Realisierung von Internetanwendungen

PHP Schulung Beginner. Newthinking Store GmbH Manuel Blechschmidt

Programmieren 2 (Prof. Hasbargen) Klausur

JSP Usereingabe. Inhalt. 1 Zielsetzung. SEW(3.Jg) Unterlagen zu Java Server-Pages Teil 2

Multimedia im Netz Wintersemester 2013/14. Übung 10 (Nebenfach)

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

tempela Eine Template Engine für WordPress wildbits.de Jenseits des täglichen Wahnsinns

ASP: Active Server Pages

Ablauf. Wichtige Termine. Vertiefendes Übungsprojekt - SQL II

Datenbanksysteme SS 2007

Kommunikationsnetze. 7. Das World Wide Web 7.4 Client- vs. Server-basierte Techniken für dynamische Webseiten

Perl-Praxis. CGI-Skripte. Jörn Clausen

VERARBEITUNG VON FORMULARDATEN

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 5 Formulare

Mul$media im Netz Wintersemester 2014/15. Übung 01 (Nebenfach)

Perl-Praxis CGI-Skripte 0-0/22

Programmieren der Untersuchung

Internetanbindung von Datenbanken

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

Java Server Pages (JSP)

Perl-Praxis. CGI-Skripte. Jörn Clausen Jens Reeder, Jan Krüger

Multimedia im Netz Wintersemester 2011/12

Webbasierte Informationssysteme

PHP und MySQL. Formulare - Datenübertragung mit PHP. Zellescher Weg 12 Willers-Bau A109 Tel

Ablauf Unit2. Walkthrough

Mul$media im Netz Wintersemester 2014/15. Übung 01 (Haup8ach)

"Die HTML-PHP-Schnittstelle -- Ein- und Ausgabe der Daten"

hotelanfrage_sample <td align = "center"> <select name=dy0 size=1 class="smalltext"> <option selected value="0"><< kein Erwachsener

W7 Projekt im Zusammenhang Gästebuch

PHP JavaScript Kapitel 9. Java-Script-Objekte und das Event-Modell

Schiller-Gymnasium Hof

Funktionen in PHP 1/7

Session V-AFP Active FoxPro Pages

Datenbanken Benutzerschnittstelle Seite 1 von 26

Klausur am 28. Januar 2005

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Grundlagen der Web-Entwicklung INF3172

PHP-Security. Aleksander Paravac. Aleksander Paravac (GNU/Linux User Group Bamberg/Forchheim) 1 / 27

Web Visu Tutorial. Hipecs Web Visu. Übersicht

Übung zur Vorlesung Multimedia im Netz

Kompendium der Web-Programmierung

JavaScript und PHP-Merkhilfe

PHP 4. E i n e K u r z e i n f ü h r u n g. Vortragender: Kevin Bransdor Datum: Folie 1

TYPO3 und TypoScript

Einführung in die Scriptsprache PHP

Inhaltsübersicht. 1 Grundlagen. 2 Theming. 3 Module. 4 Editor. Accessible Drupal C. Fahrengruber. Einleitung. Grundlagen. Theming. Module.

Formular mit Radio-Buttons

PPS-Design einer eigenen WWW-Homepage WS 2002/2003. Anforderungen an eine Webseite

FileMaker und PHP Workshop

Web-basierte Anwendungssysteme PHP-Einführung

4. Februar 2008 Klausur EWA

PHP Fortgeschrittenen Kurs Sommercampus 2006

Dateneingabe über ein HTML-Formular in eine Datenbank:

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und

W7 Projekt im Zusammenhang Gästebuch

Mul$media im Netz (Online Mul$media) Wintersemester 2014/15. Übung 02 (Nebenfach)

Projekt Online-Shop:

Custom Themes from Scratch Stefan Fröhlich. WordCamp Nürnberg 2016

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

Existierende Systeme II: Generierende Ansätze. Jens Siebert PG-WaVis - Universität Paderborn

DOKUMENTATION. CaptchaAd mit Java. Entpacken und Hochladen. Die Schritte zur Integration des CaptchaAd-Modul im Einzelnen. Informationen von CaptchaAd

Grundlagen der Informatik 2

Web-Anwendungen Teil 2 PHP kl. Studienprojekt (Praktikum) Winter 2014/ Daniel Fett

11. Webautomatisierung HTTP Protokoll Tabellen Formulare und Parameter Templates, Graphik Ajax Zustandsinformationen

Scripting Server (Lamp) Domain Hosting

easylearn Webservice lsessionservice Interface für Single Sign On (SSO)

2. WWW-Protokolle und -Formate

Dynamik bis zur DB-Interaktion. Marc Schanne. CGI Möglichkeiten

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP MVC. Dr. Christian Senger. PHP MVC 1 von 21

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

Übungen. DI (FH) Levent Öztürk

Programmierkurs C++ Templates & STL (1/2)

Programmierkurs für das modularisierte Lehramt. September 2011, 8. Vorlesung. Stuttgart, den 22. September Dr. Heiko Schulz.

1)Login Funktion ohne Datenbank

Existierende Systeme I Bibliotheken & Frameworks

Kurze Einführung in PHP

White-paper: Jäger zwischen zwei Welten

MySQL, Java und einiges mehr

Grundlagen der Informatik 2

Grundlagen Internet-Technologien INF3171

Funktionen nur wenn dann

Funktionen. - sind kleine, meist ausgelagerte Programme bzw. Programmfragmente. - können Werte zurückgeben, z.b. Berechnungen

Datenbanksysteme 2009

Programmieren in C++ Templates

Transkript:

Separierung der Darstellung durch Templates Seminar der Projektgruppe Generierung von Web-Anwendungen aus visuellen Spezifikationen Universität t Paderborn 1

Agenda Motivation Template Engines Konzepte Smarty Vlib Formularerzeugung Fazit HTML_QuickForm 2

Motivation Probleme Problem: Mischung von PHP und HTML innerhalb des Codes echo <table width= 80% >\n\t<tr bgcolor= $farbe > Codeduplizierung 01 float max (float a, float b) 02 { 03 return (a<b)? b : a; 04 } 05 06 int max (int a, int b) 07 { 08 return (a<b)? b : a; 09 } 3

Motivation Lösung durch Templates Schablonen erzeugen template < > leitet Template ein, alles Folgende kann unbestimmte Typen enthalten Template- Parameter, Platzhalter für Typ 01 template<typename T> 02 const T & max (const T & a, const T & b) 03 { 04 return (a<b)? b : a; 05 } 01 float f1 = 1.2, f2 = 2.3; 02 float f3 = max (f1, f2); 03 04 int i1 = 1, i2 = 2; 05 int i3 = max (i1, i2); Template-Parameter kann überall vorkommen, wo sonst Typ stehen darf 4

Template Engines Konzept Trennung PHP / HTML Applikation Variablen Template Template Engine HTML-Seite PHP- Skript Daten Datenbank Ł Trennung der Verantwortlichkeiten Ł Codereduzierung 5

Template Engines Smarty Die selbstkompilierende Template Engine Client (Browser) Anfrage Anfrage PHP- Skript Ergebnis- Werte zuweisen Kompiliertes Template vorhanden? Output ja nein Webserver Interpretieren PHP HTML Kompilier tes Template Template kompilieren Templ ates Unterstützt übliche Programmierkonstrukte -Schleifen, Verzweigungen, Funktionen, Datenbankanfragen 6

Template Engines Beispiel Smarty index.php include('smarty.class.php'); $smarty = new Smarty; $smarty->assign('name', 'george smith'); $smarty->assign('address', '45th Harris'); $smarty->display('index.tpl'); index.tpl <html> <head> <title>user Info</title> </head> <body> User Information:<p> Name: {$name}<br> Address: {$address}<br> </body> </html> 7

Beispiel Smarty index.php include('smarty.class.php'); $smarty = new Smarty; $smarty->assign('name', 'george smith'); $smarty->assign('address', '45th Harris'); $smarty->display('index.tpl'); Ausgabe <html> <head> <title>user Info</title> </head> <body> User Information:<p> Name: George Smith<br> Addr: 45th Harris<br> </body> </html> 8

Template Engines Beispiel Vlib Ausgangsbeispiel: Durchmischung PHP / HTML 01 <html> 06 <body> 07 <?php 08 if (isset($input)) 09 { 10 echo "You typed <b>$input</b>.\n"; 11 } 12 else 13 { 14 echo <<<form 15 <form action="form.php" method="post"> 16 <input name="input"> 17 <input type="submit"> 18 </form> 19 form; 20 } 21?> 22 </body> 23 </html> 9

Template Engines Beispiel Vlib form.php 01 <?php 02 require_once "../vlibtemplate.php"; 03 $tmpl = new vlibtemplate('tmpl/vlibt emplate_form.htm'); 04 05 if (isset($input)) 06 { 07 $tmpl->setvar('display',1); 08 $tmpl->setvar('input',$input); 09 } 10 else 11 { 12 $tmpl->setvar('display',0); 13 } 14 $tmpl->pparse(); 15?> form.htm 01 <html> 02 <head> 03 <body> 04 05 <tmpl_if name='display'> 06 You typed <b>{tmpl_var name='input'}</b>. 07 <tmpl_else> 08 <form action="vlibtemplate_form. php" method="post"> 09 <input name="input"> 10 <input type="submit"> 11 </form> 12 </tmpl_if> 13 14 </body> 15 </html> 16 10

Template Engines Beispiel Vlib Ausgabe vor Submit <html> <head> </head> <body> <form action="vlibtemplate_form.php" method="post"> <input name="input"> <input type="submit"> Ausgabe nach Submit <html> <head> </head> <body> You typed <b>hallo</b>. </body> </html> </form> </body> </html> 11

Formularerzeugung HTML_QuickForm HTML_QuickForm- Bibliothek Generierung von HTML- Formularen HTML-Seite PHP-Skript 01 <?php 02 require_once 'HTML/QuickForm.php'; 03 $myform=new HTML_QuickForm('Formular', 'POST'); 04 $myform->addelement('text', 'textname', 'Name:'); 05 $myform->addelement('submit', 'submitbutton','daten senden'); 06 $name =& $myform->getelement('textname'); 07 $myform->addrule('textname', Pflichtfeld', 'required'); 08 if ( $myform->validate() ) 09 {print 'Ihre Angaben sehen wie folgt aus:'; 10 $myform->removeelement('submitbutton'); 11 $myform->freeze();} 12 $myform->display(); 13?> 12

Fazit Template Engines Sinnvolle Methode zur -Codereduzierung -Steigerung der Übersichtlichkeit Generierung von Formularen Zur Ergänzung der Template Engines Ł Strikte Trennung von Layout und Funktion 13

Fazit Nutzen für unsere Projektgruppe? Technik zur Implementierung - Trennung von Funktion und Design - Vereinfachung der Strukturen durch Einteilung des Codes in Teilgebiete - Codereduzierung durch Schablonen Konzepte übernehmen - Generatorkonzept erweitern - Temporäres Kompilieren von Projekten zur Laufzeitreduzierung 14

Danke für Ihre Aufmerksamkeit! 15