General information
This Project was created in order to allow the authors to create new and dynamic content.
The site is multilanguage, with German and English, being German the default language.
The URLs are configured to be the same in both languages and created automatically using the default language, German.
The frontend recognizes that is a Drupal page because the path starts with /content, and then it will call to DDBJournal to get the page in HTML and it will
includes the content into the Frontend page.
Software specification
Using Drupal 8, PostgreSQL 9.6.5, PHP 7.1 and Apache 2.4.6
Content types
Article
The articles have a mandatory field called "Category" that is used to create the URL path and to filter them.
There are two images fields, the rectangular and the square, depends on the design we will use the one or the other.
The editor can use the field Tags, used in the Archiv page "/content/journal/archiv" to search by the Facet Tag.
There are two fields where the author can write text, the body and the marginal. The first one it is displayed in the center of the page,
and the second one is used to create the right sidebar of the page.
Display Mode
Default
Uses when it is selected the detail page of the content
Journal/Overview Teaser Square
As the name says, it is used in the Journal Overview Page to create the teaser with Square Image.
Journal/Overview Teaser Rectangular
As the name says, it is used in the Journal Overview Page to create the teaser with Rectangular Image.
Teaser Article Image L
Uses the image with size L in the list by category of articles
- /journal/aktuell
- /journal/entdecken
- /journal/hintergrund
Teaser Article Image M
Uses the image with size M in the /journal/archiv page
Teaser Article Image S
Uses the image with size M in the block "You might also be interested in"
Auxiliar
This content is only editable for the Drupal Administrators, and it was created to create in Drupal the Person and the Kalenderblatt blocks that later it will be filled with content in the Frontend.
It is also used to create the /journal page, that is a collection of blocks when this page was created, the Panels module was not ready to be used.
Display Mode
Default
Uses the module Panelizer to create the HTML structure of /journal
Journal/Overview Teaser Square
As the name says, it is used in the Journal Overview Page to create the teaser with Square Image, uses for Person and Kalenderblatt.
Journal/Overview Teaser Rectangular
As the name says, it is used in the Journal Overview Page to create the teaser with Rectangular Image, uses for Person and Kalenderblatt.
Basic Page
It is used to create general pages content that is not articles, it has only two fields, body and marginal and they are used as the ones in Articles.
Display Mode
Default
Uses when it is selected the detail page of the content
DDB Newsletter
Using the simplenews module it was created this content type with a specific field structure to follow the DDB Newsletter design.
Some part of this content is filled it by default like the footer, these contents can be sent as a normal newsletter.
This content uses Paragraphs in is structure, in order to have more than one element with the same HTML structure but allow the editor to decide how many elements want to create in each content.
Display Mode
Default
Uses when it is selected the detail page of the content
The version of the content uses when the newsletter is sent.
Event
What makes different this content are the fields Date period, Place and Category Event.
The place is a simple text but the Category Event is a taxonomy, that when the user type in the field will check if exits already in the system.
Those fields are used as facets in the Events page /ueber-uns/termine that includes a facet calendar.
Display Mode
Default
Uses when it is selected the detail page of the content
Teaser
This display mode is used in /ueber-uns/termine in each item of the list.
Exhibition
This content type is used only to create in DDB Journal some teasers list, but the detail page of those contents are not available from anonymous users,
it is used the external link URL to link those exhibitions with the element from http://ausstellungen.deutsche-digitale-bibliothek.de
Display Mode
Journal/Overview Teaser Square
As the name says, it is used in the Journal Overview Page to create the teaser with Square Image.
Journal/Overview Teaser Rectangular
As the name says, it is used in the Journal Overview Page to create the teaser with Rectangular Image.
Teaser
This display mode is used in /journal/ausstellungen in each item of the list. Uses the Image Square L as the category list pages of articles
FAQ
Created using the FAQ module from Drupal. It has a category field to be used as a filter.
Display Mode
Default
Uses when it is selected the detail page of the content
Hilfe
It has the same fields as Basic Page, created as another content type in order to have the content separated.
Display Mode
Default
Uses when it is selected the detail page of the content
Special Pages / Views
Help
Teaser
FAQ
Search/Facet
Journal
/admin/structure/views/view/fragen_und_antworten?destination=/de/admin/structure/views
Custom modules
DDB also interest
Embetty Twitter Block
Event Search
Node hider
Custom block types
DDB Person Link
Most Read
Entityqueues
Media
Media types
Image Styles
Responsive image styles
User Roles
In this project the user roles rights are incremental.
Means that to give to a new user the rights of creating new content and handle the menu, it is needed to assign the Role Author and DDB Administrator.
Administrador
Default Drupal Super Administrador, with all the possible rights.
Author
With the rights of creating, edit, and publish new content.
Entityqueues, add new items in the already existed entityqueues.
Taxonomy, add terms in the already existed taxonomies
Blocklayout, edit and create custom blocks and place already existed blocks in the block layout.
Newsletter
With the extra right of sending and handling newsletter subscriptions.
DDB Administrador
Rights of creating new users, without giving the user role.
Newsletter rights as the Newsletter Role
Rights to translate the Interface
Menu, create new menus and add/edit menu items.
Layout/Theme
Custom Module "DDB Journal" that is a sub-theme from the Bootstrap Theme, that it uses Bootstrap 3.
Cronjobs
Drupal Cron runs every 3 hours, checking the current status of the site, including checking the new version of modules/core.
Cache
The global configuration of the cache for all the pages is 1 day, apart of that we are using a module called "Advanced page expiration" to decide which pages
should not be cached, we are using it to don't cache the /journal page, in order to see the person block rotate.
We have learned that the module is very sensitive and if the URL that you don't want to cache uses some parameters you have to put all the options with all the parameters to don't be cached.
More Info: https://cms.deutsche-digitale-bibliothek.de/en/admin/config/development/performance/ape
Newsletter/E-Mails
The DDB anonymous users don't use DDB Journal to subscribe to the newsletter but it uses to send the newsletters created also in DDB Journal.
The DDB Journal Editors before sending the newsletter will take that newsletter subscriptions list and it will import them into DDB Journal
under https://cms.deutsche-digitale-bibliothek.de/de/admin/people/simplenews/import
The DDB Journal Editors create a new content DDB Newsletter and will send to the subscribers, two versions of newsletters will be created,
the email version and the browser version. To create the email version it is used inline CSS and absolute URL for the images.
There are some background images used in the title that it will appear only in the Browser version but not in the email.
Publication of content in the Frontend
If a content is published in the production DDB Journal automatically it will be published in the Frontend.
If the URL in DDB Journal of the content is https://cms.deutsche-digitale-bibliothek.de/de/journal/aktuell/title-content
The URL in the Frontend is https://deutsche-digitale-bibliothek.de/content/journal/aktuell/title-content
Frontend knows if it is a DDB Journal Page if the path starts with /content, then I will get the Drupal Page and it will rewrite the relative URL from the
images, files, links to make it absolute linked to the DDB Journal URL instead of the Frontend URL.
All these functions are done in the ContentService, ContentController... in ddb-common
Publication of menus in the Frontend
The Frontend is calling depending on the current language to these REST API to get the menus and to save it in the cache.
https://cms.deutsche-digitale-bibliothek.de/en/api/menu_items/main?client=DDB-NEXT&_format=json
https://cms.deutsche-digitale-bibliothek.de/en/api/menu_items/footer?client=DDB-NEXT&_format=json
https://cms.deutsche-digitale-bibliothek.de/de/api/menu_items/main?client=DDB-NEXT&_format=json
https://cms.deutsche-digitale-bibliothek.de/de/api/menu_items/footer?client=DDB-NEXT&_format=json