Kategorie: TYPO3

TYPO3 Fluid: DTD / RNG Auto-Complete mit HTML 5

Hier findet ihr eine von mir generierte DTD Auto-Complete Datei für eure IDE. Die DTD Datei wurde vom XML Schema in RNG und von dort aus nach DTD convertiert.

Leider sind nicht alle Elemente korrekt verschachtelt wie im HTML5 Anteil. Das bedeutet, dass sämtliche Elemente innerhalb jeglicher anderen Elemente integriert werden können – immerhin ist das meist auch der Fall. Wer sich allerdings dennoch die Arbeit machen möchte und sämtliche Elemente korrekt verschalten will, kann mir gerne eine angepasst DTD Datei zusenden, damit ich sie ggf. hier veröffentlichen kann.

Dazu muss ich leider auch sagen, dass die Auto-Completion der Attribute bei mir in Komodo IDE 9 leider auch nicht richtig funktioniert. Soweit ich das sehen kann, sind die Attribute in der DTD Datei korrekt angelegt. Falls sich dem Problem auch Jemand annehmen möchte, ist der herzlich dazu eingeladen. Gerne erwarte ich auch euer Feedback, ob bei euch das Attribut Auto-Complete funktioniert. Sollte dies so sein, bitte Kommentar hinterlassen. Danke!

Weiterlesen

TYPO3 Installation via FTP: Ohne stundenlanges hochladen

Wahrscheinlich jeder TYPO3 Entwickler hat es einmal erlebt: Ein neues Projekt soll erstellt werden, externer Server, kein SSH Zugang. Es bleibt also nur die Möglichkeit sämtliche TYPO3 Sourcen via FTP hochzuladen. Und das kann dauern…dauern…sehr lange dauern…

Ich habe ein kleines PHP Script geschrieben,

mit dem das Installieren der TYPO3 Sourcen sogar fast schneller erfolgt als über SSH mit entsprechenden Befehlen zu arbeiten. Das Script lädt die entsprechende TYPO3 Version herunter, entpackt das Tar-Archiv und löscht das Archiv wieder. Übrig bleibt ein Ordner mit den TYPO3 Sourcen den man verwenden kann, wie man es möchte.


Update!

Das Script wurde etwas erweitert. Nun kann man auch neuere TYPO3 Versionen damit aktualisieren. Einfach in der PHP Datei oben die Wunsch-Version eintragen. Ist noch kein TYPO3 vorhanden, kann man TYPO3 mit dem Script installieren.

Das Script gibt es hier zum Download!


<?php
$url  = 'http://prdownloads.sourceforge.net/typo3/typo3_src-7.6.4.tar.gz?download';
$filename = 'typo3.tar.gz';

// Download File -> typo3.tar.gz
$path = __DIR__.'/'.$filename;
$ch = curl_init($url);
$fp = fopen($path, 'w'); 
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);
curl_close($ch);
fclose($fp);
print 'TYPO3 archive downloaded...<br />';

// Unpack File
system('tar xzf typo3.tar.gz');
print 'TYPO3 archive extracted...<br />';

// Delete Tarball
unlink($path);
print 'TYPO3 archive removed...<br />';

print '<b>Completed!</b>';

Achtung: Verwendung auf eigene Gefahr. Keine Haftung.

Gridelements Flexform-Inhalte in Page-Modul anzeigen

Gridelements ist eine mächtige, beliebte aber auch einfach zu verwendende TYPO3 Extension. Neben klassischem Spaltenaufbau bietet Gridelements auch die Möglichkeit individuelle Elemente via Flexforms zu erstellen. Allerdings werden diese Felder im Page-Modul nicht ausgegeben, sodass ein Redakteur meist nicht weiß, was in diesem Element enthalten ist. Genau hier kommt eine neue, von mir entwickelte TYPO3 Extension ins Spiel:

Gridelements Flexform Page Preview

Diese Extension erweitert gridelements über XClass dahingehend, dass nach der Installation sämtliche Flexform Felder und deren Inhalt in der Seitenansicht in TYPO3 dargestellt werden. Simple & gut.

gridelements_ffpagepreview im TYPO3 Extension Repository

Die Extension gibt es derzeit in der ersten Version 1.0.0 im TER unter dem Extension Key „gridelements_ffpagepreview“. Ein Extension Manual wird nicht benötigt, da die Extension lediglich installiert werden muss.

Optional kann mittels TypoScript die maximale Bildbreite und -höhe für die Bild-Vorschau gesetzt werden:

plugin.tx_gridelementsffpagepreview.settings.imageWidth = 200
plugin.tx_gridelementsffpagepreview.settings.imageHeight = 200

gridelements_ffpagepreview

Feedback wird jederzeit gerne entgegengenommen. Viel Spaß mit der Extension!

TYPO3 7.6: Ext. compatibility6

In der aktuellen TYPO3 Version 7.6 ist der Kompatibiltiäts-Layer für Extensions nicht wie bei 6.2 direkt im Core verpackt, sondern kann nach belieben als eigenständige Extension nachinstalliert werden. Das macht Sinn, denn nicht jeder benötigt diese Komapibilität für ältere Extensions.

Allerdings verursacht diese Extension auch Performance-Einbußen, daher haben wir einmal gecheckt, wie diese Performance Einbußen in unserem Benchmark Projekt (Ausgabe: HELLO WORLD!) aussehen. Klar sollte sein: Bei diesem Projekt ist die Extension compatibility6 zwar installiert, verrichtet aber keine Arbeit, da in diesem Projekt nahezu keine Inhalte existieren. In einem größeren Projekt, welches auch tatsächlich ältere Extensions nutzt, werden die Performance-Einbußen sicherlich etwas höher ausfallen.

compatibility6 – wofür?!

Mit der installieren Extension laufen nahezu sämtliche alte TYPO3 Extensions. Ich habe sogar spaßeshalber mal ganz alte t3lib-Extensions getestet (tt_news für TYPO3 4.5) – auch diese können lauffähig gemacht werden, man sollte nur bei Fehlern einmal im error.log des Webservers schauen – dort wird nämlich vermerkt, welche Probleme auftreten.

Weiterlesen

TYPO3 LTS Benchmark: Version 6.2 vs. 7.6

Ich dachte es wäre mal wieder an der Zeit einen kurzen Speed-Checkup zwischen den TYPO3 Versionen 6.2 LTS und 7.6 LTS durchzuführen. Jetzt, nachdem ich meinen Server auf die neueste Debian Version aktualisiert habe und ich nun endlich mit neuesten MySQL und PHP Versionen arbeiten kann, habe ich auch die Möglichkeit endlich mal einen Blick in die neueste TYPO3 Schöpfung zu werfen. Ich muss sagen, das Backend gefällt mir im neuen Design ziemlich gut und fühlt sich auch irgendwie schneller an. Aber heute soll es erst einmal nur um die FrontEnd Performance gehen.


Update: TYPO3 7.6 mit PHP 7 unschlagbar

Kleines Update zu diesem Artikel: TYPO3 Version 7.6 ist mit PHP 7 unschlagbar schnell. Den bisher schnellsten Benchmark brachte uns damals TYPO3 Version 4.5. Für 1500 Anfragen (50 gleichzeitig) brauchte das CMS damals genau 3,246 Sekunden. Und nun haltet euch fest, denn diese Marke wurde von TYPO3 7.6 mit PHP 7 (ohne compatibility6 Extension) soeben gebrochen. Es dauerte gerade einmal 2,457 Sekunden um alle Anfragen abzuarbeiten. Gefällt mir richtig gut!

Server Software:        Apache
Server Hostname:        TYPO3 7.6.2 mit PHP 7
Server Port:            80

Document Path:          /
Document Length:        640 bytes

Concurrency Level:      50
Time taken for tests:   2.457 seconds
Complete requests:      1500
Failed requests:        0
Total transferred:      1329000 bytes
HTML transferred:       960000 bytes
Requests per second:    610.43 [#/sec] (mean)
Time per request:       81.909 [ms] (mean)
Time per request:       1.638 [ms] (mean, across all concurrent requests)
Transfer rate:          528.17 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.3      0       2
Processing:    21   80   8.4     81     110
Waiting:       21   80   8.4     81     110
Total:         23   81   8.2     81     110

Percentage of the requests served within a certain time (ms)
  50%     81
  66%     83
  75%     85
  80%     86
  90%     88
  95%     91
  98%     95
  99%     99
 100%    110 (longest request)

Weiterlesen

Above-the-Fold CSS & JS mit TYPO3 richtig optimieren

Wer heutzutage eine neue Website erstellt und diese nach neusten Standards und Techniken optimieren möchte, kommt am Google Page Speed Tool nicht vorbei. Dabei fällt auf, dass das Tool des Platzhirsches relativ viel Wert darauf legt, CSS und JS Daten, die nicht im Sichtbereich beim Aufruf der Seite liegen, am Ende des Dokumentes zu laden. Das heißt, Daten die nicht benötigt werden, um den sofort sichtbaren Bereich darzustellen, sollen später nachgeladen werden. Dabei bedeutet später natürlich: Sofort nachdem das eigentliche HTML Dokument geladen wurde. Da es beim Nachladen durchaus zu einer kurzen sichtbaren Darstellung ohne geladene Stylesheets kommen kann, werden die Stylesheets, die für die Darstellung des sichtbaren Teils zuständig sind, weiterhin im <head>-Bereich geladen – allerdings nicht wie üblich als externe Datei, sondern direkt als Inline-CSS.

TYPO3 Extension Scriptmerger

Mit der Extension Scriptmerger lassen sich alle JavaScript und CSS Dateien zusammenfassen – und genau das möchten wir. Wichtig für uns: Durch folgende Konfigurationsparamter können wir die Extension anweisen, die erstellten und zusammengefassten Daten nicht wie üblich im Kopf, sondern ganz unten am Ende des Dokumentes einzubinden.

plugin.tx_scriptmerger {
	javascript {
		mergedHeadFilePosition = </body>
	}
	css {
		mergedFilePosition = </body>
	}
}

Above-the-Fold CSS in den <head> einbinden

Als erstes sollte erwähnt werden, dass alle via page.includeCss eingebundenen CSS Dateien nun durch Scriptmerger an das Ende des Dokumentes gepackt werden. Deshalb brauchen wir eine effektive Methode unser Above-the-Fold CSS Inline in den Header zu bekommen. Dafür eignet sich folgendes TypoScript:

page {
  headerData {
    # Inline CSS
    10 = TEMPLATE
    10 {
      stdWrap.wrap = <style type="text/css">|</style>
      template = FILE
      template.file = fileadmin/templates/css/abovethefold.css
    }
  }
  
  # CSS-Dateien
  includeCSS {
    mainCss = fileadmin/templates/css/main.css
	...
  }
}

Eine externe CSS Datei wird ausgelesen, in Style-Tags verpackt und in den Head eingebunden. Für uns ist das eine wunderbare Möglichkeit, denn wir haben unser CSS im Head wie wir es benötigen (Inline), um das Laden nicht zu blockieren und wir haben dennoch eine externe CSS Datei die für Ordnung sorgt.

Weiterlesen

TYPO3 mit WordPress: So spielen beide Systeme zusammen

Möchte man eine leistungsfähige Website mit dem Content-Management-System TYPO3 aufbauen aber nicht auf WordPress – dem Blog-System schlechthin – verzichten wollen, stellt man sich die Frage: Wie arbeiten beide System am besten zusammen? Ich habe genau das auf meiner neuen Webpräsenz gemacht und zeige euch nun, wie ich Navigation, Footer und Sidebar Elemente eingebunden habe.

WordPress parallel zu TYPO3 installieren

WordPress habe ich ganz normal im Root Verzeichnis unter dem Ordner „/blog/“ installiert. In TYPO3 habe ich eine leere Seite im Seitenbaum erstellt um im meinem TYPO3 Menü auch den Punkt „Blog“ einzubinden. Natürlich verweist der Menüpunkt via RealURL auf /blog/. Damit wird vom TYPO3 zu WordPress gesprungen.

WordPress vorbereiten

Kurz vorab: Ich bin kein WordPress-Profi und konzentriere mich mit meiner Arbeit (abgesehen von diesem Projekt) lediglich auf TYPO3.

Meine HTML Struktur der TYPO3 Seite habe eins zu eins in das WordPress Template eingebunden. Somit kann ich sämtliches CSS und JS auch für WordPress nutzen. Wie man ein WordPress Template anpasst liest man am besten extern nach. Sind wir damit fertig und haben auch die nötigen CSS / JS Dateien eingebunden sollten wir einen Blog haben, der so aussieht wie unsere normale Website. Sicherlich muss man an ein paar Stellen ein paar spezifische Anpassungen am HTML Konstrukt vornehmen und auch ein paar extra Stylesheets hinterlegen (diese extra Blog-Stylesheets habe ich in die style.css vom WordPress Theme verpackt).

Weiterlesen

content_rating: Bewertungen mit Rich Snippets für TYPO3

Die Extension „content_rating“ integriert in TYPO3 eine so genannte „Sternchenbewertung“ mit Rich Snippets Support. Das Rating beziehungsweise Voting des Nutzers erfolgt per Klick. Die Darstellung übernimmt wahlweise ein Balken oder die bekannten „Sternchen“. Die kummulierten Nutzermeinungen können durch Rich Snippets von Suchmaschinen übernommen und in den Suchergebnissen dargestellt werden.

User-Interaktion findet immer häufiger auf Webseiten statt. Besucher möchten sich mitteilen und ihre Meinung abgeben. Das gilt für geschriebene Artikel, Fotos, Produkte oder vieles mehr. Kommentare stellen Meinungen dar und müssen zunächst gelesen werden. Sie sind nicht auf einen Blick zu erfassen. Ebenfalls fehlt bei Kommentar-Meinungen eine statistische Gesamtbewertung. Erfahren kann man nur durch das Lesen jedes einzelnen Kommentars, ob ein Besucher den Inhalt gut oder schlecht fand, ob er Ergänzungen zum Thema hat oder ob aus seiner Sicht falsche Angaben gemacht wurden. Eine Statistik, die direkt und zusammengefasst zeigt, was andere denken, gibt es nicht. Dafür empfiehlt sich eine grafisch anschauliche Bewertungs-Funktion.


Update: Extbase Version

Die Extension ist ab sofort unter dem Extension Key content_rating_extbase im TYPO3 Extension Repository als Extbase Version verfügbar.


Ratings leicht abgeben und Gesamtbewertungen verständlich anzeigen

Mit unserer TYPO3 Extension „content_rating“ ist es möglich, Websitebesuchern zusammengefasste Meinungen zu präsentieren. Zudem geben Nutzer mit nur einem Klick schnell und unkompliziert Bewertungen ab. Dabei bewertet der Besucher auf einer Skala von 1 – 5 den Inhalt der Seite, ein Foto, ein Produkt oder was auch immer. Er sieht seine Stimme zusammengefasst mit allen anderen Bewertungen der User, die wie auch er die Seite bewertet haben. Eindeutig erkennbar, ob gut, mittelmäßig oder schlecht.

Die unterschiedlichen Stile

style4 style5 style3 style2 style1

Suchmaschinen die Bewertungen per Rich Snippets zur Verfügung stellen

Die Erweiterung unterstützt außerdem Rich Snippets für Bewertungen. Diese nutzt Google, um das Rating bereits in den Suchergebnissen anzuzeigen. Eine durch Bewertungs-Rich-Snippets hervorgehobene Seite erhält meist eine hohe Klickrate. Es kommt sogar vor, dass Ergebnisse auf Platz 1 und 2 praktisch verblassen und ein Platz 3 oder 4 mit Rich-Snippet Bewertungen häufiger geklickt wird.

Um neben einer Bewertung die ausführliche Meinung der User zu erhalten, empfehle ich den Kommentar-Dienst DISQUS. Dieser kann mit unserer disqus_comments TYPO3 Extension leicht eingebunden werden.

Weiterlesen