Seitenpfad ausgeben lassen

Gesperrt
contenidoAmateur

Seitenpfad ausgeben lassen

Beitrag von contenidoAmateur » Sa 22. Dez 2012, 16:59

Hey liebe Forumianer :)

kurz eine Frage.

Ich habe via JavaScript mir den Seitenpfad ausgeben lassen für die Funktion, das der Besucher weiß wo er sich gerade befindet. Hier das Script:

<b>Sie befinden sich Hier:</b>
<div class="naviPfad">
<script type="text/javaScript">
<!--
var path = "";
var domain = "www.domain.de";
var href = document.location.href;
var s = href.split("/");
for (var i=2;i<(s.length-1);i++) {

if (s == domain) {
path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s)+s.
length+1)+"/\">Startseite </a>/ ";
}

if(s == domain.substring(7,domain.length)) {
path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s)+s.
length+1)+"/\">Startseite </a>/ ";
}

else {
path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s)+s.
length+1)+"/\">"+s+"</A> / ";
}
}

i=s.length-1;
path+="<A HREF=\""+href.substring
(0,href.indexOf(s)+s[i]. length)+"\">"+s[i]+"</A>";
document.writeln(path);
//-->
</script>
</div>

So folgendes Problem:

Er gibt das aus:
Sie befinden sich Hier:
Startseite / www.domain.de / blogtutorials / html-lernen / html5.html

ich möchte aber das www.domain.de nicht ausgegeben haben sondern nur Startseite / blogtutorials usw.

Was habe ich falsch gemacht?

Gibt es eine bestehendes Modul das dies ganz gut regelt?#

Danke :)

Seelauer
Beiträge: 186
Registriert: So 22. Jan 2006, 21:03
Wohnort: Mal da, mal da
Kontaktdaten:

Re: Seitenpfad ausgeben lassen

Beitrag von Seelauer » Sa 22. Dez 2012, 17:41

Hallo,
Du hast im Beispielsmandanten in C 4.8.15 ff das Modul "Navigation_Breadcrumb" schon mal getestet ?
Guten Gruß
Seelauer.

contenidoAmateur

Re: Seitenpfad ausgeben lassen

Beitrag von contenidoAmateur » Sa 22. Dez 2012, 18:00

Klaro, aber dies gibt nicht die Struktur aus die ich gerne hätte. Navigation wäre folgende:

Startseite -> HTMLlernen -> html5

weil der zwischen Punkt BlogTutorial wird keinen Artikel bekommen, da hier die bei klick ein Popup Navi mit den untermenüpunkten geöffnet wird...

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Seitenpfad ausgeben lassen

Beitrag von Spider IT » So 23. Dez 2012, 10:33

Hallo,

dein Fehler liegt bei den IF-Auswertungen.
Das erste IF findet den Eintrag für die Startseite, also die Domain, und schreibt "Startseite".
Dann kommt aber kein ELSIF, sondern ein neues IF, welches die Domain nie erkennen kann (sondern "main.de" wegen SUBSTRING), wobei dann der ELSE Zweig genommen und die Domain ausgegeben wird.
Wenn du diesen Zweig entfernst sollte es funktionieren:

Code: Alles auswählen

<b>Sie befinden sich Hier:</b>
<div class="naviPfad">
<script type="text/javaScript">
//<![CDATA[
    var path = "";
    var domain = "www.domain.de";
    var href = document.location.href;
    var s = href.split("/");
    for (var i=2;i<(s.length-1);i++) {

        if (s[i] == domain) {
            path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].
            length+1)+"/\">Startseite </a>/ ";
        }

        else {
            path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].
            length+1)+"/\">"+s[i]+"</A> / ";
        }
    }

    i=s.length-1;
    path+="<A HREF=\""+href.substring(0,href.indexOf(s[i])+s[i]. length)+"\">"+s[i]+"</A>";
    document.writeln(path);
//]]>
</script>
</div>
Gruß
René

PS: Über dem Eingabefeld hier im Forum gibt es Buttons, einen davon ist beschriftet mit "Code".
Bitte nutz diesen auch, denn so wird der Code sehr unübersichtlich.

contenidoAmateur

Re: Seitenpfad ausgeben lassen

Beitrag von contenidoAmateur » So 23. Dez 2012, 18:53

Funktioniert immer noch net...

Er soll ja nur Startseite -> HTML lernen -> HTML5.html

ausgeben.

Kannst du mir einmal kommentare ins script schreiben wo genau was passiert? Dann schau ich mir das selber einmal durch :) und Komm dann vllt. nochmal drauf zurück :)

Danke :)

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Seitenpfad ausgeben lassen

Beitrag von Spider IT » So 23. Dez 2012, 20:05

So, nochmal mit Kommentare:

Code: Alles auswählen

<b>Sie befinden sich Hier:</b>
<div class="naviPfad">
<script type="text/javaScript">
//<![CDATA[
    var path = "";
    var domain = "www.domain.de";
    var href = document.location.href;
    var s = href.split("/");
    for (var i=2;i<(s.length-1);i++) {

        if (s[i] == domain) {
            // Hier wurde der Domainname aus der Variable domain erkannt, es wird ein Link mit Text "Startseite" ausgegeben
            path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].length+1)+"/\">Startseite </a>/ ";
        }

        else {
            // Hier werden (durch else) allen anderen Teilen der Adresse verarbeitet
            path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].length+1)+"/\">"+s[i]+"</A> / ";
        }
    }

    i=s.length-1;
    path+="<A HREF=\""+href.substring(0,href.indexOf(s[i])+s[i]. length)+"\">"+s[i]+"</A>";
    document.writeln(path);
//]]>
</script>
</div>
Wenn ich aber nichts sehen kann, wie soll ich denn dann was schreiben können, dass genau das ausgibt, was du haben möchtest?
Ich sehe hier weder eine tatsächliche Adresse zur Seite, noch was die Navigation darstellt.
Und meine Zauberkugel ist gerade zur Reparatur.

Gruß
René

contenidoAmateur

Re: Seitenpfad ausgeben lassen

Beitrag von contenidoAmateur » So 23. Dez 2012, 20:58

Was genau brauchst du von mir?

Also im root liegt ein Ordner namens blog /cms

so in CMS liegt die Startseite und bei klick auf den Menüpunkt Tutorials öffnet sich ein Fenster für die Weitere Navigation dort auf HTML und dann weiter auf HTML5

So ich hab eine weiterleitun via .htaccess drinne die von www.domain,de auf das verzeichnis blog/cms weiterleitet. So und das CMS macht aus den ganzen Daten www.domain,de ´/blogtutorial/html-lernen.html5.html

und daraus soll er flolgenden Pfad machen:

Startseite -> HTML Lernen -> HTML5

Brauchst du noch weitere Infos? :)

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Seitenpfad ausgeben lassen

Beitrag von Spider IT » So 23. Dez 2012, 21:11

Dein erster Post:
contenidoAmateur hat geschrieben:... ich möchte aber das http://www.domain.de nicht ausgegeben haben sondern nur Startseite / blogtutorials usw.
Dein letzter Post:
contenidoAmateur hat geschrieben:... und daraus soll er flolgenden Pfad machen:

Startseite -> HTML Lernen -> HTML5
Was genau möchtest du denn jetzt eigentlich haben?
Und was genau wird an der Stelle jetzt (mit dem letzten Code) ausgegeben?

Gruß
René

contenidoAmateur

Re: Seitenpfad ausgeben lassen

Beitrag von contenidoAmateur » So 23. Dez 2012, 23:41

Seiten aufbau habe ich ja beschrieben.

Startseite -> HTML Lernen -> HTML5 "will haben"

domain.de / blogtutorials / html-lernen / html5.html "gibt aus"

das ich nur domain schreibe liegt daran, dassich die url hier net reinschreiben will.

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Seitenpfad ausgeben lassen

Beitrag von Spider IT » Mo 24. Dez 2012, 10:33

Welche Domain das ist, ist hier irrelevant, die hast du in eine Variable gespeichert und kann ausgetauscht werden.

Du möchtest also die Ebene "blogtutorials" nicht mit ausgegeben haben, die lässt sich ausfiltern:

Code: Alles auswählen

<b>Sie befinden sich Hier:</b>
<div class="naviPfad">
<script type="text/javaScript">
//<![CDATA[
    var path = "";
    var domain = "www.domain.de";
    var href = document.location.href;
    var s = href.split("/");
    for (var i=2;i<(s.length-1);i++) {

        if (s[i] == domain) {
            // Hier wurde der Domainname aus der Variable domain erkannt, es wird ein Link mit Text "Startseite" ausgegeben
            path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].length+1)+"/\">Startseite </a>/ ";
        }

        else {
            // Hier werden (durch else) allen anderen Teilen der Adresse verarbeitet
            // Also, "blogtutorials" rausfiltern
            if (s[i] != 'blogtutorials') {
                path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s[i])+s[i].length+1)+"/\">"+s[i]+"</A> / ";
            }
        }
    }

    i=s.length-1;
    path+="<A HREF=\""+href.substring(0,href.indexOf(s[i])+s[i]. length)+"\">"+s[i]+"</A>";
    document.writeln(path);
//]]>
</script>
</div>
Was aber nicht geht, ist, dass Javascript aus eine komplett kleingeschriebene Adresse die richtige Groß-/Kleinschreibung ausliest, also bleibst du bei der Kleinschreibung.
Sonst musst du, wie schon Seelauer geschrieben hat, das Modul "Navigation_Breadcrumb" nutzen, das kann man auch anpassen um diese eine Ebene auszufiltern.

Gruß
René

Gesperrt