Jabber'изация: Отправка уведомлений.
После добавления Jabber'а в профиль , на него можно слать уведомления о новых комментариях/постах/письмах. На мой взгляд это значительно удобнее почты.
Все последующие шаги можно делать только если вы добавили поле jabber'а в профиль!
1. Берем необходимые файликитут
2. Копируем каталоги /classes/, /config/ и /template/languages/ соответственно в каталоги classes/ config/ и languages/ в дереве, где установлен LiveStreet.
Потребуется замена файла Notify.class.php. если вы его не меняли (другими хаками) то можно не волноваться.
3. Копируем файлы из каталога templates/skin/new/notify в соответствующий каталог используемой вами темы.
Выполняем sql запрос:
Находим в файле /classes/actions/ActionSettings.class.php:
Находим
в файле: /classes/modules/user/entity/User.entity.class.php находим:
в файле: /classes/modules/user/mapper/User.mapper.class.php находим:
находим:
в файле /templates/skin/<ваша-тема>/actions/ActionSettings/tuning.tpl находим:
P.S. Конечно же забыл. конфиг /config/modules/jabber/config.php надо исправить в соответствии со своими настройками, указав jid от имени которого будут рассылаться уведомления.
Все последующие шаги можно делать только если вы добавили поле jabber'а в профиль!
1. Берем необходимые файлики
2. Копируем каталоги /classes/, /config/ и /template/languages/ соответственно в каталоги classes/ config/ и languages/ в дереве, где установлен LiveStreet.
Потребуется замена файла Notify.class.php. если вы его не меняли (другими хаками) то можно не волноваться.
3. Копируем файлы из каталога templates/skin/new/notify в соответствующий каталог используемой вами темы.
Выполняем sql запрос:
alter table prefix_user add user_settings_notice_method enum('mail', 'jabber') not null default 'mail' after user_profile_foto;
Находим в файле /classes/actions/ActionSettings.class.php:
if (isset($_REQUEST['submit_settings_tuning'])) {
$this->Security_ValidateSendForm();
и после этого добавляем: $sNoticeMethod = getRequest('settings_notice_method');
if ($sNoticeMethod == "jabber" && is_null($this->oUserCurrent->getProfileJabber())) {
$this->Message_AddErrorSingle($this->Lang_Get('settings_tuning_no_jid'));
return;
}
$this->oUserCurrent->setSettingsNoticeMethod( $sNoticeMethod );
Находим
$this->oUserCurrent->setProfileJabber(null);
и добавляем после этого: $this->oUserCurrent->setSettingsNoticeMethod('mail');
в файле: /classes/modules/user/entity/User.entity.class.php находим:
return $this->_aData['user_profile_foto'];
}
и добавляем после этого: public function getSettingsNoticeMethod() {
return $this->_aData['user_settings_notice_method'];
}
находим: $this->_aData['user_profile_foto']=$data;
}
и добавляем после этого: public function setSettingsNoticeMethod($data) {
$this->_aData['user_settings_notice_method']=$data;
}
в файле: /classes/modules/user/mapper/User.mapper.class.php находим:
user_profile_foto = ? ,
и добавляем следом: user_settings_notice_method = ? ,
находим:
$oUser->getProfileFoto(),
и добавляем следом: $oUser->getSettingsNoticeMethod(),
в файле /templates/skin/<ваша-тема>/actions/ActionSettings/tuning.tpl находим:
<label for=""><input {if $oUserCurrent->getSettingsNoticeNewFriend()}checked{/if} type="checkbox" id="settings_notice_new_friend" name="settings_notice_new_friend" value="1" class="checkbox" /> — {$aLang.settings_tuning_notice_new_friend}</label>
и после этого добавляем: <br />
<select name="settings_notice_method" style="width: 200px;">
<option value="mail" {if $oUserCurrent->getSettingsNoticeMethod()=='mail'}selected{/if}>{$aLang.settings_tuning_notice_method_mail}</option>
<option value="jabber" {if $oUserCurrent->getSettingsNoticeMethod()=='jabber'}selected{/if}>{$aLang.settings_tuning_notice_method_jabber}</option>
</select>
P.S. Конечно же забыл. конфиг /config/modules/jabber/config.php надо исправить в соответствии со своими настройками, указав jid от имени которого будут рассылаться уведомления.
4 комментария
languages\ — в публичной версии папка называется language