diff --git a/.env b/.env
index d50cb4e6..8bfa7e5c 100644
--- a/.env
+++ b/.env
@@ -49,3 +49,10 @@ DATABASE_URL="mysql://root:ChangeMe@127.0.0.1:3306/su_myapp?serverVersion=8.0.32
# Email address that will receive system notifications and might be used as universal fallback value by bundles
SULU_ADMIN_EMAIL=example@localhost
###< sulu/sulu ###
+
+###> symfony/messenger ###
+# Choose one of the transports below
+# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
+# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
+MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
+###< symfony/messenger ###
diff --git a/composer.json b/composer.json
index 399664e6..f8c6f963 100644
--- a/composer.json
+++ b/composer.json
@@ -26,6 +26,12 @@
"docs": "https://docs.sulu.io/",
"chat": "https://sulu.io/services-and-support#chat"
},
+ "repositories": [
+ {
+ "type": "vcs",
+ "url": "git@github.com:alexander-schranz/SuluArticleBundle.git"
+ }
+ ],
"require": {
"php": "^8.2",
"ext-ctype": "*",
@@ -41,6 +47,9 @@
"scheb/2fa-email": "^7.2",
"scheb/2fa-trusted-device": "^7.2",
"stof/doctrine-extensions-bundle": "^1.11",
+ "sulu/article-bundle": "dev-feature/content-article-repository as 3.0.0",
+ "sulu/content-bundle": "^0.7.1 || ^0.8",
+ "sulu/messenger": "^0.2.3",
"sulu/sulu": "~2.6.4",
"symfony/config": "^7.1",
"symfony/dotenv": "^7.1",
diff --git a/config/bundles.php b/config/bundles.php
index b321e72c..b5503b6a 100644
--- a/config/bundles.php
+++ b/config/bundles.php
@@ -45,4 +45,7 @@
Sulu\Bundle\TrashBundle\SuluTrashBundle::class => ['all' => true],
Sulu\Bundle\ReferenceBundle\SuluReferenceBundle::class => ['all' => true],
Scheb\TwoFactorBundle\SchebTwoFactorBundle::class => ['all' => true],
+ Sulu\Bundle\ContentBundle\SuluContentBundle::class => ['all' => true],
+ Sulu\Messenger\Infrastructure\Symfony\HttpKernel\SuluMessengerBundle::class => ['all' => true],
+ Sulu\Article\Infrastructure\Symfony\HttpKernel\SuluArticleBundle::class => ['all' => true],
];
diff --git a/config/packages/messenger.yaml b/config/packages/messenger.yaml
new file mode 100644
index 00000000..672b6c40
--- /dev/null
+++ b/config/packages/messenger.yaml
@@ -0,0 +1,22 @@
+framework:
+ messenger:
+ # Uncomment this (and the failed transport below) to send failed messages to this transport for later handling.
+ # failure_transport: failed
+
+ transports:
+ # https://symfony.com/doc/current/messenger.html#transport-configuration
+ # async: '%env(MESSENGER_TRANSPORT_DSN)%'
+ # failed: 'doctrine://default?queue_name=failed'
+ # sync: 'sync://'
+
+ routing:
+ # Route your messages to the transports
+ # 'App\Message\YourMessage': async
+
+# when@test:
+# framework:
+# messenger:
+# transports:
+# # replace with your transport name here (e.g., my_transport: 'in-memory://')
+# # For more Messenger testing tools, see https://github.com/zenstruck/messenger-test
+# async: 'in-memory://'
diff --git a/config/packages/sulu_next_article.yaml b/config/packages/sulu_next_article.yaml
new file mode 100644
index 00000000..87651f1d
--- /dev/null
+++ b/config/packages/sulu_next_article.yaml
@@ -0,0 +1,7 @@
+sulu_next_article: {}
+
+sulu_core:
+ content:
+ structure:
+ default_type:
+ article: 'article'
diff --git a/config/packages/workflow.yaml b/config/packages/workflow.yaml
new file mode 100644
index 00000000..855df59c
--- /dev/null
+++ b/config/packages/workflow.yaml
@@ -0,0 +1,2 @@
+framework:
+ workflows: null
diff --git a/config/routes/sulu_admin.yaml b/config/routes/sulu_admin.yaml
index ecc8eaae..3b6e5dfc 100644
--- a/config/routes/sulu_admin.yaml
+++ b/config/routes/sulu_admin.yaml
@@ -112,3 +112,7 @@ sulu_reference_api:
resource: "@SuluReferenceBundle/Resources/config/routing_api.yml"
type: rest
prefix: /admin/api
+
+sulu_article_api:
+ resource: "@SuluNextArticleBundle/config/routing_admin_api.yaml"
+ prefix: /admin/api
diff --git a/config/templates/articles/article.xml b/config/templates/articles/article.xml
new file mode 100644
index 00000000..235cb43d
--- /dev/null
+++ b/config/templates/articles/article.xml
@@ -0,0 +1,46 @@
+
+
+
+