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