Add possibility to move trigger in "/mymodule/inc/triggers/"
This commit is contained in:
parent
048f3dbe0f
commit
488479de5e
@ -28,81 +28,10 @@ include_once(DOL_DOCUMENT_ROOT ."/interfaces.class.php");
|
|||||||
if (!$user->admin)
|
if (!$user->admin)
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Action
|
||||||
if ($_GET["action"] == 'set' && $user->admin)
|
|
||||||
{
|
|
||||||
Activate($_GET["value"]);
|
|
||||||
|
|
||||||
Header("Location: modules.php?spe=".$_GET["spe"]);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($_GET["action"] == 'reset' && $user->admin)
|
|
||||||
{
|
|
||||||
UnActivate($_GET["value"]);
|
|
||||||
|
|
||||||
Header("Location: modules.php?spe=".$_GET["spe"]);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Active un module
|
|
||||||
* \param value Nom du module a activer
|
|
||||||
*/
|
*/
|
||||||
function Activate($value)
|
|
||||||
{
|
|
||||||
global $db, $modules;
|
|
||||||
|
|
||||||
$modName = $value;
|
|
||||||
|
|
||||||
// Activation du module
|
|
||||||
if ($modName)
|
|
||||||
{
|
|
||||||
$file = $modName . ".class.php";
|
|
||||||
include_once("../includes/modules/".$file);
|
|
||||||
$objMod = new $modName($db);
|
|
||||||
$objMod->init();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Activation des modules dont le module depend
|
|
||||||
for ($i = 0; $i < sizeof($objMod->depends); $i++)
|
|
||||||
{
|
|
||||||
Activate($objMod->depends[$i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Desactive un module
|
|
||||||
* \param value Nom du module a desactiver
|
|
||||||
*/
|
|
||||||
function UnActivate($value)
|
|
||||||
{
|
|
||||||
global $db, $modules;
|
|
||||||
|
|
||||||
$modName = $value;
|
|
||||||
|
|
||||||
// Desactivation du module
|
|
||||||
if ($modName)
|
|
||||||
{
|
|
||||||
$file = $modName . ".class.php";
|
|
||||||
include_once("../includes/modules/".$file);
|
|
||||||
$objMod = new $modName($db);
|
|
||||||
$objMod->remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Desactivation des modules qui dependent de lui
|
|
||||||
for ($i = 0; $i < sizeof($objMod->requiredby); $i++)
|
|
||||||
{
|
|
||||||
UnActivate($objMod->requiredby[$i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
Header("Location: modules.php");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -165,6 +94,45 @@ while (($file = readdir($handle))!==false)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
closedir($handle);
|
||||||
|
|
||||||
|
// Find external module triggers
|
||||||
|
$interfaces->getModulesTriggers();
|
||||||
|
foreach($interfaces->pathoftriggers as $dir)
|
||||||
|
{
|
||||||
|
$handle=opendir($dir);
|
||||||
|
|
||||||
|
while (($file = readdir($handle))!==false)
|
||||||
|
{
|
||||||
|
if (is_readable($dir.'/'.$file) && preg_match('/^interface_([^_]+)_(.+)\.class\.php/',$file,$reg))
|
||||||
|
{
|
||||||
|
$modName = 'Interface'.ucfirst($reg[2]);
|
||||||
|
//print "file=$file"; print "modName=$modName"; exit;
|
||||||
|
if (in_array($modName,$modules))
|
||||||
|
{
|
||||||
|
$langs->load("errors");
|
||||||
|
print '<div class="error">'.$langs->trans("Error").' : '.$langs->trans("ErrorDuplicateTrigger",$modName,"/htdocs/includes/triggers/").'</div>';
|
||||||
|
$objMod = new $modName($db);
|
||||||
|
|
||||||
|
$modules[$i] = $modName;
|
||||||
|
$files[$i] = $file;
|
||||||
|
$orders[$i] = $objMod->family; // Tri par famille
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include_once($dir.'/'.$file);
|
||||||
|
$objMod = new $modName($db);
|
||||||
|
|
||||||
|
$modules[$i] = $modName;
|
||||||
|
$files[$i] = $file;
|
||||||
|
$orders[$i] = $objMod->family; // Tri par famille
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($handle);
|
||||||
|
}
|
||||||
|
|
||||||
asort($orders);
|
asort($orders);
|
||||||
$var=True;
|
$var=True;
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2005-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2005-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
|
* Copyright (C) 2010 Regis Houssin <regis@dolibarr.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -18,24 +19,25 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file htdocs/interfaces.class.php
|
* \file htdocs/interfaces.class.php
|
||||||
\ingroup core
|
* \ingroup core
|
||||||
\brief Fichier de la classe de gestion des triggers
|
* \brief Fichier de la classe de gestion des triggers
|
||||||
\version $Id$
|
* \version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\class Interfaces
|
* \class Interfaces
|
||||||
\brief Classe de la gestion des triggers
|
* \brief Classe de la gestion des triggers
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Interfaces
|
class Interfaces
|
||||||
{
|
{
|
||||||
var $dir; // Directory with all trigger files
|
var $dir; // Directory with all core trigger files
|
||||||
var $errors=array(); // Array for errors
|
var $errors = array(); // Array for errors
|
||||||
|
var $pathoftriggers = array(); // Array for path of triggers
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Constructeur.
|
* \brief Constructeur.
|
||||||
* \param DB handler d'acces base
|
* \param DB handler d'acces base
|
||||||
*/
|
*/
|
||||||
@ -45,7 +47,7 @@ class Interfaces
|
|||||||
$this->dir = DOL_DOCUMENT_ROOT . "/includes/triggers";
|
$this->dir = DOL_DOCUMENT_ROOT . "/includes/triggers";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Fonction appelee lors du declenchement d'un evenement Dolibarr.
|
* \brief Fonction appelee lors du declenchement d'un evenement Dolibarr.
|
||||||
* Cette fonction declenche tous les triggers trouves actifs.
|
* Cette fonction declenche tous les triggers trouves actifs.
|
||||||
* \param action Code de l'evenement
|
* \param action Code de l'evenement
|
||||||
@ -144,5 +146,31 @@ class Interfaces
|
|||||||
return $nbok;
|
return $nbok;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Return list of modules contains triggers.
|
||||||
|
* \return array List of module name.
|
||||||
|
*/
|
||||||
|
function getModulesTriggers()
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
foreach($conf->global as $key => $value)
|
||||||
|
{
|
||||||
|
if (preg_match('/^MAIN_TRIGGER_/',$key))
|
||||||
|
{
|
||||||
|
if ($value)
|
||||||
|
{
|
||||||
|
if (preg_match('/^MAIN_TRIGGER_([[:alnum:]]*)$/',$key,$regs))
|
||||||
|
{
|
||||||
|
$modulename = strtolower($regs[1]);
|
||||||
|
$pathoftrigger = DOL_DOCUMENT_ROOT.'/'.$modulename.'/inc/triggers/';
|
||||||
|
$this->pathoftriggers[] = $pathoftrigger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user