PHP Code Frage: Alle Anzeigen bis hierhin

  • Hi,
    wenn ich in einer PHP Datei
    diese Ausgabe stehen habe
    echo "inkl. MwSt.";

    dann zeigt er mir das auf der Seite an...
    ich brauche aber den Code, dass er mir diese MwSt nur bis zu eine bestimmten Punkt anzeigt
    Beispiel:

    Zeile 1
    Zeile 2
    echo "inkl. MwSt."; ( bis hierhin anzeigen, MwSt wird in Zeile1 und 2 angezeigt.)
    Zeile 3 (ab hier nicht mehr anzeigen)

    Hat da einer einen Tipp ?
    Bin mit PHP nicht so Fitt

  • Geht das mal etwas genauer? Ich verstehe nur Bahnhof ;)

    Was heißt "bis zu eine bestimmten Punkt anzeigt" ?

    Was ist Zeile 1, 2 und 3 ?

    Warum wird die MwSt in Zeile 1 und 2 angezeigt, wenn das Echo doch zwischen 2 und 3 steht?

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Da ich kein PHP kann fallen mir auf die Begriffe schwer.

    Also:

    Mit Zeile 1 meinte ich, dort steht der Code der jeweiligen .php Datei.

    z.B...
    Zeile 1 = <?php
    Zeile 2 = if( $this->product->product_unit && VmConfig::get ( 'price_show_packaging_pricelabel' ) == 1 ) {
    Zeile 3 = echo "<strong>" . JText::_ ( 'COM_VIRTUEMART_CART_PRICE_PER_UNIT' ) . ' (' . $this->product->product_unit .
    Zeile 4 = echo "inkl. MwSt.";
    Zeile 5 = if( $this->product->prices["basePriceWithTax"] != $this->product->prices["salesPrice"] ) :
    usw..

    Auf der Hauptseite würde dann stehen
    30€
    inkl. MwSt.

    der "inkl. MwSt." Code soll aber nur bis max Zeile 4 angezeigt werden.. Weil ab Zeile 5 dann die Preise für die Händler eingetragen sind.
    Dort soll der "inkl. MwSt." nicht mehr angezeigt werden. Dummerweise steht jetzt überall der inkl. MwSt. auch bei den Händler und das soll nicht sein. Deswegen die Frage gibt es z.B. ein Code der sagt
    echo "inkl. MwSt." "STOP BIS HIERHIN UND NICHT WEITER ANZEIGEN";

    ich hoffe ich hab es jetzt ein wenig verständlicher rübergebracht.

  • Jep, mal den ganzen Block, vor allem den ganzen Bereich des "if( $this->product->product_unit && VmConfig::get ( 'price_show_packaging_pricelabel' ) == 1 ) {", also alles bis zum Ende "}".

    In Zeile 4 steht das Echo, das ist nun klar - mehr aber leider noch nicht.

    Zitat

    z.B. ein Code der sagt
    echo "inkl. MwSt." "STOP BIS HIERHIN UND NICHT WEITER ANZEIGEN";


    Ja, so was gibt es sicherlich. Wir müssen halt nur wissen was genau die "Bedingung" ist, ob nun mit oder ohne MwSt.

    Von Händler oder nicht Händler erkenne ich in dem Code auch nicht wirklich was ;)

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Also Endkunden sollen den MwSt sehen und Händler nicht
    Ich habe auch noch einen Versandkostenlink eingefügt.. der klappt, ist aber bestimmt nicht richtig gecodet.


    Muss ihn splitten.. gehen nur max 20.000 Zeichen

  • ach herrje... Zeile 4 ist gut gesagt, das ist Zeile 192 :)

    So, mal gekürzt und das entsprechende rausgenommen... Darum geht es ja wohl:

    So, das hilft so aber noch nicht direkt weiter. Woran erkennt man denn einen Privatkunden und woran einen Händler? Da muss ja irgendwas aus der DB kommen, das das unterscheidet. Und genau das brauchen wird.

    Aktuell wird die MwSt ja immer angezeigt.

    Wir brauchen also ein
    if(Wenn kein Händler, sondern ein normaler Kunde) {
    echo "inkl. MwSt.";
    }

    Und genau diese Bedingung ist nun die Frage. Woran weiß man / Du, welches Produkt mit MwSt angezeigt werden soll und welches ohne. Wenn das geklärt ist, dann kann man das sicherlich auch dem Script beibringen.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Hi..
    ich habe das jetzt anders gelöst.. danke für eure Hilfe.
    Ich zeige jetzt den Händlern den netto und den brutto Preis an.. fertig.

    Aber jetzt hab ich eine andere Frage..

    Wie bekomme ich den Preis ein wenig weiter nach rechts. Ich hab jetzt alles versucht.
    Da CSS auch nicht so zu meiner Stärke gehört hab ich mir diesen Code zusammengebastelt

    [ATTACH=CONFIG]92[/ATTACH]

    PHP
    div.yagendoo_flypage_contentbox div.PricesalesPrice    {
            font-size: 19px;
            font-weight: bold;
            line-height: 40px;
            text-align: left;
            background: url("../../_images/global/schlauch-blau.png") no-repeat !important;
  • Gut, so kann man es auch machen. Nur, wenn Du das nur bei den Händlern machst, dann musst Du doch wissen an was man selbigen erkennt?

    Die Preise kommen aus der Datenbank. Das Script weiß aber nicht, ob nun Händler oder nicht. Diese Info muss von was anderem kommen. Etwa zwei getrennten "Shops", einer für normale Kunden, einer für Händler. Hier gibt es also eine Trennung, nämlich die URL oder ein Parameter der gesetzt wird, Session oder was auch immer.

    Oder es gibt die Produkte immer doppelt. Einmal Produkt A für normale Kunden, einmal Produkt A für Händler. Dann sind das verschiedene Produkte, die entsprechend behandelt werden können. Aber auch hier müsste es eine Trennung bei URL / Kategorie / Session etc geben.

    Aber irgend eine Trennung / Unterscheidung muss es da geben, sonst kann man so etwas technisch gar nicht umsetzen. Also eine Unterscheidung die besagt, das der, der da gerade Seite 4 auf dem Monitor anschaut ein Händler ist oder eben nicht und das dann entsprechend dem Script mitteilt.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Ich nutze virtuemart und dort ist das zeuch in der Datenbank hinterlegt. Je nach Nutzer kann ich ihm dann ein Privat/Geschäftskonto einrichten.. aber wie gesagt, ich lasse es jetzt so. Will den Shop heute online stellen und die Lösung von mir passt soweit..
    hast du den Idee ? wegen der CSS Frage ?

  • Huch, die CSS-Frage war vorhin noch nicht da :)

    Aber nochmal kurz der Preis.

    Zitat

    Je nach Nutzer kann ich ihm dann ein Privat/Geschäftskonto einrichten


    Diese Info gab es bisher nicht. Das ist nämlich das Unterscheidungsmerkmal. Bisher dachte ich bei "Nutzer" immer an einen Shopbesucher, aber nicht an einen Kunden, der ein eingerichtetes Konto hat!

    Also, dann muss mein dem im Datensatz hinterlegt sein, dass er Geschäftskunde ist, keine Ahnung welche Tabellenspalte oder Variable, aber das ist wohl da. Genau das ist das, wonach man entscheiden könnte / muss. Wie gesagt, keine Ahnung wie das da heißt, aber ich tendiere in den Bereich "$this->user->irgendwas"

    CSS: So auf die Schnelle...
    Versuche es mal mit
    padding-left: 10px;

    eventuell auch einfach mit:
    text-align: center; (anstelle von "left")

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Jetzt muss ich nochma was fragen
    der Code

    Zitat

    style="text-align: left;"><span style="font-size: 10pt;"><a rel="title[Kostenloser Versand];width[500];height[500]" class="jcepopup" target="_blank" href="versandinformationen.html">Versandkostenfreie Lieferung</a><br /></span>

    soll ja auch in die .php mit rein.. hier ist es aber egal ob Händler oder Endverbaucher.
    Wenn ich den Code so einfüge funktioniert der Link und das Popup, nur ich bekomme eine Fehlermeldung meine Firebug und die bekommen andere Kunden ja auch.
    Muss die Zeile nicht auch mit "echo" oder so anfangen um den Textzeile richtig zu integrieren ?

  • Ja das kommt drauf an. Steht der Text zwischen den <?php ?> , also in einem PHP-Bereich, dann muss der mit Echo ausgegeben werden. Wenn der ohne Echo da steht, dann gibt es einen PHP-Error. Scheint also nicht so zu sein, sonst hättest Du nur einen weißen Bildschirm.

    Steht der im Template außerhalb von <?php ?>, dann braucht es kein echo. Außerhalb kannst Du HTML schreiben wie in jeder anderen .html auch.

    So, Du bekommt eine Meldung von FireBug. Welche denn?

    Am Anfang fehlt was, aber das war wohl Absicht, oder?

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Also der FF schreibt "JSON.parse: unexpected character Stopp-Nachrichten können im Panel Tab-Menü (de-)aktiviert werden." ich glaube es liegt an diesem Versandkostenlink.

    Ich hab dir mal den Code eingefügt..

  • Also mal vorab, ich schau es mir danach mal an - habs nur grad in der Zwischenablage.

    FireBug meldet durchaus Dinge, insbesondere bezüglich JSON. Ich bekomme z.B.

    Zitat

    nsIJSON.decode sollte nicht mehr verwendet werden. Bitte verwenden Sie JSON.parse stattdessen.


    Und das auf einer Seite, die nichts enthält. Das kommt da wohl von einem PlugIn, das JSON.parse verwendet.

    Bei Dir ist es eine andere Meldung, könnte aber auch in die Richtung gehen. War die Meldung vorher nicht da?

    Ansonsten natürlich auch beachten. Die Meldung bekommt man mit offener und aktiver FireBug-Console. Ein Normalsterblicher bekommt davon also nichts mit, wenn die Seite denn funktioniert.

    So, nun mal ansehen geh...

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Genau, bekomme den Fehler nur wenn FF offen ist.
    Wenn es so passt okay... aber nen sauberen Code ist auch nicht schlecht.
    Wenn dann richtig :)
    Also ich muss sagen du hast ech Plan.. ich muss mich in meiner freien Zeit auch mal mehr damit beschäftigen.