Freie Ticketsysteme auf PHP-Basis

Issue-Tracking-System oder auch Helpdesk-Systeme gibt es wie Sand am Meer. Allerdings gibt es relativ wenige frei lizenzierte Systeme auf PHP/MySQL Basis. Eines dieser Systeme ist eTicket, welches unter eticketsupport.com zu finden ist. Nachteilig an eTicket ist, das dieses Systemen nicht bzw. nur noch sporadisch weiterentwickelt wird.

osticket.com

osticket.com

Hier punktet osTicket, welches über die offizielle Seite bezogen werden kann. Das System befindet sich in aktiver Entwicklung und wird von Enhancesoft betreut. Enhancesoft bietet dabei auch das Cloudhosting von osTicket an. Der Quelltext des unter der GPL2 lizenzierten Systems ist auf GitHub zu finden.

Phabricator

Viele größere Firmen wie Apple, Google und auch Facebook sind in den letzten Jahren dazu übergegangen, Eigenentwicklungen zu veröffentlichen und unter eine freie Lizenz zu stellen. Eines dieser Projekt aus dem Hause Facebook ist dabei Phabricator. Dabei handelt es sich um ein auf PHP basierendes Werkzeug zur kollaborativen Softwareentwicklung.

Die Projektseite von Phabricator

Die Projektseite von Phabricator

Phabricator stellt dabei unter anderem Werkzeuge wie einen Repository Browser, ein Bug/Issue-Tracker, eine Wiki und Möglichkeiten zum Code Review zur Verfügung. Genutzt wird Phabricator nicht nur von Facebook, sondern auch andere Firmen und Projekte wie Blender, Bloomberg, Dropbox oder MediaWiki nutzen dieses Werkzeug für die Softwareentwicklung. Bezogen werden kann Phabricator über die offizielle Projektseite oder die entsprechende GitHub-Seite. Der Quelltext ist unter der Apache Lizenz lizenziert.

jQuery Ajax Abfrage synchron durchführen

Zwar steht AJAX für Asynchronous JavaScript, aber trotzdem kann man solche Abfragen auch synchron durchführen. Mit jQuery kann man das ganze dabei wie folgt bewerkstelligen:

$.ajax({url: "getName.php", 
	type: "get",
	data:{lang:"american"},
	success: function(result){
		name=result;
}, async: false});

Wichtig ist, das der Schlüssel async auf false gesetzt ist – das Verhalten ist in neueren Versionen von jQuery als veraltet gekennzeichnet, kann aber noch genutzt werden.

Dateien in PHP rekursiv ermitteln

In PHP gibt es (nach meinem Wissen) keine einfache Methode um die Dateien eines Ordner rekursiv zu ermitteln. Möchte man die Dateien eines Ordners ohne dessen Unterordner ermitteln, so kann man scandir nutzen. Auf Basis dessen, habe ich eine Funktion geschrieben, welche diesen Operation auf Wunsch auch rekursiv ausführt:

function GetFiles($directory, $recursiv)
{	
	if($directory[strlen($directory)-1]!='/') $directory.="/";
	
	$files = array();
	$subDirectories = array();
	
	$scandirFiles = scandir($directory); //Read files

	foreach ($scandirFiles as $file) 
	{
		if($file=="." || $file=="..") continue;

		if(is_dir($directory.$file))
		{
			array_push($subDirectories, $directory.$file);
		}
		else if(is_file($directory.$file))
		{
			array_push($files, $directory.$file);
		}
	}

	 if($recursiv)
	 {
		 foreach ($subDirectories as $dirs) 
		 {
			 $subDirectoryFiles=GetFiles($dirs, $recursiv);
			 $files = array_merge($files, $subDirectoryFiles);
		 }
	 }
	 
	 return $files;
}

Genutzt wird die Funktion wie folgt:

$files = GetFiles('images/', true);

Der Rückgabewert ist ein Array, in welchem die Dateien mit ihren relativen Pfaden enthalten sind.

Standardgröße von Youtube-Videos unter WordPress ändern

Unter WordPress ist es ohne Probleme möglich Videos (z.B. von Youtube) und ähnliches einzubetten. Das Video wird dabei immer in einer Standardgröße dargestellt. Möchte man diese Standardgröße ändern, so kann man dies ohne Probleme bei der jeweiligen Einbettung tun. Alternativ kann man die functions.php des Themes um folgende Zeilen ergänzen:

add_filter( 'embed_defaults', 'set_embed_size' );

function set_embed_size() {
    return array('width' => 720, 'height' => 480);
}

Damit wird in diesem die Größe von eingebetteten Videos global festgelegt, so das jedes Video ohne weitere Konfiguration die gewünschte Größe besitzt.