Letzte Forenbeiträge

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
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.
Antworten
dms281
Mitglied
Beiträge: 6
Registriert: 29.01.2006 03:51

Letzte Forenbeiträge

Beitrag von dms281 »

Hallo zusammen,
ich bin in Sachen PHP und HTML ein blutiger Anfänger (Noob) und verzweifle langsam bei meinen erfolglosen Versuchen das gewünschte Ziel zu erreichen.

Ich verwende MKPortal in Verbindung mit PHPbb3 und habe einen Block für das MKP gefunden welcher mir die letzten Forenbeiträge im Portal anzeigt. Zu sehen unter http://www.gft-funclan.de
Ansich bin ich mit diesem Block absolut zufrieden, allerdings würde ich gern folgendes Ändern:

Derzeit wird angezeigt: Titel des Beitrags - Letzter Beitrag von (Username) - Datum - Anzahl der Antworten
Nun würde ich gern zwischen den Spalten "Titel des Beitrages" und "Letzter Beitrag von" noch eine Spalte einfügen, in der der Name des Forums erscheint in dem der Beitrag steht.
(Am besten wäre es natürlich wenn man hier ebenso wie im Beitragsnamen die Zeichenzahl begrenzen könnte die angezeigt wird.)

Hoffe hier ist jemand so nett mir zu helfen, ich denke mal für jemanden der sich auskennt ist das eine Kleinigkeit. :roll:

Der Code des Blocks sieht wie folgt aus:

Code: Alles auswählen

<?php
/*
---------------------------------------------------------------------------
Config:
--------------------------------------------------------------------------*/
$prefix        = "phpbb_";    // Database prefix
$limit         = 6;         // Number of forum posts to show in block 
$cutoff        = 30;         // Number of characters to display in title
$startformat   = "long";      // Formats the start date. 
                              //Options are short, time, small, normal, long or leave blank for default.
$lastformat    = "short";     // Formats the last post date.
                              //Options are short, time, small, normal, long or leave blank for default.
/*------------------------------------------------------------------------
Forum images Config:
--------------------------------------------------------------------------*/
$img_first_topic    ="<img src=\"$mkportals->forum_url/styles/subsilver2/imageset/topic_read.gif\" boder=\"0\">";
$img_last_topic     ="<img src=\"$mkportals->forum_url/styles/subsilver2/imageset/icon_topic_latest.gif\" boder=\"0\">";
                              //images are from phpbb3 default template subsilver2 you also can use your own template images
                              //empty images canbe used by "" eg: $img_first_topic ="";
/*-------------------------------------------------------------------------
Language Setting:
--------------------------------------------------------------------------*/
$lang_topic_title        ="Titel des Beitrags";
$lang_last_post          ="Letzter Beitrag";
$lang_last_post2         =" ";
$lang_last_post_date     ="Datum";
$lang_views              ="Aufrufe";
$lang_replies            ="Antw.";
$lang_go_to_last_post    ="Gehe zum letzten Beitrag ...";
$lang_topic_started_by   ="Thema gestartet von:";
$lang_on                 ="am";
$lang_by                 ="von";
$lang_last_poster        ="Benutzer:";
/*------------------------------------------------------------------------*/
global $auth;
$content = "
<tr>
  <td>

    <table class=\"moduleborder\" cellspacing=\"1\" width=\"100%\">
      <tr>
    <th class=\"modulex\" width=\"35%\" style=\"padding-left: 10px;\">$lang_topic_title</th>
    <th class=\"modulex\" width=\"43%\" style=\"padding-left: 10px;\">$lang_last_post</th>
    <th class=\"modulex\" width=\"12%\" style=\"padding-left: 10px;\">$lang_last_post_date</th>

    <th class=\"modulex\" width=\"5%\">$lang_replies</th>
      </tr>
";

     $DB->query("SELECT forum_id FROM ".$prefix."forums");
     while( $f = $DB->fetch_row() ) {
         if ($auth->acl_get('f_read', $f['forum_id']))  {
                 $good[] = $f['forum_id'];
        }
        }

     if ( count($good) > 0 ) {
             $qe = " AND t.forum_id  IN(".implode(',', $good ).") ";
        }

        $DB->query("SELECT t.topic_last_post_id, t.topic_id, t.topic_title, t.topic_views, t.topic_replies, t.topic_time, t.topic_last_post_time, t.topic_first_poster_name, t.topic_last_poster_name, t.topic_last_poster_id, topic_poster, t.forum_id
        
                FROM ".$prefix."topics t
                LEFT JOIN ".$prefix."forums f ON (t.forum_id = f.forum_id)
                WHERE topic_approved != 0 AND topic_approved = 1 AND (topic_moved_id = 0 or topic_moved_id='') $qe
                GROUP BY t.topic_title
                ORDER BY t.topic_last_post_id DESC LIMIT 0,$limit");        

         while ( $post = $DB->fetch_row() ) {
        $post['title'] = strip_tags($post['title']);
        $post['topic_title'] = str_replace( "!" , "!" , $post['topic_title'] );
        $post['topic_title'] = str_replace( """, "\"", $post['topic_title'] );
            if (strlen($post['topic_title']) > $cutoff) {
                $post['topic_title'] = substr( $post['topic_title'],0,($cutoff - 3) ) . "...";
                $post['topic_title'] = preg_replace( '/&(#(\d+;?)?)?(\.\.\.)?$/', '...',$post['topic_title'] );
            }         

        $title = $post['topic_title'];
         $tid = $post['topic_id'];        
        $tlastid = $post['topic_last_post_id'];
              $views = $post['topic_views'];
        $posts = $post['topic_replies'];
        $starter = $post['topic_first_poster_name'];
        $lastname = $post['topic_last_poster_name'];
        $lastid = $post['topic_last_poster_id'];
        $forum_id = $post['forum_id'];
        $startdate  = $this->create_date($post['topic_time'], $startformat);
        $lastdate  = $this->create_date($post['topic_last_post_time'], $lastformat);

        $content .= "
<!-- topic begin -->
      <tr>
    <td class=\"modulecell\" style=\"padding-left: 10px; text-align: left;\">
      $img_first_topic <a style=\"text-decoration: none; font-weight: bold;\" href=\"$mkportals->forum_url/viewtopic.php?f=$forum_id&t=$tid\" title=\"$lang_topic_started_by $starter $lang_on $startdate\">$title</a>
    </td>
    <td class=\"modulecell\" style=\"padding-left: 10px; text-align: left;\">
      <a href=\"$mkportals->forum_url/viewtopic.php?f=$forum_id&t=$tid&p=$tlastid#p$tlastid\" title=\"$lang_go_to_last_post\">$img_last_topic $lang_last_post2</a> $lang_by <a href=\"$mkportals->forum_url/memberlist.php?mode=viewprofile&u=$lastid\" title=\"$lang_last_poster $lastname\"><b>$lastname</b></a>
    </td>
    <td class=\"modulecell\" style=\"padding-left: 10px; text-align: left;\">$lastdate</td>

    <td class=\"modulecell\" style=\"padding-right: 10px; text-align: right;\"> $posts </td>                
    </td>
      </tr>
<!-- topic end -->   
        ";
}

$content .= "
    </table>

  </td>
</tr>
";  

          unset($prefix);
          unset($limit);
          unset($cutoff);
          unset($startformat);
          unset($lastformat);
          unset($perms);
          unset($good);
          unset($qe);
          unset($post);
          unset($tid);
          unset($title);
          unset($views);
          unset($posts);
          unset($startdate);
          unset($lastdate);
          unset($starter);
          unset($lastname);
          unset($lastid);
          unset($tlastid);
          unset($forum_id);
          unset($img_last_topic);
          unset($img_first_topic);          
          unset($lang_topic_title);
          unset($lang_last_post);
          unset($lang_last_post_date);
          unset($lang_views);
          unset($lang_replies);
          unset($lang_go_to_last_post);
          unset($lang_topic_started_by);
          unset($lang_on);
          unset($lang_by);
          unset($lang_last_poster);           

?> 
aurora876
Ehemaliger Übersetzer
Beiträge: 1600
Registriert: 30.08.2008 20:41

Re: Letzte Forenbeiträge

Beitrag von aurora876 »

MKPortal - was genau ist das?
ist das eine mod fürs phpbb oder wie?
There are 10 types of people in the world: Those who understand binary and those who don't. :D

Support Toolkit in Deutsch
dms281
Mitglied
Beiträge: 6
Registriert: 29.01.2006 03:51

Re: Letzte Forenbeiträge

Beitrag von dms281 »

http://www.mkportal.it/
MKPortal ist ein Portalsystem, welches sich mit vielen bekannten Foren (phpbb2, phpbb3, ipb, smf, vb...) verknüpfen lässt. Leider ist der offizielle Support und die Weiterentwicklung ende letzten Jahres eingestellt worden was ich schade finde da es ein klasse System ist. Meine Frage habe ich bewusst hier gestellt da es sich ja direkt auf die Funktionen des PHPbb3 bezieht und ihr mir wahrscheinlich am ehesten weiterhelfen könnt. Der Block ist ja soweit funktionstüchtig, es geht mir nun einfach darum eine weitere Spalte einzufügen in die dann der jeweilige Forenname eingefügt wird. Ich weis nur leider nicht wie und besonders an welcher Stelle ich dies einfügen muss und wie ich den jeweils dazugehörigen Forennamen auslesen kann.
dms281
Mitglied
Beiträge: 6
Registriert: 29.01.2006 03:51

Re: Letzte Forenbeiträge

Beitrag von dms281 »

Hmm, ich glaube ich bewege mich in die richtige Richtung, bin ja ganz überrascht dass ich das soweit hinbekommen habe.
Der Forenname wird nun angezeigt und ich habe es sogar geschafft dass die länge des Forennamens gekürzt wird. Allerdings habe ich noch ein winziges Problem:

Im Beitragsnamen werden Umlaute (ÄÖÜ) korrekt angezeigt, im Forennamen allerdings erscheint nur die Raute. Habe leider noch nicht herausgefunden wo das Problem liegt.
Das Script sieht derzeit wie folgt aus, ich hoffe ich habe den Code nicht zu sehr vergewaltigt :roll:

Code: Alles auswählen

<?php
/*
---------------------------------------------------------------------------
Config:
--------------------------------------------------------------------------*/
$prefix        = "phpbb_";	// Database prefix
$limit         = 6; 		// Number of forum posts to show in block 
$cutoff        = 28; 		// Number of characters to display in title
$cutoff2       = 24; 		// Number of characters to display in forum name
$startformat   = "long";      // Formats the start date. 
                              //Options are short, time, small, normal, long or leave blank for default.
$lastformat    = "short";     // Formats the last post date.
                              //Options are short, time, small, normal, long or leave blank for default.
/*------------------------------------------------------------------------
Forum images Config:
--------------------------------------------------------------------------*/
$img_first_topic    ="<img src=\"$mkportals->forum_url/styles/subsilver2/imageset/topic_read.gif\" boder=\"0\">";
$img_last_topic     ="<img src=\"$mkportals->forum_url/styles/subsilver2/imageset/icon_topic_latest.gif\" boder=\"0\">";
                              //images are from phpbb3 default template subsilver2 you also can use your own template images
                              //empty images canbe used by "" eg: $img_first_topic ="";
/*-------------------------------------------------------------------------
Language Setting:
--------------------------------------------------------------------------*/
$lang_topic_title        ="Titel des Beitrags";
$lang_last_post          ="Letzter Beitrag";
$lang_last_post2         =" ";
$lang_last_post_date     ="Datum";
$lang_views              ="Aufrufe";
$lang_replies            ="Antw.";
$lang_go_to_last_post    ="Gehe zum letzten Beitrag ...";
$lang_topic_started_by   ="Thema gestartet von:";
$lang_on                 ="am";
$lang_by                 ="von";
$lang_last_poster        ="Benutzer:";
$lang_forum_name         ="Forum:";
/*------------------------------------------------------------------------*/

$content = "
<tr>
  <td>

    <table class=\"moduleborder\" cellspacing=\"1\" width=\"100%\">
      <tr>
	<th class=\"modulex\" width=\"30%\" style=\"padding-left: 10px;\">$lang_topic_title</th>
	<th class=\"modulex\" width=\"25%\" style=\"padding-left: 10px;\">$lang_forum_name</th>
	<th class=\"modulex\" width=\"25%\" style=\"padding-left: 10px;\">$lang_last_poster</th>
	<th class=\"modulex\" width=\"15%\" style=\"text-align: center;\">$lang_last_post_date</th>
	<th class=\"modulex\" width=\"5%\">$lang_replies</th>
      </tr>
";

 	$DB->query("SELECT forum_id, forum_password FROM ".$prefix."forums");
 	while( $f = $DB->fetch_row() ) {
 		if ($f['forum_password'] != "" ) {
            		$bad[] = $f['forum_id'];
        	} else {
         		$good[] = $f['forum_id'];
        	}
    	}

 	if ( count($bad) > 0 ) {
     		$qe = " AND forum_id NOT IN(".implode(',', $bad ).") ";
    	}

		$DB->query("SELECT t.topic_last_post_id, t.topic_id, t.topic_title, t.topic_views, t.topic_replies, t.topic_time, t.topic_last_post_time, t.topic_first_poster_name, t.topic_last_poster_name, topic_poster, t.forum_id, f.forum_name
		
			    FROM ".$prefix."topics t
			    LEFT JOIN ".$prefix."forums f ON (t.forum_id = f.forum_id)
			    WHERE topic_approved != 0 AND topic_approved = 1 AND (topic_moved_id = 0 or topic_moved_id='') $qe
			    GROUP BY t.topic_title
			    ORDER BY t.topic_last_post_id DESC LIMIT 0,$limit");		

 		while ( $post = $DB->fetch_row() ) {
		$post['title'] = strip_tags($post['title']);
		$post['topic_title'] = str_replace( "&#33;" , "!" , $post['topic_title'] );
		$post['topic_title'] = str_replace( """, "\"", $post['topic_title'] );
			if (strlen($post['topic_title']) > $cutoff) {
				$post['topic_title'] = substr( $post['topic_title'],0,($cutoff - 3) ) . "...";
				$post['topic_title'] = preg_replace( '/&(#(\d+;?)?)?(\.\.\.)?$/', '...',$post['topic_title'] );
			}
      
      if (strlen($post['forum_name']) > $cutoff2) {
				$post['forum_name'] = substr( $post['forum_name'],0,($cutoff2 - 3) ) . "...";
				$post['forum_name'] = preg_replace( '/&(#(\d+;?)?)?(\.\.\.)?$/', '...',$post['forum_name'] );
			} 		

		$title = $post['topic_title'];
 		$tid = $post['topic_id'];		
		$tlastid = $post['topic_last_post_id'];
    $views = $post['topic_views'];
		$posts = $post['topic_replies'];
		$starter = $post['topic_first_poster_name'];
		$lastname = $post['topic_last_poster_name'];
		$lastid = $post['topic_poster'];
		$forum_id = $post['forum_id'];
		$forum_name = $post ['forum_name'];
		$startdate  = $this->create_date($post['topic_time'], $startformat);
		$lastdate  = $this->create_date($post['topic_last_post_time'], $lastformat);

		$content .= "
<!-- topic begin -->
      <tr>
	<td class=\"modulecell\" style=\"padding-left: 10px; text-align: left;\">
	  $img_first_topic <a style=\"text-decoration: none; font-weight: bold;\" href=\"$mkportals->forum_url/viewtopic.php?f=$forum_id&t=$tid\" title=\"$lang_topic_started_by $starter $lang_on $startdate\">$title</a>
	</td>
	<td class=\"modulecell\" style=\"padding-left: 10px; text-align: left;\"> $forum_name </td>
  <td class=\"modulecell\" style=\"padding-left: 10px; text-align: left;\">
	  <a href=\"$mkportals->forum_url/viewtopic.php?f=$forum_id&t=$tid&p=$tlastid#p$tlastid\" title=\"$lang_go_to_last_post\">$img_last_topic $lang_last_post2</a> $lang_by <a href=\"$mkportals->forum_url/memberlist.php?mode=viewprofile&u=$lastid\" title=\"$lang_last_poster $lastname\"><b>$lastname</b></a>
	</td>
	<td class=\"modulecell\" style=\"padding-left: 10px; text-align: left;\">$lastdate</td>
	
	<td class=\"modulecell\" style=\"padding-right: 10px; text-align: right;\"> $posts </td>		    	
	</td>
      </tr>
<!-- topic end -->   
		";
}

$content .= "
    </table>

  </td>
</tr>
";  

          unset($prefix);
          unset($limit);
          unset($cutoff);
          unset($startformat);
          unset($lastformat);
          unset($perms);
          unset($good);
          unset($bad);
          unset($qe);
          unset($post);
          unset($tid);
          unset($title);
          unset($views);
          unset($posts);
          unset($startdate);
          unset($lastdate);
          unset($starter);
          unset($lastname);
          unset($lastid);
          unset($tlastid);
          unset($forum_id);

          unset($img_last_topic);
          unset($img_first_topic);
          
          unset($lang_topic_title);
          unset($lang_last_post);
          unset($lang_last_post_date);
          unset($lang_views);
          unset($lang_replies);
          unset($lang_go_to_last_post);
          unset($lang_topic_started_by);
          unset($lang_on);
          unset($lang_by);
          unset($lang_last_poster);           

?>
EDIT:
Schaut so aus als hätte ich es hinbekommen. Ich habe folgendes eingefügt um die Umlaute in den Griff zu bekommen:

Code: Alles auswählen

		$post['forum_name'] = str_replace( "ü", "&uuml;", $post['forum_name'] );
    $post['forum_name'] = str_replace( "ö", "&ouml;", $post['forum_name'] );
    $post['forum_name'] = str_replace( "ä", "&auml;", $post['forum_name'] );    
Das von mir angestrebte Ergebnis ist damit erreicht, ich hoffe nur wie gesagt dass ich den Code nicht allzusehr vergewaltigt habe.
Für Kritik oder Verbesserungsvorschläge bin ich natürlich immer offen :wink:
aurora876
Ehemaliger Übersetzer
Beiträge: 1600
Registriert: 30.08.2008 20:41

Re: Letzte Forenbeiträge

Beitrag von aurora876 »

dms281 hat geschrieben:http://www.mkportal.it/
MKPortal ist ein Portalsystem, welches sich mit vielen bekannten Foren (phpbb2, phpbb3, ipb, smf, vb...) verknüpfen lässt.
ok, allerdings nutzen die meisten das board3portal für ihr forum ;)
There are 10 types of people in the world: Those who understand binary and those who don't. :D

Support Toolkit in Deutsch
dms281
Mitglied
Beiträge: 6
Registriert: 29.01.2006 03:51

Re: Letzte Forenbeiträge

Beitrag von dms281 »

ok, allerdings nutzen die meisten das board3portal für ihr forum ;)
Ich kenne das Board3Portal und habe es auch ausprobiert. Leider kommt es an die Benutzerfreundlichkeit des MKPortal meiner Meinung nach nicht heran. Schaut euch das MKP mal an, eine wirklich gelungene Sache und sehr schade dass es nicht mehr weiterentwickelt wird. :( Gibt auch noch eine Deutsche Support Community dazu die auch noch aktiv ist, aber viele Downloads von der Entwicklerseite sind leider schon nicht mehr verfügbar.
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“