Issue #1357138 by jstoller, xenophyle: Clean up API docs for Forum module
parent
4759212091
commit
0da848d52c
|
@ -2,7 +2,7 @@
|
|||
|
||||
/**
|
||||
* @file
|
||||
* Default theme implementation to display an appropriate icon for a forum post.
|
||||
* Displays an appropriate icon for a forum post.
|
||||
*
|
||||
* Available variables:
|
||||
* - $new_posts: Indicates whether or not the topic contains new posts.
|
||||
|
@ -12,6 +12,8 @@
|
|||
*
|
||||
* @see template_preprocess_forum_icon()
|
||||
* @see theme_forum_icon()
|
||||
*
|
||||
* @ingroup themeable
|
||||
*/
|
||||
?>
|
||||
<div class="topic-status-<?php print $icon_class ?>" title="<?php print $icon_title ?>">
|
||||
|
|
|
@ -2,34 +2,35 @@
|
|||
|
||||
/**
|
||||
* @file
|
||||
* Default theme implementation to display a list of forums and containers.
|
||||
* Displays a list of forums and containers.
|
||||
*
|
||||
* Available variables:
|
||||
* - $forums: An array of forums and containers to display. It is keyed to the
|
||||
* numeric id's of all child forums and containers.
|
||||
* - $forum_id: Forum id for the current forum. Parent to all items within
|
||||
* the $forums array.
|
||||
*
|
||||
* Each $forum in $forums contains:
|
||||
* - $forum->is_container: Is TRUE if the forum can contain other forums. Is
|
||||
* FALSE if the forum can contain only topics.
|
||||
* - $forum->depth: How deep the forum is in the current hierarchy.
|
||||
* - $forum->zebra: 'even' or 'odd' string used for row class.
|
||||
* - $forum->icon_class: 'default' or 'new' string used for forum icon class.
|
||||
* - $forum->icon_title: Text alternative for the forum icon.
|
||||
* - $forum->name: The name of the forum.
|
||||
* - $forum->link: The URL to link to this forum.
|
||||
* - $forum->description: The description of this forum.
|
||||
* - $forum->new_topics: True if the forum contains unread posts.
|
||||
* - $forum->new_url: A URL to the forum's unread posts.
|
||||
* - $forum->new_text: Text for the above URL which tells how many new posts.
|
||||
* - $forum->old_topics: A count of posts that have already been read.
|
||||
* - $forum->num_posts: The total number of posts in the forum.
|
||||
* - $forum->last_reply: Text representing the last time a forum was posted or
|
||||
* commented in.
|
||||
* numeric IDs of all child forums and containers. Each $forum in $forums
|
||||
* contains:
|
||||
* - $forum->is_container: TRUE if the forum can contain other forums. FALSE
|
||||
* if the forum can contain only topics.
|
||||
* - $forum->depth: How deep the forum is in the current hierarchy.
|
||||
* - $forum->zebra: 'even' or 'odd' string used for row class.
|
||||
* - $forum->icon_class: 'default' or 'new' string used for forum icon class.
|
||||
* - $forum->icon_title: Text alternative for the forum icon.
|
||||
* - $forum->name: The name of the forum.
|
||||
* - $forum->link: The URL to link to this forum.
|
||||
* - $forum->description: The description of this forum.
|
||||
* - $forum->new_topics: TRUE if the forum contains unread posts.
|
||||
* - $forum->new_url: A URL to the forum's unread posts.
|
||||
* - $forum->new_text: Text for the above URL, which tells how many new posts.
|
||||
* - $forum->old_topics: A count of posts that have already been read.
|
||||
* - $forum->num_posts: The total number of posts in the forum.
|
||||
* - $forum->last_reply: Text representing the last time a forum was posted or
|
||||
* commented in.
|
||||
* - $forum_id: Forum ID for the current forum. Parent to all items within the
|
||||
* $forums array.
|
||||
*
|
||||
* @see template_preprocess_forum_list()
|
||||
* @see theme_forum_list()
|
||||
*
|
||||
* @ingroup themeable
|
||||
*/
|
||||
?>
|
||||
<table id="forum-<?php print $forum_id; ?>">
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
/**
|
||||
* @file
|
||||
* Right-to-left styling for the Forum module.
|
||||
*/
|
||||
|
||||
#forum td.forum .icon {
|
||||
float: right;
|
||||
|
|
|
@ -2,18 +2,20 @@
|
|||
|
||||
/**
|
||||
* @file
|
||||
* Default theme implementation to format a simple string indicated when and
|
||||
* by whom a topic was submitted.
|
||||
* Formats a forum post submission string.
|
||||
*
|
||||
* The submission string indicates when and by whom a topic was submitted.
|
||||
*
|
||||
* Available variables:
|
||||
*
|
||||
* - $author: The author of the post.
|
||||
* - $time: How long ago the post was created.
|
||||
* - $topic: An object with the raw data of the post. Unsafe, be sure
|
||||
* to clean this data before printing.
|
||||
* - $topic: An object with the raw data of the post. Potentially unsafe. Be
|
||||
* sure to clean this data before printing.
|
||||
*
|
||||
* @see template_preprocess_forum_submitted()
|
||||
* @see theme_forum_submitted()
|
||||
*
|
||||
* @ingroup themeable
|
||||
*/
|
||||
?>
|
||||
<?php if ($time): ?>
|
||||
|
|
|
@ -2,35 +2,39 @@
|
|||
|
||||
/**
|
||||
* @file
|
||||
* Default theme implementation to display a list of forum topics.
|
||||
* Displays a list of forum topics.
|
||||
*
|
||||
* Available variables:
|
||||
* - $header: The table header. This is pre-generated with click-sorting
|
||||
* information. If you need to change this, see
|
||||
* template_preprocess_forum_topic_list().
|
||||
* - $pager: The pager to display beneath the table.
|
||||
* - $topics: An array of topics to be displayed.
|
||||
* - $topic_id: Numeric id for the current forum topic.
|
||||
*
|
||||
* Each $topic in $topics contains:
|
||||
* - $topic->icon: The icon to display.
|
||||
* - $topic->moved: A flag to indicate whether the topic has been moved to
|
||||
* another forum.
|
||||
* - $topic->title: The title of the topic. Safe to output.
|
||||
* - $topic->message: If the topic has been moved, this contains an
|
||||
* explanation and a link.
|
||||
* - $topic->zebra: 'even' or 'odd' string used for row class.
|
||||
* - $topic->comment_count: The number of replies on this topic.
|
||||
* - $topic->new_replies: A flag to indicate whether there are unread comments.
|
||||
* - $topic->new_url: If there are unread replies, this is a link to them.
|
||||
* - $topic->new_text: Text containing the translated, properly pluralized count.
|
||||
* - $topic->created: An outputtable string represented when the topic was posted.
|
||||
* - $topic->last_reply: An outputtable string representing when the topic was
|
||||
* last replied to.
|
||||
* - $topic->timestamp: The raw timestamp this topic was posted.
|
||||
* - $topics: An array of topics to be displayed. Each $topic in $topics
|
||||
* contains:
|
||||
* - $topic->icon: The icon to display.
|
||||
* - $topic->moved: A flag to indicate whether the topic has been moved to
|
||||
* another forum.
|
||||
* - $topic->title: The title of the topic. Safe to output.
|
||||
* - $topic->message: If the topic has been moved, this contains an
|
||||
* explanation and a link.
|
||||
* - $topic->zebra: 'even' or 'odd' string used for row class.
|
||||
* - $topic->comment_count: The number of replies on this topic.
|
||||
* - $topic->new_replies: A flag to indicate whether there are unread
|
||||
* comments.
|
||||
* - $topic->new_url: If there are unread replies, this is a link to them.
|
||||
* - $topic->new_text: Text containing the translated, properly pluralized
|
||||
* count.
|
||||
* - $topic->created: A string representing when the topic was posted. Safe
|
||||
* to output.
|
||||
* - $topic->last_reply: An outputtable string representing when the topic was
|
||||
* last replied to.
|
||||
* - $topic->timestamp: The raw timestamp this topic was posted.
|
||||
* - $topic_id: Numeric ID for the current forum topic.
|
||||
*
|
||||
* @see template_preprocess_forum_topic_list()
|
||||
* @see theme_forum_topic_list()
|
||||
*
|
||||
* @ingroup themeable
|
||||
*/
|
||||
?>
|
||||
<table id="forum-topic-<?php print $topic_id; ?>">
|
||||
|
|
|
@ -2,7 +2,22 @@
|
|||
|
||||
/**
|
||||
* @file
|
||||
* Administrative page callbacks for the forum module.
|
||||
* Administrative page callbacks for the Forum module.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Page callback: Returns a form for creating a new forum or container.
|
||||
*
|
||||
* @param $type
|
||||
* What is being added. Possible values are 'forum' and 'container'.
|
||||
* @param $edit
|
||||
* (optional) Associative array containing a forum term to be edited.
|
||||
* Defaults to an empty array.
|
||||
*
|
||||
* @return
|
||||
* A form for creating a new forum or container.
|
||||
*
|
||||
* @see forum_menu()
|
||||
*/
|
||||
function forum_form_main($type, $edit = array()) {
|
||||
$edit = (array) $edit;
|
||||
|
@ -20,11 +35,14 @@ function forum_form_main($type, $edit = array()) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns a form for adding a forum to the forum vocabulary
|
||||
* Form constructor for adding and editing a forum.
|
||||
*
|
||||
* @param $edit
|
||||
* (optional) Associative array containing a forum term to be added or edited.
|
||||
* Defaults to an empty array.
|
||||
*
|
||||
* @param $edit Associative array containing a forum term to be added or edited.
|
||||
* @ingroup forms
|
||||
* @see forum_form_submit()
|
||||
* @ingroup forms
|
||||
*/
|
||||
function forum_form_forum($form, &$form_state, $edit = array()) {
|
||||
$edit += array(
|
||||
|
@ -67,7 +85,7 @@ function forum_form_forum($form, &$form_state, $edit = array()) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Process forum form and container form submissions.
|
||||
* Form submission handler for forum_form_forum() and forum_form_container().
|
||||
*/
|
||||
function forum_form_submit($form, &$form_state) {
|
||||
if ($form['form_id']['#value'] == 'forum_form_container') {
|
||||
|
@ -106,8 +124,8 @@ function forum_form_submit($form, &$form_state) {
|
|||
/**
|
||||
* Returns HTML for a forum form.
|
||||
*
|
||||
* By default this does not alter the appearance of a form at all,
|
||||
* but is provided as a convenience for themers.
|
||||
* By default this does not alter the appearance of a form at all, but is
|
||||
* provided as a convenience for themers.
|
||||
*
|
||||
* @param $variables
|
||||
* An associative array containing:
|
||||
|
@ -120,11 +138,14 @@ function theme_forum_form($variables) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns a form for adding a container to the forum vocabulary
|
||||
* Form constructor for adding and editing forum containers.
|
||||
*
|
||||
* @param $edit
|
||||
* (optional) Associative array containing a container term to be added or edited.
|
||||
* Defaults to an empty array.
|
||||
*
|
||||
* @param $edit Associative array containing a container term to be added or edited.
|
||||
* @ingroup forms
|
||||
* @see forum_form_submit()
|
||||
* @ingroup forms
|
||||
*/
|
||||
function forum_form_container($form, &$form_state, $edit = array()) {
|
||||
$edit += array(
|
||||
|
@ -178,9 +199,13 @@ function forum_form_container($form, &$form_state, $edit = array()) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns a confirmation page for deleting a forum taxonomy term.
|
||||
* Form constructor for confirming deletion of a forum taxonomy term.
|
||||
*
|
||||
* @param $tid ID of the term to be deleted
|
||||
* @param $tid
|
||||
* ID of the term to be deleted.
|
||||
*
|
||||
* @see forum_confirm_delete_submit()
|
||||
* @ingroup forms
|
||||
*/
|
||||
function forum_confirm_delete($form, &$form_state, $tid) {
|
||||
$term = taxonomy_term_load($tid);
|
||||
|
@ -192,7 +217,7 @@ function forum_confirm_delete($form, &$form_state, $tid) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Implement forms api _submit call. Deletes a forum after confirmation.
|
||||
* Form submission handler for forum_confirm_delete().
|
||||
*/
|
||||
function forum_confirm_delete_submit($form, &$form_state) {
|
||||
taxonomy_term_delete($form_state['values']['tid']);
|
||||
|
@ -204,9 +229,11 @@ function forum_confirm_delete_submit($form, &$form_state) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Form builder for the forum settings page.
|
||||
* Form constructor for the forum settings page.
|
||||
*
|
||||
* @see forum_menu()
|
||||
* @see system_settings_form()
|
||||
* @ingroup forms
|
||||
*/
|
||||
function forum_admin_settings($form) {
|
||||
$number = drupal_map_assoc(array(5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 80, 100, 150, 200, 250, 300, 350, 400, 500));
|
||||
|
@ -234,7 +261,13 @@ function forum_admin_settings($form) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns an overview list of existing forums and containers
|
||||
* Form constructor for the forum overview form.
|
||||
*
|
||||
* Returns a form for controlling the hierarchy of existing forums and
|
||||
* containers.
|
||||
*
|
||||
* @see forum_menu()
|
||||
* @ingroup forms
|
||||
*/
|
||||
function forum_overview($form, &$form_state) {
|
||||
module_load_include('inc', 'taxonomy', 'taxonomy.admin');
|
||||
|
@ -270,11 +303,17 @@ function forum_overview($form, &$form_state) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns a select box for available parent terms
|
||||
* Returns a select box for available parent terms.
|
||||
*
|
||||
* @param $tid ID of the term which is being added or edited
|
||||
* @param $title Title to display the select box with
|
||||
* @param $child_type Whether the child is forum or container
|
||||
* @param $tid
|
||||
* ID of the term that is being added or edited.
|
||||
* @param $title
|
||||
* Title for the select box.
|
||||
* @param $child_type
|
||||
* Whether the child is a forum or a container.
|
||||
*
|
||||
* @return
|
||||
* A select form element.
|
||||
*/
|
||||
function _forum_parent_select($tid, $title, $child_type) {
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
/**
|
||||
* @file
|
||||
* Styling for the Forum module.
|
||||
*/
|
||||
|
||||
#forum .description {
|
||||
font-size: 0.9em;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
/**
|
||||
* @file
|
||||
* Install, update and uninstall functions for the forum module.
|
||||
* Install, update, and uninstall functions for the Forum module.
|
||||
*/
|
||||
|
||||
/**
|
||||
|
|
|
@ -236,7 +236,7 @@ function forum_entity_info_alter(&$info) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Entity URI callback.
|
||||
* Entity URI callback used in forum_entity_info_alter().
|
||||
*/
|
||||
function forum_uri($forum) {
|
||||
return array(
|
||||
|
@ -245,7 +245,7 @@ function forum_uri($forum) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check whether a content type can be used in a forum.
|
||||
* Checks whether a node can be used in a forum, based on its content type.
|
||||
*
|
||||
* @param Drupal\node\Node $node
|
||||
* A node entity.
|
||||
|
@ -286,7 +286,8 @@ function forum_node_view(Node $node, $view_mode) {
|
|||
/**
|
||||
* Implements hook_node_validate().
|
||||
*
|
||||
* Check in particular that only a "leaf" term in the associated taxonomy.
|
||||
* Checks in particular that the node is assigned only a "leaf" term in the
|
||||
* forum taxonomy.
|
||||
*/
|
||||
function forum_node_validate(Node $node, $form) {
|
||||
if (_forum_node_check_node_type($node)) {
|
||||
|
@ -322,7 +323,7 @@ function forum_node_validate(Node $node, $form) {
|
|||
/**
|
||||
* Implements hook_node_presave().
|
||||
*
|
||||
* Assign forum taxonomy when adding a topic from within a forum.
|
||||
* Assigns the forum taxonomy when adding a topic from within a forum.
|
||||
*/
|
||||
function forum_node_presave(Node $node) {
|
||||
if (_forum_node_check_node_type($node)) {
|
||||
|
@ -484,7 +485,7 @@ function forum_taxonomy_term_delete(Term $term) {
|
|||
/**
|
||||
* Implements hook_comment_publish().
|
||||
*
|
||||
* This actually handles the insert and update of published nodes since
|
||||
* This actually handles the insertion and update of published nodes since
|
||||
* comment_save() calls hook_comment_publish() for all published comments.
|
||||
*/
|
||||
function forum_comment_publish($comment) {
|
||||
|
@ -494,12 +495,12 @@ function forum_comment_publish($comment) {
|
|||
/**
|
||||
* Implements hook_comment_update().
|
||||
*
|
||||
* Comment module doesn't call hook_comment_unpublish() when saving individual
|
||||
* comments so we need to check for those here.
|
||||
* The Comment module doesn't call hook_comment_unpublish() when saving
|
||||
* individual comments, so we need to check for those here.
|
||||
*/
|
||||
function forum_comment_update($comment) {
|
||||
// comment_save() calls hook_comment_publish() for all published comments
|
||||
// so we to handle all other values here.
|
||||
// comment_save() calls hook_comment_publish() for all published comments,
|
||||
// so we need to handle all other values here.
|
||||
if (!$comment->status) {
|
||||
_forum_update_forum_index($comment->nid);
|
||||
}
|
||||
|
@ -672,8 +673,8 @@ function forum_block_save($delta = '', $edit = array()) {
|
|||
/**
|
||||
* Implements hook_block_view().
|
||||
*
|
||||
* Generates a block containing the currently active forum topics and the
|
||||
* most recently added forum topics.
|
||||
* Generates a block containing the currently active forum topics and the most
|
||||
* recently added forum topics.
|
||||
*/
|
||||
function forum_block_view($delta = '') {
|
||||
$query = db_select('forum_index', 'f')
|
||||
|
@ -703,13 +704,12 @@ function forum_block_view($delta = '') {
|
|||
}
|
||||
|
||||
/**
|
||||
* A #pre_render callback. Lists nodes based on the element's #query property.
|
||||
*
|
||||
* @see forum_block_view()
|
||||
*
|
||||
* @return
|
||||
* A renderable array.
|
||||
*/
|
||||
* Render API callback: Lists nodes based on the element's #query property.
|
||||
*
|
||||
* This function can be used as a #pre_render callback.
|
||||
*
|
||||
* @see forum_block_view()
|
||||
*/
|
||||
function forum_block_view_pre_render($elements) {
|
||||
$result = $elements['#query']->execute();
|
||||
if ($node_title_list = node_title_list($result)) {
|
||||
|
@ -733,7 +733,7 @@ function forum_form(Node $node, &$form_state) {
|
|||
|
||||
if (!empty($node->nid)) {
|
||||
$forum_terms = $node->taxonomy_forums;
|
||||
// If editing, give option to leave shadows
|
||||
// If editing, give option to leave shadows.
|
||||
$shadow = (count($forum_terms) > 1);
|
||||
$form['shadow'] = array('#type' => 'checkbox', '#title' => t('Leave shadow copy'), '#default_value' => $shadow, '#description' => t('If you move this topic, you can leave a link in the old forum to the new forum.'));
|
||||
$form['forum_tid'] = array('#type' => 'value', '#value' => $node->forum_tid);
|
||||
|
@ -746,13 +746,15 @@ function forum_form(Node $node, &$form_state) {
|
|||
* Returns a tree of all forums for a given taxonomy term ID.
|
||||
*
|
||||
* @param $tid
|
||||
* (optional) Taxonomy ID of the forum, if not givin all forums will be returned.
|
||||
* (optional) Taxonomy term ID of the forum. If not given all forums will be
|
||||
* returned.
|
||||
*
|
||||
* @return
|
||||
* A tree of taxonomy objects, with the following additional properties:
|
||||
* - 'num_topics': Number of topics in the forum
|
||||
* - 'num_posts': Total number of posts in all topics
|
||||
* - 'last_post': Most recent post for the forum
|
||||
* - 'forums': An array of child forums
|
||||
* - num_topics: Number of topics in the forum.
|
||||
* - num_posts: Total number of posts in all topics.
|
||||
* - last_post: Most recent post for the forum.
|
||||
* - forums: An array of child forums.
|
||||
*/
|
||||
function forum_forum_load($tid = NULL) {
|
||||
$cache = &drupal_static(__FUNCTION__, array());
|
||||
|
@ -859,8 +861,17 @@ function forum_forum_load($tid = NULL) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Calculate the number of nodes the user has not yet read and are newer
|
||||
* than NODE_NEW_LIMIT.
|
||||
* Calculates the number of new posts in a forum that the user has not yet read.
|
||||
*
|
||||
* Nodes are new if they are newer than NODE_NEW_LIMIT.
|
||||
*
|
||||
* @param $term
|
||||
* The term ID of the forum.
|
||||
* @param $uid
|
||||
* The user ID.
|
||||
*
|
||||
* @return
|
||||
* The number of new posts in the forum that have not been read by the user.
|
||||
*/
|
||||
function _forum_topics_unread($term, $uid) {
|
||||
$query = db_select('node', 'n');
|
||||
|
@ -876,6 +887,23 @@ function _forum_topics_unread($term, $uid) {
|
|||
->fetchField();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all the topics in a forum.
|
||||
*
|
||||
* @param $tid
|
||||
* The term ID of the forum.
|
||||
* @param $sortby
|
||||
* One of the following integers indicating the sort criteria:
|
||||
* - 1: Date - newest first.
|
||||
* - 2: Date - oldest first.
|
||||
* - 3: Posts with the most comments first.
|
||||
* - 4: Posts with the least comments first.
|
||||
* @param $forum_per_page
|
||||
* The maximum number of topics to display per page.
|
||||
*
|
||||
* @return
|
||||
* A list of all the topics in a forum.
|
||||
*/
|
||||
function forum_get_topics($tid, $sortby, $forum_per_page) {
|
||||
global $user, $forum_topic_list_header;
|
||||
|
||||
|
@ -959,7 +987,8 @@ function forum_get_topics($tid, $sortby, $forum_per_page) {
|
|||
$first_new_found = FALSE;
|
||||
foreach ($result as $topic) {
|
||||
if ($user->uid) {
|
||||
// folder is new if topic is new or there are new comments since last visit
|
||||
// A forum is new if the topic is new, or if there are new comments since
|
||||
// the user's last visit.
|
||||
if ($topic->forum_tid != $tid) {
|
||||
$topic->new = 0;
|
||||
}
|
||||
|
@ -1005,15 +1034,22 @@ function forum_preprocess_block(&$variables) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Process variables for forums.tpl.php
|
||||
* Preprocesses variables for forums.tpl.php.
|
||||
*
|
||||
* The $variables array contains the following arguments:
|
||||
* - $forums
|
||||
* - $topics
|
||||
* - $parents
|
||||
* - $tid
|
||||
* - $sortby
|
||||
* - $forum_per_page
|
||||
* @param $variables
|
||||
* An array containing the following elements:
|
||||
* - forums: An array of all forum objects to display for the given taxonomy
|
||||
* term ID. If tid = 0 then all the top-level forums are displayed.
|
||||
* - topics: An array of all the topics in the current forum.
|
||||
* - parents: An array of taxonomy term objects that are ancestors of the
|
||||
* current term ID.
|
||||
* - tid: Taxonomy term ID of the current forum.
|
||||
* - sortby: One of the following integers indicating the sort criteria:
|
||||
* - 1: Date - newest first.
|
||||
* - 2: Date - oldest first.
|
||||
* - 3: Posts with the most comments first.
|
||||
* - 4: Posts with the least comments first.
|
||||
* - forum_per_page: The maximum number of topics to display per page.
|
||||
*
|
||||
* @see forums.tpl.php
|
||||
*/
|
||||
|
@ -1084,12 +1120,15 @@ function template_preprocess_forums(&$variables) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Process variables to format a forum listing.
|
||||
* Preprocesses variables for forum-list.tpl.php.
|
||||
*
|
||||
* $variables contains the following information:
|
||||
* - $forums
|
||||
* - $parents
|
||||
* - $tid
|
||||
* @param $variables
|
||||
* An array containing the following elements:
|
||||
* - forums: An array of all forum objects to display for the given taxonomy
|
||||
* term ID. If tid = 0 then all the top-level forums are displayed.
|
||||
* - parents: An array of taxonomy term objects that are ancestors of the
|
||||
* current term ID.
|
||||
* - tid: Taxonomy term ID of the current forum.
|
||||
*
|
||||
* @see forum-list.tpl.php
|
||||
* @see theme_forum_list()
|
||||
|
@ -1130,13 +1169,13 @@ function template_preprocess_forum_list(&$variables) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Preprocess variables to format the topic listing.
|
||||
* Preprocesses variables for forum-topic-list.tpl.php.
|
||||
*
|
||||
* $variables contains the following data:
|
||||
* - $tid
|
||||
* - $topics
|
||||
* - $sortby
|
||||
* - $forum_per_page
|
||||
* @param $variables
|
||||
* An array containing the following elements:
|
||||
* - tid: Taxonomy term ID of the current forum.
|
||||
* - topics: An array of all the topics in the current forum.
|
||||
* - forum_per_page: The maximum number of topics to display per page.
|
||||
*
|
||||
* @see forum-topic-list.tpl.php
|
||||
* @see theme_forum_topic_list()
|
||||
|
@ -1186,7 +1225,7 @@ function template_preprocess_forum_topic_list(&$variables) {
|
|||
}
|
||||
}
|
||||
else {
|
||||
// Make this safe for the template
|
||||
// Make this safe for the template.
|
||||
$variables['topics'] = array();
|
||||
}
|
||||
// Give meaning to $tid for themers. $tid actually stands for term id.
|
||||
|
@ -1197,14 +1236,16 @@ function template_preprocess_forum_topic_list(&$variables) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Process variables to format the icon for each individual topic.
|
||||
* Preprocesses variables for forum-icon.tpl.php.
|
||||
*
|
||||
* $variables contains the following data:
|
||||
* - $new_posts
|
||||
* - $num_posts = 0
|
||||
* - $comment_mode = 0
|
||||
* - $sticky = 0
|
||||
* - $first_new
|
||||
* @param $variables
|
||||
* An array containing the following elements:
|
||||
* - new_posts: Indicates whether or not the topic contains new posts.
|
||||
* - num_posts: The total number of posts in all topics.
|
||||
* - comment_mode: An integer indicating whether comments are open, closed,
|
||||
* or hidden.
|
||||
* - sticky: Indicates whether the topic is sticky.
|
||||
* - first_new: Indicates whether this is the first topic with new posts.
|
||||
*
|
||||
* @see forum-icon.tpl.php
|
||||
* @see theme_forum_icon()
|
||||
|
@ -1232,9 +1273,14 @@ function template_preprocess_forum_icon(&$variables) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Process variables to format submission info for display in the forum list and topic list.
|
||||
* Preprocesses variables for forum-submitted.tpl.php.
|
||||
*
|
||||
* $variables will contain: $topic
|
||||
* The submission information will be displayed in the forum list and topic
|
||||
* list.
|
||||
*
|
||||
* @param $variables
|
||||
* An array containing the following elements:
|
||||
* - topic: The topic object.
|
||||
*
|
||||
* @see forum-submitted.tpl.php
|
||||
* @see theme_forum_submitted()
|
||||
|
@ -1244,6 +1290,16 @@ function template_preprocess_forum_submitted(&$variables) {
|
|||
$variables['time'] = isset($variables['topic']->created) ? format_interval(REQUEST_TIME - $variables['topic']->created) : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the last time the user viewed a node.
|
||||
*
|
||||
* @param $nid
|
||||
* The node ID.
|
||||
*
|
||||
* @return
|
||||
* The timestamp when the user last viewed this node, if the user has
|
||||
* previously viewed the node; otherwise NODE_NEW_LIMIT.
|
||||
*/
|
||||
function _forum_user_last_visit($nid) {
|
||||
global $user;
|
||||
$history = &drupal_static(__FUNCTION__, array());
|
||||
|
@ -1257,6 +1313,21 @@ function _forum_user_last_visit($nid) {
|
|||
return isset($history[$nid]) ? $history[$nid] : NODE_NEW_LIMIT;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets topic sorting information based on an integer code.
|
||||
*
|
||||
* @param $sortby
|
||||
* One of the following integers indicating the sort criteria:
|
||||
* - 1: Date - newest first.
|
||||
* - 2: Date - oldest first.
|
||||
* - 3: Posts with the most comments first.
|
||||
* - 4: Posts with the least comments first.
|
||||
*
|
||||
* @return
|
||||
* An array with the following values:
|
||||
* - field: A field for an SQL query.
|
||||
* - sort: 'asc' or 'desc'.
|
||||
*/
|
||||
function _forum_get_topic_order($sortby) {
|
||||
switch ($sortby) {
|
||||
case 1:
|
||||
|
|
|
@ -2,11 +2,20 @@
|
|||
|
||||
/**
|
||||
* @file
|
||||
* User page callbacks for the forum module.
|
||||
* User page callbacks for the Forum module.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Menu callback; prints a forum listing.
|
||||
* Page callback: Prints a forum listing.
|
||||
*
|
||||
* @param $forum_term
|
||||
* A tree of all forums for a given taxonomy term ID. Defaults to NULL. See
|
||||
* the return object of forum_forum_load() for a complete definition.
|
||||
*
|
||||
* @return
|
||||
* A string containing HTML representing the themed forum listing.
|
||||
*
|
||||
* @see forum_menu()
|
||||
*/
|
||||
function forum_page($forum_term = NULL) {
|
||||
if (!isset($forum_term)) {
|
||||
|
|
|
@ -2,16 +2,19 @@
|
|||
|
||||
/**
|
||||
* @file
|
||||
* Default theme implementation to display a forum which may contain forum
|
||||
* containers as well as forum topics.
|
||||
* Displays a forum.
|
||||
*
|
||||
* Variables available:
|
||||
* - $forums: The forums to display (as processed by forum-list.tpl.php)
|
||||
* - $topics: The topics to display (as processed by forum-topic-list.tpl.php)
|
||||
* May contain forum containers as well as forum topics.
|
||||
*
|
||||
* Available variables:
|
||||
* - $forums: The forums to display (as processed by forum-list.tpl.php).
|
||||
* - $topics: The topics to display (as processed by forum-topic-list.tpl.php).
|
||||
* - $forums_defined: A flag to indicate that the forums are configured.
|
||||
*
|
||||
* @see template_preprocess_forums()
|
||||
* @see theme_forums()
|
||||
*
|
||||
* @ingroup themeable
|
||||
*/
|
||||
?>
|
||||
<?php if ($forums_defined): ?>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
/**
|
||||
* @file
|
||||
* Definition of Drupal\forum\Tests\ForumTest.
|
||||
* Tests for forum.module.
|
||||
*/
|
||||
|
||||
namespace Drupal\forum\Tests;
|
||||
|
@ -10,14 +10,49 @@ namespace Drupal\forum\Tests;
|
|||
use Drupal\node\Node;
|
||||
use Drupal\simpletest\WebTestBase;
|
||||
|
||||
/**
|
||||
* Provides automated tests for the Forum module.
|
||||
*/
|
||||
class ForumTest extends WebTestBase {
|
||||
|
||||
/**
|
||||
* A user with various administrative privileges.
|
||||
*/
|
||||
protected $admin_user;
|
||||
|
||||
/**
|
||||
* A user that can create forum topics and edit its own topics.
|
||||
*/
|
||||
protected $edit_own_topics_user;
|
||||
|
||||
/**
|
||||
* A user that can create, edit, and delete forum topics.
|
||||
*/
|
||||
protected $edit_any_topics_user;
|
||||
|
||||
/**
|
||||
* A user with no special privileges.
|
||||
*/
|
||||
protected $web_user;
|
||||
|
||||
/**
|
||||
* An array representing a container.
|
||||
*/
|
||||
protected $container;
|
||||
|
||||
/**
|
||||
* An array representing a forum.
|
||||
*/
|
||||
protected $forum;
|
||||
|
||||
/**
|
||||
* An array representing a root forum.
|
||||
*/
|
||||
protected $root_forum;
|
||||
|
||||
/**
|
||||
* An array of forum topic node IDs.
|
||||
*/
|
||||
protected $nids;
|
||||
|
||||
public static function getInfo() {
|
||||
|
@ -28,9 +63,6 @@ class ForumTest extends WebTestBase {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable modules and create users with specific permissions.
|
||||
*/
|
||||
function setUp() {
|
||||
parent::setUp(array('taxonomy', 'comment', 'forum', 'node', 'block', 'menu', 'help'));
|
||||
// Create users.
|
||||
|
@ -58,12 +90,12 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Tests disabling and re-enabling forum.
|
||||
* Tests disabling and re-enabling the Forum module.
|
||||
*/
|
||||
function testEnableForumField() {
|
||||
$this->drupalLogin($this->admin_user);
|
||||
|
||||
// Disable the forum module.
|
||||
// Disable the Forum module.
|
||||
$edit = array();
|
||||
$edit['modules[Core][forum][enable]'] = FALSE;
|
||||
$this->drupalPost('admin/modules', $edit, t('Save configuration'));
|
||||
|
@ -71,7 +103,7 @@ class ForumTest extends WebTestBase {
|
|||
module_list(TRUE);
|
||||
$this->assertFalse(module_exists('forum'), t('Forum module is not enabled.'));
|
||||
|
||||
// Attempt to re-enable the forum module and ensure it does not try to
|
||||
// Attempt to re-enable the Forum module and ensure it does not try to
|
||||
// recreate the taxonomy_forums field.
|
||||
$edit = array();
|
||||
$edit['modules[Core][forum][enable]'] = 'forum';
|
||||
|
@ -82,7 +114,7 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Login users, create forum nodes, and test forum functionality through the admin and user interfaces.
|
||||
* Tests forum functionality through the admin and user interfaces.
|
||||
*/
|
||||
function testForum() {
|
||||
//Check that the basic forum install creates a default forum topic
|
||||
|
@ -176,7 +208,10 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Forum nodes should not be created without choosing forum from select list.
|
||||
* Tests that forum nodes can't be added without a parent.
|
||||
*
|
||||
* Verifies that forum nodes are not created without choosing "forum" from the
|
||||
* select list.
|
||||
*/
|
||||
function testAddOrphanTopic() {
|
||||
// Must remove forum topics to test creating orphan topics.
|
||||
|
@ -198,9 +233,10 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Run admin tests on the admin user.
|
||||
* Runs admin tests on the admin user.
|
||||
*
|
||||
* @param object $user The logged in user.
|
||||
* @param object $user
|
||||
* The logged-in user.
|
||||
*/
|
||||
private function doAdminTests($user) {
|
||||
// Login the user.
|
||||
|
@ -289,7 +325,7 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Edit the forum taxonomy.
|
||||
* Edits the forum taxonomy.
|
||||
*/
|
||||
function editForumTaxonomy() {
|
||||
// Backup forum taxonomy.
|
||||
|
@ -327,15 +363,15 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Create a forum container or a forum.
|
||||
* Creates a forum container or a forum.
|
||||
*
|
||||
* @param $type
|
||||
* Forum type (forum container or forum).
|
||||
* The forum type (forum container or forum).
|
||||
* @param $parent
|
||||
* Forum parent (default = 0 = a root forum; >0 = a forum container or
|
||||
* another forum).
|
||||
* The forum parent. This defaults to 0, indicating a root forum.
|
||||
*
|
||||
* @return
|
||||
* taxonomy_term_data created.
|
||||
* The created taxonomy term data.
|
||||
*/
|
||||
function createForum($type, $parent = 0) {
|
||||
// Generate a random name/description.
|
||||
|
@ -368,7 +404,7 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Delete a forum.
|
||||
* Deletes a forum.
|
||||
*
|
||||
* @param $tid
|
||||
* The forum ID.
|
||||
|
@ -389,7 +425,7 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Run basic tests on the indicated user.
|
||||
* Runs basic tests on the indicated user.
|
||||
*
|
||||
* @param $user
|
||||
* The logged in user.
|
||||
|
@ -408,15 +444,15 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Create forum topic.
|
||||
* Creates a forum topic.
|
||||
*
|
||||
* @param array $forum
|
||||
* Forum array.
|
||||
* A forum array.
|
||||
* @param boolean $container
|
||||
* True if $forum is a container.
|
||||
* TRUE if $forum is a container; FALSE otherwise.
|
||||
*
|
||||
* @return object
|
||||
* Topic node created.
|
||||
* The created topic node.
|
||||
*/
|
||||
function createForumTopic($forum, $container = FALSE) {
|
||||
// Generate a random subject/body.
|
||||
|
@ -458,7 +494,7 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Verify the logged in user has access to a forum nodes.
|
||||
* Verifies that the logged in user has access to a forum node.
|
||||
*
|
||||
* @param $node_user
|
||||
* The user who creates the node.
|
||||
|
@ -538,10 +574,12 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Verify display of forum page.
|
||||
* Verifies the display of a forum page.
|
||||
*
|
||||
* @param $forum
|
||||
* A row from taxonomy_term_data table in array.
|
||||
* A row from the taxonomy_term_data table in an array.
|
||||
* @param $parent
|
||||
* (optional) An array representing the forum's parent.
|
||||
*/
|
||||
private function verifyForumView($forum, $parent = NULL) {
|
||||
// View forum page.
|
||||
|
@ -561,9 +599,10 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Generate forum topics to test display of active forum block.
|
||||
* Generates forum topics to test the display of an active forum block.
|
||||
*
|
||||
* @param array $forum Forum array (a row from taxonomy_term_data table).
|
||||
* @param array $forum
|
||||
* The forum array (a row from taxonomy_term_data table).
|
||||
*/
|
||||
private function generateForumTopics($forum) {
|
||||
$this->nids = array();
|
||||
|
@ -574,10 +613,10 @@ class ForumTest extends WebTestBase {
|
|||
}
|
||||
|
||||
/**
|
||||
* View forum topics to test display of active forum block.
|
||||
* Views forum topics to test the display of an active forum block.
|
||||
*
|
||||
* @todo The logic here is completely incorrect, since the active
|
||||
* forum topics block is determined by comments on the node, not by views.
|
||||
* @todo The logic here is completely incorrect, since the active forum topics
|
||||
* block is determined by comments on the node, not by views.
|
||||
* @todo DIE
|
||||
*
|
||||
* @param $nids
|
||||
|
|
Loading…
Reference in New Issue