Hallo, Gast! (Registrieren)

Letzte Ankündigung: Sicherheitsupdate: MyBB 1.8.26 veröffentlicht (10.03.21)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Drop down Menü mit Sprachvariablen definieren
#1
In einem PlugIn können im ACP im Auswahlfeld z.B. 10 Optionen gewäht werden.
PHP-Code:
// Drop down menu with 10 items
    $select10 implode("\n", array("select""0=No""1=Yes (Order 1)",
                                    "2=Yes (Order 2)""3=Yes (Order 3)",
                                    "4=Yes (Order 4)""5=Yes (Order 5)",
                                    "6=Yes (Order 6)""7=Yes (Order 7)",
                                    "8=Yes (Order 8)""9=Yes (Order 9)",
                                    "10=Yes (Order 10)")); 
Wie kann ich anstelle von
"0=NO",
"1=Yes (Order 1)",
"2=Yes (Order 2)",
"3=Yes (Order 3)",

usw. Sprachvariablen wie:
"0=$db->escape_string($lang->testing_select_00)",
"1=$db->escape_string($lang->testing_select_01)",
"2=$db->escape_string($lang->testing_select_02)",
"3=$db->escape_string($lang->testing_select_03)",

usw. verwenden.

Dies ist erforderlich, weil ich die Sprachdateien auch in Deutsch habe und je nach ACP-Einstellungen soll auch der Text auch in passender Sprache korrekt angezeigt werden.

All meine Versuche ergeben (wegen den Anführungszeichen am Anfang/Ende, mit/ohne etc?) eine PHP-Fehlermeldung der Zeile. Dies habe ich jetzt, meines Erachtens nach, in verschiedenen Kombinationen versucht. Vermutlich sehe ich den Wald vor lauter Bäumen nicht.

Die andere Sprachvariablen wie z.B. "name" und "description" funktionieren perfekt.
PHP-Code:
$setting = array(
        "name" => "org_testing_select",
        "title" => $db->escape_string($lang->testing_select),
        "description" => $db->escape_string($lang->testing_select_desc),
        "optionscode" => $select10,
        "value" => 0,
        "disporder" => $disp++,
        "gid" => intval($gid)
        );
    $db->insert_query("settings"$setting); 

Für Tipps und Hinweise vorab besten Dank.
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.26 | PHP: 7.4.14 | SQL: 5.7.28
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#2
"0" => $db->escape_string($lang->testing_select_00),

So sollte das eigentlich gehen.
Zitieren
#3
Danke für Dein Enagement, aber was so logisch klingt ist leider mit einem nagativen Ergebnis behaftet.

Wenn ich:
PHP-Code:
// Drop down menu with 10 items
    $select10 implode("\n", array("select""0"=>$db->escape_string($lang->testing_select_00),
"1"=>$db->escape_string($lang->testing_select_01),
"2"=>$db->escape_string($lang->testing_select_02), 
(usw.) verwende, wird mir die Auswahl gar nicht mehr angezeigt.

Was könnte da noch fehlen?
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.26 | PHP: 7.4.14 | SQL: 5.7.28
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#4
select gibt es in diesem Zusammenhang nicht als optioncode

Versuche checkbox (bei Mehrfachauswahl) oder radio (als Einzelwahl)
Zitieren
#5
(26.03.2021, 16:21)SvePu schrieb: select gibt es in diesem Zusammenhang nicht als optioncode

Hallo Sven,

warum nicht? Schau bitte hier
Ich weiß allerdings gerade nicht, warum die Sprachvariablen nicht im Array funktionieren sollten.
Zitieren
#6
Wie sieht es aus, wenn du die Sprachvariablen aus dem String 'herausholst'?
Code:
$setting = array(
# ...
    "optionscode"    => "select\n0=" . $db->escape_string($lang->testing_select_00) . "\n1=" . $db->escape_string($lang->testing_select_01) . "\n2=" . $db->escape_string($lang->testing_select_02) . "\n3=" . $db->escape_string($lang->testing_select_03),
# ...
);

[ExiTuS]
Neues Forum: MyBB 1.8.26 + innovatives Theme
Live Escape Game Forum
Erste Deutsche und Internationale Community und Diskussionsplattform für Live Escape und Adventure Games.
Zitieren
#7
So:
PHP-Code:
$select10 = ("select\n0=" $db->escape_string($lang->test_select_00) . "\n1=" $db->escape_string($lang->test_select_01) . "\n2=" $db->escape_string($lang->test_select_02) . "\n3=" $db->escape_string($lang->test_select_03) . "\n4=" $db->escape_string($lang->test_select_04) . "\n5=" $db->escape_string($lang->test_select_05) . "\n6=" $db->escape_string($lang->test_select_06) . "\n7=" $db->escape_string($lang->test_select_07) . "\n8=" $db->escape_string($lang->test_select_08) . "\n9=" $db->escape_string($lang->test_select_09) . "10=" $db->escape_string($lang->test_select_10)); 
scheint es zu funktionieren. Bei der Auswahl habe ich zwischen 9 und 10 eine Leerzeile. Lasse ich bei der letzten Definition (10) das \n weg ist die Leeerzeile weg. Verstehe muss ich das nicht.

Mit der Lösung kann ich den Inhalt der Variable $select10 bei
PHP-Code:
"optionscode" => $select10
bei mehreren Abfrageabschnitte verwenden

Besten Dank an Euch für die Hilfestellung.
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.26 | PHP: 7.4.14 | SQL: 5.7.28
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#8
(26.03.2021, 16:35)Schnapsnase schrieb:
(26.03.2021, 16:21)SvePu schrieb: select gibt es in diesem Zusammenhang nicht als optioncode

Hallo Sven,

warum nicht? Schau bitte hier
Ich weiß allerdings gerade nicht, warum die Sprachvariablen nicht im Array funktionieren sollten.

Opps....hast Recht, ich bin von Auswahlfelder (Selectboxen) ausgegangen...nicht von einem Auswahlmenü.. Blush
Zitieren
#9
(26.03.2021, 18:02)SvePu schrieb: Opps....hast Recht, ich bin von Auswahlfelder (Selectboxen) ausgegangen...nicht von einem Auswahlmenü.. Blush
und wie müsste es bei einem Auswahlmenü mit Sprachvariablen funktionieren?
Jammer nicht rum ...Du musst (k/m)eine Hilfe (nicht) annehmen!
MyBB: 1.8.26 | PHP: 7.4.14 | SQL: 5.7.28
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [301] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner]
Zitieren
#10
Hier findst du ein Beispiel, wie es prinzipell funktioniert, allerding sind es da im Optioncode Checkboxen und kein Auswahlmenü.

Die entsprechenden Sprachvariablen sind dann bspw. hier definiert.
Zitieren