Templates mit php-include

moistwanted

Erfahrenes Mitglied
Moinsen

Hab ein großes Problem!

Ich mach ne Webseite für ein Kumpel und die ist mit Templates aufgebaut!
Wollte da nun ein Newssystem einbauen, welches man durch ein Include in die Seite einbaut!
Das Problem ist das ich es nicht hinkriege, dass es auch an der richtigen Stelle ist!
Ich kann es zwar normal includen aber ich will das ganze in der mittleren Box haben!

So sieht die index.php aus:
Code:
<?
include('smarty/Smarty.class.php');

// create object
$smarty = new Smarty;
$choice = split("=", $_SERVER['QUERY_STRING'], 5);

switch ($choice[0])
{
  case "board":
  $page = ":";

  break;
  case "guestbook":
  $page = ":";

  break;
  case "toplist":
  $page = "toplist:";

  break;
  case "link_us":
  $page = "link_us:";

  break;
  case "affiliate":
  $page = "affiliate:";

  break;
  case "faq":
  $page = "faq:";

  break;
  case "disclaimer":
  $page = "disclaimer:";
  
   break;
  default;
  $page = "home:"; // hier soll das ganze irgendwie includet werden!
}

$smarty->assign('page', $page);
$smarty->display('pages.tpl');
?>

das template sieht so aus:
Code:
{include file=header.tpl title="Mynaruto - Your Naruto Community"}
{$page}
{include file="footer.tpl"}

hatte schon versucht anstatt dem {$page} die datei zu includen aber es geht so nich
Kann mir einer helfen und mir sagen wie ich das machen könnte ohne alles neu zu machen?
 

Anhänge

  • seite.JPG
    seite.JPG
    57,1 KB · Aufrufe: 258
Zuletzt bearbeitet:
Hmm..

also wenn ich dich richtig verstanden habe, ist dein Ziel die Ausgabe einer php-Datei, die über include() eingebunden wird, der Variablen $page zugeordnet wird.

Da gibt es mehrere Möglichkeiten.

Entweder schreibst du das Newsscript so um, dass kein einziges "echo" oder "print" mehr vorkommt, sondern stattdessen die entsprechenden Strings immer einer Variable zugewiesen werden.
Also statt
PHP:
 echo "newsscript";
muss es dann
PHP:
 $return .= "newssrcript
heißen.

Am Ende des Newsscripts fügst du dann die Zeile
PHP:
return $return;
hinzu.
In deiner Index-Datei muss es dann so heissen:
PHP:
$page = include("newsscript.php");

Falls das Newsscript auch smarty verwendet, ist es noch viel einfacher.
Dann muss nur die Zeile
PHP:
$smarty->display('template.tpl');
durch
PHP:
return $smarty->fetch('template.tpl');
ersetzen.

In deiner Index-Datei heisst es nun wieder
PHP:
$page = include("newsscript.php");


Eine Möglichkeit wäre auch noch, einfach das komplette Newsscript in Funktion zu packen, also einfach als erste Zeile des Newsscript
PHP:
function main() {
einfügen und zum Schluss noch ein
PHP:
}
. Dann includest du die Datei einfach irgendwo (wo ist völlig egal, es muss nur vor dem Aufruf der "display()"-Methode von smarty stehen.
In smarty steht dann eben statt
Code:
{$page" }
das hier:
Code:
{php} main(); {/php}


swEEper
 
Zurück