AccueilEnglishFrançais

Documentation pour maxiGos v6.67

Copyright 1998-2019 - François Mizessyn - francois.mizessyn@orange.fr

Cliquez ici pour aller à la page de téléchargement

Qu'est-ce que maxiGos ?

MaxiGos est un ensemble d'outils permettant d'insérer des parties, problèmes et diagrammes de go enregistrés au format sgf dans une page web.

Vous pouvez utiliser maxiGos gratuitement pour votre site (licence de type BSD).

Quels sont les prérequis ?

Le navigateur de l'utilisateur final doit pouvoir interpréter du HTML5, et doit avoir javascript activé.

Si on utilise uniquement les lecteurs autonomes de maxiGos (qui sont en javascript), il n'y a aucun prérequis en ce qui concerne le serveur sur lequel ils sont installés.

Si on utilise la version complète de maxiGos (qui utilise javascript, css et php), le serveur sur lequel il est installé doit disposer de php.

Comment commencer simplement avec maxiGos ?

Téléchargez l'un des lecteurs maxiGos suivants :

Copiez-le n'importe où sur votre site.

En supposant que vous avez choisi le lecteur "maxigos-neo-classic-game.js" et en supposant que vous voulez afficher le contenu d'un fichier sgf nommé "monPremierSgf.sgf", insérez dans la partie <body> d'une page html (à l'endroit où vous voulez que le lecteur s'affiche) un code du genre :

<script src="ppp/maxigos-neo-classic-game.js">
qqq/monPremierSgf.sgf
</script>

"ppp/" est un chemin relatif entre la page html concernée et le script maxiGos "maxigos-neo-classic-game.js".

"qqq/" est un chemin relatif entre la page html concernée et le fichier sgf "monPremierSgf.sgf".

Pour voir un exemple avec les six lecteurs ci-dessus, cliquez ici !

Dans de nombreux cas, ces lecteurs suffiront, mais MaxiGos peut faire beaucoup d'autres choses. Lisez la suite pour en savoir plus.

Comment installer la version complète de maxiGos ?

Rendez-vous à la page de téléchargement, téléchargez l'archive contenant maxiGos, décompressez-la et copiez l'ensemble des dossiers et fichiers n'importe où sur votre site. Aucune base de données n'est nécessaire.

Si vous ne voulez pas installer la version complète de maxiGos, vous pouvez vous contenter de télécharger un lecteur autonome. Regardez le chapitre "Méthode utilisant un lecteur autonome en javascript" pour plus de détails.

Recherchez sur votre site la page "_maxigos/_doc/_fr/documentation.php" (il s'agit de la même page que celle-ci, mais stockée sur votre site) et regardez les exemples suivants pour vérifier que cela fonctionne :

  1. Ambiance néo-classique
  2. Ambiance classique
  3. Ambiance japonaise
  4. Ambiance chinoise
  5. Ambiance minimaliste
  6. Caméléon
  7. Editeur sgf
  8. Editeur sgf 2
  9. Kifu
  10. Texture
  11. Ambiance tactigo
  12. Lecteur façon eidogo
  13. Lecteur façon WGo.js
  14. Ambiance rfg.jeudego.org
  15. Ambiance forum.jeudego.org
  16. Ambiance jeudego.org
  17. Ambiance fm
  18. Ambiance tsumego.org
  19. Ambiance en noir et blanc 1
  20. Ambiance en noir et blanc 2
  21. Ambiance goproblems.com
  22. Version animée
  23. Version Tiger
  24. Ambiance troyenne
  25. Iroha, kifu à l'ancienne
  26. Kifu manuscrit
  27. St Valentin
  28. Couleurs des cartes à jouer
  29. Exemples avec mgosLoader.js
  30. Langages multiples
  31. Méthodes variées pour inclure du sgf
  32. Personnalisations variées
  33. BBCode
  34. Tests de charset
  35. Règle du go
  36. Fancy go

L'utilisateur final n'a rien à installer sur sa machine. Il lui suffit de laisser javascript activé.

Comment utiliser maxiGos ?

On dispose de cinq méthodes pour insérer un lecteur maxiGos dans une page web :

Méthode utilisant un lecteur autonome en javascript

On utilisera un lecteur autonome dans les cas où on souhaite faire simple.

Un lecteur autonome est un lecteur maxiGos dont tout le code est dans un fichier javascript unique.

Ces lecteurs sont stockés dans les dossiers "_alone" des exemples fournis avec maxiGos. Ces exemples sont dans le dossier "_sample".

Le code à insérer dans vos pages

On insère un couple de balises <script> et </script> dans la page à l'endroit où doit s'afficher le lecteur sgf, avec comme valeur de l'attribut "src" le script de l'un des lecteurs autonomes fournis avec maxiGos.

Pour le sgf, on peut insérer un nom de fichier sgf ou un texte représentant du sgf ou une url générant du sgf soit entre les balises <script> et </script> ou soit comme valeur de l'attribut "data-maxigos-sgf".

Si on insère un nom de fichier sgf entre les balises <script> et </script>, cela donne par exemple :

<script src="xxx/maxigos-problem.js">
yyy/myFirstSgf.sgf
</script>

Si on insère un nom de fichier sgf comme valeur de l'attribut "data-maxigos-sgf", cela donne par exemple :

<script src="xxx/maxigos-problem.js"
data-maxigos-sgf="yyy/myFirstSgf.sgf">
</script>

Il faut évidemment adapter le chemin (ici "xxx") préfixant le script "maxigos-problem.js", en fonction de l'endroit où vous l'avez copié sur votre site, et de l'endroit où se trouve votre page. Il s'agit du chemin relatif entre votre page et le script javascript du lecteur autonome.

Il faut aussi adapter le chemin (ici "yyy") préfixant le fichier sgf, en fonction de l'endroit où vous l'avez copié sur votre site, et de l'endroit où se trouve votre page. Il s'agit du chemin relatif entre votre page et le fichier sgf.

Si on insère un texte représentant du sgf entre les balises <script> et </script>, cela donne par exemple :

<script src="xxx/maxigos-problem.js">
(;FF[4]GM[1]SZ[19]VW[aa:ii]FG[1]AW[ee]AB[de][fe][ed];B[ef]C[Correct !])
</script>

Si on insère un texte représentant du sgf comme valeur de l'attribut "data-maxigos-sgf", cela donne par exemple :

<script src="xxx/maxigos-problem.js"
data-maxigos-sgf="(;FF[4]GM[1]SZ[19]VW[aa:ii]FG[1]AW[ee]AB[de][fe][ed];B[ef]C[Correct !])">
</script>

Note : lorsqu'on insère directement un texte représentant du sgf dans la page comme dans les deux exemples ci-dessus, la propriété CA est inutile et ignorée si elle est présente car le charset du texte inséré est forcément le même que celui de la page.

Si on insère une url générant du sgf, il est nécessaire d'ajouter l'attribut "data-maxigos-source-filter" avec comme valeur une expression régulière qui "match" avec l'url. Par exemple :

<script src="xxx/maxigos-problem.js"
data-maxigos-source-filter="/download/file\.php\?id=[0-9]+$">
/download/file.php?id=23
</script>

Si on insère une url générant du sgf comme valeur de l'attribut "data-maxigos-sgf", cela donne par exemple :

<script src="xxx/maxigos-problem.js"
data-maxigos-sgf="/download/file.php?id=23"
data-maxigos-source-filter="/download/file\.php\?id=[0-9]+$">
</script>

L'url doit respecter le principe de "même origine" que la page dans laquelle on l'insère (même protocole, même domaine, même port). Elle ne peut donc pas être une url d'un autre site.

Note 1 : il est possible pour un utilisateur avancé de fabriquer un lecteur autonome à l'aide de la fonction "makeAlone" du script php "_php/aloneLib.php" (voir aussi le script "_php/aloneMaker.php" qui utilise cette fonction).

Note 2 : pour faire fonctionner les lecteurs autonomes, on n'a pas besoin d'installer l'ensemble de maxiGos sur le serveur. Il suffit d'y copier le script du lecteur choisi. Si on utilise une langue autre que le français ou l'anglais, on aura aussi besoin d'inclure dans la page le script d'internationalisation de cette langue (l'un de ceux qui sont dans le dossier "_i18n").

Note 3 : en théorie, un lecteur autonome ne devrait pas utiliser de ressources externes (images, fichiers, ...). Lorsqu'une ressource externe est nécessaire, maxiGos la recherche à l'endroit où elle se trouve dans la version complète.

Personnalisation des lecteurs autonomes

La personnalisation de ces lecteurs peut être faite en utilisant des attributs dans la balise <script>.

Le nom de ces attributs est de la forme "data-maxigos-xxx" avec "xxx" le nom d'un paramètre de maxiGos (voir le chapitre "Paramétrage des composants" pour en savoir plus sur ces paramètres). Du fait que seuls les lettres en minuscule sont permises dans le nom des attributs, on remplace les majuscules des noms des paramètres maxiGos par leurs équivalents en minuscule précédés d'un "-". Par exemple, l'attribut correspondant au paramètre maxiGos "in3dOn" sera "data-maxigos-in3d-on".

Beaucoup de choses peuvent être modifiées en utilisant les attributs. Par exemple, pour afficher un diagramme sans effets 3D et un fond de goban transparent avec un lecteur néo-classique qui est à l'origine avec effets 3d et un fond de goban texturé, on peut utiliser :

<script src=""xxx/maxigos-neo-classic-diagram.js""
data-maxigos-in3d-on="0"
data-maxigos-goban-bk="transparent">
(;FF[4]GM[1]SZ[19]VW[aa:ii]FG[1]AW[ee]AB[de][fe][ed])
</script>

Il est aussi possible de modifier l'aspect du lecteur via des feuilles de style comme la couleur du fond du goban de l'exemple ci-dessus, mais aussi beaucoup d'autres caractéristiques des lecteurs (voir le chapitre "Liste des tags et classes utilisés par maxiGos" pour plus de détails).

Méthode utilisant un "lanceur" en php

Il s'agit d'une méthode plus sophistiquée que celle utilisant les lecteurs autonomes, permettant une personnalisation plus lourde.

Un lanceur est un script php qui va générer "à la volée" le code javascript du lecteur en fonction d'informations contenues dans un fichier de configuration.

La ligne à insérer dans vos pages web

On inclut à l'endroit où doit s'afficher maxiGos dans la page web une ligne du genre :

<script src="ppp/sgfplayer.php?sgf=<?php print urlencode("qqq/xxx.sgf");?>&cfg=<?php print urlencode("rrr/yyy.cfg");?>&mxL=en"></script>

Il faut évidemment adapter le chemin (ici "ppp/") préfixant le script "sgfplayer.php", qui est le lanceur, en fonction de l'endroit où vous avez installé maxiGos sur votre site, et de l'endroit où se trouve votre page. Il s'agit du chemin relatif entre votre page et le script php du lanceur. MaxiGos est fourni avec un lanceur, sgfPlayer.php, qui suffit dans la plupart du temps. Ce lanceur est dans le sous-dossier "_mgos" du dossier "_maxigos". L'url de ce lanceur peut avoir quatre paramètres : "sgf", "cfg", "mxL" et "plc", qui sont tous optionnels (voir ci-dessous pour plus d'informations sur ces paramètres).

Il est prudent d'appliquer la fonction php "urlencode()" sur les valeurs des paramètres du lanceur, surtout quand ce sont des noms de fichier précédés d'un chemin, ou quand ce sont des textes représentant du sgf.

On peut ajouter autant de maxiGos que l'on veut dans une page. On n'est limité que par les possibilités du serveur web et celles de la machine de l'utilisateur.

Le paramètre "sgf"

Le paramètre "sgf" de l'url du lanceur permet de spécifier le sgf à lire.

Note : au lieu d'utiliser ce paramètre "sgf", on peut aussi simplement insérer comme pour les lecteurs autonomes le nom d'un fichier sgf ou un texte représentant du sgf ou une url générant du sgf entre les balises <script> et </script>. On peut aussi spécifier le nom d'un fichier sgf ou un texte représentant du sgf ou une url générant du sgf comme valeur de l'attribut "data-maxigos-sgf" de la balise <script>.

Si aucun sgf n'est spécifié via l'une des méthodes ci-dessus, maxiGos affichera un goban 19x19 vide.

On peut indiquer le nom d'un fichier sgf comme valeur du paramètre "sgf". Le fichier sgf peut être n'importe où dans l'arborescence du site. Par exemple, si le fichier sgf est dans un sous-dossier "_sgf" du dossier parent du dossier où se trouve le lanceur, on utilisera :

sgf=<?php print urlencode("qqq/xxx.sgf");?>

"qqq/" est le chemin relatif entre le lanceur et le fichier sgf.

On peut aussi simplement indiquer un texte réprésentant du sgf comme valeur du paramètre "sgf".

Par exemple :

sgf=<?php print urlencode("(;FF[4]GM[1]SZ[19];B[qd])");?>

Tout code sgf valide peut être utilisé. Notez que cette méthode ne fonctionne qu'avec des petits enregistrements sgf, car en pratique les url ne peuvent pas être infiniment longues (la longueur maximale dépend du paramétrage des serveurs webs et des navigateurs utilisés).

On peut enfin indiquer une url générant du sgf comme valeur du paramètre "sgf" (vérifiez si votre serveur web accepte cela : ce n'est pas toujours le cas).

Par exemple :

sgf=<?php print urlencode("/download/file.php?id=23");?>

Dans ce cas il faut aussi donner au paramètre "sourceFilter" dans le fichier de configuration la valeur d'une expression régulière qui "match" avec l'url (par exemple ici "/download/file\.php\?id=[0-9]+$"), ou utiliser l'attribut "data-maxigos-source-filter" avec comme valeur cette expression régulière.

L'url doit également respecter le principe de "même origine" que la page dans laquelle on l'insère (même protocole, même domaine, même port). Elle ne peut donc pas être une url d'un autre site.

Le paramètre "cfg"

Le paramètre "cfg" de l'url du lanceur permet de spécifier le fichier de configuration à utiliser.

Par exemple :

cfg=<?php print urlencode("rrr/yyy.cfg");?>

"rrr/" est le chemin relatif entre le lanceur et le fichier de configuration. Les fichiers de configuration peuvent être stockés n'importe où sur le site.

MaxiGos est livré avec un certain nombre de fichiers de configuration. Ces fichiers sont stockés dans les sous-dossiers du dossier "_sample". Il n'est pas très difficile de les modifier ou d'en créer de nouveaux en cas de besoin.

Si le paramètre "cfg" n'est pas présent dans l'url, maxiGos utilise par défaut la configuration "basic" de l'exemple "neo-classic" qui est "../_sample/neo-classic/_cfg/basic.cfg".

Le paramètre "mxL"

Le paramètre "mxL" de l'url du lanceur permet de spécifier la langue utilisée par maxiGos.

Les valeurs de "mxL" sont les codes langue tel que : "en" pour anglais, "fr" pour français...

Par exemple :

mxL=en

Si le paramètre "mxL" n'est pas présent dans l'url, et si aucune autre langue n'est spécifiée via l'attribut "data-maxigos-l", maxiGos fonctionnera en français.

Le paramètre "plc"

Le paramètre "plc" de l'url du lanceur permet de spécifier l'identifiant d'une balise dont le contenu est éventuellement le nom d'un fichier sgf ou un texte représentant du sgf ou une url générant du sgf. Si c'est bien le cas, ce contenu est remplacé par un lecteur maxiGos qui affiche ce contenu.

Par exemple :

<div id="dia1"></div>
<script src="ppp/sgfplayer.php?sgf=<?php print urlencode("qqq/xxx.sgf");?>&cfg=<?php print urlencode("rrr/yyy.cfg");?>&mxL=en&plc=dia1"></script>

Ce paramètre est rarement utilisé.

Personnalisation des lecteurs insérés par un lanceur

Comme pour les lecteurs autonomes, on peut personnaliser un lecteur inséré par un lanceur en utilisant des attributs de la forme "data-maxigos-xxx" dans la balise où s'affiche ce lecteur (voir le chapitre "Personnalisation des lecteurs autonomes" pour plus de détails). Il est aussi possible de modifier l'aspect du lecteur via des feuilles de style (voir le chapitre "Liste des tags et classes utilisés par maxiGos" pour plus de détails).

Méthode utilisant un "chargeur" en javascript

Cette méthode permet de ne pas avoir à insérer le code de maxiGos à chaque endroit de la page où doit s'afficher un lecteur. Elle est par contre sensiblement plus lente que les précédentes. Il est conseillé de ne l'utiliser que si aucune des deux méthodes précédentes n'est possible.

Un chargeur est un script javascript qui recherche dans la page toutes les balises où un lecteur doit être affiché et qui génère "à la volée" pour chacune de ces balises le script javascript d'un lecteur maxiGos.

En pratique, on insère dans la page web aux endroits où l'on souhaite afficher un lecteur des balises comme <div> et </div> dont l'un des attributs est "data-maxigos". La valeur de cet attribut est le nom d'une configuration de maxiGos. Le nom du fichier de configuration correspondant étant la concaténation de la valeur de "_sample/neo-classic/_cfg/", qui est la valeur par défault du dossier contenant les fichiers de configuration, suivi du nom de la configuration suivi de ".cfg".

On insère ensuite le nom d'un fichier sgf ou un texte représentant du sgf ou une url pouvant générer du sgf entre ces balises.

On insère enfin le script "mgosLoader.js" (qui est le chargeur, et qui lui-même appelle un lanceur spécial "sgfmultipleplayer.php") après toutes les balises de la page dont l'un des attributs est "data-maxigos".

Par exemple :

<div data-maxigos="problem">
(;FF[4]CA[UTF-8]GM[1]SZ[19]VW[aa:lh]
EV[N° 1 .|. Niveau 1]
FG[1]ST[2]
AW[ab][bb][cb][db][da]
AB[bc][cc][dc][ec][eb][gb][be]
C[À Noir de jouer]
;B[ba]C[Correct !])
</div>
<div data-maxigos="problem">
(;GM[1]FF[4]ST[2]SZ[19]VW[aa:lh]
EV[N° 2 .|. Niveau : 1]
AW[da][ea][fb][dc][ec][fc][ad][bd][cd]
AB[ba][cb][db][eb][ac][bc][cc]
C[À Noir de jouer]
;B[ab]C[Correct !])
</div>
<script src="ppp/_mgos/mgosLoader.js"></script>

Il faut évidemment adapter le chemin (ici "ppp") préfixant le script "_mgos/mgosLoader.js", en fonction de l'endroit où vous avez installé maxiGos sur votre site, et de l'endroit où se trouve votre page.

Eventuellement, pour utiliser un fichier de configuration qui n'est pas dans le dossier par défaut, on préfixe la valeur de l'attribut "data-maxigos" par un chemin relatif entre le dossier "_sample/neo-classic/_cfg/" et le dossier où se trouve le fichier de configuration. Par exemple, si l'on souhaite utiliser le fichier de configuration "comment.cfg" qui se trouve dans "_maxigos/_sample/minimalist/_cfg" :

<div data-maxigos="../../_sample/minimalist/_cfg/comment">

Si vous utilisez une autre langue que le français ou l'anglais, insérez avant le script "mgosLoader.js" un script d'internationalisation correspondant à la langue choisie. Par exemple, pour le japonais, on peut insérer le script "mgos-i18n-ja.js" se trouvant dans "_i18n/" (remplacez "ppp" par le chemin relatif entre votre page et le dossier "_i18n") avec le code suivant :

<script src="ppp/_i18n/mgos-i18n-ja.js"></script>

Ensuite, utilisez l'attribut "data-maxigos-l" pour préciser la langue dans chaque balise devant contenir un lecteur. Par exemple :

<div data-maxigos="problem"
data-maxigos-l="ja">
qqq/monPremierSgf.sgf
</div>

"qqq/" est le chemin relatif entre la page web et le fichier sgf.

Personnalisation des lecteurs insérés par un chargeur

Comme pour les lecteurs autonomes, on peut personnaliser un lecteur inséré par un chargeur en utilisant des attributs de la forme "data-maxigos-xxx" dans la balise où s'affiche ce lecteur (voir le chapitre "Personnalisation des lecteurs autonomes" pour plus de détails). Il est aussi possible de modifier l'aspect du lecteur via des feuilles de style (voir le chapitre "Liste des tags et classes utilisés par maxiGos" pour plus de détails).

Méthode utilisant un plugin

Voir les pages des plugins (pour joomla et pour wordpress) pour plus de détails.

Méthode utilisant un BBCode

Voir la page des BBCodes pour plus de détails.

Internationalisation

La langue par défaut utilisée par maxiGos est le français. Si vous utilisez maxiGos uniquement dans cette langue, vous n'avez pas besoin de lire le reste de ce chapitre.

Vous pouvez changer cette langue par défaut pour l'anglais en incluant data-maxigos-l="en" comme attribut de toute balise <script> appelant maxiGos. Par exemple :

<script data-maxigos-l="en" src="ppp/maxigos-neo-classic-game.js">qqq/monPremierSgf.sgf</script>

Notez que maxiGos ne traduit pas le contenu des sgf. Il peut juste changer la langue de ses propres messages, des textes sur ses boutons, …

Pour une autre langue que le français et l'anglais, incluez en plus avant tout appel à maxiGos un script d'internationalisation pour cette autre langue. Par exemple, pour le japonais, incluez le script "mgos-i18n-ja.js" qui se trouve dans le dossier "_i18n/" (remplacez "rrr" par un chemin relatif entre la page web et le dossier "_i18n") via  :

<script src="rrr/_i18n/mgos-i18n-ja.js"></script>

Si vous ne pouvez pas ou ne souhaitez pas à avoir à insérer cette ligne dans chacune de vos pages, vous pouvez simplement ajouter le code contenu dans le script d'internationalisation correspondant à la langue choisie au début de "_mgos/_js/mgos_lib.js" (si vous utilisez la version complète de maxiGos) et au début des scripts javascript se trouvant dans les dossiers "_alone" des exemples du dossier "_sample" (seulement si vous les utilisez explicitement dans vos pages).

Ensuite, ajoutez data-maxigos-l="ja" comme attribut de toute balise où un lecteur maxiGos va s'afficher. Par exemple :

<script src="ppp/maxigos-neo-classic-game.js"
data-maxigos-l="ja">
qqq/monPremierSgf.sgf
</script>

Tous les scripts d'internationalisation fournis avec maxiGos sont dans le dossier "_i18n". Si le script d'internationalisation dont vous avez besoin n'existe pas encore, vous pouvez essayer de le créer (inspirez-vous de celui du japonais). Vous pouvez aussi jeter un coup d'oeil aux "Questions et réponses" pour en savoir plus à ce propos.

Note 1 : si vous créez un script d'internationalisation, c'est une bonne pratique de choisir un code langue qui soit ISO 639 (par exemple "ja" pour japonais et non pas "jp").

Note 2 : quand on utilise un lanceur (voir le chapitre sur les lanceurs plus haut dans ce document) il est plus simple est d'utiliser le paramètre "mxL" dans l'URL du lanceur pour changer la langue.


Utilisation avancée

Ce qui suit ne concerne que les utilisateurs avancés qui voudraient modifier certaines parties de maxiGos.

Les composants

Le code de maxiGos a été découpé en composants, chaque composant correspondant à une partie du lecteur. Par exemple le goban, la boite à commentaire, ou la barre de navigation sont des composants.

La liste des composants d'un lecteur se définit dans son fichier de configuration.

Liste des composants prédéfinies

Les composants prédéfinis sont :

On n'est pas obligé d'utiliser tous les composants, et seul "Goban" est obligatoire.

En utilisant uniquement les composants dont on a vraiment besoin pour une utilisation donnée, on diminue parfois considérablement la taille du code qui sera téléchargé sur la machine de l'utilisateur, et donc le temps que mettra maxiGos à démarrer.

Utiliser un composant prédéfini

Les codes des composants sont écrits en javascript.

Ils sont dans des fichiers ayant un nom de la forme "mgosNomDuComposant.js".

Pour pouvoir utiliser des composants, il suffit d'ajouter dans un fichier de configuration des lignes du type $gosParam["Script"][]="_js/mgosNomDuComposant.js";.

Si l'on veut utiliser les composants "Comment" et "Navigation" par exemple (en plus du composant "Goban" évidemment), on ajoutera leurs codes, ainsi que les fichiers "mgos_lib.js", "mgos_rls.js", "mgos_prs.js", et "mgos.js" qui sont des fichiers communs qui doivent être dans toutes les configurations, en ajoutant les lignes suivantes dans un fichier de configuration :

$gosParam["Script"][]="_js/mgos_lib.js"; // fonctions communes à tous les composants
$gosParam["Script"][]="_js/mgos_rls.js"; // gestion de la règle
$gosParam["Script"][]="_js/mgos_prs.js"; // parser sgf
$gosParam["Script"][]="_js/mgos.js"; // code de base de maxiGos
$gosParam["Script"][]="_js/mgosGoban.js"; // composant "Goban"
$gosParam["Script"][]="_js/mgosComment.js"; // composant "Comment"
$gosParam["Script"][]="_js/mgosNavigation.js"; // composant "Navigation"

On peut aussi créer ses propres composants qu'il faut alors définir dans un fichier javascript du même genre que pour les composants prédéfinis.

Dans ce fichier il suffira de définir les fonctions "createNomDuComposant()", appelée par maxiGos lors du chargement de la page, "initNomDuComposant()" appelée par maxiGos juste après le chargement de la page, "updateNomDuComposant()" appelée par maxiGos après chaque action de l'utilisateur, et "refreshNomDuComposant()" appelée en boucle (par défaut une fois par seconde). Il faut déclarer ces fonctions en tant que prototype pour la classe "mxG.G" (qui est définie par ailleurs dans "mgos.js"). Par exemple, si l'on souhaite créer un composant appelé "Cute" dont l'unique action est d'afficher lors du chargement de la page la phrase "Je suis là !", le code correspondant sera :

mxG.G.prototype.createCute=function()
{
document.write("<p>Je suis là !</p>");
};

La définition de "createNomDuComposant()" est obligatoire, mais la définition des autres fonctions est facultative.

Il faut enfin déclarer ces fichiers javascript dans le fichier de configuration comme pour les composants prédéfinis par une ligne du type :

$gosParam["Script"][]="xxx/NomDuFichierContenantLeComposant.js";

"NomDuFichierContenantLeComposant" peut être n'importe quel nom. Il n'a pas besoin d'être préfixé par "mgos" ni même de contenir le nom du composant.

Les fichiers javascript des composants prédéfinis sont dans le dossier "_js". Mais un fichier javascript définissant un composant peut être n'importe où dans l'arborescence du site. Il convient donc de le préfixer par un chemin relatif entre le dossier "_maxigos" et le dossier où il se trouve.

Un fichier javascript peut éventuellement contenir la définition de plusieurs composants.

Important : ne pas oublier d'ajouter dans tous les cas les fichiers "mgos_lib.js", "mgos_rls.js", "mgos_prs.js" et "mgos.js".

Les boites contenant les composants

Pour que le code du composant soit exécuté (qu'il soit prédéfini ou non), il faut aussi ajouter une ligne de code php dans un fichier de configuration de la forme :

$gosParam["NomDeBoite"][]="NomDeComposant";

"NomDeBoite" est l'identifiant d'une boite qui finit obligatoirement par "Box" (par exemple "XxxBox", "Xxx" pouvant être toute chaine de caractères alplanumériques). Une boite sert à regrouper les composants de maxiGos (essentiellement pour faciliter la mise en page).

"NomDeComposant" est le nom d'un des composants pouvant être utilisé par maxiGos.

À chaque fois qu'un nouveau nom de boite est rencontrée dans le fichier de configuration, maxiGos insère dans votre page un <div class="gosNomDeBoiteDiv" id="identifiantObjetNomDeBoiteDiv">. Ensuite, chaque instruction du fichier de configuration déclarant un composant a pour effet d'inclure le composant ayant pour nom "NomDeComposant" dans le code html de la page, entre les balise <div> et </div> de la boite ayant pour nom "NomDeBoite", et dans l'ordre dans lequel ces instructions sont placées dans le fichier de configuration. On peut évidemment avoir plusieurs composants par boite, puisque les boites ont pour fonction première de regrouper les composants.

Les identifiants des objets (appelés "identifiantObjet") sont de la forme "d" + un numéro qui est incrémenté automatiquement de 1 à chaque nouvel objet maxiGos inséré dans une page, le premier objet maxiGos de la page ayant le numéro 1.

Par exemple, le goban du deuxième objet maxiGos d'une page est dans la boite :

<div class="mxGobanDiv" id="d2GobanDiv">...</div>

Voici un exemple de ce que ça peut donner en pratique (ici, on utilise trois composants : "Goban", "Navigation" et "Comment") :

<?php
$gosParam["Script"][]="_js/mgos_lib.js";
$gosParam["Script"][]="_js/mgos_rls.js";
$gosParam["Script"][]="_js/mgos_prs.js";
$gosParam["Script"][]="_js/mgos.js";
$gosParam["Script"][]="_js/mgosGoban.js";
$gosParam["Script"][]="_js/mgosNavigation.js";
$gosParam["Script"][]="_js/mgosComment.js";

$gosParam["LeftBox"][]="Goban";
$gosParam["LeftBox"][]="Navigation";
$gosParam["RightBox"][]="Comment";
?>

Un composant peut ne pas avoir de boite d'affichage dédiée (cas par exemple d'un composant qui se contenterait de modifier l'affichage du goban), voire même n'effectuer aucun affichage. Si on veut en utiliser un, il faudra néanmoins le déclarer dans un fichier de configuration via une ligne du type "$gosParam["NomDeBoite"][]="NomDeComposant";" afin que maxiGos puisse savoir à quel moment il conviendra d'exécuter les actions qui y sont définies.

Paramétrage des composants

Un composant peut être paramétré via les fichiers de configuration.

Pour indiquer à maxiGos la valeur d'un paramètre, la ligne de code php à placer dans un fichier de configuration est de la forme :

$gosParam["NomDeParametre"]="ValeurDuParametre";

Il faut bien faire attention aux majuscules et minuscules.

Par exemple, pour indiquer qu'on souhaite afficher une marque sur le dernier coup, on insérera la ligne :

$gosParam["markOnLastOn"]=1;

S'il s'agit d'une chaine de caractères, il ne faut pas oublier les guillemets. Par exemple :

$gosParam["initMethod"]="last";

Note : pour changer le rayon des pierres, la couleur du fond et des lignes du goban, la taille et la couleur des icones dans les boutons, utilisez de préférence les css (voir le chapitre "Style").

Les paramètres que l'on peut modifier sont :

Paramètres généraux

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
themeSouventSi la valeur de ce paramètre est définie, maxiGos ajoute à la boite globale la classe "mx"+(la valeur de theme)+"GlobalBoxDiv". Ce paramètre est très utile lorsque l'on souhaite utiliser des feuilles de style communes à plusieurs types de lecteurs. Une chaine de caractères alphanumérique""
configSouventSi la valeur de ce paramètre est définie, maxiGos ajoute à la boite globale la classe "mx"+(la valeur de config)+"GlobalBoxDiv". Ce paramètre est très utile lorsque l'on souhaite utiliser des feuilles de style pour un seul type de lecteurs dans une page contenant différents types de lecteurs. Une chaine de caractères alphanumérique""
initMethodSouventAction initiale de maxiGos : aller au début du Sgf ("first"), aller à la fin de la variante principale du Sgf ("last"), parcourir en boucle le Sgf ("loop") ou avancer de n noeuds dans l'arbre des coups. On ne peut utiliser "loop" que si le composant "Loop" est aussi présent."first", "last", "loop" ou un entier"first"
customStoneRarementS'il est défini, maxiGos utilise des images png pour dessiner les pierres qu'il recherche dans le dossier indiqué par "customStone" (chemin relatif entre le dossier "_maxigos" et le dossier où sont les images). S'il est indéfini, maxiGos dessine les pierres à l'aide de fonctions graphiques javascript (ce qui est son comportement par défaut).

Ces images doivent avoir pour nom "black" ou "white" suivi de "3d" ou "2d" suivi de leur diamètre en pixel et suffixé par ".png". Par exemple, pour une pierre noire en 3d de 23 pixels de diamètre, le nom du fichier sera "black3d23.png". Les diamètres doivent toujours être impairs, et compris entre 9 et 31 pixels. Quand maxiGos a besoin de pierres plus grandes ou plus petites, il les fabrique à partir des pierres de diamètre les plus proches.

Il convient de fabriquer toutes les images de diamètre impair en 3d (et éventuellement en 2d) entre 9 et 31 pixels car maxiGos peut en avoir besoin (maxiGos calcule la taille des pierres d'après la taille de la police de caractère du canvas dans lequel est dessiné le goban, et un internaute peut à tout moment faire varier cette taille en faisant par exemple un zoom du texte seulement via son navigateur). MaxiGos ne fait aucune vérification concernant l'existence de ces images et ne cherche pas à les fabriquer quand elles sont manquantes. Il convient donc de s'assurer qu'elle sont bien présentes.
un chemin vers le dossier contenant les images des pierres"undefined"
sgfLoadCoreOnlyParfoisS'il vaut 1, on ne garde que les informations essentielles sur la partie (EV, RO, DT, PC, PB, PW, BR, BW, BT, BW, RU, TM, OT, HA, KM, RE) lors du décodage du sgf.0 ou 10
sgfSaveCoreOnlyParfoisS'il vaut 1, on ne garde que les informations essentielles sur la partie (EV, RO, DT, PC, PB, PW, BR, BW, BT, BW, RU, TM, OT, HA, KM, RE) lors de l'encodage du sgf.0 ou 10
sgfLoadMainOnlyParfoisS'il vaut 1, on ne garde que la variante principale et les informations sur la partie (EV, RO, DT, PC, PB, PW, BR, BW, BT, BW, RU, TM, OT, HA, KM, RE) lors du décodage du sgf.0 ou 10
sgfSaveMainOnlyParfoisS'il vaut 1, on ne garde que la variante principale et les informations sur la partie (EV, RO, DT, PC, PB, PW, BR, BW, BT, BW, RU, TM, OT, HA, KM, RE) lors de l'encodage du sgf.0 ou 10
fitParentSouventS'il vaut 1, maxiGos réduit la largeur de la boite contenant le goban de manière à ce qu'elle soit moins large que l'élément HTML contenant le lecteur (à utiliser avec "fitMax" si le goban n'est pas un 19x19 et si maximizeGobanWidth ne vaut pas 1).
S'il vaut 2, maxiGos adapte la taille des boutons de navigation de manière à ce que la barre de navigation soit moins large que la largeur de la boite contenant le goban (suppose que le goban est un 19x19 ou que maximizeGobanWidth vaut 1).
S'il vaut 3, on réduit à la fois la largeur de la boite contenant le goban et la taille des boutons de navigation.

MaxiGos ne sait pas calculer les "margins" de "GobanDiv", du parent de "GobanDiv" et de "GlobalBoxDiv" (les navigateurs ne donnent pas tous le même résultat), et suppose que ces "margins" sont nulles ou qu'elles ont la valeur "auto". Si toutefois ces boites doivent avoir des "margins", essayez d'utiliser le paramètre "fitDelta" avec "fitParent".
0 ou 10
fitMaxParfoisSi "fitParent" vaut 1, maxiGos considère que le goban a au plus "fitMax" lignes en largeur (les coordonnées autour du goban comptent pour 1 ligne de chaque côté) pour déterminer s'il doit ou pas réduire sa taille. Un nombre21 si les coordonnées sont affichées autour du goban, 19 sinon
fitDeltaParfoisSi "fitParent" vaut 1, maxiGos retire fitDelta pixels à la largeur de l'élément HTML contenant maxiGos pour déterminer s'il doit ou pas réduire sa taille. Un nombre0
htmlParenthesisParfoisS'il vaut 1, maxiGos remplace les éventuelles "&#40;" et "&#41;" par "(" et ")" dans le source sgf lorsque celui-ci est un enregistrement sgf inséré entre les balises de l'élément html où doit s'afficher le lecteur sgf (utile par exemple en cas d'utilisation de maxiGos dans les forums fonctionnant avec phpBB3 dont l'éditeur remplace les "(" et ")" par "&#40;" et "&#41;"). 0 ou 10
sourceFilterParfoisUne expression régulière que doit respecter le source sgf lorsque celui-ci est du code sgf inséré entre les balises de l'élément html où doit s'afficher le lecteur (utile par exemple pour rejeter un source sgf indésirable inséré par un utilisateur dans un forum). Une expression régulièreChaine vide
htmlBrRarementS'il vaut 1, maxiGos remplace les <br> par des retours à la ligne (au lieu d'afficher des chaines de caractères "<br>").

Note : quand un enregistrement sgf (mais pas un nom de fichier ou une url) est inséré entre les balises de l'élément html où doit s'afficher le lecteur sgf, par défaut maxiGos remplace les <br> par des retours à la ligne (parce que les éditeurs des frameworks peuvent ajouter des <br> quand ils détectent des retours à la ligne dans la saisie d'un utilisateur). Quand on veut empêcher cela, il convient de fixer explicitement la valeur de "htmlBr" à 0.
0 ou 1"undefined"
htmlSpanRarementS'il vaut 1, maxiGos affiche les <span> et </span> comme des balises html (au lieu d'afficher des chaines de caractères "<span>" et "</span>"). Les balises peuvent avoir seulement un attribut "class" dont le nom est composé uniquement de lettres, chiffres, "_" et "-". 0 ou 1"undefined"
htmlDivRarementS'il vaut 1, maxiGos affiche les <div> et </div> comme des balises html (au lieu d'afficher des chaines de caractères "<div>" et "</div>"). Les balises peuvent avoir seulement un attribut "class" dont le nom est composé uniquement de lettres, chiffres, "_" et "-". 0 ou 1"undefined"
htmlPRarementS'il vaut 1, maxiGos affiche les <p> et </p> comme des balises html (au lieu d'afficher des chaines de caractères "<p>" et "</p>"). Les balises peuvent avoir seulement un attribut "class" dont le nom est composé uniquement de lettres, chiffres, "_" et "-".

Note : quand un enregistrement sgf (mais pas un nom de fichier ou une url) est inséré entre les balises de l'élément html où doit s'afficher le lecteur sgf, par défaut maxiGos supprime les <p> et remplace les </p> par des double retours à la ligne (parce que les éditeurs des frameworks peuvent ajouter automatiquement des </p><p> quand l'utilisateur saisie des retours à la ligne dans son texte). Quand on veut empêcher cela, il convient de fixer explicitement la valeur de "htmlP" à 0 ou 1.
0 ou 1"undefined"
swapOnParfoisS'il vaut 1, maxiGos passe d'une agencement vertical à un agencement horizontal de deux boites choisies parmi les boites de regroupement de composants (il s'agit des boites dont le nom se termine par "Box") en fonction de la largeur disponible.

Le principe général est le suivant : si l'espace disponible est suffisant, les boites de regroupement référencées par les paramètres "swapMain" et "swapBeside" sont affichées l'une à côté de l'autre (agencement horizontal). Sinon elles sont affichées l'une sous l'autre (agencement vertical). Pour déterminer si l'agencement doit être horizontal ou vertical, on regarde si l'espace disponible est plus grand que la largeur de la boite référencée par "swapMain" multiplié par la valeur de swapRatio + 1.

Si c'est le cas, l'agencement à effectuer est horizontal. Pour le réaliser, maxiGos donne aux deux boites de regroupement référencées par les paramètres "swapMain" et "swapBeside" la valeur "inline-block" à leur propriété css "display". De plus, maxiGos donne à la boite référencée par "swapBeside" une largeur égale à celle référencée par "swapMain" multiplié par la valeur du paramètre "swapRatio". Et si le paramètre "swapExtend" contient le nom d'un composant contenu dans la boite référencée par "swapBeside", maxiGos ajuste sa hauteur afin que les boites référencées par "swapMain" et "swapBeside" aient la même hauteur. On ajoute aussi à la boite globale la classe "mxHorizontal".

Sinon, l'agencement à effectuer est vertical. Pour le réaliser, maxiGos donne simplement à la boite référencée par "swapBeside" une largeur égale à celle référencée par "swapMain". On ajoute aussi à la boite globale la classe "mxVertical".
0 ou 1"undefined"
swapMainParfoisNom de la boite principale utilisée lors d'un swap (voir "swapOn"). Un nom de boite se terminant par "Box""undefined"
swapBesideParfoisNom de la boite secondaire utilisée lors d'un swap (voir "swapOn"). Un nom de boite se terminant par "Box""undefined"
swapRatioParfoisRatio à utiliser pour savoir les swaps (voir "swapOn"). Un nombre"undefined"
swapExtendParfoisNom du composant contenu dans la boite référencée par "swapBeside" dont maxiGos ajustera la hauteur en cas de swap (voir "swapOn"). 0 ou 1"undefined"
adjustXxxBoxWidthParfois S'il vaut 1, maxiGos ajuste la largeur de la boite de regroupement "XxxBox" à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite de regroupement "XxxBox" à celle de cette autre boite. 0, 1 ou nom de boite0
adjustXxxBoxHeightParfois S'il vaut 1, maxiGos ajuste la hauteur de la boite de regroupement "XxxBox" à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la hauteur de la boite de regroupement "XxxBox" à celle de cette autre boite. 0, 1 ou nom de boite0

Composant "About"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
aboutBtnOnParfoisS'il vaut 1, affiche le bouton "About" dans la boite de son composant.0 ou 10

Composant "BackToMain"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
backToMainBtnOnParfoisS'il vaut 1, affiche le bouton "Back to main" dans la boite de son composant.0 ou 10

Composant "AnimatedStone"

Par défaut, il n'y a qu'une animation disponible : une translation entre un coin du goban et l'intersection où doit être placée la pierre.

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
animatedStoneTimeParfoisTemps de réference utilisé pour calculer le temps que mettra une pierre pour aller du bol de pierres à son emplacement sur le goban. Le temps réel dépend de la distance entre le point de début et le point de fin de la translation.

Sa valeur par défaut est celle du paramètre "loopTime" si le composant "Loop" est utilisé, 1000 ms sinon.
Nombre1000

Composant "Buttons"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
buttonsToujoursListe des boutons à inclure dans le conteneur ("Header", "Option", "Sgf"...). Une chaine de caractères listant les boutons séparés par une virguleChaine vide
adjustButtonsWidthSouvent S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0
adjustButtonsHeightSouvent S'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la hauteur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0

Composant "Cartouche"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
adjustCartoucheWidthSouvent S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0
adjustCartoucheHeightRarement S'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la hauteur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0
playerAndRankInSameElementOnParfois S'il vaut 1, maxiGos ajoute les niveaux derrière le nom des joueurs. Sinon, il les met dans un élement html séparé prefixé par "Niv.". 0 ou 10
smallStoneAsPrisonerLabelOnParfois S'il vaut 1, maxiGos ajoute une petite pierre après le nombre de prisonniers. Sinon, il les préfixe par "Cap.". 0 ou 10

Composant "Comment"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
adjustCommentWidthSouvent S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0
adjustCommentHeightSouvent S'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la hauteur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0
headerInCommentSouventS'il vaut 1, maxiGos ajoute dans la boite à commentaire le contenu du composant Header lors de l'affichage de la position initiale.

Pour que ce paramètre ait un effet, il faut que le composant "Header" soit lui aussi présent.
0 ou 10
allInCommentRarementS'il vaut 1, maxiGos ajoute dans la boite à commentaire le contenu de tous les commentaires depuis la racine jusqu'au noeud de l'arbre affiché, en préfixant chaque commentaire par le numéro du dernier coup joué quand (ou juste avant que) ce commentaire a été (ou ne soit) fait.0 ou 10

Composant "Cut"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
cutBtnOnParfoisS'il vaut 1, affiche le bouton "Cut" dans la boite de son composant.0 ou 10

Note : le bouton s'appelle "SimpleCut" et non pas "Cut" pour éviter une éventuelle confusion avec l'outil "Cut" du composant "Edit".

Composant "Diagram"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
indicesOnSouventS'il vaut 1, maxiGos affiche les indices sur le pourtour du goban.

S'il vaut 0, maxiGos n'affiche pas ces indices.

S'il est "undefined", maxiGos obtient sa valeur via la propriété FG des fichiers sgf.
0, 1 ou "undefined""undefined"
asInBookOnSouventS'il vaut 1, maxiGos affiche les pierres comme dans les livres (c'est à dire qu'il ne retire pas les prisonniers capturés par des pierres numérotées).

S'il vaut 0, maxiGos retire les prisonniers comme en partie réelle.

S'il est "undefined", maxiGos obtient sa valeur via la propriété FG des fichiers sgf.
0, 1 ou "undefined""undefined"
numberingOnSouvent S'il vaut 0, maxiGos ne numérote pas les pierres.

S'il vaut 1, maxiGos numérote les pierres (la numérotation démarre normalement à partir de la première propriété sgf B ou W rencontrée, et redémarre après une propriété sgf AB, AW, ou AE).

S'il vaut 2, maxiGos numérote les pierres modulo 100 pour le premier coup numéroté.

S'il est "undefined", maxiGos obtient sa valeur via la propriété PM des fichiers sgf.
0, 1, 2 ou "undefined""undefined"
marksAndLabelsOnSouventS'il vaut 1, maxiGos affiche les marques et étiquettes (contenu des propriétés sgf MA, CR, SQ, TR, LB, TB et TW).0 ou 10
numAsMarkOnLastOnRarementS'il vaut 1, maxiGos affiche le numéro du coup au lieu d'une marque sur le dernier coup.0 ou 10

Composant "Edit"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
checkRulesOnSouvent S'il vaut 2, maxiGos vérifie si le coup placé par l'utilisateur est légal. Les coups illégaux pour maxiGos sont actuellement les coups joués sur des intersections occupées, les suicides, et les répétitions de la dernière position.

S'il vaut 1, maxiGos vérifie si le coup placé par l'utilisateur l'est sur une intersection inoccupée.

S'il ne vaut ni 1 ni 2, maxiGos autorise de placer une pierre n'importe où.

La vérification ne s'applique pas aux coups présents dans l'enregistrement sgf initial, mais seulement à ceux placés par l'utilisateur, car les coups illégaux sont autorisés par le standard sgf. Dans tous les cas, maxiGos ne place le coup que si la vérification est positive.
0, 1, 2 ou "undefined""undefined"

Composant "File"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
openOnlyParfoisS'il vaut 1, maxiGos n'affiche qu'un seul bouton "Cliquer ici pour ouvrir un fichier sgf".0 ou 10
hideNewRarementS'il vaut 1, maxiGos cache le bouton "Nouveau" dans le menu.0 ou 10
hideOpenRarementS'il vaut 1, maxiGos cache le bouton "Ouvrir" dans le menu.0 ou 10
hideCloseParfoisS'il vaut 1, maxiGos cache le bouton "Fermer" dans le menu.0 ou 10
hideSaveRarementS'il vaut 1, maxiGos cache le bouton "Enregistrer" dans le menu.0 ou 10
hideSendRarementS'il vaut 1, maxiGos cache le bouton "Envoyer" dans le menu.0 ou 10

Composant "Goban"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
maximizeGobanWidthSouventS'il vaut 1, maxiGos donne à la boite du goban (div.mxGobanDiv) la largeur d'un goban 19x19 même si celui affiché est plus petit, ou visible partiellement. 0 ou 10
maximizeGobanHeightSouventS'il vaut 1, maxiGos donne à la boite du goban (div.mxGobanDiv) la hauteur d'un goban 19x19 même si celui affiché est plus petit, ou visible partiellement. 0 ou 10
markOnLastOnSouventS'il vaut 1, maxiGos affiche une marque sur le dernier coup.0 ou 10
markOnLastColorSouventCouleur de la marque sur le dernier coup.Une couleur css"#000" sur une pierre blanche ou "fff" sur une pierre noire
in3dOnToujoursS'il vaut 1, maxiGos affiche les pierres et le goban avec un effet 3d.0 ou 10
stretchOnToujoursS'il vaut 1, maxiGos affiche le goban avec une hauteur d'environ 10% supérieure à sa largeur.0 ou 10
stoneShadowOnParfoisS'il vaut 1, maxiGos affiche une ombre en bas à droite des pierres.0 ou 10
gobanFsRarementTaille de la police pour le goban. Ce paramètre est rarement utilisé. En pratique, il est plus élégant de modifier la valeur de la propriété css "font-size" de la balise dans lequel est dessiné le goban (dans un fichier css par exemple). Une taille de police cssAucune
gobanBkRarementCouleur du fond du goban. Ce paramètre est rarement utilisé. En pratique, il est plus élégant de le laisser à sa valeur par défaut qui est "transparent", et d'utiliser les propriétés css "background" du tag html dans lequel le goban est dessiné pour modifier le fond (pas forcément uni du coup puisqu'on peut alors utiliser une image) que verra effectivement l'utilisateur. Une couleur css"transparent"
lineColorRarementCouleur des lignes du goban. Ce paramètre est rarement utilisé. En pratique, comme la couleur par défaut des lignes du goban est déduite de la propriété css du tag html dans lequel est dessiné le goban, il est toujours possible et beaucoup plus élégant de changer cette couleur via les css. Une couleur cssValeur de la propriété css "color" du tag html dans lequel est dessiné le goban
starColorRarementCouleur des points "étoile" du goban. Une couleur cssCouleur des lignes du goban
outsideColorRarementCouleur des caractères représentant les indices. Une couleur cssCouleur des lignes du goban
outsideBkRarementCouleur du fond des intersections où sont affichés les indices. Une couleur css"transparent"
outsideFontWeightRarementGraisse des caractères représentant les indices. "normal" ou "bold""normal"
focusColorParfoisCouleur une marque dessinée sur le goban indiquant l'intersection ayant le focus lorsque l'utilisateur navigue à l'aide du clavier. Une couleur css"#f00"
lineWidthRarementEpaisseur des lignes du goban. Un nombre1 + 1/42 fois le diamètre des pierres environ
starRadiusParfoisRayon des points "étoile" du goban. Un nombre1.5 ou 1/10 fois le diamètre des pierres environ
markAndLabelColorrarementCouleur des marques et étiquettes. Une couleur cssCouleur des lignes du goban ou #000" sur une pierre blanche ou "fff" sur une pierre noire
markLineWidthrarementépaisseur des lignes pour dessiner les marques sur le goban. Un nombreEpaisseur des lignes du goban
territoryMarkrarementForme des marques de territoire. "MA" (marque en croix) ou "MS" (pierre miniature)"MS" (pierre miniature)
whiteTerritoryMarkColorrarementCouleur des marques de territoire blanches quand elles ne sont pas des pierres miniatures. Une couleur css"#fff"
blackTerritoryMarkColorrarementCouleur des marques de territoire noires quand elles ne sont pas des pierres miniatures. Une couleur css"#000"
focusLineWidthrarementEpaisseur des lignes de la marque dessinée sur le goban indiquant l'intersection ayant le focus lorsque l'utilisateur navigue à l'aide du clavier. Un nombre2 fois l'épaisseur des lignes du goban
silentFailParfoisS'il vaut 1, maxiGos ne fait pas d'effet visuel sur le goban si l'utilisateur clique où il ne devrait pas.0 ou 10
gobanFontParfoisIndique la police de caractères à utiliser pour les textes affichés sur le gobanun nom de police de caractèresArial

Note : pour changer le rayon des pierres, la meilleure manière est d'utiliser les css : ce rayon est égal au 3/4 environ de la valeur de la propriété "font-size" du tag html dans lequel est dessiné le goban (voir le chapitre "Style"). Ceci permet d'harmoniser plus facilement ce rayon avec la taille des caractères affichés sur le goban dans tous les cas (comme par exemple celui où un utilisateur fait un "zoom texte seulement" dans son navigateur.

Composant "Goto"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
gotoBoxOnSouventS'il vaut 1, maxiGos affiche une barre de déplacement dans la boite du composant.

Sinon, maxiGos n'affiche aucune boite pour le composant.
0 ou 10
gotoInputOnSouventS'il vaut 1, maxiGos ajoute un champ de saisie du numéro du coup courant dans la barre de navigation (nécessite la présence du composant "Diagram").0 ou 10
gotoInputPositionparfoisSi gotoInputOn vaut 1, maxiGos insère le champ de saisie du numéro du coup courant dans la barre de navigation à la position indiquée par gotoInputPosition."left", "right", "center""center"
adjustGotoWidthParfois S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0

Composant "Guess"

canPlaceGuessSouventS'il vaut 1, maxiGos place le coup de l'utilisateur s'il est dans l'arbre des coups. Il est ignoré si "canPlaceVariation" est à 1. 0 ou 10
guessBoxOnSouventS'il vaut 1, maxiGos affiche une barre indiquant la distance entre le dernier click de l'utilisateur et l'emplacement d'un des coups suivants. 0 ou 10

Composant "Header"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
headerBoxOnRarementS'il vaut 1, maxiGos affiche l'entête dans la boite du composant (contenu des propiétés sgf EV, RO, DT, PC, ...).

S'il vaut 0, l'entête peut être affichée soit à la place du goban via un click sur le bouton "Informations" qui s'affiche dans la boite du composant si headerBtnOn vaut 1, soit dans la boite à commentaire si headerInComment vaut 1.
0 ou 10
headerBtnOnParfoisS'il vaut 1, maxiGos affiche un bouton "Informations" dans la boite du composant au lieu de l'entête elle-même. Un click sur ce bouton affiche l'entête à la place du goban. Ce paramètre est sans effet si headerBoxOn vaut 1.0 ou 10
adjustHeaderWidthParfois S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. Ce paramètre est sans effet si headerBoxOn vaut 0. 0, 1 ou nom de boite0
adjustHeaderHeightRarement S'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la hauteur de la boite du composant à celle de cette autre boite. Ce paramètre est sans effet si headerBoxOn vaut 0. 0, 1 ou nom de boite0
headerLabel_<xy>ParfoisTexte affiché sur le bouton. <xy> est à remplacer par un code de langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"Informations" (ou sa traduction)
hideTitleRarementS'il vaut 1, maxiGos n'affiche pas le titre.0 ou 10
hideBlackRarementS'il vaut 1, maxiGos n'affiche pas le nom et le niveau de Noir.0 ou 10
hideWhiteRarementS'il vaut 1, maxiGos n'affiche pas le nom et le niveau de Blanc.0 ou 10
hideDateRarementS'il vaut 1, maxiGos n'affiche pas la date.0 ou 10
hidePlaceParfoisS'il vaut 1, maxiGos n'affiche pas le lieu.0 ou 10
hideRulesParfoisS'il vaut 1, maxiGos n'affiche pas le type de règle.0 ou 10
hideTimeLimitsParfoisS'il vaut 1, maxiGos n'affiche pas la durée de la partie.0 ou 10
hideKomiRarementS'il vaut 1, maxiGos n'affiche pas le komi.0 ou 10
hideHandicapRarementS'il vaut 1, maxiGos n'affiche pas le handicap.0 ou 10
hideResultRarementS'il vaut 1, maxiGos n'affiche pas le résultat.0 ou 10
hideGeneralCommentParfoisS'il vaut 1, maxiGos n'affiche pas le commentaire général.0 ou 10
hideNumOfMovesLabelParfoisS'il vaut 1, maxiGos n'affiche pas "Nombre de coups :" devant le nombre de coups.0 ou 10
hideResultLabelParfoisS'il vaut 1, maxiGos n'affiche pas "Résultat :" devant le résultat.0 ou 10
hideNumOfMovesParfoisS'il vaut 1, maxiGos n'affiche pas le nombre de coups.0 ou 11
concatKomiToResultParfoisS'il vaut 1, maxiGos affiche le komi après le résultat.0 ou 10
concatHandicapToResultParfoisS'il vaut 1, maxiGos affiche le handicap après le résultat.0 ou 10
concatNumOfMovesToResultParfoisS'il vaut 1, maxiGos affiche le nombre de coups après le résultat.0 ou 10

Note 1 : si headerBoxOn et headerBtnOn vallent tous les deux 0, maxiGos n'affiche pas du tout la boite du composant "Header". Mais il pourra toujours afficher le contenu du composant ailleurs comme par exemple dans la boite du composant "Comment" si "headerInComment" vaut 1.

Note 2 : la différence entre le composant "Header" et le composant "Info" est que le composant "Header" ne fait qu'afficher les informations tandis que le composant "Info" permet de les modifier.

Composant "Help"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
helpBtnOnParfoisS'il vaut 1, affiche le bouton "Help" dans la boite de son composant.0 ou 10
helpSource_<xy>ToujoursNom du fichier d'aide à afficher. <xy> est à remplacer par un code de langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Il faut préfixer le fichier d'aide par un chemin relatif entre le dossier "_maxigos" et le dossier où se trouve le fichier d'aide. Il faut également que le nom du fichier d'aide commence par "help".

Par exemple, si maxiGos fonctionne en version française, que le fichier d'aide est "helpMe.htm", et que ce fichier est bien dans le dossier "_maxigos/_help/", "mxL" vaudra "fr", le nom du paramètre sera "helpSource_fr", et la valeur du paramètre sera "_help/helpMe.php"
Un nom de fichier"undefined"

Composant "Image"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
imageBtnOnParfoisS'il vaut 1, affiche le bouton "Image" dans la boite de son composant.0 ou 10

Composant "Info"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
infoBoxOnRarementS'il vaut 1, maxiGos affiche l'entête dans la boite du composant (contenu des propiétés sgf EV, RO, DT, PC, ..., avec possibilité de les modifier).

S'il vaut 0, l'entête peut être affichée soit à la place du goban via un click sur le bouton "Info" qui s'affiche dans la boite du composant si infoBtnOn vaut 1, soit via l'outil "Entête" du composant "Edit".
0 ou 10
infoBtnOnRarementS'il vaut 1, maxiGos affiche un bouton "Info" dans la boite du composant au lieu de l'entête elle-même. Un click sur ce bouton affiche un formulaire à la place du goban permettant de modifier les propriétés sgf concernées. Ce paramètre est sans effet si infoBoxOn vaut 1.0 ou 10
adjustInfoWidthRarement S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. Ce paramètre est sans effet si infoBoxOn vaut 0. 0, 1 ou nom de boite0
adjustInfoHeightRarement S'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la hauteur de la boite du composant à celle de cette autre boite. Ce paramètre est sans effet si infoBoxOn vaut 0. 0, 1 ou nom de boite0
infoLabel_<xy>RarementTexte affiché sur le bouton. <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"Info" (ou sa traduction)

Note 1 : si infoBoxOn et infoBtnOn vallent tous les deux 0, maxiGos n'affiche pas du tout la boite du composant "mxInfoDiv". Mais il pourra toujours afficher le formulaire de modification des informations ailleurs comme par exemple via l'outil "Entête" du composant "Edit".

Note 2 : la différence entre le composant "Header" et le composant "Info" est que le composant "Header" ne fait qu'afficher les informations tandis que le composant "Info" permet de les modifier.

Composant "Lesson"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
adjustLessonWidthRarement S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0
adjustLessonHeightSouvent S'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la hauteur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0

Composant "Loop"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
loopBtnOnParfoisS'il vaut 1, maxiGos affiche un bouton "Loop" dans la barre de navigation.0 ou 10
loopTimeRarementTemps de référence servant à calculer le temps d'attente entre deux coups lors d'un affichage en boucle. Le temps d'attente T est allongé en cas d'affichage d'un éventuel commentaire de longueur L et se calcule selon la formule suivante : T=L*loopTime/20+loopTime Un nombre1000
initialLoopTimeRarementTemps servant à calculer la durée d'affichage de la position initiale. La durée d'affichage de cette position se calcule par la formule suivante : T=initialLoopTime*loopTime/1000.

Si ce paramètre est indéfini, on calcule la durée d'affichage de la position initiale comme pour n'importe quelle autre position.
Un nombre"undefined"
finalLoopTimeRarementTemps servant à calculer la durée d'affichage de la position finale. La durée d'affichage de cette position se calcule par la formule suivante : T=finalLoopTime*loopTime/1000.

Si ce paramètre est indéfini, on calcule la durée d'affichage de la position finale comme pour n'importe quelle autre position.
Un nombre"undefined"
mainVariationOnlyLoopParfoisS'il vaut 1, maxiGos ne considère que la variation principale de l'arbre des coups.0 ou 10
loopBtnPositionparfoisSi loopBtnOn vaut 1, maxiGos insère le bouton "Loop" dans la barre de navigation à la position indiquée par loopBtnPosition."left", "right", "center""right"

Composant "Menu"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
menusToujoursListe des menus (valeurs de la liste parmi "File","Edit","View" ... "Window").

Si "File" fait partie de la liste, le composant "File" doit être aussi utilisé.

Si "Edit" fait partie de la liste, le composant "Edit" doit être aussi utilisé.

Si "View" fait partie de la liste, le composant "View" doit être aussi utilisé.
Une chaine de caractères listant les menus séparés par une virgule (la liste classique étant "File,Edit,View,Window")Chaine vide
menuTimeoutParfois Durée en millisecondes pendant laquelle les sous-menus restent visibles. un entier5000

Composant "Navigation"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
navigationBtnFsRarementTaille de la police pour les boutons de navigation. Ce paramètre est rarement utilisé. En pratique, il est plus élégant de fixer sa valeur dans un fichier css. Une taille de police css"undefined"
navigationBtnColorRarementCouleur des boutons de navigations. Ce paramètre est rarement utilisé. En pratique, comme cette couleur est par défaut la valeur de la propriété css "color" des tags html dans lequel sont dessinés les boutons, il est plus élégant de changer cette couleur via cette propriété css. Une couleur css"undefined"
adjustNavigationWidthParfois S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0
navigationsSouventListe de boutons à inclure dans la barre de navigation ("First", "TenPred", "Pred", "Next", ...). Il est aussi possible d'inclure des boutons qui ne sont pas des boutons de navigation comme "Option", "Sgf", ... Une chaine de caractères listant les boutons séparés par une virgule"First,TenPred,Pred,Next,TenNext,Last"
reduceNavigationButtonsThresholdParfois Si la largeur de la barre de navigation est inférieure à reduceNavigationButtonsThreshold, maxiGos cache les boutons "TenPred" et "TenNext". un nombre400

Composant "NotSeen"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
adjustNotSeenWidthSouvent S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0

Composant "Options"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
optionBtnOnParfoisS'il vaut 1, maxiGos affiche un bouton "Options" dans la boite du composant au lieu de la liste des options elle-même. Un click sur ce bouton affiche la liste des options à la place du goban. Ce paramètre est sans effet si optionBoxOn vaut 1.0 ou 10
optionLabel_<xy>ParfoisTexte affiché sur le bouton. <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"Options" (ou sa traduction)
optionBoxOnParfoisS'il vaut 1, maxiGos affiche la liste des options dans la boite du composant.

S'il vaut 0, cette liste peut être affichée à la place du goban via un click sur le bouton "options" qui s'affiche dans la boite du composant si optionBtnOn vaut 1.
0 ou 10
hideMarkOnLastOnRarementS'il vaut 1, maxiGos cache la case permettant de changer "markOnLastOn".0 ou 10
hideNumberingOnRarementS'il vaut 1, maxiGos cache la case permettant de changer "numberingOn".0 ou 10
hideMarksAndLabelsOnRarementS'il vaut 1, maxiGos cache la case permettant de changer "marksAndLabelsOn".0 ou 10
hideAsInBookOnRarementS'il vaut 1, maxiGos cache la case permettant de changer "asInBookOn".0 ou 10
hideVariationMarksOnRarementS'il vaut 1, maxiGos cache la case permettant de changer "variationMarksOn".0 ou 10
hideSiblingsOnRarementS'il vaut 1, maxiGos cache la case permettant de changer "siblingsOn".0 ou 10
hideIndicesOnRarementS'il vaut 1, maxiGos cache la case permettant de changer "indicesOn".0 ou 10
hideIn3dOnRarementS'il vaut 1, maxiGos cache la case permettant de changer "in3dOn".0 ou 10
hideVariationOrGuessRarementS'il vaut 1, maxiGos cache les boutons permettant de changer "canPlaceVariation" et "canPlaceGuess".0 ou 10
hideLoopTimeRarementS'il vaut 1, maxiGos cache le champ permettant de changer la valeur de "loopTime".0 ou 10
hideAnimatedStoneOnRarementS'il vaut 1, maxiGos cache la case permettant de changer "animatedStoneOn".0 ou 10
hideAnimatedStoneTimeRarementS'il vaut 1, maxiGos cache le champ permettant de changer la valeur de "animatedStoneTime".0 ou 10

Composant "Pass"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
passBtnOnParfoisS'il vaut 1, affiche le bouton "Pass" dans la boite de son composant.0 ou 10
passLabel_<xy>ParfoisTexte affiché sur le bouton. <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"Passe" (ou sa traduction)
canPassOnlyIfPassInSgfRarementS'il vaut 1, maxiGos n'active le bouton "Passe" que si l'un des coups suivants dans le sgf est un passe.0 ou 10

Composant "Score"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
scoreBtnOnParfoisS'il vaut 1, affiche le bouton "Score" dans la boite de son composant.0 ou 10
ephemeralScoreOnSouventS'il vaut 1, on supprime les marques territoriales ("TB" et "TW") en quittant le mode "Score".0 ou 10

Composant "Sgf"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
sgfBtnOnParfoisS'il vaut 1, on affiche un bouton dans la boite de son composant. Ce paramètre vaudra 0 quand on l'utilisera uniquement pour ses fonctions internes.0 ou 10
noSgfDialogParfoisS'il vaut 1, maxiGos télécharge directement le sgf sans afficher de dialogue lors d'un click sur le bouton sgf.0 ou 10
sgfLabel_<xy>ParfoisTexte affiché sur le bouton. <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"SGF" (ou sa traduction).
toCharsetRarementCe paramètre a comme valeur le code d'un encodage ("UTF-8", "Big5", "GB18030", "Shift_JIS" ...). Il sert uniquement à indiquer dans quel encodage les fichiers sgf seront générés par maxiGos (sa valeur remplaçant la valeur de la propriété CA initiale du sgf). Il ne sert pas lors de la lecture ou l'affichage d'un sgf et peut être différent de l'encodage de la page. En pratique, il est conseillé que sa valeur soit "UTF-8" (le meilleur choix) ou éventuellement identique à l'encodage de la page. Un code de charset"UTF-8"
allowEditSgfParfoisS'il vaut 1, maxiGos permet la modification du sgf dans la boite de dialogue affichant le sgf.0 ou 10

Composant "Solve"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
canRetrySouventS'il vaut 1, on affiche un bouton "Recommencer tout".0 ou 10
canUndoSouventS'il vaut 1, on affiche un bouton "Reprendre un coup".0 ou 10
canContinuationParfoisS'il vaut 1, on affiche un bouton "Montrer la suite". Un clic sur ce bouton montre les coups de la première de l'arbre des coups à partir de la position courante. Quand ce bouton est présent, il est en général souhaitable de donner la valeur 1 au paramètre "numberingOn".0 ou 10
initialMessage_<xy>Parfois Texte affiché dans la fenêtre de commentaire s'il n'y a pas de propriété C dans le sgf pour le noeud courant et si c'est la position initiale qui est affichée. <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"undefined"
nowhereMessage_<xy>Parfois Texte affiché dans la fenêtre de commentaire si l'utilisateur clique sur une intersection et qu'aucun coup n'y est prévu dans le sgf. <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"undefined"
endMessage_<xy>Parfois Texte affiché dans la fenêtre de commentaire si l'utilisateur clique sur le goban alors qu'il n'y a pas de suite prévue dans le sgf. <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"undefined"
forbiddenMessage_<xy>Parfois Texte affiché dans la fenêtre de commentaire si l'utilisateur essaie de jouer un coup interdit par la règle (intersection déjà occupée, suicide et simple ko uniquement). <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"undefined"
failMessage_<xy>Parfois Texte affiché dans la fenêtre de commentaire s'il n'y a pas de propriété C dans le sgf pour le noeud courant et si le coup joué est le dernier de sa branche et de la couleur jouée par maxiGos. Si pour une raison ou une autre, on ne souhaite pas voir ce message pour un coup donné, il suffit d'ajouter dans le sgf un commentaire pour ce coup. <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"undefined"
successMessage_<xy>Parfois Texte affiché dans la fenêtre de commentaire s'il n'y a pas de propriété C dans le sgf pour le noeud courant et si le coup joué est le dernier de sa branche et de la couleur jouée par l'utilisateur. Si pour une raison ou une autre, on ne souhaite pas voir ce message pour un coup donné, il suffit d'ajouter dans le sgf un commentaire pour ce coup. <xy> est à remplacer par un code langue qui doit correspondre à la valeur du paramètre "mxL". Si le code langue contient un "-", remplacez-le par un "_". Une chaine de caractères"undefined"
specialMoveMatchSometimes En théorie, pour représenter un coup joué "ailleurs" (c.a.d. un "tenuki"), on insère deux coups consécutifs de la couleur opposée dans le sgf. Cependant, pour des raisons historiques, certains fichiers sgf utilisent d'autres méthodes pour faire cela, comme insérer un passe, un coup joué dans la partie invisble du goban, ou un coup joué en dehors du goban. Ce paramètre a pour but de gérer cela.

S'il vaut 0, maxiGos place un coup de l'utilisateur s'il correspond à une continuation du sgf ou si deux coups consécutifs de la couleur opposée sont trouvés dans le sgf.

S'il vaut 1, maxiGos place un coup de l'utilisateur s'il correspond à une continuation du sgf ou si deux coups consécutifs de la couleur opposée sont trouvés dans le sgf ou si les coordonnées d'une continuation correspond à un coup à l'extérieur du goban (comme B[zz] ou W[zz] pour un 19x19 par exemple).

S'il vaut 2, maxiGos place un coup de l'utilisateur s'il correspond à une continuation du sgf ou si deux coups consécutifs de la couleur opposée sont trouvés dans le sgf ou si les coordonnées d'une continuation correspond à un coup à l'extérieur du goban (comme B[zz] ou W[zz] pour un 19x19 par exemple) ou à un coup dans la partie invisible du goban (quand une propriété VW est présente).

S'il vaut 3, maxiGos place un coup de l'utilisateur s'il correspond à une continuation du sgf ou si deux coups consécutifs de la couleur opposée sont trouvés dans le sgf ou si les coordonnées d'une continuation correspond à un coup à l'extérieur du goban (comme B[zz] ou W[zz] pour un 19x19 par exemple) ou à un coup dans la partie invisible du goban (quand une propriété VW est présente) ou à un passe.

0, 1, 2 ou 30
adjustSolveWidthParfois S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0

Composant "Speed"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
adjustSpeedBarWidthParfois S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0

Composant "Title"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
titleBoxOnSouventS'il vaut 1, on affiche le titre dans la boite du composant. Ce paramètre vaudra 0 quand on l'utilisera uniquement pour ses fonctions internes.0 ou 10
translateTitleOnParfoisS'il vaut 1, maxiGos essaie de traduire le titre. Le titre est déduit des propriétés EV et RO. Pour que la traduction soit efficace, EV doit être de la forme "x t" avec x de la forme "1st" ou "2nd" ou "3rd" ou "nth", n étant nombre, et t le nom d'un titre comme "Honinbo", "Meijin", "Ing Cup", ... RO doit être de la forme "n" ou "n (s)" n un nombre, et s une chaine parmi "final", "semi-final", "quarter-final", "playoff", round ou game.0 ou 10
hideEmptyTitleRarementS'il vaut 1, maxiGos cache la boite contenant le titre si celui-ci est une chaine vide.0 ou 10

Composant "Tree"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
treeFocusColorSouventCouleur de fond dans l'arbre de l'image représentant le dernier noeud placé. Une couleur css"#f00"
markCommentOnTreeRarementS'il vaut 1, maxiGos remplace le numéro des coups commentés par un "?" dans l'arbre des coups. 0 ou 10
adjustTreeWidthParfois S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'une autre boite, maxiGos ajuste la largeur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0
adjustTreeHeightParfois S'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. S'il vaut 2, maxiGos donne à l'arbre une hauteur de sorte que la boite parente de sa boite (i.e. la boite qui contient la boite div.mxTreeDiv) ait la même hauteur que la boite parente du goban (i.e. la boite qui contient la boite div.mxGobanDiv). S'il vaut la valeur d'une autre boite, maxiGos ajuste la hauteur de la boite du composant à celle de cette autre boite. 0, 1 ou nom de boite0
scrollInTreeContentRarement S'il vaut 1, maxiGos considère que c'est l'élément de classe "mxTreeContentDiv" qui peut être scrollé. Sinon, il considère que c'est l'élément de classe "mxTreeDiv". Donnez la valeur 1 à ce paramètre c'est l'élément de classe "mxTreeContentDiv" qui a des scrollbars. 0 ou 10

Composant "Variations"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
variationMarksOnSouventS'il vaut 1, maxiGos affiche sur le goban des marques sur les intersections qui sont des débuts de variations. S'il vaut 0, il les cache. S'il est "undefined", maxiGos utilise la valeur de la propriété ST des fichiers sgf pour savoir s'il convient ou pas d'afficher ces marques.0, 1 ou "undefined""undefined"
siblingsOnRarementS'il vaut 1, maxiGos affiche les variations du coup courant, sinon du suivant. S'il est "undefined", maxiGos utilise la valeur de la propriété ST des fichiers sgf pour savoir s'il doit afficher les variations du coup courant ou du suivant.0, 1 ou "undefined""undefined"
variationsBoxOnSouventAffichage de la barre des variations.0 ou 10
hideSingleVariationMarkOnSouventS'il vaut 1, maxiGos n'affiche pas de marque de variation quand il n'y en a qu'une. S'il vaut 0, maxiGos affiche les éventuelles marques même s'il n'y en a qu'une à afficher. Ces marques permettent à l'utilisateur de pouvoir choisir la variation qu'il veut suivre en cliquant sur l'intersection où elle se trouve. S'il n'y a qu'une seule variation, la marque est moins nécessaire, car on est sûr de pouvoir aller au coup suivant à l'aide des boutons de navigation. Ce paramètre est à utiliser en conjonction avec une valeur de 0 de la propriété sgf ST (si ST a une autre valeur, hideSingleVariationMarkOn sera sans effet).0 ou 10
variationColorSouventCouleur des marques de variations.Une couleur cssCouleur des lignes du goban
variationOnFocusColorSouventCouleur de la marque de la variation qui a le focus.Une couleur cssvariationColor
variationBkSouventCouleur du fond des marques de variations.Une couleur css"transparent"
variationOnFocusBkSouventCouleur du fond de la marque de la variation qui a le focus.Une couleur cssvariationBk
variationStrokeBkRarementCouleur du pourtour du fond des marques de variations.Une couleur css"transparent"
variationOnFocusStrokeBkRarementCouleur du pourtour du fond de la marque de la variation qui a le focus.Une couleur cssvariationStrokeBk
variationStrokeColorRarementCouleur du contour des marques de variations.Une couleur css"transparent"
variationOnFocusStrokeColorRarementCouleur du contour de la marque de la variation qui a le focus.Une couleur cssvariationStrokeColor
variationFontWeightSouventGraisse des marques de variations."normal" ou "bold""normal"
variationOnFocusFontWeightRarementGraisse de la marque de la variation qui a le focus."normal" ou "bold"variationFontWeight
canPlaceVariationSouventS'il vaut 1, maxiGos place un coup sur l'intersection où vient de clicker l'utilisateur s'il est dans l'arbre des coups. Si celui-ci n'est pas dans l'arbre des coups (et si la valeur de la propriété sgf ST est paire), maxiGos ajoute le coup dans l'arbre des coups. L'utilisateur peut ainsi tester ses propres variantes. S'il vaut 0, aucun coup n'est affiché suite à un click de l'utilisateur sur une intersection. 0 ou 10
variationMarkSeedparfoisPar défaut, maxiGos génère automatiquement une marque sur les variations en commençant par "1". L'utilisation de nombres permet d'éviter de confondre ces marques avec les marques explicitement placés par les commentateurs qui sont en général des lettres. Pour remplacer la marque initiale par un autre caractère, il suffit de changer la valeur de ce paramètre, par exemple par "a" ou "A".

Il est à noter que quelque soit la valeur de ce paramètre, si le commentateur a explicitement placé une marque sur l'intersection concernée, c'est cette marque qui sera affichée et non pas la marque générée automatiquement par maxiGos.

Enfin, pour que ces marques soient effectivement affichées, il faut bien évidemment que la valeur de la propriété ST dans les fichiers sgf ou la valeur des paramètres "variationMarksOn" et "hideSingleVariationMarkOn" le permettent.
un caractère quelconque"1"
adjustVariationsWidthParfois S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'un autre composant, maxiGos ajuste la largeur de la boite du composant à celle de cet autre composant. 0 ou 10

Composant "Version"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
adjustVersionWidthRarement S'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. S'il vaut la valeur d'un autre composant, maxiGos ajuste la largeur de la boite du composant à celle de cet autre composant. 0 ou 10
adjustVersionHeightRarement S'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. S'il vaut la valeur d'un autre composant, maxiGos ajuste la hauteur de la boite du composant à celle de cet autre composant. 0 ou 10

Composant "View"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
viewBoxOnRarementS'il vaut 1, affiche une boite avec les boutons du menu "Affichage". La plupart du temps, cette boite n'est pas utilisée et les boutons du menu "Affichage" sont affichés dans la boite du composant "Menu". 0 ou 10

Les feuilles de style

Généralités

MaxiGos est livré avec quelques feuilles de style, mais souvent, on préfèrera utiliser des feuilles de style personnalisées.

On pourra les inclure soit en ajoutant dans les fichiers de configuration une ligne du genre $gosParam["Style"][]="xxx/NomDuFichierCss.css"; (simple et suffisant dans la plupart des cas), soit les inclure dans la partie "head" de la page via une ligne comme <link rel="stylesheet" type="text/css" href="yyy/NomDuFichierCss.css"> (probablement plus efficace).

"xxx" est un chemin relatif entre le dossier "_maxigos" et le dossier où se trouve le fichier css. "yyy" est un chemin relatif entre la page où l'on souhaite afficher un lecteur maxiGos et le dossier où se trouve le fichier css.

Les objets html principaux de maxiGos ont été définis avec une classe et un id. On peut soit utiliser les classes si l'on a qu'un seul type d'objet dans une page donnée, où plus rarement les ids si l'on souhaite afficher différemment certains objets dans une même page quand il y en a plusieurs.

Par précaution, il conviendra de veiller à ce que la valeur des paramètres "theme" et "config" soient bien définis afin de pouvoir faire cohabiter plus facilement dans une même page des objets maxiGos ayant des thèmes et des configurations différentes.

On a comme tags :

Le div global est de la forme :

<div class="mxGlobalBoxDiv" id="identifiantGlobalBoxDiv">...</div>

Si le paramètre "theme" est défini, on ajoute la classe "mx"+valeur de "theme"+"GlobalBoxDiv" au div global.

Si le paramètre "config" est défini, on ajoute la classe "mx"+valeur de "config"+"GlobalBoxDiv" au div global.

Si le paramètre "in3dOn" vaut 1, on ajoute la classe "mxIn3d" au div global, sinon on ajoute la classe "mxIn2d" au div global.

Les div des boites regroupants les composants sont de la forme :

<div class="mxNomDeBoiteDiv" id="identifiantObjetNomDeBoiteDiv">...</div>

Les noms des classes des tags des composants commencent par "mx", suivi du nom du composant, suivi du nom du tag html. Les noms d'ids commencent par l'identifiant de l'objet maxiGos, suivi du nom du composant, suivi du nom du tag html :

<div class="mxNomDeComposantDiv" id="identifiantObjetNomDeComposantDiv">...</div>

Pour certains composants (comme "Title"), on remplace "div" par "h1".

A l'intérieur de certains composants, on rencontre d'autres tags dont certains ont aussi des classes ou des ids, mais c'est moins systématique

Rappel : les identifiants des objets (appelés "identifiantObjet") sont de la forme "d" + un numéro qui est incrémenté automatiquement de 1 entre chaque objet maxiGos quand il y en a plusieurs dans une page, le premier objet ayant le numéro 1.

Par exemple, le goban du deuxième objet d'une page est dans la boite :

<div class="mxGobanDiv" id="d2GobanDiv">...</div>

Liste des tags et classes utilisés par maxiGos

Voici une liste des tags que l'on peut styler et le nom des classes associées :

1) Boite globale

La boite globale est particulière. Elle a plusieurs classes :

div.mxGlobalBoxDiv,
et "mx" + valeur du paramètre "theme" + "GlobalBoxDiv" quand la valeur du paramètre "theme" est définie,
et "mx" + valeur du paramètre "config" + "GlobalBoxDiv" quand la valeur du paramètre "config" est définie,
et "mxIn3d" ou "mxIn2d" suivant la valeur du paramètre "in3dOn".

2) Boites de regroupement

div.mxAaaBoxDiv
...
div.mxZzzBoxDiv

3) Boites des composants et tags internes (liste non exhaustive)

div.mxAboutDiv
button span (si aboutBtnOn vaut 1)
div.mxBackToMainDiv
button span (si backToMainBtnOn vaut 1)
div.mxCommentDiv
div.mxCommentContentDiv
span.mxMoveNumberSpan (uniquement si allInComment vaut 1)
les tags du composants "Header" (uniquement si headerInComment vaut 1)
div.mxCutDiv
button span (si cutBtnOn vaut 1)
div.mxEditDiv
div.mxEditToolBarDiv
button canvas, button img, et input + (.mxUnselectedEditTool ou .mxSelectedEditTool) (il s'agit des outils de la barre d'outils)
div.mxEditCommentToolDiv textarea
div.mxFileDiv
button span
div.mxGobanDiv
div.mxInnerGobanDiv
canvas (le canvas dans lequel est dessiné le goban)
div.mxGotoDiv
canvas (le curseur dans la barre de déplacement)
div.mxGuessDiv
canvas (la partie dans la barre de résultat qui est d'autant plus longue que l'on se rapproche du coup à deviner)
div.mxHeaderDiv
button span (si headerBtnOn vaut 1)
div.mxShowContentDiv h1 (si headerBoxOn vaut 1)
div.mxShowContentDiv div.mxP span.mxHeaderSpan (si headerBoxOn vaut 1)
div.mxHelpDiv
button span (si helpBtnOn vaut 1)
div.mxInfoDiv
button span (si infoBtnOn vaut 1)
div.mxInfoContentDiv div.mxInfoPageMenuDiv button.mxInfoPageBtn (si infoBoxOn vaut 1)
div.mxInfoContentDiv div.mxInfoPageMenuDiv button.mxInfoSelectedPageBtn (si infoBoxOn vaut 1)
div.mxInfoContentDiv div.mxInfoPageDiv label ou input ou textarea (si infoBoxOn vaut 1)
div.mxImageDiv
button span (si imageBtnOn vaut 1)
div.mxLessonDiv+(.mxBM, .mxDO, .mxIT, .mxTE ou rien)
div.mxBalloonDiv div.mxBalloonContentDiv
img.mxAssistantImg
div.mxMenuDiv
div.mxOneMenuDiv
button span
div.mxSubMenuDiv
button span
div.mxMoveInfoDiv
img
div.mxNavigationDiv
button div span
input (type=text), celui inséré par le composant "Goto" pour saisir un numéro de coup
div.mxNotSeenDiv
div img suivi d'un span
div.mxOptionsDiv
button span (si optionBtnOn vaut 1)
h1 (si optionBoxOn vaut 1)
div.mxP input (si optionBoxOn vaut 1)
div.mxP label (si optionBoxOn vaut 1)
div.mxPassDiv
button.mxPassBtn span (si passBtnOn vaut 1)
button.mxJustPlayedPassBtn span
button.mxOnVariationPassBtn span
button.mxOnFocusPassBtn span
div.mxScoreDiv
button span (si scoreBtnOn vaut 1)
div.mxSgfDiv
button span (si sgfBtnOn vaut 1)
div.mxSolveDiv
button span
div.mxSpeedDiv
button.mxSpeedPlusBtn (le "+")
div.mxSpeedBarDiv canvas (le curseur dans la barre de règlage)
button.mxSpeedMinusBtn (le "-")
h1.mxTitleH1
div.mxTreeDiv
div.mxVersionDiv
span
div.mxViewDiv (si viewBoxOn vaut 1)
button span

Attention : certains composants ("animatedStone", "diagram" et "loop" par exemple), n'ont pas de boite, et certains composants ne sont affichés qu'à la place du goban (voir ci-dessous).

4) Boites popup éventuellement affichées par dessus une autre boite (.mxGobanDiv par défaut)

div.mxColorsDiv form
div.mxShowContentDiv
h1
div.mxP label
div.mxP label input
div.mxOKDiv button span
div.mxNumberingDiv
div.mxShowContentDiv
h1
div.mxP label
div.mxP input
div.mxOKDiv button span
div.mxNewDiv
div.mxShowContentDiv
h1
div.mxP label
div.mxP input
div.mxOKDiv button span
div.mxOpenDiv form
div.mxShowContentDiv
h1
div.mxP label
div.mxP input
div.mxOKDiv button span
div.mxSaveDiv form
div.mxShowContentDiv
h1
div.mxP label
div.mxP input
div.mxOKDiv button span
div.mxSendDiv form
div.mxShowContentDiv
h1
div.mxP label
div.mxP input
div.mxOKDiv button span
div.mxShowHeaderDiv
div.mxShowContentDiv
h1
div.mxP span.mxHeaderSpan
div.mxOKDiv button span
div.mxShowHelpDiv
div.mxShowContentDiv
h1,h2,h3
div.mxP
div.mxOKDiv button span
div.mxShowInfoDiv
div.mxShowContentDiv
div.mxInfoPageMenuDiv button.mxInfoPageBtn
div.mxInfoPageMenuDiv button.mxInfoSelectedPageBtn
div.mxInfoPageDiv label, input, textarea
div.mxOKDiv button span
div.mxShowOptionDiv
div.mxShowContentDiv
h1
div.mxP label
div.mxP input
div.mxOKDiv button span
div.mxShowSgfDiv
div.mxShowContentDiv
div.mxP (si "allowEditSgf" vaut 0)
textarea (si "allowEditSgf" vaut 1)
div.mxOKDiv button span

5) Divers

div.mxDebugDiv
div.mxWaitDiv

Quelques précisions

Certains composants ont des fonctionnements particuliers qui nécessitent de prendre quelques précautions d'emploi.

Le composant "Comment"

Sa boite principale est div.mxCommentDiv. Souvent, on lui donnera la propriété css "overflow:auto".

Elle contient la boite "div.mxCommentContentDiv" qui contient elle-même les commentaires.

Si le paramètre adjustCommentWidth vaut 1 (respectivement adjustCommentHeight vaut 1) dans les fichiers de configuration, maxiGos ajuste la largeur (respectivement la hauteur) de sa boite principale sur celle du goban. Dans ce cas là, il ne sert donc à rien de lui donner une largeur (respectivement une hauteur) dans un fichier css via les propriétés "width" ou "height".

Lorsque la boite à commentaire est à côté du goban, la manière la plus simple de lui donner une hauteur est de donner à adjustCommentHeight la valeur 1.

Lorsque la boite à commentaire est au dessus ou au dessous du goban, la manière la plus simple de lui donner une largeur est de donner à adjustCommentWidth la valeur 1.

Le composant "Edit"

Sa boite principale div.mxEditDiv contient une boite div.mxEditToolBarDiv (boite de la barre d'outils), et une boite div.mxCommentToolDiv (boite de saisie des commentaires).

La boite div.mxEditToolBarDiv contient des tags internes de différents types (button canvas, button img, button span et input). Suivant qu'ils sont ou pas sélectionnés par l'utilisateur, maxiGos donne à ces tags la classe .mxSelectedEditTool ou .mxUnselectedEditTool.

MaxiGos calcule la largeur et la hauteur des outils de div.mxEditToolBarDiv. Il ne sert donc à rien de vouloir leur donner une largeur et une hauteur dans un fichier css via les propriétés "width" et "height".

La boite div.mxEditCommentToolDiv contient un textarea. On peut les styler tous les deux comme on voudra.

Lors de l'affichage d'une fenêtre d'aide ou autre à la place du goban, maxiGos modifie l'opacité (propriétés css "opacity") de tous les outils sauf celui qui a éventuellement permis l'affichage de cette fenêtre.

Le composant "Goban"

Sa boite principale div.mxGobanDiv contient une boite interne div.mxInnerGobanDiv qui contient un canvas (<canvas></canvas>) dans lequel est dessiné le goban.

Pour donner un style à ce canvas, utilisez "div.mxGobanDiv canvas" dans une des feuilles de style.

Par exemple, pour que la couleur du goban soit #f00, celle de ses lignes #fff et le rayon des pierres 9 pixels, et en supposant que la classe du <div> global soit .mxBasicGlobalBoxDiv, utilisez :

.mxBasicGlobalBoxDiv div.mxGobanDiv canvas {background-color:#f00;color:#fff;font-size:12px;}

MaxiGos calcule la hauteur et la largeur de div.mxGobanDiv, en tenant compte de la présence éventuelle des paramètres maximizeGobanWidth et maximizeGobanHeight dans les fichiers de configuration. Si maximizeGobanWidth vaut 1 (respectivement maximizeGobanHeight vaut 1), maxiGos donne à div.mxGobanDiv la largeur (respectivement la hauteur) maximale que peut avoir le goban (goban de 19x19 + indices éventuels), même si un goban plus petit est affiché, ou qu'une partie du goban seulement est effectivement affichée, ou encore si les indices sont cachés. Sinon, maxiGos donne à div.mxGobanDiv la largeur et la hauteur de la partie du goban effectivement affichée à l'écran. Il ne sert donc à rien de vouloir lui donner une largeur et une hauteur dans un fichier css via les propriétés "width" et "height".

La boite interne div.mxInnerGobanDiv a exactement la taille du canvas qu'elle entoure. Elle sert par exemple à donner une ombre au goban avec la propriété css box-shadow. Si on utilise box-shadow directement sur le canvas du goban, l'ombre peut disparaitre selon les circonstances (en particulier avec de nombreuses versions de safari).

Le canvas de div.mxGobanDiv est en "position:relative" et a un "display:block". Quand div.mxGobanDiv est plus grand que le canvas représentant le goban, maxiGos centre le canvas à l'intérieur en modifiant ses propriétés "left" et "top".

Si l'on veut qu'une boite popup comme .mxNumberingDiv, .mxNewDiv, .mxOpenDiv, ... vienne s'afficher à la place du goban, .mxGobanDiv doit avoir la propriété css "position:relative".

Il faut éviter de donner des valeurs autre que 0 ou auto aux "margins" horizontales de div.mxGobanDiv, du parent de div.mxGobanDiv et de div.mxGlobalBoxDiv quand le paramètre "fitParent" n'est pas 0. Sinon, maxiGos n'arrivera pas à réduire le goban correctement.

Le composant "Guess"

Sa boite principale div.mxGuessDiv ne contient qu'un tag interne canvas.

MaxiGos modifie la largeur de ce canvas pour afficher le résultat des devinettes (plus l'utilisateur clique proche du coup à deviner sur le goban, plus la largeur du canvas se rapproche de celle de div.mxGuessDiv).

Le composant "Info"

Sa boite principale div.mxInfoDiv contient soit un bouton, soit une boite div.mxShowInfoDiv, qui à son tour contient une boite div.mxInfoContentDiv qui contient elle-même trois boites : une boite div.mxInfoPageMenuDiv et deux boites div.mxInfoPageDiv. La boite div.mxInfoPageMenuDiv contient deux boutons (tag button).

Quand l'utilisateur clique dans le menu div.mxInfoPageMenuDiv sur l'un des deux boutons pour sélectionner une page, maxiGos change la propriété "display" (en "table" ou "none" selon les cas) des div.mxInfoPageDiv afin d'afficher la page en question. Il modifie aussi la classe des boutons du menu en .mxInfoSelectedPageBtn ou .mxInfoPageBtn selon que la page correspondante est affichée ou pas.

Chaque page div.mxInfoPageDiv contient une série de label+champ. Chaque label a une classe ayant pour nom ".m" suivi du nom de la propriété sgf à laquelle ils correspondent (par exemple, .mxEV pour la propriété sgf EV). Chaque champ dans le cas général est un input text qui a une classe ayant pour nom ".m" suivi du nom de la propriété sgf à laquelle ils correspondent (par exemple, .mxEV pour la propriété sgf EV). Pour la propriété RE (le résultat de la partie), on a trois champs au lieu d'un seul qui ont pour classe .mxWN (champ de type select pour choisir le gagnant), .mxHW (champ de type select pour choisir le type de victoire) et .mxSC (input text pour le score). Pour la propriété GC, le champ est un textarea.

Si maxiGos juge que la saisie dans l'un des champs d'une page div.mxInfoPageDiv est incorrecte, il ajoute à ce champ la classe .mxBadInput (attention : les vérifications faites par maxiGos sont très approximatives).

Le composant "Pass"

Il ne contient qu'un tag interne : button.

Ce bouton a pour classes .mxBtn et .mxPassBtn, mais on lui ajoute d'autres classes en fonction des circonstances :

Gràce à ce mécanisme, on peut définir dans un fichier css quel aspect devra avoir le bouton en fonction de la situation.

Le composant "Lesson"

Sa boite principale est div.mxLessonDiv et contient une boite div.mxBalloonDiv (bulle à commentaire), et une image img.mxAssistantImg qui représente l'assistant.

Si le paramètre adjustLessonWidth vaut 1 (respectivement adjustLessonHeight vaut 1) dans les fichiers de configuration, maxiGos ajuste la largeur (respectivement la hauteur) de sa boite principale sur celle du goban. Dans ce cas là, il ne sert donc à rien de vouloir lui donner une largeur et une hauteur dans un fichier css via les propriétés "width" et "height".

Pour les commentaires longs, le composant utilise la propriété css "animation" dont la valeur est calculée via javascript en fonction des circonstances.

Le composant "Menu"

Sa boite principale contient une série de couples de boites (div.mxOneMenuDiv, div.mxSubMenuDiv) correpondant chacun à un menu. La boite div.mxOneMenuDiv, toujours visible, contient un seul bouton qui est le titre du menu. La boite div.mxSubMenuDiv, initialement cachée (via un "display:none"), contient une série de boutons, chaque bouton correspondant à un choix possible du menu.

Quand l'utilisateur clique sur le bouton d'un div.mxOneMenuDiv, le div.mxSubMenuDiv correspondant devient visible (via un "display:block").

La boite div.mxSubMenuDiv sera à nouveau cachée par maxiGos (via un "display:none") si l'utilisateur a fait un choix en cliquant sur l'un des boutons que cette boite contient, ou si l'utilisateur clique sur le bouton de la boite div.mxOneMenuDiv associée, ou si l'utilisateur clique ailleurs, ou si aucun choix n'est effectué au bout de quelques secondes.

Le composant "Navigation"

Les boutons de navigation sont de type button (<button><div><span>...</span></div></button>. Pour changer le style des boutons, utilisez "div.mxNavigationDiv button" dans une des feuilles de style.

Le composant "Tree"

Sa boite principale div.mxTreeDiv a les styles suivants imposés : "position:relative;" et "height" (pour ce dernier, uniquement si adjustTreeHeight vaut 1).

Sa boite principale contient des canvas qu'il ne faut pas chercher à styler.

Il est recommandé de donner à div.mxTreeDiv une hauteur si adjustTreeHeight vaut 0 car tous ses tags internes sont en position:absolute, ce qui lui donne une hauteur nulle par défaut (maxiGos ne calcule pas la largeur et la hauteur du composant car dans le cas général, on n'en affiche de toute façon qu'une partie en ajoutant une propriété css "overflow" à div.mxTreeDiv).

Lors de l'affichage d'une fenêtre d'aide ou autre à la place du goban, maxiGos modifie l'opacité (propriété css "opacity") de div.mxTreeDiv.

Styles et classes modifiés par maxiGos

Voici en résumé la liste des styles et classes que maxiGos modifie ou impose via des instructions javascript.

Styles modifés dans le code javascript (liste non limitative)
Classes modifées dans le code javascript

Lanceur sur mesure

Dans la plupart des cas, "sgfplayer.php" suffit comme lanceur. Mais on peut avoir parfois besoin de se créer son propre lanceur. Un tel lanceur doit contenir l'instruction header("content-type: application/x-javascript;charset=UTF-8");, inclure le script "gosLib.php" qui est dans le dossier "_php" de maxiGos via une instruction du type include("ppp/gosLib.php"); où ppp est le chemin relatif entre le lanceur et "gosLib.php", et appeler la fonction php "gosStart()". Celle-ci est définie dans "gosLib.php".

La fonction "gosStart()" a pour but de générer un script javascript qui sera exécuté par le navigateur de l'utilisateur.

Cette fonction prend plusieurs paramètres. Le premier paramètre est le sgf à utiliser, le deuxième un fichier de configuration, le troisième un code langue, le quatrième l'identifiant d'un couple de balises de la page, le cinquième un switch qui s'il vaut 1 indique qu'il ne faut pas inclure les fichiers css et js de la configuration dans la page.

La fonction renvoie une chaine de caractère contenant le script javascript généré.

Un appel à gosStart() sera par exemple print gosStart($sgf,$cfg,$lang);".

$sgf contient le nom d'un fichier sgf ou un texte représentant du sgf ou l'url d'un fichier sgf (correspond au paramètre "sgf" de l'url du lanceur "sgfplayer.php"), $cfg le nom d'un fichier de configuration (correspond au paramètre "cfg" de l'url du lanceur "sgfplayer.php"), et $lang un code langue, comme "fr" (français) ou "en" (anglais) (correspond au paramètre "mxL" de l'url du lanceur "sgfplayer.php").

L'éventuel quatrième paramètre contient l'identifiant d'un élément html contenant éventuellement du sgf, et destiné à contenir un lecteur maxiGos (correspond au paramètre "plc" de l'url du lanceur "sgfplayer.php"). En pratique, il est rarement utilisé et on lui donne la valeur "", qui signifie que le lecteur s'affichera dans la balise du script ayant déclenché l'exécution de "gosStart()". Il est par contre essentiel si on utilise un chargeur tel que "mgosLoader.js".

L'éventuel cinquième paramètre permet de réduire la taille du code en cas de présence de plusieurs lecteurs maxiGos de même configuration dans une même page. Il ne peut bien évidemment être utilisé avec la valeur 1 qu'à partir du deuxième lecteur de la page, et de préférence si le premier lecteur est de même configuration.

On peut donner n'importe quel nom à ce lanceur.

Certains exemples fournis avec maxiGos ont leur propre lanceur. Inspirez-vous en !

Encodage

Encodage de la page dans laquelle on souhaite insérer un lecteur maxiGos

MaxiGos fait tout en UTF-8, mais la page dans laquelle est inséré un lecteur maxiGos peut être dans n'importe quel encodage.

Lorsqu'on utilise un lanceur tel que "sgfplayer.php" ou le chargeur "mgosLoader.js" qui lui-même appelle le lanceur "sgfmultipleplayer.php", on n'a rien de spécial à faire pour que maxiGos fonctionne. En effet, ce sont les lanceur de maxiGos qui indiquent au navigateur que maxiGos produit du contenu en UTF-8 (via la fonction php header()), et c'est le navigateur qui peut alors transformer automatiquement ce que lui fourni maxiGos (qui est donc encodé en UTF-8) dans l'encodage de la page.

Par contre, si la page dans laquelle est inséré un lecteur maxiGos n'est pas en UTF-8 et qu'on utilise un lecteur autonome maxiGos comme "maxigos-basic.js", "maxigos-comment.js, ... ou qu'on insère l'un des scripts d'internationalisation "mgos-i18n-<xy>.js" qui sont tous des fichiers javascript fournissant du contenu en UTF-8, on doit ajouter dans leur balise <script> l'attribut charset avec la valeur "UTF-8". En effet, ces scripts n'ont pas de moyens par eux-même, contrairement aux scripts php via la fonction php header(), d'indiquer à la page qu'ils fournissent du contenu en UTF-8. Ainsi, le navigateur pourra tout de même transformer de manière appropriée ce contenu dans l'encodage de la page.

Il est à noter que lorsqu'on insère directement du sgf dans la page (sans utiliser de fichier sgf donc), maxigos ignore la propriété CA de ce sgf puisque de facto, ce sgf a le même encodage que la page et non l'encodage indiqué dans sa propriété CA. A priori, on n'a rien de spécial faire dans ce cas, car quand on copie du sgf à l'aide d'un logiciel de traitement de texte dans le code d'une page html/php, c'est le logiciel de traitement de texte qui fait la conversion appropriée (il faut tout de même que l'encodage réel de la page corresponde au charset spécifié d'une manière ou d'une autre comme par exemple via un <meta charset="...">, mais c'est en général le cas sans quoi tout texte dans la page risque d'être mal affiché, et pas seulement ce que produit maxiGos).

Encodage des fichiers sgf

L'encodage d'un fichier sgf doit être indiqué dans sa propriété CA. Et par défaut, quand un fichier sgf n'a pas de propriété "CA", cela signifie qu'il doit être encodé en ISO-8859-1. Si la propriété CA est présente dans le fichier sgf, l'encodage réel du fichier doit correspondre à la valeur de la propriété CA.

MaxiGos utilise cette propriété CA pour déterminer l'encodage du fichier sgf, et transforme tout en UTF-8 (il sera donc toujours un peu plus rapide d'utiliser des fichiers sgf en UTF-8). Il est de ce fait possible d'utiliser des fichiers sgf d'encodages variés au sein d'une même page.

Quand l'affichage n'est pas celui attendu, c'est le plus souvent dû au fait que le fichier a un encodage réel différent de celui qui a été spécifié dans sa propriété CA (faute malheureusement extrêmement courante dans les fichiers sgf d'origine asiatique). Pour corriger ce problème, il faut soit modifier la propriété CA du fichier sgf pour que sa valeur corresponde à son encodage réel, soit ré-enregistrer le fichier dans l'encodage spécifié dans sa propriété CA (on peut faire tout ça avec la plupart des éditeurs de texte, le plus difficile étant de déterminer quel est l'encodage réel du fichier).

Ceci étant, bien qu'en théorie maxiGos peut fonctionner dans une page qui n'est pas en "UTF-8", et lire des fichiers qui ne sont pas en "UTF-8", il vaut mieux quand on le peut tout faire en UTF-8.

Encodage et internationalisation

Encodage et internationalisation sont deux choses différentes. "UTF-8" est adapté pour toute(?) langue, aussi c'est le meilleur choix quand on peut l'utiliser. Quand cela n'est pas possible, attention, car certains encodages peuvent ne pas afficher certains caractères de certaines langues. Par exemple, les mots en japonais d'un fichier sgf en Shift-JIS ne pourront pas être transformés automatiquement et s'afficher correctement dans une page en "ISO-8859-1". Par contre, ils pourront être transformés automatiquement et s'afficher correctement dans une page en 'UTF-8". N'utilisez pas des noms d'encodage tels que "UTF-8", "ISO-8859-1", "Shift-JIS", "Big5", "GB18030" comme valeur de $mxL. Utilisez un code langue comme "en", "fr", "ja", zh", "zh-tw", ...

Diagnostic à effectuer en cas de mauvais affichage (caractères illisibles ou douteux)

Vérifier l'encodage du fichier sgf

Le fichier sgf n'a pas de propriété CA

Si le fichier sgf n'a pas de propriété CA, et si en ouvrant le fichier avec un éditeur de texte, celui-ci détecte un autre encodage que "ISO-8859-1", et si l'affichage du contenu dans l'éditeur semble bon (pas de caractère illisble ou douteux), il devrait suffire d'ajouter dans le fichier sgf après le premier ";" la propriété CA avec comme valeur le nom de l'encodage détecté par l'éditeur (par exemple CA[UTF-8]).

Si le fichier sgf n'a pas de propriété CA, et si l'encodage détecté par l'éditeur est "ISO-8859-1", et si l'affichage dans l'éditeur semble mauvais (caractères illisibles ou douteux), alors le problème vient bien du fichier sgf (le fichier a probablement mal été enregistré par son auteur et retrouver le bon encodage sera plus ou moins facile : si l'on arrive à retrouver le bon encodage il faudra transformer (la méthode dépend de ce que l'auteur a fait) le fichier et l'enregistrer dans cet encodage, en n'oubliant pas de donner aussi à la propriété CA du fichier sgf le nom de cet encodage).

Si le fichier sgf n'a pas de propriété CA, et si l'encodage détecté par l'éditeur est "ISO-8859-1", et si l'affichage dans l'éditeur semble bon, alors le problème ne vient probablement pas du fichier sgf.

Le fichier sgf a une propriété CA

Si le fichier sgf a une propriété CA, et si en ouvrant le fichier avec un éditeur de texte, celui-ci détecte un autre encodage que celui indiqué par la propriété CA, et si l'affichage du contenu dans l'éditeur semble bon (pas de caractère illisble ou douteux) il devrait suffire de remplacer la valeur de la propriété CA par le nom de l'encodage détecté par l'éditeur.

Si le fichier sgf a une propriété CA, et si l'encodage détecté par l'éditeur correspond à celui indiqué dans la propriété CA du fichier sgf, et si l'affichage dans l'éditeur semble mauvais (caractères illisibles ou douteux), alors le problème vient bien du fichier sgf (le fichier a probablement mal été enregistré par son auteur et retrouver le bon encodage sera plus ou moins facile : si l'on arrive à retrouver le bon encodage il faudra transformer (la méthode dépend de ce que l'auteur a fait) le fichier et l'enregsitrer dans cet encodage, en n'oubliant pas de donner aussi à la propriété CA du fichier sgf le nom de cet encodage).

Si le fichier sgf a une propriété CA, et si l'encodage détecté par l'éditeur correspond à celui indiqué dans la propriété CA du fichier sgf, et si l'affichage dans l'éditeur semble bon, alors le problème ne vient probablement pas du fichier sgf.

Vérifier l'encodage de la page

Si la page n'est pas encodée en "UTF-8", vérifiez que l'encodage employé dans le fichier sgf peut effectivement être transformé et affichée avec l'encodage de la page.

Si la page n'est pas encodée en "UTF-8", et si vous utilisez un lecteur maxiGos autonome, vérifiez que vous avez bien un charset="UTF-8" dans la balise <script> du lecteur, et éventuellement dans la balise <script> d'un fichier de langue maxiGos.

Si vous avez créé un composant, ou modifié un composant de maxiGos, vérifiez que vous l'avez bien enregistré en "UTF-8" (attention au copier-coller d'un code source affiché par un navigateur : les caractères non latin peuvent y être mal codés).

Sinon, dans les autres cas, le problème vient d'ailleurs.

Annexe 1 : tous les dossiers et fichiers

Dossiers principaux

Contenu du dossier "_mgos"

Contenu du dossier "_php"

Annexe 2 : questions et réponses

Question : en partant de rien, que dois-je faire au minimum pour insérer un lecteur autonome maxiGos dans l'une de mes pages ?

  1. Affichez dans un navigateur la page de téléchargement.
  2. Téléchargez le lecteur autonome "maxigos-neo-classic-basic.js".
  3. Créez à la racine de votre site un dossier "maxiGos" et copiez "maxigos-neo-classic-basic.js dedans.
  4. Insérez dans la page où vous voulez que maxiGos affiche quelquechose les balises <script> et </script> avec "/maxiGos/maxigos-neo-classic-basic.js" comme valeur de l'attribut "src", et insérez entre ces balises un enregistrement sgf. Par exemple :
    <script src="/maxiGos/maxigos-basic.js">(;FF[4]CA[UTF-8]GM[1]SZ[19];B[pd];W[dc];B[pp];W[fp];B[de];W[ee];B[ef];W[ed];B[dg];W[co])</script>
  5. Et voilà!

Question : en partant de rien, que dois-je faire au minimum pour insérer un lecteur maxiGos dans une de mes pages à l'aide du lanceur "sgfplayer.php" ?

  1. Téléchargez l'archive contenant maxiGos (un fichier nommé "_maxigosnnn.zip" où nnn est une version de maxiGos).
  2. Décompressez l'archive contenant maxiGos : le contenu se retrouve dans un dossier nommé "_maxigos".
  3. Copiez le dossier "_maxigos/" n'importe où sur le serveur hébergeant votre site (par la suite, on va supposer qu'il a été placé à la racine du site, mais si ce n'est pas le cas, il suffit d'adapter les chemins indiqués dans la ligne insérant un lecteur maxiGos dans la page).
  4. Supposons que la page devant contenir maxiGos s'appelle "page1.php" et qu'elle est dans un sous-dossier du dossier racine du site nommé "_pages".
  5. Supposons que le fichier sgf à afficher est une partie qui s'appelle "partie1.sgf" et qu'il est dans un sous-dossier du dossier racine du site nommé "_sgf".
  6. Le chemin devant le lanceur doit être le chemin relatif entre la page devant contenir maxiGos (ici "page1.php") et le lanceur (ici "sgfplayer.php").
  7. Le chemin devant le fichier sgf (ici "partie1.sgf") doit être le chemin relatif entre le lanceur (ici "sgfplayer.php") et le fichier sgf (ici "partie1.sgf").
  8. Insérez dans la page "page1.php" à l'endroit où vous voulez que maxiGos apparaisse la ligne :
    <script src="../_maxigos/_mgos/sgfplayer.php?sgf=<?php print urlencode("../_sgf/partie1.sgf");?>"></script>
  9. Et voilà !

Question : avec quels navigateurs maxiGos fonctionne-t-il ?

MaxiGos fonctionne avec la quasi-totalité des navigateurs dont Chrome, Firefox, Safari (v5 et postérieure), Internet Explorer (v9 et postérieure)... Il ne fonctionne pas du tout avec Internet Explorer v8 ou antérieures. Parfois, seules certaines fonctionnalités peuvent ne pas être disponibles avec les vieux navigateurs (en particulier l'ouverture de fichiers sgf par maxiGos, quand on l'utilise en tant qu'éditeur, s'ils sont stockés localement sur la machine de l'internaute n'est pas possible avec Internet Explorer v9).

Question : maxiGos n'affiche pas le goban. Comment faire le diagnostic ?

Vérifiez que vous avez bien copié le dossier "_maxigos" à l'endroit approprié sur le serveur.

Suspectez les chemins préfixant les scripts d'appel à maxiGos dans les lignes qui appellent maxiGos dans votre page.

Affichez le code source de la page, et si votre navigateur sait faire ça (firefox sait bien le faire, les autres moins bien en général), cliquez sur une ligne qui appelle maxiGos dans votre page (on va supposer pour la suite que vous avez utilisé "sgfplayer.php"). Si vous avez un message du genre "The requested URL xxx/yyy/sgfplayer.php was not found on this server" le chemin devant sgfplayer.php n'est pas bon. Si par contre il n'y a pas de message d'erreur, cliquez dans le code source sur la ligne qui appelle maxiGos. Cela affiche en général le code javascript correspondant à cette ligne. Si une page blanche apparait, c'est probablement que l'un des scripts de maxiGos a été modifié et contient une erreur de syntaxe. Sinon, si du code javascript apparait, il s'agit probablement d'un bug dans le fichier de configuration correspondant ou plus généralement dans le code de maxiGos.

Question : maxiGos affiche le goban mais pas le contenu du fichier sgf. Comment faire le diagnostic ?

Vérifiez si le fichier sgf est bien à l'endroit approprié sur le serveur.

Si c'est bien le cas, suspectez alors le chemin préfixant le nom du fichier sgf ou le nom du fichier dans la ligne qui insère maxiGos dans votre page.

Il est aussi possible que maxiGos n'ait pas eu le droit d'ouvrir le fichier sgf. Il faut dans ce cas placer vos fichiers sgf dans un autre endroit, ou changer les droits d'accès à ces fichiers (le droit en écriture dans ces fichiers sgf n'est cependant jamais nécessaire).

Question : maxiGos affiche seulement le goban et la barre de navigation alors que d'autres composants devraient aussi s'afficher. Comment faire le diagnostic ?

Lorsque maxiGos ne trouve pas le fichier de configuration spécifié, il s'affiche avec la configuration par défaut qui ne comprend que le goban et la barre de navigation.

Suspectez le chemin préfixant le nom du fichier de configuration ou le nom de ce fichier lui-même dans la ligne qui appelle maxiGos dans votre page.

Question: comment changer la taille du goban ?

Il y a plusieurs méthodes pour faire cela. La plus facile est de changer la valeur du paramètre css "font-size" de l'élement html dans lequel est dessiné le goban. Par exemple, si vous utilisez un lecteur de type "Basic", pour donner la valeur "12px" à ce paramètre, ajoutez quelque part dans un fichier css :

.mxBasicGlobalBoxDiv div.mxGobanDiv canvas {font-size:12px !important;}

Pour un lecteur de type "Xxx", remplacez "Basic" dans "mxBasicGlobalBoxDiv" par "Xxx".

Question : comment afficher maxiGos dans une page s'adaptant aux mobiles ("responsive design") ?

On dispose principalement de deux méthodes pour faire cela.

La première méthode est de donner au paramètre "fitParent" la valeur 1, 2 ou 3 (par exemple dans le fichier de configuration du lecteur maxiGos). Dans ce cas, maxiGos va automatiquement redimensionner la largeur du goban et/ou la taille des boutons de navigation en fonction de la largeur de l'élement html contenant le lecteur.

Quand le goban fait la largeur du lecteur (design vertical), et si l'on fait en sorte que la largeur des autres composants soit ajustée automatiquement par maxiGos (via l'utilisation des paramètres adjustXxxWidth), cette méthode est appropriée pour rendre maxiGos adaptatif.

La deuxième méthode consiste à modifier la largeur du goban et des boutons de navigation (et éventuellement la taille des autres composants de maxiGos) en fonction de la taille de l'écran en utilisant les css. Pour faire varier ces tailles en fonction de la largeur disponible, et en supposant que votre lecteur a pour thème "XXX" et pour configuration "YYY" (c'est à dire que le fichier de configuration contient $gosParam["theme"]="XXX"; et $gosParam["config"]="YYY";), vous pouvez insérer dans vos fichiers css les lignes suivantes, en les adaptant selon vos besoins :

.mxYYYGlobalBoxDiv.mxXXXGlobalBoxDiv div.mxGobanDiv canvas {font-size:12px;}
.mxYYYGlobalBoxDiv.mxXXXGlobalBoxDiv div.mxNavigationDiv button {font-size:18px;}

@media (max-width:449px)
{
.mxYYYGlobalBoxDiv.mxXXXGlobalBoxDiv div.mxGobanDiv canvas {font-size:10px;}
.mxYYYGlobalBoxDiv.mxXXXGlobalBoxDiv div.mxNavigationDiv button {font-size:16px;}
}

@media (max-width:359px)
{
.mxYYYGlobalBoxDiv.mxXXXGlobalBoxDiv div.mxGobanDiv canvas {font-size:9px;}
.mxYYYGlobalBoxDiv.mxXXXGlobalBoxDiv div.mxNavigationDiv button {font-size:14px;}
}

@media (max-width:319px)
{
.mxYYYGlobalBoxDiv.mxXXXGlobalBoxDiv div.mxGobanDiv canvas {font-size:8px;}
.mxYYYGlobalBoxDiv.mxXXXGlobalBoxDiv div.mxNavigationDiv button {font-size:12px;}
}

Avec cette méthode, vous pouvez faire tout ce qui est nécessaire pour rendre maxiGos adaptatif quelque soit la configuration du lecteur, mais c'est sensiblement plus compliqué qu'avec la première méthode. Voir les exemples du dossier "_sample" pour avoir un aperçu de ce que cela donne.

Dans les deux cas, afin de forcer la page à s'ajuster à la taille de l'écran d'un mobile, n'oubliez pas d'ajouter dans la partie <head> de la page une ligne du genre :

<meta name="viewport" content="width=device-width,initial-scale=1.0">

Question : j'utilise un lecteur autonome maxiGos mais il s'affiche en français, et je souhaite qu'il s'affiche en une autre langue. Que puis-je faire ?

Relisez le chapitre "Internationalisation".

Si la langue que vous souhaitez utiliser n'a pas encore de script d'internationalisation dans "_maxigos/_i18n/", voir la question suivante.

Question : je voudrais traduire maxiGos en une autre langue. Comment procéder ?

Dupliquez "_maxigos/_i18n/mgos-i18n-ja.js" et renommez le fichier en remplaçant les deux dernières lettres par le code de cette nouvelle langue (de préférence un code ISO 639). Remplacez les "ja" au début du fichier par le code de la nouvelle langue. Remplacez tous les textes qui sont en japonais par leur traduction dans la nouvelle langue (ils sont précédés par leurs équivalents en anglais) et supprimez ou éventuellement ré-écrivez ou créez si nécessaire les fonctions dont le nom commence par "build" ou "transalte" (ces fonctions sont "buildDate", "buildRank", "buildMove", "buildNumOfMoves", "buildRules", "buildTimeLimits", "buildKomi", "buildResult" et "transalteTitle"). Si l'une de ces fonctions est absente, maxiGos utilise des fonctions par défaut pour produire un résultat acceptable. Aussi, vous pouvez laisser de côté la réécriture de ces fonctions si cela vous semble trop compliqué. Enfin, enregistrez le fichier en UTF-8.

Question : j'utilise maxiGos dans une page qui n'est pas en UTF-8. Comment faire cela ?

Si vous utilisez un lecteur autonome, ajoutez charset="UTF-8" à vos balises contenant le code de maxiGos (si vous utilisez un lanceur comme sgfplayer.php, vous n'avez rien à faire de spécial car le lanceur fait tout ce qu'il faut). Par exemple :

<script charset="UTF-8" src="_alone/maxigos-minimal-basic.js">../_sgf/game/blood-vomit.sgf</script>.

Remerciements à Adachi K., Alfredo Pernin, Chantal Gajdos, Julien Payrat, Lao Lilin, Mickaël Simon, Motoki Noguchi, Olivier Besson, Olivier Dulac, Patrice Fontaine, Tony Yamanaka et beaucoup d'autres pour leurs conseils ou contributions à ce projet !

EnglishFrançais