Beitragstitel bestimmter Threads in der sidebar

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
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.
webrunde
Mitglied
Beiträge: 43
Registriert: 01.05.2006 19:21
Wohnort: Berlin
Kontaktdaten:

Beitragstitel bestimmter Threads in der sidebar

Beitrag von webrunde »

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?
JFooty
Ehemaliges Teammitglied
Beiträge: 1868
Registriert: 02.10.2007 11:46

Beitrag von JFooty »

Das könntest du z.B. mit Einfache Anzeige der letzten Themen in Div-Box realisieren.
webrunde
Mitglied
Beiträge: 43
Registriert: 01.05.2006 19:21
Wohnort: Berlin
Kontaktdaten:

Beitrag von webrunde »

Danke!

Ich werde versuchen daraus was zu basteln. 8)
webrunde
Mitglied
Beiträge: 43
Registriert: 01.05.2006 19:21
Wohnort: Berlin
Kontaktdaten:

Beitrag von webrunde »

So, ich habe das ganze so weit, dass ich die entsprechende php Datei aufrufen kann und die Ergebnisse bekomme, die ich haben will.

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();
?>
Nun die Fragen:

Ich muss das ganze jetzt in die overall_header.html einbinden. :oops:

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?
webrunde
Mitglied
Beiträge: 43
Registriert: 01.05.2006 19:21
Wohnort: Berlin
Kontaktdaten:

Beitrag von webrunde »

Nun bin ich inzwischen wieder ein ganzes stück weiter, aber trotzdem fehlt mir die endgültige Einbindung in die overall_footer.html

Ich habe jetzt eine Funktion eingerichtet und auch includet:

select_sidebar_threads(zahl)

Wie bekomme ich jetzt den Output im Template?
(Output ist html Code)
webrunde
Mitglied
Beiträge: 43
Registriert: 01.05.2006 19:21
Wohnort: Berlin
Kontaktdaten:

Beitrag von webrunde »

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:

Code: Alles auswählen

	'DOMAIN_VERKAUF' => file_get_contents('http://www.domainforum.info/domainverkauf.php'),
In der overall_footer rufe ich das ganze so auf:

Code: Alles auswählen

					{DOMAIN_VERKAUF}
Wo ist denn nun der Fehler???
Benutzeravatar
FatFreddy
Mitglied
Beiträge: 1937
Registriert: 25.07.2004 15:52
Kontaktdaten:

Beitrag von FatFreddy »

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:

Code: Alles auswählen

$domainblock = '<h2>Domain Verkauf</h2><ul>'; 
...
$domainblock .= '<li><a href="'. $topic_url .'">'. $topic_title .'</a></li>';
...
Am Ende des Skripts diese Variable an die Templateengine übergeben.

Code: Alles auswählen

	$template->assign_vars(array(
		'DOMAIN_VERKAUF'		=> $domainblock)
	);
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
Watch out where the huskies go, don't you eat the yellow snow...
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
webrunde
Mitglied
Beiträge: 43
Registriert: 01.05.2006 19:21
Wohnort: Berlin
Kontaktdaten:

Beitrag von webrunde »

Danke!

Das ganze muss aber wirklich immer erscheinen und nicht nur auf der Index-Seite.

Wie müsste das ganze denn innerhalb der page_footer.php denn aussehen?
Benutzeravatar
FatFreddy
Mitglied
Beiträge: 1937
Registriert: 25.07.2004 15:52
Kontaktdaten:

Beitrag von FatFreddy »

Suche in functions.php nach

Code: Alles auswählen

$template->display('body');
und setz deinen include davor.

FatFreddy
Watch out where the huskies go, don't you eat the yellow snow...
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
webrunde
Mitglied
Beiträge: 43
Registriert: 01.05.2006 19:21
Wohnort: Berlin
Kontaktdaten:

Beitrag von webrunde »

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

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)
   );

?>
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“