Оповещение о новых ЛС

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
AllFuns
phpBB 1.4.0
Сообщения: 39
Стаж: 17 лет 3 месяца
Откуда: Иваново

Оповещение о новых ЛС

Сообщение AllFuns »

Здравствуйте.
У меня сайт интегрирован с форумом phpBB3 и на сайте я сделал оповещение о новых ЛС на форуме таким образом:

Код: Выделить всё

$user_go=$user->data['user_id'];
$col_ls = 'null';
        $k_l_s = mysql_query("SELECT * FROM `phpbb_privmsgs_to` where `user_id`='".$user->data['user_id']."' and `pm_new`='1'");
        $col_ls = MYSQL_NUMROWS($k_l_s);
  
if ($col_ls){
$title = "Новое сообщение";
}else{
$title = "Site.Ru";
}
echo "<TITLE>".$title."</TITLE>";
?>


<script language=JavaScript type="text/javascript">

function openBrWindow(theURL,winName,features){
  	window.open(theURL,winName,features);
}

// файл обработки запроса...
var url = "http://<?echo $_SERVER['HTTP_HOST'];?>/system/request.php?id=<? echo $user_go; ?>";

// сохраняем установленый уже титл
var oldTitle = document.title;
// определяем текст, который будет выводиться в титле
var newTitle = 'Вам сообщение';
// идентификатор установки интервала для мигания титла
var intervalID = null;
// для включения моргания титла
var count = 0;
showTitle();
// включим интервал проверки.
// вместо 5 сек (5000) нужно установить минуту (60000) или больше
setInterval('showTitle()', 45000);

// функция запроса данных с сервера
function getXMLDocumentTitle() {
    var xml2;
    if(window.XMLHttpRequest) {
        xml2=new XMLHttpRequest();
        xml2.open("GET", url, false);
        xml2.send("");
		// если надо получать именно XML, то включается это:
        //return xml2.responseXML;
		// иначе будет только текст
		return xml2.responseText;
    } else if(window.ActiveXObject) {
            xml2=new ActiveXObject("Microsoft.XMLDOM");
            xml2.async=false;
            xml2.load(url);
            return xml2;
	} else {
		alert("Загрузка XML не поддерживается браузером");
		return null;
	}
}
// функция, срабатываемая на основном интервале
function showTitle() {
	// запросим сервер
	var newDataTitle=getXMLDocumentTitle();
	//alert(newDataTitle);
	// проверим - если равна null
	if(newDataTitle== 0 ) {
		// мигание выключаем
		clearInterval(intervalID);
		// возвращаем старый титл
		document.title=oldTitle;
		document.getElementById("new_msg").innerHTML = '';

	} else {
		// иначе обрабатываем заголовок
		document.title=newTitle;
		// и включаем мигание c интервалом 1 сек (1000)
		intervalID=setInterval('changTitle()', 800);
		document.getElementById("new_msg").innerHTML = '<b><? echo $user->data['username']; ?>, Вам сообщение на форуме</b><a href="javascript:;"  onClick="openBrWindow(\'http://<?echo $_SERVER['HTTP_HOST'];?>/forum/ucp.php?i=pm&folder=inbox\',\'scrollbars=yes,resizable=yes,width=800,height=600\');return false;"><img src="http://<?echo $_SERVER['HTTP_HOST'];?>/images/message_new.png" width="48px;" title="Нажмите на ссылку,чтобы перейти в папку входящих сообщений" alt=""></a>';
	}
}

// функция для мигания титла
function changTitle() {
	if(count==0) {
		count=1;
		document.title="***************";
	} else {
		count=0;
		document.title=newTitle;
	}
}
</script>
Вопрос, а как этот код интегрировать на форум, чтобы при просмотре любой страницы форума обрабатывался этот скрипт?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Оповещение о новых ЛС

Сообщение Sheer »

Зачем?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
AllFuns
phpBB 1.4.0
Сообщения: 39
Стаж: 17 лет 3 месяца
Откуда: Иваново

Re: Оповещение о новых ЛС

Сообщение AllFuns »

Просто не все смотрят на строку где написано кол-во сообщений в ЛС. Многие не видят. Просто читают форум и не замечают что им сообщение пришло. а так оповещение будет появляться и титл мигать будет. Почему нет?

Добавлено спустя 2 часа 9 минут 16 секунд:
С основным моментом я разобрался. Вопрос теперь следующего характера.
Куда можно подключить свой файл чтобы он обрабатывался на всем форуме? чтобы не приходилось его под включать отдельно в index.php, viewforum.php, viewtopic.php и т.д.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Оповещение о новых ЛС

Сообщение Sheer »

Оформить в виде отдельной функции и воткнуть ее в /includes/functions.php
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
AllFuns
phpBB 1.4.0
Сообщения: 39
Стаж: 17 лет 3 месяца
Откуда: Иваново

Re: Оповещение о новых ЛС

Сообщение AllFuns »

Интересует именно подключение файла. выше я написал
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Оповещение о новых ЛС

Сообщение Sheer »

AllFuns писал(а):выше я написал
Я тоже.
Но могу повторить. Оформить в виде отдельной функции и воткнуть ее в /includes/functions.php
Конкретно в функции page_header() вставить обращение к твоей самдуйной функции.
Найти

Код: Выделить всё

				$s_privmsg_new = true;
Добавить после вызов твоей функции.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
AllFuns
phpBB 1.4.0
Сообщения: 39
Стаж: 17 лет 3 месяца
Откуда: Иваново

Re: Оповещение о новых ЛС

Сообщение AllFuns »

Спасибо, тупанул... Теперь разобрался.

Вернуться в «Поддержка phpBB 3.0.х»