Donnerstag, 28. Oktober 2010

Beiträge aus Wordpress-Datenbank direkt abrufen

Um eine Liste von Beiträgen in einer eigenen Webseite anzeigen zu können, greifen die meisten Webmaster auf den wordpresseigenen Feed zurück, und lesen diesen mit einer entsprechenden PHP-Routine in die eigene Webseite ein. Dieser Umweg belastet aber nur das Wordpress-System und enthält Fehlerquellen bei den Formatierungen. Einfacher ist ein direktes Auslesen der Datenbank.

Mit folgender Routinen lese ich die die ersten sieben Einträge aus der Datenbank in gekürzter Form und die restlichen Artikel nur als Überschrift auf:

1. Routine (listet die ersten sieben Artikel in verkürzter Form auf)



$blogpath = "http://www.regensburger-tagebuch.de/artikel/";
$sql = "SELECT
post_name,
post_date,
post_title,
post_content,
post_excerpt
FROM
wp_posts //je nach Suffix abaendern!
WHERE
post_type = 'post' AND
post_status = 'publish'
ORDER BY
post_date DESC
LIMIT 7
";
$result = mysql_query($sql);
$menge = mysql_num_rows ( $result );
$result = mysql_query($sql);
if(mysql_num_rows($result)){
while($row = mysql_fetch_assoc($result)){

$post_name=$row['post_name'];
$url=$blogpath.$post_name;
$post_title=$row['post_title'];
$post_date=$row['post_date'];
$post_content=$row['post_content'];
$trenner="<"."!"."--more--".">";
$post_content=str_replace("<p>$trenner</p>", $trenner, $post_content);

$tmp=explode($trenner, $post_content);
$tmp2=count($tmp); // fuer spaeter zu gebrauchen

$post_content=$tmp[0];
$post_content=strip_tags($post_content, "<br>");
// beseitigt alle Formatierungen ausser br, so dass beim Abschneiden des Textes
// keine unvollendeten Elemente herauskommen können; eine Alternative waere
// der Rueckgriff auf evtl. vorhandene Exzerpte.
 
$readmorelink="";
if(!empty($tmp[1])) $readmorelink="<p class='weiterlesenlink'><a href='$url'>Zum Artikel (weiterlesen) ...</a></p>";

echo "<div class='artikelauszug'>";
echo "<p class='posttitle'><a href='$url'>$post_title</a></p>";
echo "<p class='postcontent'>$post_content</p>";
echo $readmorelink;
echo "</div>";

}

}




2. Routine: listet alle Artikel (hier ab dem siebten Artikel) nur mit Titel auf. 

Diese Routine ist wesentlich einfacher, weil man nicht auf Formatierungsprobleme eingehen muss, die beim Abschneiden des ersten Content-Teiles entstehen können.

$blogpath = "http://www.regensburger-tagebuch.de/artikel/";
$sql = "SELECT
post_name,
post_date,
post_title
FROM
wp_posts  // je nach suffix evtl. abaendern
WHERE
post_type = 'post' AND
post_status = 'publish'
ORDER BY
post_date DESC
LIMIT 7, 10000 // beginnt ab dem achten Datensatz und geht sicherhetshalber nur bis zum 10.000sten Datensatz; den LIMIT-Befehl kann man auch ganz weglassen, dann erhält man alles

$result = mysql_query($sql);
$menge = mysql_num_rows ( $result );
$result = mysql_query($sql);
if(mysql_num_rows($result)){
while($row = mysql_fetch_assoc($result)){
$post_name=$row['post_name'];
$url=$blogpath.$post_name;
$post_title=$row['post_title'];
$post_date=$row['post_date'];
$post_date=substr($post_date, 0, 11);

echo "<div class='artikelliste'>";
echo "<p><a class='listentitel' href='$url'>$post_title</a></p>";
echo "<p style='font-size:0.8em'>Datum: $post_date </p>";

//$readmorelink="<p style='text-align:right'><a href='$url'>Zum Artikel</a></p>";
//echo $readmorelink;

echo "</div>";

}

}

Anzusehen z.B. bei:
www.regensburger-tagebuch.de/startseite.html (keine Wordpress-Seite)
www.regensburger-tagebuch.de/Archiv.html (auch keine Wordpress-Seite)
www.burkes.de/startseite.html (keine Wordpress-Seite)

Dienstag, 10. August 2010

YoWindow-Wettermodul individualisieren und in Webseite einbauen.

Eine Anleitung für Webmaster zum Modifizieren des kultigen YoWeather-Wettervorhersage-Moduls.

Der Einbau des Wettervorhersage-Moduls ist einfach.  Den Quellcode erhält man KOSTENLOS und ohne Anmeldung oder sosntigen Aufwand auf Yowindow.com. Dort ist die Unterseite etwas versteckt, denn YoWindow ist hauptsächlich ein Desktop-Programm, das dafür sorgt, dass statt eines x-beliebigen Bildschirmhintergrunds oder Screen-Saver das Wetter für einen Ort in leicht animierter Form  angezeigt wird.

Das Programm


Das Desktop-Programm, das demnächst auch als Mac-Version herauskommen soll,  ist seriös, virenfrei und vielfach empfohlen. Die Betreiber der Webseite machen keinen kommerziellen TamTam umd das eigentlich geniale Modul, das m.E., wegen der Individualisierbarkeit bei entsprechender Mitarbeit der community, zum Renner werden könnte. Der Begriff "Window" in "YoWindow" hat übrigens nichts mit dem Betriebssystem zu tun.

Das Webseiten-Widget


Das Webseiten-Widget, so nennt sich das Modul zum Einbinden auf eine Webseite, findet man rechts über den Button "Add to Webpage"
oder direkt mit Hyperraumsprung, äh, Hypersprung auf die Unterseite
http://yowindow.com/weatherwidget.html
Living Weather for blog or website

Eine komplette Liste aller Parameter findet man hier (ich habe sie noch nicht ausprobiert):

Das System hat mich so begeistert, dass ich  es (trotz des Erfordernisses von Flash beim User) vor ein paar Wochen  testweise eingebaut habe, z.B. auf meinem Regensburger Blog (http://regensburger-tagebuch.de/Wetter.html) oder auf dem eMagazin in einem Artikel zur WM-Fußballweltmeisterschaft: ((Wie ist sieht das aktuelle Wetter in Südafrika aus?), aber jeweils nur im Standardformat:

Beispiel aus Regensburger-Tagebuch.de


Navigieren Sie durch Uhrzeit und Datum, und sehen Sie was herauskommt. Benutzen Sie den oberen Rand und klicken oder ziehen Sie mit der Maus auf eine bestimmte Uhrzeit.
YoWindow.com Forecast by yr.no
Das hier verwendete Standardbild lässt sich durch ein eigenes ersetzen und einbinden. Yowindow blendet dann in dieses Bild den jeweiligs passenden Himmel ein  und lässt im Vordergrund den Regen, den Hagel oder den Schnee fallen. Gemacht haben das schon viele User aus der Wetterbranche, z.B. http://www.luckysnet.de/Php/dwdforecast.php (Wetterseite von Fam. Luckner)
http://wetter.altenessen.info/animation.html (Wetterseite von Dietmar Hollenberg)
http://wetter.toernover.com/ (Wetterstation von Werner Heidotting auf Mallorca)
oder, aus dem YoWindow-Forum:


Die Individualisierung durch landscapes


Wie bekomme ich aber nun ein eigenes Vorhersage-Bild? Durch "landscapes". Jeder kann eigene landscapes basteln, indem er Fotos oder andere Bilder entsprechend präpariert und zusammen mit einer speziellen Datei hinterlegt. Das hört sich schlimmer an, als es ist. Auch ein Nicht-Programmierer kann das. Es gibt eine Anleitung auf YoWindow, sogar in deutscher Version.
Die bereits hinterlegten Landscapes und die Anleitung findet man im Forum, und zwar auf
http://yowindow.com/forum/viewforum.php?f=22

Die landscapes können sowohl im Desktop-Programm als auch im Webseitenwidget verwendet werden.

Beim Einbau des Widgets wird  als Parameter die URL zu den Landscape-Datei angefügt (Beispiel:  … landscape=http://www.deinedomain.de/wetter/landscapes/regensburg.ywl).

Beispie:
… http://yowindow.com/online.html?location_id=gn:360630&ln=Cairo&tf=24&us=metric&landscape=http://landscape.yowindow.com/landscapes/pyramids/pyramids1.ywl

Dort im Forum versteckt  findet Ihr auch die Anleitung, wie man solche landscapes selbst erstellt.


Eigene Anmerkungen


Diese Anleitung möchte ich nicht wiederholen, sondern nur ergänzen:
I
m Wesentlichen geht es darum, ein Stadt- oder Landschaftsbild mit Himmel zu erstellen, bei der Himmel entfernt bzw. transparant gemacht wurde. Dazu wird das Bild als .png-Datei abgespeichert. Speziell in PNG und GIF-Dateien kann man bestimmte Farben (bzw. farbige Flächen) transparent machen, bei JPG oder BMP-Dateien funktionart as nicht. Das PNG-Format ist dabei weniger bekannt, aber schon lange in Gebrauch. Es wurde speziell zum Einsatz in Webseiten erfunden.
Gelegentlich lesen Sie den Begriff "freistellen" oder "maskieren". Gemeint ist genau das oben gesagte: dass man Objekte freistellt, indem man den Hintergrund transparent macht.
Hat man in einem  Bild den Himmel "entfernt" speichert man es zusammen mit einer kleinen Datei im Internet ab.

Die Datei mit der Endung .YWL ist schnell erstellt; sie enthält die Information, wo im Bild die Sonne aufgeht, also den "horizonlevel". Die Datei kann dann so aussehen
<landscape name="Live Sky example" type="picture"  id="com.yowindow.pyramids">
    <data src="http://www.deinedomain.de/landscapes/pyramids.png" horizonLevel="382">
        <about>The original photo by Ed Yourdon</about>
    </data>
</landscape>

Diese YWL-Datei enthält die Angabe, wo das Bild gespeichert ist. Die YWL-Datei und Bilddatei müssen im Internet auf irgendeinem Server gespeichert sein. Bei der Einbindung des Widgets in die Webseite muss dann nur noch bei der Einbindung des Flash-Applikation als zusätzlicher Parameter der Pfad zur YWL-Datei (=landscape-Datei) angegeben werden

  …landscape=http://landscape.yowindow.com/landscapes/pyramids/pyramids1.ywl


Für diejenigen, die das KnowHow zum Erzeugen maskierter Bilder haben, dürfte das Ganze  jetzt kein Problem mehr sein. Sie müssen nur wissen, dass maskierte Bilder auch als PNG-Datei statt als GIF-Datei gespeichert werden können. Im PhotoImpact (meinem haushohen Favoriten) ist es am besten, über den Bildoptimierer im Menüpunkt WEB zu gehen, dort gibt es auch eine PNG-Variante.
Für diejenigen, die bezüglich der Bildfreistellung noch Lernende sind: benutzten Sie das im YoWindowtutorial genannte Opensource-Programm GIMP oder das von mir genannte PhotoImpact (Version 11 ist für ein paar Euro originalverpackt auf ebay erhältlich, das reicht vollkommen). Verlieren Sie keinesfalls Zeit, indem Sie versuchen, das  das ebenfalls im Tutorial genannte Programm PHOTOSHOP zu organisieren, es sei denn, Sie haben dieses (völlig überteuerte) Programm bereits. Und PhotoshopElements, die nur scheinbar leichtgewichtige Variane von Photoshop, können Sie hier sowieso vergesen.

Installieren Sie GIMP und gehenSie auf youtube.com. Geben Sie dort als Suchbegriff ein "GIMP Tutorial freistellen".

Ein Beispiel wäre: The Gimp / Objekt frei stellen

Das von mir genannte Tutorial berücksichtigt die Möglichkeiten des neuesten Version von GIMP, weshalb ältere Tutorials unnötig aufwändig sind. Falls Sie noch einfachere Anleitungen finden oder wissen, melden Sie sie hier.

Zu dem Thema Bildbearbeitung möchte ich demnächst noch etwas schreiben. Ein bisschen Geduld.


Aus der Homepage von YoWindow


Das Tool wird bisher ganz überwiegend von Betreibern von Wetterstationen benutzt, ist aber für jedermann erhältlich. Die Selbstbeschreibung auf der Homepage von YoWindow sieht übrigens so aus.
Aus der YoWindow-Webseite (Stand August 2010): What is YoWindow?
YoWindow is a weather application.
A new kind of a weather application.
YoWindow displays weather conditions over a nice and peaceful landscape. So you can watch the weather looking at the landscape.
Naturally – just like looking out of your window.
That makes YoWindow special.
You see the picture instead of bare weather data.
In your window you can watch current weather only.
YoWindow is able to display the weather forecast.
You can point at any time you wish and enjoy the weather picture.
You can even scroll the time.
At the moment, there are no weather application of this kind.
YoWindow is a next generation interface for weather application

YoWindow Editionen, Stand August 2010
Eine Apple-Mac-OS X Version ist laut der Webseite in Vorbereitung.


Die Erfinder von YoWindow


Ich persönlich finde es wichtig, bei nicht-kommerziellen Projekten dieser Art auch immer die Initiatoren zu nennen, das sind hier:
  • Pavel Repkin
  • Yuri G. Elshin
Näheres hierzu: http://yowindow.com/team.html

Donnerstag, 5. August 2010

Chaos bei Multiuser-Funktion von Wordpress 3.x

Trotz 10 Jahren Erfahrung mit HTML und Serverkonfiguration war die Umstellung des Blogs haarig. Wegen einer ausreichenden deutschen Anleitung musste ich stellenweise raten, was zu tun ist. Ich habe das domainmapping-Plugin besorgt, alle vorher aktivierten und jetzt zu deaktivierenden Plugins notiert (damit ich das rekonstruieren kann), htaccess und config geändert und es irgendwann geschafft, dass die alte Seite wieder lief.

Neue habe ich noch nicht angelegt. Nach ein paar Tagen stellte ich fest, dass nur die Startseitie lief, alle Einzelposts, Kategorien und der Feed erzeugten Fehlermeldung.

In diesen paar Tagen sind dann auch alle meine Aufsätze zum Thema Steuern und Recht, die ich auf diesem Blog in den letzten Monaten geschrieben hatte, aus google verschwunden. Restlos, ohne Spuren. Es ist, als hätte es den Blog nie gegeben (außer der Startseite, natürlich).

Bei einem kostenlosen Opensource-Projekt darf man sich nicht beschweren. Ich kann die Developer und Übersetzer nur anregen, für hier eine ordentliche und vollständige (auch deutsche) Dokumentation zu sorgen und bis dahin ganz gründlich vor einer Umstellung zu warnen. Bei einer Neuinstallation kann man den User den gegenwärtigen Zustand zumuten, muss er halt lesen und basteln, aber bei einer Umstellung eines schon bestehenden Blogs steht mehr auf dem Spiel.

Bis zu einer flüssigen Prozedur sollten die Developer so vorsichtig sein wie beim Umgang mit dem internen Cache-System.

Da helfen auch alle Sicherungen nicht, die ich natürlich gemacht hatte. Die Daten waren aber nie verloren, sondern die google-Einträge.

Das nächste Problem: Ich war mir nicht ganz sicher, wie ich auf diese Blog die Permalinkstruktur eingestellt hatte, bzw. ob ich sie jetzt so wie früher konfiguriert habe. Kann sein, dass meine Artikel wieder in google sind, aber schon bestehende Links von anderen Blogs/Webseiten zu meinem Blog gehen jetzt möglicherweise in’s Leere.

Umgekehrt kann ich alle Blogger, die schon mit Wordpress arbeiten, vor einer Umstellung nur dringend warnen. Liest, liest liest. Sichert nicht nur die reinen Datenbanken, notiert Euch auch, welche Plugins Ihr aktiviert hattet und speichert am besten alle Einstellungsseiten im Dashboard als HTML-Seiten, damit ihr nicht blind rücksichern müsst.

Überschreibt auch nicht Euere alten wp-config und htaccess-Dateien, sondern sichert sie (umbennen ist das einfachste, aber nur Fortgeschrittene, damit nicht lesbare Textdateien entstehen, die als Textleichen liegen bleiben). Wenn ich nicht so vorgegangen wäre, hätte ich meinen Blog nicht so schnell wieder zum Laufen gebracht.

Nachtrag (Februar 2011):

Mittlerweile habe ich das Arbeiten mit der Multifunktion strikt aufgegeben. Es ist zu riskant, hat zu viele Nachteile und es gibt weitaus mehr Probleme als oben genannte. Wer sich näher dafür interessiert: auf den Webseiten von Matthias Griesbach, alles-mit-links.de, findet sich ein mittlerweile achtteiliger Bericht über das "Abenteuer WordPress 3 Multi-User Installation". Der letzte  Teil 8
erschien unter der URL: http://www.alles-mit-links.de/index.php/2010/09/abenteuer-wordpress-3-multi-user-installation-teil-8/

Dort sind die ständig neu auftauchenden Probleme geschildert. Damit scheidet ein Einsatz definitiv aus und ich kann nur jedem zur Vorsicht raten, der auf diese Multiuserfunktion setzen will.