mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 18.04.2024 14:57 Benutzername: Passwort: Auto-Login

Thema: PHP vom 14.03.2015


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP
Autor Nachricht
womb
Threadersteller

Dabei seit: 04.07.2007
Ort: Suisse
Alter: 40
Geschlecht: -
Verfasst Sa 14.03.2015 14:38
Titel

PHP

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen

Ich habe diese Navigation:
Home / News / Kontakt /

Das / kommt immer nach dem Menüpunkt, aber nach Kontakt soll es nicht mehr kommen.
Kann mir bitte einer verraten wie ich das am Schluss abschalten kann?

Hier noch der Code:

Code:
<nav>
   <ul>
      <?php
      foreach( $navigation as $menu_punkt ) {
      echo "\t \t \t " . '<li><a href="index.php?m=' . $menu_punkt['url'] . '"';
      if ( $menu_punkt['url'] == $startseite )
      echo ' class="here"';
      echo '>' . $menu_punkt['txt'] . '</a></li> / '."\n";
      }
      ?>
   </ul>
</nav>

Besten Dank!
  View user's profile Private Nachricht senden
remote

Dabei seit: 10.11.2006
Ort: /var/www/
Alter: 110
Geschlecht: Männlich
Verfasst Sa 14.03.2015 15:30
Titel

Antworten mit Zitat Zum Seitenanfang

1. denglischer source code ist nicht wirklich schön zu lesen. am besten gleich abgewöhnen … die programmiersprache ist englisch, deine variablen sind teil des programs, bleib in der richtigen sprache.
2. deine einrückung verschleiert den programmablauf - hinter einem if() auf die {} zu verzichten ist hier sehr unklug.
3. sicher eine stilfrage, aber ich bevorzuge bei templates / in html eingebetteten php schnipseln die alternative syntax (if: endif;); in dem fall ist aber ohnehin genug logik vorhanden, so dass ich diese gar nicht erst im template abwickeln würde. Im HTML wird dann das fertige markup ausgegeben.


Code:

function render_menu_items($nav) {
   $item_count = count($nav);
   $markup = '';
   for($i = 0; $i < $item_count; $i++) {
      $markup .= '<li><a href="' . $nav[$i]['url'] . '">' . $nav[$i]['txt'] . '</a></li>';
      $markup .= ($i == $item_count - 1) ? ("\n") : (" / \n");
   }
   return $markup;   
}

$menu_items = render_menu_items($navigation);

?>

<nav>
  <ul>
   <?php print $menu_items; ?>
  </ul>
</nav>


das hinzufügen der 'active' klasse für die aktuelle seite überlasse ich mal dir *zwinker*
  View user's profile Private Nachricht senden
Anzeige
Anzeige
womb
Threadersteller

Dabei seit: 04.07.2007
Ort: Suisse
Alter: 40
Geschlecht: -
Verfasst Sa 21.03.2015 15:20
Titel

Antworten mit Zitat Zum Seitenanfang

Ich habe es leider so gelernt. Aber ich bin eh ein absoluter PHP amateur und ich weiss ich muss noch einmal eine andere Schule besuchen.

Dein Code hat mir zuerst geholfen, aber dann hatte ich einpaar andere Probleme...
Kannst du mir daher bitte sagen was ich schreiben muss damit es mit meinem Code arbeitet?

Das habe ich bis jetzt umgeschrieben, aber ohne erfolg.


Code:

<nav>
   <ul>
      <?php
      foreach( $navigation as $menu_punkt ) {
      for ($i = 0; $i < $item_count; $i++);
      echo "\t \t \t " . '<li><a href="index.php?m=' . $menu_punkt['url'] . '"';
      if ( $menu_punkt['url'] == $startseite )
      echo ' class="here"';
      echo '>' . $menu_punkt['txt'] . '</a></li>' . (($i == $item_count - 1) ? (" \n ") : (" / \n "));
      }
      ?>
   </ul>
</nav>
  View user's profile Private Nachricht senden
remote

Dabei seit: 10.11.2006
Ort: /var/www/
Alter: 110
Geschlecht: Männlich
Verfasst Sa 21.03.2015 16:18
Titel

Antworten mit Zitat Zum Seitenanfang

womb hat geschrieben:
Kannst du mir daher bitte sagen was ich schreiben muss damit es mit meinem Code arbeitet?


nein, aber ich helfe dir gerne wenn du probleme mit dem sauberen code vorschlag hast.
hast du die funktion mal eingesetzt / getestet? was funktioniert für dich nicht?
  View user's profile Private Nachricht senden
Morgo

Dabei seit: 10.08.2005
Ort: Von Kowelenz bis Kölle
Alter: 39
Geschlecht: Männlich
Verfasst Sa 21.03.2015 16:25
Titel

Antworten mit Zitat Zum Seitenanfang

Das ist auch eigentlich keine Aufgabe für PHP. Benutze CSS.

Code:
nav ul li::after {
 content: "/";
}

nav ul li:last-child::after {
 content: none;
}


Zuletzt bearbeitet von Morgo am Sa 21.03.2015 16:27, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
womb
Threadersteller

Dabei seit: 04.07.2007
Ort: Suisse
Alter: 40
Geschlecht: -
Verfasst Fr 24.04.2015 14:05
Titel

Antworten mit Zitat Zum Seitenanfang

Morgo hat geschrieben:
Das ist auch eigentlich keine Aufgabe für PHP. Benutze CSS.


Danke. Man ist nie zu alt etwas neues zu lernen!
  View user's profile Private Nachricht senden
 
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.