Голосовые уведомления о некоторых событиях на форуме
Добавляет голосовое оповещение о новых пользователях, сообщениях и топиках.

http://forumfiles.ru/uploads/0000/14/1c/15964/708274.gif

Автор скрипта: Romych

Скрипт и описание

Код скорее ориентирован на форумы с малой посещаемостью, для которых появление активного пользователя и уж тем более новое сообщение в какой-либо теме целое событие и об этом нужно всех присутствующих срочно оповестить.
Какие оповещения предусмотрены?
1. Пришёл/ушёл пользователь
2. Появилась новая тема
3. Появилось новое сообщение от пользователя такого-то в такой-то теме
4. Зарегистрировался новичок (имя)
5. Вам изменили репутацию

Всё это проговаривается голосом, соответственно кого-то на форуме это может раздражать. Для этого предусмотрена опция в Профиле пользователя включения - выключения Голосовых уведомлений.

Итак, первым делом идём в Администрирование - Поля профиля - Добавляем новое поле, обзываем его Голосовые уведомления
Поясняющий текст - "Включить голосовые уведомления (включить, выключить)"
Тип поля - Флажки (нам достаточно одного)
Значение поля - слева 1, в поле справа вставляем картинку (можно свою), она изображает выключенные уведомления

Код:
https://forumstatic.ru/files/0017/d8/50/58665.png

в html-верх или в свой стиль  оформление иконки рядом с флажком в Профиле (изображение можно поменять на своё). В этом коде изображение иконки, когда уведомления включены.

Код:
<style type="text/css">
#profile p.checkfield input[name*="form[fld"]:checked + img[alt="1"]{display:none;}
#profile p.checkfield input[name*="form[fld"]:checked:after{
content: url(https://forumstatic.ru/files/0017/d8/50/48158.png);
height: 16px;
padding: 16px;
}
</style>

в html-низ

Код:
    <!--  Голосовые уведомления -->
<script language="javascript">
$(document).ready(function(){function speechdata(){$.when($.getJSON("/api.php?method=board.get&fields=active_users,last_registered_username,total_topics,total_posts"),$.getJSON("/api.php?method=users.get&user_id="+UserID+"&fields=respect_plus,respect_minus")).done(function(j1,j2){var x=[{x1:j1[0].response.last_registered_username,s1:"На форуме новичок. Последним зарегистрировался ",m1:""},{x2:j1[0].response.active_users,s2:"Пришёл пользователь. Активных пользователей на форуме сейчас ",m2:"Ушёл пользователь. Активных пользователей на форуме сейчас "},{x3:j1[0].response.total_topics,s3:"На форуме появилась новая тема ",m3:"Было удаление темы. Тем на форуме теперь "},{x4:j1[0].response.total_posts,s4:"Появилось новое сообщение в теме ",m4:"Было удаление сообщений. Постов на форуме теперь "},{x5:j2[0].response.users[0].respect_plus,s5:UserLogin+", вам поставили плюс. Плюсов у вас теперь ",m5:""},{x6:j2[0].response.users[0].respect_minus,s6:UserLogin+", вам поставили минус. Минусов у вас теперь ",m6:""}];if(localStorage.speech||(localStorage.speech=JSON.stringify(x)),localStorage.speech!=JSON.stringify(x)){var obj1=JSON.parse(JSON.stringify(x)),obj2=JSON.parse(localStorage.speech);for(var i in obj2)$.each(obj1[i],function(q,value){function dop(z){if(obj2[i][q]<value&&i==z){eval($.ajax({url:"/export.php?type=js&max=1",async:!1,cache:!1}).responseText);var a=content[0][1],n=content[0][3],nt="под названием "+n+" от пользователя "+a;Newspeech=UserLogin!=a?obj1[i][ind2]+nt:""}}if(obj2[i][q]!=value){var ind2="s"+String(parseInt(i)+1),ind3="m"+String(parseInt(i)+1),Newspeech=obj2[i][q]>value&&0!=i?obj1[i][ind3]+value:obj1[i][ind2]+value;dop(2),dop(3),window.speechSynthesis.speak(new SpeechSynthesisUtterance(Newspeech))}});localStorage.speech=JSON.stringify(x)}})}var cy=$('#profile p.infofield:contains("голосовые уведомления") + p.checkfield input[value="1"]');$(cy).on("click change",function(){$(this).is(":checked")?localStorage.golos=1:window.localStorage.removeItem("golos")}),3!=GroupID&&1==localStorage.golos?setInterval(speechdata,2e4):window.localStorage.removeItem("speech")});
</script>

Голосовое зачитывание важной информации на форуме
Скрипт зачитывает голосом разную информацию с вашего форума.

Автор скрипта: Romych

1. Правила форума (в том числе при регистрации новичка)
2. Зачитывается информация тому, кто попал под блокировку (бан), кем и за что
3. И другие страницы с контентом в блоке "info"

устанавливаем в html-низ, можно установить и в блок Правил, но тогда кроме правил никакая другая информация зачитываться не будет

Код:
<!-- Голосовое зачитывание важной информации на форуме -->
<script language="javascript">
if($('.info').length || $('#pun-main .html-box').length && !speechSynthesis.speaking){
var rules =(document.querySelector('.info .container')!== null) ? document.querySelector('.info .container').innerText : document.querySelector('#pun-main .html-box').innerText;$.trim(rules);
window.speechSynthesis.speak(new SpeechSynthesisUtterance(rules));} else {setTimeout(function(){window.speechSynthesis.cancel();},250);}
</script>

чтобы прервать прослушивание, достаточно перейти на другую страницу в этой же вкладке