mit php eine Klasse setzen funktioniert nicht.

  • Hi, Ich habe fogende Situatuon. Ich habe meine Navigation ausgelagertm, und möchte, dass die Unterseite, jeweils die Schriftfarbe des Menüpunkts, von dem sie ausgeht schwarz färbt. Also habe ich eine class namens selected in meinem style.css definiert. Nun habe ich in der ausgelagerten Navigation, die class zum test eingesetzt. Ergebnis es funktioniert. Da aber natürlich nur der richtige Menüpunkt schwarz sein soll, wird es später daraufhinauflaufen, dass ich eine Variable in der Unterseite abfrage, und anhand derer den schwarz zu färbenden Menüpunkt kennzeichne sprich, ich schreibe mit php eine if anweisung, welche wenn die Variable übereinstimmt, den Menüpunkt schwarz färbt. hier ein beispiel, wie meine Navigation aufgebaut ist, und wo die classe steht (immoment nur bei Tutorials eingefügt zum test)-> so funktioniert es, d.h. Tutorials ist immer schwarz (logischer weise)

    Nun kommt das php ins Spiel, ich habe wie gesagt auf der Unterseite eine Variable namens $category, welche ich in dem Fall den Wert tut zugefügt habe. Es müsste jetzt ein php-part eingefügt werden, der abfragt, ob die Variable §category den Wert tut hat, und wenn ja, dass dann die class gesetzt wird. Das erste Problem taucht nun schon auf, wenn ich mit php die class setzen will. Also ohne if, sondern nur setzen. Ich habe nach viel recherschieren die verschiedensten Sachen probiert, aber im großen und ganzen sollte es zumindestens entweder so:

    PHP
    <?php
        echo 'class= "selected"'
        ?>

    oder so:

    PHP
    <?php
        echo "class= /"selected/""
        ?>

    gehen. Das Ergebnis, ist aber, dass nichts passiert.
    Was vlt jemand eine andere Möglichkeit, wie man den genutzen Menüpunkt markiert, oder mit php die class hinzufügen kann?

    MFG

  • diesen code hatte ich auch geschrieben gehabt, das ergebnis ist folgendes wenn dus mal sehen willst.
    dein code nochmal eingefügt:
    man beachte dieses Zeichen: ">" auf der rechten seite.

    wie es aussehen sollte (classe wurde einfach ohne php - code eingesetzt)

    die schrift ist weiß und der pfeil ist unter tutoriasls.

    Einmal editiert, zuletzt von aragonthebest (23. Juni 2012 um 16:15)

  • Mit Bildern kann man nichts anfangen. Den aktuellen Quellcode und den Link zur Seite könnten wir gebrauchen.

  • Ok. Also die Testseite heißt: http://www.webtest.de.ht (<-sehr originell :) ) - sollten fehlermeldungen kommen, ich weiß nicht woran es liegt, mal gehts mal nicht, auch wenn ich nichts ändere. VLT liegts auch an mir. kp- die seite wird aber mehr oder weniger richtig angezeigt.
    Da es aufgrund dieses anzeigefehler durch das ">"-Zeichen zu verschiebung des Untermenüs kommt, lasst sich die einzige verlinkte Unterseite nicht mehr anklicken. Aus diesem grund hier der Link: http://www.webtest.de.ht/C4DTUT.php

    den Quelltext, der Navigation wie er am schluss sein sollte theoretisch (und im moment auch praktisch:)-bei einem Vergleich des quelltextes mit dem quelltext oben, sollte auffallen, dass ich die unternavigation wieder eingelagert habe.

    der Quelltext der Unterseite "C4DTUT" ist:

    PHP
    <?php
          $category['tut'];
          $title['Cinema 4D'];
          $metadescription = 'In dieser Kategorie befinden sich Tutorials für Cinema 4D.';
          include('overallheader.php');
    
          include('overallfooter.php');
          $TBS->LoadTemplate('C4DTUT.tpl', FALSE);
          $TBS->Show();
        ?>

    und jetzt noch das style.css (der bereich der Navigation)

    4 Mal editiert, zuletzt von aragonthebest (23. Juni 2012 um 16:53)

  • Da wirst du mal nachsehen müssen, wie du in dein Template/CMS-System Variablen einbauen kannst. Dein Menü wird nur durch den Template-Parser gejagt und deshalb steht der PHP-Code am Ende im HTML-Code

  • ok, ich bin sowieso grad dabei von diesem tamplete sytem wegzukommen. Es gibt 0 Support dafür, und das sollte eigentlich alles auch mit php und der include funktion gehen oder?

    oder meinst du, dass ich den php code in eine Variable meiner tamplate engine scheiben soll?

  • Wenn du vom Template-System weg willst, dann mach das. Ich würde dann keine Zeit mehr in dieses Problem investieren.

  • ich bin weg vom template system, aber es klappt trotzdem nicht :(

    ich werd jetzt nochmal ein bisschen rumprobieren (immerhin ist der Fehler weg, das ">" <-dieses Zeichen; alles verschoben hat weil, wie du mir erklärt hast, der php code durch das template gejagt wurde und dabei verloren gegengen ist. Wahrscheinlich ist es irgendein klitzekleiner Fehler. Mal sehen. Vielen Dank für deine hilfe übrigens.

    Das ist der Code der index.php

    PHP
    <?php
          $title = 'Home';
          $metadescription = 'Dies ist die Startseite.';
          include('overallheader.php');
          include('indexcontent.php');
          include('overallfooter.php');
    
        ?>

    Das ist der Code der Unterseite:

    PHP
    <?php
          $category['tut'];
          $title['Cinema 4D'];
          $metadescription = 'In dieser Kategorie befinden sich Tutorials für Cinema 4D.';
          include('overallheader.php');
          include('C4DTUTcontent.php');
          include('overallfooter.php');
      ?>

    in overallheader.php wird die navi geladen. Wie man sieht habe ich in der unterseite die Variable $category deklariert.

    Nun kommt der Navigationsteil auf die Menüpunkte Home und Tutorials reduziert.

    Außerdem wird der Title nicht angezeigt, obwohl die Variable $title unter der Variable $category (oder über) deklariert wurde und hier eingesetz (ebenfalls ein Ausschnitt aus der overallheader.php

    PHP
    <head>
          <title><?php $title ?></title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          <meta name="Description" content="<?php $description ?>" />
          <link rel="stylesheet" type="text/css" href="style.css" media="screen" />
        </head>

    3 Mal editiert, zuletzt von aragonthebest (23. Juni 2012 um 17:54)