[Optimisation] Generale : étudier chaque select * pour les réduire.
Déroulement de wakka.php
Fonctions wakka.php
- LoadSingle [Optimisation] ne pas faire la requête sur la totalité
- LoadPage : recherche d'une page dans la table pages
- [Optimisation] : a t on toujours besoin d'un select * ?
- SavePage :
- sauvegarde d'une page,
- récuperation de l'utilisateur,
- vérification si privilège en écriture pour la page (si la page est nouvelle, alors utilisation des acl par défaut, ca permet d'empécher toute creation de nouvelle page ou d'autoriser seulement certaines personnes ...! en jouant sur default_write_acl dans config.php).
- Création de la page avec les acl par defaut, l'utilisateur connecté et le contenu (body).
- Si la page est un commentaire, pas de droit en écriture !
- Archivage de l'anciennes version (latest -> N).
- PurgePages (>= WikiNi 0.4.1) : permet de supprimer toutes les pages plus ancienne que (J - [valeur de la variable "pages_purge_time" dans wakka.config.php])
- SetMessage : permet d'afficher un message par JavaScript.
- MiniHref : retourne page/methode. Par exemple : echo $this->MiniHref?(); donne : "NotesProgrammation"
- Href : retourne une URL d'après les arguments : "méthode", "NomDePage?", "&arguments".
- Link : formatte un lien en détectant un lien interwiki, un lien email ou http, un lien Wakka, dans ce cas enregistre dans la table des liens : linktable en SESSION chaque lien détecté.
- Par exemple :
- echo $this->Link("PagePrincipale"); donne <a href="http://monsite.org/wakkafr/wakka.php?wakka=PagePrincipale">PagePrincipale</a>
- [Optimisation] : Les 3/4 du temps cette fonction est appellé pour formatter un lien wakka ; lui préférer la fonction ComposeLinkToPage? quand on sait que la page cible existe.
- ComposeLinkToPage : retourne un lien formatté sans faire appel à la base de données (lorsque l'on sait que la page cible existe).
- Par exemple :
- echo $this->ComposeLinkToPage?("PagePrincipale"); donne <a href="http://monsite.org/wakkafr/wakka.php?wakka=PagePrincipale">PagePrincipale</a>
- ClearLinkTable : vide la variable de SESSION : linktable
- StartLinkTracking : initialise la variable de SESSION : linktracking à 1
- StopLinkTracking : remise à zéro de la variable de SESSION : linktracking.
- WriteLinkTable : écriture dans links de from_tag (page courante) et to_tag (lien détectés dans la page courante avec GetLinkTable)
- GetLinkTable : retourne la table des liens de la page : linktable
- TrackLinkTo : stockage d'un lien wakka dans la table des liens : linktable.
- Formopen / Formclose : formate un formulaire, notamment pour l'appel à la méthode POST.
- HasAccess, SaveAcl, LoadAcl : gestion des droits d'accès (Access Control Lists).
- LogReferrer : si l'utilisateur consulte la page à partir d'un lien d'un autre site, enregistre le nom de la page du lien ("referrer")
- LoadReferrers : sélectionne et compte le nombre de referrers par adresse unique
- PurgeReferrers (>= WikiNi 0.4.1) : permet de supprimer toutes les pages plus ancienne que (J - [valeur de la variable "referrers_purge_time" dans wakka.config.php])
- Format : permet de transformer un texte au format WikiNi en XHTML. echo $this->Format("=== Titre ==="); renvoie <h4> Titre </h4>
- formatters/wakka.php :
Appellé pour l'affichage de chaque page, application d'un ereg_replace sur l'ensemble de la page au moyen d'un callback.
Cf.
RealisationTechniqueDesReglesDeFormatage.
Méthodes
- handlers/acls.php :
Edition des acls, remarquer le test de $_POST pour la cinématique affichage / saisie.
- handlers/addcomment.php
Pas d'affichage, traitement puis redirection
- handlers/claim.php
Si utilisateur est connecté et pas de propriétaire, utilisation de setMessage.
- handlers/deletepage.php
suppression d'une page,
[Optimisation] redirection vers la racine ?
- handlers/diff.php et diff.orig.php
Diff d'origine et diff wakka
- handlers/edit.php :
Sauvegarde : recensement des links pour alimentation table des links, pour cela passage par une étape de formatage.
[Optimisation] : ne plus passer par ce formatage ...
[Bug] Commentinfo sur Apercu ? c'est bizarre
[Bug] Inutile de tester REQUEST[appendcomment] ..;
- handlers/raw.php
- handlers/show.php :
C'est ici que se fait l'appel à la fonction Format pour affichage et restitution à l'écran.
- handlers/xml.php