it-swarm.com.de

Wie kann ich das Ausfüllen eines Administrationsfeldes erzwingen, oder das Plugin wird nicht aktiviert?

Ich habe ein Joomla-Plugin, das ich geschrieben habe. Es gibt ein Feld, das der Joomla-Administrator ausfüllen muss. Es darf nicht leer bleiben und es gibt keinen guten Standardwert, der dort eingegeben werden kann.

Wie kann ich erzwingen, dass das Plugin nur aktiviert wird, wenn der Joomla-Administrator das erforderliche Feld ausfüllt? Kann dies im XML-Manifest erreicht werden? Oder welche andere Methode ist am gebräuchlichsten und praktischsten?

2
Edward_178118

Zuerst können Sie in Ihrer XML required=true für das Feld, das Sie nach Bedarf erzwingen möchten.

<field 
    name="myfield"
    type="text"
    class="inputbox"
    description="Please type your something"
    label="My Something"
    required="true"
    size="10"
    filter="raw"
/>

Dadurch kann das Formular nicht gespeichert werden, wenn das Feld leer bleibt. Trotzdem kann das Plugin aktiviert werden.

Es ist möglich, Code zu schreiben, um das Plugin im nächsten Joomla-Ausführungszyklus zu deaktivieren, wenn das Feld dieses Plugins leer ist, aber ich denke, das wäre ein Overkill.

Am besten überprüfen Sie in einem frühen Stadium der Plugin-Methoden, ob dieser Parameter nicht leer ist oder einen erwarteten Wert enthält. Wenn dieser Test bestanden ist, lassen Sie das Plugin den Rest seiner Aufgabe ausführen, andernfalls beenden Sie die Funktionsroutinen Ihres Plugins mit einem Return.

Zu Beginn der Ereignismethode Ihres Plugins können Sie neben anderen Überprüfungen Folgendes haben:

if ($this->params->get('myfield') === '') { 
    return true;
}

Wenn also der Wert von myfield leer ist, werden Sie die Funktion verlassen und es wird nichts mehr passieren (das Plugin läuft nicht weiter).

1
FFrewin