Seite 2 von 3

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 30.10.2011 15:49
von Himmelskrieger
Es wird immer nur der beitrag "Wiollkommen auf phpBB" angeizt, obwohl dier bereits gelöscht ist.

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 22.03.2012 15:55
von wwwBastler
Hi
Ich will das zusätzlich noch das Forum in dem sich der Post beindet angezeigt wird.Darfür habe ich mir etwas aus viewforum.php zusammen kopiert aber es wird nix ausgeben.

Code: Alles auswählen

<?php
//Hier deine Daten eintragen
$host="localhost";
$username="phpbb";
$password="xxxx";
$database="phpbb";

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

 $sql = 'SELECT t.topic_id, t.topic_title, f.forum_name, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username'
        . ' FROM phpbb_topics t, phpbb_forums f, phpbb_posts p, phpbb_users u'
        . ' WHERE t.topic_id = p.topic_id AND '
        . ' f.forum_id = t.forum_id AND '
        . ' t.topic_status <> 2 AND '
        . ' p.post_id = t.topic_last_post_id AND '
        . ' p.poster_id = u.user_id'
        . ' ORDER BY p.post_id DESC LIMIT 5';
// wenn Abfrage möglich...
if ( $result = mysql_query($sql) )
{
   // dann Schleife solange ein Ergebnis ausgelesen werden kann...
   while ( $row = mysql_fetch_assoc($result) )
   {
      // mysql_fetch_assoc() füllt $row wie ein array() im Format: array('post_time' => 12345678)
      $frmDatum = date("d.m.Y", $row['post_time']);
      $frmZeit = date("H:i:s", $row['post_time']);
      $post = $row['post_id'];
      $forum_id = $row['forum_id'];
$sql_from = ' phpbb_forums f';
$lastread_select = ' f.forums';
$sql = "SELECT f.* $lastread_select
	FROM $sql_from
	WHERE f.forum_id = $forum_id;
$result = $database->sql_query($sql);
$forum_data = $database->sql_fetchrow($result)";

      echo "<font color=black size=2><a href=./forum/viewtopic.php?p=$post#p$post><font color=blue size=2>".$row['topic_title']."</a><br><font color=black size=2>$frmDatum $frmZeit <br></br>";
      echo "Im Forum: " . $forum_data['forum_name'] . "<br><br>";
   }
 
}
mysql_close();
?>
Kann mir da jemand helfen? Vorweg ich habe fast keine ahnung von SQL und php.

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 22.01.2014 21:12
von Lehrling
Hallo,

ich habe mit dem oben vorgestellten Code eine externe php-Seite gebastelt und es klappt auch alles prima, nur hätte ich gerne, dass nicht einfach nur der Titel des Beitrags angezeigt wird, sondern der Beitrag selbst.
Wo müsste ich da etwas ändern?
Danke im voraus und liebe Grüße
Beate

Code: Alles auswählen

<?php
//Hier deine Daten eintragen
$host="localhost";
$username="xxx";
$password="xxx";
$database="xxx";

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

 $sql = 'SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username'
        . ' FROM phpbb_topics t, phpbb_forums f, phpbb_posts p, phpbb_users u'
        . ' WHERE t.topic_id = p.topic_id AND '
        . ' f.forum_id = t.forum_id AND '
        . ' t.topic_status <> 2 AND '
        . ' p.post_id = t.topic_last_post_id AND '
        . ' p.poster_id = u.user_id'
        . ' ORDER BY p.post_id DESC LIMIT 5';
// wenn Abfrage möglich...
if ( $result = mysql_query($sql) )
{
   // dann Schleife solange ein Ergebnis ausgelesen werden kann...
   while ( $row = mysql_fetch_assoc($result) )
   {
      // mysql_fetch_assoc() füllt $row wie ein array() im Format: array('post_time' => 12345678)
      $frmDatum = date("d.m.Y", $row['post_time']);
      $frmZeit = date("H:i:s", $row['post_time']);
      $post = $row['post_id'];
// Eventuell musst du hier den Pfad ändern für den Link ins Forum
      echo "<font color=black size=2><a href=../phpbb3/viewtopic.php?p=$post#p$post><font color=black size=2>".$row['topic_title']."</a><br>$frmDatum $frmZeit<br></br>";
   }
}
mysql_close();
?>

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 22.01.2014 21:56
von Miriam
Dieser Code ermittelt keine Beitragstitel (nicht im engeren Sinne) aber Du kannst imho noch p.post_subject und p.post_text erweiternd in die Query einbinden und dann in der While Schleife mit abfragen.

Noch ein Wort zum Thema Coding:
Vor Kurzem hast Du Dir Gedanken über die Xampp Sicherheit gemacht, auch hattest Du, soweit ich mich entsinne, Bedenken, ob ein Bot Daten aus dem persönlichen Bereich lesen kann.

Auf der anderen Seite füllst Du Deine externen Seiten jeweils mit den fast wichtigsten Zugangsdaten.
Irgendwie ist das kontraproduktiv.

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 23.01.2014 18:21
von Lehrling
ja, da hast du recht.
Ich habe mir jetzt eine Seite anhand dieser Anweisungen gebastelt.
https://wiki.phpbb.com/Practical.Displa ... rnal_pages
LG Beate

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 26.01.2014 17:31
von Lehrling
Ich habe da noch eine Frage:

ich würde die Beiträge auf der externen Seite gerne in zwei Spalten anzeigen lassen. Ich habe da auch schon alles Mögliche probiert mit IF-Befehlen à la <!-- IF FORUM_ID eq '2' --><div class="left"><!-- ELSE --><div class="right"> etc.
Aber es will nicht klappen.
Die beiden Dateien habe ich in den Pastebin geladen.
Hier die php-Datei:
https://www.phpbb.de/support/pastebin.p ... iew&s=1393

Und hier die template-Datei:
https://www.phpbb.de/support/pastebin.p ... iew&s=1394

LG Beate

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 26.01.2014 17:43
von Miriam
Wieso packst Du die jeweiligen Beiträge nicht in DIVs, die Du einfach per CSS nebeneinander automatisch anordnen läßt?
Das solltest Du ohne php, also allein durch HTML und CSS, hinbekommen.

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 26.01.2014 18:40
von Lehrling
ja, aber ich möchte doch, dass verschiedene Beiträge angezeigt werden.
Ich habe jetzt einen table drumherum gebaut und zwei Spalten bekommen. Aber in beiden Spalten werden dieselben Beiträge angezeigt.
Was könnte ich tun, damit in Spalte 1 z.B. Beiträge aus Forum 1 und 2 angezeigt werden und in Spalte 2 Beiträge aus Forum 4 und 5?

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 26.01.2014 18:57
von Miriam
Prinzipielle Vorgehensweise: viewtopic.php?f=89&t=226049#p1290481
Mußt es nur etwas umbauen für Deine Anforderungen.

Re: 5 neueste Forenbeiträge auf Homepage einbinden

Verfasst: 26.01.2014 19:54
von Lehrling
Mit folgendem Code bekomme ich die Container zwar in zwei Spalten, aber sie sind immer versetzt. Siehe dazu den Screenshot:

[ externes Bild ]

Code: Alles auswählen

 <!-- BEGIN announcements -->
   <div style="width:280px;padding:10px;margin-bottom:30px;border:1px solid black;<!-- IF announcements.S_ROW_COUNT is odd -->float:left;margin-left:5px;<!-- ELSE -->float:left;margin-left:335px;<!-- ENDIF -->">
 <span class="recipe">{announcements.TOPIC_TITLE}</span>
     <p><span class="boxtext">{announcements.POST_TEXT}</span></p></div>
      <!-- END announcements -->
Was kann ich tun, damit sie nebeneinander sind?