Archiv:

Latest photoblog

photoblog

Blog » Webdev

Heavy Pimp My WordPress

Gerade habe ich das erste mal ein wenig Zeit (bzw. einige Stunden) dafür aufgewendet nach sinnvollen WordPress Plugins zu suchen, und diese zu installieren.

Installiert sind nun:

  • Comment Live Preview
  • Comment Quicktags (modifiziert)
  • Follow URL (schon länger)
  • Gravatar (nicht für IE)
  • Text Replace
  • WP-CC
  • x-Dashboard (ebenfalls schon länger)

Vorgemerkt für später, weil komplizierter und keinen Nerv mehr heute:

  • iG:Syntax Hiliter
  • StatTraq
  • Popular Posts

Für WordPress-User dürften die Namen der einzelnen PlugIns selbstredend sein, für alle anderen brauche ich es auch nicht erklären ;)

Heruntergeladen habe ich alle genannten Plugins von der PlugIn-Seite aus dem WordPress-Wiki.

Und nun mach ich Feierabend für heute.

Achso, wer Lust hat darf sich gerne mal meinem Problem im BloggerForum annehmen
http://bloggerforum.de/topic,183,-wordpress-1…

;)

Ein kleiner Blick auf CSS3

Der CSS2.1-Standard steht offiziell vor seiner Verabschiedung. Im Moment läuft der sogenannte „Last Call“, bei dem man bis zum 15. Juli Zeit hat Kommentare abzugeben. Fein, dann fehlt jetzt nur noch die vollständige, browserweite Unterstützung und korrekte Interpretation, dann sind wir schon mal ein ganzes Stück weiter. Da CSS2.1 nun dann wohl offiziell da ist, können wir, weil experimentierfreudig und neugierig, schon einmal einen ersten Blick darauf werfen, was uns zukünftig in CSS3 erwartet, wenn die großen Browserhersteller diesen Standard irgendwann in einigen Jahren (Jahrzehnten?) mal vollständig unterstützen sollten.

Daher hier nun eine kleine Zusammenfassung dessen, was mir an neuen Features persönlich positiv ins Auge fiel. Eine genaue Syntax oder Funktionsbeschreibung werde ich mit diesem Text jedoch bewusst nicht wiedergeben, da bisher, wie erwähnt, noch lange kein Browser den kompletten CSS3 Umfang unterstützt, und ich, ohne es testen zu können, keinen möglicherweise falschen Code beschreiben möchte. Ausführlicher und „richtiger“ kann man es sich beim W3C direkt durchlesen, allerdings nur auf Englisch. Die Links dazu gebe ich mit auf den Weg. Hier vorhandene Codebeispiele sind in der Regel aus dem englischen Text des W3C übernommen.

Ok, genug Gesabbel. Fangen wir an.

Erzeugter und ersetzter Content

Als erstes einmal dürfte in CSS3 zum Beispiel der große Umfang von erzeugten und ersetzten Content interessant werden. Hiermit soll es beispielsweise möglich sein mehrere ::before und ::after-Elemente verschachtelt oder hintereinander auf einen Selektor anzuwenden. Ein Code wie

div { content: "A"; }
div::before {content: "B";}
div::before::before {content: "C";}

würde also im Browser so erscheinen:

,-----------------------.
| ,---------.           |
| | ,---.   |           |
| | | C | B | A         |
| | `---'   |           |
| `---------'           |
`-----------------------'

Wobei hier die before-Elemente auf den unteren Ebenen jeweils die Deklarationen der übergeordneten Eltern-Ebene(n) zugewiesen bekommen. Beispiel: das div bekommt einen roten Hintergrund, sowie gelbe Schrift. Dies gilt auch für die Bereiche B und C. Bekommt der Bereich unter B (div::before {content: "B";}) nun statt des roten einen blauen Hintergrund, so gilt dies auch für den Bereich C, logischerweise nicht jedoch auch für A.

Eine andere Möglichkeit soll sein, quasi unabhängige ::before und ::after Pseudoelemente zu benutzen. Diese können quasi „positioniert“ werden. ::before(1) entspricht dabei dann dem einfachen ::before. Möglich ist dann aber auch das Positionieren eines zweiten Elements, vor dem ersten. Beispiel:

div { content: "A" }
div::before { content: "B"; }
div::before(2) { content: "C"; }

ergäbe im Browser die folgende Darstellung:

,-----------------------.
| ,---. ,---.           |
| | C | | B | A         |
| `---' `---'           |
`-----------------------'

Die durch ::before erzeugten Inhalte würden zwar immernoch die Deklarationen des Erzeugers übernehmen, jedoch nurnoch auf der einen Ebene des Erzeugenden Divs selbst. So interpretiere ich die Darstellung auf der Seite des W3C jedenfalls.
http://www.w3.org/TR/css3-content/#inserting

Zwei bisher von keinem der aktuellen Browsern unterstützte Pseudo-Elemente sind ::outside und ::alternate. Mittels ::outside soll es möglich sein Elemente außerhalb des Erzeugerelementes zu steuern, um diesem z.B. einen zweiten Rahmen zu verpassen. Vom Prinzip her wohl ähnlich wie :before und :after, jedoch wie gesagt elementumfassend.
::alternate ist, wie der Name es vermuten lässt, ein Pseudo-Element um alternierenden Inhalt an anderer Stelle im Dokument einzufügen. Dieses Thema erscheint mir beim Lesen allerdings noch etwas zu komplex zum Erläutern, daher besser selbst den entsprechenden Teil in der Working Draft, CSS3-Content, Punkt 4.4 lesen:
http://www.w3.org/TR/css3-content/#inserting1

Dies war nur ein kleiner Auszug zum Thema „generierter Content“ aus der Working Draft, welche laut Roadmap bereits im ersten Quartal 2006 eingeführt werden soll. Weitere, teils sehr komplexe Punkte finden sich im CSS3-Content-Bereich des W3C:
http://www.w3.org/TR/css3-content

Hintergründe und Rahmen

Yeeehaw! … äähm, sorry. Aber irgendwas in der Art dachte ich mir, als ich mir den Entwurf für die background-Eigenschaften von CSS3 zu Gemüte führte, welcher schon bald offiziell verabschiedet werden soll. Künftig soll es dann beispielsweise möglich sein, ein Hintergrundbild zu skalieren (ich weiß, sowas macht man nicht), oder das Bild schon im Border, bzw erst nach dem Padding-Bereich anfangen zu lassen (background-origin: border/padding/content; vgl. Boxmodell).

Die für mich schönste Neuerung was Hintergrundbilder betrifft ist die, dass man nun für ein Element mehrere Hintergründe definieren und positionieren kann:

background-image: url(bild1.png), url(bild2.png), url(bild3.png);
background-repeat: no-repeat, repeat-x, repeat-y;
background-position: 20% 25%, 40% 10%, 50% 15%;

Auf diese Art hätte ich die Bilder »bild1.png«, »bild2.png« und »bild3.png«, welche sich gar nicht, nur auf der x-Achse und nur auf der y-Achse kacheln.

Auf diese Weise lassen sich, denke ich, unzählige Gestaltungsmöglichkeiten auftun. Wie sehr habe ich eine solche Möglichkeit in Vergangenheit bereits vermisst. Noch dazu wird es mittels background-crop möglich sein, ein komplettes Bild in den Cache zu laden, jedoch nur einen Teilausschnitt dessen im Browser anzuzeigen. Dies, könnte ich mir vorstellen, kann sich gut nutzen lassen, um Thumbnails für interessante und einfache (jedoch Ladeintensive) Bildgalerien zu erzeugen.

Das sind die für mich nennenswerten großen Neuerungen zum Thema Backgrounds. Kommen wir also zu den „fancy Borders“.

Hier stellt sich mir teilweise ernsthaft die Frage stellt: Wer bitte braucht das ??? Na gut, vielleicht ist das bisher auch einfach nur jenseits meiner Vorstellungskraft, aber ich möchte wirklich mal wissen wer einen border-style: wave;, dot-dash, oder dot-dot-dash brauchen wird? (vgl. Fatboy Slim – Slash dot dash)

Spielerei, aber eine vermutlich brauchbarere Neuerung ist die Möglichkeit, als border-style eine URL zu einem Bild anzugeben. So kann man sich, wie bisher nur mit Tricks, seine eigenen selbstgestylten Rahmen zusammenstellen. Könnt zwar meiner Meinung nach in eine wahnsinns Frickelei ausarten, in den Fingern kribbeln tut‘s mir aber jetzt schon, wenn ich mir überlege was man damit für einen Spaß haben könnte. ;)

Was bisher ebenfalls nur mit Tricks zu erreichen war, sind abgerundete Ecken. Diese gehören ab CSS3 zum Standard. Einfach (wie bisher bereits in Mozilla Browsern mittels @-moz-border-radius möglich) einen Radius angeben, und schon hat man auf einfachste Weise ein Element mit abgerundeten Ecken. Endlich weg vom bisherigen Standard-Ecken-Kastenlayout? Coole Sache.

Ebenfalls eine coole Sache könnte die box-shadow-Eigenschaft werden. Mittels box-shadow soll es möglich sein einen Offset, sowie eine Farbe anzugeben um einem Element einen einfachen Schlagschatten anzuhängen. Wobei sich hier ja bereits in der Vergangenheit zahlreiche Varianten auftaten um Schlagschatten egal welcher Art zu erzeugen.

Alles zum Thema Backgrounds & Borders, wie gesagt beim W3C:
http://www.w3.org/TR/2005/WD-css3-background-20050216

Spaltensatz

Auch dies könnte eine ziemlich nützliche, nie da gewesene Errungenschaft sein, wenn man sich in Fachforen einmal anschaut, bei denen in unzähligen Threads gefragt wird, wie man 2 Spalten gleich hoch bekommt. Leider scheint laut Working-Draft bisher keine Möglichkeit vorgesehen zu sein einen Umbruch in eine zweite Spalte zu erzwingen, die zweite Spalte fängt also generell dort an, wo für die Erste kein Platz mehr ist.

Aber ich bin mir sicher auch hierbei wird es einigen findigen Entwicklern gelingen einen Workaround zu basteln. Testen kann man dies übrigens bereits in aktuellen Developer-Versionen des Firefox 1.1 Release. Folgenden Code dafür einfach in ein neues HTML-Dokument kopieren:

<div style="width: 400px; -moz-column-count: 2; 
-moz-column-width: 50%; -moz-column-gap: 26px;">
Hier hinein kommt ein Blindtext</div>

Die column-rule-Angaben werden hier bisher leider wohl noch nicht interpretiert. Dafür soll es später jedoch auch möglich sein, Elemente z.B. auf dem Zwischenraum floaten zu lassen.
http://www.w3.org/TR/css3-multicol/

Float

… super Stichwort. Kannten wir bisher nur float: left; und float: right;, dürfen wir uns nun mit top, bottom, inside, outside, start, end und none rumärgern kreativ auslassen. Welches float dann nun genau wofür benutzt wird, lest es selbst:
http://www.w3.org/TR/css3-box/#the-float

Äquivalent dazu gibt es natürlich auch ein clear für jede dieser Richtungen.

Fazit

Alles in allem sieht die Working Draft für mich schon sehr interessant aus, und ich bin gespannt was es für neue spannende Tipps und Tricks geben wird, wenn dieser Standard endgültig verabschiedet und in einigen Jahren (Jahrzehnten?) in die Browser implementiert ist. Natürlich ist dies hier auch nur ein minimal kleiner Auszug von dem, was in CSS Level 3 vorgesehen ist, um Euch vielleicht ein bisschen den Mund wässerig zu machen, wie es bei mir beim Lesen der Draft auf jeden Fall an einigen Stellen der Fall war. Leider ist dieser Artikel nun doch nicht so ausführlich geworden wie ich es mir gewünscht habe, für mehr fehlt mir jedoch im Moment die Zeit, ich hoffe Ihr habt Verständnis ;)

Wer selbst einmal einen Blick auf die Roadmap und CSS3 werfen möchte, findet diese unter http://www.w3.org/Style/CSS/current-work#table

Update auf WordPress 1.5.1.2

Momentan werkelt hier ja immernoch WordPress 1.22 hinter den Kulissen. Heute habe ich lokal das Update ans Laufen bekommen, und es war weniger Arbeit als ich gedacht hatte. Daher werde ich mir jetzt einige Minuten Zeit nehmen das Update auch online durchzuführen. Falls also gleich mal etwas nicht funktionieren sollte, nicht wundern.

Neues zum Thema Pagerank?

Heute im Mediengestalterforum gefunden, unter der angegebenen Quelle war jedoch leider nichts mehr zu finden:

Gerade eben haben wir mit Stefan Keuchel (Medienstelle Google Deutschland) telefoniert. Keuchel bestätigte, dass es sich NICHT um einen Ausfall oder eine dauerhafte Abschaltung handelt! Vielmehr berichtete Stefan Keuchel in Kurzform von Neuerungen und Verbesserungen am PageRank System. Details wollte Keuchel uns nicht verraten, außer der Aussage, dass sich „einige Spammer bald wundern werden“ und das gerade im Moment an einer offiziellen Stellungnahme gearbeitet wird, konnten wir insofern nicht mehr in Erfahrung bringen.

Bin mal gespannt Emoticon: Popcorn-Smiley

Firefox 1.1 Preview Developer Candidate Release Alpha

(… oder so ähnlich)

Seit heute Nacht is das Candidate Release für Developer vom Firefox 1.1 (Codename „Deer Park“) draußen.

Laut inoffiziellem Changelog wurden mehrere Bugs behoben. So ist es nun zum Beispiel möglich in overflow: auto/scroll formatierten divs mit dem Mausrad zu scrollen, und die Maus nimmt den :hover-Status nun auch an, wenn diese beim Überfahren eines Links nicht bewegt wird (Bei der Verwendung von Mausrad oder Tastatur).

Nichts gemerkt hab ich dagegen vom neuen Feature welches laut Featurelist in diesem Release implementiert werden sollte, nämlich dem Formatieren von Websites durch die @-moz-document-Regel.

Ebenso lustig wie eigentlich auch sinnlos ist das neue Feature, dass Tabs in denen lediglich ein Bild geöffnet ist, nun als „favicon“ ein 16×16 Pixel großes Thumb des entsprechenden Bildes anzeigen.

Zu finden ist die Vorabversion unter
http://weblogs.mozillazine.org/asa/archives/008197.html

Eigene Firefox-Searchplugins erstellen

Achtung: der hier beschriebene Weg behandelt die Erstellung eines Such-Plugins für den Firefox Version 1.x. Mit dem Erscheinen der neuen Versionen ist diese Weg möglicherweise veraltet!

Als Firefox-User hat man die Möglichkeit die Suchleiste oben rechts neben der Adressleiste zu verwenden (Shortcut: strg+k).

Suchplugins für die Leiste gibt es bei MozDev eine ganze Menge.

Auch eigene Suchmaschinen, beispielsweise das eigene Blog, hinzuzufügen ist nicht schwer. Ein Plugin für meinen Blog gibt es z.B. hier. Zur leichteren Verständnis sollte diese Datei evtl nebenbei geöffnet werden. Wir sollten vorab allerdings sicherstellen das die Suche, welche wir integrieren möchten die GET-Methode benutzt, da nur diese bisher vom Browser unterstützt wird.

Zunächst wird der Ordner /Mozilla Firefox/searchplugins geöffnet. Darin befinden sich jeweils 2 Dateien zu einer Seite. Eine mit dem Dateisuffix .src, welche die Daten für das eigentliche Formular enthält, und entweder ein .gif- oder ein .png-Bild. Dieses Bildchen sollte ein 16×16 großes Icon sein, wobei sich das Favicon der jeweiligen Seite zur Wiedererkennung natürlich sehr anbietet. Für unsere Suche legen wir jetzt eine Datei seitenname.src an, dazu ein entsprechend benanntes .gif oder .png-File.

Nun öffnen wir die Quellcodeansicht der Seite deren Suche wir hinzufügen möchten, und scrollen zur Stelle die dem Suchformular entspricht. Beispielsweise:

<form method="get" action="formular.php">
 <input type="text" name="suchname" />
 <input type="submit" />
</form>

Hier merken wir uns die kursiv markierten Stellen (und ich merke das ich in diesem Artikel schon fast 10× „wir“ benutzt habe), öffnen unsere neu angelegte *.src mit einem einfachen Texteditor, und schreiben in diese folgenden Inhalt:

<SEARCH
  version = "7.&#049;" 
  name="<em>Seitenname</em>"
  description="Durchsuche meine Seite"
  method="GET"
  action="<em>http://www.meinedomain.de/pfad/zum/formular.php</em>"
  queryCharset="ISO-8859-&#049;" 
<em># Zeichenkodierung der Seite</em>
  searchForm="http://www.meinedomain.de"
  routeType="internet"
>
<input name="<em>suchname</em>" user>
# An dieser Stelle können auch hidden-fields in der Form:
<input name="<em>feldname</em>" value="<em>wert</em>">
#eingefügt werden)
</search>

Dies sind die nötigsten Werte die eingetragen werden müssen. Starten wir nun den Firefox neu, so sehen wir in der Suchleiste unsere gerade neu angelegte Suche:
grafik: suchplugins-screenshot

Links clientseitig im neuen Tab öffnen?!

Gibt es eigentlich wirklich keine Methode einen Link auf Clientseite im neuen Tab öffnen zu lassen? Ich habe mir nach einem meiner Streifzüge durchs XHTMLForum, und einigen Threads über pro & contra target=“_blank“ mal einige Gedanken gemacht. Die Links auf meiner Seite gehen in neuen Fenstern auf. Dies wird per JavaScript gelöst, mit einer Methode die ich hier bereits einmal beschrieben habe.

Ich löse das auf diese Art, da ich denke das ein halbwegs schlauer (Firefox/Opera/Safari) User an der Statuszeile erkennen kann, dass es sich beim entsprechenden Link um einen externen Verweis handelt. Ich jedenfalls achte auf sowas wenn ich einen Link anklicke. In 99% aller Fälle klicke ich dann mit der mittleren Maustaste auf diesen Link, um einen neuen Tab zu erzwingen.

Da ich davon ausgehe, dass ein User entsprechende Links im Artikel anklickt, während er den Artikel noch zuende liest, lasse ich diese Links vorsichtshalber im neuen Fenster aufgehen. Dies kann bei Artikeln mit vielen externen Quellen schnell recht unübersichtlich werden. Gerne würde ich daher diese Methode austauschen, gegen eine, bei der sich die Links im neuen TAB öffnen.

Mir ist bisher keine Möglichkeit bekannt (ausser demnächst mittels CSS3, worüber ich später an dieser Stelle noch ausführlicher schreiben werde), mit der mein Vorhaben zu realisieren wäre. Auch in Foren sagte man mir das dies nicht möglich wäre. Nun habe ich bereits einige Firefox Extensions gesehen, die ja nunmal mit XUL laufen, welche die Links einer Seite in neuen Tabs öffnet (Bookmarks Home, Tabbrowser-Preferences, …).

Diese Technik müsste sich meiner Meinung nach prinzipiell ja adaptieren, und in Webpräsenzen einsetzen lassen. Ich habe mich bisher allerdings erst sehr wenig mit XUL-Applikationen auseinandergesetzt. Daher hoffe ich das sich unter den Lesern dieses Artikels einige befinden, die bereits XUL entwickelt haben, und evtl. einige Erläuterungen dazu abgeben können.

Eine andere Möglichkeit welche ich mir gerade überlegt habe ist folgende: Im Firefox lässt sich ein neuer Tab mittels STRG-Taste erzwingen. Unter JavaScript gibt es eine Möglichkeit einer Aktion Tasten zuzuweisen (event.keyCode). Die STRG-Taste wäre in diesem Fall event.keyCode == 17.

Meine Überlegung die URL des Links als Argument an eine Funktion zu übergeben, in dieser Funktion dann den keyCode 17, also den der STRG-Taste aufzurufen, und direkt danach per window.open den Link zu öffnen führte leider nicht zum gewünschten Ergebnis.

<script type="text/javascript">
function openTab(url) {
 event.keyCode = 17;
 window.open(url);
}
</script>

<a onclick="openTab(this.href); return false;" href="http://www.google.de">google</a>

Ausserdem weiß ich nicht wie das bei Mac-Usern wirken würde, diese ja keine STRG-Taste zur Verfügung haben.

Auch wenn ich nicht gerade Fan davon bin den Usern die Entscheidung abzunehmen wie ein Link geöffnet werden soll, so möchte ich schon das ein User nicht irrtümlich meine Seite (unerwünscht) verlässt indem er einen Link anklickt, aber Ihn gleichzeitig auch nicht mit einer Flut von PopUps überhäufen.

Daher würde ich hier an dieser Stelle gerne die Diskussion starten, ob wir als Webentwickler wirklich auf CSS 3 warten müssen oder ob es irgendeine (wenn auch noch so skurrile) Möglichkeit gibt Verweise in Tabs zu öffnen. Über hilfreiche Kommentare jeglicher Art würd ich mich freuen. Ansonsten wünsche ich euch ein frohes Pfingstwochenende!

Mailkonten aus Thunderbird wiederherstellen

Als eMail-Programm meiner Wahl kommt Mozilla Thunderbird zum Einsatz, da es allgemein sicherer ist als Outlook, und einfach so herrlich zum Browser meiner Wahl, Firefox, passt. Wem irgendwann mal das passieren sollte, was mir heute passiert ist, nämlich das nach kurzer Unterbrechung der Stromzufuhr auf einmal alle Konten und Mails verschwunden sind, der sollte sich mal die FAQs von thunderbird-mail.de, oder speziell diesen Link anschauen.

Sollten die Kontodaten unbeschädigt sein, so kann man diese mit der beschriebenen Methode einfach wiederherstellen. Ein echter Segen!