';
- print $moduleobj->getDescLong();
+ print $moduleobj->getDescLong();
- print '
';
+ print '
';
- // ChangeLog
- print_fiche_titre($langs->trans("ChangeLog"));
+ // ChangeLog
+ print_fiche_titre($langs->trans("ChangeLog"));
- print '
';
- print '
';
+ print '
';
+ print '
';
- print $moduleobj->getChangeLog();
+ print $moduleobj->getChangeLog();
- print '
';
- }
- else
- {
- print $langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module).'
';
- }
+ print '
';
+ }
+ else
+ {
+ print $langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module).'
';
+ }
- dol_fiche_end();
- }
- else
- {
- $fullpathoffile=dol_buildpath($file, 0, 1); // Description - level 2
+ dol_fiche_end();
+ }
+ else
+ {
+ $fullpathoffile=dol_buildpath($file, 0, 1); // Description - level 2
- if ($fullpathoffile)
- {
- $content = file_get_contents($fullpathoffile);
- }
+ if ($fullpathoffile)
+ {
+ $content = file_get_contents($fullpathoffile);
+ }
- // New module
- print '
';
- }
- }
- else
- {
- dol_fiche_head($head2, $tab, '', -1, ''); // Level 2
- }
+ print '';
+ }
+ }
+ else
+ {
+ dol_fiche_head($head2, $tab, '', -1, ''); // Level 2
+ }
- if ($tab == 'specifications')
- {
- if ($action != 'editfile' || empty($file))
- {
- print $langs->trans("SpecDefDesc").'
';
- print '
';
+ if ($tab == 'specifications')
+ {
+ if ($action != 'editfile' || empty($file))
+ {
+ print $langs->trans("SpecDefDesc").'
';
+ print '
';
- $specs=dol_dir_list(dol_buildpath($modulelowercase.'/doc', 0), 'files', 1, '(\.md|\.asciidoc)$');
+ $specs=dol_dir_list(dol_buildpath($modulelowercase.'/doc', 0), 'files', 1, '(\.md|\.asciidoc)$');
- foreach ($specs as $spec)
- {
- $pathtofile = $modulelowercase.'/doc/'.$spec['relativename'];
+ foreach ($specs as $spec)
+ {
+ $pathtofile = $modulelowercase.'/doc/'.$spec['relativename'];
$format='asciidoc';
if (preg_match('/\.md$/i', $spec['name'])) $format='markdown';
- print '
'.$langs->trans("SpecificationFile").' :
'.$pathtofile.'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- print '
';
- }
- }
- else
- {
- // Use MD or asciidoc
+ print '
'.$langs->trans("SpecificationFile").' :
'.$pathtofile.'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ print '
';
+ }
+ }
+ else
+ {
+ // Use MD or asciidoc
- //print $langs->trans("UseAsciiDocFormat").'
';
+ //print $langs->trans("UseAsciiDocFormat").'
';
- $fullpathoffile=dol_buildpath($file, 0);
+ $fullpathoffile=dol_buildpath($file, 0);
- $content = file_get_contents($fullpathoffile);
+ $content = file_get_contents($fullpathoffile);
- // New module
- print '
';
- }
- }
+ print '';
+ }
+ }
- if ($tab == 'languages')
- {
- if ($action != 'editfile' || empty($file))
- {
- print $langs->trans("LanguageDefDesc").'
';
- print '
';
+ if ($tab == 'languages')
+ {
+ if ($action != 'editfile' || empty($file))
+ {
+ print $langs->trans("LanguageDefDesc").'
';
+ print '
';
- print '
';
+ print '
';
- print '
';
- print '
';
+ print '
';
+ print '
';
- $langfiles=dol_dir_list(dol_buildpath($modulelowercase.'/langs', 0), 'files', 1, '\.lang$');
+ $langfiles=dol_dir_list(dol_buildpath($modulelowercase.'/langs', 0), 'files', 1, '\.lang$');
- foreach ($langfiles as $langfile)
- {
- $pathtofile = $modulelowercase.'/langs/'.$langfile['relativename'];
- print '
'.$langs->trans("LanguageFile").' '.basename(dirname($pathtofile)).' :
'.$pathtofile.'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- print '
';
- }
- }
- else
- {
- // Edit text language file
+ foreach ($langfiles as $langfile)
+ {
+ $pathtofile = $modulelowercase.'/langs/'.$langfile['relativename'];
+ print '
'.$langs->trans("LanguageFile").' '.basename(dirname($pathtofile)).' :
'.$pathtofile.'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ print '
';
+ }
+ }
+ else
+ {
+ // Edit text language file
- //print $langs->trans("UseAsciiDocFormat").'
';
+ //print $langs->trans("UseAsciiDocFormat").'
';
- $fullpathoffile=dol_buildpath($file, 0);
+ $fullpathoffile=dol_buildpath($file, 0);
- $content = file_get_contents($fullpathoffile);
+ $content = file_get_contents($fullpathoffile);
- // New module
- print '
';
- }
- }
+ print '';
+ }
+ }
- if ($tab == 'objects')
- {
- $head3 = array();
- $h=0;
+ if ($tab == 'objects')
+ {
+ $head3 = array();
+ $h=0;
- // Dir for module
- $dir = $dirread.'/'.$modulelowercase.'/class';
+ // Dir for module
+ $dir = $dirread.'/'.$modulelowercase.'/class';
- $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module.($forceddirread?'@'.$dirread:'').'&tabobj=newobject';
- $head3[$h][1] = $langs->trans("NewObject");
- $head3[$h][2] = 'newobject';
- $h++;
+ $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module.($forceddirread?'@'.$dirread:'').'&tabobj=newobject';
+ $head3[$h][1] = $langs->trans("NewObject");
+ $head3[$h][2] = 'newobject';
+ $h++;
- // Scan for object class files
- $listofobject = dol_dir_list($dir, 'files', 0, '\.class\.php$');
+ // Scan for object class files
+ $listofobject = dol_dir_list($dir, 'files', 0, '\.class\.php$');
- $firstobjectname='';
- foreach($listofobject as $fileobj)
- {
- if (preg_match('/^api_/',$fileobj['name'])) continue;
- if (preg_match('/^actions_/',$fileobj['name'])) continue;
+ $firstobjectname='';
+ foreach($listofobject as $fileobj)
+ {
+ if (preg_match('/^api_/',$fileobj['name'])) continue;
+ if (preg_match('/^actions_/',$fileobj['name'])) continue;
- $tmpcontent=file_get_contents($fileobj['fullname']);
- if (preg_match('/class\s+([^\s]*)\s+extends\s+CommonObject/ims',$tmpcontent,$reg))
- {
- //$objectname = preg_replace('/\.txt$/', '', $fileobj['name']);
- $objectname = $reg[1];
- if (empty($firstobjectname)) $firstobjectname = $objectname;
+ $tmpcontent=file_get_contents($fileobj['fullname']);
+ if (preg_match('/class\s+([^\s]*)\s+extends\s+CommonObject/ims',$tmpcontent,$reg))
+ {
+ //$objectname = preg_replace('/\.txt$/', '', $fileobj['name']);
+ $objectname = $reg[1];
+ if (empty($firstobjectname)) $firstobjectname = $objectname;
- $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module.($forceddirread?'@'.$dirread:'').'&tabobj='.$objectname;
- $head3[$h][1] = $objectname;
- $head3[$h][2] = $objectname;
- $h++;
- }
- }
+ $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module.($forceddirread?'@'.$dirread:'').'&tabobj='.$objectname;
+ $head3[$h][1] = $objectname;
+ $head3[$h][2] = $objectname;
+ $h++;
+ }
+ }
- $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module.($forceddirread?'@'.$dirread:'').'&tabobj=deleteobject';
- $head3[$h][1] = $langs->trans("DangerZone");
- $head3[$h][2] = 'deleteobject';
- $h++;
+ $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module.($forceddirread?'@'.$dirread:'').'&tabobj=deleteobject';
+ $head3[$h][1] = $langs->trans("DangerZone");
+ $head3[$h][2] = 'deleteobject';
+ $h++;
- // If tabobj was not defined, then we check if there is one obj. If yes, we force on it, if no, we will show tab to create new objects.
- if ($tabobj == 'newobjectifnoobj')
- {
- if ($firstobjectname) $tabobj=$firstobjectname;
- else $tabobj = 'newobject';
- }
+ // If tabobj was not defined, then we check if there is one obj. If yes, we force on it, if no, we will show tab to create new objects.
+ if ($tabobj == 'newobjectifnoobj')
+ {
+ if ($firstobjectname) $tabobj=$firstobjectname;
+ else $tabobj = 'newobject';
+ }
- dol_fiche_head($head3, $tabobj, '', -1, ''); // Level 3
+ dol_fiche_head($head3, $tabobj, '', -1, ''); // Level 3
- if ($tabobj == 'newobject')
- {
- // New object tab
- print '
';
- }
- elseif ($tabobj == 'deleteobject')
- {
- // Delete object tab
- print '
';
+ }
+ elseif ($tabobj == 'deleteobject')
+ {
+ // Delete object tab
+ print '
';
- }
- else
- { // tabobj = module
- if ($action == 'deleteproperty')
- {
- $formconfirm = $form->formconfirm(
- $_SERVER["PHP_SELF"].'?propertykey='.urlencode(GETPOST('propertykey','alpha')).'&objectname='.urlencode($objectname).'&tab='.urlencode($tab).'&module='.urlencode($module).'&tabobj='.urlencode($tabobj),
- $langs->trans('Delete'), $langs->trans('ConfirmDeleteProperty', GETPOST('propertykey','alpha')), 'confirm_deleteproperty', '', 0, 1
- );
+ print '
';
+ print '
';
+ print '';
+ }
+ else
+ { // tabobj = module
+ if ($action == 'deleteproperty')
+ {
+ $formconfirm = $form->formconfirm(
+ $_SERVER["PHP_SELF"].'?propertykey='.urlencode(GETPOST('propertykey','alpha')).'&objectname='.urlencode($objectname).'&tab='.urlencode($tab).'&module='.urlencode($module).'&tabobj='.urlencode($tabobj),
+ $langs->trans('Delete'), $langs->trans('ConfirmDeleteProperty', GETPOST('propertykey','alpha')), 'confirm_deleteproperty', '', 0, 1
+ );
- // Print form confirm
- print $formconfirm;
- }
+ // Print form confirm
+ print $formconfirm;
+ }
- if ($action != 'editfile' || empty($file))
- {
- try {
- $pathtoclass = strtolower($module).'/class/'.strtolower($tabobj).'.class.php';
- $pathtoapi = strtolower($module).'/class/api_'.strtolower($tabobj).'.class.php';
- $pathtoagenda = strtolower($module).'/'.strtolower($tabobj).'_agenda.php';
- $pathtocard = strtolower($module).'/'.strtolower($tabobj).'_card.php';
- $pathtodocument = strtolower($module).'/'.strtolower($tabobj).'_document.php';
- $pathtolist = strtolower($module).'/'.strtolower($tabobj).'_list.php';
- $pathtonote = strtolower($module).'/'.strtolower($tabobj).'_note.php';
- $pathtophpunit = strtolower($module).'/test/phpunit/'.$tabobj.'Test.php';
- $pathtosql = strtolower($module).'/sql/llx_'.strtolower($tabobj).'.sql';
- $pathtosqlextra = strtolower($module).'/sql/llx_'.strtolower($tabobj).'_extrafields.sql';
- $pathtosqlkey = strtolower($module).'/sql/llx_'.strtolower($tabobj).'.key.sql';
- $pathtolib = strtolower($module).'/lib/'.strtolower($tabobj).'.lib.php';
- $pathtopicto = strtolower($module).'/img/object_'.strtolower($tabobj).'.png';
+ if ($action != 'editfile' || empty($file))
+ {
+ try {
+ $pathtoclass = strtolower($module).'/class/'.strtolower($tabobj).'.class.php';
+ $pathtoapi = strtolower($module).'/class/api_'.strtolower($tabobj).'.class.php';
+ $pathtoagenda = strtolower($module).'/'.strtolower($tabobj).'_agenda.php';
+ $pathtocard = strtolower($module).'/'.strtolower($tabobj).'_card.php';
+ $pathtodocument = strtolower($module).'/'.strtolower($tabobj).'_document.php';
+ $pathtolist = strtolower($module).'/'.strtolower($tabobj).'_list.php';
+ $pathtonote = strtolower($module).'/'.strtolower($tabobj).'_note.php';
+ $pathtophpunit = strtolower($module).'/test/phpunit/'.$tabobj.'Test.php';
+ $pathtosql = strtolower($module).'/sql/llx_'.strtolower($tabobj).'.sql';
+ $pathtosqlextra = strtolower($module).'/sql/llx_'.strtolower($tabobj).'_extrafields.sql';
+ $pathtosqlkey = strtolower($module).'/sql/llx_'.strtolower($tabobj).'.key.sql';
+ $pathtolib = strtolower($module).'/lib/'.strtolower($tabobj).'.lib.php';
+ $pathtopicto = strtolower($module).'/img/object_'.strtolower($tabobj).'.png';
- $realpathtoclass = dol_buildpath($pathtoclass, 0, 1);
- $realpathtoapi = dol_buildpath($pathtoapi, 0, 1);
- $realpathtoagenda = dol_buildpath($pathtoagenda, 0, 1);
- $realpathtocard = dol_buildpath($pathtocard, 0, 1);
- $realpathtodocument = dol_buildpath($pathtodocument, 0, 1);
- $realpathtolist = dol_buildpath($pathtolist, 0, 1);
- $realpathtonote = dol_buildpath($pathtonote, 0, 1);
- $realpathtophpunit = dol_buildpath($pathtophpunit, 0, 1);
- $realpathtosql = dol_buildpath($pathtosql, 0, 1);
- $realpathtosqlextra = dol_buildpath($pathtosqlextra, 0, 1);
- $realpathtosqlkey = dol_buildpath($pathtosqlkey, 0, 1);
- $realpathtolib = dol_buildpath($pathtolib, 0, 1);
- $realpathtopicto = dol_buildpath($pathtopicto, 0, 1);
+ $realpathtoclass = dol_buildpath($pathtoclass, 0, 1);
+ $realpathtoapi = dol_buildpath($pathtoapi, 0, 1);
+ $realpathtoagenda = dol_buildpath($pathtoagenda, 0, 1);
+ $realpathtocard = dol_buildpath($pathtocard, 0, 1);
+ $realpathtodocument = dol_buildpath($pathtodocument, 0, 1);
+ $realpathtolist = dol_buildpath($pathtolist, 0, 1);
+ $realpathtonote = dol_buildpath($pathtonote, 0, 1);
+ $realpathtophpunit = dol_buildpath($pathtophpunit, 0, 1);
+ $realpathtosql = dol_buildpath($pathtosql, 0, 1);
+ $realpathtosqlextra = dol_buildpath($pathtosqlextra, 0, 1);
+ $realpathtosqlkey = dol_buildpath($pathtosqlkey, 0, 1);
+ $realpathtolib = dol_buildpath($pathtolib, 0, 1);
+ $realpathtopicto = dol_buildpath($pathtopicto, 0, 1);
- print '
';
- print '
'.$langs->trans("ClassFile").' :
'.($realpathtoclass?'':'').$pathtoclass.($realpathtoclass?'':'').'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- print '
';
- print '
'.$langs->trans("ApiClassFile").' :
'.($realpathtoapi?'':'').$pathtoapi.($realpathtoapi?'':'').'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- print '
'.$langs->trans("GoToApiExplorer").'';
- print '
';
- print '
'.$langs->trans("TestClassFile").' :
'.($realpathtophpunit?'':'').$pathtophpunit.($realpathtophpunit?'':'').'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- print '
';
+ print '
';
+ print '
'.$langs->trans("ClassFile").' :
'.($realpathtoclass?'':'').$pathtoclass.($realpathtoclass?'':'').'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ print '
';
+ print '
'.$langs->trans("ApiClassFile").' :
'.($realpathtoapi?'':'').$pathtoapi.($realpathtoapi?'':'').'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ print '
'.$langs->trans("GoToApiExplorer").'';
+ print '
';
+ print '
'.$langs->trans("TestClassFile").' :
'.($realpathtophpunit?'':'').$pathtophpunit.($realpathtophpunit?'':'').'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ print '
';
- print '
';
+ print '
';
- print '
'.$langs->trans("PageForLib").' :
'.($realpathtolib?'':'').$pathtolib.($realpathtodocument?'':'').'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- print '
';
- print '
'.$langs->trans("PageForPicto").' :
'.($realpathtopicto?'':'').$pathtopicto.($realpathtopicto?'':'').'';
- //print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- print '
';
+ print '
'.$langs->trans("PageForLib").' :
'.($realpathtolib?'':'').$pathtolib.($realpathtodocument?'':'').'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ print '
';
+ print '
'.$langs->trans("PageForPicto").' :
'.($realpathtopicto?'':'').$pathtopicto.($realpathtopicto?'':'').'';
+ //print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ print '
';
- print '
';
- print '
'.$langs->trans("SqlFile").' :
'.($realpathtosql?'':'').$pathtosql.($realpathtosql?'':'').'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- print '
'.$langs->trans("DropTableIfEmpty").'';
- //print '
'.$langs->trans("RunSql").'';
- print '
';
- print '
'.$langs->trans("SqlFileExtraFields").' :
'.($realpathtosqlextra?'':'').$pathtosqlextra.($realpathtosqlextra?'':'').'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- //print '
'.$langs->trans("RunSql").'';
- print '
';
- print '
'.$langs->trans("SqlFileKey").' :
'.($realpathtosqlkey?'':'').$pathtosqlkey.($realpathtosqlkey?'':'').'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- //print '
'.$langs->trans("RunSql").'';
- print '
';
+ print '
';
+ print '
'.$langs->trans("SqlFile").' :
'.($realpathtosql?'':'').$pathtosql.($realpathtosql?'':'').'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ print '
'.$langs->trans("DropTableIfEmpty").'';
+ //print '
'.$langs->trans("RunSql").'';
+ print '
';
+ print '
'.$langs->trans("SqlFileExtraFields").' :
'.($realpathtosqlextra?'':'').$pathtosqlextra.($realpathtosqlextra?'':'').'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ //print '
'.$langs->trans("RunSql").'';
+ print '
';
+ print '
'.$langs->trans("SqlFileKey").' :
'.($realpathtosqlkey?'':'').$pathtosqlkey.($realpathtosqlkey?'':'').'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ //print '
'.$langs->trans("RunSql").'';
+ print '
';
- print '
';
- print '
';
+ print '
';
+ print '
';
- $urloflist = dol_buildpath($pathtolist, 1);
- $urlofcard = dol_buildpath($pathtocard, 1);
+ $urloflist = dol_buildpath($pathtolist, 1);
+ $urlofcard = dol_buildpath($pathtocard, 1);
- print '
';
- print '
';
+ print '
';
- if (empty($forceddirread))
- {
- $result = dol_include_once($pathtoclass);
- }
- else
- {
- $result = @include_once($dirread.'/'.$pathtoclass);
- }
- if (class_exists($tabobj))
- {
- try {
- $tmpobjet = @new $tabobj($db);
- }
- catch(Exception $e)
- {
- dol_syslog('Failed to load Constructor of class: '.$e->getMessage(), LOG_WARNING);
- }
- }
+ if (empty($forceddirread))
+ {
+ $result = dol_include_once($pathtoclass);
+ }
+ else
+ {
+ $result = @include_once($dirread.'/'.$pathtoclass);
+ }
+ if (class_exists($tabobj))
+ {
+ try {
+ $tmpobjet = @new $tabobj($db);
+ }
+ catch(Exception $e)
+ {
+ dol_syslog('Failed to load Constructor of class: '.$e->getMessage(), LOG_WARNING);
+ }
+ }
- if (! empty($tmpobjet))
- {
- $reflector = new ReflectionClass($tabobj);
- $properties = $reflector->getProperties(); // Can also use get_object_vars
- $propdefault = $reflector->getDefaultProperties(); // Can also use get_object_vars
- //$propstat = $reflector->getStaticProperties();
+ if (! empty($tmpobjet))
+ {
+ $reflector = new ReflectionClass($tabobj);
+ $properties = $reflector->getProperties(); // Can also use get_object_vars
+ $propdefault = $reflector->getDefaultProperties(); // Can also use get_object_vars
+ //$propstat = $reflector->getStaticProperties();
- print load_fiche_titre($langs->trans("Properties"), '', '');
+ print load_fiche_titre($langs->trans("Properties"), '', '');
- print '
';
- }
- else
- {
- print '
| '.$langs->trans('Failed to init the object with the new.').' |
';
- }
- }
- catch(Exception $e)
- {
- print $e->getMessage();
- }
- }
- else
- {
- if (empty($forceddirread))
- {
- $fullpathoffile=dol_buildpath($file, 0);
- }
- else
- {
- $fullpathoffile=$dirread.'/'.$file;
- }
+ print '';
+ }
+ else
+ {
+ print '
| '.$langs->trans('Failed to init the object with the new.').' |
';
+ }
+ }
+ catch(Exception $e)
+ {
+ print $e->getMessage();
+ }
+ }
+ else
+ {
+ if (empty($forceddirread))
+ {
+ $fullpathoffile=dol_buildpath($file, 0);
+ }
+ else
+ {
+ $fullpathoffile=$dirread.'/'.$file;
+ }
- $content = file_get_contents($fullpathoffile);
+ $content = file_get_contents($fullpathoffile);
- // New module
- print '
';
- }
- }
+ print '';
+ }
+ }
- dol_fiche_end(); // Level 3
- }
+ dol_fiche_end(); // Level 3
+ }
- if ($tab == 'menus')
- {
- $pathtofile = $modulelowercase.'/core/modules/mod'.$module.'.class.php';
+ if ($tab == 'menus')
+ {
+ $pathtofile = $modulelowercase.'/core/modules/mod'.$module.'.class.php';
- //$menus = $moduleobj->;
+ //$menus = $moduleobj->;
- if ($action != 'editfile' || empty($file))
- {
- print $langs->trans("MenusDefDesc", '
'.$langs->trans('Menus').'').'
';
- print '
';
+ if ($action != 'editfile' || empty($file))
+ {
+ print $langs->trans("MenusDefDesc", '
'.$langs->trans('Menus').'').'
';
+ print '
';
- print '
'.$langs->trans("DescriptorFile").' :
'.$pathtofile.'';
- print '
'.img_picto($langs->trans("Edit"), 'edit').'';
- print '
';
+ print '
'.$langs->trans("DescriptorFile").' :
'.$pathtofile.'';
+ print '
'.img_picto($langs->trans("Edit"), 'edit').'';
+ print '
';
- print '
';
- //print load_fiche_titre($langs->trans("MenusList"), '', '');
+ print '
';
+ //print load_fiche_titre($langs->trans("MenusList"), '', '');
- print '