2001-05-19 17:41:41 +00:00
<?php
class Poll {
function Poll($poll) {
$this = new Node($poll);
$this->runtime = $poll[runtime];
$this->active = $poll[active];
$this->voters = $poll[voters];
2001-05-20 12:13:25 +00:00
$this->choice = $poll[choice];
$this->chvotes = $poll[chvotes];
2001-05-20 17:36:55 +00:00
$this->chid = $poll[chid];
2001-05-19 17:41:41 +00:00
}
}
function poll_cron() {
2001-05-22 21:44:48 +00:00
$result = _node_get(array("type" => "poll"));
2001-05-19 17:41:41 +00:00
while ($poll = db_fetch_array($result)) {
2001-05-22 21:44:48 +00:00
if (($poll[active]) && ($poll[runtime])) {
2001-05-19 17:41:41 +00:00
if (($poll[timestamp] + $poll[runtime]) < time()) {
$poll[active] = 0;
2001-05-20 16:47:50 +00:00
node_save($poll, array(active));
2001-05-19 17:41:41 +00:00
}
}
2001-05-22 21:44:48 +00:00
}
2001-05-19 17:41:41 +00:00
}
2001-06-06 19:35:32 +00:00
function poll_delete($node) {
if ($node->nid)
{
db_query("DELETE FROM poll_choices WHERE nid='" . $node->nid . "'");
This a rather large commit that needs a lot of fine-tuning. If you
update, you'll break your site as you need switching from structure
to index.module: so this can be considered an intermediate commit.
If you upgrade, and you are welcome to, just create a collection
called "section" (for now) and assign your nodes some attributes
in the described format.
Feedback and bugreports are welcomed. Questions will be answered.
CHANGES:
- comment system:
+ when replying to a node (rather then to a comment), that
node is displayed above the reply form.
+ when replying to a comment (rather then to a node), that
comment is displayd above the reply form.
- removed structure.inc, removed structure.module.
- node.inc:
+ added 2 new node functions called 'node_attribute_edit()' and
'node_attribute_save()' used to 'hook in' any indexing system
including your home-brewed stuff if you'd want to. Currently,
index.module is the facto default index system.
See story.module for usage.
- book.module, story.module, poll.module, page.module, forum.module:
+ added preview functionality to administration section (via node
module).
+ removed all references to structure.inc (category, topic).
- moderate.module:
+ removed all references to structure.inc (category, topic).
- book.module, story.module, page.module, forum.module:
+ increased the sizes of some textareas.
- submit.php:
+ removed all references to structure.inc (category, topic).
- marvin.theme:
+ removed dead code: function story() was depricated.
- unconed.theme:
+ removed hardcoded references to drop.org.
- marvin.theme, unconed.theme, jeroen.theme, yaroon.theme, example.theme:
+ removed all references to structure.inc (category, topic).
TODO:
- file.module, trip_link.module:
+ update preview functionality:
see story.module for example.
+ remove references to 'cid' and 'tid', use 'attribute' instead:
see story.module for example.
- extend and build upon index.module as well as making it configurable
2001-06-10 15:01:20 +00:00
}
2001-06-06 19:35:32 +00:00
}
2001-05-19 17:41:41 +00:00
function poll_get_choices_array($poll) {
2001-05-23 12:19:35 +00:00
if (!is_array($poll[choice])) {
2001-05-20 12:13:25 +00:00
$result = db_query("SELECT * FROM poll_choices WHERE nid='" . $poll[nid] . "'");
if ($result) {
while ($choices = db_fetch_array($result)) {
$m = max($m, $choices[chvotes]);
$t += $choices[chvotes];
$poll[choice][$choices[chorder]] = $choices[chtext];
$poll[chvotes][$choices[chorder]] = $choices[chvotes];
$poll[chid][$choices[chorder]] = $choices[chid];
}
if ($poll[choice]) ksort($poll[choice]);
2001-05-19 17:41:41 +00:00
}
}
2001-05-20 12:13:25 +00:00
$poll[maxvotes] = max(1, $m);
$poll[totalvotes] = $t;
2001-05-19 17:41:41 +00:00
return $poll;
}
function poll_get_choices_obj($poll) {
2001-05-23 12:19:35 +00:00
if (!is_array($poll->choice)) {
2001-05-20 12:13:25 +00:00
$result = db_query("SELECT * FROM poll_choices WHERE nid='" . $poll->nid . "'");
if ($result) {
while ($choices = db_fetch_array($result)) {
$m = max($m,$choices[chvotes]);
$t += $choices[chvotes];
$poll->choice[$choices[chorder]] = $choices[chtext];
$poll->chvotes[$choices[chorder]] = $choices[chvotes];
$poll->chid[$choices[chorder]] = $choices[chid];
}
if ($poll->choice) ksort($poll->choice);
2001-05-19 17:41:41 +00:00
}
}
2001-05-20 12:13:25 +00:00
$poll->maxvotes = max(1, $m);
$poll->totalvotes = $t;
2001-05-19 17:41:41 +00:00
return $poll;
}
function poll_status() {
return array(dumped, queued, posted);
}
function poll_search($keys) {
2001-09-16 14:05:10 +00:00
global $PHP_SELF, $status;
2001-05-19 17:41:41 +00:00
$result = db_query("SELECT n.*, p.* FROM poll p LEFT JOIN node n ON n.nid = p.nid AND n.lid = p.lid WHERE n.status = '$status[posted]' AND (n.title LIKE '%$keys%') LIMIT 20");
while ($poll = db_fetch_object($result)) {
2001-09-27 20:51:26 +00:00
$find[$i++] = array("title" => check_output($poll->title), "link" => (strstr($PHP_SELF, "admin.php") ? "admin.php?mod=poll&op=edit&id=$poll->nid" : "node.php?id=$poll->nid"), "user" => $poll->name, "date" => $poll->timestamp);
2001-05-19 17:41:41 +00:00
}
return $find;
}
function poll_help() {
?>
2001-06-06 19:35:32 +00:00
<p>Poll.module allows you to run simple multiple choice polls on your site. After creating the necessary categories, you can add a poll through this administration interface.</p>
<p>The poll.module also has a block to show the latest poll. If you combine it with a poll category that doesn't promote to the mainpage, you'll get a side-block only poll system.</p>
This a rather large commit that needs a lot of fine-tuning. If you
update, you'll break your site as you need switching from structure
to index.module: so this can be considered an intermediate commit.
If you upgrade, and you are welcome to, just create a collection
called "section" (for now) and assign your nodes some attributes
in the described format.
Feedback and bugreports are welcomed. Questions will be answered.
CHANGES:
- comment system:
+ when replying to a node (rather then to a comment), that
node is displayed above the reply form.
+ when replying to a comment (rather then to a node), that
comment is displayd above the reply form.
- removed structure.inc, removed structure.module.
- node.inc:
+ added 2 new node functions called 'node_attribute_edit()' and
'node_attribute_save()' used to 'hook in' any indexing system
including your home-brewed stuff if you'd want to. Currently,
index.module is the facto default index system.
See story.module for usage.
- book.module, story.module, poll.module, page.module, forum.module:
+ added preview functionality to administration section (via node
module).
+ removed all references to structure.inc (category, topic).
- moderate.module:
+ removed all references to structure.inc (category, topic).
- book.module, story.module, page.module, forum.module:
+ increased the sizes of some textareas.
- submit.php:
+ removed all references to structure.inc (category, topic).
- marvin.theme:
+ removed dead code: function story() was depricated.
- unconed.theme:
+ removed hardcoded references to drop.org.
- marvin.theme, unconed.theme, jeroen.theme, yaroon.theme, example.theme:
+ removed all references to structure.inc (category, topic).
TODO:
- file.module, trip_link.module:
+ update preview functionality:
see story.module for example.
+ remove references to 'cid' and 'tid', use 'attribute' instead:
see story.module for example.
- extend and build upon index.module as well as making it configurable
2001-06-10 15:01:20 +00:00
<p>If you want to set a limit on the duration of a poll, use the <i>Poll Duration</i> setting. After the specified interval, the poll will automatically be closed, preventing anymore voting.</p>
2001-05-19 17:41:41 +00:00
<?php
}
2001-06-09 19:31:34 +00:00
function poll_graph($val) {
global $theme;
$clrfill = $theme->foreground ? $theme->foreground : "#000000";
$clrempty = $theme->background ? $theme->background : "#ffffff";
2001-05-19 17:41:41 +00:00
$p = round($val * 100);
2001-06-08 20:11:11 +00:00
return "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tr>" . ($p ? "<td width=\"" . $p . "%\" style=\"background-color: $clrfill;\"><span style=\"font-size: 4pt;\"> </span></td>" : "") . ($p < 100 ? "<td style=\"background-color: $clrempty;\" width=\"" . (100 - $p) . "%\"><span style=\"font-size: 4pt;\"> </span></td>":"") . "</tr></table>";
2001-05-19 17:41:41 +00:00
}
function poll_view($node, $main = 0, $block = 0) {
2001-09-28 16:20:55 +00:00
global $theme, $op, $user, $chid;
2001-07-07 16:37:27 +00:00
2001-07-07 15:19:29 +00:00
$pollop = $op;
2001-05-19 17:41:41 +00:00
2001-08-11 14:54:39 +00:00
if (($node->active) && (!field_get($node->voters, $user->name))) $voting = 1;
2001-07-07 15:19:29 +00:00
if ((!$voting) && ($pollop != "View")) $pollop = "View";
2001-05-20 17:36:55 +00:00
2001-07-07 15:19:29 +00:00
switch ($pollop) {
2001-05-19 17:41:41 +00:00
case "Vote":
2001-08-11 14:54:39 +00:00
if (($node->active) && (!field_get($node->voters, $user->name))) {
2001-05-19 17:41:41 +00:00
$result = db_query("UPDATE poll_choices SET chvotes=chvotes+1 WHERE nid='" . $node->nid . "' && chid='" . check_input($chid) . "'");
if (($result) && ($user)) {
2001-05-20 16:47:50 +00:00
$new = node_get_array(array("nid" => $node->nid));
2001-08-11 14:54:39 +00:00
$new[voters] = field_set($node->voters, $user->name, 1);
2001-05-20 12:13:25 +00:00
node_save($new, array(voters));
2001-05-20 16:47:50 +00:00
$node = node_get_object(array("nid" => $node->nid));
2001-05-19 17:41:41 +00:00
}
}
2001-05-20 17:36:55 +00:00
2001-05-19 17:41:41 +00:00
case "View":
$node = poll_get_choices_obj($node);
2001-05-20 17:36:55 +00:00
2001-05-19 17:41:41 +00:00
$title = "<b>" . check_output($node->title) . "</b>";
2001-05-20 12:13:25 +00:00
$footer = "<small>(" . format_plural($node->totalvotes ? $node->totalvotes : 0, "vote", "votes") . ")</small>";
2001-05-20 17:36:55 +00:00
2001-05-20 12:13:25 +00:00
$node->totalvotes = max(1, $node->totalvotes);
2001-05-20 17:36:55 +00:00
2001-05-19 17:41:41 +00:00
foreach ($node->choice as $key => $value) {
2001-05-20 12:13:25 +00:00
if ($value) {
2001-06-01 23:23:53 +00:00
if ($block) {
2001-06-08 20:11:11 +00:00
$output .= (!$block ? "<br>" : "") . check_output($value) . "<br><table width=\"90%\" align=\"center\" cellspacing=\"1\" cellpadding=\"0\"><tr><td width=\"70%\" valign=\"middle\" align=\"left\">" . poll_graph($node->chvotes[$key] / $node->maxvotes, $theme->pollfill, $theme->pollempty) . "</td><td align=\"right\">" . round(($node->chvotes[$key] / $node->totalvotes) * 100) . "%</td></tr></table>";
2001-06-01 23:23:53 +00:00
} else {
2001-06-08 20:11:11 +00:00
$output .= "<table cellspacing=\"1\" cellpadding=\"0\" width=\"100%\"><tr><td width=\"20%\" valign=\"middle\" align=\"left\">" . check_output($value) . "</td><td width=\"70%\">" . poll_graph($node->chvotes[$key] / $node->maxvotes, $theme->pollfill, $theme->pollempty) . "</td><td width=\"10%\" align=\"right\">" . round(($node->chvotes[$key] / $node->totalvotes) * 100) . "%</td></tr></table>";
2001-05-20 12:13:25 +00:00
}
2001-05-19 17:41:41 +00:00
}
}
$output .= "<div align=\"center\">" . $footer . "</div>";
break;
2001-05-20 17:36:55 +00:00
default:
2001-05-19 17:41:41 +00:00
$node = poll_get_choices_obj($node);
$title = "<b>" . check_output($node->title) . "</b>";
2001-05-20 12:13:25 +00:00
$footer = "<small>(" . format_plural($node->totalvotes ? $node->totalvotes : 0, "vote", "votes") . ")</small>";
2001-05-20 17:36:55 +00:00
2001-05-20 12:13:25 +00:00
$node->totalvotes = max(1, $node->totalvotes);
2001-05-19 17:41:41 +00:00
2001-05-20 17:36:55 +00:00
$output .= "<table align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td align=\"left\">";
2001-05-19 17:41:41 +00:00
foreach ($node->choice as $key => $value) {
2001-05-20 12:13:25 +00:00
if ($value) {
2001-05-24 11:35:22 +00:00
$output .= "<input type=\"radio\" name=\"chid\" value=\"" . $node->chid[$key] . "\"> " . check_output($value) . "<br>";
2001-05-20 12:13:25 +00:00
}
2001-05-19 17:41:41 +00:00
}
2001-06-01 23:23:53 +00:00
if ($block) {
$output .= "</td></tr></table><br><div align=\"center\">" . form_submit("Vote") . "<br>" . $footer . "</div>";
} else {
2001-06-02 22:12:35 +00:00
$output .= "</td><td> </td><td align=\"center\"><br><div align=\"center\">" . form_submit("Vote") . "<br>" . $footer . "</div></td></tr></table>";
2001-06-01 23:23:53 +00:00
}
2001-09-28 16:20:55 +00:00
$output = form($output);
2001-05-19 17:41:41 +00:00
}
2001-05-24 10:05:18 +00:00
if (!$block) {
$node->body = $output;
2001-06-06 19:39:17 +00:00
$theme->node($node, $main);
2001-05-24 10:05:18 +00:00
}
2001-05-20 17:36:55 +00:00
return array("title" => $title, "content" => $output);
2001-05-19 17:41:41 +00:00
}
function poll_form($edit = array(), $nocheck = 0) {
2001-09-28 16:20:55 +00:00
global $user;
2001-05-19 17:41:41 +00:00
2001-07-11 14:27:03 +00:00
$duration = array(0 => t("Unlimited"), 86400 => format_interval(86400), 172800 => format_interval(172800), 345600 => format_interval(345600), 604800 => format_interval(604800), 1209600 => format_interval(1209600), 2419200 => format_interval(2419200), 4838400 => format_interval(4838400), 9676800 => format_interval(9676800), 31536000 => format_interval(31536000));
2001-05-19 17:41:41 +00:00
$active = array(0 => "Closed", 1 => "Active");
This a rather large commit that needs a lot of fine-tuning. If you
update, you'll break your site as you need switching from structure
to index.module: so this can be considered an intermediate commit.
If you upgrade, and you are welcome to, just create a collection
called "section" (for now) and assign your nodes some attributes
in the described format.
Feedback and bugreports are welcomed. Questions will be answered.
CHANGES:
- comment system:
+ when replying to a node (rather then to a comment), that
node is displayed above the reply form.
+ when replying to a comment (rather then to a node), that
comment is displayd above the reply form.
- removed structure.inc, removed structure.module.
- node.inc:
+ added 2 new node functions called 'node_attribute_edit()' and
'node_attribute_save()' used to 'hook in' any indexing system
including your home-brewed stuff if you'd want to. Currently,
index.module is the facto default index system.
See story.module for usage.
- book.module, story.module, poll.module, page.module, forum.module:
+ added preview functionality to administration section (via node
module).
+ removed all references to structure.inc (category, topic).
- moderate.module:
+ removed all references to structure.inc (category, topic).
- book.module, story.module, page.module, forum.module:
+ increased the sizes of some textareas.
- submit.php:
+ removed all references to structure.inc (category, topic).
- marvin.theme:
+ removed dead code: function story() was depricated.
- unconed.theme:
+ removed hardcoded references to drop.org.
- marvin.theme, unconed.theme, jeroen.theme, yaroon.theme, example.theme:
+ removed all references to structure.inc (category, topic).
TODO:
- file.module, trip_link.module:
+ update preview functionality:
see story.module for example.
+ remove references to 'cid' and 'tid', use 'attribute' instead:
see story.module for example.
- extend and build upon index.module as well as making it configurable
2001-06-10 15:01:20 +00:00
2001-06-29 22:08:57 +00:00
$admin = ($edit[nid] && user_access("administer nodes")) ? 1 : 0;
This a rather large commit that needs a lot of fine-tuning. If you
update, you'll break your site as you need switching from structure
to index.module: so this can be considered an intermediate commit.
If you upgrade, and you are welcome to, just create a collection
called "section" (for now) and assign your nodes some attributes
in the described format.
Feedback and bugreports are welcomed. Questions will be answered.
CHANGES:
- comment system:
+ when replying to a node (rather then to a comment), that
node is displayed above the reply form.
+ when replying to a comment (rather then to a node), that
comment is displayd above the reply form.
- removed structure.inc, removed structure.module.
- node.inc:
+ added 2 new node functions called 'node_attribute_edit()' and
'node_attribute_save()' used to 'hook in' any indexing system
including your home-brewed stuff if you'd want to. Currently,
index.module is the facto default index system.
See story.module for usage.
- book.module, story.module, poll.module, page.module, forum.module:
+ added preview functionality to administration section (via node
module).
+ removed all references to structure.inc (category, topic).
- moderate.module:
+ removed all references to structure.inc (category, topic).
- book.module, story.module, page.module, forum.module:
+ increased the sizes of some textareas.
- submit.php:
+ removed all references to structure.inc (category, topic).
- marvin.theme:
+ removed dead code: function story() was depricated.
- unconed.theme:
+ removed hardcoded references to drop.org.
- marvin.theme, unconed.theme, jeroen.theme, yaroon.theme, example.theme:
+ removed all references to structure.inc (category, topic).
TODO:
- file.module, trip_link.module:
+ update preview functionality:
see story.module for example.
+ remove references to 'cid' and 'tid', use 'attribute' instead:
see story.module for example.
- extend and build upon index.module as well as making it configurable
2001-06-10 15:01:20 +00:00
2001-06-06 19:35:32 +00:00
if ($admin && !is_array($edit[choices])) $edit = poll_get_choices_array($edit);
2001-05-20 17:36:55 +00:00
/* Mini-form for number of choiceboxes */
2001-07-11 14:27:03 +00:00
$choices = $edit[choices] ? $edit[choices] : max(2, count($edit[choices]) ? count($edit[choices]) : 5);
2001-05-19 17:41:41 +00:00
for ($c = 2; $c <= 20; $c++) $opts[$c]=$c;
2001-06-06 19:35:32 +00:00
$form .= form_select(t("Number of choices"), "choices", $choices, $opts, t("This box only specifies the number of boxes in this form, it doesn't have to equal the actual amount of choices in the poll."));
$form .= form_submit(t("Preview")) . "<br><br><br>";
2001-05-19 17:41:41 +00:00
/* Main form */
2001-09-16 11:33:14 +00:00
$form .= form_item(t("Your name"), ($edit[name] ? $edit[name] : ($user->name ? $user->name : variable_get(anonymous, "Anonymous"))));
2001-08-11 14:54:39 +00:00
$form .= form_hidden("name", $edit[name]);
2001-05-19 17:41:41 +00:00
$form .= form_textfield(t("Question"), "title", $edit[title], 50, 127);
2001-05-20 17:36:55 +00:00
2001-05-19 17:41:41 +00:00
for ($a = 0; $a < $choices; $a++) {
2001-05-20 12:13:25 +00:00
$form .= form_textfield(t("Choice"). " " . ($a + 1), "choice][$a", $edit[choice][$a], 50, 127);
2001-05-20 17:36:55 +00:00
if ($admin) $form .= form_textfield(strtr(t("Votes for choice %n"), array("%n" => ($a + 1))), "chvotes][$a", $edit[chvotes][$a] ? $edit[chvotes][$a] : 0, 7, 7);
2001-05-19 17:41:41 +00:00
}
2001-05-20 17:36:55 +00:00
2001-05-19 17:41:41 +00:00
$form .= form_select(t("Poll duration"), "runtime", $edit[runtime] ? $edit[runtime] : t("1 week"), $duration, t("After this period, the poll will automatically be closed."));
2001-05-20 17:36:55 +00:00
if ($admin) $form .= form_select(t("Poll status"), "active", $edit[active], $active);
2001-06-15 07:30:44 +00:00
$form .= node_attributes_edit("poll", $edit);
2001-05-19 17:41:41 +00:00
// hidden fields:
if ($edit[nid] > 0) {
$form .= form_hidden("nid", $edit[nid]);
}
2001-05-20 17:36:55 +00:00
This a rather large commit that needs a lot of fine-tuning. If you
update, you'll break your site as you need switching from structure
to index.module: so this can be considered an intermediate commit.
If you upgrade, and you are welcome to, just create a collection
called "section" (for now) and assign your nodes some attributes
in the described format.
Feedback and bugreports are welcomed. Questions will be answered.
CHANGES:
- comment system:
+ when replying to a node (rather then to a comment), that
node is displayed above the reply form.
+ when replying to a comment (rather then to a node), that
comment is displayd above the reply form.
- removed structure.inc, removed structure.module.
- node.inc:
+ added 2 new node functions called 'node_attribute_edit()' and
'node_attribute_save()' used to 'hook in' any indexing system
including your home-brewed stuff if you'd want to. Currently,
index.module is the facto default index system.
See story.module for usage.
- book.module, story.module, poll.module, page.module, forum.module:
+ added preview functionality to administration section (via node
module).
+ removed all references to structure.inc (category, topic).
- moderate.module:
+ removed all references to structure.inc (category, topic).
- book.module, story.module, page.module, forum.module:
+ increased the sizes of some textareas.
- submit.php:
+ removed all references to structure.inc (category, topic).
- marvin.theme:
+ removed dead code: function story() was depricated.
- unconed.theme:
+ removed hardcoded references to drop.org.
- marvin.theme, unconed.theme, jeroen.theme, yaroon.theme, example.theme:
+ removed all references to structure.inc (category, topic).
TODO:
- file.module, trip_link.module:
+ update preview functionality:
see story.module for example.
+ remove references to 'cid' and 'tid', use 'attribute' instead:
see story.module for example.
- extend and build upon index.module as well as making it configurable
2001-06-10 15:01:20 +00:00
if ($nocheck) {
2001-05-19 17:41:41 +00:00
$form .= form_submit(t("Preview"));
}
else if (!$edit[title]) {
$form .= "<FONT COLOR=\"red\">". t("Warning: you did not supply a question.") ."</FONT><P>\n";
$form .= form_submit(t("Preview"));
}
else if ((!$edit[choice][0]) && (!$edit[choice][1])) {
$form .= "<FONT COLOR=\"red\">". t("Warning: you must supply at least 2 choices.") ."</FONT><P>\n";
$form .= form_submit(t("Preview"));
}
else {
$form .= form_submit(t("Preview"));
$form .= form_submit(t("Submit"));
}
2001-09-28 16:20:55 +00:00
return form($form);
2001-05-19 17:41:41 +00:00
}
function poll_save($edit) {
global $status, $user;
if (!$edit[nid]) {
2001-09-23 19:25:51 +00:00
$nid = node_save($edit, array(active => 1, attributes => node_attributes_save("poll", $edit), author => $user->uid, comment => variable_get("poll_comment", 0), moderate => variable_get("poll_moderate", ""), promote => variable_get("poll_promote", 0), runtime, score => 0, status => variable_get("poll_status", $status[queued]), timestamp => time(), title, type => "poll", votes => 0, voters => ""));
2001-05-19 17:41:41 +00:00
}
2001-06-29 22:08:57 +00:00
else if (user_access("administer nodes")) {
2001-06-19 09:28:11 +00:00
$nid = node_save($edit, array(active, attributes => node_attributes_save("poll", $edit), runtime, title, type => "poll"));
2001-05-20 17:36:55 +00:00
db_query("DELETE FROM poll_choices WHERE nid='" . $nid . "'");
2001-05-19 17:41:41 +00:00
}
if ($nid) {
foreach ($edit[choice] as $key => $value) {
if ($value) {
2001-06-07 15:42:28 +00:00
$v[] = "('" . $nid . "', '" . check_input($value) . "', '". check_input($edit[chvotes][$key]) ."', '". check_input($key) ."')";
2001-05-20 17:36:55 +00:00
}
2001-05-19 17:41:41 +00:00
}
2001-05-20 12:13:25 +00:00
db_query("INSERT INTO poll_choices (nid, chtext, chvotes, chorder) VALUES " . implode(",", $v));
2001-05-19 17:41:41 +00:00
}
}
2001-05-20 17:36:55 +00:00
function poll_block() {
2001-06-07 15:42:28 +00:00
global $status;
2001-05-22 21:40:54 +00:00
$result = _node_get(array("type" => "poll"));
2001-05-23 12:19:35 +00:00
while ($poll = db_fetch_object($result)) {
2001-06-07 15:42:28 +00:00
if (($poll->active) && ($poll->status == $status[posted])) {
2001-06-06 19:35:32 +00:00
$content = poll_view($poll, 0, 1);
2001-07-11 14:27:03 +00:00
$output = "<b>" . $content[title] . "</b><br>" . $content[content] . "<br><div align=\"center\">[ <a href=\"node.php?id=" . $poll->nid . "\">" . t("read more") . "</a> ]</div>";
2001-05-22 21:40:54 +00:00
break;
}
2001-05-19 17:41:41 +00:00
}
$blocks[0][subject] = "Latest poll";
$blocks[0][content] = $output ? $output : "No active polls.";
2001-06-23 11:09:40 +00:00
$blocks[0][info] = "Most recent poll";
2001-05-19 17:41:41 +00:00
$blocks[0][link] = "index.php";
2001-05-20 12:13:25 +00:00
return $blocks;
2001-05-19 17:41:41 +00:00
}
function poll_user() {
global $edit, $op, $theme, $user;
switch($op) {
case t("Refresh"):
2001-05-20 12:13:25 +00:00
$refresh = 1;
2001-05-19 17:41:41 +00:00
case t("Preview"):
2001-05-20 12:13:25 +00:00
$theme->box(t("Submit"), poll_form($edit, $refresh));
2001-05-19 17:41:41 +00:00
break;
case t("Submit"):
poll_save($edit);
$theme->box(t("Submit"), t("Thank you for your submission."));
break;
default:
$theme->box(t("Submit"), poll_form());
}
}
2001-06-08 20:11:11 +00:00
?>