[Duda] Cambiar el emisor del mensaje privado de la opción 'Reportar al admin'

Started by Jotade29, August 16, 2022, 05:41:48 PM

Previous topic - Next topic

Jotade29

Buenas, primero que nada avisar que uso la versión 2.0.19

La opción reportar al admin en mensaje privado no está activada por defecto, y permite reportar al administrador los mensajes privados. Partiendo de ahí, me interesa cambiar el emisor del mensaje privado cuando eso. Al administrador le llega que ha emitido el mensaje privado la persona que reporta, y me gustaría que fuese distinto, es decir, que el mensaje lo enviase un usuario predeterminado que tengo como 'bot', que tiene la id 2.

En el manual sale que esto se puede manipular mediante:

$pmfrom = array(
'id' => ,
'name' => "",
'username' => ""
);
           

Pero, dentro de los recursos, en el archivo personalmessage.php, la función que hace eso es "ReportMessage()", y en su estructura no veo que incluya nada parecido a $pmfrom, y no sé cómo modificarlo.

Lo único que se me ha ocurrido que no ha valido es:

// Make the body.
$report_body = str_replace(array('{REPORTER}', '{SENDER}'), array(un_htmlspecialchars($user_info['name']), $memberFromName), $txt['pm_report_pm_user_sent']);
$report_body .= "\n" . '[b]' . $_POST['reason'] . '[/b]' . "\n\n";
if (!empty($recipients))
$report_body .= $txt['pm_report_pm_other_recipients'] . ' ' . implode(', ', $recipients) . "\n\n";
$report_body .= $txt['pm_report_pm_unedited_below'] . "\n" . '[quote author=' . (empty($memberFromID) ? '"' . $memberFromName . '"' : $memberFromName . ' link=action=profile;u=' . $memberFromID . ' date=' . $time) . ']' . "\n" . un_htmlspecialchars($body) . '[/quote]';

// Plonk it in the array ;)
$messagesToSend[$cur_language] = array(
'subject' => ($smcFunc['strpos']($subject, $txt['pm_report_pm_subject']) === false ? $txt['pm_report_pm_subject'] : '') . un_htmlspecialchars($subject),
'body' => $report_body,
'recipients' => array(
'to' => array(),
'bcc' => array()
),
);

añadir después de $messagetosend:

$pmfrom = array(
'id' => 2,
'name' => "bot",
'username' => "bot"
);

¿Alguna idea sobre cómo poder hacer para que los mensajes privados que recibe el admin, sobre reportes de mensajes privados, tenga como emisor al  id que yo quiera, y no que el que envía el mensaje privado sea la misma persona que lo reporta (está así por defecto)? Ojalá sepas cómo hacerlo @Diego Andrés

Mucahs gracias :)


Jotade29

Solventado. He estado tocando la línea del sendmp, que estaba en un bucle, y añadía el $pmfrom y no me lo leía, la razón era que lo estaba poniendo en el lugar del "$outbox_store", y en último lugar está el pmfrom.

Gracias igual  :P

Advertisement: