Posts made by Joseph Rézeau

Picture of Développeurs Picture of Développeurs de plugins Picture of Moodleurs particulièrement utiles Picture of Testeurs Picture of Traducteurs

Par défaut dans tinyMCE il n'y a pas de correcteur orthographique Voir https://www.tiny.cloud/blog/tinymce-spellchecker/

If you don’t want the additional functionality provided by Spell Checker Pro, but you need to provide basic spell checking for your users, you can enable browser-based spell checking. To enable browser-based spell checking in TinyMCE, set the browser_spellcheck option to true in your TinyMCE initialization script.

Il faudrait que cette option soit disponible dans le paramétrage de l'éditeur tinyMCE dans l'administration du site ! Bizarrement je n'ai trouvé aucune remarque au sujet de ce manque de correcteur orthographique dans tinyMCE sur le forum anglophone...

Average of ratings: Utile (2)
Picture of Développeurs Picture of Développeurs de plugins Picture of Moodleurs particulièrement utiles Picture of Testeurs Picture of Traducteurs

@Christian,

Oui, je sais tout ça... Et ça ne répond pas à mon problème... que j'ai finalement résolu par un petit bidouillage.

  1. Dans l'interface d'édition du contenu H5P (fichier semantics.json) au champ (texte) de saisie de la date j'ai rajouté cette expression régulière qui permet de cadrer la saisie :
  2. "regexp": {"pattern": "^(-\\d{4,}|\\d{1,}(-(1[012]|[0]?[1-9])(-([12][0-9]|3[01]|[0]?[1-9]))?)?)$"}
  3. avec cette description: "description": "Pattern: YYYY-MM-DD Only year is required. Years can be negative but year must consist of a minimum of 4 figures (and months and days are not accepted). e.g. -40000, -0045, etc."
  4. Dans le script qui récupère les données saisies en mode édition, je détecte la présence d'un signe négatif au début de la date; je rajoute un mois et un jour fictifs (1 1, soit le 1er janvier, juste pour que le Date.parse soit content, etc. ce qui donne ce code:
const isNegativeYear = dateString.startsWith("-");
var dateMillis = 0;
  if (isNegativeYear) {
    var negDateString = '1 1 ' + dateString;
    dateMillis = Date.parse(negDateString);
  } else {  
    dateMillis = Date.parse(dateString);
  }
Et dans dateMillis je récupère une chaîne contenant le Unix timestamp (millisecondes depuis 01-01-1970), positif si date postérieure au 1er janvier 1970 et négatif si antérieure à cette date... y compris des dates BCE (avant J.-C.). CQFD.
Je peux remonter jusqu'à 271820 BCE... ce qui me suffit largement !

PS.- Pour l'anecdote j'ai soumis mon petit bout de script à ChatGPT qui m'a gentiment et fort pertinemment répondu ceci :

Yes, this script should work as intended.

The script first checks if the dateString starts with a - character to determine if it represents a negative year. If it does, it creates a new string by adding '1 1 ' to the beginning of the dateString, which will create a valid date string that can be parsed by the Date.parse() method.

If dateString does not start with a - character, the script simply passes it to the Date.parse() method.

The Date.parse() method returns the number of milliseconds since January 1, 1970, 00:00:00 UTC for the given date string. The script stores this value in the dateMillis variable.

One thing to note is that the var keyword is used to declare the negDateString, dateMillis, and isNegativeYear variables. In modern JavaScript, it's recommended to use let or const instead of var to declare variables. Additionally, it's worth noting that the Date.parse() method may not be the best choice for parsing date strings in all cases, as it has some quirks and limitations.


Average of ratings: Utile (1)
Picture of Développeurs Picture of Développeurs de plugins Picture of Moodleurs particulièrement utiles Picture of Testeurs Picture of Traducteurs

Merci Christian,

Curieusement en effet, ça marche si on donne une date complète, avec mois et jour an plus de l'année négative ! Mais pour des dates aussi éloignées dans le temps (et approximatives) que la grotte de Lascaux (environ 13 000 avant J.-C.), voir s'afficher

January 1, 13000 BCE au lieu de 13000 BCE c'est plutôt ridicule.

Il va falloir que je creuse encore la question, mais merci de m'avoir donné une piste (tu es meilleur que ChatGPT 😎).