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. Voici un petit tutoriel permettant de créer un nouveau module dans CO2.
\ No newline at end of file
# 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 `