Beitragstitel bestimmter Threads in der sidebar
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Beitragstitel bestimmter Threads in der sidebar
Hi Jungs, ich brauche noch einmal etwas Hilfe.
ich habe ein phpBB3 Forum mit einem Theme basierend auf Prosilver. Theme ist insofern verändert, dass ich rechts eine Sidebar eingebaut habe.
Nun will ich in diese Sidebar zwei oder gar drei Module einbauen, die jeweils die Titel der letzten 5 Beiträge einer bestimmten Kategorie oder Forum (samt Link zum Thread) beinhalten.
Kann mir jemand sagen, wie ich sowas anstelle?
ich habe ein phpBB3 Forum mit einem Theme basierend auf Prosilver. Theme ist insofern verändert, dass ich rechts eine Sidebar eingebaut habe.
Nun will ich in diese Sidebar zwei oder gar drei Module einbauen, die jeweils die Titel der letzten 5 Beiträge einer bestimmten Kategorie oder Forum (samt Link zum Thread) beinhalten.
Kann mir jemand sagen, wie ich sowas anstelle?
Das könntest du z.B. mit Einfache Anzeige der letzten Themen in Div-Box realisieren.
So, ich habe das ganze so weit, dass ich die entsprechende php Datei aufrufen kann und die Ergebnisse bekomme, die ich haben will.
Nun die Fragen:
Ich muss das ganze jetzt in die overall_header.html einbinden.
Die Datenbankverbindung wäre dann bereits aktiv, also kann ich sie aus dem Code rausnehmen, oder?
Da ich nur den Threadtitel samt Link brauche,kann ich doch einiges aus der sql Abfrage rausnehmen, oder. Kann mir jemand sagen, wie sie dann aussehen müsste?
Code: Alles auswählen
// Variablendefinition entfernt!
// ############## output ##############
echo '<h2>Domain Verkauf</h2><ul>';
// ############## output ##############
$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id IN ('. $forum_ids .') AND ';
$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time
FROM ". $table_prefix ."topics t, ". $table_prefix ."forums f, ". $table_prefix ."users u, ". $table_prefix ."posts p, ". $table_prefix ."posts p2, ". $table_prefix ."users u2
WHERE $where_forums t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id
ORDER BY t.topic_last_post_id DESC LIMIT $topic_limit";
$result = mysql_query($sql);
if( !$result )
{
die('SQL Statement Error: '. mysql_error());
exit();
}
$line = array();
while( $row = mysql_fetch_array($result) )
{
$line[] = $row;
}
for( $i = 0; $i < count($line); $i++ )
{
$forum_id = $line[$i]['forum_id'];
$forum_url = $root_path .'viewforum.php?f='. $forum_id;
$topic_id = $line[$i]['topic_id'];
$topic_url = $root_path .'viewtopic.php?t='. $topic_id;
$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';
// ############## output ##############
echo '<li><a href="'. $topic_url .'">'. $topic_title .'</a></li>';
// ############## output ##############
}
echo '</ul>';
mysql_close();
?>
Ich muss das ganze jetzt in die overall_header.html einbinden.

Die Datenbankverbindung wäre dann bereits aktiv, also kann ich sie aus dem Code rausnehmen, oder?
Da ich nur den Threadtitel samt Link brauche,kann ich doch einiges aus der sql Abfrage rausnehmen, oder. Kann mir jemand sagen, wie sie dann aussehen müsste?
Hi, kann keiner weiterhelfen???
Aktueller Stand:
Datei heißt jetzt domainverkauf.php und die Ausgabe (echo) funktioniert einwandfrei: www.domainforum.info/domainverkauf.php
Nun will ich diese im Forum www.domainforum.info einfügen. Die Sidebar ist in der overall_footer drin.
in theme/template/index.php ist eine Zeile eingefügt:
In der overall_footer rufe ich das ganze so auf:
Wo ist denn nun der Fehler???
Aktueller Stand:
Datei heißt jetzt domainverkauf.php und die Ausgabe (echo) funktioniert einwandfrei: www.domainforum.info/domainverkauf.php
Nun will ich diese im Forum www.domainforum.info einfügen. Die Sidebar ist in der overall_footer drin.
in theme/template/index.php ist eine Zeile eingefügt:
Code: Alles auswählen
'DOMAIN_VERKAUF' => file_get_contents('http://www.domainforum.info/domainverkauf.php'),
Code: Alles auswählen
{DOMAIN_VERKAUF}
Moin.
Hier eine ungeprüfte Notlösung auf die Schnelle.
1.Deine Templatevariable {DOMAIN_VERKAUF} wird nie mit Inhalten versorgt.
In deinem Skript die Werte nicht mit echo ausgeben, sondern einer Variablen (z.B. $domainblock) zuordnen. Beispiel:
Am Ende des Skripts diese Variable an die Templateengine übergeben.
2. Das Skript per Include und nicht mit file_get_contents einbinden.
Durch die Einbindung in index.php wird deine Sidebar allerdings nur versorgt, wenn sich der User im Forenindex bewegt.
Wenn der Block immer erscheinen soll, muß das Skript in der functions.php in die Function page_footer() eingebunden werden.
Wenn ich nix übersehen habe, sollte es damit zumindest funktionieren. Richtig "sauber" ist das Ganze damit noch nicht.
FatFreddy
Hier eine ungeprüfte Notlösung auf die Schnelle.
1.Deine Templatevariable {DOMAIN_VERKAUF} wird nie mit Inhalten versorgt.

In deinem Skript die Werte nicht mit echo ausgeben, sondern einer Variablen (z.B. $domainblock) zuordnen. Beispiel:
Code: Alles auswählen
$domainblock = '<h2>Domain Verkauf</h2><ul>';
...
$domainblock .= '<li><a href="'. $topic_url .'">'. $topic_title .'</a></li>';
...
Code: Alles auswählen
$template->assign_vars(array(
'DOMAIN_VERKAUF' => $domainblock)
);
Durch die Einbindung in index.php wird deine Sidebar allerdings nur versorgt, wenn sich der User im Forenindex bewegt.
Wenn der Block immer erscheinen soll, muß das Skript in der functions.php in die Function page_footer() eingebunden werden.
Wenn ich nix übersehen habe, sollte es damit zumindest funktionieren. Richtig "sauber" ist das Ganze damit noch nicht.

FatFreddy
Watch out where the huskies go, don't you eat the yellow snow...
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
Suche in functions.php nach
und setz deinen include davor.
FatFreddy
Code: Alles auswählen
$template->display('body');
FatFreddy
Watch out where the huskies go, don't you eat the yellow snow...
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
Danke, code ist jetzt in der funktions.php includet und die domainverkauf.php entsprechend bearbeitet, aber nun erscheint lediglich die Titelzeile, also h2 titel und der rest nicht. (siehe www.domainforum.info )
Hier der aktualisierte Inhalt von domainverkauf.php
Hier der aktualisierte Inhalt von domainverkauf.php
Code: Alles auswählen
<?php
// ############ Edit below ########################################
$topic_length = '20'; // length of topic title
$topic_limit = '10'; // limit of displayed topics
$special_forums = '1'; // specify forums ('0' = no; '1' = yes)
$forum_ids = '74'; // IDs of forums; separate them with a comma
// ############ Edit above #######################################
// ############## output ##############
$domain_top = '<h2>Domain Verkauf</h2><ul>';
// ############## output ##############
$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id IN ('. $forum_ids .') AND ';
$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time
FROM ". $table_prefix ."topics t, ". $table_prefix ."forums f, ". $table_prefix ."users u, ". $table_prefix ."posts p, ". $table_prefix ."posts p2, ". $table_prefix ."users u2
WHERE $where_forums t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id
ORDER BY t.topic_last_post_id DESC LIMIT $topic_limit";
$result = mysql_query($sql);
if( !$result )
{
die('SQL Statement Error: '. mysql_error());
exit();
}
$line = array();
while( $row = mysql_fetch_array($result) )
{
$line[] = $row;
}
for( $i = 0; $i < count($line); $i++ )
{
$forum_id = $line[$i]['forum_id'];
$forum_url = $root_path .'viewforum.php?f='. $forum_id;
$topic_id = $line[$i]['topic_id'];
$topic_url = $root_path .'viewtopic.php?t='. $topic_id;
$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';
// ############## output ##############
$domain_top = $domain_top .'<li><a href="'. $topic_url .'">'. $topic_title .'</a></li>';
// ############## output ##############
}
$domain_top = $domain_top .'</ul>';
$template->assign_vars(array(
'DOMAIN_VERKAUF' => $domain_top)
);
?>