« Frankiz III » : différence entre les versions
(Mon premier post dans ce forum, je suis coiffeuse) |
(Récupération de l'ancienne version) |
||
Ligne 1 : | Ligne 1 : | ||
{{menu Frankiz}} | |||
== Structure du site == | |||
On travaille avec platal, ce qui a imposé une certaine modification de la structure de dossiers. | |||
* '''bin''' : contient les scripts utilisés par frankiz | |||
* '''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 | |||
* '''core''' : contient le core de plat/al, voir ci-après la partie 'git-submodule' | |||
* '''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) |
Version du 30 novembre 2010 à 18:14
- Frankiz II
- Frankiz III
- Frankiz IV
Structure du site
On travaille avec platal, ce qui a imposé une certaine modification de la structure de dossiers.
- bin : contient les scripts utilisés par frankiz
- 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
- core : contient le core de plat/al, voir ci-après la partie 'git-submodule'
- 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 :
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 (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/include/platal.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
- core/classes/plsession.php
- classes/frankizpage.php
- core/classes/plpage.php
- core/classes/plmodule.php
- modules/*.php
- classes/platalglobals.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. (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)