Fürgen Sie zur Fehlersuche bitte erstmal zwei debug()
ein:
// Wert/Ergebnis ermitteln
$value = valueMean(array('NE01_01', 'NE01_02', 'NE01_03'));
// z-Transformation
$zValue = ($value - 5) / 2.8;
debug($value);
debug($zValue);
Im Debug-Modus sehen Sie nun, was überhaupt berechnet wird.
Wieso lautet die Formel für die Z-Transformation in der Vorlage $zValue = ($value - 5) / 2.8;?
Weil im Beispiel der Norm-Mittelwert der Stichprobe 5 und die Standardabweichung 2,8 ist. So funktioniert eine z-Transformation. Die Frage ist, ob Sie ein z-Transformation haben möchten/benötigen?
Ich möchte, dass die Markierung auf der Skala bei einem Mittelwert von 1 ganz links ist bis hin zu einem Mittelwert von 6 ganz rechts und das bei 6 items.
Dafür würden Sie eher schreiben:
// Wert/Ergebnis ermitteln
$value = valueMean(array('NE01_01', 'NE01_02', 'NE01_03'));
// Transformation von 1..6 auf den Wertebereich 0..1
$x = ($value - 1) / 5;
// Textbaustein verwenden (nur, wenn $value einen gültigen Wert geliefert hat)
if ($value > 0) {
text('responseSD', array(
'%title%' => 'Extraversion',
'%xValue%' => $x
));
}
Und passend dazu dann auch einen etwas andere HTML-Code:
<div style="position: relative; margin: 0 auto; width: 400px; height: 25px; background-image:url('ofb://slider.scale.sd-blue400S')">
<div style="width: 386px; margin: 0 auto; position: relative;">
<img src="ofb://slider.button.rhomb" alt="" style="position: absolute; left: %xValue*100%%; margin-left: -7px" />
</div>
</div>