Remarque :

Les notions décrites ci-dessous concernent les versions :
  • Sweelix : 3.1.0
  • Yii : 1.1.16

ActiveQueryBuilder

ActiveQueryBuilder étend la classe Component de Yii, elle vous aidera à créer des requêtes afin de trouver des entités de Sweelix.

Voir le guide technique

Back office

Le back office est l'interface où les nodes, les contents et tous les autres éléments de Sweelix sont créés.

Le back office contient l'arborescence complète des contenus du site.

Cette interface n'est visible que par les utilisateurs de Sweelix.

Content

Le content est l'entité la plus simple dans Sweelix. Il est obligatoirement rattaché à un node.

Le content est utilisé pour intégrer des contenus tels que news, articles et post.

Comme pour les autres entités de Sweelix, un template lui est appliqué afin de lui attribuer des propriétés.

Au moment de l'enregistrement du content dans la base de données, les attributs définis dans le template sont sérialisés et enregistrés sous la forme d'un tableau JSON et placés dans la propriété contentData.

Exemple d'utilisation :

Création d'une page HTML contenant des articles, news, post.

Propriétés

Définitions

contentId

Identifiant du content dans la base de données.
contentTitle Titre du content.

contentSubtitle

Cette propriété est facultative.
Elle permet de saisir un sous-titre, qui sera affiché lors du rendu HTML.

contentUrl

L'url du content est créée automatiquement si celle-ci n'est pas renseignée.

contentData

Les données du content sont sauvegardées sous la forme d'un tableau JSON. Ces données sont directement liées au template appliqué sur le content.
contentOrder Cette propriété est utilisée pour ordonner les contents lors de l'affichage.
contentStartDate Date de départ de publication du content.
Avant cette date, le content a son statut offline.

contentEndDate

Date de fin de publication du content.
Après cette date, le content a son statut offline.
contentStatus

Le statut du content peut être: draft, online, offline

  • draft : le content est en statut brouillon, il n'est pas affiché dans la page HTML.

  • online : le content est en statut en ligne, il est affiché dans la page HTML.

  • offline : le content est hors ligne, il n'est pas affiché dans la page HTML.

contentViewed

Nombre de fois où le content a été consulté sur le site.

contentCreateDate

Date de la création du content.

contentUpdateDate

Date de mise à jour du content.

nodeId

Identifiant du node à qui appartient le content.

authorId

Identifiant de l'utilisateur qui a créé le content.

templateId

Identifiant du template qui lui est appliqué.

languageId

Identifiant de la langue du content.

 

Dashboard

Tableau de bord de Sweelix.

Datepicker

Le datepicker est un outil écrit en Javascript. Il est appliqué sur un champ input d'un formulaire.

Il peut être intégré dans un template HTML.

Elastic model

Cette fonctionnalité, intégrée nativement dans Sweelix, permet de faciliter l'accès aux attributs d'un template.

Les attributs ajoutés dans le template sont intégrés dynamiquement dans le modèle de l'entité Sweelix (Node, Content, Tag, Group) correspondante.

Front office

Partie frontal du site, visible par les internautes.

Group

Le group permet de créer des catégories de tags.

Il se place au dessus du tag dans la hiérarchie de Sweelix.

Le group est utilisé dans la gestion des mots clés. Il permet d'associer des catégories à des mots clés.

Un template peut lui être attribué.

Exemple d'utilisation

Avec les groups, les éléments peuvent être rangés par catégories et triés par mots clés.

Propriétés

Les données du group sont sauvegardées sous la forme d'un tableau JSON. Ces données sont directement liées au template appliqué sur le group.

Propriétés Définitions
groupId Identifiant du group dans la base de données.
groupTitle Titre du group
groupType Type du group, il peut être : simple ou multiple.
  • simple : un seul mot clé du group peut être assigné à une entité.
  • multiple : plusieurs mots clés du group peuvent être assignés en même temps à une entité.
groupUrl L'url du group est créée automatiquement si celle-ci n'est pas renseignée.
groupData  
groupCreateDate Date de la création du group.
groupUpdateDate Date de la mise à jour du group.
templateId Identifiant du template qui lui est appliqué.
languageId Identifiant de la langue du group.

 

Migrations

Les migrations sont utilisées pour mettre à jour la base de données.

Chaque migration est un fichier PHP créé par l'application Yii sur votre demande.

Ce fichier comporte une classe qui étend de la classe \yii\db\Migration.

Cette classe comporte une fonction pour mettre à jour les données et une fonction pour les rétrograder dans la base de données.

Module

Un module est une sous application qui est ajouté à Sweelix pour compléter les fonctionnalités.

Sweelix contient nativement plusieurs modules.

Multi-langue

Dans Sweelix, pour avoir un site en multi-langue, la bonne pratique est de créer une arborescence pour chacune des langues, puis de faire pointer le front office sur l'arborescence voulue.

MySql

Type de base de données.

Node

Le node appelé aussi rubrique est une entité important de Sweelix, il permet de construire le squelette du projet.

Le node peut contenir des articles, d'autres nodes ou être vide.

Il possède des propriétés par défaut et le template qui lui est associé défini des propriétés supplémentaires.

Au moment de l'enregistrement du node dans la base de données, les attributs définis dans le template sont sérialisés et enregistrés sous la forme d'un tableau JSON et placés dans la propriété nodeData.

Exemples d'utilisation :

  • Exemple 1 : Création d'un menu dynamique sur la page HTML.
  • Exemple 2 : Le node est utilisé pour créer la home page avec les contenus (texte, images, vidéos).

Propriétés

Propriétés

Définitions

nodeId

Identifiant du node dans la base de données.

nodeTitle

Nom du node.

nodeUrl

L'url du node est créée automatiquement si celle-ci n'est pas renseignée.

nodeData

Contient les données du node sous la forme d'un tableau JSON.
Ces données sont les attributs et leurs contenus définis dans le template appliqué au node
nodeDisplayMode

Cette propriété est paramétrée par l'utilisateur lors de la configuration du node dans le back office.

La valeur de cet attribut peut être : first, list, redirect.

  • first : le node est redirigé vers le premier content lui appartenant.

  • list : le node n'est pas redirigé et a le fonctionnement par défaut avec le controller/action spécifié dans son template.

  • redirect : le node est redirigé vers un autre node dont l'identifiant est placé dans l'attribut nodeRedirection.

nodeRedirection

Contient l'identifiant vers lequel le node est redirigé.

nodeLeftId

Cette propriété contient l'identifiant de la borne de gauche.
Il est utilisé dans la représentation intervallaire de Sweelix.

nodeRightId

Cette propriété contient l'identifiant de la borne de droite.
Il est utilisé dans la représentation intervallaire de Sweelix.

nodeLevel

ropriété indiquant le niveau du node dans l'arborescence.

Ce niveau est déterminé lors de la création du node.

Pour rappel le node "root" a le niveau (nodeLevel) = 0.

nodeStatus

Le statut du node peut être : draft, online, offline

  • draft : le node est en statut brouillon, lui et ses descendants ne sont pas affichés dans la page HTML.

  • online : le node est en statut en ligne, il est affiché dans la page HTML.

  • offline : le node est hors ligne, lui et ses descendants ne sont pas affichés dans la page HTML.

nodeViewed Nombre de fois où le node a été consulté sur le site.

nodeCreateDate

Date de la création du node.
nodeUpdateDate Date de mise à jour du node.

authorId

Identifiant de l'utilisateur qui a créé le node.

templateId

Identifiant du template qui lui est appliqué.

languageId

Identifiant de la langue du node.

 

Représentation intervallaire

La représentation intervallaire représente la hiérarchie des nodes dans Sweelix.

Chaque node a en plus de son id les attributs nodeLeftId et nodeRightId qui permettent de le situer dans la hiérarchie de Sweelix.

La représentation intervallaire permet une recherche plus simple et plus rapide des nodes dans Sweelix, elle se base sur la notion de borne de droite et borne de gauche.

Exemple :

Pour rechercher toute la hiérarchie :

SELECT * FROM nodes where nodeLeftId >1 AND nodeRightId <14 ORDER BY nodeLeftId;

Pour rechercher tous les nodes situés en dessous du Niveau 1, il suffit de faire la requête suivante :

SELECT * FROM nodes where nodeLeftId >2 AND nodeRightId <7 ORDER BY nodeLeftId;

Resources

Les resources sont les fichiers qui sont ajoutés aux contenus dans le back office de Sweelix.

Ils sont placés dans le répertoire resources placé à la racine de l'application Yii.

Root

Le node ROOT est toujours présent, il est le node racine sur lequel sont liés tous les autres nodes.

Il correspond à la première entité dans la représentation intervallaire.

Structure

Ce module de Sweelix vous montre la hiérarchie des Nodes et des contents qui ont été créés.

Sweelix

Définitions

Client : terme désignant le terminal utilisé par un internaute.

Serveur : terme désignant un logiciel (apache, nginx ..) mis en place sur un ordinateur distant et permettant l'interprétation des requêtes selon le protocole HTTP.

Sweelix : le CMS

Yii : framework PHP

Bdd : gestionnaire de base de données (mysql, postgresql ...).

Fonctionnement

1 - Le client envoie une requête vers le serveur.

2 - Le contrôleur frontal de Yii capture et interprète la requête.

 

Si Yii peut gérer nativement la requête :

3 - Yii redirige vers le bon contrôleur et la bonne action. Les opérations liées à la requête tels que le requêtage en base de données, la gestion de l'affichage, etc sont effectuées.

4 - Le rendu HTML est renvoyé dans une requête formatée au protocole HTTP au client.

 

Si Yii doit déléguer l'interprêtation de la requête à Sweelix :

3 - Grâce à la surchage du contrôleur de base, il est possible d'effectuer les mêmes tâches sur les entités de Sweelix (requêtages, affichage, etc)

4 - Le rendu HTML est renvoyé dans une requête formatée au protocole HTTP au client.

Tag

Le tag est un mot-clé appartenant à un group qui vous permet de filtrer un node ou un content.

Vous pouvez modifier, spécifier un comportement ou rechercher les nodes et contents marqués avec ce tag.

Un template peut être associé à un tag.

Exemple d'utilisation :

  • Exemple 1 : Marquer certains contents d'un mot clé spécifique peut être utile pour les différencier ou les customiser dans le rendu HTML.
  • Exemple 2 : Vous pouvez aussi utiliser le tag pour rechercher uniquement certains éléments.
Propriétés Définitions
tagId Identifiant du tag dans la base de données.
tagTitle Titre du tag.
tagUrl L'url du tag est créée automatiquement si celle-ci n'est pas renseignée.
tagData Les données du tag sont sauvegardées sous la forme d'un tableau JSON. Ces données sont directement liées au template appliqué au tag.
tagCreateDate Date de la création du tag.
tagUpdateDate Date de la mise à jour du tag.
groupId Identifiant du group qui contient ce tag.
templateId Identifiant du template qui lui est appliqué.
languageId Identifiant de la langue du tag.

 

Template

Le template est un gabarit appliqué à une entité de Sweelix. Il organise et sérialise les données.

Il est défini dans un fichier PHP sous la forme d'un array, contenant des attributs et leurs définitions.

Ces définitions sont également sous la forme d'un array contenant :

  • le type de l'attribut (texte, image, lien etc...)
  • les règles de validation

Les attributs sont ajoutés aux propriétés du modèle de l'entité (Node, Content, Tag, Group) puis enregistrés sous la forme d'un tableau JSON.

Un template peut être lié à un contrôleur. Vous pouvez préciser son action au sein du contrôleur qui va déterminer le rendu HTML de l'entité associé.

Propriétés

Propriétés

Définitions

templateId

Identifiant du template dans la base de données.

templateTitle

Nom du template. Vous pourrez plus facilement trouver le template dans le back office Sweelix avec ce titre.

templateDefinition

Nom du fichier PHP qui définit le template.

templateController

Cette propriété est facultative.
Il définit le contrôleur Yii que vous voulez associer au template.

templateAction

Cette propriété est facultative.
Action associée au template.
Si cette propriété a la valeur NULL, l'action sera controller/index.

templateComposite

Cette propriété est facultative.
Nom de la vue utilisée pour le rendu HTML.

templateType

Cette propriété peut prendre deux valeurs list ou single.

  • list : l'entité de Sweelix sur lequel le template est associé pourra être un node, tag, ou un group.

  • single : le template est associé à une entité Content.

 

Template HTML

Le rendu du template dans le back office de Sweelix peut être personnalisé en HTML.

Pour cela un deuxième fichier est créé dans le répertoire templates, portant le même nom que le template PHP d'origine et ayant l'extension .tpl.php.

C'est un fichier utilisant les balises HTML et la classe Html de Yii.

Pour accéder au modèle et aux attributs définis dans le template PHP d'origine, il faut utiliser la variable PHP $model.

Traduction

La traduction du CMS Sweelix est effectuée via des fichiers du type PO/MO.

Par défaut, la langue de Sweelix est l'anglais.

Pour modifier la langue, le paramètre language dans la configuration de Yii doit être paramétré dans la langue voulue.

Ensuite, pour des modules qui doivent être traduits, il faut créer le répertoire messages s'il n'existe pas et y placer le fichier de traduction correspondant à la langue voulue.

Exemple : pour la langue française, placer un fichier nommé fr.po dans le répertoire messages du module Sweelix à traduire.

Utilisateurs et droits d'accès

Le User ou l'utilisateur permet de se connecter à Sweelix.

Les droits d'accès au module peuvent être ajoutés ou enlevés pour chacun des utilisateurs.

View

La View est le rendu final envoyé au navigateur Web après avoir été formaté par le serveur PHP.

WysiWyg (What You See Is What You Get)

Editeur de texte intuitif qui permet une vue directe sur le résultat obtenu.

Sweelix utilise le logiciel CKEditor.