Zum Inhalt springen

Buginfo (?): Required fields mailformplus

Erstellt am 1. November 2007 · Noch keine Antworten

Tags: Frage

Gerfried ·

Betrifft: mailform plus 4.0.3

Mailform kann dank Mike Mitterer's Codezeilen automatisch ein Sternchen (asterix) zu required Fields hinzufügen.
Anscheinend kümmert sich das Script aber nicht um die Eigenschaft "required" in TS Config ('fieldconf'), sondern setzt einfach bei allen in plugin.tx_thmailformplus_pi1.fieldConf erwähnten Feldern die "required" Markierung.

Ich habe den Code aus [class.tx_thmailformplus_pi1.php] wie folgt abgeändert (ca. Zeile 3428-):

Original:

##############################################
# Marks required fields
# inserted by Mike Mitterer <office(at)bitcon.at>
##############################################

$array_required = split(',', $this->getFieldContent("email_requiredfields"));
if (is_array($this->conf['fieldConf'])) {
	print_r($this->conf['fieldConf']);
	$temp = array_keys($this->conf['fieldConf']);
	$checkFields = array();
	foreach ($temp as $t) {
		$checkFields[] = substr($t, 0, -1);
	}
	$array_required = array_merge($array_required,$checkFields);
}
echo('array_required');
print_r($array_required);
echo('$checkFields');
print_r($checkFields);
#print_r($array_required);

$marker_required = $this->getFieldContent("required_marker");
foreach($array_required as $field_required) {
   $globalMarkerArray['###required_' . trim($field_required) . '###'] = ($marker_required ? $marker_required : '*');
}
$this->templateCode = $this->cObj->substituteMarkerArray($this->templateCode, $globalMarkerArray);
$this->templateCode = ereg_replace('###[A-Za-z_1234567890]+###', '', $this->templateCode);
return $this->templateCode;

geändert in:

#############################################
# Marks required fields
# by Mike Mitterer <office(at)bitcon.at>
# modified by Gerfried Ranner, ranner.de
#############################################
if (is_array($this->conf['fieldConf'])) {
	$array_required = array();
	$temp = array_keys($this->conf['fieldConf']);
	foreach ($temp as $t) {
		if (strpos($this->conf['fieldConf'][$t]['errorCheck'],'required') !== false) {
			$array_required[] = substr($t, 0, -1);
		}
	}
	$array_required = array_merge($array_required, split(',', $this->getFieldContent("email_requiredfields")));
}
#print_r($array_required);

$marker_required = $this->getFieldContent("required_marker");
if (is_array($array_required)) {
        foreach($array_required as $field_required) {
             $globalMarkerArray['###required_' . trim($field_required) . '###'] = ($marker_required ? $marker_required : '*');
        }
        $this->templateCode = $this->cObj->substituteMarkerArray($this->templateCode, $globalMarkerArray);
        $this->templateCode = ereg_replace('###[A-Za-z_1234567890]+###', '', $this->templateCode);
        return $this->templateCode;
}