Die ausgewählten Seiten der Input Plugins Link, Image und Folder werden automatisch validiert. Dabei werden standardmäßig folgende Prüfungen durchgeführt:
- Fehler: Ist die Seite gelöscht?
- Fehler: Ist die Seite inaktiv?
- Wird nur geprüft, wenn die Seite nicht bereits gelöscht ist.
- Warnung: Wird die Seite auf dem Liveserver übertragen?
- Wird nur geprüft, wenn der aktuelle Server kein Liveserver ist und es Liveserver gibt.
- Warnung: Stimmt der ausgewählte Seitentyp?
- Wird nur geprüft, wenn der Parameter validate.type mit einer kommaseparierten Liste von Seitentypen übergeben wird.
- Warnung: Hat die Seite Ansichtsrechte?
- Wird nur geprüft, wenn der Parameter validate.view=true gesetzt ist.
Die angewandten Prüfungen werden in der Page Methode getMessages($params) definiert. Bei Bedarf kann diese Methode erweitert oder überschrieben werden, um die Prüfungen zu ergänzen.
Der übergebene Parameter $params ist ein Array und beinhaltet alle Parameter, die dem Input Plugin über den validate Parameter übergeben wurden. Es können somit auch eigene validate Parameter genutzt werden.
Der Rückgabewert der Methode muss ein Array mit allen Warnungen/Fehlern sein. Dabei hat jedes Element die Eigenschaft type, welche error oder warning sein kann, und text, in der die Nachricht steht. Beispiel:
class PageExtension extends Page {
public function getMessages($params = []) {
$messages = [];
// Die Seite ist gelöscht
if ($this->field['deleted']) {
$messages[] = [
'type' => 'error',
'text' => $GLOBALS['auth']->translate('Die Seite ist gelöscht.')
];
}
// Die Seite hat Ansichtsrechte
if (!empty($params['view']) && $this->hasRightsOn('view')) {
$messages[] = [
'type' => 'warning',
'text' => $GLOBALS['auth']->translate('Die Seite hat Ansichtsrechte.')
];
}
return $messages;
}
}
Fehler, also Elemente mit type=error, werden immer als erstes angezeigt. Ansonsten wird für die Anzeige der Texte die Reihenfolge des Arrays verwendet.
Alle Texte eines Input Plugins können auch über die Eigenschaften pageMessages des Input Plugin Objekts abgefragt werden.