From 89c07804e5b503e0a712457d44a27b61a5ed18b2 Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Wed, 23 Oct 2013 14:32:35 +0000
Subject: [PATCH] Support ticket thread items in email templates

* %{ticket.thread.original} represents the original message submitted when
    creating the ticket
* %{ticket.thread.lastmessage} represents the most recent message submitted
    by the end user
---
 include/class.thread.php | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/include/class.thread.php b/include/class.thread.php
index 29e1b1d57..a1a79e391 100644
--- a/include/class.thread.php
+++ b/include/class.thread.php
@@ -215,6 +215,19 @@ class Thread {
                 && $thread->getId()
                 )?$thread:null;
     }
+
+    function getVar($name) {
+        switch ($name) {
+        case 'original':
+            return Message::firstByTicketId($this->ticket->getId())
+                ->getBody();
+            break;
+        case 'last_message':
+        case 'lastmessage':
+            return $this->ticket->getLastMessage()->getBody();
+            break;
+        }
+    }
 }
 
 
@@ -806,10 +819,18 @@ class Message extends ThreadEntry {
     }
 
     function lastByTicketId($ticketId) {
+        return self::byTicketId($ticketId);
+    }
+
+    function firstByTicketId($ticketId) {
+        return self::byTicketId($ticketId, false);
+    }
+
+    function byTicketId($ticketId, $last=true) {
 
         $sql=' SELECT thread.id FROM '.TICKET_THREAD_TABLE.' thread '
             .' WHERE thread_type=\'M\' AND thread.ticket_id = '.db_input($ticketId)
-            .' ORDER BY thread.id DESC LIMIT 1';
+            .sprintf(' ORDER BY thread.id %s LIMIT 1', $last ? 'DESC' : 'ASC');
 
         if (($res = db_query($sql)) && ($id = db_result($res)))
             return Message::lookup($id);
-- 
GitLab