Tout d'abord, tout ce qui suit est décris relativement au répertoire d'installation de DTC (dans /usr/share/dtc sur la plupart des Linux, et dans /usr/local/www/dtc sur FreeBSD).
1. Organisation générale:
Ce pourrait être évident mais...
- /admin contient les fichiers nécessaires pour le panneau d contréle de l'administration (http://www.example.com/dtcadmin/), ce que vous ne voulez pas partager avec les utilisateurs (pour des raisons de sécurité). Il y a aussi les fichiers pour les tâches cron.
- /client contient les fichiers nécessaires pour l'interface client (http://www.example.com/dtc/)
- /email holds contient les fichiers nécessaires pour le panneau de configuration des mails (http://www.example.com/dtcemail/)
- /shared contient les fichiers communs à la fois à l'interface client qu'à l'interface d'administration. C'est ici que se trouve la plupart du code.
Pour la suite, nous allons détaillé plus en profondeur chacun des répertoires.
2. le répertoire dtc/admin plus en détails:
Il n'y a pas grand chose à voir ici, c'est rapide à découvrir. Méme s'il y a beaucoup de fichiers, seul certains sont intéressants. Les voici:
- index.php Celui-ci est pour le moment un peut en bordel, mais il appel principalement les autres fichiers. Seul quelques parties sont entièrement écrite dedans.
- daemons_state.php Celui-lé (et c'est un fichier de lignes) est affiché dans le démon du moniteur de DTC (dans l'iframe)
- accesslog.php C'est une tâche cron exécutée chaque jour qui va dumper chaque log vhost de mysql, et appeler webalizer. Chaque mois il collecte également les données de chaque journées pour les inscrire dans un seul gros fichier, et effacer les archive datant de plus d'un an.
- cron.php C'est ici que tous les fichiers sont générés et les démons redemarrés. Il appel les scripts dans le répertoire dtc/admin/genfiles.
- inc/nav.php C'est lé que vous avez les dessins de la liste des utilisateurs et les grosses icénes du haut du panneau de contrôle de l'administration.
- inc/dtc_config.php Celui-ci contient toutes les fonctions d'affichage des formulaires de la "configuration générale" du panneau d'administration.
- inc/img.php dessine le menu utilisateur (la vue en arbre)
- inc/submit_root_querys.php La plupart des fonctions nécessitant des requêtes SQL personnalisées et d'autres choses (comme la création de VPS, renouvellement et utilisateurs en attente de validation) sont écrites ici. C'est un fichier trés important. Notez que l'utilisateur root est supposé être un utilisateur de CONFIANCE, peut d'entrée de champs contrôlés sont faites ici. Si quelqu'un veut ajouter plus de contrôle, libre à vous de la faire.
- dtcrm/product_manager.php a le formulaire du gestionnaire de produit.
- dtcrm/submit_to_sql.php contient les anciens codes (plus utilisés) en passe d'étre supprimés.
3. le répertoire dtc/client plus en détails:
Il y a quelques fichiers frontaux ici, Nous en avons besoins vu qu'ils sont tous dans le répertoire root. En voici la grande liste:
- enets-notify.php, secpaycallback_worldpay.php, paypal.php sont tous appelés par le serveur de paiement pour valider ceux-ci.
- index.php appel principalement login_form() (le formulaire de login.php) et drawAdminTools() (situé dans dtc/shared/inc/draw.php)
- Le répertoire inc/ st important, il y a uniquement les fonctions des dessins de la vue en arbre de img.php et des fichiers de dessins.
Le reste est principalement dans dtc/shared/inc que nous allons voir... MAINTENANT!
4. le répertoire into dtc/shared plus en détails:
- dtc_lib.php a une liste de fichiers inclus pour les trois panneaux (root, client et email)
- dtc_version.php et mysql_config.php sont configurés par l'installateur avec la version et les informations de connections MySQL respectives.
- Le répertoire drawlib/ a plusieurs fonctions utiles qui sont:
- anotherDtc.php des fonction pour le graphisme de l'interface.
- skin.php contient la vue en arbre (et non plus des fonctions du théme)
- skinLib.php contient les fonctions du nouveau thème.
- tree_menu.php une version propre de la vue en arbre qui est vraiment récursive mais plus utilisée (les autres version n'autorisent qu'un seul niveau dans ce type de vue)
- cc_code_popup.php Des tables avec les codes des pays VS les noms des pays, les pays inclus dans l'EU (utilisé pour la facturation)
- dtc_functions.php Contient beaucoup, beaucoup, de fonctions, vous devriez y jeter un œil. Beaucoup de vérification de champs sont codés ici (utilisant des expression régulières)
- templates.php est un fichier très important qui fait les dessins de la plupart des formulaires ainsi que le SQL pour ceux-ci. Un chapitre spécial sera écrit d'ici peu à ce propos.
- default_admin_site.php, 404_template et template sont utilisés uniquement pendant la configuration (et copié UNE SEULE FOIS à la PREMIERE installation du panneau de contrôle UNIQUEMENT).
- securepay contient les modules et l'API de paiement.
- Le répertoire dtcrm/ contient les modules de l'API de l'enregistrement de NDD (registar) (Tucows, et une implémentation partielle de webnic)
- vars/global_vars.php contient les vérification des entrées pour les (quelques rares) variables globales du panneau de contrôle comme $rub (qui est le chapitre, si vous en voulez plus, des vérifications qui sont nécessaires pour éviter le XSS sur l'écran de connexion des clients), $adm_login, $adm_pass, $addrlink (adresses de la vue en arbre de l'interface client)
- inc/ est là où vous allez trouver le plus de choses relative à l'interface client. Regardez le chapitre suivant
- inc/draw.php est le fichier qui va dessiner l'interface client (vue en arbre et autre). C'est là où tous le fichiers inc/forms sont inclus, et où l'on appel les fonctions définis dans inc/forms.
- inc/submit_to_sql.php a tous les scripts pour envoyer les requétes de vos formulaire sur SQL et exécute les commandes shell requises (creation de sous-répertoires, et autre). Cela inclus également es fichiers du répertoire inc/sql. Notez qu'avec le GIT courant, certains formulaires n'ont pas besoins d'avoir des fichiers dans inc/sql vue qu'ils utilisent le moteur de thème qui le fait pour vous.
- inc/forms et inc/sql Toutes les entrées du menu en arbre de l'interface utilisateur sont lé. Chacun d'eux a une entrée dans un formulaire qu'il dessineront, et toutes les entrées de formulaires sont alors traitées dans inc/sql. Regarder chaque nom de fichier inclus dedans, c'est trés explicite.