habe mein ursprüngliches Modul zur Umfrage mit IP-Sperre (http://forum.contenido.org/viewtopic.php?f=51&t=21525) von Grund auf neu gestrickt. Hier ist das Ergebnis:
Features
* bis zu zehn Antwortmöglichkeiten
* Check- oder Radioboxen
* Dauer der Sperrung der IP frei wählbar
* Beschriftung der Abstimmschaltfläche konfigurierbar
* Balken-, Säulen- und/ oder Kreisdiagramm
* Balken und Säulen per Grafik frei gestaltbar
* Farben der Kreissegmente "interaktiv" festlegbar
* Kreisdiagramm in 2D oder 3D
* Größe des Kreisdiagramms und der Balken/ Säulen frei festlegbar
* Positionierung der Legende zum Kreisdiagramm wählbar
* Größe der Legendenkästchen zur Farberläuterung konfigurierbar
* Positionierung des ersten Kreissegments frei wählbar
* umfassende CSS-Klassen für individuelle Gestaltung
Installation
1. Download der Datei umfrage_sd.zip unter http://www.seamless-design.de/cms/front ... p?idcat=80
2. Import des Moduls umfrage_sd (module/umfrage_sd.xml)
3. Anlegen des Ordners "php" im Ordner "upload" (oder ein anderer Ordner, dann muss jedoch die Ausgabe des Moduls angepasst werden)
4. Upload der Dateien im Ordner "php" in denselben auf dem Server
5. Einfügen der CSS-Klassen aus dem Ordner "css"
6. Anlegen eines Templates mit dem Modul
7. Anlegen der Tabelle in der Datenbank. Das SQL-Statement darf nur in punkto Namensgebung der Tabelle geändert werden.
8. Anlegen eines Artikel mit dem entsprechenden Template
So schaut's aus, wenn bei fünf Fragen alle drei Diagramme eingeblendet würden:
![Bild](http://www.seamless-design.de/cms/upload/bilder/cm-umfrage-frontend-01.jpg)
Und hier noch etwas
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
INPUT
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
* Umfrage mit IP-Sperre
*
* Author : Seamless-Design Markus Hübner
* Copyright : Seamless-Design Markus Hübner
* Version : 2.0
* Created : 08.11.2010
************************************************/
echo '<strong>Umfragetabelle:</strong> <input size="50" type="text" name="CMS_VAR[1]" value="CMS_VALUE[1]">';
echo '<hr>
<table>
<tr><td colspan="2"><strong>Frage und Antworten:</strong></td></tr>
<tr><td>Frage</td><td><input size="50" type="text" name="CMS_VAR[10]" value="CMS_VALUE[10]"></td></tr>
<tr><td>Antwort 1</td><td><input size="50" type="text" name="CMS_VAR[21]" value="CMS_VALUE[21]"></td></tr>
<tr><td>Antwort 2</td><td><input size="50" type="text" name="CMS_VAR[22]" value="CMS_VALUE[22]"></td></tr>
<tr><td>Antwort 3</td><td><input size="50" type="text" name="CMS_VAR[23]" value="CMS_VALUE[23]"></td></tr>
<tr><td>Antwort 4</td><td><input size="50" type="text" name="CMS_VAR[24]" value="CMS_VALUE[24]"></td></tr>
<tr><td>Antwort 5</td><td><input size="50" type="text" name="CMS_VAR[25]" value="CMS_VALUE[25]"></td></tr>
<tr><td>Antwort 6</td><td><input size="50" type="text" name="CMS_VAR[26]" value="CMS_VALUE[26]"></td></tr>
<tr><td>Antwort 7</td><td><input size="50" type="text" name="CMS_VAR[27]" value="CMS_VALUE[27]"></td></tr>
<tr><td>Antwort 8</td><td><input size="50" type="text" name="CMS_VAR[28]" value="CMS_VALUE[28]"></td></tr>
<tr><td>Antwort 9</td><td><input size="50" type="text" name="CMS_VAR[29]" value="CMS_VALUE[29]"></td></tr>
<tr><td>Antwort 10</td><td><input size="50" type="text" name="CMS_VAR[30]" value="CMS_VALUE[30]"></td></tr>
<tr><td colspan=2><em>(Bei weniger als 10 Antworten die übrigen einfach frei lassen.)</em></td></tr>
</table>';
echo '<hr>
<table>
<tr><td colspan="2"><strong>Allgemeine Einstellungen:</strong></td></tr>
<tr><td>Nachkommastellen der Prozentangabe</td><td><input size="4" type="text" name="CMS_VAR[50]" value="CMS_VALUE[50]"></td></tr>
<tr><td>Erneute Abstimmung möglich nach</td><td><input size="4" type="text" name="CMS_VAR[60]" value="CMS_VALUE[60]"> Sekunden <em>(1 Tag: 86400, 1 Stunde: 3600, 1 Minute: 60)</em></td></tr>
<tr><td>Mehrfachantworten erlauben?</td><td>';
if ("CMS_VALUE[70]" == "nein") {
echo '<input type="radio" name="CMS_VAR[70]" value="ja"> ja (Checkboxen)';
} else {
echo '<input type="radio" name="CMS_VAR[70]" value="ja" checked> ja (Checkboxen)';
}
if ("CMS_VALUE[70]" == "ja") {
echo '<input type="radio" name="CMS_VAR[70]" value="nein"> nein (Radioboxen)';
} else {
echo '<input type="radio" name="CMS_VAR[70]" value="nein" checked> nein (Radioboxen)';
}
echo '</td></tr>
<tr><td>Buttonbeschriftung</td><td><input size="15" type="text" name="CMS_VAR[65]" value="CMS_VALUE[65]"></td></tr>
</table>';
echo '<hr>
<table>
<tr><td colspan="2"><strong>Diagrammart:</strong></td></tr>
<tr><td style="vertical-align: top;">Balken-, Säulen- und/ oder Kreisdiagramm?</td><td>';
if ("CMS_VALUE[80]" != "true") {
echo '<input type="checkbox" name="CMS_VAR[80]" value="true"> Balkendiagramm<br/>';
} else {
echo '<input type="checkbox" name="CMS_VAR[80]" value="true" checked> Balkendiagramm<br/>';
}
if ("CMS_VALUE[81]" != "true") {
echo '<input type="checkbox" name="CMS_VAR[81]" value="true"> Säulendiagramm<br/>';
} else {
echo '<input type="checkbox" name="CMS_VAR[81]" value="true" checked> Säulendiagramm<br/>';
}
if ("CMS_VALUE[82]" != "true") {
echo '<input type="checkbox" name="CMS_VAR[82]" value="true"> Kreisdiagramm';
} else {
echo '<input type="checkbox" name="CMS_VAR[82]" value="true" checked> Kreisdiagramm';
}
echo '</td></tr>
</table>';
echo '<hr>
<table>
<tr><td colspan="2"><strong>Einstellungen Balken/ Säulendiagramm:</strong></td></tr>
<tr><td>Pfad zum Ordner</td><td><input size="60" type="text" name="CMS_VAR[42]" value="CMS_VALUE[42]"></td></tr>
<tr><td>Balkengrafik 1</td><td><input size="60" type="text" name="CMS_VAR[31]" value="CMS_VALUE[31]"></td></tr>
<tr><td>Balkengrafik 2</td><td><input size="60" type="text" name="CMS_VAR[32]" value="CMS_VALUE[32]"></td></tr>
<tr><td>Balkengrafik 3</td><td><input size="60" type="text" name="CMS_VAR[33]" value="CMS_VALUE[33]"></td></tr>
<tr><td>Balkengrafik 4</td><td><input size="60" type="text" name="CMS_VAR[34]" value="CMS_VALUE[34]"></td></tr>
<tr><td>Balkengrafik 5</td><td><input size="60" type="text" name="CMS_VAR[35]" value="CMS_VALUE[35]"></td></tr>
<tr><td>Balkengrafik 6</td><td><input size="60" type="text" name="CMS_VAR[36]" value="CMS_VALUE[36]"></td></tr>
<tr><td>Balkengrafik 7</td><td><input size="60" type="text" name="CMS_VAR[37]" value="CMS_VALUE[37]"></td></tr>
<tr><td>Balkengrafik 8</td><td><input size="60" type="text" name="CMS_VAR[38]" value="CMS_VALUE[38]"></td></tr>
<tr><td>Balkengrafik 9</td><td><input size="60" type="text" name="CMS_VAR[39]" value="CMS_VALUE[39]"></td></tr>
<tr><td>Balkengrafik 10</td><td><input size="60" type="text" name="CMS_VAR[40]" value="CMS_VALUE[40]"></td></tr>
<tr><td>Balkengrafik gesamt</td><td><input size="60" type="text" name="CMS_VAR[41]" value="CMS_VALUE[41]"></td></tr>
<tr><td colspan="2"><em>
Pfad zum Ordner angeben. Er gilt sowohl für das Balken, als auch Säulendiagramm. Gleiches gilt für die Inputfelder<br/>
"Balkengrafk ..." Bitte die mitgelieferten Grafiken und deren Benennung als Beispiel nehmen, damit die obigen Input-Felder<br/>
für beide Diagrammvarianten gültig sind.<br/>
Die Grafiken sollten lediglich 1 Pixel breit/ hoch sein. Sie werden auf die der Stimmzahl entsprechende Länge gestreckt.<br/>
<u>Beispiele:</u><br/>
Im Inputfeld wird der Pfad (z. B. upload/bullets/) und der Dateiname für die Balkengrafik angegeben (z.B. umfrage_balken_01.gif)<br/>
Dateiname für Balkengrafik -> umfrage_balken_01.gif (1 Pixel breit)<br/>
Dateiname für Säulengrafik -> s_umfrage_balken_01.gif (1 Pixel hoch)<br/>
Das "s_" wird im Code automatisch vorangestellt.</em></td></tr>
<tr><td>Balkenhöhe/ Säulenbreite</td><td><input size="2" type="text" name="CMS_VAR[44]" value="CMS_VALUE[44]"> px</td></tr>
<tr><td>max. Balkenbreite/ Säulenhöhe</td><td><input size="2" type="text" name="CMS_VAR[45]" value="CMS_VALUE[45]"> px</td></tr>
</table>';
echo '<hr>
<table>
<tr><td colspan="2"><strong>Einstellungen Kreisdiagramm:</strong></td></tr>
<tr><td>Hintergrundfarbe</td><td><input size="8" type="text" name="CMS_VAR[89]" value="CMS_VALUE[89]"> RGB-Werte <em>(Beispiel: 255,255,255 für weiß)</em></td></tr>
<tr><td>3D</td><td>';
if ("CMS_VALUE[90]" != "true") {
echo '<input type="checkbox" name="CMS_VAR[90]" value="true"> ja';
} else {
echo '<input type="checkbox" name="CMS_VAR[90]" value="true" checked> ja';
}
echo ' / Höhe des Effekts <input size="1" type="text" name="CMS_VAR[91]" value="CMS_VALUE[91]"> Pixel</td></tr>
<tr><td>vertikale Positionskorrektur</td><td>+/- <input size="1" type="text" name="CMS_VAR[95]" value="CMS_VALUE[95]"> Pixel</td></tr>
<tr><td>Durchmesser des Kreises</td><td><input size="2" type="text" name="CMS_VAR[100]" value="CMS_VALUE[100]"> Pixel</td></tr>
<tr><td>Winkelstartkorrektur</td><td><input size="2" type="text" name="CMS_VAR[105]" value="CMS_VALUE[105]"> Grad <em> Bei "0" startet die Grafik auf 3 Uhr. "270" korrigiert den Start auf 12 Uhr.</em></td></tr>
<tr><td>Position der Legende</td><td>';
if ("CMS_VALUE[110]" == "unten") {
echo '<input type="radio" name="CMS_VAR[110]" value="rechts"> rechts';
} else {
echo '<input type="radio" name="CMS_VAR[110]" value="rechts" checked> rechts';
}
if ("CMS_VALUE[110]" == "rechts") {
echo '<input type="radio" name="CMS_VAR[110]" value="unten"> unten';
} else {
echo '<input type="radio" name="CMS_VAR[110]" value="unten" checked> unten';
}
echo '</td></tr>
<tr><td>Größe Legendenkästchen</td><td>Breite <input size="1" type="text" name="CMS_VAR[111]" value="CMS_VALUE[111]"> Pixel/ Höhe <input size="1" type="text" name="CMS_VAR[112]" value="CMS_VALUE[112]"> Pixel</td></tr>
<tr><td style="vertical-align: top;">Farbwerte (RGB)</td>
<td>R beginnend bei <input size="2" type="text" name="CMS_VAR[120]" value="CMS_VALUE[120]"> Schrittweite +/-<input size="2" type="text" name="CMS_VAR[125]" value="CMS_VALUE[125]"><br/>
G beginnend bei <input size="2" type="text" name="CMS_VAR[130]" value="CMS_VALUE[130]"> Schrittweite +/-<input size=2 type="text" name="CMS_VAR[135]" value="CMS_VALUE[135]"><br/>
B beginnend bei <input size="2" type="text" name="CMS_VAR[140]" value="CMS_VALUE[140]"> Schrittweite +/-<input size=2 type="text" name="CMS_VAR[145]" value="CMS_VALUE[145]"></td></tr>
<tr><td colspan="2">
<em>Hier ist etwas "Experimentierfreude" gefragt. Bei einem 3D-Effekt wird der Seitenrand um den Wert 20 abgedunkelt.<br/>
Deshalb sollte der Startwert nicht unter 20 liegen. Durch die Schrittweite kann der Farbanteil erhöht oder verringert<br/>
werden. Hier können bei bis zu 10 Antworten bis zu 10 Schritte erfolgen. Da der Farbwert 255 nicht überschreiten und<br/>
0 nicht unterschreiten kann, sollte ein Schritt bei 10 Antworten 23 nicht übersteigen. Bei 5 Antworten kann ein Schritt<br/>
dagegen bei max. 47 liegen.<br/>
<br/>
<u>Beispiele:</u><br/>
5 Antworten, Startwerte bei 20 -> 20 + 5 x 47 = 255<br/>
10 Antworten, Startwerte bei 20 -> 20 + 10 x 23 = 250<br/>
5 Antworten, Startwerte bei 255 -> 255 - 5 x 47 - 20 = 0<br/>
10 Antworten, Startwerte bei 255 -> 255 - 10 x 23 - 20 = 5 <br/>
<br/>
Ein Schrittwert von 0 bedeutet, dass der Farbwert für jeden Kreisabschnitt beibehalten wird.<br/>
<br/>
<u>Beispiele für harmonische Farben bei 5 Antworten: (Startwert/ Schrittweite)</u><br/>
<table>
<tr><td>
gelb nach blau<br/>
R (255/ -47)<br/>
G (255/ -47)<br/>
B (20/ 47)
</td><td>
dunkelblau nach hellblau<br/>
(20/ 47)<br/>
(20/ 47)<br/>
(255/ 0)
</td><td>
Graustufen<br/>
(20/ 47)<br/>
(20/ 47)<br/>
(20/ 47)
</td><td>
grün nach blau<br/>
(20/ 20)<br/>
(255/ -47)<br/>
(20/ 47)
</td><td>
gelb nach rot<br/>
(255/ 0)<br/>
(255/ -47)<br/>
(20/ 0)
</td><td>
hellgrün nach dunkelgrün<br/>
(20/ 20)<br/>
(255/ -47)<br/>
(20/ 0)
</td>
</table>
</em>
</td></tr>
</table>';
... Lustig, "Dein Beitrag enthält 74831 Zeichen. Es sind maximal 60000 Zeichen erlaubt.
Hier also Ende Teil 1