Bestimmte Dateiinhalte in html's laden

Neo
sry, aber:

ich wollte es gerade so einbauen, aber ich bekomm das irgendwie nicht hin! heulen

angenommen ich schreibe es so:

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

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

} ?>


Dann lädt er aber nicht bei dem LInk main.php?page=1 die register.tpl rein.

Was hab ich falsch gemacht?


PS: Hier nochmal der ganze php Code:

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:
<?php
$filename="main.php";
require("./global.php");
require("./bifnews.php");

eval ("\$main = "".$tpl->get("main")."";"); 
eval ("\$register = "".$tpl->get("register")."";"); 

switch($main) 
{ 
case 1: 
  $bifnews="$register"; 
break; 

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

} 



eval("\$tpl->output("".$tpl->get("main")."");");

?>
Chris Hunter
switch($main)
mit
switch($_GET[page])
ersetzen...

...das müsste klappen großes Grinsen
Neo
yeah!!! Das funtzt! smile

VIELEN VIELEN DANK CHRIS!

(sorry wenn ich dich mit so Noob Fragen nerve! unglücklich )
Chris Hunter
hey, kein problem (bin doch auch noob - aber verrate das keinem)

btw

$bifnews="$register";

kannste auch so schreiben:

$bifnews=$register;

sieht besser aus Augenzwinkern
ist auch mini-kliziklain-minimal schneller.
Neo
man, ich konnte jetzt 3 tage lang nichts in's inet!!! böse blöde Telekom!

naja, auf jeden fall funtzt das jetzt einwandfrei!

Nun will ich noch ne kleine PN-Box dort einbauen!

Der php Code sieht folgendermaße aus:

php:
1:
2:
<?php if (!$wbbuserdata['userid']) eval ("\$regmembox = "".$tpl->get("portal_regmem_no")."";");
else eval ("\$regmembox = "".$tpl->get("portal_regmem_yes")."";"); ?>

(ich hoffe mal der stimmt! smile

Naja, auf jeden fall will ich gern, dass dieser Code durch die Variable $pn_box beschrieben wird.

Wie mach ich das? Ich hab das schon so probiert:

$pn_box = "code"

aber das funtzt nciht. unglücklich
Chris Hunter
ersetze in dem eval das $regmembox durch $pn_box

$pn_box muss dann auch irgendwo im main.tpl stehen. halt da wo su sie einfügen möchtest.
Neo
argh!!! bin ich blöd! großes Grinsen großes Grinsen großes Grinsen großes Grinsen großes Grinsen

das fällt mir jetzt erst auf, dass man das so macht! *peinlich*

großes Grinsen großes Grinsen
Chris Hunter
hey ist nicht so schlimm, ich hab das auch erst nach 5 postings von dir mitbekommen. lol bei mir wird das so gemacht:

template laden:
$Tindex = new Template("templates/main.html");

eval:
eval($Tindex->GetTemplate('index'));

wobei dabei auch ne template-klasse mit am werk ist.

deshalb wusste ich auch nicht genau was das code gewurstel in deinem eval zu bedeuten hatte. dabei isses eigentlich soooo einfach. aber die escapes (/) hatten mich gestört. finde das der php-cdoe voll unübersichtlich dadurch wird. oder na ja. is eher ne gewöhnungsache.

also wenn du wieterhin probleme haben solltest. einfach hier posten smile ich geier schon auf deine nächsten fragen - hehehe
Neo
hehe smile Ok, dann hier erstmal die nächste Frage:


Und zwar:

Für nen ganz bestimmten Code-Teil muss ich ne Datei in meine vorhande php "requiren" Augenzwinkern

Wenn ich die Datei aber von anfang an per require "acp/lib/class_useronline.php";

anhänge bekomme ich massig fehler! (can't redeclare calss parse usw.) Deshalb wollt ich fragen, ob die möglichkeit besteht eine Datei so zu requiren, dass sie NUR für den kleinen COde benutzt wird.
Chris Hunter
mmh, ich weis ja nicht was du mit "dem kleinen code" meinst.

hastenknöddel sind kleiner kot. aber das hat damit nicht wirklich was zu tun...

erstansmal als kleine information require ist das selbe wie include. mit kleinen unterschiede bei der fehlermeldung.

und jetzt zu DEINER fehlermeldung...

es sieht so aus wie als wenn du in der require datei eine datei zum wiederholten mal includes oder requirest. wenn das zum beipiel die global.php wäer kannst du es ja so machen:

1. php
php:
1:
2:
3:
<?php require("./global.php"); 
$global_required=1# oder "yes" oder true - ist eigentlich egal
require("./acp/lib/class_useronline.php"); ?>


und dann in der acp/lib/class_useronline.php:
php:
1:
2:
3:
4:
<?php if ($global_required=1)  # oder "yes" oder true - ist eigentlich egal
{
  require("./global.php"); 
} ?>



***wie gesagt ich bin auch n DAU - kann sein das es noch besser geht, aber das ist die lösung die mir dabei einfällt..***
Neo
das ist es leider nicht.

Die class_useronline.php sieht am anfang so aus:

php:
1:
2:
3:
4:
5:
<?php
class useronline {

 var $modids = array();
 var $adminids = array();


und die Fehlermeldung die ich bekomme, wenn ich es normal include:


code:
1:
Fatal error: Cannot redeclare class parse in /acp/lib/class_parse.php on line 2


Leider funktioniert der codeschnipsel nicht, wenn er die Info's aus der class_useronline nciht hat!

Der Code sieht folgendermaßen 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:
<?php {
 list($guestcount) = $db->query_first ("SELECT COUNT(lastactivity) FROM bb".$n."_sessions WHERE userid = 0 AND lastactivity >= UNIX_TIMESTAMP() - (60 * $useronlinetimeout)");
 $membercount 0;
 $invisiblecount 0;
 $online = new useronline ($wbbuserdata['canuseacp'], $modids$smodids$adminids$wbbuserdata['buddylist']);
 $result $db->query ("SELECT DISTINCT bb".$n."_sessions.userid, username, groupid, invisible FROM bb".$n."_sessions LEFT JOIN bb".$n."_users 
USING (userid) WHERE bb".$n."_sessions.userid > 0 AND bb".$n."_sessions.lastactivity >= UNIX_TIMESTAMP() - (60 * $useronlinetimeout) ORDER BY username ASC");
 while ($row $db->fetch_array ($result)) {
  $membercount++;
  if ($row['invisible']) $invisiblecount++;
  $online->user ($row['userid'], $row['username'], $row['groupid'], $row['invisible']);
 }
 $useronline $online->useronlinebit;
 $totaluseronline $membercount;
 if ($totaluseronline <> "1"$onlineuserTag "sind";
 else $onlineuserTag "ist";
 if ($membercount <> 1$membersTag "Mitglieder";
 else $membersTag "Mitglied";
 if ($guestcount <> 1$guestTag "Gäste";
 else $guestTag "Gast";
 if (!$wbbuserdata['userid']) eval ("\$portal_useronline = "".$tpl->get("portal_showbesucheronline")."";");
 else eval ("\$portal_useronline = "".$tpl->get("main_useronline")."";");
 $db->free_result ($result); ?>
Chris Hunter
was ist denn /acp/lib/class_parse.php ?
Neo
ups!

Der Anfang, den ich oben fälschlicherweiße als class_useronline.php bezeichnet hab ist die class_parse.php

sry.
Chris Hunter
und diese parse klasse wird niocht schon included?

also wenn du das include weglässt dann funktioniert es nihct. mmmhhh.

eigentlich sollte das schon klappen. verdammich.


kannst du die klasse einzeln so deklarieren?
Neo
also ich hab es jetzt hinbekommen chris ! Freude

dank deiner Hilfe! Freude
Chris Hunter
und woran hat es jetzt gelegen?
Neo
ich hatte deine Variante von oben nicht bei allen datein gemacht!

hatte die class_parse.php irgendwie falsch editiert! auf jeden fall hat es dann funktioniert! smile smile Freude