<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>meshed.de</title>
	
	<link>http://www.meshed.de</link>
	<description>Online-Marketing, Website-Optimierung und Web-Technologien.</description>
	<pubDate>Mon, 08 Feb 2010 16:23:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/meshed" /><feedburner:info uri="meshed" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Kostenloses eBook: Firefox Extension erstellen</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/aTwpH-6TlTo/</link>
		<comments>http://www.meshed.de/2009/firefox-extension-erstellen/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 21:13:02 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[Linktipps]]></category>

		<category><![CDATA[extension]]></category>

		<category><![CDATA[ff]]></category>

		<category><![CDATA[firefix]]></category>

		<category><![CDATA[xul]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=284</guid>
		<description><![CDATA[Erfahren Sie im einem kostenlosen eBook "Build Your own Firefox Extension", wie Sie Ihre eigene Firefox Extension erstellen k&#246;nnen.]]></description>
			<content:encoded><![CDATA[<p><strong>Erfahren Sie im einem kostenlosen eBook &#8220;Build Your own Firefox Extension&#8221;, wie Sie Ihre eigene Firefox Extension erstellen k&#246;nnen.</strong></p>
<p>Derzeit gibt es bei Sitepoint ein gratis eBook in englischer Sprache das beschreibt, wie Sie eine eigene Firefox Extension erstellen k&#246;nnen. Es ist sehr einfach aufgebaut und erl&#228;utert Schritt f&#252;r Schritt den Entwicklungsprozess.</p>
<p>Link: <a href="http://tools.sitepoint.com/codeburner/firefox/">http://tools.sitepoint.com/codeburner/firefox/</a></p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/aTwpH-6TlTo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/firefox-extension-erstellen/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/firefox-extension-erstellen/</feedburner:origLink></item>
		<item>
		<title>Fehler beim Update in WordPress 2.8</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/1frdl5Ev4b4/</link>
		<comments>http://www.meshed.de/2009/fehler-beim-update-in-wordpress-28/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 20:31:07 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[fehler]]></category>

		<category><![CDATA[Plugins]]></category>

		<category><![CDATA[update]]></category>

		<category><![CDATA[wordpress 2.8]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=281</guid>
		<description><![CDATA[So beheben Sie den Fehler Verzeichnis "wp-content" konnte nicht gefunden werden in WordPress 2.8.]]></description>
			<content:encoded><![CDATA[<p><strong>So beheben Sie den Fehler Verzeichnis &#8220;wp-content&#8221; konnte nicht gefunden werden in WordPress 2.8.</strong></p>
<p>Als ich heute einige Plugins updaten wollte, kam leider die o.g. Fehlermeldung. Im Blog von <a href="http://www.kortyla.de/2009/06/13/wordpress-2-8-das-verzeichnis-wp-content-konnte-nicht-gefunden-werden/">Alex</a> stand ein einfacher L&#246;sungsvorschlag. Da jedoch viele nicht den absoluten Pfad zum Blog kennen, habe ich seine L&#246;sung etwas umgeschrieben. Statt dem absoluten Pfad wird nun der Document-Root des Webservers genommen. Ggf. muss man dort noch der WordPress-Installationsverzeichnis eintragen.</p>
<pre name="code" class="php">
putenv('TMPDIR='. $_SERVER['DOCUMENT_ROOT'] .'/wp-content/tmp');
define('WP_TEMP_DIR', ABSPATH . 'wp-content/tmp');
</pre>
<p>Ich hoffe, dass diese L&#246;sung auch anderen hilft die Probleme beim Update der Plugins hatte.</p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/1frdl5Ev4b4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/fehler-beim-update-in-wordpress-28/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/fehler-beim-update-in-wordpress-28/</feedburner:origLink></item>
		<item>
		<title>webEdition jetzt 100% Open-Source</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/f2EUUYCYCi8/</link>
		<comments>http://www.meshed.de/2009/webedition-jetzt-100-open-source/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 12:08:02 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[webEdition]]></category>

		<category><![CDATA[open-source]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=278</guid>
		<description><![CDATA[Das beliebte Content-Management-System webEdition ist nun zu 100 Prozent Open-Source.]]></description>
			<content:encoded><![CDATA[<p><strong>Das beliebte Content-Management-System webEdition ist nun zu 100 Prozent Open-Source.</strong></p>
<p>Seit dem 1. Juni 2009 ist das bis Oktober 2008 kommerzielle Content-Management-System webEdition komplett frei. Es wurde eigens vom Hersteller living-e eine eigene <a href="http://community.webedition.de">Community</a> gegr&#252;ndet.</p>
<p>Mit der komplette &#220;berf&#252;hrung sind ab sofort auch alle zuvor <a href="http://documentation.webedition.de">kostenpflichtigen Support-Dokumente frei im Netz verf&#252;gbar</a>. F&#252;r mich ein weiterer Grund jederzeit wieder webEdition zu nutzen.</p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/f2EUUYCYCi8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/webedition-jetzt-100-open-source/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/webedition-jetzt-100-open-source/</feedburner:origLink></item>
		<item>
		<title>Google Analytics API mit PHP - Teil 2: Account-Daten abrufen</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/g28qfXUtCwM/</link>
		<comments>http://www.meshed.de/2009/google-analytics-api-php-account-daten-abrufen/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 18:50:58 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[Frameworks]]></category>

		<category><![CDATA[data export api]]></category>

		<category><![CDATA[google analytics]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=268</guid>
		<description><![CDATA[Erfahren Sie, wie Sie Ihre Google Analytics Account Daten mit PHP und der Data Export API abfragen k&#246;nnen.]]></description>
			<content:encoded><![CDATA[<p><strong>Erfahren Sie, wie Sie Ihre Google Analytics Account Daten mit PHP und der Data Export API abfragen k&#246;nnen.</strong></p>
<p>Bevor ich Ihnen erl&#228;utere, wie Sie Ihre Google Analytics Konto-Daten abrufen k&#246;nnen, lesen Sie bitte den ersten Teil <a href="http://www.meshed.de/2009/google-analytics-mit-php-authentifizierung/">Authentifizierung</a> dieser Serie. Im folgenden Beispiel wird das Auth-Token <code>$auth</code> aus dem ersten Artikel ben&#246;tigt.</p>
<p>Um auf Ihre Account-Daten zugreifen zu k&#246;nnen, m&#252;ssen Sie sich bei Google authentifizieren. Dies geschieht indem Sie einen angepassten HTTP-Header mit jeder Abfrage mitsenden. Auch hierzu verwenden ich wieder das <a href="http://pear.php.net/package/HTTP_Request">HTTP_Request-Package von PEAR</a>. Folgendes Beispiel zeigt, wie Sie eine Anfrage an den entsprechenden Service stellen:</p>
<pre name="code" class="php">
// URL des Account-Services
$FEED_URL = 'https://www.google.com/analytics/feeds/accounts/default';

// neues Request-Objekt erstellen
$req = new HTTP_Request($FEED_URL);

// Wichtig: Methode GET nicht POST
$req->setMethod(HTTP_REQUEST_METHOD_GET);

// Authentifizierungs-Header konstruieren
$req->addHeader('Authorization', 'GoogleLogin auth='.$auth);

// Anfrage senden
$response = $req->sendRequest();
</pre>
<p>Das erfolgreiche Ergebnis dieser Anfrage enth&#228;lt eine XML-Datei. Die Daten sehen ungef&#228;hr so aus. Ich habe IDs und Domainnamen durch Fantasie-Inhalte ersetzt.</p>
<pre name="code" class="xml">
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:dxp="http://schemas.google.com/analytics/2009">
  <id>http://www.google.com/analytics/feeds/accounts/YOURID</id>
  <updated>2009-03-21T07:46:38.000-07:00</updated>
  <title type="text">Profile list for YOURNAME</title>
<link rel="self" type="application/atom+xml" href="http://www.google.com/analytics/feeds/accounts/default"/>
  <author>
    <name>Google Analytics</name>
  </author>
  <generator version="1.0">Google Analytics</generator>
  <openSearch:totalResults>14</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <openSearch:itemsPerPage>14</openSearch:itemsPerPage>
  <entry>
    <id>http://www.google.com/analytics/feeds/accounts/ga:0001</id>
    <updated>2009-01-30T09:06:56.000-08:00</updated>
    <title type="text">www.yourdomain.de</title>
<link rel="alternate" type="text/html" href="http://www.google.com/analytics"/>
    <dxp:tableId>ga:0001</dxp:tableId>
    <dxp:property name="ga:accountId" value="00002" />
    <dxp:property name="ga:accountName" value="www.yourdomain.de" />
    <dxp:property name="ga:profileId" value="00002" />
    <dxp:property name="ga:webPropertyId" value="UA-00001-1" />
  </entry>
  <entry>
    ...
  </entry>
</feed>
</pre>
<p>Sie k&#246;nnen die Daten folgenderma&#223;en ermitteln. Bitte beachten Sie die Anmerkungen nach dem Code-Beispiel.</p>
<pre name="code" class="php">
if ($response) {

  // Daten extrahieren
  $content = $req->getResponseBody();

  // als XML-Datei laden
  $xml = simplexml_load_string($content);
}
</pre>
<p>Um die XML-Daten weiterzuverarbeiten, k&#246;nnen Sie z.B. die hier benutzte Funktion <code>simplexml_load_string</code> nutzen. Bitte beachten Sie aber, dass in den XML-Daten Namespaces verwendet werden. Die benutze Funktion kann diese Daten leider nicht auslesen. Ich empfehle Ihnen lieber auf die <a href="http://de.php.net/manual/de/book.dom.php">DOM-Funktionen von PHP</a> zur&#252;ckzugreifen.</p>
<p>Die hier ermittelten Google Analytics Kontodaten werden ben&#246;tigt, um die Statistiken der von Ihnen angelegten Websites abzufragen. Im n&#228;chsten Teil dieser Serie erfahren Sie, wie Sie Pageviews und Visits einer Ihrer Website abfragen k&#246;nnen.</p>
<p><a href="http://www.meshed.de/feed/">Abonnieren Sie den News-Feed</a>, um weitere Artikel in dieser Serie nicht zu verpassen.</p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/g28qfXUtCwM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/google-analytics-api-php-account-daten-abrufen/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/google-analytics-api-php-account-daten-abrufen/</feedburner:origLink></item>
		<item>
		<title>Google Analytics API mit PHP - Teil 1: Authentifizierung</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/furuKF5IfzA/</link>
		<comments>http://www.meshed.de/2009/google-analytics-mit-php-authentifizierung/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 18:43:15 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[Frameworks]]></category>

		<category><![CDATA[data export api]]></category>

		<category><![CDATA[google analytics]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=264</guid>
		<description><![CDATA[So k&#246;nnen Sie die Google Analytics Daten per PHP mit der Data Export API abfragen.]]></description>
			<content:encoded><![CDATA[<p><strong>So k&#246;nnen Sie die Google Analytics Daten per PHP mit der Data Export API abfragen.</strong></p>
<p>Vor wenigen Tagen hat Google nach langer Zeit endlich eine Schnittstelle f&#252;r den Web-Analytics-Dienst Google Analytics <a href="http://createordie.de/cod/news/Google-Analytics-API-oeffentlich-048470.html">zur Verf&#252;gung gestellt</a>. Mit der <a href="http://code.google.com/apis/analytics/">Data Export API</a> k&#246;nnen Sie die gespeicherten Daten abfragen.</p>
<p>Google stellt daf&#252;r bereits vorgefertigte Clients f&#252;r Java und JavaScript zur Verf&#252;gung. Bisher gibt es jedoch keine Bibliothek f&#252;r Abfragen mit PHP.</p>
<p>Im ersten Teil der Serie m&#246;chte ich die Authentifizierung bei Google vorstellen. Diese ist notwendig um die Account-Daten und Statistiken abzufragen.</p>
<p>F&#252;r die Authentifizierung ist es notwendig die Daten an Google per HTTP-Post zu &#252;bertragen. Es gibt unterschiedliche M&#246;glichkeiten dies umzusetzen. Ich habe mich f&#252;r das PEAR-Paket <a href="http://pear.php.net/package/HTTP_Request">HTTP_Request</a> entschieden. Sie sollten es Ihrer PEAR-Installation hinzuf&#252;gen. Im Anschluss k&#246;nnen Sie es folgenderma&#223;en in Ihrem Script nutzen.</p>
<pre name="code" class="php">
require_once('HTTP/Request.php');
</pre>
<p>Um sich nun bei Google zu authentifizieren, m&#252;ssen Sie den Nutzernamen und Ihr Google Analytics Passwort wissen. Zusammen mit einem festgelegten Service- und Account-Typ m&#252;ssen Sie alle Parameter per POST an Google senden. Folgender Code &#252;bernimmt dies:</p>
<pre name="code" class="php">
$AUTH_URL 	= 'https://www.google.com/accounts/ClientLogin';

$email 		= 'ihremail@domain.com';
$password 	= 'ihrpasswort'

// neues Request-Objekt erstellen
$req = new HTTP_Request($AUTH_URL);
$req->setMethod(HTTP_REQUEST_METHOD_POST);

// Parameter hinzuf&#252;gen
$req->addPostData('Email',        $email);
$req->addPostData('Passwd',       $password);

$req->addPostData('accountType',  'GOOGLE');
$req->addPostData('service',      'analytics');
$req->addPostData('source',       'meshed.de-test-0.1');

// Request senden
$response = $req->sendRequest();
</pre>
<p>Wenn Sie nun der Request absendet haben und Sie sich erfolgreich authentifizieren konnten, erhalten Sie als Response eine Nachricht die aus drei Zeilen besteht. Darin ist auch das sogenannte Auth-Token enthalten. Sie ben&#246;tigen dies um alle weiteren Abfragen an den Account durchzuf&#252;hren.</p>
<p>Der folgende Code zeigt, wie Sie das Auth-Token aus dem Response-Body auslesen k&#246;nnen.</p>
<pre name="code" class="php">
$authArray = array();

// Zeilen des Responses in Array speichern
$lines = explode("\n",$req->getResponseBody());

// Zeilen durchgehen
foreach ($lines as $line) {

  // Schl&#252;ssel vom Wert trennen
  $keyValue = explode("=", $line);

  $key = $keyValue[0];
  $value = $keyValue[1];

  // Daten in Array schreiben
  $authArray[$key] = $value;   

}

// Auth-Token ermitteln
$auth = $authArray['Auth'];
</pre>
<p>In der Variable <code>$auth</code> ist nun der Auth-Token gespeichert.</p>
<p>In dem n&#228;chsten Teil der Serie erkl&#228;re ich Ihnen, wie Sie Ihre <a href="http://www.meshed.de/2009/google-analytics-api-php-account-daten-abrufen/">Google-Analytics Kontodaten abfragen</a> k&#246;nnen. </p>
<p><a href="http://www.meshed.de/feed/">Abonnieren Sie meinen News-Feed</a>, um die folgenden Artikel zur Google Analytics API nicht zu verpassen.</p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/furuKF5IfzA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/google-analytics-mit-php-authentifizierung/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/google-analytics-mit-php-authentifizierung/</feedburner:origLink></item>
		<item>
		<title>Redaxo 4.2.0 veröffentlicht</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/ihjHAVU4Ox4/</link>
		<comments>http://www.meshed.de/2009/redaxo-4-2-veroeffentlicht/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 16:46:58 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[Content Management Systeme]]></category>

		<category><![CDATA[neue version]]></category>

		<category><![CDATA[Redaxo]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=259</guid>
		<description><![CDATA[Seit heute steht die neue Version des Content-Management-Systems Redaxo zur Verf&#252;gung.]]></description>
			<content:encoded><![CDATA[<p><strong>Seit heute steht die neue Version des Content-Management-Systems Redaxo zur Verf&#252;gung.</strong></p>
<p style="text-align: center;"><strong><img class="size-full wp-image-260 aligncenter" title="redaxo-4-2-0" src="http://www.meshed.de/wp-content/uploads/2009/04/redaxo-4-2-0.jpg" alt="redaxo-4-2-0" width="500" height="331" /><br />
</strong></p>
<p>Das Redaxo-Entwickler-Team hat heute die aktuelle Version von Redaxo freigegeben. Sie haben viele interessante Neuerungen umgesetzt. Hier ein Auszug aus der Presseinformation:</p>
<ul>
<li>Neues Backenddesign</li>
<li>Eigene Designs leicht im Backend integrierbar</li>
<li>Den Spalten kann man unterschiedliche Module zuweisen -&gt; mehr Einfluss auf den Redakteur</li>
<li>Eigenes Backendprofil verf&#252;gbar, Sprachwechsel ist erlaubt</li>
<li>Benutzerverwaltung: Startseite ist definierbar, unn&#246;tige Rechte entfernt</li>
<li>Kleinere Bugfixes eingebaut</li>
</ul>
<p>Wie auf dem Screenshot zu erkennen, sieht das neue Backend wirklich frischer und &#252;bersichtlicher aus. Alle Informationen zur neuen Redaxo-Version gibt es auf der <a href="http://www.redaxo.de/467-0-version-4-2-fertiggestellt.html">Website</a>.</p>
<p><a href="http://www.meshed.de/feed/">Abonnieren Sie den meshed News-Feed</a> f&#252;r weitere interessante Artikel zum Thema Redaxo.</p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/ihjHAVU4Ox4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/redaxo-4-2-veroeffentlicht/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/redaxo-4-2-veroeffentlicht/</feedburner:origLink></item>
		<item>
		<title>Twitter mit PHP</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/S8TZNX2T3Jk/</link>
		<comments>http://www.meshed.de/2009/twitter-mit-php/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 21:01:14 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[Frameworks]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=250</guid>
		<description><![CDATA[Sie erfahren an einem Beispiel, wie man Status-Updates mit PHP an Twitter sendet.]]></description>
			<content:encoded><![CDATA[<p><strong>Sie erfahren an einem Beispiel, wie man Status-Updates mit PHP an Twitter sendet.</strong></p>
<p>Der Micro-Blogging-Dienst Twitter erfreut sich sehr gro&#223;er Beliebtheit. Viele Blogger, und mittlerweile auch Portale wie Spiegel Online, nutzen den Dienst um &#252;ber aktuelle Nachrichten zu informieren.</p>
<p>Damit jedoch nicht jede Nachricht per Hand von einem Redakteur oder Blogger eingegeben werden muss, kann man Status-Updates auch automatisiert an Twitter senden. Dazu stellt Twitter eine <a href="http://apiwiki.twitter.com/">Entwickler API</a> zur Verf&#252;gung.</p>
<p>F&#252;r PHP gibt es im PEAR-Projekt bereits eine Implementierung um einige API-Funktionen zu nutzen. Mit Hilfe des Pakets <a href="http://pear.php.net/package/Services_Twitter">Services Twitter</a> kann man folgenderma&#223;en Status-Updates senden.</p>
<p>Zun&#228;chst muss dazu das Paket installiert und eingebunden werden. Weitere Informationen zur Installation von PEAR und Hinzuf&#252;gen von Paketen gibt es in der <a href="http://pear.php.net/manual/">PEAR-Dokumentation</a>.</p>
<pre name="code" class="php">
require_once 'Services/Twitter.php';
</pre>
<p>Nachdem das Paket installiert und geladen ist, kann man eine neue Instanz mit dem Konstruktor <code>new Services_Twitter</code> erstellen. Der Konstruktor ben&#246;tigt zwei Parameter. Der erste ist der Twitter-Nutzername - der zweite das Twitter-Passwort.</p>
<p>Ein Update wird einfach &#252;ber die Status-Instanz <code>$twitter->statuses</code> mit der Funktion <code>update</code> gesendet. Die Funktion gibt ein XML-Response mit Informationen zum Status zur&#252;ck. So wird&#8217;s gemacht:</p>
<pre name="code" class="php">
$username = 'xxxx';
$password = 'yyyy';

try {

  $twitter = new Services_Twitter($username, $password);
  $msg = $twitter->statuses->update("Twitter-Update mit PHP und PEAR");

  print_r($msg); 

}
catch (Services_Twitter_Exception $e) {

  echo 'Fehler: ' . $e->getMessage();

}
</pre>
<p>Wenn kein Fehler auftritt, sollten Sie innerhalb weniger Sekunden das Status-Update auf Ihrer Twitter-Seite sehen.</p>
<p>Wenn Sie Fragen oder Anmerkungen haben, hinterlassen Sie bitte einen Kommentar.</p>
<p><a href="http://www.meshed.de/feed/">Abonnieren Sie den meshed News-Feed</a>, wenn Sie in Zukunft weitere n&#252;tzlich Tipps und Tricks erhalten wollen.</p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/S8TZNX2T3Jk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/twitter-mit-php/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/twitter-mit-php/</feedburner:origLink></item>
		<item>
		<title>Feedburner API mit PHP</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/UZVbK6Ymmzc/</link>
		<comments>http://www.meshed.de/2009/feedburner-api-mit-php/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 21:43:43 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[Feedburner]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=232</guid>
		<description><![CDATA[Anhand eines Beispiels erkl&#228;re ich Ihnen, wie Sie die Feedburner Awareness API mit PHP abfragen k&#246;nnen.]]></description>
			<content:encoded><![CDATA[<p><strong>Anhand eines Beispiels erkl&#228;re ich Ihnen, wie Sie die Feedburner Awareness API mit PHP abfragen k&#246;nnen.</strong></p>
<p>Feedburner, der Feed-Analyse-Dienst von Google, erfreut sich nicht nur bei Bloggern gro&#223;er Beliebtheit. Immer mehr Unternehmen nutzen den Dienst um &#252;ber die Anzahl der Abonnenten informiert zu werden.</p>
<p>Interessant an Feedburner ist, dass die erfassten Daten &#252;ber die <a href="http://code.google.com/intl/de-DE/apis/feedburner/awareness_api.html">Feedburner API</a> abgerufen werden k&#246;nnen. Dadurch ist es unter anderem m&#246;glich detaillierte Statistiken &#252;ber die Nutzung der Feeds zu erstellen.</p>
<p>Im folgenden Beispiel soll die aktuelle Anzahl der Feed-Abonnenten (Subscriber) abgerufen werden. Dazu wird die Feedburner-URI, die eindeutige Bezeichnung des Feeds, ben&#246;tigt. Nehmen wir z.B. die ausgedachte Feed-URL <code>http://feeds2.feedburner.com/meinid</code>, dann ist <em>meinid</em> die Feedburner-URI. Diese k&#246;nnen wir nun nutzen, um die API per REST abzufragen. Der Code zur Konstruktion der Request-URL sieht so aus:</p>
<pre name="code" class="php">
$uri = 'meinid';
$req_url = 'https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri='. $uri;
</pre>
<p>Der Request kann im einfachsten Fall direkt per <code>simplexml_load_file</code> ausgef&#252;hrt werden. Die Response (XML) wird dadurch direkt in PHP-Objekte umgewandelt. Die Anfrage wird folgenderma&#223;en gestellt:</p>
<pre name="code" class="php">
$result = simplexml_load_file($req_url) ;
</pre>
<p>Die Response sieht in XML folgenderma&#223;en aus:</p>
<pre name="code" class="xml">
<rsp stat="ok">
  <feed id="hasfdashjkfdhkasjfkdjas" uri="meineid">
    <entry date="2009-03-15" circulation="56" hits="320" reach="2" />
  </feed>
</rsp>
</pre>
<p>Um sicher zu gehen, dass die Anfrage erfolgreich war, m&#252;ssen wir das Attribut <code>stat</code> des Elements <code>rsp</code> auswerten. Dazu kann man auf die Attribute des Elements folgenderma&#223;en zugreifen:</p>
<pre name="code" class="php">
$resAtts = $result->attributes();
if ($resAtts->stat == 'ok') {
  /* ... weiterer Code ... */
}
</pre>
<p>Die Anzahl der aktuellen Subscriber ist im Attribut <code>circulation</code> des Elements <code>entry</code> enthalten. Es kann mit folgendem Code ausgelesen werden:</p>
<pre name="code" class="php">
$feedAttr = $result->feed->entry->attributes();
$subscribers = $feedAttr->circulation;
echo 'Anzahl der Abonnenten: '. $subscribers;
</pre>
<p>Die Feedburner API bietet dar&#252;ber hinaus noch die M&#246;glichkeit Eintr&#228;ge &#252;ber Zeitspannen abzufragen. Weitere Informationen dazu erhalten Sie auf der <a href="http://code.google.com/intl/de-DE/apis/feedburner/awareness_api.html">Website der Feedburner API</a>.</p>
<p>Wenn Sie Fragen oder eine Anregung haben, hinterlassen Sie bitte einen Kommentar.</p>
<p><a href="http://www.meshed.de/feed/">Abonnieren Sie den meshed News-Feed.</a></p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/UZVbK6Ymmzc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/feedburner-api-mit-php/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/feedburner-api-mit-php/</feedburner:origLink></item>
		<item>
		<title>HTML-Description und Keywords auf statischen WordPress-Seiten</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/K_2m50ZC2TI/</link>
		<comments>http://www.meshed.de/2009/html-description-statisch-wordpress-seiten/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 15:18:11 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[custom fields]]></category>

		<category><![CDATA[description]]></category>

		<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=184</guid>
		<description><![CDATA[So k&#246;nnen Sie mit WordPress auch statischen Seiten eine Description und Keywords zuweisen.]]></description>
			<content:encoded><![CDATA[<p><strong>So k&#246;nnen Sie mit WordPress auch statischen Seiten eine Description und Keywords zuweisen.</strong></p>
<p>Bei WordPress nutze ich bei Artikel immer die Zusammenfassung, um dort den Text f&#252;r die HTML-Description einzugeben. Diese Zusammenfassung kann man dann mit <code>the_excerpt_rss()</code> ganz wunderbar als HTML-Meta-Description verwenden.</p>
<p>Bei statischen Seiten ist das allerdings nicht so einfach m&#246;glich. Ein Workaround um trotzdem eine Description angeben zu k&#246;nnen, sind die Spezialfelder (Custom Fields). Dort habe ich einfach ein Feld <code>description</code> angelegt und dort die Beschreibung hinterlegt.</p>
<p>Die Schwierigkeit besteht jetzt jedoch darin im Kopfbereich au&#223;erhald des WordPress-Loops an die Meta-Felder zu kommen. Ein Blick in die WordPress-Funktionsreferenz hilft da aber schnell weiter. Die Funktion <code>get_post_meta</code> kann von beliebigen Seiten und Posts die Spezialfelder auslesen.</p>
<p>Leider ben&#246;tigt die Funktion die Post-ID der Seite. Ich lese diese wiederum mit der Funktion <code>get_page_by_title</code> aus. Der Titel der Seite kann au&#223;erhalb des Loops per <code>get_the_title</code> ermittelt werden.</p>
<p>Das ganze Beispiel sieht dann z.B. so aus:</p>
<pre name="code" class="php">
if (is_page()) {
  $current_page = get_page_by_title(get_the_title());
  echo (String) get_post_meta($current_page->ID, 'description', true);
}
</pre>
<p>Mit den Meta-Keywords k&#246;nnen Sie genauso vorgehen und die Keywords in einem eigenen Feld abspeichern.</p>
<p>Wenn Sie Fragen haben oder eine bessere L&#246;sungen kennen, hinterlassen Sie bitte einen Kommentar.</p>
<p><a href="http://www.meshed.de/feed/">Abonnieren Sie den meshed News-Feed</a>.</p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/K_2m50ZC2TI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/html-description-statisch-wordpress-seiten/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/html-description-statisch-wordpress-seiten/</feedburner:origLink></item>
		<item>
		<title>Liebe cmsdev.de und meshed.de Besucher</title>
		<link>http://feedproxy.google.com/~r/meshed/~3/psCnImSrU-o/</link>
		<comments>http://www.meshed.de/2009/liebe-cmsdevde-oder-meshedde-besucher/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 16:43:43 +0000</pubDate>
		<dc:creator>Tobias Redmann</dc:creator>
		
		<category><![CDATA[Allgemeines]]></category>

		<guid isPermaLink="false">http://www.meshed.de/?p=162</guid>
		<description><![CDATA[Ab sofort wird aus cmsdev.de meshed.de als Content Management Blog.]]></description>
			<content:encoded><![CDATA[<p><strong>Ab sofort wird aus cmsdev.de der meshed.de Content Management Blog.</strong></p>
<p>Wenn Sie eigentlich cmsdev.de erreichen wollten und nun auf meshed.de gelandet sind, dann hat das den Grund, dass ab sofort die Domain cmsdev.de in der Form nicht mehr existieren wird.</p>
<p>Alle Inhalte die bisher dort erreichbar waren, sollten nun auf meshed.de erreichbar sein. Es k&#246;nnte sein, dass an der ein oder anderen Stelle noch kleinere Probleme auftreten. Bitte senden Sie in diesem Fall eine E-Mail an tobias@meshed.de.</p>
<p>Ich w&#252;nsche Ihnen viel Spa&#223;.</p>
<p>Abonnieren Sie den <a href="http://www.meshed.de/feed/">meshed News Feed</a>!</p>
<img src="http://feeds.feedburner.com/~r/meshed/~4/psCnImSrU-o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.meshed.de/2009/liebe-cmsdevde-oder-meshedde-besucher/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.meshed.de/2009/liebe-cmsdevde-oder-meshedde-besucher/</feedburner:origLink></item>
	</channel>
</rss>
