-
La forme : Il utilise la puissance de PHP pour construire la partie dynamique du site et ses fonctionnalités, sans imposer de limites, basé sur une implémentation type Vues-Contrôleurs.
-
Le fond : Il permet de mettre à jours facilement le contenue du site grâce à sa partie administration et la rédaction de son contenue en Markdown, le tout sans aucun SQL
Serveur PHP-Apache avec :
- Mod rewite activé
- Protection par
htacces
activé (AllowOverride All)
Cloner le projet dans un dossier web du serveur.
Pour des besoins de génération/suppression de fichiers, donner suffisamment de droits au serveur dans les dossiers suivants :
cache
databackup
Le projet est accompagné d'un site internet de démonstration "L'histoire du jeans".
Une simple visite de l'URL où est déployé le site permet de le voir pour comprendre la philosophie de Yieldown.
Certains textes et contenues de Yieldown peuvent être rédigés selon la syntaxe somple de Markdown.
- Aide rapide sur la syntaxe : Cheatsheet
- Explications générales : Wikipedia
- Site officiel de l'auteur : Daring Fireball
Le moteur gére 3 type de contenue
text
: Gérer des textes potentiellement mise en forme en Markdowncollection
: Un ensemble de données organisés au format Jsonblog
: Gérer un blog et ses articles.
Ces donnée sont à positionner dans le dossier data
et leurs sous-dossier respectifs.
La partie administration permet de gérer ce contenue.
Coté PHP, ce contenue est à charger dans les controleurs par un appel au moteur de Yieldown.
Charge le contenue d'un fichier de type texte,.
fileId
: est l'identifiant du fichier (son nom sans extension), recherché uniquement dans le dossierdata/text/
. Extension de fichier implicite*.md
.toFormat
: Permet de demander ou non d'appliquer le formatage Markdown sur le contenue lue.
Retourne une chaine de caratère contenant le contenue du fichier mise en forme ou non au format HTML.
Charger et formater le texte de la page d'accueil.
$homeText = Yieldown::loadText('home', true);
Charge le contenue d'un fichier de type Json object.
fileId
: est l'identifiant du fichier (son nom sans extension), recherché uniquement dans le dossierdata/collection/
. Extension de fichier implicite*.json
.keyToFormatList
: Permet de demander ou non d'appliquer le formatage Markdown sur certaines clés de la collection lue.
Retourne un tableau d'objet contenant la collection lue avec certaines clés mise en forme ou non au format HTML.
Charger la collection historique et formate les clés event.
$history = Yieldown::loadCollection('history', array('event'));
Charge tout le contenue du blog dans son intégralité.
- Aucun :
- Charge tout les fichier articles trouvés uniquement dans le dossier
data/blog/
. Extension de fichier implicite*.md
. - Applique systématiquement le formatage Markdown sur le corps des l'articles lues.
- La articles doivent être struturés selon une syntaxe suplémentaire. Voir la syntaxe d'un article dans le modèle auto-documenté :
data/blog/_template.md
- Charge tout les fichier articles trouvés uniquement dans le dossier
Contient un tableau de tous les articles.
$blog = Yieldown::loadBlog();
Le dossier data/aside
contient des éléments suplémentaires comme des images, documents ou autre utilisés dans les textes ou articles.
- admin : Contient le gestionnaire d'administration du site
- aspect : Contient l'apparence du site : Images et CSS
- cache : Contient les pages en cache du site lors de leurs génération
- controller : Contient les contrôleurs : L'intelligence des pages
- data : Contient les données : le Fond du site
- databackup : Contient des sauvegardes du dossier
data
- index.php : Unique point d'entré du site, c'est le contrôleur principale qui assemble le reste du site. (A consulter, ce fichier est auto documenté)
- view : Contient les vues : La mise en forme des pages
- yieldownEngine : Contient le moteur du framework, aucune modification n'y est nécessaire.
Voir le fichier auto-documenté index.php
Chaque appel de page, dois définir :
- Un contrôleur
- Une vue
- Une sous-vue
Selon la valeur du paramètre p
, les éléments précédents peuvent changer selon une branche du switch
du fichier index.php
,
Le système mod-rewrite
convertit le nom de la page appelée en paramètre p
.
Exemple :
monTest.html -> index.php?p=monTest
Ensuite le contrôleur définie est exécuté, puis les variables et données qu'il a générés sont transmises à la vue et la sous-vue,
C'est le trio contrôleur + vue + sous-vue
qui détermine si une page est déjà en cache et dois être réutilisée ou régénérée.
La page web est auto-documentée.
L'administration du site est disponibles au travers de l'URL .../admin
.
Elle permet d'ajouter/supprimer des fichiers dans le dossier data
.
Une fois les modifications effectuées, il suffit de vider le cache avec le bouton Regénérer
.
Cette page est à protéger par mot de passe, pour cela il faut :
- Modifier le fichier
admin/.htaccess
- Décommenter les lignes (supprimer les #)
- Changer la valeur de
AuthUserFile
par celle du chemin absolue visible en bas de la page d'administration (sans supprimer le.htpasswd
final)
- Modifier le fichier
admin/.htpasswd
- Saisir un utilisateur et un mot de passe selon la syntaxe
user:motDePasse
- Où le mot de passe dois être saisie dans sa version cryptée. (Possibilité d’utiliser la fonction PHP crypt)
- Saisir un utilisateur et un mot de passe selon la syntaxe
Par défaut le login est admin/admin
.
- Un CSS special Markdown est diponible pour un formatage prêt à l'emploi en utilisant le fichier
aspect\github-markdown.css
et la classe CSSmarkdown-body
- Les dossiers non public du site sont protégés par un fichier
.htacces = Deny from all