MySQL 5.1 unter Debian auf UTF8 umstellen

Bei der Installation des MySQL-Servers wurde mir dieser als Latin1 installiert.
Dies läst sich überprüfen, in dem man sich via Konsole auf der Datenbank anmeldet

mysql -u root -p

und anschließend folgenden Befehl aufruft

status;

Sollte hier noch Latin1 vorkommen, muss folgende Anpassung vorgenommen werde:
* Abmelden von der Datenbank

exit

* Erstellen einer neuen Datei namens utf8-character_set.cnf unter /etc/mysql/conf.d
* Füllen der Datei mit folgendem Inhalt:
[client]
default-character-set   = utf8
[mysql]
default-character-set   = utf8
[mysqld]
default-character-set   = utf8
default-collation   = utf8_unicode_ci
character-set-server   = utf8
collation-server   = utf8_unicode_ci

* Neustarten des MySQL-Servers mit dem Befehl

/etc/init.d/mysql restart

Nun sollte nach dem erneuten Anmelden an der Datenbank alle Werte anstatt auf Latin1 auf UTF8 stehen.

 

we_google_analytics für mehrsprachige Websites

Die von mir entwickelte TYPO3 Extension we_google_analytics integriert die Webstatistik von Google auf einfach Art und Weise.
Mit nur einer Zeile Typoskript lässt sich die Extension in jede TYPO3 Website integrieren.

Bei mehrsprachigen Websites besteht hin und wieder der Wunsch, die verschiedenen Sprachen einzeln in Google Analytics zu tracken.
Mit Hilfe von TypoScript (im speziellen die Conditions), lässt sich der Wunsch einfach realisieren.

Zuerst wird die Extension ins TYPO3-System integriert.
Anschließend wird mit einer Zeile TypoScript der Google Analytics Code in die Website integriert:

config.tx_we_google_analytics.account = UA-123456-7

Jetzt erweitern wir die TypoScript Zeile so, dass bei einer weiteren Sprache (Language ID 1) ein anderer Google Analytics Account verwendet wird.

config.tx_we_google_analytics.account = UA-123456-7
[globalVar = GP:L = 1]
config.tx_we_google_analytics.account = UA-987654-3
[end]

Werden die weiteren Sprachen über eigene URLs angesprochen, so lassen sich auch damit die Konfigurationen der Extension we_google_analytics anpassen.

config.tx_we_google_analytics.account = UA-123456-7
[globalString = IENV:HTTP_HOST = www.firma.de]
config.tx_we_google_analytics.account = UA-987654-3
[globalString = IENV:HTTP_HOST = www.firma.es]
config.tx_we_google_analytics.account = UA-987654-2
[globalString = IENV:HTTP_HOST = www.firma.fr]
config.tx_we_google_analytics.account = UA-987654-1
[end]

Sollte euch der Beitrag geholfen haben, würde ich mich freuen, wenn Ihr mir einen Kommentar hinterlasst. Auch Feedback zur Extension ist gerne gesehen.

 

Android schließt App beim Setzen eines Hintergrundbildes

Für ein aktuelles Projekte sollte eine Hintergrundgrafik verwendet werden. Bei meiner Recherche bin ich auf einige Infos gestoßen, wie ein Hintergrundbild gesetzt werden kann. Das Problem war jedoch, egal welche Methode ich verwendet habe, sobald die Anwendung gestartet wurde, wurde sie automatisch wieder beendet und eine Fehlermeldung wurde angezeigt.

Die Lösung des Problems lag daran, dass das Bild unter /res/drawable/ erwartet wurde und nicht wie von mir gedacht aus einem der Ordner /res/drawable-hdpi ,  /res/drawable-mdpi oder  /res/drawable-ldpi verwendet wird.

 

Verzeichnisgröße ermitteln via Bash

Um in der Bash die Verzeichnisgröße zu ermitteln hilft folgendes Kommando:

du -h --max-depth=1 .

-h gibt dabei an, dass die Größe als lesbares Format dargestellt werden soll (z.B. 1K 234M 2G)
–max-depth=1 bedeutet, dass nur die Summen der Verzeichnisse ausgegeben werden, die sich aktuell in diesem Verzeichnis befinden (also keine Unterverzeichnisse)
. bedeutet das vom aktuellen Verzeichnis ausgehend die Größe ermittelt werden soll

 

News werden nur nach dem Leeren des Cache angezeigt

Beim einrichten der tt_news Extension ist es schon öfters vorgekommen, das die Newsartikel beim ersten Laden angezeigt werden, dann aber verschwinden. Wird im TYPO3-Backend der Cache geleert, erscheinen die Newsartikel für kurze Zeit wieder.

Eine undurchdachte Lösung wäre, in den Seiteneigenschaften unter „Verhalten“ einen Haken bei „Cache deaktivieren“ zu setzen. Dies bringt allerdings einige Nachteile mit sich (z.B. kann die Seite dann nicht vom Crawler indexiert werden).

Die bessere richtige Lösung ist, im Root-Template das statische Template der tt_news Extension „News settings (tt_news)“ zu integrieren.

 

Locallang aus Extension via TypoScript auslesen

Durch Verwenden des nachfolgenden Snippets lässt sich ein Locallang-Eintrag aus einer Extension auslesen und in TypoScript verwenden:

10 = TEXT
10.dataWrap = {LLL:EXT:pfad/zur/locallang.xml:name_index} |
10.insertData = 1

Dies ist nützlich, um z.B. den Login-Zustand darzustellen:

10 = TEXT
10.dataWrap = |{LLL:EXT:felogin/pi1/locallang.xml:username} {TSFE:fe_user|user|username}
10.insertData = 1

Sollte euch dieser Snippet weitergeholfen haben, würde ich mich über euer Feedback freuen.

 

Abhilfe für Linux Fehlermeldung: /bin/rm: Die Argumentliste ist zu lang

Beim Löschen von Verzeichnissen mit sehr vielen Dateien, kann es schon mal vorkommen, das rm mit folgender Fehlermeldung aussteigt:

-bash: /bin/rm: Die Argumentliste ist zu lang

Abhilfe schafft hier, wenn der Aufruf als Schleife ausgeführt wird:

for i in *; do rm $i; done

Dadurch sollte die Grenze von 128kB unterschritten und Ihr nicht mit der Fehlermeldung belästigt werden.
Frohes Arbeiten 😉

 

Suchen und Ersetzen in Dateien unter Linux

Auch wenn statische Websites kaum mehr vorhanden sind, und meistens durch ein CMS abgelöst wurden, stößt man hin und wieder doch auf so ein „veraltetes“ System. Sollen nun in allen Dateien Änderungen vorgenommen werden, ist das meist mit großem Aufwand verbunden, da jede Datei geöffnet, geändert und gespeichert werden muss.
Zum Glück haben wir in unserem Linux-System ein sehr mächtiges Tool namens sed. sed steht für Stream EDitor und ist ein Programm, mit dem Texte auf Kommandozeilen-Ebene geändert werden können.

Hier der Aufruf von sed:

sed -i 's/SUCHMUSTER/ERSETZUNGSTEXT/g' /pfad/zur/datei

Da wir aber, wie oben schon genannt, die Änderung nicht nur in einer Datei vornehmen wollen, sondern in mehreren, kombinieren wir sed mit find:

$ find /pfad/zu/dateien -type f -exec sed -i 's/SUCHMUSTER/ERSETZUNGSTEXT/g' {} \;

Zu beachten ist, das reguläre Ausdrücke verwendet werden und somit die entsprechenden Sonderzeichen mit einem Backslash zu maskieren sind.

Welche nützlichen findsed-Kombinationen werden den von euch verwendet?

 

TYPO3 Fehlermeldung „Cannot find configuration“

Sollte bei der Installation von TYPO3 folgende Fehlermeldung auftreten:

Cannot find configuration. This file is probably executed from the wrong location.

Kann damit gerechnet werden, dass der Pfad zur localconf.php nicht gefunden wird.

Dies liegt entweder daran, dass die Datei- und/oder Verzeichnisrechte falsch gesetzt (chmod und chown der entsprechenden Dateien/Verzeichnisse helfen hierbei), oder das über PHP Beschränkungen definiert sind. In diesem Fall hilft ein Blick in die Ausgabe von „phpinfo()“, speziell der Bereich safe_mode (sollte off sein) und open_basedir (sourcen sollten erreichbar sein).

 

 

Standardwert für Bildposition und Spaltenanzahl ändern

Das Problem, dass bei TYPO3 die Spaltenanzahl Bei „Text mit Bild“ und „Nur Bild“ standardmäßig auf 2 steht hat heute auch mich getroffen. Es war gewünscht, dass hier beim neu anlegen eines Content Elements der Wert der Spalten auf 1 steht. Auch war ein zusätzlicher Wunsch, dass die Bildausrichtung entsprechend der Vorgaben des Layouts gesetzt werden. Da schon mehrere User vor diesem Problem standen hier die von mir verwendete Lösung (funktioniert mit dem „New Content Element Wizard“ seit der TYPO3 Version 4.3, danke an Josef Florian Glatz der mich mit seinem Bugeintrag auf die richtige Lösung brachte):

Standardwerte von „Text mit Bild“ per Typoscript ändern

# Bildposition "Neben dem Text links"
mod.wizards.newContentElement.wizardItems.common.elements.textpic.tt_content_defValues.imageorient = 26
# Anzahl der Spalten auf 1
mod.wizards.newContentElement.wizardItems.common.elements.textpic.tt_content_defValues.imagecols = 0

Standardwert von „Nur Bilder“ per Typoscript ändern

# Bildposition "Oben links"
mod.wizards.newContentElement.wizardItems.common.elements.image.tt_content_defValues.imageorient = 2
# Anzahl der Spalten auf 1
mod.wizards.newContentElement.wizardItems.common.elements.image.tt_content_defValues.imagecols = 0