Nahezu jede Website besitzt einen Footer, der auf sämtlichen Unterseiten ausgegeben werden soll. Um nicht bei jeder neuen Unterseite einen Verweis auf den Footer der Ausgangsseite anlegen zu müssen, verwenden wir Typoscript.
Weiterlesen
Archiv für den Autor: Roland Spiersch
MySQL DateTime als Timestamp ausgeben
DateTime liest sich in der Datenbank für den Menschen einfacher als ein Timestamp und wird deshalb gerne genutzt. Möchte man DateTime bei der Datenbank-Abfrage als Timestamp ausgeben lassen, bietet sich die MySQL-Funktion UNIX_TIMESTAMP() geradezu an:
SELECT UNIX_TIMESTAMP(datumDateTime) AS datumTimestamp FROM ...
datumTimestamp enthält dann den Timestamp.
FRITZ!Box hinter Speedport Hybrid – Telefonieren mit easybell Trunking und Telekom VoIP
Anfang Februar wurde unser langsamer 16MBit/s DSL-Tarif endlich durch einen schnellen Hybrid-Tarif mit 50MBit/s abgelöst. VDSL oder Kabel ist leider nicht möglich. Da der Speedport Hybrid kaum Features und Einstellmöglichkeiten vorzuweisen hat, sollte dieser nur die Verbindung zum Internet herstellen und alles andere, wie z.B. Telefon, WLAN, Netzwerk und VPN die FRITZ!Box 7490 managen.
Leider bietet der Speedport Hybrid keine Exposed Host Funktion, man muss also einige Einstellungen vornehmen.
Hier nun die Anleitung zur Einrichtung beider Geräte zur Nutzung der Telefon-Funktion über die FRITZ!Box
Auf beiden Geräten ist die aktuelle Firmware installiert.
Speedport Hybrid: 050124.02.00.010
FRITZ!Box 7490: 6.51
Einrichtung des Speedport Hybrid
Das Gerät sollte bereits über einen Zugang zum Internet verfügen, die DSL-Zugangsdaten sind bereits eingegeben und die Verbindung zum Internet über DSL und LTE wurde hergestellt. Es sollten keinerlei Einstellungen zur Telefonie vorhanden sein. Nach jedem Einloggen startet zwar der Einrichtungsassistent, dieser kann jedoch abgebrochen werden. Notfalls das Gerät auf die Werkseinstellungen zurücksetzen und nur den Internetzugang einrichten.
Zunächst werden einige „Dynamische Portfreischaltungen“ eingerichtet. Im Menü ist der Punkt unter Internet -> Portfreischaltungen -> Dynamische Portfreischaltungen zu finden.
Benötigte UDP-Ports: 3478, 3479, 5070, 5080, 30000 – 31000 und 40000 – 41000.
Die Einstellungen werden wie folgt vorgenommen:
Damit die Telefonie nur über die DSL-Leitung abläuft, tragen wir die entsprechenden Ports im Speedport Hybrid bei den Ausnahmen ein. Im Menü ist der Punkt unter Internet -> Internetverbindung -> LTE deaktivieren oder Ausnahmen hinzufügen zu finden.
Benötigte Ports: 3478, 3479, 5004, 5060 und 5064. Die Art der Regel ist bei allen Ports „Datenverkehr zu festem Zielport“.
Die Einstellungen werden wie folgt vorgenommen:
Damit wäre die Konfiguration des Speedport Hybrid abgeschlossen.
Einrichtung der FRITZ!Box
Folgende Einstellungen haben wir über WLAN vorgenommen. Per LAN sollte Ihr Rechner über einen anderen Port als Port 1 mit der FRITZ!Box verbunden sein. Die Ansicht wurde auf „Erweitert“ eingestellt (unter dem Menü auf der linken Seite).
Zuerst richten wir die FRITZ!Box so ein, dass sie den Internetzugang des Speedport Hybrid verwendet, und keine DSL-Verbindung aufbauen möchte. Den Menüpunkt finden wir unter Internet -> Zugangsdaten -> Internetzugang.
Als Internetanbieter wählen wir im Dropdown „Vorhandener Zugang über LAN“ aus.
Zum Einrichten der Rufnummern gehen wir zum Menüpunkt „Rufnummern“. Wir finden ihn im Menü unter Telefonie -> Eigene Rufnummern -> Rufnummern. Für die Telekom und easybell existieren zwar bereits Vorkonfigurationen, bei der Einrichtung der Rufnummern wählen wir als Telefonie-Anbieter immer „anderer Anbieter“ aus.
Wir nutzen easybell Trunking mit 2 Rufnummern. Wichtig bei der Einrichtung ist, dass bei Registrar und Proxy-Server die Adresse gefolgt vom alternativen SIP-Port 5064 in dieser Form eingetragen wird: sip.easybell.de:5064
Damit wäre die Einrichtung abgeschlossen. Bitte verbinden Sie jetzt die FRITZ!Box über den LAN-Port 1 mit dem Speedport Hybrid. Die FRITZ!Box ist weiterhin wie gewohnt über fritz.box, bzw. die IP 192.168.178.1 erreichbar. Das Konfigurationsmenü des Speedport Hybrid erreichen Sie über die IP 192.168.2.1, die URL speedport.ip funktioniert nicht mehr.
Deutsches Datum zum Speichern für MySQL formatieren
Möchte man ein deutsch formatiertes Datum: DD.MM.YYYY in eine MySQL-Tabelle mit dem Spaltentyp DATE speichern, so muss es vorher in das US-Format: YYYY-MM-DD umgewandelt werden.
Eine umständliche Möglichkeit wäre, den Datum-String über die PHP-Funktion explode() zu zerlegen und anschließend in der gewünschten Reihenfolge wieder zusammenzusetzen.
Deutlich einfacher und eleganter funktioniert es direkt in der MySQL-Query:
INSERT INTO `tabelle` SET `datum-englisch`=STR_TO_DATE(`datum-deutsch`,"%d.%m.%Y");
TYPO3 6.2 sehr langsam – Tuning der Datenbank
Moderne Webserver nutzen meist das ext4 Dateisystem. Bei ext4 ist eine Konsistenz-Prüfung aktiv, die jeden Schreibvorgang validiert. Dies erhöht die Datensicherheit und Datenintegrität, hat jedoch auch Auswirkungen auf die Schreib-Performance. TYPO3 nutzt für die meisten Tabellen das Speichersubsystem InnoDB, welches auf ext4 formatierten Festplatten unter Umständen nicht sonderlich performant, läuft.
Das Löschen und der Neuaufbau des TYPO3 Cache kann so jeweils um die 10 Sekunden in Anspruch nehmen. Dies mag bei bereits fertigen Websites, die nur selten verändert werden nicht tragisch sein, bei der Entwicklung ist die, wenn auch kurze Wartezeit sehr nervig.
Wir setzen seit ein paar Tagen statt herkömmlichen mechanischen Festplatten nur noch SSDs auf unseren MySQL Datenbankservern ein. Der Geschwindigkeitszuwachs ist enorm. Löschen und neu Aufbauen des Cache läuft nun in weniger als 1 Sekunde ab. So macht das Entwickeln wieder Spaß!
Website spiegeln / Backup mit SSH und FTP
Plant man einen Providerwechsel, so muss die Website vorher natürlich gesichert werden. Bei sehr kleinen Websites mit wenigen MB Größe und keinen speziellen Dateirechten (CHMOD) kann der Download lokal per FTP-Client, wie z.B. Filezilla erfolgen. Die Website ist dann auch relativ schnell wieder per FTP auf den neuen Webserver hochgeladen.
Was aber, wenn die Webseite mehrere Gigabyte groß ist? Natürlich würde dies auch hier wie oben beschrieben funktionieren. Der Upload dürfte jedoch, je nach vorhandenem Internetanschluss einige Zeit in Anspruch nehmen.
Schneller und sicherer spiegelt man eine Homepage per SSH und FTP. Hier wird die alte Website direkt auf den neuen Server übertragen, und zwar mit voller Geschwindigkeit der Internetanbindung der Webserver. SSH bietet jeder vernünftige Webhoster an. Bei uns ist z.B. SSH ab Webspace Tarif-L und in allen TYPO3 Webhosting-Tarifen enthalten.
Und so einfach geht es:
Nach dem Herstellen der SSH-Verbindung folgenden Befehl eingeben:
wget –mirror –ftp-user=USERNAME –ftp-password=PASSWORT ftp://HOSTNAME
Alles in Großbuchstaben bitte mit den Daten des alten Servers ersetzen.
Nach kurzer Zeit erhalten Sie eine 1:1 Kopie Ihrer Website auf dem neuen Webserver.
Update auf TYPO3 6.2.7 LTE erzeugt Fehler im Fluid-Template
Sollte es nach dem Update auf TYPO3 6.2.7 LTE zu einer Fehlermeldung im Frontend kommen, so ist dies eigentlich kein Fehler von TYPO3. Eigentlich war für Fluid-Templates schon lange definiert, dass die Dateinamen mit einem Großbuchstaben beginnen müssen. Ein Bug in den älteren TYPO3-Versionen hat auch die Schreibweise mit Kleinbuchstaben zugelassen.
Falsche Schreibweise:
fileadmin/templates/defaultLayout.html
Richtige Schreibweise:
fileadmin/templates/DefaultLayout.html
Wir raten, vor dem Update die Schreibweise der Dateinamen zu überprüfen und ggf. anzupassen. Bitte auch die Einbindung der Layouts in den Templates entsprechend anpassen:
<f:layout name=“DefaultLayout“ />
PageRank ermitteln für besseres SEO
Google™ bewertet Websites über den PageRank. Dieser wird ermittelt anhand der eingehenden Links auf eine Website, sowie anhand des PageRank der verlinkenden Website.
Der Wert liegt zwischen 0 und 10. Je höher der PageRank, umso wichtiger wird eine Website von Google™ eingestuft.
Wie kann ich den Google™ PageRank ermitteln?
Wir stellen auf unserer Website ein Tool zum Abfragen des PageRank zur Verfügung:
https://www.spiersch.com/webdesign/google-pagerank-check-tool/
Das Tool kann nur den öffentlichen PageRank ermitteln, dieser wird nur ein paar Mal pro Jahr aktualisiert. Der Google™ interne PageRank wird täglich neu berechnet und nicht veröffentlicht.
Was bedeuten die Google™ PageRank Werte?
0-2 unter Durchschnitt
3-5 Durchschnitt
6-7 über Durchschnitt
8-10 Elite Websites
Die Platzierung in Suchergebnissen hängt nicht direkt mit dem PageRank zusammen, ein hoher PageRank heißt nicht automatisch, dass die Website auch ein Top-Ranking erhält. Der PageRank ist nur einer von über 200 Ranking-Faktoren.
Probleme bei der TYPO3-Installation
Die größte Hürde für das Verwenden von TYPO3 ist für viele Interessenten die Installation. Dieses Problem gehört nun der Vergangenheit an.
Ab sofort bieten wir Webspace mit vorinstalliertem TYPO3 inkl. 1 Domain zum sehr günstigen Preis an.
Der Homepage-Baukasten – Flexibel wie ein Stück Holz
Einen dieser Homepage-Baukästen, er wird teilweise massiv von Firma „Zahl&Zahl“ im TV beworben kannte ich bereits länger. Zumindest vom Namen her. Ich hatte bisher allerdings nie die Möglichkeit und das Verlangen, hinter die Kulissen zu schauen, um das Ganze zu testen. Bis vor ein paar Tagen… Aber fangen wir von Anfang an:
Für einen Kunden (Großhandel) haben wir vor einiger Zeit ein Website-Plugin auf jQuery-Basis programmiert, das sich ganz einfach durch ein paar Zeilen JavaScript Code in nahezu jede vernünftig erstellte Website einbinden lässt. Einmal eingebunden, lädt es sämtliche Produkte des Großhändlers per AJAX nach und bindet die Artikel in die Websites der Händler ein. Das Ganze funktioniert hervorragend und vermeidet die Nachteile, die die Einbindung per iFrame mit sich bringen würde.
Nach unzähligen Einbindungen des Plugins in viele verschiedene Websites, sollten wir das Plugin vor ein paar Tagen in eine „Zahl&Zahl“ Baukasten-Website einbinden. Also per Browser auf die Website und nach dem Wort „Login“ gesucht, das unten rechts auf der Seite stand. Passwort eingegeben und schon war die tolle Administrationsleiste am rechten Bildschirmrand zu sehen.
Das Anlegen eines neuen Menüpunkts ging leicht von der Hand. Aber hallo? Jetzt war das Horizontale Menü plötzlich so breit, dass der letzte Menüpunkt in die 2. Zeile gerutscht ist. Zum Glück existiert in der Administration ein Punkt „Layout“ mit dem Reiter „HTML/CSS“. Durch ein paar kleine Anpassungen im CSS sollte man das Menü schnell etwas schmäler bekommen. Änderungen durchgeführt, und auf Speichern geklickt. Seite neu geladen – alles weiß, kein CSS mehr da. Laut Administration war kein Layout mehr ausgewählt. 30 Minuten in der Administration nach dem Layout gesucht, gefunden und aktiviert. Wieder alles wie vorher, auch das Menü benötigt wieder 2 Zeilen. Am Ende blieb uns nur eines übrig: Die Namen der Menüpunkte so zu verkürzen, damit alles in eine Zeile passt.
Jetzt war der Inhalt, das eigentliche Plugin an der Reihe: Der Baukasten bietet die Möglichkeit, als Inhaltselement „Widget/HTML“ einzufügen. Da hinein unseren Code für das Plugin kopiert und getestet. jQuery Fehler. Der Baukasten verwendet im Frontend auch jQuery, jedoch eine uralte Version – wir benötigen 1.11 und höher. Verschiedene Versuche, das Script zum Laufen zu bekommen sind gescheitert. Der Baukasten bietet leider keine Möglichkeit zum Zugriff auf den Frontend-Quellcode und auch keine Versions-Auswahl für jQuery. Vielleicht hätte es nach stundenlangem Probieren doch noch geklappt, aber es gab noch ein weiteres Problem.
Der Content der Baukasten-Seite war als klassischer 3-Spalter aufgeteilt. Die Spalte in der Mitte war deutlich zu schmal für den Inhalt, den unser Plugin nachlädt. Wir hätten die komplette Seitenbreite benötigt. Leider besteht beim Baukasten keine Möglichkeit, einzelnen Menüpunkten verschiedene Layouts zuzuweisen. Somit war der Einbau des Plugins für diese Seite vom Tisch, es musste eine Notlösung her.
Die Notlösung war das Anlegen des Plugins als externe Website, diese musste nun nur noch über den Menüpunkt im Baukasten verlinkt werden. Das war das nächste Problem. Der Zahl&Zahl Baukasten bietet nämlich keine Möglichkeit, einen Menüpunkt auf eine externe Website zu verlinken. Abhilfe schaffte hier das Inhaltselement „Widget/HTML“ in das wir eine JavaScript-Weiterleitung eingebaut haben. Zumindest das hat funktioniert und der Kunde war zufrieden.
Fazit: Zu mehr als am Stammtisch mit „Ich bin jetzt auch mit meiner Firma im Internet“ zu prahlen reicht ein Baukasten nicht. Das System bietet zwar viele Layouts zur Auswahl, auch für bestimmte Berufsgruppen. Was viele jedoch nicht beachten, ist die Tatsache, dass der Konkurrent ein paar Straßen weiter die selbe Idee haben, und zufällig genau das gleiche Layout wählen könnte. Selbst geringe Extras lässt das geschlossene System nicht zu, Flexibilität ist ein Fremdwort und der Gewinner dieses Systems ist nur der Anbieter, den damit seine Kunden bindet. Denn sollte man den Webspace-Provider wechseln wollen, kann man die Website nicht zum neuen Anbieter umziehen.
Auch SEO-technisch wird wohl keine der Baukasten-Websites auch nur annähernd das Ranking in Suchmaschinen erreichen, wie eine professionell erstelle Homepage vom Profi. Wobei es eigentlich das Ziel eines jeden Website-Betreibers sein sollte, möglichst viele Besucher auf die Seite zu locken.