Un CMS d'exception alliant puissance et simplicité !

Pourquoi un nouveau CMS ?

De nombreux CMS (Content Management System) sont disponibles pour réaliser des sites internets. Mais dès que l'on a des besoins plus précis, il est très difficile de trouver un CMS adapté.

 

En effet, les CMS complexes :





 

  • demandent toujours un apprentissage conséquent et la maîtrise d'un système spécifique.
     
  • possèdent des modules complémentaires mais qui sont rarement tout à fait adaptés au besoin précis de l'utilisateur.
     
  • manquent souvent de possibilités de configuration fine.
     
  • exigent fréquemment des interventions complexes lorsqu'il y a des mises à jour.
     
  • sont exposés à un risque de piratage de masse quand une faille de sécurité est trouvée.
     
  • sont parfois dépendants de technologies privées.
     


Quant aux blogs, l'information est souvent noyée après un certain temps par manque de possibilités de structurer l'information.


Fort de ce constat, Pragmasoft a développé son propre CMS en 2011 : Sophia !

 

 

Sophia : la puissance du développement et la facilité de la gestion !

Le CMS est configuré par un développeur. La gestion du contenu se fait ensuite par les rédacteurs du site.

Basé exclusivement sur des outils Open-Source ayant fait leurs preuves, Sophia se veut volontairement simple au niveau des techniques utilisées et du travail journalier, tant sur les plans informatique que de la communication. On y gagne des sites web solides qui peuvent traverser les années. Ouverte, la structure permet néanmoins d'inclure aisément des modules externes.
 

Points forts pour le développeur...

 


 

  • Automatisation de toutes les tâches basiques sans valeur ajoutée.
     
  • Travail concentré sur les tâches complexes.
     
  • Utilisation, modification ou remplacement aisé des modules de base pour les adapter aux besoins, en simple langage PHP.
     
  • Générateur de base de données : structure de tables, code de génération des tables SQL, écrans ergonomiques de gestion et d'édition des tables, codes d'affichages.
     
  • Multiplateforme Windows-Mac-Linux.

 

Points forts pour le gestionnaire de contenu

 


 

  • Moteurs d'agenda, actualités, articles, liens.
     
  • Système de gestion de contenu (back-office) ergonomique et aisé : agenda, news, articles...
     
  • Edition des pages web statiques directement via un éditeur intégré.
     
  • Multilingue.
     
  • Masques de sites (plusieurs sites, avec chacun leurs css, banners, onglets et menus de navigation, peuvent patager des pages communes)

 

Points forts pour l'utilisateur

 


 

  • Présentation structurée de l'information (onglets, menus, fil d'Ariane, hiérarchisation).
     
  • Lisibilité augmentée par une série de plugins adaptés aux situations de communication.
     
  • Possibilité d'impression isolée de chaque page - article, sans la navigation (onglets, menus).
     
  • Support de l'URL-Rewriting.
     
  • Multilingue.
     
  • Avec les masques de sites, possibilité de développer des sites à 2 niveaux : utilisateur simple / confirmé-professionnel... ou d'avoir des sites partageant des pages communes.

 


 

Exigences techniques


 

Côté serveur

  • Serveur web Apache & htaccess
  • PHP 5+
  • MySQL 5.5
  • PhpMyAdmin
  • Clearbox (fourni)
  • Libraires JQuery (fourni)
  • Protection anti-injection de code (optionnel)
  • Statistiques (optionnel)

 

Côté client


 

  • Navigateur Web avec javascript activé (Firefox, Chrome, Safari, Konqueror, Internet Explorer, Opera...), sur PC, Mac, Linux

 

Côté développeur

  • Même configuration que le server
  • Tableur LibreOffice Calc
  • Editeur ASCII
  • CK-Editor (fourni)



Fonctionnalités

Développement
 

  • Gestion de l'arborescence des onglets / menus / pages via une feuille unique dans un tableur (LibreOffice Calc), et ce pour toutes les langues.

    L'utilisation d'un tableur peut surprendre et donner l'impression d'un "bricolage". Toutefois, l'expérience pratique montre que la facilité et les possibilités de manipulation du tableur surclassent toute autre façon de faire en ce domaine ! ( "Pragmasoft", c'est avant tout "pragmatique" ! )

    Insérer une ligne, déplacer une ligne, copier un bloc similaire, nommer les pages... et en un "clic", tous les fichiers nécessaires sont mis à jour : onglets, menus, pages par défaut, plan du site... et ce dans toutes les langues...


    Gestion de l'arborescence des onglets et menus

  • Générateur automatique des pages de l'arborescence : la structure du site devient immédiatement utilisable pour du maquettage, avec des pages "en construction".


    On peut déjà naviguer dans le site dès son arborescence générée

  • Barre d'onglets supérieure, à 1 ou 2 niveaux, avec ou sans menu déroulant
  • Menu gauche, à 2 niveaux
  • Optimisation visuelle des menus de gauche avec titres, lignes de séparations, images (RSS dans l'exemple ci-dessous)


    Barre d'onglet, menu gauche avec sous-menus, image, lignes...
    Menu déroulant en  option sur les onglets...

  • Multilingue
  • Gestion des onglets / menus sous forme de masque : cela permet d'avoir plusieurs sites partageant des pages communes.

       
    Site A avec une arborescence en partie commune avec le site B   Site B avec une arborescence en partie commune avec le site A

    Faire un masque pour créer un nouveau site est très rapide : il suffit de dupliquer la feuille du tableur de gestion de l'arborescence, de l'adapter... Un "clic" et le nouveau site est sur pied.

     
  • URL-rewriting pour chaque lien.

    Le lien http://www.pragmasoft.be//prs/index2.php?s=1&l=f&tb=tb_accueil&tb2=&m1=news&m2=&m1tc=false&idform=2#2
    est exprimé sous la forme http://www.pragmasoft.be//prs/1-f-tb_accueil-0-news-0-0-2-2.html

    Tous les liens dans le site suivent cette règle et sont ainsi correctement indexés par les moteurs de recherche.
     
  • Les liens vers des articles ouvrent les pages concernées avec l'article cible ouvert s'il est dans une présentation "accordéon". L'URL-rewriting est supporté.
    Un effet accordéon suppose un texte affiché de façon réduite, avec possibilité d'afficher la suite du texte en "ouvrant" le paragraphe)


    A partir de la page d'accueil, le lien pointe l'article concerné dans la page correspondante et ouvre l'accordéon.


Bases de données
 

  • Sophia contient par défaut une série de tables (agenda, actualités, articles...). D'autres tables peuvent être aisément ajoutées via un générateur de tables.

    Au travers d'un tableur, (ici aussi l'expérience pratique montre que le tableur est le moyen idéal : copie de lignes similaires, correction et régénération, etc. !), la nouvelle table est décrite champ par champ.

    Pour chaque champ, on stocke une série d'informations : le nom du contrôle, son type, les différents textes (label et aide), la largeur en DB, la largeur écran, les plages de validité (numérique, alphabétique, limites inférieure et supérieure... ), etc.

    Il est possible de déclarer des champs proposant une liste de fichiers contenus dans un répertoire, pour des extensions à préciser (images, pdf...).

    D'autres champs peuvent afficher des listes de fiches d'une autre table (exemple : une fiche "actualité" qui pointe vers un article précis).
     


    Exemple de tableur pour la table "Articles"
    Télécharger l'image si vous souhaitez mieux la visualiser

     


    A partir de ce tableur, Sophia va générer un code SQL : il suffira de l'exécuter via PhpMyAdmin pour générer la table et les champs en une seule opération.

    Sophia va également générer une série de fichiers : ils permettront de visualiser et de gérer le contenu de la table dans l'interface de back-office (lister, visualiser, ajouter, modifie et, supprimer). Un export en CSV et en MySql est aussi proposé.

    Chaque nouvelle table demande seulement 1 seule ligne de code à insérer dans le back office pour afficher l'interface de gestion de la table !
     

               
      Vue d'une table dans l'interface de back-office          Une fiche, avec ses libellés et commentaires.

    La validité des champs d'une fiche est contrôlée au moment de la sauvegarder. Toute erreur de format provoquera l'affichage d'un message d'erreur, suggérant lasolution, à proximité du champ fautif.

    Point de vue sécurité, les écrans de gestion de tables sont tous protégés par un accès utilisateur / mot de passe, ce qui permet de répartir les responsabilités au sein des rédacteurs.

    La base de données est sauvegardée automatiquement tous les jours.
     


Construction des pages

  • Feuilles de styles personnalisables (séparation des CSS système et utilisateur)
  • Accès au code source


Pages statiques

  • Possibilité d'avoir une barre de raccourci à droite de chaque page.
  • Possibilité d'avoir un banner différent à chaque page.
  • Sur le site de développement, édition directe des pages dans le site, via un éditeur intégré (CK-Editor) dans le navigateur.

               
    Sur la machine de développement, un icône en haut             Edition directe des pages avec l'éditeur intégré
    à droite permet d'ouvrir la page en mode édition.
                (CK-Editor), agrémenté de plugins "maison".
     

  • Backup automatique de la page courante à chaque édition de page.
     
  • Nombreux plugins injectant des blocs de codes prêts à l'emploi. Ces plugins, construits maison ou issus du monde open-source, ont été sélectionnés pour leur facilté d'emploi et de configuration. Le code source à configurer a chaque fois été réduit à son maximum.

    Sont disponibles :
    • 4 niveaux de titres
    • Listes à puces graphiques (puces, lien web, pdf, images, ...)
    • Multi-colonnes
    • Images cadrées droite, centre, gauche, avec zoom en "shadow box"
    • Cadres à fond neutre/coloré, à bords carrés/arrondis
    • Tips
    • Onglets
    • Liste avec effet "accordéon"
    • Mini-slideshow automatique
    • Séparateur
    • Galerie photo
    • Galerie fichiers (pdf ou autres...)
    • Photo panoramique 360°
    • Cartes Google Map personnalisées
    • Cartes interactives
     
    Exemples de plugins

    Onglets internes

    • Titre 1

      Titre 2

      Titre 3

      Titre 4

    • Puce
      Lien web
      Fichier PDF
      Image GIF
      Image JPG
      Téléphone
      Fax
      Mail
      Attention
      Danger
    • Exemple de tips : ONU
     


    Image à droite
    Copyright © 2014 CEBE-MOB

    • Cadre à fond coloré et bords arrondis
    • Image en miniature, avec zoom en "shadow box"

     

     

     

     

     

     

     


    Image à gauche
    Copyright © 2014 CEBE-MOB

    • Cadre à fond clair et bords en angles droits
    • Image en miniature, cadrée à gauche, avec zoom en "shadow box"

     

     

     

     

     

    test 1 test 1

     

                                                                                          Minislideshow avec 2 images, délai 3 secondes, effet de fondu

     

     

     

     

     

     

     

     

     

    Effet accordéon


    Titre du texte avec effet accordéon - position fermée

     

    Galerie photo

    Le musée de l'accordéon de Henk Kuik

    (Malden - Pays-Bas)

    Henk Kuik est marchand d'accordéon, représentant BENELUX pour Castagnari.

    A son magasin est accolé un magnifique musée de l'accordéon !

    http://www.kuikaccordeons.nl




     

    Photo panoramique 360°


    Exemple de photo panoramique 360°
    Copyright © 2014 Pragmasoft

     

    Personnalisation Google Map


    Exemple de carte personnalisée

     

     

     

    Carte interactive


    Exemple de carte interactive (aller au bas de la page)

     

    Pages dynamiques

    • Stockage des textes et informations dans des tables MySQL : agenda, actualités et articles...
      Un interface de back-office permet d'éditer les tables de façon très simple. Cet interface est à lui seul un site web avec son masque, ce qui permet d'avoir plusieurs niveaux de responsabilité dans ls rédacteurs.


      Une fiche, avec ses libellés et commentaires.

    • Organisation des articles en sections / catégories / sous-catégories / mot-clé

      Cette technique est très puissante et permet de structurer des listes de façon très fine et de faire énormément de choses avec un mécanisme simple.

      Exemples
      - Une section "Belgique", des catégories "Bruxelles", "Namur", des sous-catégories "Magasin", "Restaurant", "Ecole".

      - Chaque article est identifié par une section, une catégorie, une sous-catégorie et un mot-clé unique
       
    • Affichage de listes dont le contenu est en base de données, avec quelques lignes de code

      Sophia permet d'afficher par exemple :
      - les articles correspondant à "Belgique" (liste des articles avec section "Belgique"),
      - les articles qui concernent Bruxelles (liste des articles avec sous-catégorie "Bruxelles"),
      - les articles avec tous les restaurants tant de Bruxelles que de Namur (liste avec sous-catégorie "Restaurant"),
      - les articles avec tous les restaurants de Bruxelles (liste avec sous-catégorie "Restaurant" et catégorie "Bruxelles"),

      Toutes les combinaisons sont possibles. Les fonctions d'affichage de listes comprennent également des paramètres permettant d'effectuer des sélections encore plus finement qu'avec les section - catégorie - sous-catégorie : tout simplement en ajoutant des compléments aux requêtes SQL de base : tri, filtres, etc !

      Un article isolé peut aussi être affiché, si on fait référence à son mot-clé unique.

      Exemple de code pour afficher les articles correspondant à la Belgique :
          require "../prs_cms/php/articles.php";
          $params['db_table_name']= "articles";
          $params['section'] = "Belgique";
          display_articles ($params);


      Exemple de code pour afficher les articles correspondant aux restaurants bruxellois :
          require "../prs_cms/php/articles.php";
          $params['db_table_name']= "articles";
          $params['categorie'] = "Bruxelles";
          $params['sous_catégorie'] = "Restaurant";

          display_articles ($params);


      Voir encore un exemple plus loin.
       
    • Affichage des éléments de liste en listes déployées, en listes d'éléments "fermés" et ouvrables sur les détails, ou en listes de liens ouvrant le détail dans une fenêtre pop-up


                 
        Articles ouverts (sans effet)          Articles fermés (en accordéon)

    • Ajout aisé d'une configuration particulière d'affichage de liste
      (exemple : les liens de ce site : ce sont des articles, mais dont l'affichage a été configuré par un code spécifique.)

      Exemple de code personnalisé :

           require "../prs_cms/php/db_spec_treat.php";   (on appelle le fichier standard qui annonce un traitement spécifique)
           $params['db_table_name']= "articles";
           $params['section'] = "liens";
           $params['fileSpec'] = "links_p_list.php";           (
      on donne le nom du fichier local, avec le code personnalisé)
           $params['orderP'] = "language,id_section,id_categorie,id_ss_categorie,date,title";
      (exemple de tri personnalisé)
           echo getSpecificRecord($params);

      Les commandes classiques (ouverture-clôture de la base et de la table, lecture des fiches) sont transparentes et effectuées par défaut; le développeur reçoit un tableau de résultats. Il lui suffit alors de juste personnaliser le code d'affichage.
       
    • Gestion de l'affichage dans le temps
      Pour chaque fiche, il existe des champs permettant de régler l'affichage dans le temps : date de début d'affichage, date de fin

       
    • Ajout aisé de tables (voir paragraphe "base de données")

     



    Divers

    • Moteur d'actualités, d'agenda, de liens, d'articles...


      Teaser de news défilantes...

    • Liaison des fiches agenda aux articles, avec génération des liens dans les fiches.
    • Sitemap automatique


      Sitemap automatique

    • Impression des articles dans une page sans fond et sans les éléments de navigation


      Fenêtre d'impression

    • Galeries photos
      La mise en place d'une galerie d'image est simplifié à l'extrême, sans perdre en puissance :
    • Un répertoire est créé pour la galerie
    • Les images y sont simplement copiées et les miniatures générées automatiquement.
    • Un éditeur de commentaires permet d'ajouter un titre et un descriptif pour chaque galerie, ainsi qu'une légende pour chaque photo
    • Affichage en clearbox et slideshow intégré


      Edition des commentaires de photos
       


     

    Conclusion

    Sophia est à la croisée entre les CMS "vitrines" et les CMS complexes, tout en permettant au développeur d'aisément ajouter ses propres modules.

    Un temps précieux est gagné par le générateur de base de données, le générateur d'arborescence et de pages et l'éditeur intégré.

    De nouveaux modules de base sont à l'étude.



    Références

    Sophia est utilisé par :

    Le présent site
    La CEBE (Commission de l'Environnement de Bruxelles et Environs)

     

    Utilisation en mode "masques", sur un même serveur
     

    La Mission Locale de Molenbeek (site internet et intranet)
    Le restaurant social "Les uns et les autres"
    Le restaurant "Marmitime"
    Le restaurant "AFT'Heure"




        



     
     

     

 


Copyright © 2017 - Pragmasoft - CMS Sophia 2.05