Alternc  latest
Alternc logiel libre pour l'hébergement
m_hooks Class Reference

This class manage hooks that any other class or panel page can call. More...

Public Member Functions

 invoke ($hname, $hparam=array(), $hclass=null)
 invoke() permet de lancer une fonction donné en parametre dans toute les classes connues de alternc, avec les parametres donnés. More...
 
 invoke_scripts ($scripts, $parameters=array())
 invoke each executable script of the directory (or the specified script) More...
 

Detailed Description

This class manage hooks that any other class or panel page can call.

or hook to.

Definition at line 27 of file m_hooks.php.

Member Function Documentation

◆ invoke()

m_hooks::invoke (   $hname,
  $hparam = array(),
  $hclass = null 
)

invoke() permet de lancer une fonction donné en parametre dans toute les classes connues de alternc, avec les parametres donnés.

Parameters
string$hnamenom de la fonction "hooks" que l'on cherche dans les classes
array$hparamtableau contenant les parametres
array | string$hclasstableau contenant les classes spécifique qu'on veux appeler (si on veux pas TOUTE les appeler)
Returns
array with the return of each classes

Definition at line 38 of file m_hooks.php.

38  {
39 
40  // Si $hclass est defini, on veut appeler le hooks QUE pour UNE
41  // classe et pas pour toute.
42  if (is_null($hclass)) {
43  global $classes;
44  } else {
45  if (is_array($hclass)) {
46  $classes = $hclass;
47  } else {
48  $classes = array($hclass);
49  }
50  }
51 
52  // On parcourt les classes, si la fonction qu'on cherche
53  // existe on l'execute et on rajoute ce qu'elle a retourné dans
54  // un tableau
55  $val = array();
56  if (!$classes) {
57  // Leaving early if classes isn't set prevents PHP warnings.
58  // Happens frequently when running PHPUnit tests.
59  return $val;
60  }
61  foreach ($classes as $c) {
62  global $$c;
63  if (method_exists($$c, $hname)) {
64  //$val[$$c]=call_user_func_array(array($$c,$hname), $hparam);
65  $val[$c] = call_user_func_array(array($$c, $hname), $hparam);
66  }
67  }
68 
69  // On retourne le tout
70  return $val;
71  }
$c
Definition: mem_param.php:46

References $c.

◆ invoke_scripts()

m_hooks::invoke_scripts (   $scripts,
  $parameters = array() 
)

invoke each executable script of the directory (or the specified script)

Parameters
string$scriptsa script or a directory
array$parametersparameters for the scripts
Returns
boolean TRUE

Definition at line 80 of file m_hooks.php.

80  {
81 
82  // First, build the list of script we want to launch
83  $to_launch = array();
84  if (is_file($scripts)) {
85  if (is_executable($scripts)) {
86  $to_launch[] = $scripts;
87  }
88  } else if (is_dir($scripts)) {
89  foreach (scandir($scripts) as $ccc) {
90  # scandir returns the file names only
91  $ccc = $scripts . '/' . $ccc;
92  if (is_file($ccc) && is_executable($ccc)) {
93  $to_launch[] = $ccc;
94  }
95  }
96  } else {
97  // not a file nor a directory
98  return false;
99  }
100 
101  // Protect each parameters
102  $parameters = array_map('escapeshellarg', $parameters);
103  $params = implode(" ", $parameters);
104 
105  // Launch !
106  foreach ($to_launch as $fi) {
107  system($fi . " " . $params);
108  }
109 
110  // TODO: return something more interesting than true
111  return true;
112  }

The documentation for this class was generated from the following file: