Seite 1 von 2

Navigationspfad mit Startseite

Verfasst: Fr 7. Apr 2006, 00:20
von andreasb
Hallo!

Mir ist gerade aufgefallen, dass im Modul Navigatiosnpfad (breadcRumb) in der Version 4.6.8 immer die Startseite fehlt.

Also auf der Startseite selbst erscheint dementsprechend kein Navigationspfad und bei anderen Kategorien/Artikeln auch nicht, was nict so sinnig ist.

Habe ich da etwas übersehen oder ist das so?

Verfasst: Mo 10. Apr 2006, 09:36
von emergence
ähm soweit ich das modul kenne -> ist es so...

es gibt aber angepasste versionen eines location strings die das berücksichtigen... -> forum suche nach location string

Verfasst: So 21. Mai 2006, 17:41
von Freddy
emergence hat geschrieben:ähm soweit ich das modul kenne -> ist es so...

es gibt aber angepasste versionen eines location strings die das berücksichtigen... -> forum suche nach location string
Habe nach location string gesucht aber nichts fertiges gefunden. Das location-string Modul von V.4.4.x funktioniert nicht unter 4.6.x.
Gibt es schon ein fertiges Navigationspfad-Modul mit "Home >" davor??

Verfasst: So 21. Mai 2006, 18:30
von BagHira
Freddy hat geschrieben:
emergence hat geschrieben:ähm soweit ich das modul kenne -> ist es so...

es gibt aber angepasste versionen eines location strings die das berücksichtigen... -> forum suche nach location string
Habe nach location string gesucht aber nichts fertiges gefunden. Das location-string Modul von V.4.4.x funktioniert nicht unter 4.6.x.
Gibt es schon ein fertiges Navigationspfad-Modul mit "Home >" davor??
hi freddy,

schau mal ob das bei dir funktioniert:
Input: leer

Output:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Navigationpath
* Author(s)   :     Andreas Lindner
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     05-08-2005
************************************************/

#Settings
$separator = '>';
$max_length = 65;

#Get path to root
$dummy = conCreateLocationString($idcat, ' '.$separator.' ', $retval, true, "navipath", 0);

if ($retval=='') {
	$retval='&nbsp;';	
} else {
	$pattern = "'>.*?<'";
	
	preg_match_all($pattern, $retval, $matches);
	$matches = $matches[0];
	
	#Get effective text length
	$length = 0;
	foreach ($matches as $value) {
		$length += strlen($value) - 2;
	}
	
	#Get shorten factor
	if ($length > $max_length * 4) {
		$shorten = 5;
	}
	elseif ($length > $max_length * 3) {
		$shorten = 4;
	}
	elseif ($length > $max_length * 2) {
		$shorten = 3;
	}
	elseif ($length > $max_length) {
		$shorten = 2;
	} else {
		$shorten = 1;
	}
	
	#Shorten items
	if ($length > $max_length) {
		foreach ($matches as $value) {
			if (strpos($value, $separator) === FALSE) {
				$text = substr($value, 1, strlen($value) - 2);
				$len = strlen($text);
				if (strpos($text, ' ') === FALSE) {
					$text_new = $text;
				} else {
					$text_new = capiStrTrimAfterWord($text, intval($len / $shorten));
				}
	
				if (strlen($text) != strlen($text_new)) {
					$text_new .= '...';
				}
	
				$text_new = '>'.$text_new.'<';
				$retval = str_replace('>'.$text.'<', $text_new, $retval);
			}
		}
	}
	
	$retval = str_replace('"/index.html"', '"Home/index.html"', $retval);

}

echo $retval;
?>
Hoffe dir geholfen zu haben :wink:

Verfasst: So 21. Mai 2006, 19:27
von Freddy
Vielen Dank Holger, ist genau das richtige was ich gesucht habe. :)

CSS für Navigationspfad

Verfasst: Mo 21. Aug 2006, 19:38
von #ayshe
Hallo,

ich nutze oben zitiertes Modul für den Navigationspfad. Darin ist die CSS-Klasse "navipath" festgeschrieben. Wenn ich dafür im CSS z.B. eine Schriftfarbe definiere, wird die auf alle Einträge/Links des Navigationspfades angewendet - logisch.

Ich möchte aber, dass nur der letzte Link im Navigationspfad farblich hervorgehoben wird. Wie kann ich das bewerkstelligen?

Viele Grüße,
Ayshe

Verfasst: Mo 21. Aug 2006, 21:37
von xmurrix
Hallo,

eine Möglichkeit wäre die Zeile:

Code: Alles auswählen

    $retval = str_replace('"/index.html"', '"Home/index.html"', $retval);
um folgendes

Code: Alles auswählen

    $retval = str_replace('"/index.html"', '"Home/index.html"', $retval);
    $tmp = explode('<a ', $retval);
    $tmp[count($tmp)-1] = 'id="nav-path-last" '.$tmp[count($tmp)-1];
    $retval = implode('<a ', $tmp);
zu erweitern.

Dann kannst du den letzten Anker (mit der id nav-path-last) deinen Wünschen entsprechend formatieren.

Gruß
xmurrix

Problem gelöst, Lösung optimiert

Verfasst: Di 22. Aug 2006, 19:24
von #ayshe
Vielen Dank, xmurrix, das war's haargenau.

Ich hab noch ein wenig optimiert:
  • - statt "id='nav-path-last'" hab ich eine class gemacht - hab ich bei Links in einer Aufzählung lieber, IDs nehm' ich nur für übergeordnete Blockelemente -- aber das ist Geschmackssache;

    - in der funcitons.con.php (includes) habe ich die Zeile

    Code: Alles auswählen

    $name = '<a href="'.$linkUrl.'" class="'.$linkClass.'">'.$name.'</a>';
    geändert in

    Code: Alles auswählen

    $name = '<a href="'.$linkUrl.'" title="'.$name.'" >'.$name.'</a>';
    dadurch entfällt der zweifache Nennung einer Klasse im Link, dafür haben die Links jetzt auch ein Attribut "title", wie sich das gehört.
Vollstens zufrieden: Ayshe
(ja, kommt auch mal vor :wink: )

Verfasst: Sa 9. Sep 2006, 01:49
von andreasb
BagHira hat geschrieben:
Freddy hat geschrieben:
emergence hat geschrieben:ähm soweit ich das modul kenne -> ist es so...

es gibt aber angepasste versionen eines location strings die das berücksichtigen... -> forum suche nach location string
Habe nach location string gesucht aber nichts fertiges gefunden. Das location-string Modul von V.4.4.x funktioniert nicht unter 4.6.x.
Gibt es schon ein fertiges Navigationspfad-Modul mit "Home >" davor??
hi freddy,

schau mal ob das bei dir funktioniert:
Input: leer

Output:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Navigationpath
* Author(s)   :     Andreas Lindner
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     05-08-2005
************************************************/

#Settings
$separator = '>';
$max_length = 65;

#Get path to root
$dummy = conCreateLocationString($idcat, ' '.$separator.' ', $retval, true, "navipath", 0);

if ($retval=='') {
	$retval='&nbsp;';	
} else {
	$pattern = "'>.*?<'";
	
	preg_match_all($pattern, $retval, $matches);
	$matches = $matches[0];
	
	#Get effective text length
	$length = 0;
	foreach ($matches as $value) {
		$length += strlen($value) - 2;
	}
	
	#Get shorten factor
	if ($length > $max_length * 4) {
		$shorten = 5;
	}
	elseif ($length > $max_length * 3) {
		$shorten = 4;
	}
	elseif ($length > $max_length * 2) {
		$shorten = 3;
	}
	elseif ($length > $max_length) {
		$shorten = 2;
	} else {
		$shorten = 1;
	}
	
	#Shorten items
	if ($length > $max_length) {
		foreach ($matches as $value) {
			if (strpos($value, $separator) === FALSE) {
				$text = substr($value, 1, strlen($value) - 2);
				$len = strlen($text);
				if (strpos($text, ' ') === FALSE) {
					$text_new = $text;
				} else {
					$text_new = capiStrTrimAfterWord($text, intval($len / $shorten));
				}
	
				if (strlen($text) != strlen($text_new)) {
					$text_new .= '...';
				}
	
				$text_new = '>'.$text_new.'<';
				$retval = str_replace('>'.$text.'<', $text_new, $retval);
			}
		}
	}
	
	$retval = str_replace('"/index.html"', '"Home/index.html"', $retval);

}

echo $retval;
?>
Hoffe dir geholfen zu haben :wink:
Ahem, das ist doch das Modul, dass bei 4.6.8 dabei ist?! Da gibts aber kein "Home >" davor...

Verfasst: Sa 9. Sep 2006, 02:14
von mvf
statt

Code: Alles auswählen

echo $retval; 

Code: Alles auswählen

$homelink = $sess->url('front_content.php'); // hier kannste deine parameter mitgeben wenn nötig also idart oder idcat z.b.

$retval = '<a href="' . $homelink . '">Home</a> ' . $separator . ' ' . $retval;

echo $retval; 

Verfasst: Sa 9. Sep 2006, 02:44
von andreasb
mvf hat geschrieben:statt

Code: Alles auswählen

echo $retval; 

Code: Alles auswählen

$homelink = $sess->url('front_content.php'); // hier kannste deine parameter mitgeben wenn nötig also idart oder idcat z.b.

$retval = '<a href="' . $homelink . '">Home</a> ' . $separator . ' ' . $retval;

echo $retval; 
Tse, Sackzementi, tatsächlich... so funkts!!!
Merci! Stand das schon wo und ich habs überlesen? Man kiregt hier ja immer toll geholfen, aber wo die Module für die Versionen aufgelistet sindwäre mal an der Zeit... oder?
8) :roll: :)

Verfasst: Sa 9. Sep 2006, 02:53
von mvf
andreasb hat geschrieben: Stand das schon wo und ich habs überlesen? Man kiregt hier ja immer toll geholfen, aber wo die Module für die Versionen aufgelistet sindwäre mal an der Zeit... oder?
8) :roll: :)

das ist basic aus der alleruntesten schublade :D , deswegen stehts wahrscheinlich nirgendwo, außerdem ist das nur eine möglichkeit, ...

es führen tausend wege nach bella roma ;)


und wenn du dir jetzt die conCreateLocationString anschaust und um die idart erweiterst, kannste den artikel auch im bradcrumb haben ;)

Verfasst: Sa 9. Sep 2006, 03:07
von andreasb
mvf hat geschrieben:
andreasb hat geschrieben: Stand das schon wo und ich habs überlesen? Man kiregt hier ja immer toll geholfen, aber wo die Module für die Versionen aufgelistet sindwäre mal an der Zeit... oder?
8) :roll: :)

das ist basic aus der alleruntesten schublade :D , deswegen stehts wahrscheinlich nirgendwo, außerdem ist das nur eine möglichkeit, ...

Ok, dann bin ich der Boden, der den Schrank mit der alleruntersten Schublade tragen muss...
:oops:

es führen tausend wege nach bella roma ;)

Ja, und dann is' da die Frage welchen soll ich nehmen, bzw. für mich siehts bisweilen eher so aus, dass garkein Weg nach Rom führt...
:cry:

und wenn du dir jetzt die conCreateLocationString anschaust und um die idart erweiterst, kannste den artikel auch im bradcrumb haben ;)

Ach, Heiterkeit bei Profi-meets-Amateur ...wat is?
8) :)

Sehe gerade, dass ">" macht ja auf der Startseite keinen guten Eindruck, gibts dafür auch eine Lösung?

Verfasst: Sa 9. Sep 2006, 03:14
von mvf
andreasb hat geschrieben:
Sehe gerade, dass ">" macht ja auf der Startseite keinen guten Eindruck, gibts dafür auch eine Lösung?
yep schaue mal ganz an den anfang des moduloutputs da findes tu die variable und da steht dann = ' > '

play with it ;)

Verfasst: Sa 9. Sep 2006, 03:19
von andreasb
mvf hat geschrieben:
andreasb hat geschrieben:
Sehe gerade, dass ">" macht ja auf der Startseite keinen guten Eindruck, gibts dafür auch eine Lösung?
yep schaue mal ganz an den anfang des moduloutputs da findes tu die variable und da steht dann = ' > '

play with it ;)
Yo, das mach ich auch, aber net mehr heute oder doch heute, aber später am Tag. Besten Dank erstmal!

8)