|
|
# Définition
|
|
|
|
|
|
CO2 est le nom du module correspondant à la 2nd version du module Communecter.
|
|
|
Le module CO2 fait parti du projet PixelHumain, au même titre que d'autres modules développés au sein de PixelHumain.
|
|
|
|
|
|
CO2 a lui même été construit de façon à pouvoir intégrer facilement de nouvelles applications, et aussi pouvoir les activer/désactiver très facilement, via 1 seul fichier de configuration : https://github.com/pixelhumain/co2/blob/master/config/CO2/params.json
|
|
|
|
|
|
Les applications actuellement activées sont : welcome, recherche, agenda, annonces, live, page, et info.
|
|
|
Ce fichier sert à configurer un certain nombre de paramètres pour chaque application, ce qui permet de configurer très rapidement une nouvelle app, sans toucher au code commun qui gère toutes les applications.
|
|
|
|
|
|
|
|
|
# Créer une nouvelle application dans CO2
|
|
|
|
|
|
## 1- Ajouter l'application dans le fichier /modules/co2/config/CO2/params.json, en suivant l'exemple suivant :
|
|
|
|
|
|
Il convient bien évidemment de remplacer "#nomdelapplication" par le nom de votre application, les titres ect ...
|
|
|
Pour l'icône, choisir un nom parmi cette liste : http://fontawesome.io/icons/
|
|
|
|
|
|
```
|
|
|
"#nomdelapplication": {
|
|
|
"inMenu" : true,
|
|
|
"useHeader" : true,
|
|
|
"open" : true,
|
|
|
"subdomain" : "nomdelapplication",
|
|
|
"subdomainName" : "Nomdelapplication",
|
|
|
"hash" : "#app.nomdelapplication",
|
|
|
"icon" : "nomDeLIconeFontawesome",
|
|
|
"mainTitle" : "Nom de l'application",
|
|
|
"placeholderMainSearch" : "Rechercher dans ..."
|
|
|
},
|
|
|
```
|
|
|
(il est conseillé d'indiquer tous les paramètres, mais il est possible d'en enlever ou d'en rajouter selon vos besoins.)
|
|
|
|
|
|
|
|
|
## 2- Ajouter une nouvelle fonction dans le fichier AppController.php du module CO2
|
|
|
|
|
|
Ouvrir le fichier /modules/co2/controllers/AppController.php et rajouter par exemple :
|
|
|
|
|
|
```
|
|
|
public function actionNomdelapplication(){
|
|
|
CO2Stat::incNbLoad("co2-nomdelapplication");
|
|
|
echo $this->renderPartial("nomdelapplication", array(), true);
|
|
|
}
|
|
|
```
|
|
|
|
|
|
## 3- Créer les liens vers les actions
|
|
|
|
|
|
Dans /modules/co2/components/CommunecterController.php, il faut ajouter votre lien dans l'array "app" :
|
|
|
(l'array app se situe environ à la ligne 460 du fichier)
|
|
|
|
|
|
```
|
|
|
"app" => array(
|
|
|
"nomdelapplication" => array('href' => "/ph/communecter/app/nomdelapplication", "public" => true),
|
|
|
),
|
|
|
```
|
|
|
|
|
|
## 4- Créer la vue
|
|
|
|
|
|
Elle est appelée par le contrôleur pour gérer l'affichage (code HTML, CSS, JS).
|
|
|
|
|
|
Créer le fichier /modules/co2/views/app/nomdelapplication.php
|
|
|
|
|
|
On peut inclure le code d'une autre vue en utilisant $this->renderPartial
|
|
|
|
|
|
|
|
|
## 5- Accéder à votre application
|
|
|
|
|
|
Bravo ! Maintenant vous n'avez plus qu'à accéder à votre application grâce à l'url suivante :
|
|
|
|
|
|
` http://127.0.0.1/ph/co2#nomdelapplication `
|
|
|
|
|
|
|
|
|
|
|
|
# Créer un nouvel élément dans CO2
|
|
|
Communecter permet déjà de gérer plusieurs éléments : citoyens, organisations, projets, événement, news, point d'intérets, annonces, etc...)
|
|
|
|
|
|
Voici la marche à suivre pour ajouter un nouvel élément,
|
|
|
|
|
|
## 1- Créer un nouveau controller dans le module CitizenToolKit
|
|
|
|
|
|
Créer le dossier /modules/citizenToolKit/controllers/nomdelelement
|
|
|
Ce dossier contiendra l'ensemble de la logique métier.
|
|
|
|
|
|
A l'intérieur de ce dossier, créer les actions dont vous avez besoin.
|
|
|
Pour créer une action, créer un fichier comme "/modules/citizenToolKit/controllers/nomdelelement/IndexAction.php" qui contiendra par exemple :
|
|
|
|
|
|
```
|
|
|
<?php
|
|
|
class IndexAction extends CAction
|
|
|
{
|
|
|
public function run( $type=null, $id= null )
|
|
|
{
|
|
|
$paramOne = "test1";
|
|
|
$paramTwo = "test2";
|
|
|
$params = array("paramOne" => $paramOne, "paramTwo" => $paramTwo);
|
|
|
if(Yii::app()->request->isAjaxRequest)
|
|
|
echo $controller->renderPartial("index", $params,true);
|
|
|
else
|
|
|
$controller->render( "index" , $params );
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
Créer les autres classes de la même manière :
|
|
|
"/modules/citizenToolKit/controllers/nomdelelement/searchAction.php"
|
|
|
"/modules/citizenToolKit/controllers/nomdelelement/saveAction.php"
|
|
|
etc
|
|
|
|
|
|
## 2- Créer un nouveau modèle dans le module CitizenToolKit
|
|
|
|
|
|
Créer le fichier /modules/citizenToolKit/models/nomdelelement.php
|
|
|
|
|
|
```
|
|
|
<?php
|
|
|
class Nomdelelement {
|
|
|
|
|
|
const COLLECTION = "nomdelelement";
|
|
|
const CONTROLLER = "nomdelelement";
|
|
|
const ICON = "fa-rss";
|
|
|
const COLOR = "#F9B21A";
|
|
|
|
|
|
public static function nomdelafonction() {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
## 3- Créer un nouveau controller dans le module CO2
|
|
|
|
|
|
Créer le fichier /modules/co2/controllers/NomdelelementController.php et le remplir comme dans l'exemple suivant :
|
|
|
|
|
|
```
|
|
|
<?php
|
|
|
class NomdelelementController extends CommunecterController {
|
|
|
protected function beforeAction($action) {
|
|
|
return parent::beforeAction($action);
|
|
|
}
|
|
|
|
|
|
public function actions()
|
|
|
{
|
|
|
return array(
|
|
|
'index' => 'citizenToolKit.controllers.nomdelelement.IndexAction',
|
|
|
'autre' => 'citizenToolKit.controllers.nomdelelement.AutreAction'
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
?>
|
|
|
```
|
|
|
|
|
|
L'array retourné par la fonction actions() contient l'essemble des pages qui seront traitées par les classes précédemment créées dans le module CitizenToolKit.
|
|
|
|
|
|
|
|
|
|
|
|
## 4- Créer les liens vers les actions
|
|
|
|
|
|
Dans /modules/co2/components/CommunecterController.php, il faut créer les liens vers les actions (qui afficheront les sous pages) dans l'array $pages :
|
|
|
|
|
|
```
|
|
|
"nomdelelement" => array(
|
|
|
"index" => array("href" => "/ph/communecter/nomdelelement/index", "public" => true),
|
|
|
"autre" => array("href" => "/ph/communecter/nomdelelement/autre", "public" => true)
|
|
|
),
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 5- Créer la vue
|
|
|
|
|
|
Elle est appelée par le contrôleur pour gérer l'affichage (code HTML, CSS, JS).
|
|
|
|
|
|
Créer le dossier /modules/co2/views/nomdelelement puis fichiers nommés en fonction du nom des actions :
|
|
|
- /modules/co2/views/nomdelelement/index.php
|
|
|
- /modules/co2/views/nomdelelement/autre.php |
|
|
\ No newline at end of file |