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