43require_once NOALYSS_INCLUDE.
'/database/menu_ref_sql.class.php';
44require_once NOALYSS_INCLUDE.
'/database/profile_sql.class.php';
50 array(
'AMORTIS',
'BACKNOADM',
'COPRO',
'IMPCARD',
51 'IMPORTBANK',
'INVOICING',
'LISTING',
52 'MODOP',
'RAPAV',
'SAV',
53 'TOOLPCMN',
'TOOLS',
'TRANSFORM',
67 if (trim($this->me_code)==
"")
68 throw new Exception(
'Le code ne peut pas être vide');
69 if (trim($this->me_menu)==
"")
70 throw new Exception(
'Le nom ne peut pas être vide');
71 if (trim($this->me_file)==
"")
72 throw new Exception(
'Chemin incorrect');
73 if (file_exists(NOALYSS_PLUGIN.
'/'.$this->me_file)==
false)
74 throw new Exception(
"$this->me_code $this->me_file".
'Extension non trouvée, le chemin est-il correct?');
81 $this->me_code=strtoupper($p_what);
82 if ($this->load()==
false)
95 $cnt=$this->
cn->get_value(
"select count(*) from menu_ref
96 join profile_menu using (me_code)
97 join profile_user using (p_id)
100 and user_name=$2", array($this->me_code, $p_login));
113 $sql=
"select DISTINCT me_code as value, me_menu as label from ".
114 " menu_ref join profile_menu using (me_code)
115 join profile_user using (p_id) where ".
116 " user_name=$1 and me_type='PL' ORDER BY ME_MENU";
117 $a=
$cn->get_array(
$sql, array($_SESSION[SESSION_KEY.
'g_user']));
133 alert(
_(
'Cette extension ne fonctionne pas sur cette version de NOALYSS'.
134 ' Veuillez mettre votre programme a jour. Version minimum ').
$i);
156 throw new Exception(
_(
'Profil inexistant'), 10);
163 throw new Exception(
_(
'Module inexistant'), 20);
166 $dep_id=
$cn->get_array(
'select pm_id from profile_menu
169 and me_code = $2 ', array(
$p_id, $p_module));
173 $msg = sprintf(
_(
"Le menu %s dont dépend %s doit être crée ou %s doit être ajouté depuis le menu C0PROFL"),
174 $p_module,$this->me_code,$this->me_code);
175 throw new Exception(
$msg, 30);
184 $profil_menu->me_code_dep=$p_module;
185 $profil_menu->p_type_display=
'S';
186 $profil_menu->p_id=
$p_id;
187 $profil_menu->pm_id_dep=$dep_id[
$i][
'pm_id'];
188 $profil_menu->pm_default=0;
191 $cnt=$profil_menu->count(
' where pm_id_dep=$3 and p_id=$1 and me_code = $2',
192 array(
$p_id, $this->me_code, $dep_id[
$i][
'pm_id']));
195 $profil_menu->insert();
204 $cn->exec_sql(
'delete from profile_menu where (me_code = $1 or me_code in (select me_code from menu_ref where me_file=$2)) and p_id=$3',
205 array($this->me_code, $this->me_file,
$p_id));
214 if ( $this->
cn->get_value(
"select count(*) from menu_ref where me_code=$1",[$this->me_code]) > 0) {
234 $this->me_code=strtoupper($this->me_code);
235 $count=$this->
cn->get_value(
"select count(*) from menu_ref where me_code=$1", array($this->me_code));
237 throw new Exception(
"Doublon");
242 catch (Exception $exc)
244 echo
alert($exc->getMessage());
258 catch (Exception $exc)
260 echo
alert($exc->getMessage());
272 catch (Exception $exc)
274 echo
alert($exc->getMessage());
284 $a_ext=array(
"tva_belge",
"amortissement",
"impdol",
"coprop",
"importbank");
285 for (
$i=0;
$i<count($a_ext);
$i++)
289 $p_cn->
exec_sql(
"drop schema ".$a_ext[
$i].
" cascade");
302 global
$g_user, $version_plugin;
305 if ( in_array($p_plugin_code, self::aStandard_plugin) && SITE_UPDATE_PLUGIN!=
"")
307 $update=@file_get_contents(SITE_UPDATE_PLUGIN);
308 if ($update>$version_plugin)
310 echo
'<div id="version_plugin_div_id" class="inner_box" style="position:absolute;zindex:2;top:5px;left:37.5%;width:25%">';
311 echo
'<p class="notice">';
312 echo
"Mise à jour disponible des plugins pour NOALYSS, version actuelle : $update votre version $version_plugin";
314 echo
'<p style="text-align:center">'.
315 '<a id="version_plugin_button" class="button" onclick="$(\'version_plugin_div_id\').remove()">'.
335 if (!isset(
$xml->plugin))
336 throw new Exception(
_(
'Manque plugin'), 1);
341 if (!isset(
$xml->plugin[
$i]->name))
342 throw new Exception(
_(
'Manque nom'), 1);
343 if (!isset(
$xml->plugin[
$i]->description))
344 throw new Exception(
_(
'Manque description'), 0);
345 if (!isset(
$xml->plugin[
$i]->code))
346 throw new Exception(
_(
'Manque code'), 1);
347 if (!isset(
$xml->plugin[
$i]->author))
348 throw new Exception(
_(
'Manque auteur'), 0);
349 if (!isset(
$xml->plugin[
$i]->root))
350 throw new Exception(
_(
'Manque répertoire racine'), 1);
351 if (!isset(
$xml->plugin[
$i]->file))
352 throw new Exception(
_(
'Manque fichier à inclure'), 1);
353 if (!isset(
$xml->plugin[
$i]->version))
354 throw new Exception(
_(
"Manque version de l'extension"), 1);
356 if (!isset(
$xml->plugin[
$i]->depend))
357 $xml->plugin[
$i]->depend=
"EXT";
358 if (!isset(
$xml->plugin[
$i]->order))
359 $xml->plugin[
$i]->order=9000;
362 catch (Exception
$ex)
378 $dom=
new DomDocument(
'1.0');
380 $xml=simplexml_import_dom($dom);
382 $a_extension=array();
391 catch (Exception
$ex)
394 if (
$ex->getCode()==1)
409 $extension->noalyss_version=(isset(
$xml->plugin[
$i]->noalyss_version))?trim(
$xml->plugin[
$i]->noalyss_version):8000;
424 if (empty($a_me_code ) )
return null;
425 $nb_me_code=count($a_me_code);
436 $r .=
" me_code " . $this->me_code.PHP_EOL;
437 $r .=
" me_menu.".$this->me_menu.PHP_EOL;
438 $r .=
" version".$this->version.PHP_EOL;
439 $r .=
" noalyss_version".$this->noalyss_version.PHP_EOL;
440 $r .=
" me_file" . $this->me_file.PHP_EOL;
441 $r .=
" me_url" . $this->me_url.PHP_EOL;
442 $r .=
" me_description" . $this->me_description.PHP_EOL;
443 $r .=
" me_parameter" . $this->me_parameter.PHP_EOL;
444 $r .=
" me_javascript" . $this->me_javascript.PHP_EOL;
445 $r .=
" me_type" . $this->me_type.PHP_EOL;
446 $r .=
" me_descrition_etendue" . $this->me_description_etendue.PHP_EOL;
447 $r .=
" noalyss_version " . $this->noalyss_version.PHP_EOL;
448 $r .=
" version " . $this->version.PHP_EOL;
449 $r .=
" order " . $this->order.PHP_EOL;
450 $r .=
" depend " . $this->
depend.PHP_EOL;
451 return "Extension $r";
464 if ( empty($plugin_code))
return -1;
echo_warning($p_string)
warns
alert($p_msg, $buffer=false)
alert in javascript
global $g_user
if no group available , then stop
catch(\Exception $e) $extension
catch(Exception $exc) if(! $g_user->can_write_action($ag_id)) $r
_("actif, passif,charge,...")
font $a_plugin[ $e] depend
for($e=0;$e< $nb_dirscan;$e++) $nb_plugin
exec_sql($p_string, $p_array=null)
send a sql string to the database
contains the class for connecting to Noalyss
manage the extension, it involves the table extension
static check_plugin_version($p_plugin_code)
compare the version of the plugin and the last version , propose to update it if a new version exists
remove_from_profile_menu($p_id)
save_plugin()
save a plugin into MENU_REF , calls insert_plugin or update_plugin if it already exists
static clean(Database $p_cn)
remove all the standard plugins schema
$noalyss_version
minimum version of NOALYSS for this plugin
static make_array($cn)
make an array of the available plugin for the current user
check_xml(SimpleXMLElement $xml)
Check that the xml contains all the needed information to change them into a extension,...
insert_profile_menu($p_id=1)
insert into the table profile_menu for the given profile id and depending of the module $p_module
insert_plugin()
Insert a plugin into the given profile, by default always insert into EXT.
can_request($p_login)
return 1 if the user given in parameter can access this extension otherwise returns 0
$order
$order in the menu (can be override by config menu)
static find_extension_code($a_extension, $access_code)
find the extension with the me_code = last part of access_code
search($p_what)
search a extension, the what is the column (extends_code
static get_version($xml_file, $plugin_code)
retrieve the version of the current plugin
static read_definition($p_file)
Parse a XML file to complete an array of extension objects, in the plugin.xml file ,...
$depend
default depending menu (can be override by config menu)
static check_version($i, $p_plugin_code=null)
check the version of the plugin , null stands for one of the standard plugins, it means self::aStanda...
Manage the table public.profile.
foreach(array('magic_quotes_gpc', 'magic_quotes_runtime') as $a) $module