Tag: Plugin

jQuery ist DeBuggers Liebling

Nachdem ich mich mehr aus der Not heraus, schnell für ein JavaScrip Framework entschieden habe, weil mein selbst gefrickeltes JavaScript mal wieder nicht Cross Browser Kompatibel war, wählte ich jQuery und bin bis heute begeistert. Natürlich sind die folgenden aufgeführten Punkte sehr subjektiv, da ich keines der anderen Frameworks getestet habe. Außerdem möchte ich erwähnen das man jQuery immer im Kompatiblitätsmodus betreiben sollte, da es sonst zu Probleme mit z.B.: Prototype kommen könnte.

[Javascript]
var $j = jQuery.noConflict();
[/Javascript]

Diese Zeile muss logischerweise nach dem Framework aber vor eurem eigenen Code eingebunden werden. Alle Beispiele die ihr dann im Internet findet müßt ihr dann entsprechend anpassen:

[Javascript]
/* Vorher */
$(document).ready(function() { … })

/* Nachher */
$j(document).ready(function() { … })
[/Javascript]

Aber jetzt zu den Punkten welche mich bisher überzeugt haben:
1. jQuery.com – Dokumentation mit Beispielen, so wie es sein muß
2. http://stackoverflow.com/questions/tagged/jquery noch mehr Beispiele und auf die meisten Fragen bereits eine passende Antwort
3. Vielzahl von Plugins
4. Performant
5. Aktive Verbesserungen am Code durch die Entwickler

Wen das bisher noch nicht überzeugt hat, der sollte sich unbedingt mal http://gamequery.onaluf.org/ anschauen. Eine Game Engine basierend auf jQuery. Wahnsinn.

5 Tipps für das richtige WordPress Theme

Täglich liest man in irgendwelchen Blogs von neuen coolen Themes für den WordPress Blog. Von dem neuen Design geblendet übersieht man manchmal, das manche Funktionen nun nicht mehr verfügbar sind. Das Design folgt also nicht der Funktion, sondern umgekehrt. Dies ist für Besucher natürlich besonders ärgerlich und so wird das neue Design schnell zum Hassobjekt, wenn liebgewonnene Funktionen nun nicht mehr zur Verfügung stehen.

Besonders ärgerlich ist es, wenn man ein passendes Design nicht erweitern kann. Deshalb eine kleine Checkliste, die helfen soll sich im WordPress Theme Dschungel zurecht zu finden.

1. Unter welcher Lizenz wurde das Theme veröffentlicht? Für private oder nicht kommerzielle Zwecke ist es meist kostenlos. Diese Lizenz könnte man schon verletzen, wenn man Anzeigen auf seiner Seite platziert. Ich empfehle ein Theme was sowohl für private und kommerzielle Zwecke verwendet werden kann.

2. Welche Funktionen sind auf den Screenshots zu erkennen? Bereits auf den Screenshots von vielen Themes ist zu erkennen ob es statische Seiten gibt oder Kategorien. Bei WordPress Themes die besonders individuell sind, kann man davon ausgehen, dass keine Widgets unterstützt werden.

3. Ist das Theme für Suchmaschinenoptimierung geeignet? Für WordPress gibt es mittlerweile eine unzählige Anzahl an Plugins zur Suchmaschinenoptimierung. Diese fängt jedoch schon bei der Auswahl des Themes an. So sollte man Bildtexte nicht fest verdrahten müssen. Bilder kann Google nicht lesen.

4. Designer sind keine Programmierer. Bevor man ein Theme fest in seinem WordPress installierte sollte man es vorher in verschiedenen Browsern testen. Für einen schnellen Test eignet sich dafür der neue Lunascape Browser.

5. Werden PSD Dateien bereitgestellt? Neben dem Archiv für den Blog sollte man auch schauen, das man sich die PSD Dateien speichert. Diese können später nützlich sein, wenn man den Blog erweitern will. Oder mal die Farben ändern will.

Wer diese 5 Tipps befolgt, sollte die Anzahl von Themes stark reduzieren können und sich später nicht ärgern müssen, wenn man irgendwann das Theme wechseln muss, weil es nicht anpassbar ist.

Die Anforderungen steigen – WordPress Plugin List

Noch ist mein Blog nicht ganz fertig, was man vielleicht auch an der einen oder anderen Stelle merkt. Zum Einen fehlen noch die statischen Seiten, die anscheinend vom Template nicht unterstützt werden. Zum Anderen fehlen mir noch ein paar Erweiterungen / Plugins.

Bisher habe ich folgende Plugins installiert:

  • Akismet
  • FeedBurner FeedSmith
  • Google XML Sitemaps
  • iG:Syntax Hiliter
  • Marekkis Watermark-Plugin
  • Post Teaser
  • Post to PDF
  • Simple Tags
  • WP lightbox 2

Wie bereits oben erwähnt fehlt mir noch ein Glossar Plugin. So wie es im Moment ausschaut, werde ich dieses wohl selber programmieren müssen, weil es bisher noch nichts fertiges für WordPress gibt. Wie dies genau abläuft werde ich im Blog berichten.

Außerdem hätte ich gerne noch ein Plugin, welches einen direkten Zugriff auf meine Downloaddateien verhindert oder entsprechend korrigiert und protokolliert. In der WordPressgemeinde scheint es dafür bisher kein Bewusstsein zu geben und dem entsprechend auch kein Plugin, von daher wird dieses wohl auch selber programmiert werden müssen.

Sollte jemand entsprechende Plugins kennen, die bereits eine entsprechende Funktionalität zu den obigen Themengebieten bieten, wäre ich für einen Kommentar dankbar.

Kommentar-Spam vs. tantan – Call to undefined function wp_die();

Der Preis des Erfolges eines jeden Blogs scheint der Spam zu sein. Nachdem ich meinen Server nun auch endlich wieder richtig konfiguriert hatte, bekam ich auch wieder die vielen Mails. Google Mail gruppierte diese zwar alle schön, aber es hat mich trotzdem genervt, vor allem weil es so leicht schien, Spam von nicht Spam zu unterscheiden. Nach einer kurzen Suche mit einer Suchmaschine stieß ich auf folgende Seite http://tantannoodles.com/toolkit/spam-filter/. Ich konnte es kaum glauben, das man das Plugin nur installieren mußte und nicht wie beim Captcha wieder in alle möglichen PHP Dateien eintragen mußte.

Nachdem ich es installiert hatte, stand auch gleich der erste Versuch an. Ich kopierte einfach den Spam Text, von dem ich per Mail haufenweise hatte, in das Comment Feld und bekam folgende Fehlermeldung

[php]
Fatal error: Call to undefined function wp_die() in wp-content/plugins/tantan/spam-filter.php on line 201
[/php]

Da machte sich natürlich gleich Ernüchterung breit. Also versuchte ich es mit einem richtigen Kommentar und siehe da, es funktionierte. Jetzt tat sich natürlich der innerliche Konflikt auf, was sollte man tun. Den Fehler so lassen oder nachschauen was da nicht funktioniert. Aber da wir ja hier schließlich beim BugBlog.de sind, dachte ich mir, ich schaue mir den Fehler mal an und mache daraus einen Post, weil anderen ergeht es bestimmt genauso.

Also in der entsprechenden Datei an entsprechender Stelle nachgeschaut und folgendes gefunden
[php]
$html .= ‘

< go back and edit my comment

‘;
$html .= ‘

‘;
wp_die($msg . $html);
[/php]

Da die Programmierung der Objekt Orientierung gefolgt ist, hätte es eigentlich so lauten müssen:
[php]
$this->wp_die($msg . $html);
[/php]

Dies ergibt aber auch keinen Sinn, weil wir befinden uns bereits in der Methode wp_die und eine Methode die sich nochmal selbst aufruft ohne Abbruchbedingung benötigt den ganzen Speicher und wird somit vom Server beendet. Also blieb nur noch eine Möglichkeit übrig:

[php]
die($msg . $html);
[/php]

Noch kurz gespeichert und schon bekommt der Kommentator die Möglichkeit, seinen Kommentar freizuschalten oder doch nochmal zu überarbeiten.

tt_address

Nachdem ich gestern über erste Opfer sprach, wurde es heute noch schlimmer. Ich habe versucht die Erweiterung direct_mail zum Laufen zu bringen aber bei der Anmeldung kam unsere bekannte Fehlermeldung:

[php]Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/typo3/typo3_src-4.1/t3lib/class.t3lib_db.php on line 796
[/php]

Nachdem ich im Internet nichts gefunden hatte bin ich nochmals meine Extensions durchgegangen und bei der Erweiterung tt_address war zu lesen, das er die Datenbank updaten wollte

[code]
ALTER TABLE tt_address ADD uid int(11) unsigned NOT NULL auto_increment;
[/code]

aber dies schien irgendwie nicht zu funktionieren bzw. meldet MySql folgendes

[code]
#1075 – Incorrect table definition; there can be only one auto column and it must be defined as a key
[/code]

Also habe ich mir die Erweiterung phpmyadmin heruntergeladen, und habe in die Tabelle tt_address ein neues Feld hinzugefügt:

[code]
ALTER TABLE `tt_address` ADD `uid` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;
[/code]

Um solche Fehler zufünftig besser zu finden, hilft außerdem folgender Wert in der localcon.php im Typo3conf Verzeichnis

[php]
$TYPO3_CONF_VARS[‘SYS’][‘sqlDebug’] = 1;
[/php]

Dadurch werden im Front- und Backend vollständige SQL Ausgaben gemacht.

[random_content group_id=”211″ num_posts=”1″]