Hallo 
um Vor- und Nachname im Standard OXID Newsletter als Pflichtfelder zu definieren würde ich den newsletter.php Controller in einem Modul erweitern. Genauer die Methode send() erweitern und eine Validierung des Vor- und Nachnamens durchführen.
Oder seht Ihr dort noch eine weitere Möglichkeit? Kann ich z.B. die Pflichtfelder im Admin festlegen?
Des Weiteren nehme ich an die Methode addErrorToDisplay() der Core Klasse oxutilsview.php ist dafür da um einen Fehler abzufangen, siehe Beispielcode beim Newsletter:
oxRegistry::get("oxUtilsView")->addErrorToDisplay('NEWSLETTER_INVALIDEMAIL');
Gibt es eine gute Anleitung wie bei OXID die Validierung grundsätzlich funktioniert und was es zu beachten gilt?
OXID Version:
[B]OXID CE 4.7.7[/B]
Viele Grüße
indianer3c
[B]Problem[/B]
Problem ist weiterhin wie erweitere ich die Newsletter Klasse, damit Vor- und Nachname Pflichtfelder sind?
[B]Meine Lösung[/B]
[B]Newsletter Methode send() überschrieben bzw. ergänzt um die Datenvalidierung[/B]
public function send() {
$aParams = oxConfig::getParameter("editval");
// loads submited values
$this->_aRegParams = $aParams;
if ( !$aParams['oxuser__oxfname'] ) {
oxRegistry::get("oxUtilsView")->addErrorToDisplay('NEWSLETTER_COMPLETEALLFIELEDS');
return;
}
...
parent::send();
}
[B]Newsletter Template Datei angepasst[/B]
...
<li [{if $aErrors}]class="oxInValid"[{/if}]>
<label class="req">[{ oxmultilang ident="FORM_NEWSLETTER_LASTNAME" }]</label>
<input id="newsletterLname" type="text" class="js-oxValidate js-oxValidate_notEmpty" name="editval[oxuser__oxlname]" size=40 maxlength=40 value="[{if $aRegParams.oxuser__oxlname}][{$aRegParams.oxuser__oxlname}][{/if}]">
<p class="oxValidateError">
<span class="js-oxError_notEmpty">[{ oxmultilang ident="EXCEPTION_INPUT_NOTALLFIELDS" }]</span>
</p>
</li>
...
[B]Erläuterung[/B]
Die letzten Anpassungen für das Newsletter Template funktionieren auf JavaScript Ebene. Es ist noch sinnvoll innerhalb der send() Methode die Pflichtfelder gleichermaßen abzufragen, falls JavaScript im Browser vom Benutzer deaktiviert ist. Insgesamt ist dieser Thread rudimentär zu verstehen und erhebt keinen Anspruch auf Vollständigkeit.
[B]Frage[/B]
Gibt es für die Datenvalidierung nicht ein simples Praxis Beispiel oder eine kurze Doku wie die Best Practise innerhalb des OXID Framework aussehen sollte?
[B]Beispiel für eine gute Framework Dokumentation[/B]
Vom Dokumentationsstil finde ich persönlich die Doku vom CakePHP Framework ansprechend und vorallem die interne Suche mit Suchvorschlägen ist hervorragend!
Beispiel für die Datenvalidierung wäre http://book.cakephp.org/2.0/en/models/data-validation.html
Schönen Feierabend!
indianer3c
Hey Ray,
du bist wieder eifrig dabei 
Danke für den Link. Was mir in meinem Fall weiterhelfen konnte ist die oxUtilsView Class Reference.
Aber sag mal kann ich in der generierten Doku nicht suchen?
Viele Grüße
indianer3c
klar - der Link von mir hat irgendwie nur den rechten Frame beinhaltet…
http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.7.7.034f853d95468c4e0c5868ff90a603316ed24e6f/
hier auch die der anderen Versionen: