Réalise vos idées.

La plateforme PHP pour les artisans du web.Une application 100% Laravel


Sommaire

  • installation
  • contenu du package
  • Mes premiers pas
  • Suivez les étapes
  • Une démo?
  • Licence
  • Concept général
  • Jouer avec le code
  • Comment manipuler du code avec Blade de Laravel?
  • Comment utiliser le toolkit de code et d'applications fournit avec groovelcms?
  • Le multi langue pour adresser les internautes dans leur propre language
  • Comment sont gérés les permissions des utilisateurs ?
  • Qu'est ce qu'un rôle? et Comment sont gérés les rôles des utilisateurs?.
  • Installation

    Installation avec simplecommandinstaller

    PHP version 5.5.9 ou plus récente doit être installé.
    Un serveur web http doit être configuré
    Mysql instance doit être démarré.
    Composer doit être installé : https://getcomposer.org/
    git doit être installé : https://git-scm.com/
    Configurez votre virtual host.
    sur l'uri / vous êtes redirigé vers la page d'install de groovel, sur /admin vers la console d'administration , /blogs vers blog.


    Télécharger l'installeur en exécutant la commande suivante:

    composer create-project groovel/simplecommandinstaller --stability dev

    Ensuite :

    1.) Configurer le fichier .env pour se connecter à l'instance mysql: simplecommandinstaller/config/.env :

    DB_CONNECTION=mysql
    DB_HOST=
    DB_PORT=
    DB_DATABASE=
    DB_USERNAME=
    DB_PASSWORD=

    2.) Exécutez la commande suivante :

    your-project-name : le nom de votre futur application.

    php groovelinstall createproject=votre-nom-deprojet

    3.) La distrib builder sera mis dans simplecommandinstaller/dist/
    les logs sont dans le répertoire log.
    la base de donnée sera crée avec le nom DB_DATABASE .
    compte utilisateur par défaut john/john as admin Ne pas oublier de changer le mot de passe ou de supprimer le compte.
    A chaque étape de l'installation vous verrez :


    Vous pouvez logger le fichier log/packages.log pour vérifier l'avancement de l'installation.



    Si tout s'est bien passé sur / vous verrez :



    Finis!

    contenu du package

    • Bootstrap : pour un clean css design.
    • codemirror :pour éditer le code des templates en ligne.
    • filemanager : pour gérer ses fichiers en ligne.
    • tinymce : Tinymce éditeur pour vous aider à mettre en forme votre contenu.
    • jquery : pour manipuler le DOM HTML et Ajax.
      • Pour vous faciliter la prise en main, groovelcms met à disposition 2 toolkits :
      • toolkits code: formulaire de contact,barre de naviguation.
      • toolkits app: blog, forum prêts à l'emploi.

    Mes premiers pas avec groovelcms

    Aprés votre installation, si tout est ok
    Sur / vous devriez voir :


    Vous trouverez par défaut un jolie blog si vous tappez dans votre barre de naviguation le chemin: "/blogs"

    et vous accédez à la console d'administration en tappant le chemin suivant /admin


    Pour avoir un tour d'horizon rapide afin de savoir par ou commencer, exercez vous à:
      creez des postes de blog, pour cela vous devez êetre connecté avec votre compte.
      postez des commentaires sur le blog.
      ajoutez, modifiez, supprimez des types de contenu.
      ajoutez, modifiez, supprimez des contenus.
      ajoutez, modifiez, supprimez des utilisateurs.
      gérez les droits des utilisateurs.
      cherchez du contenu

    Nous allons jouer un peu:
      connectez vous à votre compte utilisateur
      postez des postes de blog :


    Vous avez à votre disposition un éditeur en ligne (tinymce) pour ceux ou celles qui ne maîtrisent pas le code HTML
    N'oubliez pas de cocher la case publish pour publier votre contenu en ligne.



    Vous avez le rendu suivant:



    Suivez les étapes.

    Groovel a entèrement étè revu pour mieux s'adapter à l'utilisateur.
    Focalisez vous sur le menu dont les liens sont de couleur bleu.
    Quand vous construisez un site internet, vous procédez toujours de la maniére suivante :

    Création du gabarit (layout) : il contient une entête( import des css js) , un titre, une introduction,un pied de page
    Les différents champs :
      Choisissez votre gabarit(layout) : votre gabarit doit être attaché à une template(c'est le design de votre site),
      Vous pouvez voir toutes les templates disponibles avec groovelcms
      (la recherche de ses templates se fait dans les répertoires resources/views et starter-templates, une collection de sources de templates blade)
      Language : groovel peut gérer plusieurs languages.Un bon exemple http://wwww.groovelcms.com est en anglais et http://wwww.groovelcms.fr est en français
      Logo : le vôtre
      Title : le vôtre
      Header : le vôtre
      Footer : le vôtre
    Toutes ses propriétès sont réfèrencées dans le code des templates blade.



    Création du menu : Une barre de naviguation pour parcourir vos pages web.



    Facile à comprendre, vous pouvez construire rapidement un menu arborescent.

    Création des pages :



    Vous devez remplir les champs suivants
      title : le titre de votre page.
      page name : le nom de votre page.
      url : l'url pour accéder à votre page.
      type : dans le package groovel un ensemble de layouts est déjà disponible, choisissez en un afin de le dupliquer
      Plus loin on vous expliquera comment le modifier.Si on prend l'exemple du blog
      Dans le répertoire vous voyez un fichier qui se nomme index.blade.php, c'est un fichier important, et qui doit être présent dans toutes vos templates.Ce fichier est dupliqué par le système quand vous choisissez un gabarit(layout).
      N'oubliez pas de le créer si vous voulez rajouter vos propres layouts.



    activate : Cochez enable afin de pouvoir rendre cette page accessible.
    Designez vos pages : allez sur page pages->list pages -> cliquez sur edit ( le stylo).
    Vous aurez la vue suivante:


    C'est un extrait de blog, dans la section de couleur noire , vous pouvez directement modifier le code de votre template et cela directement en ligne!
    Ajoutez du contenu : à votre page.



    Selectionnez quel type de contenu vous voulez rajouter à votre page.




    Les champs les plus importants à retenir sont les suivants :
      layout: Votre contenu doit être attaché à un gabarit(layout), par example un produit sera attaché à un gabarit de site ecommerce, un post de blog à un gabarit de blog.
      Ce qui permet à groovel de gérer plusieurs layouts en même temps. Groovel peut gérer plusieurs gabarits,et cela sur la mêeme instance.
      language: Groovel peut gérer plusieurs contenus par language.
      weight: champ numérique,cela permet d'afficher son contenu par ordre d'importance.Le poids le plus important indique la priorité la plus importante
      tag: permet de référencer son contenu par un mot clef dans le moteur de recherche.
      description: ce champ est important à renseigner afin de se retrouver quand on a beaucoup de contenu.
    Créez et désignez vos contenus :



    Vous pouvez créer ce que vous voulez :


    Vous drag and dropper les composants qui sont à gauche dans la surface ci dessous.
    Cliquez sur le stylo.


    Remplissez le champ nom dans la section title, nous venons juste de rajouter un nouveau champ texte.


    Vous pouvez maintenant créer du contenu avec :

    Jouer avec le code

    Comment afficher le contenu dans les pages.?
    le menu dans la page.?
    le gabarit( layout) dans la page.?
    Si nous éditons une page(blade template).



    Vous accédez aux contenus par l'intermédiaire de la session : $contents
    Même chose pour les layouts et menus :

    Démonstration

    La Démonstration est devant vos yeux, le site web groovelcms , blog sont faits avec groovelcms. :-)

    Licence

    All Groovel code is Copyright 2014 - 2015 by the original author.
    Please make a link to http://wwww.groovelcms.com in your program.
    and refer the name groovel
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or (at
    your option) any later version.
    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
    for more details.
    You should have received a copy of the GNU General Public License
    along with this program as the file LICENSE.txt; if not, please see
    http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
    Groovel is a registered trademark of Varnier Francois.
    Groovel includes works under other copyright notices and distributed
    according to the terms of the GNU General Public License or a compatible
    license

    Le concept génèral

    Le workflow groovel est désigné :



    A chaque requêtes uri, les middlewares vérifient les droits des utilisateurs. Chaque page est construite et gérée par le système blade template Engine de Laravel.

    Comment manipuler du code avec Blade de Laravel?

    Une petite introduction sur le système est nécèssaire. Le package Laravel est organisé de la façon suivante :



    Toutes les pages sont dans le répertoire ressources/views, ce sont celles qui s'affichent sur le site
    Images,css etc..sont dans le répertoire public
    Le core de groovel est dans le répertoire vendor.
    Pour plus d'informations consultez Laravel Documentation
    Le package de templates suit l'arborescence suivante :
    Regardez le code dans la template page



    Les autres templates sont référencées: @extends('groovelcms.base.core') et le contenu est accessible par la session $contents.

    Pour plus d'informations sur blade visitez Laravel Documentation Blade

    Comment utiliser le toolkit de code et d'applications fournit avec groovelcms?

    Starter templates


    Quand je démarre un nouveau projet je n'aime pas partir de zéro,
    Starter apps un ensemble d'applications precirct à être utilisé et customisé , Un blog permet de rapidement illustrer les fonctionnalités de groovel.
    Groovelcms propose par défaut un simple blog :
    • Vous pouvez créer des posts de blog
    • voir comment groovel fonctionne.
    Ces templates sont dans le répertoire suivant :

    Toolkits apps

    Dans mon métier de développeur , je mutualise le code dans groovelcms, tous ce qui peut être réutilisable , dans le répertoire vous trouverez du code blade pour le login,formulaire de contacte, menu....

    Vous pouvez l'inclure dans votre propre code et partagez cela et le compléter !

    Voici un example de comment utiliser le toolkit code. Regardez la balise @include



    Le multi langue pour adresser les internautes dans leur propre language

    Pour l'instant seulement le français , et l'anglais sont pris en compte. Suivant l'extension du site .com ou .fr on redirige .com vers anglais et .fr vers français d'autres languages sont à venir! ainsi que la gestion d'autres extensions de site

    Comment sont gérés les permissions des utilisateurs ?

    Comment fonctionne les règles de permissions ?

    Si vous ouvrez le panel view page system par exemple celui ci :


    les champs qui nous intéressent sont type et action

    Un ensemble de pages appartient à un type:groovel, pour les différentier de vos pages personnelles que vous serez amené à développer
    Quand vous accédez à une page c'est pour effectuer une action :CRUD : create,read,update,delete
    dans notre exemple pour accéder à la page dashboard, il faut avoir le droit read
    Dans le champ action on précise quelle action on peut faire.

    Pour chaque utilisateur,on associe un rôle, un rôle contient un ensemble de permissions.

    PUBLIC est le rôle donné par défaut à tous les nouveaux inscrits.
    Quand un utilisateur accéde à une url; le système se charge de vérifier les permissions des utilisateurs action+url avec action et url de la page déclarée.
    si ce n'est pas le cas l’accès est refusé.

    Qu'est ce qu'un rôle? et Comment sont gérés les rôles des utilisateurs?

    Précédemment nous avons vu comment gérer les permissions des utilisateurs
    Dans groovel , on peut définir des rôles qui by pass les permissions , pour l'instant le rôle principal est ADMIN.
    Comme son nom l'indique , avec ce rôle l'utilisateur a tous les droits , ce qui évite de rajouter toutes les permissions.


    Comme on le voit développer avec des rôles c'est plus simple mais il faudra mémoriser ce que vous avez le droit de faire avec telle rôle que vous définissez.