Creo que esto es lo que pretendías hacer, se ve un poco extraño:
$fn = escape($mt->from_name);
$time = escape(date("F d, Y - h:i a", strtotime($mt->st_time)));
$stc = nl2br(escape($mt->st_content));
//START EMAIL
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
TEXT
. Input::get('rec_message') . <<<TEXT2
<br><br>
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br>
TEXT2
);
El comienzo de un heredoc debe ser lo último en una línea, así que después de eso, se desplegará e inmediatamente entrará en el bloque de texto. El fin del heredoc debe ser lo único en la línea, por lo que para concatenar tiene que desplegar una línea antes de poder usar el operador (.
). Tampoco necesita usar comillas ni agregar operadores cuando se encuentre dentro de un heredoc.
De hecho, es tan poco intuitivo que incluso el resaltador de sintaxis de StackOverflow se equivoca, el primer <<<TEXT
funciona bien cuando ejecuté esto:
$mt = new stdClass();
function escape($v){return $v;}
class User{static function sendNewTicket($a, $b, $c){echo $c;}}
class Input{static function get($a){return 'Got something';}}
$send_to = '';
$mt->from_name = 'Kitty';
$mt->st_time = '5th November';
$mt->st_content = <<<CONTENT
Dear Judy,
Lorem Dipsum and all that jazz.
Toodles,
Kitty.
CONTENT;
$fn = escape($mt->from_name);
$time = escape(date("F d, Y - h:i a", strtotime($mt->st_time)));
$stc = nl2br(escape($mt->st_content));
//START EMAIL
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
TEXT
. Input::get('rec_message') . <<<TEXT2
<br><br>
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br>
TEXT2
);
Produjo:
Hello -<br><br>Got something<br><br>
<strong>Conversation:</strong><br><br>
Kitty<br>
November 05, 2014 - 12:00 am<br>
Dear Judy,<br />
<br />
Lorem Dipsum and all that jazz.<br />
<br />
Toodles,<br />
Kitty.<br>
Aunque estoy seguro de que se verá mejor con tus datos.
Editar:Y como Blizz
muy correctamente señala a continuación, si guarda el rec_message
en una variable, puede evitar la concatenación por completo:
$recMessage = Input::get('rec_message');
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
$recMessage
<br><br>
<strong>Conversation:</strong><br><br>
$fn<br>
$time<br>
$stc<br>
TEXT
);
Editar 2 :Con los mensajes adicionales, debe usar algo como esto para simplificar el correo electrónico:
$messages = '';
foreach($st_messages->results() as $mt)
{
$fn = escape($mt->from_name);
$time = escape(date("F d, Y - h:i a", strtotime($mt->st_time)));
$stc = nl2br(escape($mt->st_content));
$messages .= <<<MESSAGE
$fn<br>
$time<br>
$stc<br><br>
MESSAGE;
}
$recMessage = Input::get('rec_message');
User::sendNewticket($send_to, 'Maintenance Ticket ' . Input::get('st_id'), <<<TEXT
Hello -<br><br>
$recMessage
<strong>Conversation:</strong><br><br>
$messages
Thanks,<br>
Support Team
TEXT
);
?>
Que con un poco de texto ficticio básico produce:
Hello -<br><br>
Got something
<strong>Conversation:</strong><br><br>
Person<br>
November 11, 2014 - 12:00 am<br>
My message blah blah<br><br>
sdfasdf<br>
April 11, 2014 - 12:00 am<br>
My message asdfasdf blah blah<br><br>
Thanks,<br>
Support Team