phpdevblog $php->dev->blog(); /* Der PHP Entwickler Blog */

Random Sortierung in TYPO3 Extbase Repository

Um eine zufällige Sortierung in einer TYPO3 Extbase Repository umzusetzen muss man über das Typo3DbBackend Objekt den Query zerlegen und kann dort dann einzelne Parts der SQL Abfrage verändern.

$backend = $this->objectManager->get("TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Storage\\Typo3DbBackend");
$parameters = array();
$statementParts = $backend->parseQuery($query, $parameters);
$statementParts['orderings'][] = 'RAND()';
$statement = $backend->buildQuery($statementParts, $parameters);
$query->statement($statement, $parameters);

Danach muss man die Query-Statements wieder per

$query->statement($statement, $parameters);

zusammenbauen und kann diesen dann per $query->execute(); ausführen.

veröffentlicht unter: Entwicklung keine Kommentare

TYPO3 Linktitel

Einer der großen Vorteile der TYPO3 meiner Meinung nach von anderen CMS Systemen unterscheidet ist, dass man hier sehr schnell und sehr leicht viel Suchmaschinenoptimierung (SEO) oder Verbesserung der Barrierefreiheit vornehmen kann. Um einem HMENU zum Beispiel den Linktiteln gleich den Seitentitel (title), Seiten Navigationstitel (nav_title) oder Untertitel (subtitle) mitzugeben, braucht man nur folgenden Befehl in das Navigationsobjekt (z.B. NO) einzutragen:

10 = HMENU
10.1 = TMENU
10.1 {
	NO {
		allWrap = <span class="item">|</span>
		ATagTitle.field = nav_title // title
	}
}

Eigene Logfiles für Magento

In Magento wird es oft durch Ajax oder JavaScript unmöglich irgendwelche Daten die man für das Entwickeln braucht im Browser ausgeben zu lassen. Schnell steht man vor dem Problem das die einfachsten Aufgaben Unmengen an Zeit verschlingen.

Dafür biete Magento eine schöne Lösung in die system.log und exception.log zu schreiben. Aber nicht nur das, Magento erlaubt es auch eigene Logfiles zu erstellen, und das mit nur sehr wenig Code.

Zuerst müssen wir im Admin-Bereich das Logging aktivieren. Hierfür gehen wir in System -> Konfiguration -> Entwickleroptionen -> Log Einstellungen (engl. System -> Configuration -> Developer -> Log Settings).

Um jetzt in die Dateien system.log zu schreiben genügt der Befehl:

Mage::log($testdaten);

Magento schreibt nun automatisch wie mit der Ausgabe von print_r die Daten in die system.log, somit sind auch Objekte und Arrays hier sofort sehr leicht zu lesen. Existiert die system.log nicht wird sie erstellt.

Für Exceptions gibt es diese Funktion, die automatisch in die exceptions.log schreibt:

Mage::logException($testdaten);

Noch interessanter ist aber die Möglichkeit eigene Logdateien zu erstellen. Hier muss man sich keine Gedanken über das Anlegen der Datei machen. Dieser Befehl genügt:

Mage::log($testdaten, null, "logdatei.log");

Die Log-Dateien sind dann im Ordner /var/log/ zu finden.

UStID checken mit SOAP

Die Benutzung von SOAP macht Webdienste höchst flexibel und kompatibel. Hier ein kleines Beispiel um mit SOAP eine europäische UStID zu prüfen

function checkUstid($ustid) {
	$vatnumber = substr($ustid,2);
	$countrycode = substr($ustid,0,2);
	$soap = new SoapClient('http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl');
	$result = $soap->checkVat(array("countryCode" => $countrycode, "vatNumber" => $vatnumber));
	if(!$result->valid)
		return true;
	else
		return false;
	}

if(checkUstid("DE234780603"))
	echo "UStID ist korrekt";
else
	echo "ungültige UStID";

Günstige 2TB Festplatte

Amazon hat derzeit eine sehr günstige 2 TB Festplatte im Angebot. Die Hitachi Simple Drive III kommt in einem silbernen Alu-Gehäuse mit schwarzem Fuß daher und hat eine blaue LED die die Aktivität anzeigt. sie schaltet sich automatisch An und Aus und es bestehen 3 Jahre Garantie darauf.

Amazon Link

EMail validieren

Eine einfache Funktion um die Struktur einer EMail-Adresse in PHP mit RegEx zu validieren

	function validateEmail($email)
	{

		if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
			return false;
		else
			return true;

	}

phpdevblog now!

Willkommen in meinem Blog,

hier werde ich in Zukunft Problemlösungen und Code Snippets zur Verfügung stellen die sich rund um das Thema PHP, Webentwicklung, CMS (TYPO3), usw drehen. Ich hoffe damit einigen zu helfen die an zermürbenden Problemen sitzen und sich im Internet einen Wolf an der Problemlösung suchen.

lg Domi

veröffentlicht unter: Allgemein keine Kommentare