Текущее время: 28 мар 2024, 23:10


Форум временно переведен в режим "Только для чтения". По вопросам технической поддержки, обращайтесь, пожалуйста на admin@getbb.ru

 

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Уведомление ЛС
СообщениеДобавлено: 20 дек 2008, 18:59 
Гуру
Аватара пользователя

Зарегистрирован: 05 фев 2008, 21:50
Сообщений: 400
Откуда: СССР
Очков репутации: 33

Добавить очки репутацииУменьшить очки репутации
Когда получаешь ЛС, поидее форум должен уведомить об этом всплывающим окном, но многие браузеры блокируют эту информацию и ЛС может остоваться незамеченным долгое время, поэтому предлагаю для решения этой проблемы следующее:
Помните скрипт, надоедливый такой, когда заходишь гостем он долго и упорно просит вас зарегистрироваться, так этот же скрипт можно переделать под ЛС:
Итак, открываем overall_header.html и вконце вставляем:
Код:
<!-- IF S_USER_NEW_PRIVMSG -->
<script type='text/javascript'>
var displaymode = 'always';
var enablefade = 'no';
var autohidebox = ['yes', 30];
var showonscroll = 'yes';
var IEfadelength = 1;
var Mozfadedegree = 0.05;
if (parseInt(displaymode) != NaN)
{
var random_num = Math.floor(Math.random() * displaymode);
}
function display_hover_prompt()
{
var ie = document.all && !window.opera;
var dom = document.getElementById;
var iebody = (document.compatMode == 'CSS1Compat') ? document.documentElement : document.body;
var objref = (dom) ? document.getElementById('hoverprompt') : document.all.hoverprompt;
var scroll_top = (ie) ? iebody.scrollTop : window.pageYOffset;
var docwidth = (ie) ? iebody.clientWidth : window.innerWidth;
var docheight = (ie) ? iebody.clientHeight: window.innerHeight;
var objwidth = objref.offsetWidth;
var objheight = objref.offsetHeight;
objref.style.left = docwidth/2-objwidth/2+'px';
objref.style.top = scroll_top+docheight/2-objheight/2+'px';
if (showonscroll == 'yes')
{
var showonscrollvar = setInterval('static_hover_prompt()', 50);
}
if (enablefade == 'yes' && objref.filters)
{
objref.filters[0].duration = IEfadelength;
objref.filters[0].Apply();
objref.filters[0].Play();
}
objref.style.visibility = 'visible';
if (objref.style.MozOpacity)
{
if (enablefade == 'yes')
{
var mozfadevar = setInterval('mozilla_hover_prompt_fade()', 90);
}
else
{
objref.style.MozOpacity = 1;
initiate_hover_prompt_hiding();
}
}
else
{
initiate_hover_prompt_hiding()
}
}
function mozilla_hover_prompt_fade()
{
if (parseFloat(objref.style.MozOpacity) < 1)
{
objref.style.MozOpacity = parseFloat(objref.style.MozOpacity)+Mozfadedegree;
}
else
{
clearInterval(mozfadevar);
controlledhidebox();
}
}
function static_hover_prompt()
{
var ie = document.all && !window.opera;
var dom = document.getElementById;
var iebody = (document.compatMode == 'CSS1Compat') ? document.documentElement : document.body;
var objref = (dom) ? document.getElementById('hoverprompt') : document.all.hoverprompt;
var scroll_top = (ie) ? iebody.scrollTop : window.pageYOffset;
var docwidth = (ie) ? iebody.clientWidth : window.innerWidth;
var docheight = (ie) ? iebody.clientHeight: window.innerHeight;
var objwidth = objref.offsetWidth;
var objheight = objref.offsetHeight;
objref.style.top = scroll_top+docheight/3-objheight/2+'px';
}
function hide_hover_prompt()
{
var ie = document.all && !window.opera;
var dom = document.getElementById;
var iebody = (document.compatMode == 'CSS1Compat') ? document.documentElement : document.body;
var objref = (dom) ? document.getElementById('hoverprompt') : document.all.hoverprompt;
objref.style.visibility = 'hidden';
if (typeof showonscrollvar != 'undefined')
{
clearInterval(showonscrollvar);
}
}
function initiate_hover_prompt_hiding()
{
if (autohidebox[0] == "yes")
{
var delayvar = (enablefade == 'yes' && objref.filters) ? (autohidebox[1]+objref.filters[0].duration)*1000 : autohidebox[1]*1000;
initiate_timer(delayvar);
setTimeout('hide_hover_prompt()', delayvar);
}
}
function initiate_timer(time)
{
var newtime = time-1000;
setTimeout('update_timer('+newtime+')', 1000);
}
function update_timer(time)
{
var timer = time/1000;
var ie = document.all && !window.opera;
var dom = document.getElementById;
if (dom)
{
var hp = document.getElementById('hptimer');
if (timer == 1)
{
hp.innerHTML = "<small><i>Окно закроется через "+timer+" секунду</i></small>";
}
else
{
hp.innerHTML = "<small><i>Окно закроется через "+timer+" секунд</i></small>";
}
}
var newtime = time-1000;
setTimeout('update_timer('+newtime+')', 1000);
}
function initiate_hover_prompt()
{
setTimeout('display_hover_prompt()', 100);
}
function get_cookie(Name)
{
var search = Name + "=";
var returnvalue = "";
if (document.cookie.length > 0)
{
var offset = document.cookie.indexOf(search);
if (offset != -1)
{
offset += search.length;
var end = document.cookie.indexOf(';', offset);
if (end == -1)
{
end = document.cookie.length;
}
returnvalue = unescape(document.cookie.substring(offset, end));
}
}
return returnvalue;
}
if (displaymode == 'always' || parseInt(displaymode) != NaN && random_num == 0)
{
if (window.addEventListener)
{
window.addEventListener('load', initiate_hover_prompt, false)
}
else if (window.attachEvent)
{
window.attachEvent('onload', initiate_hover_prompt)
}
else if (document.getElementById)
{
window.onload = initiate_hover_prompt;
document.cookie = 'fadedin=yes';
}
}
</script>
<style type='text/css'>#hoverprompt{position:absolute;width:300px;left:0;top:-400px;padding:4px;z-index:100;visibility:hidden}</style>
<div id='hoverprompt' class='tablebg'><div class='tablebg'><div class='maintitle' align='center'><b><font size="4">Внимание!!!</font></b></div>
<table align='center' width='100%' class='row1' cellspacing='0' cellpadding='5'>
<tr>
<td align='center'><b>Вам пришло новое сообщение!!! <a href="{U_PRIVATEMSGS}">{PRIVATE_MESSAGE_INFO}</a><b>.</br></br></br> (это окно будет напоминать Вам о не прочитанном сообщении до тех пор - пока Вы его не прочитаете).
</td>
</tr>
<tr>
<td align='center'><div id='hptimer'><i>Окно закроется через 30 секунд</i></div></td>
</tr>
</table></div></div>
<br />
<!-- ENDIF -->

Теперь занудная табличка будет преследовать пользователя по всему форуму, пока он не прочитает свои ЛС... :)

_________________
Ивацевичи


Не в сети
 Профиль Cпасибо сказано  
 
За это сообщение пользователю Speaker "Спасибо" сказали:
Banzaika, BRISE, Gold, Gray, InstallGame, jinbiryukov, Mariya, Mihasa, nik55, Salamandra, Vitaliy21, Vityas, z668, Мила, НЕЗНАЙКА
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 23 дек 2008, 01:49 
Забыл про аватар :)
Гуру

Зарегистрирован: 31 июл 2008, 11:23
Сообщений: 317
Очков репутации: 8

Добавить очки репутацииУменьшить очки репутации
Пол: Мужской
Speaker

спасибо большое, этот намного лучше, а ты случайно не знаешь как стандартный вообще удалить из личного раздела?
Пробывал удалять сам модуль через Система > Управление модулями > Личный раздел > Личные сообщения > Всплывающее окно о новом личном сообщении

Но хоть отключай, хоть удаляй, но в личном разделе все равно остается :(

_________________
ALL BEST


Не в сети
 Профиль Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 06 янв 2009, 18:57 
Универсальный Гений
Аватара пользователя

Зарегистрирован: 06 авг 2008, 02:25
Сообщений: 1034
Откуда: фатЭрланд
Очков репутации: 42

Добавить очки репутацииУменьшить очки репутации
Пол: Мужской
она есть, только по умолчанию стоит "нет", только либо у некоторых браузеры не настроены либо не знаю где включать :wink:

личный раздел->личные настройки->всплывающее окно! :)


Не в сети
 Профиль Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 07 янв 2009, 21:57 
Забыл про аватар :)
Гуру

Зарегистрирован: 31 июл 2008, 11:23
Сообщений: 317
Очков репутации: 8

Добавить очки репутацииУменьшить очки репутации
Пол: Мужской
k4miKaz3 писал(а):
она есть, только по умолчанию стоит "нет", только либо у некоторых браузеры не настроены либо не знаю где включать личный раздел->личные настройки->всплывающее окно!


браузеры типа оперы, блокируют стандарные уведомления ЛС

_________________
ALL BEST


Не в сети
 Профиль Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 08 фев 2009, 21:48 
Забыл про аватар :)
Гуру

Зарегистрирован: 31 июл 2008, 11:23
Сообщений: 317
Очков репутации: 8

Добавить очки репутацииУменьшить очки репутации
Пол: Мужской
Speaker

было бы ещё классно, еслиб твой скрипт "Уведомление ЛС" можно было отключать в личном разделе заместо стандартного.... :)

_________________
ALL BEST


Не в сети
 Профиль Cпасибо сказано  
 
За это сообщение пользователю Vitaliy21 "Спасибо" сказали:
Banzaika
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 09 фев 2009, 16:07 
Универсальный телепат
Аватара пользователя

Зарегистрирован: 28 мар 2008, 23:38
Сообщений: 3408
Откуда: Москва
Очков репутации: 144

Добавить очки репутацииУменьшить очки репутации
Пол: Мужской
Vitaliy21 писал(а):
было бы ещё классно, еслиб твой скрипт "Уведомление ЛС" можно было отключать в личном разделе заместо стандартного....

не проверял, но навскидку
в шаблоне overall_header.html убираем
Код:
<!-- IF S_USER_PM_POPUP -->
   if ({S_NEW_PM})
   {
      popup('{UA_POPUP_PM}', 400, 225, '_phpbbprivmsg');
   }
<!-- ENDIF -->


а код Speaker'a преобразуем в:
Код:
<!-- IF S_USER_PM_POPUP -->
...
здесь код всплывающего окна
...
<!-- ENDIF -->

_________________
НАШИ ПУТЕШЕСТВИЯ :)
Изображение


Не в сети
 Профиль WWW Cпасибо сказано  
 
За это сообщение пользователю Uho "Спасибо" сказали:
Vitaliy21, Мила
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 09 фев 2009, 17:19 
Забыл про аватар :)
Гуру

Зарегистрирован: 31 июл 2008, 11:23
Сообщений: 317
Очков репутации: 8

Добавить очки репутацииУменьшить очки репутации
Пол: Мужской
Uho писал(а):
не проверял, но навскидкув шаблоне overall_header.html убираем


Спасибо большое - Работает! :)

_________________
ALL BEST


Не в сети
 Профиль Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 19 мар 2011, 19:31 
Продвинутый
Аватара пользователя

Зарегистрирован: 01 сен 2010, 13:51
Сообщений: 99
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
А микро-кнопочку закрыть можно сделать как-то?
Есть неприятная ситуация: когда полный ящик, сообщения не добавляются, следовательно при открытия ящика окошко выскакивает, а так как при удалении сообщений из ящика надо подтвердить свои действия, то уведомление о ЛС загораживает кнопки подтверждения и приходится ждать пока оно закроется.
Куда проще было бы нажать кнопку и закрыть его.
Вообще. придел мечтаний это на ajax, чтобы в реальном времени приходило, а не при обновлении страницы.


Не в сети
 Профиль WWW Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 21 мар 2011, 12:23 
Продвинутый
Аватара пользователя

Зарегистрирован: 01 сен 2010, 13:51
Сообщений: 99
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Кнопку закрытие окна сам сделал.
Вставляем например перед:
Код:
<style type='text/css'>#hoverprompt{position:absolute;width:300px;left:0;top:-400px;padding:4px;z-index:100;visibility:hidden}</style>

Вот это:
Код:
<!-- скрипт кнопки закрытия окна -->
<script type="text/javascript">
function hidepm()
{       
var element = document.getElementById('hoverprompt');
element.style.visibility = 'hidden';
}
</script>
<!-- скрипт кнопки закрытия окна, конец -->


А в нужное место, саму кнопку.
Сама кнопка:
Код:
<div  onClick="hidepm()"><img src="/images/ranks/popugai_listbb_ru/button_close.gif" alt="Закрыть окно" title="Закрыть окно"></div>


/images/ranks/popugai_listbb_ru/button_close.gif - заменить на адрес вашей кнопочки.

Я вставил вот так:
Код:
<td align='center'><div id='hptimer'><i>Окно закроется через 30 секунд</i></div></td><td align='left'><div  onClick="hidepm()"><img src="/images/ranks/popugai_listbb_ru/button_close.gif" alt="Закрыть окно" title="Закрыть окно"></div></td>


Не в сети
 Профиль WWW Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 19 авг 2011, 12:01 
Новичок
Аватара пользователя

Зарегистрирован: 19 авг 2011, 11:41
Сообщений: 23
Откуда: Хмельницкий.
Очков репутации: 7

Добавить очки репутацииУменьшить очки репутации
Пол: Мужской
Отличная штука автору + :good:

_________________
Изображение
Уникальная бескорстная помощь по графике, помогаем поставить елементы Flash на ваш форум.
P.S. Прошу прощение за грамотность своих постов....


Не в сети
 Профиль WWW Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 24 сен 2011, 11:43 
Забыл про аватар :)

Зарегистрирован: 24 сен 2011, 11:42
Сообщений: 2
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Как изменить фон?


Не в сети
 Профиль Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 24 сен 2011, 12:27 
Универсальный Гений
Аватара пользователя

Зарегистрирован: 04 дек 2008, 15:00
Сообщений: 3148
Откуда: Киев
Очков репутации: 254

Добавить очки репутацииУменьшить очки репутации
Пол: Мужской
rokki, ну хоть немного вникайте в название темы, в которой пишете...

viewtopic.php?f=27&t=223

_________________
Изображение


Не в сети
 Профиль WWW Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 24 сен 2011, 22:15 
Забыл про аватар :)

Зарегистрирован: 24 сен 2011, 11:42
Сообщений: 2
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
А я про что? как изменить фон окна?


Не в сети
 Профиль Cпасибо сказано  
 
 Заголовок сообщения: Re: Уведомление ЛС
СообщениеДобавлено: 06 июл 2013, 14:27 
Разбирающийся
Аватара пользователя

Зарегистрирован: 03 мар 2009, 02:51
Сообщений: 162
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
важнейшее дополнение к этому скрипту viewtopic.php?f=15&t=253&p=74129#p74129

_________________
Яндекс толока форум


Не в сети
 Профиль WWW Cпасибо сказано  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

 

Часовой пояс: UTC + 3 часа [ Летнее время ]



 Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

 
cron