|
|
Ligne 1 : |
Ligne 1 : |
| {{menu Frankiz}}
| | = Projet = |
| == Structure du site == | | Frankiz 3 est la nouvelle version de Frankiz (actuellement en version 2) qui est en développement depuis environ 2007. Il s'agit d'un refonte complète du site basée sur le core du site polytechnique.org, plat/al. |
|
| |
|
| On travaille avec platal, ce qui a imposé une certaine modification de la structure de dossiers.
| | Cette nouvelle version introduira de nombreuses fonctionnalités comme : |
| | * la gestion de groupes (binets, cellule dans un binet, cours, PC/TD, section, compagnie, promo, école, etc.) et des outils basés sur cette architecture (annonces/activités/sondage/... au sein d'un groupe), |
| | * un calendrier personnel affichant toutes les activités des différents groupe auquel appartient l'utilisateur, |
| | * et bien d'autres choses encore... |
|
| |
|
| * '''bin''' : contient les scripts utilisés par frankiz
| | Il est à noter que Frankiz 3 sera fait pour accueillir des utilisateurs de différentes formations : X, doctorants, masters, PEI mais aussi des autres écoles du plateau comme Supop, l'ENSTA, etc. |
|
| |
|
| * '''classes''' : contient les classes spécifiques à frankiz, ainsi que la classe platalglobals.php (dérivée à partir de platalglobals.php.in), qui contient une partie de la conf
| | = Développement et documentation = |
|
| |
|
| * '''core''' : contient le core de plat/al, voir ci-après la partie 'git-submodule'
| | Le site du développement est sous Trac : http//trace.binets.frankiz.net/frankiz |
| | |
| * '''configs''' : contient les fichiers de config ; générer les versions utilisées à l'aide du Makefile [non encore implémenté]
| |
| | |
| * '''htdocs''' : les fichiers 'initiaux' et statiques :
| |
| ** frankiz.php, qui initie le site
| |
| ** .htaccess, qui contient les règles de réécriture (mettre à jour à partir de .htaccess.in quand on checkout sa version)
| |
| ** les skins, les images fixes, le fkz.opensearch.xml pour la barre de recherche, les CSS
| |
| | |
| * '''include''' : les fichiers à inclure (fonctions, ...)
| |
| | |
| * '''modules''' : les modules, i.e les différentes pages (profil, annonces, activités, ...)
| |
| | |
| * '''old''' : contient les fichiers de frankiz 2.x (0<x<5), à terme devra être vide.
| |
| | |
| * '''platal''' : un checkout de platal, au début pour avoir le core, à terme pour pouvoir y piquer des fonctions et des includes (avec du ln -s)
| |
| | |
| * '''plugins''' : contient les plugins smarty, à savoir les instructions de mise en forme des variables en sortie
| |
| | |
| * '''spool''' : le cache des templates, les données, ...
| |
| | |
| * '''templates''' : les templates, i.e la mise en forme des variables fournies par les fichiers dans les modules
| |
| | |
| * '''upgrades''' : contient les scripts d'upgrade de la bdd, des dossiers, ... pour passer d'une version à une autre
| |
| | |
| == Coding rules, utilisation de git ==
| |
| | |
| === Doc sur Git ===
| |
| On peut trouver de la doc sur git ici :
| |
| * [https://www.polytechnique.org/EquipeDevel/GitHowto#basics Polytechnique.org]
| |
| * [http://www.kernel.org/pub/software/scm/git/docs/user-manual.html Git User Manual]
| |
| * [http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html Git Tutorial]
| |
| | |
| === Commits ===
| |
| | |
| * Le texte des commits est en anglais.
| |
| * Les commits sont atomiques (un commit ne modifie qu'une seule partie du code, cohérente ; on ne met pas à jour le core et le module d'annonces et le template des fiches TOL en un même commit)
| |
| * Le format typique d'un commit est :
| |
| | |
| Résumé
| |
|
| |
| * Point 1 en détails
| |
| * Point 2 en détails
| |
|
| |
| Signed-off-by: Blah <blah@frankiz.net>
| |
| | |
| Le 'signed-off by' est obtenu en utilisant
| |
| git-commit -s
| |
| | |
| == Remarques ==
| |
| | |
| Cette partie sert à lister les remarques venant au cours de l'analyse du code de plat/al
| |
| | |
| === Généralités ===
| |
| | |
| === include/security.inc.php ===
| |
| * fonctions ''check_ip'' et ''check_email'' : décider si on la veut, et créer la BDD qui va bien
| |
| * fonctions ''check_account'' et ''check_redirect'' : les comprendre, et voir si on en veut
| |
| * fonction ''send_warning_mail'' : corriger les trucs nécessaire ; j'aime assez l'idée ([[User:Xelnor|Xelnor]])
| |
| * fonction ''kill_session'' : créer le script adéquat
| |
| * fonctions ''udate_NbValid'' et ''update_NbNotifs'' : adapter à notre structure (requêtes et notifications en attente)
| |
| | |
| == Fonctionnement du site ==
| |
| Liste des fichiers appelés, dans l'ordre :
| |
| # '''htdocs/frankiz.php'''
| |
| ## appelle ''include/frankiz.inc.php''
| |
| ## Lance Plat/al (''platal->run()'')
| |
| ## Charge le wiki : ''include/wiki/engine.php''
| |
| # '''include/frankiz.inc.php''' :
| |
| ## Définit des variables globales de plat/al (nom des classes globale, de session, de page)
| |
| ## Appelle ''core/include/platal.inc.php''
| |
| ## Appelle ''include/security.inc.php''
| |
| ## Appelle ''include/common.inc.php''
| |
| # '''core/include/platal.inc.php''' :
| |
| ## Définit l'autochargement de classes
| |
| ## Définit un certain nombre de fonctions (erreurs, encodage, redirection de page)
| |
| # '''include/security.inc.php''' : définit des fonctions de sécurité, non encore implémentées
| |
| # '''include/common.inc.php''' : définit des chemins alternatifs d'autoload (non encore utilisé), et la fonction principal d'autoload (qui appelle pl_autoload)
| |
| | |
| == Chemin de chargement de plat/al core ==
| |
| depuis htdocs/frankiz.php
| |
| * include/frankiz.inc.php
| |
| ** core/include/platal.inc.php
| |
| *** core/include/misc.inc.php
| |
| *** core/classes/env.php
| |
| ** include/security.inc.php
| |
| ** include/common.inc.php
| |
| * core/classes/platal.php
| |
| ** classes/platalglobals.php
| |
| *** core/classes/plglobals.php
| |
| ** classes/frankizsession.php
| |
| *** core/classes/plsession.php
| |
| **** core/classes/s.php
| |
| **** core/classes/plflagset.php
| |
| ** classes/frankizpage.php
| |
| *** core/classes/plpage.php
| |
| ** core/classes/plmodule.php
| |
| *** modules/*.php
| |
| | |
| # '''include/frankiz/session.inc.php''' :
| |
| ## Charge ''include/frankiz.misc.inc.php''
| |
| ## Définit les cookies, voir à remplacer par les fonctions de plat/al
| |
| ## Définit la classe FrankizSession, qui contient quelques anciennes fonctions, à réécrire.
| |
| # '''include/frankiz.misc.inc.php''' :
| |
| ## Définit des fonctions de gestion de caractères, de proximité sonore, de sécurité
| |
| | |
| | |
| == Rédaction de doc ==
| |
| Il y a 2 doc à rédiger qui ça s'adressent à 2 types de personnes différentes :
| |
| # ceux qui doivent comprendre comment fkz fonctionne dans son ensemble, comprendre le code du coeur, etc.
| |
| # ceux qui codent un module particulier et seulement ça
| |
| ;Pour les 1ers
| |
| :C'est dans le code que la doc (arborescence des classes, fonctions, etc.) doit se trouver par ce qu'il doivent *comprendre* le code. Donc le support de la doc : doxygen + pages wikiBR pour expliquer le code dans ses grandes lignes.
| |
| ;Pour les 2èmes
| |
| :C'est plus un quelque chose du genre tuto avec seulement ce qu'il faut savoir pour coder un module. Support de la doc : WikiBR.
| |
| Ca serait bien qu'on propose au gens une espèce de petit '''kit de développement''' de module frankiz accessible a tous ceux qui ont déjà fait un peu de php, ceux là n'ont pas besoin de comprendre le code du coeur. ([[User:Qt|Qt]])
| |
| | |
| == Devel sur frankiz2 ==
| |
| '''A éviter''' : seulement si on ne peux pas faire autrement. On se concentre sur le devel de Frankiz3.
| |
| | |
| La marche à suivre est la suivante :
| |
| * créer le dossier adéquat dans son home sur gwennoz :
| |
| mkdir ~/public_html
| |
| * Y récupérer le code de frankiz2
| |
| git clone /home/git/frankiz.git frankiz2
| |
| * Mettre en place le fichier de configuration adéquat
| |
| cp ~xelnor/public_html/frankiz2/etc/config.php ~/public_html/frankiz2/etc/
| |
| * Mettre à jour la configuration dudit fichier (notamment les adresses mail)
| |
| * initialiser le cache
| |
| mkdir ~/public_html/frankiz2/cache
| |
| chmod a+rwx ~/public_html/frankiz2/cache
| |
| * On accède à la page par http://gwennoz/~user/frankiz2/htdocs/ (en remplaçant user par son login)
| |