Bestimmte Dateiinhalte in html's laden

Neo
Hallo!

Ich habe in meinem Board (wbb2) eine .tpl datei erstellt.
Nun möchte ich, dass in eine Zelle einer Tabelle der inhalt von der datei news.php angezeigt wird.

Wie stelle ich das an???

danke schonmal smile

ciao,
Neo
Chris Hunter
schreib einfach in die zelle ne variabel rein:

code:
1:
2:
3:
<TD>$news_php</TD>

und in der datei wo die tpl mit eval angezeigt wird öffnest du vorher die datei und liest den ihnalt in diese variabel:

php:
1:
2:
3:
4:
<?php $file=fopen("news.php","r");
$news_php=fread($file);
$news_php=htmlspecialchars($news_php);
fclose($file); ?>


hab den code nicht getestet, sollte aber so funktionieren. bin noch n bissl im alkrausch.
Neo
oh man, du bist echt spitze Chris! smile

Aber leider funktioniert es noch nicht ganz.
Und zwar bekomm ich dann auf der Seite folgenden Fehler:

code:
1:
Warning: Wrong parameter count for fread() in /www/htdocs/v077289/main.php on line 9


Und Line 9 sieht so aus:

php:
1:
<?php $news_php=fread($file); ?>
Chris Hunter
oh, ja ups parameter vergessen:

probiers mal damit

$news_php=fread($file, filesize ("news.php"));
Neo
jetzt funktioniert es.
Nur leider zeigt er mir den ganzen Inhalt, sprich den Code der php Datei an. unglücklich
Chris Hunter
achsoooo hehehe. ich dachte du wolltest das so haben.

dann musst du es anders machen.

include die datei news.php in die php die das template aufruft und ersetze in der datei news.php alle echos und prints durch

$news_php .= "das was sonst hinterm echo steht."


dann nimmst du den code mit fopen und so von oben wierder raus und damit sollte dann der output der news.php angezeigt werden. du kannst dann allerdings die news.php nicht mehr einfach so aufrufen, würde dann ne leere seite geben.
Neo
ich habe nun mal die Datei news.php so:
php:
1:
<?php include("./news.php"); ?>


an die main.php angehängt!!
Aber in der News.php finde leider keine Echos (sorry, hab halt nicht so viel Plan heulen heulen

Die news.php sieht so aus:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
<?php
$newsboardid "48";
$showlimit "5";
$ergnews=$db->query("SELECT *
FROM bb".$n."_threads, bb".$n."_posts, bb".$n."_boards
WHERE (bb".$n."_boards.boardid = bb".$n."_threads.boardid)
AND (bb".$n."_posts.threadid = bb".$n."_threads.threadid)
AND (bb".$n."_threads.starttime = bb".$n."_posts.posttime)
AND (bb".$n."_threads.boardid = $newsboardid)
GROUP BY bb".$n."_threads.threadid
ORDER BY bb".$n."_threads.threadid DESC LIMIT $showlimit");

$color="b";
while ($rownews=mysql_fetch_array($ergnews))
{
    $parse = new parse($docensor,75,$rownews['allowsmilies'],$rownews['allowbbcode'],$wbbuserdata['showimages'],$_GET['hilight'],$usecode);
    $rownews['message']=$parse->doparse($rownews['message'],$rownews['allowsmilies']*$rownews['allowsmilies'],$rownews['allowhtml'],$rownews['allowbbcode'],$rownews['allowimages']);
    $time=date("H:i:s"$rownews["posttime"]);
    $date=date("d.m.Y"$rownews["posttime"]);
    if($color="a"$color="b";
    elseif($color="b"$color="a";
    $views=$rownews['views'] + 1;
    $db->query("UPDATE bb".$n."_threads Set views='$views'");
    eval ("\$tpl->output("".$tpl->get("news_show")."");");

}
Chris Hunter
$tpl ist ne klasse? wo kommt die denn her?

was kommt im browser an, wenn du nur die news.php dort lädst?
Neo
wenn ich die php Datei alleine lade kommt diese Fehlermeldung:

Zitat:
Fatal error: Call to a member function on a non-object in /www/htdocs/v077289/news.php on line 4



aber in der main.php (bessergesagt, in der startseite, die ich erstellen will, funktioniert es in soweit !) nur halt ganz oben/bzw. ganz unten....also da wo es eigentlich nciht hin soll ^^ smile
Chris Hunter
glglgl ganz schön verwirrend. steht in der main irgendwas mit $tpl->output... ?
Neo
meine Main.php sieht vollgendermaßen aus:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<?php
$filename="main.php";
require("./global.php");
require("./acp/lib/class_useronline.php");
require("./acp/lib/class_parse.php");

eval("\$tpl->output("".$tpl->get("main")."");");
include("./news.php");

?>



ich habe das auch online! Anschauen kannst du es hier:

www.gaming-board.com/main.php
Chris Hunter
gut, und wo sollen die news dann hin?
Neo
es hat sich erledigt Chris!!!

Ich habe ein anderes News-Add-On gefunden, welches gleich in's wbb2 richtig integriert wird! Ich musste nur in meiner main.php eine datei include und jetzt funtzt es!! smile smile smile smile smile smile

ABer trotzdem vielen dank!! Denn die Tips die du mir hier gegeben hast, kann ich mehr als gut noch für die weitere entwicklung gebrauchen! smile


also: VIELEN DANK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Chris Hunter
mmmh, welche brauchbaren tips hab ich dir denn gegeben (wunder)?

freut mich ja, das es jetzt geklappt hat. falls du wiedermal ne frage hast, einfach hier posten. ich beantworte, was ich kann...
Neo
das mit dem Inhalten von php's mit der Variable aufrufen.
Das kann ich noch gut gebrauchen! smile

ciao,
Neo
Chris Hunter
ja, das liegt einfach daran das eval den text als php code interpretiert

Beispiel 1. eval()-Beispiel (einfache Texteinfügung):

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

<?php
$string 'Bierglas';
$name 'Binding-Lager';
$str 'Das ist mein $string, voll mit $name.<br>';
echo $str;
eval ("\$str = "$str";");
echo $str;
?>
 




Das obige Beispiel gibt aus:
code:
1:
2:
3:
4:
Das ist mein $string, voll mit $name.
Das ist mein Bierglas, voll mit Binding-Lager.


damit dürfte die funktionsweise von eval eigentlich ganz klar sein nun...
Neo
ah! thx smile



Ich hätte da nun nochmal ne Frage:

Und zwar hab ich nun das Problem, dass ich nciht weiß, wie ich z.b. eine bestimmte datei in die mittlere Tabelle laden kann???

Geht das überhaupt?


Das soll eigentlich so sein:

Man klickt beispielsweiße auf nen Link auf der linken seite und in der mitte kommt dann der entsprechende inhalt....
Chris Hunter
mmh. das geht bestimmt. da das script allerding sehr vertemplatet ist müsste ich mal die templates sehen. ab besten dieses main template.
Neo
ich habe mal beide dateien (main.php und main.tpl) gepackt und angehängt!

das pw hab ich dir per PN geschickt!

Bitte nicht wundern: Die Links von den linken Tabellen sind noch nicht richtig verlinkt, da ich ja auch noch nichtmal weiß, wie das geht! *ggg* smile

Ich habe nur mal gesehen, dass das über die php datei mitels so befehlen wie ?page=1 und dann zeigt der das an gehen soll! Deshalb hab ich die links nur mal so schon geschrieben.+

danke schonmal!
Chris Hunter
also die sache sieht so aus, das die variabel page garnicht ausgewertet wird. es werden also immer die news angezeigt, und zwar dort wo im main.tpl template die variabel $bifnews steht.

jetzt kannst dus so machen das du in der main php n teil einfügst der die page variabel auswertet und daraufhin die variabel $bifnews füllt. und zwar mit dem inhalt der dort stehen soll

z.b.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<?php switch($page)
{
case 1:
  $bifnews="Page 1";
 break;

case 2:
  $bifnews="Page 2";
 break;

} ?>