на своем
форуме на основе
этого поста смог заставить работать этот мод.
версия форума 3.08
Правда есть пара вопросов
1. как можно сделать так, чтобы информация о пользователе появлялась не сразу при наведении курсора на ник, а если курсор задержан на пару секунд?
2. не смог разобраться как скорректировать само окно информации - например, я хочу сделать его поуже, размер аватара в выводе окна уменьшить. игры с css не помогли
может кто из профи подскажет?
что сделал чтоб мод работал
1.
/styles/prosilver/theme/common.css в конец добавить
/* Ajax User-Info Popups */
.popup {
z-index: 60;
position: absolute;
display: none;
font-size: 10px;
width: 400px;
}
.avimg {width:100px; float: left; overflow: hidden; height: 400px; }
.ajaxusername {font-weight: bold;}
.ajax_avatar {
width:100px;
float: left;
overflow: hidden;
height: 400px;
text-align: center;
}
2.
в styles/prosilver/template/forum_fn.js в конец добавить
//Ajax Userinfo
var lockAnim;
lockAnim = false;
function show_popup(uID) {
chOpac(0, 'popup');
if (!lockAnim) {
lockAnim = true;
opacAnim('popup', 0, 100, 500);
}
document.onmousemove = snapdiv;
sendRequest(uID);
document.getElementById('popup').style.display='block';
}
function close_popup() {
if (!lockAnim) {
lockAnim = true;
opacAnim('popup', 100, 0, 500);
} else {
document.getElementById('popup').style.display='none';
setDefaults();
}
}
function setDefaults() {
document.getElementById('ajaxusername').innerHTML = '';
document.getElementById('ajax_registert').innerHTML = '';
document.getElementById('ajax_posts').innerHTML = '';
document.getElementById('ajax_from').innerHTML = '';
document.getElementById('ajax_last_visit').innerHTML = '';
// document.getElementById('ajaxavatar').src = "morpexota.ru/forum/styles/prosilver/theme/images/final.gif";
document.getElementById('ajax_rank').innerHTML = '';
document.getElementById('ajaxusername').style.color = '#000000';
document.getElementById('ajax_website').innerHTML = '';
document.onmousemove = '';
}
// Make the request
function createRequestObject() {
if(window.XMLHttpRequest){
ro = new XMLHttpRequest();
} else if(window.ActiveXObject) {
ro = new ActiveXObject("Msxml2.XMLHTTP");
if(!ro) {
ro = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return ro;
}
var http_getuser = createRequestObject();
function sendRequest(UserID) {
http_getuser.open('get', '/forum/ajax_userinfo.php?userid='+UserID);
http_getuser.onreadystatechange = handleResponse;
http_getuser.send(null);
}
// fill in the response
function handleResponse() {
if(http_getuser.readyState == 4 ){
var xmlDoc = http_getuser.responseXML;
if(xmlDoc.hasChildNodes()) {
document.getElementById('ajaxusername').innerHTML = xmlDoc.getElementsByTagName('username')[0].firstChild.nodeValue;
document.getElementById('ajax_registert').innerHTML = xmlDoc.getElementsByTagName('regdate')[0].firstChild.nodeValue;
document.getElementById('ajax_posts').innerHTML = xmlDoc.getElementsByTagName('posts')[0].firstChild.nodeValue;
document.getElementById('ajax_website').innerHTML = xmlDoc.getElementsByTagName('website')[0].firstChild.nodeValue;
document.getElementById('ajax_from').innerHTML = xmlDoc.getElementsByTagName('from')[0].firstChild.nodeValue;
document.getElementById('ajax_last_visit').innerHTML = xmlDoc.getElementsByTagName('lastvisit')[0].firstChild.nodeValue;
document.getElementById('ajax_rank').innerHTML = xmlDoc.getElementsByTagName('rank')[0].firstChild.nodeValue;
document.getElementById('ajax_avatar').innerHTML = xmlDoc.getElementsByTagName('avatar')[0].firstChild.nodeValue;
document.getElementById('popup').style.display='block';
}
}
}
function snapdiv(e) {
var docX, docY;
if(e) {
if(typeof(e.pageX) == 'number') { docX = e.pageX; docY = e.pageY;}
else {docX = e.clientX; docY = e.clientY;}
}
else {
e = window.event;
docX = e.clientX; docY = e.clientY;
if(document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
docX += document.documentElement.scrollLeft; docY += document.documentElement.scrollTop;
}
else if(document.body && (document.body.scrollTop || document.body.scrollLeft)) {
docX += document.body.scrollLeft; docY += document.body.scrollTop;
}
}
if (docX > document.body.offsetWidth - 400) {
document.getElementById('popup').style.left = (docX - 390) + "px";
} else {document.getElementById('popup').style.left = (docX - 10) + "px";}
document.getElementById('popup').style.top = (docY + 20) + "px";
}
function opacAnim(id, opacStart, opacEnd, millisec) {
lockAnim = true;
var speed = Math.round(millisec / 100);
var timer = 0; var i = 0;
if (opacEnd>opacStart) {
for (i = opacStart+1; i <= opacEnd; i=i+2) {
i= (i==99)?100:i;
setTimeout("chOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
} else {
for (i = opacStart-1; i >= opacEnd; i--) {
setTimeout("chOpac(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
}
}
function chOpac(opacity, id) {
var object = document.getElementById(id).style;
object.filter = "alpha(opacity:" + opacity + ")";
object.opacity = object.MozOpacity = object.KhtmlOpacity = (opacity / 100);
if ((opacity <= 0) || (opacity >= 100)) {
lockAnim = false;
if (opacity <= 0) {document.getElementById(id).style.display='none';setDefaults();}
}
}
3.
в styles/prosilver/template/ajax_userinfo.html оставить только
<div class="popup forabg" id="popup" style="display: none;">
<div class="inner">
<span class="corners-top"><span></span></span>
<ul class="topiclist fullwidth">
<li class="header"><dl><dt>Информация о пользователе</dt></dl></li>
</ul>
<ul class="topiclist forums">
<li><dl>
<dd class="posts_portal">
<div id="avimg">
<img id="ajax_avatar">
</div>
<strong>Пользователь:</strong> <span id="ajaxusername"></span><br />
<strong>Всего сообщений:</strong> <span id="ajax_posts"></span><br />
<strong>Звание:</strong> <span id="ajax_rank"></span><br />
<strong>Зарегистрирован:</strong> <span id="ajax_registert"></span><br />
<strong>Последний визит:</strong> <span id="ajax_last_visit"></span><br />
<strong>Откуда:</strong> <span id="ajax_from"></span><br />
<strong>Сайт:</strong> <span id="ajax_website"></span>
<br style="clear: both;">
</dd>
</dl></li>
</ul>
<span class="corners-bottom"><span></span></span>
</div>
</div>
4.
Добавлено спустя 12 минут 1 секунду:и, блин, пять минут назад перестали отображаться аватары в всплывающем окне. Ничего не менял, только скопипастил сюда часть кода.
подскажите плз, в чем ошибка