mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-05-14 23:08:18 +03:00
Merge branch 'master' of https://github.com/livestreet/livestreet
Conflicts: templates/language/english.php templates/language/russian.php
This commit is contained in:
commit
6166c6e98a
|
@ -84,6 +84,9 @@ class ActionProfile extends Action {
|
|||
|
||||
$this->AddEventPreg('/^.+$/i','/^friends/i','/^(page([1-9]\d{0,5}))?$/i','EventFriends');
|
||||
$this->AddEventPreg('/^.+$/i','/^stream/i','/^$/i','EventStream');
|
||||
|
||||
$this->AddEventPreg('/^changemail$/i','/^confirm-from/i','/^\w{32}$/i','EventChangemailConfirmFrom');
|
||||
$this->AddEventPreg('/^changemail$/i','/^confirm-to/i','/^\w{32}$/i','EventChangemailConfirmTo');
|
||||
}
|
||||
|
||||
/**********************************************************************************
|
||||
|
@ -1197,6 +1200,59 @@ class ActionProfile extends Action {
|
|||
return;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Обработка подтверждения старого емайла при его смене
|
||||
*/
|
||||
public function EventChangemailConfirmFrom() {
|
||||
if (!($oChangemail=$this->User_GetUserChangemailByCodeFrom($this->GetParamEventMatch(1,0)))) {
|
||||
return parent::EventNotFound();
|
||||
}
|
||||
|
||||
if ($oChangemail->getConfirmFrom() or strtotime($oChangemail->getDateExpired())<time()) {
|
||||
return parent::EventNotFound();
|
||||
}
|
||||
|
||||
$oChangemail->setConfirmFrom(1);
|
||||
$this->User_UpdateUserChangemail($oChangemail);
|
||||
|
||||
/**
|
||||
* Отправляем уведомление
|
||||
*/
|
||||
$oUser=$this->User_GetUserById($oChangemail->getUserId());
|
||||
$this->Notify_Send($oChangemail->getMailTo(),
|
||||
'notify.user_changemail_to.tpl',
|
||||
$this->Lang_Get('notify_subject_user_changemail'),
|
||||
array(
|
||||
'oUser' => $oUser,
|
||||
'oChangemail' => $oChangemail,
|
||||
));
|
||||
|
||||
$this->Viewer_Assign('sText',$this->Lang_Get('settings_profile_mail_change_to_notice'));
|
||||
$this->SetTemplateAction('changemail_confirm');
|
||||
}
|
||||
/**
|
||||
* Обработка подтверждения нового емайла при смене старого
|
||||
*/
|
||||
public function EventChangemailConfirmTo() {
|
||||
if (!($oChangemail=$this->User_GetUserChangemailByCodeTo($this->GetParamEventMatch(1,0)))) {
|
||||
return parent::EventNotFound();
|
||||
}
|
||||
|
||||
if (!$oChangemail->getConfirmFrom() or $oChangemail->getConfirmTo() or strtotime($oChangemail->getDateExpired())<time()) {
|
||||
return parent::EventNotFound();
|
||||
}
|
||||
|
||||
$oChangemail->setConfirmTo(1);
|
||||
$oChangemail->setDateUsed(date("Y-m-d H:i:s"));
|
||||
$this->User_UpdateUserChangemail($oChangemail);
|
||||
|
||||
$oUser=$this->User_GetUserById($oChangemail->getUserId());
|
||||
$oUser->setMail($oChangemail->getMailTo());
|
||||
$this->User_Update($oUser);
|
||||
|
||||
$this->Viewer_Assign('sText',$this->Lang_Get('settings_profile_mail_change_ok',array('mail'=>htmlspecialchars($oChangemail->getMailTo()))));
|
||||
$this->SetTemplateAction('changemail_confirm');
|
||||
}
|
||||
/**
|
||||
* Выполняется при завершении работы экшена
|
||||
*/
|
||||
|
|
|
@ -352,12 +352,18 @@ class ActionSettings extends Action {
|
|||
$this->sMenuSubItemSelect='tuning';
|
||||
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('settings_menu_tuning'));
|
||||
$aTimezoneList=array('-12','-11','-10','-9.5','-9','-8','-7','-6','-5','-4.5','-4','-3.5','-3','-2','-1','0','1','2','3','3.5','4','4.5','5','5.5','5.75','6','6.5','7','8','8.75','9','9.5','10','10.5','11','11.5','12','12.75','13','14');
|
||||
$this->Viewer_Assign('aTimezoneList',$aTimezoneList);
|
||||
/**
|
||||
* Если отправили форму с настройками - сохраняем
|
||||
*/
|
||||
if (isPost('submit_settings_tuning')) {
|
||||
$this->Security_ValidateSendForm();
|
||||
|
||||
if (in_array(getRequest('settings_general_timezone'),$aTimezoneList)) {
|
||||
$this->oUserCurrent->setSettingsTimezone(getRequest('settings_general_timezone'));
|
||||
}
|
||||
|
||||
$this->oUserCurrent->setSettingsNoticeNewTopic( getRequest('settings_notice_new_topic') ? 1 : 0 );
|
||||
$this->oUserCurrent->setSettingsNoticeNewComment( getRequest('settings_notice_new_comment') ? 1 : 0 );
|
||||
$this->oUserCurrent->setSettingsNoticeNewTalk( getRequest('settings_notice_new_talk') ? 1 : 0 );
|
||||
|
@ -374,6 +380,12 @@ class ActionSettings extends Action {
|
|||
} else {
|
||||
$this->Message_AddErrorSingle($this->Lang_Get('system_error'));
|
||||
}
|
||||
} else {
|
||||
if (is_null($this->oUserCurrent->getSettingsTimezone())) {
|
||||
$_REQUEST['settings_general_timezone']=(strtotime(date("Y-m-d H:i:s"))-strtotime(gmdate("Y-m-d H:i:s")))/3600 - date('I');
|
||||
} else {
|
||||
$_REQUEST['settings_general_timezone']=$this->oUserCurrent->getSettingsTimezone();
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
@ -453,8 +465,6 @@ class ActionSettings extends Action {
|
|||
if ($oUserMail=$this->User_GetUserByMail(getRequest('mail')) and $oUserMail->getId()!=$this->oUserCurrent->getId()) {
|
||||
$this->Message_AddError($this->Lang_Get('settings_profile_mail_error_used'),$this->Lang_Get('error'));
|
||||
$bError=true;
|
||||
} else {
|
||||
$this->oUserCurrent->setMail(getRequest('mail'));
|
||||
}
|
||||
} else {
|
||||
$this->Message_AddError($this->Lang_Get('settings_profile_mail_error'),$this->Lang_Get('error'));
|
||||
|
@ -495,6 +505,15 @@ class ActionSettings extends Action {
|
|||
if (!$bError) {
|
||||
if ($this->User_Update($this->oUserCurrent)) {
|
||||
$this->Message_AddNoticeSingle($this->Lang_Get('settings_account_submit_ok'));
|
||||
/**
|
||||
* Подтверждение смены емайла
|
||||
*/
|
||||
if (getRequest('mail') and getRequest('mail')!=$this->oUserCurrent->getMail()) {
|
||||
if ($this->User_MakeUserChangemail($this->oUserCurrent,getRequest('mail'))) {
|
||||
$this->Message_AddNotice($this->Lang_Get('settings_profile_mail_change_from_notice'));
|
||||
}
|
||||
}
|
||||
|
||||
$this->Hook_Run('settings_account_save_after', array('oUser'=>$this->oUserCurrent));
|
||||
} else {
|
||||
$this->Message_AddErrorSingle($this->Lang_Get('system_error'));
|
||||
|
|
|
@ -1436,5 +1436,74 @@ class ModuleUser extends Module {
|
|||
}
|
||||
return $data;
|
||||
}
|
||||
/**
|
||||
* Добавляет запись о смене емайла
|
||||
*
|
||||
* @param ModuleUser_EntityChangemail $oChangemail Объект смены емайла
|
||||
* @return bool|ModuleUser_EntityChangemail
|
||||
*/
|
||||
public function AddUserChangemail($oChangemail) {
|
||||
if ($sId=$this->oMapper->AddUserChangemail($oChangemail)) {
|
||||
$oChangemail->setId($sId);
|
||||
return $oChangemail;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Обновляет запись о смене емайла
|
||||
*
|
||||
* @param ModuleUser_EntityChangemail $oChangemail Объект смены емайла
|
||||
* @return int
|
||||
*/
|
||||
public function UpdateUserChangemail($oChangemail) {
|
||||
return $this->oMapper->UpdateUserChangemail($oChangemail);
|
||||
}
|
||||
/**
|
||||
* Возвращает объект смены емайла по коду подтверждения
|
||||
*
|
||||
* @param string $sCode Код подтверждения
|
||||
* @return ModuleUser_EntityChangemail|null
|
||||
*/
|
||||
public function GetUserChangemailByCodeFrom($sCode) {
|
||||
return $this->oMapper->GetUserChangemailByCodeFrom($sCode);
|
||||
}
|
||||
/**
|
||||
* Возвращает объект смены емайла по коду подтверждения
|
||||
*
|
||||
* @param string $sCode Код подтверждения
|
||||
* @return ModuleUser_EntityChangemail|null
|
||||
*/
|
||||
public function GetUserChangemailByCodeTo($sCode) {
|
||||
return $this->oMapper->GetUserChangemailByCodeTo($sCode);
|
||||
}
|
||||
/**
|
||||
* @param ModuleUser_EntityUser $oUser Объект пользователя
|
||||
* @param string $sMailNew Новый емайл
|
||||
* @return bool|ModuleUser_EntityChangemail
|
||||
*/
|
||||
public function MakeUserChangemail($oUser,$sMailNew) {
|
||||
$oChangemail=Engine::GetEntity('ModuleUser_EntityChangemail');
|
||||
$oChangemail->setUserId($oUser->getId());
|
||||
$oChangemail->setDateAdd(date("Y-m-d H:i:s"));
|
||||
$oChangemail->setDateExpired(date("Y-m-d H:i:s",time()+3*24*60*60)); // 3 дня для смены емайла
|
||||
$oChangemail->setMailFrom($oUser->getMail());
|
||||
$oChangemail->setMailTo($sMailNew);
|
||||
$oChangemail->setCodeFrom(func_generator(32));
|
||||
$oChangemail->setCodeTo(func_generator(32));
|
||||
if ($this->AddUserChangemail($oChangemail)) {
|
||||
/**
|
||||
* Отправляем уведомление
|
||||
*/
|
||||
$this->Notify_Send($oUser,
|
||||
'notify.user_changemail_from.tpl',
|
||||
$this->Lang_Get('notify_subject_user_changemail'),
|
||||
array(
|
||||
'oUser' => $oUser,
|
||||
'oChangemail' => $oChangemail,
|
||||
));
|
||||
return $oChangemail;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
27
classes/modules/user/entity/Changemail.entity.class.php
Normal file
27
classes/modules/user/entity/Changemail.entity.class.php
Normal file
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
/*-------------------------------------------------------
|
||||
*
|
||||
* LiveStreet Engine Social Networking
|
||||
* Copyright © 2008 Mzhelskiy Maxim
|
||||
*
|
||||
*--------------------------------------------------------
|
||||
*
|
||||
* Official site: www.livestreet.ru
|
||||
* Contact e-mail: rus.engine@gmail.com
|
||||
*
|
||||
* GNU General Public License, version 2:
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*
|
||||
---------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Сущность смены емайла пользователем
|
||||
*
|
||||
* @package modules.user
|
||||
* @since 1.0
|
||||
*/
|
||||
class ModuleUser_EntityChangemail extends Entity {
|
||||
|
||||
}
|
||||
?>
|
|
@ -77,7 +77,8 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
user_settings_notice_new_comment = ? ,
|
||||
user_settings_notice_new_talk = ? ,
|
||||
user_settings_notice_reply_comment = ? ,
|
||||
user_settings_notice_new_friend = ?
|
||||
user_settings_notice_new_friend = ? ,
|
||||
user_settings_timezone = ?
|
||||
WHERE user_id = ?
|
||||
";
|
||||
if ($this->oDb->query($sql,$oUser->getPassword(),
|
||||
|
@ -104,6 +105,7 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
$oUser->getSettingsNoticeNewTalk(),
|
||||
$oUser->getSettingsNoticeReplyComment(),
|
||||
$oUser->getSettingsNoticeNewFriend(),
|
||||
$oUser->getSettingsTimezone(),
|
||||
$oUser->getId())) {
|
||||
return true;
|
||||
}
|
||||
|
@ -1074,6 +1076,61 @@ class ModuleUser_MapperUser extends Mapper {
|
|||
return $this->oDb->query($sql,$oNote->getText(),
|
||||
$oNote->getId());
|
||||
}
|
||||
/**
|
||||
* Добавляет запись о смене емайла
|
||||
*
|
||||
* @param ModuleUser_EntityChangemail $oChangemail Объект смены емайла
|
||||
* @return int|null
|
||||
*/
|
||||
public function AddUserChangemail($oChangemail) {
|
||||
$sql = "INSERT INTO ".Config::Get('db.table.user_changemail')." SET ?a ";
|
||||
if ($iId=$this->oDb->query($sql,$oChangemail->_getData())) {
|
||||
return $iId;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Обновляет запись о смене емайла
|
||||
*
|
||||
* @param ModuleUser_EntityChangemail $oChangemail Объект смены емайла
|
||||
* @return int
|
||||
*/
|
||||
public function UpdateUserChangemail($oChangemail) {
|
||||
$sql = "UPDATE ".Config::Get('db.table.user_changemail')."
|
||||
SET
|
||||
date_used = ?,
|
||||
confirm_from = ?d,
|
||||
confirm_to = ?d
|
||||
WHERE id = ?d
|
||||
";
|
||||
return $this->oDb->query($sql,$oChangemail->getDateUsed(),$oChangemail->getConfirmFrom(),$oChangemail->getConfirmTo(),$oChangemail->getId());
|
||||
}
|
||||
/**
|
||||
* Возвращает объект смены емайла по коду подтверждения
|
||||
*
|
||||
* @param string $sCode Код подтверждения
|
||||
* @return ModuleUser_EntityChangemail|null
|
||||
*/
|
||||
public function GetUserChangemailByCodeFrom($sCode) {
|
||||
$sql = "SELECT * FROM ".Config::Get('db.table.user_changemail')." WHERE code_from = ? ";
|
||||
if ($aRow=$this->oDb->selectRow($sql,$sCode)) {
|
||||
return Engine::GetEntity('ModuleUser_EntityChangemail',$aRow);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Возвращает объект смены емайла по коду подтверждения
|
||||
*
|
||||
* @param string $sCode Код подтверждения
|
||||
* @return ModuleUser_EntityChangemail|null
|
||||
*/
|
||||
public function GetUserChangemailByCodeTo($sCode) {
|
||||
$sql = "SELECT * FROM ".Config::Get('db.table.user_changemail')." WHERE code_to = ? ";
|
||||
if ($aRow=$this->oDb->selectRow($sql,$sCode)) {
|
||||
return Engine::GetEntity('ModuleUser_EntityChangemail',$aRow);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Возвращает список пользователей по фильтру
|
||||
*
|
||||
|
|
|
@ -355,6 +355,7 @@ $config['db']['table']['geo_country'] = '___db.table.prefix___geo_countr
|
|||
$config['db']['table']['geo_region'] = '___db.table.prefix___geo_region';
|
||||
$config['db']['table']['geo_city'] = '___db.table.prefix___geo_city';
|
||||
$config['db']['table']['geo_target'] = '___db.table.prefix___geo_target';
|
||||
$config['db']['table']['user_changemail'] = '___db.table.prefix___user_changemail';
|
||||
|
||||
$config['db']['tables']['engine'] = 'InnoDB'; // InnoDB или MyISAM
|
||||
/**
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
/**
|
||||
* Плагин для смарти.
|
||||
* Позволяет получать дату с возможностью склонения
|
||||
* Позволяет получать дату с возможностью склонения
|
||||
* формы слова и поддержкой мультиязычноти.
|
||||
*
|
||||
* Список ключей параметров:
|
||||
|
@ -25,62 +25,71 @@
|
|||
* format* [string]
|
||||
* declination* [int]
|
||||
* now* [int] Количество секунд, в течении которых событие имеет статус "Только что"
|
||||
* day* [string] Указывает на необходимость замены "Сегодня", "Вчера", "Завтра".
|
||||
* day* [string] Указывает на необходимость замены "Сегодня", "Вчера", "Завтра".
|
||||
* В указанном формате 'day' будет заменено на соответствующее значение.
|
||||
* minutes_back* [int] Количество минут, в течении которых событие имеет статус "... минут назад"
|
||||
* hours_back* [int] Количество часов, в течении которых событие имеет статус "... часов назад"
|
||||
*
|
||||
*
|
||||
* (* - параметр является необязательным)
|
||||
*
|
||||
*
|
||||
* @param array $aParams
|
||||
* @param Smarty $oSmarty
|
||||
* @return string
|
||||
*/
|
||||
function smarty_function_date_format($aParams,&$oSmarty) {
|
||||
require_once(Config::Get('path.root.engine').'/classes/Engine.class.php');
|
||||
$oEngine = Engine::getInstance();
|
||||
$oUserCurrent=$oEngine->User_GetUserCurrent();
|
||||
|
||||
$sFormatDefault = "d F Y, H:i"; // формат даты по умолчанию
|
||||
$iDeclinationDefault = 1; // индекс склонения по умолчанию
|
||||
|
||||
/**
|
||||
* Текущая дата и сдвиг времени для пользователя
|
||||
*/
|
||||
if ($oUserCurrent and $oUserCurrent->getSettingsTimezone()) {
|
||||
$iDiff=(date('I') + $oUserCurrent->getSettingsTimezone() - (strtotime(date("Y-m-d H:i:s"))-strtotime(gmdate("Y-m-d H:i:s")))/3600)*3600;
|
||||
} else {
|
||||
$iDiff=0; // пользователю показываем время от зоны из основного конфига
|
||||
}
|
||||
$iNow=time()+$iDiff;
|
||||
/**
|
||||
* Определяем дату
|
||||
*/
|
||||
$sDate = (empty($aParams['date'])) ? time() : $aParams['date'];
|
||||
$sDate = (empty($aParams['date'])) ? $iNow : $aParams['date'];
|
||||
$iDeclination = (!isset($aParams['declination'])) ? $iDeclinationDefault : $aParams['declination'];
|
||||
$sFormat = (empty($aParams['format'])) ? $sFormatDefault : $aParams['format'];
|
||||
|
||||
require_once(Config::Get('path.root.engine').'/classes/Engine.class.php');
|
||||
$oEngine = Engine::getInstance();
|
||||
|
||||
/**
|
||||
* Если указан другой язык, подгружаем его
|
||||
*/
|
||||
if(isset($aParams['lang']) and $aParams['lang']!=$oEngine->Lang_GetLang()) {
|
||||
$oEngine->Lang_SetLang($aParams['lang']);
|
||||
}
|
||||
|
||||
|
||||
$aMonth = $oEngine->Lang_Get('month_array');
|
||||
$iDate= (preg_match("/^\d+$/",$sDate)) ? $sDate : strtotime($sDate);
|
||||
|
||||
$iDate+=$iDiff;
|
||||
|
||||
/**
|
||||
* Если указана необходимость выполнять проверку на NOW
|
||||
*/
|
||||
if(isset($aParams['now'])) {
|
||||
if($iDate+$aParams['now']>time()) return $oEngine->Lang_Get('date_now');
|
||||
if($iDate+$aParams['now']>$iNow) return $oEngine->Lang_Get('date_now');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Если указана необходимость на проверку minutes back
|
||||
*/
|
||||
if(isset($aParams['minutes_back'])) {
|
||||
require_once('modifier.declension.php');
|
||||
|
||||
$iTimeDelta = round((time()- $iDate)/60);
|
||||
|
||||
$iTimeDelta = round(($iNow- $iDate)/60);
|
||||
if($iTimeDelta<$aParams['minutes_back']) {
|
||||
return ($iTimeDelta!=0)
|
||||
? smarty_modifier_declension(
|
||||
$iTimeDelta,
|
||||
$oEngine->Lang_Get('date_minutes_back',array('minutes'=>$iTimeDelta)),
|
||||
$oEngine->Lang_GetLang()
|
||||
)
|
||||
$iTimeDelta,
|
||||
$oEngine->Lang_Get('date_minutes_back',array('minutes'=>$iTimeDelta)),
|
||||
$oEngine->Lang_GetLang()
|
||||
)
|
||||
: $oEngine->Lang_Get('date_minutes_back_less');
|
||||
}
|
||||
}
|
||||
|
@ -90,58 +99,58 @@ function smarty_function_date_format($aParams,&$oSmarty) {
|
|||
*/
|
||||
if(isset($aParams['hours_back'])) {
|
||||
require_once('modifier.declension.php');
|
||||
|
||||
$iTimeDelta = round((time()- $iDate)/(60*60));
|
||||
|
||||
$iTimeDelta = round(($iNow- $iDate)/(60*60));
|
||||
if($iTimeDelta<$aParams['hours_back']) {
|
||||
return ($iTimeDelta!=0)
|
||||
return ($iTimeDelta!=0)
|
||||
? smarty_modifier_declension(
|
||||
$iTimeDelta,
|
||||
$oEngine->Lang_Get('date_hours_back',array('hours'=>$iTimeDelta)),
|
||||
$oEngine->Lang_GetLang()
|
||||
)
|
||||
$iTimeDelta,
|
||||
$oEngine->Lang_Get('date_hours_back',array('hours'=>$iTimeDelta)),
|
||||
$oEngine->Lang_GetLang()
|
||||
)
|
||||
: $oEngine->Lang_Get('date_hours_back_less');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Если указана необходимость автоподстановки "Сегодня", "Вчера", "Завтра".
|
||||
*/
|
||||
if(isset($aParams['day']) and $aParams['day']) {
|
||||
switch(date('Y-m-d',$iDate)) {
|
||||
switch(date('Y-m-d',$iDate)) {
|
||||
/**
|
||||
* Если дата совпадает с сегодняшней
|
||||
*/
|
||||
case date('Y-m-d'):
|
||||
$sDay=$oEngine->Lang_Get('date_today');
|
||||
break;
|
||||
$sDay=$oEngine->Lang_Get('date_today');
|
||||
break;
|
||||
/**
|
||||
* Если дата совпадает со вчерашней
|
||||
*/
|
||||
case date('Y-m-d', mktime(0, 0, 0, date("m") , date("d")-1, date("Y")) ):
|
||||
$sDay=$oEngine->Lang_Get('date_yesterday');
|
||||
break;
|
||||
/**
|
||||
$sDay=$oEngine->Lang_Get('date_yesterday');
|
||||
break;
|
||||
/**
|
||||
* Если дата совпадает с завтрашней
|
||||
*/
|
||||
case date('Y-m-d', mktime(0, 0, 0, date("m") , date("d")+1, date("Y")) ):
|
||||
$sDay=$oEngine->Lang_Get('date_tomorrow');
|
||||
break;
|
||||
|
||||
default:
|
||||
$sDay=null;
|
||||
}
|
||||
if( $sDay ) {
|
||||
$sFormat=str_replace("day",preg_replace("#(\w{1})#",'\\\${1}',$sDay),$aParams['day']);
|
||||
return date($sFormat,$iDate);
|
||||
}
|
||||
$sDay=$oEngine->Lang_Get('date_tomorrow');
|
||||
break;
|
||||
|
||||
default:
|
||||
$sDay=null;
|
||||
}
|
||||
if( $sDay ) {
|
||||
$sFormat=str_replace("day",preg_replace("#(\w{1})#",'\\\${1}',$sDay),$aParams['day']);
|
||||
return date($sFormat,$iDate);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Определяем нужное текстовое значение названия месяца
|
||||
*/
|
||||
$iMonth = date("n",$iDate);
|
||||
$sMonth = isset($aMonth[$iMonth])
|
||||
? $aMonth[$iMonth]
|
||||
$sMonth = isset($aMonth[$iMonth])
|
||||
? $aMonth[$iMonth]
|
||||
: "";
|
||||
|
||||
/**
|
||||
|
@ -149,11 +158,11 @@ function smarty_function_date_format($aParams,&$oSmarty) {
|
|||
* Если индекс по умолчанию также не определен, берем первое значение в массиве.
|
||||
*/
|
||||
if(is_array($sMonth)) {
|
||||
$sMonth = isset($sMonth[$iDeclination])
|
||||
? $sMonth[$iDeclination]
|
||||
$sMonth = isset($sMonth[$iDeclination])
|
||||
? $sMonth[$iDeclination]
|
||||
: $sMonth[$iDeclinationDefault];
|
||||
}
|
||||
|
||||
|
||||
$sFormat=preg_replace("~(?<!\\\\)F~U",preg_replace('~(\w{1})~u','\\\${1}',$sMonth),$sFormat);
|
||||
|
||||
return date($sFormat,$iDate);
|
||||
|
|
33
install/convert_1.0_to_1.0.1.sql
Normal file
33
install/convert_1.0_to_1.0.1.sql
Normal file
|
@ -0,0 +1,33 @@
|
|||
ALTER TABLE `prefix_user` ADD `user_settings_timezone` VARCHAR( 6 ) NULL DEFAULT NULL AFTER `user_settings_notice_new_friend`;
|
||||
|
||||
--
|
||||
-- Структура таблицы `prefix_user_changemail`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `prefix_user_changemail` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) unsigned NOT NULL,
|
||||
`date_add` datetime NOT NULL,
|
||||
`date_used` datetime DEFAULT NULL,
|
||||
`date_expired` datetime NOT NULL,
|
||||
`mail_from` varchar(50) NOT NULL,
|
||||
`mail_to` varchar(50) NOT NULL,
|
||||
`code_from` varchar(32) NOT NULL,
|
||||
`code_to` varchar(32) NOT NULL,
|
||||
`confirm_from` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`confirm_to` tinyint(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
KEY `code_from` (`code_from`),
|
||||
KEY `code_to` (`code_to`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа сохраненных таблиц
|
||||
--
|
||||
|
||||
--
|
||||
-- Ограничения внешнего ключа таблицы `prefix_user_changemail`
|
||||
--
|
||||
ALTER TABLE `prefix_user_changemail`
|
||||
ADD CONSTRAINT `prefix_user_changemail_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@ -624,6 +624,9 @@ return array(
|
|||
'settings_profile_mail_error' => 'Wrong e-mail format',
|
||||
'settings_profile_mail_error_used' => 'This e-mail is already in use',
|
||||
'settings_profile_mail_notice' => 'Your real e-mail address fo notifications.',
|
||||
'settings_profile_mail_change_from_notice' => 'On your old e-mail sent a confirmation email for changing',
|
||||
'settings_profile_mail_change_to_notice' => 'Thank you! <br/> on your new email address sent another confirmation.',
|
||||
'settings_profile_mail_change_ok' => 'Your email is changed to <b>%%mail%%</b>',
|
||||
'settings_profile_sex' => 'Gender',
|
||||
'settings_profile_sex_man' => 'male',
|
||||
'settings_profile_sex_woman' => 'female',
|
||||
|
@ -676,6 +679,8 @@ return array(
|
|||
'settings_tuning_notice_new_talk' => 'on a new Personal Message',
|
||||
'settings_tuning_notice_reply_comment' => 'on reply to comment',
|
||||
'settings_tuning_notice_new_friend' => 'On joining to a friends list',
|
||||
'settings_tuning_general' => 'General settings',
|
||||
'settings_tuning_general_timezone' => 'Timezone',
|
||||
'settings_tuning_submit' => 'Save configs',
|
||||
'settings_tuning_submit_ok' => 'Configs saved',
|
||||
'settings_account' => 'Settings account',
|
||||
|
@ -970,6 +975,7 @@ return array(
|
|||
'notify_subject_wall_reply' => 'You\'ve recieved reply to your post on wall',
|
||||
'notify_subject_wall_new' => 'You\'ve recieved new post on your wall',
|
||||
'notify_subject_reactvation' => 'Re-activation request',
|
||||
'notify_subject_user_changemail' => 'Confirmation of change email',
|
||||
/**
|
||||
* Админка
|
||||
*/
|
||||
|
@ -1144,5 +1150,48 @@ return array(
|
|||
'date_hours_back' => '%%hours%% hours ago; %%hours%% hours ago; %%hours%% hours ago',
|
||||
'date_hours_back_less' => 'Less than an hour ago',
|
||||
'today' => 'Today',
|
||||
|
||||
'timezone_list'=> array(
|
||||
'-12' => '[UTC - 12] Baker Island Time',
|
||||
'-11' => '[UTC - 11] Niue Time, Samoa Standard Time',
|
||||
'-10' => '[UTC - 10] Hawaii-Aleutian Standard Time, Cook Island Time',
|
||||
'-9.5' => '[UTC - 9:30] Marquesas Islands Time',
|
||||
'-9' => '[UTC - 9] Alaska Standard Time, Gambier Island Time',
|
||||
'-8' => '[UTC - 8] Pacific Standard Time',
|
||||
'-7' => '[UTC - 7] Mountain Standard Time',
|
||||
'-6' => '[UTC - 6] Central Standard Time',
|
||||
'-5' => '[UTC - 5] Eastern Standard Time',
|
||||
'-4.5' => '[UTC - 4:30] Venezuelan Standard Time',
|
||||
'-4' => '[UTC - 4] Atlantic Standard Time',
|
||||
'-3.5' => '[UTC - 3:30] Newfoundland Standard Time',
|
||||
'-3' => '[UTC - 3] Amazon Standard Time, Central Greenland Time',
|
||||
'-2' => '[UTC - 2] Fernando de Noronha Time, South Georgia & the South Sandwich Islands Time',
|
||||
'-1' => '[UTC - 1] Azores Standard Time, Cape Verde Time, Eastern Greenland Time',
|
||||
'0' => '[UTC] Western European Time, Greenwich Mean Time',
|
||||
'1' => '[UTC + 1] Central European Time, West African Time',
|
||||
'2' => '[UTC + 2] Eastern European Time, Central African Time',
|
||||
'3' => '[UTC + 3] Moscow Standard Time, Eastern African Time',
|
||||
'3.5' => '[UTC + 3:30] Iran Standard Time',
|
||||
'4' => '[UTC + 4] Gulf Standard Time, Samara Standard Time',
|
||||
'4.5' => '[UTC + 4:30] Afghanistan Time',
|
||||
'5' => '[UTC + 5] Pakistan Standard Time, Yekaterinburg Standard Time',
|
||||
'5.5' => '[UTC + 5:30] Indian Standard Time, Sri Lanka Time',
|
||||
'5.75' => '[UTC + 5:45] Nepal Time',
|
||||
'6' => '[UTC + 6] Bangladesh Time, Bhutan Time, Novosibirsk Standard Time',
|
||||
'6.5' => '[UTC + 6:30] Cocos Islands Time, Myanmar Time',
|
||||
'7' => '[UTC + 7] Indochina Time, Krasnoyarsk Standard Time',
|
||||
'8' => '[UTC + 8] Chinese Standard Time, Australian Western Standard Time, Irkutsk Standard Time',
|
||||
'8.75' => '[UTC + 8:45] Southeastern Western Australia Standard Time',
|
||||
'9' => '[UTC + 9] Japan Standard Time, Korea Standard Time, Chita Standard Time',
|
||||
'9.5' => '[UTC + 9:30] Australian Central Standard Time',
|
||||
'10' => '[UTC + 10] Australian Eastern Standard Time, Vladivostok Standard Time',
|
||||
'10.5' => '[UTC + 10:30] Lord Howe Standard Time',
|
||||
'11' => '[UTC + 11] Solomon Island Time, Magadan Standard Time',
|
||||
'11.5' => '[UTC + 11:30] Norfolk Island Time',
|
||||
'12' => '[UTC + 12] New Zealand Time, Fiji Time, Kamchatka Standard Time',
|
||||
'12.75' => '[UTC + 12:45] Chatham Islands Time',
|
||||
'13' => '[UTC + 13] Tonga Time, Phoenix Islands Time',
|
||||
'14' => '[UTC + 14] Line Island Time'
|
||||
)
|
||||
);
|
||||
?>
|
|
@ -626,6 +626,9 @@ return array(
|
|||
'settings_profile_mail_error' => 'Неверный формат e-mail',
|
||||
'settings_profile_mail_error_used' => 'Этот емайл уже занят',
|
||||
'settings_profile_mail_notice' => 'Ваш реальный почтовый адрес, на него будут приходить уведомления',
|
||||
'settings_profile_mail_change_from_notice' => 'На вашу старую почту отправлено подтверждение для смены емайла',
|
||||
'settings_profile_mail_change_to_notice' => 'Спасибо! <br/> На ваш новый емайл адрес отправлено еще одно подтверждение.',
|
||||
'settings_profile_mail_change_ok' => 'Ваш емайл изменен на <b>%%mail%%</b>',
|
||||
'settings_profile_sex' => 'Пол',
|
||||
'settings_profile_sex_man' => 'мужской',
|
||||
'settings_profile_sex_woman' => 'женский',
|
||||
|
@ -678,6 +681,8 @@ return array(
|
|||
'settings_tuning_notice_new_talk' => 'при новом личном сообщении',
|
||||
'settings_tuning_notice_reply_comment' => 'при ответе на комментарий',
|
||||
'settings_tuning_notice_new_friend' => 'при добавлении вас в друзья',
|
||||
'settings_tuning_general' => 'Общие настройки',
|
||||
'settings_tuning_general_timezone' => 'Часовой пояс',
|
||||
'settings_tuning_submit' => 'сохранить настройки',
|
||||
'settings_tuning_submit_ok' => 'Настройки успешно сохранены',
|
||||
'settings_account' => 'Настройки акаунта',
|
||||
|
@ -972,6 +977,7 @@ return array(
|
|||
'notify_subject_wall_reply' => 'Ответ на ваше сообщение на стене',
|
||||
'notify_subject_wall_new' => 'Новое сообщение на вашей стене',
|
||||
'notify_subject_reactvation' => 'Повторный запрос активации',
|
||||
'notify_subject_user_changemail' => 'Подтверждение смены емайла',
|
||||
/**
|
||||
* Админка
|
||||
*/
|
||||
|
@ -1146,5 +1152,48 @@ return array(
|
|||
'date_hours_back' => '%%hours%% час назад; %%hours%% часа назад; %%hours%% часов назад',
|
||||
'date_hours_back_less' => 'Менее часа назад',
|
||||
'today' => 'Сегодня',
|
||||
|
||||
'timezone_list'=> array(
|
||||
'-12' => '[UTC − 12] Меридиан смены дат (запад)',
|
||||
'-11' => '[UTC − 11] о. Мидуэй, Самоа',
|
||||
'-10' => '[UTC − 10] Гавайи',
|
||||
'-9.5' => '[UTC − 9:30] Маркизские острова',
|
||||
'-9' => '[UTC − 9] Аляска',
|
||||
'-8' => '[UTC − 8] Тихоокеанское время (США и Канада) и Тихуана',
|
||||
'-7' => '[UTC − 7] Аризона',
|
||||
'-6' => '[UTC − 6] Мехико, Центральная Америка, Центральное время (США и Канада)',
|
||||
'-5' => '[UTC − 5] Индиана (восток), Восточное время (США и Канада)',
|
||||
'-4.5' => '[UTC − 4:30] Венесуэла',
|
||||
'-4' => '[UTC − 4] Сантьяго, Атлантическое время (Канада)',
|
||||
'-3.5' => '[UTC − 3:30] Ньюфаундленд',
|
||||
'-3' => '[UTC − 3] Бразилия, Гренландия',
|
||||
'-2' => '[UTC − 2] Среднеатлантическое время',
|
||||
'-1' => '[UTC − 1] Азорские острова, острова Зелёного мыса',
|
||||
'0' => '[UTC] Время по Гринвичу: Дублин, Лондон, Лиссабон, Эдинбург',
|
||||
'1' => '[UTC + 1] Берлин, Мадрид, Париж, Рим, Западная Центральная Африка',
|
||||
'2' => '[UTC + 2] Афины, Вильнюс, Киев, Минск, Рига, Таллин, Центральная Африка',
|
||||
'3' => '[UTC + 3] Волгоград, Москва, Самара, Санкт-Петербург',
|
||||
'3.5' => '[UTC + 3:30] Тегеран',
|
||||
'4' => '[UTC + 4] Баку, Ереван, Тбилиси',
|
||||
'4.5' => '[UTC + 4:30] Кабул',
|
||||
'5' => '[UTC + 5] Екатеринбург, Исламабад, Карачи, Оренбург, Ташкент',
|
||||
'5.5' => '[UTC + 5:30] Бомбей, Калькутта, Мадрас, Нью-Дели',
|
||||
'5.75' => '[UTC + 5:45] Катманду',
|
||||
'6' => '[UTC + 6] Алматы, Астана, Новосибирск, Омск',
|
||||
'6.5' => '[UTC + 6:30] Рангун',
|
||||
'7' => '[UTC + 7] Бангкок, Красноярск',
|
||||
'8' => '[UTC + 8] Гонконг, Иркутск, Пекин, Сингапур',
|
||||
'8.75' => '[UTC + 8:45] Юго-восточная Западная Австралия',
|
||||
'9' => '[UTC + 9] Токио, Сеул, Чита, Якутск',
|
||||
'9.5' => '[UTC + 9:30] Дарвин',
|
||||
'10' => '[UTC + 10] Владивосток, Канберра, Мельбурн, Сидней',
|
||||
'10.5' => '[UTC + 10:30] Лорд-Хау',
|
||||
'11' => '[UTC + 11] Камчатка, Магадан, Сахалин, Соломоновы о-ва',
|
||||
'11.5' => '[UTC + 11:30] Остров Норфолк',
|
||||
'12' => '[UTC + 12] Новая Зеландия, Фиджи',
|
||||
'12.75' => '[UTC + 12:45] Острова Чатем',
|
||||
'13' => '[UTC + 13] Острова Феникс, Тонга',
|
||||
'14' => '[UTC + 14] Остров Лайн'
|
||||
)
|
||||
);
|
||||
?>
|
|
@ -0,0 +1,11 @@
|
|||
{assign var="noSidebar" value=true}
|
||||
{include file='header.tpl' noShowSystemMessage=true}
|
||||
|
||||
|
||||
<div class="content-error">
|
||||
<p>{$sText}</p>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
|
||||
{include file='footer.tpl'}
|
|
@ -22,6 +22,18 @@
|
|||
<label><input {if $oUserCurrent->getSettingsNoticeReplyComment()}checked{/if} type="checkbox" id="settings_notice_reply_comment" name="settings_notice_reply_comment" value="1" class="input-checkbox" /> {$aLang.settings_tuning_notice_reply_comment}</label>
|
||||
<label><input {if $oUserCurrent->getSettingsNoticeNewFriend()}checked{/if} type="checkbox" id="settings_notice_new_friend" name="settings_notice_new_friend" value="1" class="input-checkbox" /> {$aLang.settings_tuning_notice_new_friend}</label>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{$aLang.settings_tuning_general}</legend>
|
||||
|
||||
<label>{$aLang.settings_tuning_general_timezone}:
|
||||
<select name="settings_general_timezone" class="input-width-400">
|
||||
{foreach from=$aTimezoneList item=sTimezone}
|
||||
<option value="{$sTimezone}" {if $_aRequest.settings_general_timezone==$sTimezone}selected="selected"{/if}>{$aLang.timezone_list[$sTimezone]}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</label>
|
||||
</fieldset>
|
||||
|
||||
{hook run='form_settings_tuning_end'}
|
||||
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
You have sent a request to change user email <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a> on site <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>.<br/>
|
||||
Old email: <b>{$oChangemail->getMailFrom()}</b><br/>
|
||||
New email: <b>{$oChangemail->getMailTo()}</b><br/>
|
||||
|
||||
|
||||
<br/>
|
||||
To confirm the email change, please click here:
|
||||
<a href="{router page='profile'}changemail/confirm-from/{$oChangemail->getCodeFrom()}/">{router page='profile'}changemail/confirm-from/{$oChangemail->getCodeFrom()}/</a>
|
||||
|
||||
<br/><br/>
|
||||
Best regards, site administration <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>
|
|
@ -0,0 +1,11 @@
|
|||
You have sent a request to change user email <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a> on site <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>.<br/>
|
||||
Old email: <b>{$oChangemail->getMailFrom()}</b><br/>
|
||||
New email: <b>{$oChangemail->getMailTo()}</b><br/>
|
||||
|
||||
|
||||
<br/>
|
||||
To confirm the email change, please click here:
|
||||
<a href="{router page='profile'}changemail/confirm-to/{$oChangemail->getCodeTo()}/">{router page='profile'}changemail/confirm-to/{$oChangemail->getCodeTo()}/</a>
|
||||
|
||||
<br/><br/>
|
||||
Best regards, site administration <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>
|
|
@ -0,0 +1,11 @@
|
|||
Вами отправлен запрос на смену емайл адреса пользователя <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a> на сайте <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>.<br/>
|
||||
Старый емайл: <b>{$oChangemail->getMailFrom()}</b><br/>
|
||||
Новый емайл: <b>{$oChangemail->getMailTo()}</b><br/>
|
||||
|
||||
|
||||
<br/>
|
||||
Для подтверждения смены емайла пройдите по ссылке:
|
||||
<a href="{router page='profile'}changemail/confirm-from/{$oChangemail->getCodeFrom()}/">{router page='profile'}changemail/confirm-from/{$oChangemail->getCodeFrom()}/</a>
|
||||
|
||||
<br/><br/>
|
||||
С уважением, администрация сайта <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>
|
|
@ -0,0 +1,11 @@
|
|||
Вами отправлен запрос на смену емайл адреса пользователя <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a> на сайте <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>.<br/>
|
||||
Старый емайл: <b>{$oChangemail->getMailFrom()}</b><br/>
|
||||
Новый емайл: <b>{$oChangemail->getMailTo()}</b><br/>
|
||||
|
||||
|
||||
<br/>
|
||||
Для подтверждения смены емайла пройдите по ссылке:
|
||||
<a href="{router page='profile'}changemail/confirm-to/{$oChangemail->getCodeTo()}/">{router page='profile'}changemail/confirm-to/{$oChangemail->getCodeTo()}/</a>
|
||||
|
||||
<br/><br/>
|
||||
С уважением, администрация сайта <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>
|
|
@ -0,0 +1,11 @@
|
|||
{assign var="noSidebar" value=true}
|
||||
{include file='header.tpl' noShowSystemMessage=true}
|
||||
|
||||
|
||||
<div class="content-error">
|
||||
<p>{$sText}</p>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
|
||||
{include file='footer.tpl'}
|
|
@ -20,6 +20,17 @@
|
|||
<label><input {if $oUserCurrent->getSettingsNoticeReplyComment()}checked{/if} type="checkbox" id="settings_notice_reply_comment" name="settings_notice_reply_comment" value="1" class="input-checkbox" /> {$aLang.settings_tuning_notice_reply_comment}</label>
|
||||
<label><input {if $oUserCurrent->getSettingsNoticeNewFriend()}checked{/if} type="checkbox" id="settings_notice_new_friend" name="settings_notice_new_friend" value="1" class="input-checkbox" /> {$aLang.settings_tuning_notice_new_friend}</label>
|
||||
|
||||
<br />
|
||||
<h3>{$aLang.settings_tuning_general}</h3>
|
||||
<label>{$aLang.settings_tuning_general_timezone}:
|
||||
<select name="settings_general_timezone" class="input-width-400">
|
||||
{foreach from=$aTimezoneList item=sTimezone}
|
||||
<option value="{$sTimezone}" {if $_aRequest.settings_general_timezone==$sTimezone}selected="selected"{/if}>{$aLang.timezone_list[$sTimezone]}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</label>
|
||||
|
||||
|
||||
{hook run='form_settings_tuning_end'}
|
||||
<br />
|
||||
<button type="submit" name="submit_settings_tuning" class="button button-primary">{$aLang.settings_profile_submit}</button>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
You have sent a request to change user email <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a> on site <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>.<br/>
|
||||
Old email: <b>{$oChangemail->getMailFrom()}</b><br/>
|
||||
New email: <b>{$oChangemail->getMailTo()}</b><br/>
|
||||
|
||||
|
||||
<br/>
|
||||
To confirm the email change, please click here:
|
||||
<a href="{router page='profile'}changemail/confirm-from/{$oChangemail->getCodeFrom()}/">{router page='profile'}changemail/confirm-from/{$oChangemail->getCodeFrom()}/</a>
|
||||
|
||||
<br/><br/>
|
||||
Best regards, site administration <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>
|
|
@ -0,0 +1,11 @@
|
|||
You have sent a request to change user email <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a> on site <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>.<br/>
|
||||
Old email: <b>{$oChangemail->getMailFrom()}</b><br/>
|
||||
New email: <b>{$oChangemail->getMailTo()}</b><br/>
|
||||
|
||||
|
||||
<br/>
|
||||
To confirm the email change, please click here:
|
||||
<a href="{router page='profile'}changemail/confirm-to/{$oChangemail->getCodeTo()}/">{router page='profile'}changemail/confirm-to/{$oChangemail->getCodeTo()}/</a>
|
||||
|
||||
<br/><br/>
|
||||
Best regards, site administration <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>
|
|
@ -0,0 +1,11 @@
|
|||
Вами отправлен запрос на смену емайл адреса пользователя <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a> на сайте <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>.<br/>
|
||||
Старый емайл: <b>{$oChangemail->getMailFrom()}</b><br/>
|
||||
Новый емайл: <b>{$oChangemail->getMailTo()}</b><br/>
|
||||
|
||||
|
||||
<br/>
|
||||
Для подтверждения смены емайла пройдите по ссылке:
|
||||
<a href="{router page='profile'}changemail/confirm-from/{$oChangemail->getCodeFrom()}/">{router page='profile'}changemail/confirm-from/{$oChangemail->getCodeFrom()}/</a>
|
||||
|
||||
<br/><br/>
|
||||
С уважением, администрация сайта <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>
|
|
@ -0,0 +1,11 @@
|
|||
Вами отправлен запрос на смену емайл адреса пользователя <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a> на сайте <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>.<br/>
|
||||
Старый емайл: <b>{$oChangemail->getMailFrom()}</b><br/>
|
||||
Новый емайл: <b>{$oChangemail->getMailTo()}</b><br/>
|
||||
|
||||
|
||||
<br/>
|
||||
Для подтверждения смены емайла пройдите по ссылке:
|
||||
<a href="{router page='profile'}changemail/confirm-to/{$oChangemail->getCodeTo()}/">{router page='profile'}changemail/confirm-to/{$oChangemail->getCodeTo()}/</a>
|
||||
|
||||
<br/><br/>
|
||||
С уважением, администрация сайта <a href="{cfg name='path.root.web'}">{cfg name='view.name'}</a>
|
Loading…
Reference in a new issue