Приветственный мессадж для новых пользователей

Чтобы Ваш сайт засверкал и засиял доброжелательностью и человеколюбием, вы можете организовать рассылку приветсвенного сообщения в инбокс (private message) каждому вновь зарегистрированному пользователю, где можете написать все что хотите, от радостного «Привет %username%!» до маленького экскурса по всем фичам и секретам работы сайта.

Хак сделан LS мафией (Benone & Lora GT) :)
Демо смотрите на "Новой Музыке".

Итак, добавляем в ActionRegistration.class.php
после действия, где создается персональный блог (строка 172 помоему)
/**
                                         * Оправляем приватку!
                                         */                                     
                                        $oUserAdmin = $this->User_GetUserById(1);                               
                                        $this->Notify_SendWelcomeMessage($oUser,$oUserAdmin);


добавили в notify.class.php в самый низ функцию
public function SendWelcomeMessage(UserEntity_User $oUserTo,UserEntity_User $oUserFrom) {
          
          $this->oViewerLocal->Assign('oUserTo',$oUserTo);
          $this->oViewerLocal->Assign('oUserFrom',$oUserFrom);
          
          $sBody=$this->oViewerLocal->Fetch("notify.pm_reg.tpl");     
          $oTalk=new TalkEntity_Talk();          
          $oTalk->setUserId($oUserFrom->getId());                         
          $oTalk->setTitle("Добро пожаловать!");               
          $oTalk->setText($sBody);                                   
          $oTalk->setDate(date("Y-m-d H:i:s"));
          $oTalk->setUserIp(func_getIp());
       if ($oTalk=$this->Talk_AddTalk($oTalk)) {
               $oTalkUser=new TalkEntity_TalkUser();
               $oTalkUser->setTalkId($oTalk->getId());
               $oTalkUser->setUserId($oUserTo->getId());
               $oTalkUser->setDateLast(null);
               $this->Talk_AddTalkUser($oTalkUser);
  
          }

     }


а для новой версии из SVN код будет такой:
public function SendWelcomeMessage(UserEntity_User $oUserTo,UserEntity_User $oUserFrom) {

$this->oViewerLocal->Assign('oUserTo',$oUserTo);
$this->oViewerLocal->Assign('oUserFrom',$oUserFrom);

$sBody=$this->oViewerLocal->Fetch("pm_reg.tpl"); 
$oTalk=new TalkEntity_Talk(); 
$oTalk->setUserId($oUserFrom->getId()); 
$oTalk->setTitle("Добро пожаловать!"); 
$oTalk->setText($sBody); 
$oTalk->setDate(date("Y-m-d H:i:s"));
$oTalk->setDateLast(date("Y-m-d H:i:s"));
$oTalk->setUserIp(func_getIp());
if ($oTalk=$this->Talk_AddTalk($oTalk)) {
$oTalkUser=new TalkEntity_TalkUser();
$oTalkUser->setTalkId($oTalk->getId());
$oTalkUser->setUserId($oUserTo->getId());
$oTalkUser->setDateLast(null);
$this->Talk_AddTalkUser($oTalkUser); 
}

}


и создаем соответсвующий notify.pm_reg.tpl в ВАШЕМ templates/skin/%SKIN%%/ (замените %SKIN% на ваш ;)

например такой:
Привет!
Вы зарегистрировались на сайте <a href="{$DIR_WEB_ROOT}">Новая музыка</a>!
И так далеее!

ДЛя форматирования теги обязательны

39 комментариев

avatar
Гуд. Спасибо.

зы: Это получается я в той теме не туда послал?))
avatar
ага :) посылать надо было в другое место :)
avatar
LS мафия впечатлила ;) Пропишука к себе в профиль ;)
avatar
Спасибо за функционал
avatar
Имхо лучше в базе создать сообщение и подгружать новым юзерам, вместо отсылки каждому.
avatar
А если вам на него ответят?
avatar
чё к чему…
avatar
Спасибо! Как раз планировал такое сделать, а вы меня приятно опередили :-))
  • Carw
  • 0
avatar
на 3 месяца почти :)) это давно реализовано
avatar
Ну то, что не опубликовано, так считайте и не известно никому :-))
avatar
avatar
Хорошо, ваша взяла — это я умудрился проглядеть такое замечательное решение :))
avatar
Добавил в FAQ.
avatar
Извиняюсь что не в тему но для Ковакса будет полезно —
1235180458-clip-731b Это ие6
avatar
а че, прикольно :)) на самом деле, ie6 и 7 это жесть, как под них оптимизируют вообще?
avatar
Платят верстальщику 4000 рублей за каждый макет.
avatar
Приходит только заголовок. В чем может быть дело?
avatar
И в графе «Собеседники» только «Я», а должно быть по идее «Я и admin».
avatar
чтобы Админ застрелился от ненужных ему писем? :)
avatar
Теперь понятно ;)
avatar
Что то в версии с SVN выдает такую ошибку: Notice: Undefined index: talk_date_last in /...../classes/modules/talk/entity/Talk.entity.class.php on line 36 SQL Error: Column 'talk_date_last' cannot be null at /....../classes/modules/talk/mapper/Talk.mapper.class.php line 30
Array ( [code] => 1048 [message] => Column 'talk_date_last' cannot be null [query] => INSERT INTO prefix_talk (user_id, talk_title, talk_text, talk_date, talk_date_last, talk_user_ip ) VALUES(1, 'Добро пожаловать!', 'Привет!\r\nВы зарегистрировались на сайте! \r\n

\r\nС наилучшими пожеланиями,
\r\nЮран, администратор сайта. \r\n\r\n\r', '2009-03-15 18:37:10', NULL, '217.77.54.63') [context] => /....../classes/modules/talk/mapper/Talk.mapper.class.php line 30 )

Что то ругается на нулевое значение 'talk_date_last' cannot be null. Помогите пожалуйста исправить.
avatar
Как всегда Лора помогла. Если кто устанавливает в версию с SVN то функция в файле Notify.class.php должна быть такой
<code>public function SendWelcomeMessage(UserEntity_User $oUserTo,UserEntity_User $oUserFrom) {

$this->oViewerLocal->Assign('oUserTo',$oUserTo);
$this->oViewerLocal->Assign('oUserFrom',$oUserFrom);

$sBody=$this->oViewerLocal->Fetch("pm_reg.tpl"); 
$oTalk=new TalkEntity_Talk(); 
$oTalk->setUserId($oUserFrom->getId()); 
$oTalk->setTitle("Добро пожаловать!"); 
$oTalk->setText($sBody); 
$oTalk->setDate(date("Y-m-d H:i:s"));
$oTalk->setDateLast(date("Y-m-d H:i:s"));
$oTalk->setUserIp(func_getIp());
if ($oTalk=$this->Talk_AddTalk($oTalk)) {
$oTalkUser=new TalkEntity_TalkUser();
$oTalkUser->setTalkId($oTalk->getId());
$oTalkUser->setUserId($oUserTo->getId());
$oTalkUser->setDateLast(null);
$this->Talk_AddTalkUser($oTalkUser); 
}

}
</code>

Спасибо огромное!
avatar
отлично, сейчас поправлю топик
avatar
хм… почему-то выдает ошибку:

<code>Parse error: syntax error, unexpected T_PUBLIC</code>

и находит ее в первой строке:
<code>public function SendWelcomeMessage(UserEntity_User $oUserTo,UserEntity_User $oUserFrom) {</code>
avatar
А кто нибудь видел рабочую модификацию для версии 0.3???
avatar
Присоединюсь к вопросу bestguys, было бы здорово заиметь рабочую версию для 0.3.1 ;)
avatar
поиск
avatar
Не спрашивал бы, если нашел ранее ;)
avatar
notify.class.php никак не второпую куда туда код вставлять. все ошибки дает
avatar
в самый низ
Перед
}
?>
avatar
Catchable fatal error: Argument 1 passed to ModuleNotify::SendWelcomeMessage() must be an instance of UserEntity_User, instance of ModuleUser_EntityUser given in
avatar
Полезный прибамбас. Надо реанимировать под актуальную версию. Или уже есть? Не нашел.
  • aex
  • 0
avatar
О! Это то что мне нужно было. Спасибо!:)
avatar
Вот этот есть, но под старые версии. Может автор адаптирует.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.