Screen.php
1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
namespace ACP\Migrate\Export\Response;
use AC\ListScreenCollection;
use ACP\Migrate\Export\Response;
use ACP\Storage\ListScreen\Encoder;
use ACP\Storage\ListScreen\Serializer\PhpSerializer;
final class Screen implements Response {
/**
* @var ListScreenCollection
*/
private $list_screens;
/**
* @var Encoder
*/
private $encoder;
public function __construct( ListScreenCollection $list_screens, Encoder $encoder ) {
$this->list_screens = $list_screens;
$this->encoder = $encoder;
}
/**
* @return void
*/
public function send() {
if ( ! $this->list_screens->count() ) {
wp_send_json_error( [
'message' => __( 'No screens selected for export.', 'codepress-admin-columns' ),
] );
}
$serializer = new PhpSerializer();
$output = '';
foreach ( $this->list_screens as $list_screen ) {
$output .= $serializer->serialize( $this->encoder->encode( $list_screen ) );
}
$output = sprintf( "add_action( 'ac/ready', function() { \n ac_load_columns( %s );\n});", $output );
wp_send_json_success( [
'export' => $output,
] );
}
}