Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet

    mike101

    • Fördermitglied
    • Beiträge: 17
    Re: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet
    Antwort #45 am: 16. Dezember 2013, 17:22:41
    hab nun doch die Codes eingebaut bekommen.

    Kriege aber nun folgende Fehlermeldung, wenn ich im Adminbereich eine Kategorie aufrufen will

    Error: The TEXTAREA with id or name set to "categories_description[2]" was not found

    DanDo

    • Neu im Forum
    • Beiträge: 18
    Re: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet
    Antwort #46 am: 18. Dezember 2013, 22:58:42
    Gibt es eigentlich mittlerweile eine Lösung ? Ich habe alles wie beschrieben geändert kann auch zwischen 2 css wählen, aber es passiert nichts, wenn ich ich die eine CSS abänder.

    mike101

    • Fördermitglied
    • Beiträge: 17
    Re: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet
    Antwort #47 am: 19. Dezember 2013, 09:38:53
    nach Stunden Fummelei: habs hinbekommen.

    Fazit:
    -  Tolles Plugin
    -  Die Anleitung beeinhaltet für alle 3 Dateien, die modifiziert werden sollen Fehler.

    Ich hab nun nach stundenlanger Fummelei jedoch keine Lust mehr habe das hier neu reinzustellen.
    Ich biete jedoch an, dass man mich per PM kontaktiert. Ich schick dann gerne die 3 richtigen Dateien für 1.05d per mail rüber

    @ Dando: Es ändert sich deshalb nichts, weil du wahrscheinlich nicht die Datenbank wie in Liesmich.txt verändert hast. ( Der Teil der Anleitung stimmt nämlich)

    DanDo

    • Neu im Forum
    • Beiträge: 18
    Re: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet
    Antwort #48 am: 19. Dezember 2013, 11:05:39
    Hallo Mike101,

    Interesse habe ich schon, aber ich benutze 1.06 funktioniert das dann auch ?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.975
    • Geschlecht:
    Re: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet
    Antwort #49 am: 20. Dezember 2013, 01:17:01
    ...
    Ich hab nun nach stundenlanger Fummelei jedoch keine Lust mehr habe das hier neu reinzustellen.
    Ich biete jedoch an, dass man mich per PM kontaktiert. Ich schick dann gerne die 3 richtigen Dateien für 1.05d per mail rüber
    ...

    So arbeiten wir hier in der Community aber nicht.
    Der der die ursprüngliche Anleitung zur Verfügung gestellt hat, hat auch nicht so argumentiert sondern sie allen zur Verfügung gestellt.
    Das was du "per mail rüber" schicken kannst, kannst du auch hier allen zur Verfügung stellen.

    Gruß,
    noRiddle

    alufax

    • Neu im Forum
    • Beiträge: 18
    • Geschlecht:
    Re: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet
    Antwort #50 am: 20. Dezember 2013, 13:04:01
    Hallo,

    ja es geht einwandfrei unter der 1.06.
    http://www.modified-shop.org/forum/index.php?topic=7235.15

    Grüße

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.975
    • Geschlecht:
    Re: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet
    Antwort #51 am: 20. Dezember 2013, 15:20:07
    Ich halte das ganze nach wie vor für zu aufwendig, zumal Core-Dateien und die DB verändert werden müssen.
    Meine Lösung für jede Seite dem body-tag eine ID und eine Klasse zu vergeben löst jedes Style-Problem über lediglich CSS. Jede Seite kann einzeln gestylt werden, außerdem auch pauschal alle Kategorie-Seiten, alle Produkt-Seiten, alle Content-Seiten...

    Die verlinkte Lösung ist leicht erweiterbar für alle Seiten.
    Hier nochmals ein Beispiel für alle erdenklichen Seiten:
    /includes/header.php)
    Code: PHP  [Auswählen]
    </head>
    <?php
    // ***** BOC implementation for body id and class, noRiddle *****
    $PATH_ID = '';
    $PATH_CLASS = '';
    $ID_PATH_ID = '';
    $CLASS_PATH_CLASS = '';
    if (strpos($PHP_SELF, 'index') && !isset($_GET['cPath']) && !isset($_GET['manufacturers_id'])) {
        $PATH_ID = 'start';
        //$PATH_CLASS = 'start';
    } elseif (isset($_GET['cPath'])) {
        $cP = preg_replace("#[^0-9_]#", '', $_GET['cPath']);
        $PATH_ID = 'cat';
        $PATH_CLASS = 'cat-'.$cP;
    } elseif (isset($_GET['manufacturers_id']) && !strpos($PHP_SELF, 'search_result')) {
        $mID = (int)$_GET['manufacturers_id'];
        $PATH_ID = 'man';
        $PATH_CLASS = 'man-'.$mID;
    } elseif (strpos($PHP_SELF, 'product_info')) {
        $pID = (int)$_GET['products_id'];
        $PATH_ID = 'prod';
        $PATH_CLASS = 'prod-'.$pID;
    } elseif (strpos($PHP_SELF, 'search_result')) {
        $sr = 'sr';
        $PATH_ID = $sr;
        //$PATH_CLASS = $sr;
    } elseif (isset($_GET['coID'])) {
        $coID = (int)$_GET['coID'];
        $PATH_ID = 'cont';
        $PATH_CLASS = 'cont-'.$coID;
    } elseif (strpos($PHP_SELF, 'account')) {
        $PATH_ID = 'acco';
    } elseif (strpos($PHP_SELF, 'shopping')) {
        $PATH_ID = 'shopp';
    } elseif (strpos($PHP_SELF, 'checkout_shipping')) {
        $PATH_ID = 'ch-shipp';
    } elseif (strpos($PHP_SELF, 'checkout_payment')) {
        $PATH_ID = 'ch-pay';
    } elseif (strpos($PHP_SELF, 'checkout_confirmation')) {
        $PATH_ID = 'ch-conf';
    }

    $ID_PATH_ID = $PATH_ID != '' ? ' id="'.$PATH_ID.'"' : '';
    $CLASS_PATH_CLASS = $PATH_CLASS != '' ? ' class="'.$PATH_CLASS.'"' : '';
    ?>
    <body<?php echo strstr($PHP_SELF, FILENAME_POPUP_IMAGE) ?  $ID_PATH_ID . $CLASS_PATH_CLASS . ' onload="resize();"' : $ID_PATH_ID . $CLASS_PATH_CLASS; ?>>
    <?php
    // ***** EOC implementation for body id and class, noRiddle *****

    Den Code für 'account' kann man noch verfeinern um /account.php von /create_account.php und /create_guest_account.php zu differenzieren.

    Nun kann man im Stylesheet z.B. eine Kategorieseite so ansprechen:
    (beispielhaft für den header)
    Code: CSS  [Auswählen]
    body.cat-XX header {
    background:transparent url(/img/SOUNDSO.jpg) left top no-repeat scroll;
    }

    oder alle Kategorieseiten:
    Code: CSS  [Auswählen]
    body#cat header {
    background:transparent url(/img/SOUNDSO.jpg) left top no-repeat scroll;
    }

    Am oben geposteten Code für die /includes/header.php lässt sich leicht erkennen wo der Code eingebettet werden müsste.
    (schließender head-tag bis body-tag)

    Gruß,
    noRiddle

    *NACHTRAG*
    Die Nutzung lediglich eines, nämlich des Standard-Stylesheets, hat auch den Vorteil, daß nicht für jede Seite ein anderes Sheet geladen werden muß. Einmal den Shop aufgerufen und das Stylesheet ist im Cache, für alle Seiten.

    mollvision

    • Schreiberling
    • Beiträge: 356
    • Geschlecht:
    Re: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet
    Antwort #52 am: 17. April 2017, 15:01:44
    Hallo zusammen,
    ich muss hier noch mal fragen.
    Ich komme hier leider nicht weiter. Evtl. habe ich was an den Augen  :-?

    Ich finde die Lösung von noRiddle klasse.
    Nur über css das Design ändern.  :thumbs:

    Es klappt soweit richtig gut - Nur möchte ich die Hauptkategorie per css ändern und wenn die Produkte in dieser Kategorie keine expliziten Änderungen benötigen soll sich diese Änderung auch auf die Produkte fortsetzen.

    Hier meine CSS:
    Code: CSS  [Auswählen]
    /* BEGINN - STYLEÄNDERUNGEN FÜR ALLE ERDENKLICHEN SEITEN - noRiddle
      Jede Seite kann einzeln gestylt werden, außerdem auch pauschal alle Kategorie-Seiten, alle Produkt-Seiten, alle Content-Seiten.
      Die verlinkte Lösung ist leicht erweiterbar für alle Seiten.
     */

     /* Eine Kategorieseite ansprechen: */
    body.cat-221 { background: #eee url(img/bg/header-221.jpg) no-repeat center top; }

    /* Eine Produktseite ansprechen: */
    body.prod-768 { background: #eee url(img/bg/header-221.jpg) no-repeat center top; }
    /* END - STYLEÄNDERUNGEN FÜR ALLE ERDENKLICHEN SEITEN - noRiddle */

    Nun möchte ich das alle Produkte in der Kategorie 221 das gleiche Headerimage haben.
    Sonst müsste ich jedes Produkt speziell einer class zuweisen (siehe oben prod-768 ist in cat-221).
    Denn bei:
    Code: CSS  [Auswählen]
    body#cat { background: #eee url(img/bg/header-221.jpg) no-repeat center top; }
    erhalten ALLE Kategorien das gleiche Headerimage.

    Muss der Code in der header.php angepasst werden oder sehe ich den Fehler nicht?
    @noRiddle
    Bitte schau Dir das noch mal an. Ich finde Deine Lösung mit Änderung an nur einer Core-Datei (includes/header.php) und mit sehr einfacher Erweiterung der stylesheet.css wirklich prima - Danke dafür!

    Die Shopversion um die es geht:
    modified eCommerce Shopssoftware v1.06 rev 4642 SP2 dated: 2014-08-12
    Datenbank Version: "MOD_1.0.6.0"

    Update auf neuere Shop-Version ist derzeit, wegen alter PHP Version (5.2.6-1+lenny16 (Zend: 2.2.0)) leider nicht möglich.

    Für ein Lösung bin ich wirklich dankbar.

    Besten Gruß Wolfgang

    PS: Da der letzte Eintrag von 2013 ist, könnte es evtl. sein das es bereits eine ganz andere Möglichkeit gibt.
    - und nein ich meine nicht das modul wo man per admin in Cat und Prod das css auswählen kann. Möchte schon bei dieser Möglichkeit bleiben.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.975
    • Geschlecht:
    Re: MODUL: pro (Unter-)Kategorie ein eigenes Stylesheet
    Antwort #53 am: 09. Juni 2017, 09:12:23
    Hallo mollvision.
    Falls das hier noch akut ist:
    Verstehe ich dich richtig, daß du alle Produkte in der Kategorie 221 mit dem selben Headerimage versehen möchtest und damit nicht das Listing (also die Kategorieansicht) sondern die Produkt-Einzelansicht meinst ?
    Wenn dies der Fall ist es nicht so einfach mit meiner Vorgehensweise.
    • ist die Kategorie zu der ein Produkt gehört in der Produkt-Einzelansicht nur in den SEO-URLs zu sehen und es fehlt ein GET-Parameter für die Kategorie in der Original-URL um eine Klasse vergeben zu können
      und
    • hat die 1.06 noch den sogenannten Kategoriesprung, was bedeutet, daß wenn ein Produkt in mehrere Kategorien verlinkt ist, für die SEO-URL die Kategorie mit der niedrigsten ID aus der DB geholt wird, egal ob man aus einer anderen Kategorie das Produkt aufgerufen hat.
      Es ist also schwer zu ermitteln zu welcher Kategorie das Produkt denn nun gehören soll.

    Man könnte eine Abfrage machen welche schaut ob das aufgerufene Produkt in der Einzelansicht in eine bestimmte Kategorie verlinkt oder nur dort vorhanden ist.
    Code: PHP  [Auswählen]
    ...
    } elseif (strpos($PHP_SELF, 'product_info')) {
        $cat_test_qu = xtc_db_query("SELECT categories_id FROM. "TABLE_PRODUCTS_TO_CATEGORIES." WHERE categories_id = '221' AND products_id = ".$_GET['products_id']);
        if(xtc_db_num_rows($cat_test_qu) == '1') {
            $pID = (int)$_GET['products_id'];
            $PATH_ID = 'prod';
            $PATH_CLASS = 'cat-221 prod-'.$pID;
        } else {
            $pID = (int)$_GET['products_id'];
            $PATH_ID = 'prod';
            $PATH_CLASS = 'prod-'.$pID;
        }
    } elseif {
    ...
    }

    Damit hätte man bei allen Produkten die in der Kategorie 221 sind noch die Klasse cat-221 vergeben und könnte somit im CSS stylen:
    Code: CSS  [Auswählen]
    .cat-221 DEIN_PRODUKT_HEADER_SELEKTOR {
        DEINE_STYLES
    }

    Oder man hat keine Produkte in mehere Kategorien verlinkt und macht die Query so:
    Code: PHP  [Auswählen]
         $cat_test_qu = xtc_db_query("SELECT categories_id FROM. "TABLE_PRODUCTS_TO_CATEGORIES." WHERE products_id = ".$_GET['products_id']);
        if(xtc_db_num_rows($cat_test_qu) == '1') {
            $cat_test = xtc_db_fetch_array($cat_test);
            $pID = (int)$_GET['products_id'];
            $PATH_ID = 'prod';
            $PATH_CLASS = 'cat-.$cat_test['categories_id'].' prod-'.$pID;
        } else {

    und hätte immer die Klasse cat-KATEGORIE_ID für die Kategorie in der das Produkt liegt.

    NICHT GETESTET !

    Gruß,
    noRiddle
    3 Antworten
    2956 Aufrufe
    13. Juli 2013, 17:32:07 von svenyo
    5 Antworten
    6615 Aufrufe
    02. Januar 2010, 13:25:58 von Tomcraft
    0 Antworten
    1848 Aufrufe
    09. August 2013, 21:43:50 von karabey
    8 Antworten
    3183 Aufrufe
    17. Oktober 2023, 18:56:23 von Etymos