Fix generation of doc in modulebuilder
This commit is contained in:
parent
dbd96d1ac7
commit
338f8d978a
@ -523,4 +523,148 @@ class Utils
|
|||||||
return array('result'=>$result, 'output'=>$output, 'error'=>$error);
|
return array('result'=>$result, 'output'=>$output, 'error'=>$error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate documentation of a Module
|
||||||
|
*
|
||||||
|
* @param string $module Module name
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function generateDoc($module)
|
||||||
|
{
|
||||||
|
global $conf, $dirins;
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
$modulelowercase=strtolower($module);
|
||||||
|
|
||||||
|
// Dir for module
|
||||||
|
$dir = $dirins.'/'.$modulelowercase;
|
||||||
|
// Zip file to build
|
||||||
|
$FILENAMEDOC='';
|
||||||
|
|
||||||
|
// Load module
|
||||||
|
dol_include_once($modulelowercase.'/core/modules/mod'.$module.'.class.php');
|
||||||
|
$class='mod'.$module;
|
||||||
|
|
||||||
|
if (class_exists($class))
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$moduleobj = new $class($db);
|
||||||
|
}
|
||||||
|
catch(Exception $e)
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
dol_print_error($e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$langs->load("errors");
|
||||||
|
dol_print_error($langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$arrayversion=explode('.',$moduleobj->version,3);
|
||||||
|
if (count($arrayversion))
|
||||||
|
{
|
||||||
|
$FILENAMEASCII=strtolower($module).'.asciidoc';
|
||||||
|
$FILENAMEDOC=strtolower($module).'.html'; // TODO Use/text PDF
|
||||||
|
|
||||||
|
$dirofmodule = dol_buildpath(strtolower($module), 0).'/doc';
|
||||||
|
$dirofmoduletmp = dol_buildpath(strtolower($module), 0).'/doc/temp';
|
||||||
|
$outputfiledoc = $dirofmodule.'/'.$FILENAMEDOC;
|
||||||
|
if ($dirofmodule)
|
||||||
|
{
|
||||||
|
if (! dol_is_dir($dirofmodule)) dol_mkdir($dirofmodule);
|
||||||
|
if (! dol_is_dir($dirofmoduletmp)) dol_mkdir($dirofmoduletmp);
|
||||||
|
if (! is_writable($dirofmoduletmp))
|
||||||
|
{
|
||||||
|
$this->error = 'Dir '.$dirofmoduletmp.' does not exists or is not writable';
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$destfile=$dirofmoduletmp.'/'.$FILENAMEASCII;
|
||||||
|
|
||||||
|
$fhandle = fopen($destfile, 'w+');
|
||||||
|
if ($fhandle)
|
||||||
|
{
|
||||||
|
$specs=dol_dir_list(dol_buildpath(strtolower($module).'/doc', 0), 'files', 1, '(\.md|\.asciidoc)$', array('\/temp\/'));
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
foreach ($specs as $spec)
|
||||||
|
{
|
||||||
|
if (preg_match('/notindoc/', $spec['relativename'])) continue; // Discard file
|
||||||
|
if (preg_match('/disabled/', $spec['relativename'])) continue; // Discard file
|
||||||
|
|
||||||
|
$pathtofile = strtolower($module).'/doc/'.$spec['relativename'];
|
||||||
|
$format='asciidoc';
|
||||||
|
if (preg_match('/\.md$/i', $spec['name'])) $format='markdown';
|
||||||
|
|
||||||
|
$filecursor = @file_get_contents($spec['fullname']);
|
||||||
|
if ($filecursor)
|
||||||
|
{
|
||||||
|
fwrite($fhandle, ($i ? "\n<<<\n\n" : "").$filecursor."\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error = 'Failed to concat content of file '.$spec['fullname'];
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
fwrite($fhandle, "\n\n\n== DATA SPECIFICATIONS...\n\n");
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
fwrite($fhandle, "TODO...");
|
||||||
|
|
||||||
|
fclose($fhandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
$conf->global->MODULEBUILDER_ASCIIDOCTOR='asciidoctor';
|
||||||
|
if (empty($conf->global->MODULEBUILDER_ASCIIDOCTOR))
|
||||||
|
{
|
||||||
|
dol_print_error('', 'Module setup not complete');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$command=$conf->global->MODULEBUILDER_ASCIIDOCTOR.' '.$destfile.' -n -o '.$dirofmodule.'/'.$FILENAMEDOC;
|
||||||
|
$outfile=$dirofmoduletmp.'/out.tmp';
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php';
|
||||||
|
$utils = new Utils($db);
|
||||||
|
$resarray = $utils->executeCLI($command, $outfile);
|
||||||
|
if ($resarray['result'] != '0')
|
||||||
|
{
|
||||||
|
$this->error = $resarray['error'].' '.$resarray['output'];
|
||||||
|
}
|
||||||
|
$result = ($resarray['result'] == 0) ? 1 : 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$result = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($result > 0)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$langs->load("errors");
|
||||||
|
$this->error = $langs->trans("ErrorFailToGenerateFile", $outputfiledoc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$langs->load("errors");
|
||||||
|
$this->error = $langs->trans("ErrorCheckVersionIsDefined");
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/modulebuilder.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/modulebuilder.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php';
|
||||||
|
|
||||||
$langs->loadLangs(array("admin", "modulebuilder", "other", "cron"));
|
$langs->loadLangs(array("admin", "modulebuilder", "other", "cron"));
|
||||||
|
|
||||||
@ -664,89 +665,12 @@ if ($dirins && $action == 'generatepackage')
|
|||||||
|
|
||||||
if ($dirins && $action == 'generatedoc')
|
if ($dirins && $action == 'generatedoc')
|
||||||
{
|
{
|
||||||
$modulelowercase=strtolower($module);
|
$FILENAMEDOC=strtolower($module).'.html'; // TODO Use/text PDF
|
||||||
|
$dirofmodule = dol_buildpath(strtolower($module), 0).'/doc';
|
||||||
// Dir for module
|
|
||||||
$dir = $dirins.'/'.$modulelowercase;
|
|
||||||
// Zip file to build
|
|
||||||
$FILENAMEDOC='';
|
|
||||||
|
|
||||||
// Load module
|
|
||||||
dol_include_once($modulelowercase.'/core/modules/mod'.$module.'.class.php');
|
|
||||||
$class='mod'.$module;
|
|
||||||
|
|
||||||
if (class_exists($class))
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$moduleobj = new $class($db);
|
|
||||||
}
|
|
||||||
catch(Exception $e)
|
|
||||||
{
|
|
||||||
$error++;
|
|
||||||
dol_print_error($e->getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$error++;
|
|
||||||
$langs->load("errors");
|
|
||||||
dol_print_error($langs->trans("ErrorFailedToLoadModuleDescriptorForXXX", $module));
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
$arrayversion=explode('.',$moduleobj->version,3);
|
|
||||||
if (count($arrayversion))
|
|
||||||
{
|
|
||||||
$FILENAMEASCII=$modulelowercase.'.asciidoc';
|
|
||||||
$FILENAMEDOC=$modulelowercase.'.html'; // TODO Use/text PDF
|
|
||||||
|
|
||||||
$dirofmodule = dol_buildpath($modulelowercase, 0).'/doc';
|
|
||||||
$dirofmoduletmp = dol_buildpath($modulelowercase, 0).'/doc/temp';
|
|
||||||
$outputfiledoc = $dirofmodule.'/'.$FILENAMEDOC;
|
$outputfiledoc = $dirofmodule.'/'.$FILENAMEDOC;
|
||||||
if ($dirofmodule)
|
|
||||||
{
|
|
||||||
if (! dol_is_dir($dirofmodule)) dol_mkdir($dirofmodule);
|
|
||||||
if (! dol_is_dir($dirofmoduletmp)) dol_mkdir($dirofmoduletmp);
|
|
||||||
|
|
||||||
|
$util = new Utils($db);
|
||||||
$srcfile=$dirofmodule.'/Specifications.asciidoc';
|
$result = $util->generateDoc($module);
|
||||||
$destfile=$dirofmoduletmp.'/'.$FILENAMEASCII;
|
|
||||||
dol_copy($srcfile, $destfile, 0, 1);
|
|
||||||
|
|
||||||
$fhandle = fopen($dirofmoduletmp.'/'.$FILENAMEASCII, 'a+');
|
|
||||||
if ($fhandle)
|
|
||||||
{
|
|
||||||
fwrite($fhandle, "\n\n\n== DATA SPECIFICATIONS...\n\n");
|
|
||||||
|
|
||||||
// TODO
|
|
||||||
fwrite($fhandle, "TODO...");
|
|
||||||
|
|
||||||
fclose($fhandle);
|
|
||||||
}
|
|
||||||
|
|
||||||
$conf->global->MODULEBUILDER_ASCIIDOCTOR='asciidoctor';
|
|
||||||
if (empty($conf->global->MODULEBUILDER_ASCIIDOCTOR))
|
|
||||||
{
|
|
||||||
dol_print_error('', 'Module setup not complete');
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
$command=$conf->global->MODULEBUILDER_ASCIIDOCTOR.' '.$destfile.' -n -o '.$dirofmodule.'/'.$FILENAMEDOC;
|
|
||||||
$outfile=$dirofmoduletmp.'/out.tmp';
|
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php';
|
|
||||||
$utils = new Utils($db);
|
|
||||||
$resarray = $utils->executeCLI($command, $outfile);
|
|
||||||
if ($resarray['result'] != '0')
|
|
||||||
{
|
|
||||||
setEventMessages($resarray['error'].' '.$resarray['output'], null, 'errors');
|
|
||||||
}
|
|
||||||
$result = ($resarray['result'] == 0) ? 1 : 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$result = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
@ -754,16 +678,7 @@ if ($dirins && $action == 'generatedoc')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
setEventMessages($util->error, $util->errors, 'errors');
|
||||||
$langs->load("errors");
|
|
||||||
setEventMessages($langs->trans("ErrorFailToGenerateFile", $outputfiledoc), null, 'errors');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$error++;
|
|
||||||
$langs->load("errors");
|
|
||||||
setEventMessages($langs->trans("ErrorCheckVersionIsDefined"), null, 'errors');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# MYMODULE FOR <a href="https://www.dolibarr.org">DOLIBARR ERP CRM</a>
|
# MYMODULE FOR <a href="https://www.dolibarr.org">DOLIBARR ERP CRM</a>
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
MyModuleDescription
|
Description...
|
||||||
|
|
||||||
Other modules are available on <a href="https://www.dolistore.com" target="_new">Dolistore.com</a>.
|
Other modules are available on <a href="https://www.dolistore.com" target="_new">Dolistore.com</a>.
|
||||||
|
|
||||||
@ -9,10 +9,11 @@ Other modules are available on <a href="https://www.dolistore.com" target="_new"
|
|||||||
|
|
||||||
### Translations
|
### Translations
|
||||||
|
|
||||||
This module contains a sample configuration for Transifex, under the hidden directory [.tx](.tx), so it is possible to manage translation using this service.
|
|
||||||
Translations can be define manually by editing files into directories [langs](langs).
|
Translations can be define manually by editing files into directories [langs](langs).
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
This module contains also a sample configuration for Transifex, under the hidden directory [.tx](.tx), so it is possible to manage translation using this service.
|
||||||
|
|
||||||
For more informations, see the [translator's documentation](https://wiki.dolibarr.org/index.php/Translator_documentation).
|
For more informations, see the [translator's documentation](https://wiki.dolibarr.org/index.php/Translator_documentation).
|
||||||
|
|
||||||
There is a [Transifex project](https://transifex.com/projects/p/dolibarr-module-template) for this module.
|
There is a [Transifex project](https://transifex.com/projects/p/dolibarr-module-template) for this module.
|
||||||
|
|||||||
@ -40,18 +40,49 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (! isset($argv[1]) || ! $argv[1]) {
|
if (! isset($argv[1]) || ! $argv[1]) {
|
||||||
print "Usage: ".$script_file." inputfile1\n";
|
print "Usage: ".$script_file." modulename\n";
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
$inputfile1=$argv[1];
|
$modulename=$argv[1];
|
||||||
|
|
||||||
require_once ($path."../../htdocs/master.inc.php");
|
require_once ($path."../../htdocs/master.inc.php");
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/modulebuilder.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php';
|
||||||
|
|
||||||
|
$langs->loadLangs(array("admin", "modulebuilder", "other", "cron"));
|
||||||
|
|
||||||
|
|
||||||
// Global variables
|
// Global variables
|
||||||
$version=DOL_VERSION;
|
$version=DOL_VERSION;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
|
// Dir for custom dirs
|
||||||
|
$tmp=explode(',', $dolibarr_main_document_root_alt);
|
||||||
|
$dirins = $tmp[0];
|
||||||
|
$dirread = $dirins;
|
||||||
|
$forceddirread = 0;
|
||||||
|
|
||||||
|
$tmpdir = explode('@', $module);
|
||||||
|
if (! empty($tmpdir[1]))
|
||||||
|
{
|
||||||
|
$module=$tmpdir[0];
|
||||||
|
$dirread=$tmpdir[1];
|
||||||
|
$forceddirread=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$FILEFLAG='modulebuilder.txt';
|
||||||
|
|
||||||
|
$now=dol_now();
|
||||||
|
$newmask = 0;
|
||||||
|
if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK;
|
||||||
|
if (empty($newmask)) // This should no happen
|
||||||
|
{
|
||||||
|
$newmask='0664';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -60,8 +91,22 @@ $error=0;
|
|||||||
|
|
||||||
@set_time_limit(0);
|
@set_time_limit(0);
|
||||||
print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n";
|
print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n";
|
||||||
print $inputfile1."<br>";
|
print "modulename=".$modulename."\n";
|
||||||
|
print "dirins=".$dirins."\n";
|
||||||
|
|
||||||
|
$FILENAMEDOC=strtolower($module).'.html'; // TODO Use/text PDF
|
||||||
|
$dirofmodule = dol_buildpath(strtolower($module), 0).'/doc';
|
||||||
|
$outputfiledoc = $dirofmodule.'/'.$FILENAMEDOC;
|
||||||
|
|
||||||
|
$util = new Utils($db);
|
||||||
|
$result = $util->generateDoc($module);
|
||||||
|
|
||||||
|
if ($result > 0)
|
||||||
|
{
|
||||||
|
print $langs->trans("DocFileGeneratedInto", $outputfiledoc);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setEventMessages($util->errors, null, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
172
scripts/modulebuilder/initmodule.php
Executable file
172
scripts/modulebuilder/initmodule.php
Executable file
@ -0,0 +1,172 @@
|
|||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2005-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file scripts/modulebuilder/initmodule.php
|
||||||
|
* \ingroup modulebuilder
|
||||||
|
* \brief Script to initialize a module.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
$sapi_type = php_sapi_name();
|
||||||
|
$script_file = basename(__FILE__);
|
||||||
|
$path=dirname(__FILE__).'/';
|
||||||
|
|
||||||
|
// Test if batch mode
|
||||||
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
|
echo "Error: You are using PHP for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! isset($argv[1]) || ! $argv[1]) {
|
||||||
|
print "Usage: ".$script_file." modulename\n";
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
$modulename=$argv[1];
|
||||||
|
|
||||||
|
require_once ($path."../../htdocs/master.inc.php");
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/modulebuilder.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
|
|
||||||
|
$langs->loadLangs(array("admin", "modulebuilder", "other", "cron"));
|
||||||
|
|
||||||
|
|
||||||
|
// Global variables
|
||||||
|
$version=DOL_VERSION;
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
// Dir for custom dirs
|
||||||
|
$tmp=explode(',', $dolibarr_main_document_root_alt);
|
||||||
|
$dirins = $tmp[0];
|
||||||
|
$dirread = $dirins;
|
||||||
|
$forceddirread = 0;
|
||||||
|
|
||||||
|
$tmpdir = explode('@', $module);
|
||||||
|
if (! empty($tmpdir[1]))
|
||||||
|
{
|
||||||
|
$module=$tmpdir[0];
|
||||||
|
$dirread=$tmpdir[1];
|
||||||
|
$forceddirread=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$FILEFLAG='modulebuilder.txt';
|
||||||
|
|
||||||
|
$now=dol_now();
|
||||||
|
$newmask = 0;
|
||||||
|
if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK;
|
||||||
|
if (empty($newmask)) // This should no happen
|
||||||
|
{
|
||||||
|
$newmask='0664';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main
|
||||||
|
*/
|
||||||
|
|
||||||
|
@set_time_limit(0);
|
||||||
|
print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n";
|
||||||
|
print "modulename=".$modulename."\n";
|
||||||
|
print "dirins=".$dirins."\n";
|
||||||
|
|
||||||
|
if (preg_match('/[^a-z0-9_]/i', $modulename))
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
print 'Error '.$langs->trans("SpaceOrSpecialCharAreNotAllowed");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template';
|
||||||
|
$destdir = $dirins.'/'.strtolower($modulename);
|
||||||
|
|
||||||
|
$arrayreplacement=array(
|
||||||
|
'mymodule'=>strtolower($modulename),
|
||||||
|
'MyModule'=>$modulename
|
||||||
|
);
|
||||||
|
|
||||||
|
$result = dolCopyDir($srcdir, $destdir, 0, 0, $arrayreplacement);
|
||||||
|
//dol_mkdir($destfile);
|
||||||
|
if ($result <= 0)
|
||||||
|
{
|
||||||
|
if ($result < 0)
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$langs->load("errors");
|
||||||
|
setEventMessages($langs->trans("ErrorFailToCopyDir", $srcdir, $destdir), null, 'errors');
|
||||||
|
}
|
||||||
|
else // $result == 0
|
||||||
|
{
|
||||||
|
setEventMessages($langs->trans("AllFilesDidAlreadyExist", $srcdir, $destdir), null, 'warnings');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete some files
|
||||||
|
dol_delete_file($destdir.'/myobject_card.php');
|
||||||
|
dol_delete_file($destdir.'/myobject_note.php');
|
||||||
|
dol_delete_file($destdir.'/myobject_document.php');
|
||||||
|
dol_delete_file($destdir.'/myobject_agenda.php');
|
||||||
|
dol_delete_file($destdir.'/myobject_list.php');
|
||||||
|
dol_delete_file($destdir.'/lib/myobject.lib.php');
|
||||||
|
dol_delete_file($destdir.'/test/phpunit/MyObjectTest.php');
|
||||||
|
dol_delete_file($destdir.'/sql/llx_mymodule_myobject.sql');
|
||||||
|
dol_delete_file($destdir.'/sql/llx_mymodule_myobject_extrafields.sql');
|
||||||
|
dol_delete_file($destdir.'/sql/llx_mymodule_myobject.key.sql');
|
||||||
|
dol_delete_file($destdir.'/scripts/myobject.php');
|
||||||
|
dol_delete_file($destdir.'/img/object_myobject.png');
|
||||||
|
dol_delete_file($destdir.'/class/myobject.class.php');
|
||||||
|
dol_delete_file($destdir.'/class/api_mymodule.class.php');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Edit PHP files
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$listofphpfilestoedit = dol_dir_list($destdir, 'files', 1, '\.(php|MD|js|sql|txt|xml|lang)$', '', 'fullname', SORT_ASC, 0, 1);
|
||||||
|
foreach($listofphpfilestoedit as $phpfileval)
|
||||||
|
{
|
||||||
|
//var_dump($phpfileval['fullname']);
|
||||||
|
$arrayreplacement=array(
|
||||||
|
'mymodule'=>strtolower($modulename),
|
||||||
|
'MyModule'=>$modulename,
|
||||||
|
'MYMODULE'=>strtoupper($modulename),
|
||||||
|
'My module'=>$modulename,
|
||||||
|
'my module'=>$modulename,
|
||||||
|
'Mon module'=>$modulename,
|
||||||
|
'mon module'=>$modulename,
|
||||||
|
'htdocs/modulebuilder/template'=>strtolower($modulename),
|
||||||
|
'---Put here your own copyright and developer email---'=>dol_print_date($now,'%Y').' '.$user->getFullName($langs).($user->email?' <'.$user->email.'>':'')
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
$result=dolReplaceInFile($phpfileval['fullname'], $arrayreplacement);
|
||||||
|
//var_dump($result);
|
||||||
|
if ($result < 0)
|
||||||
|
{
|
||||||
|
setEventMessages($langs->trans("ErrorFailToMakeReplacementInto", $phpfileval['fullname']), null, 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user