TYPO3 Flow Entwicklungsumgebung

Für die Entwicklung mit TYPO3 Flow habe ich mein normales Arbeitsgerät genutzt. Das ist ein Macbook mit Mac OS X Mavericks. Als Webserver habe ich MAMP installiert. Aktuell nutze ich die Version 2.2, welche die PHP Version 5.5.3 sowie einen MySQL Version 5.5 mitliefert. Als Entwicklungsumgebung nutze ich PhpStorm, aber jede andere Entwicklungsumgebung sollte genau so gut funktionieren.

Meine ersten Schritte mit TYPO3 Flow auf dem Mac waren etwas holperig. Nachdem ich mich durch die ganzen Einstellungen die ich vornehmen musste gekämpft habe habe ich von einem Kollegen erfahren, dass dieser ähnliche Probleme damit hatte. So entschloss ich mich diesen Artikel zu schreiben.

Die Installation des TYPO3 Flow erfolgt mit composer. Composer ist eine Paketverwaltung für PHP.

Für die Installation muss eine Terminal Session gestartet werden. Anschließend muss der Befehl:

curl -s https://getcomposer.org/installer | php

Dadurch wird composer installiert.
Anschließend kann mit dem Befehl:
./composer.phar create-project --dev --keep-vcs typo3/flow-base-distribution Quickstart
ein Projekt erstellt werden. Die Ausführung dauert eine Weile, da nun alle notwendigen Daten heruntergeladen werden. Composer legt dabei einen neuen Ordner Quickstart an, in welchem die Dateien die heruntergeladen wurden liegen. Der Name des Ordners kann nach belieben gewählt werden. Es können auch bestehende Ordner gewählt werden, jedoch müssen diese leer sein.

Mit dem Befehl
cd Quickstart wechseln wir in den Ordner der durch composer angelegt wurde.

TYPO3 Flow liefert ein Kommandozeilen Programm mit, welches die Umgebung des Framework auf der Kommandozeile bereitstellt und somit die Möglichkeit bietet PHP Programme auf der Kommandozeile auszuführen. Dafür wird allerdings PHP für die Kommandozeile benötigt. Das ist generell kein Problem, da Mac OS dieses bereits mitliefert. Ich habe mich jedoch dazu entschlossen, dass ich gerne das PHP nutzen möchte, welches auch von MAMP genutzt wird, damit ich die noch folgenden notwendigen Konfigurationen nur einmal vornehmen muss.
Dafür habe ich in der Datei .bash_profile die folgenden Zeilen eingefügt.

PATH="/Applications/MAMP/bin/php/php5.5.3/bin/:${PATH}"
export PATH

Damit wird der oben angegebene Pfad genutzt um Programme zu finden. Da dieser Pfad vor den normalen Pfaden durchsucht wird wird ein hier ggf. gefundenes Programm ausgeführt und die Suche an den normalen Pfaden wird nicht durchgeführt.
Nachdem die Eintragungen durchgeführt wurden muss eine neue Terminal Session gestartet werden, damit die Änderungen Auswirkungen haben. Der Pfad muss natürlich ggf. angepasst werden. Neuere Versionen von MAMP nutzen andere Versionen von PHP und somit auch andere Pfade.

Nach den Änderungen können wir mit dem Befehl which php testen welcher PHP Interpreter genutzt wird. Der ausgegebene Pfad sollte dem entsprechen, welcher in der .bash_profile Datei eingegeben wurde.

Damit TYPO3 Flow genutzt werden kann müssen noch ein paar Einstellungen in der php.ini vorgenommen werden. Zum einen erwartet TYPO3 Flow, dass die Einstellung für date.timezone gesetzt ist. Außerdem muss das memory limit erhöht werden. Dazu muss in der Datei /Applications/MAMP/bin/php/php5.5.3/conf/php.ini die Zeile gesucht werden, welche mit
;date.timezone beginnt. Die Zeile muss geändert werden, so dass dort
date.timezone = "Europe/Berlin"
steht. Außerdem das memory_limit erhöht werden. Das ganze geschieht über der Parameter memory_limit in der php.ini Mit einem Limit von 256 MB kann man erst einmal problemlos arbeiten. Dazu muss der Parameter auf 256M geändert werden.

Die Vorbereitungen sind getroffen und wir können einen Browser starten und uns die Ausgabe ansehen. Dazu rufen wir im Browser die URL: http://localhost/ auf. Wenn alles richtig konfiguriert ist erscheint der Flow Welcome Screen mit ein paar nützlichen Informationen.

TYPO3 Flow

Dies ist der Start einer Artikelserie in der ich über die Entwicklung mit TYPO3 Flow berichte. Ich habe mich in den letzten Wochen und Monaten intensiv mit TYPO3 Flow beschäftigt und mehrere kleine und mittlere Projekte damit realisiert. In den Artikeln werde ich meine Erfahrungen mit TYPO3 Flow mit euch teilen. Ich weiß noch nicht, wie schnell und wann ich neue Artikel schreiben werde, da das auch immer von meiner verfügbaren Zeit abhängt. Die Links zu den anderen Teilen dieser Serie sind immer am Ende des Artikels verlinkt.
TYPO3 Flow ist ein PHP Framework, welches für die Entwicklung von TYPO3 Neos entwickelt wurde. Version 2.1 ist die aktuelle Stable Version. TYPO3 Flow unterstützt viele Konzepte der modernen Softwareentwicklung, welche in der PHP Entwicklung teils noch ungewöhnlich sind. Dazu zählen unter anderem:
– Dependency Injection
– Property Mapping & Validation
– Command Line Support

Die vollständige Liste kann unter http://flow.typo3.org/about/features eingesehen werden.
Die oben aufgelisteten Features haben mir die Arbeit extrem vereinfacht und schon nach kurzer Zeit wollte ich diese nicht mehr missen. TYPO3 Flow ist ein MVC Framework, das heißt dass es eine Teilung von Model, also den Daten bzw. der Datenschicht, der View und dem Controller.
Eine sehr interessante Funktion ist auch der Command Line Support. Das heißt, dass ein Shell Skript mitgeliefert wird, welches zum ausführen von Controller Methoden auf der Konsole genutzt werden kann. Dadurch ist es möglich, beliebigen in PHP geschriebenen Programmcode auf der Kommandozeile auszuführen und sämtliche Funktionen des Framework ebenfalls auf der Kommandozeile zu nutzen. Der erste Artikel der Serie beschäftigt sich mit der Grundinstallation und Konfiguration.

TYPO3 Flow Entwicklungsumgebung

Google Rich Snippets

Immer häufiger findet man in den google Suchergebnissen so genannte Rich Snippets.

Ein Rich Snippet ist z.B. ein kleines Bild welches neben der Beschreibung dem Suchergebnis angezeigt wird oder alternativ z.B. eine Sterne Bewertung wie das folgende Beispiel zeigt:

 

 

 

Damit diese Rich Snippets angezeigt werden muss man das HTML der eigenen Seite um ein paar Zeilen erweitern. Einfach einzufügen ist ein Bild welches den Author der Seite zeigt. Dafür muss lediglich ein google+ Profil erstellt werden und anschließend muss das Profil von der eigenen Seite aus verlinkt werden.

<a href="LINK_ZU_GOOGLE+#" rel="author">Linktext</a>

Wichtig ist hierbei das rel="author" damit google erkennt das es sich um den Author des Artikels handelt.

Das anzeigen der Sternchenbewertungen nicht wirklich komplizierter, damit diese angezeigt wird muss lediglich der HTML Code

<span class="hreview-aggregate">
<span class="item"><br>
<span class="fn">Eure Bewertung:</span>
</span>
<span class="rating">
<span class="average"><b>4,33</b></span>
von
<span class="best">5</span>
Punkten, bei
<span class="votes">3</span>
abgegebenen Stimmen.
</span>
</span>

Natürlich sollte man dem User dann auch die Möglichkeit geben die Seite wirklich zu bewerten und nicht nur eine Bewertung zu faken. Für WordPress kann man das recht einfach mit dem Plugin WP-PostRatings machen. Anschließend muss nur das Template entsprechend oben stehender HTML Struktur angepasst werden, so dass sich folgendes Templates für VOTE Text und VOTED Text ergeben:

<span class="hreview-aggregate">
<span class="item">
<span class="fn">%POST_TITLE%</span>: %RATINGS_IMAGES_VOTE%<br />
</span>
<span class="rating">
<span class="average"><b>%RATINGS_AVERAGE%</b></span>
von
<span class="best">5</span>
Punkten, basierend auf
<span class="votes">%RATINGS_USERS%</span>
abgegebenen Stimmen.
</span>
</span>

Typoscript subtitle als Seiten Titel anzeigen

Will man bei Typo3 den Standard Title ausschalten und stattdessen den Title individuell erstellen so ist dieses mit ein bisschen Typoscript möglich.

Der folgende Typoscript Block schaltet den Standard Title aus und nimmt stattdessen den sutitle aus dem Backend  für den Title Tag auf der Webseite.

config.noPageTitle = 2
#der Standard Title wird ausgeschaltet
page {
# Das Feld Subtitle wird auf der Webseite in dem
# Headerbereich ausgegeben und von umschlossen
headerData.6 = TEXT
# Nutze das Feld subtitle alternativ das Feld title sollte subtitle leer sein
headerData.6.field = subtitle // title
headerData.6.wrap = <title>|</title>
}

sudo: unable to resolve host

Vor ein paar Tagen habe ich auf einem meiner Server mit Debian beim ausführen von Sudo den Fehler

sudo: unable to resolve host (none)

erhalten. Nach ein bisschen recherchieren bin ich darauf gekommen, dass dieser Fehler 3 Ursachen haben könnte.

  • Nameserver nicht erreichbar
  • Kein Eintrag in der Datei /etc/hosts
  • Datei /etc/hostname fehlerhaft oder nicht vorhanden

In meinem Fall lag es daran, dass die Datei /etc/hostname nicht vorhanden war. Ich habe diese Datei angelegt und den Server neu gestartet. Anschließend war der Fehler verschwunden.

Typo3 4.6 Kontaktformular

Mit der Version 4.6 hielt bei Typo3 ein neuer Formular Editor Einzug. Dieser Wysiwyg Editor lässt sich nach kurzer Eingewöhnungsphase intuitiv bedienen. Im Backend kann man sehr gut nachvollziehen wie das Formular später aussehen wird. Doch nach dem Aufrufen des Frontends wird dort nur:

###LABEL### ###FIELD###

angezeigt. Wenn dieser Fehler auftritt muss nur das Static Template Default TS (form) eingebunden werden.

Übersetzungsdateien .po .mo

Wenn man WordPress oder WordPress Themse in einer anderen Sprache als der Original Sprache verwenden möchte, kann es vorkommen, dass die Übersetzung nicht vollständig ist. Zum Bearbeiten der Sprachdateien, z.B. de_DE.po kann man den Editor poEdit verwenden. Dieser speichert die bearbeitete Datei dann auch gleich zusätzlich noch als .mo-Datei (Machine Object) welche für die Übersetzungen benötigt wird.

Sonderzeichen auf dem Mac

Seit ca. 4 Wochen arbeite ich inzwischen mit einem Mac Mini und nicht mehr mit einem Windows PC. Natürlich habe ich hier dann auch gleich noch die passende Mac Tastatur dazu bestellt.
Hier fehlten mir beim Programmieren dann Anfangs die Sonderzeichen. Als PHP Entwickler benötigt man jede Art an unterschiedlichen Klammern. Die normalen runden Klammern waren noch an der von Windows gewohnten Stelle. Aber wo waren die Eckigen [ ] und die geschweiften Klammern { }? Nach ein wenig Suchen habe ich diese dann gefunden. „Sonderzeichen auf dem Mac“ weiterlesen

Geld verdienen im Internet

Geld verdienen im Internet… muß das wirklich sein noch so eine Anleitung wie man schnell reich wird ohne was dafür zu tun?
Nein, ich denke nicht dass das sein muß und ich habe auch nicht die Absicht so einen Artikel zu schreiben.
Vielmehr möchte ich hier meine Erfahrungen niederschreiben mit einer Seite welche ich jetzt 6 Wochen online hatte und womit ich in der Zeit ein bisschen Geld verdient habe. „Geld verdienen im Internet“ weiterlesen

Das Verzeichnis „wp-content“ konnte nicht gefunden werden.

Beim installieren von Plugins habe ich die Fehlermeldung

Das Verzeichnis „wp-content“ konnte nicht gefunden werden.

bekommen. Folgende Lösung hat bei mir funktioniert:
Anlegen der Ordner

  • /wp-content/upgrade/
  • /wp-content/tmp/

jeweils mit den Berechtigungen 777.
Anschließend habe ich in der Datei wp-config.php am Ende folgendes eingefügt.

putenv(‚TMPDIR=‘. $_SERVER[‚DOCUMENT_ROOT‘] .’/wp-content/tmp‘);
define(‚WP_TEMP_DIR‘, ABSPATH . ‚wp-content/tmp‘);

Diese beiden Zeilen müssen vor der Zeile welches das PHP End Tag „?>“ enthält eingefügt werden.

Eine weitere Möglichkeit dieses Problem zu lösen ist es WordPress die Berechtigung zu geben die Dateien direkt mittels PHP zu installieren anstatt den Umweg über FTP zu nehmen. Dazu müssen vor dem PHP End Tag „?>“ folgende Zeilen eingefügt werden:

/** Override default file system method*/
if(is_admin()) {
add_filter(‚filesystem_method‘, create_function(‚$a‘, ‚return „direct“;‘ ));
define( ‚FS_CHMOD_DIR‘, 0751 );
}