Index: branches/unlabeled/unlabeled-1.112.2/admin/install.php =================================================================== diff -u -r7943 -r7944 --- branches/unlabeled/unlabeled-1.112.2/admin/install.php (.../install.php) (revision 7943) +++ branches/unlabeled/unlabeled-1.112.2/admin/install.php (.../install.php) (revision 7944) @@ -1419,7 +1419,7 @@ if(!is_object($objMessageList)) $objMessageList = new clsEmailMessageList(); - $Offset = $objMessageList->ReadImportTable($EventTable, $force_finish ? false : true,100,$Offset); + $Offset = $objMessageList->ReadImportTable($EventTable, $force_finish ? false : true,300,$Offset); if($Offset > $Total) { Index: branches/unlabeled/unlabeled-1.101.2/admin/install/langpacks/english.lang =================================================================== diff -u -r7905 -r7944 --- branches/unlabeled/unlabeled-1.101.2/admin/install/langpacks/english.lang (.../english.lang) (revision 7905) +++ branches/unlabeled/unlabeled-1.101.2/admin/install/langpacks/english.lang (.../english.lang) (revision 7944) @@ -147,6 +147,7 @@ RmlsZSBub3QgZm91bmQgKDQwNCkgdGVtcGxhdGU= Rmlyc3QgRGF5IE9mIFdlZWs= UmVkaXJlY3QgdG8gSFRUUCB3aGVuIFNTTCBpcyBub3QgcmVxdWlyZWQ= + SGVhZGVyIFNlcGFyYXRvciBUeXBl TmFtZQ== SW5zdWZmaWNlbnQgcGVybWlzc2lvbnMgdGVtcGxhdGU= R1pJUCBjb21wcmVzc2lvbiBsZXZlbCAwLTk= @@ -493,6 +494,7 @@ U29ydCByZXZpZXdzIGJ5 VVJM RGlzcGxheSBsaW5rIFVSTCBpbiBzdGF0dXMgYmFy + TGludXggKFxuKQ== TG9jYWwgSW1hZ2U= TG9nZ2VkIGluIGFz TG9naW4= @@ -1591,6 +1593,7 @@ WW91IGFyZSBhYm91dCB0byBkZWxldGUgdGhlIHByaW1hcnkgdGhlbWUuIENvbnRpbnVlPw== TW9kaWZpY2F0aW9ucyB3aWxsIG5vdCB0YWtlIGVmZmVjdCB1bnRpbCB5b3UgY2xpY2sgdGhlIFNhdmUgYnV0dG9uIQ== d2Vlaw== + V2luZG93cyAoXHJcbik= eWVhcg== WWVz WW91IGRvIG5vdCBoYXZlIGFjY2VzcyB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9u Index: branches/unlabeled/unlabeled-1.82.2/core/kernel/db/db_event_handler.php =================================================================== diff -u -r7874 -r7944 --- branches/unlabeled/unlabeled-1.82.2/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 7874) +++ branches/unlabeled/unlabeled-1.82.2/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 7944) @@ -910,7 +910,7 @@ function OnCreate(&$event) { $object =& $event->getObject( Array('skip_autoload' => true) ); - + $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); if($items_info) { Index: branches/unlabeled/unlabeled-1.16.2/core/units/general/inp1_parser.php =================================================================== diff -u -r7750 -r7944 --- branches/unlabeled/unlabeled-1.16.2/core/units/general/inp1_parser.php (.../inp1_parser.php) (revision 7750) +++ branches/unlabeled/unlabeled-1.16.2/core/units/general/inp1_parser.php (.../inp1_parser.php) (revision 7944) @@ -1,15 +1,26 @@ InportalInited) { + $this->InitInPortal(); + } + // in case Parsing was called through InitInPortal -> moudles -> frontaction -> emailevent + // we need to make sure old parser is initialized + $this->InitParser(); + $template_body = $objTemplate->ParseTemplateFromBuffer($tname, $template_body); + return $template_body; + } + if ( !$this->InportalInited) { //$save_t = $this->Application->GetVar('t'); $this->InitInPortal(); @@ -19,13 +30,13 @@ $get = $_GET; unset($get['env'], $get['Action'], $get['_mod_rw_url_'], $get['rewrite']); $this->Application->StoreVar('K4_Template_Referer', $this->Application->GetVar('t') ); - + $this->Application->Redirect($var_list['t'], $get); } } - + $var_list['t'] = $this->cutTPL($var_list['t']); - + if ($var_list['t'] != $this->Application->GetVar('t')) { //$var_list['t'] = rtrim($var_list['t'],'.tpl'); $t = $var_list['t']; @@ -39,7 +50,7 @@ } return $template_body; } - + function cutTPL($tname) { if( substr($tname,-4) == '.tpl' ) @@ -48,80 +59,80 @@ } return $tname; } - + function InitParser() { global $objTemplate, $CurrentTheme, $objThemes, $objLanguageCache, $var_list; if ($this->InpParsetInited) return true; - + $theme_id = $this->Application->IsAdmin() ? 1 : $this->Application->GetVar('m_theme'); if ($theme_id) { $CurrentTheme = $objThemes->GetItem($theme_id); - + $timeout = $CurrentTheme->Get('CacheTimeout'); $objLanguageCache->LoadTemplateCache($var_list['t'], $timeout, $theme_id); $objLanguageCache->LoadCachedVars($this->Application->GetVar('m_lang')); - + $objTemplate = new clsTemplateList(FULL_PATH.THEMES_PATH.'/'); } - + $this->InpParsetInited = true; } - + function InitInPortal() { $this->InportalInited = true; - /*global $pathtoroot, $FrontEnd, $indexURL, $rootURL, $secureURL, $var_list, $CurrentTheme, - $objThemes, $objConfig, $m_var_list, $timeout, $objLanguages, $objLanguageCache, - $TemplateRoot, $objTemplate, $html, $objSession, $Errors, $objCatList, $objUsers, + /*global $pathtoroot, $FrontEnd, $indexURL, $rootURL, $secureURL, $var_list, $CurrentTheme, + $objThemes, $objConfig, $m_var_list, $timeout, $objLanguages, $objLanguageCache, + $TemplateRoot, $objTemplate, $html, $objSession, $Errors, $objCatList, $objUsers, $env, $mod_prefix, $ExtraVars, $timestart, $timeend, $timeout, $sqlcount, $totalsql, $template_path, $modules_loaded, $mod_root_cats, $objModules, $objItemTypes;*/ - - - global $sec, $usec, $timestart, $pathtoroot, $FrontEnd, $indexURL, $kernel_version, $FormError, - $FormValues, $ItemTables, $KeywordIgnore, $debuglevel, - $LogLevel, $LogFile, $rq_value, $rq_name, $dbg_constMap, $dbg_constValue, $dbg_constName, - $debugger, $g_LogFile, $LogData, $Errors, - $g_DebugMode, $totalsql, $sqlcount, $objConfig, $ItemTypePrefixes, $ItemTagFiles, $objModules, + + + global $sec, $usec, $timestart, $pathtoroot, $FrontEnd, $indexURL, $kernel_version, $FormError, + $FormValues, $ItemTables, $KeywordIgnore, $debuglevel, + $LogLevel, $LogFile, $rq_value, $rq_name, $dbg_constMap, $dbg_constValue, $dbg_constName, + $debugger, $g_LogFile, $LogData, $Errors, + $g_DebugMode, $totalsql, $sqlcount, $objConfig, $ItemTypePrefixes, $ItemTagFiles, $objModules, $objSystemCache, $objBanList, $objItemTypes, $objThemes, $objLanguages, $objImageList, $objFavorites, - $objUsers, $objGroups, $DownloadId, $objPermissions, $objPermCache, $m_var_list, $objCatList, - $objCustomFieldList, $objCustomDataList, $objCountCache, $CRLF, $objMessageList, $objEmailQueue, - $ExtraVars, $adodbConnection, $sql, $rs, $mod_prefix, $modules_loaded, $name, - $template_path, $mod_root_cats, $value, $mod, $ItemTypes, - $ParserFiles, $SessionQueryString, $var_list, $objSession, - $orderByClause, $TemplateRoot, $ip, $UseSession, $Action, $CookieTest, $sessionId, - $var_list_update, $CurrentTheme, $UserID, $objCurrentUser, $objLanguageCache, - $folder_name, $objLinkList, $tag_override, $timeZones, $siteZone, $serverZone, - $lastExpire, $diffZone, $date, $nowDate, $lastExpireDate, $SearchPerformed, - $TotalMessagesSent, $ado, $adminDir, $rootURL, $secureURL, $html, $timeout, + $objUsers, $objGroups, $DownloadId, $objPermissions, $objPermCache, $m_var_list, $objCatList, + $objCustomFieldList, $objCustomDataList, $objCountCache, $CRLF, $objMessageList, $objEmailQueue, + $ExtraVars, $adodbConnection, $sql, $rs, $mod_prefix, $modules_loaded, $name, + $template_path, $mod_root_cats, $value, $mod, $ItemTypes, + $ParserFiles, $SessionQueryString, $var_list, $objSession, + $orderByClause, $TemplateRoot, $ip, $UseSession, $Action, $CookieTest, $sessionId, + $var_list_update, $CurrentTheme, $UserID, $objCurrentUser, $objLanguageCache, + $folder_name, $objLinkList, $tag_override, $timeZones, $siteZone, $serverZone, + $lastExpire, $diffZone, $date, $nowDate, $lastExpireDate, $SearchPerformed, + $TotalMessagesSent, $ado, $adminDir, $rootURL, $secureURL, $html, $timeout, $pathchar, $objTemplate, $objTopicList, $objArticleList, $objPostingList, $objCensorList, $objSmileys, $objPMList, $SubscribeAddress, $SubscribeError, $SubscribeResult, $application; - + $pathtoroot = FULL_PATH.'/'; - + 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

"; flush(); $this->Application->ApplicationDie(); } - + //ob_start(); $FrontEnd = 1; - + $indexURL="../../index.php"; //Set to relative URL from the theme directory - + /* initalize the in-portal system */ include_once(FULL_PATH."/kernel/startup.php"); - + $rootURL="http://".ThisDomain().$objConfig->Get("Site_Path"); $secureURL = $rootURL; - + if( !$var_list['t'] ) $var_list['t'] = 'index'; - + $this->InitParser(); - + // process referer in session: begin if (is_object($objSession)) { $k4_referer = $objSession->GetVariable('K4_Template_Referer'); @@ -132,18 +143,18 @@ $objSession->SetVariable('Template_Referer', isset($_local_t) ? $_local_t : ''); } // process referer in session: end - + if ($this->Application->isDebugMode() && $Action) { $this->Application->Debugger->setHTMLByIndex(1, 'Front Action: '.$Action.'', 'append'); } - + LogEntry("Output Complete\n"); $objLanguageCache->SaveTemplateCache(); LogEntry("Templates Cached\n"); - + $timeend = getmicrotime(); $diff = $timeend - $timestart; - + LogEntry("\nTotal Queries Executed: $sqlcount in $totalsql seconds\n"); LogEntry("\nPage Execution Time: $diff seconds\n", true); if ($LogFile) { Index: branches/unlabeled/unlabeled-1.78.2/kernel/frontaction.php =================================================================== diff -u -r7696 -r7944 --- branches/unlabeled/unlabeled-1.78.2/kernel/frontaction.php (.../frontaction.php) (revision 7696) +++ branches/unlabeled/unlabeled-1.78.2/kernel/frontaction.php (.../frontaction.php) (revision 7944) @@ -377,186 +377,189 @@ break; case "m_register": - $_POST=inp_escape($_POST); - $MissingCount = SetMissingDataErrors("m_register"); + $_POST=inp_escape($_POST); + $MissingCount = SetMissingDataErrors("m_register"); - if(!$objConfig->Get("User_Password_Auto")) - { - if(($_POST["password"] != $_POST["passwordverify"]) || !strlen($_POST["passwordverify"])) - { - $MissingCount++; - $FormError["m_register"]["passwordverify"] = language("lu_ferror_pswd_mismatch"); - } + if(!$objConfig->Get("User_Password_Auto")) + { + if(($_POST["password"] != $_POST["passwordverify"]) || !strlen($_POST["passwordverify"])) + { + $MissingCount++; + $FormError["m_register"]["passwordverify"] = language("lu_ferror_pswd_mismatch"); + } - if(strlen($_POST["password"])>30) - { - // echo "VAR: ".$_POST["password"]; die(); - $MissingCount++; - $FormError["m_register"]["password"] = language("lu_ferror_pswd_toolong"); - } + if(strlen($_POST["password"])>30) + { + // echo "VAR: ".$_POST["password"]; die(); + $MissingCount++; + $FormError["m_register"]["password"] = language("lu_ferror_pswd_toolong"); + } - if (strlen($_POST['password']) < $objConfig->Get("Min_Password")) - { - $MissingCount++; - $FormError["m_register"]["password"] = language("lu_ferror_pswd_tooshort"); - } - } + if (strlen($_POST['password']) < $objConfig->Get("Min_Password")) + { + $MissingCount++; + $FormError["m_register"]["password"] = language("lu_ferror_pswd_tooshort"); + } + } - if(($_POST["username"]=="root")) - { - $MissingCount++; - $FormError["m_register"]["username"] = language("lu_user_exists"); - } - else - { + if(($_POST["username"]=="root")) + { + $MissingCount++; + $FormError["m_register"]["username"] = language("lu_user_exists"); + } + else + { - $u = $objUsers->GetItemByField("Login",$_POST["username"]); - if(is_object($u)) - { - if($u->Get("Login")==$_POST["username"]) - { - $MissingCount++; - $FormError["m_register"]["username"] = language("lu_user_exists"); - } - } - } + $u = $objUsers->GetItemByField("Login",$_POST["username"]); + if(is_object($u)) + { + if($u->Get("Login")==$_POST["username"]) + { + $MissingCount++; + $FormError["m_register"]["username"] = language("lu_user_exists"); + } + } + } - if (strlen($_POST['username']) < $objConfig->Get("Min_UserName")) - { - $MissingCount++; - $FormError["m_register"]["username"] = language("lu_ferror_username_tooshort"); - } + if (strlen($_POST['username']) < $objConfig->Get("Min_UserName")) + { + $MissingCount++; + $FormError["m_register"]["username"] = language("lu_ferror_username_tooshort"); + } - if(!$MissingCount) - { - $CreatedOn = adodb_date("U"); - $GroupId = $objConfig->Get("User_NewGroup"); - $Status=0; + if(!$MissingCount) + { + $CreatedOn = adodb_date("U"); + $GroupId = $objConfig->Get("User_NewGroup"); + $Status=0; - /* determine the status of new users */ - switch ($objConfig->Get("User_Allow_New")) - { - case "1": - $Status=1; - break; - case "3": - $Status=2; - break; - } + /* determine the status of new users */ + switch ($objConfig->Get("User_Allow_New")) + { + case "1": + $Status=1; + break; + case "3": + $Status=2; + break; + } - /* set Destination template */ - $var_list["t"] = strlen($_GET["dest"])? $_GET["dest"] : "index"; + /* set Destination template */ + $var_list["t"] = strlen($_GET["dest"])? $_GET["dest"] : "index"; - if($Status>0) - { - if ($objConfig->Get("User_Password_Auto")) { - $password = makepassword(); -// $objSession->Set("password", $password); - SetVar('user_password', $password); - } - else { - $password = $_POST["password"]; - } + if($Status>0) + { + if ($objConfig->Get("User_Password_Auto")) { + $password = makepassword(); + // $objSession->Set("password", $password); + SetVar('user_password', $password); + } + else { + $password = $_POST["password"]; + } - $dob = adodb_mktime(0, 0, 0, $_POST['dob_month'], $_POST['dob_day'], $_POST['dob_year']); - $ip = $_SERVER['REMOTE_ADDR']; + $dob = adodb_mktime(0, 0, 0, $_POST['dob_month'], $_POST['dob_day'], $_POST['dob_year']); + $ip = $_SERVER['REMOTE_ADDR']; - $application =& kApplication::Instance(); - $application->SetVar('user_password', $password); - SetVar('user_password', $password); - $fields_hash = Array('Login' => $_POST['username'], - 'Password' => md5($password), - 'FirstName' => $_POST['firstname'], - 'LastName' => $_POST['lastname'], - 'Company' => $_POST['company'], - 'Email' => $_POST['email'], - 'Status' => $Status, - 'Phone' => $_POST['phone'], - 'Fax' => $_POST['fax'], - 'Street' => $_POST['street'], - 'Street2' => $_POST['street2'], - 'City' => $_POST['city'], - 'State' => $_POST['state'], - 'Zip' => $_POST['zip'], - 'Country' => $_POST['country'], - 'CreatedOn' => $CreatedOn, - 'dob' => $dob, - 'ip' => $ip); - $u =& $objUsers->Add_User_NEW($fields_hash, true); + $application =& kApplication::Instance(); + $application->SetVar('user_password', $password); + SetVar('user_password', $password); + $fields_hash = Array('Login' => $_POST['username'], + 'Password' => md5($password), + 'FirstName' => $_POST['firstname'], + 'LastName' => $_POST['lastname'], + 'Company' => $_POST['company'], + 'Email' => $_POST['email'], + 'Status' => $Status, + 'Phone' => $_POST['phone'], + 'Fax' => $_POST['fax'], + 'Street' => $_POST['street'], + 'Street2' => $_POST['street2'], + 'City' => $_POST['city'], + 'State' => $_POST['state'], + 'Zip' => $_POST['zip'], + 'Country' => $_POST['country'], + 'CreatedOn' => $CreatedOn, + 'dob' => $dob, + 'ip' => $ip); + $u =& $objUsers->Add_User_NEW($fields_hash, true); - if(!is_object($u)) - { - $RuleId=$u; - $r = $objBanList->GetItem($RuleId); - $err = $r->Get("ErrorTag"); + if(!is_object($u)) + { + $RuleId=$u; + $r = $objBanList->GetItem($RuleId); + $err = $r->Get("ErrorTag"); - if(strlen($err)) - { - $FormError["m_register"][$r->Get("ItemField")] = language($err); - $MissingCount++; - } - } - else - { - $u->Set("Password",$password); - $u->Clean(); - if($GroupId>0) - { - $g = $objGroups->GetItem($GroupId); - $g->AddUser($u->Get("PortalUserId"),1,false); - } + if(strlen($err)) + { + $FormError["m_register"][$r->Get("ItemField")] = language($err); + $MissingCount++; + } + } + else + { + $u->Set("Password",$password); + $u->Clean(); + if($GroupId>0) + { + $g = $objGroups->GetItem($GroupId); + $g->AddUser($u->Get("PortalUserId"),1,false); + } - $custom = $_POST["custom"]; - if (is_array($custom)) { - for($x = 0; $x < count($custom); $x++) { - $u->SetCustomField($custom[$x],$_POST[$custom[$x]]); - } - $u->SaveCustomFields(); - } + $custom = $_POST["custom"]; + if (is_array($custom)) { + for($x = 0; $x < count($custom); $x++) { + $u->SetCustomField($custom[$x],$_POST[$custom[$x]]); + } + $u->SaveCustomFields(); + } - if($Status==1) - { - if($objConfig->Get("User_Password_Auto")) - { - $u->SendUserEventMail("USER.VALIDATE",$u->Get("PortalUserId")); - $u->SendAdminEventMail("USER.VALIDATE"); - } - else - { - $doLoginNow = true; - $u->SendUserEventMail("USER.ADD",$u->Get("PortalUserId")); - $u->SendAdminEventMail("USER.ADD"); - } - } - else - { - $u->SendUserEventMail("USER.ADD.PENDING",$u->Get("PortalUserId")); - $u->SendAdminEventMail("USER.ADD.PENDING"); - } + if($Status==1) + { + if($objConfig->Get("User_Password_Auto")) + { + $u->SendUserEventMail("USER.VALIDATE",$u->Get("PortalUserId")); + $u->SendAdminEventMail("USER.VALIDATE"); + } + else + { + $doLoginNow = true; + $u->SendUserEventMail("USER.ADD",$u->Get("PortalUserId")); + $u->SendAdminEventMail("USER.ADD"); + } + } + else + { + $u->SendUserEventMail("USER.ADD.PENDING",$u->Get("PortalUserId")); + $u->SendAdminEventMail("USER.ADD.PENDING"); + } - if ($doLoginNow) - { - $login_ok = $objSession->Login($_POST["username"], md5($password)); - if($login_ok) - { - $next_template = $objSession->GetVariable('next_template'); - if($next_template) - { - $objSession->SetVariable('next_template',''); - $var_list_update["t"] = $next_template; - header('Location: ' . HREF_Wrapper() ); - exit; - $var_list['t'] = $next_template.'.tpl'; - } + if ($doLoginNow) + { + $login_ok = $objSession->Login($_POST["username"], md5($password)); + if($login_ok) + { + $next_template = $objSession->GetVariable('next_template'); + if (!$next_template) { +// $next_template = strlen($_GET["dest"])? $_GET["dest"] : "index"; + } + if($next_template) + { + $objSession->SetVariable('next_template',''); + $var_list_update["t"] = $next_template; + header('Location: ' . HREF_Wrapper() ); + exit; + $var_list['t'] = $next_template.'.tpl'; + } - } - } - } - } - } - break; + } + } + } + } + } + break; case "m_add_friend": $id = $_GET["UserId"]; $userid = $objSession->Get("PortalUserId"); Index: branches/unlabeled/unlabeled-1.29.2/core/units/email_events/email_events_event_handler.php =================================================================== diff -u -r7874 -r7944 --- branches/unlabeled/unlabeled-1.29.2/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 7874) +++ branches/unlabeled/unlabeled-1.29.2/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 7944) @@ -6,7 +6,7 @@ define('EVENT_STATUS_DISABLED', 0); define('EVENT_STATUS_ENABLED', 1); define('EVENT_STATUS_FRONTEND', 2); - + class EmailEventsEventsHandler extends kDBEventHandler { @@ -119,26 +119,26 @@ * * @param kEvent $event * @param int $event_id id of email event used - * + * * @return mixed */ function GetMessageRecipients(&$event, &$event_id) { $email_event =& $event->getObject( Array('skip_autoload' => true) ); /* @var $email_event kDBItem */ - + // get event parameters by name & type $load_keys = Array ( 'Event' => $event->getEventParam('EmailEventName'), 'Type' => $event->getEventParam('EmailEventType'), ); $email_event->Load($load_keys); - + if (!$email_event->isLoaded()) { // event record not found return false; } - + $enabled = $email_event->GetDBField('Enabled'); if ($enabled == EVENT_STATUS_DISABLED) { return false; @@ -150,18 +150,18 @@ // initial values $to_user_id = $event->getEventParam('EmailEventToUserId'); $from_user_id = $email_event->GetDBField('FromUserId'); - + if ($email_event->GetDBField('Type') == EVENT_TYPE_ADMIN) { // For type "Admin" recipient is a user from field FromUserId which means From/To user in Email events list $to_user_id = $from_user_id; $from_user_id = -1; } - + $event_id = $email_event->GetDBField('EventId'); - + return Array ($from_user_id, $to_user_id); } - + /** * Returns user name, email by id, or ones, that specified in $direct_params * @@ -175,36 +175,36 @@ // load user, because it can be addressed from email template tags $user =& $this->Application->recallObject('u.email-'.$user_type, null, Array('skip_autoload' => true)); /* @var $user UsersItem */ - + $email = $name = ''; $result = $user_id > 0 ? $user->Load($user_id) : $user->Clear(); if ($user->IsLoaded()) { $email = $user->GetDBField('Email'); $name = trim($user->GetDBField('FirstName').' '.$user->GetDBField('LastName')); } - + if (is_array($direct_params)) { if (isset($direct_params[$user_type.'_email'])) { $email = $direct_params[$user_type.'_email']; } - + if (isset($direct_params[$user_type.'_name'])) { $name = $direct_params[$user_type.'_name']; } } - + if (!$email) { // if email is empty, then use admins email $email = $this->Application->ConfigValue('Smtp_AdminMailFrom'); } - + if (!$name) { $name = $user_type == 'from' ? strip_tags($this->Application->ConfigValue('Site_Name')) : $email; } - + return Array ($email, $name); } - + /** * Returns email event message by ID (headers & body in one piece) * @@ -216,40 +216,40 @@ $current_language = $this->Application->GetVar('m_lang'); $message =& $this->Application->recallObject('emailmessages', null, Array('skip_autoload' => true)); /* @var $message kDBItem */ - + $message->Load( Array('EventId' => $event_id, 'LanguageId' => $current_language) ); if (!$message->isLoaded()) { // event translation on required language not found - return false; + return false; } - + $message_type = $message->GetDBField('MessageType'); - + // 1. get message body $message_body = $message->GetDBField('Template'); - + // 2. add footer $sql = 'SELECT em.Template FROM '.$message->TableName.' em LEFT JOIN '.TABLE_PREFIX.'Events e ON e.EventId = em.EventId WHERE em.LanguageId = '.$current_language.' AND e.Event = "COMMON.FOOTER"'; - + list (, $footer) = explode("\n\n", $this->Conn->GetOne($sql)); if ($message_type == 'text') { $esender =& $this->Application->recallObject('EmailSender'); /* @var $esender kEmailSendingHelper */ - + $footer = $esender->ConvertToText($footer); } - + if ($footer) { $message_body .= "\r\n".$footer; } - + // 3. replace tags if needed // $replacement_tags = $message->GetDBField('ReplacementTags'); // $replacement_tags = $replacement_tags ? unserialize($replacement_tags) : Array (); - + $replacement_tags = Array ( ' ' ' $replace_to) { $message_body = str_replace($replace_from, $replace_to, $message_body); } - + return $message_body; } - + /** * Parse message template and return headers (as array) and message body part * @@ -273,7 +273,7 @@ function ParseMessageBody($message, $direct_params = null) { $direct_params['message_text'] = isset($direct_params['message']) ? $direct_params['message'] : ''; // parameter alias - + // 1. parse template $this->Application->InitParser(); $parser_params = $this->Application->Parser->Params; // backup parser params @@ -288,16 +288,16 @@ // 3. separate headers from body $message_headers = Array (); list($headers, $message_body) = explode("\n\n", $message, 2); - + $headers = explode("\n", $headers); foreach ($headers as $header) { $header = explode(':', $header, 2); $message_headers[ trim($header[0]) ] = trim($header[1]); } - + return Array ($message_headers, $message_body); } - + /** * Raised when email message shoul be sent * @@ -312,38 +312,38 @@ // additional parameters from kApplication->EmailEvent $send_params = $event->getEventParam('DirectSendParams'); - + // 1. get information about message sender and recipient $recipients = $this->GetMessageRecipients($event, $event_id); if ($recipients === false) { // if not valid recipients found, then don't send event return false; } - + list ($from_id, $to_id) = $recipients; list ($from_email, $from_name) = $this->GetRecipientInfo($from_id, 'from', $send_params); list ($to_email, $to_name) = $this->GetRecipientInfo($to_id, 'to', $send_params); - + // 2. prepare message to be sent $message_template = $this->GetMessageBody($event_id, $message_type); if (!trim($message_template)) { return false; } - + list ($message_headers, $message_body) = $this->ParseMessageBody($message_template, $send_params); if (!trim($message_body)) { return false; } - + // 3. set headers & send message $esender =& $this->Application->recallObject('EmailSender'); /* @var $esender kEmailSendingHelper */ - + $esender->SetFrom($from_email, $from_name); $esender->AddTo($to_email, $to_name); - + $message_subject = isset($message_headers['Subject']) ? $message_headers['Subject'] : 'Mail message'; - $esender->SetSubject($message_subject); + $esender->SetSubject($message_subject); foreach ($message_headers as $header_name => $header_value) { $esender->SetEncodedHeader($header_name, $header_value); @@ -359,7 +359,7 @@ foreach ($send_keys as $send_key) { unset($send_params[$send_key]); } - + $fields_hash = Array ( 'fromuser' => $from_name.' ('.$from_email.')', 'addressto' => $to_name.' ('.$to_email.')', @@ -368,7 +368,7 @@ 'event' => $email_event_name, 'EventParams' => serialize($send_params), ); - + $this->Conn->doInsert($fields_hash, TABLE_PREFIX.'EmailLog'); } Index: branches/unlabeled/unlabeled-1.69.2/core/units/general/cat_event_handler.php =================================================================== diff -u -r7922 -r7944 --- branches/unlabeled/unlabeled-1.69.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 7922) +++ branches/unlabeled/unlabeled-1.69.2/core/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 7944) @@ -67,7 +67,7 @@ LEFT JOIN '.$this->Application->getUnitOption('ci', 'TableName').' ci ON ci.ItemResourceId = item_table.ResourceId WHERE '.$id_field.' IN ('.$selected_ids.') AND (ci.PrimaryCat = 1)'; $items = $this->Conn->Query($sql, $id_field); - + $perm_helper =& $this->Application->recallObject('PermissionsHelper'); foreach ($items as $item_id => $item_data) { if ($perm_helper->ModifyCheckPermission($item_data['CreatedById'], $item_data['CategoryId'], $event->Prefix) == 0) { @@ -76,7 +76,7 @@ break; } } - + if (!$perm_value) { $event->status = erPERM_FAIL; } @@ -597,6 +597,13 @@ } $object->Fields['Status']['options'] = $new_options; } + elseif (!$this->Application->IsAdmin() && $object->GetDBField('Status') != 1) { + header('HTTP/1.0 404 Not Found'); + while (ob_get_level()) { ob_end_clean(); } + $this->Application->HTML = $this->Application->ParseBlock(array('name'=>$this->Application->ConfigValue('ErrorTemplate'))); + $this->Application->Done(); + exit(); + } } @@ -1399,10 +1406,10 @@ $export_options = $export_object->loadOptions($event); echo $export_options['start_from'] * 100 / $export_options['total_records']; - + $event->status = erSTOP; } - + /** * Returns specific to each item type columns only *