Ankündigung

Einklappen
Keine Ankündigung bisher.

Aktiver Menüpunkt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Aktiver Menüpunkt

    Hallo zusammen,
    ich hoffe, dass nicht alle beim Karneval sind und mir vielleicht jemand helfen kann:
    Bin PHP-Laie, möchte aber trotzdem meine per CSS gestaltete Navigation mit einer PHP-Funktion bereichern, die den Menüpunkt der jeweils aufgerufenen Seite durch z.B. eine andere Farbe hervorhebt.
    Habe schon in anderen Foren gelesen, dass das per PHP relativ clever zu lösen ist, habe aber keine Ahnung, wie man das macht.
    Übrigens:
    Meine Navigation wird dynamisch in die jeweiligen Seiten eingebunden (arbeite mit CM-System webEdition).

    Bin für jeden Hinweis dankabr.

    Gruß
    skipper

  • #2
    Was du mit dem dynamisch erzeugt aussagen willst ist mir schleierhaft.

    zum problem:
    wenn du die aktuelle seite nur als text ausgeben willst:
    den Link in einen if-else block schreiben und im if nachschlagen, ob die entsprechende seite die aktuell offene ist. Realisierbar ist das über eine Statusvariable(am Seitenanfang gesetzt!?!) mit einem eindeutigen Wert, z.b. dem kompletten seitennamen.
    PHP-Code:
     //ungetestet
    $site_name="test.php?t=1b";
    if(
    $site_name=="test.php?t=1b")
    {
    echo 
    'link';
    }
    else
    {
    echo 
    '<a href="test.php?t=1b">link</a>';

    wenn du das aussehen des links nur ändern willst:
    ein array mit dem normalen aussehen anlegen und mithilfe eines einiger if's oder eines switch-case über die statusvariable den entsprechenden array-eintrag für den link ändern.
    PHP-Code:
     //ungetestet
    $site_name="test.php?t=b";
    $array_look = array('green''green');
    if(
    $site_name=="test.php?t=a")   $array_look[0] = red;
    if(
    $site_name=="test.php?t=b")   $array_look[1] = red;

    echo 
    '<a href=""><font color="'.$array_look[0].'">link1</font></a>
    <a href=""><font color="'
    .$array_look[1].'">link2</font></a>'
    Karteikasten
    "Es gibt auch Linux-Aussteiger. Aber die Rückfallquote steigt mit jeder Win-Version." - Walter Saner in de.newusers.questions

    Kommentar


    • #3
      Aktiver Menüounkt

      Hallo Drache,
      vielen Dank für deine Antwort.
      Mit dynamisch meinte ich, dass die Navigation beim Seitenaufruf includiert wird.

      Mit deinem Script komme ich leider gar nicht klar, da ich völliger Newbie bin.
      Aber in einem anderen Forum habe ich folgende Anweisung gesehen (die aber bei mir leider nicht funktioniert, weil ich wohl irgendwas falsch mache):

      $scriptname = $_SERVER['PHP_SELF'];

      <a href="./index.php"<?php if($scriptname == 'index.php'){ echo ' class="selected"'; } ?>>Home</a>

      Was muß ich wo und wie einbinden?

      Viellicht kannst du mir damit auf die Sprünge helfen, wäre super.
      Wie gesagt:
      Ich will nur das Aussehen des Naviagtionspunktes über die CSS-Klasse .selected ändern.

      Vielen Dank schon mal.
      skipper

      Kommentar


      • #4
        $scriptname = $_SERVER['PHP_SELF']; schreibt den scriptnamen in $scriptname. Diesen "Befehl" solltest du auf jeder Inhaltsseite ganz oben einbauen, bevor du das inhaltsverzeichnis inkludierst.

        dein inhaltsverzeichnis sieht vermutlich so aus (ohne strukturtags o.ä.):
        PHP-Code:
        <a href="link1.php">link1</a>
        <
        a href="link2.php">link2</a
        da fügst du dann in jedes a Tag die Anweisung <?php if($scriptname == 'seitenname'){echo 'class = "selected"';} ?> ein. wobei seitenname für den namen der seite steht. sieht dann so aus:

        PHP-Code:
        <a href="link1.php" <?php if($scriptname=="link1.php"){echo 'class="selected"';}?>>link1</a>
        <a href="link2.php" <?php if($scriptname=="link2.php"){echo 'class="selected"';}?>>link2</a>
        ich hoffe mal, dass das soweit verständlich ist.

        PS: solltest du es nicht wirklich verstanden haben oder das script immer noch nicht tun, würd ich dir empfehlen, nen auszug aus deinem inhaltsverzeichnis zu posten.
        Karteikasten
        "Es gibt auch Linux-Aussteiger. Aber die Rückfallquote steigt mit jeder Win-Version." - Walter Saner in de.newusers.questions

        Kommentar


        • #5
          Funktioniert leider nicht.
          Folgendes habe ich gemacht.
          Auf der Inhaltsseite:

          <body>
          <?
          $scriptname = $_SERVER['PHP_SELF'];
          ?>

          Und im Menü:

          <a href="/kontakt/kontakt.php" class="heinemann" <?php if($scriptname == 'kontakt'){echo 'class = "he_selected"';} ?>>Kontaktformular</a>

          Ist da irgendwo ein Tippfehler oder warum klappt es nicht?

          Kommentar


          • #6
            als scriptname wird der komplette ausdruck nach der domain bezeichnet.
            bsp: http://www.versuch1234.de/test/index.php?asdfgh
            dann ist /test/index.php der scriptname.

            Tip: falls du nicht weist, was in der variable drinsteht, oder nicht das passiert, was du erwartest, solltest du die variable mal mit var_dump($variable); (o.a.) ausgeben.

            Falls du aber lieber kürzere bezeichner bevorzugst (also sowas:
            <a href="/kontakt/kontakt.php" class="heinemann" <?php if($scriptname == 'kontakt'){echo 'class = "he_selected"';} ?>>Kontaktformular</a>), dann tauscht du $_SERVER['PHP_SELF'] durch einen bezeichner deiner Wahl aus

            also,
            entweder so:

            PHP-Code:
            <body>
            <?
            $scriptname = $_SERVER['PHP_SELF']; 
            ?>
            PHP-Code:
            //Und im Menü:

            <a href="/kontakt/kontakt.php" class="heinemann" <?php if($scriptname == '/kontakt/kontakt.php'){echo 'class = "he_selected"';} ?>>Kontaktformular</a>
            oder so:
            edit: $scriptname müsste dann in jedem dokument mit einem anderen wert belegt werden
            PHP-Code:
             <body>
             <?
             $scriptname = 'kontakt'; 
             ?>
            PHP-Code:
            //Und im Menü:
             
             <a href="/kontakt/kontakt.php" class="heinemann" <?php if($scriptname == 'kontakt'){echo 'class = "he_selected"';} ?>>Kontaktformular</a>
            Karteikasten
            "Es gibt auch Linux-Aussteiger. Aber die Rückfallquote steigt mit jeder Win-Version." - Walter Saner in de.newusers.questions

            Kommentar


            • #7
              Das funktioniert nicht, weil $_SERVER['PHP_SELF'] nicht nur "kontakt" zurückgibt, sondern "/kontakt/kontakt.php". Es gibt immer den relativen Pfad zum Document root zurück. Wenn du das ganze noch mit basename() verbindest, wird nurnoch "kontakt.php" angegeben.
              PHP-Code:
              $scriptname basename($_SERVER['PHP_SELF']); 
              Wenn du nur PHP-Dateien hast, kannst du über basename auch noch das ".php" wegmachen, dann würde deine Abfrage stimmen. Schau einfach mal hier nach: PHP: basename - Manual

              EDIT: @Drache: Wie soll das funktionieren, wenn er die zweite Variante benutzt? Dann wird ja immer die Seite "kontakt.php" als aktiver Menüpunkt angezeigt, da das ja alles andere als dynamisch ist.

              Kommentar


              • #8
                @Montellese: ich ging davon aus, dass in jedem script diese variable mit einem anderen wert belegt wird.
                Karteikasten
                "Es gibt auch Linux-Aussteiger. Aber die Rückfallquote steigt mit jeder Win-Version." - Walter Saner in de.newusers.questions

                Kommentar


                • #9
                  Aktiver Menüpunkt

                  Hallo Drache und Montellese,
                  da ist irgendwie ein Riesenwurm drin:
                  Habe alle drei Möglichkeiten versucht, aber nichts hat funktioniert.

                  Deshalb hier die Beiden Dateien.

                  Navigation:
                  <link href="../css/basic.css" type="text/css" rel="stylesheet" media="all" />

                  <table width="184" border="0" cellspacing="0" cellpadding="0" height="500">
                  <tr>
                  <td valign="top" width="175" background="../../layoutimages/infocenter/hg_navi_oben_links.gif">
                  <div id="vnavigation" align="left">


                  <!-- NaviTable -->

                  <table width="180" border="0" cellspacing="0" cellpadding="0" height="130">
                  <tr height="10">
                  <td width="10" height="10"></td>
                  <td height="10"></td>
                  </tr>
                  <tr height="20">
                  <td width="10" height="20"></td>
                  <td valign="top" height="20">
                  <div align="left">

                  <a href="/kontakt/index.php" class="kont">Kontakt</a></div>
                  </td>
                  </tr>
                  <tr height="10">
                  <td width="10" height="10"></td>
                  <td height="10"></td>
                  </tr>
                  <tr>
                  <td width="10"></td>
                  <td valign="top">
                  <a href="#" class="heinemann">Heinemann-Au&szlig;endienst</a><br />

                  <a href="#" class="heinemann">Heinemann-Innendienst</a><br />

                  <a href="#" class="heinemann">Service-Point</a><br />

                  <a href="#" class="heinemann">GC-Fachgro&szlig;handel</a><br />

                  <a href="#" class="heinemann">Pfeffer+Mey<br />

                  Fachgro&szlig;handel</a><br />

                  <a href="/kontakt/anschrift.php" class="heinemann">Anschrift</a><br />



                  <a href="/kontakt/kontakt.php" class="heinemann" <?php if($scriptname == '/kontakt/kontakt.php'){echo 'class = "he_selected"';} ?>>Kontaktformular</a><br />




                  <a href="/kontakt/impressum.php" class="heinemann">Impressum</a><br />
                  </td>
                  </tr>
                  </table>


                  <!-- /NaviTable -->





                  </div>
                  </td>
                  <td valign="top" width="175"><img src="../../layoutimages/infocenter/hg_navi_oben_rechts.gif" alt="" height="500" width="175" border="0" /></td>
                  </tr>
                  </table>

                  Vollständige Seite:
                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

                  <html xmlns="http://www.w3.org/1999/xhtml">

                  <head>
                  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
                  <title>heinemann</title>
                  <link href="/css/basic.css" type="text/css" rel="stylesheet" media="all" />

                  <link rel="shortcut icon" href="/layoutimages/favicon.ico" >



                  </head>



                  <body>
                  <?
                  $scriptname = $_SERVER['PHP_SELF'];
                  ?>

                  <div align="center">





                  <!-- HEADER -->


                  <we:include type="template" id="21" />


                  <!-- /HEADER -->


                  <!-- BODY -->

                  <table width="990" border="0" cellspacing="0" cellpadding="0" bgcolor="white">
                  <tr height="600">
                  <td valign="top" width="355" height="600" background="/layoutimages/infocenter/hg_navi_unten_breit.gif">


                  <!-- NAVI -->

                  <we:include type="template" id="116" />

                  <!-- /NAVI -->

                  </td>

                  <td valign="top" height="600">


                  <!-- CONTENT -->


                  <table width="492" border="0" cellspacing="0" cellpadding="0" bgcolor="white">

                  <!-- PATHWAY -->

                  <we:include type="template" id="48" />

                  <!-- /PATHWAY -->
                  <tr>

                  <td width="150"><img src="../layoutimages/alle/spacer.gif" alt="" height="32" width="150" border="0" /></td>
                  <td width="15"></td>
                  <td><img src="../layoutimages/alle/spacer.gif" alt="" height="32" width="291" border="0" /></td>
                  <td width="20"></td>
                  <td width="158"><img src="../layoutimages/alle/spacer.gif" alt="" height="60" width="158" border="0" /></td>
                  <td width="24"></td>
                  </tr>
                  <tr height="65">

                  <td colspan="5" align="left" valign="top" height="65">
                  <div align="left">
                  <span class="headheinemann"><we:input type="text" name="head" size="61" bgcolor="white" /></span><br />
                  <span class="subheadheinemann"><we:textarea name="subhead" cols="60" rows="3" width="500" height="60" bgcolor="white"/></span></div>
                  </td>
                  <td width="24" height="65"></td>
                  </tr>
                  <tr height="395">

                  <td class="text" colspan="6" valign="top" height="395">
                  <div align="left">

                  <span class="text"><we:textarea wysiwyg="true" name="text" cols="60" rows="20" autobr="true" importrtf="true" width="630" height="300" bgcolor="white" html="true" inlineedit="true" /></span></div>
                  </td>
                  </tr>
                  <tr>

                  <td width="150"></td>
                  <td width="15"></td>
                  <td></td>
                  <td width="20"></td>
                  <td width="158"></td>
                  <td width="24"></td>
                  </tr>
                  </table>

                  <!-- /CONTENT -->


                  </td>
                  </tr>
                  </table>

                  <!-- /BODY -->


                  <!-- FOOTER -->

                  <we:include type="template" id="47" />

                  <!-- /FOOTER -->


                  </div>

                  </body>

                  </html>

                  Vielen Dank für eure Bemühungen.

                  Kommentar


                  • #10
                    Aktiver Menüpunkt

                    Hallo zusammen,
                    da scheint irgendwie ein Riesenwurm drin zu sein. Habe alle drei Vorschläge ausprobiert, aber nichts hat geklappt.
                    Vor ca. 3 Stunden habe ich den Code für die Navi und für die Komplettseite gepostet, kam aber die Meldung dass erst ein Moderator die Nachricht freigeben muß. Darauf warte ich immer noch. Deshalb hier nur mal der Code für die Navigation:

                    <link href="../css/basic.css" type="text/css" rel="stylesheet" media="all" />

                    <table width="184" border="0" cellspacing="0" cellpadding="0" height="500">
                    <tr>
                    <td valign="top" width="175" background="../../layoutimages/infocenter/hg_navi_oben_links.gif">
                    <div id="vnavigation" align="left">


                    <!-- NaviTable -->

                    <table width="180" border="0" cellspacing="0" cellpadding="0" height="130">
                    <tr height="10">
                    <td width="10" height="10"></td>
                    <td height="10"></td>
                    </tr>
                    <tr height="20">
                    <td width="10" height="20"></td>
                    <td valign="top" height="20">
                    <div align="left">

                    <a href="/kontakt/index.php" class="kont">Kontakt</a></div>
                    </td>
                    </tr>
                    <tr height="10">
                    <td width="10" height="10"></td>
                    <td height="10"></td>
                    </tr>
                    <tr>
                    <td width="10"></td>
                    <td valign="top">
                    <a href="#" class="heinemann">Heinemann-Au&szlig;endienst</a><br />

                    <a href="#" class="heinemann">Heinemann-Innendienst</a><br />

                    <a href="#" class="heinemann">Service-Point</a><br />

                    <a href="#" class="heinemann">GC-Fachgro&szlig;handel</a><br />

                    <a href="#" class="heinemann">Pfeffer+Mey<br />

                    Fachgro&szlig;handel</a><br />

                    <a href="/kontakt/anschrift.php" class="heinemann">Anschrift</a><br />



                    <a href="/kontakt/kontakt.php" class="heinemann" <?php if($scriptname == '/kontakt/kontakt.php'){echo 'class = "he_selected"';} ?>>Kontaktformular</a><br />




                    <a href="/kontakt/impressum.php" class="heinemann">Impressum</a><br />
                    </td>
                    </tr>
                    </table>


                    <!-- /NaviTable -->





                    </div>
                    </td>
                    <td valign="top" width="175"><img src="../../layoutimages/infocenter/hg_navi_oben_rechts.gif" alt="" height="500" width="175" border="0" /></td>
                    </tr>
                    </table>

                    Kommentar


                    • #11
                      Hallo zusammen,
                      da scheint irgendwie ein Riesenwurm drin zu sein. Habe alle drei Vorschläge ausprobiert, aber nichts hat geklappt.
                      Vor ca. 3 Stunden habe ich den Code für die Navi und für die Komplettseite gepostet, kam aber die Meldung dass erst ein Moderator die Nachricht freigeben muß. Darauf warte ich immer noch.
                      Kann ich die Dateien per E-Mail schicken?

                      Danke und Gruß
                      skipper

                      Kommentar


                      • #12
                        Muss von einem Mod freigegeben werde? Hmm das kann dauern.

                        Poste dein Script doch hier: quakenet:#php - nopaste

                        Kommentar


                        • #13
                          Hallo,
                          hier das Template für die Navi:

                          <link href="../css/basic.css" type="text/css" rel="stylesheet" media="all" />

                          <table width="184" border="0" cellspacing="0" cellpadding="0" height="500">
                          <tr>
                          <td valign="top" width="175" background="../../layoutimages/infocenter/hg_navi_oben_links.gif">
                          <div id="vnavigation" align="left">


                          <!-- NaviTable -->

                          <table width="180" border="0" cellspacing="0" cellpadding="0" height="130">
                          <tr height="10">
                          <td width="10" height="10"></td>
                          <td height="10"></td>
                          </tr>
                          <tr height="20">
                          <td width="10" height="20"></td>
                          <td valign="top" height="20">
                          <div align="left">

                          <a href="/kontakt/index.php" class="kont">Kontakt</a></div>
                          </td>
                          </tr>
                          <tr height="10">
                          <td width="10" height="10"></td>
                          <td height="10"></td>
                          </tr>
                          <tr>
                          <td width="10"></td>
                          <td valign="top">
                          <a href="#" class="heinemann">Heinemann-Au&szlig;endienst</a><br />

                          <a href="#" class="heinemann">Heinemann-Innendienst</a><br />

                          <a href="#" class="heinemann">Service-Point</a><br />

                          <a href="#" class="heinemann">GC-Fachgro&szlig;handel</a><br />

                          <a href="#" class="heinemann">Pfeffer+Mey<br />

                          Fachgro&szlig;handel</a><br />

                          <a href="/kontakt/anschrift.php" class="heinemann">Anschrift</a><br />



                          <a href="/kontakt/kontakt.php" class="heinemann" <?php if($scriptname == '/kontakt/kontakt.php'){echo 'class = "he_selected"';} ?>>Kontaktformular</a><br />




                          <a href="/kontakt/impressum.php" class="heinemann">Impressum</a><br />
                          </td>
                          </tr>
                          </table>


                          <!-- /NaviTable -->





                          </div>
                          </td>
                          <td valign="top" width="175"><img src="../../layoutimages/infocenter/hg_navi_oben_rechts.gif" alt="" height="500" width="175" border="0" /></td>
                          </tr>
                          </table>

                          und hier das Template für die komplette Seite:

                          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

                          <html xmlns="http://www.w3.org/1999/xhtml">

                          <head>
                          <meta http-equiv="content-type" content="text/html;charset=utf-8" />
                          <title>heinemann</title>
                          <link href="/css/basic.css" type="text/css" rel="stylesheet" media="all" />

                          <link rel="shortcut icon" href="/layoutimages/favicon.ico" >



                          </head>



                          <body>
                          <?
                          $scriptname = $_SERVER['PHP_SELF'];
                          ?>

                          <div align="center">





                          <!-- HEADER -->


                          <we:include type="template" id="21" />


                          <!-- /HEADER -->


                          <!-- BODY -->

                          <table width="990" border="0" cellspacing="0" cellpadding="0" bgcolor="white">
                          <tr height="600">
                          <td valign="top" width="355" height="600" background="/layoutimages/infocenter/hg_navi_unten_breit.gif">


                          <!-- NAVI -->

                          <we:include type="template" id="116" />

                          <!-- /NAVI -->

                          </td>

                          <td valign="top" height="600">


                          <!-- CONTENT -->


                          <table width="492" border="0" cellspacing="0" cellpadding="0" bgcolor="white">

                          <!-- PATHWAY -->

                          <we:include type="template" id="48" />

                          <!-- /PATHWAY -->
                          <tr>

                          <td width="150"><img src="../layoutimages/alle/spacer.gif" alt="" height="32" width="150" border="0" /></td>
                          <td width="15"></td>
                          <td><img src="../layoutimages/alle/spacer.gif" alt="" height="32" width="291" border="0" /></td>
                          <td width="20"></td>
                          <td width="158"><img src="../layoutimages/alle/spacer.gif" alt="" height="60" width="158" border="0" /></td>
                          <td width="24"></td>
                          </tr>
                          <tr height="65">

                          <td colspan="5" align="left" valign="top" height="65">
                          <div align="left">
                          <span class="headheinemann"><we:input type="text" name="head" size="61" bgcolor="white" /></span><br />
                          <span class="subheadheinemann"><we:textarea name="subhead" cols="60" rows="3" width="500" height="60" bgcolor="white"/></span></div>
                          </td>
                          <td width="24" height="65"></td>
                          </tr>
                          <tr height="395">

                          <td class="text" colspan="6" valign="top" height="395">
                          <div align="left">

                          <span class="text"><we:textarea wysiwyg="true" name="text" cols="60" rows="20" autobr="true" importrtf="true" width="630" height="300" bgcolor="white" html="true" inlineedit="true" /></span></div>
                          </td>
                          </tr>
                          <tr>

                          <td width="150"></td>
                          <td width="15"></td>
                          <td></td>
                          <td width="20"></td>
                          <td width="158"></td>
                          <td width="24"></td>
                          </tr>
                          </table>

                          <!-- /CONTENT -->


                          </td>
                          </tr>
                          </table>

                          <!-- /BODY -->


                          <!-- FOOTER -->

                          <we:include type="template" id="47" />

                          <!-- /FOOTER -->


                          </div>

                          </body>

                          </html>

                          Danke!

                          Kommentar

                          Lädt...
                          X