• 145 Pm All In One - всплывающее окно о новых ЛС • 
А еще при окне о ЛС должен быть звук
При создании темы о модах для двигателя форумов phpBB ветки до версии 3.0.14 название темы должно начинаться с названия мода на английском, без указания версии, затем тире, затем короткое название мода на русском с маленькой буквы. Создание тем не о модах в данном подфоруме запрещено. Посторонние темы о двиге и посторонних проблемах для ветки до версии 3.0.14 в соседнем подфоруме.

    145 Pm All In One - всплывающее окно о новых ЛС

Сообщение Разместил Pthelovod 28 июл 2010, 06:16

Тема о работе мода на этом форуме - Pm All In One - всплывающее окно о новых ЛС

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  145 Pm All In One - всплывающее окно о новых ЛС

Сообщение Разместил Pthelovod 12 сен 2013, 19:04

А у нас новое окно при получении Личных сообщений...
И в нем можно даже прочитать само сообщение...во как!!!



Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  145 Pm All In One - всплывающее окно о новых ЛС

Сообщение Разместил Pthelovod 26 июн 2016, 12:52

От автора -
Меняет стандартное всплывающее окно уведомлений о новых ЛС на всплывающий слой с указанием автора, заголовка и времени последнего сообщения, а также моргание в заголовке страницы до входа в папку ЛС.

"Мигалка" в заголовке работает только до первого входа в ящик ЛС после получения новых сообщений. Читать их не обязательно.


Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  145 Pm All In One - всплывающее окно о новых ЛС

Сообщение Разместил Pthelovod 26 июн 2016, 12:55

От автора -
Инструкция для subsilver2
Открыть styles/subsilver2/template/overall_header.html
Найти и удалить
Код: выделить все
<!-- IF S_USER_PM_POPUP and S_NEW_PM -->
   popup('{UA_POPUP_PM}', 400, 225, '_phpbbprivmsg');
<!-- ENDIF -->

Найти
Код: выделить все
</script>

Добавить ниже
Код: выделить все
<!-- IF S_USER_UNREAD_PRIVMSG > 0 -->
<script type='text/javascript'>
   var newTxt="<<<! {L_YOU_NEW_PM} !>>>";
var oldTxt=document.title;

function migalka(){
    if(document.title==oldTxt){
        document.title=newTxt;
    }else{
        document.title=oldTxt;
    }
}

var timer = setInterval(migalka,1000);
</script>
<!-- ENDIF -->

Найти
Код: выделить все
<body class="{S_CONTENT_DIRECTION}">

Добавить ниже
Код: выделить все
<!-- IF S_USER_PM_POPUP and S_NEW_PM -->
<div id="newpm" align="right">

<div id="hidden" class="newpm" align="center" valign="middle">
      <table width="300" cellspacing="0" border="0" align="center">
      <tr><td colspan="2" align="center"><br /><b style="font-size: 1.3em; color: #376B79;">{L_YOU_NEW_PM}</b><br />&nbsp;</td></tr>
      <tr><td align="right"><b>{L_AUTHOR}:&nbsp;</b></td><td align="left"><b>&nbsp;{S_PM_SENDER}</b></td></tr>
      <tr><td align="right"><b>{L_SUBJECT}:&nbsp;</b></td><td align="left"><b>&nbsp;{S_PM_SUBJECT}</b></td></tr>
      <tr><td align="right"><b>{L_TIME}:&nbsp;</b></td><td align="left"><b>&nbsp;{S_PM_DATE}</b></td></tr>
      <tr><td colspan="2" align="center"><br /><a style="color: #376B79; font-size: 1.2em;" href="{U_PRIVATEMSGS}">{L_VIEWING_PRIVATE_MESSAGES}</a></td></tr>
      <tr><td colspan="2" align="center"><a style="color: #0516B7; font-size: 1.2em;" href="#" onclick="document.getElementById('newpm').style.display = 'none'; return false;">{L_CLOSE_WINDOW}</a></td></tr>
      </table>
      </div>
</div>
<!-- ENDIF -->

Открыть styles/subsilver2/theme/stylesheet.css
В самый конец добавить
Код: выделить все
#newpm {
   position: fixed;
   top: 40%;
   left: 0;
   z-index: 100;
   width: 65%;
}
.newpm {
   width: 300px;
   height: 140px;
   background: #ECF3F7;
   border-radius: 8px;
   -moz-border-radius: 8px;
   -webkit-border-radius: 8px;
   border-color: #376B79;
   -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5);
   -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5);
   box-shadow: 0 0 10px rgba(0,0,0,0.5);
}

Почистить кэш

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  145 Pm All In One - всплывающее окно о новых ЛС

Сообщение Разместил Pthelovod 26 июн 2016, 13:00

ПОЛНАЯ БЛОКИРОВКА перемещений по форум до прочтения полученного ЛС
Открыть overall_header.html
После строки
Код: выделить все
<body

Добавить
Код: выделить все
<!-- IF not PRIVATE_MESSAGE_INFO_UNREAD or SCRIPT_NAME == 'ucp' -->

В overall_footer.html
Найти
Код: выделить все
</body>

Добавить перед
Код: выделить все
<!-- ENDIF -->

Таким образом при непрочитанных ЛС будут скрыты (пусты) все страницы форума кроме личного раздела и чтения ЛС.
Также необходимо "экранировать" сам блок всплывающего окна об ЛС
Т.е. найти этот блок
И привести в такой вид:
Код: выделить все
<!-- ENDIF -->
Блок_всплывашки
<!-- IF not PRIVATE_MESSAGE_INFO_UNREAD or SCRIPT_NAME == 'ucp' -->

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  145 Pm All In One - всплывающее окно о новых ЛС

Сообщение Разместил Pthelovod 26 июн 2016, 13:04

Можно всплывающее окошко сделать в виде вот такого конвертика -
 
145 Pm All In One  - всплывающее окно о новых ЛС - 01


Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  145 Pm All In One - всплывающее окно о новых ЛС

Сообщение Разместил Pthelovod 26 июн 2016, 13:07

В общем все смотрится вот так -
 
145 Pm All In One  - всплывающее окно о новых ЛС - 03

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  145 Pm All In One - всплывающее окно о новых ЛС

Сообщение Разместил Pthelovod 26 июн 2016, 13:14

Делаем другой вариант вместо предложенного автором -
(всю инструкцию от автора убираем и делаем так)
Open: includes/functions.php
КОД: ВЫДЕЛИТЬ ВСЁ
Код: выделить все
else
         {
            $s_privmsg_new = false;
         }

Добавляем после:
Код: выделить все
           $pm_user_id = 'u_' . $user->data['user_id'];
         $pm_user_last_privmsg = $user->data['user_last_privmsg'];   
           
            $sql = "SELECT p.msg_id, p.author_id, p.message_subject, p.message_text, p.message_time, p.bbcode_bitfield, p.bbcode_uid, u.username, u.user_avatar, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height
                    FROM " . PRIVMSGS_TABLE . " AS p, " . USERS_TABLE . " AS u
                    WHERE p.message_time = $pm_user_last_privmsg
                       AND p.author_id = u.user_id
                       AND p.to_address = '$pm_user_id'";
           $result = $db->sql_query($sql);
           $row = $db->sql_fetchrow($result);
           $message = $row['message_text'];
         include_once($phpbb_root_path . 'includes/bbcode.' . $phpEx);         
           $bbcode_bitfield = true;
            $bbcode = new bbcode(base64_encode($bbcode_bitfield));
            // Second parse bbcode here
           if ($row['bbcode_bitfield'])
           {
              $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
           }

           $message = bbcode_nl2br($message);
           $message = smiley_text($message);
           // Assign specific vars
           $template->assign_vars(array(
              'S_PM_SENDER'   => $row['username'],
              'S_PM_SUBJECT'   => $row['message_subject'],
              'S_PM_TEXT'       => $message,
              'S_PM_DATE'      => $user->format_date($row['message_time'], $format = 'd.m.Y, H:i'),
              'AVATAR_PM'     => $row['user_avatar'] ? get_user_avatar($row['user_avatar'], $row['user_avatar_type'], ($row['user_avatar_width'] > $row['user_avatar_height']) ? 90 : (90 / $row['user_avatar_height']) * $row['user_avatar_width'], ($row['user_avatar_height'] > $row['user_avatar_width']) ? 90 : (90 / $row['user_avatar_width']) * $row['user_avatar_height']) : '',
              )
           );

               $db->sql_freeresult($result);

Open: styles/prosilver/template/overall_header.html
Находим и выкидываем весь блок от
Код: выделить все
<!-- IF S_USER_PM_POPUP and S_NEW_PM -->

до его
Код: выделить все
<!-- ENDIF -->

Там может быть все, что угодно...у каждого может быть свое...
Например по инструкции к моду у Гаррета надо выкинуть это:
Код: выделить все
   <!-- IF S_USER_PM_POPUP and S_NEW_PM -->
      var url = '{UA_POPUP_PM}';
      window.open(url.replace(/&/g, '&'), '_phpbbprivmsg', 'height=225,resizable=yes,scrollbars=yes, width=400');
   <!-- ENDIF -->

Затем находим самую первую сверху (это важно!!!):
Код: выделить все
<script type="text/javascript"

И добавляем перед:
Код: выделить все
<!-- IF S_USER_UNREAD_PRIVMSG > 0 -->
<script type='text/javascript'>
   var newTxt="<<<! {L_YOU_NEW_PM} !>>>";
var oldTxt=document.title;

function migalka(){
    if(document.title==oldTxt){
        document.title=newTxt;
    }else{
        document.title=oldTxt;
    }
}

var timer = setInterval(migalka,1000);
</script>
<!-- ENDIF -->

Этой правкой мы вставляем моргалку в титлу вкладок браузера (можно и не вставлять, если нервирует)
Затем лезем по файлу ниже и после блока вывода инфы о закрытом форуме:
Код: выделить все
            <strong>{L_INFORMATION}:</strong> {L_BOARD_DISABLED}
         <span class="corners-bottom"><span></span></span></div>
      </div>
   <!-- ENDIF -->

Добавляем код всплывающего окна моей сборки:
Код: выделить все
<!-- ВСПЛЫВАШКА О НОВЫХ ЛС -->
<!-- IF S_USER_PM_POPUP and S_NEW_PM -->
<div id="newpm">
<div id="hidden" class="m-stat-pm" style="text-align: center;" valign="middle">
      <table style="border-spacing: 0px; text-align: center;" border="0" >
      <tr><td colspan="2" style="text-align: center;" ><b style="font-size: 1.3em; color: #000060;">{L_YOU_NEW_PM}</b></td></tr>
      <tr><td colspan="2" style="text-align: center;" ><b style="font-size: 1.3em; color: #000060;" >{L_AUTHOR}: &nbsp; {S_PM_SENDER}</b></td></tr>
      <tr><td colspan="2" style="text-align: center;" ><b style="font-size: 1.3em; color: #000060;" >{L_SUBJECT}: &nbsp; {S_PM_SUBJECT}</b></td></tr>
      <tr><td colspan="2" style="text-align: center;" ><b style="font-size: 1.3em; color: #000060;" >{L_TIME}: &nbsp; {S_PM_DATE}</b></td></tr>
      <tr><td style="text-align: center;" ><b>{AVATAR_PM}</b></td></tr>
      <tr><td align="left"><b style="font-size: 1.3em; color: #000000;" >{S_PM_TEXT}</b></td></tr>
      <tr><td colspan="2" style="text-align: center;" ><a style="color: #000060; font-size: 1.3em;" href="{U_PRIVATEMSGS}">{L_VIEWING_PRIVATE_MESSAGES}</a></td></tr>
      <tr><td colspan="2" style="text-align: center;" ><a style="color: #000060; font-size: 1.3em;" href='' onclick="dE('hidden');return false;">{L_CLOSE_WINDOW}</a></td></tr>
      <embed pluginspage="http://www.fotovideoforum.ru/plplayer.swf" type="application/x-mplayer2" src="http://fotovideoforum.ru/sound.mp3" width="0" height="0" autostart="1"></embed>
      </table>
</div>
</div>
<!-- ENDIF -->

Файл любого музыкального сопровождения всплывающего окна с названием sound.mp3 кидаем в корень форума....
Надеюсь, проигрывательplplayer.swf у вас там тоже имеется....
Затем в styles/prosilver/theme/common.css
Находим блок :
Код: выделить все
#newpm {
тут много буковок
}

и заменяем на
Код: выделить все
#newpm {
   position: fixed;
   top: 15%;
   left: 30%;
   z-index: 100;
   max-width: 550px;
   max-height: 500px;
   overflow: auto;
}

Блок ниже :
Код: выделить все
.newpm {
   width: 450px;
   height: auto;
   background-image: url('{T_THEME_PATH}/images/bg.png') no-repeat;
   background-position: right bottom;
   background-repeat: no-repeat;
   border: none;
}

Можно без сожаления тоже удалить....
Затем в styles/prosilver/theme/content.css
Находим:
Код: выделить все
/* Content Styles
---------------------------------------- */

и добавляем с новой строки... (если нет такого - просто в самый верх файла)
Код: выделить все
.m-stat-pm {
    background: #E7E7F7;
   padding: 4px 4px 5px;
   position: relative;
   border: 1px solid #000066;
   border-radius: 5px;
}

В строке border: 1px solid #000066; толщину окаемки и цвет заливки меняем на нужный...
Кешируемся...
Наслаждаемся окном ЛС со скроллом по вертикале в случае слишком длинного и большого ЛС...
В файле русификации перевод от инструкции по моду оставляйте....

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  145 Pm All In One - всплывающее окно о новых ЛС

Сообщение Разместил Pthelovod 26 июн 2016, 13:15

Получаем -
 
145 Pm All In One  - всплывающее окно о новых ЛС - 05

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 
Следующая страница

Вернуться в 450 модов движка форумов phpBB (до версии 3.0.14)



 • Блок вывода аналогичных по названию других тем нашего форума •