24.12.2012 Aufrufe

content management mit typo3 - Webportfolio Manfred Schappe

content management mit typo3 - Webportfolio Manfred Schappe

content management mit typo3 - Webportfolio Manfred Schappe

MEHR ANZEIGEN
WENIGER ANZEIGEN

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&Uuml;<br />

<br />

<br />

<br />

<br />

N&Uuml;TZLICHES<br />

<br />

SPECIALS<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

&nbsp;<br />

<br />

<br />

<br />

<br />

<br />

30


ANLAGEN<br />

<br />

<br />

<br />

&nbsp;<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 />

&nbsp;<br />

<br />

<br />

&nbsp;<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&#65533;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;&nbsp;|<br />

target = _top<br />

NO {<br />

linkWrap = |<br />

#vor dem erstem item kein “/” als Trennzeichen, sonst immer<br />

allWrap = |*| |&nbsp;/&nbsp;|*| |*|<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&auml;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 />

&Ouml;FFNUNGSZEITEN DER KASSE<br />

<br />

Dienstags:10.00 - 11.00 Uhr<br />

Donnerstags:14.00 - 15.00 Uhr<br />

<br />

B&uuml;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&ouml;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 />

&nbsp;<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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!