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: Attributbearbeitung aus der Artikelbearbeitung heraus

    Viol

    • Fördermitglied
    • Beiträge: 2.234
    Moin,
    ich habe in meinem XT Shop eine Erweiterung, die in der Artikelbearbeitung 3 verschiedene Möglichkeiten bietet, die Attribute zu bearbeiten:
    • Änderungen speichern und alle Attribute editieren
    • Änderungen speichern und alle mit Werten belegte Attribute editieren
    • Änderungen speichern und alle Attribute von vorhandenem Produkt kopieren
    Ich fand diese Erweiterung ganz sinnvoll und habe sie mal in den modified eCommerce Shopsoftware eingebaut und sie funktioniert auch da:
    Ich gebe mal hier die Anleitung wieder (von wem diese Erweiterung stammt, weiß ich nicht, es gibt nur die Initialen MH)

    1. /lang/german/admin/buttons.php
    vor dem

    Code: PHP  [Auswählen]
    ?>

    am Schluss einfügen:

    Code: PHP  [Auswählen]
    //mh_attribut_erweiterung
    define('BUTTON_SAVE_EXISTING_ATTRIBUTES_EDIT', 'Änderungen speichern und bereits mit Werten belegte Attribute editieren');
    define('BUTTON_SAVE_ATTRIBUTES_EDIT', 'Änderungen speichern und alle Attribute editieren');
    define('BUTTON_SAVE_ATTRIBUTES_COPY', 'Änderungen speichern und alle Attribute von vorhandenem Produkt kopieren');
    define('BUTTON_INSERT_ATTRIBUTES_EDIT', 'Artikel anlegen und Attribute editieren');
    define('BUTTON_INSERT_ATTRIBUTES_COPY', 'Artikel anlegen und Attribute kopieren');

    2. in der /admin/includes/modules/new_product.php:

    nach

    Code: PHP  [Auswählen]
    <?php echo '<a class="button" href="' . xtc_href_link(FILENAME_CATEGORIES, 'cPath=' . $cPath . '&pID=' . $_GET['pID']) . '">' . BUTTON_CANCEL . '</a>'; ?>

    einfügen:

    Code: PHP  [Auswählen]
    <?php $NeuesZiel = FILENAME_CATEGORIES .'?cPath=' . $_GET['cPath'] . '&pID=' . $_GET['pID'];
        if ($form_action == 'update_product') {
            $NeueAktion = $NeuesZiel . '&action=update_product_edit_attributes'; ?><button name="update_product_edit_attributes" type="button" value="<?php echo BUTTON_SAVE_ATTRIBUTES_EDIT; ?>" onclick="this.form.action='<?php echo $NeueAktion; ?>';this.form.submit()"><?php echo BUTTON_SAVE_ATTRIBUTES_EDIT; ?></button>        

            <?php $NeueAktion = $NeuesZiel . '&action=update_product_edit_existing_attributes'; ?><button name="update_product_edit_existing_attributes" type="button" value="<?php echo BUTTON_SAVE_EXISTING_ATTRIBUTES_EDIT; ?>" onclick="this.form.action='<?php echo $NeueAktion; ?>';this.form.submit()"><?php echo BUTTON_SAVE_EXISTING_ATTRIBUTES_EDIT; ?></button>

            <?php $NeueAktion = $NeuesZiel . '&action=update_product_copy_attributes';?><button name="update_product_copy_attributes" type="button" value="<?php echo BUTTON_SAVE_ATTRIBUTES_COPY; ?>" onclick="this.form.action='<?php echo $NeueAktion; ?>';this.form.submit()"><?php echo BUTTON_SAVE_ATTRIBUTES_COPY; ?></button>
            <?php
        }
        elseif ($form_action ==  'insert_product') {
            $NeueAktion = $NeuesZiel . '&action=insert_product_edit_attributes';
            ?><input type="button" value="<?php echo BUTTON_INSERT_ATTRIBUTES_EDIT; ?>" onClick="this.form.action='<?php echo $NeueAktion; ?>';this.form.submit()">    

            <?php $NeueAktion = $NeuesZiel . '&action=insert_product_copy_attributes';?><input type="button" value="<?php echo BUTTON_INSERT_ATTRIBUTES_COPY; ?>" onClick="this.form.action='<?php echo $NeueAktion; ?>';this.form.submit()">

            <?php
        };?>

    3.in der /admin/categories.php
    ca. Mitte der Datei:
    vor:

    Code: PHP  [Auswählen]
    <!doctype html public "-//W3C//DTD HTML 4.01 Tranistional//EN">

    einfügen:

    Code: PHP  [Auswählen]
    // mh Artikel-Attributsbearbeitung
    if (($_GET['action'] == 'update_product_copy_attributes') or ($_GET['action'] == 'insert_product_copy_attributes')) {
        xtc_redirect(xtc_href_link('new_attributes.php', xtc_get_all_get_params(array ('action')).'action=mh_copy'));
    }
    elseif (($_GET['action'] == 'update_product_edit_attributes') or ($_GET['action'] == 'insert_product_edit_attributes')) {
            xtc_redirect(xtc_href_link('new_attributes.php', xtc_get_all_get_params(array ('action')).'action=mh_edit'));
    }
    elseif (($_GET['action'] == 'update_product_edit_existing_attributes')) {
            xtc_redirect(xtc_href_link('new_attributes.php', xtc_get_all_get_params(array ('action')).'action=mh_edit_selected'));
    } else {
    ?>

    und wichtig dann am Dateiende, vor dem ?> noch die schließende Klammer }
    sieht dann so aus:

    Code: PHP  [Auswählen]
    <?php require(DIR_WS_INCLUDES . 'application_bottom.php');
    }
    ?>

    4. in der Datei /admin/new_attributes.php
    ersetze:

    Code: PHP  [Auswählen]
    default:
    $pageTitle = TITLE_EDIT;
    include(DIR_WS_MODULES.'new_attributes_select.php');
    break;

    mit

    Code: PHP  [Auswählen]
    default:
          if (($_GET['action']=='mh_edit') or ($_GET['action']=='mh_edit_selected')) {
           $pageTitle = TITLE_EDIT .': ' . xtc_findTitle($_GET['pID'], $languageFilter);
              $_POST['current_product_id'] = $_GET['pID'];
              include(DIR_WS_MODULES.'new_attributes_include.php');
              break;
            }
            $pageTitle = TITLE_EDIT;
        include(DIR_WS_MODULES.'new_attributes_select.php');
        break;

    5. in der Datei /admin/includes/modules/new_attributes_select.php
    nach

    Code: PHP  [Auswählen]
    $matches = xtc_db_num_rows($result)

    einfügen:

    Code: PHP  [Auswählen]
    $AktuellTitle = xtc_findTitle($_GET['pID'], $languageFilter);

    und ersetze

    Code: PHP  [Auswählen]
    echo "<OPTION VALUE=\"" . $current_product_id . "\">" . $title;

    durch

    Code: PHP  [Auswählen]
    if ($title == $AktuellTitle) {
        echo "<OPTION SELECTED VALUE=\"" . $current_product_id . "\">" . $title;
          }else{
          echo "<OPTION VALUE=\"" . $current_product_id . "\">" . $title;
          }

    6. in der Datei /admin/includes/classes/categories.php
    suche die Funktion // inserts / updates a product from given data, dort ziemlich am Schluß der Funktion nach

    Code: PHP  [Auswählen]
    if ($action == 'insert') {
    $insert_sql_data = array ('products_id' => $products_id, 'language_id' => $language_id);
    $sql_data_array = xtc_array_merge($sql_data_array, $insert_sql_data);
    xtc_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array);

    einfügen (ca.Zeile 740):

    Code: PHP  [Auswählen]
    if ($products_id != '') $_GET['pID']=$products_id;

    7.Suche  in der /admin/includes/modules/new_attributes_include.php:

    Code: PHP  [Auswählen]
    // Print the Current Value Name

    und ersetze

    Code: PHP  [Auswählen]
    echo "<TR class=\"" . $rowClass . "\">";

    mit

    Code: PHP  [Auswählen]
    if ($isSelected){
                echo "<TR bgcolor=\"yellow\">";
                }
                else { echo "<TR class=\"" . $rowClass . "\">";
                }

            if (($_GET['action'] != 'mh_edit_selected') or ($_GET['action'] == 'mh_edit_selected')and($isSelected)) {

    und in dieser Datei nach // Download function end wieder die  schließende Klammer }
    also so:

    Code: PHP  [Auswählen]
     // Download function end
                }
              }

    Das war's, bei mir funktioniert es und der Einbau dürfte schnell erledigt sein.
    Die Bottoms sind mir noch zu groß, wer da noch einen Tipp hat, ist vermutlich leicht hinzukriegen, aber morgen ist ja auch noch ein Tag...

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Linkback: https://www.modified-shop.org/forum/index.php?topic=6915.0

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.267
    • Geschlecht:
    Wunderhübsch, vielen Dank für die tolle Anleitung.

    Grüße

    Torsten

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Super Erweiterung!
    Das werden wir später noch ins neue Wiki aufnehmen! :)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.267
    • Geschlecht:
    Psssssst... verrät er wieder alles... tststs. :-PP

    Grüße

    Torsten

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Uiui, sehr gut - Wiki´s liebt Google fast so sehr wie Blogs :)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.267
    • Geschlecht:
    Ich denke auch, dass das nochmal einen enormen Schub geben wird, da wir das alles schlauerweise über eine Domain machen. ;-)

    Grüße

    Torsten

    hallotoll

    • Neu im Forum
    • Beiträge: 1
    Hey danke sowas brauchte ich!
    Hab´s gerade eingebaut - klappt aber bei mir nicht, bekomme
    dann beim Klick auf einen der Buttons

    Code: PHP  [Auswählen]
    Warning: Cannot modify header information - headers already sent by (output started at /homepages/46/d13593433/htdocs/admin/categories.php:340) in /homepages/46/d13593433/htdocs/admin/includes/functions/general.php on line 130

    Update: Alles nochmal durchgegangen, läuft jetzt ;-)

    0 Antworten
    2184 Aufrufe
    02. März 2012, 17:11:07 von europit
    11 Antworten
    3593 Aufrufe
    27. Januar 2017, 12:49:14 von gogolog
    8 Antworten
    2763 Aufrufe
    08. Februar 2016, 15:33:59 von karsta.de
    0 Antworten
    721 Aufrufe
    22. November 2020, 09:48:40 von little-key