Créer les formulaires

Nous allons maintenant créer les formulaires à l’aide du générateur.

Pour cela, il faut aller dans le menu Administration -> Générateur.

Vous devez avoir 3 nouveaux boutons : courrier, service et emetteur.

../_images/utilisation_1.png

Avant de commencer, l’utilisateur apache www-data doit avoir les droits d’écriture dans les repertoires /gen , /sql et /obj.

Générer les formulaires et édition du courrier

En appuyant sur le bouton de courrier, vous avez les choix de génération :

../_images/utilisation_2.png

Avertissement

Si certaines cases ne peuvent pas être cochées c’est que vous n’avez pas créer tous les repertoires nécessaires. Dans ce cas, créer les répertoires suivants avant de continuer : Création des répertoires dédiés au stockage des données de l’applicatif

Au préalable, le générateur a fait une analyse de la base de données :

../_images/utilisation_21.png

Le générateur a donc détecté 2 clés secondaires et aucun sous-formulaire.

C’est pour cela qu’il propose 3 « reqmos » : 1 « reqmo » global et 2 « reqmos » suivant les clés secondaires.

Par défaut, seules les options du formulaire sont cochées.

Si vous le refaites plus tard, seules celles fabriquées par le générateur seront cochées.

Cochez les toutes :

../_images/utilisation_22.png

En cliquant sur valider, vous avez le message :

../_images/utilisation_23.png

Le paramétrage utilisé est le paramétrage standard.

Vous pouvez le modifier : voir Paramétrage générateur.

L’affichage par colonne est « ok », ce qui veut dire que la taille des colonnes dans le fichier pdf sera complet (attention le script ne prend pas le champ blob).

Générer les formulaires et édition de l’emetteur

Nous allons procéder de la même manière avec le bouton emetteur.

L’analyse de la base de données est la suivante :

../_images/utilisation_24.png

Le générateur repère un sous formulaire courrier. Effectivement, il y a une relation de un à plusieurs entre emetteur et courrier : un emetteur peut avoir 0 à plusieurs courriers.

En cliquant sur toutes les options puis en validant, vous avez le message suivant :

../_images/utilisation_25.png

Générer les formulaires et édition de service

Nous allons procéder de la même manière avec le bouton service

L’analyse de la base de données est la suivante :

../_images/utilisation_26.png

Le générateur repère un sous formulaire courrier. Effectivement, il y a une relation de un à plusieurs entre service et courrier : un service peut avoir 0 à plusieurs courriers.

En cliquant sur toutes les options, vous avez le message suivant :

../_images/utilisation_27.png

Intégrer les formulaires dans le menu

Ajout de nouvelles entrées dans le menu

Pour accéder à nos formulaires, nous allons les intégrer dans le menu (voir paramètrage du menu).

Nous allons appeller le formulaire depuis le menu :

  • option Application -> OM_ROUTE_TAB. »&obj=courrier »
  • option Paramétrage -> OM_ROUTE_TAB. »&obj=emetteur »
  • option Paramétrage -> OM_ROUTE_TAB. »&obj=service »

La configuration du menu est réalisé via la méthode set_config_menu issue de la classe mère application présente dans core/om_application.class.php. Comme il s’agit d’une méthode issue du framework, on va devoir la surcharger si on veut la modifier. On créé donc une classe fille openexemple dans obj dans laquelle on va pouvoir surcharger la méthode voulue.

Ouvrir le fichier app/framework_openmairie.class.php avec un éditeur et insérer le code suivant dans la classe framework_openmairie :

protected function set_config__menu(){
    parent::set_config__menu();
    $parent_menu = $this->config__menu;
    $menu = array();

    // {{{ Rubrique APPLICATION
    $rubrik = array(
        "title" => __("application"),
        "class" =>  "application"
    );
    $links = array();

    $links[] = array(
        "href" => OM_ROUTE_TAB."&obj=courrier",
        "class" => "courrier",
        "title" => _("courrier"),
        "open" => array(
            "tab.php|courrier",
            "index.php|courrier[module=tab]",
            "form.php|courrier",
            "index.php|courrier[module=form]",
        ),
    );

    $rubrik['links'] = $links;
    $menu[] = $rubrik;
    // }}}

    // {{{ Rubrique PARAMETRAGE METIER
    $rubrik = array(
        "title" => _("parametrage metier"),
        "class" => "parametrage",
    );
    $links = array();

    $links[] = array(
        "href" => OM_ROUTE_TAB."&obj=emetteur",
        "class" => "emetteur",
        "title" => _("emetteur"),
        "right" => "emetteur",
        "open" => array(
            "tab.php|emetteur",
            "index.php|emetteur[module=tab]",
            "form.php|emetteur",
            "index.php|emetteur[module=form]",
        ),
    );

    $links[] = array(
        "href" => OM_ROUTE_TAB."&obj=service",
        "class" => "service",
        "title" => _("service"),
        "right" => "service",
        "open" => array(
            "tab.php|service",
            "index.php|service[module=tab]",
            "form.php|service",
            "index.php|service[module=form]",
        ),
    );

    $rubrik['links'] = $links;
    $menu[] = $rubrik;
    // }}}

    $this->config__menu = array_merge(
        $menu,
        $parent_menu
    );
}

Pour l’instant les rubriques ajoutées ne sont pas visible dans le menu. Pour les afficher, il faut donner les permissions à l’utilisateur d’accèder à ces entrées.

Gestion des permissions

L’affichage des entrées de menu est géré via des permissions. Ces permissions peuvent être ajoutées de 2 manières.

  1. En passant par le menu Administration > Gestion Des Utilisateurs > Droit
  2. En ajoutant les permissions directement dans la base de données

Pour ce tuto, on va se passer des permissions.

Modifier la config de l’application dans le fichier dyn/config.inc.php (option utilisée que pour le développement) en ajoutant la ligne :

$config['permission_if_right_does_not_exist'] = true;

Vous pouvez maintenant accéder à vos formulaires par le menu.