« Frankiz III » : différence entre les versions

De WikiBR
m (menu)
 
(16 versions intermédiaires par 6 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Archive|KrankizIII est opérationnel. (janvier 2013)}}
{{menu Frankiz}}
{{menu Frankiz}}
== Structure du site ==
= Projet =
Frankiz 3 est la nouvelle version de Frankiz (actuellement en version 2) qui est en développement depuis le 29 septembre 2007, à 13:02:41. 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://trac.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é]
== Historique ==
Premier commit, par {{u|Elscouta}} : {{c|cbc2dba1 (Elscouta), Sat Sep 29 13:02:41 2007 : premier commit sur fkz3}}


* '''htdocs''' : les fichiers 'initiaux' et statiques :
[[Catégorie:Frankiz]]
** 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
 
== Installation de la version de dev ==
 
Pour fonctionner correctement, il faut :
* créer un dossier dev/ dans son home sur gwennoz :
mkdir ~/dev/
* Y récupérer le code de frankiz :
cd ~/dev
git clone /home/git/frankiz.git
cd frankiz
* Sélectionner la branche voulue : master pour le devel, prod pour ... la prod
git checkout -b master origin/master
ou
git checkout -b prod origin/prod
* Récupérer le ''core'' de plat/al :
git submodule init
git submodule update
* mettre à jour les fichiers de '''configs''' (mettre les mots de passe pour les bdds, actualiser les adresses mail, ...) ; par exemple,
cp ~xelnor/dev/frankiz/configs/frankiz.conf ~/dev/frankiz/configs
* mettre en place classes/platalglobals.php à partir de platalglobals.php.in (faire le make aussi dans /core)
make
* configurer le ''.htaccess'' dans '''htdocs'''
* Créer le dossier spool, et ses sous-dossiers :
mkdir spool/templates_c spool/mails_c spool/tmp
chgrp frankiz spool/*
chmod g+w spool/*
 
== 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)

Version actuelle datée du 7 février 2013 à 15:46

Warning.png Article archivé.
KrankizIII est opérationnel. (janvier 2013)
Warning.png

Projet

Frankiz 3 est la nouvelle version de Frankiz (actuellement en version 2) qui est en développement depuis le 29 septembre 2007, à 13:02:41. Il s'agit d'un refonte complète du site basée sur le core du site polytechnique.org, plat/al.

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

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.

Développement et documentation

Le site du développement est sous Trac : http://trac.binets.frankiz.net/frankiz

Historique

Premier commit, par Elscouta : cbc2dba1 (Elscouta), Sat Sep 29 13:02:41 2007 : premier commit sur fkz3