HTML-Code in PHP-Code integrieren - wie?

Harzteufel

Erfahrenes Mitglied
Hallo, wie kann ich den HTML-Code in den PHP-Code einbinden? Ich kann leider kein PHP... Kann mir jemand wenigstens nen Tipp geben? Habs mit echo und print versucht, bin damit aber nicht weitergekommen. :-( Danke!


PHP:
<?php
$path = explode("|",$this->getValue("path").$this->getValue('article_id')."|");
$path1 = $path[1];
$path2 = $path[2];

$navTop = '';
$navLeft = '';


// Beginn <ul> z.B. echo '<ul class="navlist">';


foreach (OOCategory::getRootCategories(true) as $lev1) {
   $navTop .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li>';


// Ende </ul>

   
   if ($lev1->getId() == $path1 AND sizeof($lev1->getChildren(true) != '0')) {


// Beginn <ul> z.B. echo '<ul class="sublist">';


      foreach ($lev1->getChildren(true) as $lev2) {
         $navLeft .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
      }


// Ende </ul>


   }
}
?>
 
In diesem Fall musst du die Ausgaben den jeweiligen Variablen zuweisen. Allerdings irritiert mich die Verschachtelung dabei etwas.
 
Mich irritiert dass die beiden zu erzeugenden Listen „navlist“ und „sublist“ als Klassen haben, „sublist“ also so wie der Algorithmus es ausdrückt der „navlist“ hierarchisch untergeordnet ist. Trotzdem werden beide Listen in zwei Variablen gesammelt.
 
Hmm, das sollen zwei Navigationen sein... die navTop ist die Hauptnavigation und die navLeft die jeweilige Unternavigation. Ich muss die <ul> außerhalb des "foreach" unterbringen, weil sonst für jeden Unterpunkt eine eigene Liste erstellt wird und das ist ja nicht nötig... Nur weiss ich leider immer noch nicht, wie ich dies mache. :confused:
 
Hallo, kann mir denn niemand weiterhelfen? Wie bekomme ich die <ul>-Angabe aus Variable heraus, so dass sie vor dieser ausgegeben wird? Danke!

PHP:
<?php
$path = explode("|",$this->getValue("path").$this->getValue('article_id')."|");
$path1 = $path[1];
$path2 = $path[2];

$navLeft = '';
$navRight = '';

foreach (OOCategory::getRootCategories(true) as $lev1) {
   $navLeft .= '<ul id="navlist"><li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li></ul>';
   
   
   if ($lev1->getId() == $path1 AND sizeof($lev1->getChildren(true) != '0')) {
   
      foreach ($lev1->getChildren(true) as $lev2) {
         $navRight .= '<ul id="sublist"><li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li></ul>';
      }
   
   }
}
?>
 
Hi,

dann zieh' doch einfach <ul> und </ul> aus den Schleifen raus. Wie String-Konkatenation funktioniert, ist doch in dem Schnipsel deutlich zu sehen.

PHP:
<?php
$path = explode("|",$this->getValue("path").$this->getValue('article_id')."|");
$path1 = $path[1];
$path2 = $path[2];

$navLeft = '<ul id="navlist">';
$navRight = '';

foreach (OOCategory::getRootCategories(true) as $lev1) {
   $navLeft .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li>';
   
   
   if ($lev1->getId() == $path1 AND sizeof($lev1->getChildren(true) != '0')) {
      $navRight .= '<ul id="sublist">';
      foreach ($lev1->getChildren(true) as $lev2) {
         $navRight .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
      }
      $navRight .= '</ul>';
   
   }
}
$navLeft .= '</ul>';
?>

LG
 
Zurück