EnglishFrançais

Documentation pour maxiGos v6.48

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

Qu'est-ce que maxiGos ?

MaxiGos est un outil permettant d'insérer des parties ou des problèmes de go enregistrés au format sgf dans une page web. Il peut être utilisé d'une multitude de manières différentes, comme lecteur avec ou sans commentaires, éditeur, n'afficher que la position finale de la variante principale, ...

Il est composé d'un ensemble de scripts en php et javascript, et de feuilles de style css.

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 (c'est le cas de nombreux navigateurs en 2014).

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

Si on utilise la version complète de maxiGos, le serveur sur lequel il est installé doit disposer de php version 5 ou postérieure.

Comment installer maxiGos ?

Il suffit de télécharger l'archive contenant maxiGos, la décompresser et copier l'ensemble des dossiers et fichiers n'importe où dans l'arborescense de votre site. Aucune base de données n'est nécessaire.

Une fois l'installation effectuée, recherchez sur votre site la page "_maxigos/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 :

L'utilisateur final n'a aucune installation à faire sur sa machine. Il doit uniquement avoir laissé javascript activé dans son navigateur.

Comment utiliser maxiGos ?

Langue

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 la ligne suivante avant tout appel à maxiGos :

<script>mxG={L:"en"};</script>

Si vous ne pouvez pas ou ne souhaitez pas à avoir à insérer cette ligne dans chacune de vos pages, vous pouvez simplement ajouter if (typeof mxG=='undefined') mxG={};mxG.L="en"; 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 dans "_alone" (seulement si vous les utilisez explicitement dans vos pages).

Pour une autre langue, incluez avant tout appel à maxiGos un script de traduction pour cette autre langue. Par exemple, pour le japonais, incluez le script "mgos-loc-ja.js" qui se trouve dans "_local/" (remplacez "ppp" par un chemin relatif entre votre page et le dossier "_maxigos") via  :

<script src="ppp/_local/mgos-loc-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 de traduction 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 un dossier "_alone" (seulement si vous les utilisez explicitement dans vos pages). Le script "addLocalization.php" peut effectuer cette tache pour vous automatiquement (une aide est fournie dans le script lui-même).

Tous les scripts de traduction fournis avec maxiGos sont dans le dossier "_local". Si le script de traduction n'existe pas encore, vous pouvez essayer d'en créer un (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 : tous les lecteurs maxiGos d'une page doivent utiliser la même langue.

Note 2 : si vous créez un fichier de traduction, c'est une bonne pratique de choisir un code langue qui soit ISO 639.

Note 3 : quand on utilise un lanceur (voir le chapitre sur les lanceurs plus loin dans ce document) le plus simple est de garder le français comme langue par défaut et d'utiliser le paramètre "mxL" dans l'URL du lanceur pour changer la langue.

Méthode utilisant un "lecteur autonome" en javascript

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

Le principe est d'inclure un script javascript unique qui contient tout le code nécessaire à chaque endroit de la page où doit s'afficher un lecteur.

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.

Ces lecteurs ont chacun une utilisation spécifique. Les scripts correspondants aux configurations classiques de maxiGos, regroupés dans le dossier "_alone", sont :

D'autres lecteurs autonomes sont disponibles dans les dossiers "_alone" de certains exemples fournis avec maxiGos.

Par exemple, on inclut à l'endroit où doit s'afficher maxiGos dans la page web un code du genre :

<script src="ppp/maxigos-problem.js">
(;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 !])
</script>

Il faut évidemment adapter le chemin (ici "ppp/") préfixant le script "maxigos-problem.js", en fonction de l'endroit où vous l'avez installé 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.

Rappel : par défaut, ces lecteurs maxiGos sont en français. Si vous souhaitez utilisez une autre langue, ajoutez au début de leurs fichiers le contenu du script de traduction (un certain nombre sont dans le dossier "_local/") correspondant à cette autre langue. À noter que pour l'anglais, il suffit d'ajouter if (typeof mxG=='undefined') mxG={};mxG.L="en";. Relisez le chapitre "Langue" ci-dessus pour plus d'information à ce sujet.

Note 1 : il est possible d'indiquer un nom de fichier sgf (mais pas une url pouvant générer du sgf) au lieu d'un enregistrement sgf entre les balises <script> et </script>.

Note 2 : il est possible pour un utilisateur avancé de fabriquer un lecteur autonome à l'aide de la fonction "makeAlone" du script php "_mgos/_php/GGosLib.php" (voir le script "aloneMaker.php" dans le dossier "_alone/").

Note 3 : 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 besoin des scripts de traduction (ceux qui sont dans le dossier "_local").

Note 4 : en théorie, un lecteur autonome ne peut pas utiliser de ressources externes (scripts, images, ...). Lorsqu'une ressource externe est manquante, un lecteur autonome fonctionne comme ci-dessous :
s'il y a un bouton "Kifu", il est caché (pour le faire ré-apparaitre, il faut déposer sur le serveur le script "_alone/maxigos-kifu.js", en supposant que le lecteur est dans le dossier où il a été fabriqué. On peut mettre le script et le lecteur ailleurs, mais dans ce cas, il faut adapter en conséquence la ligne mxG.D[mxG.K]._alone="../_alone/"; dans le code du lecteur autonome pour que celui-ci puisse retrouver où est le script "maxigos-kifu.js"),
s'il y a un bouton "Aide", il est caché (pour le faire ré-apparaitre, il faut déposer sur le serveur un fichier d'aide approprié dans "_help/", en supposant que le lecteur est dans le dossier où il a été fabriqué. On peut mettre le fichier d'aide et le lecteur ailleurs, mais dans ce cas, il faut adapter en conséquence la ligne mxG.D[mxG.K]._help="../_help/"; dans le code du lecteur autonome pour que celui-ci puisse retrouver où est le fichier d'aide).

Personnalisation des lecteurs autonomes

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

Pratiquement tout peut être modifié en utilisant les attributs. 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".

Par exemple, pour afficher un diagramme sans effet 3D et avec un goban transparent :

<script src="../../_alone/maxigos-diagram.js" data-maxigos-in3d-on="0" data-maxigos-goban-bk="transparent">
(;FF[4]CA[UTF-8]GM[1]SZ[19]VW[al:ls]
AB[cp]ST[2]FG[1]
;W[ep];B[eq];W[fq];B[dq];W[fp];B[cn];W[jp])
</script>

On peut aussi personnaliser les lecteurs en modifiant leur feuille de style (comme pour la couleur du fond du goban de l'exemple ci-dessus). Mais les modifications s'appliqueront alors à l'ensemble des lecteurs de la même sorte.

Méthode utilisant un "lanceur" en php

Il s'agit d'une méthode plus sophistiquée que celle utilisant les lecteurs autonomes, mais qui n'a aucune limite en terme de présentation et de fonctionnalité.

On insère une ligne de php/html dans la page à l'endroit où doit s'afficher le lecteur sgf, qui décenche l'exécution d'un script php qui lui-même va générer un script javascript contenant le code 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/_mgos/sgfplayer.php?sgf=xxx.sgf&cfg=yyy.cfg&mxL=zz"></script>

Il faut évidemment adapter le chemin (ici "ppp/") préfixant le script "_mgos/sgfplayer.php", que l'on appelle 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 dossier "_mgos" de 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).

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 fichier sgf à lire.

Note : au lieu d'utiliser ce paramètre "sgf", on peut aussi simplement insérer du sgf ou le nom d'un fichier sgf entre les balises <script> et </script>, ou spécifier le nom d'un fichier sgf comme valeur de l'attribut "data-sgf-file" 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.

Le fichier sgf peut être n'importe où. Si le nom du fichier est préfixé par un chemin, il est prudent d'utiliser la fonction php "urlencode()". Par exemple, si le fichier sgf est dans le dossier parent du dossier où se trouve le lanceur, on utilisera :

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

Le chemin relatif à indiquer est celui entre le lanceur et le fichier sgf (et non pas le chemin relatif entre le script de la page et le fichier sgf).

Le fichier sgf peut être distant, et dans ce cas, on peut remplacer son nom par une url (vérifiez si votre serveur web accepte cela : ce n'est pas toujours le cas).

Par exemple :

sgf=<?php print urlencode("http://xxx.org/sgf/file.php?id=77");?>

Enfin, on peut aussi simplement ajouter un enregistrement sgf comme valeur du paramètre.

Par exemple :

sgf=<?php print urlencode("(;FF[4]CA[UTF-8]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 maximum dépend du paramétrage des serveurs webs et des navigateurs utilisés).

Le paramètre "cfg"

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

Si le paramètre "cfg" n'est pas présent dans l'url, maxiGos fonctionnera en tant que "Lecteur basique" (dont le fichier de configuration est "_cfg/basic.cfg").

Le fichier de configuration peut être n'importe où, mais ceux livrés avec maxiGos sont dans le dossier "_cfg" qui est un sous-dossier de celui où se trouve sgfplayer.php.

Si le nom du fichier est préfixé par un chemin, il est prudent d'utiliser la fonction php "urlencode()". Par exemple, si le fichier de configuration est dans le dossier parent du dossier où se trouve le lanceur, on utilisera :

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

Un certain nombre de fichiers de configuration dits "classiques" sont livrés avec maxiGos. Testez-les :

Vous pouvez aussi vous inspirer des fichiers de configuration des autres exemples qui sont plus complexes.

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 du sgf ou le nom d'un fichier sgf. Si c'est bien le cas, ce contenu est remplacé par un lecteur maxiGos qui affiche ce contenu.

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 un code langue sur deux caratères : "en" pour anglais, "fr" pour français...

Si le paramètre "mxL" n'est pas présent dans l'url, maxiGos fonctionnera en français.

Attention : tous les maxiGos d'une même page doivent fonctionner dans la même langue !

Note pour les candidats traducteurs : dans le code de maxiGos, tout ce qui peut être traduit est stocké dans un tableau unique javascript nommé mxG.Z, dont les valeurs sont définies au début de chaque script javascript, sauf les fichiers d'aide.

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).

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.

On insère dans une page web aux endroits où l'on souhaite afficher un lecteur des balises <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 "_cfg/", qui est la valeur par défault du dossier contenant les fichiers de configuration (ce qui signifie que les fichiers de configuration sont supposés être dans "_maxigos/_mgos/_cfg"), suivi du nom de la configuration suivi de ".cfg". Et l'on insère le sgf (ou le nom d'un fichier sgf, mais pas une url pouvant générer du sgf) entre ces balises <div> et </div>.

On insère ensuite le script "mgosLoader.js", que l'on appelle le chargeur (qui lui-même appelle un lanceur spécial "sgfmultipleplayer.php"), après toutes les balises <div> et </div> 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 "_cfg/", on préfixe la valeur du paramètre "data-maxigos" par un chemin relatif entre le dossier "_cfg/" et le dossier où se trouve le fichier de configuration. Par exemple, si l'on souhaite utiliser le fichier de configuration "minimalComment.cfg" qui se trouve dans "_maxigos/_sample/minimal/_cfg" :

<div data-maxigos="../_sample/minimal/_cfg/minimalComment">

Eventuellement, pour changer la langue par défaut (qui est le français), on insère avant le script "mgosLoader.js" un script de traduction correspondant à la langue choisie. Par exemple, pour le japonais, on peut inclure le script "mgos-loc-ja.js" se trouvant dans "_local/" (remplacez "ppp" par le chemin relatif entre votre page et le dossier "_mgos") :

<script src="ppp/_local/mgos-loc-ja.js"></script>

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).

Utilisation avancée

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

Lanceur sur mesure

Dans la plupart des cas, "sgfplayer.php" suffit comme lanceur. Mais on peut avoir besoin dans certains cas 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 "GGosLib.php" qui est dans le dossier "_mgos_php" de maxiGos via une instruction du type include("ppp/GGosLib.php"); où ppp est le chemin relatif entre le lanceur et "CGosLib.php", et appeler la fonction php "gosStart()". Celle-ci est définie dans "GGosLib.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 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, le cinquième l'identifiant d'un couple de balises de 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,0,"");".

$sgf contient le nom d'un fichier sgf, ou l'url d'un fichier sgf, ou encore une chaine de caractères représentant un enregistrement 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").

Si le quatrième paramètre vaut 1, maxiGos n'inclut aucun fichier css ou js dans le script javascript généré. Cela 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é qu'à partir du deuxième lecteur de la page, et à condition que le premier lecteur soit de même configuration.

Le cinquième paramètre contient éventuellement 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".

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

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

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 est écrit en javascript.

Les codes des composants sont dans des fichiers ayant un nom de la forme "mgosNomDuComposant.js".

Pour pouvoir utiliser des composants, il faut soit ajouter dans un fichier de configuration des lignes du type $gosParam["Script"][]="mgosNomDuComposant.js"; (simple et suffisant dans la plupart des cas), soit ajouter les fichier javascript correspondants directement dans la partie "head" de la page via des lignes comme <script src="chemin/mgosNomDuComposant.js"></script> (quand on le peut, c'est mieux car plus efficace).

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 qu'il faut ajouter dans toutes les configurations, en utilisant l'une ou l'autre (mais pas les deux) des méthodes suivantes :

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"][]="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.

Par défaut, maxiGos considère que les fichiers javascript définissant les composants sont dans le dossier "_mgos/_js". Mais on peut les mettre ailleurs, et dans ce cas, il convient de préfixer le nom de ces fichiers javascript déclarés dans les fichiers de configuration par un chemin relatif entre le dossier "_mgos/_js" et le dossier où ils sont stockés.

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"][]="mgos_lib.js";
$gosParam["Script"][]="mgos_rls.js";
$gosParam["Script"][]="mgos_prs.js";
$gosParam["Script"][]="mgos.js";
$gosParam["Script"][]="mgosGoban.js";
$gosParam["Script"][]="mgosNavigation.js";
$gosParam["Script"][]="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
globalBoxToujoursNom de la boite globale de maxiGos. Si la valeur de ce paramètre est différente de "GlobalBox", maxiGos ajoute à la boite globale la classe "mx"+(la valeur de globalBox)+"Div", et son id sera (identifiant de l'objet maxiGos)+(valeur de globalBox)+"Div". Ce paramètre est très utile lorsque l'on souhaite utiliser des objets maxiGos ayant des configurations différentes dans la même page, ou que l'on souhaite ne faire qu'une seule feuille de style pour l'ensemble des objets maxiGos d'un site n'ayant pas tous le même style.

Note : les identifiants des objets maxiGos 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. Si le paramètre globalBox a par exemple la valeur "MyGlobalBox", la boite globale des objets maxiGos a pour classes css .mxGlobalBoxDiv et .mxMyGlobalBoxDiv, et l'identifiant du premier objet maxiGos de ce type dans une page est "d1MyGlobalBoxDiv".
Une chaine de caractères finissant par Box"GlobalBox"
initMethodSouventAction initiale de maxiGos : aller au début du Sgf ("first"), aller à la fin de la variante principale du Sgf ("last"), parcourrir en boucle le Sgf ("loop"). On ne peut utiliser "loop" que si le composant "Loop" est aussi présent."first", "last" ou "loop""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 "_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.
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
HTMLParenthesisRarementS'il vaut 1, maxiGos remplace les éventuelles "&#40;" et "&#41;" par "(" et ")" dans 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 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
sourceFilterRarementUne 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

Composant "Comment"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
adjustCommentWidthSouventS'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban.0 ou 10
adjustCommentHeightSouventS'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban.0 ou 10
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 "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"
selectColorParfoisCouleur utilisée en semi-transparence lors de la sélection d'une partie du goban. Une couleur css Couleur des lignes du goban

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 "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
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 la laisser à sa valeur par défaut qui est "transparent", et d'utiliser les propriétés css "background" du tag HTML dans lequel il est dessiné pour modifier le fond (pas forcément uni du coup) 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
focusLineWidthrarementEpaisseur des lignes une marque dessinés 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
classicShadowParfoisS'il vaut 1, quand la couleur de fond du goban est donnée par le paramètre "gobanBk" (via un fichier de configuration ou le paramètre "data-maxigos-goban-bk" par exemple) ou modifiée via du javascript (via le menu "Couleurs" du composant "View" par exemple), maxiGos affiche une ombre "classique" autour du goban.0 ou 10
gobanFocusRarementS'il vaut 1, maxiGos dessine une marque sur le goban indiquant l'intersection ayant le focus lorsque l'utilisateur navigue à l'aide du clavier. 0 ou 11

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"

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
headerBtnOnSouventS'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
adjustHeaderWidthParfoisS'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. Ce paramètre est sans effet si headerBoxOn vaut 0.0 ou 10
adjustHeaderHeightRarementS'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. Ce paramètre est sans effet si headerBoxOn vaut 0.0 ou 10
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
hideNumOfMovesParfoisS'il vaut 1, maxiGos n'affiche pas le nombre de coups.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
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 "mxHeaderDiv" (mais il peut bien sûr afficher le contenu du composant ailleurs comme par exemple dans la boite à commentaire 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
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 "_". Le fichier d'aide est supposé être dans le dossier "_maxigos/_help" (sinon, il faut le préfixer par un chemin). 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 "helpMe.php"
Un nom de fichier"undefined"

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
adjustInfoWidthRarementS'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. Ce paramètre est sans effet si infoBoxOn vaut 0.0 ou 10
adjustInfoHeightRarementS'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban. Ce paramètre est sans effet si infoBoxOn vaut 0.0 ou 10
infoLabel_<xy>RarementTexte 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"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 on pourra quand même afficher le formulaire de modification des informations 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
adjustLessonWidthRarementS'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban.0 ou 10
adjustLessonHeightSouventS'il vaut 1, maxiGos ajuste la hauteur de la boite du composant à celle du goban.0 ou 10

Composant "Loop"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
loopBtnOnSouventS'il vaut 1, maxiGos affiche un bouton "Loop" dans la boite du composant.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

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 cssaucune
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 cssValeur de la propriété css "color" des tags HTML dans lesquels sont dessinés les boutons
adjustNavigationWidthParfoisS'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban.0 ou 10

Composant "NotSeen"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
adjustNotSeenWidthSouventS'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban.0 ou 10

Composant "Options"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
optionBtnOnSouventS'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 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"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

Composant "Pass"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
passLabel_<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"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 "Sgf"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
sgfBtnOnSouventS'il vaut 1, on affiche un bouton dans la boite du composant. Ce paramètre vaudra 0 quand on l'utilisera uniquement pour ses fonctions internes (par exemple quand on utilise le composant "Kifu").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 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"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"

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
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 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"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 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"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 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"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 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"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 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"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 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"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 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 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 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 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
adjustSolveWidthParfoisS'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban.0 ou 10

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 (par exemple quand on utilise le composant "Kifu").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
adjustTreeWidthParfoisS'il vaut 1, maxiGos ajuste la largeur de la boite du composant à celle du goban. 0 ou 10
adjustTreeHeightParfoisS'il vaut 1, 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) . 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"

Composant "Version"

ParamètreUtilisationNatureValeurs possiblesValeur par défaut
versionBoxOnRarementS'il vaut 1, cache le composant. En pratique, ce paramètre ne sert que si l'on utilise un lecteur autonome affichant normalement ce composant et qu'on veut juste le cacher via l'emploi d'un attribut dans la balise où s'affiche le lecteur (par exemple <script src="maxigos-basic.js" data-maxigos-version-box-on="0">) sans avoir à re-fabriquer un autre lecteur autonome uniquement pour cela. 0 ou 11

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"][]="xyz.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="chemin/xyz.css"> (quand on le peut, c'est mieux car plus efficace).

Par défaut, maxiGos considère que les feuilles de style déclarées dans les fichiers de configuration sont dans "_css". Mais on peut les mettre ailleurs et dans ce cas, il convient de préfixer le nom du fichier des feuilles de style déclarée dans les fichiers de configuration par le chemin relatif entre "_css" et le dossier où elles sont en fait stockées.

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 du paramètre "globalBox" ne soit pas sa valeur par défaut ("GlobalBox") afin de pouvoir faire cohabiter dans une même page des objets maxiGos ayant des configurations différentes.

On a comme tags :

Le div global est de la forme :

<div class="mxGlobalBoxDiv mxNomDelaBoiteGlobaleDiv" id="identifiantObjetNomDelaBoiteGlobaleDiv">...</div>

Le nom de la boite globale est par défaut "GlobalBox" et peut être modifié via le paramètre "globalBox" dans un fichier de configuration.

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 trois classes :

div.mxGlobalBoxDiv,
et "mx" + valeur du paramètre "globalBox" + "Div" quand la valeur du paramètre "globalBox" n'est pas "GlobalBox",
et "mxIn3dOn" ou "mxIn2dOn" 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.mxBackToMainDiv
button span
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
div.mxEditDiv
div.mxEditToolBarDiv
button canvas, button img, button span, 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
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
div.mxKifuDiv
button span
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 canvas
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
button.mxOnFocusPassBtn span
button.mxOnVariationPassBtn span
button.mxOnFocusAndOnVariationPassBtn span
div.mxSgfDiv
button span
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 (quand "viewBoxOn" vaut 1)
button span

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

4) Boites éventuellement affichées à la place de div.mxGobanDiv

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
div.mxOKDiv button span

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 à laquelle il est conseillé de donner la propriété css "overflow:auto".

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".

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 à 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".

MaxiGos cache parfois div.mxGobanDiv via un "display:none", pour afficher l'une des boites .mxNumberingDiv, .mxNewDiv, .mxOpenDiv, .mxSaveDiv, .mxSendDiv, .mxShowHeaderDiv, .mxShowHelpDiv, .mxShowInfoDiv, .mxShowOptionDiv, .mxShowSgfDiv via un "display:block" sur ces boites.

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 classe .mxPassBtn, mais cette classe est remplacée par d'autres 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><canvas></canvas></button> ou <button><span>...</span></button>). Pour changer le style des boutons, utilisez "div.mxNavigationDiv button canvas" ou "div.mxSolveDiv button span" dans une des feuilles de style.

Par exemple, pour changer la couleur des icones en rouge et leur taille à 12 pixels dans les boutons de navigation du lecteur de partie, et en supposant que la classe du <div> global soir .mxBasicGlobalBoxDiv, utilisez :

.mxBasicGlobalBoxDiv div.mxNavigationDiv button canvas {color:#f00;font-size:12px;}

Note : il est prudent d'imposer la couleur des icones même si l'on souhaite qu'elle soit noire, car la couleur par défaut d'un bouton peut varier selon le navigateur et le contexte (bouton désactivé par exemple).

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
Classes modifées dans le code javascript

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 de traduction "mgos-loc-<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 langue

Encodage et langue sont deux choses différentes. "UTF-8" est adapté pour toute(?) langue, aussi c'est le meilleur choix quand on peut l'utiliser. Quand cele 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 et mxG.L. 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 fichiers

Contenu du dossier "_mgos"

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. Télécharger l'archive contenant maxiGos (un fichier nommé "_maxigosnnn.zip" où nnn est la version de maxiGos, au minimum la 6.20).
  2. Décompressez l'archive contenant maxiGos : le contenu se retrouve dans un dossier nommé "_maxigos".
  3. Copiez le dossier "_maxigos/_alone/" et les fichiers qu'il contient sur le serveur hébergeant votre site n'importe où (par la suite, on va supposer que "_maxigos" a été placé à la racine du site, mais si ce n'est pas le cas, il suffit d'adapter le chemins indiqué dans les lignes à insérer dans la page où s'affichera le lecteur maxiGos).
  4. Insérez dans l'une de vos pages à l'endroit où vous voulez que maxiGos s'affiche l'appel à l'un des scripts de lecteur autonome maxiGos (ce sont les scripts javascript qui sont dans "_maxigos/_alone/" avec du sgf entre les balises d'appel à ce script. Par exemple :
    <script src="/_maxigos/_alone/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. Voir l'exemple "ambiance minimaliste" pour avoir un aperçu de ce que cela donne.

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 boite globale a pour classe "mxMyGlobalBoxDiv" (c'est à dire que le fichier de configuration contient $gosParam["globalBox"]="MyGlobalBox";), vous pouvez insérer dans vos fichiers css les lignes suivantes, en les adaptant selon vos besoins :

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

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

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

@media (max-width:319px)
{
.mxMyGlobalBoxDiv div.mxGobanDiv canvas {font-size:8px;}
.mxMyGlobalBoxDiv 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 "classiques" 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="initial-scale=1.0,maximum-scale=4.0,minimum-scale=1.0,user-scalable=yes">

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 ?

Ajoutez dans vos pages avant l'insertion du script du lecteur autonome un appel à un script de traduction. Par exemple, si vous voulez que maxiGos s'affiche en anglais et que les scripts de traduction sont dans "xxx/maxiGos/_maxigos/_local" sur votre site web, ajoutez <script src="/xxx/maxiGos/_maxigos/_local/mgos-loc-en.js"></script> (vous pouvez aussi, si vous utilisez uniquement cette langue, simplement ajouter au début du fichier du script du lecteur autonome le contenu du fichier du script de traduction pour éviter d'avoir à insérer cette ligne à chaque fois dans vos pages : vous pouvez aussi lancer le script "addLocalization.php" pour faire cet ajout).

Si la langue que vous souhaitez utiliser n'a pas encore de fichier de traduction dans "_maxigos/_local/", voir la question suivante.

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

Dupliquez "_maxigos/_local/mgos-loc-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 à 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