?iť?
Current Path : /home/scgforma/www/soc064/scripts/modulebuilder/ |
Current File : /home/scgforma/www/soc064/scripts/modulebuilder/initmodule.php |
#!/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")."\n"; 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"); print $langs->trans("ErrorFailToCopyDir", $srcdir, $destdir)."\n"; exit(2); } else // $result == 0 { print $langs->trans("AllFilesDidAlreadyExist", $srcdir, $destdir)."\n"; } } // 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) { print $langs->trans("ErrorFailToMakeReplacementInto", $phpfileval['fullname'])."\n"; exit(3); } } } print 'Module initialized'."\n"; exit(0);