web/wp-content/plugins/bbpress/includes/replies/functions.php
author Anthony Ly <anthonyly.com@gmail.com>
Tue, 12 Mar 2013 18:21:39 +0100
changeset 206 919b4ddb13fa
parent 196 5e8dcbe22c24
permissions -rw-r--r--
modification logo footer cccb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
196
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     1
<?php
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     2
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     3
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     4
 * bbPress Reply Functions
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     5
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     6
 * @package bbPress
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     7
 * @subpackage Functions
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     8
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     9
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    10
// Exit if accessed directly
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    11
if ( !defined( 'ABSPATH' ) ) exit;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    12
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    13
/** Insert ********************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    14
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    15
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    16
 * A wrapper for wp_insert_post() that also includes the necessary meta values
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    17
 * for the reply to function properly.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    18
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    19
 * @since bbPress (r3349)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    20
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    21
 * @uses bbp_parse_args()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    22
 * @uses bbp_get_reply_post_type()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    23
 * @uses wp_insert_post()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    24
 * @uses update_post_meta()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    25
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    26
 * @param array $reply_data Forum post data
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    27
 * @param arrap $reply_meta Forum meta data
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    28
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    29
function bbp_insert_reply( $reply_data = array(), $reply_meta = array() ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    30
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    31
	// Forum
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    32
	$default_reply = array(
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    33
		'post_parent'    => 0, // topic ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    34
		'post_status'    => bbp_get_public_status_id(),
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    35
		'post_type'      => bbp_get_reply_post_type(),
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    36
		'post_author'    => bbp_get_current_user_id(),
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    37
		'post_password'  => '',
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    38
		'post_content'   => '',
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    39
		'post_title'     => '',
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    40
		'menu_order'     => 0,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    41
		'comment_status' => 'closed'
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    42
	);
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    43
	$reply_data = bbp_parse_args( $reply_data, $default_reply, 'insert_reply' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    44
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    45
	// Insert reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    46
	$reply_id   = wp_insert_post( $reply_data );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    47
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    48
	// Bail if no reply was added
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    49
	if ( empty( $reply_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    50
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    51
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    52
	// Forum meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    53
	$default_meta = array(
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    54
		'author_ip' => bbp_current_author_ip(),
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    55
		'forum_id'  => 0,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    56
		'topic_id'  => 0,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    57
	);
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    58
	$reply_meta = bbp_parse_args( $reply_meta, $default_meta, 'insert_reply_meta' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    59
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    60
	// Insert reply meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    61
	foreach ( $reply_meta as $meta_key => $meta_value )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    62
		update_post_meta( $reply_id, '_bbp_' . $meta_key, $meta_value );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    63
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    64
	// Update the topic
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    65
	$topic_id = bbp_get_reply_topic_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    66
	if ( !empty( $topic_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    67
		bbp_update_topic( $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    68
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    69
	// Return new reply ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    70
	return $reply_id;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    71
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    72
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    73
/** Post Form Handlers ********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    74
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    75
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    76
 * Handles the front end reply submission
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    77
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    78
 * @since bbPress (r2574)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    79
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    80
 * @uses bbp_add_error() To add an error message
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    81
 * @uses bbp_verify_nonce_request() To verify the nonce and check the request
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    82
 * @uses bbp_is_anonymous() To check if an anonymous post is being made
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    83
 * @uses current_user_can() To check if the current user can publish replies
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    84
 * @uses bbp_get_current_user_id() To get the current user id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    85
 * @uses bbp_filter_anonymous_post_data() To filter anonymous data
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    86
 * @uses bbp_set_current_anonymous_user_data() To set the anonymous user
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    87
 *                                                cookies
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    88
 * @uses is_wp_error() To check if the value retrieved is a {@link WP_Error}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    89
 * @uses remove_filter() To remove 'wp_filter_kses' filters if needed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    90
 * @uses esc_attr() For sanitization
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    91
 * @uses bbp_check_for_flood() To check for flooding
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    92
 * @uses bbp_check_for_duplicate() To check for duplicates
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    93
 * @uses apply_filters() Calls 'bbp_new_reply_pre_title' with the title
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    94
 * @uses apply_filters() Calls 'bbp_new_reply_pre_content' with the content
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    95
 * @uses bbp_get_reply_post_type() To get the reply post type
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    96
 * @uses wp_set_post_terms() To set the topic tags
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    97
 * @uses wp_insert_post() To insert the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    98
 * @uses do_action() Calls 'bbp_new_reply' with the reply id, topic id, forum
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    99
 *                    id, anonymous data and reply author
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   100
 * @uses bbp_get_reply_url() To get the paginated url to the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   101
 * @uses wp_safe_redirect() To redirect to the reply url
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   102
 * @uses bbPress::errors::get_error_message() To get the {@link WP_Error} error
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   103
 *                                              message
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   104
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   105
function bbp_new_reply_handler() {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   106
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   107
	// Bail if not a POST action
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   108
	if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   109
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   110
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   111
	// Bail if action is not bbp-new-reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   112
	if ( empty( $_POST['action'] ) || ( 'bbp-new-reply' !== $_POST['action'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   113
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   114
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   115
	// Nonce check
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   116
	if ( ! bbp_verify_nonce_request( 'bbp-new-reply' ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   117
		bbp_add_error( 'bbp_rew_reply_nonce', __( '<strong>ERROR</strong>: Are you sure you wanted to do that?', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   118
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   119
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   120
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   121
	// Define local variable(s)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   122
	$topic_id = $forum_id = $reply_author = $anonymous_data = 0;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   123
	$reply_title = $reply_content = $terms = '';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   124
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   125
	/** Reply Author **********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   126
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   127
	// User is anonymous
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   128
	if ( bbp_is_anonymous() ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   129
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   130
		// Filter anonymous data
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   131
		$anonymous_data = bbp_filter_anonymous_post_data();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   132
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   133
		// Anonymous data checks out, so set cookies, etc...
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   134
		if ( !empty( $anonymous_data ) && is_array( $anonymous_data ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   135
			bbp_set_current_anonymous_user_data( $anonymous_data );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   136
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   137
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   138
	// User is logged in
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   139
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   140
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   141
		// User cannot create replies
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   142
		if ( !current_user_can( 'publish_replies' ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   143
			bbp_add_error( 'bbp_reply_permissions', __( '<strong>ERROR</strong>: You do not have permission to reply.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   144
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   145
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   146
		// Reply author is current user
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   147
		$reply_author = bbp_get_current_user_id();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   148
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   149
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   150
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   151
	/** Topic ID **************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   152
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   153
	// Handle Topic ID to append reply to
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   154
	if ( isset( $_POST['bbp_topic_id'] ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   155
		$topic_id = (int) $_POST['bbp_topic_id'];
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   156
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   157
		bbp_add_error( 'bbp_reply_topic_id', __( '<strong>ERROR</strong>: Topic ID is missing.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   158
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   159
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   160
	/** Forum ID **************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   161
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   162
	// Handle Forum ID to adjust counts of
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   163
	if ( isset( $_POST['bbp_forum_id'] ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   164
		$forum_id = (int) $_POST['bbp_forum_id'];
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   165
	} elseif ( !empty( $topic_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   166
		$forum_id = bbp_get_topic_forum_id( $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   167
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   168
		bbp_add_error( 'bbp_reply_forum_id', __( '<strong>ERROR</strong>: Forum ID is missing.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   169
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   170
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   171
	/** Unfiltered HTML *******************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   172
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   173
	// Remove wp_filter_kses filters from title and content for capable users and if the nonce is verified
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   174
	if ( current_user_can( 'unfiltered_html' ) && !empty( $_POST['_bbp_unfiltered_html_reply'] ) && wp_create_nonce( 'bbp-unfiltered-html-reply_' . $topic_id ) == $_POST['_bbp_unfiltered_html_reply'] ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   175
		remove_filter( 'bbp_new_reply_pre_title',   'wp_filter_kses' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   176
		remove_filter( 'bbp_new_reply_pre_content', 'wp_filter_kses' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   177
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   178
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   179
	/** Reply Title ***********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   180
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   181
	if ( !empty( $_POST['bbp_reply_title'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   182
		$reply_title = esc_attr( strip_tags( $_POST['bbp_reply_title'] ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   183
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   184
	// Filter and sanitize
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   185
	$reply_title = apply_filters( 'bbp_new_reply_pre_title', $reply_title );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   186
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   187
	// No reply title
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   188
	if ( empty( $reply_title ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   189
		bbp_add_error( 'bbp_reply_title', __( '<strong>ERROR</strong>: Your reply needs a title.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   190
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   191
	/** Reply Content *********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   192
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   193
	if ( !empty( $_POST['bbp_reply_content'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   194
		$reply_content = $_POST['bbp_reply_content'];
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   195
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   196
	// Filter and sanitize
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   197
	$reply_content = apply_filters( 'bbp_new_reply_pre_content', $reply_content );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   198
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   199
	// No reply content
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   200
	if ( empty( $reply_content ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   201
		bbp_add_error( 'bbp_reply_content', __( '<strong>ERROR</strong>: Your reply cannot be empty.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   202
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   203
	/** Reply Flooding ********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   204
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   205
	if ( !bbp_check_for_flood( $anonymous_data, $reply_author ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   206
		bbp_add_error( 'bbp_reply_flood', __( '<strong>ERROR</strong>: Slow down; you move too fast.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   207
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   208
	/** Reply Duplicate *******************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   209
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   210
	if ( !bbp_check_for_duplicate( array( 'post_type' => bbp_get_reply_post_type(), 'post_author' => $reply_author, 'post_content' => $reply_content, 'post_parent' => $topic_id, 'anonymous_data' => $anonymous_data ) ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   211
		bbp_add_error( 'bbp_reply_duplicate', __( '<strong>ERROR</strong>: Duplicate reply detected; it looks as though you&#8217;ve already said that!', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   212
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   213
	/** Reply Blacklist *******************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   214
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   215
	if ( !bbp_check_for_blacklist( $anonymous_data, $reply_author, $reply_title, $reply_content ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   216
		bbp_add_error( 'bbp_reply_blacklist', __( '<strong>ERROR</strong>: Your reply cannot be created at this time.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   217
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   218
	/** Reply Status **********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   219
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   220
	// Maybe put into moderation
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   221
	if ( !bbp_check_for_moderation( $anonymous_data, $reply_author, $reply_title, $reply_content ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   222
		$reply_status = bbp_get_pending_status_id();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   223
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   224
	// Default
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   225
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   226
		$reply_status = bbp_get_public_status_id();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   227
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   228
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   229
	/** Topic Tags ************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   230
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   231
	// Either replace terms
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   232
	if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags' ) && ! empty( $_POST['bbp_topic_tags'] ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   233
		$terms = esc_attr( strip_tags( $_POST['bbp_topic_tags'] ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   234
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   235
	// ...or remove them.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   236
	} elseif ( isset( $_POST['bbp_topic_tags'] ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   237
		$terms = '';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   238
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   239
	// Existing terms
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   240
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   241
		$terms = bbp_get_topic_tag_names( $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   242
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   243
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   244
	/** Additional Actions (Before Save) **************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   245
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   246
	do_action( 'bbp_new_reply_pre_extras', $topic_id, $forum_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   247
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   248
	// Bail if errors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   249
	if ( bbp_has_errors() )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   250
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   251
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   252
	/** No Errors *************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   253
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   254
	// Add the content of the form to $reply_data as an array
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   255
	// Just in time manipulation of reply data before being created
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   256
	$reply_data = apply_filters( 'bbp_new_reply_pre_insert', array(
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   257
		'post_author'    => $reply_author,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   258
		'post_title'     => $reply_title,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   259
		'post_content'   => $reply_content,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   260
		'post_status'    => $reply_status,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   261
		'post_parent'    => $topic_id,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   262
		'post_type'      => bbp_get_reply_post_type(),
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   263
		'comment_status' => 'closed',
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   264
		'menu_order'     => bbp_get_topic_reply_count( $topic_id, false ) + 1
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   265
	) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   266
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   267
	// Insert reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   268
	$reply_id = wp_insert_post( $reply_data );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   269
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   270
	/** No Errors *************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   271
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   272
	// Check for missing reply_id or error
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   273
	if ( !empty( $reply_id ) && !is_wp_error( $reply_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   274
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   275
		/** Topic Tags ********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   276
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   277
		// Just in time manipulation of reply terms before being edited
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   278
		$terms = apply_filters( 'bbp_new_reply_pre_set_terms', $terms, $topic_id, $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   279
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   280
		// Insert terms
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   281
		$terms = wp_set_post_terms( $topic_id, $terms, bbp_get_topic_tag_tax_id(), false );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   282
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   283
		// Term error
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   284
		if ( is_wp_error( $terms ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   285
			bbp_add_error( 'bbp_reply_tags', __( '<strong>ERROR</strong>: There was a problem adding the tags to the topic.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   286
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   287
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   288
		/** Trash Check *******************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   289
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   290
		// If this reply starts as trash, add it to pre_trashed_replies
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   291
		// for the topic, so it is properly restored.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   292
		if ( bbp_is_topic_trash( $topic_id ) || ( $reply_data['post_status'] == bbp_get_trash_status_id() ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   293
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   294
			// Trash the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   295
			wp_trash_post( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   296
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   297
			// Get pre_trashed_replies for topic
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   298
			$pre_trashed_replies = get_post_meta( $topic_id, '_bbp_pre_trashed_replies', true );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   299
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   300
			// Add this reply to the end of the existing replies
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   301
			$pre_trashed_replies[] = $reply_id;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   302
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   303
			// Update the pre_trashed_reply post meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   304
			update_post_meta( $topic_id, '_bbp_pre_trashed_replies', $pre_trashed_replies );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   305
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   306
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   307
		/** Spam Check ********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   308
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   309
		// If reply or topic are spam, officially spam this reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   310
		if ( bbp_is_topic_spam( $topic_id ) || ( $reply_data['post_status'] == bbp_get_spam_status_id() ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   311
			add_post_meta( $reply_id, '_bbp_spam_meta_status', bbp_get_public_status_id() );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   312
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   313
		/** Update counts, etc... *********************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   314
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   315
		do_action( 'bbp_new_reply', $reply_id, $topic_id, $forum_id, $anonymous_data, $reply_author );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   316
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   317
		/** Additional Actions (After Save) ***********************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   318
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   319
		do_action( 'bbp_new_reply_post_extras', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   320
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   321
		/** Redirect **********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   322
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   323
		// Redirect to
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   324
		$redirect_to = !empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   325
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   326
		// Get the reply URL
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   327
		$reply_url = bbp_get_reply_url( $reply_id, $redirect_to );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   328
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   329
		// Allow to be filtered
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   330
		$reply_url = apply_filters( 'bbp_new_reply_redirect_to', $reply_url, $redirect_to, $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   331
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   332
		/** Successful Save ***************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   333
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   334
		// Redirect back to new reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   335
		wp_safe_redirect( $reply_url );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   336
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   337
		// For good measure
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   338
		exit();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   339
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   340
	/** Errors ****************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   341
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   342
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   343
		$append_error = ( is_wp_error( $reply_id ) && $reply_id->get_error_message() ) ? $reply_id->get_error_message() . ' ' : '';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   344
		bbp_add_error( 'bbp_reply_error', __( '<strong>ERROR</strong>: The following problem(s) have been found with your reply:' . $append_error . 'Please try again.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   345
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   346
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   347
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   348
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   349
 * Handles the front end edit reply submission
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   350
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   351
 * @uses bbp_add_error() To add an error message
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   352
 * @uses bbp_get_reply() To get the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   353
 * @uses bbp_verify_nonce_request() To verify the nonce and check the request
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   354
 * @uses bbp_is_reply_anonymous() To check if the reply was by an anonymous user
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   355
 * @uses current_user_can() To check if the current user can edit that reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   356
 * @uses bbp_filter_anonymous_post_data() To filter anonymous data
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   357
 * @uses is_wp_error() To check if the value retrieved is a {@link WP_Error}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   358
 * @uses remove_filter() To remove 'wp_filter_kses' filters if needed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   359
 * @uses esc_attr() For sanitization
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   360
 * @uses apply_filters() Calls 'bbp_edit_reply_pre_title' with the title and
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   361
 *                       reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   362
 * @uses apply_filters() Calls 'bbp_edit_reply_pre_content' with the content
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   363
 *                        reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   364
 * @uses wp_set_post_terms() To set the topic tags
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   365
 * @uses bbp_has_errors() To get the {@link WP_Error} errors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   366
 * @uses wp_save_post_revision() To save a reply revision
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   367
 * @uses bbp_update_reply_revision_log() To update the reply revision log
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   368
 * @uses wp_update_post() To update the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   369
 * @uses bbp_get_reply_topic_id() To get the reply topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   370
 * @uses bbp_get_topic_forum_id() To get the topic forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   371
 * @uses do_action() Calls 'bbp_edit_reply' with the reply id, topic id, forum
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   372
 *                    id, anonymous data, reply author and bool true (for edit)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   373
 * @uses bbp_get_reply_url() To get the paginated url to the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   374
 * @uses wp_safe_redirect() To redirect to the reply url
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   375
 * @uses bbPress::errors::get_error_message() To get the {@link WP_Error} error
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   376
 *                                             message
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   377
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   378
function bbp_edit_reply_handler() {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   379
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   380
	// Bail if not a POST action
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   381
	if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   382
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   383
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   384
	// Bail if action is not bbp-edit-reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   385
	if ( empty( $_POST['action'] ) || ( 'bbp-edit-reply' !== $_POST['action'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   386
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   387
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   388
	// Define local variable(s)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   389
	$revisions_removed = false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   390
	$reply = $reply_id = $reply_author = $topic_id = $forum_id = $anonymous_data = 0;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   391
	$reply_title = $reply_content = $reply_edit_reason = $terms = '';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   392
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   393
	/** Reply *****************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   394
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   395
	// Reply id was not passed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   396
	if ( empty( $_POST['bbp_reply_id'] ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   397
		bbp_add_error( 'bbp_edit_reply_id', __( '<strong>ERROR</strong>: Reply ID not found.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   398
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   399
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   400
	// Reply id was passed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   401
	} elseif ( is_numeric( $_POST['bbp_reply_id'] ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   402
		$reply_id = (int) $_POST['bbp_reply_id'];
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   403
		$reply    = bbp_get_reply( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   404
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   405
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   406
	// Nonce check
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   407
	if ( ! bbp_verify_nonce_request( 'bbp-edit-reply_' . $reply_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   408
		bbp_add_error( 'bbp_edit_reply_nonce', __( '<strong>ERROR</strong>: Are you sure you wanted to do that?', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   409
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   410
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   411
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   412
	// Reply does not exist
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   413
	if ( empty( $reply ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   414
		bbp_add_error( 'bbp_edit_reply_not_found', __( '<strong>ERROR</strong>: The reply you want to edit was not found.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   415
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   416
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   417
	// Reply exists
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   418
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   419
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   420
		// Check users ability to create new reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   421
		if ( ! bbp_is_reply_anonymous( $reply_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   422
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   423
			// User cannot edit this reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   424
			if ( !current_user_can( 'edit_reply', $reply_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   425
				bbp_add_error( 'bbp_edit_reply_permissions', __( '<strong>ERROR</strong>: You do not have permission to edit that reply.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   426
				return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   427
			}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   428
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   429
			// Set reply author
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   430
			$reply_author = bbp_get_reply_author_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   431
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   432
		// It is an anonymous post
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   433
		} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   434
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   435
			// Filter anonymous data
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   436
			$anonymous_data = bbp_filter_anonymous_post_data();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   437
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   438
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   439
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   440
	// Remove wp_filter_kses filters from title and content for capable users and if the nonce is verified
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   441
	if ( current_user_can( 'unfiltered_html' ) && !empty( $_POST['_bbp_unfiltered_html_reply'] ) && wp_create_nonce( 'bbp-unfiltered-html-reply_' . $reply_id ) == $_POST['_bbp_unfiltered_html_reply'] ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   442
		remove_filter( 'bbp_edit_reply_pre_title',   'wp_filter_kses' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   443
		remove_filter( 'bbp_edit_reply_pre_content', 'wp_filter_kses' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   444
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   445
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   446
	/** Reply Topic ***********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   447
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   448
	$topic_id = bbp_get_reply_topic_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   449
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   450
	/** Topic Forum ***********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   451
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   452
	$forum_id = bbp_get_topic_forum_id( $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   453
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   454
	// Forum exists
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   455
	if ( !empty( $forum_id ) && ( $forum_id !== bbp_get_reply_forum_id( $reply_id ) ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   456
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   457
		// Forum is a category
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   458
		if ( bbp_is_forum_category( $forum_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   459
			bbp_add_error( 'bbp_edit_reply_forum_category', __( '<strong>ERROR</strong>: This forum is a category. No topics or replies can be created in it.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   460
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   461
		// Forum is closed and user cannot access
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   462
		if ( bbp_is_forum_closed( $forum_id ) && !current_user_can( 'edit_forum', $forum_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   463
			bbp_add_error( 'bbp_edit_reply_forum_closed', __( '<strong>ERROR</strong>: This forum has been closed to new topics and replies.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   464
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   465
		// Forum is private and user cannot access
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   466
		if ( bbp_is_forum_private( $forum_id ) && !current_user_can( 'read_private_forums' ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   467
			bbp_add_error( 'bbp_edit_reply_forum_private', __( '<strong>ERROR</strong>: This forum is private and you do not have the capability to read or create new replies in it.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   468
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   469
		// Forum is hidden and user cannot access
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   470
		if ( bbp_is_forum_hidden( $forum_id ) && !current_user_can( 'read_hidden_forums' ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   471
			bbp_add_error( 'bbp_edit_reply_forum_hidden', __( '<strong>ERROR</strong>: This forum is hidden and you do not have the capability to read or create new replies in it.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   472
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   473
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   474
	/** Reply Title ***********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   475
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   476
	if ( !empty( $_POST['bbp_reply_title'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   477
		$reply_title = esc_attr( strip_tags( $_POST['bbp_reply_title'] ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   478
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   479
	// Filter and sanitize
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   480
	$reply_title = apply_filters( 'bbp_edit_reply_pre_title', $reply_title, $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   481
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   482
	/** Reply Content *********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   483
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   484
	if ( !empty( $_POST['bbp_reply_content'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   485
		$reply_content = $_POST['bbp_reply_content'];
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   486
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   487
	// Filter and sanitize
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   488
	$reply_content = apply_filters( 'bbp_edit_reply_pre_content', $reply_content, $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   489
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   490
	// No reply content
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   491
	if ( empty( $reply_content ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   492
		bbp_add_error( 'bbp_edit_reply_content', __( '<strong>ERROR</strong>: Your reply cannot be empty.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   493
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   494
	/** Reply Blacklist *******************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   495
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   496
	if ( !bbp_check_for_blacklist( $anonymous_data, $reply_author, $reply_title, $reply_content ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   497
		bbp_add_error( 'bbp_reply_blacklist', __( '<strong>ERROR</strong>: Your reply cannot be edited at this time.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   498
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   499
	/** Reply Status **********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   500
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   501
	// Maybe put into moderation
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   502
	if ( !bbp_check_for_moderation( $anonymous_data, $reply_author, $reply_title, $reply_content ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   503
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   504
		// Set post status to pending if public
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   505
		if ( bbp_get_public_status_id() == $reply->post_status ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   506
			$reply_status = bbp_get_pending_status_id();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   507
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   508
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   509
	// Use existing post_status
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   510
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   511
		$reply_status = $reply->post_status;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   512
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   513
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   514
	/** Topic Tags ************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   515
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   516
	// Either replace terms
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   517
	if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags' ) && ! empty( $_POST['bbp_topic_tags'] ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   518
		$terms = esc_attr( strip_tags( $_POST['bbp_topic_tags'] ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   519
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   520
	// ...or remove them.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   521
	} elseif ( isset( $_POST['bbp_topic_tags'] ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   522
		$terms = '';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   523
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   524
	// Existing terms
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   525
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   526
		$terms = bbp_get_topic_tag_names( $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   527
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   528
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   529
	/** Additional Actions (Before Save) **************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   530
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   531
	do_action( 'bbp_edit_reply_pre_extras', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   532
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   533
	// Bail if errors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   534
	if ( bbp_has_errors() )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   535
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   536
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   537
	/** No Errors *************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   538
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   539
	// Add the content of the form to $reply_data as an array
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   540
	// Just in time manipulation of reply data before being edited
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   541
	$reply_data = apply_filters( 'bbp_edit_reply_pre_insert', array(
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   542
		'ID'           => $reply_id,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   543
		'post_title'   => $reply_title,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   544
		'post_content' => $reply_content,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   545
		'post_status'  => $reply_status,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   546
		'post_parent'  => $topic_id,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   547
		'post_author'  => $reply_author,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   548
		'post_type'    => bbp_get_reply_post_type()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   549
	) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   550
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   551
	// Toggle revisions to avoid duplicates
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   552
	if ( post_type_supports( bbp_get_reply_post_type(), 'revisions' ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   553
		$revisions_removed = true;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   554
		remove_post_type_support( bbp_get_reply_post_type(), 'revisions' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   555
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   556
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   557
	// Insert topic
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   558
	$reply_id = wp_update_post( $reply_data );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   559
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   560
	// Toggle revisions back on
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   561
	if ( true === $revisions_removed ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   562
		$revisions_removed = true;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   563
		add_post_type_support( bbp_get_reply_post_type(), 'revisions' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   564
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   565
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   566
	/** Topic Tags ************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   567
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   568
	// Just in time manipulation of reply terms before being edited
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   569
	$terms = apply_filters( 'bbp_edit_reply_pre_set_terms', $terms, $topic_id, $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   570
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   571
	// Insert terms
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   572
	$terms = wp_set_post_terms( $topic_id, $terms, bbp_get_topic_tag_tax_id(), false );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   573
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   574
	// Term error
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   575
	if ( is_wp_error( $terms ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   576
		bbp_add_error( 'bbp_reply_tags', __( '<strong>ERROR</strong>: There was a problem adding the tags to the topic.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   577
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   578
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   579
	/** Revisions *************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   580
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   581
	// Revision Reason
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   582
	if ( !empty( $_POST['bbp_reply_edit_reason'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   583
		$reply_edit_reason = esc_attr( strip_tags( $_POST['bbp_reply_edit_reason'] ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   584
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   585
	// Update revision log
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   586
	if ( !empty( $_POST['bbp_log_reply_edit'] ) && ( 1 == $_POST['bbp_log_reply_edit'] ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   587
		$revision_id = wp_is_post_revision( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   588
		if ( !empty( $revision_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   589
			bbp_update_reply_revision_log( array(
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   590
				'reply_id'    => $reply_id,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   591
				'revision_id' => $revision_id,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   592
				'author_id'   => bbp_get_current_user_id(),
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   593
				'reason'      => $reply_edit_reason
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   594
			) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   595
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   596
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   597
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   598
	/** No Errors *************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   599
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   600
	if ( !empty( $reply_id ) && !is_wp_error( $reply_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   601
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   602
		// Update counts, etc...
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   603
		do_action( 'bbp_edit_reply', $reply_id, $topic_id, $forum_id, $anonymous_data, $reply_author , true /* Is edit */ );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   604
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   605
		/** Additional Actions (After Save) ***********************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   606
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   607
		do_action( 'bbp_edit_reply_post_extras', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   608
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   609
		/** Redirect **********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   610
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   611
		// Redirect to
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   612
		$redirect_to = !empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   613
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   614
		// Get the reply URL
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   615
		$reply_url = bbp_get_reply_url( $reply_id, $redirect_to );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   616
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   617
		// Allow to be filtered
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   618
		$reply_url = apply_filters( 'bbp_edit_reply_redirect_to', $reply_url, $redirect_to );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   619
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   620
		/** Successful Edit ***************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   621
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   622
		// Redirect back to new reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   623
		wp_safe_redirect( $reply_url );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   624
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   625
		// For good measure
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   626
		exit();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   627
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   628
	/** Errors ****************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   629
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   630
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   631
		$append_error = ( is_wp_error( $reply_id ) && $reply_id->get_error_message() ) ? $reply_id->get_error_message() . ' ' : '';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   632
		bbp_add_error( 'bbp_reply_error', __( '<strong>ERROR</strong>: The following problem(s) have been found with your reply:' . $append_error . 'Please try again.', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   633
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   634
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   635
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   636
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   637
 * Handle all the extra meta stuff from posting a new reply or editing a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   638
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   639
 * @param int $reply_id Optional. Reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   640
 * @param int $topic_id Optional. Topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   641
 * @param int $forum_id Optional. Forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   642
 * @param bool|array $anonymous_data Optional. If it is an array, it is
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   643
 *                    extracted and anonymous user info is saved
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   644
 * @param int $author_id Author id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   645
 * @param bool $is_edit Optional. Is the post being edited? Defaults to false.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   646
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   647
 * @uses bbp_get_topic_id() To get the topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   648
 * @uses bbp_get_forum_id() To get the forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   649
 * @uses bbp_get_current_user_id() To get the current user id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   650
 * @uses bbp_get_reply_topic_id() To get the reply topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   651
 * @uses bbp_get_topic_forum_id() To get the topic forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   652
 * @uses update_post_meta() To update the reply metas
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   653
 * @uses set_transient() To update the flood check transient for the ip
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   654
 * @uses bbp_update_user_last_posted() To update the users last posted time
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   655
 * @uses bbp_is_subscriptions_active() To check if the subscriptions feature is
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   656
 *                                      activated or not
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   657
 * @uses bbp_is_user_subscribed() To check if the user is subscribed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   658
 * @uses bbp_remove_user_subscription() To remove the user's subscription
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   659
 * @uses bbp_add_user_subscription() To add the user's subscription
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   660
 * @uses bbp_update_reply_forum_id() To update the reply forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   661
 * @uses bbp_update_reply_topic_id() To update the reply topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   662
 * @uses bbp_update_reply_walker() To update the reply's ancestors' counts
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   663
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   664
function bbp_update_reply( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = false, $author_id = 0, $is_edit = false ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   665
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   666
	// Validate the ID's passed from 'bbp_new_reply' action
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   667
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   668
	$topic_id = bbp_get_topic_id( $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   669
	$forum_id = bbp_get_forum_id( $forum_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   670
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   671
	// Bail if there is no reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   672
	if ( empty( $reply_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   673
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   674
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   675
	// Check author_id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   676
	if ( empty( $author_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   677
		$author_id = bbp_get_current_user_id();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   678
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   679
	// Check topic_id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   680
	if ( empty( $topic_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   681
		$topic_id = bbp_get_reply_topic_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   682
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   683
	// Check forum_id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   684
	if ( !empty( $topic_id ) && empty( $forum_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   685
		$forum_id = bbp_get_topic_forum_id( $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   686
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   687
	// If anonymous post, store name, email, website and ip in post_meta.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   688
	// It expects anonymous_data to be sanitized.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   689
	// Check bbp_filter_anonymous_post_data() for sanitization.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   690
	if ( !empty( $anonymous_data ) && is_array( $anonymous_data ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   691
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   692
		// Always set at least these three values to empty
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   693
		$defaults = array(
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   694
			'bbp_anonymous_name'    => '',
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   695
			'bbp_anonymous_email'   => '',
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   696
			'bbp_anonymous_website' => '',
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   697
		);
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   698
		$r = bbp_parse_args( $anonymous_data, $defaults, 'update_reply' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   699
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   700
		// Update all anonymous metas
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   701
		foreach( $r as $anon_key => $anon_value ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   702
			update_post_meta( $reply_id, '_' . $anon_key, (string) $anon_value, false );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   703
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   704
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   705
		// Set transient for throttle check (only on new, not edit)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   706
		if ( empty( $is_edit ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   707
			set_transient( '_bbp_' . bbp_current_author_ip() . '_last_posted', time() );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   708
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   709
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   710
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   711
		if ( empty( $is_edit ) && !current_user_can( 'throttle' ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   712
			bbp_update_user_last_posted( $author_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   713
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   714
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   715
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   716
	// Handle Subscription Checkbox
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   717
	if ( bbp_is_subscriptions_active() && !empty( $author_id ) && !empty( $topic_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   718
		$subscribed = bbp_is_user_subscribed( $author_id, $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   719
		$subscheck  = ( !empty( $_POST['bbp_topic_subscription'] ) && ( 'bbp_subscribe' == $_POST['bbp_topic_subscription'] ) ) ? true : false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   720
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   721
		// Subscribed and unsubscribing
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   722
		if ( true == $subscribed && false == $subscheck ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   723
			bbp_remove_user_subscription( $author_id, $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   724
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   725
		// Subscribing
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   726
		} elseif ( false == $subscribed && true == $subscheck ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   727
			bbp_add_user_subscription( $author_id, $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   728
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   729
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   730
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   731
	// Reply meta relating to reply position in tree
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   732
	bbp_update_reply_forum_id( $reply_id, $forum_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   733
	bbp_update_reply_topic_id( $reply_id, $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   734
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   735
	// Update associated topic values if this is a new reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   736
	if ( empty( $is_edit ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   737
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   738
		// Update poster IP if not editing
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   739
		update_post_meta( $reply_id, '_bbp_author_ip', bbp_current_author_ip(), false );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   740
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   741
		// Last active time
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   742
		$last_active_time = current_time( 'mysql' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   743
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   744
		// Walk up ancestors and do the dirty work
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   745
		bbp_update_reply_walker( $reply_id, $last_active_time, $forum_id, $topic_id, false );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   746
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   747
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   748
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   749
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   750
 * Walk up the ancestor tree from the current reply, and update all the counts
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   751
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   752
 * @since bbPress (r2884)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   753
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   754
 * @param int $reply_id Optional. Reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   755
 * @param string $last_active_time Optional. Last active time
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   756
 * @param int $forum_id Optional. Forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   757
 * @param int $topic_id Optional. Topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   758
 * @param bool $refresh If set to true, unsets all the previous parameters.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   759
 *                       Defaults to true
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   760
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   761
 * @uses bbp_get_reply_topic_id() To get the reply topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   762
 * @uses bbp_get_reply_forum_id() To get the reply forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   763
 * @uses get_post_ancestors() To get the ancestors of the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   764
 * @uses bbp_is_reply() To check if the ancestor is a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   765
 * @uses bbp_is_topic() To check if the ancestor is a topic
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   766
 * @uses bbp_update_topic_last_reply_id() To update the topic last reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   767
 * @uses bbp_update_topic_last_active_id() To update the topic last active id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   768
 * @uses bbp_get_topic_last_active_id() To get the topic last active id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   769
 * @uses get_post_field() To get the post date of the last active id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   770
 * @uses bbp_update_topic_last_active_time() To update the last active topic meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   771
 * @uses bbp_update_topic_voice_count() To update the topic voice count
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   772
 * @uses bbp_update_topic_reply_count() To update the topic reply count
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   773
 * @uses bbp_update_topic_reply_count_hidden() To update the topic hidden reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   774
 *                                              count
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   775
 * @uses bbp_is_forum() To check if the ancestor is a forum
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   776
 * @uses bbp_update_forum_last_topic_id() To update the last topic id forum meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   777
 * @uses bbp_update_forum_last_reply_id() To update the last reply id forum meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   778
 * @uses bbp_update_forum_last_active_id() To update the forum last active id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   779
 * @uses bbp_get_forum_last_active_id() To get the forum last active id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   780
 * @uses bbp_update_forum_last_active_time() To update the forum last active time
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   781
 * @uses bbp_update_forum_reply_count() To update the forum reply count
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   782
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   783
function bbp_update_reply_walker( $reply_id, $last_active_time = '', $forum_id = 0, $topic_id = 0, $refresh = true ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   784
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   785
	// Verify the reply ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   786
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   787
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   788
	// Reply was passed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   789
	if ( !empty( $reply_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   790
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   791
		// Get the topic ID if none was passed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   792
		if ( empty( $topic_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   793
			$topic_id = bbp_get_reply_topic_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   794
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   795
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   796
		// Get the forum ID if none was passed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   797
		if ( empty( $forum_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   798
			$forum_id = bbp_get_reply_forum_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   799
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   800
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   801
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   802
	// Set the active_id based on topic_id/reply_id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   803
	$active_id = empty( $reply_id ) ? $topic_id : $reply_id;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   804
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   805
	// Setup ancestors array to walk up
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   806
	$ancestors = array_values( array_unique( array_merge( array( $topic_id, $forum_id ), (array) get_post_ancestors( $topic_id ) ) ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   807
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   808
	// If we want a full refresh, unset any of the possibly passed variables
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   809
	if ( true == $refresh )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   810
		$forum_id = $topic_id = $reply_id = $active_id = $last_active_time = 0;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   811
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   812
	// Walk up ancestors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   813
	if ( !empty( $ancestors ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   814
		foreach ( $ancestors as $ancestor ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   815
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   816
			// Reply meta relating to most recent reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   817
			if ( bbp_is_reply( $ancestor ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   818
				// @todo - hierarchical replies
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   819
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   820
			// Topic meta relating to most recent reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   821
			} elseif ( bbp_is_topic( $ancestor ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   822
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   823
				// Last reply and active ID's
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   824
				bbp_update_topic_last_reply_id ( $ancestor, $reply_id  );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   825
				bbp_update_topic_last_active_id( $ancestor, $active_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   826
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   827
				// Get the last active time if none was passed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   828
				$topic_last_active_time = $last_active_time;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   829
				if ( empty( $last_active_time ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   830
					$topic_last_active_time = get_post_field( 'post_date', bbp_get_topic_last_active_id( $ancestor ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   831
				}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   832
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   833
				// Only update if reply is published
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   834
				if ( bbp_is_reply_published( $reply_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   835
					bbp_update_topic_last_active_time( $ancestor, $topic_last_active_time );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   836
				}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   837
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   838
				// Counts
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   839
				bbp_update_topic_voice_count       ( $ancestor );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   840
				bbp_update_topic_reply_count       ( $ancestor );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   841
				bbp_update_topic_reply_count_hidden( $ancestor );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   842
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   843
			// Forum meta relating to most recent topic
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   844
			} elseif ( bbp_is_forum( $ancestor ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   845
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   846
				// Last topic and reply ID's
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   847
				bbp_update_forum_last_topic_id( $ancestor, $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   848
				bbp_update_forum_last_reply_id( $ancestor, $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   849
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   850
				// Last Active
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   851
				bbp_update_forum_last_active_id( $ancestor, $active_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   852
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   853
				// Get the last active time if none was passed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   854
				$forum_last_active_time = $last_active_time;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   855
				if ( empty( $last_active_time ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   856
					$forum_last_active_time = get_post_field( 'post_date', bbp_get_forum_last_active_id( $ancestor ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   857
				}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   858
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   859
				// Only update if reply is published
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   860
				if ( bbp_is_reply_published( $reply_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   861
					bbp_update_forum_last_active_time( $ancestor, $forum_last_active_time );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   862
				}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   863
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   864
				// Counts
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   865
				bbp_update_forum_reply_count( $ancestor );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   866
			}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   867
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   868
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   869
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   870
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   871
/** Reply Updaters ************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   872
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   873
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   874
 * Update the reply with its forum id it is in
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   875
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   876
 * @since bbPress (r2855)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   877
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   878
 * @param int $reply_id Optional. Reply id to update
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   879
 * @param int $forum_id Optional. Forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   880
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   881
 * @uses bbp_get_forum_id() To get the forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   882
 * @uses get_post_ancestors() To get the reply's forum
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   883
 * @uses get_post_field() To get the post type of the post
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   884
 * @uses update_post_meta() To update the reply forum id meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   885
 * @uses apply_filters() Calls 'bbp_update_reply_forum_id' with the forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   886
 *                        and reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   887
 * @return bool Reply's forum id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   888
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   889
function bbp_update_reply_forum_id( $reply_id = 0, $forum_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   890
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   891
	// Validation
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   892
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   893
	$forum_id = bbp_get_forum_id( $forum_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   894
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   895
	// If no forum_id was passed, walk up ancestors and look for forum type
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   896
	if ( empty( $forum_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   897
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   898
		// Get ancestors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   899
		$ancestors = (array) get_post_ancestors( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   900
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   901
		// Loop through ancestors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   902
		if ( !empty( $ancestors ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   903
			foreach ( $ancestors as $ancestor ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   904
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   905
				// Get first parent that is a forum
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   906
				if ( get_post_field( 'post_type', $ancestor ) == bbp_get_forum_post_type() ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   907
					$forum_id = $ancestor;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   908
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   909
					// Found a forum, so exit the loop and continue
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   910
					continue;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   911
				}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   912
			}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   913
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   914
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   915
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   916
	// Update the forum ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   917
	bbp_update_forum_id( $reply_id, $forum_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   918
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   919
	return apply_filters( 'bbp_update_reply_forum_id', (int) $forum_id, $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   920
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   921
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   922
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   923
 * Update the reply with its topic id it is in
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   924
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   925
 * @since bbPress (r2855)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   926
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   927
 * @param int $reply_id Optional. Reply id to update
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   928
 * @param int $topic_id Optional. Topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   929
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   930
 * @uses bbp_get_topic_id() To get the topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   931
 * @uses get_post_ancestors() To get the reply's topic
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   932
 * @uses get_post_field() To get the post type of the post
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   933
 * @uses update_post_meta() To update the reply topic id meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   934
 * @uses apply_filters() Calls 'bbp_update_reply_topic_id' with the topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   935
 *                        and reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   936
 * @return bool Reply's topic id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   937
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   938
function bbp_update_reply_topic_id( $reply_id = 0, $topic_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   939
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   940
	// Validation
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   941
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   942
	$topic_id = bbp_get_topic_id( $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   943
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   944
	// If no topic_id was passed, walk up ancestors and look for topic type
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   945
	if ( empty( $topic_id ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   946
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   947
		// Get ancestors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   948
		$ancestors = (array) get_post_ancestors( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   949
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   950
		// Loop through ancestors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   951
		if ( !empty( $ancestors ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   952
			foreach ( $ancestors as $ancestor ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   953
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   954
				// Get first parent that is a forum
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   955
				if ( get_post_field( 'post_type', $ancestor ) == bbp_get_topic_post_type() ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   956
					$topic_id = $ancestor;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   957
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   958
					// Found a forum, so exit the loop and continue
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   959
					continue;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   960
				}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   961
			}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   962
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   963
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   964
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   965
	// Update the topic ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   966
	bbp_update_topic_id( $reply_id, $topic_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   967
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   968
	return apply_filters( 'bbp_update_reply_topic_id', (int) $topic_id, $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   969
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   970
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   971
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   972
 * Update the revision log of the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   973
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   974
 * @since bbPress (r2782)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   975
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   976
 * @param mixed $args Supports these args:
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   977
 *  - reply_id: reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   978
 *  - author_id: Author id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   979
 *  - reason: Reason for editing
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   980
 *  - revision_id: Revision id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   981
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   982
 * @uses bbp_get_user_id() To get the user id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   983
 * @uses bbp_format_revision_reason() To format the reason
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   984
 * @uses bbp_get_reply_raw_revision_log() To get the raw reply revision log
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   985
 * @uses update_post_meta() To update the reply revision log meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   986
 * @return mixed False on failure, true on success
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   987
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   988
function bbp_update_reply_revision_log( $args = '' ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   989
	$defaults = array (
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   990
		'reason'      => '',
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   991
		'reply_id'    => 0,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   992
		'author_id'   => 0,
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   993
		'revision_id' => 0
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   994
	);
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   995
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   996
	$r = bbp_parse_args( $args, $defaults, 'update_reply_revision_log' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   997
	extract( $r );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   998
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   999
	// Populate the variables
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1000
	$reason      = bbp_format_revision_reason( $reason );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1001
	$reply_id    = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1002
	$author_id   = bbp_get_user_id ( $author_id, false, true );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1003
	$revision_id = (int) $revision_id;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1004
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1005
	// Get the logs and append the new one to those
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1006
	$revision_log               = bbp_get_reply_raw_revision_log( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1007
	$revision_log[$revision_id] = array( 'author' => $author_id, 'reason' => $reason );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1008
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1009
	// Finally, update
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1010
	update_post_meta( $reply_id, '_bbp_revision_log', $revision_log );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1011
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1012
	return apply_filters( 'bbp_update_reply_revision_log', $revision_log, $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1013
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1014
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1015
/** Reply Actions *************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1016
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1017
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1018
 * Handles the front end spamming/unspamming and trashing/untrashing/deleting of
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1019
 * replies
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1020
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1021
 * @since bbPress (r2740)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1022
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1023
 * @uses bbp_get_reply() To get the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1024
 * @uses current_user_can() To check if the user is capable of editing or
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1025
 *                           deleting the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1026
 * @uses check_ajax_referer() To verify the nonce and check the referer
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1027
 * @uses bbp_get_reply_post_type() To get the reply post type
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1028
 * @uses bbp_is_reply_spam() To check if the reply is marked as spam
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1029
 * @uses bbp_spam_reply() To make the reply as spam
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1030
 * @uses bbp_unspam_reply() To unmark the reply as spam
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1031
 * @uses wp_trash_post() To trash the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1032
 * @uses wp_untrash_post() To untrash the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1033
 * @uses wp_delete_post() To delete the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1034
 * @uses do_action() Calls 'bbp_toggle_reply_handler' with success, post data
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1035
 *                    and action
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1036
 * @uses bbp_get_reply_url() To get the reply url
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1037
 * @uses add_query_arg() To add custom args to the reply url
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1038
 * @uses wp_safe_redirect() To redirect to the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1039
 * @uses bbPress::errors:add() To log the error messages
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1040
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1041
function bbp_toggle_reply_handler() {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1042
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1043
	// Bail if not a GET action
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1044
	if ( 'GET' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1045
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1046
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1047
	// Bail if required GET actions aren't passed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1048
	if ( empty( $_GET['reply_id'] ) || empty( $_GET['action'] ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1049
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1050
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1051
	// Setup possible get actions
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1052
	$possible_actions = array(
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1053
		'bbp_toggle_reply_spam',
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1054
		'bbp_toggle_reply_trash'
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1055
	);
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1056
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1057
	// Bail if actions aren't meant for this function
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1058
	if ( !in_array( $_GET['action'], $possible_actions ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1059
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1060
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1061
	$failure   = '';                         // Empty failure string
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1062
	$view_all  = false;                      // Assume not viewing all
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1063
	$action    = $_GET['action'];            // What action is taking place?
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1064
	$reply_id  = (int) $_GET['reply_id'];    // What's the reply id?
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1065
	$success   = false;                      // Flag
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1066
	$post_data = array( 'ID' => $reply_id ); // Prelim array
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1067
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1068
	// Make sure reply exists
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1069
	$reply = bbp_get_reply( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1070
	if ( empty( $reply ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1071
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1072
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1073
	// What is the user doing here?
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1074
	if ( !current_user_can( 'edit_reply', $reply->ID ) || ( 'bbp_toggle_reply_trash' == $action && !current_user_can( 'delete_reply', $reply->ID ) ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1075
		bbp_add_error( 'bbp_toggle_reply_permission', __( '<strong>ERROR:</strong> You do not have the permission to do that!', 'bbpress' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1076
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1077
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1078
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1079
	// What action are we trying to perform?
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1080
	switch ( $action ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1081
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1082
		// Toggle spam
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1083
		case 'bbp_toggle_reply_spam' :
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1084
			check_ajax_referer( 'spam-reply_' . $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1085
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1086
			$is_spam  = bbp_is_reply_spam( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1087
			$success  = $is_spam ? bbp_unspam_reply( $reply_id ) : bbp_spam_reply( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1088
			$failure  = $is_spam ? __( '<strong>ERROR</strong>: There was a problem unmarking the reply as spam!', 'bbpress' ) : __( '<strong>ERROR</strong>: There was a problem marking the reply as spam!', 'bbpress' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1089
			$view_all = !$is_spam;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1090
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1091
			break;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1092
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1093
		// Toggle trash
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1094
		case 'bbp_toggle_reply_trash' :
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1095
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1096
			$sub_action = in_array( $_GET['sub_action'], array( 'trash', 'untrash', 'delete' ) ) ? $_GET['sub_action'] : false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1097
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1098
			if ( empty( $sub_action ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1099
				break;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1100
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1101
			switch ( $sub_action ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1102
				case 'trash':
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1103
					check_ajax_referer( 'trash-' . bbp_get_reply_post_type() . '_' . $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1104
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1105
					$view_all = true;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1106
					$success  = wp_trash_post( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1107
					$failure  = __( '<strong>ERROR</strong>: There was a problem trashing the reply!', 'bbpress' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1108
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1109
					break;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1110
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1111
				case 'untrash':
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1112
					check_ajax_referer( 'untrash-' . bbp_get_reply_post_type() . '_' . $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1113
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1114
					$success = wp_untrash_post( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1115
					$failure = __( '<strong>ERROR</strong>: There was a problem untrashing the reply!', 'bbpress' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1116
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1117
					break;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1118
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1119
				case 'delete':
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1120
					check_ajax_referer( 'delete-' . bbp_get_reply_post_type() . '_' . $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1121
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1122
					$success = wp_delete_post( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1123
					$failure = __( '<strong>ERROR</strong>: There was a problem deleting the reply!', 'bbpress' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1124
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1125
					break;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1126
			}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1127
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1128
			break;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1129
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1130
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1131
	// Do additional reply toggle actions
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1132
	do_action( 'bbp_toggle_reply_handler', $success, $post_data, $action );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1133
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1134
	// No errors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1135
	if ( ( false != $success ) && !is_wp_error( $success ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1136
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1137
		/** Redirect **********************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1138
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1139
		// Redirect to
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1140
		$redirect_to = !empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1141
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1142
		// Get the reply URL
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1143
		$reply_url = bbp_get_reply_url( $reply_id, $redirect_to );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1144
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1145
		// Add view all if needed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1146
		if ( !empty( $view_all ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1147
			$reply_url = bbp_add_view_all( $reply_url, true );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1148
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1149
		// Redirect back to reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1150
		wp_safe_redirect( $reply_url );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1151
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1152
		// For good measure
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1153
		exit();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1154
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1155
	// Handle errors
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1156
	} else {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1157
		bbp_add_error( 'bbp_toggle_reply', $failure );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1158
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1159
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1160
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1161
/** Reply Actions *************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1162
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1163
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1164
 * Marks a reply as spam
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1165
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1166
 * @since bbPress (r2740)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1167
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1168
 * @param int $reply_id Reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1169
 * @uses get_post() To get the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1170
 * @uses do_action() Calls 'bbp_spam_reply' with the reply ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1171
 * @uses add_post_meta() To add the previous status to a meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1172
 * @uses wp_insert_post() To insert the updated post
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1173
 * @uses do_action() Calls 'bbp_spammed_reply' with the reply ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1174
 * @return mixed False or {@link WP_Error} on failure, reply id on success
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1175
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1176
function bbp_spam_reply( $reply_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1177
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1178
	// Get reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1179
	$reply = get_post( $reply_id, ARRAY_A );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1180
	if ( empty( $reply ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1181
		return $reply;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1182
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1183
	// Bail if already spam
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1184
	if ( bbp_get_spam_status_id() == $reply['post_status'] )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1185
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1186
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1187
	// Execute pre spam code
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1188
	do_action( 'bbp_spam_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1189
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1190
	// Add the original post status as post meta for future restoration
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1191
	add_post_meta( $reply_id, '_bbp_spam_meta_status', $reply['post_status'] );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1192
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1193
	// Set post status to spam
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1194
	$reply['post_status'] = bbp_get_spam_status_id();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1195
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1196
	// No revisions
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1197
	remove_action( 'pre_post_update', 'wp_save_post_revision' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1198
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1199
	// Update the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1200
	$reply_id = wp_insert_post( $reply );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1201
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1202
	// Execute post spam code
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1203
	do_action( 'bbp_spammed_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1204
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1205
	// Return reply_id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1206
	return $reply_id;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1207
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1208
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1209
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1210
 * Unspams a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1211
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1212
 * @since bbPress (r2740)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1213
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1214
 * @param int $reply_id Reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1215
 * @uses get_post() To get the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1216
 * @uses do_action() Calls 'bbp_unspam_reply' with the reply ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1217
 * @uses get_post_meta() To get the previous status meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1218
 * @uses delete_post_meta() To delete the previous status meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1219
 * @uses wp_insert_post() To insert the updated post
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1220
 * @uses do_action() Calls 'bbp_unspammed_reply' with the reply ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1221
 * @return mixed False or {@link WP_Error} on failure, reply id on success
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1222
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1223
function bbp_unspam_reply( $reply_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1224
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1225
	// Get reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1226
	$reply = get_post( $reply_id, ARRAY_A );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1227
	if ( empty( $reply ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1228
		return $reply;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1229
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1230
	// Bail if already not spam
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1231
	if ( bbp_get_spam_status_id() != $reply['post_status'] )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1232
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1233
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1234
	// Execute pre unspam code
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1235
	do_action( 'bbp_unspam_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1236
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1237
	// Get pre spam status
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1238
	$reply['post_status'] = get_post_meta( $reply_id, '_bbp_spam_meta_status', true );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1239
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1240
	// Delete pre spam meta
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1241
	delete_post_meta( $reply_id, '_bbp_spam_meta_status' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1242
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1243
	// No revisions
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1244
	remove_action( 'pre_post_update', 'wp_save_post_revision' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1245
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1246
	// Update the reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1247
	$reply_id = wp_insert_post( $reply );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1248
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1249
	// Execute post unspam code
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1250
	do_action( 'bbp_unspammed_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1251
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1252
	// Return reply_id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1253
	return $reply_id;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1254
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1255
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1256
/** Before Delete/Trash/Untrash ***********************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1257
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1258
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1259
 * Called before deleting a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1260
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1261
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1262
 * @uses bbp_is_reply() To check if the passed id is a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1263
 * @uses do_action() Calls 'bbp_delete_reply' with the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1264
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1265
function bbp_delete_reply( $reply_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1266
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1267
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1268
	if ( empty( $reply_id ) || !bbp_is_reply( $reply_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1269
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1270
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1271
	do_action( 'bbp_delete_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1272
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1273
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1274
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1275
 * Called before trashing a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1276
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1277
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1278
 * @uses bbp_is_reply() To check if the passed id is a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1279
 * @uses do_action() Calls 'bbp_trash_reply' with the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1280
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1281
function bbp_trash_reply( $reply_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1282
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1283
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1284
	if ( empty( $reply_id ) || !bbp_is_reply( $reply_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1285
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1286
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1287
	do_action( 'bbp_trash_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1288
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1289
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1290
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1291
 * Called before untrashing (restoring) a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1292
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1293
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1294
 * @uses bbp_is_reply() To check if the passed id is a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1295
 * @uses do_action() Calls 'bbp_unstrash_reply' with the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1296
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1297
function bbp_untrash_reply( $reply_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1298
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1299
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1300
	if ( empty( $reply_id ) || !bbp_is_reply( $reply_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1301
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1302
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1303
	do_action( 'bbp_untrash_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1304
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1305
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1306
/** After Delete/Trash/Untrash ************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1307
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1308
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1309
 * Called after deleting a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1310
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1311
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1312
 * @uses bbp_is_reply() To check if the passed id is a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1313
 * @uses do_action() Calls 'bbp_deleted_reply' with the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1314
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1315
function bbp_deleted_reply( $reply_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1316
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1317
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1318
	if ( empty( $reply_id ) || !bbp_is_reply( $reply_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1319
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1320
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1321
	do_action( 'bbp_deleted_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1322
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1323
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1324
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1325
 * Called after trashing a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1326
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1327
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1328
 * @uses bbp_is_reply() To check if the passed id is a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1329
 * @uses do_action() Calls 'bbp_trashed_reply' with the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1330
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1331
function bbp_trashed_reply( $reply_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1332
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1333
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1334
	if ( empty( $reply_id ) || !bbp_is_reply( $reply_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1335
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1336
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1337
	do_action( 'bbp_trashed_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1338
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1339
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1340
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1341
 * Called after untrashing (restoring) a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1342
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1343
 * @uses bbp_get_reply_id() To get the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1344
 * @uses bbp_is_reply() To check if the passed id is a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1345
 * @uses do_action() Calls 'bbp_untrashed_reply' with the reply id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1346
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1347
function bbp_untrashed_reply( $reply_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1348
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1349
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1350
	if ( empty( $reply_id ) || !bbp_is_reply( $reply_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1351
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1352
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1353
	do_action( 'bbp_untrashed_reply', $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1354
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1355
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1356
/** Settings ******************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1357
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1358
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1359
 * Return the replies per page setting
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1360
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1361
 * @since bbPress (r3540)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1362
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1363
 * @param int $default Default replies per page (15)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1364
 * @uses get_option() To get the setting
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1365
 * @uses apply_filters() To allow the return value to be manipulated
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1366
 * @return int
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1367
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1368
function bbp_get_replies_per_page( $default = 15 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1369
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1370
	// Get database option and cast as integer
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1371
	$retval = get_option( '_bbp_replies_per_page', $default );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1372
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1373
	// If return val is empty, set it to default
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1374
	if ( empty( $retval ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1375
		$retval = $default;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1376
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1377
	// Filter and return
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1378
	return (int) apply_filters( 'bbp_get_replies_per_page', $retval, $default );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1379
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1380
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1381
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1382
 * Return the replies per RSS page setting
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1383
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1384
 * @since bbPress (r3540)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1385
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1386
 * @param int $default Default replies per page (25)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1387
 * @uses get_option() To get the setting
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1388
 * @uses apply_filters() To allow the return value to be manipulated
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1389
 * @return int
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1390
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1391
function bbp_get_replies_per_rss_page( $default = 25 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1392
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1393
	// Get database option and cast as integer
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1394
	$retval = get_option( '_bbp_replies_per_rss_page', $default );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1395
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1396
	// If return val is empty, set it to default
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1397
	if ( empty( $retval ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1398
		$retval = $default;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1399
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1400
	// Filter and return
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1401
	return (int) apply_filters( 'bbp_get_replies_per_rss_page', $retval, $default );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1402
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1403
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1404
/** Autoembed *****************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1405
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1406
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1407
 * Check if autoembeds are enabled and hook them in if so
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1408
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1409
 * @since bbPress (r3752)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1410
 * @global WP_Embed $wp_embed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1411
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1412
function bbp_reply_content_autoembed() {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1413
	global $wp_embed;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1414
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1415
	if ( bbp_use_autoembed() && is_a( $wp_embed, 'WP_Embed' ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1416
		add_filter( 'bbp_get_reply_content', array( $wp_embed, 'autoembed' ), 8 );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1417
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1418
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1419
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1420
/** Filters *******************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1421
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1422
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1423
 * Used by bbp_has_replies() to add the topic to the posts
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1424
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1425
 * This function filters the 'post_where' of the WP_Query, and changes the query
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1426
 * to include both the topic AND its children in the same loop.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1427
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1428
 * @since bbPress (r4058)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1429
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1430
 * @param string $where
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1431
 * @return string
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1432
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1433
function _bbp_has_replies_where( $where, $query ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1434
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1435
	// Bail if no post_parent to replace
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1436
	if ( ! is_numeric( $query->get( 'post_parent' ) ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1437
		return $where;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1438
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1439
	// Bail if not a topic and reply query
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1440
	if ( array( bbp_get_topic_post_type(), bbp_get_reply_post_type() ) != $query->get( 'post_type' ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1441
		return $where;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1442
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1443
	// Bail if meta query
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1444
	if ( $query->get( 'meta_key' ) || $query->get( 'meta_query' ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1445
		return $where;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1446
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1447
	global $wpdb;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1448
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1449
	// Table name for posts
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1450
	$table_name = $wpdb->prefix . 'posts';
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1451
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1452
	// Get the topic ID
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1453
	$topic_id   = bbp_get_topic_id();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1454
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1455
	// The text we're searching for
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1456
	$search     = "WHERE 1=1  AND {$table_name}.post_parent = {$topic_id}";
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1457
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1458
	// The text to replace it with
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1459
	$replace    = "FORCE INDEX (PRIMARY, post_parent) WHERE 1=1 AND ({$table_name}.ID = {$topic_id} OR {$table_name}.post_parent = {$topic_id})";
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1460
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1461
	// Try to replace the search text with the replacement
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1462
	if ( $new_where = str_replace( $search, $replace, $where ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1463
		$where = $new_where;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1464
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1465
	return $where;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1466
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1467
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1468
/** Feeds *********************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1469
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1470
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1471
 * Output an RSS2 feed of replies, based on the query passed.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1472
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1473
 * @since bbPress (r3171)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1474
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1475
 * @uses bbp_version()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1476
 * @uses bbp_is_single_topic()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1477
 * @uses bbp_user_can_view_forum()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1478
 * @uses bbp_get_topic_forum_id()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1479
 * @uses bbp_show_load_topic()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1480
 * @uses bbp_topic_permalink()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1481
 * @uses bbp_topic_title()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1482
 * @uses bbp_get_topic_reply_count()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1483
 * @uses bbp_topic_content()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1484
 * @uses bbp_has_replies()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1485
 * @uses bbp_replies()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1486
 * @uses bbp_the_reply()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1487
 * @uses bbp_reply_url()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1488
 * @uses bbp_reply_title()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1489
 * @uses bbp_reply_content()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1490
 * @uses get_wp_title_rss()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1491
 * @uses get_option()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1492
 * @uses bloginfo_rss
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1493
 * @uses self_link()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1494
 * @uses the_author()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1495
 * @uses get_post_time()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1496
 * @uses rss_enclosure()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1497
 * @uses do_action()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1498
 * @uses apply_filters()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1499
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1500
 * @param array $replies_query
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1501
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1502
function bbp_display_replies_feed_rss2( $replies_query = array() ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1503
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1504
	// User cannot access forum this topic is in
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1505
	if ( bbp_is_single_topic() && !bbp_user_can_view_forum( array( 'forum_id' => bbp_get_topic_forum_id() ) ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1506
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1507
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1508
	// Adjust the title based on context
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1509
	if ( bbp_is_single_topic() && bbp_user_can_view_forum( array( 'forum_id' => bbp_get_topic_forum_id() ) ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1510
		$title = apply_filters( 'wp_title_rss', get_wp_title_rss( ' &#187; ' ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1511
	elseif ( !bbp_show_lead_topic() )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1512
		$title = ' &#187; ' .  __( 'All Posts',   'bbpress' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1513
	else
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1514
		$title = ' &#187; ' .  __( 'All Replies', 'bbpress' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1515
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1516
	// Display the feed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1517
	header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ), true );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1518
	header( 'Status: 200 OK' );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1519
	echo '<?xml version="1.0" encoding="' . get_option( 'blog_charset' ) . '"?' . '>'; ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1520
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1521
	<rss version="2.0"
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1522
		xmlns:content="http://purl.org/rss/1.0/modules/content/"
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1523
		xmlns:wfw="http://wellformedweb.org/CommentAPI/"
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1524
		xmlns:dc="http://purl.org/dc/elements/1.1/"
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1525
		xmlns:atom="http://www.w3.org/2005/Atom"
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1526
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1527
		<?php do_action( 'bbp_feed' ); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1528
	>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1529
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1530
	<channel>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1531
		<title><?php bloginfo_rss('name'); echo $title; ?></title>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1532
		<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1533
		<link><?php self_link(); ?></link>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1534
		<description><?php //?></description>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1535
		<pubDate><?php echo mysql2date( 'D, d M Y H:i:s O', current_time( 'mysql' ), false ); ?></pubDate>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1536
		<generator>http://bbpress.org/?v=<?php bbp_version(); ?></generator>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1537
		<language><?php echo get_option( 'rss_language' ); ?></language>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1538
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1539
		<?php do_action( 'bbp_feed_head' ); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1540
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1541
		<?php if ( bbp_is_single_topic() ) : ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1542
			<?php if ( bbp_user_can_view_forum( array( 'forum_id' => bbp_get_topic_forum_id() ) ) ) : ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1543
				<?php if ( bbp_show_lead_topic() ) : ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1544
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1545
					<item>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1546
						<guid><?php bbp_topic_permalink(); ?></guid>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1547
						<title><![CDATA[<?php bbp_topic_title(); ?>]]></title>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1548
						<link><?php bbp_topic_permalink(); ?></link>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1549
						<pubDate><?php echo mysql2date( 'D, d M Y H:i:s +0000', get_post_time( 'Y-m-d H:i:s', true ), false ); ?></pubDate>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1550
						<dc:creator><?php the_author(); ?></dc:creator>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1551
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1552
						<description>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1553
							<![CDATA[
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1554
							<p><?php printf( __( 'Replies: %s', 'bbpress' ), bbp_get_topic_reply_count() ); ?></p>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1555
							<?php bbp_topic_content(); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1556
							]]>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1557
						</description>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1558
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1559
						<?php rss_enclosure(); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1560
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1561
						<?php do_action( 'bbp_feed_item' ); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1562
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1563
					</item>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1564
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1565
				<?php endif; ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1566
			<?php endif; ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1567
		<?php endif; ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1568
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1569
		<?php if ( bbp_has_replies( $replies_query ) ) : ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1570
			<?php while ( bbp_replies() ) : bbp_the_reply(); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1571
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1572
				<item>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1573
					<guid><?php bbp_reply_url(); ?></guid>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1574
					<title><![CDATA[<?php bbp_reply_title(); ?>]]></title>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1575
					<link><?php bbp_reply_url(); ?></link>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1576
					<pubDate><?php echo mysql2date( 'D, d M Y H:i:s +0000', get_post_time( 'Y-m-d H:i:s', true ), false ); ?></pubDate>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1577
					<dc:creator><?php the_author() ?></dc:creator>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1578
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1579
					<description>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1580
						<![CDATA[
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1581
						<?php bbp_reply_content(); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1582
						]]>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1583
					</description>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1584
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1585
					<?php rss_enclosure(); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1586
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1587
					<?php do_action( 'bbp_feed_item' ); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1588
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1589
				</item>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1590
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1591
			<?php endwhile; ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1592
		<?php endif; ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1593
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1594
		<?php do_action( 'bbp_feed_footer' ); ?>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1595
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1596
	</channel>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1597
	</rss>
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1598
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1599
<?php
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1600
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1601
	// We're done here
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1602
	exit();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1603
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1604
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1605
/** Permissions ***************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1606
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1607
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1608
 * Redirect if unathorized user is attempting to edit a reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1609
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1610
 * @since bbPress (r3605)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1611
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1612
 * @uses bbp_is_reply_edit()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1613
 * @uses current_user_can()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1614
 * @uses bbp_get_topic_id()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1615
 * @uses wp_safe_redirect()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1616
 * @uses bbp_get_topic_permalink()
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1617
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1618
function bbp_check_reply_edit() {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1619
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1620
	// Bail if not editing a topic
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1621
	if ( !bbp_is_reply_edit() )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1622
		return;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1623
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1624
	// User cannot edit topic, so redirect back to reply
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1625
	if ( !current_user_can( 'edit_reply', bbp_get_reply_id() ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1626
		wp_safe_redirect( bbp_get_reply_url() );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1627
		exit();
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1628
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1629
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1630
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1631
/** Reply Position ************************************************************/
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1632
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1633
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1634
 * Update the position of the reply.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1635
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1636
 * The reply position is stored in the menu_order column of the posts table.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1637
 * This is done to prevent using a meta_query to retrieve posts in the proper
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1638
 * freshness order. By updating the menu_order accordingly, we're able to
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1639
 * leverage core WordPress query ordering much more effectively.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1640
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1641
 * @since bbPress (r3933)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1642
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1643
 * @global type $wpdb
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1644
 * @param type $reply_id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1645
 * @param type $reply_position
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1646
 * @return mixed
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1647
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1648
function bbp_update_reply_position( $reply_id = 0, $reply_position = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1649
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1650
	// Bail if reply_id is empty
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1651
	$reply_id = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1652
	if ( empty( $reply_id ) )
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1653
		return false;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1654
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1655
	// If no position was passed, get it from the db and update the menu_order
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1656
	if ( empty( $reply_position ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1657
		$reply_position = bbp_get_reply_position_raw( $reply_id, bbp_get_reply_topic_id( $reply_id ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1658
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1659
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1660
	// Update the replies' 'menp_order' with the reply position
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1661
	global $wpdb;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1662
	$wpdb->update( $wpdb->posts, array( 'menu_order' => $reply_position ), array( 'ID' => $reply_id ) );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1663
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1664
	return (int) $reply_position;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1665
}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1666
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1667
/**
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1668
 * Get the position of a reply by querying the DB directly for the replies
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1669
 * of a given topic.
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1670
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1671
 * @since bbPress (r3933)
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1672
 *
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1673
 * @param int $reply_id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1674
 * @param int $topic_id
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1675
 */
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1676
function bbp_get_reply_position_raw( $reply_id = 0, $topic_id = 0 ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1677
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1678
	// Get required data
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1679
	$reply_id       = bbp_get_reply_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1680
	$topic_id       = !empty( $topic_id ) ? bbp_get_topic_id( $topic_id ) : bbp_get_reply_topic_id( $reply_id );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1681
	$reply_position = 0;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1682
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1683
	// If reply is actually the first post in a topic, return 0
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1684
	if ( $reply_id != $topic_id ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1685
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1686
		// Make sure the topic has replies before running another query
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1687
		$reply_count = bbp_get_topic_reply_count( $topic_id, false );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1688
		if ( !empty( $reply_count ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1689
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1690
			// Get reply id's
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1691
			$topic_replies = bbp_get_all_child_ids( $topic_id, bbp_get_reply_post_type() );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1692
			if ( !empty( $topic_replies ) ) {
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1693
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1694
				// Reverse replies array and search for current reply position
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1695
				$topic_replies  = array_reverse( $topic_replies );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1696
				$reply_position = array_search( (string) $reply_id, $topic_replies );
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1697
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1698
				// Bump the position to compensate for the lead topic post
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1699
				$reply_position++;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1700
			}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1701
		}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1702
	}
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1703
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1704
	return (int) $reply_position;
5e8dcbe22c24 ajout plugins pour résoudre les messages d'erreurs
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1705
}