Druckversion des Themas

Hier klicken um das Topic im Orginalformat anzusehen

Forum Sefrengo.org _ Entwicklung _ Dynamisch generierte Texte in der Navigation

Geschrieben von: duffy Tue. 25. September 2007, 10:44

Hallo zusammen,

ich habe in einem Projekt dem Kundenwunsch entsprochen und in der Navigation die Menüpunkte mit dynamisch generierten Schriften erstellt. Dazu habe ich die Module "Navigation" und MrType benutzt und nur minimal geändert:

- MrType um einen Funktionsaufruf erweitert
- Navigation um einen Platzhalter erweitert

Im Template kann man dann mit

QUELLTEXT
{nameMrType|<hintergrundfarbe>|<schriftfarbe>|<schriftgröße>}


den Namen der Seite als dynamisches gif einbetten.

Meine Frage ist nun ob es ein Interesse gibt solch eine Funktion generell in die Module zu übernehmen oder das eher eine Bastellösung bleiben soll.

Wenn letzteres der Fall ist würde ich einfach eine Beschreibung ins Wiki oder hier rein packen und gut ist :-)

Geschrieben von: grafzahl Tue. 25. September 2007, 11:45

ZITAT(duffy @ Tue. 25. September 2007, 11:44) *
Hallo zusammen,

ich habe in einem Projekt dem Kundenwunsch entsprochen und in der Navigation die Menüpunkte mit dynamisch generierten Schriften erstellt. Dazu habe ich die Module "Navigation" und MrType benutzt und nur minimal geändert:

- MrType um einen Funktionsaufruf erweitert
- Navigation um einen Platzhalter erweitert

Im Template kann man dann mit

QUELLTEXT
{nameMrType|<hintergrundfarbe>|<schriftfarbe>|<schriftgröße>}


den Namen der Seite als dynamisches gif einbetten.

Meine Frage ist nun ob es ein Interesse gibt solch eine Funktion generell in die Module zu übernehmen oder das eher eine Bastellösung bleiben soll.

Wenn letzteres der Fall ist würde ich einfach eine Beschreibung ins Wiki oder hier rein packen und gut ist :-)


Eine Beschreibung würde mir persönlich jetzt schon fast genügen. Ich denke so oft kommt solch ein Fall nicht vor. Meist lässt sich das dann ja auch über statische Grafiken lösen. Eine Erklärung wäre aber denke ich für später sehr gut... nur wenn man es jetzt direkt ins Modul einzimmern würde wäre das denke ich ein wenig aufgebläht.

Geschrieben von: feniweb Tue. 25. September 2007, 11:47

Also ich finde das super.
Sowas hätte ich früher mal gebrauchen können und eftl. kommt ein Projekt wo man so was einsetzen kann. Wie sieht das mit Barrierefrei aus? Könnte man das auch mit der Listennavi machen und über CSS steuern?

Gruss

Geschrieben von: superdeluxe Wed. 26. September 2007, 10:39

Cool, eine Beschreibung wäre genug denke ich.

Ich kann euch übrigens http://www.google.ch/search?hl=de&q=sifr&btnG=Google-Suche&meta= ans Herz legen! Kann man coole Sachen damit machen.... Ist zwar mehr für Header und nicht für Lauftexte und die Navigation. Man muss aber auch gar nix anpassen um es zum Laufen zu bringen. Die folgende kleine Referenz läuft mit Sefrengo und sifr: http://www.swisslawyer.ch

Geschrieben von: duffy Fri. 12. October 2007, 21:01

Hallo zusammen,

hier nun also eine kurze Beschreibung wie man MrType mit dem Modul Navigation bzw. Listennavigation zusammenbringt:

1. Vorraussetzungen:
- MrType ist also Modul so im Template vorhanden, dass es vor dem Navigationsmodul ist (Ich habe es immer im Head eingebaut)
- MrType ist vorkonfiguriert (Schriftart, Farben, Größe)

2. Änderungen an MrType
- Das Bestreben ist, das Modul so zu ändern, dass es mit einem Funktionsaufruf funktioniert
- Dafür das Modul bearbeiten und in der Frontendausgabe die schließende(!) Klammer der folgenden Abfrage suchen:

QUELLTEXT
if(! class_exists(phpfontwriter) ){
(Das ist so in etwa um die Zeile 320)

- hinter diese schließende Klammer den folgenden Funktionskopf setzen:
QUELLTEXT
if(! function_exists(callMrType) ){
  function callMrType($text, $fontcolor = "", $imgbgcolor = "", $size = "")
  {

- der schließende Teil der Funktion kommt hinter diese Zeile:
QUELLTEXT
unset($mvars);

- Danach folgende Zeilen auskommentieren (hier bin ich nicht sicher ob das nötig ist, funktioniert aber)
QUELLTEXT
//unset($mrtype_vars, $mrtype_content, $mrtype_tpl);
//unset($newimage);

//if ($cms_mod['modul']['lastentry'])
//unset($mvars);

- jetzt am Ende der neu geschaffenen Funktion folgende Änderung vornehmen:
QUELLTEXT
//echo $mrtypehtml;
return $mrtypehtml;

- Zum Schluss noch innerhalb der Funktion die zwei Vorkommen von $mvars['string'] durch $text ersetzen

3. Änderungen an Navigationsmodulen
- Die Änderungen sind für "Navigation" und "Listennavigation" ähnlich
- Überall dort wo der Platzhalter {name} ersetzt wird, werden die folgenden Zeilen davor kopiert:
(Listennavigation: 2 mal einfügen; Navigation: 3 mal einfügen)

QUELLTEXT
if(function_exists(callMrType))
{
  if(ereg(".*\{nameMrType\|([0-9a-f]{6})\|([0-9a-f]{6})\|([0-9]*)\}.*", $mod['temp'], $imgValues))
  {
    $mod['temp'] = ereg_replace("\{nameMrType\|[0-9a-f]{6}\|[0-9a-f]{6}\|[0-9]*\}", callMrType($con_tree[$a]['name'], $imgValues[1], $imgValues[2], $imgValues[3]), $mod['temp']);
  }
  else
  {
    $mod['temp'] = str_replace('{nameMrType}', callMrType($con_tree[$a]['name']), $mod['temp']);
  }
}
else
{
  $mod['temp'] = ereg_replace("\{nameMrType(\|[0-9a-f]{6}\|[0-9a-f]{6}\|[0-9]*)?\}", "{name}", $mod['temp']);
}

ACHTUNG: hier ist Mitdenken angesagt, nicht immer heißt es "$mod['temp']" bzw. $con_tree[$a]['name'] das für die Ersetzung benutzt wird. Es ist in beiden Navigationsmodulen unterschiedlich.
(Ich setze mal voraus, dass jemand der diese Änderungen machen will weiß was er/sie tut ;-) )


4. Benutzen
- Das war's auch schon, Nun könnt ihr in der Modulkonfiguration die Platzhalter {nameMrType} oder {nameMrType|color|bgcolor|size} benutzen
- {nameMrType} verwendet als Einstellungen die Modulkonfiguration von MrType, {nameMrType|color|bgcolor|size} überschreibt diese mit den drei Angaben. Farben bitte als Hextwert (z.B. efefef)


Ich hänge meine geänderten Module noch an, damit man die Änderungen besser nachvollziehen kann.

Gruß,

Oliver

PS: Wenn ich etwas nicht nachvollziehbar genug erklärt habe, einfach noch mal Bescheid geben. Verbesserungsvorschläge nehme ich gerne an. Ich setze das Modul jedoch inzwischen nicht mehr ein, da der Designer sich nun anders entschieden hat.



 MrType.cmsmod ( 29.91KB ) : 14
 Listen_Navigation.cmsmod ( 45.73KB ) : 10
 Navigation.cmsmod ( 43.08KB ) : 7
 

Geschrieben von: fo.x Tue. 1. April 2008, 11:02

Hallo,

ich hab deine Methode in einer Website eingebunden, funktioniert tadellos.

Besten Dank Duffy !

Ich krieg es jedoch nicht gebacken die Listen-Navigation Horizontal darzustellen.

Ich habe in der CSS { display: inline; } eingefügt , dies zeigt jedoch keine Wirkung.

Die CSS

QUELLTEXT

#navcontainer ul
{
margin: 0;
padding: 0;
list-style-type: none;
}
#navcontainer ul li {
    display: inline;
    }
#navcontainer ul li a
{
text-decoration: none;
padding: .1em 1em;
}


Hat mir jemand einen Tipp ?




Geschrieben von: fo.x Thu. 3. April 2008, 09:48

Hab's hinbekommen,

ich musste dies in der Modulkonfiguration erweitern:

$css="display:block;float;left";

wink.gif


Komisch das die Grafiken jeweils immer in Grossbuchstaben erstellt werden ?


Geschrieben von: fo.x Mon. 7. April 2008, 10:05

@duffy

kannst du mir erklären warum die ausgegebene Navigation ausschliesslich in Grossbuchstaben erstellt wird ?

ich habe die oben angefügten Dateien installiert.

Geschrieben von: bkm Mon. 7. April 2008, 10:19

so wie du es beschreibst, wird wahrscheinlich in mrtype << strtoupper >> verwendet.
was das wort (zeichenkette) in grossbuchstaben wieder gibt.

Geschrieben von: fo.x Mon. 7. April 2008, 10:55

Das war es ... ein "ucfirst" machte mich glücklich wink.gif

danke

Unterstützt von Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)