Updated Création d'un nouveau module dans CO2 (markdown) authored by GrondinDam's avatar GrondinDam
Voici un petit tutoriel permettant de créer un nouveau module dans CO2.
# Création d'une nouvelle "application" dans params.json
Dans le fichier /modules/co2/config/CO2/params.json, il faut ajouter votre application en suivant l'exemple suivant :
Il convient bien évidemment de remplacer "#interoperability" par le nom de votre module, les titres ect ...
Important : ne pas oublier de mettre un "hash" correct type "#app.votremodule", c'est celà qui va pointer votre module vers la bonne page.
```
"#interoperability": {
"inMenu" : false,
"useHeader" : true,
"open" : true,
"subdomain" : "interoperability",
"subdomainName" : "Intéropérabilité",
"hash" : "#app.interoperability",
"icon" : "database",
"mainTitle" : "Module d'intéropérabilité",
"placeholderMainSearch" : "Rechercher des données venus d'ailleurs ..."
},
```
# Création d'un nouveau controller
## Création d'un nouveau controller dans le CitizenToolKit
Il faut se placer dans le dossier : /modules/citizenToolKit/controllers et créer un nouveau dossier (avec pour nom le nom de votre module de préférence).
Ce dossier contiendra l'enssemble de la logique métier dont aura besoin votre nouveau module.
## Création du controller dans le module CO2
Il faut se placer dans le dossier : /modules/co2/controllers et créer une nouvelle page PHP avec pour nom "votremoduleController" et le remplir comme dans l'exemple suivant (exemple pour InteroperabilityController.php) :
```
<?php
class InteroperabilityController extends CommunecterController {
protected function beforeAction($action) {
return parent::beforeAction($action);
}
public function actions()
{
return array(
'index' => 'citizenToolKit.controllers.interoperability.IndexAction',
'wiki' => 'citizenToolKit.controllers.interoperability.WikiAction',
'datagouv' => 'citizenToolKit.controllers.interoperability.DatagouvAction',
'osm' => 'citizenToolKit.controllers.interoperability.OsmAction',
'ods' => 'citizenToolKit.controllers.interoperability.OdsAction',
);
}
}
?>
```
Important : Ne surtout pas oublier le "extends CommunecterController" dans la déclaration de la classe.
L'array retourné par la fonction fonction actions() contient l'essemble des pages qui se trouvent dans votre controller créer à l'étape précédente (rapel : controller se situant dans /modules/citizenToolKit/controllers)
# Création du lien vers la page de votre module
## Dans CommunecterController.php
Comme vous l'avez vu, votre nouveau controller hérite de la classe CommunecterController, il convient d'ajouter votre lien dans ce fichier : /modules/co2/components/CommunecterController.php.
Il faut ajouter un nouvel array dans le public array "$pages" comme dans l'exemple suivant :
```
"interoperability" => array(
"index" => array('href' => 'ph/communecter/interoperability/index', "public" => true),
),
```
Ici "href" correspond au lien qui permettra d'accéder a votre module
# Création de la vue
Maintenant que votre controller est créer ainsi que votre lien, il reste à créer la vue qui affichera votre module.
Il faut se placer dans le dossier /modules/co2/views/app/ et créer votre vue du style "interoperability.php"
Dans ce fichier, vous pouvez placer tout votre code HTML, PHP, JS qui contiendra les éléments visueles de votre page.
# Accéder à votre module
Bravo ! Maintenant vous n'avez plus qu'à accéder à votre module grâce à l'url suivante (remplacer interoperability par le nom de votre module ):
` http://127.0.0.1/ph/co2#interoperability `