Navigationspfad mit Startseite

andreasb
Beiträge: 212
Registriert: Fr 10. Dez 2004, 02:48
Wohnort: Fernwald
Kontaktdaten:

Navigationspfad mit Startseite

Beitrag von andreasb » Fr 7. Apr 2006, 00:20

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?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 10. Apr 2006, 09:36

ä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
*** make your own tools (wishlist :: thx)

Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Beitrag von Freddy » So 21. Mai 2006, 17:41

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??

BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Beitrag von BagHira » So 21. Mai 2006, 18:30

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:
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+

Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Beitrag von Freddy » So 21. Mai 2006, 19:27

Vielen Dank Holger, ist genau das richtige was ich gesucht habe. :)

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

CSS für Navigationspfad

Beitrag von #ayshe » Mo 21. Aug 2006, 19:38

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

xmurrix
Beiträge: 3147
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Beitrag von xmurrix » Mo 21. Aug 2006, 21:37

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

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Problem gelöst, Lösung optimiert

Beitrag von #ayshe » Di 22. Aug 2006, 19:24

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: )

andreasb
Beiträge: 212
Registriert: Fr 10. Dez 2004, 02:48
Wohnort: Fernwald
Kontaktdaten:

Beitrag von andreasb » Sa 9. Sep 2006, 01:49

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...

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » Sa 9. Sep 2006, 02:14

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; 
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

andreasb
Beiträge: 212
Registriert: Fr 10. Dez 2004, 02:48
Wohnort: Fernwald
Kontaktdaten:

Beitrag von andreasb » Sa 9. Sep 2006, 02:44

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: :)

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » Sa 9. Sep 2006, 02:53

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 ;)
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

andreasb
Beiträge: 212
Registriert: Fr 10. Dez 2004, 02:48
Wohnort: Fernwald
Kontaktdaten:

Beitrag von andreasb » Sa 9. Sep 2006, 03:07

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?
Zuletzt geändert von andreasb am Sa 9. Sep 2006, 03:16, insgesamt 1-mal geändert.

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » Sa 9. Sep 2006, 03:14

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 ;)
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

andreasb
Beiträge: 212
Registriert: Fr 10. Dez 2004, 02:48
Wohnort: Fernwald
Kontaktdaten:

Beitrag von andreasb » Sa 9. Sep 2006, 03:19

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)

Gesperrt