feedback

Flux des variables d'affichage de Concrete5:

Chaque requête effectuée sur Concrete5 passe par le fichier index.php de la racine de votre site web. Si le système utilise les URLs simplifiées, le module mod_rewrite d'Apache est charger du routage de celles-ci en tâche de fond.

Index.php reçoit donc la requête complète, et renvoie celle-ci sur dispatcher.php, qui se trouve dans le dossier de base de l'application (/concrete). Ceci de façon à ce que de multiples sites concrete5 puissent partagés un même dossier d'application sur un serveur donné.

Voici une liste de requêtes prises en charge par dispatcher.php :

 

C'est le tout premier objet lancé. Cela inclut certaines vérifications, dont celle de savoir si le fichier /config/site.php est disponible. S'il l'est, il l'inclut. Sinon, il règle une variable de façon à "dire" à Concrete que l'installation n'a pas été effectuée. Elle est donc utilisée plus tard, après que certaines librairies "cores" aient étés chargées.

 

Ici nous chargeons toutes les constantes et réglages initiaux de Concrete, incluant les chemins. Ce fichier prend également soint d'inclure le chargeur de librairies, qui est utilisé pour charger les objets et les exporter.

 

Concrete charge (mais n'y est pas encore connecté) la base de données. C'est réaliser à travers ADODB.

 

Concrete charge ses propres librairies cores requisent. Dans Concrete5, une librairie est une portion de code qui est utile sans être spécifiquement attaché au système de gestion de contenu.

 

Concrete charge les modèles et les classes requis pour un rendu de page spécifique et les sessions. Les modèles sont directement reliés à la base de données, although there currently isn't much to them beyond a semantic definition.

 

Ce bloc de code initialise les différents chemins internes pour les thèmes disponibles. Les chemins sont routés depuis les thèmes jusqu'au noyau de conrete. La gestion d'erreur est supprimée à la deuxième inclusion car ce fichier ne peut exister.

notesNote: Le répertoire de configuration existe actuellement à deux endroits - un dans le dossier de l'application, et un à la racine.

 

Le bloc de code ci-dessus charge un certain nombre de sous-routines situées dans le répertoire startup.

  1. D'abord, nous initialisons notre session.
  2. Ensuite, nous vérifions, pour être certain, que l'application est installée. Configcheckcomplete inspecte la variable réglée par la routine config_check tout au début du fichier dispatcher. Si concrete ne peut pas trouver son fichier de configuration, config_check_complete va afficher le panneau d'installation et sortir du programme.
  3. Après vérification de notre configuration, nous nous connectons à la base de données.
  4. Puis, nous réglons notre serveur SQL et l'affichage des erreurs. Ceci est séparé de la connexion - ça détermine basiquement quand et quelles erreurs seront affichées à l'écran, principalement en mode verbeux, et affichera aussi les requêtes SQL. Ceci est réglé dans le tableau de bord.
  5. Maintenant, nous chargeons nos classes d'utilisateur. Si l'utilisateur est connecté nous rafraîchissons sont paramètre uLastOnline.
  6. Finallement, ce bloc de code initialise les requêtes sur le répertoire /tools. Les outils (Tools) sont des fichiers Php statiques qui éxécutent certaines fonction interne de l'interface de Concrete. Ils s'éxécutent, eux aussi, à travers le fichier dispatcher.

      
    

Ce code évalue la requête courante, et détermine comment en obtenir un objet de la page. Si nous passons un cID (qui est lié à Collection/Page ID), notre requête est numérique, utilisant la méthode getByID de la classe de la page. Si nous passons quelque chose à travers une requête sur la variable cPath, alors nous utiliseraons la méthode getByPath de la page.

 

Ceci vérifie la Page pour voir si son initialisation retour un code d'erreur. Si c'est le cas, il ne peut y avoir qu'une seule chose à ce stade - un manque de page complet. Nous le vérifions donc, si la page est réellement manquante, nous affichons la page “404” de concrete5.

notesNote: Ces constantes d'eereurs sont définies dans /config/base.php

 

Arrivé à ce stade, nous vérifions si le site que nous voulons lancer est en mode maintenance ou non. L'activation de ce mode est contrôlé dans le tableau de bord. S'il est activé, le tableau de bord est accessible aux administrateurs, mais pas le site.

Ensuite, nous vérifions si la collection que nous chargeons correspond à un “lien externe.” Un lien externe étant un lien HTTP pointant sur un ressource externe, comme “http://www.google.fr” ajouté via le tableau de bord, les liens externes sont utiles pour ajouter des ressources externe dans la structure interne du site, comme les blocs de liste de page ou navigation automatique.

 

Si nous arrivons jusqu'ici, nous essayons alors d'obtenir une page valide. Nous allons donc passer cet objet au dispositif de permissions, qui renverra un objet Permissions pour celui-ci. Enfin, nous vérifions cet objet permissions pour voir si aucune erreur y est associée. S'il y en a, c'est que nous essayons d'atteindre une page à laquelle nous n'avons pas accès. Dans ce cas, nous affichons une page 403, ce qui consiste généralement à vous re-diriger vers la page de connexion.

 

Cette portion de code est chargée de déterminer si nous devons ou non chager une version particulière de la page, et, si oui, savoir si nous devrions désactiver l'édition (l'édition des anciennes versions étant désactivée).

 

La gestion des versions continue, l'édition est désactivées pour les anciennes versions.

 

Le fichier process.php est un gros fichier qui détermine si certaines actions doivent êtres lancées, basé sur les variables POST et REQUEST. Process.php est le fichier qui prend en charge toutes les opérations du CMS exécutées Concrete.

 

Cette portion de code enregistre une entrée dans la table des statistiques.

 

Cette portion de code finale prend en charge le rendu de la page. La méthode de rendu est responsable de la déconnection de la base de données, autant que de l'affichage des requêtes SQL si le niveau de débogage est assez haut.