Comment faire un blog avec Novius OS #2

Me voici de retour pour vous expliquer, comme promis, comment **étendre une application** et comment créer une **application simple via l’appwizard**.

L’appwizard pour commencer sur de bonnes bases.

Il n’est jamais vraiment simple de créer un nouveau module ou une extension pour la première fois. Vous trouverez toujours un tuto pour vous expliquer comment ça marche, mais malheureusement le tuto ne répond jamais à ce que vous voulez.

Et bien Novius OS règle ce problème à l’aide de sa superbe application : l’Appwizard. Pour faire simple, cette application va vous permettre de créer une application de base, paramétrée comme vous le souhaitez. Pour ce faire, vous avez un formulaire on ne peut plus simple qui vous demande de renseigner les modèles de votre application (pour ce blog, des “copains”) avec leurs propriétés. Ensuite vous renseignez les champs que vous désirez voir apparaitre dans l’appdesk (le listing de vos éléments) et dans le crud (le formulaire d’ajout et modification d’un élément).  Une fois ceci fait, vous n’avez plus qu’à appuyer sur un bouton pour générer votre application qui sera déjà fonctionnelle, en back office comme en front office, pour peu que vous ayez choisi ces options lors de la création.

Ensuite, vous n’aurez plus qu’à personnaliser votre application et en faire ce que vous voulez en vous plongeant dans le code. Il faut d’ailleurs noter que l’appwizard génère des fichiers possédant beaucoup de code commenté. Ce code peut vous servir de base pour améliorer votre application en vous permettant d’y ajouter des fonctionnalités prévues par Novius OS. Bref, l’appwizard est l’application idéale pour comprendre le fonctionnement de Novius OS pour n’importe quel technicien qui se respecte (sans oublier d’avoir la documentation à portée de clic).

Comme je sais que vous aimez les vidéos, voici le screencast qui présente l’appwizard :

Étendre une application pour la personnaliser.

Évidemment, les fondements de ce blog ne se basent pas sur ma petite application “copains”. Pour faire ce blog, j’ai étendu l’application native “blog”. Pour cela, rien de plus simple. Les applications de Novius OS sont avant tout définies par leur fichier “metadata.config.php”. Voici le contenu de celui de l’application Oppoc :

 return array(
    'name'    => 'Oppoc',
    'version' => '1.0',
    'provider' => array(
        'name' => 'Foine',
    ),
    'extends' => 'noviusos_blog',
    'namespace' => 'Oppoc',
    'templates' => array(
        'oppoc_main' => array(
            'file' => 'oppoc::template/main',
            'title' => 'Oppoc',
            'cols' => 1,
            'rows' => 1,
            'layout' => array(
                'content' => '0,0,1,1',
            ),
            'module' => '',
        ),
    ),
);

Que retient-on de ce fichier ? Principalement deux choses :

  • l’application étend noviusos_blog. Mais qu’une application étende une autre ne veut pas dire, comme pour php et ses classes, que l’application Oppoc “précise” l’application blog. Non, dans Novius OS une application qui en étend une deuxième va être un greffon pour l’aplication de base. C’est à dire que dès que l’application blog sera chargée, l’application oppoc sera elle aussi chargée. Cela permet de multiple possibilité ! Par exemple, si vous vouliez avoir un bouton de partage facebook sur tous vos articles de blogs, vous pourriez créer une application “Facebook Share Post” qui étendrait le blog et ne ferait qu’ajouter le bouton à chaque article. Les possibilités sont donc nombreuses.
  • l’aplication possède un template. Ce sera ce template qui donnera son aspect au Front Office. Nous ne verrons pas ici comment créer un template, mais ce sera peut être le sujet d’un prochain article. En attendant, je vous conseille l’application noviusos_template_basic qui porte bien son nom.

Mais comme je l’ai dit, une application qui en étend une autre n’est pas “réellement” faite pour modifier l’application de base. En tout cas ce n’est pas obligatoire. Comment ai-je donc pu modifier l’application blog pour ajouter, par exemple, mes champs de mise en avant (qui me servent pour le slider d’accueil) ?

champs-highlight

Et bien vous découvrirez ça au prochain épisode! Car bon, on cause, on cause, mais il commence à être long cet article. Je vous laisse donc digérer tout ça avant de vous dévoiler mes secrets de fabrication.

2 commentaires sur “Comment faire un blog avec Novius OS #2Ajoutez votre →

  1. Comment gère-t-on les étapes de validations ? Typiquement, dans un formulaire, on souhaite que certains champs soient obligatoire ou non, qu’ils soient construit de telle ou telle façon, qu’il dépendent de données “externes” (une/des collection(s)), etc. Pire encore, comment faire évoluer le formulaire suivant l’état de la données éditées ? Je m’explique : quand on veut gérer des données, il se peut qui suivant une caractéristique donnée, alors un ou plusieurs champs seront affichés ou masque.

    1. Je vais te demander de replacer le contexte :p
      Car là j’ai un peu de mal à te suivre.

      Néanmoins, de ce que j’ai cru comprendre, tu voudrais savoir comment ajouter des champs un peu plus complexe qu’un champ de texte à ton CRUD. Est ce bien cela ?

      Si oui, il est assez facile d’ajouter de nouveaux champ une fois les bases de l’application posé avec l’app wizard. En revanche, ce dernier ne gère pas les champs compliqué. Ça reste un outil pour avoir les bases et il n’a pas vocation à gérer tous les cas possible et imaginable.

      Je ne vais pas développer ici comment ajouter des champs plus compliqué car j’en parlerai dans le prochain article 😉 Promis je ne traîne pas trop pour le faire.
      Mais pour info, ça se situe dans la configuration du crud, du côté de la clé ‘fields’ qui détermine tout tes champs. Ici il y a pas mal de possibilité pour faire le champ que tu souhaite avec toutes les étapes de validation que tu souhaite.
      Si je n’ai pas du tout répondu à ta question, relance moi ! 😀

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *