Skip to content

Commit 010c473

Browse files
committed
Merge pull request #42 from BeAPI/explode-import-export-admin-page
Explode import export admin page
2 parents 8d8baec + a5933b7 commit 010c473

File tree

7 files changed

+303
-184
lines changed

7 files changed

+303
-184
lines changed

classes/admin/class-export.php

Lines changed: 55 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
1-
<?php
2-
class MPT_Admin_Export {
1+
<?php class MPT_Admin_Export {
2+
33
public function __construct() {
4+
add_action( 'admin_menu', array( __CLASS__, 'admin_menu' ) );
45
add_action( 'admin_init', array( __CLASS__, 'admin_init' ) );
56
}
67

8+
public static function admin_menu() {
9+
$hook = add_submenu_page( 'edit.php?post_type=' . MPT_CPT_NAME, self::get_page_title(), self::get_page_title(), 'manage_options', 'member-export', array( __CLASS__, 'page' ) );
10+
add_action( 'admin_head-' . $hook, array( __CLASS__, 'admin_head' ) );
11+
}
12+
13+
public static function admin_head() {
14+
wp_enqueue_style( MPT_CPT_NAME . '-post', MPT_URL . 'assets/css/admin.css', array(), MPT_VERSION, 'all' );
15+
}
16+
17+
public static function page() {
18+
include( MPT_DIR . 'views/admin/page-export.php' );
19+
}
20+
721
public static function admin_init() {
822
if ( isset( $_POST['mpt_action'] ) && $_POST['mpt_action'] == 'mpt_export_action' ) {
923
return self::admin_init_export();
@@ -16,34 +30,41 @@ public static function admin_init_export() {
1630
// Check the nonce
1731
check_admin_referer( 'export-members' );
1832

19-
$header_titles = array( __( 'Email', 'mpt' ), __( 'Lastname', 'mpt' ), __( 'Firstname', 'mpt' ), __( 'Username', 'mpt' ), __( 'Counter Sign On', 'mpt' ), __( 'Last Sign On Date', 'mpt' ) );
33+
$header_titles = array(
34+
__( 'Email', 'mpt' ),
35+
__( 'Lastname', 'mpt' ),
36+
__( 'Firstname', 'mpt' ),
37+
__( 'Username', 'mpt' ),
38+
__( 'Counter Sign On', 'mpt' ),
39+
__( 'Last Sign On Date', 'mpt' )
40+
);
2041

2142
//Allow users to specify additionnal columns to export.
2243
$header_meta = apply_filters( 'mpt_export_meta_headers', array() );
23-
if( !empty( $header_meta ) ) {
24-
$header_meta = array_map( array( __CLASS__, 'prefix_header_meta' ), $header_meta );
44+
if ( ! empty( $header_meta ) ) {
45+
$header_meta = array_map( array( __CLASS__, 'prefix_header_meta' ), $header_meta );
2546
$header_titles = array_merge( $header_titles, $header_meta );
2647
}
2748

2849
$member_query = new WP_Query( array(
29-
'post_type' => MPT_CPT_NAME,
50+
'post_type' => MPT_CPT_NAME,
3051
'post_status' => 'publish',
31-
'nopaging' => true
32-
) );
52+
'nopaging' => true
53+
) );
3354

34-
if ( !$member_query->have_posts() ) {
55+
if ( ! $member_query->have_posts() ) {
3556
return false;
3657
}
3758

38-
$list = array( );
59+
$list = array();
3960
while ( $member_query->have_posts() ) {
4061
$member_query->the_post();
41-
$member_id = get_the_ID();
42-
$member_email = get_post_meta( $member_id, 'email', true );
43-
$member_last_name = get_post_meta( $member_id, 'last_name', true );
44-
$member_first_name = get_post_meta( $member_id, 'first_name', true );
45-
$member_username = get_post_meta( $member_id, 'username', true );
46-
$member_counter_sign_on = get_post_meta( $member_id, '_counter_sign_on', true );
62+
$member_id = get_the_ID();
63+
$member_email = get_post_meta( $member_id, 'email', true );
64+
$member_last_name = get_post_meta( $member_id, 'last_name', true );
65+
$member_first_name = get_post_meta( $member_id, 'first_name', true );
66+
$member_username = get_post_meta( $member_id, 'username', true );
67+
$member_counter_sign_on = get_post_meta( $member_id, '_counter_sign_on', true );
4768
$member_last_sign_on_date = get_post_meta( $member_id, '_last_sign_on_date', true );
4869

4970
$current_member = array(
@@ -57,7 +78,7 @@ public static function admin_init_export() {
5778

5879
//Allow users to add meta value when exporting.
5980
$current_member_meta = apply_filters( 'mpt_export_meta_values', array(), $member_id );
60-
if( !empty( $current_member_meta ) ) {
81+
if ( ! empty( $current_member_meta ) ) {
6182
$current_member = array_merge( $current_member, $current_member_meta );
6283
}
6384

@@ -73,15 +94,15 @@ public static function admin_init_export() {
7394
header( "Accept-Ranges: bytes" );
7495

7596
$outstream = fopen( "php://output", 'w' );
76-
97+
7798
//Put header titles
7899
fputcsv( $outstream, array_map( 'utf8_decode', $header_titles ), ';' );
79-
100+
80101
// Put lines in csv file
81102
foreach ( $list as $fields ) {
82103
fputcsv( $outstream, array_map( 'utf8_decode', $fields ), ';' );
83104
}
84-
105+
85106
fclose( $outstream );
86107
exit();
87108
}
@@ -94,10 +115,23 @@ public static function admin_init_export() {
94115
* @return string
95116
*/
96117
public static function prefix_header_meta( $name ) {
97-
if( empty( $name ) ) {
118+
if ( empty( $name ) ) {
98119
return $name;
99120
}
100121

101122
return 'meta:' . $name;
102123
}
124+
125+
/**
126+
* Get the import page title
127+
*
128+
* @author Maxime CULEA
129+
*
130+
* @since 0.6.0
131+
*
132+
* @return string
133+
*/
134+
public static function get_page_title() {
135+
return esc_html( __( 'Export members', 'mpt' ) );
136+
}
103137
}

0 commit comments

Comments
 (0)