|
|
Ligne 1 : |
Ligne 1 : |
| {{menu Frankiz}}
| | Bonjour à vous tous , |
| == Structure du site ==
| |
|
| |
|
| On travaille avec platal, ce qui a imposé une certaine modification de la structure de dossiers.
| | Premièrement, permettez-moi de vous démontrer mon appréciation pour chacune des très pertinentes connaissances que j'ai lues sur cet imposant site internet . |
|
| |
|
| * '''bin''' : contient les scripts utilisés par frankiz
| | Je ne suis pas certaine d'être au meilleur section mais je n'en ai pas trouvé de meilleur. |
|
| |
|
| * '''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
| | Je réside à Grande prairie, canada . J'ai 41 ans et j'élève 4 super enfants qui sont tous âgés entre 5 et 13 années (1 est adoptée ). J'adore beaucoup les animaux et je tempte de leur offrir les accessoires qui leur rendent la vie plus festive . |
|
| |
|
| * '''core''' : contient le core de plat/al, voir ci-après la partie 'git-submodule'
| | Merci dors et déjà pour toutes les excellentes discussions à venir et je vous remercie de votre compassion pour mon français moins que parfait: ma langue de naissance est le mandarin et j'essaie de m'enseigner mais c'est très compliqué ! |
|
| |
|
| * '''configs''' : contient les fichiers de config ; générer les versions utilisées à l'aide du Makefile [non encore implémenté]
| | Au plaisir! |
|
| |
|
| * '''htdocs''' : les fichiers 'initiaux' et statiques :
| | Monique |
| ** 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)
| |