1 Introduction
For a better understanding of the integration between Gentics Content.Node (CMS) and Gentics Portal.Node PHP, you need to know what Gentics Portal.Node PHP does.
Gentics Portal.Node PHP is reponsible for the following tasks:
- Get the content objects (pages/binary files) from the CMS
- Check users’ permissions for each content object based on CMS permissions
- Make search requests to CMS
- Some widgets request CMS for different content and metadata: navigation, tagcloud, overviews
How do they work together?
Gentics CMS publishes content in two ways:
- into a file system with folder structure (File System Content Renderer FSCR),
- into a database (Dynamic Content Renderer DCR).
2 Request cycle for different integration types
There are three different integration types between CMS and portal:
- Portal uses only FSCR
- Portal uses only DCR
- Portal uses both FSCR and DCR
First type of integration is the simplest:
- User requests page (content)
- Gentics Portal.Node PHP checks if it exists in the file system (configured root folder)
- Returns page (content) to the user
Second type of integration:
- User requests page
- Gentics Portal.Node PHP checks if page exists in cache and content metadata is up to date
- if page does not exist or is not up to date, then request it from content repository and save in cache
- Check if user has permissions (which is stored in CMS metadata) to this page (content)
- if yes return page
- otherwise show error message (not authorized to view content)
Third type of integration combines previous two:
- User requests page
- Gentics Portal.Node PHP checks if it exists in file system
- Check if user has permissions (which is stored in CMS) to this page
- if yes return page
- otherwise show error message
If you want to use all abilities of CMS such as: search, permission control, navigation. You should use second or third type of integration.
All this is configured in configuration files
3 Request CMS for different data
All requests for content from the CMS are not sent to database but to the Gentics Content API.