1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-05-14 23:08:18 +03:00
Conflicts:
	templates/language/english.php
	templates/language/russian.php
This commit is contained in:
Denis Shakhov 2012-07-28 00:47:29 +07:00
commit 6166c6e98a
22 changed files with 555 additions and 53 deletions

View file

@ -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');
}
/**
* Выполняется при завершении работы экшена
*/

View file

@ -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'));

View file

@ -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;
}
}
?>

View 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 {
}
?>

View file

@ -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;
}
/**
* Возвращает список пользователей по фильтру
*

View file

@ -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
/**

View file

@ -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);

View 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;

View file

@ -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 &amp; 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'
)
);
?>

View file

@ -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] Остров Лайн'
)
);
?>

View file

@ -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'}

View file

@ -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'}

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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'}

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>