Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.21 veröffentlicht (11.06.19)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Postbit var_dump($post);
#1
Guten Abend zusammen,

ich benutze derzeit die Hook "postbit" und habe im Plugin in der Funktion den Parameter/Argument $post übergeben. So wie angegeben. Wenn ich nun mit var_dump($post); alles anzeigen lasse, wird mir in der Threadansicht zwar beispielsweise $post['username'] angezeigt aber bspw. nicht $post['userstars']. Die Sterne werden trotzdem im postbit Template geladen beim jeweiligen Benutzer. Wieso zeigt mir der var_dump nichts?

Wenn ich versuche $post['userstars'] zu verändern mit bspw:

$post['userstars'] .= "Test";

werden weiterhin nur die Sterne angezeigt im jeweiligen post ich sehe aber keine Veränderung. Ich grüble den ganzen Tag schon. Was kann das sein? Vorallem weil es in einem anderen Plugin damals funktionierte.

PS: Mit dem Handy geschrieben.

Grüße

JAY
My  PHP-Version: 7.3.1 | MySQL-Version: 5.7.21
My  Plugins: See all
------
Es gibt nur 10 Arten von Menschen. Die, die binär verstehen - und die, die es nicht tun
Zitieren
#2
Sollte aber angehängt werden.

Wenn ich im Plugin zB:
PHP-Code:
$plugins->add_hook("postbit""myplugin_post");

function 
myplugin_post(&$post)
{
    $post['userstars'] .= "Test";

    var_dump($post['userstars']);


schreibe, wird mir "Test" hinter den Sternen sowohl über var_dump() ausgegeben, als auch im Postbit angezeigt.
Zitieren
#3
(03.08.2019, 22:51)doylecc schrieb: Sollte aber angehängt werden.

Wenn ich im Plugin zB:
PHP-Code:
$plugins->add_hook("postbit""myplugin_post");

function 
myplugin_post(&$post)
{
    $post['userstars'] .= "Test";

    var_dump($post['userstars']);


schreibe, wird mir "Test" hinter den Sternen sowohl über var_dump() ausgegeben, als auch im Postbit angezeigt.

Erstmal danke für deine Antwort.

Folgendes habe ich gecodet:


PHP-Code:
$plugins->add_hook("postbit""plugin_showthread"); 

PHP-Code:
function plugin_showthread(&$post)
{
    global $mybb$post$db;

    echo "<pre>";
    var_dump($post);
    echo "</pre>";


Ergibt folgenden var_dump (für jeden Beitrag logischerweise):

PHP-Code:
array(106) {
  ["uid"]=>
  string(1"1"
  ["username"]=>
  string(5"admin"
  ["password"]=>
  string(32"..."
  ["salt"]=>
  string(8"..."
  ["loginkey"]=>
  string(50"..."
  ["email"]=>
  string(17"info@beispiel.de"
  ["postnum"]=>
  string(2"14"
  ["threadnum"]=>
  string(1"4"
  ["avatar"]=>
  string(0""
  ["avatardimensions"]=>
  string(0""
  ["avatartype"]=>
  string(1"0"
  ["usergroup"]=>
  string(1"4"
  ["additionalgroups"]=>
  string(0""
  ["displaygroup"]=>
  string(1"0"
  ["usertitle"]=>
  string(0""
  ["regdate"]=>
  string(10"1564761063"
  ["lastactive"]=>
  string(10"1564871224"
  ["lastvisit"]=>
  string(10"1564840122"
  ["lastpost"]=>
  string(10"1564773214"
  ["website"]=>
  string(0""
  ["icq"]=>
  string(1"0"
  ["yahoo"]=>
  string(0""
  ["skype"]=>
  string(0""
  ["google"]=>
  string(0""
  ["birthday"]=>
  string(0""
  ["birthdayprivacy"]=>
  string(3"all"
  ["signature"]=>
  string(0""
  ["allownotices"]=>
  string(1"1"
  ["hideemail"]=>
  string(1"0"
  ["subscriptionmethod"]=>
  string(1"0"
  ["invisible"]=>
  string(1"0"
  ["receivepms"]=>
  string(1"1"
  ["receivefrombuddy"]=>
  string(1"0"
  ["pmnotice"]=>
  string(1"1"
  ["pmnotify"]=>
  string(1"1"
  ["buddyrequestspm"]=>
  string(1"1"
  ["buddyrequestsauto"]=>
  string(1"0"
  ["threadmode"]=>
  string(0""
  ["showimages"]=>
  string(1"1"
  ["showvideos"]=>
  string(1"1"
  ["showsigs"]=>
  string(1"1"
  ["showavatars"]=>
  string(1"1"
  ["showquickreply"]=>
  string(1"1"
  ["showredirect"]=>
  string(1"1"
  ["ppp"]=>
  string(1"0"
  ["tpp"]=>
  string(1"0"
  ["daysprune"]=>
  string(1"0"
  ["dateformat"]=>
  string(0""
  ["timeformat"]=>
  string(0""
  ["timezone"]=>
  string(1"0"
  ["dst"]=>
  string(1"0"
  ["dstcorrection"]=>
  string(1"0"
  ["buddylist"]=>
  string(0""
  ["ignorelist"]=>
  string(0""
  ["style"]=>
  string(1"0"
  ["away"]=>
  string(1"0"
  ["awaydate"]=>
  string(1"0"
  ["returndate"]=>
  string(1"0"
  ["awayreason"]=>
  string(0""
  ["pmfolders"]=>
  string(24"1**$%%$2**$%%$3**$%%$4**"
  ["notepad"]=>
  string(0""
  ["referrer"]=>
  string(1"0"
  ["referrals"]=>
  string(1"0"
  ["reputation"]=>
  string(1"0"
  ["regip"]=>
  string(16""
  ["lastip"]=>
  string(16""
  ["language"]=>
  string(0""
  ["timeonline"]=>
  string(4"9673"
  ["showcodebuttons"]=>
  string(1"1"
  ["totalpms"]=>
  string(1"0"
  ["unreadpms"]=>
  string(1"0"
  ["warningpoints"]=>
  string(1"0"
  ["moderateposts"]=>
  string(1"0"
  ["moderationtime"]=>
  string(1"0"
  ["suspendposting"]=>
  string(1"0"
  ["suspensiontime"]=>
  string(1"0"
  ["suspendsignature"]=>
  string(1"0"
  ["suspendsigtime"]=>
  string(1"0"
  ["coppauser"]=>
  string(1"0"
  ["classicpostbit"]=>
  string(1"0"
  ["loginattempts"]=>
  string(1"0"
  ["loginlockoutexpiry"]=>
  string(1"0"
  ["usernotes"]=>
  string(0""
  ["sourceeditor"]=>
  string(1"0"
  ["userusername"]=>
  string(5"admin"
  ["pid"]=>
  string(1"3"
  ["tid"]=>
  string(1"3"
  ["replyto"]=>
  string(1"0"
  ["fid"]=>
  string(1"2"
  ["subject"]=>
  string(6"132123"
  ["icon"]=>
  string(1"0"
  ["dateline"]=>
  string(10"1564771310"
  ["message"]=>
  string(6"123123"
  ["ipaddress"]=>
  string(16""
  ["includesig"]=>
  string(1"0"
  ["smilieoff"]=>
  string(1"0"
  ["edituid"]=>
  string(1"0"
  ["edittime"]=>
  string(1"0"
  ["editreason"]=>
  string(0""
  ["visible"]=>
  string(1"1"
  ["ufid"]=>
  string(1"1"
  ["fid1"]=>
  string(0""
  ["fid2"]=>
  string(0""
  ["fid3"]=>
  string(11"Undisclosed"
  ["fid7"]=>
  string(17"..."
  ["editusername"]=>
  NULL



... wenn ich in der Funktion zusätzlich folgendes dranhänge:

PHP-Code:
$post['userstars'] .= "Test"

... dann ergibt der var_dump, dass in $post['userstars'] folgendes steht:

PHP-Code:
  ["userstars"]=>
  string(4"Test" 

... entferne ich es wieder, taucht userstars gar nicht mehr auf (wie oben im var_dump).

Die Ansicht bleibt immer wie folgt (siehe Screen):

   
My  PHP-Version: 7.3.1 | MySQL-Version: 5.7.21
My  Plugins: See all
------
Es gibt nur 10 Arten von Menschen. Die, die binär verstehen - und die, die es nicht tun
Zitieren
#4
Nimm mal $post aus der Liste der globalisierten Variablen raus. Das wird doch schon per Referenz als Fuktionsparameter übergeben.
Wenn dann "userstars" auch noch nicht bei var_dump($post) auftaucht, nimm stattdessen mal print_r($post).
Wie viele Elemente var_dump() maximal anzeigt, hängt nämlich auch von den xdebug-Einstellungen ab.
Zitieren
#5
Ich könnte schwören ich hätte gestern $post aus den globalisierten Variablen rausgenommen und es hatte nicht funktioniert. Naja, nun funktioniert es. Danke dir.
My  PHP-Version: 7.3.1 | MySQL-Version: 5.7.21
My  Plugins: See all
------
Es gibt nur 10 Arten von Menschen. Die, die binär verstehen - und die, die es nicht tun
Zitieren