Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Архив » Запросы по скриптам[6]


Запросы по скриптам[6]

Сообщений 481 страница 500 из 1001

1

Архивная тема с запросами о создании различных скриптов

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

Предыдущая тема - Запросы по скриптам[5]
Следующая тема - Запросы по скриптам[7]

Инструменты для поиска и редактирования стиля (скриптов).

Как с помощью браузера можно определить элемент дизайна.

Каталог скриптов/CSS

Полезные скрипты, необходимые темы для новичков, а также ссылки на сайты рассказывающие что такое НТМЛ и CSS.

Типовые Вопросы (ЧаВо)

Ответы на часто задаваемые вопросы.

Как задавать вопросы! Разница между стилем и скриптом. ( Советы)

Плюс к названию темы еще и Памятка.

+2

481

Mirra Bell написал(а):

а перехожу к полной форме, то потом из нее никак не выйти, только отправить пост или закрыть страницу.

Скрипт Быстрого редактирования не предусматривает доп функций в полной форме,
Ну жмите отмену в Быстрой форме - раньше и этого не было,

mihka1980

mihka1980 написал(а):

Выкинул весь HTML вверх, всё равно тишина!

Ну походу HTML верх не влияет,
Я писал протестить на конфликт скрипты из HTML низ

0

482

Romych

Romych написал(а):

Оповещение об изменении репутации а-ля ВКонтакте

Нун усовершенствовать:
1. Сделать привязку к текущему UserID >

localStorage['plus'+UserID] = UserRespectPlus

Посколь localStorage записывает вне зависимости от аккаунта, и при входе в другой аккаунт - получим те жа данные
2. Можно запрашивать API (users.get, id - текущий, поля - respect_plus, respect_minus) раз в 10 минут на активной странице (т.е. если в данный момент она открыта), чоб имитировать мгновенные уведомления

Как отловить активность страницы:

function timer(){
  //таймер
}

var visible = true; var tt;
if(document.visibilityState=='hidden')visible = false;

$(document).on('visibilitychange',function () {
  if(document.visibilityState=='visible'){visible = true;}
  else {visible = false;}

  if(visible){timer = tt;timer();}else{tt = timer;timer=function(){return}}
});

0

483

Доброго дня. Не хотел создавать новую тему. Появилась проблема - форум начал тормозить. Причем сколько бы не мен/убирал скрипты - ничего не помогает. Тестовый форум при этом отлично загружается. Есть тут люди, кто может подсказать, что делать?)

0

484

Keyn
Дайте несокращенную ссылку (чот по Вашей у мну не открывается)

0

485

Alex_63, хех, похоже он просто медленно открывается. Здесь прямая ссылка - http://warh40k.7il.ru/

0

486

Keyn
Наверно Ддос на IP, где расположен Ваш форум - ждите, скоро должно нормализоваться (Максимум сутки - двое)

0

487

Alex_63 написал(а):

1. Сделать привязку к текущему UserID >
localStorage['plus'+UserID] = UserRespectPlus
Посколь localStorage записывает вне зависимости от аккаунта, и при входе в другой аккаунт - получим те жа данные

у меня на тестовом 3 аккаунта для тестов и у каждого данные ключа сугубо индивидуальные (правда они все активированы в разных браузерах)

Alex_63 написал(а):

2. Можно запрашивать API (users.get, id - текущий, поля - respect_plus, respect_minus) раз в 10 минут на активной странице (т.е. если в данный момент она открыта), чоб имитировать мгновенные уведомления

это можно было бы, да и можно было бы показывать кто поставил последнюю оценку, если в метод post.getVotes добавить возможность делать запрос не только по параметру post_id, но и по параметру user_id, вернуть выдачу timestamp и сравнивать его с RequestTime или с UserLastVisit

а лучше добавить в метод users.get ответвление users.getVotes со всеми уже наработанными данными из метода post.getVotes, тогда действительно всё в одном запросе будет

0

488

Alex_63, возможно, кстати. Правда подобная проблема уже достаточно долго длится. Я тут и скрипты перекопал и стили))))
Хорошо, спасибо за ответ, если проблема не исчезнет в ближайшие несколько дней, что мне лучше всего сделать? Еще раз сюда написать?

0

489

Romych

Romych написал(а):

(правда они все активированы в разных браузерах)

Гы.. ну если в разных, то само собой, а  если в одном ?
Сваял тут кое-что:

Код:
<script type="text/javascript">
window.onload = function() {
  var s={header:'Ваше сообщение понравилось',position:'bottom-left',life: 2000};var st='http://expert.mybb.ru/files/000e/8b/b7/';
  var u=UserID;function pl(a){localStorage['plus'+u] = a};function mn(a){localStorage['minus'+u] = a};var tm;
  var zag = '<img src="http://forumstatic.ru/files/0000/14/1c/20038.jpg" style="border-radius:4px;" width="48px"> '+
  '<a href="/respect.php?id='+UserID+'" style="color:#cee0e6;font-weight:bold;padding-left:15px;text-decoration:none;">Посмотреть</a>';
  var ou={method:'users.get',user_id:u,fields:'respect_plus,respect_minus'},L='/api.php',G=$.getJSON;

  function amsg(plus,minus){//console.log(plus,minus)
    if(parseInt(plus)>parseInt(localStorage.getItem('plus'+u))){$.jGrowl(zag+' <img align="right" src="'+st+'10387.png">',s);pl(plus);}else{pl(plus)};
    if(parseInt(minus)>parseInt(localStorage.getItem('minus'+u))){$.jGrowl(zag+' <img align="right" src="'+st+'87092.png">',s);mn(minus);}else{mn(minus)};
  }; amsg(UserRespectPlus,UserRespectMinus);
  function g(){G(L,ou,function(d){var z=d.response.users;for(var x in z){var y=z[x];var p=y.respect_plus,m=y.respect_minus;amsg(p,m)}});}
  function timer(){clearTimeout(tm);tm=setTimeout(function(){g()},10*1000*60);}
  var visible = true;
  if(document.visibilityState=='hidden')visible = false;
  $(document).on('visibilitychange',function () {
    if(document.visibilityState=='visible'){visible = true;}
    else {visible = false;}
    if(visible){timer();}else{clearTimeout(tm);}
  });
}
</script>

Поправил


Keyn написал(а):

Еще раз сюда написать?

Напишите тут -> Проблемы с форумом Отдельной темой

+1

490

Romych написал(а):

(правда они все активированы в разных браузерах)

Идея в том что на ролёвках юзер, а особенно модер-админ зачастую меняют несколько аккаунтов для разных предназначений(Админ, к примеру, зачастую под юзер аккаунтом играет роль, а под одним из Админов, - он Гейм Мастер, задаёт целеполагание и изменения сюжета ... Юзер сейчас более редко меняет Акки при смене роли(есть скрипт смены имиджа, хотя при раскрутке мелких форумов  на начальном этапе ,  при малом кол-ве игроков, идут и на смену Акка (со сменой Акков и сменой имиджа можно отыграть за больший количественный состав)

0

491

Romych

+1

492

+2

493

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

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

В принципе была идея приделать к АPI простановку пяти классов к body: A1, A2,A3, A4, A5   c любого юзера, - на конкретного пользователя[только запись],( к примеру тому, кому проставили в репу),  стирать класс может только получатель, - по одному классу или все сразу.
Т.е. проставил репу - скрипт отдал наказ API проставить серверу доп. класс  A1 к боди на адресуемом юзере, тот обновил страницу, класс вызвал скрипт извещения, юзер  прочел извещение или просмотрел пост с репой - скрипт обратился к API снял класс A1 с текущего юзера.
Большинство извещений, кроме ЛС - не срочные, их можно отложить до очередной загрузки страницы.
А2 - ставим при клике по нику (Пост адресуемый Вам)
A3 - цитирование вашего сообщения (В принципе 5 классов должно хватить на типовые фичи.

При таком подходе запросы к API - минимизируются, а пример PHP решения простановки класса на конкретного пользователя можно взять из идеи добавки классов к #pun:

<div id="pun" class="isuser ismoderator gid2">

Почему на body?, а не на другой селектор ? При варианте на body решается и давняя задача возможности выбирать стиль пользователя и при Своём стиле в Админке, достаточно к API добавить выставку (для текущего юзера) своего собственного произвольного класса (не равного A1, A2,A3, A4, A5, для подстраховки достаточно проверки вводимого класса на цифро-буквы, символ нижнего подчеркивания и дефис if(str.replace(/[0-9a-z_-]+/gim,'')=='');) который укажет на новый подключаемый скриптом стиль(из классических), в том числе по такому классу легко делать выбираемый опционально каждым пользователем дизайн форума через css cтиля, описывая каждый новый вариант стиля в "Своём стиле" с добавкой body[class] селектор1 {[Тут правила]} body[class] селектор2 {[Тут правила]} ...

+1

494

Deff

Deff написал(а):

а еще лучше после каждой загрузки страницы,

Ну в первоначальном скрипте так и было, но если юзер обновил страницу - он и так увидит, если ему это надо, что количество плюсов увеличилось...
Три минуты - пробовал - замучился ждать, думаю, текущие настройки - оптимальны ;)

Romych написал(а):

хотя я тоже мог прикрутить звук и запрос в репутацию, но не стал делать многозапросы,

Ну у мну запрашивается страница респектов и API для получения авика только тогда, когда зафиксировано изменение репутации (А это не так часто происходит)

0

495

Alex_63 написал(а):

но если юзер обновил страницу - он и так увидит, если ему это надо, что количество плюсов увеличилось...Три минуты - пробовал - замучился ждать, думаю, текущие настройки - оптимальны

Ты когда нибудь ждал плюсов находясь на иной странице ? Если ты там, занчит ты чем то занят, вчитываешься или пишешь - оне тьву плюсы нужны ?
А когда интересно, (скрипт выложил или что), ты сидишь на странице с сообщением, иным всё одно в режиме ожидания трудно сосредоточиться
Возможно автозапуск чтения API про плюсы стоит лишь на странице с недавним сообщением делать(которому день-два три() вчера сегодня и позавчера) ? Ну куча юзеров на сервисе десятки сотни тысяч в день, нафег увеличивать нагрузку на серв ?
Пусть 10 страниц сервиса открыты
(100 000/50)*10 = 20 000/cек - ток на оценках, еще будет на ЛС и т.д - (Нун делать лишь на страницах с недавними постами, а на иных, ток при загрузке страницы(возможно и на главной, тож мон 3-х минутные делать, типично там тож в ожидании)

0

496

Deff написал(а):

20 000/cек - ток на оценках

Запрос раз в 50 секунд только на активной странице, т.е. если document.visibilityState == 'visible'
Иначе = запрос раз в 20 минут

+1

497

Alex_63 написал(а):

только на активной странице

Ну да, тады ток 2 000 в сек ...

0

498

Уважаемый Alex_63 можно ли сделать так, чтоб в этом форуме Скрипты от пользователей 3 конкретно в Вариант: Скрываем форум от некоторых групп, форумы, которые скрыты, были видны на главной странице, ибо, когда скрываешь, они пропадают и с главной страницы форума, а точнее целиком категория пропадает, где форум скрытый находится!

И огромное Спасибо за Мгновенное оповещение об изменении репутации теперь даже страницу не надо обновлять, само показывается, когда кто то сказал!

Отредактировано mihka1980 (Пт, 13 Май 2016 14:43:31)

+1

499

Чего то перестало работать:
http://s1.uploads.ru/t/4slCc.jpg http://sh.uploads.ru/t/ytN0i.jpg

0

500

mihka1980
В скрипте уберите красное:

function HideForum(fid,groupArr){
  if($.inArray(GroupID,groupArr)!=-1){var Lsel=$('tr#forum_f'+fid).parents('.category');
    if(Lsel.find('tr[id^="forum"]:visible').length<=1){Lsel.remove()}else{
    $('.category tr#forum_f'+fid).remove();}

    var hSt='<h1><span>Информация</span></h1>';var hCn='<div class=info><div class=container>';

+1


Вы здесь » Единый форум поддержки » Архив » Запросы по скриптам[6]