Index: branches/unlabeled/unlabeled-1.66.2/core/kernel/processors/main_processor.php
===================================================================
diff -u -r7696 -r7750
--- branches/unlabeled/unlabeled-1.66.2/core/kernel/processors/main_processor.php (.../main_processor.php) (revision 7696)
+++ branches/unlabeled/unlabeled-1.66.2/core/kernel/processors/main_processor.php (.../main_processor.php) (revision 7750)
@@ -940,12 +940,19 @@
return $this->Application->Phrase($root_phrase);
}
+ /**
+ * Allows to attach file directly from email event template
+ *
+ * @param Array $params
+ */
function AttachFile($params)
{
- $email_object =& $this->Application->recallObject('kEmailMessage');
+ $esender =& $application->recallObject('EmailSender'.(isset($params['special']) ? '.'.$params['special'] : ''));
+ /* @var $esender kEmailSendingHelper */
+
$path = FULL_PATH.'/'.$params['path'];
if (file_exists($path)) {
- $email_object->attachFile($path);
+ $esender->AddAttachment($path);
}
}
Index: branches/unlabeled/unlabeled-1.59.2/kernel/include/emailmessage.php
===================================================================
diff -u -r7734 -r7750
--- branches/unlabeled/unlabeled-1.59.2/kernel/include/emailmessage.php (.../emailmessage.php) (revision 7734)
+++ branches/unlabeled/unlabeled-1.59.2/kernel/include/emailmessage.php (.../emailmessage.php) (revision 7750)
@@ -903,107 +903,49 @@
function SendMail($From, $FromName, $ToAddr, $ToName, $Subject, $Text, $Html, $charset, $SendEvent,$FileName="",$FileLoc="",$QueueOnly=0,$extra_headers = array())
{
- $charset = GetRegionalOption('Charset');
-
- $HasFile = FALSE;
- $HasFile = (strlen($FileName)>0);
- $OB="----=_OuterBoundary_000".md5( uniqid (rand()));
- $boundary = "-----=".md5( uniqid (rand()));
- $f = "\"$FromName\" <".$From.">";
- $headers = "From: $f"."\n";
- $headers .= "MIME-Version: 1.0"."\n";
-
- $conn = &GetADODBConnection();
- $time = adodb_mktime();
-
- $sendTo = $ToName;
-
- if (strlen($sendTo) > 0) {
- $sendTo .= "($ToAddr)";
- }
- else {
- $sendTo = $ToAddr;
- }
- $sendTo=addslashes($sendTo);
- $sql = "INSERT INTO ".GetTablePrefix()."EmailLog VALUES ('', ".$conn->qstr($FromName).", ".$conn->qstr($sendTo).", ".$conn->qstr( str_replace("Subject:", "", $Subject) ).", $time, '$SendEvent')";
- $conn->Execute($sql);
-
- if(is_array($extra_headers))
- {
- foreach ($extra_headers as $h)
- {
- $headers .= $h."\n";
+ // $QueueOnly - {true = put in queue, false = nd now}
+
+ $application =& kApplication::Instance();
+
+ $esender =& $application->recallObject('EmailSender');
+ /* @var $esender kEmailSendingHelper */
+
+ $esender->SetFrom($From, $FromName);
+ $esender->AddTo($ToAddr, $ToName);
+ $esender->SetSubject($Subject);
+ $esender->SetBody(stripslashes($Html), $Text);
+
+ // set additional headers
+ if (is_array($extra_headers)) {
+ foreach ($extra_headers as $header) {
+ $header = explode(':', $header, 2);
+ $esender->SetEncodedHeader(trim($header[0]), trim($header[1]));
}
}
-
- $msg .="This is a multi-part message in MIME format."."\n"."\n";
- if($HasFile)
- {
- //Messages start with text/html alternatives in OB
- $headers.="Content-Type: multipart/mixed;"."\n"."\tboundary=\"".$OB."\""."\n"."\n";
- $msg.="--".$OB."\n";
- $msg.="Content-Type: multipart/alternative; boundary=\"$boundary\""."\n"."\n"."\n";
- }
- else {
- $headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\""."\n";
- }
-
- $application =& kApplication::Instance();
- $db =& $application->GetADODBConnection();
-
- if (!$Text) {
- $Text = strip_tags($Html);
- }
- else {
- $Text = strip_tags($Text);
- }
-
- $msg .= "--" . $boundary . "\n";
- $msg .= "Content-Type: text/plain; charset=\"$charset\""."\n";
- $msg .= "Content-Transfer-Encoding: 8bit"."\n"."\n";
- $msg .= stripslashes($Text);
- $msg .= "\n"."\n";
-
- if(strlen($Html)>0)
- {
- $msg .= "--" . $boundary . "\n";
- $msg .= "Content-Type: text/html; charset=\"".$charset."\""."\n";
- $msg .= "Content-Transfer-Encoding: 8bit"."\n"."\n";
- $msg .= stripslashes($Html);
- $msg .= "\n"."\n";
- }
- $msg .= "--" . $boundary . "--"."\n";
- if($HasFile)
- {
- if(!strlen($FileLoc)) {
+
+ // add attachment if any
+ if (strlen($FileName) > 0) {
+ if(!strlen($FileLoc)) {
$FileLoc = $FileName;
}
- $FileName = basename($FileName);
- $msg .= "\n"."--".$OB."\n";
- $msg.="Content-Type: application/octetstream;"."\n"."\tname=\"".$FileName."\""."\n";
- $msg.="Content-Transfer-Encoding: base64"."\n";
- $msg.="Content-Disposition: attachment;"."\n"."\tfilename=\"".$FileName."\""."\n"."\n";
+ $esender->AddAttachment($FileLoc, basename($FileName));
+ }
- //file goes here
- $fd=fopen ($FileLoc, "r");
- if($fd)
- {
- $FileContent=fread($fd,filesize($FileLoc));
- fclose ($fd);
- }
- $FileContent=chunk_split(base64_encode($FileContent));
- $msg .= $FileContent."\n";
- $msg .= "--".$OB."--"."\n";
- }
-
- if($this->MessagesSent>$this->MessagesAtOnce || $QueueOnly==1)
- {
- $this->EnqueueMail($ToAddr,$From,$Subject,$msg,$headers);
- }
- else
- {
- $this->DeliverMail($ToAddr,$From,$Subject,$msg,$headers);
- }
+ $status = $esender->Deliver();
+
+ if ($status) {
+ // write to log
+ $fields_hash = Array (
+ 'fromuser' => $FromName,
+ 'addressto' => $ToName ? $ToName.' ('.$ToAddr.')' : $ToAddr,
+ 'subject' => str_replace('Subject:', '', $Subject),
+ 'timestamp' => adodb_mktime(),
+ 'event' => $SendEvent,
+ );
+
+ $db =& $application->GetADODBConnection();
+ $db->doInsert($fields_hash, TABLE_PREFIX.'EmailLog');
+ }
}
}
Index: branches/unlabeled/unlabeled-1.15.2/admin/email/do_send.php
===================================================================
diff -u -r6103 -r7750
--- branches/unlabeled/unlabeled-1.15.2/admin/email/do_send.php (.../do_send.php) (revision 6103)
+++ branches/unlabeled/unlabeled-1.15.2/admin/email/do_send.php (.../do_send.php) (revision 7750)
@@ -69,15 +69,16 @@
$footer_body =& $footer[$is_html ? 'html' : 'plain'];
if (is_null($footer_body)) {
$application =& kApplication::Instance();
- $email_object =& $application->recallObject('kEmailMessage');
- $email_object->Clear();
+
+ $esender =& $application->recallObject('EmailSender');
+ /* @var $esender kEmailSendingHelper */
$sql = 'SELECT em.Template
FROM '.TABLE_PREFIX.'EmailMessage em
LEFT JOIN '.TABLE_PREFIX.'Events e ON e.EventId = em.EventId
WHERE em.LanguageId = '.$application->GetVar('m_lang').' AND e.Event = "COMMON.FOOTER"';
$footer_body = explode("\n\n", $application->Conn->GetOne($sql));
- $footer_body = "\r\n".($is_html ? '
'.$footer_body[1] : $email_object->convertHTMLtoPlain($footer_body[1]));
+ $footer_body = "\r\n".($is_html ? '
'.$footer_body[1] : $esender->ConvertToText($footer_body[1]));
}
return $footer_body;
}
Index: branches/unlabeled/unlabeled-1.16.2/core/units/general/inp1_parser.php
===================================================================
diff -u -r6106 -r7750
--- branches/unlabeled/unlabeled-1.16.2/core/units/general/inp1_parser.php (.../inp1_parser.php) (revision 6106)
+++ branches/unlabeled/unlabeled-1.16.2/core/units/general/inp1_parser.php (.../inp1_parser.php) (revision 7750)
@@ -54,7 +54,7 @@
global $objTemplate, $CurrentTheme, $objThemes, $objLanguageCache, $var_list;
if ($this->InpParsetInited) return true;
- $theme_id = $this->Application->GetVar('m_theme');
+ $theme_id = $this->Application->IsAdmin() ? 1 : $this->Application->GetVar('m_theme');
if ($theme_id) {
$CurrentTheme = $objThemes->GetItem($theme_id);
@@ -97,10 +97,9 @@
$pathchar, $objTemplate, $objTopicList, $objArticleList, $objPostingList, $objCensorList,
$objSmileys, $objPMList, $SubscribeAddress, $SubscribeError, $SubscribeResult, $application;
- $pathtoroot = $this->Application->IsAdmin() ? '../' : './';
- $pathtoroot = realpath($pathtoroot)."/";
+ $pathtoroot = FULL_PATH.'/';
- if (!file_exists($pathtoroot."config.php")) {
+ if (!file_exists(FULL_PATH.'/config.php')) {
echo "In-Portal is probably not installed, or configuration file is missing.
";
echo "Please use the installation script to fix the problem.
";
echo "Go to installation script
";
@@ -109,7 +108,7 @@
}
//ob_start();
- $FrontEnd=1;
+ $FrontEnd = 1;
$indexURL="../../index.php"; //Set to relative URL from the theme directory
@@ -130,7 +129,7 @@
$_local_t = $k4_referer;
$this->Application->RemoveVar('K4_Template_Referer');
}
- $objSession->SetVariable('Template_Referer', $_local_t);
+ $objSession->SetVariable('Template_Referer', isset($_local_t) ? $_local_t : '');
}
// process referer in session: end
Index: branches/unlabeled/unlabeled-1.103.2/kernel/parser.php
===================================================================
diff -u -r7392 -r7750
--- branches/unlabeled/unlabeled-1.103.2/kernel/parser.php (.../parser.php) (revision 7392)
+++ branches/unlabeled/unlabeled-1.103.2/kernel/parser.php (.../parser.php) (revision 7750)
@@ -19,6 +19,7 @@
$m_var_list["lang"] = $pieces[2];
$m_var_list["theme"] = $pieces[3];
$m_var_list['opener']=$pieces[4];
+ $m_var_list['wid']=$pieces[5];
}
else
{
@@ -27,13 +28,14 @@
$m_var_list["lang"] = $objLanguages->GetPrimary();
$m_var_list["theme"]= $objThemes->GetPrimaryTheme();
$m_var_list['opener']='s';
+ $m_var_list['wid']='';
}
}
function m_BuildEnv()
{
global $m_var_list, $m_var_list_update;
- $module_vars = Array('cat','p','lang','theme','opener');
+ $module_vars = Array('cat','p','lang','theme','opener','wid');
$ret = GenerateModuleEnv('m', $module_vars);
if( isset($GLOBALS['m_var_list_update']['cat']) ) unset($GLOBALS['m_var_list_update']['cat']);
return $ret;
@@ -43,7 +45,7 @@
{
global $m_var_list, $m_var_list_update;
$module_vars = Array( 'cat' => 'm_cat_id', 'p' => 'm_cat_page', 'lang' => 'm_lang',
- 'theme' => 'm_theme', 'opener' => 'm_opener');
+ 'theme' => 'm_theme', 'opener' => 'm_opener','wid' => 'm_wid');
$pass_cat = 0;
if (isset($m_var_list_update['cat'])) {
$pass_cat = 1;
Index: branches/unlabeled/unlabeled-1.1.96/kernel/admin/include/toolbar/sendmail.php
===================================================================
diff -u -r14 -r7750
--- branches/unlabeled/unlabeled-1.1.96/kernel/admin/include/toolbar/sendmail.php (.../sendmail.php) (revision 14)
+++ branches/unlabeled/unlabeled-1.1.96/kernel/admin/include/toolbar/sendmail.php (.../sendmail.php) (revision 7750)
@@ -6,44 +6,45 @@
$addrs = array();
$id_count=0;
-switch($_POST["idtype"])
-{
- case "user":
- $recip_ids = $_POST["idlist"];
- $idlist = explode(",",$recip_ids);
- foreach($idlist as $id)
- {
- $u = $objUsers->GetItemByField("ResourceId",$id);
- $r .= $u->Get("FirstName")." ".$u->Get("LastName");
- $r .="<".$u->Get("Email").">";
- $addr_list[] = $u->Get("Email");
- $reciplist[] = $r;
- $r = "";
- }
- $recip_ids = implode(",",$idlist);
- break;
-
- case "group":
- $recip_ids = $_POST["idlist"];
- $idlist = explode(",",$recip_ids);
- foreach($idlist as $id)
- {
- $g = $objGroups->GetItem($id);
- if(is_object($g))
- {
- $reciplist[] .= "<".$g->Get("Name").">";
- $ulist = $g->GetUserList();
- foreach($ulist as $uid)
- {
- $u = $objUsers->GetItem($uid);
- $addr_list[] = $u->Get("Email");
- }
- }
- }
- $recip_ids = implode(",",$idlist);
- break;
+if (isset($_POST['idtype'])) {
+ switch ($_POST['idtype']) {
+ case "user":
+ $recip_ids = $_POST["idlist"];
+ $idlist = explode(",",$recip_ids);
+ $r = '';
+ foreach($idlist as $id)
+ {
+ $u = $objUsers->GetItemByField("ResourceId",$id);
+ $r .= $u->Get("FirstName")." ".$u->Get("LastName");
+ $r .="<".$u->Get("Email").">";
+ $addr_list[] = $u->Get("Email");
+ $reciplist[] = $r;
+ $r = "";
+ }
+ $recip_ids = implode(",",$idlist);
+ break;
+
+ case "group":
+ $recip_ids = $_POST["idlist"];
+ $idlist = explode(",",$recip_ids);
+ foreach($idlist as $id)
+ {
+ $g = $objGroups->GetItem($id);
+ if(is_object($g))
+ {
+ $reciplist[] .= "<".$g->Get("Name").">";
+ $ulist = $g->GetUserList();
+ foreach($ulist as $uid)
+ {
+ $u = $objUsers->GetItem($uid);
+ $addr_list[] = $u->Get("Email");
+ }
+ }
+ }
+ $recip_ids = implode(",",$idlist);
+ break;
+ }
}
-
print <<
Index: branches/unlabeled/unlabeled-1.1.4/core/kernel/utility/email_send.php
===================================================================
diff -u -r7748 -r7750
--- branches/unlabeled/unlabeled-1.1.4/core/kernel/utility/email_send.php (.../email_send.php) (revision 7748)
+++ branches/unlabeled/unlabeled-1.1.4/core/kernel/utility/email_send.php (.../email_send.php) (revision 7750)
@@ -1114,7 +1114,12 @@
$this->headers = Array ();
$this->bodyPartNumber = false;
$this->parts = Array();
- $this->guessOptions = Array ();
+ $this->guessOptions = Array (
+ 'attachments' => Array(),
+ 'inline_attachments' => Array (),
+ 'text_part' => false,
+ 'html_part' => false,
+ );
$this->SetCharset(null, true);
}
Index: branches/unlabeled/unlabeled-1.170.2/core/kernel/application.php
===================================================================
diff -u -r7748 -r7750
--- branches/unlabeled/unlabeled-1.170.2/core/kernel/application.php (.../application.php) (revision 7748)
+++ branches/unlabeled/unlabeled-1.170.2/core/kernel/application.php (.../application.php) (revision 7750)
@@ -2191,7 +2191,8 @@
*/
function &EmailEventAdmin($email_event_name, $to_user_id = -1, $send_params = false)
{
- return $this->EmailEvent($email_event_name, 1, $to_user_id, $send_params);
+ $event =& $this->EmailEvent($email_event_name, 1, $to_user_id, $send_params);
+ return $event;
}
/**
@@ -2204,7 +2205,8 @@
*/
function &EmailEventUser($email_event_name, $to_user_id = -1, $send_params = false)
{
- return $this->EmailEvent($email_event_name, 0, $to_user_id, $send_params);
+ $event =& $this->EmailEvent($email_event_name, 0, $to_user_id, $send_params);
+ return $event;
}
/**
Index: branches/unlabeled/unlabeled-1.90.2/kernel/include/parseditem.php
===================================================================
diff -u -r6149 -r7750
--- branches/unlabeled/unlabeled-1.90.2/kernel/include/parseditem.php (.../parseditem.php) (revision 6149)
+++ branches/unlabeled/unlabeled-1.90.2/kernel/include/parseditem.php (.../parseditem.php) (revision 7750)
@@ -606,42 +606,24 @@
return $html;
}
+ /**
+ * Sends EmailEvent to user
+ *
+ * @param string $EventName email event name
+ * @param mixed $ToUserId recipient's user_id or email address
+ * @param int $LangId language_id (not in use)
+ * @param string $RecptName recipient's name (only when ID not passed)
+ * @return kEvent
+ */
function SendUserEventMail($EventName,$ToUserId,$LangId=NULL,$RecptName=NULL)
{
- global $objMessageList,$FrontEnd;
-
- $Event =& $objMessageList->GetEmailEventObject($EventName,0,$LangId);
-
- if(is_object($Event))
- {
- if($Event->Get("Enabled")=="1" || ($Event->Get("Enabled")==2 && $FrontEnd))
- {
- $Event->Item = $this;
- if(is_numeric($ToUserId))
- {
- return $Event->SendToUser($ToUserId);
- }
- else
- return $Event->SendToAddress($ToUserId,$RecptName);
- }
- }
+ $send_params = is_numeric($ToUserId) ? Array() : Array ('to_email' => $ToUserId, 'to_name' => $RecptName);
+ return $this->Application->EmailEventUser($EventName, $ToUserId, $send_params);
}
function SendAdminEventMail($EventName,$LangId=NULL)
{
- global $objMessageList,$FrontEnd;
-
- //echo "Firing Admin Event $EventName
\n";
- $Event =& $objMessageList->GetEmailEventObject($EventName,1,$LangId);
- if(is_object($Event))
- {
- if($Event->Get("Enabled")=="1" || ($Event->Get("Enabled")==2 && $FrontEnd))
- {
- $Event->Item = $this;
- //echo "Admin Event $EventName Enabled
\n";
- return $Event->SendAdmin($ToUserId);
- }
- }
+ return $this->Application->EmailEventAdmin($EventName);
}
function parse_template($t)