Is it possible to manage multiple sites in Neos with shared content and templates? I tried to do it under the directory sites but I am not sure yet where to put it correctly. Also I was thinking about using the language dropdown maybe? What do you think?
Yes, Neos can manage multiple sites with shared content and templates. To create a new site you might want to create a new site package using the Sites Management administration module.
You then have to assign different domains to your sites to have them accessible with the Neos backend, they will show up under Content in the menu.
From within one site package you can refer to templates with resource://My.First.Site/Private/Templates/NodeTypes/Test.html and you can include TypoScript from another site using something like include: resource://My.First.Site/Private/TypoScript/NodeTypes/*.
With Flow Query you can as well access content of another site by using an absolute path to nodes:
items = ${q(site).find('/sites/myfirstsite/some-node')
Note though that all configuration in NodeTypes.yaml as well as Settings.yaml is global and will be combined from all active sites.
Related
Hi AEM Community I'm trying to deactivate some templates without making changes on the users permissions, I try with the allowedPaths property (for instance using a regex like this: /b/B) but I got an issue, if we copy and paste (on the same path) one page of one of the templates with the restriction on the allowedPaths property you can by-pass the restriction and you will be able to have pages on undesire paths. Any idea of what can I do to fix this? or something new to deactivate templates without modifying the users permissions?
Thanks in advance.
K.
First. I'm assuming you are using the classic template system (not the newest ones, stored under /conf).
I do not recommend you to change your templates programmatically. These are stored in /apps so they are considered 'code' and not 'content'. Also you'll loose any change if you reinstall your AEM packages.
Instead you can use the cq:allowedTemplates property directly in the root of the content tree of your site. You just need to set that property in any point of your content with the list of templates that should be available, any template not in that list wont be available for creating new pages.
I have several customers under my Typo3 installation. Every user can edit his own site and has his own folder to upload his stuff. Is there a way in Neos to do the same?
Here my explanation:
Create Sitepackage for Customer
Create User for Customer
Create Uploadfolder for Customer
Customer can login an edit his site, but without seeing the other Sites or Files or other Packages which where uploaded by other Customer like the Multiplesites in Typo3.
I hope the explanation is good enough.
In Neos, everything get's uploaded in the Media Module. But you can generate collections and add this to a particular site. But every user will see the other pages. You have to make seperate instances for each customer. If you would do in one instance, you would have many drawbacks:
Update Neos (You will have to!) would be a hassle
You can't set content dimensions for a particular site, it is always for the whole instance.
All packages would be available for every site. Not good.
If you have trouble with one, you have trouble with all sites.
If you want to have a low-priced but not cheap hosting, who runs Neos, try http://uberspace.de. To get Neos on Uberspace running, you will have to set phpBinaryPathAndFilename in the Settings.yaml correctly.
I have an TYPO3 installation with two domains. Each domain has its own provider extension and static template file.
Example:
domain1.com -> providerextension1
domain2.com -> providerextension2
Is it possible to hide the fluidcontent FCEs from providerextension1 in domain2.com?
Example from Bootstrappackage (https://github.com/Ecodev/bootstrap_package)
As soon as an extension has included fluidcontent FCEs (like the fluidcontent_bootstrap) it will add these to all domains, also when the TypoScript Configuration is not included.
If I understand the question completely, the answer is no: you cannot in TYPO3 make your TypoScript that is available in the backend, depend on the domain name being used. There is a way to make TypoScript conditions for the frontend output (for example a condition to only add template paths for your provider A when domain is X), but the same is not possible in the backend.
You are of course welcome to add a feature request on our issue tracker - I don't see any immediate problem with a feature to toggle on and off particular provider extensions based on for example a TypoScript setting. But you should keep in mind the limitation mentioned above since it implies that in order to achieve your desired goal you must place each domain record on a page tree of its own and closely manage the TypoScript that controls the available Provider Extensions on each page tree.
Put shortly: even if you get this feature request filled, it may not be the solution you want and you may have to restructure your pages and domains to get where you need to be.
The problem is, that the FCE are defined in the "ext_tables.php" and "ext_localconf.php" and these files are always loaded when the extension is enabled.
You can alter "ext_tables/ext_localconf" with a simple condition like
if($_SERVER['server_name'] == "www.yourdomain.com") {
//init FCEs here
}
You can try to override the template paths for one domain with an empty value or at least a path to an empty directory. Maybe flux is smart enough to ignore empty template paths.
In TYPO3 Neos, how can I build a menu containing the list of sites available? If I use entryLevel = 0, I get the list of pages under the current site.
not with the normal "Menu" so much I can say. It was intended to be used inside a site. I have no obvious solution for you right now, but will check back. You probably could create a little plugin fetching the site and domain records from their repositories and creating a menu from that.
I'm just starting to evaluate joomla CMS as a tool to build out my personal site. I'd like to manage multiple sites/domains with one copy of joomla on one host. so I'll own mysite.com and myothersite.com, which will both point to the same host/joomla code. If I do this I need to be able to set which domain/site the content I add shows up on. For some sites the content will be on both for others it will be on only one. What would be ideal it to have some kind of filtering mechanism so I don't have to manually set where the content goes.
What would be ideal is for me to set tags on the content and each site can specify which taged content to show.
My last requirement is that I be able to have different pages on each site.
Is this possible or am I asking too much from a "free" CMS?
Thanks all
I don't know if there's a component that achieves what you're describing here. I use a multi-language component in some of my sites that shows translations, but it doesn't "suppress" articles that doesn't have references to a translation: it just says "No translations to this article". I know you're not asking for translations methods, but I think the Joomfish way of selecting content based in a chosen language would be what you wanted, but not based in languages, just domains.
The only component I know it would be able to suppress articles based in pre defined parameters (in its case the language), is the Joomfish's "Table Localization Plugin", but you need to be a Joomfish silver member paying $60 to Joomfish's developers.
You could write a component(see here for plugin documentation), that analyzing the domain, would suppress articles that shouldn't appear in that specific domain. But I think it's going yo be a lot of work. You would learn a lot of Joomla's architecture, though.
How Joomla displays its content (output) is controlled entirely by parameters. So if you can control what parameters are loading, you can create multiple displays per host
However, that may be overkill in this case. You can just easily hack your template. Just make it load a different menu for siteA and siteB. (The host is set in $_SERVER['HTTP_HOST'])
The menu on siteA could have a tagging component item, set to display articles tagged siteA.com. The siteB will have the same for its domain.
While there are extensions that will do what you describe (http://extensions.joomla.org/extensions/core-enhancements/multiple-sites), Joomla is really designed for one site at a time. I've done setups where I use the same codebase for Joomla and manage it with version control, but I always end up launching multiple sites with individual databases.
However, I don't know of any CMS that inherently allows you to share articles across instances while keeping the data centralized. You may be looking at an extension (or your own customization) regardless of which platform you pick.
We had a similar problem with needing to share content across multiple Joomla! sites so we developed this extension: http://extensions.joomla.org/extension/simple-sharing
It is not very robust in terms of what it can share but it does let you share Articles across multiple sites and choose which sites and categories those articles get published into. I hope it works for you.
Thanks!