Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
RSS-Feed mit E-Mail Adresse?
#1
Ich habe eben den von meinem Forum erstellen RSS Feed mal durch einen Validator laufen lassen:

Zitat:author must include an email address

Ich habe mir also die rss.php mal angeguckt und folgende Zeile gefunden:
PHP-Code:
<author>".$thread['username']."</author

Welche Variable muss ich für die E-Mail Adresse hinzufügen?
Vantage-Forum: http://vantage-forum.de/
Zitieren
#2
Hallo Mak,
Du solltest
PHP-Code:
$thread['email'
nutzen können, da ein Query, die gesamte userspalte selectiert.

Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!
Zitieren
#3
Ähm, ist das so richtig?
PHP-Code:
<author>".$thread['username'].$thread['email']."</author

Falls ja - es wird nur der Name, keine Adresse angezeigt. Aber ist sowieso falsch, meine php Kenntnisse belaufen sich auf das Benutzen von "echo" =)
Vantage-Forum: http://vantage-forum.de/
Zitieren
#4
Ich habe mir das gerade noch einmal angeschaut und frage mich gerade, wo ich das users gesehen habe. Scheine mich verschaut zu haben...
Ich werde dir gleich die Änderung des querys hier her schreiben, einen Moment bitte.

Edit:
Ungetestet!:

suche:
PHP-Code:
$query $db->query("SELECT t.*, f.name AS forumname, p.message AS postmessage FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid) LEFT JOIN ".TABLE_PREFIX."posts p ON (p.pid=t.firstpost) WHERE 1=1 $forumlist $unviewable AND t.visible='1' ORDER BY t.dateline DESC LIMIT 0, ".$mybb->input['limit']); 
ersetze mit:
PHP-Code:
$query $db->query("SELECT t.*, f.name AS forumname, p.uid, p.message AS postmessage, u.uid, u.email as usermail FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid) LEFT JOIN ".TABLE_PREFIX."posts p ON (p.pid=t.firstpost) LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid) WHERE 1=1 $forumlist $unviewable AND t.visible='1' ORDER BY t.dateline DESC LIMIT 0, ".$mybb->input['limit']); 

suche:
PHP-Code:
$pubdate mydate("r"$thread['dateline'], ""0); 
füge darunter ein:
PHP-Code:
$thread['usermail'] = htmlspecialchars_uni($thread['usermail']); 
Ich gebe keinen Support per Messenger oder PN!
Zitieren
#5
Beachte aber auch, dass nicht jeder seine E-Mail-Adresse per Newsfeed im Internet verbreiten möchte.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#6
Nee, klappt nicht. Ändert an der Anzeige garnichts Sad
Aber irgendwie hat Michael recht damit. Müsste man irgendwie so ändern, dass man das in einem Profilfeld einstellen kann... Aber erstmal so hinkriegen, dann schauen wir weiter Smile
Vantage-Forum: http://vantage-forum.de/
Zitieren
#7
Ok, dann Kommando zurück. Wink
Stelle bitte den Orginalzustand wieder her.
Nun suche bitte Zeille 85-126:
PHP-Code:
$query $db->query("SELECT t.*, f.name AS forumname, p.message AS postmessage FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid) LEFT JOIN ".TABLE_PREFIX."posts p ON (p.pid=t.firstpost) WHERE 1=1 $forumlist $unviewable AND t.visible='1' ORDER BY t.dateline DESC LIMIT 0, ".$mybb->input['limit']);
while(
$thread $db->fetch_array($query))
{
    
$thread['subject'] = htmlspecialchars_uni($thread['subject']);
    
$thread['forumname'] = htmlspecialchars_uni($thread['forumname']);
    
$postdate mydate($mybb->settings['dateformat'], $thread['dateline'], ""0);
    
$posttime mydate($mybb->settings['timeformat'], $thread['dateline'], ""0);
    
$thread['postmessage'] = nl2br(htmlspecialchars_uni($thread['postmessage']));
    
$pubdate mydate("r"$thread['dateline'], ""0);
    switch(
$mybb->input['type'])
    {
        case 
"rss2.0";
            echo 
"\t\t<item>\n";
            echo 
"\t\t\t<guid>".$mybb->settings['bburl']."/showthread.php?tid=".$thread['tid']."&amp;action=newpost</guid>\n";
            echo 
"\t\t\t<title>".$thread['subject']."</title>\n";
            echo 
"\t\t\t<author>".$thread['username']."</author>\n";
            
$description htmlspecialchars($lang->forum." ".$thread['forumname']."\r\n<br />".$lang->posted_by." ".$thread['username']." ".$lang->on." ".$postdate." ".$posttime);
            if(
$thread['postmessage'])
            {
                
$description .= "\n<br />".$thread['postmessage'];
            }
            echo 
"\t\t\t<description><![CDATA[".$description."]]></description>";
            echo 
"\t\t\t<link>".$mybb->settings['bburl']."/showthread.php?tid=".$thread['tid']."&amp;action=newpost</link>\n";
            echo 
"\t\t\t<category domain=\"".$mybb->settings['bburl']."/forumdisplay.php?fid=".$thread['fid']."\">".$thread['forumname']."</category>\n";
            echo 
"\t\t\t<pubDate>".$pubdate."</pubDate>\n";
            echo 
"\t\t</item>\n";
            break;
        default:
            echo 
"\t\t<item>\n";
            echo 
"\t\t\t<title>".$thread['subject']."</title>\n";
            echo 
"\t\t\t<author>".$thread['username']."</author>\n";
            
$description htmlspecialchars($lang->forum." ".$thread['forumname']."\r\n<br />".$lang->posted_by." ".$thread['username']." ".$lang->on." ".$postdate." ".$posttime);
            if(
$thread['postmessage'])
            {
                
$description .= "\n<br />".$thread['postmessage'];
            }
            echo 
"\t\t\t<description><![CDATA[".$description."]]></description>";
            echo 
"\t\t\t<link>".$mybb->settings['bburl']."/showthread.php?tid=".$thread['tid']."&amp;action=newpost</link>\n";
            echo 
"\t\t</item>\n";
            break;
    }


und ersetze es durch:
PHP-Code:
$query $db->query("SELECT t.*, f.name AS forumname, p.pid, p.message AS postmessage FROM ".TABLE_PREFIX."threads t LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid) LEFT JOIN ".TABLE_PREFIX."posts p ON (p.pid=t.firstpost) WHERE 1=1 $forumlist $unviewable AND t.visible='1' ORDER BY t.dateline DESC LIMIT 0, ".$mybb->input['limit']);
while(
$thread $db->fetch_array($query))
{
    
$thread['subject'] = htmlspecialchars_uni($thread['subject']);
    
$thread['forumname'] = htmlspecialchars_uni($thread['forumname']);
    
$postdate mydate($mybb->settings['dateformat'], $thread['dateline'], ""0);
    
$posttime mydate($mybb->settings['timeformat'], $thread['dateline'], ""0);
    
$thread['postmessage'] = nl2br(htmlspecialchars_uni($thread['postmessage']));
    
$pubdate mydate("r"$thread['dateline'], ""0);
    
$user_query $db->query("SELECT uid,email FROM ".TABLE_PREFIX."users WHERE uid='".$thread['pid']."'");
    while(
$user $db->fetch_array($user_query))
    {
        switch(
$mybb->input['type'])
        {
            case 
"rss2.0";
            echo 
"\t\t<item>\n";
            echo 
"\t\t\t<guid>".$mybb->settings['bburl']."/showthread.php?tid=".$thread['tid']."&amp;action=newpost</guid>\n";
            echo 
"\t\t\t<title>".$thread['subject']."</title>\n";
            echo 
"\t\t\t<author>".$thread['username']." ".$user['email']."</author>\n";
            
$description htmlspecialchars($lang->forum." ".$thread['forumname']."\r\n<br />".$lang->posted_by." ".$thread['username']." ".$lang->on." ".$postdate." ".$posttime);
            if(
$thread['postmessage'])
            {
                
$description .= "\n<br />".$thread['postmessage'];
            }
            echo 
"\t\t\t<description><![CDATA[".$description."]]></description>";
            echo 
"\t\t\t<link>".$mybb->settings['bburl']."/showthread.php?tid=".$thread['tid']."&amp;action=newpost</link>\n";
            echo 
"\t\t\t<category domain=\"".$mybb->settings['bburl']."/forumdisplay.php?fid=".$thread['fid']."\">".$thread['forumname']."</category>\n";
            echo 
"\t\t\t<pubDate>".$pubdate."</pubDate>\n";
            echo 
"\t\t</item>\n";
            break;
            default:
                echo 
"\t\t<item>\n";
                echo 
"\t\t\t<title>".$thread['subject']."</title>\n";
                echo 
"\t\t\t<author>".$thread['username']."</author>\n";
                
$description htmlspecialchars($lang->forum." ".$thread['forumname']."\r\n<br />".$lang->posted_by." ".$thread['username']." ".$lang->on." ".$postdate." ".$posttime);
                if(
$thread['postmessage'])
                {
                    
$description .= "\n<br />".$thread['postmessage'];
                }
                echo 
"\t\t\t<description><![CDATA[".$description."]]></description>";
                echo 
"\t\t\t<link>".$mybb->settings['bburl']."/showthread.php?tid=".$thread['tid']."&amp;action=newpost</link>\n";
                echo 
"\t\t</item>\n";
                break;
        }
    }

Ich gebe keinen Support per Messenger oder PN!
Zitieren
#8
Jetzt wird die E-Mail zwar im 2.0 angezeigt, aber im RSS 0.92 nicht... Aber danke schonmal!
Vantage-Forum: http://vantage-forum.de/
Zitieren
#9
Ok, den default Fall habe ich wohl vergessen/übersehen (bin heute wohl etwas schusselig Big Grin)

Suche bitte in Zeile 118:
PHP-Code:
echo "ttt<author>".$thread['username']."</author>n"
und ersetzte es mit:
PHP-Code:
echo "ttt<author>".$thread['username']." ".$user['email']."</author>n"
Ich gebe keinen Support per Messenger oder PN!
Zitieren
#10
Jo, jetzt gehts. Man kann doch bestimmt noch eine kleine If-Abfrage mit einem profilfeld einbauen? Nur wenn der User es erlaubt wird seine E-Mail Adresse angezeigt. Geht das irgendwie?
Vantage-Forum: http://vantage-forum.de/
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  RSS Feed Poster-> extra Seite KaSo 1 1.416 12.07.2017, 19:36
Letzter Beitrag: KaSo
  Letzte Beiträge per RSS-Feed querschlaeger 21 9.420 05.11.2015, 14:40
Letzter Beitrag: bigfraggle
  Letzte Beiträge per RSS-Feed querschlaeger 10 5.766 27.05.2011, 16:58
Letzter Beitrag: querschlaeger
  Task: Backups über SMTP an E-Mail-Adresse senden lassen pcworld 2 2.067 17.01.2010, 15:49
Letzter Beitrag: pcworld
  Rss to Post -> Rss to Topic L4rZ 4 2.548 13.01.2010, 00:04
Letzter Beitrag: Michael