WordPress.org

Plugin Directory

Changeset 468158


Ignore:
Timestamp:
11/27/11 08:40:10 (2 years ago)
Author:
sorich87
Message:

Fixed meta data export, done internationalization, added French and Turkish translations

Location:
export-users-to-csv/trunk
Files:
6 added
1 edited

Legend:

Unmodified
Added
Removed
  • export-users-to-csv/trunk/export-users-to-csv.php

    r433472 r468158  
    22/** 
    33 * @package Export_Users_to_CSV 
    4  * @version 0.2 
     4 * @version 0.3 
    55 */ 
    66/* 
     
    88Plugin URI: http://pubpoet.com/plugins/ 
    99Description: Export Users data and metadata to a csv file. 
    10 Version: 0.2 
     10Version: 0.3 
    1111Author: PubPoet 
    1212Author URI: http://pubpoet.com/ 
    1313License: GPL2 
     14Text Domain: export-users-to-csv 
    1415*/ 
    15 /*  Copyright 2011  Ulrich Sossou  (email : sorich87@gmail.com) 
     16/*  Copyright 2011  Ulrich Sossou  (http://github.com/sorich87) 
    1617 
    1718    This program is free software; you can redistribute it and/or modify 
     
    2829    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
    2930*/ 
     31 
     32load_plugin_textdomain( 'export-users-to-csv', false, basename( dirname( __FILE__ ) ) . '/languages' ); 
    3033 
    3134/** 
     
    5356     **/ 
    5457    public function add_admin_pages() { 
    55         add_users_page( __( 'Export to CSV' ), __( 'Export to CSV' ), 'list_users', 'export-users-to-csv', array( $this, 'users_page' ) ); 
     58        add_users_page( __( 'Export to CSV', 'export-users-to-csv' ), __( 'Export to CSV', 'export-users-to-csv' ), 'list_users', 'export-users-to-csv', array( $this, 'users_page' ) ); 
    5659    } 
    5760 
     
    6972                'role' => stripslashes( $_POST['role'] ) 
    7073            ); 
    71  
    72             if ( ! empty( $args['role'] ) ) { 
    73                 global $wp_roles; 
    74                 $roles = array_keys( $wp_roles->role_names ); 
    75  
    76                 if ( ! in_array( $_POST['role'], $roles ) ) 
    77                     $args['role'] = ''; 
    78             } 
    7974 
    8075            add_action( 'pre_user_query', array( $this, 'pre_user_query' ) ); 
     
    9994            $exclude_data = apply_filters( 'pp_eu_exclude_data', array() ); 
    10095 
    101             $first_user = reset( $users ); 
    102             $fields = array_keys( (array) $first_user->data ); 
     96            global $wpdb; 
     97 
     98            $data_keys = array( 
     99                'ID', 'user_login', 'user_pass', 
     100                'user_nicename', 'user_email', 'user_url', 
     101                'user_registered', 'user_activation_key', 'user_status', 
     102                'display_name' 
     103            ); 
     104            $meta_keys = $wpdb->get_results( "SELECT distinct(meta_key) FROM $wpdb->usermeta" ); 
     105            $meta_keys = wp_list_pluck( $meta_keys, 'meta_key' ); 
     106            $fields = array_merge( $data_keys, $meta_keys ); 
     107 
    103108            $headers = array(); 
    104109            foreach ( $fields as $key => $field ) { 
     
    113118                $data = array(); 
    114119                foreach ( $fields as $field ) { 
    115                     $user_data = (array) $user->data; 
    116                     $value = $user_data[$field]; 
    117                     $data[] = is_array( $value ) ? '"' . serialize( $value ) . '"' : '"' . $value . '"'; 
     120                    $value = isset( $user->{$field} ) ? $user->{$field} : ''; 
     121                    $value = is_array( $value ) ? serialize( $value ) : $value; 
     122                    $data[] = '"' . str_replace( '"', '""', $value ) . '"'; 
    118123                } 
    119124                echo implode( ',', $data ) . "\n"; 
     
    131136    public function users_page() { 
    132137        if ( ! current_user_can( 'list_users' ) ) 
    133             wp_die( __( 'You do not have sufficient permissions to access this page.' ) ); 
     138            wp_die( __( 'You do not have sufficient permissions to access this page.', 'export-users-to-csv' ) ); 
    134139?> 
    135140 
    136141<div class="wrap"> 
    137     <h2><?php _e( 'Export users to a CSV file' ); ?></h2> 
     142    <h2><?php _e( 'Export users to a CSV file', 'export-users-to-csv' ); ?></h2> 
    138143    <?php 
    139144    if ( isset( $_GET['error'] ) ) { 
    140         echo '<div class="updated"><p><strong>' . __( 'No user found.' ) . '</strong></p></div>'; 
     145        echo '<div class="updated"><p><strong>' . __( 'No user found.', 'export-users-to-csv' ) . '</strong></p></div>'; 
    141146    } 
    142147    ?> 
     
    145150        <table class="form-table"> 
    146151            <tr valign="top"> 
    147                 <th scope="row"><label for"pp_eu_users_role"><?php _e( 'Role' ); ?></label></th> 
     152                <th scope="row"><label for"pp_eu_users_role"><?php _e( 'Role', 'export-users-to-csv' ); ?></label></th> 
    148153                <td> 
    149154                    <select name="role" id="pp_eu_users_role"> 
    150155                        <?php 
    151                         echo '<option value="">' . __( 'Every Role' ) . '</option>'; 
     156                        echo '<option value="">' . __( 'Every Role', 'export-users-to-csv' ) . '</option>'; 
    152157                        global $wp_roles; 
    153158                        foreach ( $wp_roles->role_names as $role => $name ) { 
     
    159164            </tr> 
    160165            <tr valign="top"> 
    161                 <th scope="row"><label><?php _e( 'Date range' ); ?></label></th> 
     166                <th scope="row"><label><?php _e( 'Date range', 'export-users-to-csv' ); ?></label></th> 
    162167                <td> 
    163168                    <select name="start_date" id="pp_eu_users_start_date"> 
    164                         <option value="0"><?php _e( 'Start Date' ); ?></option> 
     169                        <option value="0"><?php _e( 'Start Date', 'export-users-to-csv' ); ?></option> 
    165170                        <?php $this->export_date_options(); ?> 
    166171                    </select> 
    167172                    <select name="end_date" id="pp_eu_users_end_date"> 
    168                         <option value="0"><?php _e( 'End Date' ); ?></option> 
     173                        <option value="0"><?php _e( 'End Date', 'export-users-to-csv' ); ?></option> 
    169174                        <?php $this->export_date_options(); ?> 
    170175                    </select> 
     
    174179        <p class="submit"> 
    175180            <input type="hidden" name="_wp_http_referer" value="<?php echo $_SERVER['REQUEST_URI'] ?>" /> 
    176             <input type="submit" class="button-primary" value="<?php _e( 'Export' ); ?>" /> 
     181            <input type="submit" class="button-primary" value="<?php _e( 'Export', 'export-users-to-csv' ); ?>" /> 
    177182        </p> 
    178183    </form> 
     
    181186 
    182187    public function exclude_data() { 
    183         $exclude = array( 'user_pass', 'user_activation_key', 'user_status', 'rich_editing', 'comment_shortcuts', 'admin_color', 'use_ssl', 'show_admin_bar_front', 'show_admin_bar_admin', 'wp_capabilities', 'wp_user_level', 'wp_usersettings', 'wp_usersettingstime', 'wp_dashboard_quick_press_last_post_id', 'metaboxorder_dashboard', 'screen_layout_dashboard', 'closedpostboxes_dashboard', 'metaboxhidden_dashboard', 'metaboxhidden_forum', 'closedpostboxes_forum', 'plugins_last_view', 'metaboxhidden_program', 'closedpostboxes_program', 'metaboxhidden_navmenus', 'managenavmenuscolumnshidden', 'user_level', 'user_firstname', 'user_lastname', 'user_description'  ); 
    184  
    185         if ( ! is_multisite() ) 
    186             $exclude = array_merge( $exclude, array( 'spam', 'deleted', 'primary_blog', 'source_domain' ) ); 
     188        $exclude = array( 'user_pass', 'user_activation_key' ); 
    187189 
    188190        return $exclude; 
     
    195197 
    196198        if ( ! empty( $_POST['start_date'] ) ) 
    197             $where .= $wpdb->prepare( " AND $wpdb->users.user_registered >= %s", date( 'Y-m-d', strtotime($_POST['start_date']) ) ); 
     199            $where .= $wpdb->prepare( " AND $wpdb->users.user_registered >= %s", date( 'Y-m-d', strtotime( $_POST['start_date'] ) ) ); 
    198200 
    199201        if ( ! empty( $_POST['end_date'] ) ) 
Note: See TracChangeset for help on using the changeset viewer.