Checkbox standardmäßig aktiv setzen - Email-Nachricht

Hast du Probleme Admidio einzurichten? Hier kannst du Fragen rund um die Einrichtung stellen.
Antworten
Benutzeravatar
m6joe
Beiträge: 51
Registriert: 18. Sep 2015, 18:26
Wohnort: Finkenberg
Kontaktdaten:

Checkbox standardmäßig aktiv setzen - Email-Nachricht

Beitrag von m6joe »

Servus zusammen!

Es geht um das Setzen einer "aktivierten" Checkbox im Messages-Modul - genau genommen ums Email-Modul.
Ich werde mit Rumprobieren aus der Klasse nicht schlau -

Die Klasse, welche die Checkbox für die Email-Kopie erzeugt lautet so:

Code: Alles auswählen

addCheckbox('carbon_copy', $gL10n->get('MAI_SEND_COPY'), $form_values['carbon_copy']);
Die Beschreibung besagt:
addCheckbox(string $id, string $label, boolean $checked = false, array $options = array())
und wird für das Thema hier interessant:
boolean $checked (A value for the checkbox. The value could only be 0 or 1. If the value is 1 then the checkbox will be checked when displayed.)
Habe zB in der HtmlForm.php der Classen $checked = true gesetzt, ohne dass sich dabei etwas ändert...

In der messages_write.php sollte ich die Klasse aber doch "umdrehen" dürfen: Jeder Wert den ich da hinzufüge endet mit leerer Seite.
Der Log meines Servers meldet:
2018-06-19T20:59:46+02:00 DiskStation [Tue Jun 19 20:59:46.867712 2018] [proxy_fcgi:error] [pid 16878:tid 140375293323008] [client 192.168.0.23:35681] AH01071: Got error 'PHP message: PHP Notice: Undefined variable: form_values in /volume1/web/fcf-admin-334/adm_program/modules/messages/messages_write.php on line 580\nPHP message: PHP Notice: Undefined variable: form_values in /volume1/web/fcf-admin-334/adm_program/modules/messages/messages_write.php on line 584\nPHP message: PHP Fatal error: Uncaught TypeError: Argument 4 passed to HtmlForm::addCheckbox() must be of the type array, null given, called in /volume1/web/fcf-admin-334/adm_program/modules/messages/messages_write.php on line 584 and defined in /volume1/web/fcf-admin-334/adm_program/system/classes/HtmlForm.php:366\nStack trace:\n#0 /volume1/web/fcf-admin-334/adm_program/modules/messages/messages_write.php(584): HtmlForm->addCheckbox('signature', 'Meine Kontaktda...', '', NULL)\n#1 {main}\n thrown in /volume1/web/fcf-admin-334/adm_program/system/classes/HtmlForm.php on line 366\n', referer: http://192.168.0.11/fcf-admin-334/adm_p ... ssages.php
Wer kann hier helfen?
Benutzeravatar
fasse
Administrator
Beiträge: 6044
Registriert: 12. Nov 2005, 16:06

Re: Checkbox standardmäßig aktiv setzen - Email-Nachricht

Beitrag von fasse »

Hi,

laut dem Fehlerlog ist das letzte Argument von addCheckbox bei dir falsch gesetzt.

Du hast dort stehen:

Code: Alles auswählen

HtmlForm->addCheckbox('signature', 'Meine Kontaktda...', '', NULL)
es sollte aber sein:

Code: Alles auswählen

HtmlForm->addCheckbox('signature', 'Meine Kontaktda...', '', array())
Damit sollte die leere Seite schon mal weg sein.

Gruß
Fasse
Benutzeravatar
m6joe
Beiträge: 51
Registriert: 18. Sep 2015, 18:26
Wohnort: Finkenberg
Kontaktdaten:

Re: Checkbox standardmäßig aktiv setzen - Email-Nachricht

Beitrag von m6joe »

Grüß Dich Fasse!

Ich komme leider trotzdem nicht dahinter:
Die messages_write.php habe ich ja nicht großartig abgeändert, original UND in meiner Abänderung für die Signatur-Funktion wird die Checkbox mit

Code: Alles auswählen

$form->addCheckbox('carbon_copy', $gL10n->get('MAI_SEND_COPY'), $formValues['carbon_copy']);
erzeugt. So kommt Sie inaktiv zum Vorschein.

Meine Signatur-CB wird mit

Code: Alles auswählen

$form->addCheckbox('signature', $gL10n->get('MAI_SEND_SIGNATURE'), $form_values['signature']);
erzeugt - selbes Spiel wie oben.

Dar Argument für die aktivierte Checkbox sollte letztlich dann an 3. Stelle, vor dem array $formValues[] "TRUE" sein?
Benutzeravatar
fasse
Administrator
Beiträge: 6044
Registriert: 12. Nov 2005, 16:06

Re: Checkbox standardmäßig aktiv setzen - Email-Nachricht

Beitrag von fasse »

Probier es mal mit 1 für gesetzt und 0 für nicht gesetzt.
Benutzeravatar
m6joe
Beiträge: 51
Registriert: 18. Sep 2015, 18:26
Wohnort: Finkenberg
Kontaktdaten:

Re: Checkbox standardmäßig aktiv setzen - Email-Nachricht

Beitrag von m6joe »

Genau deswegen hatte ich ja diesen Thread eröffnet!

Es funktioniert weder

Code: Alles auswählen

$form->addCheckbox('carbon_copy', $gL10n->get('MAI_SEND_COPY'), 1, $form_values['carbon_copy']);
noch

Code: Alles auswählen

$form->addCheckbox('carbon_copy', $gL10n->get('MAI_SEND_COPY'), '1', $form_values['carbon_copy']);
...

Von anderen exotischen Strings gar nicht zu reden ;-)
Benutzeravatar
m6joe
Beiträge: 51
Registriert: 18. Sep 2015, 18:26
Wohnort: Finkenberg
Kontaktdaten:

Re: Checkbox standardmäßig aktiv setzen - Email-Nachricht

Beitrag von m6joe »

Die Lösung ist da:

In der messages_write.php kommt ab Zeile 26:

Code: Alles auswählen

// Initialize and check the parameters
...
$getCarbonCopy  = admFuncVariableIsValid($_GET, 'carbon_copy',  'bool', array('defaultValue' => false));
Hier hatte ich für meine Signatur

Code: Alles auswählen

$getSignature   = admFuncVariableIsValid($_GET, 'signature',  'bool', array('defaultValue' => false));
gesetzt.
Für die von Haus aus aktive Checkbox der Signatur ist obige Variable nicht erforderlich.

Die eigentliche Checkbox kommt daraufhin in Zeile ~580:

Code: Alles auswählen

$form->addCheckbox('signature', $gL10n->get('MAI_SEND_SIGNATURE'), 1);
Hier ohne weitere Parameter.

Wahrscheinlich nicht die eleganteste Lösung, aber funktioniert.
Antworten