PluginProbe
Redirection / 4.2
Redirection v4.2
5.10.0 5.9.0 5.8.1 5.8.0 3.7.2 3.7.3 4.0 4.0.1 4.1 4.1.1 4.2 4.2.1 4.2.2 4.2.3 4.3 4.3.1 4.3.2 4.3.3 4.4 4.4.1 4.4.2 4.5 4.5.1 4.6.2 4.7.1 All 130 releases
redirection / api / api-import.php

api-import.php in Redirection 4.2, at api/api-import.php

53 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class Redirection_Api_Import extends Redirection_Api_Route {
4 public function __construct( $namespace ) {
5 register_rest_route( $namespace, '/import/file/(?P<group_id>\d+)', array(
6 $this->get_route( WP_REST_Server::EDITABLE, 'route_import_file' ),
7 ) );
8
9 register_rest_route( $namespace, '/import/plugin', array(
10 $this->get_route( WP_REST_Server::READABLE, 'route_plugin_import_list' ),
11 ) );
12
13 register_rest_route( $namespace, '/import/plugin/(?P<plugin>.*?)', array(
14 $this->get_route( WP_REST_Server::EDITABLE, 'route_plugin_import' ),
15 ) );
16 }
17
18 public function route_plugin_import_list( WP_REST_Request $request ) {
19 include_once dirname( dirname( __FILE__ ) ) . '/models/importer.php';
20
21 return array( 'importers' => Red_Plugin_Importer::get_plugins() );
22 }
23
24 public function route_plugin_import( WP_REST_Request $request ) {
25 include_once dirname( dirname( __FILE__ ) ) . '/models/importer.php';
26
27 $groups = Red_Group::get_all();
28
29 return array( 'imported' => Red_Plugin_Importer::import( $request['plugin'], $groups[0]['id'] ) );
30 }
31
32 public function route_import_file( WP_REST_Request $request ) {
33 $upload = $request->get_file_params();
34 $upload = isset( $upload['file'] ) ? $upload['file'] : false;
35 $group_id = $request['group_id'];
36
37 if ( $upload && is_uploaded_file( $upload['tmp_name'] ) ) {
38 $count = Red_FileIO::import( $group_id, $upload );
39
40 if ( $count !== false ) {
41 return array(
42 'imported' => $count,
43 );
44 }
45
46 return $this->add_error_details( new WP_Error( 'redirect', 'Invalid group' ), __LINE__ );
47 }
48
49 return $this->add_error_details( new WP_Error( 'redirect', 'Invalid file' ), __LINE__ );
50 }
51
52 }
53