Client login w/o email
$ticket=null;
$response_stuff=0;
$staff_id=0;
if(preg_match ("",$var,$regs)) {
$extid=trim(preg_replace("/", "", $regs));
$ticket= new Ticket(Ticket:($extid));
//Allow mismatched emails?? For now hell NO.
if(!is_object($ticket) || strcasecmp($ticket->getEmail(),$var)){
//$ticket=null;
$sql="SELECT username,staff_id FROM " . STAFF_TABLE . " WHERE email='" . $var . "' ";
$query=db_query($sql);
while($row = mysql_fetch_array($query)) {
$senderUsername = $row;
$staff_id=$row;
}
if (!$senderUsername){
$ticket=null;
}
else
{
$response_stuff=1;
}}}
$errors=array();
$msgid=0;
if(!$ticket){ //New tickets...
$ticket=Ticket:($var,$errors,'email');
if(!is_object($ticket) || $errors){
api_exit(EX_DATAERR,'Ticket create Failed '.implode("\n",$errors)."\n\n");
}
$msgid=$ticket->getLastMsgId();
}else{
$message=$var;
//Strip quoted reply...TODO: figure out how mail clients do it without special tag..
if($cfg->stripQuotedReply() && ($tag=$cfg->getReplySeparator()) && strpos($var,$tag))
list($message)=split($tag,$var);
//post message....postMessage does the cleanup.
if($response_stuff==1){
if(!($ticket->postResponse($ticket->getMessageId(),$message,'none',false,true,$staff_id))){
api_exit(EX_DATAERR,"Unable to post message \n\n $message\n");
}}
else
{
if(!($msgid=$ticket->postMessage($message,'Email',$var,$var))) {
api_exit(EX_DATAERR,"Unable to post message \n\n $message\n");
}}}
on /include/class.ticket.php
add this function
function getMessageId(){
$cur_mes_id=0;
$sql ='SELECT max(msg_id) FROM '.TICKET_MESSAGE_TABLE.' WHERE ticket_id='.db_input($this->getId());
if(($res=db_query($sql)) && db_num_rows($res))
list($cur_mes_id)=db_fetch_row($res);
return $cur_mes_id;
}
and add this on function postResponse