brusau
|
hab mir das mal angeschaut.
Die Zeit wurde ignoriert.
Habs mal versucht zu machen.
Ist getestet und ich sehe eigentlich keinen Fehler.
Bei meiner Lösung kann nicht mehr gevotet werden wenn das Thema geschlossen ist, und auch nicht mehr wenn die
Zeit abgelaufen ist.
Die Umfrage alleine geht zu wenn man -1 bei der Laufzeit einfügt.
Meine Lösung:
topic.php
suche
PHP:
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
|
$forum = $_db->fetch_array( $_db->query("SELECT COUNT(p.id) AS posts,
f.id,
f.bbcodes,
f.html,
f.smilies,
f.polls,
f.show_forum,
f.is_board,
f.style_id,
f.anz_post,
t.name AS topic_name,
t.prefix AS topic_prefix,
t.views,
t.show_topic,
t.closed,
t.top,
poll.id AS poll_id,
poll.name AS poll_name,
abo.topic_id AS abo
FROM $TB_FORUM AS f,
$TB_TOPIC AS t LEFT JOIN $TB_POLL AS poll ON t.id = poll.topic_id
LEFT JOIN $TB_TOPIC_ABO AS abo ON t.id = abo.topic_id AND abo.user_id = '$_user[id]',
$TB_POST AS p
WHERE t.id = $_GET[id]
AND p.topic_id = t.id
AND f.id = t.forum_id
GROUP BY f.id"));
|
ersetze mit:
PHP:
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
|
$forum = $_db->fetch_array( $_db->query("SELECT COUNT(p.id) AS posts,
f.id,
f.bbcodes,
f.html,
f.smilies,
f.polls,
f.show_forum,
f.is_board,
f.style_id,
f.anz_post,
t.name AS topic_name,
t.prefix AS topic_prefix,
t.views,
t.show_topic,
t.closed,
t.top,
poll.id AS poll_id,
poll.name AS poll_name,
poll.days AS poll_days,
abo.topic_id AS abo
FROM $TB_FORUM AS f,
$TB_TOPIC AS t LEFT JOIN $TB_POLL AS poll ON t.id = poll.topic_id
LEFT JOIN $TB_TOPIC_ABO AS abo ON t.id = abo.topic_id AND abo.user_id = '$_user[id]',
$TB_POST AS p
WHERE t.id = $_GET[id]
AND p.topic_id = t.id
AND f.id = t.forum_id
GROUP BY f.id"));
|
in poll.inc.php:
suche:
PHP:
1:
2:
3:
4:
5:
6:
|
# kann Benutzer voten ?
if (is_array($users)) {
$can_vote = (in_array($_user["id"], $users) || !user_login()) ? false : true;
} else {
$can_vote = (!user_login()) ? false : true;
}
|
ersetze mit:
PHP:
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
|
# kann Benutzer voten ?
$can=0;
if($forum["poll_days"]>0){
$can=$forum["poll_days"]-time(); echo $forum["closed"];
}
if (is_array($users)) {
$can_vote = ($can<0 || $forum["closed"]==1 || in_array($_user["id"], $users) || !user_login()) ? false : true;
} else {
$can_vote = ($can<0 || $forum["closed"]==1|| !user_login()) ? false : true;
}
|
Für die Darstellung beim Bearbeiten der Polls:
Muss nicht sein aber ich finde es nett:
Dann wird bei abgelaufenen die "negative" Restlaufzeit angezeigt
poll.php
suche:
PHP:
1:
2:
3:
|
if ($forum["poll_days"] > 0) {
$_POST["days"] = @date("d", ($forum["poll_days"]) - time());
}
|
ersetze mit:
PHP:
1:
2:
3:
4:
5:
6:
|
if ($forum["poll_days"] > 0) {
$_POST["days"] = @date("d", ($forum["poll_days"]) - time());
if(time()>$forum["poll_days"]){
$_POST["days"] = "- ".@date("d", (time()-$forum["poll_days"]));
}
}
|
|