content management mit typo3 - Webportfolio Manfred Schappe
content management mit typo3 - Webportfolio Manfred Schappe
content management mit typo3 - Webportfolio Manfred Schappe
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Hochschule Harz, Hochschule für angewandte Wissenschaften (FH), Friedrichstrasse 57-59, 38855 Wernigerode<br />
Ein Praxissemesterbericht von<br />
<strong>Manfred</strong> <strong>Schappe</strong>, Matrikelnummer 13668<br />
Fachrichtung Medieninformatik (BA)<br />
11. September 2009<br />
CONTENT MANAGEMENT<br />
MIT TYPO3<br />
Begleitet und betreut durch Prof. Jürgen K. Singer, Ph.D. (USA)
VORWORT<br />
Vorwort<br />
Formale Angaben zum Praxissemester<br />
Das Praktikum wurde über einen Zeitraum von 20 Wochen in der Zeit vom 08.05.2009 bis<br />
30.09.2009 durchgeführt. Ausbildungsbegleitendes Unternehmen / Praktikumsbetrieb war hierbei<br />
die Harzer Medien GmbH in Goslar. Als Beauftragter für die Betreuung seitens der Praktikumsstelle<br />
wurde Herr Lars Grollmisch benannt, hochschulseitiger Betreuer war Prof. Jürgen K. Singer, Ph.D.<br />
(USA).<br />
Auszug aus dem “Praktikumsleitfaden für Studierende” der Hochschule<br />
Harz vom 19.05.2009<br />
“[...] Ziel der studienbegleitenden Praktika ist es, eine enge Verbindung zwischen dem Studium und<br />
der Berufspraxis herzustellen.<br />
Das 1. Praktikum und das Bachelorpraktikum sind wesentlicher Bestandteil des Studiums an der<br />
Hochschule Harz. Sie dienen der Förderung der Fähigkeiten der Studierenden zum erfolgreichen<br />
Umsetzen wissenschaftlicher Erkenntnisse und Methoden in vorgegebene Praxissituationen.<br />
Die Praktika sollen die Studierenden an die anwendungsorientierte Tätigkeit des Bachelor-Ingenieurs<br />
oder Bachelor-Informatikers heranführen. Die Studierenden erhalten da<strong>mit</strong> Gelegenheit, die<br />
im Studium ver<strong>mit</strong>telten Kenntnisse und Fertigkeiten auf komplexe Probleme der Praxis anzuwenden.<br />
Dabei ist es wichtig, dass sie die verschiedenen Aspekte der betrieblichen Entscheidungsprozesse<br />
sowie deren Zusammenwirken kennen lernen und die Möglichkeit bekommen, Einblicke in<br />
die organisatorische, ökonomische und soziale Struktur des Betriebsgeschehens zu erhalten. [...]<br />
Die Praktika dienen dazu, anspruchsvolle, eindeutige Aufgaben aus dem Fachgebiet unter Anwendung<br />
der im Studium gesammelten theoretischen Kenntnisse in einem Unternehmen zu bearbeiten<br />
und Zusammenhänge zwischen verschiedenen Disziplinen zu erkennen. Daneben dienen<br />
die Praktika dazu, sowohl teamorientierte Arbeitsweisen als auch die generelle berufliche Praxis<br />
und die betrieblichen Abläufe kennen zu lernen. [...]<br />
Die Praktika dienen der Vorbereitung auf die spätere berufliche Tätigkeit. Daraus leitet sich ab, dass<br />
sie im Rahmen der jeweiligen Studienrichtung absolviert werden sollen.<br />
Der Betrieb/Einrichtung, der eine Praktikumsstelle zur Verfügung stellt, muss deshalb grundsätzlich<br />
in der Lage sein, Erfahrungen, Kenntnisse und Fertigkeiten, die sich Studiengebieten der Hochschule<br />
Harz zuordnen lassen, ver<strong>mit</strong>teln zu können.<br />
Die Betriebe/Einrichtungen stellen eine konkrete Aufgabe, die auf den Wissensstand der Studenten<br />
abgestimmt ist und die vom Studierenden gelöst werden muss. Dabei sollte die selbständige Lösung<br />
der betrieblichen Aufgabe im Mittelpunkt stehen.<br />
Der Praktikumsbetrieb soll dem Charakter nach ein solcher Betrieb/Einrichtung sein, der auf einen<br />
späteren Einsatz des Absolventen optimal vorbereitet. [...]”<br />
2
INHALTSVERZEICHNIS<br />
Inhaltsverzeichnis<br />
Abkürzungsverzeichnis<br />
Abbildungsverzeichnis<br />
Kapitel A - Vorstellung der Unternehmung<br />
1.1 Das Unternehmen / Der Praktikumsbetrieb<br />
1.2 Hcmedia als Tochter<br />
1.3 Tätigkeiten im Praktikum<br />
Kapitel B - Aufgabenstellung des Projektes<br />
2.1 Beschreibung Ist-Zustand<br />
2.2 Anforderungen an das neue System / Soll-Zustand<br />
Kapitel C - Einführung in Typo3<br />
3.1 Was ist eigentlich Typo3?<br />
Kapitel D - Vorbereitung des Server<br />
4.1 Installation und Konfiguration des Apache Server<br />
4.2 Konfiguration der MySQL-Datenbank<br />
4.3 Konfiguration von MercuryMail<br />
4.4 Konfiguration von FileZilla FTP<br />
4.5 Installation von ImageMagick<br />
Kapitel E - Aufsetzen von Typo3<br />
5.1 Installation und Konfiguration von Typo3<br />
5.2 Aufbau eines Template<br />
5.3 Anlegen der Benutzer und Benutzergruppen<br />
5.4 Festlegen der Zugriffsrechte<br />
Kapitel F - Erweiterung von Typo3: Extensions<br />
6.1 Backend<br />
6.2 Backend Module<br />
6.3 Frontend<br />
6.4 Frontend Plugins<br />
Kapitel G - Schluss<br />
7.1 Fazit zum durchgeführten Projekt<br />
7.2 Persönliche Erfahrungen<br />
Anlagenverzeichnis<br />
Quellen- / Literaturverzeichnis<br />
4<br />
5<br />
6<br />
7<br />
8<br />
8<br />
9<br />
10<br />
10<br />
12<br />
13<br />
14<br />
15<br />
15<br />
15<br />
16<br />
16<br />
17<br />
18<br />
18<br />
19<br />
19<br />
20<br />
21<br />
21<br />
21<br />
22<br />
23<br />
24<br />
24<br />
25<br />
52<br />
3
ABKÜRZUNGSVERZEICHNIS<br />
Abkürzungsverzeichnis<br />
BVDW<br />
CI<br />
CMS<br />
FTP<br />
GmbH<br />
GNU<br />
GPL<br />
HS<br />
PDF<br />
PHP<br />
SEO<br />
SMTP<br />
SQL<br />
TER<br />
Bundesverband Digitale<br />
Wirtschaft (e.V.)<br />
Corporate Identity<br />
Content Management System<br />
File Transfer Protocol; Netzwerkprotokoll<br />
zur Übertragung<br />
von Dateien über TCP/IP<br />
Gesellschaft <strong>mit</strong> beschränkter<br />
Haftung<br />
GNU is not Unix; von Richard<br />
Stallman gegründetes Projekt<br />
zur Entwicklung eines Bestriebssystems.<br />
Hierbei wurde die<br />
GNU GPL (s.u.) eingeführt<br />
General Public License; im Rahmen<br />
von GNU (s.o.) entwickelte<br />
Lizenz für die Lizensierung<br />
freier Software<br />
Hochschule<br />
Portable Document Format;<br />
plattformunabhängiges Dateiformat<br />
für Dokumente<br />
PHP: Hypertext Preprocessor<br />
(rekursives Akronym), früher:<br />
Personal Home Page Tools;<br />
Open-Source-Skriptsprache zur<br />
Erstellung dynamischer Webanwendungen<br />
Search Engine Optimization<br />
Simple Mail Transfer Protocol<br />
Structured Query Language;<br />
ANSI- und ISO-standardisierte<br />
Datenbanksprache für relationalen<br />
Datenbanken<br />
Typo3 Extension Repository;<br />
offizielle Sammlung von Erweiterungen<br />
für Typo3<br />
UTF8<br />
XAMPP<br />
XML<br />
XSL<br />
Unicode Transformation<br />
Format (8-Bit); verbreitete<br />
Zeichenkodierung für Unicode-<br />
Schriftzeichen<br />
X Apache MySQL Pearl PHP;<br />
Software-Zusammenstellung,<br />
das X steht für das verwendete<br />
Betriebssystem<br />
Extensible Markup Language;<br />
Auszeichnungssprache zur<br />
Darstellung hierarchisch Strukturierter<br />
Daten in Textform<br />
Extensible Stylesheet Language;<br />
Familie von Transformationssprachen<br />
zur Layout-<br />
Definition für XML-Dokumente<br />
4
ABBILDUNGSVERZEICHNIS<br />
Abbildungsverzeichnis<br />
Abbildung 1: Screenshot bisheriges Intranetportal<br />
Abbildung 2: Eingabemasken in Typo3<br />
Abbildung 3: Grafische Darstellung des verwendeten Template<br />
Abbildung 4: Konfiguration MercuryMail Core-Modul<br />
Abbildung 5: Konfiguration MercuryMail SMTP Server-Modul<br />
Abbildung 6: Konfiguration MercuryMail SMTP RelayClient-Modul<br />
Abbildung 7: Konfiguration MercuryMail End-to-end Client-Modul<br />
Abbildung 8: Module in Typo3<br />
Abbildung 9: Rechtevergabe in Typo3<br />
Abbildung 10: Screenshot neues Intranet<br />
10<br />
13<br />
18<br />
27<br />
28<br />
29<br />
29<br />
40<br />
41<br />
42<br />
5
A<br />
VORSTELLUNG DER<br />
UNTERNEHMUNG<br />
Inhalt des Kapitels:<br />
In diesem Kapitel wird der Praktkumsbeterieb<br />
anhand einiger grundlegender<br />
beteriebswir tschaf tlicher<br />
Daten sowie einem Produktportfolio<br />
vorgestellt. Des Weiteren wird ein<br />
Überblick über die im Praktikum durchgeführten<br />
Tätigkeiten ver<strong>mit</strong>telt.<br />
6
KAPITEL A Vorstellung der Unternehmung<br />
1.1 Das Unternehmen / Der Praktikumsbetrieb<br />
Die Firma Harzer Medien ist eine Gesellschaft <strong>mit</strong> beschränkter Haftung (GmbH) und wurde<br />
2001 <strong>mit</strong> Sitz in Goslar gegründet. Sie trägt die Firmierung “hcmedia” und wird im folgenden Verlauf<br />
auch in dieser Kurzform genannt.<br />
Als Internet-Agentur ist sie Mitglied im Bundesverband Digitale Wirtschaft (BVDW) e.V. und bietet<br />
Dienstleistungen in den Bereichen Web-Design und Online-Marketing überwiegend im Regionalbereich<br />
Harz, aber auch überregional an. Die angebotenen Dienstleistungen spiegeln einen Medien-Mix<br />
wieder und umfassen im Einzelnen:<br />
͘ Web- / Screen-Design<br />
• Konzeption von Corporate Design / Corporate Identity (CI)<br />
• Umsetzung in diversen Medien (Flyer, Plakate, Internetauftritten)<br />
• Erstellung von Bewegtbild / Animationen sowie Fotografien, Infografiken und Zeichnungen<br />
͘ Web-Entwicklung / -programmierung<br />
• Entwicklung praxisorientierter Anwendungen für Webprojekte unter der Verwendung von<br />
PHP, MySQL, Javascript, XML, und XSL.<br />
͘ Online-Marketing<br />
• Durchführen von Analysen, Bedarfser<strong>mit</strong>tlungen, Erstellung eines individuellen Konzeptes<br />
sowie dessen Umsetzung.<br />
͘ Redaktionssysteme<br />
• Erstellung und Verwaltung von Content Management Systemen (CMS) auf Basis von<br />
Typo3<br />
• Erstellung und Verwaltung Online-Shops<br />
͘ Suchmaschinenmarketing<br />
• Keyword-Advertising (Analyse, Recherche, Konkurrenzanalyse)<br />
• Einrichtung von AdWords-Konten sowie Erstellung und Durchführung einer AdWords-<br />
Kampagne<br />
• Erstellen und Testen von Direkteinsprungseiten (Landing Pages)<br />
• Optimierung von Anzeigentexten<br />
• Paid Listings<br />
͘ Suchmaschinenoptimierung (SEO)<br />
• Für Webauftritte / Content Management Systeme / Online-Shops<br />
• Individuelle Beratung und Consulting<br />
• On- und Off-Page-Optimierung<br />
• Erstellung / Optimierung auf das Unternehmensziel ausgerichteter Keywords<br />
͘ Online-Redaktion<br />
• Erstellung (Recherche und Texten) von Online-Inhalten<br />
• Überprüfung vorhandener Inhalte auf Zielgruppenorientierung, Stilsicherheit und Pointierung<br />
sowie auf Rechtschreibung, Grammatik, Verständlichkeit und Sprachlogik<br />
• Workshops und Seminare<br />
Hcmedia legt bei seinen Dienstleistungen den Schwerpunkt auf die Gewährleistung von Barrierefreiheit<br />
und Usability sowie die Verwendung von lizensfreien und suchmaschinenfreundlichen<br />
Anwendungen.<br />
Das Unternehmen besteht aus vier Mitarbeitern für die Bereiche Agenturleitung und Redaktion,<br />
7
KAPITEL A Vorstellung der Unternehmung<br />
Design, Programmierung sowie SEO und Marketing. Hinzu kommen Praktikanten und externe<br />
Dienstleister, die projektbezogen eingebunden werden.<br />
1.2 Hcmedia als Tochter<br />
Hcmedia wurde als Tochtergesellschaft der Unternehmensgruppe Medienhaus Krause gegründet<br />
und fungiert seitdem als deren interne Abteilung “Neue Medien”.<br />
Das Medienhaus Krause bietet regionale und überregionale Crossmedia-Dienstleistungen in den<br />
Bereichen Gestaltung, Druck, Webdesign, Logistik sowie Briefzustellung.<br />
Das Medienhaus umfasst / veröffentlicht / ist zuständig für<br />
͘ Tageszeitung “Goslarsche Zeitung”, Auflage: 80.000<br />
͘ Anzeigenblatt “extra am Mittwoch”<br />
͘ regionales Telefonbuch<br />
͘ Veranstaltungsmagazin “Trend”<br />
͘ Buchverlag<br />
͘ Druckerei “creaktiv”<br />
͘ Multimedia-Agentur “hcmedia”<br />
͘ Online-Nachrichten-Portal (www.goslarsche.de)<br />
͘ Citipost<br />
͘ Reise-Service “GZ-Leserreisen”<br />
͘ Konzertkasse<br />
͘ Buch- und Präsent-Shop<br />
Diese Kombination aus Tochterunternehmen, welche alle an einem Standort gebündelt und dadurch<br />
<strong>mit</strong>einander verzahnt sind, ermöglicht es, (potentiellen) Kunden Crossmedia-Angebote aus<br />
einer Hand zu bieten und gewährleistet einen schnellen und unkomplizierten Workflow.<br />
1.3 Tätigkeiten im Praktikum<br />
Der Praktikumszeitraum wurde nahezu vollständig zur Umsetzung des im folgenden Kapitel<br />
vorgestellten Projektes genutzt. Zur Vorbereitung dessen und einer ersten Einarbeitung in Typo3<br />
erfolgte zu Beginn des Praktikums die Übergabe eines Kundenauftrages, welcher die Umsetzung<br />
eines Layouts in Typo3 beinhaltete. Diese Umsetzung sollte zwar <strong>mit</strong> Hilfestellung, jedoch weitgehend<br />
selbstständig durchgeführt werden und auch die Kommunikation <strong>mit</strong> dem Kunden beinhalten.<br />
Parallel wurden in regelmäßigen Abständen Aufgaben übertragen, welche meist die Bearbeitung<br />
vorhandener PHP-Skripte bedeuteten. Es handelte sich um bei Kundenprojekten benutzte Skripte,<br />
welche aufgrund von Änderungswünschen seitens der Kunden den neuen Anforderungen gerecht<br />
werden sollten. Beispielsweise sei hier die Anpassung einer Volltextsuche auf den in russischer<br />
Sprache vorhandenen Teil einer Website genannt, bei der die Schwierigkeit in der Kombination der<br />
verschiedenen Zeichendarstellungen bestand.<br />
Es wurden auch Skripte neu entwickelt, wie z.B. eine Kalenderfunktion <strong>mit</strong> angehängter MySQL-<br />
Datenbank, in der die zu dem jeweiligen Datum relevanten Einträge gespeichert wurden.<br />
8
B AUFGABENSTELLUNG<br />
DES PROJEKTES<br />
Inhalt des Kapitels:<br />
Überblick über die konkrete Aufgabenstellung<br />
seitens des Praktikumsbetriebes<br />
hinsichtlich des Projektes. Es<br />
wird der bisherige Ist-Zusand sowie<br />
die Anforderungen an den neu zu entwickelnden<br />
Soll-Zustand vorgestellt.<br />
9
KAPITEL B Aufgabenstellung des Projektes<br />
2.1 Beschreibung Ist-Zustand<br />
Im Medienhaus Krause existiert ein Intranet, welches für interne Verwaltungsangelegenheiten<br />
genutzt wird. Es dient als Plattform zur bereits angesprochenen Verzahnung der Tochterunternehmen<br />
und stellt da<strong>mit</strong> einen Teil des übergreifenden Workflow sicher.<br />
Das vorhandene Intranet ist<br />
ein eigenständiges, selbst<br />
entwickeltes System auf Basis<br />
von PHP und MySQL-Datenbanken.<br />
Diesem System<br />
wurden in den vergangenen<br />
Jahren aufgrund hinzukommender<br />
Anforderungen in<br />
unregelmäßigen Abständen<br />
neue Module / Funktionen<br />
hinzugefügt.<br />
Zum Zeitpunkt des Praktikums<br />
haben sich erneut<br />
neue Anforderungen an das<br />
Intranet ergeben.<br />
Die Geschäftsführung wünschte die Einführung bzw. Umstellung auf ein neues System, welches<br />
den aktuellen Stand des Funktionsbedarfs ganzheitlich abbildet. Mit der Umsetzung wurde hausintern<br />
hcmedia beuftragt.<br />
2.2 Anforderungen an das neue System / Soll-Zustand<br />
Abb. 1: Screenshot bisheriges Intranetportal<br />
Das Intranet stellt im Kern eine News-Plattform dar, ergänzt um einige hausspezifische Funktionen.<br />
Da es sich jedoch zum Großteil um redaktionelle Arbeiten handelt, sollte eine Lösung unter<br />
Nutzung von Typo3 eingeführt werden. Dabei waren folgende Vorgaben zu erfüllen:<br />
͘ Bereitstellung eines allgemeinen, öffentlichen Bereiches<br />
͘ Bereitstellung eines allgemeinen, öffentlichen Bereiches<br />
͘ Bereitstellung abteilungsspezifischer Bereiche für Verlag, Redaktion, Anzeigenabteilung,<br />
Verwaltung und Berufsgenossenschaft. Die jeweilige Startseite (1. Ebene) soll öffentlich<br />
zugänglich, folgende Ebenen nur nach Login <strong>mit</strong> entsprechenden Account erreichbar sein.<br />
Nach erfolgtem Login soll eine automatische Weiterleitung auf die erste Subebene erfolgen<br />
͘ Einrichtung einer Benutzer- / Zugangssteuerung für Front- und Backend sowie der entprech<br />
enden Benutzer- und Administratoren-Accounts<br />
͘ Bereitstellung einer Suchfunktion über alle Kategorien bzw. Bereiche<br />
͘ Generierung automatischer E-Mails an einen Haus-Verteiler bei neuem Eintrag im öffentli<br />
chen Teil (Newsletter-Funktion)<br />
͘ Bereitstellung eines Abstimmungs- / Umfragemoduls (Poll)<br />
͘ Ermöglichung von Multi-Datei-Uploads zu jedem Eintrag (Grafik, PDF, Excel- oder Worddoku<br />
ment)<br />
͘ Übernahme der vorhandenen Telefonliste, Verknüpfung dieser <strong>mit</strong> mnoch zu erstellenden<br />
Mitarbeiterprofilen<br />
͘ Einführung von Ablauffristen für Einträge / Archiv-Funktion, parallel Li<strong>mit</strong>ierung der an<br />
10
KAPITEL B Aufgabenstellung des Projektes<br />
gezeigten Einträge pro Seite auf zehn Artikel<br />
͘ Bereitstellung eines Newsticker für dringliche Einträge<br />
͘ Bereitstellung einer Bildergallerie-Funktion<br />
͘ Bereitstellung eines optisch abgegerenzten Bereiches für Langzeitthemen<br />
͘ Einführung einer Kalender-Funktion<br />
͘ Generierung von PDF zur Ausgabe der Seiten<br />
Die Fertigstellung umfasste die Umsetzung der o.a. Vorgaben in Typo3 sowie die Übernahme bereits<br />
im bisherigen System vorhandener Daten / Einträge (3 Monate rückwirkend).<br />
Gestellt wurde ein <strong>mit</strong> Windows XP vorinstallierter PC als künftiger Server für das Intranet, darüber<br />
hinaus ggf. notwendige Vorarbeiten an diesem waren ebenfalls Teil der Aufgabe.<br />
11
C<br />
EINFÜHRUNG IN<br />
TYPO3<br />
Inhalt des Kapitels:<br />
Es folgt eine kurze Einführung in den Aufbau<br />
und die Funktionsweise von Typo3.<br />
12
KAPITEL C Einführung in Typo3<br />
3.1 Was ist eigentlich Typo3?<br />
Typo3 ist ein freies, auf mehrsprachigkeit ausgelegtes Content Management und Redaktionssstem<br />
für Websites, welches auf der Verwendung der Skriptsprache PHP und einer Datenbankanbindung<br />
( MySQL, PostgreSQL oder Oracle) basiert. Zusammen <strong>mit</strong> Drupal und Joomla! gehört es<br />
zu den bekanntesten Content-Management-Systemen aus dem Bereich der freien Software.<br />
Nach eigenen Angaben schätzen die Entwickler, dass Typo3 weltweit mehr als 300.000 Mal eingesetzt<br />
wird 1 .<br />
Für Typo3 ist kein Support durch die Entwickler erhältlich, dafür aber bei der Anwendergemeinschaft.<br />
Eben diese Gemeinde trägt auch zum Funktionsumfang von Typo3 bei. Die Mächtigkeit<br />
von Typo3 erklärt sich durch die einfache Integration von Erweiterungen, sog. Extensions, welche<br />
großteils von der Community entwickelt werden. Der Funktionsumfang von Typo3 kann durch sie<br />
beliebig erweitert werden. Die Extensions stehen nach der Installation und ggf. Konfiguration, abhängig<br />
von der Komplexität, sofort im Live-Betrieb zur Verfügung und ermöglichen die Integration<br />
neuer Inhaltstypen durch die Redakteure. So können beispielsweise auf Ajax basierende Suchfunktionen,<br />
fertige Shopsysteme, Gallerien, Umfrage-Tools, News- und Archivierungssysteme und<br />
andere, häufig auf Webseiten anzutreffende Applikationen ohne eigenen Programmieraufwand<br />
eingebunden werden.<br />
Typo3 wird auf einem Webserver<br />
installiert und <strong>mit</strong><br />
einem Webbrowser benutzt.<br />
Die Nutzung gliedert sich in<br />
drei Bereiche: Die Erstellung<br />
des Website-Designs über<br />
eine Formatvorlage (Template),<br />
die Konfiguration von<br />
Typo3 <strong>mit</strong>tels der internen<br />
Konfigurationssprache Typo-<br />
Script und die Eingabe des<br />
Website-Inhalts.<br />
Typo3 unterteilt sich ferner<br />
in Backend und Frontend.<br />
Während das Frontend<br />
die Website nach aussen<br />
darstellt, wird im Backend<br />
die Website verwaltet. Hier<br />
können durch Anwender<br />
redaktionelle Arbeiten erle-<br />
Abb. 2: Eingabemasken in Typo3<br />
digt werden (und werden<br />
da<strong>mit</strong> im Rahmen von Typo3 auch als Redakteure bezeichnet), ohne über HTML-Kenntnisse zu verfügen.<br />
Stattdessen werden die Inhalte über Eingabemasken erfasst.<br />
Die Inhalte werden dabei in einer relationalen Datenbank gespeichert und stehen unabhängig vom<br />
verwendeten Template zur Verfügung. Dadurch kann das Erscheinungsbild einer Internetpräsenz<br />
ohne Berührungspunkte zum Inhalt vollständig geändert werden. Hinzu kommt ein integriertes<br />
Caching-System, welches Ergebnisse häufiger Datenbankaufrufe zwischenspeichert und da<strong>mit</strong> die<br />
Ausgabe der Website beschleunigt.<br />
1 vgl. O.V. (07.09.2009) Internet: http://www.<strong>typo3</strong>.com/Facts_and_Figures.factsandfigures.0.html<br />
13
D<br />
VORBEREITUNG DES<br />
SERVER<br />
Inhalt des Kapitels:<br />
Beschreibung der vorbereitenden Arbeiten:<br />
Einrichtung und Konfiguration<br />
des S er vers, der Datenbank , des<br />
E-Mail-Clients und -Servers, ImageMagick<br />
sowie des FTP-Dienstes.<br />
14
KAPITEL D Vorbereitung des Server<br />
4.1 Installation und Konfiguration des Apache Server<br />
Benötigt wurde ein lokal betriebener Webserver, die Wahl fiel hier auf einen Apache-Server aus<br />
dem XAMPP-Paket des Apache Friends-Projektes 1 , da dieses neben dem Webserver auch die weiteren<br />
für das Projekt benötigten Komponenten bereits enthält und unter der GNU General Public<br />
License (GPL) 2 freigegeben ist.<br />
Verwendet wurde das XAMPP-Installationspaket Version 1.7.0 für 32-Bit Windows-Systeme <strong>mit</strong><br />
folgenden Komponenten:<br />
͘ Apache Webserver Version 2.2.11<br />
͘ PHP Version 5.2.8<br />
͘ MySQL-Client Version 5.1.30<br />
͘ phpMyAdmin Version 3.1.1<br />
͘ MercuryMail Version 4.5<br />
͘ FileZilla FTP-Client Version 0.9.29.<br />
Um die geforderte E-Mail- und PDF-Funktionalität zu gewährleisten, mussten einige Einstellungen<br />
des Apache Servers hinsichtlich SMTP-Einstellungen, Speichergrößen sowie Laufzeitverhalten angepasst<br />
werden. Diese Änderungen finden Sie im � Anhang.<br />
4.2 Konfiguration der MySQL-Datenbank<br />
MySQL benötigt bei Installation <strong>mit</strong>tels XAMPP keine weitere Konfiguration. Es war jedoch die<br />
Anlage einer neuen leeren Datenbank für Typo3 erforderlich, für das Projekt wird eine Datenbank<br />
namens “<strong>typo3</strong>intranet” <strong>mit</strong> der Kollation utf8_unicode_ci angelegt, also unter Verwendung des<br />
allgemeinen UTF8-Zeichensatzes. Zusammen <strong>mit</strong> der später folgenden Einstellung von Typo3 auf<br />
die Nutzung von UTF8 verhindert dies Probleme bei der Speicherung und Darstellung von (insbesondere<br />
deutschen) Sonderzeichen.<br />
4.3 Konfiguration von MercuryMail<br />
Die Realisierung einer Newsletter-Funktion in Typo3 erfordert die Kommunikation zwischen<br />
Typo3 und dem Ihm übergeordneten Webserver. Typo3 nutzt die die mail() Funktion von PHP<br />
und erreicht so den Webserver, welcher die E-Mail per SMTP weiterleitet. Da in diesem Projekt ein<br />
lokaler Server verwendet wird, müssen ein SMTP- Server zum Empfang der Nachricht von Typo3,<br />
ein SMTP-Client zum weiteren Versand an den Provider sowie ein Relais zum Verbinden dieser beiden<br />
Module eingerichtet werden.<br />
Eine entsprechende detailierte Konfiguration der MercuryMail-Module finden Sie im � Anhang.<br />
Typo3 bietet die Möglichkeit der Überprüfung der korrekten Konfiguration aller für die E-Mail-<br />
Funktionalität benötigten Anwendungen durch den Versand einer Testmail <strong>mit</strong> der E-Mail-Adresse<br />
mail@localhost. Ein entsprechender Benutzer wurde unter MercuryMail eingerichtet und der Test<br />
erfolgreich durchgeführt.<br />
1 vgl. O.V. (07.09.2009) Internet: www.apachefriends.org<br />
2 vgl. O.V. (07.09.2009) Internet: www.gnu.org/licenses<br />
15
KAPITEL D Vorbereitung des Server<br />
4.4 Konfiguration von FileZilla FTP<br />
Der in XAMPP enthaltenen FTP-Dienst FileZilla wird in diesem Projekt lediglich durch hcmedia<br />
zur Wartung und Pflege des Intranet genutzt. Durch die Verwendung des FTP zusätzlich zur<br />
Typo3-internen Dateiverwaltung ist der vollständige Zugriff auf alle relevanten Dateien von außen<br />
möglich.<br />
In diesem Fall musste die Zugangsberechtigung für den Standard-Benutzer anonymous um die von<br />
Typo3 verwendeten Verzeichnisse erweitert werden.<br />
4.5 Installation von ImageMagick<br />
PHP, auf welchem Typo3 aufbaut, benötigt die Programmbibilotheken GD Library (GDLib) und<br />
ImageMagick zur dynamischen Erzeugung und Manipulation von Grafiken. Während GD in der Version<br />
2 bereits in PHP5 enthalten ist, musste ImageMagick zusätzlich installiert werden 3 .<br />
ImageMagick ist als statische Version für Windows 32- und 64-Bit-Systeme lizensfrei erhältlich und<br />
muss in dieser Version lediglich installiert werden, eine weitere Konfiguration ist nicht notwendig.<br />
In diesem Projekt wurde die statische Installationsversion 6.5.4-6 für 32-Bit Windows-Systeme <strong>mit</strong><br />
Unterstützung von Grafiken bis 8 Bit Farbtiefe verwendet.<br />
3 vgl. O.V. (07.09.2009) Internet: www.imagemagick.org<br />
16
E<br />
AUFSETZEN VON<br />
TYPO3<br />
Inhalt des Kapitels:<br />
Beschreibung der notwendigen Schritte<br />
von der I nstallation von Typo3 über den<br />
Template -Aufbau zu dem Anlegen von<br />
Benutzern und der Rechtesteuerung.<br />
17
KAPITEL E Aufsetzen von Typo3<br />
5.1 Installation und Konfiguration von Typo3<br />
Nach der Installation von Typo3 und einer Dummy-Webseite, welche beide lizensfrei zum Download<br />
angeboten werden 1 , folgten grundlegende Einstellungen im Installationstool von Typo3.<br />
Benötigt wurden Angaben zur Datenbankanbindung, Administrator-Passwörtern, Pfadangaben zu<br />
den Grafik-Bibliotheken GDLib und ImageMagick sowie Einstellungen zum Zeichensatz und dem<br />
SMTP-Server. Weitere Einstellungsmöglichkeiten sind im Rahmen dieses Projektes nicht vorgenommen<br />
worden.<br />
5.2 Aufbau eines Template<br />
Typo3 benutzt zur Generierung von Seiten die im Backend (durch einen Redakteur) eingegebenen<br />
und in einer Datenbank hinterlegten Inhalte und einen Parser, welcher die Inhalte in einem<br />
Template an entsprechenden <strong>mit</strong> Markern (gekennzeichnet <strong>mit</strong> “###”) versehenen Stellen einfügt.<br />
Zur Realisierung der Aufgabenstellung wurde folgender Aufbau des Templates modelliert und<br />
mgesetzt:<br />
Nach diesem Modell wurde eine Template-Datei erstellt und die entsprechenden Marker eingefügt.<br />
Das Template sowie das zugehörige Typoscript-Setup finden Sie im � Anhang. Anschließend erfolgte<br />
der Aufbau im Typo3-Backend. Hier wurden die auf der Webseite darzustellende Seitenstruktur<br />
angelegt.<br />
1 vgl. O.V. (07.09.2009) Internet: www.<strong>typo3</strong>.org<br />
Abb. 3: Grafische Darstellung des verwendeten Template<br />
18
KAPITEL E Aufsetzen von Typo3<br />
5.3 Anlegen der Benutzer und Benutzergruppen<br />
Im Frontend ist der Großteil der Inhalte durch jeden Nutzer einsehbar. Dazu zählen die Startseite<br />
<strong>mit</strong> den aktuellen Neuigkeiten, der Newsticker, der Bereich Nützliches und die Infobox, in denen<br />
sich u.a. eine Telefonliste, Betriebsratsvereinbarungen und andere für den Tagesbetrieb relevanten<br />
und hilfreichen Informationen befinden, sowie die Kalender- und die Suchfunktion.<br />
Hinzu kommen Bereiche, welche nur für die jeweiligen Abteilungen nach dem Anmelden <strong>mit</strong><br />
Benutzername und Kennwort zugänglich sind. Für die Bereiche wurde je ein Benutzeraccount angelegt,<br />
der durch alle Mitarbeiter der jeweiligen Abteilung genutzt werden kann.<br />
Zur Benutzung des Backends durch die Redakteure müssen ebenfalls Benutzer-Accounts in Typo3<br />
angelegt werden. Dies dient in erster Linie der Sicherheit des Systems, da das Backend über den<br />
Webbrowser erreichbar ist, des Weiteren ermöglicht es aber auch die Vergabe verschiedener Zugriffsrechte<br />
und den Aufbau einer Rechtehierarchie. Im durchgeführten Projekt wurden die Benutzer<br />
und ihre entsprechenden Gruppen auf Basis der real existierenden Zuständigkeiten angelegt.<br />
Es existiert ein <strong>mit</strong> Vollzugriff versehender Administrator, welche die allgemeine Wartung des Systems<br />
übernimmt. Ihm sind als einzigem einige Funktionen vorbehalten, beispielsweise das Löschen<br />
der Hauptpunkte der Navigation, die Benutzersteuerung, der Zugriff auf das Template und das<br />
Typoscript-Setup und ähnliche kritische Bereiche, welche die Einwandfreie Funktion des Intranet<br />
gewährleisten. Diese Aufgabe wird künftig durch hcmedia versehen.<br />
Weiterhin wurde für jede im Intranet vertretene Abteilung (Redaktion, Anzeigen,....) ein Zugang<br />
eingerichtet. Diese Bereichsadministratoren sind innerhalb ihres Bereiches <strong>mit</strong> der Pflege des<br />
Content beauftragt und bemächtigt. Sie können Unterseiten und Inhalte bearbeiten, anlegen und<br />
Löschen.<br />
Hinzu kommt ein Administrator für den öffentlichen Bereich, der nach demselben Grundsatz wie<br />
die anderen Bereichsadministratoren angelegt wurde. Er ist für die Pflege der allgemein zugänglichen<br />
und sichtbaren Bereich des Intranet verantwortlich.<br />
Für allen o.g. Nutzer wurde eine entsprechende Benutzergruppe angelegt und eine Zuordnung<br />
druchgeführt. In den Benutzergruppen waren die nachfolgenden Einstellungen vorzunehmen:<br />
5.4 Festlegen der Zugriffsrechte<br />
Die Umsetztung der im vorigen Abschnitt beschrieben Zuständigkeiten erfolgte über die Vergabe<br />
von Rechten an die unterschiedlichen Benutzergruppen.<br />
Hierzu muss im System für jede Gruppe festgelegt werden, welche Module für sie sichtbar und erreichbar<br />
sind. Paralell müssen Zugriffe auf die Verzeichnisstruktur eingestellt werden (so genannte<br />
Filemounts), dabei wurde allen Benutzern das Verzeichnis “user_uploads” zugänglich gemacht.<br />
Weiterhin müssen für die einzelnen im System hinterlegten Seiten die Rechte zum Lesen, Schreiben<br />
und Löschen dieser angegeben werden.<br />
Eine Übersicht über die Typo3-Module und die im Projekt vorgenommene Rechtevergabe befindet<br />
sich Sie im � Anhang.<br />
19
F<br />
ERWEITERUNG VON<br />
TYPO3: EXTENSIONS<br />
Inhalt des Kapitels:<br />
Vorstellung der im Projektverlauf eingeundenen<br />
Erweiterungen für Tyop3.<br />
20
KAPITEL F Erweiterung von Typo3: Extensions<br />
Die Nachfolgend aufgeführten Extensions wurden während des Projektverlaufes nach und nach<br />
importiert und im Typoscript-Setup konfiguriert. Sie werden an dieser Stelle lediglich <strong>mit</strong> einer<br />
kurzen Beschreibung Ihrer Funktion und Ihrer Verwendung im Projekt dargestellt, die jeweils ausführlicheren<br />
Informationen und Dokumentationen entnehmen Sie bitte dem TER 1 .<br />
6.1 Backend<br />
Extension Kickstarter (“kickstarter”, 0.4.0)<br />
Ermöglicht die Erstellung eigener Extensions. Wurde im Projekt verwendet um das Modul “Hilfe” um<br />
einen selbst erstellten Eintrag “Handbuch” zu ergänzen. Mit diesem kann der Benutzer eine kurze<br />
Referenz zum Aufbau des Intranet und der Pflege von Inhalten als PDF-Datei betrachten.<br />
6.2 Backend Module<br />
Direct Mail (“direct_mail”, 2.6.3)<br />
Ein Newsletter-System. Wird verwendet um intern E-Mails an einen Hausverteiler zu versenden und<br />
so auf neue Einträge im Intrranet hinzuweisen.<br />
UTF8 Site Converter (“convert2utf8”, 1.0.6)<br />
Ermöglicht die Konvertierung von Seiten (bzw. die entsprechenden Inhalte in der Datenbank) in<br />
UTF-8. Die Ausführung erfolgt über einen Befehl im Kontextmenü.<br />
6.3 Frontend<br />
newloginbox redirect (“ sv_login_redirect”, 1.0.3)<br />
Ermöglicht es, Benutzer nach erfolgtem Login automatisch weiterzuleiten. Die Zielseite kann individuell<br />
für jeden Benutzer oder für Benutzergruppen eingestellt werden. Wird im Projekt genutzt<br />
um die Benutzer der einzelnen Abteilungen nach dem Einloggen auf die jeweils erste Unterseite zu<br />
leiten.<br />
Page PHP Content (“page_php_<strong>content</strong>”, 1.0.1)<br />
Erlaubt die Benutzung von PHP als Inhaltselement. Wird benötigt um die Typo3-extern angelegten<br />
PHP-Skripte (datetime.php., infoboxleft.php, <strong>mit</strong>arbeiterprofil.php, sendtodaysnews.php, telefonliste.php)<br />
einzubinden.<br />
wt_doorman (“wt_doorman”, 1.1.2)<br />
Tool zur Erhöhung der Sicherheit, Filtert und bereinigt GET- und POST-Parameter (piVars) zur<br />
Verhinderung von XSS (Cross Site Scripting) und SQL Injections. Im Rahmen eines Intranet nicht<br />
zwingend notwendig, jedoch Voraussetzung für andere Extensions.<br />
1 vgl. O.V. (07.09.2009) Internet: www.<strong>typo3</strong>.org/extensions/repository/<br />
21
KAPITEL F Erweiterung von Typo3: Extensions<br />
6.4 Frontend Plugins<br />
Advanced Banner Management (“macina_banners”, 1.5.0)<br />
Erlaubt die Verwendung und Steuerung von unterschiedlichen Bannern auf verschiedenen Seiten.<br />
Indexed Search Engine (“indexed_search”, 2.11.1)<br />
Ermöglicht eine indizierte Suche.<br />
Indexed Search Engine Templates (“ch_is_templates”, 1.1.14)<br />
Ein Template für die indizierte Suche, welches weitgehend konfigurierbar ist.<br />
Mooslide (“mooslide”, 0.2.2)<br />
Blendet auswählbare Inhalten (Seiten, Spalten, Datensätze etc.) in Form eines Newsticker ein, wobei<br />
umfrangreiche Einstellungen hinsichtlich der Erscheinung möglich sind.<br />
New front end login box (“newloginbox “, 3.1.1)<br />
Eine Alternative zum in Typo3 enthaltenen Login-Formular. Bietet mehr Funktionalität wie<br />
beispielsweise einstellbare Erfolgs-/Fehlermeldungen, Überprüfung auf aktivierte Cookies und<br />
Hilfestellung für den Benutzer im Falle eines Passwortverlusts<br />
News (“tt_news”, 2.5.2)<br />
Stellt ein Newssystem bereit und ermöglicht u.a. die Archivierung von Artikeln. Wurde zur Umsetzung<br />
der Seite “Aktuelles” verwendet.<br />
Quickpoll (“quickpoll”, 1.0.0)<br />
Tool zur Erstellung von Umfragen und Speicherung der erhobenen Daten. Keine konkrete Verwendung<br />
im Projekt, wurde integriert um die Möglichkeit für Redakteure offen zu halten.<br />
SimpleSearchBox (“sl_simplesearchbox”, 0.1.3)<br />
Einfach konfigurierbare und flexible Suchmaske für die indizierte Suche.<br />
wt_gallery (“wt_gallery”, 3.1.1)<br />
Tool zur Erstellung von Bildergallerien. Hier sind die Darstellung von Vorschau- und eigentlichem<br />
Bild auch auf unterschiedlichen Seiten / Spalten möglich. Keine konkrete Verwendung im Projekt,<br />
wurde integriert um die Möglichkeit für Redakteure offen zu halten.<br />
Yet Another Calendar (“ke_yac”, 1.1.1)<br />
Stellt Kalender in verschiedenen Ansichten (Tag, Woche, Monat, Jahr) bereit. Die Ansichten können<br />
<strong>mit</strong>einander verbunden werden. Wird verwendet um einen Kalender (Monatsansicht) darzustellen<br />
und so auf Termine hinzuweisen. Die einzelnen Termine sind verlinkt und können als Listenansicht<br />
aufgerufen werden.<br />
22
G SCHLUSS<br />
Inhalt des Kapitels:<br />
Resumé und Fazit sowie ein persönlicher<br />
Erfahrungsbericht.<br />
23
KAPITEL G Schluss<br />
7.1 Fazit zum durchgeführten Projekt<br />
Das neue Typo3-basierte Intranet des Medienhaus Krause konnte fristgerecht und unter Erfüllung<br />
sämtlicher gestellter Anforderungen umgesetzt werden. Einen Screenshot des neuen Intranet<br />
finden Sie im � Anhang.<br />
Die nun folgenden, notwendigerweise durchzuführenden Schritte sind die Feinabstimmung <strong>mit</strong><br />
den künftigen Redakteuren und deren Einweisung in das neue System, gefolgt von der Umstellung<br />
auf dieses. Für diese Schritte sind die letzten zwei Wochen des Praktikumszeitraumes vorgesehen<br />
und werden in diesem Bericht nicht berücksichtigt.<br />
7.2 Persönliche Erfahrungen<br />
Die eigenständige Einarbeitung in das CMS Typo3 ist eine Herausforderung. Insbesondere der<br />
Umgang <strong>mit</strong> Typoscript erfordert einen hohen Lern- und Zeitaufwand, da nahezu jedes Element<br />
und jede Erweiterung über dieses konfiguriert werden. Betrachtet man dagegen die einfach gestaltete<br />
Pflege von Inhalten, die auch Redakteuren ohne besondere Kenntnisse ermöglicht wird, ist<br />
die Einführung von Typo3 für Webseiten <strong>mit</strong> hohem redaktionellen Anteil meiner Meinung nach<br />
aus genau diesem Grund sinnvoll.<br />
Ich betrachte die im Projekt gemachten Erfahrungen als sehr gewinnbringend. Speziell Typo3, aber<br />
auch andere Content Management Systeme sind weit verbreitet und werden auch künftig eingesetzt<br />
werden. Für meine berufliche Zukunft könnte es meiner Einschätzung nach durchaus vorteilhaft<br />
sein, bereits Erfahrungen auf diesem Gebiet gesammelt zu haben.<br />
Doch auch die anderen mir übertragenen Aufgaben waren sehr interessant. Insbesondere was die<br />
Komminikation und den Umgang <strong>mit</strong> Kunden betrifft, konnte ich aus dem Praktikum viel <strong>mit</strong>nehmen.<br />
Das Kennenlernen des alltäglichen Betriebs stellt ebenfalls wertvolle Erfahrung war, hier hat<br />
mich das professionelle und gleichzeitig höchst angenehme Arbeitsklima bei hcmedia wirklich<br />
beeindruckt. Meinen Dank an das Team.<br />
24
ANLAGENVERZEICHNIS<br />
Anlagenverzeichnis<br />
I Anpassungen des Apache-Servers<br />
II.1 Konfiguration des MercuryMail Core-Moduls<br />
II.2 Konfiguration des MercuryMail SMTP Server-Moduls<br />
II.3 Konfiguration des MercuryMail SMTP Relay Client-Moduls<br />
II.4 Konfiguration des MercuryMail End-to-end SMTP Client-Moduls<br />
III.1 Basis-Template für Typo3<br />
III.2 Basis-Typoscript-Konstanten<br />
III.3 Basis-Typoscript-Setup<br />
IV.1 Die Module im Typo3-Backend<br />
IV.2 Rechtevergabe<br />
V.1 Screenshot neues Intranet<br />
VI.1 Quellcode der eingebundenden Datei datetime.php<br />
VI.2 Quellcode der eingebundenden Datei infoboxleft.php<br />
VI.3 Quellcode der eingebundenden Datei <strong>mit</strong>arbeiterprofil.php<br />
VI.4 Quellcode der eingebundenden Datei sendtodaysnews.php<br />
VI.5 Quellcode der eingebundenden Datei telefonliste.php<br />
26<br />
27<br />
28<br />
29<br />
29<br />
30<br />
32<br />
32<br />
40<br />
41<br />
42<br />
43<br />
44<br />
45<br />
46<br />
47<br />
25
ANLAGEN<br />
I Anpassungen des Apache-Servers<br />
xampp/php/php.ini<br />
xampp/apache/bin/php.ini<br />
[mail function]<br />
; For Win32 only.<br />
SMTP = localhost<br />
smtp_port = 25<br />
;For Win32 only.<br />
sendmail_from = intranetmailer@hcmedia.de<br />
xampp/php/php.ini<br />
xampp/php/php5.ini<br />
xampp/apache/bin/php.ini<br />
max_execution_time = 60<br />
max_input_time = 120<br />
memory_li<strong>mit</strong> = 128M<br />
<strong>typo3</strong>/mod/tools/em/class.em_xmlhandler.php<br />
ini_set(“memory_li<strong>mit</strong>”, 512M);<br />
ini_set(“pcre.backtrack_li<strong>mit</strong>”, 1000000);<br />
xampp/htdocs/intranet/.htaccess<br />
### Begin: Rewrite stuff ###<br />
# Enable URL rewriting<br />
RewriteEngine On<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-l<br />
# Main URL rewriting.<br />
RewriteRule .* index.php [L]<br />
26
ANLAGEN<br />
II.1 Konfiguration des MercuryMail Core-Moduls<br />
Abb. 4: Konfiguration MercuryMail Core-Modul<br />
27
ANLAGEN<br />
II.2 Konfiguration des MercuryMail SMTP Server-Moduls<br />
Abb. 5: Konfiguration MercuryMail SMPT Server-Modul<br />
28
ANLAGEN<br />
II.3 Konfiguration des MercuryMail SMTP Relay Client-Moduls<br />
Abb. 6: Konfiguration MercuryMail SMPT RelayClient-Modul<br />
II.4 Konfiguration des MercuryMail End-to-end Client-Moduls<br />
Abb. 7: Konfiguration MercuryMail End-to-end Client-Modul<br />
29
ANLAGEN<br />
III.1 Basis-Template für Tyop3<br />
<br />
div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
MENÜ<br />
<br />
<br />
<br />
<br />
NÜTZLICHES<br />
<br />
SPECIALS<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
30
ANLAGEN<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
ANMELDUNG<br />
<br />
<br />
<br />
<br />
AKTUELLES<br />
<br />
<br />
<br />
<br />
KALENDER<br />
<br />
<br />
<br />
<br />
SUCHE<br />
<br />
<br />
<br />
<br />
PLATZHALTER<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
31
ANLAGEN<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
III.2 Basis-Typoscript-Konstanten<br />
#cat=plugin.sl_simplesearchbox/general/1; type=int+; label=<br />
searchResultsPid: The PID of the page with the indexed_searchresults<br />
plugin.sl_simplesearchbox {<br />
searchResultsPid = 63<br />
}<br />
RTE.default.proc {<br />
dontConvBRtoParagraph = 1<br />
allowTags = table, tbody, tr, th, td, h1, h2, h3, h4, h5, h6,<br />
div, p, br, span, ul, ol, li, re, blockquote, strong, em, b, i,<br />
u, sub, sup, strike, a, img, nobr, hr, tt, q, cite, abbr, acronym<br />
}<br />
III.3 Basis-Typoscript-Setup<br />
# entfernen des spacer.gif bzw. clear.gif<br />
tt_<strong>content</strong>.image.20.spaceBelowAbove = 0<br />
tt_<strong>content</strong>.header.stdWrap.space = 0|0<br />
tt_<strong>content</strong>.stdWrap.space = 0|0<br />
tt_<strong>content</strong>.stdWrap.spaceBefore = 0<br />
tt_<strong>content</strong>.stdWrap.spaceAfter = 0<br />
lib.stdheader.stdWrap.space = 0|0<br />
# div-container um die h1-Überschrift entfernen<br />
lib.stdheader.stdWrap.dataWrap ><br />
# clear.gif hinter der Überschrift entfernen<br />
tt_<strong>content</strong>.text.20.parseFunc.tags.typohead.stdWrap.space = 0|0<br />
32
ANLAGEN<br />
# Umbruch nach der Überschrift entfernen<br />
lib.stdheader.10.stdWrap.wrap = |<br />
tt_<strong>content</strong>.textpic.20.spaceBelowAbove = 0<br />
tt_<strong>content</strong>.image.20.spaceBelowAbove = 0<br />
tt_<strong>content</strong>.textpic.20.noStretchAndMarginCells = 1<br />
tt_<strong>content</strong>.image.20.noStretchAndMarginCells = 1<br />
############################################<br />
# Default PAGE object #<br />
############################################<br />
page = PAGE<br />
page.includeCSS {<br />
file1 = fileadmin/css/main.css<br />
}<br />
page.config.index_enable = 1<br />
config.simulateStaticDocuments = 1<br />
config.simulateStaticDocuments_noTypeIfNoTitle = 1<br />
page.shortcutIcon = fileadmin/gfx/favicon.ico<br />
config.sys_language_uid = 0<br />
config.language = de<br />
# für Windows-Server<br />
config.locale_all = german<br />
# für Unix-Server<br />
# config.locale_all = de_DE.UTF8<br />
############################################<br />
# tt_news #<br />
############################################<br />
plugin.tt_news {<br />
displaySingle {<br />
date_stdWrap.strftime= %A, %d. %B %Y<br />
time_stdWrap.strftime= %d.%m.%y %H:%M<br />
}<br />
displayLatest {<br />
date_stdWrap.strftime= %d.%m.%y<br />
time_stdWrap.strftime= %H:%M<br />
}<br />
displayList {<br />
date_stdWrap.strftime= %A, %d. %B %Y<br />
time_stdWrap.strftime= %d.%m.%y %H:%M<br />
}<br />
}<br />
plugin.tt_news {<br />
displayList {<br />
#HTML (Umrbüche, Links etc) in LIST-View erlauben<br />
subheader_stdWrap.stripHtml = 0<br />
subheader_stdWrap.crop ><br />
}<br />
}<br />
############################################<br />
# PDF Generator 2 #<br />
############################################<br />
33
ANLAGEN<br />
pdf_generator {<br />
stylesheet = fileadmin/css/main.css<br />
}<br />
############################################<br />
# Kalender #<br />
############################################<br />
#deactivate default stylesheet for “YET ANOTHER CALENDAR”<br />
plugin.tx_keyac_pi1._CSS_DEFAULT_STYLE ><br />
#include new stylesheet for yac<br />
page.includeCSS.yac = fileadmin/css/kalendar.css<br />
plugin.tx_keyac_pi1 {<br />
#MAIN<br />
mode =<br />
dataPids = 81<br />
templateFile = EXT:ke_yac/pi1/template.html<br />
useJS = 1<br />
#CALENDAR<br />
calendars = 1<br />
showMonthsNavigation = 0<br />
showHideCalendar = 0<br />
showLegend = 0<br />
showList = 0<br />
showWeekNumberRow = 0<br />
showDaysRow = 1<br />
linkToSingleView = 1<br />
#TOOLTIPS<br />
showTooltips = 0<br />
tooltipDuration = 3000<br />
#TEASERsinglePid =<br />
teaserHeader = Upcoming Events<br />
teaserLi<strong>mit</strong> = 5<br />
teaserLength = 50<br />
#DATEFORMAT<br />
strftimeFormatStringWithoutTime = %d.%m.%Y<br />
strftimeFormatStringWithTime = %d.%m.%Y %H:%M<br />
strftimeFormatTime = %H:%M<br />
#IMAGES<br />
backImagePath = EXT:ke_yac/pi1/images/back.gif<br />
nextImagePath = EXT:ke_yac/pi1/images/next.gif<br />
}<br />
############################################<br />
# Indexed Search #<br />
############################################<br />
plugin.tx_indexedsearch.show.advancedSearchLink = 0<br />
plugin.tx_indexedsearch.templateFile = EXT:ch_is_templates/modi<br />
fiedsearch.html<br />
############################################<br />
# Searchbox #<br />
############################################<br />
34
ANLAGEN<br />
plugin.tx_slsimplesearchbox_pi1 ><br />
plugin.tx_slsimplesearchbox_pi1 = COA<br />
plugin.tx_slsimplesearchbox_pi1 {<br />
10 = TEXT<br />
10.value = Bitte geben sie hier einen Suchbegriff ein:<br />
20 = TEXT<br />
20.typolink.parameter = {$plugin.sl_simplesearchbox.<br />
searchResultsPid}<br />
20.typolink.returnLast = url<br />
20.wrap = <br />
30 = TEXT<br />
30.value = <br />
50 = TEXT<br />
50.value = <br />
}<br />
plugin.tx_slsimplesearchbox_pi1.wrap = |<br />
plugin.tx_slsimplesearchbox_pi1._CSS_DEFAULT_STYLE (<br />
.tx_slsimplesearchbox form,<br />
.tx_slsimplesearchbox form fieldset,<br />
.tx_slsimplesearchbox form .sub<strong>mit</strong> {<br />
border: none;<br />
padding: 0;<br />
margin: 0;<br />
}<br />
.tx_slsimplesearchbox form {<br />
padding-top: 1em;<br />
}<br />
.tx_slsimplesearchbox form .sub<strong>mit</strong> {<br />
position: absolute;<br />
overflow: hidden;<br />
height: 0;<br />
}<br />
.tx_slsimplesearchbox form span {<br />
font-size: 0;<br />
line-height: 0;<br />
vertical-align: middle;<br />
background-position: top left;<br />
}<br />
.tx_slsimplesearchbox form span,<br />
.tx_slsimplesearchbox form span input {<br />
display: -moz-inline-box;<br />
display: inline-block;<br />
outline: none;<br />
color: #444;<br />
white-space: nowrap;<br />
background-color: transparent;<br />
background-image: url(“../<strong>typo3</strong>conf/ext/sl_simplesearchbox/res/search.gif”);<br />
background-repeat: no-repeat;<br />
height: 24px;<br />
border: none;<br />
35
ANLAGEN<br />
)<br />
}<br />
.tx_slsimplesearchbox form span input {<br />
line-height: 1em;<br />
font-size: 12px !important;<br />
background-position: top right;<br />
vertical-align: middle !important;<br />
padding: 7px 0 0 0;<br />
margin: 0 -24px 0 24px;<br />
}<br />
* html .tx_slsimplesearchbox form span input {<br />
/* IE stellt den negativen margin-right nicht da */<br />
position: relative;<br />
right: -24px;<br />
top: 0px;<br />
zoom: 1; /* F�r IE wichtig */<br />
}<br />
############################################<br />
# PAGE #<br />
############################################<br />
page.10 = TEMPLATE<br />
page.10 {<br />
template = FILE<br />
template.file = fileadmin/index.php<br />
workOnSubpart = DOCUMENT_BODY<br />
subparts.NUETZLICHES = TEXT<br />
subparts.NUETZLICHES < styles.<strong>content</strong>.getLeft<br />
# Nützliches als Standard für alle Seiten, soweit kein anderer<br />
Content<br />
subparts.NUETZLICHES.slide = -1<br />
subparts.CROSS = TEXT<br />
subparts.CROSS < styles.<strong>content</strong>.getRight<br />
# Cross als Standard für alle Seiten, soweit kein anderer Content<br />
subparts.CROSS.slide = -1<br />
# subparts.CONTENT = TEXT<br />
# subparts.CONTENT < styles.<strong>content</strong>.get<br />
subparts.CONTENT = COA<br />
subparts.CONTENT.20 = CONTENT<br />
subparts.CONTENT.20 < styles.<strong>content</strong>.get<br />
subparts.CONTENT.50 = IMAGE<br />
subparts.CONTENT.50.file = fileadmin/gfx/pdf_icon.png<br />
subparts.CONTENT.50.stdWrap.postUserFunc = tx_pdfgenerator2-<br />
>makePdfLink<br />
subparts.CONTENT.50.stdWrap.postUserFunc.target = _blank<br />
subparts.NEWSTICKER = TEXT<br />
subparts.NEWSTICKER < styles.<strong>content</strong>.getBorder<br />
# Newsticker als Standard für alle Seiten, soweit kein anderer<br />
Content<br />
subparts.NEWSTICKER.slide = -1<br />
subparts.SEARCHBOX ><br />
subparts.SEARCHBOX < plugin.tx_slsimplesearchbox_pi1<br />
subparts.KALENDER ><br />
36
ANLAGEN<br />
subparts.KALENDER < plugin.tx_keyac_pi1<br />
subparts.LOGINSCRIPT < plugin.tx_newloginbox_pi1<br />
############################################<br />
# Rootline #<br />
############################################<br />
subparts.ROOTLINE = HMENU<br />
subparts.ROOTLINE.special = rootline<br />
subparts.ROOTLINE.special.range = 1|-1<br />
subparts.ROOTLINE.1 = TMENU<br />
subparts.ROOTLINE.1 {<br />
wrap = INTRANET:&n<br />
bsp; |<br />
target = _top<br />
NO {<br />
linkWrap = |<br />
#vor dem erstem item kein “/” als Trennzeichen, sonst immer<br />
allWrap = |*| | / |*| |*|<br />
ATagBeforeWrap = 1<br />
}<br />
}<br />
############################################<br />
# Navigation #<br />
############################################<br />
subparts.NAVIGATION= HMENU<br />
subparts.NAVIGATION {<br />
1 = TMENU<br />
1.wrap = |<br />
1.expAll = 1<br />
1 {<br />
NO {<br />
wrapItemAndSub = |<br />
ATagParams = class=”naviMainLinkWithoutSubsInActive”<br />
}<br />
ACT = 1<br />
ACT {<br />
wrapItemAndSub = |<br />
ATagParams = class=”naviMainLinkWithoutSubsActive”<br />
}<br />
ACTIFSUB.ATagParams = class=”naviMainLinkWithSubsActive”<br />
noBlur = 1<br />
NO = 1<br />
ACTIFSUB = 1<br />
IFSUB = 1<br />
IFSUB < .NO<br />
IFSUB.ATagParams = class=”naviMainLinkWithSubsInActive”<br />
}<br />
2 = TMENU<br />
2.wrap = |<br />
37
ANLAGEN<br />
2 {<br />
NO {<br />
wrapItemAndSub = |<br />
ATagParams = class=”sub”<br />
}<br />
ACT = 1<br />
ACT {<br />
wrapItemAndSub = |<br />
ATagParams = class=”subon”<br />
}<br />
}<br />
}<br />
############################################<br />
# Navigation - Specials #<br />
############################################<br />
subparts.SPECIALS= HMENU<br />
subparts.SPECIALS.special = directory<br />
subparts.SPECIALS.special.value = 68<br />
subparts.SPECIALS {<br />
1 = TMENU<br />
1.wrap = |<br />
1 {<br />
NO {<br />
wrapItemAndSub = |<br />
ATagParams = class=”naviMainLinkWithoutSubsInActive”<br />
}<br />
ACT = 1<br />
ACT {<br />
wrapItemAndSub = |<br />
ATagParams = class=”naviMainLinkWithoutSubsActive”<br />
}<br />
ACTIFSUB.ATagParams = class=”naviMainLinkWithSubsActive”<br />
noBlur = 1<br />
NO = 1<br />
ACTIFSUB = 1<br />
IFSUB = 1<br />
IFSUB < .NO<br />
IFSUB.ATagParams = class=”naviMainLinkWithSubsInActive”<br />
}<br />
}<br />
############################################<br />
# Banner-Frame #<br />
############################################<br />
subparts.BANNERFRAME < plugin.tx_macinabanners_pi1<br />
subparts.BANNERFRAME.image.file.maxW = 10000<br />
subparts.BANNERFRAME {<br />
# show banners with this attribute, default options are:<br />
“top, left, bottom, right”, all Descriptions of Banner Categories<br />
can be used<br />
placement = top<br />
38
ANLAGEN<br />
#mode to show banners. Options are: all, random<br />
mode = all<br />
# list of page IDs where the banners should be taken from<br />
(comma seperated. i.e.: 1,5,7)<br />
pidList = 20<br />
# levels of recursion to search for banners<br />
recursive = 0<br />
# Li<strong>mit</strong> number of banners<br />
results_at_a_time = 99<br />
}<br />
marks.BANNERFRAME < subparts.BANNERFRAME<br />
}<br />
############################################<br />
# Datum im Subbanner #<br />
############################################<br />
subparts.DATETIME = PHP_SCRIPT_EXT<br />
subparts.DATETIME.file = fileadmin/includes/datetime.php<br />
############################################<br />
# Kasse/ Büromaterial/ Ansprechpartner BR #<br />
############################################<br />
subparts.INFOBOXLEFT = PHP_SCRIPT_EXT<br />
subparts.INFOBOXLEFT.file = fileadmin/includes/infoboxleft.php<br />
39
ANLAGEN<br />
IV.1 Die Module im Typo3-Backend<br />
Abb. 8: Module in Typo3<br />
40
ANLAGEN<br />
IV.2 Rechtevergabe<br />
Abb. 9: Rechtevergabe in Typo3<br />
41
ANLAGEN<br />
V.1 Screenshot neues Intranet<br />
Abb. 10: Screenshot neues Intranet<br />
42
ANLAGEN<br />
VI.1 Quellcoder der eingebundenen Datei datetime.php<br />
<br />
switch(date(“D”)) {<br />
case ‘Mon’: echo”Montag”; break;<br />
case ‘Tue’: echo”Dienstag”; break;<br />
case ‘Wed’: echo”Mittwoch”; break;<br />
case ‘Thu’: echo”Donnerstag”; break;<br />
case ‘Fri’: echo”Freitag”; break;<br />
case ‘Sat’: echo”Samstag”; break;<br />
case ‘Sun’: echo”Sonntag”; break;<br />
}<br />
echo”,”.date(“d”).”. “;<br />
switch(date(“m”)) {<br />
case ‘01’: echo”Januar”; break;<br />
case ‘02’: echo”Februar”; break;<br />
case ‘03’: echo”März”; break;<br />
case ‘04’: echo”April”; break;<br />
case ‘05’: echo”Mai”; break;<br />
case ‘06’: echo”Juni”; break;<br />
case ‘07’: echo”Juli”; break;<br />
case ‘08’: echo”August”; break;<br />
case ‘09’: echo”September”; break;<br />
case ‘10’: echo”Oktober”; break;<br />
case ‘11’: echo”November”; break;<br />
case ‘12’: echo”Dezember”; break;<br />
}<br />
echo” “.date(“Y”).””;<br />
43
ANLAGEN<br />
VI.2 Quellcoder der eingebundenen Datei infoboxleft.php<br />
ÖFFNUNGSZEITEN DER KASSE<br />
<br />
Dienstags:10.00 - 11.00 Uhr<br />
Donnerstags:14.00 - 15.00 Uhr<br />
<br />
BüROMATERIALAUSGABE<br />
<br />
Montag - Donnerstag<br />
09.30 - 10.30 Uhr<br />
<br />
ANSPRECHPARTNER BR<br />
<br />
240Frank<br />
Saigge(Vorsitzender)<br />
238Wolfgang Egerer-<br />
Genz(stellv. Vorsitzender)<br />
132Renate Ehlers<br />
123Nadine Grzeskowiak<br />
477Marion König<br />
326Marko Siegling<br />
413Mareike Thormann<br />
<br />
44
ANLAGEN<br />
VI.3 Quellcoder der eingebundenen Datei <strong>mit</strong>arbeiterprofil.php<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Durchwahl:<br />
<br />
<br />
<br />
E-Mail:<br />
<br />
<br />
<br />
Privat:<br />
<br />
<br />
<br />
Handy:<br />
<br />
<br />
45
ANLAGEN<br />
<br />
<br />
<br />
<br />
VI.4 Quellcoder der eingebundenen Datei sendtodaysnews.php<br />
<br />
<br />
<br />
46
ANLAGEN<br />
VI.5 Quellcoder der eingebundenen Datei telefonliste.php<br />
<br />
ANLAGEN<br />
<br />
Name<br />
”;<br />
if($sortby == “name” AND $direction ==<br />
“ASC”) {<br />
echo””;<br />
}<br />
else {<br />
echo””;<br />
}<br />
echo”<br />
<br />
”;<br />
if($sortby == “name” AND $direction ==<br />
“DESC”) {<br />
echo””;<br />
}<br />
else {<br />
echo””;<br />
}<br />
echo”<br />
<br />
<br />
Zusatz<br />
”;<br />
if($sortby == “zusatz” AND $direction<br />
== “ASC”) {<br />
echo””;<br />
}<br />
else {<br />
echo””;<br />
}<br />
echo”<br />
<br />
”;<br />
if($sortby == “zusatz” AND $direction<br />
== “DESC”) {<br />
echo””;<br />
}<br />
48
ANLAGEN<br />
else {<br />
echo””;<br />
}<br />
echo”<br />
<br />
<br />
<br />
Durchwahl<br />
<br />
<br />
E-Mail<br />
”;<br />
if($sortby == “email” AND $direction ==<br />
“ASC”) {<br />
echo””;<br />
}<br />
else {<br />
echo””;<br />
}<br />
echo”<br />
<br />
”;<br />
if($sortby == “email” AND $direction ==<br />
“DESC”) {<br />
echo””;<br />
}<br />
else {<br />
echo””;<br />
}<br />
echo”<br />
<br />
<br />
<br />
Privat<br />
”;<br />
if($sortby == “privat” AND $direction<br />
== “ASC”) {<br />
echo””;<br />
}<br />
else {<br />
echo””;<br />
}<br />
49
ANLAGEN<br />
echo”<br />
<br />
”;<br />
if($sortby == “privat” AND $direction<br />
== “DESC”) {<br />
echo””;<br />
}<br />
else {<br />
echo””;<br />
}<br />
echo”<br />
<br />
<br />
Handy<br />
”;<br />
if($sortby == “handy” AND $direction ==<br />
“ASC”) {<br />
echo””;<br />
}<br />
else {<br />
echo””;<br />
}<br />
echo”<br />
<br />
”;<br />
if($sortby == “handy” AND $direction ==<br />
“DESC”) {<br />
echo””;<br />
}<br />
else {<br />
echo””;<br />
}<br />
echo”<br />
<br />
<br />
<br />
“;<br />
$anfrage3 = “SELECT * FROM telefonliste WHERE `rubrik` LIKE<br />
‘”.$rubrik2.”’ ORDER BY `”.$sortby.”` “.$direction;<br />
$ergebnis3 = mysql_db_query(“intranet”,$anfrage3,$db);<br />
$anzahl3 = mysql_num_rows($ergebnis3);<br />
for($k=0; $k
ANLAGEN<br />
“-”; }<br />
“-;”; }<br />
$id = $zeile3[0];<br />
$rubrik = $zeile3[1]; if($rubrik == “”) { $rubrik =<br />
$rubrik = utf8_encode($rubrik);<br />
$name = $zeile3[2]; if($name == “”) { $name = “-”; }<br />
$name = utf8_encode($name);<br />
$zusatz = $zeile3[3]; if($zusatz == “”) { $zusatz =<br />
$zusatz = utf8_encode($zusatz);<br />
$mail = $zeile3[4]; if($mail == “”) { $mail = “-”; }<br />
if($mail != “-”) { $mail = ereg_replace(“@”,”@”,$mail); $mail = $mail.””; }<br />
$tel = $zeile3[5]; if($tel == “”) { $tel = “-”; }<br />
$priv = $zeile3[6]; if($priv == “”) { $priv = “-”; }<br />
$handy = $zeile3[7]; if($handy == “” OR $handy ==<br />
“zurzeit kein Eintrag!”) { $handy = “-”; }<br />
echo”<br />
<br />
“;<br />
echo”<br />
”.$name.””.$zusatz.”<br />
”.$tel.”<br />
”.$mail.”<br />
”.$priv.””.$handy.”<br />
<br />
“;<br />
}<br />
echo”<br />
”;<br />
}<br />
?><br />
<br />
51
QUELLEN- / LITERATURVERZEICHNIS<br />
Quellen - /<br />
Literaturverzeichnis<br />
Altmann, Werner, Fritz, René, Hinderink, Daniel: Typo3, Enterprise Content Management, 2. aktualisierte<br />
und überarbeitete Auflage, Krugzell 2006<br />
Krause, Jörg: PHP 4 Grundlagen und Profiwissen, Webserver-Programmierung unter Windows und<br />
Linux, 2. überarbeitete Auflage, München 2001<br />
Meyer, Eric: Eric Meyer´s CSS, dt. Übersetzung, München 2005<br />
Götz, Veruschka: Raster für das Webdesign, dt. Erstausgabe, Reinbek bei Hamburg 2002<br />
Robbins, Jennifer: Webdesign <strong>mit</strong> X(HTML) und CSS, 1. dt. Ausgabe (Übersetzung), Köln 2008<br />
Mintert, Stefan (Hrsg.): XHTML, CSS & Co, Die W3C-Spezifikationen für das Web-Publishing,<br />
München 2003<br />
O.V. (07.09.2009) Internet: www.<strong>typo3</strong>.org<br />
O.V. (07.09.2009) Internet: www.<strong>typo3</strong>.com/Facts_and_Figures.factsandfigures.0.html<br />
O.V. Internet: (07.09.2009) www.<strong>typo3</strong>.org/extensions/repository/<br />
O.V. (07.09.2009) Internet: www.apachefriends.org<br />
O.V. (07.09.2009) Internet: www.gnu.org/licenses<br />
O.V. (07.09.2009) Internet: www.imagemagick.org<br />
Hochschule Harz, Praktikumsleitfaden für Studierende, 19.05.2009<br />
52
Eidesstattliche Erklärung<br />
Ich versichere eidesstattlich, daß ich die vorliegende Projektarbeit / den vorliegenden Praxissemesterbericht<br />
selbstständig und ohne Benutzung unzulässiger Hilfs<strong>mit</strong>tel angefertig habe. Wörtliche<br />
oder sinngemäße Übernahmen aus anderen Veröffentlichungen sind als solche gekennzeichnet.<br />
Mir ist bewußt, daß eine falsche Versicherung rechtliche Konsequenzen hat.<br />
Goslar, den 10.09.2009<br />
<strong>Manfred</strong> <strong>Schappe</strong>
Bestätigung<br />
Hier<strong>mit</strong> wird bestätigt, dass der vorstehende Praxissemesterbericht von<br />
<strong>Manfred</strong> <strong>Schappe</strong><br />
Matrikelnummer 13668<br />
Studiengang Medieninformatik (BA)<br />
Fachbereich Automatisierung und Informatik<br />
Hochschule Harz (FH), Wernigerode<br />
<strong>mit</strong> den im Praktikumszeitraum tatsächlich durchgeführten Tätigkeiten übereinstimmt.<br />
Goslar, den 10.09.2009<br />
Lars Grollmisch<br />
Agenturleiter