Skip to:
Content

bbPress.org


Ignore:
Timestamp:
03/06/2013 05:00:53 PM (11 years ago)
Author:
johnjamesjacoby
Message:

Introduce helper functions for determining the REQUEST_METHOD, and replace occurrences with these new functions. Cleans up inconsistent handling of requests through-out the project.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/includes/admin/tools.php

    r4766 r4791  
    8080function bbp_admin_repair_handler() {
    8181
    82     if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) ) {
    83         check_admin_referer( 'bbpress-do-counts' );
    84 
    85         // Stores messages
    86         $messages = array();
    87 
    88         wp_cache_flush();
    89 
    90         foreach ( (array) bbp_admin_repair_list() as $item ) {
    91             if ( isset( $item[2] ) && isset( $_POST[$item[0]] ) && 1 == $_POST[$item[0]] && is_callable( $item[2] ) ) {
    92                 $messages[] = call_user_func( $item[2] );
    93             }
    94         }
    95 
    96         if ( count( $messages ) ) {
    97             foreach ( $messages as $message ) {
    98                 bbp_admin_tools_feedback( $message[1] );
    99             }
     82    if ( ! bbp_is_post_request() )
     83        return;
     84
     85    check_admin_referer( 'bbpress-do-counts' );
     86
     87    // Stores messages
     88    $messages = array();
     89
     90    wp_cache_flush();
     91
     92    foreach ( (array) bbp_admin_repair_list() as $item ) {
     93        if ( isset( $item[2] ) && isset( $_POST[$item[0]] ) && 1 == $_POST[$item[0]] && is_callable( $item[2] ) ) {
     94            $messages[] = call_user_func( $item[2] );
     95        }
     96    }
     97
     98    if ( count( $messages ) ) {
     99        foreach ( $messages as $message ) {
     100            bbp_admin_tools_feedback( $message[1] );
    100101        }
    101102    }
     
    11441145 */
    11451146function bbp_admin_reset_handler() {
    1146     if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) && !empty( $_POST['bbpress-are-you-sure'] ) ) {
    1147         check_admin_referer( 'bbpress-reset' );
    1148 
    1149         global $wpdb;
    1150 
    1151         // Stores messages
    1152         $messages = array();
    1153         $failed   = __( 'Failed',   'bbpress' );
    1154         $success  = __( 'Success!', 'bbpress' );
    1155 
    1156         // Flush the cache; things are about to get ugly.
    1157         wp_cache_flush();
    1158 
    1159         /** Posts *************************************************************/
    1160 
    1161         $statement  = __( 'Deleting Posts… %s', 'bbpress' );
    1162         $sql_posts  = $wpdb->get_results( "SELECT `ID` FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')", OBJECT_K );
    1163         $sql_delete = "DELETE FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')";
     1147
     1148    // Bail if not resetting
     1149    if ( ! bbp_is_post_request() || empty( $_POST['bbpress-are-you-sure'] ) )
     1150        return;
     1151
     1152    // Only keymasters can proceed
     1153    if ( ! bbp_is_user_keymaster() )
     1154        return;
     1155
     1156    check_admin_referer( 'bbpress-reset' );
     1157
     1158    global $wpdb;
     1159
     1160    // Stores messages
     1161    $messages = array();
     1162    $failed   = __( 'Failed',   'bbpress' );
     1163    $success  = __( 'Success!', 'bbpress' );
     1164
     1165    // Flush the cache; things are about to get ugly.
     1166    wp_cache_flush();
     1167
     1168    /** Posts *************************************************************/
     1169
     1170    $statement  = __( 'Deleting Posts… %s', 'bbpress' );
     1171    $sql_posts  = $wpdb->get_results( "SELECT `ID` FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')", OBJECT_K );
     1172    $sql_delete = "DELETE FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')";
     1173    $result     = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success;
     1174    $messages[] = sprintf( $statement, $result );
     1175
     1176
     1177    /** Post Meta *********************************************************/
     1178
     1179    if ( !empty( $sql_posts ) ) {
     1180        foreach( $sql_posts as $key => $value ) {
     1181            $sql_meta[] = $key;
     1182        }
     1183        $statement  = __( 'Deleting Post Meta… %s', 'bbpress' );
     1184        $sql_meta   = implode( "', '", $sql_meta );
     1185        $sql_delete = "DELETE FROM `{$wpdb->postmeta}` WHERE `post_id` IN ('{$sql_meta}');";
    11641186        $result     = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success;
    11651187        $messages[] = sprintf( $statement, $result );
    1166 
    1167 
    1168         /** Post Meta *********************************************************/
    1169 
    1170         if ( !empty( $sql_posts ) ) {
    1171             foreach( $sql_posts as $key => $value ) {
    1172                 $sql_meta[] = $key;
    1173             }
    1174             $statement  = __( 'Deleting Post Meta… %s', 'bbpress' );
    1175             $sql_meta   = implode( "', '", $sql_meta );
    1176             $sql_delete = "DELETE FROM `{$wpdb->postmeta}` WHERE `post_id` IN ('{$sql_meta}');";
    1177             $result     = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success;
    1178             $messages[] = sprintf( $statement, $result );
    1179         }
    1180 
    1181         /** Topic Tags ********************************************************/
    1182 
    1183         $statement  = __( 'Deleting Topic Tags… %s', 'bbpress' );
    1184         $sql_delete = "DELETE a,b,c FROM `{$wpdb->terms}` AS a LEFT JOIN `{$wpdb->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$wpdb->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'topic-tag';";
    1185         $result     = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success;
    1186         $messages[] = sprintf( $statement, $result );
    1187 
    1188         /** User Meta *********************************************************/
    1189 
    1190         $statement  = __( 'Deleting User Meta… %s', 'bbpress' );
    1191         $sql_delete = "DELETE FROM `{$wpdb->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%';";
    1192         $result     = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success;
    1193         $messages[] = sprintf( $statement, $result );
    1194 
    1195         /** Converter *********************************************************/
    1196 
    1197         $statement  = __( 'Deleting Conversion Table… %s', 'bbpress' );
    1198         $table_name = $wpdb->prefix . 'bbp_converter_translator';
    1199         if ( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ) == $table_name ) {
    1200             $wpdb->query( "DROP TABLE {$table_name}" );
    1201             $result = $success;
    1202         } else {
    1203             $result = $failed;
    1204         }
    1205         $messages[] = sprintf( $statement, $result );
    1206 
    1207         /** Options ***********************************************************/
    1208 
    1209         $statement  = __( 'Deleting Settings… %s', 'bbpress' );
    1210         bbp_delete_options();
    1211         $messages[] = sprintf( $statement, $success );
    1212 
    1213         /** Roles *************************************************************/
    1214 
    1215         $statement  = __( 'Deleting Roles and Capabilities… %s', 'bbpress' );
    1216         remove_role( bbp_get_moderator_role() );
    1217         remove_role( bbp_get_participant_role() );
    1218         bbp_remove_caps();
    1219         $messages[] = sprintf( $statement, $success );
    1220 
    1221         /** Output ************************************************************/
    1222 
    1223         if ( count( $messages ) ) {
    1224             foreach ( $messages as $message ) {
    1225                 bbp_admin_tools_feedback( $message );
    1226             }
    1227         }
    1228     }
    1229 }
     1188    }
     1189
     1190    /** Topic Tags ********************************************************/
     1191
     1192    $statement  = __( 'Deleting Topic Tags… %s', 'bbpress' );
     1193    $sql_delete = "DELETE a,b,c FROM `{$wpdb->terms}` AS a LEFT JOIN `{$wpdb->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$wpdb->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'topic-tag';";
     1194    $result     = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success;
     1195    $messages[] = sprintf( $statement, $result );
     1196
     1197    /** User Meta *********************************************************/
     1198
     1199    $statement  = __( 'Deleting User Meta… %s', 'bbpress' );
     1200    $sql_delete = "DELETE FROM `{$wpdb->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%';";
     1201    $result     = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success;
     1202    $messages[] = sprintf( $statement, $result );
     1203
     1204    /** Converter *********************************************************/
     1205
     1206    $statement  = __( 'Deleting Conversion Table… %s', 'bbpress' );
     1207    $table_name = $wpdb->prefix . 'bbp_converter_translator';
     1208    if ( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ) == $table_name ) {
     1209        $wpdb->query( "DROP TABLE {$table_name}" );
     1210        $result = $success;
     1211    } else {
     1212        $result = $failed;
     1213    }
     1214    $messages[] = sprintf( $statement, $result );
     1215
     1216    /** Options ***********************************************************/
     1217
     1218    $statement  = __( 'Deleting Settings… %s', 'bbpress' );
     1219    bbp_delete_options();
     1220    $messages[] = sprintf( $statement, $success );
     1221
     1222    /** Roles *************************************************************/
     1223
     1224    $statement  = __( 'Deleting Roles and Capabilities… %s', 'bbpress' );
     1225    remove_role( bbp_get_moderator_role() );
     1226    remove_role( bbp_get_participant_role() );
     1227    bbp_remove_caps();
     1228    $messages[] = sprintf( $statement, $success );
     1229
     1230    /** Output ************************************************************/
     1231
     1232    if ( count( $messages ) ) {
     1233        foreach ( $messages as $message ) {
     1234            bbp_admin_tools_feedback( $message );
     1235        }
     1236    }
     1237}
Note: See TracChangeset for help on using the changeset viewer.