You are here

story.module in Drupal 4

Enables users to submit stories, articles or similar content.

File

modules/story.module
View source
<?php

/**
 * @file
 * Enables users to submit stories, articles or similar content.
 */

/**
 * Implementation of hook_help().
 */
function story_help($section) {
  switch ($section) {
    case 'admin/help#story':
      $output = '<p>' . t('The story module is used to create a content post type called <em>stories.</em> Stories are articles in their simplest form: they have a title, a teaser and a body. Stories are typically used to post news articles or as a group blog. ') . '</p>';
      $output .= '<p>' . t('The story administration interface allows for complex configuration. It provides a submission form, workflow, default view permission, default edit permission, permissions for permission, and attachments.  Trackbacks can also be enabled.') . '</p>';
      $output .= t('<p>You can</p>
<ul>
<li>post a story at <a href="%node-add-story">create content &gt;&gt; story</a>.</li>
<li>configure story at <a href="%admin-settings-content-types-story">administer &gt;&gt; settings &gt;&gt; content types &gt;&gt; configure story</a>.</li>
</ul>
', array(
        '%node-add-story' => url('node/add/story'),
        '%admin-settings-content-types-story' => url('admin/settings/content-types/story'),
      ));
      $output .= '<p>' . t('For more information please read the configuration and customization handbook <a href="%story">Story page</a>.', array(
        '%story' => 'http://drupal.org/handbook/modules/story/',
      )) . '</p>';
      return $output;
    case 'admin/modules#description':
      return t('Allows users to submit stories, articles or similar content.');
    case 'node/add#story':
      return t('Stories are articles in their simplest form: they have a title, a teaser and a body, but can be extended by other modules. The teaser is part of the body too. Stories may be used as a personal blog or for news articles.');
  }
}

/**
 * Implementation of hook_node_info().
 */
function story_node_info() {
  return array(
    'story' => array(
      'name' => t('story'),
      'base' => 'story',
    ),
  );
}

/**
 * Implementation of hook_perm().
 */
function story_perm() {
  return array(
    'create stories',
    'edit own stories',
  );
}

/**
 * Implementation of hook_access().
 */
function story_access($op, $node) {
  global $user;
  if ($op == 'create') {
    return user_access('create stories');
  }
  if ($op == 'update' || $op == 'delete') {
    if (user_access('edit own stories') && $user->uid == $node->uid) {
      return TRUE;
    }
  }
}

/**
 * Implementation of hook_menu().
 */
function story_menu($may_cache) {
  $items = array();
  if ($may_cache) {
    $items[] = array(
      'path' => 'node/add/story',
      'title' => t('story'),
      'access' => user_access('create stories'),
    );
  }
  return $items;
}

/**
 * Implementation of hook_form().
 */
function story_form(&$node) {
  $form['title'] = array(
    '#type' => 'textfield',
    '#title' => t('Title'),
    '#required' => TRUE,
    '#default_value' => $node->title,
    '#weight' => -5,
  );
  $form['body_filter']['body'] = array(
    '#type' => 'textarea',
    '#title' => t('Body'),
    '#default_value' => $node->body,
    '#rows' => 20,
    '#required' => TRUE,
  );
  $form['body_filter']['format'] = filter_form($node->format);
  return $form;
}

Functions

Namesort descending Description
story_access Implementation of hook_access().
story_form Implementation of hook_form().
story_help Implementation of hook_help().
story_menu Implementation of hook_menu().
story_node_info Implementation of hook_node_info().
story_perm Implementation of hook_perm().