oda-hub / mmoda-frontend-module

GNU General Public License v2.0
0 stars 1 forks source link

Investigate and identify the best solution to handle the help pages #270

Open motame opened 1 month ago

motame commented 1 month ago

Investigate and identify the best solution to handle the help pages of core module and the different instrument modules.

In Drupal 7, this task was handled by each module. Each module creates its own pages at its installation time and removes them at its uninstallation time. The help pages where exported as php files. The images appear in the help page php files as static links, example :

<img class="same-gallery image-large" src="/mmoda/sites/default/files/styles/large/public/mmoda/help/mmoda/sign.png">

and their content is included in the php file as binary BLOBs.

In Drupal 10, the images are no more inserted as static links but as media entities, example:

<drupal-media data-entity-type="media" data-entity-uuid="a7344671-166e-492d-9cda-d11517d96f4c">&nbsp;</drupal-media>

It's much better as the links are no more static.

In Drupal 7 the module export/import was used and a lot of code has been written in Drupal 7 to maintain the help pages as well as the table of contents implemented as a Book (Book module). Indeed, every time a help page is edited, it is exported when saved.

In Drupal 10, there are some options to handle the help pages globally or per instrument. These options include the following modules :

There is a need to identify the best option to allow :

Note that starting from Drupal 8, all the configuration (mainly stored in the database previously) are in YAML files and the database. All core and modules configurations can be exported and imported in another instance. This will be used for the creation of the content types like, "Help page content type" and "MMODA event content type". In Drupal 7, they were created by the core module MMODA at install time. While in Drupal 10, it will be done by a drush command importing all the configuration at once.

This step should take from 3 to 4 weeks (not full time)

Issue related to #268 !

motame commented 1 week ago

The three above modules (Single Content Sync, Default Content, Default Content Deploy) have been tested and none of the three provides a satisfactory solution for our needs. Another module has been identified to respond to our needs (handling of the help pages) and more:

Based on this module a general solution is found to handle all initial content of the instance including all nodes (pages, articles, help pages), the webforms (contact, api token, user feedback), the taxonomies, the media, the path aliases, etc.

It will be based on composer, the core configuration management API and the contributed module Content Synchronization.

In Drupal 7, MMODA is composed of 4 components :

In Drupal 10, there will be only 3 components 👍