Kategorie: PHP

1

Installation Lighttpd mit PHP-FPM und MySQL

Lighttpd a.k.a. Lighty ist die schlanke Variante eines Webservers. Er hält sich mit Loggings zurück und verzichtet auf nützliche aber performance-killende Gimmicks wie das Parsen von .htaccess-Dateien usw. Dadurch ist er gerade für umfangreiche Webauftritte die ideale Lösung. Diese Anleitung zeigt am Beispiel eines Ubuntu 12.04-Servers, wie man den Lighty installiert, konfiguriert und mit den nötigen Modulen wie PHP-FPM, Rewrite-Funktionen und MySQL-Unterstützung versieht.

0

Eclipse kann Update-Sites nicht erreichen

Wer – wie ich und viele andere – auf Eclipse als Entwicklungs-IDE setzt, wird früher oder später auch auf die Tücken und kleinen Stolperfallen der Freeware-Lösung stoßen. Eine davon – wenn man Google und verschiedenen Foren glaub darf – ist schon mehrfach aufgetreten, auf die richtige Lösung zu stoßen ist jedoch Glückssache. Es geht darum, über Eclipse weitere Plugins wie bspw. Subversion oder auch die PHP Development-Tools nachzuinstallieren. Gerade bei DualStack-Arbeitsrechnern – also denen, die sowohl via IPv4 als auch IPv6 angebunden sind – funktioniert das nicht ohne weiteres. Eclipse wird den Dienst mit der Fehlermeldung Unable to read repository...

0

PHP array_merge_recursive() + realurl „fixedPostVars“

Einige Zeit hat es mich heute gekostet, um festzustellen, warum meine Erweiterung der realurl-Konfiguration via Hook zur Autoconfiguration fehlerhaft in der Konfiguration ankommt. Ursache ist ein Fehlverhalten der PHP-Funktion array_merge_recursive(). array_merge_recursive() Zunächst, die Beschreibung der Funktion aus der Dokumentation: array_merge_recursive() merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array. If the input arrays have the same string keys, then the values for these keys are merged together into an array, and this is done recursively, so that if one of...

2

mySQL und die Zeit

Oft wurstelt man bei der Entwicklung mit UNIX-Timestamps für Zeitangaben herum. Das ist kein Hexenwerk, aber direkt das Gelbe vom Ei ist es auch nicht. Speziell zur Implementierung von Zeit- und Datums-Filtern benötigt dieser Lösungsansatz eine Menge Logik, die in PHP gegossen werden muss (Schaltjahre, Schaltsekunden, …). Das Herumrechnen damit ist mühsam und sorgt oft für Knöten im Hirn. Dies kann man wesentlich einfacher haben. mySQL kommt mit einer großen Vielfalt von Datums- und Zeitfunktionen daher, derer man sich wunderbar bedienen kann. Wenn man sich zum Beispiel die Funktion TIMESTAMPADD() ansieht, wird man schnell merken, dass diese Funktionen das Entwicklerleben...

7

Magento: Bruttowert für kostenlosen Versand / Tablerates

In Magento kann man per Tablerates einstellen, dass ab einer bestimmten Zwischensumme (Warenkorb) der Versand kostenlos ist. Das Problem hierbei ist aber, dass Magento vom Nettobetrag des Warenkorbes ausgeht, und nicht vom Bruttobetrag. Wenn man also in den Tablerates ‚Versandkostenfrei ab 50 Euro‘ einstellt, ist der Versand tatsächlich erst ab 59,50 Euro kostenlos. Mit ein paar Zeilen kann man dies aber umgehen. Zuerst kopiert man die Datei app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php nach app/code/local/Mage/Shipping/Model/Carrier/Tablerate.php Somit wird der neue Code bei einem Magento-Update nicht überschrieben. In diese Datei schreibt man nun zwischen dem Block ‚// exclude Virtual products price from Package value if pre-configured‘ und ‚//...

1

TYPO3 Menu-Sortierung bei mehrsprachigen Webseiten

Da es immer wieder vorkommt, dass auf mehrsprachigen Seiten eine Sortierfunktion eingebaut ist, sie aber nicht funktioniert, da immer nach der Originalsprache des Feldes sortiert wird. Nach kurzem Stöbern durch Google kam ich auf diese Seite mit folgender Lösung des Problems: temp.JumpNav = HMENU temp.JumpNav { special = directory special.value = 47 1 = JSMENU 1.target = _top 1.firstLabelGeneral = Bitte wählen 1.alternativeSortingField = title wrap = <div>|</div> } So ist die Ausgangssituation mit alternativeSortingField und hierzu nun die Lösung: Typoscript: temp.JumpNav = HMENU temp.JumpNav {   special = directory   special.value = 47   1 = JSMENU   1.target...

0

Excel-Dateien erstellen statt CSV

Immer wieder stoßen wir Programmierer auf den Wunsch, Daten exportierbar bereitzustellen, damit sie vom Kunden am eigenen Rechner weiterverarbeitet werden können. Wirklich saubere Strukturen via SQL-Dump oder XML stoßen hierbei in der Regel auf große Augen und viiiiele Fragezeichen. Also wird auf einfache Strukturen runtergebrochen, die überall funktionieren: CSV. „Geht das nicht einfach als Excel-Datei?“ Durch das seltsame Eigenleben von Excel und eigentümliche Interpretation von CSV-Daten sind solche Dateien der Schmerz wohl jeden Programmierers (außerhalb Redmonds). Aber es gibt eine einfache Lösung.