Seite 1 von 2
Ampel MOD für Poll's (Umfragen)
Verfasst: 17.01.2009 13:41
von cand.ing.
Guten Tag,
gibt es eine Möglichkeit, die Ergebnisse einer Umfrage in verschiedenen Farben anzeigen zu lassen?
Also Grün für das Ergbenis, dass die meisten Stimmen bekommen hat. Orange für Platz 2 und Rot für die folgenden Plätze.
Re: Ampel MOD für Poll's (Umfragen)
Verfasst: 17.01.2009 15:15
von oxpus
Für prosilver könnte ich da was auf die Schnelle anbieten:
Code: Alles auswählen
#
#-----[ OPEN ]-----
#
viewtopic.php
#
#-----[ FIND ]-----
#
while ($row = $db->sql_fetchrow($result))
{
$poll_info[] = $row;
}
$db->sql_freeresult($result);
#
#-----[ AFTER, ADD ]-----
#
// Poll max information system - OXPUS
$sql = 'SELECT poll_option_total FROM ' . POLL_OPTIONS_TABLE . "
WHERE topic_id = $topic_id
GROUP BY poll_option_total
ORDER BY poll_option_total DESC
LIMIT 2";
$result = $db->sql_query($sql);
$poll_max_color = array();
while ($row = $db->sql_fetchrow($result))
{
$poll_max_color[] = $row['poll_option_total'];
}
$db->sql_freeresult($result);
// Poll max information system - OXPUS
#
#-----[ FIND ]-----
#
foreach ($poll_info as $poll_option)
{
$option_pct = ($poll_total > 0) ? $poll_option['poll_option_total'] / $poll_total : 0;
$option_pct_txt = sprintf("%.1d%%", round($option_pct * 100));
#
#-----[ AFTER, ADD ]-----
#
// Poll max information system - OXPUS
if ($poll_max_color[0] == $poll_option['poll_option_total'])
{
$poll_option_color = 'green';
}
else if ($poll_max_color[1] == $poll_option['poll_option_total'])
{
$poll_option_color = 'orange';
}
else
{
$poll_option_color = 'red';
}
// Poll max information system - OXPUS
#
#-----[ FIND ]-----
#
'POLL_OPTION_PERCENT' => $option_pct_txt,
#
#-----[ AFTER, ADD ]-----
#
'POLL_OPTION_COLOR' => $poll_option_color,
#
#-----[ OPEN ]-----
#
styles/prosilver/template/viewtopic_body.html
#
#-----[ FIND ]-----
#
<!-- IF S_DISPLAY_RESULTS --><dd class="resultbar"><div class="<!-- IF poll_option.POLL_OPTION_PCT < 20 -->pollbar1<!-- ELSEIF poll_option.POLL_OPTION_PCT < 40 -->pollbar2<!-- ELSEIF poll_option.POLL_OPTION_PCT < 60 -->pollbar3<!-- ELSEIF poll_option.POLL_OPTION_PCT < 80 -->pollbar4<!-- ELSE -->pollbar5<!-- ENDIF -->" style="width:{poll_option.POLL_OPTION_PERCENT};">{poll_option.POLL_OPTION_RESULT}</div></dd>
#
#-----[ IN-LINE FIND ]-----
#
pollbar5<!-- ENDIF -->" style="width:{poll_option.POLL_OPTION_PERCENT};
#
#-----[ IN-LINE AFTER, ADD ]-----
#
background-color: {poll_option.POLL_OPTION_COLOR}; border: none;
Sofern es aber gleiche Ergebnisse gibt, also für "grün" könnte das Fehler bereiten. Das habe ich jetzt nicht getestet...
Beispiel, wie das ausschauen kann:
http://phpbb3.oxpus.net/viewtopic.php?f=5&t=47
Re: Ampel MOD für Poll's (Umfragen)
Verfasst: 17.01.2009 16:21
von cand.ing.
oxpus hat geschrieben:Sofern es aber gleiche Ergebnisse gibt, also für "grün" könnte das Fehler bereiten.
Ok, dann teste ich es einmal und gebe anschließend ein Feedback!
Schon einmal Danke
Re: Ampel MOD für Poll's (Umfragen)
Verfasst: 18.01.2009 09:55
von IceD
@ oxpus: gibt es eventuell auch ne Möglichkeit die Ergebnisse nach Stimmanzahl zu sortieren (plus eventueller farblicher Gestaltung)?
Re: Ampel MOD für Poll's (Umfragen)
Verfasst: 18.01.2009 10:39
von oxpus
Nach Stimmanzahl wäre einfach.
Ändere dazu nur in der viewtopic.php bei der Abfrage
Code: Alles auswählen
// Does this topic contain a poll?
if (!empty($topic_data['poll_start']))
{
$sql = 'SELECT o.*, p.bbcode_bitfield, p.bbcode_uid
FROM ' . POLL_OPTIONS_TABLE . ' o, ' . POSTS_TABLE . " p
WHERE o.topic_id = $topic_id
AND p.post_id = {$topic_data['topic_first_post_id']}
AND p.topic_id = o.topic_id
ORDER BY o.poll_option_id";
das "ORDER BY o.poll_option_id" in "ORDER BY poll_option_total DESC".
Wobei dann klar sein muss, dass damit die ursprünglich eingegebene Reihenfolge der Umfrageoptionen permanent wechselnd angezeigt wird und vielleicht nicht jedem Umfrageersteller das gefällt. Es ist dann auch nicht einfacher zu lesen, wenn man jedes Mal eine andere Reihenfolge vorfindet. Nicht für den Umfragenden noch für die User...
Für die Farben muss meine Ergänzung dennoch parallel eingebaut werden.
Re: Ampel MOD für Poll's (Umfragen)
Verfasst: 18.01.2009 10:41
von IceD
das bedeutet, dass dadurch nicht nur die Ergebnisse sondern auch (für jemanden, der noch nicht abgestimmt hat) die Auswahlmöglichkeiten nach dem Ergebniss sortiert werden?

Re: Ampel MOD für Poll's (Umfragen)
Verfasst: 18.01.2009 10:51
von oxpus
Stimmt, das kommt in diesem Fall erschwerend hinzu.
Ich halte es nicht für geschickt, die Anzeige der Optionen nach Reihenfolge der angegebenen Stimmen zu ändern. Weder in der Ansicht des Ergebnisses noch beim Abstimmen selber.
Das verwirrt mehr, als es was nutzt.
Re: Ampel MOD für Poll's (Umfragen)
Verfasst: 18.01.2009 10:59
von IceD
gut, möglich. Aber habs jetzt eingebaut. Funktioniert super. Sortierung nach Stimmenanzahl und die farbliche Hinterlegung. Bei Gleichheit werden beide grün angezeigt.
Bei einer Umfrage habe ich 8%-grün, 5% -> orange und ab 4 bis 0% rot. Kann man das noch mehr abstufen? Sprich ne 4. oder fünte Farbe hinzu fügen?
Re: Ampel MOD für Poll's (Umfragen)
Verfasst: 18.01.2009 11:06
von oxpus
Das könnte man theoretisch unendlich fortsetzen, wäre aber dann noch unübersichtlicher, so ein "Regenbogen" an Farben.
Der Mensch mag es visuell eher einfach, da ist die
Ampel-Funktion entgegen der ursprünglichen Färbung noch das beste Mittel, um auf einen Blick die Ergebnisse einzusortieren.
Ich würde weiter Farben daher definitiv nicht einführen wollen. Ist absolut nicht zu empfehlen!
Und da Du die Optionen nun eh schon nach Stimmanzahl sortierst, wären die vielen Farben nicht gerade wirklich geschickt, sondern eher ablenkend.
Aber wenn Du unbedingt mehr als nur 3 Farben haben willst, schau Dir mal meine Erweiterung hierzu an. Du wirst dann sicherlich selber drauf kommen, wie man das erweitert

Re: Ampel MOD für Poll's (Umfragen)
Verfasst: 18.01.2009 12:17
von IceD
oh, dass traust du mir zu?
orange und rot ist kein Problem, nur was für ne Formel steckt hinter grün?