Помогите пофиксить баги - Страница 3 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

  • 5 Страниц +
  • 1
  • 2
  • 3
  • 4
  • 5

Помогите пофиксить баги

#31 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 348
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 341
  • IPB version:I have no IPB
 

Отправлено 08 Сентябрь 2018 - 11:26

 TemKa_SD сказал(а):

угу

var timer = $('#elTimer');
var timerTime = timer.html();
var counter = timerTime;

setInterval(function() {
	if (counter < 0) {
		counter = timerTime;
	}
	timer.html(counter);
	counter -= 1;
}, 1000);

<span id="elTimer">10</span>

0

#32 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 196
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 08 Сентябрь 2018 - 12:57

Разве так правильно?

$(document).ready(function() {
    var gamenames = document.querySelectorAll('.copy');
    var table = document.querySelector('#gamelistTable');
    var names = new Clipboard(gamenames);
    
    var date = new Date();
    date.setTime(date.getTime() + (365 * 86400000));

    setInterval(function() {
        var updateUrl = table.getAttribute('data-update-url');
        var val = document.querySelector('input[name="only_lobby"]').checked;
        updateUrl += '&only_lobby=' + val;
        var botid_list = '';
        $('input:checkbox[name="botid[]"]:checked').each(function(){
            botid_list += $(this).val() + ',';
        });
        /*console.log(botid_list);*/
        updateUrl += '&botid_list=' + botid_list;
        console.log(updateUrl);
        ips.getAjax()(updateUrl).done(function (data) {
            table.querySelector('tbody').innerHTML = data;
            gamenames = document.querySelectorAll('.copy');
            names.destroy();
            names = new Clipboard(gamenames);
        });
    }, 5000);
});
$('#only_lobby').change(function() {
    if(this.checked) {
        var date = new Date();
        date.setTime(date.getTime() + (365 * 86400000));
        ips.utils.cookie.set('RunningGames_only_lobby', true, date.toUTCString());
    } else {
        ips.utils.cookie.unset('RunningGames_only_lobby');
    }
});
$('input:checkbox[name="botid[]"]').change(function() {
    if(this.checked) {
		var botid_list = '';
		var date = new Date();
		date.setTime(date.getTime() + (365 * 86400000));
        $('input:checkbox[name="botid[]"]:checked').each(function(){
            botid_list += $(this).val() + ',';
        });
        ips.utils.cookie.set('RunningGames_botid', botid_list += $(this).val() + ',', date.toUTCString());
    }
});

0

#33 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 348
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 341
  • IPB version:I have no IPB
 

Отправлено 08 Сентябрь 2018 - 14:05

        var val = document.querySelector('input[name="only_lobby"]').checked;
        updateUrl += '&only_lobby=' + val;
        var botid_list = '';
        $('input:checkbox[name="botid[]"]:checked').each(function(){
            botid_list += $(this).val() + ',';
        });
        /*console.log(botid_list);*/
        updateUrl += '&botid_list=' + botid_list;
Это Вам зачем, если Вы не используете параметры в php?

Цитата

if(this.checked) {
var botid_list = '';
var date = new Date();
date.setTime(date.getTime() + (365 * 86400000));
$('input:checkbox[name="botid[]"]:checked').each(function(){
botid_list += $(this).val() + ',';
});
ips.utils.cookie.set('RunningGames_botid', botid_list += $(this).val() + ',', date.toUTCString());
}
Здесь Вы проверяете только одно состояние чекбокса

	$('input:checkbox[name="botid[]"]').change(function() {
		var botid_list = [];
		$('input:checkbox[name="botid[]"]:checked').each(function(){
			botid_list.push($(this).val());
		});
			
		ips.utils.cookie.set('RunningGames_botid', botid_list.join(','), date.toUTCString());
	});

0

#34 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 196
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 08 Сентябрь 2018 - 14:22

Спасибо. Ваш вопрос про PHP не понял.
0

#35 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 348
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 341
  • IPB version:I have no IPB
 

Отправлено 08 Сентябрь 2018 - 14:53

 TemKa_SD сказал(а):

Ваш вопрос про PHP не понял.

Зачем Вы передаете параметры index.php?app=sharedstats&module=stats&controller=RunningGames&do=ajax&only_lobby=true&botid_list=18,17,16,15,14,13,11,10,4,3,
если проверяете не их, а куки?
ajax
меняете
\IPS\Output::i()->sendOutput( \IPS\Theme::i()->getTemplate('stats', 'sharedstats')->runningGamesList($games), 200 );

на
\IPS\Output::i()->json(array('html' => \IPS\Theme::i()->getTemplate('stats', 'sharedstats')->runningGamesList($games), 'games' => 5, 'players' => 10));

+
добавить id'шники для Total Games и Total Players
<div class="ipsType_minorHeading">Total Games: <span id="elTotalGames">10</span></div>
<div class="ipsType_minorHeading">Total Players: <span id="elTotalPlayers">28</span></div>

+ js
$(document).ready(function() {
	var table = $('#gamelistTable');
	var tableBody = table.find('tbody');
	var names = new Clipboard('.copy');
	var updateUrl = table.attr('data-update-url');
	var elTotalGames = $('#elTotalGames');
	var elTotalPlayers = $('#elTotalPlayers');
	var date = new Date();

	date.setTime(date.getTime() + (365 * 86400000));

	setInterval(function() {
		ips.getAjax()(updateUrl).done(function (response) {
			tableBody.html(response['html']);
			elTotalGames.html(response['games']);
			elTotalPlayers.html(response['players']);
		});
	}, 5000);

	$('#only_lobby').change(function() {
		if(this.checked) {
			ips.utils.cookie.set('RunningGames_only_lobby', true, date.toUTCString());
		} else {
			ips.utils.cookie.unset('RunningGames_only_lobby');
		}
	});

	$('input:checkbox[name="botid[]"]').change(function() {
		var botid_list = [];

		$('input:checkbox[name="botid[]"]:checked').each(function(){
			botid_list.push($(this).val());
		});

		ips.utils.cookie.set('RunningGames_botid', botid_list.join(','), date.toUTCString());
	});
});

0

#36 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 196
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 08 Сентябрь 2018 - 22:55

Спасибо большое за помощь, я вам памятник при жизни поставлю. Дело в том, что я не знаю программирования, только HTML и CSS. Со всем этим делом вожусь порядка 10 лет, начинал еще с юкоз. Выучить программирования так и не было времени, пилил свои проекты, как-то зарабатывал на жизнь... Чтением кода владею, но с написанием проблемы, вот пытаюсь что-то освоить, внимательно изучаю всю вашу информацию, я вам сильно надоел?
0

#37 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 196
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 08 Сентябрь 2018 - 23:12

Не работает ((( С куками всё супер, с обновлением на AJAX что-то.

Тамймер на секунду опаздывает почему-то.

$(document).ready(function() {
    var table = $('#gamelistTable');
    var tableBody = table.find('tbody');
    var names = new Clipboard('.copy');
    var updateUrl = table.attr('data-update-url');
    var elTotalGames = $('#elTotalGames');
    var elTotalPlayers = $('#elTotalPlayers');
    var date = new Date();
	var timer = $('#elTimer');
	var timerTime = timer.html();
	var counter = timerTime;

    date.setTime(date.getTime() + (365 * 86400000));

    setInterval(function() {
        ips.getAjax()(updateUrl).done(function (response) {
            tableBody.html(response['html']);
            elTotalGames.html(response['games']);
            elTotalPlayers.html(response['players']);
        });
    }, 5000);

	setInterval(function() {
	    if (counter < 0) {
	        counter = timerTime;
	    }
	    timer.html(counter);
	    counter -= 1;
	}, 1000);

    $('#only_lobby').change(function() {
        if(this.checked) {
            ips.utils.cookie.set('RunningGames_only_lobby', true, date.toUTCString());
        } else {
            ips.utils.cookie.unset('RunningGames_only_lobby');
        }
    });

    $('input:checkbox[name="botid[]"]').change(function() {
        var botid_list = [];

        $('input:checkbox[name="botid[]"]:checked').each(function(){
            botid_list.push($(this).val());
        });

        ips.utils.cookie.set('RunningGames_botid', botid_list.join(','), date.toUTCString());
    });
});

Сообщение изменено: TemKa_SD (08 Сентябрь 2018 - 23:38)

0

#38 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 348
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 341
  • IPB version:I have no IPB
 

Отправлено 09 Сентябрь 2018 - 09:19

Используйте один setInterval с 1000. Если значение счетчика равно 0, делайте ajax-запрос
0

#39 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 196
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 09 Сентябрь 2018 - 09:39

Как правильней?

	setInterval(function() {
		if (counter == 0) {
	        ips.getAjax()(updateUrl).done(function (response) {
	            tableBody.html(response['html']);
	            elTotalGames.html(response['games']);
	            elTotalPlayers.html(response['players']);
	        });
        }
	    if (counter < 0) {
	        counter = timerTime;
	    }
	    timer.html(counter);
	    counter -= 1;
	}, 1000);


	setInterval(function() {
	    if (counter <= 0) {
	        ips.getAjax()(updateUrl).done(function (response) {
	            tableBody.html(response['html']);
	            elTotalGames.html(response['games']);
	            elTotalPlayers.html(response['players']);
	        });
	        counter = timerTime;
	    }
	    timer.html(counter);
	    counter -= 1;
	}, 1000);

0

#40 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 348
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 341
  • IPB version:I have no IPB
 

Отправлено 09 Сентябрь 2018 - 10:10

var ajaxObj = null;

setInterval(function() {
	if (counter === 0) {
		if (ajaxObj != null) {
			return;
		}

		timer.html('Loading...');

		ajaxObj = ips.getAjax()(updateUrl)
			.done(function (response) {
				tableBody.html(response['html']);
				elTotalGames.html(response['games']);
				elTotalPlayers.html(response['players']);

				counter = timerTime;
				ajaxObj = null;
			})
			.fail(function() {
				window.location.reload();
			});
	} else {
		timer.html(counter);
		counter -= 1;
	}
}, 1000);

0

#41 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 196
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 09 Сентябрь 2018 - 10:16

Спасибо, всё супер. У меня сломалась выборка по фильтру после обновления на AJAX.
0

#42 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 348
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 341
  • IPB version:I have no IPB
 

Отправлено 09 Сентябрь 2018 - 10:21

 TemKa_SD сказал(а):

У меня сломалась выборка по фильтру после обновления на AJAX.

Значит, где-то что-то не так.
0

#43 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 196
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 09 Сентябрь 2018 - 11:40

Я сделал такой вывод:

\IPS\Output::i()->json(array('html' => \IPS\Theme::i()->getTemplate('stats', 'sharedstats')->runningGamesList($games), 'games' => $games, 'players' => $totalGames));


оно работает, но я не пойму почему. Если вставить любую другую переменную, например:

\IPS\Output::i()->json(array('html' => \IPS\Theme::i()->getTemplate('stats', 'sharedstats')->runningGamesList($games), 'games' => $gamesss, 'players' => $totalGamesss));


оно тоже работает.
0

#44 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 348
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 341
  • IPB version:I have no IPB
 

Отправлено 09 Сентябрь 2018 - 11:52

 TemKa_SD сказал(а):

'games' => $games, 'players' => $totalGames

А тут вообще что?
Судя по runningGamesList($games), $games - это массив со списком игр.
Так зачем Вы его передаете в 'games' => $games
'games' => $games должно быть кол-во игр
'players' => $totalGames должно быть кол-во игроков
0

#45 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 196
  • Регистрация: 16-Январь 18
  • Репутация: 1
  • IPB version:4.1.x
 

Отправлено 09 Сентябрь 2018 - 12:00

Я просто для теста указал. Почему вариант который вы скинули с цифрами 5 и 10 - не работает, а мой с непонятными переменными работает?
0

Сообщить об этой теме:


  • 5 Страниц +
  • 1
  • 2
  • 3
  • 4
  • 5


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна