Seite 15 von 22

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 28.07.2009 08:28
von xxxMMxxx
Moin Moin -

nachdem ich lange vergeblich nach einer Lösung gesucht hatte, hab ich es dank diesem Thread geschafft, dass die Forenbeiträge ab sofort auf meiner html-Startseite angezeigt werden.
Besonderen Dank an 4seven für die ausführliche Beschreibung und die entsprechenden Codes!

Gruß MM

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 31.07.2009 21:32
von Thunder198165409
Hallöchen, ich würde das Thema auch gerne nochmal aufgreifen !

ich habe wie der eine oder andere auch das Problem mit den Umlauten in der lasttopic anzeige.


ich habe über Dreamweaver ne last_topics.php Datei erstellt, und den folgenden Inhalt eingefügt:

Code: Alles auswählen

<?php
    // ############         Edit below         ########################################
    $topic_length = '25';   // length of topic title
    $topic_limit = '11';   // limit of displayed topics
    $special_forums = '0';   // specify forums ('0' = no; '1' = yes)
    $forum_ids = '3,5,6,7';      // IDs of forums; separate them with a comma

    $config_path = '/';   // path to config.php
    $root_path = 'http://www.aion-illuminati.de/Forum/';      // link path
    // ############         Edit above         #######################################

    $path = dirname(__FILE__);
    include_once($path.$config_path .'config.php');
    mysql_connect($dbhost, $dbuser, $dbpasswd) OR die('Unable to select server.');
    mysql_select_db($dbname) OR die('Unable to select database.');

    // ############## output ##############
    echo '<table border="0" cellpadding="0" cellspacing="0" style="width: 100%" id="Table_DSF-Top5">
    <body text="#000000" link="#000000" vlink="#333333" alink="#333333">
			  <tr>
                <td style="width: 20%"><span class="small">
                                <strong>
                <td style="width: 20%"><span class="small"><strong>

                <font face="Verdana, Arial, Helvetica, sans-serif" style="font-size:9px"></font
                </strong></span></td>

             </tr>';
    // ############## output ##############

    $where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id NOT 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) .'...';

       $topic_type =  ( $line[$i]['topic_type'] == '2' ) ? 'Announcement ': '';
       $topic_type .= ( $line[$i]['topic_type'] == '3' ) ? 'Global Announcement ': '';
       $topic_type .= ( $line[$i]['topic_type'] == '1' ) ? 'Sticky ': '';
       $topic_type .= ( $line[$i]['topic_vote'] ) ? 'Poll ': '';

       $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>';

       // ############## output ##############
       echo '<tr>
                <td style="width: 30%">
                <font face="Verdana, Arial, Helvetica, sans-serif" style="font-size:11px">'. $last_time .'</font></td>
                <td style="width: 70%"><a href="'. $topic_url .'" target="_blank">
                <font face="Verdana, Arial, Helvetica, sans-serif" style="font-size:11px">'. $topic_title .'</font></a></td>

            </tr>';

       // ############## output ##############
    }

    echo '</table>';
    mysql_close();
    ?>

dann habe ich auf meine Test index.php (http://www.aion-illuminati.de/index10.php) die last_topics.php includiert und optisch angepasst. Problem ist nun, das dort sämtliche Umlaute durch ein Fragezeichen in einem hochkantstehenden Viereck angezeigt werden. Die anzeige im Forum selber ist normal. Ich habe schon das meiste utf8 umstell gedöns versucht, hat nix gebracht. kann mir da jemand weiterhelfen ?
Wenn ich die Seite im IE betrachte besteht das selbe Problem, bis ich die Codierung z.b. auf "Westeuropäisch Windows oder iso" setze, dann wird alles normal angezeigt.

HP und Forum liegen auf dem selben Webspace und nutzen die gleiche Datenbank !

Mfg

Thunder198165409

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 01.08.2009 01:02
von 4seven
ich habe wie der eine oder andere auch das Problem mit den Umlauten in der lasttopic anzeige.
sorry, aber ich hatte das problem noch nie :grin:

doch seis drum. wirklich sauber wird es in manchen fällen nur,
wenn man die php erst in eine html includiert und diese dann weiterreicht.

der unterschied wird hier ua. durch das original prosilver css layout definiert:

pure steuerdatei:
http://sekuro.se.funpic.de/phpbb3/last_topics_1.php

mit ordentlichem header versehene html (last_topics_1.php includiert)
http://sekuro.se.funpic.de/phpbb3/last_topics_1.html

wichtig: beide dateien müssen im foren-root liegen

im "normalfalle" kann man die datei natürlich direkt ansprechen und die anzeige kann auf einem anderen webspace sein.

aber, um alle fallstricke zu umgehen, kann man, wie in dem folgenden beispiel
in der html gleich den richtigen transitional-header mitgeben (dadurch ist das gleich trans. strict):

Code: Alles auswählen

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de" xml:lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link href="styles/prosilver/theme/common.css" rel="stylesheet" type="text/css" />
<title>Last Topics</title>
</head>
<body>
<?php
include("last_topics_1.php");
?>
</body>
</html>
wenn das dann immer noch nicht geht, ist nicht das snippet das problem, sondern die space bzw. sql-codierung.

aber, selbst dafür gibt es eine lösung. check das aber erstmal :wink:

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 02.08.2009 19:52
von Thunder198165409
Danke für die Antwort, ich habe jetzt2 sachen probiert, zum einen habe ich den gesammten Code aus der php in eine html eingefügt und zum anderen habe ich die php so belassen und in eine html den Code den du geschrieben hast eingefügt und jeweils included.

sowohl bei dem einen als auch bei dem anderen sind die Umlaute jetzt weg, dafür erhalte ich im Content jetzt eine Query failed! Meldung.

zum vergleich wie mit Umlauten: http://www.aion-illuminati.de/index10.php
ohne Umlaute mit Fehlermeldung: http://www.aion-illuminati.de/index11.php

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 02.08.2009 20:00
von croxxx69
hi,

habe mir das ganze angeschaut und durchgelesen, doch weiss nicht genau wie ich es machen soll...

also das forum liegt auf http://www.kava.hr/Forum
include wollte ich auf meiner http://www.kava.hr/index.html einbinden...
doch weiss jetzt nicht genau ob es nur reicht wenn ich hier:

$path = dirname(__FILE__);
include_once($path.$config_path .'config.php');
mysql_connect($dbhost, $dbuser, $dbpasswd) OR die('Unable to select server.');
mysql_select_db($dbname) OR die('Unable to select database.');

meine daten vom mysql eintrage? oder wo muessen sie genau hin?

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 02.08.2009 21:35
von 4seven
da muss garnichts eingetragen werden.

nur bis dahin angaben machen:

Code: Alles auswählen

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

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 02.08.2009 21:51
von 4seven
Danke für die Antwort, ich habe jetzt2 sachen probiert, zum einen habe ich den gesammten Code aus der php in eine html eingefügt
das ist so nicht wirklich gemeint gewesen
sowohl bei dem einen als auch bei dem anderen sind die Umlaute jetzt weg, dafür erhalte ich im Content jetzt eine Query failed! Meldung.
was generiert den content? bzw. wie sieht die datei dazu aus?

und noch ein frage, wie bindest du den code in dein template ein?

nimm auch mal testweise meinen überarbeiteten code und teste ihn nach deiner überarbeitung (anpassung):
http://www.phpbb.de/support/pastebin.ph ... view&s=141

das hier

Code: Alles auswählen

#
// IDs der zugelassenen Foren (nur wenn Forumsanzeige = "1"); Trennung der IDs mit einem Komma
#
$forum_ids = '14,15,16';
#
arbeitet jetzt umgekehrt. alles, was sichtbar sein darf, hier eingeben.

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 03.08.2009 14:45
von croxxx69
hmmm... wo kann ich denn deinen code runterladen? hatte es von der ersten seite kopiert... wo liegen die neuren versionen?

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 03.08.2009 17:15
von 4seven
die erste optimierung war "saschas optimierter code" (einfach mal in dem thread hier suchen)

die zweite optimierung "4sevens optimierter code" (2 posts drüber als pastebin)

ergebnis (mit in html includierter php):
http://sekuro.se.funpic.de/phpbb3/last_topics_1.html

die dazugehörige html findet sich nochmal ein paar posts drüber
http://www.phpbb.de/community/viewtopic ... 8#p1122718

und das hier ist noch in entwicklung (daher noch nicht freigegeben) :wink:
4seven hat geschrieben:- Layout ist jetzt komplett auf CSS-Basis
- Inzwischen kann auch der Post-Text dargestellt werden
- Eigene BBCode-Engine, daher unabhängig vom Board
- Standard-BBCodes werden immer angezeigt (incl. Code)
- Man kann bestimmen welche Custom-BBCodes im Post angezeigt werden sollen
- Nicht definierte Custom-BBCodes werden so angezeigt:
- [ externes Bild ] (mit alt/title Tag: "Nicht dargestellter BBCode")

- und natürlich [ externes Bild ]

Mal gucken, was man noch so machen kann :wink:

Mittels CSS und ein wenig Html-Kenntnissen dürfte man es perfekt an jedes Outfit anpassen können:

demo
http://sekuro.se.funpic.de/phpbb3/last_topics_2.html

Re: Einfache Anzeige der letzten Themen in Div-Box

Verfasst: 04.08.2009 01:29
von croxxx69
hallo,

so langsam bekomme ich es auch hin ;-)

aber paar fragen noch:

- bei mir zeigen sich nicht die kroatischen zeichen im script... wie kann ich dies aendern?
- und wie kann man das frame weglassen und mit css es verschoenern? will frames nicht benutzen