[Cette page regroupe les idées/dicussions relatives à la notion de groupe de pages. Ces idées sont encore en discussion. La maturité du sujet est faible.]
Pour guider les développements, une synthèse sur la problématique des groupes de pages est proposée à la page
ErgonomieGroupeDePages. On y trouvera une petite étude comparative d'autres moteurs de wiki / blog et des idées de transposition possible à Wikini.
Avez vous testé ? avez vous des idées sur la gestion de groupe de pages ?
Idée de départ
Une page fait partie d'un groupe, cela permet de :
- regrouper des pages par thème, par exemple pour WikiNi : Aide, Développement ....etc
- gérer les droits d'accès au niveau d'un groupe et non plus pour chaque page, on garde bien sûr la possibilité de gérer les droits à un niveau "page".
- [idée qui m'a un peu trotté la tête dans le train aujourd'hui -- LordFarquaad] La traduction des pages !
- Dans un wiki multilingue on pourrait ainsi distinguer plusieurs versions d'une même page dans des langues différentes grâce à la notion de groupe. Je vois deux possibilités:
- soit le nom de la langue est celui du groupe, ce qui forme des liens comme ceci: Fr.PagePrincipale, En.PagePrincipale etc.
- avantages:
- toutes les pages d'une même langue sont classées dans un même groupe (Fr, En...)
- le nom de page traduite (dernière partie du nom complet) est le même que celui de la page originale, seul le groupe diffère
- inconvénients:
- les sous-groupes sont "recréés" dans chaque langue (Fr.Groupe1, En.Groupe1...)
- beaucoup de pages risquent d'appartenir au groupe de chaque langue, sans que ça n'ait véritablement d'utilité...
- Le nom du groupe principal est une abbréviation de deux lettres, ce qui n'est pas un MotWiki
- soit le nom de la page originale est celui du groupe, et les traductions forment des sous-pages: PagePrincipale donne PagePrincipale.En, PagePrincipale.De etc.
- avantages:
- toutes les traductions d'une même page sont classées dans un même groupe (le nom de la page traduite)
- l'action listant toutes les pages d'un groupe pourrait alors servir aussi à lister toutes les traductions d'une page
- les noms me paraissent plus clairs (PagePrincipale.En plus clair que En.PagePrincipale)
- inconvéniants:
- le "nom" de la sous-page est une langue: PagePrincpale.En serait vue comme une sous-page du groupe PagePrincipale, dont le nom est "En"
- le moteur de WikiNi pourrait cependant gérer cela en supposant que si le nom d'une sous-page est constitué de deux lettres, alors c'est une traduction. Dès lors il considèrerait que le nom effectif est bien PagePrincipale, et modifierait l'affichage en conséquence (titre de la page, liens automatiques...)
- cela a tout de même un sens puisque en fait cette sous-page appartiendrait au groupe de page traduite depuis la page originale (nom du groupe)
- Une ou plusieurs actions (ou le moteur) pourraient alors se charger de lier les pages entre elles (notemment en recopiant dans chaque traduction les liens vers les autres tradutions, à l'instar de WikiPedia et de ses bot (voir WikiPedia:Aide:Lien_inter-langue)
- Je suis plutôt pour la deuxième possibilité, qui me paraît plus logique. -- LordFarquaad
- ?
Il me semble important - si les groupes sont créés - de réaliser un système de groupe à plusieurs niveaux et d'inclure la gestion de groupe de pages dans
WikiNi.
En effet l'un des points faibles de
WikiNi est la faible visibilité de la structure pour l'accès à l'information. Or cet élément est un point essentiel pour créer un site qui soit géré avec une vraie structure éditoriale. Actuellement si l'on met à plat un site
WikiNi, c'est une structure anarchique qui apparait de la
PagePrincipale à la dernière page créée, avec les groupes on se retrouve avec une structure plus itérative (type Mandelbrot) avec des bras (ou axes) définissant visuellement la structure éditoriale du site.
- oui, je dois dire que plus les idées viennent, plus j'ai envie de voir cette fonctionnalité intégrée dans WikiNi, car actuellement rien n'incite à former ce genre de structure, contrairement à d'autres moteurs de WiKi (comme WikiMedia?). Vu la simplicité de mise en oeuvre (pour mon idée du moins), je vais en faire part à la mailing-list d'ici quelques jours afin d'avoir l'avis des autres développeurs. -- LordFarquaad
Insérer ce type de structure permettra d'ordonnancer l'information mais aussi d'offrir plusieurs type de visualisation de l'information contenue dans le site
(c'est, il me semble le but d'un site que d'offrir du contenu pour les autres et pas que pour soi!). Il serait possible ainsi sur un groupe de rassembler toutes les pages du groupe dans une seule page (pour un export par exemple) ; où de réaliser le sommaire du groupe de page ; ....
- note que pour "rassembler toutes les pages du groupe" il faudrait y adjoindre une notion d'ordre, sinon le résultat risque d'être assez imprévisible... Idem pour le sommaire -- LordFarquaad
Autre point important si une structure est mise en place il est important d'associer cette nouveauté avec la visualisation au sein de la page du chemin d'accès à cette page (ex. : accueil / sujet1 / groupe1 / sous-groupe5 / page9) avec raffinement important la possibilité de remonter aisément d'un niveau dans la structure hiérarchique de l'information.
- oui, c'est cette idée que je voulais exprimer dans la première des fonctionnalités que j'ai suggérées (voir mon idée ci-dessous) -- LordFarquaad
--
Xf75013
Idées de développement
(les discussions se trouvent plus bas dans la page)
Il doit être possible de gérer les groupes de pages dans
WikiNi sans tout modifier et en particulier sans ajouter de table à la base de données. Voici mes réflexions sur le sujet :
- Le nom complet d'une page sera NomDuGroupe.NomDeLaPage et c'est ce nom qui sera stocké dans la base de données.
- La page NomDuGroupe.NomDuGroupe servira de page d'accueil pour le groupe.
- Les droits de la page NomDuGroupe.NomDuGroupe seront les droits par défaut des pages du groupe. Chaque page pouvant avoir des droits propres.
- Les références à des pages du WikiNi dans une page devront indiquer le nom du groupe de la page, sinon, la page référencée sera considérée comme appartenant au même groupe que la page courante :
- Une page Groupe1.Page1 contenant simplement une référence à Page2 fait en fait référence à la page Groupe1.Page2
- Une page Groupe1.Page1 voulant référencer une page d'un autre groupe doit l'indiquer explicitement : Groupe2.Page1 par exemple
- L'affichage de la page pourra ou non contenir le nom du groupe :
- Groupe1.Page1 affichera Groupe1.Page1
- Groupe1/Page1 affichera Page1
- Toutes les pages devront appartenir à un groupe. Il existe un groupe par défaut dont le nom est indiqué dans le fichier de configuration.
- Pour des raisons de compatibilité avec les anciennes versions de WikiNi, la gestion par groupe devra être une option de configuration.
Détail sur la gestion des droits d'accès
Une page d'un groupe aura les droits d'accès de la page d'accueil de son groupe, mais ces droits ne seront pas stockés pour cette page. Seuls seront stockés les droit spécifiques d'une page. L'intérêt réside dans la possibilité de changer d'un seul coup les droits de toutes les pages d'un groupe. Pour récupérer les droits d'une page il faudra donc :
- Lire les droits de la page.
- Si ces droits sont inexistants, alors lire les droits de la page d'accueil du groupe et utiliser ces droits comme droit pour la page.
- Les droits d'une page peuvent être partiels. Par exemple, on pourra modifier les droits en écriture d'une page, les droits en lecture et commentaire restant ceux du groupe.
--
GarfieldFr
Vous trouverez
ICI une version de
WikiNi supportant la gestion des groupes de pages. A noter les différences suivantes avec ce qui est écrit plus haut :
- le nom d'un groupe n'a pas besoin d'être un mot wiki, il doit simplement commencer par une majuscule
- une page appartient obligatoirement à un groupe, je n'ai rien fait pour la compatibilité avec la version sans groupe (mais c'est faisable)
- je n'ai pas testé l'impact sur les actions.
Cette version n'est pas destinée à être utilisée en production, c'est un essai pour voir comment faire et ça marche. Il reste à débattre de l'exactitude de cette conception.
--
GarfieldFr
- Mes idées reprennent en grande partie celles de GarfieldFr mais créent quelques conflits qui font que beaucoup de choses devraient être changées. Je préfère donc constituer une nouvealle liste, ce qui me paraîtra plus clair.
- Mon objectif reste le même: gérer les groupes de pages dans WikiNi sans tout modifier et en particulier sans ajouter de table à la base de données.
- J'introduit cependant une nouvelle idée: celle de "sous-page". Une sous-page est une page dont la nomination est la suivante: (notation EBNF)
- <sous-page> ::= <page> | <page> "." <sous-page>
- <page> étant un nom de page tel que défini dans WikiNi
- un groupe de pages est donc un ensemble de sous-pages d'une même page. Le nom du groupe est la partie située avant le dernier point ("."). S'il n'y a pas de point, la page n'appartient à aucun groupe (c'est à dire normalement toutes les pages existantes avant la mise en ouvre de cette fonctionnalité)
- Le nom complet d'une page sera donc soit NomDeLaPage soit NomDuGroupe.NomDuSousGroupe.(etc).NomDeLaPage et c'est ce nom qui sera stocké dans la base de données. Il n'y a pas de restriction sur la profondeur des groupes de pages
- La page NomDuGroupe servira de page d'accueil pour le groupe.
- Les droits des sous-pages de NomDuGroupe pourront éventuellement être les droits par défaut des pages du groupe (à déterminer, peut poser problème car le créateur de NomDuGroupe n'est pas forcément le même que celui de NomDuGroupe.NomDeLaPage) Chaque page pouvant avoir des droits propres.
- Les références à des pages du WikiNi dans une sous-page devront indiquer le nom du groupe de la page, sinon, la page référencée sera considérée comme de simples pages :
- Une page Groupe1.Page1 contenant simplement une référence à Page2 fait en fait référence à la page Page2
- Une page Groupe1.Page1 voulant référencer une page du même groupe doit donc l'indiquer explicitement : Groupe1.Page2 par exemple
- (ceci est obligatoire sinon WikiNi ne saura distinguer quels sont les liens vers de simples pages de ceux qui sont des liens vers des pages du même groupe...)
- Une syntaxe spéciale ou une action pourrait éventuellement permettre de créer des liens vers d'autres pages du même groupe sans écrire leur nom complet
- L'affichage de la page devra contenir le nom du groupe :
- Groupe1.Page1 affichera Groupe1.Page1
- Groupe1/Page1 affichera Page1
- en conflit avec les handlers
- Toutes les pages devront appartenir à un groupe. Il existe un groupe par défaut dont le nom est indiqué dans le fichier de configuration.
- Une page appartiendra ou non à un groupe, selon son nom.
- Pour des raisons de compatibilité avec les anciennes versions de WikiNi, la gestion par groupe devra être une option de configuration.
- aucun problème de compatibilité:
- les pages existante avant l'instauration des groupes de pages n'auront pas de groupe
- le groupe est défini à sa création, suivant le nom de la page
Il n'y a pas grand chose à modifier dans
WikiNi pour mettre cela en oeuvre:
-
ce qu'il faut implémenter (ou modifier):
- autoriser les noms de pages contenant un point (actuellement interdit, même en forçant le nom dans l'url)
- permettre les liens vers des pages contennant un point dans les liens forcés (actuellement cela crée un lien externe)
- proposer un syntaxe simple pour créer les liens automatiquement vers les sous-pages (actuellement, seuls les MotsWiki créent des liens automatique, ils faut donc permettre le point dans les mots wiki)
A noter que rien ne force l'utilisation du point (qui d'ailleurs n'apporte pas vraiment l'idée de sous-pages ou de groupes). D'autres carractères pourraient peut-être s'avérer plus explicites, par exemple: le ">" (cependant il sera urlencodé donc on ne le verra pas dans le titre), le tiret "-", le trait de soulignement "_", le tilde "~" (peu pratique à introduire), la barre vertivale "|" ou encore d'autres... Il est préférable d'utiliser des carractères peu utilisés mais simples à introduire puisqu'ils doivent être introduits dans du texte.
-
fonctionnalités suggérées
- rendre possible de cliquer sur le nom des pages parent dans le nom de la page apparaissant en haut à gauche
- les liens créés auraient comme texte uniquement le nom de la page et pas ses groupes, par exemple:
- GroupeA.GroupeB.Page1 ou [[GroupeA.GroupeB.Page1]] auraient comme texte du lien Page1 (donc équivalent à [[GroupeA.GroupeB.Page1 Page1]])
- créer une action capable de lister toutes les sous-pags d'une page, éventuellement sous forme d'arborescence (à l'instar de l'ActionListPages)
--
LordFarquaad
-
Implémentation
- Ceci a été implémenté par VirtualDust, voir GestionDeGoupeDePagesSolutionVirtualDust?
Discussion des idées
Discussions sur l'idée de GarfieldFr et son implémentation
Bonjour, pour essayer (18/3/2005) cette contribution sur FREE, j'ai dû mettre en commentaire, dans wakka.php, la ligne "session_start();" pour accéder aux pages wiki (plusieurs avertissements commençant tous par "Warning: session_start(): "). Par la suite j'ai constaté qu'il suffisait de créer un répertoire appelé "sessions" à la racine du site, ce qui évite de modifier wakka.php et peut-être aussi des dysfonctionnements (que j'aurais eus en supprimant la ligne "session_start(); ? [oui --
CharlesNepote])
Et les fichiers sont peut-être à placer à la racine du site, non dans un sous-répertoire, que j'avais créé comme pour "spikini" (wikiNi adapté pour Spip).
ça marche bien, mais les "derniers changements" donnent accès à toutes les pages Wiki.
Faut-il faire en plus les modifs signalées à :
http://www.wikini.net/wakka.php?wiki=ACLGroup ?
NB. J'ai parcouru la page
http://www.wikini.net/wakka.php?wiki=DiscussionsGroupesDUtilisateurs , dont il semble que la dernière version date du 7 mars 2005, mais je ne sais pas finalement ce qu'il faut faire pour restreindre l'affichage des pages Wiki au seul groupe de la page affichée (aquand on clique sur Derniers Changements).
Merci de me donner quelques indications, qui devraient être utiles aux autres lecteurs de cette page.
--
MdeBeaumont
PS. Au passage j'ai constaté que le nom du groupe ne doit pas contenir de tiret (sinon pas de création de groupe) ; mais que si le nom choisi permet la création d'un groupe, le même nom avec des casses différentes à l'intérieur (minuscule au lieu de majuscule) donne le même groupe.
- Attention : ce sujet n'est pas à maturité et il est possible que tu n'obtiennes aucune réponse étant donné son caractère purement prospectif -- CharlesNepote
- Est-ce que la notion de "catégorie" de pages serait plus "mûre" ? je crains que non puisque j'ai vu encore moins de contributions là dessus, mais peut-être est-ce plus facile et plus limité comme conséquences (négatives, comme des bugs), puisqu'il ne s'agit que d'un ajout et non d'un changement dans ce qui existe déjà ? -- MdeBeaumont
- Si l'affichage de la page ne contient pas le nom du groupe, comment connaître son nom complet, nécessaire pour construire un lien vers elle provenant d'un autre groupe ?
- Wacko adopte la vieille notation dos nom1/nom2/nom3 et ../
Nom5? etc notation plus familière puisque subie depuis longtemps ;-)
- Pourquoi ne pas imposer que le nom du groupe soit lui aussi un nomWiki ? pour garder l'homogénéité et éventuellement pouvoir y aller directement...
- A part ça j'y vais voir....--
FidelioEspoir
- La syntaxe avec . ou / ne concerne que la texte de la page, le groupe de la page courante s'affiche dans le nom de la page dans l'entete.
- Je supporte la même notation que Wacko mais avec un seul niveau de groupe. La notation . ou / ne concerne que l'affichage. dans un cas, le texte du lien comporte le nom du groupe, dans l'autre cas non.
- Le nom du groupe est un nom wiki puisque il doit y avoir une page "de groupe" racine du groupe.
--
GarfieldFr
...Je reviens de Wikini-groupedepage ;-) Mon erreur provient du lien entre les pages : Le groupe y est un lien d'appartenance. Un nouveaunom sans mention d'un groupe le fait appartenir au groupe de la carte où sa création est décidée. La mention expresse d'un groupe : nomdugroupe.nomdelanouvellecarte créé une page portant le nom et appartenant à ce groupe. Si le groupe n'existe pas auparavant, il est ainsi créé. Le groupe choisi n'est pas nécessairement un nomWiki, il peut donc être "nommé" sans être créé en tant que page. Si j'écris une carte PremierEssai.ChapitreUn.Introduction il n'y a pas construction d'un groupe
ChapitreUn? appartenant au groupe PremierEssai. Si j'écris sur PremierEssai.PageUne, le nom PremierEssai.PageUne.AlinéaUn , il ne m'est pas proposé de créer une page AlinéaUn appartenant à un groupe PremierEssai.pageUne.
Il s'agit donc,
si j'ai bien compris, d'un regroupement d'appartenance sur un seul "échelon", sans transitivité, et non pas d'emboîtements, d'inclusion successive. Mon erreur repose sur la confusion entre la notion non transitive de groupe proposée, avec le modèle épistémologique que j'utilise qui repose sur une combinatoire de dé/composition successive, plus apte,
amha, à représenter le réel et les divers niveaux de connaissance qu'il est possible d'en acquérir...
C'est donc un problème de choix.... --
FidelioEspoir
Heu...si tu le dis ;-) ( surchauffe de la tête à
GarfieldFr ... qui n'a plus l'habitude de trop réfléchir depuis la fin de la fac)
Oui, en effet, il n'y a qu'un seul niveau de groupe. Donc PremierEssai.ChapitreUn.Introduction ne fonctionne pas. Comprend bien que c'était juste un essai pour voir comment inserer une gestion de groupe de pages dans wikini. Il est tout à fait possible de créer un système de groupe à plusieurs niveaux et il serait peut être souhaitable de le faire, mais je ne m'engagerais dans cette solution que s'il est décidé par la communauté d'inclure la gestion de groupe de pages dans
WikiNi et une fois les besoins définis. Par contre, tu peux regarder le code que j'ai modifié et le modifier pour intégrer une gestion de groupe de pages complet. L'idée principale étant qu'un groupe est défini par une page NomGroupe.NomGroupe et que les droits accordé sur cette page sont ceux accordé sur l'ensemble des pages du groupe sauf modification sur une page particulière. --
GarfieldFr
Merci...mais je suis un débutant de php ! j'essayerai ! ;-) j'ai pensé à une autre solution que j'ai déjà vu quelque part dans un wiki ?? un cms ??? pas moyen de mettre la main dessus. C'est une action qui donne tous les nomswiki ayant le même début ou la même fin. J'ai fait des recherches sur lien-voisin et...rien trouvé. Bon ça permet de regrouper les pages en leur donnant le même début ou la même fin.Genre : PierreAmi, PierreCopine, PierreVoiture, PierreEnfant.....ou GarfieldHier, GarfieldAujourd'hui, GarfieldDemain, ou.... ;-) Je finis en te disant que ton "juste un essai" fonctionne très bien --
FidelioEspoir
J'ai regardé l'action textsearch. Elle fait appel à Fulltextsearch($phrase). Ca m'a sérieusement inspiré la façon de trouver tous les noms commençant par $phrase. Pour cela il faut :
ATTENTION NON VERIFIE par pro-php-iste
- modifier le fichier waka.php et lui rajouter :
function nomdebutsearch($phrase)
{
$mot = $phrase.'%';
return $this->LoadAll("select * from ".$this->config["table_prefix"]."pages where latest = 'Y' and tag like ('".mysql_escape_string($mot)."')");
}
- créer le fichier action/nomdebutsearch.php en dupliquant action/textsearch et en y modifiant "Ce que vous souhaitez chercher" par "Nom commençant par..." et "
FullTextSearch" par "nomdebutsearch".
Comme toute action, il suffit ensuite d'écrire dans une page
{{nomdebutsearch}} pour obtenir toutes les pages dont le nom commence par les lettres indiquées.
Ceci permet donc de retrouver toutes les pages groupées comme Recent... Action....
Est-ce que cette solution ne serait-elle pas plus simple. C'est une convention intuive. Elle permet d'utiliser l'idée de groupe sur plusieurs niveaux.
Je ne sais pas quoi ajouter. Peux-t-on modifier wakka.php ? Faut-il mieux rapatrier la fonction dans le script même de l'action ?
Ma proposition est-elle utile ?
Ne devrait-on pas intégrer toutes les recherches dans une même fonction , dans une même page recherche ?
- Je suis trop près de ce premier php-exploit ;-) pour en peser toutes les conséquences sur Wikini. A vous la balle !
- -- FidelioEspoir
- Ouhlà, doucement pour les ajouts de fonctions dans le moteur du Wiki ! :-) Tout d'abord tu pourrais tres bien créer une action {{NomDebutSearch}} qui ferait directement appel à la méthode LoadAll. Ensuite il faut savoir qu'on réfléchit déjà à la possibilité de faire des sélections de pages selon des masques, voir la FonctionDeSelectionDePage. Une fois cette sélection mise en place, tu pourrais alors faire des recherches de pages commençant par un masque dans la plupart des actions existant déjà. -- ProgFou
En bon débutant-php, j'ai voulu mettre la fonction dans sa classe. Rien de plus facile que de supprimer l'appel par le contenu de la fonction. Ce qui facilite la maintenance puisque nous nous retrouvons dans un cas simple d'action, modularité oblige. C'est fait et ça marche ;-)) Quant à la
FonctionDeSelectionDePage , j'avoue l'avoir survolée, l'ayant jugée encore trop abstraite (trop pro) pour moi.
J'ai poursuivi la logique jusqu'au bout, actions : debut, fin, nomdebutantpar, nomayant, nomfinissantpar
J'essaierai de détacher la liste obtenue de la page qui la présente pour pouvoir commencer à créer les scripts d'algèbre conceptuelle (A inter/union/div B). cela risque de poser la necessité de mémoriser les résultats...à voir... --
FidelioEspoir
La notion de groupe de page peut aussi s'entendre sur son contenu lui-même. Un groupe de page serait des pages ayant même aspect. Mais les deux notions ne sont pas superposables. Par contre, la notion d'aspect, de format de page peut être intéressante (elle le devient vite sur mon
site. Serait-il possible lors de la création d'une page, de demander à l'utilisateur s'il désire tel ou tel format. Cela sous-entend la construction de fichiers de format ( :-( lourd ou, mieux de pages "format". A y penser rapidement : une action "formater" ? suffirait (?!?). -- --
FidelioEspoir
- Cela rejoindrait plutôt la notion de feuille de style par page vu que le format d'une page est en principe défini par une feuille de style, donc ce serait à relier à l'idée de FeuillesDeStyleMultiples. -- ProgFou
Oui, si l'on lie la feuille de style à un contenu. Mais Je pense qu'il faut toujours être homogène et séparer contenu et contenant. Ma feuille d'impôt change de couleur chaque année, c'est dû à une feuille de style. Ici je change de formulaire, de forme de page selon le groupe de sens qu'elle illustre : une spécialisation de pages en quelque sorte. Nous le faisons déjà en définissant une page "utilisateurs", une page "derniers changements"...Ces pages sont construites en créant la page, puis en y mettant une ou plusieurs actions. Je songeais simplement à pouvoir paramétrer cette construction, en généralisant cette procédure, pour permettre de créer par exemple, des pages "questionnaires", des pages "galeries de photos", des pages..... La spécialisation actuelle des pages est "au main du webmestre". Les paramétrer ( laisser l'utilisateur définir la structure du "body" ) serait poursuivre la..."wikinisation" !!! ;-)) Ce n'est pas un choix simple --
FidelioEspoir
A me relire , j'ai l'impression qu'en terme technique, ce serait de pouvoir paramétrer le choix du handler pris en compte pour créer une page...--
FidelioEspoir
- Pourquoi pas... J'y pensais aussi pour d'autres problèmes : pouvoir manipuler différents types d'objets et pas seulement des pages. Les questionnaires pourraient effectivement être considérés comme un autre type d'objet et donc manipulé par un autre handler. En revanche le choix du handler n'est pas sensé être laissé à l'utilisateur : celui-ci ne devrait choisir que le type d'objet à créer et non le handler qui est un paramètre technique. -- Progfou
Tout à fait d'accord ! Laissons l'Handler créé la page : c'est son boulot. A l'utilisateur de demander que la page contienne du texte (ok c'est fait), des actions (ok, c'est fait), et des objets ( questionnaire, appeler un logiciel x de dessin et intégrer le résultat à la page, mon rève : faire un croquis dans un wiki !....).--
FidelioEspoir
Discussions sur l'idée de LordFarquaad
Ton idée est pas mal et plus aboutit que la mienne. D'un point de vu syntaxe, je pense que la notation avec un point est la plus simple à utiliser.
- En effet cette notation est très simple cependant elle présente tout de même comme inconvéniant qu'un simple oubli d'espace créerait un mauvais lien, par exemple:
- "Ceci est la PagePrincipale.Vous pouvez tester le wiki dans le BacASable blablabla..."
- et hop ! on a créé un lien vers PagePrincipale.Vous. Bon évidemment comme d'habitude il faut faire attention à respecter la syntaxe mais peut-être qu'il y a des gens qui ont l'habitude de ne pas mettre d'espace ou des wikis dans lesquels ce genre de cas de figure se présente souvent, d'où le problème... -- LordFarquaad
Par contre, je serais plutôt d'avis de faire:
- Une page Groupe1.Page1 contenant simplement une référence à Page2 fait en fait référence à la page Groupe1.Page2
- Une page Groupe1.Page1 voulant référencer une page d'un autre groupe doit donc l'indiquer explicitement : Groupe2.Page1 par exemple
- Mon idée autorise de créer des pages n'appartenant pas à un groupe (toutes les pages existantes avant la mise en place des groupes de pages seraient d'ailleurs considérées comme sans groupe). Par conséquent il faut laisser la possibilité de faire des liens vers de telles pages. Si on applique ce que tu proposes, il faut une nouvelle syntaxe pour faire référence à une page qui s'appèlerait simplement Page2 (sans groupe). Cette nouvelle syntaxe forcerait des modifications des liens en cas de changement de groupe d'une page (ou en cas d'inclusion d'une page dans un groupe alors qu'elle n'en possédait pas avant)
- Une page GroupeA.GroupeB.Page1 voulant référencer une page GroupeA.GroupeC.Page2 peut le faire en écrivant GroupeC.Page2
- Dans ce cas comment va faire le moteur de WikiNi pour savoir si ce n'est pas un référence simplement à GroupeC.Page2 ou encore à GroupeA.GroupeB.GroupeC.Page2 ?
En effet, je pense que au sein d'un groupe de pages, on fait plus souvent référence à des pages du même groupe qu'a des pages de groupes différents.
De même on fera probablement plus souvent référence à des pages de la même arborescence de pages qu'à des pages d'une arborescence complètement différente.
--
GarfieldFr
- Probablement mais il me semble que cela crée beaucoup d'ambigüités qui, au final, risqueront de réduire la clarté, sans compter la difficulté d'implémentation... (et peut-être d'autres problèmes auquels on ne pense pas encore...). Je trouve qu'il est préférable de faire toujours des références absolues qui ne laissent aucun doute sur le sens, plutôt que des références relatives qui posent problème en cas de déplacements, inclusions.
- Par contre, ce qui serait tout à fait possible de faire sans poser de problème c'est que les les liens automatiques aient pour texte uniquement le nom de la page, sans ses groupes, c'est à dire que:
- GroupeA.GroupeB.Page1 ou [[GroupeA.GroupeB.Page1]] afficheraient comme texte du lien Page1 (donc équivalent à [[GroupeA.GroupeB.Page1 Page1]])
- Quant à la propriété title, elle afficherait le nom complet (reste encore à intégrer la balise title pour les autres liens d'ailleurs...) -- LordFarquaad
Je viens d'avoir une idée qui me parait assez intéressante comme solution liens vers des sous-pages: puisqu'on utiliserait les points comme séparateurs de noms, il suffirait d'utiliser un point au début du nom afin d'indiquer si un fait référence à une sous-page ou non ! A l'intérieur d'une page
GroupeA.GroupeB.Page1, il pourrait donc y avoir deux types de liens:
- ceux qui commencent par un point indiquent une sous-page (de même niveau), en quelques sorte des adresses relatives:
- .Page2 fait référence à GroupeA.GroupeB.Page2
- .GroupeC.Page3 fait référence à GroupeA.GroupeB.GroupeC.Page1 (ou alors il faut compter les points afin de remonter d'autant de niveaux dans le groupe actuel...)
- ceux qui ne commencent pas par un point indiquent une page normale, ce qui conserve la compatibilité avec les liens actuels, en quelques sorte des adresses absolues:
- Page2 fait simplement référence à Page2
- GroupeC.Page3 fait simplement référence à GroupeC.Page3
Le seul problème de compatibilité serait dans le cas où un wiki présenterait des points suivis de
MotsWikis?, comme ceci:
Bienvenue sur notre site.PagePrincipale. En principe ça devrait être assez rare car c'est une faute typographique d'une part, et d'autre part une phrase commence rarement par un
MotWiki... --
LordFarquaad
NB.: penser à établir une suite de
CasDeTestDeWikiNi pour ça, si on l'implémente --
LordFarquaad
Petite idée pour la hiérarchisation de pages : Supposons que l'on créer la page
PageMere1.Page1 mais que
PageMere1 n'existe pas. Dans ce cas, il est nécessaire que la création d'une page entraine la création de sa page parent si elle n'existe pas, avec un contenu par défaut (un contenu intéressant est l'arborescence de sa descendance). --
VirtualDust
- Bonne idée, pour cela il suffirait d'utiliser une action générant l'arborescence, à la manière de l'ActionListPages -- LordFarquaad
- Plus simple (et cohérent) : modifier ActionListPages en ajoutant un paramètre children (mis en oeuvre dans mon test WikiGroupes) -- 30-10-05 VirtualDust
- Attention: l'ActionListPages doit évoluer prochainement (en fait j'ai encore quelques petites modifs à faire et je l'intègre au CVS). Voir PropositionsDEvolutionDeLActionListPages -- LordFarquaad
- L'intégration ne devrait pas poser problème, étant donné qu'il s'agit d'un simple bloc else if {...} supplémentaire (à moins qu'il y ai une refonte générale du fichier). J'ai intégré la création des pages parents manquantes dans mon wiki de test. Cela fonctionne parfaitement. Il s'agit d'une simple addition de code à la fonction SavePage. -- VirtualDust
- En fait il y aura refonte complète... Mais à mon avis ça devrait aller quand même pour l'intégration. -- LordFarquaad
Une autre idée, à propos des utilisateurs cette fois-ci. A priori, un utilisateur pourra s'identifier sous un nom du type
ToTo.TiTi. Je pense qu'il sera utile de restreindre à un nom wiki simple (
ToTo) au moment de la création. Par contre, ils peuvent tous être regroupés dans la page parent
UtilisateurS, qui les liste. Egalement, la page
ToTo peut exister, mais est automatiquement créée et redirigée vers
UtilisateurS.ToTo. Ensuite, libre à l'utilisateur de créer ses propres pages "personnelles" dans l'arborescence de son identifiant (
UtilisateurS.ToTo.MaPage) --
VirtualDust
Allez, ça fait deux jours que j'y réfléchi, il fallait bien que je ponde quelque chose :p. Si ça vous intéresse, c'est sur
WikiGroupes:PagePrincipale (interwiki). Il y a aussi les sources modifiées (à partir de la version 0.4.3). Mais tout est expliqué là-bas. --
VirtualDust
- Honnêtement, j'aurais bien voulu le faire moi-même ;-) Mais bon comme ça c'est fait, tant mieux :-) Je dois dire que je suis assez impressionné car ça correspond exactement à ce qui est décrit ici (il me semble), avec en plus l'ajout de la syntaxe avec les .. pour remonter vers les pages ancêtres. Ce qui manque probablement c'est une classe CSS dédiée à cela pour indiquer le type de lien: même niveau, enfant, parent, autre. Peut-être pourrait-on aussi ajouter les liens vers le parent et la page courante qui ne fonctionneraient qu'avec la syntaxe spéciale [[..]] et [[.]]... (Ou alors une action peut-être, genre {{parent}}). Le deuxième n'est peut-être pas très utile mais en tout cas je pense que le premier le serait...
- Juste un détail: ce serait sûrement préférable de te baser sur la version en cours de développement (voir DepotWikiNi) afin de simplifier son intégration à WikiNi.
- Qu'en est-il des pages inclues ? Et des redirections ? Je crois que pour traiter ces questions tu n'as pas le choix: c'est la version CVS qui apporte d'importantes corrections à ce niveau (niveaux d'inclusions & résolution d'un problème de redirections circulaires) -- LordFarquaad
- Tout à fait d'accord. La version CVS s'impose désormais. Il serait dommage d'avoir tout à refaire. J'y regarde et je vous tiens au courant. Et désolé de t'avoir devancé pour l'implémentation de l'idée, mais elle va vraiment me servir, alors je ne pouvais plus attendre :p
- Pas de problème, continue comme ça ;-) De toute façon j'ai pas trop de temps en ce moment donc ça tombe bien :-) -- LordFarquaad
- Et voilà pour la maj sur la version CVS (30-10-2005 16h48) (même lien). Ne reste plus qu'à intégrer les groupes à toutes les fonctionnalitées existantes... L'état de mes majs sont sur mon wiki de test. -- Virtual Dust
Je débarque un peu dans cette discussion, J'ai lu toute la page avant de poster mes impressions/idées autour de cette gestion de groupe de pages. Je dois dire que la première idée ne me plaisait guère : une page appartient forcement à un groupe ... C'est trop contragnant. Par contre, la deuxième proposition (par
LordFarquaad) me plait vraiment. elle est simple et souple.
- Pour la séparation des groupes/pages, le "." est le meilleur signe de pnctuation je trouve (le "/" étant déjà utilisé par les handlers)
- Pour les liens relatif, il est clair qu'il faut trouver un moyen, un utilisateur qui est dans la page Page1 du sous sous groupe SSGroupe3 du sous groupe SGroupe2 du groupe Groupe1 qui veut faire pointer une page Page2 de la même arboréscence ne doit pas avoir à tout taper ... L'idée de mettre un "." en début de lien .Page1 qui veut dire qu'on pointe vers la même arborescence est très bonne je trouve. Personnellement, j'aurais plus vu un "~" (cf Linux) mis ça risquerai de perdre l'utilisateur.
- une question autour des droits hérité : soit un groupe Groupe1 appartenant à un utilisateur User1. Si un utilisateur User2 créé une page Groupe1.Page2 (en adméttant qu'il a le droit de le faire), et qu'il laisse les droits par défauts. Ces droits sont ceux défini par User1. Mais si User2 redéfini les droits de la page, la page sera alors contrôler par User2, ça voudrait dire qu'une page qui a un propriétaire aurait quelque part un groupe propriétaire (composé des propriétaires du groupe de la page). Bon, en fait, c'est pas une question mais plus une réflexion. Je me rend compte qu'en la mettant à plat, cette modélisation me plait de plus en plus.
- ou en est le dévelloppement ? y'a t'il besoin d'aide ?
JulienLanglois - 2006-10-14
- En fait les discussions ont plutôt lieu de côté de ErgonomieGroupeDePages, lancé recemment par JmPhilippe. Cette page a au départ donné lieu à des idées/solutions d'implémentation, sans pour autant réfléchir au préalable à la définition précise du besoin. Au stade où on en est, cette page constitue toujours une solution (théorique), mais il faudrait en proposer d'autres, et faire ensuite un vote (dans ErgonomieGroupeDePagesVoteFonctionnalites) -- LordFarquaad
Je ne sais pas trop si cette suggestion est à sa place ici. Si ce n'est pas le cas merci de m'indiquer où la mettre ! Ceci est d'ailleurs symptomatique de la difficulté pour quelqu'un qui n'a pas suivi la création du site de savoir comment s'y retrouver. En fait, ce que j'aimerais, c'est pouvoir inclure des mots clefs sur les pages et avoir une action qui permette d'extraire et de lister les pages contenant ce mot clef. Peut-être cela existe-t-il déjà ? L'intérêt c'est qu'une même page peut ainsi se trouver dans plusieurs groupes. Ce que je reproche à la hiérarchisation en dossiers et sous dossiers c'est qu'elle fige à priori le classement, au moment de la création de la page. Or une page évolue en fonction des gens qui y interviennent, des idées qui s'y développent. Si une nouvelle catégorie de page prend de l'importance et qu'on veut lister toutes les pages en rapport avec ce thème, il suffit d'ajouter un mot clef sur les pages concernées pour créer la catégorie. En pratique, il faudrait pouvoir ajouter les mots clefs en mode édition avec une balise signalant que ce sont des mots clefs et créer une action qui n'extraie que le contenu ainsi balisé des pages. --
MisAnge
- Excellente définition (je ne sais pourquoi je ne l'ai lue plus tôt : un usage parfait pour les Mots-clé basés sur les triplets de LordFarquaad --JdX
- est t'il prévu de créer une version avec css unique pour chaque groupe
pour cela je propose que le wikini charge NomDuGroupe.css voir même NomDuGroupe.NomDuSousGroupe.(etc).css
-
KleE -
PageSuivieParGarfieldFr
LordFarquaadASuivre