SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 248 visiteurs en ce moment

Accueil > Squelettes > Outils pour squelettes > Organisation des dossiers à la racine d’un projet SPIP

Organisation des dossiers à la racine d’un projet SPIP

21 janvier 2014 – par Cyril Marion, RastaPopoulos

11 votes

La méthode proposée ici est d’organiser les dossiers sur le serveur d’une manière rigoureuse et reproductible (industrielle ?) permettant d’optimiser le développement, la mise en production et la maintenance d’un site SPIP.

La structure de fichiers recommandée proposée est la suivante :

racine du site
    _ plugins
        _ nom_du_projet
            _ fonctions (ou « core »)
            _ squelettes
            _ theme

Chaque dossier correspond à un plugin, distinct des autres, mais faisant partie d’un même projet.

  • Le dossier fonctions ou core contient les modifications fonctionnelles propre au site (en effet, les modifications plus génériques doivent au maximum être envoyées dans les plugins de SPIP-Zone, ou dans des sous-plugins quand on ne veut pas gêner). Cela peut concerner par exemple l’ajout de champs supplémentaires sur des tables existantes, pour les besoin de ce site là. Ce dossier n’est pas obligatoirement présent si l’on n’a pas de modifications non-génériques.
  • Le dossier squelettes contient le HTML du site, le plus sémantique possible évidemment. :)
  • Le dossier theme contient les styles graphiques qui mettent en forme le HTML fourni par les squelettes.

Ce découpage est directement inspiré de la méthodologie Z, et même si on peut ranger son projet de la sorte sans utiliser Z, cette organisation est parfaitement adaptée à un site dont le squelette serait basé sur Z-core.

Dépendances

Les dépendances des trois plugins s’organisent comme suit :

  • fonctions : le plugin fonctionnel est optionnel et indépendant. Il peut avoir d’autres dépendances fonctionnelles, mais n’a pas de dépendance avec les autres plugins du projet. En revanche s’il est présent le site ne peut pas fonctionner sans lui.
  • squelettes : les squelettes nécessite les fonctions si ce plugin est présent. En effet, lorsque c’est le cas, les squelettes vont utiliser des balises ou des objets ajoutés spécifiquement pour ce site, il y a donc dépendance.
  • theme : le thème nécessite les squelettes car le graphisme du site s’applique souvent à une structure HTML et/ou des classes CSS bien particulières à ce site, et qui sont justement définies dans les squelettes.

On a donc : fonctions nécessité par squelettes nécessité par theme.

Nommage / préfixage

Le préfixe des plugins doit être singulier, de manière à limiter les équivoques et faciliter l’activation ou la désactivation par le gestionnaire de plugins.
Ainsi, le nom du dossier « squelettes/ » sera le même que celui d’un autre projet, mais son préfixe devra être différent.

Tout comme il est conseillé sur SPIP-Zone, et même si ce n’est pas du tout obligatoire, il est préférable pour limiter les confusions de nommer le nom du dossier du projet de la même manière que le préfixe de base.

Ainsi, si le projet s’appelle par exemple « Mon super projet », alors le dossier du projet ET le préfixe de base pourrait être « msp » ou « monsuperprojet ».

Ensuite le plugin fonctions (ou core) pourrait avoir comme préfixe : msp_core,
le plugin squelettes pourrait avoir comme prefixe : msp_skel
et le plugin thème pourrait être préfixé : msp_theme.

Ce qui donnerait la structure finale suivante :

racine du site
    _ plugins
        _ msp
            _ core (préfixe : msp_core)
            _ squelettes (préfixe : msp_skel)
            _ theme (préfixe : msp_theme)

Cas d’un site complexe avec une évolution des squelettes dans le temps

Toujours dans l’analogie avec SPIP-Zone, il est conseillé de versionner le projet plugin par plugin.

En effet, au cours du temps, il se peut parfaitement que le site ne change pas du tout fonctionnellement (les champs utilisés restent les mêmes), mais que le contenu que l’on veut présenter (les squelettes) ou la manière de l’afficher (le thème) demande des évolutions. Ou inversement !

Il n’y a donc pas de liaison obligatoire entre les changements. Voilà pourquoi si l’on fait une version différente du squelette, ou si l’on change complètement le thème graphique, on versionnera à l’intérieur de ces dossiers.

Proposition de structure :

racine du site
    _ plugins
        _ msp
            _ core
            |   _ v1
            |   _ v2
            _ squelettes
            |   _ v1
            |   _ v2
            _ theme
                _ v1
                _ v2

Avantages / inconvénients

AvantagesInconvénients
rangement plus lisible, un module fait une chose et le fait bien
facilité de suivi des versions
facilité de déploiement dev->prod
maintenabilité à long terme

Dernière modification de cette page le 17 février 2014

Retour en haut de la page

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Refonte de l’identité graphique

    10 juillet – 31 commentaires

    Lors de la SPIP Party 2017 à Toulouse, un nouveau contributeur est venu nous présenter son travail sur une refonte du logo. Au delà de la refonte du logo, c’est une toute nouvelle identité graphique pour SPIP que Jordan nous propose. Voici une (...)

  • Enluminures typographiques V3

    25 juillet 2009 – 185 commentaires

    Les Enluminures typographiques V3 permettent d’ajouter au Porte plume les raccourcis typographiques présents dans le Plugin Barre Typographique Enluminée. C’est une extension du PortePlume. Pour la documentation d’usage, se reporter à celle du (...)

  • LinkCheck : vérificateur de liens

    13 février 2015 – 94 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • Serveur HTTP abstrait

    25 novembre 2013 – commentaires

    Un plugin-outil pour aider les développeurs à implémenter des API orientées REST, basées sur les méthodes HTTP (get, post, put, delete). Ce plugin a pour but premier de normaliser des URL que l’on pourra appeler pour manipuler les données du site. À (...)

  • Agenda Fullcalendar facile

    29 octobre 2016 – 33 commentaires

    Dans un précédent article, nous expliquions comment afficher un agenda Fullcalendar sur son site avec le plugin agenda. Cependant, ceci nécessite des manipulation de squelettes, ce qui n’est pas toujours évident lorsqu’on débute. La présente (...)

Ça spipe par là