dolibarr 21.0.0-alpha
modulebuilder.lib.php File Reference

Set of function for modulebuilder management. More...

Go to the source code of this file.

Functions

 rebuildObjectClass ($destdir, $module, $objectname, $newmask, $readdir='', $addfieldentry=array(), $delfieldentry='')
 Regenerate files .class.php.
 
 rebuildObjectSql ($destdir, $module, $objectname, $newmask, $readdir='', $object=null, $moduletype='external')
 Save data into a memory area shared by all users, all sessions on server.
 
 dolGetListOfObjectClasses ($destdir)
 Get list of existing objects from a directory.
 
 checkExistComment ($file, $number)
 Function to check if comment BEGIN and END exists in modMyModule class.
 
 deletePerms ($file)
 Delete all permissions.
 
 compareFirstValue ($a, $b)
 Compare two values.
 
 reWriteAllPermissions ($file, $permissions, $key, $right, $objectname, $module, $action)
 Rewriting all permissions after any actions.
 
 parsePropertyString ($string)
 Converts a formatted properties string into an associative array.
 
 writePropsInAsciiDoc ($file, $objectname, $destfile)
 Write all properties of the object in AsciiDoc format.
 
 deletePropsAndPermsFromDoc ($file, $objectname)
 Delete property and permissions from documentation ascii file if we delete an object.
 
 getFromFile ($file, $start, $end, $excludestart='', $includese=0)
 Search a string and return all lines needed from file.
 
 writePermsInAsciiDoc ($file, $destfile)
 Write all permissions of each object in AsciiDoc format.
 
 addObjectsToApiFile ($srcfile, $file, $objects, $modulename)
 Add Object in ModuleApi File.
 
 removeObjectFromApiFile ($file, $objects, $objectname)
 Remove Object variables and methods from API_Module File.
 
 reWriteAllMenus ($file, $menus, $menuWantTo, $key, $action)
 
 updateDictionaryInFile ($module, $file, $dicts)
 Updates a dictionary in a module descriptor file.
 
 createNewDictionnary ($modulename, $file, $namedic, $dictionnaires=null)
 Create a new dictionary table.
 
 writeApiUrlsInDoc ($file_api, $file_doc)
 Generate Urls and add them to documentation module.
 
 countItemsInDirectory ($path, $type=1)
 count directories or files in modulebuilder folder
 

Detailed Description

Set of function for modulebuilder management.

Definition in file modulebuilder.lib.php.

Function Documentation

◆ addObjectsToApiFile()

addObjectsToApiFile ( $srcfile,
$file,
$objects,
$modulename )

Add Object in ModuleApi File.

Parameters
string$srcfileSource file to use as example
string$filePath of modified file
string[]$objectsArray of objects in the module
string$modulenameName of module
Returns
int<-1,1> Return 1 if OK, -1 if KO

Definition at line 993 of file modulebuilder.lib.php.

References dol_now(), dol_print_date(), dolReplaceInFile(), getFromFile(), and make_substitutions().

◆ checkExistComment()

checkExistComment ( $file,
$number )

Function to check if comment BEGIN and END exists in modMyModule class.

Parameters
string$fileFilename or path
int<0,2>$number 0 = For Menus, 1 = For permissions, 2 = For Dictionaries
Returns
int 1 if OK , -1 if KO

Definition at line 480 of file modulebuilder.lib.php.

◆ compareFirstValue()

compareFirstValue ( $a,
$b )

Compare two values.

Parameters
int | string$avalue 1
int | string$bvalue 2
Returns
int<-1,1> <=0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.

Definition at line 557 of file modulebuilder.lib.php.

◆ countItemsInDirectory()

countItemsInDirectory ( $path,
$type = 1 )

count directories or files in modulebuilder folder

Parameters
string$pathpath of directory
int<1,2>$type type of file 1= file,2=directory
Returns
int|false False on failure (path is not a directory)

Definition at line 1444 of file modulebuilder.lib.php.

◆ createNewDictionnary()

createNewDictionnary ( $modulename,
$file,
$namedic,
$dictionnaires = null )

Create a new dictionary table.

It generates the necessary SQL code to define the table structure, including columns such as 'rowid', 'code', 'label', 'position', 'use_default', 'active', etc. The table name is constructed based on the provided $namedic parameter.

Parameters
string$modulenameThe lowercase name of the module for which the dictionary table is being created.
string$fileThe file path to the Dolibarr module builder file where the dictionaries are defined.
string$namedicThe name of the dictionary, which will also be used as the base for the table name.
?array{langs:string,tabname:string[],tablib:string[],tabsql:string[],tabsqlsort:string[],tabfield:string[],tabfieldvalue:string[],tabfieldinsert:string[],tabrowid:string[],tabcond:array<string|bool|int>,tabhelp:array<array{code:string,field2:string}>}$dictionnaires An optional array containing pre-existing dictionary data, including tabname, tablib, tabsql, etc.
Returns
int<-1,-1> Return int < 0 if error, return nothing on success

Definition at line 1306 of file modulebuilder.lib.php.

References dol_print_error(), setEventMessages(), and updateDictionaryInFile().

◆ deletePerms()

deletePerms ( $file)

Delete all permissions.

Parameters
string$filefile with path
Returns
void

Definition at line 524 of file modulebuilder.lib.php.

References dolReplaceInFile().

Referenced by reWriteAllPermissions().

◆ deletePropsAndPermsFromDoc()

deletePropsAndPermsFromDoc ( $file,
$objectname )

Delete property and permissions from documentation ascii file if we delete an object.

Parameters
string$filefile or path
string$objectnamename of object wants to deleted
Returns
void

Definition at line 834 of file modulebuilder.lib.php.

References dol_is_file().

◆ dolGetListOfObjectClasses()

dolGetListOfObjectClasses ( $destdir)

Get list of existing objects from a directory.

Parameters
string$destdirDirectory
Returns
string[]|int Return integer <=0 if KO, array if OK

Definition at line 447 of file modulebuilder.lib.php.

References dol_dir_list().

◆ getFromFile()

getFromFile ( $file,
$start,
$end,
$excludestart = '',
$includese = 0 )

Search a string and return all lines needed from file.

Does not include line $start nor $end

Parameters
string$filefile for searching
string$startstart line if it exists
string$endend line if it exists
string$excludestartIgnore if start line is $excludestart
int<0,1>$includese Include start and end line
Returns
string Return the lines between first line with $start and $end. "" if not found.

Definition at line 866 of file modulebuilder.lib.php.

References dol_osencode().

Referenced by addObjectsToApiFile(), removeObjectFromApiFile(), reWriteAllMenus(), updateDictionaryInFile(), writeApiUrlsInDoc(), and writePermsInAsciiDoc().

◆ parsePropertyString()

parsePropertyString ( $string)

Converts a formatted properties string into an associative array.

Parameters
string$stringThe formatted properties string.
Returns
array<string,bool|int|float|string|mixed[]> The resulting associative array.

Definition at line 690 of file modulebuilder.lib.php.

References parsePropertyString().

Referenced by parsePropertyString(), and writePropsInAsciiDoc().

◆ rebuildObjectClass()

rebuildObjectClass ( $destdir,
$module,
$objectname,
$newmask,
$readdir = '',
$addfieldentry = array(),
$delfieldentry = '' )

Regenerate files .class.php.

Parameters
string$destdirDirectory
string$moduleModule name
string$objectnameName of object
string$newmaskNew mask
string$readdirDirectory source (use $destdir when not defined)
array{}|array{name:string,key:string,type:string,label:string,picot?:string,enabled:int<0,1>,notnull:int<0,1>,position:int,visible:int,noteditable?:int<0,1>,alwayseditable?:int<0,1>,default?:string,index?:int,foreignkey?:string,searchall?:int,isameasure?:int<0,1>,css?:string,cssview?:string,csslist?:string,help?:string,showoncombobox?:int<0,1>,disabled?:int<0,1>,autofocusoncreate?:int<0,1>,arrayofkeyval?:array<string,string>,validate?:int<0,1>,comment?:string}$addfieldentry Array of 1 field entry to add
string$delfieldentryId of field to remove
Returns
int<-7,-1>|CommonObject Return integer <=0 if KO, Object if OK
See also
rebuildObjectSql()

Definition at line 40 of file modulebuilder.lib.php.

References $object, dol_copy(), dol_escape_js(), dol_escape_php(), dol_is_file(), dol_mkdir(), dol_osencode(), dol_print_error(), dol_sort_array(), dolChmod(), and setEventMessages().

◆ rebuildObjectSql()

rebuildObjectSql ( $destdir,
$module,
$objectname,
$newmask,
$readdir = '',
$object = null,
$moduletype = 'external' )

Save data into a memory area shared by all users, all sessions on server.

Parameters
string$destdirDirectory
string$moduleModule name
string$objectnameName of object
string$newmaskNew mask
string$readdirDirectory source (use $destdir when not defined)
Object$objectIf object was already loaded/known, it is pass to avoid another include and new.
string$moduletype'external' or 'internal'
Returns
int Return integer <=0 if KO, >0 if OK
See also
rebuildObjectClass()

Definition at line 267 of file modulebuilder.lib.php.

References $object, dol_copy(), dol_is_file(), dol_mkdir(), dol_osencode(), dolChmod(), and setEventMessages().

◆ removeObjectFromApiFile()

removeObjectFromApiFile ( $file,
$objects,
$objectname )

Remove Object variables and methods from API_Module File.

Parameters
string$fileFile api module
string[]$objectsArray of objects in the module
string$objectnameName of object want to remove
Returns
int<-1,1> 1 if OK, -1 if KO

Definition at line 1078 of file modulebuilder.lib.php.

References dolReplaceInFile(), and getFromFile().

◆ reWriteAllMenus()

reWriteAllMenus ( $file,
$menus,
$menuWantTo,
$key,
$action )
Parameters
string$filepath of filename
array<int,array{commentgroup:string,fk_menu:string,type:string,titre:string,mainmenu:string,leftmenu:string,url:string,langs:string,position:int,enabled:int,perms:string,target:string,user:int}>$menus all menus for module
null|string|array{commentgroup:string,fk_menu:string,type:string,titre:string,mainmenu:string,leftmenu:string,url:string,langs:string,position:int,enabled:int,perms:string,target:string,user:int}$menuWantTo menu get for do actions
?int$keykey for the concerned menu
int<-1,2>$action for specify what action (0 = delete perm, 1 = add perm, 2 = update perm, -1 = when we delete object)
Returns
int<-1,1> 1 if OK, -1 if KO

Definition at line 1128 of file modulebuilder.lib.php.

References dolReplaceInFile(), and getFromFile().

◆ reWriteAllPermissions()

reWriteAllPermissions ( $file,
$permissions,
$key,
$right,
$objectname,
$module,
$action )

Rewriting all permissions after any actions.

Parameters
string$filefilename or path
array<int,string[]>$permissions permissions existing in file
?int$keykey for permission needed
?array{0:string,1:string}$right $right to update or add
string$objectnamename of object
string$modulename of module
int<-2,2>$action 0 for delete, 1 for add, 2 for update, -1 when delete object completely, -2 for generate rights after add
Returns
int<-1,1> 1 if OK,-1 if KO

Definition at line 572 of file modulebuilder.lib.php.

References $object, deletePerms(), and dolReplaceInFile().

◆ updateDictionaryInFile()

updateDictionaryInFile ( $module,
$file,
$dicts )

Updates a dictionary in a module descriptor file.

Parameters
string$moduleThe name of the module.
string$fileThe path to the module descriptor file.
array{langs:string,tabname:string[],tablib:string[],tabsql:string[],tabsqlsort:string[],tabfield:string[],tabfieldvalue:string[],tabfieldinsert:string[],tabrowid:string[],tabcond:array<string|bool|int>,tabhelp:array<array{code:string,field2:string}>}$dicts The dictionary data to be updated.
Returns
int Returns the number of replacements made in the file.
Parameters
bool | string | int$val
Returns
string|int
Parameters
string$val
Returns
string

Definition at line 1233 of file modulebuilder.lib.php.

References dolReplaceInFile(), and getFromFile().

Referenced by createNewDictionnary().

◆ writeApiUrlsInDoc()

writeApiUrlsInDoc ( $file_api,
$file_doc )

Generate Urls and add them to documentation module.

Parameters
string$file_apifilename or path of api
string$file_docfilename or path of documentation
Returns
int<-1,1> -1 if KO, 1 if OK, 0 if nothing change

Definition at line 1387 of file modulebuilder.lib.php.

References dol_is_file(), dolReplaceInFile(), and getFromFile().

◆ writePermsInAsciiDoc()

writePermsInAsciiDoc ( $file,
$destfile )

Write all permissions of each object in AsciiDoc format.

Parameters
string$filepath of the class
string$destfilefile where write table of permissions
Returns
int<-1,1> 1 if OK, -1 if KO

Definition at line 906 of file modulebuilder.lib.php.

References dolReplaceInFile(), and getFromFile().

◆ writePropsInAsciiDoc()

writePropsInAsciiDoc ( $file,
$objectname,
$destfile )

Write all properties of the object in AsciiDoc format.

Parameters
string$filepath of the class
string$objectnamename of the objectClass
string$destfilefile where write table of properties
Returns
int 1 if OK, -1 if KO

Definition at line 736 of file modulebuilder.lib.php.

References dolReplaceInFile(), and parsePropertyString().