Показать сообщение отдельно
Старый 21.10.2013, 18:48 Вверх   #1
Грамотный форумчанин
 
Аватар для iKing
iKing вне форума
Доп. информация
По умолчанию Ajax notification of a new personal message

Ajax notification of a new personal message
Тестировалось: на vBulletin 4.2.0

Источник

Уведомление о приходе личных сообщений на ajax. Плавающий мигающий значок в правом верхнем углу


Настройки в админ панели


Установка:

Закачать файлы из папки upload в корень форума и файл newpm.gif в папку
images вашего стиля

Импортировать продукт в нужной кодировке product-ajaxnewpm_cp1251.xml или product-ajaxnewpm_utf8.xml

Редактировать шаблоны:

footer

В низ вставить:


Код:
<script>
    sessionurl = '';
    checkNewPM()
</script>

<vb:if condition="$bbuserinfo[pmunread]"> 
<div id="ajaxnewpmdiv" style="position:absolute; display:none; width:80px; height:80px; background:transparent; margin-top:0px; margin-left:-110px;
 border:none;">
 <a href="http://botzack.ru/private.php"><img src="images/newpm.gif" alt="У Вас новое личное сообщение" border="0"/></a>
</div>

<script type="text/javascript"><!--
var target_x = -60;
var target_y = 12;

var has_inner = typeof(window.innerWidth) == 'number';
var has_element = document.documentElement && document.documentElement.clientWidth;

var fm_id='ajaxnewpmdiv';
var floating_menu =
    document.getElementById
    ? document.getElementById(fm_id)
    : document.all
      ? document.all[fm_id]
      : document.layers[fm_id];

var fm_shift_x, fm_shift_y, fm_next_x, fm_next_y;

function move_menu()
{
    if (document.layers)
    {
        floating_menu.left = fm_next_x;
        floating_menu.top = fm_next_y;
    }
    else
    {
        floating_menu.style.left = fm_next_x + 'px';
        floating_menu.style.top = fm_next_y + 'px';
    }
}

function compute_shifts()
{
    fm_shift_x = has_inner
        ? pageXOffset
        : has_element
          ? document.documentElement.scrollLeft
          : document.body.scrollLeft;
    if (target_x < 0)
        fm_shift_x += has_inner
            ? window.innerWidth
            : has_element
              ? document.documentElement.clientWidth
              : document.body.clientWidth;

    fm_shift_y = has_inner
        ? pageYOffset
        : has_element
          ? document.documentElement.scrollTop
          : document.body.scrollTop;
    if (target_y < 0)
        fm_shift_y += has_inner
            ? window.innerHeight
            : has_element
              ? document.documentElement.clientHeight
              : document.body.clientHeight;
}

function float_menu()
{
    var step_x, step_y;

    compute_shifts();

    step_x = (fm_shift_x + target_x - fm_next_x) ;
    if (Math.abs(step_x) < .5)
        step_x = fm_shift_x + target_x - fm_next_x;

    step_y = (fm_shift_y + target_y - fm_next_y) ;
    if (Math.abs(step_y) < .5)
        step_y = fm_shift_y + target_y - fm_next_y;

    if (Math.abs(step_x) > 0 ||
        Math.abs(step_y) > 0)
    {
        fm_next_x += step_x;
        fm_next_y += step_y;
        move_menu();
    }

    setTimeout('float_menu()', 20);
};

compute_shifts();
if (document.layers)
{
    // Netscape 4 cannot perform init move
    // when the page loads.
    fm_next_x = 0;
    fm_next_y = 0;
}
else
{
    fm_next_x = fm_shift_x + target_x;
    fm_next_y = fm_shift_y + target_y;
    move_menu();
}
float_menu();
//--></script>

</vb:if>
headerinclude
Код:
<script type="text/javascript" src="clientscript/vbulletin_ajax_checknewpm.js"></script>
Ajax notification of a new personal message.rar (12.1 Кб)

Последний раз редактировалось Serberg; 22.10.2013 в 16:40..
  Ответить с цитированием
Cказали cпасибо:
 
Время генерации страницы 0.04561 секунды с 10 запросами