Хак сообщения и приглашения в друзья.

+47
2.05K
Я последнее время опубликовывал много вопросов на форуме и на них не кто не отвечал. И сейчас жду помощи в нескольких темах. Я вот и подумал хватит только пользоваться. Чтобы тебе помогали помогай сам. Вот и выкладываю первый свой хак. Правда корявый, не пинайте сильно. Кстати кто научит делать всё по людячи (чтобы всё ставилось как плагин или как модуль) буду благодарен.

Во общем говорю суть, когда у вас новое сообщение приходит по верх сайта всплывает окошечко с надписью какой вы захотите, а и когда приходит предложение дружбы тоже самое! паказываю.
Иллюстрация

На счёт оформления прошу меня извинить, но я убрал все стили дабы не было сходств zst. Вы можете оформить данное окошко как хотите CSS-ом. Теперь непосредственно сам хак.

1. Либо вставляем данный код в хед (<head>ну типа тут</head>) вот, либо просто в файлик .jss заливаем и патом подключаем его всё там же в хеде.

  1.  
  2. <script>$(function() {
  3. $('my_messages').ready(function(){
  4. $('#overlay').fadeIn('fast',function(){
  5. $('#box').animate({'top':'200'},500);
  6. });
  7. });
  8. $('#boxclose').click(function(){
  9. $('#box').animate({'top':'-200px'},500,function(){
  10. $('#overlay').fadeOut('fast');
  11. });
  12. });
  13.  
  14. });
  15. </script>
  16.  
Тут настраивается откуда будет выезжать блок и с какой скоростью, и привязывается какой что именно будет выезжать и в какой момент. Я сам не силён в скриптах js но тут вроде все понятно.

2. Идём дальше и давайте пропишим сначала ксс код для нашего всплывающего блока. Это опять же можно сделать несколькими способами либо в нашь style.css либо в любой другой и подключить его командой <link href="/templates/_default_/css/ваш фаил" rel="stylesheet" type="text/css" /> ну 3 не буду говорить он тупой я думаю некто не прописывает стили в темплете.

  1.  
  2. .overlay{
  3. background:transparent url(../images/overlay.png) repeat top left;
  4. position:fixed;
  5. top:0px;
  6. bottom:0px;
  7. left:0px;
  8. right:0px;
  9. z-index:100;
  10. }
  11.  
  12. .box{
  13. position:fixed;
  14. top:-200px;
  15. left:30%;
  16. right:30%;
  17. background-color:#fff;
  18. color:#7F7F7F;
  19. padding:20px;
  20. border:2px solid #003300;
  21. -moz-border-radius: 10px;
  22. -webkit-border-radius:10px;
  23. -khtml-border-radius:10px;
  24. -moz-box-shadow: 0 1px 5px #333;
  25. -webkit-box-shadow: 0 1px 5px #333;
  26. z-index:101;
  27. }
  28.  
  29. a.boxclose{
  30. float:right;
  31. width:26px;
  32. height:26px;
  33. margin-top:-30px;
  34. margin-right:-30px;
  35. cursor:pointer;
  36. }
  37.  
  38. .box h1{
  39. text-align:center;
  40. border-bottom: 2px solid #003300;
  41. margin:-20px -20px 0px -20px;
  42. padding:10px;
  43. background-color:#336699;
  44. color:#003366;
  45. -moz-border-radius:10px 10px 0px 0px;
  46. -webkit-border-top-left-radius: 10px;
  47. -webkit-border-top-right-radius: 10px;
  48. -khtml-border-top-left-radius: 10px;
  49. -khtml-border-top-right-radius: 10px;
  50. }
  51.  
ну думаю фон и картинку закрытия блока сами поставити какая вам нужна. Я например закрытие блока вообще убрал.

Ну и теперь самая важная часть. Сейчас все умные программисты будут смеяться, но да я только начал обучаться и не знаю всех функций.

3. Нам нужно чтобы. если есть приглашения дружить либо сообщения, нам высветило наш блок. Значит добавляем кусочек кода в фаил \templates\ваш шаблон\modules\mod_menu.tpl спросите почему именно сюда, и причём тут меню? Я вам отвечу, потому что я не знаю как можно это ещё реализовать нужно чтобы в случае если имеются новые сообщения прогрузился див с ид бокс, к которому перекреплён джейкуери скрипт, во общем знающие люди могут посмеяться, а могут рассказать как это устроить получше.
3.1 заходим в \templates\ваш шаблон\modules\mod_menu.tpl и в самом в самом низу добавляем данный код.

  1.  
  2. {* ==================================Сообщения======================================= *}
  3.  
  4. {if $newmsg || $usr.is_new_friends}
  5. <div class="overlay" id="overlay" style="display:none;"></div>
  6. <div class="box" id="box">
  7. <h1>Важное сообщение</h1>
  8. {if $newmsg}
  9. <div class="usr_friends_query">
  10. У Вас есть непрочитанные <a class="has_new" href="/users/{$id}/messages.html">сообщения ({$newmsg})</a>
  11. </div>
  12. {/if}
  13. {if $usr.is_new_friends}
  14. <div class="usr_friends_query">{$usr.new_friends}</div>
  15. {/if}
  16. </div>
  17. </div>
  18. {/if}
  19.  
И оформляем как вам угодно. Ну возможно и туповато, но такова тут нет есть только платный модуль козаностра если я не ошибаюсь.
И кстати библеотека джейкуери уже у нас подключена.
Ну и если кому помогло можете поощрить
яндекс: 410011030855902
+1
nikitka nikitka 12 лет назад #
Демо можно посмотреть?Если я зарегистрируюсь то думаю увижу работу этого хака(приветственное сообщение)
+1
Taurus Taurus 12 лет назад #
Думаю только через пару дней как я перенесу с локальной машины на свой проект.
+2
Darik Darik 12 лет назад #
нужный хак +1
0
alex16407 alex16407 12 лет назад #
Спасибо!
0
Эдька Эдька 12 лет назад #
у козыностры что то подобное есть
+1
Taurus Taurus 12 лет назад #
Что я и написал в описании, но у него платно. Ну у него думаю поудобнее и по симпотичнее, хотя у меня в хорошей ксс обработке тоже очень даже нечего получилось.
+3
Максим Шорин Максим Шорин 12 лет назад #
Я вот и подумал хватит только пользоваться.
Уважаю ! smile
0
PrazdNik PrazdNik 12 лет назад #
хорошая штука +. Это работает когда юзер на сайте онлайн или всегда, даже когда он зашел на сайт, а тут всплывает это окошко?
+1
Taurus Taurus 12 лет назад #
нееет ну конечно же когда вы залогинетесь и если есть новые сообщения то высветится, а если вы имели ввиду что надо ли обновить страницу, то да, вообщем скрипт при каждой загрузке любой страницы проверяет есть ли у вас сообщения. Надеюсь я ответил на вашь вопрос
0
PrazdNik PrazdNik 12 лет назад #
ответил, спасибо)
0
Алексей Алексей 12 лет назад #
Спасибо, работает на 5+
+2
Taurus Taurus 12 лет назад #
Ну это самое главное, я много хаков себе сделал, боялся упустить что то. Помог бы кто разобраться как их ввиде модулей или плагинов делать.
+2
Алексей Алексей 12 лет назад #
Выложи ещё какие нибудь хаки интересные. Будем все рады)
0
Tirpits Tirpits 12 лет назад #
на 1.9 у меня работает так: выскакивает это окошко блокируя все кнопки сайта и тишина так и висит, вставил кнопку закрытия окна, а она не появляется и все.....конец....
0
Taurus Taurus 12 лет назад #
Она и будет блокировать всё пака не закроется окошко, кнопку закрытия нужно прописать дивом с идентификатором клозе как в ксс(там есть такой класс). И окошко закрыть можно нажатием на либо принять отклонить предложение дружбы либо крестиком на закрытие. С работы приду доработаю и ответ свой и хак.
0
Tirpits Tirpits 12 лет назад #
буду ждать, очень нужен это хак
0
Taurus Taurus 12 лет назад #
Увас выводит надпись о предложении дружбы или письме?
0
Tirpits Tirpits 12 лет назад #
-да, это окошко появляется (выезжает с верху), (срочное сообщение, у вас 1 письмо...)
не появляется кнопка "закрыть" сообщение...
0
Александр I Александр I 12 лет назад #
На страницу выводится 15 сообщений.
Если пользователю пришло, например 40 сообщений, то он не сможет прочитать сообщения, которые на находятся на стр. 2, 3 и т.д., т.к. нет кнопки "закрыть окно", а на странице ссылки не активны.
Как исправить?
0
Taurus Taurus 12 лет назад #
кнопка закрыть там вообще есть пропишите сылку с класом boxclose (a.boxclose) и разместите в шапке данного окна и тогда всё будет закрываться
0
Александр I Александр I 12 лет назад #
Что прописать в <a href="">?
0
Taurus Taurus 12 лет назад #
не могу вспомнить, я у себя убрал, помоему просто #
0
Александр I Александр I 12 лет назад #
Просто # не катит. Пробовал.
0
Taurus Taurus 12 лет назад #
<a class="box-close" id="box-close"></a>

а такой вариант не прокатит поробуйте. Просто нет времени пака этим заниматься,
0
Taurus Taurus 12 лет назад #
ой вообщем тоже самое только и класс и ид boxclose
0
Александр I Александр I 12 лет назад #
Не, фигня...
0
Taurus Taurus 12 лет назад #
Код PHP:
<script>$(function() {
    $('my_messages').ready(function(){
        $('#overlay').fadeIn('fast',function(){
            $('#box').animate({'top':'200'},500);
        });
    });
    $('#boxclose').click(function(){
        $('#box').animate({'top':'-200px'},500,function(){
            $('#overlay').fadeOut('fast');
        });
    });

});
</script>
если посмотреть на данный код, а именно на вот этот кусочек $('#boxclose').click(function(){ то всё должно выглядеть именно так как я сказал сделайте такую вот ссылку <a id="box-close">Закрыть</a> и пропишите ниже н1 там где авжное сообщение написано. по логики должно сработать и не забывайте сто опера плохо обновляет страницы беря их из кеша попробуйте в мазиле
0
Taurus Taurus 12 лет назад #
Да блин опять ошибся((((( <a id="boxclose">Закрыть</a> вот так вот
0
Александр I Александр I 12 лет назад #
Спасибо. Работает.
0
Ingvarruss Ingvarruss 12 лет назад #
Не пойму. Вроди как всё правильно сделал, но окошко не выезжает.
0
vitalson9 vitalson9 12 лет назад #
1.9 приглошение на дружбу окошко вылазиет а вот на сообщение не реагирует
0
Camfrog Camfrog 12 лет назад #
отлично! +1
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.