Dennis Lizarzaburu

Dennis Lizarzaburu

I'm a frontend developer from kiel, germany.

Blog   /   Work   /   Disclaimer

Seit Typo3 6.2 können für Templates, Partials oder Layouts mehrere Pfade definiert werden. Dadurch ist es möglich nur einzelne Dateien zu überschreiben.

Als erstes muss der Standardpfad für zum Beispiel die Extension news definiert. Danach können in aufsteigender Wichtigkeit mehrere Pfade eingetragen werden. Findet Typo3 unter der eigenen Pfaden die gesuchte Datei, so wird diese verwendet. Wenn keine Datei gefunden wird, wird der zuvor definierte Pfad genutzt.

Wichtig ist, dass die Ordnerstruktur der eigenen Pfade exakt der Ordnerstruktur der Extension entspricht.

plugin.tx_news {
view {
templateRootPaths {
0 = EXT:news/Resources/Private/Templates/
1 = EXT:my_ext/Resources/Private/Ext/news/Templates/
}
partialRootPaths {
0 = EXT:news/Resources/Private/Partials/
1 = EXT:my_ext/Resources/Private/Ext/news/Partials/
}
layoutRootPaths {
0 = EXT:news/Resources/Private/Layouts/
1 = EXT:my_ext/Resources/Private/Ext/news/Layouts/
}
}
}

Einige Extensions unterstützen diese Definition von Templates schon. So müssen die Standardpfade nicht mehr selbst definiert, sondern nur noch die eigenen Pfade eingehängt werden. Bevor man die neue Art der Definiton nutzt, sollte mas dies überprüfen. Die news Extension hat die Pfade bereits auf die 100 gesetzt.

plugin.tx_news {
view {
templateRootPaths {
# Dies ist bereits in der Extension definiert und brauch nicht mehr eingetragen werden
# 100 = EXT:news/Resources/Private/Templates/
200 = EXT:my_ext/Resources/Private/Ext/news/Templates/
}
}
}

Auf all-inkl Webservern werden standardmäßig keine Fehlermeldungen in einer Logdatei ausgegeben. Um dennoch nicht drauf verzichten zu müssen, kann man sich selbst sehr schnell die Ausgabe der PHP-Error in einer Logdatei einrichten.

Dazu ist ein Eintrag in der .htaccess und ein eigener Ordner für die Logdatei nötig. Zunächst solltet ihr einen neuen Ordner z.B. log erstellen und ihn mit den Dateirechten 777 versehen.

# Gebt dem Ordner die Dateirechte 777
chmod 777 log

In dem Ordner legen wir eine error_log.txt Datei ab. Um die Fehlermeldungen in der Datei auszugeben, müsst ihr in der .htaccess folgende Zeilen hinzufügen:

# Akiviert die Fehlermeldungen und gebt den Pfad zur Logdatei an
php_flag log_errors on
php_value error_log "/www/htdocs/w000000/PFAD-ZUM-LOG-ORDNER/error_log.txt"

Ersetzt 'w000000' durch den Loginnamen eures FTP-Accounts und PFAD-ZUM-LOG-ORDNER mit dem Pfad zum Ordner. Um zusätzlich die Ausgabe der Fehler auf eurer Webseite zu deaktivieren könnt ihr folgende Zeile hinzufügen

# Deaktiviert die Ausgabe von Fehlern auf euer Webseite
php_flag display_errors off

Eine virtuelle Maschine mit Windows ist eine einfache Methode auf dem Mac Webseiten im Internet Explorer zu testen. Der IE bietet in seinen Entwicklertools sogar die Möglichkeit, verschiedene Browser Versionen anzusprechen. Meine Erfahrung aus den letzten Projekten, die ich speziell für ältere Versionen des IE optimieren musste, ist, dass das Umstellen des Browsermodus keine 100% verlässliche Alternative zum Testen in einer echten Umgebung ist.

Eine Lösung dafür bietet Microsoft selbst. Auf der modern.ie könnt ihr euch virtuelle Maschinen mit Windows herunterladen. Microsoft stellt dabei nicht nur die Versionen IE 6 zur Verfügung, sondern bietet diese auch noch in den Windows Versionen XP, Vista, Windows 7 und 8 an.

Das Herunterladen und Installieren ist sehr einfach und schnell gemacht. Wählt zunächst das gewünschte Testbetriebssystem Mac aus und wählt dann die Virtualisierungsplattform VirtualBox. Euch werden dann eine Reihe von Boxen angezeigt aus denen ihr euch die gewünschte Umgebung aussucht. Über den Link "Grab them all with cURL" bekommt ihr einen Download Befehl, den ihr nur noch in das Terminal kopieren müsst um den Download zu starten.

# Ladet euch die Dateien mit dem cURL Befehl über das Terminal
curl -O -L "link-zum-download"

Nach dem Download müsst ihr euch die Rechte geben, auf die Dateien zuzugreifen.

# Verschafft euch die Rechte auf die Datei zuzugreifen
chmod +x DATEINAME.sfx

Die Datei liegt in einem selbstextrahierendem Archiv (.sfx) vor. Um die Datei zu extrahieren müsst ihr im Terminal nur mit folgendem Befehl auf sie zugreifen.

# Entpackt das Archiv
./filename.sfx

Die entpackte Datei ist eine OVA Datei, die ihr mit VirtualBox öffnen und importieren könnt. VirtualBox erstellt daraus eine virtuelle Maschine unter dem in den Einstellungen definierten Pfad für VM's.

Nach dem Update auf Mac OS X Mavericks funktionierte der hauseigene Apache des Macs nicht mehr so, wie vor dem Update. An Stelle der gewohnten Seiten zeigte er nur noch die Meldung "It works!". Ein kurzer Blick in die hosts und die http-vhosts.conf Dateien zeigte mir, dass diese unberüht an der selben Stelle lagen. Nach ein paar weiteren Blicken fiel mir auf, dass die php.ini und die httpd.conf nicht mehr existierten. Allerdings wurden diese beim Update als Sicherung gespeichert sodass sie nur umbenannt oder kopiert werden müssen. Diese beiden Befehle sollten euren Apache wieder zum Laufen bringen.

# Ggf. müsst ihr den Namen der Sicherung anpassen. Guckt euch am besten vor dem Ausführen der Befehle die Dateien an.
sudo mv /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
sudo mv /etc/apache2/php.ini-5.2-previous /etc/apache2/php.ini

Ihr müsst nun nur noch den Apache neutstarten.

sudo apachectl restart

In der Menüleiste von Mac OS X werden bei anstehenden Updates von Adobe sowohl das Icon des Adobe Update Managers als auch das der Adobe Creative Cloud App angezeigt. Dies stört nicht nur und nimmt Platz weg, sondern ist auch noch redundant. Versucht man nämlich die Updates über den Update Manager zu installieren öffnet sich die Creative Cloud App. Das Icon des Update Managers lässt sich jedoch schnell entfernen.

  1. Startet die Anwendung für die Updates anstehen.

  2. Geht über den Menüpunkt "Hilfe" und wählt "Aktualisierungen...".

  3. Es öffnet sich der Adobe Applikation Manager und sucht nach Aktualisierungen. Sobald die Updates gefunden wurden klickt ihr auf den Button "Voreinstellungen".

  4. Deaktiviert den Haken bei "Auf der Menüleiste über neue Updates benachrichtigen".

  5. Nun wird nur noch das Icon der Adobe Creative Cloud App gezeigt.

I needed a simple way to generate an email link in html that is not readable by email spam bots. I decided to create a small jQuery Plugin to do this work.

The usage is very simple. You just have to create an empty ancor in your html code and give it a class or id. Just call MailLink on your element and the Plugin will do the rest.

<a href="#" id="mail"></a>
<script type="text/javascript"> $(window).load(function () { $('#mail').MailLink(); }); </script>

You have three options to customize your generated email adress.

  • address (Default: mail)
  • domain (Default: automatically detects your url)
  • at (Default: @)

Simply add your options when you call the Plugin.

$('#mail').MailLink({
address: 'info',
domain: 'domain.com'
});

You can download the Pluign here: MailLink.

 

Diese Anleitung funktioniert nur mit Capistrano 2.x. Ein Update für v3.x folgt bald.

Capistrano ist eine Deployment-Software, die es euch ermöglicht eure Internetseite auf euren Server zu kopieren. Capistrano ist in Ruby geschrieben und kann als RubyGem verwendet werden. Eine Anleitung zum Installieren von Capistrano findet ihr auf github.

Um Capistrano mit diesem Einstellungen zu verwenden muss euer Projekt bereits als Git-Repository auf eurem all-inkl-Server liegen. Wie ihr Git einrichtet könnt ihr in dem Blogpost all-inkl und git lesen.

Um Capistrano für euer Projekt einzurichten geht ihr in euer lokales Repository und führt folgenden Befehl aus:

capify .

Ihr findet nun eine CAPFILE und einen Ordner config mit einer deploy.rb. Die CAPFILE bleibt unverändert. Die deploy.rb müsst ihr nun anpassen. In diesem Bespiel verwende ich meine Domain als Beispieldomain. Zunächst löscht ihr den Inhalt der Datei und gebt folgende Informationen an:

# Eure Domain
set :domain , 'dennislizarzaburu.de'
# SSH-Benutzer
set :user , 'ssh-w000000'

Die Domain ersetzt ihr durch eure Domain. Den SSH-Benutzer 'ssh-w000000' ersetzt ihr mit eurem SSH-Login aus dem KAS.

Nun geben wir Capistrano die Information, dass wir git verwenden.

set :scm , :git

Da das Quell und Ziel Verzeichnis beide auf dem selben Server liegen müssen wir dieses auch in der Konfiguration angeben.

# Das Repository liegt auf dem gleichen Server
set :local_repository, 'file://.'
# Absoluter Pfad zum Repository auf eurem Server
set :repository, 'file:///www/htdocs/w000000/git/dennislizarzaburu.git'
# Das Zielverzeichnis
set :deploy_to, '/www/htdocs/w000000/www/dennislizarzaburu/'

Fügt folgende Zeilen ein und passt sie ggf. an. 

# Der Branch, aus dem ihr deployen wollt
set :branch, 'master'
# Wir wollen/dürfen auf dem Server kein sudo verwenden
set :use_sudo, false
# Wir wollen uns mit SSH-Keys einloggen
ssh_options[:forward_agent] = true
# Nur auf diese Webseite deployen
role :website, domain, :primary => true

Eure deploy.rb ist nun fertig. Im nächsten Schritt müsst ihr den Server für das Deployen vorbereiten. Der folgende Befehl übernimmt die Einrichtung auf dem Server.

cap deploy:setup

Auf dem Server erscheinen nun drei Ordner: current, shared und releases. Ein letzter Befehl und die Webseite wird deployed:

cap deploy

Vorraussetzung für das Verwenden von Git ist das Hosting-Paket all-inkl Premium. In diesem Paket steht euch der SSH Zugang zur Verfügung, den ihr benötigt. Git ist bereits vorinstalliert und kann ohne weitere Anpassungen verwendet werden.

Zunächst solltet ihr euch eine Struktur auf dem Server einrichten. Auf meinem Server habe ich einen Ordner 'git' für die git-Repositories und einen Ordner 'www' für die Webseiten.

Um auf dem Server ein git-Repository zu erstellen sind geht ihr zunächt in euren git-Ordner und erstellt einen neuen Ornder für das Repository. In diesem Bespiel verwende ich meine Domain als Beispieldomain. Diese müsst ihr selbstverständlich anpassen.

mkdir dennislizarzaburu.git

Nun wechselt ihr in das neue Verzeichnis und initialisiert git mit folgendem Befehl:

git --bare init

Um das eben angelegte git-Repository auf euren Rechner zu klonen verwendet ihr folgenden Befehl:

# w0000000 ist der eurer Loginname für das KAS.
git clone ssh://ssh-w0000000@dennislizarzaburu.de/www/htdocs/w0000000/git/dennislizarzaburu.git

Wichtig ist, dass ihr den absoluten Pfad zum Repository verwendet.

Habt ihr das Repository erfolgreich geklont könnt ihr ein paar Beispiel Dateien anlegen und diese commiten und pushen.

git add .
git commit -a -m 'First commit'
git push -u origin master

Eure Dateien sind nun im git.