Hallo, Gast! (Registrieren)

Letzte Ankündigung: Sicherheitsupdate: MyBB 1.8.24 veröffentlicht (09.08.20)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
IF-Bedingung in "message" möglich!?
#1
Hallo,
es wird via PHP-Datei eine PN generiert. Kann innerhalb des Messagebereiches ein IF-Bedingung umgesetzt werden?
PHP-Code:
'message' => "
Nachrichtentext 
    if-Bedingung
Ergänzungstext
"


Meine Versuche die IF-Bedingung mit z.B:
PHP-Code:
'.if ($mybb_user['spaltenname'] == "inhalt") }.'
Ergänzungstext
'.}.' 
einzubinden funktionierten nicht. Auch andere Versuche schlugen fehl. Derzeit habe ich die Vermutung das es nicht möglich ist innerhalb der "Message" eine IF-Bedingung einzubinden.

Bevor ich da noch weiter rumexperimentiere mochte ich doch mal hier die Programmierer fragen ob mein Vorhaben überhaupt umsetzbar ist. Wenn ja, wie?

Danke für ein Feedback.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Hilfe(n) kann man lediglich anbieten. Wer Hilfe nicht annimmt, dem ist nicht zu helfen!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.10 | SQL: 5.7.28
Zitieren
#2
Das wäre ein möglicher Weg:

PHP-Code:
$etext "";
if(
$mybb_user['spaltenname'] == "inhalt")
{
    
$etext "Ergänzugstext";
}
//.....

'message' => "Nachrichtentext" $etext,

//..... 
Zitieren
#3
Hallo SvenPU,

Danke für den Tipp welchen ich zwar verstehe, aber vermutlich inkorrekt einfüge.

Hier der derzeitig funktionierender Teil:
PHP-Code:
$pm = array (
   'subject' => "$lang->text_1",
   'message' => "$lang->text_2",
   'icon' => '',
   'toid' => $mybb->settings['daten_uid'],
   'fromid' => $mybb->user['uid'],
   'do' => '',
   'pmid' => '',
   ); 
Füge ich Deine Anweisung vor $pm ein, erhalte ich eine PHP-Fehlermeldung.
Füge ich es zwischen Subject und Message ein, erhalte ich gleichfalls eine PHP-Fehlermeldung.
Fehler immer in dem von Dir angeregten Abschnitt. Egal was ich tue (mal mit , oder ; ergänze), es klappt nicht.

Würdest Du mir Dein Beispiel bitte mal im Zusammenspiel mit vorstehendem Abschnitt darlegen? (So dass der Zusatztext ($etext) nach $lang->text2 aufgerufen wird.)

Vorab besten Dank für dein Engagement und deine Hilfestellung.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Hilfe(n) kann man lediglich anbieten. Wer Hilfe nicht annimmt, dem ist nicht zu helfen!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.10 | SQL: 5.7.28
Zitieren
#4
Also Nebenbemerkung (jemand anderes wird dir sicher eine Lösung liefern): Ich würde dir raten dich mit PHP (oder Programmieren generell) näher zu beschäftigen. Das sind hier schon eher Basics, die mit MyBB-Support nicht mehr viel zu tun haben. Variablen in Anführungszeichen zu packen, finde ich auch eher unschön; und wenn dann bitte in geschweifte Klammern packen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
(Gestern, 16:27)StefanT schrieb: ...(jemand anderes wird dir sicher eine Lösung liefern): Ich würde dir raten dich mit PHP (oder Programmieren generell) näher zu beschäftigen. Das sind hier schon eher Basics, die mit MyBB-Support nicht mehr viel zu tun haben.

@StefanT
Hallo Stefan,
diese Antwort finde ich etwas unschön.
Warum sollte man sich hier nicht über "Basics" unterhalten können?
Ja, mybb.de ist ein Supportforum, setzt doch aber nicht voraus, dass man Programmierer ist, bzw. mit PHP ins Bett geht.
Von "Deinen" Basics dürften hier wohl sehr viele User (auch ich) weit entfernt sein...
Wo also solchen Fragen stellen??
Eröffne doch einfach ein Forum "PHP-Basics". Das würde diese Webseite evtl. sogar noch beflügeln, wenn sich denn hier überhaupt noch wer bereit erklärt, Hilfe zu leisten. - nachdenklich bin - Rolleyes
Zitieren
#6
Wink 
@Schnapsnase: Es gibt doch bereits ein Forum "Programmierung".
Zitieren
#7
Hier im Forum geht es ja nicht nur darum fertige Lösungen anzubieten, sondern auch die Fragesteller zu unterstützen selbst zu einer Lösung finden zu können.

Ich habe das Gefühl, dass Gerti hauptsächlich durch rumprobieren und durch vorgekauten Code "programmiert". Das kann man als Einstieg durchaus machen und es kann zu ersten Erfolgen führen, aber damit kommt man auf Dauer nicht weiter und man braucht meist viel mehr Zeit. Daher der Tipp sich gewisse Grundkenntnisse in PHP anzueignen. Als Einstieg bietet sich eine ganze simple Website mit PHP und MySQL an (ganz ohne MyBB); einfach um zu verstehen wie alles funktioniert.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#8
(Vor 11 Stunden)StefanT schrieb: Ich habe das Gefühl, ...
@StefanT
Dir ist sicherlich aus dem alltäglichen Leben hinreichend bekannt, dass man sich bzgl. Gefühlen täuschen kann. Dein Gefühl täuscht hier. Es möge Dir meinerseits jedoch selbstverständlich unbenommen bleiben.

Nein, ich habe derzeit keine Ambitionen Programierer zu werden, sondern baue ein existierendes PlugIn auf die Anforderungen der DSGVO in zweisprachiger Ausführung um. Hat bisher niemand gemacht. Darum bin ich schlichtweg auf Hilfestellungen angewiesen, es kommt letztlch allen MyBB-Anerndern zu Gute. Ich kann es aber auch lassen wenn es Dich stören sollte, einfach Klarstext schreiben und gut ist. Gerne darfst Du die Weiterentwicklung (dürfte für Dich Peanuts sein) übernehmen, ich trete da selbstverständlich dann in die zweite/dritte Reihe zurück.

Nebenbei: In den jüngsten PlugIn-Veröffentlichung sind immer noch Variable mt Anführungszeichen beinhaltet. Bisher konnte ich keine diesbezügliche Anmerkung von Dir híerzu lesen.
Wer fragt, ist gegebenenfalls für fünf Minuten ein Narr. Wer nicht fragt, bleibt ein Narr.
Hilfe(n) kann man lediglich anbieten. Wer Hilfe nicht annimmt, dem ist nicht zu helfen!
Aktive Version: MyBB: 1.8.24 | PHP: 7.4.10 | SQL: 5.7.28
Zitieren
#9
(Vor 10 Stunden)Gerti schrieb: Nebenbei: In den jüngsten PlugIn-Veröffentlichung sind immer noch Variable mt Anführungszeichen beinhaltet. Bisher konnte ich keine diesbezügliche Anmerkung von Dir híerzu lesen.

Es ging StefanT nicht um IF-Statements mit Anführungszeichen (das hattest du vor der Korrektur deines Beitrags erwähnt). Sowas hier ist normal:

if ($foo == "Bar")

StefanT ging es (glaube ich) um das Array.

PHP-Code:
$pm = array (
   'subject' => "$lang->text_1",
   'message' => "$lang->text_2",
   'icon' => '',
   'toid' => $mybb->settings['daten_uid'],
   'fromid' => $mybb->user['uid'],
   'do' => '',
   'pmid' => '',
   ); 

schöner wäre:

PHP-Code:
$pm = array (
   'subject' => $lang->text_1,
   'message' => $lang->text_2,
   'icon' => '',
   'toid' => $mybb->settings['daten_uid'],
   'fromid' => $mybb->user['uid'],
   'do' => '',
   'pmid' => '',
   ); 

Der Index "subject" oder "message" nimmt so oder so den Datentypen an, welcher in $lang->text_1 steht, somit brauchst du es nicht unbedingt in " zu setzen. Oder du hast irgendetwas ganz spezielles vor und willst die Variable zusätzlich mit Text versehen, aber auch dann wäre folgende Konstellation sinnvoller:


PHP-Code:
$pm = array (
   'subject' => $lang->text_1 "text",
   'message' => $lang->text_2 "text",
   'icon' => '',
   'toid' => $mybb->settings['daten_uid'],
   'fromid' => $mybb->user['uid'],
   'do' => '',
   'pmid' => '',
   ); 
Zitieren
#10
Ich habe dich an keiner Stelle kritisiert, sondern nur darauf hingewiesen, dass du dein Anliegen leichter und schneller umsetzen könntest, wenn du dich näher mit PHP beschäftigst. Auch typische Sicherheitslücken (SQL-Injection, XSS,...) sollte man auf dem Schirm haben, da diese fatale Auswirkungen haben können.

Dass du auf Hilfe angewiesen bist, ist mir klar; das MyBB ist nun einmal sehr kompliziert. Grundkenntnisse was PHP-Syntax und Debugging angeht, würden DIR sicher weiterhelfen.
(Vor 10 Stunden)Gerti schrieb: Nebenbei: In den jüngsten PlugIn-Veröffentlichung sind immer noch Variable mt Anführungszeichen beinhaltet. Bisher konnte ich keine diesbezügliche Anmerkung von Dir híerzu lesen.
Diesen Seitenhieb hättest du dir sparen können, da ich neue Plugins überhaupt nicht überprüfe oder überhaupt anschaue. Du musst meine Tipps nicht befolgen, aber sie würden die Lesbarkeit und Verständlichkeit deines Codes verbessern.
Für erfahrene Entwickler weise ich gerne auf die Development-Standards des MyBB hin: https://docs.mybb.com/1.8/development/standards/
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  IF-Bedingung für Boardsprache Gerti 32 452 23.10.2020, 17:17
Letzter Beitrag: itsmeJAY