Brushes, Brushes, Brushes

Design Nov 14, 2007 Comments Off

Nachdem ich in letzter Zeit immer wieder auf der Suche nach brauchbaren Pinseln für Photoshop bin, sowohl fürs Web- als auch für Print-Design bin ich letztens auf eine sehr solide Sammlung bei Photoshop Roadmap gestoßen. Read more »

Was füs Auge

Uncategorized Oct 19, 2007 1 Comment

Hab gerade was echt nettes fürs Auge gefunden, hat ausnahmsweise mal nix mit Design zu tun.

Das ganze ist ein kleiner Test, welcher zeigen soll welche Gehirnhälfte man mehr benutzt. Bei einer Drehung der am nachfolgenden Bild dargestellten Tänzerin im Uhrzeigersinn ist es die rechte Hälfte, bei einer Drehung gegen den Uhrzeigersinn die Linke. Read more »

How to make a WordPress Plugin 1

Wordpress Sep 13, 2007 2 Comments

Wie angekündigt also Part 1 meiner Notizen, ausgebaut zu einem kleinen Tutorial für ein erstes kleines WordPress Plugin.

Starten sollte man natürlich mit Literatur auf WordPress.org um mal ein paar Infos zu erhalten wie ein Plugin überhaupt funktioniert. Hier sehen wir was wir also für unser erstes Plugin brauchen:

Ein File (in einem Ordner, falls es mehrere sind) mit einem einzigartigen Namen. In meinem Fall nenne ich die Datei kriesi_plugin_1.php.
Dann die Datei/ den Ordner in den Plugins Ordner kopieren. Um von WordPress als Plugin erkannt zu werden braucht unser Frisch gebackenes Plugin-File ein paar Standard Informationen die wir in Form eines PHP Comments in der ersten Zeilen schreiben:

/*
Plugin Name: Kriesis erstes Plugin <-- Plugin Name
Plugin URI: kriesi_plugin_1.php <-- http://URI_Of_Page_Describing_Plugin_and_Updates
Description: Mein erstes kleines nutzloses Plugin <--A brief description of the plugin.
Version: 0.001 <-- The plugin's Version Number, e.g.: 1.0
Author: Kriesi <-- Name Of The Plugin Author
Author URI: http://www.kriesi.at <-- http://URI_Of_The_Plugin_Author
*/
?>

Dies sind die Minimalinformationen die jeder “Plugin-Header” enthalten sollte. Weitere Informationen wären zum Beispiel die Min oder Max Version von WordPress die zum Gebrauch des Plugins benötigt wird, welche Lizenz das Plugin benutzt etc…
Diese Infos kann man übrigens auch automatisch mit dem WordPress Plugin Generator erstellen lassen.

Sobald dies also geschehen ist wird das Plugin schon von WordPress erkannt und kann auch aktiviert werden. Passieren wird zum jetzigen Zeitpunkt natürlich noch recht wenig. (im besten Fall, wenn alles korrekt ist nämlich gar nix)

Damit unser Plugin etwas tut schreiben wir nun eine kleine Funktion die den Text eines Posts oder eine Page überprüft und gefiltert zurück gibt.


function bad_word_filter($my_filter){

$my_filter = str_replace('fuck', 'f***', $my_filter);
return $my_filter;

}

Diese Funktion überprüft einen String und ersetzt alle Vorkommen des ersten Parameters mit Parameter 2 in Paramtere 3.

Um die Funktion aufzurufen müssen wir WordPress nun nur noch mitteilen wann und auf welchen Bereich der Filter anzuwenden ist. Wer sich den Artikel oben durchgelesen hat der weiß das wir dafür sogenannte Hooks brauchen.

Hooks are provided by WordPress to allow your plugin to ‘hook into’ the rest of WordPress; that is, to call functions in your plugin at specific times, and thereby set your plugin in motion.

Es gibt 2 Arten von Hooks: Actions und Filter

1. Actions: Actions are the hooks that the WordPress core launches at specific points during execution, or when specific events occur. Your plugin can specify that one or more of its PHP functions are executed at these points, using the Action API.
2. Filters: Filters are the hooks that WordPress launches to modify text of various types before adding it to the database or sending it to the browser screen. Your plugin can specify that one or more of its PHP functions is executed to modify specific types of text at these times, using the Filter API.

Quelle: WordPress.org

Was wir also brauchen ist ein Filter-Hook. Diesen wollen wir auf den Content der von WordPress generiert wird anwenden. Wir fügen also nach der Funktion folgenden Funktionsaufruf hinzu:

add_filter(‘the_content’,'bad_word_filter’);

Voila: Unser erstes kleines Plugin funktioniert.

Erstes eigenes WordPress Plugin

Wordpress Sep 10, 2007 3 Comments

Wie bereits erwähnt wollte ich meine Porfolio Sektion demnächst mal auf Vordermann bringen. Ging sich in letzter Zeit dann nur doch irgendwie nicht aus. Nun ergibt es sich, dass wir für ein Kundenprojekt, welches ebenfalls auf WordPress basieren wird, ebenfalls ein solches Tool brauchen werden; vermutlich sogar ein viel komplexeres als ich es mir für meine eigene Seite gedacht habe. Ein Plugin muss her, und zwar mit einer Funktionalität die man nicht von der Stange bekommt. Also ran ans selber coden.

Eine gute Möglichkeit um zu lernen. Da ich von vielen der erforderlichen PHP Funktionen noch recht wenig Ahnung habe und von den erforderlichen WordPress Funktionen noch viel weniger, wird dem ganzen ne Menge Recherche vorangehen.

Und weil ich meine eigenen Notizen nach erledigten Projekten dann gerne mal verlege habe ich mich dazu entschlossen die Fortschritte regelmässig im Blog zu posten. So haben andere, die sich mit ihrem ersten WordPress Plugin rumschlagen dann vielleicht auch was davon und die Notizen sind für mich dann auch jederzeit leicht abrufbar =)

Und um diese Notizen dann auch hübsch darzustellen, vor allem die Codeschnippsel hab ich mir ein schönes Plugin aus dem Netz geholt: Syntaxhighlighter nennt sich des Script und es kann einen großteil der gängigen Programmier- und Script Sprachen lesen und mittels CSS durchstylen, wie man an folgendem Beispiel sieht:

(edit: wird leider von meinem speziellen Ausgabescript noch nicht korrekt dargestellt. Bis dahin bitte den Permalink verwenden)

<?php
function HTMLempty($name)
{
if(preg_match('/^[a-zA-Z.:][\w\-_.:]*$/i', $name))
{
$this->_Name = $name;
}
else
{
trigger_error("Unerlaubter Name für ein HTML-Element : '".$name."'",
E_USER_ERROR);
// wegen dem Tutorial habe ich den 2. Parameter in einer
// neuen Zeile geschrieben. Ihr könnt ihn ruhig hinter den anderen
// Parameter schreiben
}
}
?>

Also, auf gutes gelingen und bis bald wenn es heißt: “Wo fange ich beim Bau eines WordPress Plugins an?

Wie sich der Reboot entwickelt…

Miscellaneous Aug 08, 2007 Comments Off

Seit dem CSS Neustart vor einer Woche hat sich einiges getan. Mein neues Design scheint nicht allzuschlecht anzukommen obwohl mir klar war das es dem einen oder anderen etwas zu flippig und bunt sein würde. Ich liege derzeit 0.8 Punkte hinter dem ersten (was mein Ego bei einem 5 Punkte System gerade noch so verkraftet ;D ) Einige hübsche Designs und Interessante Ideen konnte ich schon entdecken.

Read more »

Ready to Reboot

Design, Miscellaneous, Wordpress Jul 31, 2007 1 Comment

Es ist soweit, wie bereits angekündigt ist die Seite nun in neuem Gewand online! Wers bis jetzt noch nicht mitgekriegt hat, ich habe beim CSS Neustart mitgemacht. Ziel dieses Projekts ist es durch Standardkonforme (X)HTML Seiten und W3C Valides CSS die Bekanntheit von Webstandards weiter voranzubringen. Und natürlich solls Spass machen… Und ein wenig profilieren darf man sich auch ;D

Dem einen oder anderen mag auffalen das die Seite an manchen Stellen etwas unvollständig wirkt und das XHTML und CSS noch nicht 100% valid sind. Das war leider nicht zu vermeiden da ich pünktlich zum 1.August mitstarten wollte, leider aber erst recht spät von der Aktion erfahren habe. Allerdings hab ich keine Ahnung wo genau die Fehler in XHTML oder CSS liegen, sehe das nur am Validator der Reboot Crew und bin mir nicht sicher was der alles checkt. Das das WordPress Backend nicht Valid ist ist klar, dagegen kann ich aber nicht viel machen. Aber falls ich was übersehen habe und jemand findet den/die Fehler bitte ich um Meldung ;D (update:html und css nun valide!)

Zu spätes beginnen ist aber nur einer von mehreren Gründen warums an manchen stellen noch nix zu sehen gibt. Da ich ein Layout mit nur einem Blogpost auf der Startseite wollte musste ich mir ne eigene WordPress Ausgabe Funktion schreiben. Natürlich hätte auch einfach the_excerpt() herhalten können, aber die Ausgabe gefiel mir gar nicht. Auch die in Hemingway-Worpress_Template verwendetet excerpt Funktion fand ich nicht ausreichend, da hier nach X Wörtern einfach das Posting abgeschnitten wird.

Also hab ich mir selbst eine Funktion geschrieben die sich nach 80 Wörtern das nächste Satzende sucht. Gepaart mit meiner Unwissenheit was man da alles beachten muss,von wegen XML Parsing und dergleichen hat das ganze recht lang gedauert.

Mit dem Ergebnis bin ich recht zufrieden, die Tatsache das der aufklappbare Bereich am Ende manchmal nen kleinen Hupfer macht stört mich zwar sehr, konnte ich aber leider in der Eile nicht mehr beheben.
Auch hab ich mich zum ersten mal an unaufdringlichem (unobstrusive) JavaScript versucht. Ist ne tolle Sache, alles funktioniert hier immer noch auch mit abgestelltem JS oder CSS, nur in leicht eingeschränkter Form, wer alles aktiviert hat bekommt aber ein paar nette Effekte serviert =)

Gibt da aber noch einige andere Sachen die ich probieren möchte, wie zum Beispiel ein eigenes Worpress Plugin für mein Portfolio schreiben, mehr Content hinzufügen und teile des alten Designs einbringen. Allerdings nicht mehr heute ;)

Wünsche noch einen schönen ersten August und viel Spass beim durchforsten der Reboots auf CSS Neustart.

PS: Achja Screenshoots vom alten und neuen Design sollten natürlich nicht fehlen:

Das alte DesignDas neue Design