= A propos du moteur de .node = [[TracNav]] == Hiérarchie des fichiers == === Dossiers à la racine === La racine du projet comporte les répertoires importants suivants : * [source:/trunk/actions/ actions/] : scripts executés pour toutes les actions ne demandant pas d'affichage (submit de formulaire, action de suppresionn d'un element (images, bookmarks, ...), appel par XMLhttpRequest). * [source:/trunk/bin/ bin/] : ne contient actuellement qu'un script. Il est appelé par le serveur de mail lors d'un retour en erreur d'un mail d'invitation. * [source:/trunk/codepix/ codepix/] : contient les images permettant de proteger certain formulaire des robots (images avec un code déformé à saisir par l'utilisateur) * [source:/trunk/data/ data/]: contient tous les fichiers créés par apache et donc avec des droits "non secure". C'est à dire : les albums photos, les photos de profils, les logos de communautés. * [source:/trunk/hp/ hp/]: !DocumentRoot des .pages * [source:/trunk/inc/ inc/]: scripts contenant la "logique applicative" donnant lieu à un affichage (géré par un template) * [source:/trunk/inc_hp/ inc_hp/] : comme inc/ mais pour les .pages * [source:/trunk/inc_xml/ inc_xml/] : comme inc/ mais pour les sorties en XML (RSS et FOAF). * [source:/trunk/includes/ includes/] : includes en général ... classes, fonctions, etc ... * [source:/trunk/locale/ locale/] : contient les fichiers .mo pour !GetText dans les différentes langues. * [source:/trunk/log/ log/] : contient les logs de php. Dans la version dev, ce répertoire recoit également les logs de apache (access et error) * [source:/trunk/responses/ responses/] : scripts appelés lors d'un clic sur un lien dans un email (généralement le mail d'invitation de .node). Ces scripts ne font que créer un environnement de session et font une redirection sur le script adéquate qui produira un affichage grâce à une template. * [source:/trunk/robots/ robots/] : contient des "robots" et des scripts d'automatisation de taches (comme la suppression d'un membres), ainsi que 2 scripts bash pour les cron ([source:/trunk/robots/launch_robots.sh launch_robots.sh] et [source:/trunk/robots/launch_robots_2h.sh launch_robots_2h.sh]) qui appelle des scripts php de ce répertoire (envoi de mail, dispatch de message interne, envoi d'invitations, ..., rapatriement des RSS). * [source:/trunk/sessions/ sessions/] : comme son nom l'indique ... * [source:/trunk/smarty/ smarty/] : le systeme de template étant smarty [http://smarty.php.net Smarty], j'ai pas fait très original pour le répertoire de template (contient également le cache de templates compilées et le cache de contenu). * et enfin [source:/trunk/www/ www/] : le !DocumentRoot de la partie principale de .node (la ou il faut s'identifier ;) ) J'ai volontairement passé sous silence certains répertoires comme dntp ou wiki. Ceux-ci appartiennent à des projets connexes à .node : * [source:/trunk/wiki wiki/] : wikini (patché en UTF-8 et multilangue) permettant la gestion du contenu de certaines pages et mails. Il permet également de faciliter le travail de traduction de ces contenus (ceci n'étant pas géré par !GetText). * [source:/trunk/dntp/ dntp/] (et [source:/trunk/inc_dntp/ inc_dntp/]) : DNTP (Dot Node Translation Project) est l'interface de traduction pour !GetText. Ces 2 repertoires sont donc la partie "applicative" et le !DocumentRoot === Fichiers à la racine === J'ai pris pour habitude de mettre les scripts principaux en dehors du !DocumentRoot Apache. Ces scripts sont les points d'entrée dans l'"application .node". Il y en a plusieurs suivant le contexte. Une évolution pourrait-être de les regrouper et d'uniformiser leurs fonctionnements... * [source:/trunk/dotnode-action.php dotnode-action.php] : point d'entrée des actions * [source:/trunk/dotnode-dotpage.php dotnode-dotpage.php] : point d'entrée des .pages * [source:/trunk/dotnode-error.php dotnode-error.php] : point d'entrée pour les pages d'erreurs (presque plus utilisé dans le code) * [source:/trunk/dotnode-id.php dotnode-id.php] : point d'entrée de la partie après authentification de .node * [source:/trunk/dotnode-new.php dotnode-new.php] : point d'entrée pendant le processus de création de compte * [source:/trunk/dotnode-pub.php dotnode-pub.php] : point d'entrée pour toutes les pages ne nécessitant pas d'authentification * [source:/trunk/dotnode-response.php dotnode-response.php] : point d'entrée des liens inséré dans les e-mails * [source:/trunk/dotnode-xml.php dotnode-xml.php] : point d'entrée des sorties XML (RSS, FOAF) Dans l'archive, on trouve également les fichiers suivant : * [source:/trunk/convert-utf8.vim convert-utf8.vim] : simple copier collé a mettre dans un vim pour convertire un fichier en UTF-8. Rien a voir avec .node, mais tellement pratique ;) * [source:/trunk/COPYING COPYING] : La licence (GPL2) * [source:/trunk/data.tar.gz data.tar.gz] : Les données de base pour commencer à travailler (quelques photos, logos de communauté, photos d'album) * [source:/trunk/dntp.sql dntp.sql] : La base de donnée de DNTP (contient tous les termes !GetText et leur traduction etc...) * [source:/trunk/dotnode-clear.sql dotnode-clear.sql] : juste quelques commandes SQL pour vider les bases * [source:/trunk/dotnode-struct.sql dotnode-struct.sql] : structure SQL de la base de dotnode * [source:/trunk/dotnode-data.sql dotnode-data.sql] : les quelques données pour la base de travail * [source:/trunk/dotnode-wiki.sql dotnode-wiki.sql] : contenu de la base du wikini * [source:/trunk/README README] : L'indispensable fichier Lisez-moi ;) * [source:/trunk/reset_data.sh reset_data.sh] : un script bash pour réinitialiser des données (pour repartir sur de bonne base ;)) * [source:/trunk/reset_sql.sh reset_sql.sh] : un script bash pour réinitialiser la base de donnée