Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Fri, Feb 7, 4:54 AM

in-portal

Index: trunk/kernel/units/email_messages/email_messages_event_handler.php
===================================================================
--- trunk/kernel/units/email_messages/email_messages_event_handler.php (revision 1717)
+++ trunk/kernel/units/email_messages/email_messages_event_handler.php (revision 1718)
@@ -1,138 +1,138 @@
<?php
class EmailMessagesEventHandler extends InpDBEventHandler
{
/**
* Replace id passed with id of email message
*
* @param kEvent $event
*/
function getPassedID(&$event)
{
- $email_event_id = $this->getEmailEventId();
+ $email_event_id = (int)$this->getEmailEventId();
$object =& $event->getObject();
$parent_info = $object->getLinkedInfo();
$sql = 'SELECT '.$object->IDField.' FROM '.$object->TableName.' WHERE ('.$parent_info['ForeignKey'].' = '.$parent_info['ParentId'].') AND (EventId = '.$email_event_id.')';
$id = (int)$this->Conn->GetOne($sql);
if(!$id)
{
$object->SetDBField('EventId', $email_event_id);
$object->SetDBField('Headers', $this->Application->ConfigValue('Smtp_DefaultHeaders') );
}
return $id;
}
function getEmailEventId()
{
return parent::getPassedID( new kEvent('emailevents:OnDummy') );
}
/**
* If loading empty item, then set parent id
*
* @param kEvent $event
*/
function OnBeforeItemLoad(&$event)
{
if( !$event->getEventParam('id') )
{
$this->OnNew($event);
$event->status = erFATAL;
}
}
/**
* Parse message template (split into header, subject & body)
*
* @param kEvent $event
*/
function OnAfterItemLoad(&$event)
{
$object =& $event->getObject();
$lines = explode("\n", $object->GetDBField('Template') );
$headers = Array();
foreach($lines as $line)
{
if( strlen(trim($line)) == 0 || ($line == '.') ) break;
$parts = explode(':', $line, 2);
if(strtolower($parts[0]) == 'subject')
{
$object->SetDBField('Subject', trim($parts[1]) );
}
else
{
$headers[] = $line;
}
}
$object->SetDBField('Headers', implode("\n", $headers) );
$message_body = '';
while( (list($line_id,$line) = each($lines)) )
{
$message_body .= $line;
}
$object->SetDBField('Body', $message_body);
}
/**
* Merge body+subject+headers into message template
*
* @param kEvent $event
*/
function OnBeforeItemUpdate(&$event)
{
$this->parseVirtualFields($event);
}
/**
* Merge body+subject+headers into message template
*
* @param kEvent $event
*/
function OnBeforeItemCreate(&$event)
{
$this->parseVirtualFields($event);
}
/**
* Merge body+subject+headers into message template
*
* @param kEvent $event
*/
function parseVirtualFields(&$event)
{
$object =& $event->getObject();
if( $object->GetDBField('Headers') || $object->GetDBField('Subject') || $object->GetDBField('Body') )
{
$ret = $object->GetDBField('Headers');
if($ret) $ret .= "\n";
$ret = $this->removeTrailingCRLF($ret);
$ret .= 'Subject: '.$object->GetDBField('Subject')."\n\n";
$ret .= $object->GetDBField('Body');
$object->SetDBField('Template', $ret);
}
}
/**
* Remove trailing CR/LF chars from string
*
* @param string $string
* @return string
*/
function removeTrailingCRLF($string)
{
return preg_replace('/(\n|\r)+/',"\\1",$string);
}
}
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/email_messages/email_messages_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.2
\ No newline at end of property
+1.3
\ No newline at end of property
Index: trunk/core/units/email_messages/email_messages_event_handler.php
===================================================================
--- trunk/core/units/email_messages/email_messages_event_handler.php (revision 1717)
+++ trunk/core/units/email_messages/email_messages_event_handler.php (revision 1718)
@@ -1,138 +1,138 @@
<?php
class EmailMessagesEventHandler extends InpDBEventHandler
{
/**
* Replace id passed with id of email message
*
* @param kEvent $event
*/
function getPassedID(&$event)
{
- $email_event_id = $this->getEmailEventId();
+ $email_event_id = (int)$this->getEmailEventId();
$object =& $event->getObject();
$parent_info = $object->getLinkedInfo();
$sql = 'SELECT '.$object->IDField.' FROM '.$object->TableName.' WHERE ('.$parent_info['ForeignKey'].' = '.$parent_info['ParentId'].') AND (EventId = '.$email_event_id.')';
$id = (int)$this->Conn->GetOne($sql);
if(!$id)
{
$object->SetDBField('EventId', $email_event_id);
$object->SetDBField('Headers', $this->Application->ConfigValue('Smtp_DefaultHeaders') );
}
return $id;
}
function getEmailEventId()
{
return parent::getPassedID( new kEvent('emailevents:OnDummy') );
}
/**
* If loading empty item, then set parent id
*
* @param kEvent $event
*/
function OnBeforeItemLoad(&$event)
{
if( !$event->getEventParam('id') )
{
$this->OnNew($event);
$event->status = erFATAL;
}
}
/**
* Parse message template (split into header, subject & body)
*
* @param kEvent $event
*/
function OnAfterItemLoad(&$event)
{
$object =& $event->getObject();
$lines = explode("\n", $object->GetDBField('Template') );
$headers = Array();
foreach($lines as $line)
{
if( strlen(trim($line)) == 0 || ($line == '.') ) break;
$parts = explode(':', $line, 2);
if(strtolower($parts[0]) == 'subject')
{
$object->SetDBField('Subject', trim($parts[1]) );
}
else
{
$headers[] = $line;
}
}
$object->SetDBField('Headers', implode("\n", $headers) );
$message_body = '';
while( (list($line_id,$line) = each($lines)) )
{
$message_body .= $line;
}
$object->SetDBField('Body', $message_body);
}
/**
* Merge body+subject+headers into message template
*
* @param kEvent $event
*/
function OnBeforeItemUpdate(&$event)
{
$this->parseVirtualFields($event);
}
/**
* Merge body+subject+headers into message template
*
* @param kEvent $event
*/
function OnBeforeItemCreate(&$event)
{
$this->parseVirtualFields($event);
}
/**
* Merge body+subject+headers into message template
*
* @param kEvent $event
*/
function parseVirtualFields(&$event)
{
$object =& $event->getObject();
if( $object->GetDBField('Headers') || $object->GetDBField('Subject') || $object->GetDBField('Body') )
{
$ret = $object->GetDBField('Headers');
if($ret) $ret .= "\n";
$ret = $this->removeTrailingCRLF($ret);
$ret .= 'Subject: '.$object->GetDBField('Subject')."\n\n";
$ret .= $object->GetDBField('Body');
$object->SetDBField('Template', $ret);
}
}
/**
* Remove trailing CR/LF chars from string
*
* @param string $string
* @return string
*/
function removeTrailingCRLF($string)
{
return preg_replace('/(\n|\r)+/',"\\1",$string);
}
}
?>
\ No newline at end of file
Property changes on: trunk/core/units/email_messages/email_messages_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.2
\ No newline at end of property
+1.3
\ No newline at end of property

Event Timeline