2
0
forked from Wavyzz/dolibarr

Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into develop

Conflicts:
	htdocs/modulebuilder/index.php
	htdocs/modulebuilder/template/core/modules/mymodule/mod_myobject_advanced.php
	htdocs/modulebuilder/template/core/modules/mymodule/mod_myobject_standard.php
	htdocs/supplier_proposal/class/supplier_proposal.class.php
This commit is contained in:
Laurent Destailleur
2020-04-03 18:07:24 +02:00
12 changed files with 214 additions and 80 deletions

View File

@@ -38,6 +38,7 @@ if (!$user->admin) accessforbidden();
$id = GETPOST('rowid', 'int'); $id = GETPOST('rowid', 'int');
$action = GETPOST('action', 'alpha'); $action = GETPOST('action', 'alpha');
$optioncss = GETPOST('optionscss', 'alphanohtml');
$mode = GETPOST('mode', 'aZ09') ?GETPOST('mode', 'aZ09') : 'createform'; // 'createform', 'filters', 'sortorder', 'focus' $mode = GETPOST('mode', 'aZ09') ?GETPOST('mode', 'aZ09') : 'createform'; // 'createform', 'filters', 'sortorder', 'focus'
@@ -252,7 +253,7 @@ $texthelp = $langs->trans("PageUrlForDefaultValues");
if ($mode == 'createform') $texthelp .= $langs->trans("PageUrlForDefaultValuesCreate", 'societe/card.php', 'societe/card.php?abc=val1&def=val2'); if ($mode == 'createform') $texthelp .= $langs->trans("PageUrlForDefaultValuesCreate", 'societe/card.php', 'societe/card.php?abc=val1&def=val2');
else $texthelp .= $langs->trans("PageUrlForDefaultValuesList", 'societe/list.php', 'societe/list.php?abc=val1&def=val2'); else $texthelp .= $langs->trans("PageUrlForDefaultValuesList", 'societe/list.php', 'societe/list.php?abc=val1&def=val2');
$texthelp .= '<br><br>'.$langs->trans("AlsoDefaultValuesAreEffectiveForActionCreate"); $texthelp .= '<br><br>'.$langs->trans("AlsoDefaultValuesAreEffectiveForActionCreate");
$texturl = $form->textwithpicto($langs->trans("Url"), $texthelp); $texturl = $form->textwithpicto($langs->trans("RelativeURL"), $texthelp);
print_liste_field_titre($texturl, $_SERVER["PHP_SELF"], 'page,param', '', $param, '', $sortfield, $sortorder); print_liste_field_titre($texturl, $_SERVER["PHP_SELF"], 'page,param', '', $param, '', $sortfield, $sortorder);
// Field // Field
$texthelp = $langs->trans("TheKeyIsTheNameOfHtmlField"); $texthelp = $langs->trans("TheKeyIsTheNameOfHtmlField");

View File

@@ -90,13 +90,13 @@ if (empty($reshook))
// Action clone object // Action clone object
if ($action == 'confirm_clone' && $confirm == 'yes') if ($action == 'confirm_clone' && $confirm == 'yes')
{ {
if (empty($_REQUEST["clone_content"]) && empty($_REQUEST["clone_receivers"])) if (! GETPOST("clone_content", 'alpha') && ! GETPOST("clone_receivers", 'alpha'))
{ {
setEventMessages($langs->trans("NoCloneOptionsSpecified"), null, 'errors'); setEventMessages($langs->trans("NoCloneOptionsSpecified"), null, 'errors');
} }
else else
{ {
$result = $object->createFromClone($user, $object->id, $_REQUEST["clone_content"], $_REQUEST["clone_receivers"]); $result = $object->createFromClone($user, $object->id, GETPOST("clone_content", 'alpha'), GETPOST("clone_receivers", 'alpha'));
if ($result > 0) if ($result > 0)
{ {
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result); header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result);

View File

@@ -273,8 +273,8 @@ class Mailing extends CommonObject
* *
* @param User $user User making the clone * @param User $user User making the clone
* @param int $fromid Id of object to clone * @param int $fromid Id of object to clone
* @param int $option1 1=Copy content, 0=Forget content * @param int $option1 1=Clone content, 0=Forget content
* @param int $option2 Not used * @param int $option2 1=Clone recipients
* @return int New id of clone * @return int New id of clone
*/ */
public function createFromClone(User $user, $fromid, $option1, $option2) public function createFromClone(User $user, $fromid, $option1, $option2)
@@ -305,7 +305,7 @@ class Mailing extends CommonObject
$object->bgcolor = ''; $object->bgcolor = '';
$object->bgimage = ''; $object->bgimage = '';
$object->email_from = ''; //$object->email_from = ''; // We do not reset from email because it is a mandatory value
$object->email_replyto = ''; $object->email_replyto = '';
$object->email_errorsto = ''; $object->email_errorsto = '';
@@ -331,7 +331,7 @@ class Mailing extends CommonObject
if (! $error) if (! $error)
{ {
//Clone target // Clone recipient targets
if (!empty($option2)) { if (!empty($option2)) {
require_once DOL_DOCUMENT_ROOT .'/core/modules/mailings/modules_mailings.php'; require_once DOL_DOCUMENT_ROOT .'/core/modules/mailings/modules_mailings.php';

View File

@@ -127,10 +127,10 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir =
{ {
$i++; $i++;
$texttoinsert .= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',"; $texttoinsert .= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',";
$texttoinsert .= " 'enabled'=>".($val['enabled'] != '' ? $val['enabled'] : 1).","; $texttoinsert .= " 'enabled'=>".($val['enabled'] !== '' ? $val['enabled'] : 1).",";
$texttoinsert .= " 'position'=>".($val['position'] != '' ? $val['position'] : 50).","; $texttoinsert .= " 'position'=>".($val['position'] !== '' ? $val['position'] : 50).",";
$texttoinsert .= " 'notnull'=>".(empty($val['notnull']) ? 0 : $val['notnull']).","; $texttoinsert .= " 'notnull'=>".(empty($val['notnull']) ? 0 : $val['notnull']).",";
$texttoinsert .= " 'visible'=>".($val['visible'] != '' ? $val['visible'] : -1).","; $texttoinsert .= " 'visible'=>".($val['visible'] !== '' ? $val['visible'] : -1).",";
if ($val['noteditable']) $texttoinsert .= " 'noteditable'=>'".$val['noteditable']."',"; if ($val['noteditable']) $texttoinsert .= " 'noteditable'=>'".$val['noteditable']."',";
if ($val['default']) $texttoinsert .= " 'default'=>'".$val['default']."',"; if ($val['default']) $texttoinsert .= " 'default'=>'".$val['default']."',";
if ($val['index']) $texttoinsert .= " 'index'=>".$val['index'].","; if ($val['index']) $texttoinsert .= " 'index'=>".$val['index'].",";

View File

@@ -219,6 +219,7 @@ if ($action == 'presend')
if (!empty($origin) && !empty($origin_id)) { if (!empty($origin) && !empty($origin_id)) {
$element = $subelement = $origin; $element = $subelement = $origin;
$regs = array();
if (preg_match('/^([^_]+)_([^_]+)/i', $origin, $regs)) { if (preg_match('/^([^_]+)_([^_]+)/i', $origin, $regs)) {
$element = $regs[1]; $element = $regs[1];
$subelement = $regs[2]; $subelement = $regs[2];

View File

@@ -221,6 +221,7 @@ DoliPartnersDesc=List of companies providing custom-developed modules or feature
WebSiteDesc=External websites for more add-on (non-core) modules... WebSiteDesc=External websites for more add-on (non-core) modules...
DevelopYourModuleDesc=Some solutions to develop your own module... DevelopYourModuleDesc=Some solutions to develop your own module...
URL=URL URL=URL
RelativeURL=Relative URL
BoxesAvailable=Widgets available BoxesAvailable=Widgets available
BoxesActivated=Widgets activated BoxesActivated=Widgets activated
ActivateOn=Activate on ActivateOn=Activate on

View File

@@ -174,6 +174,7 @@ SaveAndStay=Save and stay
SaveAndNew=Save and new SaveAndNew=Save and new
TestConnection=Test connection TestConnection=Test connection
ToClone=Clone ToClone=Clone
ConfirmCloneAsk=Are you sure you want to clone the object <b>%s</b>?
ConfirmClone=Choose data you want to clone: ConfirmClone=Choose data you want to clone:
NoCloneOptionsSpecified=No data to clone defined. NoCloneOptionsSpecified=No data to clone defined.
Of=of Of=of

View File

@@ -92,6 +92,7 @@ if (empty($newmask)) // This should no happen
$result = restrictedArea($user, 'modulebuilder', null); $result = restrictedArea($user, 'modulebuilder', null);
$error = 0;
/* /*
@@ -784,12 +785,20 @@ if ($dirins && $action == 'initobject' && $module && GETPOST('createtablearray',
if ($dirins && $action == 'initobject' && $module && $objectname) if ($dirins && $action == 'initobject' && $module && $objectname)
{ {
$objectname = ucfirst($objectname);
if (preg_match('/[^a-z0-9_]/i', $objectname)) if (preg_match('/[^a-z0-9_]/i', $objectname))
{ {
$error++; $error++;
setEventMessages($langs->trans("SpaceOrSpecialCharAreNotAllowed"), null, 'errors'); setEventMessages($langs->trans("SpaceOrSpecialCharAreNotAllowed"), null, 'errors');
$tabobj = 'newobject'; $tabobj = 'newobject';
} }
if (class_exists($objectname)) {
// TODO Add a more efficient detection. Scan disk ?
$error++;
setEventMessages($langs->trans("AnObjectWithThisClassNameAlreadyExists"), null, 'errors');
$tabobj = 'newobject';
}
$srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template';
$destdir = $dirins.'/'.strtolower($module); $destdir = $dirins.'/'.strtolower($module);
@@ -881,16 +890,31 @@ if ($dirins && $action == 'initobject' && $module && $objectname)
// Edit the class 'class/'.strtolower($objectname).'.class.php' // Edit the class 'class/'.strtolower($objectname).'.class.php'
if (GETPOST('includerefgeneration', 'aZ09')) { if (GETPOST('includerefgeneration', 'aZ09')) {
// Replace 'visible'=>1, 'noteditable'=>0, 'default'=>'' // Replace 'visible'=>1, 'noteditable'=>0, 'default'=>''
$arrayreplacement = array('/\'visible\'=>1,\s*\'noteditable\'=>0,\s*\'default\'=>\'\'/' => "'visible'=>4, 'noteditable'=>1, 'default'=>'(PROV)'"); $arrayreplacement = array(
'/\'visible\'=>1,\s*\'noteditable\'=>0,\s*\'default\'=>\'\'/' => "'visible'=>4, 'noteditable'=>1, 'default'=>'(PROV)'"
);
//var_dump($arrayreplacement);exit; //var_dump($arrayreplacement);exit;
//var_dump($destdir.'/class/'.strtolower($objectname).'.class.php');exit; //var_dump($destdir.'/class/'.strtolower($objectname).'.class.php');exit;
dolReplaceInFile($destdir.'/class/'.strtolower($objectname).'.class.php', $arrayreplacement, '', 0, 0, 1); dolReplaceInFile($destdir.'/class/'.strtolower($objectname).'.class.php', $arrayreplacement, '', 0, 0, 1);
$arrayreplacement = array(
'/\'models\' => 0,/' => '\'models\' => 1,'
);
dolReplaceInFile($destdir.'/core/modules/mod'.$module.'.class.php', $arrayreplacement, '', 0, 0, 1);
} }
// Edit the setup file and the card page // Edit the setup file and the card page
if (GETPOST('includedocgeneration', 'aZ09')) { if (GETPOST('includedocgeneration', 'aZ09')) {
// TODO // Replace some var init into some files
// dolReplaceInFile(); $arrayreplacement = array(
'/\$includedocgeneration = 0;/' => '$includedocgeneration = 1;'
);
dolReplaceInFile($destdir.'/class/'.strtolower($objectname).'.class.php', $arrayreplacement, '', 0, 0, 1);
$arrayreplacement = array(
'/\'models\' => 0,/' => '\'models\' => 1,'
);
dolReplaceInFile($destdir.'/core/modules/mod'.$module.'.class.php', $arrayreplacement, '', 0, 0, 1);
} }
// Scan for object class files // Scan for object class files
@@ -1639,12 +1663,90 @@ $head[$h][1] = '<span class="valignmiddle text-plus-circle">'.$langs->trans("New
$head[$h][2] = 'initmodule'; $head[$h][2] = 'initmodule';
$h++; $h++;
foreach ($listofmodules as $tmpmodule => $tmpmodulearray) $linktoenabledisable = '';
{ $modulestatusinfo = '';
if (is_array($listofmodules) && count($listofmodules) > 0) {
// Define $linktoenabledisable and $modulestatusinfo
$modulelowercase=strtolower($module);
$const_name = 'MAIN_MODULE_'.strtoupper($module);
$param='';
if ($tab) $param.='&tab='.urlencode($tab);
if ($module) $param.='&module='.urlencode($module);
if ($tabobj) $param.='&tabobj='.urlencode($tabobj);
$urltomodulesetup='<a href="'.DOL_URL_ROOT.'/admin/modules.php?search_keyword='.urlencode($module).'">'.$langs->trans('Home').'-'.$langs->trans("Setup").'-'.$langs->trans("Modules").'</a>';
if (! empty($conf->global->$const_name)) // If module is already activated
{
$linktoenabledisable.='<a class="reposition asetresetmodule" href="'.$_SERVER["PHP_SELF"].'?id='.$moduleobj->numero.'&action=reset&value=mod' . $module . $param . '">';
$linktoenabledisable.=img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', '', 1);
$linktoenabledisable.='</a>';
$objMod = $moduleobj;
$backtourlparam = '';
$backtourlparam .= ($backtourlparam ? '&' : '?').'module='.$module; // No urlencode here, done later
if ($tab) $backtourlparam .= ($backtourlparam ? '&' : '?').'tab='.$tab; // No urlencode here, done later
$backtourl = $_SERVER["PHP_SELF"].$backtourlparam;
$regs = array();
if (is_array($objMod->config_page_url))
{
$i = 0;
foreach ($objMod->config_page_url as $page)
{
$urlpage = $page;
if ($i++)
{
$linktoenabledisable .= ' <a href="'.$urlpage.'" title="'.$langs->trans($page).'">'.img_picto(ucfirst($page), "setup").'</a>';
// print '<a href="'.$page.'">'.ucfirst($page).'</a>&nbsp;';
}
else
{
if (preg_match('/^([^@]+)@([^@]+)$/i', $urlpage, $regs))
{
$urltouse = dol_buildpath('/'.$regs[2].'/admin/'.$regs[1], 1);
$linktoenabledisable .= ' &nbsp; <a href="'.$urltouse.(preg_match('/\?/', $urltouse) ? '&' : '?').'save_lastsearch_values=1&backtopage='.urlencode($backtourl).'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"), "setup", 'style="padding-right: 6px"').'</a>';
}
else
{
$urltouse = $urlpage;
$linktoenabledisable .= ' &nbsp; <a href="'.$urltouse.(preg_match('/\?/', $urltouse) ? '&' : '?').'save_lastsearch_values=1&backtopage='.urlencode($backtourl).'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"), "setup", 'style="padding-right: 6px"').'</a>';
}
}
}
}
elseif (preg_match('/^([^@]+)@([^@]+)$/i', $objMod->config_page_url, $regs))
{
$linktoenabledisable .= ' &nbsp; <a href="'.dol_buildpath('/'.$regs[2].'/admin/'.$regs[1], 1).'?save_lastsearch_values=1&backtopage='.urlencode($backtourl).'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"), "setup", 'style="padding-right: 6px"').'</a>';
}
}
else
{
$linktoenabledisable.='<a class="reposition asetresetmodule" href="'.$_SERVER["PHP_SELF"].'?id='.$moduleobj->numero.'&action=set&value=mod' . $module . $param . '">';
$linktoenabledisable.=img_picto($langs->trans("ModuleIsNotActive", $urltomodulesetup), 'switch_off', '', false, 0, 0, '', 'classfortooltip', 1);
$linktoenabledisable.="</a>\n";
}
if (! empty($conf->$modulelowercase->enabled))
{
$modulestatusinfo=$form->textwithpicto('', $langs->trans("Warning").' : '.$langs->trans("ModuleIsLive"), -1, 'warning');
}
// Loop to show tab of each module
foreach ($listofmodules as $tmpmodule => $tmpmodulearray)
{
$head[$h][0] = $_SERVER["PHP_SELF"].'?module='.$tmpmodulearray['modulenamewithcase'].($forceddirread ? '@'.$dirread : ''); $head[$h][0] = $_SERVER["PHP_SELF"].'?module='.$tmpmodulearray['modulenamewithcase'].($forceddirread ? '@'.$dirread : '');
$head[$h][1] = $tmpmodulearray['modulenamewithcase']; $head[$h][1] = $tmpmodulearray['modulenamewithcase'];
$head[$h][2] = $tmpmodulearray['modulenamewithcase']; $head[$h][2] = $tmpmodulearray['modulenamewithcase'];
/*if ($tmpmodule == $modulelowercase) {
$head[$h][1] .= ' '.$modulestatusinfo;
$head[$h][1] .= ' '.$linktoenabledisable;
}*/
$h++; $h++;
}
} }
$head[$h][0] = $_SERVER["PHP_SELF"].'?module=deletemodule'; $head[$h][0] = $_SERVER["PHP_SELF"].'?module=deletemodule';
@@ -1692,9 +1794,6 @@ elseif (!empty($module))
{ {
$dirread = $listofmodules[strtolower($module)]['moduledescriptorrootpath']; $dirread = $listofmodules[strtolower($module)]['moduledescriptorrootpath'];
$head2 = array();
$h = 0;
$modulelowercase = strtolower($module); $modulelowercase = strtolower($module);
$const_name = 'MAIN_MODULE_'.strtoupper($module); $const_name = 'MAIN_MODULE_'.strtoupper($module);
@@ -1726,6 +1825,9 @@ elseif (!empty($module))
$modulestatusinfo = $form->textwithpicto($langs->trans("ModuleIsLive"), $langs->trans("Warning"), -1, 'warning'); $modulestatusinfo = $form->textwithpicto($langs->trans("ModuleIsLive"), $langs->trans("Warning"), -1, 'warning');
} }
$head2 = array();
$h = 0;
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=description&module='.$module.($forceddirread ? '@'.$dirread : ''); $head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=description&module='.$module.($forceddirread ? '@'.$dirread : '');
$head2[$h][1] = $langs->trans("Description"); $head2[$h][1] = $langs->trans("Description");
$head2[$h][2] = 'description'; $head2[$h][2] = 'description';
@@ -1746,16 +1848,16 @@ elseif (!empty($module))
$head2[$h][2] = 'objects'; $head2[$h][2] = 'objects';
$h++; $h++;
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=menus&module='.$module.($forceddirread ? '@'.$dirread : '');
$head2[$h][1] = $langs->trans("Menus");
$head2[$h][2] = 'menus';
$h++;
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=permissions&module='.$module.($forceddirread ? '@'.$dirread : ''); $head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=permissions&module='.$module.($forceddirread ? '@'.$dirread : '');
$head2[$h][1] = $langs->trans("Permissions"); $head2[$h][1] = $langs->trans("Permissions");
$head2[$h][2] = 'permissions'; $head2[$h][2] = 'permissions';
$h++; $h++;
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=menus&module='.$module.($forceddirread ? '@'.$dirread : '');
$head2[$h][1] = $langs->trans("Menus");
$head2[$h][2] = 'menus';
$h++;
$head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=hooks&module='.$module.($forceddirread ? '@'.$dirread : ''); $head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=hooks&module='.$module.($forceddirread ? '@'.$dirread : '');
$head2[$h][1] = $langs->trans("Hooks"); $head2[$h][1] = $langs->trans("Hooks");
$head2[$h][2] = 'hooks'; $head2[$h][2] = 'hooks';
@@ -1802,8 +1904,8 @@ elseif (!empty($module))
$h++; $h++;
// Link to enable / disable // Link to enable / disable
print $modulestatusinfo; print '<div class="center">'.$modulestatusinfo;
print ' '.$linktoenabledisable.'<br>'; print ' '.$linktoenabledisable.'</div>';
print '<br>'; print '<br>';
@@ -2083,7 +2185,7 @@ elseif (!empty($module))
print_liste_field_titre("Condition", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Condition", $_SERVER["PHP_SELF"], '', "", $param, '', $sortfield, $sortorder);
print "</tr>\n"; print "</tr>\n";
if (is_array($dicts)) if (is_array($dicts) && is_array($dicts['tabname']))
{ {
$i = 0; $i = 0;
$maxi = count($dicts['tabname']); $maxi = count($dicts['tabname']);
@@ -2567,6 +2669,7 @@ elseif (!empty($module))
print '<input class="button" type="submit" name="add" value="'.$langs->trans("Add").'">'; print '<input class="button" type="submit" name="add" value="'.$langs->trans("Add").'">';
print '</td></tr>'; print '</td></tr>';
// List of existing properties
foreach ($properties as $propkey => $propval) foreach ($properties as $propkey => $propval)
{ {
/* If from Reflection /* If from Reflection
@@ -2638,7 +2741,7 @@ elseif (!empty($module))
print $propenabled ? $propenabled : ''; print $propenabled ? $propenabled : '';
print '</td>'; print '</td>';
print '<td class="center">'; print '<td class="center">';
print $propvisible ? $propvisible : ''; print $propvisible ? $propvisible : '0';
print '</td>'; print '</td>';
print '<td class="center">'; print '<td class="center">';
print $propnoteditable ? $propnoteditable : ''; print $propnoteditable ? $propnoteditable : '';

View File

@@ -552,12 +552,13 @@ class MyObject extends CommonObject
} }
$this->newref = $num; $this->newref = $num;
if (! empty($num)) {
// Validate // Validate
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element; $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element;
$sql .= " SET ref = '".$this->db->escape($num)."',"; $sql .= " SET ref = '".$this->db->escape($num)."',";
$sql .= " status = ".self::STATUS_VALIDATED.","; $sql .= " status = ".self::STATUS_VALIDATED;
$sql .= " date_validation = '".$this->db->idate($now)."',"; if (! empty($this->fields['date_validation'])) $sql .= ", date_validation = '".$this->db->idate($now)."',";
$sql .= " fk_user_valid = ".$user->id; if (! empty($this->fields['fk_user_valid'])) $sql .= ", fk_user_valid = ".$user->id;
$sql .= " WHERE rowid = ".$this->id; $sql .= " WHERE rowid = ".$this->id;
dol_syslog(get_class($this)."::validate()", LOG_DEBUG); dol_syslog(get_class($this)."::validate()", LOG_DEBUG);
@@ -576,6 +577,7 @@ class MyObject extends CommonObject
if ($result < 0) $error++; if ($result < 0) $error++;
// End call triggers // End call triggers
} }
}
if (!$error) if (!$error)
{ {
@@ -951,7 +953,7 @@ class MyObject extends CommonObject
$langs->load("mymodule@myobject"); $langs->load("mymodule@myobject");
if (empty($conf->global->MYMODULE_MYOBJECT_ADDON)) { if (empty($conf->global->MYMODULE_MYOBJECT_ADDON)) {
$conf->global->MYMODULE_MYOBJECT_ADDON = 'mod_mymobject_standard'; $conf->global->MYMODULE_MYOBJECT_ADDON = 'mod_myobject_standard';
} }
if (!empty($conf->global->MYMODULE_MYOBJECT_ADDON)) if (!empty($conf->global->MYMODULE_MYOBJECT_ADDON))
@@ -977,10 +979,11 @@ class MyObject extends CommonObject
return ''; return '';
} }
if (class_exists($classname)) {
$obj = new $classname(); $obj = new $classname();
$numref = $obj->getNextValue($this); $numref = $obj->getNextValue($this);
if ($numref != "") if ($numref != '' && $numref != '-1')
{ {
return $numref; return $numref;
} }
@@ -990,10 +993,14 @@ class MyObject extends CommonObject
//dol_print_error($this->db,get_class($this)."::getNextNumRef ".$obj->error); //dol_print_error($this->db,get_class($this)."::getNextNumRef ".$obj->error);
return ""; return "";
} }
} else {
print $langs->trans("Error")." ".$langs->trans("ClassNotFound").' '.$classname;
return "";
}
} }
else else
{ {
print $langs->trans("Error")." ".$langs->trans("Error_MYMODULE_MYOBJECT_ADDON_NotDefined"); print $langs->trans("ErrorNumberingModuleNotSetup", $this->element);
return ""; return "";
} }
} }
@@ -1013,6 +1020,9 @@ class MyObject extends CommonObject
{ {
global $conf, $langs; global $conf, $langs;
$result = 0;
$includedocgeneration = 0;
$langs->load("mymodule@mymodule"); $langs->load("mymodule@mymodule");
if (!dol_strlen($modele)) { if (!dol_strlen($modele)) {
@@ -1027,7 +1037,11 @@ class MyObject extends CommonObject
$modelpath = "core/modules/mymodule/doc/"; $modelpath = "core/modules/mymodule/doc/";
return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams); if ($includedocgeneration) {
$result = $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
}
return $result;
} }
/** /**

View File

@@ -100,13 +100,18 @@ class mod_myobject_advanced extends ModeleNumRefMyObject
{ {
global $conf, $langs, $mysoc; global $conf, $langs, $mysoc;
$old_code_client = $mysoc->code_client; $object = new MyObject($this->db);
$object->initAsSpecimen();
/*$old_code_client = $mysoc->code_client;
$old_code_type = $mysoc->typent_code; $old_code_type = $mysoc->typent_code;
$mysoc->code_client = 'CCCCCCCCCC'; $mysoc->code_client = 'CCCCCCCCCC';
$mysoc->typent_code = 'TTTTTTTTTT'; $mysoc->typent_code = 'TTTTTTTTTT';*/
$numExample = $this->getNextValue($mysoc);
$mysoc->code_client = $old_code_client; $numExample = $this->getNextValue($object);
$mysoc->typent_code = $old_code_type;
/*$mysoc->code_client = $old_code_client;
$mysoc->typent_code = $old_code_type;*/
if (!$numExample) if (!$numExample)
{ {

View File

@@ -89,7 +89,12 @@ class mod_myobject_standard extends ModeleNumRefMyObject
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; $sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
$sql .= " FROM ".MAIN_DB_PREFIX."mymodule_myobject"; $sql .= " FROM ".MAIN_DB_PREFIX."mymodule_myobject";
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; $sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " AND entity = ".$conf->entity; if ($object->ismultientitymanaged == 1) {
$sql.= " AND entity = ".$conf->entity;
}
elseif ($object->ismultientitymanaged == 2) {
// TODO
}
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql)
@@ -122,7 +127,12 @@ class mod_myobject_standard extends ModeleNumRefMyObject
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; $sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
$sql .= " FROM ".MAIN_DB_PREFIX."mymodule_myobject"; $sql .= " FROM ".MAIN_DB_PREFIX."mymodule_myobject";
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'"; $sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
$sql .= " AND entity = ".$conf->entity; if ($object->ismultientitymanaged == 1) {
$sql.= " AND entity = ".$conf->entity;
}
elseif ($object->ismultientitymanaged == 2) {
// TODO
}
$resql = $db->query($sql); $resql = $db->query($sql);
if ($resql) if ($resql)

View File

@@ -290,7 +290,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
if ($action == 'clone') { if ($action == 'clone') {
// Create an array for form // Create an array for form
$formquestion = array(); $formquestion = array();
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneMyObject', $object->ref), 'confirm_clone', $formquestion, 'yes', 1); $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmCloneAsk', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
} }
// Confirmation of action xxxx // Confirmation of action xxxx
@@ -581,7 +581,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
} }
//Select mail models is same action as presend //Select mail models is same action as presend
/*
if (GETPOST('modelselected')) $action = 'presend'; if (GETPOST('modelselected')) $action = 'presend';
// Presend form // Presend form
@@ -591,7 +590,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
$trackid = 'myobject'.$object->id; $trackid = 'myobject'.$object->id;
include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php'; include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
*/
} }
// End of page // End of page