modele.plugin.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. //Cette fonction va generer un nouveau element dans le menu
  3. function test_plugin_menu(&$menuItems){
  4. global $_;
  5. $menuItems[] = array(
  6. 'sort'=>10,
  7. 'url'=>'index.php?module=modele',
  8. 'label'=>'Modele',
  9. 'icon'=>'codepen'
  10. );
  11. }
  12. //Cette fonction va generer une page quand on clique sur Modele dans menu
  13. function test_plugin_page(){
  14. global $_;
  15. if(!isset($_['module']) || $_['module']!='modele') return;
  16. require_once('Voiture.class.php');
  17. ?>
  18. <h3>Mon plugin</h3>
  19. <h5>Plugins d'exemple</h5>
  20. <?php
  21. }
  22. function test_plugin_install($id){
  23. if($id != 'fr.idleman.modele') return;
  24. require_once('Voiture.class.php');
  25. //Création de la table voiture
  26. Voiture::create();
  27. //Création d'une voiture d'exemple
  28. $pixo = new Voiture();
  29. $pixo->marque = "Nissan Pixo";
  30. $pixo->vitesse = 110;
  31. $pixo->save();
  32. // en cas d'erreur : throw new Exception('Mon erreur');
  33. }
  34. function test_plugin_uninstall($id){
  35. if($id != 'fr.idleman.modele') return;
  36. require_once('Voiture.class.php');
  37. Voiture::drop();
  38. // en cas d'erreur : throw new Exception('Mon erreur');
  39. }
  40. function test_plugin_section(&$sections){
  41. $sections['modele'] = 'Gestion du plugin Modèle';
  42. }
  43. //cette fonction comprends toutes les actions du plugin qui ne nécessitent pas de vue html
  44. function test_plugin_action(){
  45. global $_,$conf;
  46. switch($_['action']){
  47. case 'test_widget_load':
  48. $widget = Widget::getById($_['id']);
  49. $widget->title = 'Au commencement, il y avait yana';
  50. echo json_encode($widget);
  51. break;
  52. }
  53. }
  54. function test_plugin_widget_refresh(&$widgets){
  55. $widget = Widget::getById(1);
  56. $widget->title = 'Hello widget !';
  57. $widget->icon = 'fa-user';
  58. $widget->content = 'Dernier rafraichissement : '.date('d/m/Y H:i:s');
  59. $widgets[] = $widget ;
  60. }
  61. function test_plugin_widget(&$widgets){
  62. $modelWidget = new Widget();
  63. $modelWidget->model = 'test';
  64. $modelWidget->title = 'Horloge';
  65. $modelWidget->icon = 'fa-caret-right';
  66. $modelWidget->background = '#50597b';
  67. $modelWidget->load = 'action.php?action=test_widget_load';
  68. $modelWidget->delete = 'action.php?action=test_widget_delete';
  69. $modelWidget->js = [Plugin::url().'/main.js'];
  70. $modelWidget->css = [Plugin::url().'/main.css'];
  71. $widgets[] = $modelWidget;
  72. }
  73. Plugin::addCss("/main.css");
  74. Plugin::addJs("/main.js");
  75. Plugin::addHook("install", "test_plugin_install");
  76. Plugin::addHook("uninstall", "test_plugin_uninstall");
  77. Plugin::addHook("section", "test_plugin_section");
  78. Plugin::addHook("menu_main", "test_plugin_menu");
  79. Plugin::addHook("page", "test_plugin_page");
  80. Plugin::addHook("action", "test_plugin_action");
  81. ?>