EnglishFrançais

Documentation pour maxiGos v6.30

Copyright 1998-2013 - 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).

Comment installer maxiGos ?

MaxiGos s'installe sur un serveur web disposant de php (version 5 ou ultérieure).

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.

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.

Vous pouvez changer la langue pour l'anglais en incluant la ligne suivante avant tout appel à maxiGos :

<script>mxL="en";</script>

Si vous ne souhaitez pas à avoir à insérer cette ligne dans chacune de vos pages, vous pouvez simplement ajouter mxL="en"; au début de "_mgos/_js/mgos_lib.js" (toujours) et 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-jp" 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-jp"></script>

Si vous 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" (toujours) et des scripts javascript dans "_alone" (seulement si vous les utilisez explicitement dans vos pages). Le script "addLocalization.php" peut effectuer cette tache pour vous automatiquement.

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.

Méthode utilisant un "lecteur autonome" en javascript

Le code à insérer dans vos pages

On insérer 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, regroupés dans le répertoire "_alone", sont :

Par exemple, on inclut à l'endroit où doit s'afficher maxiGos dans la page web une ligne 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.

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 l'exemple "fmMaker.php" dans le répertoire "_sample/fm/").

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 répertoire "_alone", et éventuellement les répertoires "_local" (si on utilise une langue autre que le français) et "_help" (si on utilise le lecteur autonome "maxigos-edit.js").

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

On insére une ligne de php/html dans la page à l'endroit où doit s'afficher le lecteur sgf.

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é mxZ, 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

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 étant le nom d'une configuration de maxiGos (le nom du fichier de configuration correspondant étant la concaténation de la valeur de la variable javascript mxC, qui est par défaut "_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 changer le répertoire par défaut des fichiers de configuration, on insère avant le script "mgosLoader.js" un petit script affectant le répertoire souhaité à la variable javascript mxC. Ce répertoire doit être préfixé par un chemin relatif entre le répertoire où se trouve le script sgfmultipleplayer.php et le répertoire des fichiers de configuration. Par exemple :

<script>mxC="../_sample/_cfg/";</script>

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-jp" se trouvant dans "_local/" en utilisant quelque chose du genre (remplacez "ppp" par le chemin relatif entre votre page et le répertoire "_mgos") :

<script src="ppp/_local/mgos-loc-jp"></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

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 (nom de fichier ou chaine de caractères contenant du sgf), le deuxième le 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 comme par exemple <div> et </div> le sixième un switch qui s'il vaut 1 indique que le script javascript généré doit être stocké dans un chaine de caractères au lieu d'être imprimer dans la page immédiatement.

Un appel à gosStart() sera par exemple gosStart($sgf,$cfg,$lang,0,"",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), $cfg le nom d'un fichier de configuration (correspond au paramètre "cfg" de l'url du lanceur), et $lang un code langue, comme "fr" (français) ou "en" (anglais) (correspond au paramètre mxL de l'url du lanceur).

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.

Les cinquième et sixième paramètres sont rarement utilisés, mais sont essentiels pour fabriquer des plugins de maxiGos (voir le plugin de maxiGos pour wordpress par exemple).

Si le sixième paramètre vaut 1, gosStart() retourne une chaine de caractères contenant le script javascript généré sans l'inclure dans la page, sinon elle ne renvoie rien et inclut le script javascript généré tel quel dans la page.

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.

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

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 fixer sa valeur dans un fichier css. 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 hoshis (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"
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 modifiée via du javascript, maxiGos affiche une ombre "classique" autour du goban.0 ou 10

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.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". 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". Il faut préfixer le nom donné ici par un chemin relatif entre le dossier "_maxigos" et le dossier où il se trouve. 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 dans le dossier "_maxigos/_help/", "mxL" vaudra "fr", le nom du paramètre sera "helpSource_fr", et la valeur du paramètre sera "_help/helpMe.php"
Un nom de fichier"undefined"

Composant "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". 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 déduite de la propriété css du tag HTML dans lequel sont dessinés les boutons, 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" des tags HTML dans lesquels sont dessinés les boutons

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

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
nowhereMessage_<xy>ParfoisTexte 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". Une chaine de caractères"undefined"
endMessage_<xy>ParfoisTexte 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". Une chaine de caractères"undefined"
forbiddenMessage_<xy>ParfoisTexte affiché dans la fenêtre de commentaire si l'utilisateur essaie de jouer un coup interdit par la règle. <xy> est à remplacer par un code de langue qui doit correspondre à la valeur du paramètre "mxL". Une chaine de caractères"undefined"

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

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 1-0
adjustTreeHeightSouventS'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 1-0

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
variationBkSouventCouleur du fond des marques de variations. Une couleur css"transparent"
variationFontWeightSouventGraisse des marques de variations. "normal" ou "bold""normal"
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 "View"

ParameterUseDescriptionValuesDefault value
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
canvas ou img ou input + (.mxUnselectedEditTool ou .mxSelectedEditTool) (il s'agit des outils de la barre d'outils)
div.mxEditCommentToolDiv textarea
div.mxFileDiv
button span (quand "openOnly" vaut 0)
input[type=button] (quand "openOnly" vaut 1)
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,h2,h3 (si headerBoxOn vaut 1)
div.mxShowContentDiv div.mxP (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
h1
div.mxP label
div.mxP input
div.mxOKDiv input
div.mxNewDiv
h1
div.mxP label
div.mxP input
div.mxOKDiv input
div.mxOpenDiv form
h1
div.mxP label
div.mxOKDiv input
div.mxSaveDiv form
h1
div.mxP label
div.mxP input
div.mxOKDiv input
div.mxSendDiv form
h1
div.mxP label
div.mxP input
div.mxOKDiv input
div.mxShowHeaderDiv
div.mxShowContentDiv
h1
div.mxP span.mxHeaderSpan
div.mxOKDiv input
div.mxShowHelpDiv
div.mxShowContentDiv
h1,h2,h3
div.mxP
div.mxOKDiv input
div.mxShowInfoDiv
div.mxShowContentDiv
div.mxInfoPageMenuDiv button.mxInfoPageBtn
div.mxInfoPageMenuDiv button.mxInfoSelectedPageBtn
div.mxInfoPageDiv label, input, textarea
div.mxOKDiv input
div.mxShowOptionDiv
div.mxShowContentDiv
h1
div.mxP label
div.mxP input
div.mxOKDiv input
div.mxShowSgfDiv
div.mxShowContentDiv
div.mxP
div.mxOKDiv input

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 et une hauteur dans un fichier css via les propriétés "width" et "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 (canvas, input et img). 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".

Il est conseillé de donner aux canvas, img et input de la barre d'outils un "vertical-align" identique .

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.

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écharger 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érer dans la page où s'affichera le lecteur maxiGos).
  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. Cependant certaines fonctionnalités peuvent ne pas être disponibles avec certains 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 appelle 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 afficher maxiGos dans une page s'adaptant aux mobiles ("responsive design") ?

Le point principal est de modifier la taille du goban et des boutons de navigation. 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;}
}

Vous pouvez aussi vous inspirer de certains exemples fournis avec maxiGos, comme "ambiance chinoise" ou "ambiance japonaise".

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 "_maxigos/_local" sur votre site web, ajoutez <script src="/_maxigos/_local/mgos-loc-en.js"></script> (vous pouvez aussi, si vous utilisez toujours 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, voir la question suivante.

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

Dupliquez "_maxigos/_local/mgos-loc-jp.js" et renommez le fichier en remplaçant les deux dernières lettres par le code de cette nouvelle langue. Remplacez les "jp" 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 une fonction par défaut pour produire un résultat.

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