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

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.");
Dries's avatar
   
Dries committed
6
 $output .= form_select(t("Minimum number of words"), "minimum_story_size", variable_get("minimum_story_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 posts."));
Dries's avatar
   
Dries committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

 return $output;
}

function story_node($field) {
  $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.");

  return $info[$field];
}

function story_access($op, $node) {
  if ($op == "view") {
    return $node->status;
  }

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

function story_save($op, $node) {

  if ($op == "approve") {
    return array("status" => 1, "promote" => 1);
  }

  if ($op == "create") {
Dries's avatar
   
Dries committed
35
    return array("body" => filter($node->body), "moderate" => 1, "teaser" => filter($node->teaser));
Dries's avatar
   
Dries committed
36
37
38
39
40
  }

  if ($op == "decline") {
    return array("status" => 0, "promote" => 0);
  }
Dries's avatar
   
Dries committed
41
42
43
44

  if ($op == "update") {
    return array();
  }
Dries's avatar
   
Dries committed
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
}

function story_help() {
 ?>
  // TODO: update documentation, outdated

  //<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>
 <?php
}

function story_form(&$node, &$help, &$error) {

  if (isset($node->body)) {

    /*
    ** Validate the size of the story:
    */

    if (count(explode(" ", $node->body)) < variable_get("minimum_story_size", 0)) {
      $error["body"] = "<div style=\"color: red;\">". t("The body of your story is too short.") ."</div>";
    }

  }
  else {

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

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

  }

  if ($node->teaser) {
    $output .= form_textarea(t("Teaser"), "teaser", $node->teaser, 60, 5, $error["teaser"]);
  }

Dries's avatar
   
Dries committed
84
  $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
85
86
87
88
89
90

  return $output;
}


?>