kleines PHP prob bei modifizierter Servicenavigation

Gesperrt
nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

kleines PHP prob bei modifizierter Servicenavigation

Beitrag von nicnac » Do 26. Jul 2007, 13:31

Hallo ihr lieben,

ich merke es immer wieder. Ich mache eindeutig zu selten php...
kann mir mal einer auf die Sprünge helfen?
Ich will die Standardservicenavi anpassen, ne Sprachweiche brauche ich nicht.

Ich brauche für jeden Navigationspunkt eine andere Klasse, daher wollte ich das so auslesen...

Code: Alles auswählen

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

cInclude("frontend", "includes/functions.navigation.php");
cInclude('classes', 'class.template.php');
	
$catStart = "CMS_VALUE[0]";
if(($catStart=='')||($catStart=='0')){
    $cApiClient = new cApiClient($client);
    $catStart= $cApiClient->getProperty('navigation', 'idcat_hilfsnavi');
}
if(!is_object($oClient)) {
	$oClient = new cApiClient($client);
}

$navigation = array();
$navigation = createNavigationArray($catStart, $db);

if (count($navigation) > 0) {
		echo '<ul class="service">';
		foreach ($navigation as $key => $data) {
	   $zaehler++;
     if ($zaehler==1) {
				echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" class="search">'.$data['name'].' </a><form method="post" action="/suchergebnis/" class="suche" name="formsearch" id="formsearch"><label for="searchterm" class="nolabel"></label>
				<input type="text" name="searchterm" id="searchterm" value="" class="suchfeld" title="Klick zum Start der Suche" onfocus="this.value=\'\'" /> 
				</form></li>';
		}
     if ($zaehler==2) {
				echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" class="contact">'.$data['name'].' </a></li>';
		}
     if ($zaehler==3) {
				echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" class="imprint">'.$data['name'].' </a></li>';
		}
     if ($zaehler==4) {
				echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" class="sitemap">'.$data['name'].' </a></li>';
		} else {
				echo '<p>please ask the admin</p>';
		}
		}
	echo '</ul>';
}?>

Da schon zwei Punkte in der Servicenavigation existieren, erhalte ich jetzt zweimal: please ask the admin.

snief, manchmal stellt man sich aber auch blöd an...
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

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

Beitrag von emergence » Fr 27. Jul 2007, 08:54

der code ist etwas gruselig..

Code: Alles auswählen

if ($zaehler==4) { 
            echo '<li><a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" class="sitemap">'.$data['name'].' </a></li>'; 
      } else { 
            echo '<p>please ask the admin</p>'; 
      }
wie oft ist der $zaehler exakt 4 ?
ich schätze genau 1* die anderen male wird "please ask the admin"
ausgegeben...

sieh dir doch mal die switch case anweisungen in php an...
*** make your own tools (wishlist :: thx)

nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Beitrag von nicnac » Fr 27. Jul 2007, 09:31

lacht.

ok. werde ich machen, hatte ich sogar schon, dachte nur, dass das die bessere variante wäre...

wie oft $zaehler exakt 4 ist? im mom wohl gar nicht, denn es wird nur "please ask the admin" ausgegeben. und das 2 mal, da 2 Navigationspunkte existieren.
na dann versuch ich noch mal mein glück aber mit der switch/case anweisung hatte ich glaub ich auch kein glück.
*snief* muß ich wohl doch bis nächste woche warten bis unser programmierer wieder da ist. na mal schaun... vielleicht habe ich ja nicht alles verlernt.
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Beitrag von nicnac » Fr 27. Jul 2007, 10:50

hm. kriegs nicht hin mit switch. bin eindeutig zu blond und mache zu selten php...
kann mir vielleicht jemand auf die sprünge helfen?
das der code von mir nicht allererste sahne ist, ist mir ja selber klar - schließlich funktioniert er ja auch nicht, die Aussage allein hilft mir bei meinem Problem aber leider auch nicht weiter... :(

Ich weiß nicht, was ich abfragen kann/ welche Variable ich setzen kann um folgendes zu erreichen:

der 1. Navigationspunkt erhält diese Klasse,
der 2. Navigationspunkt erhält diese Klasse,
der 3. ...

büdde büdde ;-)
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 27. Jul 2007, 16:06

Warum benennst Du die Klassen nicht über die ID? Sowas wie class1, class7, ...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Fr 27. Jul 2007, 16:09

nicnac hat geschrieben:Ich weiß nicht, was ich abfragen kann/ welche Variable ich setzen kann um folgendes zu erreichen:

der 1. Navigationspunkt erhält diese Klasse,
der 2. Navigationspunkt erhält diese Klasse,
der 3. ...

büdde büdde ;-)
wenn man fragen darf: willst du denn tatsächlich, dass jeder navigationspunkt anders aussieht? oder meinst du nicht am ende navigationsebenen anstatt navigationspunkte?

das vorgehen wäre nämlich in beiden fällen grundsätzlich unterschiedlich.

wenn jeder navigationspunkt anders aussehen sollte, dann wäre das von HerrB vorgeschlagene vorgehen das vermutlich einfachste.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Beitrag von nicnac » Fr 27. Jul 2007, 16:19

hi,

ich meine navigationspunkte. der designer hatte die glorreiche idee für jeden navigationspunkt der servicenavigation andere icons zu benutzen. dass habe ich per klasse über den link mittels hintergrundbild abgefedert.
siehe hier: www.pixel-coach.de/hautschutz
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Beitrag von nicnac » Fr 27. Jul 2007, 16:23

HerrB hat geschrieben:Warum benennst Du die Klassen nicht über die ID? Sowas wie class1, class7, ...

Gruß
HerrB
sorry. das ist mir jetzt gerade eindeutig zu hoch. theoretisch verstehe ich was du meinst, aber umgesetzt bekomme ich es selber wohl eher nie.
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Fr 27. Jul 2007, 16:28

hmmm....

ich würde folgendes vorgehen vorschlagen:

du verwendest als kategoriebezeichner etwas in der art:

Code: Alles auswählen

meinBild1.png$Suche
dann kannst du den kategoriebezeichner sowie das zu verwendende bild mit...

Code: Alles auswählen

$kategorie = split('$', $kategoriebzeichner);
zur laufzeit herausfinden. in $kategorie[0] steht dann der bildpfad und in $kategorie[1] der kategoriebezeichner. so brauchst du nicht verschiedene klassen, sondern kannst es über styles lösen. bei einem neuen navigationspunkt mit einem neuen bild musst du dann auch keine anpassungen am navigationsmodul machen.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Beitrag von nicnac » Fr 27. Jul 2007, 16:33

kummer hat geschrieben: zur laufzeit herausfinden. in $kategorie[0] steht dann der bildpfad und in $kategorie[1] der kategoriebezeichner. so brauchst du nicht verschiedene klassen, sondern kannst es über styles lösen. bei einem neuen navigationspunkt mit einem neuen bild musst du dann auch keine anpassungen am navigationsmodul machen.
das hört sich richtig gut an. An die Problematik mit Anpassungen hatte ich auch schon gedacht, bin aber auf keine adäquate Lösung gekommen. Vielen Dank.
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Fr 27. Jul 2007, 16:48

wenn du die navigationUniversell verwendest (siehe signatur), dann hast du das problem schon gelöst. die dröselt nämlich standardmässig den kategoriebezeichner auf:

der kategoriebezeichner Suche$$$meinBild.png wird dabei in {name1} und {name2} aufgelöst.

in der maske kannst du diese platzhalter dann verwenden.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Beitrag von nicnac » Fr 27. Jul 2007, 17:00

kummer hat geschrieben:wenn du die navigationUniversell verwendest (siehe signatur), dann hast du das problem schon gelöst. die dröselt nämlich standardmässig den kategoriebezeichner auf:

der kategoriebezeichner Suche$$$meinBild.png wird dabei in {name1} und {name2} aufgelöst.

in der maske kannst du diese platzhalter dann verwenden.
Danke für den Tipp!
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 27. Jul 2007, 17:17

Und ich meinte, dass Du als Klasse z.B. "class".$data['idcat'] verwendest (also statt class="contact" wäre es z.B. class="class".$data['idcat']).

Du kannst natürlich auch das Modul verwenden (denn für die andere Lösung musst Du eben für jede interne Kategorie-ID eine CSS-Klasse anlegen).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Beitrag von nicnac » Fr 27. Jul 2007, 17:22

HerrB hat geschrieben:Und ich meinte, dass Du als Klasse z.B. "class".$data['idcat'] verwendest (also statt class="contact" wäre es z.B. class="class".$data['idcat']).

Du kannst natürlich auch das Modul verwenden (denn für die andere Lösung musst Du eben für jede interne Kategorie-ID eine CSS-Klasse anlegen).
Ah. Das habe ich jetzt auch verstanden. ;-)
Danke auch für Deinen Tipp.
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

Gesperrt