Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


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.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
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?
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
Zitieren
#4
select gibt es in diesem Zusammenhang nicht als optioncode

Versuche checkbox (bei Mehrfachauswahl) oder radio (als Einzelwahl)
Zitieren
#5
(26.03.2021, 15: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]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
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.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
Zitieren
#8
(26.03.2021, 15:35)Schnapsnase schrieb:
(26.03.2021, 15: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, 17: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?
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
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