My question is similar to this one: Sulu CMS: is it possible to restrict the creation of nodes of a certain type only under nodes of another particular type?
So basically I need a list of news articles, with the following restrictions:
all news pages need to have a url like /{language}/news/{article-slug}
news pages need to inherit basic CMS functionality like abitlity to have translations, meta-tags, page template with blocks etc.
One possible solution could be to allow adding pages of News template only under a certain root page. But according to the answer https://stackoverflow.com/a/44701675/921141 it is not possible
So my question is simple: how to achieve this by other means? Options that come to my mind:
Creating a new entity, in Symfony way, with a custom controller and route. But how do I create the admin interface for managing my news entities in the same way that all content pages inside webspaces have?
Creating a separate webspace for news atricles and restrict available page
templates to News
only. I'm not sure that it is possible to have multiple webspaces on a single website.
Your use case sounds like a perfect candidate for our SuluArticleBundle, which does more or less exactly what you need. You can define how the URL looks like, and they have all the CMS functionality. The only drawback is that ElasticSearch is a hard requirement currently.
If you decide for whatever reason that an own entity makes sense, e.g. because you have very special business logic you want to apply (something I can't really imagine if it is just about news), then we have the "Extend Admin UI" section in the documentation explaining how this works.
But if I were you I would try the SuluArticleBundle first, from what I've read here that should fit your use case.