WP Month Calendar

Mal wieder ein neues Plugin von mir: WP Month Calendar. Macht was der Name sagt: Es ist eine modifizierte Version des Kalender Widgets, das WordPress schon an Bord hat. Die Version von WordPress stellt immer einen Monat dar, meine ein ganzes Jahr, immer mit einem Link pro Monat. Im Tooltip sieht man dann die Beiträge aus diesem Monat.

Das ganze wurde aus Eigenbedarf geschrieben, ich wollte das Widget einsetzen, aber ich schreiben zu wenige Artikel um es zu füllen 😉

Weiterlesen

Captchas für anonyme Mantis Benutzer

Ich habe ja für meine Projekte einen Bugtracker, der mit MantisBT läuft. Den benutze ich vor allem als Notizzettel für Featureideen (aber ich freue mich auch über Bugreports). Damit dort jeder einen Fehler melden kann, habe ich den anonymen Zugriff aktiviert. Dummerweise hat das wohl ein Spambot mitgekriegt und hat im 30min Takt immer längere Kommentare hinterlassen. Nachdem ich das dann (am nächsten Morgen) auf meinem iPod gesehen hatte (WAS? 20 Emails???) habe ich erst mal die anonymen Kommentare deaktiviert, doch auf längere Sich musste eine andere Lösung her: Capchas.

Leider hat Mantis das ganze nicht eingebaut, so dass ich selber aktiv werden musste. Natürlich hat auch Mantis einen Bugtracker, und dort hat auch schon jemand einen Featurewunsch geäußert. Jemand anderes hat dann festgestellt, das Mantis doch schon Captchas unterstützt: Wenn man einen neues Account erstellt muss man Buchstaben erraten.

Weiterlesen

WordPress: Eigenes Menü für bestimmte Seiten

Ich bin ja immer noch dabei, mein „Portfolio“ ein bisschen aufzuarbeiten, und dabei soll WordPress auch als CMS benutzt werden. Jetzt hätte ich gerne auf den Seiten, die ein bestimmtes Projekt beschreiben ein Menü, dass sich auf die Unterseiten dieser Seite beschränkt, und nur einen generelle Link zurück zu Blog hat. Auf dem Blog soll natürlich weiterhin das normale Menü angezeigt werden.

Die Lösung war eine Kombination aus der WP 3.0 Menü Funktion und einem kleinen PHP Hack. Zuerst ein Mal zu der Menü Funktion: Diese Funktion ist mit WordPress 3.0 verfügbar und ermöglicht es, unter Design/Menüs eigene Menüs zu erstellen. (Wenn das Theme das unterstützt) Nur was macht man damit? Zum einem kann das Menü einer Position im Theme zuweisen. Das ist praktisch, wenn man die automatische Menüanordnung nicht mag. Doch mit einem kleinem Eingriff wird das ganz noch mächtiger!

Alles was man machen muss, ist diese Zeilen in die funktions.php des Theme zu kopieren:

Weiterlesen

Es will einfach nicht!

Seit ein paar Tagen quält mich ein Problem: Jetzt gebe ich es auf. Worum es geht..? Gut also der Reihe nach: Nico hat mich in den Kommentaren auf die Idee gebracht, ein Plugin zu schreiben, das für bestimmte Seiten ein anderes Theme anzeigt, als für den Rest des Blogs. Gesagt getan, relativ schnell hatte ich folgendes Gerüst:

<?php
$nr_pt_themed_PP = array('page2' => 'Default', 'post5' => 'Constructor');

function nr_pt_get_theme_for($page_or_post)
{
	global $nr_pt_themed_PP;

	if(array_key_exists($page_or_post, $nr_pt_themed_PP))
		return $nr_pt_themed_PP[$page_or_post];
	else
		return '';
}

//Helper. Returns the option from the selected theme, or the default value, if no theme selected
function nr_pt_GetOptionOrDefault($default, $option)
{
	if(is_page() || is_single())
		{
			global $post;
			$theme = nr_pt_get_theme_for($post->post_type . $post->ID);

			if(empty($theme))
				return $default; //no filtering
			else
			{
				$all_themes = get_themes();
				return $all_themes[$theme][$option];
			}
		}
		else
			return $default;
}

function nr_pt_filter_template($template)
{
	return nr_pt_GetOptionORDefault($template, 'Template');
}

function nr_pt_filter_stylesheet($stylesheet)
{
	return nr_pt_GetOptionORDefault($stylesheet, 'Stylesheet');
}

function nr_pt_filter_template_dir($template_dir)
{
	return nr_pt_GetOptionORDefault($template_dir, 'Template Dir');
}

function nr_pt_filter_stylesheet_dir($stylesheet_dir)
{
	return nr_pt_GetOptionORDefault($stylesheet_dir, 'Stylesheet Dir');
}
//Filters
add_filter('template', 'nr_pt_filter_template', 1); //1 is the priority, so this filter is the first!
add_filter('stylesheet', 'nr_pt_filter_stylesheet', 1);
add_filter('stylesheet_directory ', 'nr_pt_filter_stylesheet_dir', 1);
add_filter('template_directory ', 'nr_pt_filter_template_dir', 1);
?>

Weiterlesen

WordPress: temporäre Datei konnte nicht erstellt werden

…genau diesen Fehler warf mir WordPress heute beim Plugin Update entgegen. Nach längerem Suchen hab ich den Fehler gefunden. Ich hatte die Datei Rechte falsch gesetzt. Viel sauberer geht es aber so:

In die wp-conf.php folgesdes eintragen:

// Pfadangabe Temp-Verzeichnis
define(‚WP_TEMP_DIR‘, ABSPATH . ‚wp-content/tmp‘);

Dann noch das Verzeichnis erstellen(/wp-content/tmp) und NUR diesem die Rechte 777 geben. Damit geht das Update wieder, und man hat nur dem Temporären Verzeichnis alle Rechte gegeben.

Mein persönlicher Datei Manager

Da man ja schon 10GB Webspace hat, kann man sie ja auch nutzen, oder? Das dachte ich mir, und baute mir einen persönlichen Datei Manager. Also so etwas wie Rapidshare, aber nur für mich. Auf die Dateien kann man direkt linken, also keine Wartezeit o.ä.!

Es gibt verschiedene Verzeichnisse, in eines kann man auch Daten hochladen. Verschieben oder löschen kann man die Dateien leider nur über FTP (noch).

Wer sich jetzt fragt, was das soll, und wozu man so etwas braucht: Ich benutze das als „Web-USB-Stick“, d.h. ich kann dort Sachen speichern, und überall benutzen, sogar ohne etwas mitzunehmen! Und ohne es vergessen zu können :mrgreen:

Und natürlich auch um wieder etwas PHP & Co. zu lernen…

Weiterlesen

The Kingdom of Darkness Statistik

Nach 2 Tagen Arbeit ist mein Statistik System nun endlich fertig:

Bei jedem Start des tKoD Launchers werden ein paar Daten an meinen Server gesendet (Benutzername zur Identifikation, Betriebsystem, und Spielversion). Diese landen erstmal in einer Datenbank. Und jetzt kann ich sie endlich auch grafisch analysieren. und so sehen, wie schnell sich ein Patch verbreitet, wie viele Leute mein Spiel spielen, und auf welchem OS.

Falls mir jetzt jemand vorwerfen will ich wäre zu neugierig: Den Benutzernamen brauche ich zur Identifikation, da sich die IP ja ändert. Die Spielversion um, wie gesagt, zu sehen wie schnell sich ein Patch verbreitet. Und das Betriebssystem schließlich, um zu sehen wo mein Spiel gespielt wird, und auf diesen Plattformen aktiver zu testen und zu optimieren. Es ist also nur zum besten der Benutzer :mrgreen:

Hier sind noch mal ein paar Screenshots der Website, aber nur mit Testdaten, Version 0.3.0 gibst ja noch nicht(leider…:-D). Das Kreisdiagramm Spript stammt auch nicht von mir, das habe ich aus dem Internet!

Weiterlesen