Seminar Internet-Technologie Thema: Smarty Templates Vortragender: Christian Voß Datum: 11.01.2008.

Slides:



Advertisements
Ähnliche Präsentationen
PHP Extension und Application Repository
Advertisements

Allgemeines Name: Ursprünglich: „Personal Home Page Tools“
Prüfungspläne Bachelor-Thesis
Internetpräsentation aus PowerPoint erstellen Tipp der Woche 31/2000
Eclipse.
Pflege der Internetdienste
PowerPoint-Makros für DScript
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Internetstruktur Das Internet besteht aus vielen Computern, die weltweit untereinander vernetzt sind.
Benutzen von Internetseiten
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Schiller-Gymnasium Hof Manuel Friedrich OStR, PHP – Variablen und Formulardaten speichern! © 2010 Manuel Friedrich - Wie.
Einführung in Visual C++
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung in die EDV Holger Irrgang
Wizards & Builders GmbH Die Benutzeroberfläche Interaktives Arbeiten mit den Werkzeugen/Assistenten von Microsoft Visual FoxPro.
Jetzt lernen wir.
PHProjekt – eine open source Projektmanagementsoftware
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Eine Produktion von der Firma Presentations GmbH
Automatische Übersetzungen mit Google
MS Excel, Open-/LibreOffice Calc Die Menüs I Office-Logo (Excel2007) bzw. Datei (andere): die Standard-Datei- und Druckoperationen; bei MS Excel hier auch.
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Hyperlinks und Anker Links notieren
Internet und Intranet im Krankenhaus
Grundlagen der sicheren PHP Programmierung Parametermanipulationen und Injektionslücken Stefan Esser Hardened-PHP Project.
Gegenstand EDV Thema: Informative Webseiten
JavaScript.
AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Typo3 Templates und TypoScript
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
HTML-Editoren Eine Präsentation von Erik Kulisch.
Seminar Internet Technologien
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Dynamische Webseiten mit PHP [und Python]
Visual Extend Application Wizard deutschsprachige FoxPro User Group Uwe Habermann VFX 06 D.
Einführung in die Programmiersprache C 4
XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.
CGI (Common Gateway Interface)
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
PHP Basic.
CMS-Kolloquium am 10. Januar 2006
Dynamische Webseiten-Generierung
SQLite und XML in PHP 5.
Einführung in PHP.
Einführung in PHP 5.
Kommandozeile und Batch-Dateien Molekulare Phylogenetik – Praktikum
Vortrag: Frames & Javascript.
CMS Content-Management-Systeme (CMS), dienen der Verwaltung und Pflege von Dokumenten und Inhalten in Inter- und Intranetanwendungen. Den Entwickler oder.
Backup der FTP-Daten mit BYSU (Back Your Space Up von George Ruinelli) Eine mögliche Variante, um FTP- Daten bei dem Provider „All-Inkl“ zu sichern.
CSS Cascading Style Sheets
Anna Steinke‌ WG13 ‌‌‌ Köln, Wie sichere ich meine Daten? Wie mache ich meinen PC sicher?
1 VeranstaltungThemaTeilnehmerBetreuer AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG Peter RENDL Helfried TUISEL Peter ZYCH Heinz STEGBAUER.
Typo 3 // Templa Voila * Was? * Warum? * Wie? - Praktische Übung.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
TUDWCMS Wie kann der Autor eines Dokumentes geändert werden ?
TypoScript.
Typo 3 Templates und TypoScript Dedizierte Systeme Vom Contentmanagementsystem zur Digitalen Bibliothek. Was leisten digitale Repositories? Seminarleitung:
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
PHPmyadmin Maya Kindler 6c.
Loslegen mit Contrexx: In 10 Schritten zur professionellen Webseite. Juli 2012www.contrexx.com1 Autor: Nicolas Müller.
Entwicklung einer Webapplikation mittels HTML, PHP, MySQL, jQuery, und Smarty-Templates am Beispiel einer Studienarbeitsverwaltung.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
 Präsentation transkript:

Seminar Internet-Technologie Thema: Smarty Templates Vortragender: Christian Voß Datum:

Inhalt Was ist Smarty Der Entwicklungsprozess Was Smarty bietet Smarty Projekte – Ein Beispiel Die Debugging Konsole Smarty in der Praxis Fazit Quellenangabe Der PHP Quelltext Konfigurationsdateien Die Template Dateien

Was ist Smarty ? Smarty ist eine Templatesystem welches Programmieren und Designer ermöglicht getrennt an einem Projekt zu Arbeiten. Smarty Design Datenbank Logik Klassischer AnsatzMit Smarty Designer Datenbank Prog. Logik Prog.

Der Entwicklungsprozess 1999 von Monte Orth und Andrei Zmievski erdacht Als PHP Bestandteilgedacht Ursprünglich in C entwickelt Erste PHP Version konnte nur reguläre Ausdrücke parsen Erstveröffentlichung , enthielt bereits Caching Version 2.0 erschien im März 2002 wichtigste Neuheit: Plug-ins Version 2.6 veröffentlich am Aktuelle Version stammt vom Dokumentation verfügbar in vielen Sprachen, seit Anfang März 2003 auch auf Deutsch

Was Smarty bietet Smarty Open Source Einfache Install- ation Sicher- heit Debugger Geschwin- digkeit Plug-insFilter Mehr- sprach- igkeit

Installation Aktuelle Version zu finden unter Systemvorrausetzungen: PHP >= Dateien entpacken, Pfade eintragen, fertig Was Smarty bietet (2) Sicherheit Designer können Logik/Datenbankcode nicht ändern Vielfältige Möglichkeiten Rechte zu beschränken Debugger Smarty besitzt eine eigene Debugging Konsole

Geschwindigkeit Templates werden compiliert Seiten können gecachet werden Unter bestimmten Vorrausetzungen, schneller als pures PHP Was Smarty bietet (3) Plug ins Für viele Probleme existieren bereits fertige Lösungen Plug-ins bestehen aus php Dateien Dynamisches Laden von Plug-ins Arbeitsaufwand stark gemindert, da Code wiederverwendet werden kann

Filter Pre Filter Post Filter Output Filter Vielfältige Möglichkeiten zur Optimierung Was Smarty bietet (4) Mehrsprachigkeit Templates können einfach für verschiedene Sprachen angepasst/erstellt werden Integration der PHP gettext Funktion

Des weiteren bietet Smarty für Designer viele aus anderen Sprachen bekannte Strukturen und Funktionen u.a.: Was Smarty bietet (5) Schleifen if, else, elseif Arrays Reguläre Ausdrücke Mathematische Funktionen Funktionen zur Vereinfachung von HTML Befehlen Modifikation von Variablen Integration von PHP, Javascript Für Programmierer gibt es einige zusätzliche Funktionen, welche Schwachstellen in PHP verbessern, der Großteil des Quelltextes ist jedoch weiterhin reines PHP.

Smarty Projekte - Ein Beispiel Erstellung folgender Webseite

Der Quelltext ist eine normale PHP Datei (hier ohne Logik, Datenbankzugriffe, etc) mit zusätzlichem Smartycode. index.php Smarty ist eine Klasse in PHP Es gibt diverse Einstellungen <?php require 'Smarty.class.php'; $smarty = new Smarty; $smarty->compile_check = true; $smarty->debugging = true; $smarty->assign("Namen", array("Christian Voß", "Michael Klenke", "Eric Sternberg")); assign (x,y) x = Variablen Name Y = Variablen Werte Smarty Projekte – Ein Beispiel Der PHP Quelltext

Es können alle bekannten PHP Datentypen zugewiesen werden, sowie ein und mehrdimensionale Arrays. $smarty->assign("Themen", array( "Christian Voß" =>array("smartylogo.jpg", "Smarty Templates"), "Michael Klenke" => array("javalogo.jpg", "Java Server-Pages(JSP)") "Eric Sternberg" => array("waplogo.jop", "WML (WAP)"))); $smarty->assign("datum", array(1000 => " ", 1001 => " ", 1002 => " ")); $smarty->assign("aktuelles_datum", 1000); $smarty->display('index.tpl'); ?> display(tlp) lädt das Template tlp Smarty Projekte – Ein Beispiel Der PHP Quelltext

Smarty Projekte – Ein Beispiel Konfigurationsdateien Smarty kennt so genante Konfigurationsdateien, in denen konstante Werte für ein Projekt gespeichert werden können. Konfigurationsdateien… …sind optional …können verschiedene Sektionen haben …müssen in ein Template geladen werden …besitzen zu Klassen äquivalente Geltungsbereiche (scopes) …werden in Templates mit {#name#} eingesetzt Für unser Beispiel verwenden wir folgende, sehr einfach gehaltene, Konfigurationsdatei: title = seminar internet-technologie seminar.conf

Smarty Projekte – Ein Beispiel Die Template Dateien Projekte können aus beliebig vielen Dateien bestehen, welche untereinander geladen werden können, vergleichbar mit require Befehl aus PHP, bzw. include aus C. Template Dateien bestehen aus normale HTML Code, welcher mit Smartybefehlen erweitert wird. In unserem Beispiel haben wir 3 Dateien. {config_load file=seminar.conf} {$apptitle} {#title#|capitalize} header.tlp {$varname} greift auf die Inhalte von Variablen zu

Die eigentliche Hauptdatei, welche von index.php geladen wurde. Smarty Projekte – Ein Beispiel Die Template Dateien index.tlp {include file="header.tpl" apptitle="Ein einfaches Smarty Beispiel"} {include file =name} lädt die mit Name angegebene Datei. Intern wird dabei der Quelltext der anderen Datei an die Stelle des includes kopiert. Es können beliebig viele Parameter der Form varname=text existieren, welche in der zu ladenden Datei die Variable varname mit dem Inhalt text erzeugen.

Smarty Projekte – Ein Beispiel Die Template Dateien For…each iteriert ein Array und bietet zusätzliche Informationen. {html_image file} ersetzt den HTML Befehl. {foreach item=name from=$Namen} {foreach item=info from=$Themen[$name] name="inner"} {if $smarty.foreach.inner.first} {html_image file=$info} {else} Thema: {$info} Gehalten von: {$name} {/if} {/foreach} {/foreach}

Smarty Projekte – Ein Beispiel Die Template Dateien html_options ist ein weiterer von vielen Befehlen die um- ständliche oder nicht vorhandene HTML Befehle ersetzen. Html_options erstellt dabei eine Combobox. Weitere sind unter anderem: mailto (erzeugt verschlüsselte Links) math (ermöglicht mathematische Berechnungen) popup (erzeugt ein Popup Fenster) Anderes Datum wählen: {html_options name=datum_auswahl options=$datum selected=$aktuelles_datum} {include file="footer.tpl"}

Nach dem kompilieren entsteht je nach Einstellung eine PHP oder HTML Datei, welche zwar geöffnet werden kann, allerdings schwer zu lesen ist, da keine Formatierungen existieren. Smarty Projekte – Ein Beispiel Die Template Dateien Im Footer wird schließlich noch das aktuelle Datum/Uhrzeit angezeigt. Dies geschieht mit Hilfe der Funktion now; mit date_format wird das Anzeigeformat bestimmt Seite wurde erstellt: {$smarty.now | date_format:"%d.%m.%Y %H:%M:%S"} footer.tlp

Die Debugging Konsole Werte und Datentypen aller Variablen werden hier angezeigt, sowie einige statistische Informationen

Smarty in der Praxis Auf der Herstellerseite findet sich eine Liste mit Referenzseiten die Smarty verwenden. Bekannte Seiten lassen sich jedoch nur vereinzelt finden, obwohl Smarty inzwischen fast 6 Jahre alt ist. Mögliche Gründe dafür könnten sein: Kein Bedarf an Template Systemen, oder bessere Alternativen Das MVC-Prinzip wird nicht vollständig umgesetzt Hohe Einarbeitungszeit, da sowohl Designer als auch Programmier eine zusätzliche Sprache lernen müssen Designer, die in der Lage sind die Smarty Logik zu verstehen, sollten ebenfalls in der Lage sein PHP direkt zu nutzen Smarty kann (vor allem bei falscher Anwendung) deutlich langsamer sein als pures PHP Mehraufwand bei der Projekterstellung Wenig Fachliteratur verfügbar

Fazit Smarty hat, wie so vieles, seine Vor- und Nachteile. Für bestimmte, eher einfache Projekte, ist es sicherlich eine Option Smarty zu verwenden. Den großen Durchbruch wird es jedoch vermutlich nicht erleben, da die Nachteile teilweise doch sehr erheblich sind.

Quellenangabe Alle hier aufgeführten Informationen stammen entweder von oder aus dem Buch Smarty – PHP Template Programming and Applications von Lucian Gheorghe, Hansin Hayder und Joao Prado Maia Herausgegeben von Pack Publishing, 2006