Tipps, WordPress, XML

OpenSearch – Suchfeld für Mozilla und Internet Explorer mit WordPress anbieten

Mittlerweile hat sich das Suchfeld im Browser gemausert und selbst der IE unterstützt das offene OpenSearch-Format. Was aber daran so toll ist und warum man es ganz einfach mit WordPress nutzen kann sind zwei Aspekte: WordPress bringt die Suchoption schon mit und OpenSearch ist ganze einfach mit einem XML konfigurierbar.

Suchfeld im IE

Damit die Browser wissen, dass euer Blog das Suchfeld unterstützt, ist lediglich ein Link im Theme und eine XML-Datei auf dem Server zu hinterlegen. Also, wertet euren Weblog auf mit ein klein wenig Arbeit und ohne ein Plugin.

Der folgenden Code erklärt es, denke ich. Dabei habe ich alle Inhalte auf meinen Blog bezogen. Passt den Syntax an und ebenso die Adressen zu Favicon und XML-Datei.
Weiterlesen

Standard
Webküche, XML

Google Toolbar im IE erweitern

Der Toolbar von Google läßt sich sehr leicht erweitern. Hat man den Toolbar erstmal bei Oma installiert, dann soll sie natürlich immer über die neusten Beiträge vom Enkel bescheid wissen, ohne ihr RSS zu erklären. Die folgende Erläuterung funktioniert nur im Internet Explorer, da im Firefox der Toolbar keine Installation im Sinne Windows ist, sondern eine Erweiterung für den Browser und die XML-Dateien nicht über die Anwendungsdaten geholt werden.
Weiterlesen

Standard
Entwicklung, PHP

Konzept GUID

Ich verwende GUIDs in einem meiner größten Projekte und habe damit sehr gute Erfahrungen gemacht. Immer wieder kommt die Frage, was ist ein GUID überhaupt, deshalb nun hier eine kleine Erläuterung. Ebenso verwende ich ein GUID als Schlüssel im Plugin ©Feed um dem Feed einen eindeutigen String zuzufügen und damit nach Contentdiebstahl zu suchen.

Ein Globally Unique Identifier (GUID) bzw. ein Universally Unique Identifier (UUID) ist eine global eindeutige Zahl, die in verteilten Computersystemen zum Einsatz kommt.

GUID, auch bekannt als UUID – Universally Unique Identifier – ist 128 Bit lang (32 Zeichen, besteht aus einer 16-Byte-Zahl), feste Größe und ist weltweit gültig für einen Registrierungsprozess. Es wird keine zentralisierte Berechtigung angefordert, um GUIDs zu erzeugen, deshalb kann die Erzeugung vollständig automatisiert werden.

Jede GUID ist praktisch einmalig. Die Wahrscheinlichkeit, dass zwei gleiche GUIDs erzeugt werden, ist sehr gering.

Die interne Darstellung eines UUID ist eine spezifische Sequence der Bits im Speicher. Die korrekte Darstellung des UUID als URN oder als menschliche lesbare Zeichenkette macht es erforderlich, die Bit-Sequence in einen String zu wandeln.
Jedes GUID wird als Integer (Ganzzahl) behandelt und mit Nullen aufgefüllt, zu einer hexadezimalen Zeichenkette. Die hexadezimalen Werte „a“ bis „f“ werden als Kleinbuchstaben ausgeben und sind nicht Case-Sensitive, sind also von Groß- und Kleinschreibung unabhängig.

Formale Darstellung des GUID

      UUID                   = time-low "-" time-mid "-"
                               time-high-and-version "-"
                               clock-seq-and-reserved
                               clock-seq-low "-" node
      time-low               = 4hexOctet
      time-mid               = 2hexOctet
      time-high-and-version  = 2hexOctet
      clock-seq-and-reserved = hexOctet
      clock-seq-low          = hexOctet
      node                   = 6hexOctet
      hexOctet               = hexDigit hexDigit
      hexDigit               = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
                               "a" / "b" / "c" / "d" / "e" / "f" /
                               "A" / "B" / "C" / "D" / "E" / "F"

Beispiel eines UIDD als URN

urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6

Beispielhafte Darstellung im XML


 
    
    1bdf546c46bb3b4ce14d52ceecf5e99f 

Erzeugung mit PHP

Einfache Lösung mit Funktion unigid, die allerdings keinen Zufallsanteil besitzt.

md5 (uniqid (""));

Deshalb ist die Erzeugung durch eine Koppelung mit Funktion rand wesentlich besser.

md5 (uniqid (rand()));

Weiterführende Informationen

Standard
Plugin, WordPress

WP – Code Converter für xHTML/XML (Plugin)

Wer mit Hilfe von WordPress dem Leser hilfreiche Tipps zum Thema Webdesign gibt kommt wohl um die Integration von Codeschnippseln nicht herum. Allerdings kann man HTML nicht so einfach im Editor einfügen, da der Code interpretiert wird. Deshalb muss man im Vorfeld den Code in html-Entities umwandeln.
Für ein Projekt, bei dem es vorrangig darum geht, XML in den Beitrag einzubinden, habe ich dieses Problem gehabt und es sollten so wenig wie möglich fremde Plugins eingebunden werden. Deshalb habe ich einen simplen Konverter als Plugin erstellt, so dass die Leute, die nun XML oder xHTML in den Content einbinden wollen, ihren Code in die Textbox kopieren und nach dem Absenden erhalten sie den konvertierten Code – das geht sehr simpel mit der php-Funktion htmlentities und sit so schon in den Autorenbereich eingebunden.
Die Darstellung des Codes mache ich dann mit CSS.

Wer dieses Plugin nutzen möchte, der kann es gern hier downloaden.

Anforderungen:

Das Plugin arbeitet unter allen WordPress-Versionen, Test lief von 1.2 – 2.5*.

Screenshot:

CodeConverter Screenshot

Was macht das Plugin?

Mit Hilfe der php-Funktion htmlentities werden alle geeigneten Zeichen in entsprechende HTML-Codes umgewandelt.

Installation:

  1. Die zip-Datei downloaden und entpacken
  2. Kopiere die Datei in dein Plugin-Verzeichnis (/wp-content/plugins/), kein Unterverzeichnis
  3. Aktiviere das Plugin im Adminbereich deines Blogs
  4. Nun ist im Menu der Button „Code Converter“ zu finden

Download:



Ist die Arbeit nicht 1 Euro wert?
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.
Möchtest du mehr oder anders spenden, so besuche meine Wunschliste.

Download als zip-Datei: codeconverter.zip – 1 kByte

Historie

  • v0.3 – WP 2.5 Design
Standard
Tipps, WordPress, XML

WordPress und die RSS 1.0 / RDF – Feed Validität

WordPress bietet standardmäßig vier Feed-Varianten an – RSS 0.92, RSS 2, RSS 1.0 bzw. ATOM 0.3. Damit man das Atomformat im aktuellen Release 1.0 anbieten kann, muss man ein wenig ändern und schon ist dies ein schöner Service für die Atom-Fans.

Nichts desto trotz ist im RDF-Feed (RSS 1.0) ein Validierungsfehler, der mir aufgefallen ist, als ich auch dort Ähnliche Beiträge zum aktuellen Artikel anbieten wollte.

Der Fehler ist schnell behoben – die Datei wp-rdf.php im Root-Verzeichnis öffnen und suche nach:

ändere in:

Mehr zum RDF Site Summary (RSS) 1.0-Format gibt es auf der zugehörigen Site.

Zum Validieren nutze Validome.org/rss-atom.

Standard
Webküche, XML

Dojo – wieder eine JavaScript Bibliothek

Eine relativ umfangreiches Javascript Framework ist Dojo, welches mittlerweile einige vielversprechende Demos vorliegen hat, die auch schnell benutzt sind. bei Dojo handelt es sich um ein Open Source DHTML Toolkit.

Im Wiki von Dojo kann man sich über Hintergründe und zukünftige Projekte zum Thema informieren. Die Codebeispiele liegen übersichtlich vor und sind recht verständlich. Beim Download sind alle Demos ebenso dabei, so dass man auch offline an seiner Web2.0 – Anwendung basteln kann.
Im zugehörigen Blog gibt es noch mehr Informationen und ständige News zum Projekt.

Standard
Webküche, XML

Validome.org baut Service aus

Mein Liebling beim Validieren ist Validome – ein erstklassiger Service, der besser arbeitet, als die Validatoren des W3C. Besonders freue ich mich immer über die besseren Erläuterungen bei Fehlern, ganz zu schweigen von der Tatsache, dass sie in deutscher Sprache erfolgen.

Nun bekommt das Serviceangebot von Validome Zuwachs – Google Sitemap Validierung und Atom/RSS Validierung gehört jetzt zum Funktionsumfang, die Validierung von XML und DTD-Schema war schon länger möglich. Das Validieren von Websiten nach xhtml ist standardmäßig und kann per URL oder Upload erfolgen.

Einziger Nachteil, die Validierung von Feeds kann nur bis zu einer maximalen Größe von 150KB erfolgen.

** Die Links lassen sich auch sehr schön in das Wunderwerkzeug Web Developer Toolbar für den Firefox integrieren.
Dazu müssen die Links nur unter Options hinzugefügt werden und dann stehen sie unter Tools bereit.

  • (x)HTML, WML – http://www.validome.org/get/
  • RSS 2.0 – http://www.validome.org/rss-atom/validate?lang=ge&url=
  • Atom 1.0 – http://www.validome.org/rss-atom/validate?lang=ge&url=
  • XML-DTD – http://www.validome.org/grammar/validate/?lang=ge&grammarTyp=DTD&url=
  • XML-Schemata – http://www.validome.org/grammar/validate/?lang=ge&grammarTyp=SCHEMA&
  • XML-Dokumente mit DTD Unterstützung – http://www.validome.org/xml/validate/?lang=ge&url=
Standard
Webküche, XML

ZK – schönes OSS AJAX Framework

Ajax Frameworks gibt es mittlerweile einige und alle haben ihre Vor- und Nachteile.
Eine sehr umfangreiche Kollektion mit übersichtlicher Demo, bei der es zu jedem Beispiel den Code zu sehen gibt, und Dokumentation ist ZK.
Dem Anwender wird versprochen, dass er wenig programmieren muss und es recht simpel in die Webanwendung zu integrieren ist. Dazu gibt es eine kleines „hello world“ Beispiel


<window title="1st window" border="normal" width="200px">
	Hello, World!
</window>

und danach kann es dann umfangreicher weiter gehen.

Sicher ein Klick wert – ZK.

Standard
Code, PHP, Tipps, Webküche, WordPress

WP – Inhalte auf anderen Seiten nutzen

Immer wieder kommt es zur der Frage, wie kann ich Inhalte aus WordPress auf anderen Seiten nutzen, also außerhalb von WP. Dazu habe ich vor langer Zeit mal ein kleines Script – siehe „WK – Blogs auf anderen Seiten nutzen“ – veröffentlicht, mit welchem dies über das Auslesen der Feeds möglich ist. Trotzdem bekommen ich noch immer viele Fragen dazu und ich erläutere das ganze hier nochmal an einem Beispiel.
Das Beispiel kann man sich anschauen und downloaden. Für das Design sorgt CSS, welches ich hier nicht eingebunden habe, da es rein um die Funktion geht. Das solltet ihr dann noch anpassen.

Demo:

Das Demo dindet ihr hier: bueltge.de/test/xmlimport.php

Coding:

Im folgenden der Code der externen Seite. Dazu ist eigentlich nur zu sagen, dass ich im ersten php-Abschnitt den Feed nach RSS 1.0-Standard lade, das ist bei WP die wp-rss.php im root-Verzeichnis und im zweiten Abschnitt lade ich den Atom-Feed, das ist die wp-atom.php im root-Verzeichnis von WordPress.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de" id="xmlreader"  >
<head>
  <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
  <meta http-equiv="imagetoolbar" content="no" />
  
  <meta name="author" content="Frank Bueltge" />
  <meta name="publisher" content="bueltge.de" />
  <meta name="copyright" content="Frank Bueltge - https://bueltge.de" />
  <meta name="keywords" content="WordPress, WP, RSS, Feed, RSSFeed" />
  <meta name="Diese zeigt, wei man den RSSFeed nutzen kann, um die Inhalte auf anderen Seiten darzustellen." />
  <meta name="page-topic" content="Gastronomie" />
  <meta name="robots" content="all" />

  <title>Beitr&auml;ge au&szlig;erhalb von WordPress</title>

  <style type="text/css" title="currentStyle" media="screen" >@import "style.css";</style>
  <link rel="Shortcut Icon" type="image/x-icon" href="favicon.ico" />
  
</head> 
<body>
  <h2>RSS Import 1.0</h2>
  <p>Hier wird der Feed nach Standard 1.0 von WordPress (wp-rss.php) importiert, die letzten 5 Beitr&auml;ge</p>
  <p>Diese Seite mit dem Beispiel downloaden: <a href="xmlimport.phps">Download Datei .phps</a></p>
  <div style="margin: 2em; padding: 1em; background: #DDD">
	  <?php
	  # Script: XML-Reader
	  # Copyright: y0y.de, erweitert: bueltge.de
	  
	  # Hier editieren
	  $url = "https://bueltge.de/wp-rss.php"; //URL zum XML-Feed
	  $number = 5; //Anzahl der angezeigten News
	  
	  # Ab hier nichts mehr ändern
	  
	  # code
	  $file_content = @file_get_contents($url);
	  
	  #Items auslesen
	  $items = preg_match_all("/<item[ ]?.*>(.*)<\/item>/Uis", $file_content, $array_items);
	  $array_items = $array_items[1];
	  if(!empty($array_items)) { //Nur wenn es Items gibt, soll auch was angezeigt werden
	  if ($number>sizeof($array_items)) $number=sizeof($array_items);
	      for($n=0;$n<$number;$n++) { //Nur die angegebene Anzahl der News soll angezeigt werden
	      preg_match("/<link>(.*)<\/link>/Uis", $array_items[$n], $array_link); //URLs auslesen
	      preg_match("/<title>(.*)<\/title>/Uis", $array_items[$n], $array_title); //Titel auslesen
	      preg_match("/<description>(.*)<\/description>/Uis", $array_items[$n], $array_description); //Beschreibung auslesen
	  
	  # Ab hier wird ausgegeben
	     echo "<h3>$array_title[1]</h3>"; //Titel darstellen
	     echo "$array_description[1]"; //Ausgabe der Beschreibung
	     echo "<a href=\"$array_link[1]\" title=\"Click f&uuml;r mehr Informationen\"> mehr</a>"; //Link
	     }
	  }
	  ?>
  </div>
  <hr />
  <h2>RSS Import Atom</h2>
  <p>Hier wird der Feed nach Standard Atom von WordPress (wp-atom.php) importiert, die letzten 2 Beitr&auml;ge</p>
  <p>Diese Seite mit dem Beispiel downloaden: <a href="xmlimport.phps">Download Datei .phps</a></p>
  <div style="margin: 2em; padding: 1em; background: #DDD">
    <?php
    # Script: XML-Reader
    # Copyright: y0y.de, erweitert: bueltge.de
    
    # Hier editieren
    $url = "https://bueltge.de/wp-atom.php"; //URL zum XML-Feed
    $number = 2; //Anzahl der angezeigten News
    
    # Ab hier nichts mehr ändern
    
    # code
    $file_content = @file_get_contents($url);
    
    #Items auslesen
    $items = preg_match_all("/<entry[ ]?.*>(.*)<\/entry>/Uis", $file_content, $array_items);
    $array_items = $array_items[1];
    if(!empty($array_items)) { //Nur wenn es Items gibt, soll auch was angezeigt werden
    if ($number>sizeof($array_items)) $number=sizeof($array_items);
        for($n=0;$n<$number;$n++) { //Nur die angegebene Anzahl der News soll angezeigt werden
        preg_match("/<id>(.*)<\/id>/Uis", $array_items[$n], $array_link); //URLs auslesen
        preg_match("/<title type=\"html\">(.*)<\/title>/Uis", $array_items[$n], $array_title); //Titel auslesen
        preg_match("/<content type=\"xhtml\">(.*)<\/content>/Uis", $array_items[$n], $array_description); //Beschreibung auslesen
    
    # Ab hier wird ausgegeben
       echo "Anm. der Titel: <h3>$array_title[1]</h3>"; //Titel darstellen
       echo "Anm. Titel mit Link: <a href=\"$array_link[1]\" title=\"zur Seite\"><h3>$array_title[1]</h3></a>"; //Titel mit Link
       echo "$array_description[1]"; //Ausgabe der Beschreibung
       echo "<a href=\"$array_link[1]\" title=\"Click f&uuml;r mehr Informationen\"> mehr</a>"; //Link
       }
    }
    ?>
  </div>
</body>
</html>

Download:

Download als txt-Datei: xmlimport.txt – 4 KByte

Standard
Webküche, XML

RSS im Unternehmen

RSS im UnternehmenRSS ist nicht nur ein Schlagwort für Blogger oder Webkenner. RSS ist in erster Linie Inhalt und der ist dank XML gut strukturiert und verarbeitbar. Dank dieser Eigenschaft wird er oft auch besser von Suchmaschinen indiziert. Aber nicht nur da spielt RSS seine Vorteile aus, auch im Unternehmen, am Arbeitsplatz von Nichtwebworkern, ist RSS eine Bereicherung und kann sinnvoll eingesetzt werden. Einige Ideen und Überlegungen dazu hier.

Die interne Kommunikation kann mit Hilfe von RSS verbessert werden. News können den Mitarbeiter direkt eingespielt werden. Das geht auch mit eMails ist aber nicht so schlank und wesentlich schwerer in andere Anwendungen zu implementieren. Mitarbeiter ohne ständigen eMail-Account erreiche ich gar nicht oder schlecht.

In Gruppen oder Teams können Inhalte mit Hilfe von RSS-Feeds ausgetauscht werden. Im Normalfall werden Informationen per Mail an entsprechende Adressen gesandt, dazu kann ein Verteiler dienen oder man sucht händisch die Adressen von Empfängern, die sich eventuelle dafür interessieren. Mit RSS kann das ganze schlanker und einfacher gestaltet werden. Die News liegen im XML vor und können so in Verteiler gelangen. Mitarbeiter abonnieren die für sie relevanten Themen und bekommen dann über ihren Newsreader die nötigen Informationen. Mit Hilfe von Filtern können sich die Mitarbeiter nur auf ihre Themen beschränken und lesen nicht alle Inhalte die sie per Mail bekommen oder die im Intranet aufgeführt sind. Mitarbeiter ohne festen eMail-Account können mit Hilfe von Terminals informiert werden. Außerdem könnte man den Inhalt des Feeds gleich an weitere Applikationen einbinden und so zum Beispiel direkt eine Flyer ausgeben. Da macht sich der Vorteil der Speicherung der Daten in einem XML bemerkbar. Weiterverarbeitung wird erleichtert und Doppelpflege erspart.
Die News, die auch an auswärtige Adressen gehen dürfen, könnten auf der Internetpräsentation leicht eingebunden werden. Dort können sie dann von diversen Service (z.B. newsbee.de oder gorss.de) genutzt und weiter verarbeitet werden. Damit können auch externe User sich die Inhalte zusammenstellen und bekommen relevante Informationen zu ihren Themen. Die Werbetrommel ist somit auch ein wenig gerührt.

Eine weitere Möglichkeit wäre die Integration der News in anderen Anwendungen, zum Beispiel auf dem Desktop mit Hilfe von Desktopalerts, Widgets oder Bildschirmschonern, die die News einblenden. Diese Möglichkeit ist auch gut für die Informationsterminals geeignet. Arbeitspausen werden so mit Informationen über das Unternehmen gefüttert. Das Interesse der Mitarbeiter steigt und es entsteht keine zusätzliche Arbeit oder Zeitaufwand für die Zusammenstellung der News.

Die Informationen aus dem RSS-Feed kann ebenfalls schnell in das Corporate eingebunden werden. Dabei könnten die verschiedenen Standorte berücksichtigt werden, z.B. eine Filterung nach Land oder Sprache.

Weiterer Vorteil des XML ist die relativ simple Generierung. Über ein Redaktionssystem könnten die News schnell aktualisiert werden. Eine Doppelpflege entfällt und sorgt für schnelle Verbreitung. Anpassung in der Website und anderen Medien entfallen, sie werden nur einmal gemacht und nun sind nur die wichtigen Elemente gefragt – die Inhalte.

Wenig Aufwand – kleine Redaktion – große Verbreitung.

Standard