Das Putzlowitsch Testblog für alles mögliche
Stichwort: Plugin

Was gibt’s Neues? – 123 Tweets

Schnurpsel 123 Tweets
So sieht gerade mein Twitter-Status (Putzlowitsch) aus, also insgesamt habe ich bisher 123 Tweets abgesetzt. Bei “123 Tweets” sind mir spontan meine Wordpress-Plugins eingefallen, die ich auch immer “123 Irgendwas” nenne. Da müßte ich jetzt also mal ein Twitter-Plugin entwickeln, daß ich dann “123 Tweets” nennen kann.

Ich weiß zwar noch nicht genau, was das Plugin machen wird, aber eine Idee habe ich schon. Da ich Twitter bisher im wesentlichen als Linkschleuder für meine Blogartikel verwende, könnte ich das doch gleich automatisieren. Wenn ich einen neuen Artikel publiziere, wird wird gleich ein entsprechender Tweet abgesetzt. Na mal sehen…

1 Kommentar »

BornToBeASeo – ein Plugintest

borntobeaseo

Eigentlich will ich für diese Anfrage nur testen, ob das 123 Moderate Comment Notification-Plugin auch unter Wordpress 2.8.x funktioniert. Da mir kein sinnvolles Thema eingefallen ist, muß nun wieder einmal borntobeaseo für den Test herhalten.

123 Moderate Comment Notification

Mit diesem Plugin kann man festlegen, wer alles eine E-Mail erhält, falls ein Kommentar z.B. zu borntobeaseo freigeschaltet werden muß. Normalerweise bekommt nur der Admin eine solche E-Mail. In Multiautorenblogs kann es aber sinnvoll sein, das auch die Autoren selbst Kommentare (sofern sie berechtigt sind) zu ihren eigenen Beiträgen moderieren, damit der Admin entlastet wird.

borntobeaseo – bitte jetzt kommentieren :-)

Damit ich nun sehe, ob tatsächlich auch Babsi eine E-Mail bekommt, muß hier jetzt bitte jemand einen Kommentar zu borntobeaseo hinterlassen. Danke!

0 Kommentare »

E-Mail bei Kommentar-Moderation

Wenn in Wordpress die Kommentarmoderation aktiviert ist und die Option

Mir eine E-Mail schicken, wenn
[x] ein Kommentar auf Freischaltung wartet.

eingeschaltet wurde, erhält der Blogadmin an die Adresse, die bei “Allgemeinen Einstellungen” als “E-Mail-Adresse” eingetragen ist (normalerweise die bei der WP-Installtion angegeben) eine Nachricht über die anstehende Kommantarmoderation.

Das ist bei so einem “Ein-Mann-Blog” wie diesem hier auch kein Problem, denn ich bin Adminstrator, Herausgeber, Redakteur und Autor in einer Person. Bei Blogs mit mehreren oder vielen Autoren, Redakteuren und Herausgebern wird das aber zum Problem, wenn die ganze Last der Moderation vom Kommentaren nur auf einem Paar Schultern ruht. In Wordpress selbst gibt es aber keine Option, mit der man festlegen könnte, das alle User mit der Berechtigung, Kommentare zu moderieren, eine entsprechende Nachricht erhalten.

Plugin 123 Moderate Comment NotificationDas Schöne an WP ist, daß man nahezu alles, was irgendwie fehlt, mit einem Plugin nachrüsten kann. Und so habe ich kurzerhand das Plugin “123 Moderate Comment Notification” geschrieben. Im Bereich der Einstellungen hat man drei Optionen:

  • Administrator immer informieren
  • Autor informieren, wenn er Kommentare moderieren darf
  • Moderatoren informieren, falls Autor selbst nicht moderieren darf

Wobe mit “Moderatoren” hier alle registrieren Blognutzer gemeint sind, die die Berechtigung zum moderieren von Kommentaren haben. Normalerweise sind das Nutzer mit der Rolle “Administrator” oder “Herausgeber/Redakteur”.

Heute hat sich das Plugin bereits zum ersten Mal in einem Mehrautoren-Blog erfolgreich bewährt.

7 Kommentare »

Neue Wordpressversion 2.5

Der eine oder andere wird es schon bemerkt haben, ich habe von Wordpress 2.3.3 auf Worpress 2.5 upgedated. Da bin ich auch relativ unbeschwert rangegangen, da das hier sowieso mehr ein Testblog ist, welches zudem mit den Unzulänglichkeiten des Strato-Webhostings kämpfen muß. Dabei sind es schon erheblich weniger Schwierigkeiten geworden, was Strato und Wordpress anbelangt.

So konnte ich hier erstmal testen, ob meine eigenen Plugins funktionieren. Ja, das tun sie. Wobei ich das eine oder andere an die neuen Möglichkeiten von Wordpress 2.5 anpassen werde oder schon angepaßt habe. Zudem ist mir grad ein nettes Feature aufgefallen, wenn man Tags (Stichwörter) eingeben will. Dann klappt nach Eingabe von mindestens zwei Zeichen eine Auswahlliste auf, aus der man dann einfach ein passendes, schon vorhandenes Stichwort auswählen kann. Fein Sache, das.

0 Kommentare »

Hinweis für Wordpress-Plugin-Programmierer

Das einfachste Plugin für Wordpress besteht nur aus einer PHP-Datei, da gibt es auch keine Probleme. Wenn man aber das Plugin modular gestaltet, eventuell noch Grafiken, Stylesheets oder JavaScript-Dateien laden will, fangen die Schwierigkeiten an.

Das Nachladen von PHP-Modulen ist noch relativ einfach, sofern sich die Dateien im selben Verzeichnis wie das Hauptmodul befinden. Da reicht ein einfaches

include( 'modul-2.php');

und man muß sich keine Gedanken über Pfade und Verzeichnisse machen.

Anders ist es bei Grafik-, CSS- oder Javascript-Dateien. Hier wird eine gültige URL benötigt, also muß man das Verzeichnis wissen, in dem sich das Plugin befindet. Und zwar nicht den absoluten Pfad auf dem Server, sondern den Pfad bezogen auf die Webseiten-Adresse. Häufig sieht man dann so etwas:

$css = get_option( 'siteurl' ).'/wp-content/plugins/my-plugin/my-style.css';

Es wird also einfach davon ausgegangen, daß Plugins immer im Verzeichnis ‘wp-content/plugins’ liegen. Das müssen sie aber nicht, denn in Wordpress ist dafür extra die Konstante PLUGINDIR vorgesehen.

Diese wird in der wp-settings.php wie folgt definiert:

if ( !defined('PLUGINDIR') )
	define('PLUGINDIR', 'wp-content/plugins'); // no leading slash, no trailing slash

Das if ( !defined(‘PLUGINDIR’) ) läßt erahnen, daß es durchaus vorgesehen ist, hier auch vorab ein anderes Verzeichnis zu definieren. Ganau davon mache ich Gebrauch, indem ich ein abweichendes Plugin-Verzeichnis in der wp-config.php definieren. Das ist eine einfache Möglichkeit, sich ein wenig vor Angriffen auf Schwachstellen in Plugins zu schützen. Denn auch die meisten Angreifer gehen davon aus, daß sie Plugins in Verzeichnis ‘wp-content/plugins’ liegen, sofern sie überhaupt so intelligent sind.

Wenn nun ein Plugin selbst einfach ‘wp-content/plugins’ anstelle von PLUGINDIR verwendet, sind Schwierigkeiten vorprogrammiert. Deshalb, liebe Plugin-Programmierer, verwendet bitte immer PLUGINDIR, um Pfade zusammenzusetzen. Für das obige Beispiel könnte das etwa so aussehen:

$css = get_option( 'siteurl' ).'/'. PLUGINDIR.'/my-plugin/my-style.css';

Ich verwende z.B. folgende Funktion, damit ich auch unabhängig davon bin, in welchem Unterverzeichnis innerhalb des Pluginverzeichnisses die Dateien liegen:

// ermittelt das Pluginverzeichnis
function plw123_plugin_basedir( $file ) {
	$file = str_replace('\\','/',$file); // Windows Verzeichnistrenner "umkippen"
	$file = preg_replace('|/+|','/', $file); // doppelte Schrägstriche entfernen
	$file = preg_replace('|^.*/' . PLUGINDIR . '/|','',$file); // relativen Pfad zum Plugin-Dir ermitteln
	return '/'.PLUGINDIR."/$file/";
}

...

$pluginPath = plw123_plugin_basedir( dirname(__FILE__) );
$css = get_option( 'siteurl' ).$pluginPath.'my-style.css';
5 Kommentare »

Es geht doch, Kontaktformular mit POST und Permalinks

Mein 123 No Rewrite Permalink Plugin hat einen kleinen Nachteil, es können keine Formulardaten per POST an eine Permalinkseite gesendet werden. Deshalb funktionieren z.B. Kontaktformular-Plugins wie der “DD Formmailer” nicht. Ich habe auf der Pluginseite und auch bei meiner Strato-Permalink-Konfigurationsseite darauf hingewiesen.
Angeregt durch einen Beitrag im WP-Deutschland-Forum habe ich noch mal über das Problem nachgedacht und bin auf eine recht einfache Lösung gekommen. Diese ist zumindest dann praktikabel, wenn es nur um eine oder wenige Seiten mit Formularen geht, in der Regel wird es nur eine Seite für “Kontakt” oder ähnliches sein. Am Beispiel des schon erwähnten DD-Formmailers werde ich die erforderlichen Schritte beschreiben. Ich gehe davon aus, daß das Formmailer-Plugin bereits installiert ist.

Zunächst wird eine neue statische Seite erstellt, die z.B. “Kontakt” heißt. Hier wird der Text und Code für den Formmailer eingegeben. Die URL der Seite lautet dann beispielsweise

http://schnurpsel.de/kontakt/

Diese wird bei den Einstellungen für den DD-Formmailer als “Contact page” eingetragen.

Dann wird eine Kopie der Datei index.php aus dem Wordpress-Wurzelverzeichnis erstellt und bearbeitet.
Originale index.php:

<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');
?>

Bearbeitete index.php:

<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('../wp-blog-header.php');
?>

Kleine Änderung, große Wirkung, es ist nur ein Punkt beim require hinzugekommen.
Nun wird per FTP im WP-Wurzelverzeichnis ein Unterverzeichnis /kontakt/ angelegt und die geänderte index.php dort hinein kopiert.

Das wars, jetzt kann man die Kontaktseite aufrufen und Daten absenden, sofern man sonst auch alles andere beim DD-Formmailer richtig konfiguriert hat.
Man kann das auch bei mir hier testen, unter Kontakt, wo sonst? :-)

Und zum Schluß noch ein wichtiger Hinweis: Falls man im WP-Wurzelverzeichnis eine php.ini hat, muß diese ebenfalls mit in das /kontakt/-Verzeichnis kopiert werden, denn im Unterschied zur .htaccess werden die dort gemachten Einstellungen nicht auf Unterverzeichnisse “vererbt”.

3 Kommentare »