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: Codeverbesserung für alle Module (payment, shipping, order_total)

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Die Module welche nachträglich im Shop installiert bzw. aktiviert werden, haben am Ende des Quellcodes immer eine ganze Litanei an INSERT INTO - Queries.

    So sieht es zum Beispiel in der ot_coupon.php aus.
    Code: PHP  [Auswählen]
    function install() {
        xtc_db_query("insert into ".TABLE_CONFIGURATION." (configuration_id, configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('', 'MODULE_ORDER_TOTAL_COUPON_STATUS', 'true', '6', '1','xtc_cfg_select_option(array(\'true\', \'false\'), ', now())");
        xtc_db_query("insert into ".TABLE_CONFIGURATION." (configuration_id, configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('', 'MODULE_ORDER_TOTAL_COUPON_SORT_ORDER', '25', '6', '2', now())");
        xtc_db_query("insert into ".TABLE_CONFIGURATION." (configuration_id, configuration_key, configuration_value, configuration_group_id, sort_order, set_function ,date_added) values ('', 'MODULE_ORDER_TOTAL_COUPON_INC_SHIPPING', 'false', '6', '5', 'xtc_cfg_select_option(array(\'true\', \'false\'), ', now())");
        xtc_db_query("insert into ".TABLE_CONFIGURATION." (configuration_id, configuration_key, configuration_value, configuration_group_id, sort_order, set_function ,date_added) values ('', 'MODULE_ORDER_TOTAL_COUPON_INC_TAX', 'true', '6', '6','xtc_cfg_select_option(array(\'true\', \'false\'), ', now())");
        xtc_db_query("insert into ".TABLE_CONFIGURATION." (configuration_id, configuration_key, configuration_value, configuration_group_id, sort_order, set_function ,date_added) values ('', 'MODULE_ORDER_TOTAL_COUPON_CALC_TAX', 'Standard', '6', '7','xtc_cfg_select_option(array(\'None\', \'Standard\'), ', now())");
        xtc_db_query("insert into ".TABLE_CONFIGURATION." (configuration_id, configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('', 'MODULE_ORDER_TOTAL_COUPON_TAX_CLASS', '0', '6', '0', 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(', now())");
        xtc_db_query("insert into ".TABLE_CONFIGURATION." (configuration_id, configuration_key, configuration_value, configuration_group_id, sort_order, set_function ,date_added) values ('', 'MODULE_ORDER_TOTAL_COUPON_SPECIAL_PRICES', 'false', '6', '5', 'xtc_cfg_select_option(array(\'true\', \'false\'), ', now())");
      }
     

    Sähe es so nicht, knackiger und lesbarer aus?
    Code: PHP  [Auswählen]
    function install() {
      xtc_db_query("
        INSERT INTO "
    . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added, use_function, set_function) VALUES
        ('MODULE_ORDER_TOTAL_COUPON_STATUS', 'true', '6', '1', now(), NULL, 'xtc_cfg_select_option(array(\'true\', \'false\'),' ),
        ('MODULE_ORDER_TOTAL_COUPON_SORT_ORDER', '25', '6', '2', now(), NULL, NULL),
        ('MODULE_ORDER_TOTAL_COUPON_INC_TAX', 'true', '6', '6', now(), NULL, xtc_cfg_select_option(array(\'true\', \'false\'),' ),
        ('MODULE_ORDER_TOTAL_COUPON_INC_SHIPPING', 'false', '6', '5', now(), NULL, 'xtc_cfg_select_option(array(\'true\', \'false\'),' ),
        ('MODULE_ORDER_TOTAL_COUPON_CALC_TAX', 'Standard', '6', '7', now(), NULL, 'xtc_cfg_select_option(array(\'None\', \'Standard\'),' ),
        ('MODULE_ORDER_TOTAL_COUPON_TAX_CLASS', '0', '6', '0', now(), 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(' ),
        ('MODULE_ORDER_TOTAL_COUPON_SPECIAL_PRICES', 'false', '6', '5', now(), 'xtc_cfg_select_option(array(\'true\', \'false\'), ')
      "
    );
    }
     

    Zumal die INSERT's, wenn man unter Laborbedingungen messen würde, auch schneller abgearbeitet werden. Man beachte auch die richtige Reihenfolge der Spaltennamen im INSERT INTO. Zumindest hat mir mein DB-Dozent immer gepredigt, nicht nur die Anzahl einzuhalten, welche man braucht, sondern auch die Reihenfolge innerhalb der Tabelle.

    Gruß
    Ronny

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

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Ohne es genau analysiert zu haben:
    Oh Mann, Ronny, du hast ja so recht.

    Tja, das mit den SQL-Queries ist noch ein großes Thema.

    Gruß,
    noRiddle

    Taboh

    • Mitglied
    • Beiträge: 120
    Hallo,
    bitte nicht schlagen weil ich nach 2 Jahre Frage.
    kann man es einfach Umschreiben ohne Probleme zu bekommen ?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Ja, kann man, ansonsten wäre Webkistes Post ja Schwachsinn.

    Gruß,
    noRiddle

    Taboh

    • Mitglied
    • Beiträge: 120
    naja ich habe ja nur gefragt weil es schon 2 Jahre her ist, es hätte ja sein können das irgendwo anderes was schief läuft.

    Danke für die Antwort.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Das ist eine optimierte MySQL-Query die völlig unabhängig von allem anderen ist.
    Abgesehen davon, daß man irgendwann in naher Zukunft die alten MySQL-Funktionen nicht mehr nutzen kann weil die PHP-Version 5.X sie nicht mehr unterstützten wird (sie sind bereist deprecated und werden durch MySQLi oder PDO ersetzt werden müssen) gilt das nach wie vor.

    Gruß,
    noRiddle
    0 Antworten
    2610 Aufrufe
    12. April 2016, 11:53:22 von jey
    3 Antworten
    3576 Aufrufe
    04. April 2010, 18:58:27 von jannemann
               
    anything