Seite 20 von 22

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 26.12.2009 00:45
von Latza
achso. dann hat sich das thema hier erledigt. ich dachte das ist sowas wie auf deinem test board. Na hoffentlich ist der Mod bald öffentlich ;).

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 16.02.2010 09:49
von SilverB
Danke habe ich gesucht *Daumen hoch*

Kann man da hinzufügen wer als letztes gepostet hat ?

Mfg.

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 19.02.2010 03:48
von SilverB
Mir ist aufgefallen das die Themen wieder nach oben rutschen wen man darauf geantwortet hat, kann man das irgendwie aufheben ?

EDIT: Habe es gefunden :D

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 06.12.2010 12:19
von mxdDanel
Hallo,

ist etwas alt das Thema, aber es war bisher das beste was ich zu diesem Thema gefunden hab.

Funktioniert alles soweit nur eine Frage hätte ich:
Gibt es eine Erweiterung, dass auch die Berechtigungen berücksichtigt werden?
Oder wie kann ich das selbst implementieren?

Wenn ich zwei Gruppen habe möchte ich, dass auch nur den Leuten mit der richtigen Gruppe/Berechtigungsstufe die letzten Beiträge angezeigt werden:
Forum 1 -> Gruppe 1
Forum 2 -> Gruppe 1 & Gruppe 2

Wenn ich nun im Forum 1 was poste, sollen es auch nur die Leute von der Gruppe 1 sehen können.
Oft verrät der Titel schon viel und das soll vermieden werden.

Einige Seite davor hat die Frage bereits jmd. gestellt, jedoch ohne Antwort.

Vl. kann mir hier jmd. helfen.

vielen Dank.

lg
mx....

edit: Formulierung

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 16.01.2011 20:42
von Luuq
Hi Leute,

habe mir das auch mal eingebaut.
So sieht mein latest.php aus:

Code: Alles auswählen

<?php
// ############ Anfang Festlegung der Vorgaben ########################################

// Laenge der angezeigten Themenueberschrift in Buchstaben
$topic_length = '20';

// Maximal angezeigte Beiträge
$topic_limit = '5';

// Eingeschraenkte Forumsanzeige ('0' = Aus; '1' = Ein)
$special_forums = '0';

// IDs der zugelassenen Foren (nur wenn Forumsanzeige = "1"); Trennung der IDs mit einem Komma
$forum_ids = '3,4,5,20,21,22,7,9,8,10,11,12,13,14,15,16,17,18,19,23';

// Trennzeichen für spaetere Pfadkonstruktion (config.php)
$config_path = '/';

// Pfad des Forums auf dem Server, bitte eingeben !!!
$root_path = 'http://gewi-forum.at/';



// ############ Ende Vorgaben #######################################

//Ermittlung des aktuellen Server-Verzeichnisses
$path = dirname(__FILE__);

// Einbinden der phpBB-Konfigurationsdatei und somit Ermittlung der MySQL-Zugangsdaten
include_once($path.$config_path .'config.php');

// Verbindungsaufbau mit Zugangsdaten aus config.php, Fehlermeldung bei Problemen
mysql_connect($dbhost, $dbuser, $dbpasswd) OR die('Serververbindung fehlgeschlagen');

// Verbindung mit der phpBB-Datenbank herstellen
mysql_select_db($dbname) OR die('Datenbankverbindung fehlgeschlagen!');

// ############## Ausgabe der Tabelle (Teil1)##############

// "$topic_limit" kann aus dieser Tabelle geloescht werden, da nur fuer Ausgabe Anzahl Beitraege zustaendig
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><head><style type="text/css">
body { background-color:#12A3EB; color:#FFFFFF; font-family: "Trebuchet MS"; font-size: 11px; text-decoration: none; }
a:link	{ color: #ffffff; }
a:visited	{ color: #ffffff; }
a:hover	{ color: #89EBF8; }
a:active	{ color: #ffffff; }
.menu-hr {
	border: 0 none #FFFFFF;
	border-top: 1px solid #FFFFFF;
	margin: 5px 20px 5px 0px;
	display: block;
	clear: both;
}
</style> </head><body>';

// ############## Ende der Tabellenausgabe (Teil1) ##############

//Abfrage ob Foreneinschraenkung gesetzt per Verzweigung und Uebergabe der moeglichen IDS an die Variable
$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id NOT IN ('. $forum_ids .') AND ';

//Definition der SQL-Abfrage
$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";


//Durchfuehrung der SQL-Abfrage und Ergebnisuebergabe an $result
$result = mysql_query($sql);

// Wenn Abfrafge fehlgeschlagen = Fehlermeldung
if( !$result )

{
die('SQL-Abfrage fehlgeschlagen!: '. mysql_error());
exit();
}

//Definition Array für Aufnahme der Abfragedaten
$line = array();

// Uebergabe der Daten bis zum letzten Datensatz an Array per Schleife
while( $row = mysql_fetch_array($result) )

{
$line[] = $row;
}

// Strukturiertes Auslesen des Arrays und Variablenuebergabe
for( $i = 0; $i < count($line); $i++ )
{
$forum_id = $line[$i]['forum_id']; //Forums-ID
$forum_url = $root_path .'viewforum.php?f='. $forum_id; //Forums-Link
$topic_id = $line[$i]['topic_id']; //Themen-ID
$topic_url = $root_path .'viewtopic.php?t='. $topic_id; //Themen-Link
// Ausgabeformat der Beitragsueberschrift (Thema)
$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';

// Themenklassifizierung
$topic_type = ( $line[$i]['topic_type'] == '2' ) ? 'Beitrag ': '';
$topic_type .= ( $line[$i]['topic_type'] == '3' ) ? 'Globaler Beitrag ': '';
$topic_type .= ( $line[$i]['topic_type'] == '1' ) ? 'Kritischer Beitrag ': '';
$topic_type .= ( $line[$i]['topic_vote'] ) ? 'Abstimmung ': '';

$views = $line[$i]['topic_views'];
$replies = $line[$i]['topic_replies'];

$first_time = date('d.m.Y', $line[$i]['topic_time']);
$first_author = ( $line[$i]['first_poster_id'] != '-1' ) ? '<a href="'. $root_path .'profile.php?mode=viewprofile&u='. $line[$i]['first_poster_id'] .'" target="_blank">'. $line[$i]['first_poster'] .'</a>' : ( ($line[$i]['first_poster_name'] != '' ) ? $line[$i]['first_poster_name'] : 'guest' );
$last_time = date('d.m.Y', $line[$i]['post_time']);
$last_author = ( $line[$i]['last_poster_id'] != '-1' ) ? $line[$i]['last_poster'] : ( ($line[$i]['last_poster_name'] != '' ) ? $line[$i]['last_poster_name'] : 'guest' );
$last_url = '<a href="'. $root_path .'viewtopic.php?p='. $line[$i]['topic_last_post_id'] .'#'. $line[$i]['topic_last_post_id'] .'" target="_blank">'. $last_author .'</a>';

// ############## Eigentliche Ausgabe der Beitraege (Tabelle Teil 2)##############

echo '
<a href="'. $topic_url .'" target="_top">'. $topic_title .'</a><br />
geschrieben von '. $last_author .'<br />
in <a href="'. $forum_url .'" target="_top">'. $line[$i]['forum_name'] .'</a><br /> am '. $last_time .'
<div class="menu-hr"></div>
';

// ############## Ende Eigentliche Ausgabe (Tabelle Teil 2) ##############
}

echo '</table>'; //Ende der Tabelle
mysql_close(); // Beendigung der Datenbankverbindung
?>
Ich weiß, ist nicht der beste Code, aber es läuft.
Nun habe ich das Problem mit den Umlauten. Was muss ich am Code ändern, damit die Umlaute auch angezeigt werden?

Gruß,
Luuq

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 16.01.2011 21:08
von BNa

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 16.01.2011 21:13
von Luuq
Hi,

hab ich schon. Ohne Erfolg.
Ich finde die Stellen nicht (auch in der unbearbeiteten latest.php), deswegen habe ich meine .php eingefügt.

Gruß,
Luuq

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 16.01.2011 21:24
von BNa
Du hast ein etwas anderes Script. Hier in diesem Thread kursieren aber auch inzwischen 20 Versionen :grin:

Finde

Code: Alles auswählen

echo '
<a href="'. $topic_url .'" target="_top">'. $topic_title .'</a><br />
geschrieben von '. $last_author .'<br />
in <a href="'. $forum_url .'" target="_top">'. $line[$i]['forum_name'] .'</a><br /> am '. $last_time .'
<div class="menu-hr"></div>
'; 
Ändere in

Code: Alles auswählen

echo '
<a href="'. $topic_url .'" target="_top">'. iconv("ISO-8859-1", "UTF-8", $topic_title) .'</a><br />
geschrieben von '. iconv("ISO-8859-1", "UTF-8", $last_author) .'<br />
in <a href="'. $forum_url .'" target="_top">'. iconv("ISO-8859-1", "UTF-8", $line[$i]['forum_name']) .'</a><br /> am '. $last_time .'
<div class="menu-hr"></div>
'; 

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 16.01.2011 21:56
von Luuq
Hey,

super, danke dir, hat funktioniert.
Schönen Abend noch.

Gruß,
Luuq

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 01.04.2011 10:09
von thoerske
So ich habe auch eine der zahlreichen Varianten genommen:

Code: Alles auswählen

<link href="styles/prosilver/theme/vorschau.css" rel="stylesheet" type="text/css" />
<?php
// ############ Anfang Festlegung der Vorgaben ########################################

// Laenge der angezeigten Themenueberschrift in Buchstaben
$topic_length = '50';

// Maximal angezeigte Beiträge
$topic_limit = '5';

// Eingeschraenkte Forumsanzeige ('0' = Aus; '1' = Ein)
$special_forums = '1';

// IDs der zugelassenen Foren (nur wenn Forumsanzeige = "1"); Trennung der IDs mit einem Komma
$forum_ids = '1,26,33,39,52';

// Relative Pfadangabe zur config.php
$config_path = '/';

// Absoluter Pfad des Forums auf dem Server, bitte eingeben !!!
$root_path = 'http://forum.fishtownsozis.de/';



// ############ Ende Vorgaben #######################################

//Ermittlung des aktuellen Server-Verzeichnisses für Einbindung config.php
$path = dirname(__FILE__);

// Einbinden der phpBB-Konfigurationsdatei und somit Ermittlung der MySQL-Zugangsdaten
include_once($path.$config_path .'config.php');

// Verbindungsaufbau mit Zugangsdaten aus config.php, Fehlermeldung bei Problemen
mysql_connect($dbhost, $dbuser, $dbpasswd) OR die('Serververbindung fehlgeschlagen');

// Verbindung mit der phpBB-Datenbank herstellen
mysql_select_db($dbname) OR die('Datenbankverbindung fehlgeschlagen!');


//Abfrage ob Foreneinschraenkung gesetzt per Verzweigung und Uebergabe der moeglichen IDS an die Variable
$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id NOT IN ('. $forum_ids .') AND ';

//Definition der SQL-Abfrage
$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";


//Durchfuehrung der SQL-Abfrage und Ergebnisuebergabe an $result
$result = mysql_query($sql);

// Wenn Abfrafge fehlgeschlagen = Fehlermeldung
if( !$result )

{
die('SQL-Abfrage fehlgeschlagen!: '. mysql_error());
exit();
}

//Definition Array für Aufnahme der Abfragedaten
$line = array();

// Uebergabe der Daten bis zum letzten Datensatz an Array per Schleife
while( $row = mysql_fetch_array($result) )

{
$line[] = $row;
}

// Strukturiertes Auslesen des Arrays und Variablenuebergabe
for( $i = 0; $i < count($line); $i++ )
{
$forum_id = $line[$i]['forum_id']; //Forums-ID
$forum_url = $root_path .'viewforum.php?f='. $forum_id; //Forums-Link
$topic_id = $line[$i]['topic_id']; //Themen-ID
$topic_url = $root_path .'viewtopic.php?t='. $topic_id; //Themen-Link
// Ausgabeformat der Beitragsueberschrift (Thema)
$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';

// Themenklassifizierung
$topic_type = ( $line[$i]['topic_type'] == '2' ) ? 'Beitrag ': '';
$topic_type .= ( $line[$i]['topic_type'] == '3' ) ? 'Globaler Beitrag ': '';
$topic_type .= ( $line[$i]['topic_type'] == '1' ) ? 'Kritischer Beitrag ': '';
$topic_type .= ( $line[$i]['topic_vote'] ) ? 'Abstimmung ': '';

$views = $line[$i]['topic_views'];
$replies = $line[$i]['topic_replies'];

$first_time = date('d.m.Y', $line[$i]['topic_time']);
$first_author = ( $line[$i]['first_poster_id'] != '-1' ) ? '<a href="'. $root_path .'profile.php?mode=viewprofile&u='. $line[$i]['first_poster_id'] .'" target="_blank">'. $line[$i]['first_poster'] .'</a>' : ( ($line[$i]['first_poster_name'] != '' ) ? $line[$i]['first_poster_name'] : 'guest' );
$last_time = date('d.m.Y', $line[$i]['post_time']);
$last_author = ( $line[$i]['last_poster_id'] != '-1' ) ? $line[$i]['last_poster'] : ( ($line[$i]['last_poster_name'] != '' ) ? $line[$i]['last_poster_name'] : 'guest' );
$last_url = '<a href="'. $root_path .'viewtopic.php?p='. $line[$i]['topic_last_post_id'] .'#'. $line[$i]['topic_last_post_id'] .'" target="_blank">'. $last_author .'</a>';

// ############## Eigentliche Ausgabe der Beitraege #############

echo '<div>';
// Forumsname und Link, bei Bedarf loeschen
echo '<p><a href="'. $forum_url .'" target="_blank">'. $line[$i]['forum_name'] .'</a><br />';
// Thema und Link, Bei Bedarf loeschen
echo '<a href="'. $topic_url .'" target="_blank">'. $topic_title .'<br />';
// User, Bei Bedarf loeschen
echo $last_url.'<br />';
// Datum, Bei Bedarf loeschen
echo $last_time.'<br /></font></a></p></div>';

// ############## Ende Eigentliche Ausgabe ##############
}

mysql_close(); // Beendigung der Datenbankverbindung
?>
Nun meine Frage, obwohl ich eine eingeschränkte Auswahl an IDs genommen habe, werde alle neuen Artikel angezeigt. Eben auch aus meinem internen Bereich, was ich eindeutig nicht möchte. Wo habe ich den Fehler gemacht? Bzw. geht folgendes: Auf der Seite forum.fishtownsozis.de gibts Kategorien (so heißt das was ich meine zum mindest beim Anlegen im Adminbereich) und die werden auch unter forum_id geführt. Um es mir einfach zu machen habe ich nur die fünf Kategorien-Foren angegeben, damit ich nicht alle Ober-und Unterforen abgeben muss. Liegt es daran, dass es dann nicht funktioniert?