Hallo Aicha & Ingmar,
ein "merkwürdiger" Fehler macht mir Kopfzerbrechen. Ich versuche zu beschreiben, unter welchen Umständen dieser Aufritt und wie sich das im Formular "bemerkbar" macht. Ich habe einige Zeit dafür gebraucht, kann ihn nun aber sauber reproduzieren:
- ListboxSQL-Feld mit Option:
- Als Datenliste anzeigen: NEIN
- Mehrfachselektion erlauben: JA
- Feld verstecken, wenn Liste leer ist: JA
- Pflichtfeld: NEIN
- Reload erlauben:JA
- Bei Änderung von nachladen: anderes Select-Feld
- SQL-Select-Statement, welches bei mir 1 oder 2 Zeilen als Ergebnis hat
- Einzige Option vorauswählen: JA
- Bei Vorauswahl verstecken: NEIN
- SQL im Form Edit ausführen: NEIN (das ist der eigentlich entscheidende Punkt)
- Formulareinstellung: Edit-Mail senden beide(!) JA, Admin + Benutzermail müssen aktiviert sein
- In der Edit-View einen gespeicherten Datensatz (bei dem dieses Feld gefüllt ist) zum Bearbeiten aufrufen und wieder speichern, mit ohne ohne Änderung, das ist egal.
Dann fehlen nach dem "Abschicken" des Formulars bei einem so konfigurierten SQL-Feld im Feldobjekt-Optionen-Array ($field->opts) einige Keys, und zwar:
- redirecturl,
- mail,
- mailcc,
- mailbcc
- labelclass
Das führt in der Vfcustommailadr.php bei:
Code:
if (in_array($field->typefield, array('multicheckbox', 'select', 'radio', 'multicheckboxsql', 'selectsql', 'radiosql')) && is_string($field->dbValue)) {
$dbValues = HTMLHelper::_('visformsselect.explodeMsDbValue', $field->dbValue);
foreach ($field->opts as $option) {
if (is_array($dbValues) && in_array($option['value'], $dbValues)) {
$this->addMailAddress($option['mail'], 'newmailto');
$this->addMailAddress($option['mailcc'], 'newmailcc');
$this->addMailAddress($option['mailbcc'], 'newmailbcc');
}
}
}
wegen fehlendem 'mail' erst zu einer Warnung im Debugger (nicht so relevant):
Code:
Exception has occurred: Warning
Undefined array key "mail"
, und im späteren Verarbeitungsverlauf zu unterschiedlichen Fehlern und Effekten: unter anderem z.Bsp:
- JERROR_LAYOUT_MIS_TYPED_ADDRESS
Code:
0 mb_trim(): Argument #1 ($string) must be of type string, null given, called in C:\xampp\kurkinder.de\libraries\vendor\joomla\string\src\StringHelper.php on line 661
Code:
1()JROOT\libraries\vendor\symfony\polyfill-mbstring\bootstrap80.php:144
2mb_trim()JROOT\libraries\vendor\joomla\string\src\StringHelper.php:661
3Joomla\String\StringHelper::trim()JROOT\plugins\visforms\vfcustommailadr\src\Extension\Vfcustommailadr.php:108
4Visolutions\Plugin\Visforms\Vfcustommailadr\Extension\Vfcustommailadr->addMailAddress()JROOT\plugins\visforms\vfcustommailadr\src\Extension\Vfcustommailadr.php:64
5Visolutions\Plugin\Visforms\Vfcustommailadr\Extension\Vfcustommailadr->onVisformsEmailPrepare()JROOT\libraries\vendor\joomla\event\src\Dispatcher.php:454
6Joomla\Event\Dispatcher->dispatch()JROOT\components\com_visforms\src\Model\Helper\Mail\BaseMailHelper.php:174
7Visolutions\Component\Visforms\Site\Model\Helper\Mail\BaseMailHelper->sendAdminMail()JROOT\components\com_visforms\src\Model\EditModel.php:340
8Visolutions\Component\Visforms\Site\Model\EditModel->saveEditData()JROOT\components\com_visforms\src\Controller\EditController.php:265
9Visolutions\Component\Visforms\Site\Controller\EditController->saveedit()JROOT\libraries\src\MVC\Controller\BaseController.php:730
10Joomla\CMS\MVC\Controller\BaseController->execute()JROOT\libraries\src\Dispatcher\ComponentDispatcher.php:143
11Joomla\CMS\Dispatcher\ComponentDispatcher->dispatch()JROOT\libraries\src\Component\ComponentHelper.php:361
12Joomla\CMS\Component\ComponentHelper::renderComponent()JROOT\libraries\src\Application\SiteApplication.php:218
13Joomla\CMS\Application\SiteApplication->dispatch()JROOT\libraries\src\Application\SiteApplication.php:272
14Joomla\CMS\Application\SiteApplication->doExecute()JROOT\libraries\src\Application\CMSApplication.php:320
15Joomla\CMS\Application\CMSApplication->execute()JROOT\includes\app.php:58
16require_once()JROOT\index.php:51
Ob dieser Fehler auch schon im Formular auftritt, oder erst beim Edit, muss ich noch testen.
Nachtrag: Im Formular ist alles i.O.; da existieren alle Keys. Betrifft also nur Edit.