Dokumentasjonsmeny
Drifte et nettsted
Flytte fra et annet system
Importer sider, oversettelser, filer, viderekoblinger og menyer fra kode.
Fra WordPress gjør importen jobben. Fra et hvilket som helst annet publiseringssystem skriver du en import: en Artisan-kommando eller en seeder som leser det gamle nettstedet og skriver Auroras modeller. Denne siden viser hver del. Tabellene bak dem står i Datareferanse.
Sider og blokkene deres
Blokkene til en side er én flat liste for alle språk. Skriv dem som et tre, så lager BlockTreeBuilder::flatten() listen og gir hver blokk en id:
use Aurora\Enums\PageStatus;
use Aurora\Models\Layout;
use Aurora\Models\Page;
use Aurora\Support\BlockTreeBuilder;
$blocks = BlockTreeBuilder::flatten([
['type' => 'heading', 'data' => ['text' => $old->title, 'level' => 'h1']],
['type' => 'band', 'data' => ['background' => 'muted'], 'children' => [
'content' => [ // the band's slot
['type' => 'rich-text', 'data' => ['body' => $old->html]],
],
]],
]);
$page = Page::query()->create([
'title' => $old->title,
'slug' => $old->slug,
'excerpt' => $old->summary,
'layout_id' => Layout::query()->where('handle', 'standard')->value('id'),
'status' => PageStatus::Published,
'published_at' => $old->published_at,
'blocks' => $blocks,
]);
Oversettelser
Tittel, adresse, sammendrag og SEO-felt lagres per språk. Blokktekst på andre språk legges i block_translations, etter blokk-id og felt, bare tekst:
$page->setTranslation('title', 'nb', $old->title_nb);
$page->setTranslation('slug', 'nb', $old->slug_nb);
$page->block_translations = [
'nb' => [
$blocks[0]['id'] => ['text' => $old->title_nb],
],
];
$page->save();
Oppsettfelt
Oppsettets egne felt settes med settingsWithLayoutValues(), med navnet på oppsettet eller handle-en:
$page->settings = $page->settingsWithLayoutValues(['background' => $asset->id], 'campaign');
$page->save();
Filer
AssetLibrary::fromFile() legger en fil i mediebiblioteket. Gi den en id laget av adressen til den gamle filen, så finner en ny kjøring av importen filen i stedet for å legge den til to ganger. Bruk id-en til filen overalt der blokker tar en fil eller et bilde.
use Aurora\Support\AssetLibrary;
use Ramsey\Uuid\Uuid;
$asset = AssetLibrary::fromFile($path, [
'id' => Uuid::uuid5(Uuid::NAMESPACE_URL, $old->image_url)->toString(),
'title' => $old->image_title,
'alt' => $old->image_alt,
'folder' => 'Imported/2026',
]);
['type' => 'image', 'data' => ['src' => $asset->id, 'alt' => $old->image_alt]];
Filer som er større enn mediebiblioteket tar imot, avvises: 10 MB for bilder og 50 MB for andre filer, med mindre aurora.media.max_image_mb og max_file_mb sier noe annet. Øk dem for importen om du trenger det.
Viderekoblinger og menyer
use Aurora\Models\Menu;
use Aurora\Models\MenuItem;
use Aurora\Models\Redirect;
// The old address keeps working, and follows the page if its address changes.
Redirect::query()->create(['from_path' => '/about.html', 'page_id' => $page->id, 'status_code' => 301]);
$menu = Menu::query()->create(['name' => 'Main navigation', 'is_visible' => true]);
$menu->locations()->create(['location' => 'header']);
MenuItem::query()->create([
'menu_id' => $menu->id,
'linkable_type' => $page->getMorphClass(),
'linkable_id' => $page->id,
'order' => 1,
]);
Greit å vite
- Lagringer fra kode går rett ut på siden, publisert eller ikke. Bare sideskjemaet, den visuelle editoren og KI-verktøyene holder endringer på en publisert side igjen som upubliserte endringer.
- Flere nettsteder: importer til et annet nettsted med
CurrentSite::using($site, fn () => …). - Søk: bygg indeksen på nytt når importen er ferdig, med
php artisan aurora:reindex.