======= Module Hello World! =======
Il s'agit de créer un module simple sans aucun accès aux bases de données. OpenGoo utilise le [[http://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur|design pattern MVC]], mais pour cet exemple, nous avons seulement besoin de la vue et du contrôleur.
===== Nouveau contrôleur =====
Créez un nouveau fichier appelé //HelloworldController.class.php// dans le dossier application/controllers. Ce contrôleur sera chargé automatiquement et rendra disponible une ou plusieurs actions (ici une seul : //index//). Vous pouvez définir des variables à utiliser dans le template.
class HelloworldController extends ApplicationController {
function __construct() {
parent::__construct();
prepare_company_website_controller($this, 'website');
}
function index() {
$my_var = 'World';
tpl_assign('world', $my_var);
}
}
===== Nouvelle vue =====
Créez un fichier portant le même nom que l'action, ici //index.php//, dans le dossier application/views, et afficher la variable assignée dans le contrôleur.
Hello !
===== Intégrer dans OpenGoo =====
Affichez le nouveau module comme un onglet : ajoutez-le au constructeur de la classe //TabPanel// dans l'array //items// dans le fichier public/assets/javascript/og/layout.js :
var tab_panel = new Ext.TabPanel({
id: 'tabs-panel',
region:'center',
activeTab: 0,
enableTabScroll: true,
items: [
...
new og.ContentPanel({
title: lang('helloworld'),
id: 'helloworld-panel',
iconCls: 'ico-helloworld',
refreshOnWorkspaceChange: true,
defaultContent: {
type: "url",
data: og.getUrl('helloworld','index')
}
}),
===== Définir un label et un icône pour le Module =====
Pour la traduction en anglais ajouter un nouvel élément appelé //helloword// (voir ci-dessous) dans l'array dans le fichier javascript language/en_us/lang.js.
Pour la traduction en français, ajouterz un nouvel élément appelé //Bonjour le monde// cette fois ci dans le fichier javascript language/fr_fr/lang.js.
...
'completed on': 'Completed on',
/* Hello World */
'helloworld': 'Hello World'
L'icône doit être définie par le thème utilisé, ainsi que par le thème par défaut, enregistrez votre icône par défaut dans le dossier public/assets/themes/default/images/16x16.
Ensuite, ajoutez la classe CSS //ico-helloworld// de votre icône dans le fichier CSS public/assets/themes/default/stylesheets/general/layout.css
.ico-helloworld {
background-image: url(../../images/16x16/helloworld.png) !important;
}
Maintenant rechargez OpenGoo et vous verrez votre Module Hello World ! apparaitre.
Pour voir la discussion (en anglais) http://forums.opengoo.org/index.php?topic=476.0