Abstimmung wordpress
siehe auch DEKRA Direkt Blog Der Blog DEKRA Direkt wird als interner Konzernblog verwendet und soll als Kontaktmittel der Mitarbeiter zur Vorstandsebene dienen. Dazu gibt es unter anderem die DEKRA Direkt Mitarbeiter Umfrage.
Todo
Besser zum Testen wäre es wenn die Umfrage zunächst in eine Kategorie Test geht die auf der Startseite nicht dargestellt wird.
Wordpress Extension Yop Poll - verwendet bei Mascha im Blog intern:
yop poll Anpassungen
yop poll Tabellen
------------ ----------------- --------------
yop_polls yop_poll_answers yop_poll_logs
------------ ----------------- --------------
id --------------| id --------------| id
name |-poll_id | pn
question answer | poll_id
total_votes votes | vote_id
total_answers ... |- answer_id
... --------------
------------ -----------------
---------------------- ----------------------------
yop_poll_custom_fields yop_poll_votes_custom_fields
---------------------- ----------------------------
id id
poll_id poll_id
custom_field vote_id
... custom_field_id
---------------------- user_id
custom_field_value
----------------------------
Da bei einem custom text field bei der fragesstellung nur einzeiliger text möglich war, musst die datei
/wp-content/plugins/yop-poll/inc/yop_poll_model.php
In der datenbank die Tabelle:
kas_wp_yop_poll_votes_custom_fields
Feld: custom_field_value
von varchar (255) auf Text geändert.
SQL-Abfragen für Antworten mit Kommentar
SQL nur Ergebnisse
SELECT `id` , `poll_id` , `answer_id` , `ip` , `http_referer` , `vote_date` , `pn` FROM `kas_wp_yop_poll_logs` WHERE `poll_id` =38 ORDER BY `answer_id` ASC LIMIT 0 , 500
SQL Abfrage mit Kommentaren
Alte Abfrage
SELECT * FROM `kas_wp_yop_poll_logs` LEFT OUTER JOIN `kas_wp_yop_poll_votes_custom_fields` ON `kas_wp_yop_poll_logs`.`vote_id` = `kas_wp_yop_poll_votes_custom_fields`.`vote_id` WHERE `kas_wp_yop_poll_logs`.`poll_id` =13
Weitere Abfragen
Welche Custom Fields gehören zu welchen Umfrage (Pivot Version)
Dynamische Version (funktioniert noch nicht aber die Richtung dürfte stimmen)
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'max(case when custom_field = ''',
custom_field,
''' then custom_field end) AS ',
custom_field
)
) INTO @sql
FROM kas_wp_yop_poll_custom_fields;
SET @sql = CONCAT('SELECT poll_id, ', @sql, '
FROM kas_wp_yop_poll_custom_fields
GROUP BY poll_id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Neue Umfrage für DEKRA Connect durchführen
Allgemein
Läuft 2 Wochen ab ca. Mitte des Monats. Danach Auswertung und Grafikerstellung.
Updates
2015-10 - Umfrage nur mit Cookie check -> Mascha möchte keine Userunterbrechung. Später werden die Ergebnisse manuell gereinigt
Technischer Ablauf
Stand März 2015
- Das Umfrage Plugin im WP ist auf block by Personal Number gestellt.
- Ein User kann nur Voten wenn eine id=12345 (Personalnummer) angehängt ist. Ansonsten wird zunächst auf das DEKRA Intranet weiter geleitet (über alert).
- Dort wird die Personalnummer als id=12345 an den Link angehängt und auf intern-blog.dekra.de/category/dekra-direkt/?id=12345 geleitet Nur wenn eine solche id vorhanden ist kann gevoted werden. Ist nicht supersicher weil die Nummer willkürlich geändert werden kann, nachträgliche Prüfung wäre mit Personalnummern Liste möglich. Verbesserungspotential wäre POST übermittlung, Gültigkeitsprüfung durch PN-Index oder Formel.
- Hat die id schon gevotet wird nur das Ergebnis angezeigt.
- Im DEKRA Intranet werden Links an die eine id angehängt werden soll mit dem Parameter ?id=public Veröffentlicht. public wird dann automatisch durch die Personalnummer des Mitarbeiters ersetzt, bevor weitergeleitet wird.
Umfrage erstellen
- Achtung manchmal kollidiert die Abfrage mit alten Cookies der letzten Umfrage. Genau ist das noch nicht geklärt. Hilfe bringt:
- dafür sorgen, daß die alte Umfrage nicht mit angezeigt wird
- Logs löschen
- Wenn nichts hilft die Stats Reseten (kann sein daß dies nicht nötig ist.)
- 1 oder mehrere (Mascha will meist 3) Umfragen-Dummies erstellen (z.B. eine alte klonen - Vorsicht: Einstellungen für Datum, Template und Blocking werden nicht übernommen)
- Template: DEKRA Umfrage mit Kommentar
- Mit dem Template DEKRA Umfrage mit dynamischem Kommentar kann man zusätzlich noch JavaScript Popups öffnen und auf die gewählte Antwort reagieren (siehe JS im Template)
- Blocking by auf Personal Number - dadurch wird die Abfrage des id Parameters gestartet. Zum Testen auf don't Block stellen. Achtung IE hat manchmal Caching Probleme.
- Start und Enddatum setzen
- Abstimmung in einen Beitrag in Kategorie Dekra Direkt einpflegen (evtl. erst nach dem Testen) -> Startseite sichtbar
- Am Ende Umfrage auf nur Antwort !
- Geo-bit erstellt die Fragen, diese werden von Mascha angepasst und von Ihr in einem Beitrag veröffentlicht.
- Start der Umfrage durch setzen der Kategorie (todo ob das klappt)
Test der Umfrage
- Vorige Tests sind sinnvoll. Ein Test von Geo-bit (einfach id anhängen). Ein Test von Dekra
Ende der Umfrage und Auswertung
Für die Auswertung benötigt Mascha eine Excel-Tabelle in der nach Antworten und sortiert ist. Ebenso die dazugehörigen Kommentare. Doppelte IPs rausschmeißen. Wenn Personalnummerliste vorhanden könnte man hier nach Gültigkeit prüfen.
- Umfrage mit Datum beenden oder auf Maschas Hinweis, Umfrage auf don't block, damit die Umleitung auf Dekra nicht mehr aktiv ist, außerdem Enddatum setzen und auf Ergebnis anzeigen nach Enddatum.
- SQL Abfrage (siehe Statement), Export als ods oder csv
- Doppelte überprüfen
- Umwandeln in Excel
- Schaubild aus Numbers
Löschen unerwünschter Kommentare
In
Admin -> Yop poll -> All polls -> meineUmfrage -> votes
hier auswählen und löschen
Anpassungen am Plugin Yop poll
yop-poll => inc => admin.php
Hier die DB mit prefix versehen. "kas_"
yop-poll => inc => yop_poll_model.php yop-poll => inc => db_schema.php yop-poll => js => yop_poll_public.js
Kommentare
MUSS überarbeitet werden
yop_poll_modell.php
return_poll_html ->
dort wird der Template Block
[ANSWER_RESULT_CONTAINER] [/ANSWER_RESULT_CONTAINER]
mit pregreplace über eine Callback Funktion ersetzt
answer_result_callback(m$)
darin wiederum wird
get_poll_comments($poll_id)
aufgerufen, dieses gibt ein array zurück das dann in HTML umgesetzt wird. Diese Ausgabe erfolbt über die Abfrage von
$this->is_view_poll_results()
Das bedeutet die Ausgabe erfolgt wenn im Backend die Bedingung für die Ausgabe der Results gesetzt ist (z.B. Results after End Date) Gute erweiterung wäre ein eigener Block für die Comments
Im Template muß der Block natürlich auch gesetzt sein. (beim entsprechenden Template)
Yop Poll Templates
Todo - Anpassen um ungenutzte Features zu nutzen (z.B. after End Date schöne Anzeige der Ergebnisse)
DEKRA Umfrage mit Kommentar
Vor Umfrage:
<div id="yop-poll-name-%POLL-ID%" class="yop-poll-name">%POLL-NAME%</div>
<div id="yop-poll-question-%POLL-ID%" class="yop-poll-question" style="display:table-cell;height:130px;vertical-align:middle;">%POLL-QUESTION%</div>
<div id="yop-poll-answers-%POLL-ID%" class="yop-poll-answers">
<ul>
[ANSWER_CONTAINER]
<li class="yop-poll-li-answer-%POLL-ID%">
%POLL-ANSWER-CHECK-INPUT%
%POLL-ANSWER-LABEL%
<span class="yop-poll-results-text-%POLL-ID%">%POLL-ANSWER-RESULT-LABEL%</span>
%POLL-ANSWER-RESULT-BAR%
</li>
[/ANSWER_CONTAINER]
[OTHER_ANSWER_CONTAINER]
<li class="yop-poll-li-answer-%POLL-ID%">
%POLL-OTHER-ANSWER-CHECK-INPUT%
%POLL-OTHER-ANSWER-LABEL%
<span class="yop-poll-results-text-%POLL-ID%">%POLL-ANSWER-RESULT-LABEL%</span>
%POLL-OTHER-ANSWER-TEXT-INPUT%
%POLL-ANSWER-RESULT-BAR%
</li>
[/OTHER_ANSWER_CONTAINER]
</ul>
</div>
<div id="yop-poll-custom-%POLL-ID%">
<ul>
[CUSTOM_FIELD_CONTAINER]
<li>%POLL-CUSTOM-FIELD-LABEL% %POLL-CUSTOM-FIELD-TEXT-INPUT%</li>
[/CUSTOM_FIELD_CONTAINER]
</ul>
</div>
[CAPTCHA_CONTAINER]
<div id="yop-poll-captcha-%POLL-ID%">
<div class="yop-poll-captcha-image-div" id="yop-poll-captcha-image-div-%POLL-ID%">
%CAPTCHA-IMAGE%
<div class="yop-poll-captcha-helpers-div" id="yop-poll-captcha-helpers-div-%POLL-ID%">%RELOAD-CAPTCHA-IMAGE% </div>
<div class="yop_poll_clear"></div>
</div>
%CAPTCHA-LABEL%
<div class="yop-poll-captcha-input-div" id="yop-poll-captcha-input-div-%POLL-ID%">%CAPTCHA-INPUT%</div>
</div>
[/CAPTCHA_CONTAINER]
<div id="yop-poll-vote-%POLL-ID%" class="yop-poll-footer">
<div>%POLL-VOTE-BUTTON%</div>
<div id="yop-poll-results-%POLL-ID%">%POLL-VIEW-RESULT-LINK%</div>
<div>%POLL-TOTAL-ANSWERS%</div>
<div>%POLL-TOTAL-VOTES%</div>
</div>
Nach Umfrage
<div id="yop-poll-name-%POLL-ID%" class="yop-poll-name">%POLL-NAME%</div>
<div id="yop-poll-question-%POLL-ID%" class="yop-poll-question" style="display:table-cell;height:130px;vertical-align:middle;">%POLL-QUESTION%</div>
<div id="yop-poll-answers-%POLL-ID%" class="yop-poll-answers">
</li><div id="gb_cust">VORLÄUFIGES·ERGEBNIS·DER·ABSTIMMUNG</div>
<ul>
[ANSWER_RESULT_CONTAINER]
<li class="yop-poll-li-result-%POLL-ID%">
<label class="pds-feedback-label-%POLL-ID%">
<span class="pds-answer-text-%POLL-ID%">%POLL-ANSWER-LABEL%</span>
<span class="pds-feedback-result-%POLL-ID%">
<span class="pds-feedback-per-%POLL-ID%"> %POLL-ANSWER-RESULT-LABEL%</span>
</span>
</label>
<div>
%POLL-ANSWER-RESULT-BAR%
</div>
[/ANSWER_RESULT_CONTAINER]
</ul>
</div>
<div id="yop-poll-vote-%POLL-ID%" class="yop-poll-footer">
<div>%POLL-TOTAL-ANSWERS%</div>
<div>%POLL-TOTAL-VOTES%</div>
<div id="yop-poll-back-%POLL-ID%">%POLL-BACK-TO-VOTE-LINK%</div>
</div>
Before Start Date
This poll is about to <br> start at %POLL-START-DATE%<br> and finish at %POLL-END-DATE%<br>
After End Date
<div id="yop-poll-name-%POLL-ID%" class="yop-poll-name">%POLL-NAME%</div> <div id="yop-poll-question-%POLL-ID%" class="yop-poll-question">%POLL-QUESTION%</div> <div id="yop-poll-answers-%POLL-ID%" class="yop-poll-answers"> </div> <div id="gb_end">Die Abstimmung ist beendet.</div> <ul class="afterVote"> [ANSWER_RESULT_CONTAINER] [/ANSWER_RESULT_CONTAINER] </ul>
CSS
#yop-poll-container-%POLL-ID% {
background-image: url("http://intern-blog.dekra.de/wp-content/uploads/2013/02/bg_poll_1.png");
/* border: 5px solid #3F8B43;*/
background-repeat:no-repeat;
color: #555555;
font-size: 12px;
overflow: hidden;
padding: 10px;
width: 632px;
/* height: 300px;*/
}
#yop-poll-name-%POLL-ID% {
font-size:14px;
font-weight:bold;
}
#yop-poll-question-%POLL-ID% {
color: #000000;
font-size: 14pt;
font-weight: 500;
height: 80px;
line-height: 26px;
margin: 0 50px 0 0;
padding-left: 215px;
padding-top: 40px;
text-align: center;
width: 300px;
margin-bottom: 100px;
}
#yop-poll-answers-%POLL-ID% {
}
#yop-poll-answers-%POLL-ID% ul {
list-style: none outside none;
margin: 0;
position: relative;
top: 20px;
left: 270px;
}
#yop-poll-answers-%POLL-ID% ul li {
font-style:normal;
margin-bottom:10px;
padding:0px;
font-size:12px;
width: 190px !important;
}
#yop-poll-answers-%POLL-ID% ul li input {
margin:0px;
float:none;
}
#yop-poll-answers-%POLL-ID% ul li label {
margin:0px;
font-style:normal;
font-weight:bold;
font-size:16px;
float:none;
z-index: 10;
}
.yop-poll-results-%POLL-ID% {
font-size: 12px;
font-style: italic;
font-weight: normal;
margin-left: 15px;
}
#yop-poll-custom-%POLL-ID% { }
#yop-poll-custom-%POLL-ID% ul {
font-size: 14px;
font-weight: 500;
left: 270px;
list-style: none outside none;
margin: 0;
padding: 0;
position: relative;
top: 20px;
float: left;
width: 375px;
}
#yop-poll-custom-%POLL-ID% ul li {
padding:0px;
margin:0px;
font-size:14px;
}
#yop-poll-container-%POLL-ID% input[type='text'] {
font-size: 12px;
margin: 10px 0;
padding: 2%;
text-indent: 2%;
width: 92%;
border: 1px solid #B9B8B8;
}
#yop-poll-container-%POLL-ID% textarea {
font-size: 12px;
margin: 10px 0;
padding: 2%;
text-indent: 2%;
width: 92%;
font-family: Verdana;
color: #666;
border: 1px solid #B9B8B8;
}
#yop-poll-captcha-input-div-%POLL-ID% {
margin-top:5px;
}
#yop-poll-captcha-helpers-div-%POLL-ID% {
width:30px;
float:left;
margin-left:5px;
height:0px;
}
#yop-poll-captcha-helpers-div-%POLL-ID% img {
margin-bottom:2px;
}
#yop-poll-captcha-image-div-%POLL-ID% {
margin-bottom:5px;
}
#yop_poll_captcha_image_%POLL-ID% {
float:left;
}
.yop_poll_clear {
clear:both;
}
#yop-poll-vote-%POLL-ID% {
float:left;
/*width:100%; */
padding-left: 270px;
margin-top: 20px;
margin-bottom: 100px;
}
li.yop-poll-li-result-%POLL-ID% {
/* margin-top: 50px;*/
}
.yop-poll-results-bar-%POLL-ID% { background:#f5f5f5; height:10px; }
.yop-poll-results-bar-%POLL-ID% div { background:#555; height:10px; }
#yop-poll-vote-%POLL-ID% div#yop-poll-vote-%POLL-ID% button { float:left; }
#yop-poll-vote-%POLL-ID% div#yop-poll-results-%POLL-ID% {
float: right;
margin-bottom: 20px;
margin-top: -20px;
width: auto;
}
#yop-poll-vote-%POLL-ID% div#yop-poll-results-%POLL-ID% a { color:#3F8B43; text-decoration:underline; font-size:12px;}
#yop-poll-vote-%POLL-ID% div#yop-poll-back-%POLL-ID% a { color:#3F8B43; text-decoration:underline; font-size:12px;}
#yop-poll-vote-%POLL-ID% div { float:left; width:100%; }
#yop-poll-container-error-%POLL-ID% {
font-size:12px;
font-style:italic;
color:red;
left: 290px;
position: relative;
top: 270px;
}
.gb-btn {
background-image: url("http://intern-blog.dekra.de/wp-content/uploads/2013/02/bg_button.png");
border: medium none;
border-radius: 10px 10px 10px 10px;
color: #FFFFFF;
cursor: pointer;
font-size: 1.9em;
font-weight: bold;
height: 40px;
text-transform: uppercase;
width: 130px;
}
#gb_cust {
color: #999999;
font-size: 1.4em;
font-weight: bold;
padding-left: 0px;
padding-top: 40px;
background-color: transparent;
}
.yop-poll-results-bar-%POLL-ID% div{
background-image: url("http://intern-blog.dekra.de/wp-content/uploads/2013/02/bg_button.png");
height: 30px;
margin-top: 0px;
}
.yop-poll-results-bar-%POLL-ID% {
height: 30px;
width:99%;
}
.pds-answer-text-%POLL-ID% {
font-size: 0.85em;
font-weight: bold;
color: #999;
/* margin-top: -10px;*/
}
.pds-feedback-per-%POLL-ID% {
color: #999999;
font-size: 1em;
margin-left: 5px;
margin-top: -25px;
font-weight: bold;
}
.yop_poll_vote_button{
background-image: url("http://intern-blog.dekra.de/wp-content/uploads/2013/02/bg_button.png");
border: medium none;
border-radius: 10px 10px 10px 10px;
color: #FFFFFF;
cursor: pointer;
font-size: 1.9em;
font-weight: bold;
height: 40px;
width: 250px;
}
#gb_end {
color: #999999;
font-size: 1.4em;
font-weight: bold;
padding-bottom: 100px;
padding-left: 250px;
padding-top: 130px;
background-color: transparent;
}
#yop-poll-container-%POLL-ID% textarea {
#max-width: 350px !important;
}
#yop-poll-container-success-%POLL-ID% {
font-size:12px;
font-style:italic;
color:green;
}
JS
function stripBorder_%POLL-ID%(object) {
object.each(function() {
if( parseInt(jQuery(this).width() ) > 0) {
jQuery(this).width( parseInt( jQuery(this).width() ) - parseInt(jQuery(this).css("border-left-width")) - parseInt(jQuery(this).css("border-right-width")) );
}
else {
jQuery(this).css("border-left-width", '0px');
jQuery(this).css("border-right-width", '0px');
}
});
}
function stripPadding_%POLL-ID%(object) {
object.each(function() {
jQuery(this).width( parseInt( jQuery(this).width() ) - parseInt(jQuery(this).css("padding-left")) - parseInt(jQuery(this).css("padding-left")) );
});
}
function strip_results_%POLL-ID%() {
stripPadding_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop_poll_li_result-%POLL-ID%") );
stripBorder_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop-poll-result-bar-%POLL-ID%"));
}
jQuery(document).ready(function(e) {
if(typeof window.strip_results_%POLL-ID% == 'function')
strip_results_%POLL-ID%();
if(typeof window.tabulate_answers_%POLL-ID% == 'function')
tabulate_answers_%POLL-ID%();
if(typeof window.tabulate_results_%POLL-ID% == 'function')
tabulate_results_%POLL-ID%();
});
function equalWidth_%POLL-ID%(obj, cols, findWidest ) {
findWidest = typeof findWidest !== 'undefined' ? findWidest : false;
if ( findWidest ) {
obj.each(function() {
var thisWidth = jQuery(this).width();
width = parseInt(thisWidth / cols);
jQuery(this).width(width);
jQuery(this).css('float', 'left');
});
}
else {
var widest = 0;
obj.each(function() {
var thisWidth = jQuery(this).width();
if(thisWidth > widest) {
widest = thisWidth;
}
});
width = parseInt( widest / cols);
obj.width(width);
obj.css('float', 'left');
}
}
function tabulate_answers_%POLL-ID%() {
equalWidth_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop-poll-li-answer-%POLL-ID%"), %ANSWERS-TABULATED-COLS% );
//equalWidth_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop-poll-li-answer-%POLL-ID% .yop-poll-results-bar-%POLL-ID% div "), %ANSWERS-TABULATED-COLS%, true );
}
function tabulate_results_%POLL-ID%() {
equalWidth_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop-poll-li-result-%POLL-ID%"), %RESULTS-TABULATED-COLS% );
//equalWidth_%POLL-ID%( jQuery("#yop-poll-container-%POLL-ID% .yop-poll-li-result-%POLL-ID% .yop-poll-results-bar-%POLL-ID% div "), %RESULTS-TABULATED-COLS%, true );
}
jQuery(document).ready(function(){
runOnPollStateChange_%POLL-ID%();
});
function runOnPollStateChange_%POLL-ID%() {};
Dekra Poll Template für ID 2 (altes Template)
Vor Umfrage
<div id="yop-poll-name-%POLL-ID%" class="yop-poll-name">%POLL-NAME%</div>
<div id="yop-poll-question-%POLL-ID%" class="yop-poll-question">%POLL-QUESTION%</div>
<div id="yop-poll-answers-%POLL-ID%" class="yop-poll-answers">
<div id="gb_cust">STIMMEN SIE JETZT AB !</div>
<ul>
[ANSWER_CONTAINER]
<li class="gb-ac yop-poll-li-answer-%POLL-ID%">
%POLL-ANSWER-CHECK-INPUT%
%POLL-ANSWER-LABEL%
<span class="yop-poll-results-text-%POLL-ID%">
%POLL-ANSWER-RESULT-LABEL%
</span>
%POLL-ANSWER-RESULT-BAR%
</li>
[/ANSWER_CONTAINER]
[OTHER_ANSWER_CONTAINER]
<li class="gb-oac yop-poll-li-answer-%POLL-ID%">
%POLL-OTHER-ANSWER-CHECK-INPUT%
%POLL-OTHER-ANSWER-LABEL%
<span class="yop-poll-results-text-%POLL-ID%">
%POLL-ANSWER-RESULT-LABEL%
</span>
%POLL-OTHER-ANSWER-TEXT-INPUT%
%POLL-ANSWER-RESULT-BAR%
</li>
[/OTHER_ANSWER_CONTAINER]
</ul>
</div>
[CUSTOM_FIELD_CONTAINER]
<li>%POLL-CUSTOM-FIELD-LABEL% %POLL-CUSTOM-FIELD-TEXT-INPUT%</li>
[/CUSTOM_FIELD_CONTAINER]
[CAPTCHA_CONTAINER]
<div id="yop-poll-captcha-%POLL-ID%">
<div class="yop-poll-captcha-image-div" id="yop-poll-captcha-image-div-%POLL-ID%">
%CAPTCHA-IMAGE%
<div class="yop-poll-captcha-helpers-div" id="yop-poll-captcha-helpers-div-%POLL-ID%">%RELOAD-CAPTCHA-IMAGE% </div>
<div class="yop_poll_clear"></div>
</div>
%CAPTCHA-LABEL%
<div class="yop-poll-captcha-input-div" id="yop-poll-captcha-input-div-%POLL-ID%">%CAPTCHA-INPUT%</div>
</div>
[/CAPTCHA_CONTAINER]
<div id="yop-poll-vote-%POLL-ID%" class="yop-poll-footer">
<div class="poll-vote-button">%POLL-VOTE-BUTTON%</div>
<div>%POLL-TOTAL-ANSWERS%</div>
<div>%POLL-TOTAL-VOTES%</div>
</div>
<div class="gb-storage" gb-poll-id="%POLL-ID%"></div>
<script type="text/javascript">
// Load check from Dean Edwards/Matthias Miller/John Resig
function init() {
if (arguments.callee.done) return;
arguments.callee.done = true;
if (_timer) clearInterval(_timer);
jQuery(document).ready(function() {
// remove vote button
jQuery('.poll-vote-button').html('');
// add Buttons
jQuery('.gb-ac').each(function(index,domEle){
var answer_id;
var label;
var content;
answer_id = jQuery(this).find('input:first').val();
label = jQuery(this).find('label:first').html();
content = '<button class="gb-btn" value="' + answer_id + '" type="button">' + label + '</button>';
//jQuery(this).append(content);
jQuery(this).html(content);
//add click handler
jQuery(this).find('button:first').click(function(){
answer_id = jQuery(this).val();
poll_id = jQuery('.gb-storage:first').attr('gb-poll-id');
hidden_field = '<input id="yop-poll-answer-' +answer_id + '" type="hidden" name="yop_poll_answer" value="' + answer_id + '">'
jQuery(this).after(hidden_field);
yop_poll_do_vote(poll_id);
return false;
});
});
});
};
/* for Mozilla/Opera9 */
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", init, false);
}
/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
if (this.readyState == "complete") {
init(); // call the onload handler
}
};
/*@end @*/
/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
var _timer = setInterval(function() {
if (/loaded|complete/.test(document.readyState)) {
init(); // call the onload handler
}
}, 10);
}
/* for other browsers */
window.onload = init;
</script>
Nach Umfrage
<div id="yop-poll-name-%POLL-ID%" class="yop-poll-name">%POLL-NAME%</div>
<div id="yop-poll-question-%POLL-ID%" class="yop-poll-question">%POLL-QUESTION%</div>
<div id="yop-poll-answers-%POLL-ID%" class="yop-poll-answers">
<div id="gb_cust">VORLÄUFIGES ERGEBNIS DER ABSTIMMUNG</div>
<ul>
[ANSWER_RESULT_CONTAINER]
<li class="yop-poll-li-result-%POLL-ID%">
<label class="pds-feedback-label-%POLL-ID%">
<div class="pds-answer-text-%POLL-ID%">%POLL-ANSWER-LABEL%</div>
<div class="pds-feedback-result-%POLL-ID%">
</div>
</label>
<div>
%POLL-ANSWER-RESULT-BAR%
</div><div class="pds-feedback-per-%POLL-ID%"> %POLL-ANSWER-RESULT-LABEL%</div>
</li>
[/ANSWER_RESULT_CONTAINER]
</ul>
</div>
<div id="yop-poll-vote-%POLL-ID%" class="yop-poll-footer">
<div>%POLL-TOTAL-ANSWERS%</div>
<div>%POLL-TOTAL-VOTES%</div>
<!--<div id="yop-poll-back-%POLL-ID%">%POLL-BACK-TO-VOTE-LINK%</div>-->
</div>
Before Start Date
This poll is about to <br> start at %POLL-START-DATE%<br> and finish at %POLL-END-DATE%<br>
After End Date
This poll is closed! Poll activity: <br> start_date %POLL-START-DATE%<br> end_date %POLL-END-DATE%<br> Poll Results: <div id="yop-poll-question-%POLL-ID%" class="yop-poll-question">%POLL-QUESTION%</div> <div id="yop-poll-answers-1" class="yop-poll-answers"> <ul> [ANSWER_RESULT_CONTAINER] <li class="yop-poll-li-result-%POLL-ID%"> <label class="pds-feedback-label"> <span class="pds-answer-text">%POLL-ANSWER-LABEL%</span> <span class="pds-feedback-result"> <span class="pds-feedback-per"> %POLL-ANSWER-RESULT-LABEL%</span> </span> </label> <span class="pds-clear" style="display: block;clear: both;height:1px;line-height:1px;"> </span> %POLL-ANSWER-RESULT-BAR% </li> [/ANSWER_RESULT_CONTAINER] </ul> </div> %POLL-VOTE-BUTTON%
Change Log
8.8.13
Hallo Mascha und Clemens, folgende Funktionalität ist jetzt implementiert: - Zu einem Hauptbeitrag (Sozusagen 1.Ebene - entspricht dem Post in Wordpress) kann ein normaler Benutzer eine Frage stellen. - Zu den Fragen (das wäre dann die 2. Ebene) kann jeder Benutzer beliebig viele Beiträge machen - Benutzer ab Level 7 (Redakteure und Admins) können beliebig viele Fragen stellen. - Labels sind jetzt: "Hinterlasse einen Beitrag" und "Beitrag abschicken" Grüße, Stephan
11
10/2014 - Kommentare in Spalten sortieren, je nach Antwort - Overflow für Kommentarausgabe, damit die Felder nicht zu groß werden