Settings validierung des Eigenmoduls (OXID 6.0.0. CE)

module
oxid6

#1

Ich habe zwei Settings in mein Modul über die metadata wie folgt eingefügt:

'settings' => array(
    array('group' => 'stinamodul', 'name' => 'stinamodul_user', 'type' => 'str', 'value' => '[email protected]'),
    array('group' => 'stinamodul', 'name' => 'stinamodul_pass', 'type' => 'password', 'value' => ''),
),

Das funktioniert alles super Toll, aber ich würde gerne diese Daten validieren bevor OXID sie in die Datenbank hinzufügt. Es handelt sich dabei um Zugangsdaten zu einer externen API. Wie würde ich das am besten angehen?


#2

OXID bietet hier regulär keine Möglichkeit, da müsstest du oxmodule erweitern um eine Validierung einzuführen.


#3

Habe es so gemacht.

Neues template mit Form erstellt, die per AJAX die Daten erstmals validiert und dann in die oxconfig Tabelle gespeichert. Das ganze sieht so aus:

public function login()
{
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        try {
            $result   = stinamodul::validate();
            $module   = 'module:stinamodul';
            $oxConfig = oxRegistry::get("oxConfig");

            $oxConfig->saveShopConfVar('str', 'stinamodul_email', $_POST['email'], null, $module);
            $oxConfig->saveShopConfVar('str', 'stinamodul_password', $_POST['password'], null, $module);

            echo json_encode('success');
        } catch (Exception $e) {
            echo json_encode($e);
        }
    }
    die();
}

Vielen Dank für den Tipp!