MyBB.de Forum

Normale Version: RSS-Feed mit E-Mail Adresse?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
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?
Hallo Mak,
Du solltest
PHP-Code:
$thread['email'
nutzen können, da ein Query, die gesamte userspalte selectiert.

Mfg Garlant
Ä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" =)
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']); 
Beachte aber auch, dass nicht jeder seine E-Mail-Adresse per Newsfeed im Internet verbreiten möchte.
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
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;
        }
    }

Jetzt wird die E-Mail zwar im 2.0 angezeigt, aber im RSS 0.92 nicht... Aber danke schonmal!
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"
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?
Seiten: 1 2 3 4