selfhtml.de - Alles für den Webmaster!

 

Empfehlung:

wix.com

Kostenlose Homepage

Besuchen Sie auch:

Jobs:

Problem mit externe Navi

Autor: tupamaro
Datum: 16.11.2013 15:16:41

Es geht um eine Seite eines Kollegen mit vier links in der Navi.
home,angebote,kontakt,impressum. alles html.
Um die aktive Seite andersfarbig darzustellen habe ich eine class namens active erstellt.
Diese musste ich manuell in der jeweiligen Seite einfügen.

Dann habe ich die Seite auf php umgestellt und unter andern die navi ausgelagert.

Zwei probleme tauchten auf:
1.Da ich über- bzw untergeordnete Ordner/Seiten habe,bekam ich Schwierigkeiten mit den normalen include-befehl.
Vor allem mit den Pfad zu den Bildern.
Lösung aus php-manual:
<?php include $_SERVER['DOCUMENT_ROOT']."/navi.php";?>

2.Jetzt musste ich mir was einfallen lassen um class active anzusprechen,da eine manuelle eingabe ausfiel.
Lösung (weiss nicht mehr woher):
<a <?php if (strpos($_SERVER['PHP_SELF'], 'angebote.php')) echo 'class="active"';?> href="/angebote.php">Angebote</a>

Plötzlich entschied sich mein Kollege einige Seiten zu egänzen.
Also auf einmal: angebote01.php, angebote02.php, angebote03.php usw.

Und jetzt beginnt das eigentliche Problem:
Wie schaffe ich es,dass der Link Angebote in der Navi "aufleuchtet", egal ob ich angebote01.php, angebote02.php, oder angebote03.php aufrufe ?

Ich habe das Problem bislang so gelöst,dass jede Seite einen eigenen Ordner bekommt.
Doch wie löse ich das,wenn ich sie alle auf der selben ebene habe?

Erstmal danke an die, die so geduldig waren bis hier zu lesen.
Ich weiss, es ist eine Menge Text.



Re: Problem mit externe Navi

Autor: gaby
Datum: 16.11.2013 22:16:16

> Es geht um eine Seite eines Kollegen mit vier
> links in der Navi.
> home,angebote,kontakt,impressum. alles html.
> Um die aktive Seite andersfarbig darzustellen
> habe ich eine class namens active erstellt.
> Diese musste ich manuell in der jeweiligen Seite
> einfügen.
>
> Dann habe ich die Seite auf php umgestellt und
> unter andern die navi ausgelagert.
>
> Zwei probleme tauchten auf:
> 1.Da ich über- bzw untergeordnete Ordner/Seiten
> habe,bekam ich Schwierigkeiten mit den normalen
> include-befehl.
> Vor allem mit den Pfad zu den Bildern.
> Lösung aus php-manual:
> > $_SERVER['DOCUMENT_ROOT']."/navi.php";?>
>
> 2.Jetzt musste ich mir was einfallen lassen um
> class active anzusprechen,da eine manuelle
> eingabe ausfiel.
> Lösung (weiss nicht mehr woher):
> > 'angebote.php')) echo 'class="active"';?>
> href="/angebote.php">Angebote

>


Hallo,

Guck mal, ob du diese Lösung auf dein Problem übertragen kannst:

http://www.selfhtml.de/forum/zeigebeitrag_1_132164_132160_0.php

Tobias' Lösung wäre normalerweise die bessere, aber da du ja jetzt mehrere unterschiedliche Dateien hast (angebote01.php, angebote02.php, angebote03.php usw.), die den gleichen Link "aufleuchten" lassen sollen, wäre vielleicht doch meine Lösung die passendere. ;-)


> Plötzlich entschied sich mein Kollege einige
> Seiten zu egänzen.
> Also auf einmal: angebote01.php, angebote02.php,
> angebote03.php usw.
>
> Und jetzt beginnt das eigentliche Problem:
> Wie schaffe ich es,dass der Link Angebote in der
> Navi "aufleuchtet", egal ob ich angebote01.php,
> angebote02.php, oder angebote03.php aufrufe ?

Du müßtest dann nur den Dateien angebote01.php, angebote02.php, angebote03.php im BODY die gleiche ID geben.


Grüße
gaby



Re: Problem mit externe Navi

Autor: T.Jung
Datum: 17.11.2013 17:49:06

Hallo,

Gabys Lösung wird auf jeden Fall funktionieren -- aber da ich bei einem Projekt kürzlich genau die gleiche Anforderung hatte, kann ich ja mal meine Lösung posten...

Der Code zum Aufbauen der Navi sieht bei mir so aus:

<ul id="navi">
    <li><a <?php echo hrefCurrent('eins.php'); ?>>Erste Seite</a></li>
    <li><a <?php echo hrefCurrent('zwei.php'); ?>>Zweite Seite</a></li>
    <li><a <?php echo hrefCurrent('angebote.php', array('angebote01.php', 'angebote02.php', 'angebote03.php')); ?>>Angebote</a></li>
</ul>


Und die dort angesprochene Funktion:

<?php
function hrefCurrent($file, $alt = array())
{
    if (basename($_SERVER['SCRIPT_NAME']) == $file)
    {
        $attribs = ' href="'.$file.'" class="current" ';
    }
    elseif (!empty($alt) && in_array(basename($_SERVER['SCRIPT_NAME']), $alt))
    {
        $attribs = ' href="'.$file.'" class="current" ';
    }
    else
    {
        $attribs = ' href="'.$file.'" ';
    }
    
    return $attribs;
}
?>


HTH,
Tobias Jung



Re: Problem mit externe Navi

Autor: gaby
Datum: 17.11.2013 19:54:17


Ich mache mal die Ingrid ;-)

> Du müßtest dann nur den Dateien angebote01.php,
> angebote02.php, angebote03.php im BODY die
> gleiche ID geben.

Uuups, da hatte ich etwas verwechselt, sorry.

Den aktuellen Link zu kennzeichnen, ist auch mit reinem CSS möglich, und mein Tipp, dem BODY jeder Seite eine ID (zb entsprechend des jeweiligen Dokument-Namens) zu geben, war ein Teil dieser CSS-Lösung.  



Re: Problem mit externe Navi

Autor: tupamaro
Datum: 22.11.2013 02:16:18

erstmal danke für eure bemühungen.
momentan raffe ich nix.
überfordert.

ich befasse mich die tage nach der arbeit damit.
falls wat ist, melde ich mich wieder.
(ich denke es wird passieren) :)

liebe grüße aus remscheid
P.



Re: Problem mit externe Navi

Autor: Netinja
Datum: 22.11.2013 08:54:59

> erstmal danke für eure bemühungen.
> momentan raffe ich nix.
> überfordert.

Hi,
Es gab mal einen ähnlichen Thread, in dem Tobias und Gaby alles erklärt haben.
http://www.selfhtml.de/forum/zeigebeitrag_1_132195_132160_0.php
Du kannst den Thread natürlich auch von Anfang an lesen, falls dir das jetzt zu sehr aus dem Zusammenhang gerissen wird. :-D

LG
Netinja



Re: Problem mit externe Navi

Autor: tupamaro
Datum: 29.11.2013 11:25:33

Nach langem hin und her habe ich folgende Lösung gewählt.
Eine navsection.

<ul>
  <li<?php echo ($navsection == 'index') ? ' class="current"' : ''; ?>><a href="/index.php">Home</a></li>
  <li<?php echo ($navsection == 'angebote') ? ' class="current"' : ''; ?>><a href="/angebote.php">Angebote</a></li>
  <li<?php echo ($navsection == 'quellen') ? ' class="current"' : ''; ?>><a href="/quellen.php">Quellen</a></li>
  <li<?php echo ($navsection == 'impressum') ? ' class="current"' : ''; ?>><a href="/impressum.php">Impressum</a></li>
</ul>


Und am Anfang des Dokumtentes
<?php
$navsection = 'angebote';
?>

Also egal ob angebot1,2,3usw .php
das current wird in der navi immer im Link Angebote gesetzt.

Auf jeden Fall läuft es.



Re: Problem mit externe Navi

Autor: tupamaro
Datum: 03.12.2013 17:15:36

> Nach langem hin und her habe ich folgende Lösung
> gewählt.
> Eine navsection.

Ich möchte für die, die das selbe Problem haben noch was zu meinen vorherigen Kommentar hinzufügen.

Ich habe beide Lösungen ausprobiert und muss sagen, dass T.Jungs Lösung die bessere ist.

Meine Lösung funktioniert zwar auch, aber wenn nachträgich eine Änderung vorgenommen werden muss, so ist es hierbei viel stressiger.

Grüße