Уведомления на e-mail

Здравствуйте.

Скажите пожалуйста, как сделать так, чтобы при регистрации, у человека были отключены следующие Уведомления на e-mail:

— при новой теме в разделе
— при новом сообщения в теме
— при ответе на сообщение

Где находится параметр, который отвечает за установку этих галочек по-умолчанию?

Заранее спасибо!

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

avatar
В файле ActionRegistration.class.php

после
$oUser->setIpRegister(func_getIp());

добавить
$oUser->setSettingsNoticeNewTopic(0);
$oUser->setSettingsNoticeNewComment(0);
$oUser->setSettingsNoticeReplyComment(0);
avatar
А я бы в базе дефолтные значения поменял.
avatar
Я имела в виду про регистрацию новых пользователей, а не тех, кто уже зарегистрировался.
avatar
И я это имел ввиду.
avatar
Спасибо большое. Вот я зарегистрировала нового пользователя, но галочки в настройках всё равно все отмечены. Сейчас это всё уже работает? Или если галочки отмечены, значит код не сработал?
avatar
я тут посмотрел, при инсерте эти поля действительно не учитываются и устанавливаются по дефолту. Так что либо менять дефолтовые значения полей в таблице `user`, либо в маппере User.mapper.class.php
менять

public function Add(ModuleUser_EntityUser $oUser) {
		$sql = "INSERT INTO ".Config::Get('db.table.user')."
			(user_login,
			user_password,
			user_mail,
			user_date_register,
			user_ip_register,
			user_activate,
			user_activate_key
                        
			)
			VALUES(?,  ?,	?,	?,	?,	?,	?)
		";
		if ($iId=$this->oDb->query($sql,$oUser->getLogin(),$oUser->getPassword(),$oUser->getMail(),$oUser->getDateRegister(),$oUser->getIpRegister(),$oUser->getActivate(),$oUser->getActivateKey())) {
			return $iId;
		}
		return false;
	}

на


public function Add(ModuleUser_EntityUser $oUser) {
		$sql = "INSERT INTO ".Config::Get('db.table.user')."
			(user_login,
			user_password,
			user_mail,
			user_date_register,
			user_ip_register,
			user_activate,
			user_activate_key,
                        user_settings_notice_new_topic,
			user_settings_notice_new_comment,			
			user_settings_notice_reply_comment			
			)
			VALUES(?,  ?,	?,	?,	?,	?,	?, ?d, ?d, ?d)
		";
		if ($iId=$this->oDb->query($sql,$oUser->getLogin(),$oUser->getPassword(),$oUser->getMail(),$oUser->getDateRegister(),$oUser->getIpRegister(),$oUser->getActivate(),$oUser->getActivateKey(),$oUser->getSettingsNoticeNewTopic(),$oUser->getSettingsNoticeNewComment(),$oUser->getSettingsNoticeReplyComment())) {
			return $iId;
		}
		return false;
	}
avatar
При регистрации вылетает такая ошибка:

Notice: Undefined index: user_settings_notice_new_topic in /home/site/domains/site.ru/public_html/classes/modules/user/entity/User.entity.class.php on line 107

Notice: Undefined index: user_settings_notice_new_comment in /home/site/domains/site.ru/public_html/classes/modules/user/entity/User.entity.class.php on line 110

Notice: Undefined index: user_settings_notice_reply_comment in /home/site/domains/site.ru/public_html/classes/modules/user/entity/User.entity.class.php on line 116

SQL Error: Column 'user_settings_notice_new_topic' cannot be null at /home/site/domains/site.ru/public_html/classes/modules/user/mapper/User.mapper.class.php line 40

Array ( [code] => 1048 [message] => Column 'user_settings_notice_new_topic' cannot be null [query] => INSERT INTO sc_user (user_login, user_password, user_mail, user_date_register, user_ip_register, user_activate, user_activate_key, user_settings_notice_new_topic, user_settings_notice_new_comment, user_settings_notice_reply_comment ) VALUES('aaa', 'e2668ad11caaac738b0d4ff66041037e', 'aaa@ya.ru', '2011-11-08 14:25:01', '212.11.22.170', '0', '5a90f53ab24119bbb757753fcf39e726', NULL, NULL, NULL) [context] => /home/site/domains/site.ru/public_html/classes/modules/user/mapper/User.mapper.class.php line 40 ) 
avatar
так а это осталось?
$oUser->setSettingsNoticeNewTopic(0);
$oUser->setSettingsNoticeNewComment(0);
$oUser->setSettingsNoticeReplyComment(0);
avatar
Нет, это удалила. Ошибка появляется и с этим кодом, и без него.
Может ли быть такая ошибка из-за плагина KeyCaptcha?
avatar
нет, не из-за этого
avatar
странно, с этим кодом все должно работать.
Тогда убирайте:
$oUser->setSettingsNoticeNewTopic(0);
$oUser->setSettingsNoticeNewComment(0);
$oUser->setSettingsNoticeReplyComment(0);

А в classes/modules/user/entity/User.entity.class.php
меняем:

    public function getSettingsNoticeNewTopic() {
        return $this->_aData['user_settings_notice_new_topic'];
    }
    public function getSettingsNoticeNewComment() {
        return $this->_aData['user_settings_notice_new_comment'];
    }
    public function getSettingsNoticeNewTalk() {
        return $this->_aData['user_settings_notice_new_talk'];
    }
    public function getSettingsNoticeReplyComment() {
        return $this->_aData['user_settings_notice_reply_comment'];
    }
    public function getSettingsNoticeNewFriend() {
        return $this->_aData['user_settings_notice_new_friend'];
    }

на

    public function getSettingsNoticeNewTopic() {
        return isset($this->_aData['user_settings_notice_new_topic']) ? $this->_aData['user_settings_notice_new_topic'] : 0;
    }
    public function getSettingsNoticeNewComment() {
        return isset($this->_aData['user_settings_notice_new_comment']) ? $this->_aData['user_settings_notice_new_comment'] : 0;
    }
    public function getSettingsNoticeNewTalk() {
        return isset($this->_aData['user_settings_notice_new_talk']) ? $this->_aData['user_settings_notice_new_talk'] : 0;
    }
    public function getSettingsNoticeReplyComment() {
        return isset($this->_aData['user_settings_notice_reply_comment']) ? $this->_aData['user_settings_notice_reply_comment'] : 0;
    }
    public function getSettingsNoticeNewFriend() {
        return isset($this->_aData['user_settings_notice_new_friend']) ? $this->_aData['user_settings_notice_new_friend'] : 0;
    }
avatar
Теперь все работает! Спасибо Вам огромное!
avatar
У меня не заработал ни один из вариантов.
avatar
Все в порядке работает.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.