ExtraFelder - werden nicht mit-dupliziert...?

Thema wurde von Anonymous, 4. Juni 2019 erstellt.

  1. Anonymous

    Anonymous Mitglied

    Registriert seit:
    21. Mai 2019
    Beiträge:
    19
    Danke erhalten:
    1
    #1 Anonymous, 4. Juni 2019
    Zuletzt bearbeitet: 4. Juni 2019
    Hallo,

    ich habe einige extra Felder die via addon_values_storage gespeichert werden.

    Das Anzeigen und Speichern klappt. Habe dazu folgende Dateien/Klassen:
    • class ExtraFieldsAdminCategoriesExtender extends ExtraFieldsAdminCategoriesExtender_parent
    • class ExtraFieldsAdminEditProductExtender extends ExtraFieldsAdminEditProductExtender_parent
    Wenn ich nun einen bestehenden Artikel dupliziere keine Einträge in der Tabelle addon_values_storage mitkopiert.

    Vermutlich muss die categories.php überladen werden, wie überlade ich diese Datei korrekt (GXModules) sodass sie doch mitkopiert werden.

    Danke...
     
  2. Anonymous

    Anonymous Mitglied

    Registriert seit:
    21. Mai 2019
    Beiträge:
    19
    Danke erhalten:
    1
    #2 Anonymous, 4. Juni 2019
    Zuletzt bearbeitet: 4. Juni 2019
    So funktioniert es derzeit, dazu musste ich allerdings die Datei hier anlegen:
    GXUserComponents/overloads/categories/extrafield_categories.inc.php

    PHP:
    <?php
    /*
     * class extrafield_categories
     *
     * Mai 2019 - v1 - copy values if product is copied
     *
     * @see categories
    */

    class extrafield_categories extends extrafield_categories_parent
    {
       function 
    duplicate_product($src_products_id$dest_categories_id)
       {

         
    $new_products_id parent::duplicate_product($src_products_id$dest_categories_id);

         
    /** @var ProductReadService $productReadService */
         
    $productReadService StaticGXCoreLoader::getService('ProductRead');

         
    /** @var StoredProduct $product */
         
    $product $productReadService->getProductById(new IdType($src_products_id));

         
    $products_pc_groupid $product->getAddonValue(new StringType('products_pc_groupid'));
         
    $products_pc_variants $product->getAddonValue(new StringType('products_pc_variants'));
       

         
    $copy_extra_data_query "
           INSERT INTO `addon_values_storage` (`container_type` ,`container_id` ,`addon_key` ,`addon_value`)
           VALUES
           ('ProductInterface',
    $new_products_id,'products_pc_groupid','".$products_pc_groupid."'),
           ('ProductInterface',
    $new_products_id,'products_pc_variants','".$products_pc_variants."');
         "
    ;

         
    xtc_db_query($copy_extra_data_query);

        return 
    $new_products_id;

       }
    }

    Ich frage mich halt - gibt es eine Möglichkeit dass auch direkt via GXModules zu machen, denn um einwenig Modulordnung zu halten?

    Für mich als Neuling ist es schwierig hier die Möglichkeiten zu durchschauen, und vor allem zu erkennen was sind "alte Varianten" der Umsetzung...