MyBB.de Forum

Normale Version: Hilfe beim User Taggen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey ihr Lieben,

möglich das es eine völlig bescheuerte Frage ist oder ich einfach den Wald vor lauter Bäumen gerade nicht sehe.
Ich habe bei mir im Forum das EC - Mention User (1.0) eingebaut und es funktioniert an sich auch wunderbar. User lassen sich taggen und werden dann auf den entsprechenden Thread per PN verwiesen. Und hier kommt dann auch schon die doofe Frage, denn es verweist eben NUR auf den Anfang des Threads, aber nicht auf den Post selber in dem man getagged wurde. Es betrifft hierbei aber Threads, wo der Post, in dem man getagged wurde erst auf der 10 oder 12 Seite oder noch weiter hinten ist.
In der PN, die man erstellt ist ja auch Thread angegeben, aber was muss ich dort einsetzen, damit er auf den Post verweist.
Im Screenshot ist die Foreneinstellung zu sehen und ich habe auch schon versucht das Thread mit Post auszutauschen, nur führt er dann nirgends mehr hin sondern man bekommt eine Nachricht: Du wurdest hier getaggt: {post}

Vielen lieben Dank schon mal für die Hilfe.
Verwende sonst mal MyAlerts und dvz mention da gelangt man zum Post in dem man erwähnt wurde.
Dort kannst du leider nicht direkt auf den Post verlinken, ohne das Plugin etwas umzubauen, weil in dem Moment, wo die PN gesendet wird, der Post noch gar keine eigene ID besitzt.
Das kann man gut in der Datei inc/datahandlers/post.php sehen:
PHP-Code:
$plugins->run_hooks("datahandler_post_insert_post"$this);

$this->pid $db->insert_query("posts"$this->post_insert_data); 

In der oberen Zeile wird die PN durch das Plugin gesendet und erst darunter wird die pid für den Post erzeugt.

Es könnte evtl. funktionieren, wenn du den Pluginhook zu "datahandler_post_insert_post_end" wechselst, dann müsstest du eine pid bekommen können, du die für den direkten Link verwenden kannst.



Ich habe gerade mal nachgeschaut, es muss scheinbar gar nicht so viel geändert werden im Plugin.
Suche nach Zeile 13:
PHP-Code:
$plugins->add_hook("datahandler_post_insert_post""user_tagging_datahandler_post_insert_post"); 

und ändere sie zu:
PHP-Code:
$plugins->add_hook("datahandler_post_insert_post_end""user_tagging_datahandler_post_insert_post"); 

und suche nach dieser Funktion (ab Zeile 158):
PHP-Code:
function user_tagging_datahandler_post_insert_post(&$post) {
  global $mybb;
  //pull vars from object
  $msg $post->post_insert_data['message'];
  $tid $post->post_insert_data['tid'];
  $time $post->post_insert_data['dateline'];

  //if they have tagging disabled, do nothing
  if(!$mybb->settings['user_tagging_on']) {
     return $msg;
  }

  //build the pm from user settings
  $pmBody $mybb->settings['user_tagging_body'];
  $pmBody str_replace('{thread}'"[url=" $mybb->settings["bburl"] . "/showthread.php?tid=" $tid "]" $mybb->settings["bburl"] . "/showthread.php?tid=" $tid "[/url]"$pmBody);

  $msg user_tagging_tag($time$pmBody$msg);

  $post->post_insert_data['message'] = $msg;
  return $post;


und ersetze sie durch:
PHP-Code:
function user_tagging_datahandler_post_insert_post(&$post) {
  global $mybb;
  //pull vars from object
  $msg $post->post_insert_data['message'];
  $tid $post->post_insert_data['tid'];
  $time $post->post_insert_data['dateline'];
  $pid = (int)$post->pid;

  //if they have tagging disabled, do nothing
  if(!$mybb->settings['user_tagging_on']) {
     return $msg;
  }

  //build the pm from user settings
  $pmBody $mybb->settings['user_tagging_body'];
  $pmBody str_replace('{thread}'"[url=" $mybb->settings["bburl"] . "/showthread.php?tid=" $tid "&pid=" $pid "#pid" $pid "]" $mybb->settings["bburl"] . "/showthread.php?tid=" $tid "&pid=" $pid "#pid" $pid "[/url]"$pmBody);

  $msg user_tagging_tag($time$pmBody$msg);

  $post->post_insert_data['message'] = $msg;
  return $post;


Dann sollte direkt auf den Post in der PN verlinkt werden
So endlich mal dazu gekommen deine Variante umzusetzen.
Vielen Vielen Vielen Dank... du bist unbezahlbar. Es hat wunderbar funktioniert.