diff --git a/htdocs/core/lib/modulebuilder.lib.php b/htdocs/core/lib/modulebuilder.lib.php index 83d06c43c55..3a2d8be47bb 100644 --- a/htdocs/core/lib/modulebuilder.lib.php +++ b/htdocs/core/lib/modulebuilder.lib.php @@ -613,6 +613,7 @@ function writePropsInAsciiDoc($file, $objectname, $destfile) } // end table $table .= "|==="; + $table .= "__ end table for object $objectname"; //write in file $writeInFile = dolReplaceInFile($destfile, array('== DATA SPECIFICATIONS'=> $table)); if ($writeInFile<0) { @@ -621,6 +622,23 @@ function writePropsInAsciiDoc($file, $objectname, $destfile) return 1; } +/** + * Delete property from documentation if we delete object + * @param string $file file or path + * @param string $objectname name of object wants to deleted + * @return void + */ +function deletePropsFromDoc($file, $objectname) +{ + + $start = "== Table of fields and their properties for object *".ucfirst($objectname)."* : "; + $end = "__ end table for object ".ucfirst($objectname); + $str = file_get_contents($file); + $search = '/' . preg_quote($start, '/') . '(.*?)' . preg_quote($end, '/') . '/s'; + $new_contents = preg_replace($search, '', $str); + file_put_contents($file, $new_contents); +} + /** * Search a string and return all lines needed from file * @param string $file file for searching diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 20a78a21ab9..5a597288242 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -1542,6 +1542,13 @@ if ($dirins && $action == 'initobject' && $module && $objectname) { setEventMessages($langs->trans('ErrorFailToCreateFile', $pathoffiletoeditsrc), null, 'errors'); $error++; } + // check if documentation was generate and add table of properties object + $file = $destdir.'/class/'.strtolower($objectname).'.class.php'; + $destfile = $destdir.'/doc/Documentation.asciidoc'; + + if (file_exists($destfile)) { + writePropsInAsciiDoc($file, $objectname, $destfile); + } } if (!$error) { // Edit sql with new properties @@ -1870,6 +1877,12 @@ if ($dirins && $action == 'confirm_deleteobject' && $objectname) { 'core/modules/mymodule/doc/pdf_standard_myobject.modules.php'=>'core/modules/'.strtolower($module).'/doc/pdf_standard_'.strtolower($objectname).'.modules.php' ); + // delete property if documentation was generated + $file_doc = $dirins.'/'.strtolower($module).'/doc/Documentation.asciidoc'; + if (file_exists($file_doc)) { + deletePropsFromDoc($file_doc, $objectname); + } + //menu for the object selected // load class and check if menu exist for this object $pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];