Add files & declarations for rules engine integration

git-svn-id: https://forge.glpi-project.org/svn/example/trunk@143 349b9182-4a13-0410-896f-e5e9767dd1b3
This commit is contained in:
wawax 2010-10-05 13:34:02 +00:00
parent a8f6e5aade
commit b746815f03
7 changed files with 336 additions and 0 deletions

47
ajax/ruletest.tabs.php Executable file
View File

@ -0,0 +1,47 @@
<?php
/*
* @version $Id$
-------------------------------------------------------------------------
GLPI - Gestionnaire Libre de Parc Informatique
Copyright (C) 2003-2010 by the INDEPNET Development Team.
http://indepnet.net/ http://glpi-project.org
-------------------------------------------------------------------------
LICENSE
This file is part of GLPI.
GLPI is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GLPI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GLPI; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--------------------------------------------------------------------------
*/
// ----------------------------------------------------------------------
// Original Author of file: Julien Dombre
// Purpose of file:
// ----------------------------------------------------------------------
define('GLPI_ROOT', '../../..');
include (GLPI_ROOT . "/inc/includes.php");
header("Content-Type: text/html; charset=UTF-8");
header_nocache();
checkRight('rule_ocs', 'r');
$rule = new PluginExampleRuleTest();
include ("../../../ajax/rule.common.tabs.php");
?>

62
front/popup.php Normal file
View File

@ -0,0 +1,62 @@
<?php
/*
* @version $Id$
-------------------------------------------------------------------------
GLPI - Gestionnaire Libre de Parc Informatique
Copyright (C) 2003-2010 by the INDEPNET Development Team.
http://indepnet.net/ http://glpi-project.org
-------------------------------------------------------------------------
LICENSE
This file is part of GLPI.
GLPI is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GLPI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GLPI; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--------------------------------------------------------------------------
*/
define('GLPI_ROOT', '../../..');
include (GLPI_ROOT . "/inc/includes.php");
checkLoginUser();
if (isset($_GET["popup"])) {
$_SESSION["glpipopup"]["name"] = $_GET["popup"];
}
if (isset($_SESSION["glpipopup"]["name"])) {
switch ($_SESSION["glpipopup"]["name"]) {
case "test_rule" :
popHeader($LANG['buttons'][50],$_SERVER['PHP_SELF']);
include "../../../front/rule.test.php";
break;
case "test_all_rules" :
popHeader($LANG['rulesengine'][84],$_SERVER['PHP_SELF']);
include "../../../front/rulesengine.test.php";
break;
case "show_cache" :
popHeader($LANG['rulesengine'][100],$_SERVER['PHP_SELF']);
include "../../../front/rule.cache.php";
break;
}
echo "<div class='center'><br><a href='javascript:window.close()'>".$LANG['buttons'][13]."</a>";
echo "</div>";
popFooter();
}
?>

43
front/ruletest.form.php Normal file
View File

@ -0,0 +1,43 @@
<?php
/*
* @version $Id$
-------------------------------------------------------------------------
GLPI - Gestionnaire Libre de Parc Informatique
Copyright (C) 2003-2010 by the INDEPNET Development Team.
http://indepnet.net/ http://glpi-project.org
-------------------------------------------------------------------------
LICENSE
This file is part of GLPI.
GLPI is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GLPI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GLPI; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--------------------------------------------------------------------------
*/
// ----------------------------------------------------------------------
// Original Author of file: Walid Nouh
// Purpose of file:
// ----------------------------------------------------------------------
define('GLPI_ROOT', '../../..');
include (GLPI_ROOT . "/inc/includes.php");
$rulecollection = new PluginExampleRuleTestCollection();
include (GLPI_ROOT . "/front/rule.common.form.php");
?>

43
front/ruletest.php Normal file
View File

@ -0,0 +1,43 @@
<?php
/*
* @version $Id$
-------------------------------------------------------------------------
GLPI - Gestionnaire Libre de Parc Informatique
Copyright (C) 2003-2010 by the INDEPNET Development Team.
http://indepnet.net/ http://glpi-project.org
-------------------------------------------------------------------------
LICENSE
This file is part of GLPI.
GLPI is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GLPI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GLPI; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--------------------------------------------------------------------------
*/
// ----------------------------------------------------------------------
// Original Author of file: Walid Nouh
// Purpose of file:
// ----------------------------------------------------------------------
define('GLPI_ROOT', '../../..');
include (GLPI_ROOT . "/inc/includes.php");
$rulecollection = new PluginExampleRuleTestCollection();
include (GLPI_ROOT . "/front/rule.common.php");
?>

83
inc/ruletest.class.php Normal file
View File

@ -0,0 +1,83 @@
<?php
/*
* @version $Id$
-------------------------------------------------------------------------
GLPI - Gestionnaire Libre de Parc Informatique
Copyright (C) 2003-2010 by the INDEPNET Development Team.
http://indepnet.net/ http://glpi-project.org
-------------------------------------------------------------------------
LICENSE
This file is part of GLPI.
GLPI is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GLPI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GLPI; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--------------------------------------------------------------------------
*/
// ----------------------------------------------------------------------
// Original Author of file: Walid Nouh
// Purpose of file:
// ----------------------------------------------------------------------
if (!defined('GLPI_ROOT')) {
die("Sorry. You can't access directly to this file");
}
/**
* Rule class store all informations about a GLPI rule :
* - description
* - criterias
* - actions
*
**/
class PluginExampleRuleTest extends Rule {
// From Rule
public $right='rule_ocs';
public $can_sort=true;
function getTitle() {
global $LANG;
return 'test';
}
function maxActionsCount() {
return 1;
}
function getCriterias() {
global $LANG;
$criterias = array();
$criterias['name']['field'] = 'name';
$criterias['name']['name'] = $LANG['help'][31];
$criterias['name']['table'] = 'glpi_softwares';
return $criterias;
}
function getActions() {
global $LANG;
$actions = array();
$actions['softwarecategories_id']['name'] = $LANG['common'][36];
$actions['softwarecategories_id']['type'] = 'dropdown';
$actions['softwarecategories_id']['table'] = 'glpi_softwarecategories';
return $actions;
}
}
?>

View File

@ -0,0 +1,54 @@
<?php
/*
* @version $Id$
-------------------------------------------------------------------------
GLPI - Gestionnaire Libre de Parc Informatique
Copyright (C) 2003-2010 by the INDEPNET Development Team.
http://indepnet.net/ http://glpi-project.org
-------------------------------------------------------------------------
LICENSE
This file is part of GLPI.
GLPI is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GLPI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GLPI; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--------------------------------------------------------------------------
*/
// ----------------------------------------------------------------------
// Original Author of file: Walid Nouh
// Purpose of file:
// ----------------------------------------------------------------------
if (!defined('GLPI_ROOT')) {
die("Sorry. You can't access directly to this file");
}
class PluginExampleRuleTestCollection extends RuleCollection {
// From RuleCollection
public $stop_on_first_match=true;
public $right='rule_ocs';
public $menu_option='test';
function getTitle() {
global $LANG;
return 'Rulesengine test';
}
}
?>

View File

@ -49,6 +49,10 @@ function plugin_init_example() {
Plugin::registerClass('PluginExampleExample', Plugin::registerClass('PluginExampleExample',
array('notificationtemplates_types' => true)); array('notificationtemplates_types' => true));
//Classes for rulesengine
Plugin::registerClass('PluginExampleRuleTest');
Plugin::registerClass('PluginExampleRuleTestCollection',array('rulecollections_types'=>true));
// Display a menu entry ? // Display a menu entry ?
if (isset($_SESSION["glpi_plugin_example_profile"])) { // Right set in change_profile hook if (isset($_SESSION["glpi_plugin_example_profile"])) { // Right set in change_profile hook
$PLUGIN_HOOKS['menu_entry']['example'] = 'front/example.php'; $PLUGIN_HOOKS['menu_entry']['example'] = 'front/example.php';