story.module 2.58 KB
Newer Older
Dries's avatar
   
Dries committed
1
<?php
2
// $Id$
Dries's avatar
 
Dries committed
3

Dries's avatar
   
Dries committed
4
5
6
7
8
9
10
function story_conf_options() {
 $output .= form_textarea("Explanation or submission guidelines", "story_help", variable_get("story_help", ""), 55, 4, "This text will be displayed at the top of the story submission form.  Useful for helping or instructing your users.");
 $output .= form_select(t("Minimum number of words"), "minimum_story_size", variable_get("minimum_node_size", 0), array(0 => "0 words", 10 => "10 words", 25 => "25 words",  50 => "50 words", 75 => "75 words", 100 => "100 words", 125 => "125 words",  150 => "150 words", 175 => "175 words", 200 => "200 words"), t("The minimum number of words a personal story entry should consist of.  This can be useful to rule out submissions that do not meet the site's standards, such as short test post."));

 return $output;
}

Dries's avatar
   
Dries committed
11
function story_node($field) {
Dries's avatar
   
Dries committed
12
13
  $info["name"] = t("story");
  $info["description"] = t("A story is a post that is submitted to the attention of other users and is queued in the submission queue.  Users and moderators vote on the posts they like or dislike, promoting or demoting them.  When a post gets above a certain threshold it gets authomatically published to front page.");
Dries's avatar
   
Dries committed
14
15
16
17
18
19

  return $info[$field];
}

function story_access($op, $node) {
  if ($op == "view") {
Dries's avatar
   
Dries committed
20
    return $node->status;
Dries's avatar
   
Dries committed
21
22
23
24
25
26
27
  }

  if ($op == "create") {
    return 1;
  }
}

Dries's avatar
   
Dries committed
28
29
function story_help() {
 ?>
Dries's avatar
   
Dries committed
30
31
  // TODO: update documentation, outdated

Dries's avatar
   
Dries committed
32
33
34
  //<p>Queued stories: user-contributed stories are automatically whisked away to a submission queue for moderators (i.e. registered user) to frown at.  Moderators vote whether or not a story should be posted to the front page for discussion.</p>
  //<p>Posted stories: published stories accessible to all visitors.</p>
  //<p>Dumped stories: rejected stories that are no longer available to visitors.</p>
Dries's avatar
   
Dries committed
35
 <?php
Dries's avatar
   
Dries committed
36
37
}

Dries's avatar
   
Dries committed
38
39
40
function story_form($node, $help, $error) {

  if (isset($node->body)) {
Dries's avatar
   
Dries committed
41

Dries's avatar
   
Dries committed
42
43
44
45
46
    /*
    ** Validate the size of the story:
    */

    if (count(explode(" ", $node->body)) < variable_get("minimum_story_size", 0)) {
Dries's avatar
   
Dries committed
47
48
      $error["body"] = "<div style=\"color: red;\">". t("The body of your story is too short.") ."</div>";
    }
Dries's avatar
   
Dries committed
49
50
51
52
53
54
55
56
57
58

  }
  else {

    /*
    ** Carry out some explanation or submission guidelines:
    */

    $help = variable_get("story_help", "");

Dries's avatar
   
Dries committed
59
60
61
  }

  $output = form_textarea(t("Body"), "body", $node->body, 60, 15, $error["body"] ? $error["body"] : t("Allowed HTML tags") .": ". htmlspecialchars(variable_get("allowed_html", "")));
Dries's avatar
   
Dries committed
62

Dries's avatar
   
Dries committed
63
  return $output;
Dries's avatar
   
Dries committed
64
65
}

Dries's avatar
   
Dries committed
66
67
function story_save($node) {
  if ($node->nid) {
Dries's avatar
   
Dries committed
68
    return array();
Dries's avatar
   
Dries committed
69
  }
Dries's avatar
   
Dries committed
70
71
  else {
    return array("promote" => 1, "moderate" => 1);
Dries's avatar
   
Dries committed
72
  }
Dries's avatar
   
Dries committed
73
74
}

Dries's avatar
   
Dries committed
75
?>