Twitter-Nachrichten auf Seite anzeigen lassen

Hilfe zu Modulen und Tags
Pulli
Forum Members
Forum Members
Posts: 183
Joined: Fri Sep 12, 2008 9:16 am

Twitter-Nachrichten auf Seite anzeigen lassen

Post by Pulli »

Hallo zusammen,

hat jemand Erfahrung mit einem Modul, welches Twitter-Nachrichten auf einer Seite anzeigt ?

Ich suche ein Modul, womit ich aus einem Twitter-Profil zum Beispiel immer automatisch die aktuellste Mitteilung einbinde.

Vielen Dank für eure Hilfe.
Pulli
Forum Members
Forum Members
Posts: 183
Joined: Fri Sep 12, 2008 9:16 am

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by Pulli »

ja, aber bei dem ersten kriege ich nach der installation, bzw. dem hochladen des moduls eine fehlermeldung (habe alle möglichen varianten durchprobiert: xml als auch zip)

und beim zweiten steig ich nicht so ganz durch die beschreibung.

beim ganz normalen einbau

Code: Select all

{api_twitterfeed name="TWITTERNAME"}
bekomme ich auch ne fehlermeldung im template (außerdem sind einige dinge verschoben)
cyberman

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by cyberman »

Das 1. Projekt wird nix für deinen Bedarf sein, aber das 2. funktioniert.

Die Fehlermeldung kann ich nicht nachvollziehen.

Hast du mal den Quellcode kontrolliert? Wenn du ihn via Copy&Paste in den Tiny einfügst, wirds Murks.

Der erste Aufruf ist nur für die Datenbeschaffung zuständig und die foreach-Schleife benötigst du dann für die Datenausgabe.
nhaack

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by nhaack »

Hello zusammen,

wenn du Twitter integrieren möchtest, nimm mal besser: http://dev.cmsmadesimple.org/projects/apicollection

api_twitterfeed ist der Vorläufer und wird nicht weiter betreut (beides von mir). Zu der neuen Variante gibt es auch eine ausführliche Wiki-Beschreibung:

http://wiki.cmsmadesimple.org/index.php ... witteruser

Beste Grüße
Nils

edit:
@Cyberman: hast du das zuerst genannte Modul mal ausprobiert?
Last edited by nhaack on Sat Jan 09, 2010 11:32 pm, edited 1 time in total.
Pulli
Forum Members
Forum Members
Posts: 183
Joined: Fri Sep 12, 2008 9:16 am

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by Pulli »

nhaack wrote: Zu der neuen Variante gibt es auch eine ausführliche Wiki-Beschreibung:
ne deutsche anleitung hast du nicht zufällig oder ?  ;)
cyberman

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by cyberman »

nhaack wrote: api_twitterfeed ist der Vorläufer und wird nicht weiter betreut (beides von mir).
@Nils:

Wäre gut, das Projekt als DISCONTINUED zu kennzeichnen (so wie den FCKEditor) bzw. auf dein neues Modul zu verweisen.
@Cyberman: hast du das zuerst genannte Modul mal ausprobiert?
Nein, hab mir nur die Beschreibung durchgelesen ... und das passte nicht auf den geforderten Anwendungszweck  ;).
nhaack

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by nhaack »

Ne deutsche Anleitung gibt es leider nicht. Eigentlich ist es recht simpel. Schmeiß die Dateien function.nh_essentials.php und function.nh_api_twitteruser.php (gibt's hier: http://dev.cmsmadesimple.org/project/files/604) in dein Plug-in Verzeichnis.

In dem Template (oder Page) in dem die Tweets angezeigt werden sollen folgenden Aufruf einsetzen (Benutzernamen durch eigenen ersetzen):

Code: Select all


 {nh_essentials}
 
 {nh_api_twitteruser name="opticalvalve"} 


Zum Anzeigen dann per Smarty auf die Werte zugreifen (z.B. als Foreach Schleife):

Code: Select all


 {foreach from=$tweets item=tweet} 
 
 {$tweet->text}
 {$tweet->date}
 {$tweet->source}
 
 {/foreach}


Das ist eigentlich alles, jetzt kann man sich mit Layout und Smarty noch ein wenig austoben :)

Das hier sind die verfügbaren Datenfelder:

Code: Select all


$tweets [n] -> timestamp = Gemäß Parameter formatierter Zeitstempel 
 $tweets [n] -> id = ID des Twitter Nachricht
 $tweets [n] -> text = Inhalt der twitter Nachricht
 $tweets [n] -> source = Anwendung über die die Nachricht verschickt wurde
 $tweets [n] -> favourited = Wurde die Nachricht als Favorit markiert 

 $tweets [n] -> reply -> userid = Wenn die Nachricht eine Antwort war, hier die ID des Users der Ursprünglichen Nachricht
 $tweets [n] -> reply -> screenname = Wenn die Nachricht eine Antwort war, an wen ging sie
 $tweets [n] -> reply -> id = Wenn die Nachricht eine Antwort war, auf welche Nachrichten ID
 
 $tweets [n] -> user -> id = ID of the User
 $tweets [n] -> user -> name = Name of the User
 $tweets [n] -> user -> screenname = Screen name of the User
 $tweets [n] -> user -> location = Locations of the user 
 $tweets [n] -> user -> description ---- Description of the user
 $tweets [n] -> user -> image ---- Twitter User icon
 $tweets [n] -> user -> url ---- Twitter User Profile URL 
 $tweets [n] -> user -> followers ---- Amount of followers (integer)

Komplett sieht eine Einbindung dann z.B. so aus:

Code: Select all


 {nh_essentials} 
 
 {nh_api_twitteruser name="opticalvalve" dateformat='%A, %e %B %Y @ %H:%M' max=3} 
 
 {if $search_tweets != false}
 <h2>Meine letzten Updates:</h2>
	 {foreach from=$tweets item=tweet}
		 <h3>{$tweet->date}</h3>
		 <p>{$tweet->text}</p>
	 {/foreach}
 {/if}

Ich habe das Plug-in nochmal leicht überarbeit. Du musst jetzt {nh_essentials} nicht mehr explizit aufrufen (im ordner muss es trotzdem noch liegen). Zudem kannst du über den Parameter assign= einen anderen Variablen-Namen als tweets verwenden (Script im Anhang dieses Posts).

Durch das  {if $search_tweets != false} um die Ausgabe herum, verhinderst du, das Grütze auf der Site angezeigt wird, wenn die API von Twitter beim Refresh daneben haut oder ausfällt. Dieses Script wertet zudem den http Header nicht aus, und weiß folglich nicht, ob die ankommende Antwort korrekt ist. Bei Cache-Zeiten von 300 Sekunden oder so ist das aber alles eigentlich kein Problem. Fang erstmal an ;)

Beste Grüße
Nils

P.S.: Das alte Twitter Projekt habe ich entsprechend markiert (Danke für den Hinweis)
P.P.S.: Das anhängende PHP Script habe ich natürlich auf Viren etc gesprüft, herunterladen dennoch auf eigene Gefahr und ohne Gewähr.
Attachments

[The extension txt has been deactivated and can no longer be displayed.]

Last edited by nhaack on Wed Jan 13, 2010 9:53 pm, edited 1 time in total.
Pulli
Forum Members
Forum Members
Posts: 183
Joined: Fri Sep 12, 2008 9:16 am

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by Pulli »

vielen Dank.

aber ich weiß nicht, ob ich einfach nur nzu blöd bin oder ob es doch an was anderem liegt.

habe unter plugin die beiden tags (function.nh_essentials.php und function.nh_api_twitteruser.php) hochgeladen.

dann habe ich folgenden code ins template gepackt:

Code: Select all

 {nh_essentials} 
 
 {nh_api_twitteruser name="planamedia" dateformat='%A, %e %B %Y @ %H:%M' max=1} 
 
 {if $search_tweets != false}
 <h3>aktuelle Twitter-Nachrichten</h3>
	 {foreach from=$tweets item=tweet}
		 <p>{$tweet->text}</p>
	 {/foreach}
 {/if}
und folgende fehlermeldung bekomme ich:
http://twitter.com/statuses/user_timeli ... t=1&page=1
Fatal error: Call to undefined function: simplexml_load_file() in /homepages/44/d35513338/htdocs/design/plugins/function.nh_essentials.php on line 56
nhaack

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by nhaack »

Wenn ich jetzt nicht ganz auf den Kopf gefallen bin, würde ich vermuten, dein Server unterstützt simple_XML nicht. Kann es sein, dass da noch eine 4.x Version von PHP verwendet wird? Simple_xml benötigt mindestens PHP 5.

Liegt hier vielleicht das Problem?

Beste Grüße
Nils
Pulli
Forum Members
Forum Members
Posts: 183
Joined: Fri Sep 12, 2008 9:16 am

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by Pulli »

nhaack wrote: Wenn ich jetzt nicht ganz auf den Kopf gefallen bin, würde ich vermuten, dein Server unterstützt simple_XML nicht. Kann es sein, dass da noch eine 4.x Version von PHP verwendet wird? Simple_xml benötigt mindestens PHP 5.

Liegt hier vielleicht das Problem?
oh tatsächlich...habe jetzt aber auf php 5.2.12 umgestellt.

aber jetzt bekomme ich folgende fehlermeldung:
http://twitter.com/statuses/user_timeli ... t=1&page=1
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /homepages/44/d35513338/htdocs/design/plugins/function.nh_essentials.php on line 46

Warning: file_get_contents(http://twitter.com/statuses/user_timeli ... t=1&page=1) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /homepages/44/d35513338/htdocs/design/plugins/function.nh_essentials.php on line 46
nhaack

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by nhaack »

Nächste Hürde :)

...URL file-access is disabled in the server configuration...
Dein System sagt dir ja schon was los ist ;)

Das Script muss auf externe Dateien zugreifen dürfen (http://www.php.net/manual/de/filesystem ... -url-fopen). Dafür musst du in der PHP.ini den entsprechenden Parameter ändern.

Also entweder die php.ini bearbeiten (bzw. eine neue im CMSMS Verzeichnis ablegen) oder in der .htaccess

Code: Select all


php_value allow_url_fopen 1

eintragen (das sollte meine ich auch gehen, je nachdem ob dein Hosting Anbieter das erlaubt.)

Beste Grüße
Nils
Last edited by nhaack on Wed Jan 13, 2010 12:10 am, edited 1 time in total.
Pulli
Forum Members
Forum Members
Posts: 183
Joined: Fri Sep 12, 2008 9:16 am

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by Pulli »

irgendwie merkt man, das ich php nicht so wirklich verstehe oder ?  ;)

also vorweg die seite liegt bei 1und1.

habe jetzt eine php.ini angelegt. Inhalt:

Code: Select all

php_value allow_url_fopen 1
diese liegt im root der domain.

dann habe ich in der seite (in der html ansicht unter einem textabschnitt) folgenden code gepackt:

Code: Select all

 {nh_essentials} 
 
 {nh_api_twitteruser name="planamedia" dateformat='%A, %e %B %Y @ %H:%M' max=1} 
 
 {if $search_tweets != false}
 <h3>aktuelle Twitter-Nachrichten</h3>
	 {foreach from=$tweets item=tweet}
		 <p>{$tweet->text}</p>
	 {/foreach}
 {/if}
und als dank kriege ich folgende fehlermeldung (über dem textabschnitt):
string(135) "Smarty error: [in content:Spalte_rechts line 17]: syntax error: unrecognized tag: $tweet->text (Smarty_Compiler.class.php, line 446)" string(121) "Smarty error: [in content:Spalte_rechts line 17]: syntax error: unrecognized tag '' (Smarty_Compiler.class.php, line 590)"
und dann noch weiter (unter dem textabschnitt):
http://twitter.com/statuses/user_timeli ... t=1&page=1
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /homepages/44/d35513338/htdocs/design/plugins/function.nh_essentials.php on line 46

Warning: file_get_contents(http://twitter.com/statuses/user_timeli ... t=1&page=1) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /homepages/44/d35513338/htdocs/design/plugins/function.nh_essentials.php on line 46
achso...in die .htaccess hatte ich das auch geschrieben als versuch...bringt aber nichts.

?!?! >:(
nhaack

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by nhaack »

Deine überlagerte PHP.ini müsste in etwa wie folgt aussehen:

Code: Select all


<?

allow_url_fopen = On;

?>

Dann sollte es klappen.

Beste Grüße
Nils

P.S.: hast du jetzt die Datei aus dem Anhang des Postings oder aus dem Download Bereich genommen?
cyberman

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by cyberman »

Pulli wrote: dann habe ich in der seite (in der html ansicht unter einem textabschnitt) folgenden code gepackt:
Kontrollier mal die Quellcode-Ansicht - der Tiny hatte bei mir die Smarty-Brackets encodiert, so dass das nix werden konnte ...
Pulli
Forum Members
Forum Members
Posts: 183
Joined: Fri Sep 12, 2008 9:16 am

Re: Twitter-Nachrichten auf Seite anzeigen lassen

Post by Pulli »

nhaack wrote: Deine überlagerte PHP.ini müsste in etwa wie folgt aussehen:

Code: Select all


<?

allow_url_fopen = On;

?>

Dann sollte es klappen.

Beste Grüße
Nils

P.S.: hast du jetzt die Datei aus dem Anhang des Postings oder aus dem Download Bereich genommen?
also wenn ich die datei aus dem download-bereich nehme kommt immerhin nur diese meldung:
wenn ich aber die angehängte nehme kommt folgendes:
Warning: file_put_contents(/twu_publictimeline_planamedia_1_1.xml) [function.file-put-contents]: failed to open stream: Permission denied in /homepages/44/d35513338/htdocs/design/plugins/function.nh_essentials.php on line 50

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "/twu_publictimeline_planamedia_1_1.xml" in /homepages/44/d35513338/htdocs/design/plugins/function.nh_essentials.php on line 56

Warning: filemtime() [function.filemtime]: stat failed for /twu_publictimeline_planamedia_1_1.xml in /homepages/44/d35513338/htdocs/design/plugins/function.nh_essentials.php on line 57
code wird in der html ansicht korrekt dargestellt.
Post Reply

Return to “Module und Tags”