diff --git a/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/ImageSliderPublisher.php b/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/ImageSliderPublisher.php index aaf9e18..4eaafcd 100644 --- a/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/ImageSliderPublisher.php +++ b/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/ImageSliderPublisher.php @@ -92,7 +92,7 @@ public function publish(Batch $batch, $bt, Page $page, $area, BlockValue $value) return $b; } else { - $publisher = new StandardPublisher(); + $publisher = \Core::make(StandardPublisher::class); return $publisher->publish($batch, $bt, $page, $area, $value); } } diff --git a/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/Manager.php b/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/Manager.php index 041d975..018961b 100644 --- a/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/Manager.php +++ b/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/Manager.php @@ -24,7 +24,7 @@ public function getDefaultDriver() public function createStandardDriver() { - return new StandardPublisher(); + return $this->app->make(StandardPublisher::class); } public function __construct($app) diff --git a/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/StandardPublisher.php b/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/StandardPublisher.php index 24a08a5..54a875c 100644 --- a/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/StandardPublisher.php +++ b/packages/migration_tool/src/PortlandLabs/Concrete5/MigrationTool/Publisher/Block/StandardPublisher.php @@ -1,7 +1,9 @@ connection = $connection; + } + public function publish(Batch $batch, $bt, Page $page, $area, BlockValue $value) { $records = $value->getRecords(); @@ -35,13 +45,23 @@ public function publish(Batch $batch, $bt, Page $page, $area, BlockValue $value) } // Now we import the OTHER records. if ($b) { + $sm = $this->connection->getSchemaManager(); foreach ($records as $record) { if (strcasecmp($record->getTable(), $bt->getController()->getBlockTypeDatabaseTable()) != 0) { + $columns = $sm->listTableColumns($record->getTable()); $aar = new BlockRecord($record->getTable()); $aar->bID = $b->getBlockID(); foreach ($record->getData() as $key => $value) { $result = $inspector->inspect($value); - $aar->{$key} = $result->getReplacedValue(); + $value = $result->getReplacedValue(); + foreach ($columns as $column) { + if ($column->getName() !== $key || $column->getType()->getName() !== Type::INTEGER) { + continue; + } + + $value = ($column->getNotnull() || $value !== null) ? (int) $value : null; + } + $aar->{$key} = $value; } $aar->Save(); }