Уведомление о новом ЛС в виде конверта на jQuery.

Данный подфорум будет интересен веб-дизайнерам и администраторам форумов. Подфорум посвящен модификациям форума phpBB3. Здесь обсуждаются моды, расширения, хаки и скрипты для phpBB3 и phpBB 3.1.x.
Правила форума
Местная Конституция | FAQ - Часто задаваемые вопросы | Для новичков! | Реклама на форуме! | Публикация сообщений | Как вставить картинку или файл

Помните, поблагодарить автора за интересное сообщение, вы можете - нажав Изображение или повысить его репутацию - нажав Изображение в сообщении.
Прежде чем задать вопрос, воспользуйтесь поиском - возможно, что такая тема уже есть на форуме. За нарушение правил Ваш вопрос может быть удален без объяснения причин!
Аватара пользователя
elhouse
Автор темы
Russia
Председатель клуба
Председатель клуба

Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение elhouse » 16 дек 2012, 21:39

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

Нам потребуется небольшая правка скрипта, установленного в overall_header.html и CSS оформление модального окна в виде конверта на jQuery.

Открываем шаблон overall_header.html, ищем:

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

    <script type="text/javascript">
    // <![CDATA[
       var jump_page = '{LA_JUMP_PAGE}:';
       var on_page = '{ON_PAGE}';
       var per_page = '{PER_PAGE}';
       var base_url = '{A_BASE_URL}';
       var style_cookie = 'phpBBstyle';
       var style_cookie_settings = '{A_COOKIE_SETTINGS}';
       var onload_functions = new Array();
       var onunload_functions = new Array();

       <!-- IF S_USER_PM_POPUP -->
          if ({S_NEW_PM})
          {
             var url = '{UA_POPUP_PM}';
             window.open(url.replace(/&amp;/g, '&'), '_phpbbprivmsg', 'height=225,resizable=yes,scrollbars=yes, width=400');


Перед найденным ставим библиотеку jQuery:

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

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>


Если у вас уже установлена библиотека, то можно не ставить.

Две последних строки комментируем или удаляем:

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

             //var url = '{UA_POPUP_PM}';
             //window.open(url.replace(/&amp;/g, '&'), '_phpbbprivmsg', 'height=225,resizable=yes,scrollbars=yes, width=400');


Вместо них, или после них, ставим:

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

              $(document).ready(function() {
               $("body").append("<div id='form_popuppm'><div class='jq_popuppm'><p class='close_win'><a href='#' class='close' onClick='$(#form_popuppm).hide()' title='{L_CLOSE_WINDOW}'>[x]</a></p><p class='new_message'>{L_NEW_MESSAGE}</p><p class='click_view'><a href='ucp.php?i=pm&folder=inbox' class='view' title='{L_GO}'>{L_GO}</a></p><cite></cite></div></div>");
             $("#form_popuppm").hide();
               $("#form_popuppm").show(1000);
              });


Открываем тему стиля common.css, в самый конец добавляем CSS нашего модального окна. Модальное окно в виде конверта:

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

    /* Popup PM */
    #form_popuppm {
       overflow: hidden;
       width: 530px;
       height: 446px;
       position: fixed;
       top: 0px;
       left: 0;
       -webkit-transition: all 1s ease-in-out .3s;
       -moz-transition: all 1s ease-in-out .3s;
       -o-transition: all 1s ease-in-out .3s;
       transition: all 1s ease-in-out .3s;
    }
       
    #form_popuppm:before {
       content:"";
       position: absolute;
       bottom: 128px;
       left: 0px;
       background: url("./images/popuppm-before.png"); /* Укажите путь до картинки */
       width: 530px;
       height: 316px;
    }
       
    #form_popuppm:after {
       content:"";
       position: absolute;
       bottom: 0px;
       left: 0;
       background:url("./images/popuppm-after.png"); /* Укажите путь до картинки */
       width: 530px;
       height: 260px;
    }

    #form_popuppm.hide:after, #form_popuppm.hide:before {
       display: none;
    }

    #form_popuppm:hover {
       height: 576px;
       top: -100px;
    }

    .jq_popuppm {
       background: url("./images/popuppm-letter_bg.png") repeat 0 0 #f7f2ec; /* Укажите путь до картинки */
       position: relative;
       top: 200px;
       overflow: hidden;
       height: 200px;
       width: 400px;
       margin: 0px auto;
       padding: 20px;
       border: 1px solid #fff;
       border-radius: 3px;
       -moz-border-radius: 3px; -webkit-border-radius: 3px;
       box-shadow: 0px 0px 3px #9d9d9d, inset 0px 0px 27px #fff;
       -moz-box-shadow: 0px 0px 3px #9d9d9d, inset 0px 0px 14px #fff;
       -webkit-box-shadow: 0px 0px 3px #9d9d9d, inset 0px 0px 27px #fff;
       -webkit-transition: all 1s ease-in-out .3s;
       -moz-transition: all 1s ease-in-out .3s;
       -o-transition: all 1s ease-in-out .3s;
       transition: all 1s ease-in-out .3s;
    }

    #form_popuppm:hover .jq_popuppm {
       height: 330px;
    }

    .jq_popuppm p.close_win {
       text-align: right;
    }

    .jq_popuppm a.close {
       font-size: 10px;
    }

    .jq_popuppm p.click_view {
       text-align: center;
    }

    .jq_popuppm a.view {
       font-size: 13px;
    }

    .jq_popuppm p.new_message {
       margin-top: 20px;
       text-align: center;
       font-size: 1.3em;
    }

    .jq_popuppm cite {
       font-size: 12px;
       text-align: center;
       display: block;
       margin-top: 100px;
    }


Получаем:
lc.png
modal.png


Файлы конверта:
images.zip
Для просмотра вложений, произведите Вход или Регистрация.

Отблагодарить »
Аватара пользователя
Alex39
Заглянувший

Re: Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение Alex39 » 29 мар 2013, 01:11

Привет, прошу помощи, не получается поставить,вроде все просто, но не работает, прописал все, и начинаю в личном сообщении добавлять пользователя, кому хочу написать, и выскакивает письмо сразу, пользователь не добовляется, что не так?

Отблагодарить »
Аватара пользователя
elhouse
Автор темы
Russia
Председатель клуба
Председатель клуба

Re: Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение elhouse » 29 мар 2013, 08:29

Выложите ваш overall_header.html - посмотрю.
И ссылку на форум.
Скорее всего дело в ваших скриптах....

Отблагодарить »
Аватара пользователя
Alex39
Заглянувший

Re: Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение Alex39 » 29 мар 2013, 14:01

Сайт стоит пока что на компе, Для просмотра ссылки необходимо зарегистрироваться!

► Показать спойлер

Отблагодарить »
Аватара пользователя
elhouse
Автор темы
Russia
Председатель клуба
Председатель клуба

Re: Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение elhouse » 29 мар 2013, 21:47

У Вас стоят оба кода - старый и новый.
Старый нужно удалить.

Должен остаться только этот код.

Это мой:

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

   <!-- IF S_USER_PM_POPUP and S_NEW_PM -->
              $(document).ready(function() {
               $("body").append("<div id='form_popuppm'><div class='jq_popuppm'><p class='close_win'><a href='/' class='close' onClick='$(#form_popuppm).hide()' title='{L_CLOSE_WINDOW}'>[x]</a></p><p class='new_message'>{L_NEW_MESSAGE}</p><p class='click_view'><a href='ucp.php?i=pm&folder=inbox' class='view' title='{L_GO}'>{L_GO}</a></p><cite>http://www.ваш сайт.ru/</cite></div></div>");
             $("#form_popuppm").hide();
               $("#form_popuppm").show(1000);
              });
   <!-- ENDIF -->

Отблагодарить »
Аватара пользователя
Alex39
Заглянувший

Re: Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение Alex39 » 29 мар 2013, 21:56

Не совсем понял, там нет двух кодов, и я сравнил Ваш со своим, они совершенно идентичны, что то я ничего не понял

Отблагодарить »
Аватара пользователя
elhouse
Автор темы
Russia
Председатель клуба
Председатель клуба

Re: Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение elhouse » 29 мар 2013, 22:19

Это весь скрипт:

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

<script type="text/javascript">
// <![CDATA[
   var jump_page = '{LA_JUMP_PAGE}:';
   var on_page = '{ON_PAGE}';
   var per_page = '{PER_PAGE}';
   var base_url = '{A_BASE_URL}';
   var style_cookie = 'phpBBstyle';
   var style_cookie_settings = '{A_COOKIE_SETTINGS}';
   var onload_functions = new Array();
   var onunload_functions = new Array();
   
   <!-- IF S_USER_PM_POPUP and S_NEW_PM -->
              $(document).ready(function() {
               $("body").append("<div id='form_popuppm'><div class='jq_popuppm'><p class='close_win'><a href='/' class='close' onClick='$(#form_popuppm).hide()' title='{L_CLOSE_WINDOW}'>[x]</a></p><p class='new_message'><b>Вам пришло новое личное сообщение!</b></p><p class='click_view'><b><a href='ucp.php?i=pm&folder=inbox' class='view' title='{L_GO}'>{L_GO}</a></b></p><br /><p style='font-size: 1.2em; text-align: center'>{PRIVATE_MESSAGE_INFO}</p><cite></cite></div></div>");
             $("#form_popuppm").hide();
               $("#form_popuppm").show(1000);
              });
   <!-- ENDIF -->

   <!-- IF S_BIRTHDAY_POPUP -->

         var url = '{UA_POPUP_BIRTHDAY}';
         window.open(url.replace(/&amp;/g, '&'), '_phpbbbdpopup', 'height=225,resizable=yes,scrollbars=yes, width=400');

   <!-- ENDIF -->

   /**
   * Find a member
   */
   function find_username(url)
   {
      popup(url, 760, 570, '_usersearch');
      return false;
   }

   /**
   * New function for handling multiple calls to window.onload and window.unload by pentapenguin
   */
   window.onload = function()
   {
      for (var i = 0; i < onload_functions.length; i++)
      {
         eval(onload_functions[i]);
      }
   };

   window.onunload = function()
   {
      for (var i = 0; i < onunload_functions.length; i++)
      {
         eval(onunload_functions[i]);
      }
   };

// ]]>
</script>


Вот это у Вас что:

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

<!-- IF S_USER_PM_POPUP -->
if ({S_NEW_PM})
{
popup('{UA_POPUP_PM}', 400, 225, '_phpbbprivmsg');
}
<!-- ENDIF -->

Отблагодарить »
Аватара пользователя
Alex39
Заглянувший

Re: Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение Alex39 » 29 мар 2013, 22:24

Все получилось, видно коды разные в скрипте сайта, раскоментировал строку

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

window.open(url.replace(/&amp;/g, '&'), '_phpbbprivmsg', 'height=225,resizable=yes,scrollbars=yes, width=400');


и все заработало

Добавлено спустя 4 минуты 47 секунд:
elhouse писал(а):
Это весь скрипт:

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

<script type="text/javascript">
// <![CDATA[
   var jump_page = '{LA_JUMP_PAGE}:';
   var on_page = '{ON_PAGE}';
   var per_page = '{PER_PAGE}';
   var base_url = '{A_BASE_URL}';
   var style_cookie = 'phpBBstyle';
   var style_cookie_settings = '{A_COOKIE_SETTINGS}';
   var onload_functions = new Array();
   var onunload_functions = new Array();
   
   <!-- IF S_USER_PM_POPUP and S_NEW_PM -->
              $(document).ready(function() {
               $("body").append("<div id='form_popuppm'><div class='jq_popuppm'><p class='close_win'><a href='/' class='close' onClick='$(#form_popuppm).hide()' title='{L_CLOSE_WINDOW}'>[x]</a></p><p class='new_message'><b>Вам пришло новое личное сообщение!</b></p><p class='click_view'><b><a href='ucp.php?i=pm&folder=inbox' class='view' title='{L_GO}'>{L_GO}</a></b></p><br /><p style='font-size: 1.2em; text-align: center'>{PRIVATE_MESSAGE_INFO}</p><cite></cite></div></div>");
             $("#form_popuppm").hide();
               $("#form_popuppm").show(1000);
              });
   <!-- ENDIF -->

   <!-- IF S_BIRTHDAY_POPUP -->

         var url = '{UA_POPUP_BIRTHDAY}';
         window.open(url.replace(/&amp;/g, '&'), '_phpbbbdpopup', 'height=225,resizable=yes,scrollbars=yes, width=400');

   <!-- ENDIF -->

   /**
   * Find a member
   */
   function find_username(url)
   {
      popup(url, 760, 570, '_usersearch');
      return false;
   }

   /**
   * New function for handling multiple calls to window.onload and window.unload by pentapenguin
   */
   window.onload = function()
   {
      for (var i = 0; i < onload_functions.length; i++)
      {
         eval(onload_functions[i]);
      }
   };

   window.onunload = function()
   {
      for (var i = 0; i < onunload_functions.length; i++)
      {
         eval(onunload_functions[i]);
      }
   };

// ]]>
</script>


Вот это у Вас что:

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

<!-- IF S_USER_PM_POPUP -->
if ({S_NEW_PM})
{
popup('{UA_POPUP_PM}', 400, 225, '_phpbbprivmsg');
}
<!-- ENDIF -->


У меня двиг немного другой, не phpbb3 а phpbbex который немного другой, это обновление устаревшего релиза phpbb3, так как обновление долго выходят, какая то организаци взялась сделать обновление, сейчас намного луше работает форум, сам вот недавно нашел и теперь довольный скриптом

Отблагодарить »
Нет аватара
m-31
Новенький

Re: Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение m-31 » 04 июн 2013, 22:11

Что то не выходит =(
Мой overall_header

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

<script type="text/javascript">
// <![CDATA[
   var jump_page = '{LA_JUMP_PAGE}:';
   var on_page = '{ON_PAGE}';
   var per_page = '{PER_PAGE}';
   var base_url = '{A_BASE_URL}';
   var style_cookie = 'phpBBstyle';
   var style_cookie_settings = '{A_COOKIE_SETTINGS}';
   var onload_functions = new Array();
   var onunload_functions = new Array();

[b]   <!-- IF S_USER_PM_POPUP and S_NEW_PM -->
      var url = '{UA_POPUP_PM}';
      window.open(url.replace(/&amp;/g, '&'), '_phpbbprivmsg', 'height=225,resizable=yes,scrollbars=yes, width=400');
   <!-- ENDIF -->[/b]

   /**
   * Find a member
   */
   function find_username(url)
   {
      popup(url, 760, 570, '_usersearch');
      return false;
   }
   /**
   * New function for handling multiple calls to window.onload and window.unload by pentapenguin
   */
   window.onload = function()
   {
      for (var i = 0; i < onload_functions.length; i++)
      {
         eval(onload_functions[i]);
      }
   };
   window.onunload = function()
   {
      for (var i = 0; i < onunload_functions.length; i++)
      {
         eval(onunload_functions[i]);
      }
   };
// ]]>
</script>

Отблагодарить »
Аватара пользователя
elhouse
Автор темы
Russia
Председатель клуба
Председатель клуба

Re: Уведомление о новом ЛС в виде конверта на jQuery.

Сообщение elhouse » 08 июн 2013, 11:37

Что именно не выходит?

Отблагодарить »
  • Рекомендуемый контент

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Расширения и моды phpBB3 и phpBB 3.1.x»

Кто на форуме

Сейчас этот форум просматривают: archive.org_bot и 0 гостей