mirror of
https://github.com/processwire/processwire.git
synced 2025-08-15 11:14:12 +02:00
Update Pages Export/Import class to support export/import of page created and modified dates
This commit is contained in:
@@ -512,7 +512,9 @@ class PagesEditor extends Wire {
|
|||||||
} else if($isNew) {
|
} else if($isNew) {
|
||||||
$sql = 'modified=NOW()';
|
$sql = 'modified=NOW()';
|
||||||
}
|
}
|
||||||
if(!$isNew && $page->created > 0) $data['created'] = date('Y-m-d H:i:s', $page->created);
|
if($page->created > 0) {
|
||||||
|
$data['created'] = date('Y-m-d H:i:s', $page->created);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($data['modified_users_id'])) $page->modified_users_id = $data['modified_users_id'];
|
if(isset($data['modified_users_id'])) $page->modified_users_id = $data['modified_users_id'];
|
||||||
@@ -531,8 +533,9 @@ class PagesEditor extends Wire {
|
|||||||
|
|
||||||
$sql = trim($sql, ", ");
|
$sql = trim($sql, ", ");
|
||||||
|
|
||||||
if($isNew) {
|
if($isNew) {
|
||||||
$query = $database->prepare("INSERT INTO pages SET $sql, created=NOW()");
|
if(empty($data['created'])) $sql .= ', created=NOW()';
|
||||||
|
$query = $database->prepare("INSERT INTO pages SET $sql");
|
||||||
} else {
|
} else {
|
||||||
$query = $database->prepare("UPDATE pages SET $sql WHERE id=:page_id");
|
$query = $database->prepare("UPDATE pages SET $sql WHERE id=:page_id");
|
||||||
$query->bindValue(":page_id", (int) $page->id, \PDO::PARAM_INT);
|
$query->bindValue(":page_id", (int) $page->id, \PDO::PARAM_INT);
|
||||||
|
@@ -375,6 +375,8 @@ class PagesExportImport extends Wire {
|
|||||||
'status' => $page->status,
|
'status' => $page->status,
|
||||||
'sort' => $page->sort,
|
'sort' => $page->sort,
|
||||||
'sortfield' => $page->sortfield,
|
'sortfield' => $page->sortfield,
|
||||||
|
'created' => $page->createdStr,
|
||||||
|
'modified' => $page->modifiedStr,
|
||||||
);
|
);
|
||||||
|
|
||||||
// verbose page settings
|
// verbose page settings
|
||||||
@@ -382,11 +384,9 @@ class PagesExportImport extends Wire {
|
|||||||
$settings = array_merge($settings, array(
|
$settings = array_merge($settings, array(
|
||||||
'parent_id' => $page->parent_id,
|
'parent_id' => $page->parent_id,
|
||||||
'templates_id' => $page->templates_id,
|
'templates_id' => $page->templates_id,
|
||||||
'created' => $page->createdStr,
|
|
||||||
'modified' => $page->modifiedStr,
|
|
||||||
'published' => $page->publishedStr,
|
|
||||||
'created_user' => $page->createdUser->name,
|
'created_user' => $page->createdUser->name,
|
||||||
'modified_user' => $page->modifiedUser->name,
|
'modified_user' => $page->modifiedUser->name,
|
||||||
|
'published' => $page->publishedStr,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -557,7 +557,7 @@ class PagesExportImport extends Wire {
|
|||||||
'changeName' => true,
|
'changeName' => true,
|
||||||
'changeStatus' => true,
|
'changeStatus' => true,
|
||||||
'changeSort' => true,
|
'changeSort' => true,
|
||||||
'saveOptions' => array('adjustName' => true), // options passed to Pages::save
|
'saveOptions' => array('adjustName' => true, 'quiet' => true), // options passed to Pages::save
|
||||||
'fieldNames' => array(), // import only these field names, when specified
|
'fieldNames' => array(), // import only these field names, when specified
|
||||||
'replaceFields' => array(), // array of import-data field name to replacement page field name
|
'replaceFields' => array(), // array of import-data field name to replacement page field name
|
||||||
'replaceTemplates' => array(), // array of import-data template name to replacement page template name
|
'replaceTemplates' => array(), // array of import-data template name to replacement page template name
|
||||||
@@ -863,6 +863,12 @@ class PagesExportImport extends Wire {
|
|||||||
if($page->sort != $settings['sort']) $page->sort = $settings['sort'];
|
if($page->sort != $settings['sort']) $page->sort = $settings['sort'];
|
||||||
if($page->sortfield != $settings['sortfield']) $page->sortfield = $settings['sortfield'];
|
if($page->sortfield != $settings['sortfield']) $page->sortfield = $settings['sortfield'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach(array('created', 'modified', 'published') as $dateType) {
|
||||||
|
if(isset($settings[$dateType])) {
|
||||||
|
$page->set($dateType, strtotime($settings[$dateType]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if($languages && count($langProperties)) {
|
if($languages && count($langProperties)) {
|
||||||
foreach($langProperties as $property) {
|
foreach($langProperties as $property) {
|
||||||
|
@@ -283,6 +283,7 @@ class ProcessPagesExportImport extends Process {
|
|||||||
// 'pages' => array( page import data ),
|
// 'pages' => array( page import data ),
|
||||||
// 'fields' => array( fields information ),
|
// 'fields' => array( fields information ),
|
||||||
// );
|
// );
|
||||||
|
set_time_limit(3600);
|
||||||
|
|
||||||
/** @var WireInput $input */
|
/** @var WireInput $input */
|
||||||
$input = $this->wire('input');
|
$input = $this->wire('input');
|
||||||
@@ -298,7 +299,7 @@ class ProcessPagesExportImport extends Process {
|
|||||||
$options = array(
|
$options = array(
|
||||||
'update' => $importMode == 'all' || $importMode == 'update',
|
'update' => $importMode == 'all' || $importMode == 'update',
|
||||||
'create' => $importMode == 'all' || $importMode == 'create',
|
'create' => $importMode == 'all' || $importMode == 'create',
|
||||||
'saveOptions' => array('adjustName' => true),
|
'saveOptions' => array('adjustName' => true, 'quiet' => true),
|
||||||
'fieldNames' => $fieldNames,
|
'fieldNames' => $fieldNames,
|
||||||
'replaceFields' => isset($a['_replaceFields']) ? $a['_replaceFields'] : array(),
|
'replaceFields' => isset($a['_replaceFields']) ? $a['_replaceFields'] : array(),
|
||||||
'commit' => $submitCommit,
|
'commit' => $submitCommit,
|
||||||
@@ -1023,6 +1024,8 @@ class ProcessPagesExportImport extends Process {
|
|||||||
// options_parent: array('parent', 'recursive')
|
// options_parent: array('parent', 'recursive')
|
||||||
// export_fields: array(field names)
|
// export_fields: array(field names)
|
||||||
// export_to: string(zip, json)
|
// export_to: string(zip, json)
|
||||||
|
|
||||||
|
set_time_limit(3600);
|
||||||
|
|
||||||
/** @var Pages $pages */
|
/** @var Pages $pages */
|
||||||
$pages = $this->wire('pages');
|
$pages = $this->wire('pages');
|
||||||
|
Reference in New Issue
Block a user