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: ANLEITUNG: Attributsystem mit jQuery (vermeidet Speicher-Fehler beim Einsatz vieler Artikelmerkmale)

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Hallo MrWhite.
    Jau, dein Modul wollte ich mir schon immer mal anschauen.
    Werde ich mal machen wenn ich Zeit habe.

    Der Vorteil der hier von mir geposteten Version für User die sich nicht so auskennen ist, daß es kaum Änderungen in Core-Dateien gibt, egtl. nur drei einfache Änderungen.

    Gruß,
    noRiddle

    MrWhite

    • Frisch an Board
    • Beiträge: 95
    • Geschlecht:
    Hey noRiddle
    Wünschenswert wäre es schon wenn du mein Modul mal installierst.
    Was das Thema Zeit angeht ist es auch in der installation einfacher geworden für V. 1.06,
    und sollte in gute 15 min. erledigt sein.
    Danach können wir gerne darüber diskutieren über die Standart-Attribute-Verwaltung, und dehren Erweiterungen wenn es dann noch sein muß!
    Gruß MrW

    MW

    • Fördermitglied
    • Beiträge: 418
    • Geschlecht:
    Hallo noRiddle,

    getestet in der letzten Version und funktioniert so wie du es im letzten Post mit den Codeänderungen von dir beschrieben hast.

    Danke für deine Arbeit  ;-)

    super-nailcenter.at

    • Fördermitglied
    • Beiträge: 44
    Jetzt auch mal ein großes Lob von mir - ich habe eben von Deiner Lösung (noRiddle) profitiert und stehe nicht an mich herzlich dafür zu bedanken! :thx:

    swinde

    • Neu im Forum
    • Beiträge: 6
    • Geschlecht:
    Auch von mir herzlichen Dank! Das Script hat mir den Tag gerettet!

    VG Steffen

    Stephs

    • Fördermitglied
    • Beiträge: 88
    • Geschlecht:
    Auch dank von mir. Es hat auch mich gerettet. Leider wurden bei PHP 5.4 und knapp 300 Attributen alles gelöscht beim Artikel, wenn man auf speichern geklickt hat.

    Nun geht es.

    Ladiva

    • Fördermitglied
    • Beiträge: 271
    Hallo,

    ich habe das Modul bei mir Installiert da ich ja mit den Attributen auch immer Probleme hatte.

    Ich habe da zwei Problemchen:

    Wenn ich die Attribute bearbeite und meinetwegen 10 aktive habe, dann speichert er alles ab dem 51. Bild immer noch nicht, aber ich kann dann immerhin die fehlenden Bilder einzeln noch hochladen.

    Aber was viel schlimmer ist: Klickt man aus Versehen zweimal auf den Button alle aktiven Attribute speichern, dann deaktiviert er die Attribute und löscht dadurch auch die Werte.

    Gruß

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Hast Du die aktuelle Version installiert? Attribute darfst Du dann nur noch im Artikel speichern nicht mehr im Artikelkatalog -> Attribut Verwaltung! Da greift die Erweiterung nicht, ist ja auch nicht dafür gedacht.

    Bei mir funktioniert es jetzt problemlos mit sehr vielen Werten.

    Ladiva

    • Fördermitglied
    • Beiträge: 271
    Ja, habe ich, und ich speichere Attribute nur in den Artikeln.

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Also bei mir in 1.06 R4642 funktioniert es problemlos.

    Was hast Du für eine Shopversion?

    Ladiva

    • Fördermitglied
    • Beiträge: 271
    Die 1.06

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Dann kann nur anderweitig beim Einbau was nicht stimmen.

    Thomas M.

    • Fördermitglied
    • Beiträge: 196
    Danke, funktioniert hervorragend (1.06r4642)!

    Gruß aus Wien, Thomas

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    ACHTUNG: Hier gibt es ein aktuelles Dateipaket für Shopversion 1.06: Klick mich!

    [...]
    Werde da demnächst noch ein Paketchen schnüren mit der kompletten Anleitung, damit man sich das nicht aus den letzten sechs Posts zusammensuchen muß.
    [...]

    Ich habe deine Beiträge mal zusammen getragen und hier die finale Anleitung aus den Beiträgen von noRiddle zusammen gestellt und in Beitrag 1 des Themas verlinkt.

    In /admin/new_attributes.php

    Unterhalb des Codes:

    Code: XML  [Auswählen]
    <script type="text/javascript" src="includes/general.js"></script>

    das hier einfügen:

    Code: XML  [Auswählen]
    <?php //BOC implement jQuery for buttons in /includes/modules/new_attributes_include.php, noRiddle ?>
    <script type="text/javascript" src="<?php echo '../templates/'.CURRENT_TEMPLATE.'/javascript/jquery.js';?>"></script>
    <script type="text/javascript">
        $(document).ready(function($) {
            $('.button_save, .view_attrib').show();
            $('input[type="checkbox"]').not(':checked').parent().parent().hide();
            var flag  = true;
            var $bsave = $('.button_save');
            var $vattr = $('.view_attrib');
            var $dthr = $('.dataTableHeadingRow');
            $dthr.css('cursor', 'pointer');

            $vattr.click(function() {
                var input_n_ch = $('input[type="checkbox"]').not(':checked');
                var input = input_n_ch.parent().parent();
                if (flag) {
                    input.show();
                    $vattr.html('Nur aktive Attribute anzeigen');
                    $bsave.html('Alle Attribute speichern');
                    $bsave.css('color', '#c00');
                    $dthr.css('cursor', 'default');
                    $dthr.removeClass('att-red att-green');
                    flag = false;
                } else {
                    input.hide();
                    $vattr.html('Alle Attribute anzeigen');
                    $bsave.html('Aktive Attribute speichern');
                    $bsave.css('color', '#060');
                    $dthr.css('cursor', 'pointer');
                    flag = true;
                }
            });

            $dthr.click(function() {
                var input_n_ch = $('input[type="checkbox"]').not(':checked');
                var ch_this = $(this).nextUntil('.dataTableHeadingRow').find(input_n_ch);
                var input = ch_this.parent().parent();
                var $className = $(this).attr('class');
                if (flag) {
                    input.toggle();
                    if ($className == 'dataTableHeadingRow att-green' || $className == 'dataTableHeadingRow') {
                        $(this).removeClass('att-green').addClass('att-red');
                    } else if ($className == 'dataTableHeadingRow att-red') {
                        $(this).removeClass('att-red').addClass('att-green');
                    }
                }
            });

            $('.button_save').click(function() {
                var input_n_ch = $('input[type="checkbox"]').not(':checked');
                var input = input_n_ch.parent().parent();
                if (flag) {input.remove();}
                $('#realsubmitbutton').trigger('click');
            });
        });
    </script>
    <?php //EOC implement jQuery for buttons in /includes/modules/new_attributes_include.php, noRiddle ?>

    Für den Farbwechsel muss noch in /admin/includes/stylesheet.css folgendes eingetragen werden:

    Unterhalb des Codes:

    Code: CSS  [Auswählen]
    /* data table */
    .dataTableHeadingRow {
    background-color: #F6F6F6;
    color: #000000;
    border-bottom: 1px solid;
    border-color: #000000;
    }

    das hier einfügen:

    Code: CSS  [Auswählen]
    /* BOC new classes for new_attributes.php, noRiddle */
    .dataTableHeadingRow.att-red {color:#c00;}
    .dataTableHeadingRow.att-green {color:#060;}
    /* EOC new classes for new_attributes.php, noRiddle */

    In /admin/includes/modules/new_attributes_include.php

    Unterhalb des Codes:

    Code: XML  [Auswählen]
    <form action="<?php echo FILENAME_NEW_ATTRIBUTES; ?>" method="post" name="SUBMIT_ATTRIBUTES" enctype="multipart/form-data"><input type="hidden" name="current_product_id" value="<?php echo $_POST['current_product_id']; ?>"><input type="hidden" name="action" value="change">

    das hier einfügen:

    Code: PHP  [Auswählen]
    <?php // BOC new buttons to send only checked post values, noRiddle ?>
    <td colspan="<?php echo $colspan;?>" class="main" style="border-top:1px solid #a3a3a3;">
    <div>
        <a class="button button_save" style="display:none;">Aktive Attribute speichern</a>&emsp;
        <a class="button view_attrib" style="display:none;">Alle Attribute anzeigen</a>&emsp;
        <?php
           // echo xtc_button(BUTTON_SAVE) . '&nbsp;';
           echo xtc_button_link(BUTTON_BACK, xtc_href_link(FILENAME_NEW_ATTRIBUTES, $param));
       ?>
    </div>
    </td>
    <?php // EOC new buttons to send only checked post values, noRiddle ?>

    und in selbiger Datei unten suchen:

    Code: XML  [Auswählen]
        <td colspan="<?php echo $colspan;?>" class="main" style="border-top: 1px solid #a3a3a3"><br />
          <?php
         echo xtc_button(BUTTON_SAVE) . '&nbsp;';
         echo xtc_button_link(BUTTON_BACK, xtc_href_link(FILENAME_NEW_ATTRIBUTES, $param));
         ?>
        </td>

    und ersetzen mit:

    Code: XML  [Auswählen]
    <?php // BOC new buttons to send only checked post values, noRiddle ?>
        <!--<td colspan="<?php echo $colspan;?>" class="main" style="border-top: 1px solid #a3a3a3"><br />
         <?php
         //echo xtc_button(BUTTON_SAVE) . '&nbsp;';
         //echo xtc_button_link(BUTTON_BACK, xtc_href_link(FILENAME_NEW_ATTRIBUTES, $param));
         ?>
       </td>-->
        <td colspan="<?php echo $colspan;?>" class="main" style="border-top:1px solid #a3a3a3;">
            <div>
                <a class="button button_save" style="display:none;">Aktive Attribute speichern</a>&emsp;
                <a class="button view_attrib" style="display:none;">Alle Attribute anzeigen</a>&emsp;
                <?php
               echo xtc_button_link(BUTTON_BACK, xtc_href_link(FILENAME_NEW_ATTRIBUTES, $param));
               ?>
            </div>
            <div style="display:none !important">
                <input type="submit" class="button" onclick="this.blur();" value="Speichern" id="realsubmitbutton" >
            </div>
        </td>
    <?php // EOC new buttons to send only checked post values, noRiddle ?>

    ACHTUNG: Hier gibt es ein aktuelles Dateipaket für Shopversion 1.06: Klick mich!

    Damit hat man oben und unten die Buttons, was je nach Menge der Attribute hilfreich ist.

    Grüße

    Torsten

    [EDIT web28 23.01.2015: Hier geht es zu zum Dateipaket für Shopversion 1.06.]

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Danke dir Tomcraft, hatte es schon (fast) vergessen.
    Ich vertraue dir mal, daß du alles richtig zusammengesucht hast ;-) (ich hatte ja noch kleine Bugfixes gepostet).

    Gruß,
    noRiddle
    11 Antworten
    6673 Aufrufe
    23. Mai 2010, 17:52:42 von mikeSo
    7 Antworten
    6046 Aufrufe
    31. Januar 2011, 13:24:40 von itnorden
    1 Antworten
    2799 Aufrufe
    09. November 2012, 15:39:14 von web0null