PluginProbe
Import WP – CSV & XML Import Export for WordPress / 2.15.0
Import WP – CSV & XML Import Export for WordPress v2.15.0
2.15.1 2.15.0 2.14.24 2.14.23 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 2.9.1 All 144 releases
jc-importer / class / Common / Importer / Template / PageTemplate.php

PageTemplate.php in Import WP – CSV & XML Import Export for WordPress 2.15.0, at class/Common/Importer/Template/PageTemplate.php

96 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ImportWP\Common\Importer\Template;
4
5 use ImportWP\Common\Importer\ParsedData;
6 use ImportWP\Common\Model\ImporterModel;
7 use ImportWP\EventHandler;
8
9 class PageTemplate extends PostTemplate
10 {
11 protected $name = 'Page';
12
13 public function __construct(EventHandler $event_handler)
14 {
15 parent::__construct($event_handler);
16 $this->default_template_options['post_type'] = 'page';
17 }
18
19 public function register()
20 {
21 $groups = parent::register();
22
23 $templates = array('default' => __('Default Template', 'jc-importer'));
24 $templates = array_merge($templates, wp_get_theme()->get_page_templates());
25
26 $template_list = [];
27 foreach ($templates as $id => $name) {
28 $template_list[] = ['value' => $id, 'label' => $name];
29 }
30
31 $groups[0]['fields'][] = $this->register_field(__('Page Template', 'jc-importer'), '_wp_page_template', [
32 'options' => $template_list,
33 'options_default' => 'default',
34 'tooltip' => __('Select a page template from your active theme', 'jc-importer')
35 ]);
36
37 return $groups;
38 }
39
40 /**
41 * Process data before record is importer.
42 *
43 * Alter data that is passed to the mapper.
44 *
45 * @param ParsedData $data
46 * @return ParsedData
47 */
48 public function pre_process(ParsedData $data)
49 {
50 $this->field_map['_wp_page_template'] = 'post._wp_page_template';
51
52 if (true !== $this->importer->isEnabledField('post._wp_page_template')) {
53 $temp = $data->getData();
54 unset($temp['post._wp_page_template']);
55 $data->replace($temp);
56 }
57
58 return parent::pre_process($data);
59 }
60
61 /**
62 * Convert fields/headings to data map
63 *
64 * @param mixed $fields
65 * @param ImporterModel $importer
66 * @return array
67 */
68 public function generate_field_map($fields, $importer)
69 {
70 $result = parent::generate_field_map($fields, $importer);
71 $map = $result['map'];
72 $enabled = $result['enabled'];
73
74 $template_index = array_search('custom_fields._wp_page_template', $fields);
75 if ($template_index !== false) {
76 $enabled[] = 'post._wp_page_template';
77 $map['post._wp_page_template'] = sprintf('{%d}', $template_index);
78 $map['post._wp_page_template._enable_text'] = 'yes';
79 }
80
81 return [
82 'map' => $map,
83 'enabled' => $enabled
84 ];
85 }
86
87 public function get_permission_fields($importer_model)
88 {
89 $permission_fields = parent::get_permission_fields($importer_model);
90
91 $permission_fields['core']['_wp_page_template'] = __('Page Template', 'jc-importer');
92
93 return $permission_fields;
94 }
95 }
96