public function InstapageCmsPluginPageModel::migrateDeprecatedData in Instapage plugin 8.3
Same name and namespace in other branches
- 7.3 core/models/InstapageCmsPluginPageModel.php \InstapageCmsPluginPageModel::migrateDeprecatedData()
Migrates the depracated pages to current DB structure.
Parameters
array $data List of pages to migrate.:
Return value
array List of messages to display as a migration raport.
File
- core/
models/ InstapageCmsPluginPageModel.php, line 265
Class
- InstapageCmsPluginPageModel
- Class responsible for managing the landing pages.
Code
public function migrateDeprecatedData($data) {
InstapageCmsPluginHelper::writeDiagnostics($data, 'Migration data');
$raport = array();
if (!is_array($data) || !count($data)) {
return $raport;
}
foreach ($data as $deprecatedPage) {
if ($deprecatedPage->type == 'home') {
$deprecatedPage->slug = '';
}
$landingPagesById = $this
->getByInstapageId($deprecatedPage->landingPageId);
$landingPagesBySlug = null;
$landingPagesByType = null;
if (count($landingPagesById)) {
$newLandingPage = array_pop($landingPagesById);
$raport[] = InstapageCmsPluginConnector::lang('Old version of page (slug: %s, Instapage ID: %s) is present in new database (slug: %s) and won\'t be migrated.', $deprecatedPage->slug, $deprecatedPage->landingPageId, $newLandingPage->slug);
continue;
}
if ($deprecatedPage->slug && $deprecatedPage->type == 'page') {
$landingPagesBySlug = $this
->getBySlug($deprecatedPage->slug);
}
if ($landingPagesBySlug) {
$newLandingPage = $landingPagesBySlug;
$raport[] = InstapageCmsPluginConnector::lang('Slug: %s is already taken in new database. Old page (slug: %s, Instapage ID: %s) won\'t be migrated.', $deprecatedPage->slug, $deprecatedPage->slug, $deprecatedPage->landingPageId);
continue;
}
if ($deprecatedPage->type !== 'page') {
$landingPagesByType = $this
->getByType($deprecatedPage->type);
}
if ($landingPagesByType) {
$newLandingPage = $landingPagesByType;
$raport[] = InstapageCmsPluginConnector::lang('One %s page already exists in new database. Old page (slug: %s, Instapage ID: %s) won\'t be migrated.', $deprecatedPage->type, $deprecatedPage->slug, $deprecatedPage->landingPageId);
continue;
}
if ($this
->update($deprecatedPage)) {
$raport[] = InstapageCmsPluginConnector::lang('Old version of page (slug: %s, Instapage ID: %s) successfully migrated.', $deprecatedPage->slug, $deprecatedPage->landingPageId);
}
else {
$raport[] = InstapageCmsPluginConnector::lang('Old version of page (slug: %s, Instapage ID: %s) cannot be migrated due to database error.', $deprecatedPage->slug, $deprecatedPage->landingPageId);
}
}
InstapageCmsPluginHelper::writeDiagnostics($raport, 'Migration raport');
return $raport;
}