http://hosting.pro-linuxpl.com/

Błędne sumowanie głosów w ankietach na forum

  • 13 Odpowiedzi
  • 1590 Wyświetleń

0 użytkowników i 2 Gości przegląda ten wątek.

*

Offline pretor

  • ****
  • 1355
  • 63
    • VW Club Polska
  • Wersja SMF: 2.0.14
Błędne sumowanie głosów w ankietach na forum
« dnia: 3 Wrzesień 2016, 16:42 »

Witam, nie pamiętam czy kiedyś już o tym nie wspominałem na forum w jakimś temacie, ale sprawa ciągnie się już dość długo i nie została chyba rozwiązana.
Chodzi mi o błędne sumowanie głosów w ankietach na forum. Jeżeli mamy tylko paru głosujących w ankiecie, to przy różnicy 2-3 głosów nie ma takiej tragedii.
Sprawa wygląda zupełnie inaczej przy ponad tysiącu głosujących: na 1268 oddanych głosów w ankiecie, Głosów w sumie policzyło 572.
To chyba zdecydowana różnica.
W załączniku ankieta z widocznym błędem w sumie głosów.


Jak rozwiązać ten problem lub w którym miejscu jest zapisana suma głosów aby można to było poprawić ?
Pytania odnośnie działania SMF, zadaje się na forum w odpowiednim dla nich dziale ;)
VW Club PolskaDzień dobry K-Koźle

*

Offline Adrian

  • ****
  • 5432
  • 710
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Polskie wsparcie ElkArte
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #1 dnia: 3 Wrzesień 2016, 18:27 »
Wszystko się zgadza. Pozwalasz głosować gościom dlatego głosy są błędnie zliczane. Dodatkowo głosy użytkowników usuniętych nie są kasowane z ankiety, ale z licznika już są usuwane.

Wrzuć w załączniku spakowany do ZIP plik: Display.php

*

Offline pretor

  • ****
  • 1355
  • 63
    • VW Club Polska
  • Wersja SMF: 2.0.14
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #2 dnia: 3 Wrzesień 2016, 18:56 »
W załączniku plik Display.php
Pytania odnośnie działania SMF, zadaje się na forum w odpowiednim dla nich dziale ;)
VW Club PolskaDzień dobry K-Koźle

*

Offline Adrian

  • ****
  • 5432
  • 710
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Polskie wsparcie ElkArte
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #3 dnia: 3 Wrzesień 2016, 19:25 »
Spróbuj podmienić go na plik z załącznika.

*

Offline Adrian

  • ****
  • 5432
  • 710
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Polskie wsparcie ElkArte
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #4 dnia: 3 Wrzesień 2016, 21:28 »
Dodatkowo jeśli użytkownicy mogą oddać w jednej ankiecie kilka głosów to w chwili obecnej pod ankietą widoczna jest tylko ilość użytkowników, która oddała głos, a nie ilość głosów - po podmianie pliku na ten z mojego załącznika powinno to się zmienić.



Brak możliwości edycji wiadomości po jakimś czasie jest na prawdę "super", można przynajmniej posty nabić... było to chyba omawiane gdzieś w zamkniętych działach forum, ale na dłuższą metę raczej nie ma to pozytywnego efektu.
« Ostatnia zmiana: 3 Wrzesień 2016, 21:30 wysłana przez Adrian »

*

Offline pretor

  • ****
  • 1355
  • 63
    • VW Club Polska
  • Wersja SMF: 2.0.14
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #5 dnia: 4 Wrzesień 2016, 02:37 »

Dodatkowo jeśli użytkownicy mogą oddać w jednej ankiecie kilka głosów to w chwili obecnej pod ankietą widoczna jest tylko ilość użytkowników, która oddała głos, a nie ilość głosów - po podmianie pliku na ten z mojego załącznika powinno to się zmienić.
Działa aż miło  ;D
Czy mogę ten sam plik Display.php "przeszczepić na moje drugie forum oparte na SMF ?




Brak możliwości edycji wiadomości po jakimś czasie jest na prawdę "super", można przynajmniej posty nabić... było to chyba omawiane gdzieś w zamkniętych działach forum, ale na dłuższą metę raczej nie ma to pozytywnego efektu.
To prawda, było omawiane i zgłaszane ale bez odzewu ze strony administracji. A można to było zrobić albo dla grupy od określonej ilości postów albo przynajmniej dla "naszej" grupy  ;)



Pytania odnośnie działania SMF, zadaje się na forum w odpowiednim dla nich dziale ;)
VW Club PolskaDzień dobry K-Koźle

*

Offline Adrian

  • ****
  • 5432
  • 710
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Polskie wsparcie ElkArte
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #6 dnia: 4 Wrzesień 2016, 09:30 »
Jeśli masz te same modyfikacje na obydwu forach to tak, jeśli nie to w Display.php wykonaj taką zmianę:
Kod: (Znajdź) [Zaznacz]
'total_votes' => $pollinfo['total']
Kod: (Zamień na) [Zaznacz]
'total_votes' => $realtotal

*

Offline pretor

  • ****
  • 1355
  • 63
    • VW Club Polska
  • Wersja SMF: 2.0.14
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #7 dnia: 10 Wrzesień 2016, 17:55 »
Plik Display.php zmodyfikowany ;)
Dziękuję bardzo za skuteczną pomoc

Pytania odnośnie działania SMF, zadaje się na forum w odpowiednim dla nich dziale ;)
VW Club PolskaDzień dobry K-Koźle

*

Offline pretor

  • ****
  • 1355
  • 63
    • VW Club Polska
  • Wersja SMF: 2.0.14
Lista w ankiecie według uzyskiwanych wyników?
« Odpowiedź #8 dnia: 10 Maj 2017, 21:34 »
Czy istnieje tak możliwość aby w opcjach modyfikacji ankiety dodać ustawianie listy według wyników?
A dokładnie rzecz ujmując, chodzi o taką widzialność listy w ankiecie aby był widoczny ranking według ilości oddanych głosów.
Na razie robię to ręcznie, edytując temat z ankietą ale opcja ze zmianą lity w samej ankiecie byłaby dużo lepsza.
Chodzi mi głównie o tą ankietę: http://forumkkozle.pl/index.php/topic,47.msg która powstała parę lat temu, jako ranking pizzerii.
Pytania odnośnie działania SMF, zadaje się na forum w odpowiednim dla nich dziale ;)
VW Club PolskaDzień dobry K-Koźle

*

Offline Adrian

  • ****
  • 5432
  • 710
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Polskie wsparcie ElkArte
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #9 dnia: 11 Maj 2017, 21:45 »
W sobotę spróbuję to zrobić

*

Offline Adrian

  • ****
  • 5432
  • 710
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Polskie wsparcie ElkArte
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #10 dnia: 14 Maj 2017, 15:58 »
Jako opcja może być ciężko, ale domyślnie sortowanie według oddanych głosów z użyciem jQuery można zrobić tak:
Display.template.php:
Kod: (Znajdź) [Zaznacz]
// Are they not allowed to vote but allowed to view the options?
if ($context['poll']['show_results'] || !$context['allow_vote'])
{
echo '
<dl class="options">';

// Show each option with its corresponding percentage bar.
foreach ($context['poll']['options'] as $option)
{
echo '
<dt class="middletext', $option['voted_this'] ? ' voted' : '', '">', $option['option'], '</dt>
<dd class="middletext statsbar', $option['voted_this'] ? ' voted' : '', '">';

if ($context['allow_poll_view'])
echo '
', $option['bar_ndt'], '
<span class="percentage">', $option['votes'], ' (', $option['percent'], '%)</span>';

echo '
</dd>';
}

echo '
</dl>';
Kod: (Zamień na) [Zaznacz]
// Are they not allowed to vote but allowed to view the options?
if ($context['poll']['show_results'] || !$context['allow_vote'])
{
echo '
<script type="text/javascript">//<![CDATA[
$(window).load(function(){
var $wrapper = $(".poll_sorted");

$wrapper.find(".poll_option").sort(function (b, a) {
return +a.getAttribute("data-percentage") - +b.getAttribute("data-percentage");
})
.appendTo($wrapper);
});//]]>

</script>
<dl class="options">
<div class="poll_sorted">';

// Show each option with its corresponding percentage bar.
foreach ($context['poll']['options'] as $option)
{
echo '
<span class="poll_option" data-percentage="', $option['votes'], '"><dt class="middletext', $option['voted_this'] ? ' voted' : '', '">', $option['option'], '</dt>
<dd class="middletext statsbar', $option['voted_this'] ? ' voted' : '', '">';

if ($context['allow_poll_view'])
echo '
', $option['bar_ndt'], '
<span class="percentage">', $option['votes'], ' (', $option['percent'], '%)</span>';

echo '
</dd></span>';
}

echo '
</div></dl>';

Oczywiście wymaga to dodania jQuery w nagłówku, ale Ty tego nie musisz dodawać, bo już to masz.

*

Offline pretor

  • ****
  • 1355
  • 63
    • VW Club Polska
  • Wersja SMF: 2.0.14
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #11 dnia: 14 Maj 2017, 21:02 »
Dzięki za zainteresowanie i rozwiązanie problemu :)
Jestem za granicą i dopiero jak wrócę za parę dni, będę mógł się tym zająć ;)
Pytania odnośnie działania SMF, zadaje się na forum w odpowiednim dla nich dziale ;)
VW Club PolskaDzień dobry K-Koźle

*

Offline pretor

  • ****
  • 1355
  • 63
    • VW Club Polska
  • Wersja SMF: 2.0.14
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #12 dnia: 19 Maj 2017, 01:05 »
Zmieniłem według wskazówek i działa ale tylko na jednym stylu Havvo, na innych stylach nie widać zmiany uporządkowania listy według ilości oddanych głosów.
Zmian dokonałem w każdym stylu na w pliku Display.template.php.
Pytania odnośnie działania SMF, zadaje się na forum w odpowiednim dla nich dziale ;)
VW Club PolskaDzień dobry K-Koźle

*

Offline Adrian

  • ****
  • 5432
  • 710
  • Płeć: Mężczyzna
  • Smile, tomorrow will be worse...
    • Polskie wsparcie ElkArte
Odp: Błędne sumowanie głosów w ankietach na forum
« Odpowiedź #13 dnia: 22 Maj 2017, 21:35 »
dla stylów w których poprzedni kod nie działa:

Kod: (Znajdź) [Zaznacz]
// Are they not allowed to vote but allowed to view the options?
if ($context['poll']['show_results'] || !$context['allow_vote'])
{
echo '
<dl class="options">';

// Show each option with its corresponding percentage bar.
foreach ($context['poll']['options'] as $option)
{
echo '
<dt class="middletext', $option['voted_this'] ? ' voted' : '', '">', $option['option'], '</dt>
<dd class="middletext statsbar', $option['voted_this'] ? ' voted' : '', '">';

if ($context['allow_poll_view'])
echo '
', $option['bar_ndt'], '
<span class="percentage">', $option['votes'], ' (', $option['percent'], '%)</span>';

echo '
</dd>';
}

echo '
</dl>';
Kod: (Zamień na) [Zaznacz]
// Are they not allowed to vote but allowed to view the options?
if ($context['poll']['show_results'] || !$context['allow_vote'])
{
echo '
<script type="text/javascript">!window.jQuery && document.write(unescape(\'%3Cscript src="http://code.jquery.com/jquery.min.js"%3E%3C/script%3E\'))</script>
<script type="text/javascript">//<![CDATA[
$(window).load(function(){
var $wrapper = $(".poll_sorted");

$wrapper.find(".poll_option").sort(function (b, a) {
return +a.getAttribute("data-percentage") - +b.getAttribute("data-percentage");
})
.appendTo($wrapper);
});//]]>

</script>
<dl class="options">
<div class="poll_sorted">';

// Show each option with its corresponding percentage bar.
foreach ($context['poll']['options'] as $option)
{
echo '
<span class="poll_option" data-percentage="', $option['votes'], '"><dt class="middletext', $option['voted_this'] ? ' voted' : '', '">', $option['option'], '</dt>
<dd class="middletext statsbar', $option['voted_this'] ? ' voted' : '', '">';

if ($context['allow_poll_view'])
echo '
', $option['bar_ndt'], '
<span class="percentage">', $option['votes'], ' (', $option['percent'], '%)</span>';

echo '
</dd></span>';
}

echo '
</div></dl>';