story.module 2.31 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
12
13
14
15
16
17
18
function story_node($field) {
  $info = array("name" => "story");

  return $info[$field];
}

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

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

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

Dries's avatar
   
Dries committed
31
32
33
  //<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
34
 <?php
Dries's avatar
   
Dries committed
35
36
}

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

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

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

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

  }
  else {

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

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

Dries's avatar
   
Dries committed
58
59
60
  }

  $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
61

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

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

Dries's avatar
   
Dries committed
74
?>