Druckversion des Themas

Hier klicken um das Topic im Orginalformat anzusehen

Forum Sefrengo.org _ Module _ Twitter_Timeline v1.0.3

Geschrieben von: pawel Sun. 31. October 2010, 14:47

Modulname:
---------------------------------------------------------------------------
Twitter-Timeline

Status:
---------------------------------------------------------------------------
stable

Bechreibung:
---------------------------------------------------------------------------
Das Modul bindet automatisch die letzten Tweets aus Twitter in der Website ein.

Dabei kann man auswählen, ob die öffentliche Timeline (public timeline) oder die Timeline der Freunde(friends timeline = Personen, denen man folgt) oder die eigene Timeline (user timeline = nur die Beiträge, die man selbst verfasst hat) angezeigt werden.

Features:
---------------------------------------------------------------------------
- Caching um die Twitterlimitierungen (70 Abfragen in der Stunde) zu umgehen
- Modulbeschreibungen und Konfigurationshinweise im Modul

Autor(en):
---------------------------------------------------------------------------
Andreas Fritsch
Torsten Hofmann

Lizenz:
---------------------------------------------------------------------------
Creativ Common
http://creativecommons.org/licenses/by/3.0/de/

BSD (für die verwendete Klasse)
http://classes.verkoyen.eu/overview/bsd


Benötigte Sefrengo Version:
---------------------------------------------------------------------------
>= 01.91.00 (Sefrengo 1.2 alpha2)

Installation:
---------------------------------------------------------------------------
Zunächst muss ein Ordner cache angelegt werden. Dieser befindet sich auf der gleichen Ebene
wie der der Ordner projekt01. In der Standardinstallation ist cache ein Unterordner von cms.

Es ist nötig die Anwendung unter http://dev.twitter.com anzumelden. Die 4 Key's werden benötigt.

Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Design->Module". Am
unteren Ende des Bereichs befindet sich ein Uploadfeld. Wählen Sie hier die
gewünschte "*.cmsmod"- Datei aus. Mit einem Klick auf das Diskettensymbol
wird das Modul in das CMS importiert. Das Modul ist nun innerhalb des CMS
nutzbar.


QUELLTEXT
Current Version 1.0.3 - released 31.10.2010
------------------------------------------------------------------------------------------------
^ Umstellung auf OAuth, die Authentifizierung benötigt jetzt 4 Werte (Consumer Key, Consumer Key Secret
  Access Token, Access Token Secret)

Version 1.0.2 - released 20.06.2009
------------------------------------------------------------------------------------------------
+ Einstellung der Anzahl der angezeigten Tweets (counts) über das Modul
+ Tweets sind eigenständig konfigurierbar
+ neue Inhaltselemente ({name}, {image}, {text}, {followers}, {client},{following},{friends},{statuses}.)


Version 1.0.1 (Beta) - released 23.05.2009
-------------------------------------------------------------------------------------------------
+ Caching (Limitierungen der Twitter API von 70 Request/ Stunde durch Caching aufgehoben)


Initial Version 1.0.0 (Alpha) - released 22.05.2009
-------------------------------------------------------------------------------------------------
!Einbindung der Twitter Timeline in die eigene Website


 Twitter_Timeline_v1_0_3.zip ( 30.68KB ) : 5
 

Geschrieben von: bkm Sun. 31. October 2010, 14:49

DANKE !!! tongue.gif

Geschrieben von: dederpapst3000 Wed. 3. November 2010, 15:53

Genial Pawel!
Danke für dieses tolle Modul. Bist eben der Web 2.0 King bei Sefrengo
Frage: Hast du schon was mit FB interaktion im Sinn? smile.gif


Geschrieben von: leoboe Wed. 3. November 2010, 21:51

Funktioniert echt Klasse das Modul
und auch super einfach zu bedienen.

Eine frage hätte ich nur: ist es auch möglich, dass nur die tweets und retweets von einem Twitter-account anzuzeigen?

Geschrieben von: pawel Thu. 4. November 2010, 19:53

Das Modul kapselt nur ein paar TwitterAPI-Calls. Bestimmte Retweets sind per User-Timeline möglich.
Näheres zeigt die http://dev.twitter.com/doc/get/statuses/user_timeline.

Wenn Du ein bisschen an Mashups interessiert bist hilft Dir veilleicht mein Artikel über die Nutzung von http://www.pixelfans.de/Twitter-YQL-und-jquery/.

Was meint FB interaktion?

Geschrieben von: leoboe Thu. 4. November 2010, 23:39

Ok ich hab mal was zusammengebastelt, was bisher gut funktioniert, auch wenn es ein ziemlicher Umweg ist wink.gif

Ich hab die Zeile 90 wie in der Dokumentation beschrieben ungeändert in:

QUELLTEXT
return (array) $this->doCall('statuses/user_timeline.json?include_rts=true', $parameters, true);


nach Zeile 2885 folgenden Code eingefügt:
QUELLTEXT
$myTwittername =   $response[$i][user][name];
$explode_array = explode("@",$myTwitter['text'],2);
if ($explode_array[0] == "RT ") {
     $explode_text = explode(":",$explode_array[1],2);
     $myTwitter['text'] = $explode_text[1];
     $myTwittername = $explode_text[0];
}

und die (neue) Zeile 2897 umgeändert in
QUELLTEXT
$myTwitter['element'] = str_replace('{name}',  $myTwittername , $myTwitter['element']);


Dadurch wird der vorhergehende Benutzername des "Original-Twitterers" entfernt und gleichzeitig der Platzhalter {name} damit überschrieben.
Ganz normale Twitter-Beiträge bleiben unangetastet.

Wie gesagt ich habe bisher noch keine Fehler feststellen können wobei in der Dokumentation nicht ganz klar ist, ob wirklich alle Retweets mit dem parameter "include_rts=true" angezeigt werden.
Würde mich über Tests von anderen Usern sehr freuen smile.gif

Geschrieben von: pawel Fri. 5. November 2010, 14:51

Logische Idee. Die Klasse dient ja auch zu perspektivischen Erweiterung des Moduls rolleyes.gif
Reicht Dir

QUELLTEXT
return (array) $this->doCall('statuses/user_timeline.json?include_rts=true', $parameters, true);
nicht? Damit werden die Retweets doch einbezogen.

Warum das mühsame "Herausfischen" von RT und Benutzername? Dadurch wirkt es ja eher wie eine Veröffentlichung von Dir und wird eigentlich Twitter weniger gerecht. Du hast ja auch jederzeit die Gelegenheit, bei der Erstellung deines Retweet, diese Angaben zu entfernen und darfst dann auch den Doppelpunkt verwenden.

Geschrieben von: leoboe Fri. 5. November 2010, 16:21

Ich hatte bei dem Modul das Problem, dass der Name des Autors erst am ende angezeigt werden soll, nämlich dort wo ich im Modul {name} angegeben habe.
Deswegen schreibt der Code auch den Namen des Original-Autors in diese Variable.

Geschrieben von: pawel Fri. 5. November 2010, 18:57

Aha. Dann geht aber auch:

QUELLTEXT
$explode_array = explode("@",$myTwitter['text'],2);
if ($explode_array[0] == "RT ") {
$explode_text = explode(":",$explode_array[1],2);
$myTwitter['text'] = $explode_text[1];
$myTwitter['author'] = $explode_text[0];


und eine neue Zeile:
QUELLTEXT
$myTwitter['element'] = str_replace('{author}',  $myTwitter['author'] , $myTwitter['element']);

Geschrieben von: pawel Fri. 5. November 2010, 20:59

Ich glaube, mir ist noch etwas eleganteres eingefallen. Twitter verordnet mir aber immer 1 Stunde Ruhe, wenn ich zu intensiv teste rolleyes.gif

Deshalb so:

QUELLTEXT
<?php
$tweet = 'RT @pawelf: Hallo @webfalter';

if(preg_match('/\brt\s*@(\w+)/i', $tweet, $match))
    echo 'Somebody retweeted ' . $match[1] . "\n";
    $cleanText = (explode(':', $tweet, 2));
    echo '<br />' . $cleanText[1];
?>

Geschrieben von: pawel Fri. 5. November 2010, 21:28

Habe es mal kurz gebündelt, muss perspektivisch konfigurierbar sein, so dass jeder entscheiden kann, ob er alle Retweets möchte.
Nur zum Testen.  Twitter_Timeline.cmsmod ( 131.65KB ) : 3


Geschrieben von: leoboe Sat. 6. November 2010, 01:06

Funktioniert super smile.gif

Das einzige was ich denk was man einbauen könnte wäre, dass die variable für {name} direkt wie in meiner ersten Version mit dem Namen des Autors vertauscht wird.
So wie du es im vor-vorletzten Post geschrieben hast scheint es bei mir wohl nicht zu funktionieren.
Nichtsdestotrotz dürfte es für die meisten Situationen wesentlich praktischer sein, denn bis jetzt zeigt die Variable {name} immer den Namen vom ausgewählten User.

Unterstützt von Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)