remove the abstract class `CommunImportExport` #343
This commit is contained in:
parent
298252f919
commit
c503863907
|
@ -11,6 +11,7 @@ src/vendor
|
||||||
node_modules
|
node_modules
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
src/assets/js/*.js
|
src/assets/js/*.js
|
||||||
|
src/assets/*.js
|
||||||
last-js-build.md5
|
last-js-build.md5
|
||||||
last-sass-build.md5
|
last-sass-build.md5
|
||||||
last-composer-build.md5
|
last-composer-build.md5
|
||||||
|
@ -19,11 +20,14 @@ src/views/admin/scss/.sass-cache
|
||||||
src/assets/css/tainacan-admin.css
|
src/assets/css/tainacan-admin.css
|
||||||
src/assets/css/tainacan-admin.css.map
|
src/assets/css/tainacan-admin.css.map
|
||||||
src/assets/js/report.html
|
src/assets/js/report.html
|
||||||
|
src/assets/report.html
|
||||||
.vscode
|
.vscode
|
||||||
src/pdf-viewer/pdfjs-dist
|
src/pdf-viewer/pdfjs-dist
|
||||||
report.txt
|
report.txt
|
||||||
.tmp
|
.tmp
|
||||||
demosaved.csv
|
demosaved.csv
|
||||||
|
src/assets/css/tainacan-embeds.css
|
||||||
|
src/assets/css/tainacan-embeds.css.map
|
||||||
.DS_Store
|
.DS_Store
|
||||||
src/.DS_Store
|
src/.DS_Store
|
||||||
src/assets/css/tainacan-gutenberg-block-dynamic-items-list.css
|
src/assets/css/tainacan-gutenberg-block-dynamic-items-list.css
|
||||||
|
|
|
@ -3,14 +3,31 @@ namespace Tainacan\Exporter;
|
||||||
use Tainacan;
|
use Tainacan;
|
||||||
use Tainacan\Entities;
|
use Tainacan\Entities;
|
||||||
|
|
||||||
abstract class CommunImportExport {
|
abstract class Exporter {
|
||||||
|
|
||||||
public function __construct( ) {
|
public function __construct($attributess = array()) {
|
||||||
$this->id = uniqid();
|
$this->id = uniqid();
|
||||||
$author = get_current_user_id();
|
$author = get_current_user_id();
|
||||||
if($author) {
|
if($author) {
|
||||||
$this->add_transient('author', $author);
|
$this->add_transient('author', $author);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->array_attributes = array_merge($this->array_attributes, [
|
||||||
|
'mapping_selected',
|
||||||
|
'current_collection_item',
|
||||||
|
'current_collection',
|
||||||
|
'output_files',
|
||||||
|
'send_email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (!empty($attributess)) {
|
||||||
|
foreach ($attributess as $attr => $value) {
|
||||||
|
$method = 'set_' . $attr;
|
||||||
|
if (method_exists($this, $method)) {
|
||||||
|
$this->$method($value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49,9 +66,17 @@ abstract class CommunImportExport {
|
||||||
*/
|
*/
|
||||||
protected $steps = [
|
protected $steps = [
|
||||||
[
|
[
|
||||||
|
'name' => 'Begin Exporter',
|
||||||
|
'progress_label' => 'Begin Exporter Process',
|
||||||
|
'callback' => 'begin_exporter'
|
||||||
|
],[
|
||||||
'name' => 'Process Items',
|
'name' => 'Process Items',
|
||||||
'progress_label' => 'Process Items',
|
'progress_label' => 'Process Items',
|
||||||
'callback' => 'process_collections'
|
'callback' => 'process_collections'
|
||||||
|
],[
|
||||||
|
'name' => 'End Exporter',
|
||||||
|
'progress_label' => 'End Exporter Process',
|
||||||
|
'callback' => 'end_exporter'
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -79,6 +104,63 @@ abstract class CommunImportExport {
|
||||||
*/
|
*/
|
||||||
protected $collections = [];
|
protected $collections = [];
|
||||||
|
|
||||||
|
private $output_files = [];
|
||||||
|
|
||||||
|
private $mapping_accept = [
|
||||||
|
'any' => true,
|
||||||
|
'list' => false
|
||||||
|
];
|
||||||
|
|
||||||
|
private $send_email = null;
|
||||||
|
|
||||||
|
protected $mapping_list = [];
|
||||||
|
|
||||||
|
public $mapping_selected = "";
|
||||||
|
|
||||||
|
protected $accept_no_mapping = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transients is used to store temporary data to be used accross multiple requests
|
||||||
|
*
|
||||||
|
* Add and remove transient data using add_transient() and delete_transient() methods
|
||||||
|
*
|
||||||
|
* Transitens can be strings, numbers or arrays. Avoid storing objects.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $transients = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wether to abort importer/exporter execution.
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
protected $abort = false;
|
||||||
|
|
||||||
|
protected $current_step = 0;
|
||||||
|
|
||||||
|
protected $in_step_count = 0;
|
||||||
|
|
||||||
|
protected $current_collection = 0;
|
||||||
|
|
||||||
|
protected $current_collection_item = 0;
|
||||||
|
|
||||||
|
protected $log = [];
|
||||||
|
|
||||||
|
protected $error_log = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List of attributes that are saved in DB and that are used to
|
||||||
|
* reconstruct the object, this property need be overwrite in custom import/export.
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $array_attributes = [
|
||||||
|
'in_step_count',
|
||||||
|
'current_step',
|
||||||
|
'transients',
|
||||||
|
'options',
|
||||||
|
'collections',
|
||||||
|
];
|
||||||
|
|
||||||
public function add_collection(array $collection) {
|
public function add_collection(array $collection) {
|
||||||
if (isset($collection['id'])) {
|
if (isset($collection['id'])) {
|
||||||
$this->remove_collection($collection['id']);
|
$this->remove_collection($collection['id']);
|
||||||
|
@ -131,45 +213,6 @@ abstract class CommunImportExport {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Transients is used to store temporary data to be used accross multiple requests
|
|
||||||
*
|
|
||||||
* Add and remove transient data using add_transient() and delete_transient() methods
|
|
||||||
*
|
|
||||||
* Transitens can be strings, numbers or arrays. Avoid storing objects.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $transients = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wether to abort importer/exporter execution.
|
|
||||||
* @var bool
|
|
||||||
*/
|
|
||||||
protected $abort = false;
|
|
||||||
|
|
||||||
protected $current_step = 0;
|
|
||||||
protected $in_step_count = 0;
|
|
||||||
|
|
||||||
protected $current_collection = 0;
|
|
||||||
protected $current_collection_item = 0;
|
|
||||||
|
|
||||||
protected $log = [];
|
|
||||||
protected $error_log = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* List of attributes that are saved in DB and that are used to
|
|
||||||
* reconstruct the object, this property need be overwrite in custom import/export.
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $array_attributes = [
|
|
||||||
'in_step_count',
|
|
||||||
'current_step',
|
|
||||||
'transients',
|
|
||||||
'options',
|
|
||||||
'collections',
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
|
@ -470,60 +513,6 @@ abstract class CommunImportExport {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Abstract methods
|
|
||||||
abstract public function _to_Array($short = false);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////////
|
|
||||||
class Exporter extends CommunImportExport {
|
|
||||||
|
|
||||||
private $output_files = [];
|
|
||||||
private $mapping_accept = [
|
|
||||||
'any' => true,
|
|
||||||
'list' => false
|
|
||||||
];
|
|
||||||
private $send_email = null;
|
|
||||||
protected $mapping_list = [];
|
|
||||||
public $mapping_selected = "";
|
|
||||||
protected $accept_no_mapping = true;
|
|
||||||
|
|
||||||
protected $steps = [
|
|
||||||
[
|
|
||||||
'name' => 'Begin Exporter',
|
|
||||||
'progress_label' => 'Begin Exporter Process',
|
|
||||||
'callback' => 'begin_exporter'
|
|
||||||
],[
|
|
||||||
'name' => 'Process Items',
|
|
||||||
'progress_label' => 'Process Items',
|
|
||||||
'callback' => 'process_collections'
|
|
||||||
],[
|
|
||||||
'name' => 'End Exporter',
|
|
||||||
'progress_label' => 'End Exporter Process',
|
|
||||||
'callback' => 'end_exporter'
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
public function __construct($attributess = array()) {
|
|
||||||
$this->array_attributes = array_merge($this->array_attributes, [
|
|
||||||
'mapping_selected',
|
|
||||||
'current_collection_item',
|
|
||||||
'current_collection',
|
|
||||||
'output_files',
|
|
||||||
'send_email'
|
|
||||||
]);
|
|
||||||
parent::__construct();
|
|
||||||
|
|
||||||
if (!empty($attributess)) {
|
|
||||||
foreach ($attributess as $attr => $value) {
|
|
||||||
$method = 'set_' . $attr;
|
|
||||||
if (method_exists($this, $method)) {
|
|
||||||
$this->$method($value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function _to_Array($short = false) {
|
public function _to_Array($short = false) {
|
||||||
$return = ['id' => $this->get_id()];
|
$return = ['id' => $this->get_id()];
|
||||||
foreach ($this->array_attributes as $attr) {
|
foreach ($this->array_attributes as $attr) {
|
||||||
|
@ -546,13 +535,6 @@ class Exporter extends CommunImportExport {
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function add_collection(array $collection) {
|
|
||||||
// if (!isset($collection['total_items'])) {
|
|
||||||
// $collection['total_items'] = 10;
|
|
||||||
// }
|
|
||||||
parent::add_collection($collection);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the current mapper object, if one was chosen by the user, false Otherwise
|
* Gets the current mapper object, if one was chosen by the user, false Otherwise
|
||||||
*/
|
*/
|
||||||
|
@ -593,9 +575,7 @@ class Exporter extends CommunImportExport {
|
||||||
return $this->next_item();
|
return $this->next_item();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function process_item( $item, $metadata ) {
|
abstract public function process_item( $item, $metadata );
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private function process_header($current_collection_item, $collection_definition) {
|
private function process_header($current_collection_item, $collection_definition) {
|
||||||
if ($current_collection_item == 0) {
|
if ($current_collection_item == 0) {
|
||||||
|
|
Loading…
Reference in New Issue