Liste aller Blogs in einem WordPress-Netzwerk (Multisite)

Ich verwende ungern Funktionen, die als deprecated (veraltet) markiert sind, wie in WordPress schon seit langer Zeit die Funktion get_blog_list(). Eine Alternative zu schreiben ist allerdings recht problemlos möglich, hier der Code inkl. Kommentaren (ich habe bewusst darauf verzichtet, die Liste direkt aus der Datenbank zu holen, da ich im Zweifelsfall lieber die API verwende – mir ist bewusst, dass die Performance ggf. – gerade bei größeren Netzwerken – bei meiner Methode nicht besonders gut ist):

 /**
* Liefert einen Array mit allen Blogs in einem Netzwerk zurück
*
* @returns array
*/
function listBlogs() {
   $blogList = array();        

   // Array aller Super-Admins - das sind die Netzwerk-Administratoren, die die Blogs anlegen
   $superAdmins = get_super_admins();

   foreach($superAdmins as $admin) {
      // Leider liefert get_super_admins() einen Array von login-Namen (und nicht IDs oder WP_User-Objekten), auch die keys des Arrays sind keine IDs
      // Daher wird für jeden Eintrag zunächst das zugehörige User-Objekt und daraus die ID gesucht
      $admin = get_user_by('login', $admin);

      // get_blogs_of_user() ist im Gegensatz zu get_blog_list() nicht als deprecated markiert und kann also verwendet werden
      $blogList = array_merge($blogList, get_blogs_of_user($admin->ID));
   }

   return $blogList;
}

 

Wichtig: Das größte Problem mit dieser Funktion ist, dass die Ergebnisliste nun nach den anlegenden Admins (und nicht etwa alphabetisch etc.) sortiert ist. In meinem Anwendungsfall war das egal, wer eine andere Sortierung benötigt, muss die Funktion entsprechend umschreiben

jQuery-Datatables mit serverSide und columnFilter Plugin

DataTables sind bekanntlich die beste Erfindung seit geschnittenem Brot. Und um das Brot zu belegen, äh, die Tabellen zu filtern, ist Jovan Popovics großartiges DataTables ColumnFilter Plugin nutzenswert. Beides habe ich in eigenen Projekten im Einsatz und es funktioniert großartig. Als ich vor kurzem eine DataTable auf serverseitige Daten umgestellt habe (serverSide: true) habe ich allerdings festgestellt, dass meine columnFilter nicht mehr funktionieren. Die Lösung war einfach: Ich hatte diese versehentlich mehrfach initialisiert, d. h. $("foo").dataTable().columnFilter(...); wurde mehr als einmal aufgerufen, was wohl bei nicht-serverseitigen Daten keine negative Auswirkung hat, bei serverseitigen jedoch zu einem dieser lustigen „oSettings not defined“ Fehler führt. Vielleicht hilfts ja jemandem weiter.

Kmail1-Emails in Thunderbird importieren

Schritt 1: Das Thunderbird-Add-On „ImportExportTools“ installieren (via Tools -> Add-Ons) und Thunderbird neu starten

Schritt 2: Die Kmail-Mails finden und eine Sicherheitskopie anlegen (meine Mails lagen unter ~/.kde/share/apps/kmail/mail/inbox/cur/)

Schritt 3: Die Maildateien in .eml umbenennen, z. B. mittels find . -type f -exec mv ‚{}‘ ‚{}‘.eml \;

Schritt 4: In Thunderbird unter Tools->ImportExportTools->Alle EML-Dateien eines Verzeichnisses importieren das Verzeichnis wo die eml-Dateien liegen auswählen

Yay!

Kann Theater Beta sein? Performance Ajax//Don Quichotte

Am 17.11.2011 um 20 Uhr feiert ein grandioses Projekt meiner Theatergruppe Antigone 2.0 Premiere: Die Performance Ajax//Don Quichotte wird im Theater im Schokohof (TiSCH) in der Ackerstr. 169/170, Berlin gezeigt. (Anfahrtsinformationen)

Ajax//Don Quichotte lotet die Möglichkeiten aus, Theater als „perpetual beta“ zu produzieren: Unsere Generation hat sich an den Umgang mit dem Unfertigen, Unvollständigen, dem Halbwissen und dem Unterbrochenen gewöhnt. Der Zugang zu Cervantes Don Quichotte und dem antiken Helden Ajax erfolgt, ohne die entsprechenden Texte vorher gelesen zu haben. In Form einer Talkshow wird das Halbwissen zusammen getragen, es ergibt sich eine heitere aber durchaus auch nachdenkliche Performance.

Zur offiziellen PressemitteilungWeitere Informationen

Aufführungen

  • 17.11.2011, 20 Uhr (Premiere)
  • 18.11.2011, 20 Uhr
  • 19.11.2011, 20 Uhr
  • 20.11.2011, 20 Uhr (RC)

Bitte geht alle hin! 🙂

Schulung zum Thema Webseiten erstellen geplant

Ich spiele mit dem Gedanken Schulungen zum Thema „Wie erstelle ich meine eigene (dynamische) Webseite und bringe sie ins Internet?“ anzubieten. Es soll sich um einen Anfängerkurs handeln, der Grundlagen von HTML, CSS und PHP vermittelt, vielleicht noch ein bisschen MySQL. Ganz gerne würde ich für Freunde/Verwandte/Bekannte einen „Probelauf“ zum halben Preis anbieten, um erstmal Feedback zu sammeln (z. B. ist meine Planung für Einsteiger zu umfangreich? Oder im Gegenteil viel zu wenig? Fehlt noch etwas wichtiges? Usw.). Es stellt sich die Frage, ob überhaupt jemand von diesen an einer solchen Schulung Interesse hätte, daher hiermit der Aufruf: Schreibt mir einen Kommentar oder eine Nachricht, wenn ihr bei sowas mitmachen würdet.

Schulung zum Thema Webseiten erstellen geplant weiterlesen

Herzlich Willkommen!

Herzlich Willkommen auf meiner Seite!

Mein Name ist Benedict Roeser, was schon an der Domain klar geworden sein sollte. Auf dieser Seite sind die wesentlichen Informationen, die es über mich zu wissen gibt zu finden. Außerdem möchte ich einiges an Texten, Programmen usw. sammeln und veröffentlichen, was für den ein oder anderen nützlich sein könnte.