Jabber'изация: Добавляем jabber в профиль
Вижу, что есть наметки, и в будущем джаббер/скайп/etc будут работать из коробки.
Ну а пока этого нет — приходится делать самостоятельно.
1. добавляем нужное поле в базу
2. в файле templates/language/russian.php находим строку:
3. в файле classes/actions/ActionSettings.class.php находим
4. в файле classes/modules/user/entity/User.entity.class.php
находим:
находим:
В файле classes/modules/user/mapper/User.mapper.class.php
находим:
находим:
5. И последнее — правка шаблонов:
в файле: templates/skin/<имя-вашей-темы>/actions/ActionSettings/profile.tpl находим строку:
в файле templates/skin/<имя-вашей-темы>/actions/ActionProfile/sidebar.tpl находим блок:
Ну а пока этого нет — приходится делать самостоятельно.
1. добавляем нужное поле в базу
alter table prefix_user add user_profile_jabber varchar(150) after user_profile_icq;
2. в файле templates/language/russian.php находим строку:
'settings_profile_icq' => 'ICQ',
и после нее добавляем: 'settings_profile_jabber' => 'Jabber',
3. в файле classes/actions/ActionSettings.class.php находим
$this->oUserCurrent->setProfileIcq(null);
}
и после этого добавляем: /**
* Проверяем Jabber
*/
if (func_check(getRequest('profile_jabber'),'text',1,150)) {
$this->oUserCurrent->setProfileJabber(getRequest('profile_jabber'));
} else {
$this->oUserCurrent->setProfileJabber(null);
}
4. в файле classes/modules/user/entity/User.entity.class.php
находим:
return $this->_aData['user_profile_icq'];
}
после этого добавляем: public function getProfileJabber() {
return $this->_aData['user_profile_jabber'];
}
находим:
$this->_aData['user_profile_icq']=$data;
}
после этого добавляем: public function setProfileJabber($data) {
$this->_aData['user_profile_jabber']=$data;
}
В файле classes/modules/user/mapper/User.mapper.class.php
находим:
user_profile_icq = ? ,
после этого добавляем user_profile_jabber = ? ,
находим:
$oUser->getProfileIcq(),
после добавляем: $oUser->getProfileJabber(),
5. И последнее — правка шаблонов:
в файле: templates/skin/<имя-вашей-темы>/actions/ActionSettings/profile.tpl находим строку:
<p><label for="profile_icq">{$aLang.settings_profile_icq}:</label><br /><input type="text" class="w300" name="profile_icq" id="profile_icq" value="{$oUserCurrent->getProfileIcq()|escape:'html'}"/></p>
и после нее добавляем <p><label for="profile_jabber">{$aLang.settings_profile_jabber}:</label><br /><input type="text" class="w300" name="profile_jabber" id="profile_jabber" value="{$oUserCurrent->getProfileJabber()|escape:'html'}"/></p>
в файле templates/skin/<имя-вашей-темы>/actions/ActionProfile/sidebar.tpl находим блок:
{if $oUserProfile->getProfileIcq()}
<strong>{$aLang.profile_social_contacts}</strong>
<ul>
{if $oUserProfile->getProfileIcq()}
<li class="icq"><a href="http://www.icq.com/people/about_me.php?uin={$oUserProfile->getProfileIcq()|escape:'html'}" target="_blank">{$oUserProfile->getProfileIcq()}</a></li>
{/if}
и заменяем его на:
{if $oUserProfile->getProfileIcq() || $oUserProfile->GetProfileJabber()}
<strong>{$aLang.profile_social_contacts}</strong>
<ul>
{if $oUserProfile->getProfileIcq()}
<li class="icq"><a href="http://www.icq.com/people/about_me.php?uin={$oUserProfile->getProfileIcq()|escape:'html'}" target="_blank">{$oUserProfile->getProfileIcq()}</a></li>
{/if}
{if $oUserProfile->getProfileJabber()}
<li class="jabber">{$oUserProfile->getProfileJabber()|escape:'html'}</li>
{/if}
33 комментария
Пуду ждать и ругих добавлений:
SIP
Skype
QIP
AgentMail
Телефон
рабочий
Мобтльный
Проделал описанную процедуру, но добавлял другое поле: «Место работы»
Уперся в баг — вбиваю поле, жму сохранить и введенное значение сохраняется вместо стандартного поля «Город». Проверил все файлы, вроде нигде не ошибся и использую новый profileJob
Помогите, плиз
setProfileJabber не заменил на свое :)
Все вроде работает.
Но у меня проблема, созданное поле есть, но когда в настройках ввожу его значение, нажимаю сохранить, оно опять очищается. Т.е. не сохраняется значение в таблице базы данных. Я проверял на ошибки 10 раз уже, вроде всё ок.
Я думаю уже в сторону того, что кнопка «сохранить» не подтверждает ввод этого поля.
Помогите кто-нибудь советом.
Спасибо.
Вот если бы был плагин «конструктор полей профиля», то было бы проще.
Запрос к SQL:
В ActionSettings.class.php:
В User.entity.class.php:
В начале странице (там, где подобные этой записи) вот это:
Потом, такой код:
В файле User.mapper.class.php
…
Т.е. оно ему дает запрос обновлять эту таблицу! Во всех местах surname я вводил сразу после name. Стандартное поле namt работает исправно.
В шаблоне:
Спасибо большое, если поможете.
Логин — test
Пароль— test1
фигурная скобка стоит? или вы просто здесь не написали ее? может ошибка могла возникнуть, когда вы разделяли настройки по страницам.
Не поплывёт ли шаблон Mirage?