Dandale 2 en open source

Le Code de Dandale 2 est libre de droit. Vous pouvez donc l'implanter librement sur n'importe quel serveur compatible, sans avoir à payer quoi que ce soit à ses créateurs. Vous pouvez également le reprendre, le modifier pour votre usage personnel.

Cette page explique le fonctionnement des mécanismes généraux de Dandale 2.

Classes

Dandale 2 utilise un certain nombre de classes, qui se trouvent dans le dossier Classes. Le fichier "parser.php3" parse automatiquement les classes qui se trouvent dans le dossier Classes et génère une documentation de classe, qui se trouve dans le dossier "code". C'est le fichier docclasses.html.

La classe centrale de Dandale 2 est la classe personne. Un objet personne est une personne (citoyen, entreprise, administration), qui existe dans votre micronation. Chaque personne dispose d'un nom et d'un mot de passe qui servent à l'identifier.

Connexion

La connexion se fait en entrant son nom et son mot de passe. Un cookie est alors émis qui permet de vous identifier. Il se peut qu'à cause de problèmes de cache, la connexion apparaisse impossible. En fait, il suffit simplement d'actualiser la page "Main/index.php3" sur son navigateur, pour que le navigateur prenne en compte le cookie.

Modules

Dandale 2 fonctionne par le biais de modules, normalement indépendants les uns des autres. Les modules sont soit externes, soit internes.

Les modules internes sont référencés, pour chaque installation de Dandale, dans le fichier "Main/dandale2.inc.php3". Ils sont également décrits dans le fichier "Code/dandale2.php3".
Les modules externes sont ajoutés par vos utilisateurs et se trouvent sur d'autres serveurs que votre version de Dandale 2. Il vous appartient de veiller à la qualité du code des modules externes, pour le bon fonctionnement de votre version de Dandale 2.

Affichage

Le fichier "Classes/dandale2.php3" contient un grand nombre de données de l'affichage et de l'amorçage d'un fichier. Il affiche le menu de Dandale, en reprenant les différents modules internes disponibles. Ce fichier appelle également la connection mysql (cf. cette rubrique), instancie la personne qui est connectée et recherche le skin actif.
Les skins se trouvent dans le dossier "Skin". Ils portent tous un numéro : à chaque numéro correspond un sous-dossier du dossier "Skin", dans lequel se trouvent les informations propres à chaque skin : feuille de style en cascade (CSS), images. Ils sont gérés par une classe "Skin", qui se trouve dans le fichier "Classes/skin.php3". Cette classe contient des fonctions qui permettent de charger le skin et de l'afficher. La liste des skins disponibles dans votre version figure dans la table "Skin" de votre base de donnée MySQL. Le skin actif est reconnu par cookie.
La classe "box" (fichier Classes/skin.php3) contient des fonctions qui permettent de gérer un tableau HTML, compatible avec le skin actif.

Connexion MySQL

La connexion MySQL se fait par la classe mysqldb (fichier "Classes/mysqldb.php3"). Dans ce fichier, modifiez la fonction mysqldb() en y ajoutant vos propres paramètres. Il y a deux modes de connexion : en local et sur le réseau. Cela vous permet de tester votre version en local avec un premier jeu de variables de connexion et sur le réseau avec un second jeu.

Communautés

Dandale 2 gère les sub-divisions géographiques ou politiques de votre micronations, sous le concept de communauté. Chaque communauté dispose de ses propres particularités, gérées à partir de la classe cte (fichier "cte.php3").

Droits d'administration

Les droits d'administration sont gérés par une classe "Admin". Chaque droit a un numéro, qui n'est pas auto-incrémenté de 1 à 1, mais de puissance de 2 en puissance de 2 (1, 2, 4, 8, 16... au lieu de 1, 2, 3, 4, 5...). Chaque droit a également une portée communautaire : toutes les communautés, ou une seule communauté seulement.
Chaque personne peut disposer de droits d'administration. Ils sont stockés dans la table personne, par la méthode binaire. Par exemple, si une personne a une valeur d'administration de 7, cela veut dire qu'il a les droits 1, 2 et 4 (1+2+4 = 7). La classe "Admin" gère toutes ses fonctionnalités et vous permet de savoir facilement si une personne a tel droit d'administration.

Modules

Les modules suivants sont documentés de façon plus spécifiques :