YaCS - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Histoire

Yacs fut et reste encore essentiellement développé par Bernard Paques, depuis 2001. Il décida diffuser le logiciel librement, pour bénéficier des retours d'une communauté d'utilisateurs et pour le plaisir de voir sa création utilisée. A ce jour le plus grand site motorisé par Yacs est un extranet d'entreprise, avec 4000 utilisateurs répartis dans le monde et plus d'un million de pages créées.

  • Les premières versions diffusée datent de 2004, encore en ligne aujourd'hui.
  • Deux versions majeures à ce jour, Macnana puis Martin.
  • La rencontre Chonas 2007 a soudé un noyau d'une dizaine de contributeurs au projet.
  • En 2009 Le site officiel a changé d'adresse, de yetanothercommunitysystem.com à Yacs.fr

Principes fondamentaux du logiciel

Classement du contenu

l'entité de base dans Yacs est l'article. Il est composé d'un titre (au minimum), d'une introduction et d'une description. En complément on peut aussi définir un texte de bas de page, un texte "extra -affiché généralement sur le côté des pages-, et enfin des métadonnées spécifiques à la page. Par défaut chaque membre peut ajouter une page, et effectuer les interactions suivantes :

  • Attacher des liens ;
  • Attacher des fichiers ;
  • Ajouter des commentaires ;
  • Ajouter des images.

Viennent ensuite les sections, qui offrent en plus de l'article la capacité de contenir des articles ou sous-sections. Elles servent à hiérarchiser les pages selon un classement vertical. Une section permet aussi de définir des règles ou aspect spécifiques aux pages sous-jacentes. Un article ne peut être que dans une seule section à la fois.

Les catégories permettent le classement transversal, et sont liées notamment à l'étiquettage des articles (taxinomie) ainsi que l'archivage automatique (par mois et par semaine). Un article peut être relié à plusieurs catégories, et les catégories sont hiérachisables entre-elles.

L'affichage du contenu

Lorsqu'il génère une page, Yacs prépare les données en tableaux avant de confier le rendu final XHTML au moteur graphique. Le plus courant est d'afficher les pages sur 3 colonnes :

  • main : colonne principale avec les textes de la page ;
  • side : colonne de navigation, avec par exemple un menu ou autre information présente sur toutes les pages
  • extra : colonne contextuelle, avec les commandes d'interactions, et d'autres interfaces liées à la nature et aux propriétés de la page affichée.

Ces 3 colonnes ne sont pas un canevas obligatoire, le thème graphique peut les rassembler, ou bien éclater complétement leur composants en les appelant un par un. En plus de ces 3 colonnes, Yacs peut générer automatiquement un en-tête (header) avec titre, slogan et navigation par onglet, ainsi qu'un pied de page (footer), avec liens vers les mentions légales, formulaire de contact et flux d'informations.

Administration et interactions

Dans yacs il n'y a pas de panneau d'administration dans le sens d'une interface dédié à gestion du site. Au contraire les commandes de gestion sont affichées directement sur les pages elles-mêmes (en visualisation ou en édition), suivant le contexte et les permissions du surfeur. Le composant outils affiche toujours ce qu'il est possible de faire à partir de la page courante. Une gestion de masse est disponible au niveau des pages conteneurs (les sections).

Il existe cependant un panneau de contrôle qui rassemble sous différents onglets les pages de configuration globale au serveur (le plus souvent des paramètres ajustés une fois pour toute). Aux simples membres le panneau de contrôle propose des assistants d'ajout de contenu et des informations sur le serveur.

Il y a donc 2 types de paramètres de configuration :

  • les paramétrages locaux à l'arborescence du serveur, appliqués depuis les pages elles-mêmes, et stockés dans la base de données avec des dernières;
  • les paramétrages globaux du serveur, appliqués depuis le panneau de contrôle, et stockés en fichiers PHP dans le répertoire dédié /parameters. La configuration globale peut donc être verrouillée en placant les fichiers en lecture seule.

Publication

La mise en ligne d'un article demande qu'il soit publié. La publication peut être :

  • automatique
  • manuelle, par une personne ayant les permissions nécessaire par rapport à la page (droit d'édition).
  • différée à une date
  • levée à partir d'une date

une page non-publiée n'est pas affichée aux membres non-éditeurs, cependant elle est accessible via son URL. Il ne faut donc pas confondre la notion de publication avec la notion de restriction d'accès.

La publication d'une page entraine les mécanismes suivant :

  • analyse des liens sortant sur la page (jusqu'à 7 liens), dépose d'un retrolien (trackback) sur la page du site tiers pointé (si le site tiers le permet) ;
  • envoi d'une notification vers les serveurs d'aggrégation configurés ;
  • envoi d'un email d'alerte à tous les membres qui surveillent le conteneur parent.

Si l'archivage automatique est activé, les articles sont rattachées à des catégories pour chaque mois et chaque semaine. En cas de modification de l'article, les versions successives sont conservées et peuvent être restorées.

Yacs propose 3 éditeurs pour écrire les pages : TinyMCE, FCKeditor, et textarea (HTML). On peut aussi interfacer des logiciels tiers de blogging utilisant le protocole XML-RPC, et enfin il est possible d'activer la création d'articles à partir d'e-mail lus en tâche de fond par le serveur.

Codes de formatage yacs

Les codes de formatage, ou codes Yacs sont des syntaxes particulières que l'on utilise lors de l'édition des pages pour générer un effet précis lors de sa visualisation. C'est une écriture plus simple que le HTML, mais surtout les codes yacs ne se limitent pas au formatage de texte et permettent d'appeler du contenu dynamiquement.

Les codes yacs les plus simples s'apparentent au BBcode et les plus complexes à des widgets utiles pour positionner du contenu dynamique à l'interieur des textes.

Standards, métadonnées et flux d'informations

Le moteur graphique génére du contenu valide XHTML encodé en UTF8. Si la réécriture d'URLs avec Apache est activée, chaque page dispose d'une URL canonique avec redirection automatique.

Pour chaque article, les balises méta title, description, author, publisher sont complétées automatiquement, ainsi que les balises sémantiques du standard RDF.

Yacs indique également les interfaces de pingback et de commentaires pour les mécanismes externes.

De nombreux flux d'informations sont disponibles aux formats RSS 1.0 et 2.0, ATOM, RDF et OPML.

  • fils généraux : les articles, les fichiers (permet le podcasting), les commentaires.
  • fils locaux : idem mais filtré par sections, par catégories, par profils utilisateur.
  • fils à la carte, disponible à partir d'une recherche par mots-clé sur le serveur.

Système de permissions

Yacs est un logiciel multi-utilisateurs, et requière une authentification pour que ces derniers se distinguent des simples surfeurs. L'authentification de PHP, qui est aussi celle de yacs, s'appuie sur les cookies. Elle peut cependant être déléguée à un système externe.

Yacs posséde sa propre logique d'organisation des permissions pour les utilisateurs. Partie d'une base simple, l'organisation est assez souple. Cependant elle s'est complexifiée par de nombreuses options, mais n'est pourtant pas entièrement paramétrable. Il n'est pas possible de créer son propre jeu de permissions.

Le logiciel distingue les permissions globales, définies pour un utilisateur sur tout le serveur, et les permissions locales définies en cascade à partir d'un point de l'arborescence.

Jeux de permissions globlaux

Les permissions globales se définissent à partir du profil utilisateur.

anonymes
défini toutes les personnes non-authentifiée
membres
utilisateurs standard
associés
utilisateurs avec tous les privilèges d'administration
souscripteurs
lorsque ce jeu de permission est activé, il permet de distinguer les membres confirmés de nouveaux inscrits.

Jeux de permissions locaux

les permissions locales se définissent à partir de l'élément en cours de visualisation (article ou section)

éditeurs
personnes qui ont des droits de modification et gestion sur l'élément.
propriétaire
personne unique ayant les permissions maximum sur l'élément (par défaut son créateur)
lecteurs
personnes ayant l'autorisation de lecture sur un élément privé.

La notion d'éditeur ou propriétaire de sections est plus complexe dans le fait qu'elle entraine des droits en cascade sur les éléments contenus dans la section.

Gestion multilingue

Yacs posséde actuellement une interface en anglais ou en français. Le logiciel choisie la langue automatiquement suivant les préférences du navigateur du surfeur. Le mécanisme utilisé pour les langues est i18n, Les fichiers de langues pour l'interface sont donc créés avec un logiciel tel que poedit.

Les programmeurs peuvent utiliser la fonction l18n dans leur interfaces, s'ils ne souhaitent pas la création de nouveaux fichiers.

Au niveau de contenu, Yacs permet de définir la langue d'un article. Deux articles (ou plus) avec le même surnom, mais défini comme étant de langues différentes, se substitueront suivant les préférences régionnales du surfeur.

Originalités

  • Yacs est capable d'intégrer une carte mentale dynamique de type freemind par simple dépôt du fichier (exemple).
  • Inversement, il est capable de générer un document freemind à la volée, composé des rubriques d'un site qu'il motorise : en somme, un plan de site en version mindmap exploitable hors-ligne
  • une interface permet de créer tout simplement des formulaires, en glissant les éléments à la souris
Page générée en 0.105 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise