Bonjour,
Je suis entrain de me lancer dans la création de mon premier formulaire dans mon nouveau module intitulé moduletest.
Dans /modultest/core/modules/modModuletest.class.php j’ai :
[code]
$this->menu[$r]=array(‹ fk_menu ›=>‹ fk_mainmenu=moduletest,fk_leftmenu=PremierMenu ›, // ‹ › if this is a top menu. For left menu, use ‹ fk_mainmenu=xxx › or ‹ fk_mainmenu=xxx,fk_leftmenu=yyy › where xxx is mainmenucode and yyy is a leftm$
‹ type ›=>‹ left ›, // This is a Left menu entry
‹ titre ›=>‹ Formulaire Dolibarr ›,
‹ mainmenu ›=>‹ moduletest ›,
‹ leftmenu ›=>‹ PremierMenu ›,
‹ url ›=>‹ moduletest/card.php?action=create&leftmenu=PremierMenu ›,
‹ langs ›=>‹ mymodule@mymodule ›, // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
‹ position ›=>102,
// ‹ enabled ›=>’$conf->mymodule->enabled’, // Define condition to show or hide menu entry. Use ‹ $conf->mymodule->enabled › if entry must be visible if module is enabled. Use '$leftmenu==
De ce fait, dès que je clique sur Formulaire Dolibarr, je suis redirigé vers /moduletest/card.php
Par ailleurs j’ai crée spécialement une nouvelle table dans /moduletest/sql/llx_moduletest_myobject.sql :
CREATE TABLE llx_moduletest_myobject(
-- BEGIN MODULEBUILDER FIELDS
rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL,
prenom VARCHAR(255) NOT NULL,
datenaissance DATETIME NOT NULL,
adresse VARCHAR(255) NOT NULL,
codepostal INTEGER NOT NULL,
fk_country integer DEFAULT 0,
tms TIMESTAMP NOT NULL,
import_key varchar(14)
-- END MODULEBUILDER FIELDS
) ENGINE=innodb;
Enfin, j’ai mon fichier /moduletest/card.php :
// Load Dolibarr environment
$res=0;
// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
// Try main.inc.php into web root detected using web root caluclated from SCRIPT_FILENAME
$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
// Try main.inc.php using relative path
if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
if (! $res) die("Include of main fails");
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
$langs->load("mymodule@mymodule");
$id = (GETPOST('id','int'):$user->id);
$action = GETPOST('action','alpha');
$mode = GETPOST('mode','alpha');
$confirm = GETPOST('confirm','alpha');
$subaction = GETPOST('subaction','alpha');
$group = GETPOST("group","int",3);
$cancel = GETPOST('cancel');
/*
* Actions
*/
// If create a request
if ($action == 'create')
{
$object = new Moduletest($db);
$db->begin();
$nom = GETPOST('nom');
$prenom = GETPOST('prenom');
$datenaissance = dol_mktime(0, 0, 0, GETPOST('datenaissance_month'), GETPOST('datenaissance_day'), GETPOST('datenaissance_year'));
$adresse=GETPOST('adresse');
$codepostal=GETPOST('codepostal');
$valideur = GETPOST('valideur');
// If no nom
if (empty($nom))
{
setEventMessages($langs->trans("Pas de nom"), null, 'errors');
$error++;
$action='create';
}
// If no prénom
if (empty($prenom))
{
setEventMessages($langs->trans("Pas de prénom"), null, 'errors');
$error++;
$action='create';
}
// If no date naissance
if (empty($datenaissance))
{
setEventMessages($langs->trans("Pas de date de naissance"), null, 'errors');
$error++;
$action='create';
}
// If no adresse
if (empty($adresse))
{
setEventMessages($langs->trans("Pas d'adresse"), null, 'errors');
$error++;
$action='create';
}
// If no codepostal
if (empty($codepostal))
{
setEventMessages($langs->trans("Pas de code postal"), null, 'errors');
$error++;
$action='create';
}
// If no validator designated
if ($valideur < 1)
{
setEventMessages($langs->transnoentitiesnoconv('InvalidValidatorCP'), null, 'errors');
$error++;
}
$result = 0;
if (! $error)
{
$object->nom = $nom;
$object->prenom = $prenom;
$object->datenaissance = $datenaissance;
$object->adresse = $adresse;
$object->codepostal = $codepostal;
$result = $object->create($user);
if ($result <= 0)
{
setEventMessages($object->error, $object->errors, 'errors');
$error++;
}
}
// If no SQL error we redirect to the request card
if (! $error)
{
$db->commit();
header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id);
exit;
}
else
{
$db->rollback();
}
}
}
llxFooter();
$db->close();
?>
Dès que je clique sur mon left menu -> Formulaire Dolibarr, j’obtiens une page blanche. Serait-il possible d’avoir un petit peu d’aide sur la création des formulaires car je ne trouve quasiment rien sur le wiki, etc …system
De ce fait, dès que je clique sur Formulaire Dolibarr, je suis redirigé vers /moduletest/card.php
Par ailleurs j’ai crée spécialement une nouvelle table dans /moduletest/sql/llx_moduletest_myobject.sql :
CREATE TABLE llx_moduletest_myobject(
-- BEGIN MODULEBUILDER FIELDS
rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL,
prenom VARCHAR(255) NOT NULL,
datenaissance DATETIME NOT NULL,
adresse VARCHAR(255) NOT NULL,
codepostal INTEGER NOT NULL,
fk_country integer DEFAULT 0,
tms TIMESTAMP NOT NULL,
import_key varchar(14)
-- END MODULEBUILDER FIELDS
) ENGINE=innodb;
Enfin, j’ai mon fichier /moduletest/card.php :
// Load Dolibarr environment
$res=0;
// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
// Try main.inc.php into web root detected using web root caluclated from SCRIPT_FILENAME
$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
// Try main.inc.php using relative path
if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
if (! $res) die("Include of main fails");
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
$langs->load("mymodule@mymodule");
$id = (GETPOST('id','int'):$user->id);
$action = GETPOST('action','alpha');
$mode = GETPOST('mode','alpha');
$confirm = GETPOST('confirm','alpha');
$subaction = GETPOST('subaction','alpha');
$group = GETPOST("group","int",3);
$cancel = GETPOST('cancel');
/*
* Actions
*/
// If create a request
if ($action == 'create')
{
$object = new Moduletest($db);
$db->begin();
$nom = GETPOST('nom');
$prenom = GETPOST('prenom');
$datenaissance = dol_mktime(0, 0, 0, GETPOST('datenaissance_month'), GETPOST('datenaissance_day'), GETPOST('datenaissance_year'));
$adresse=GETPOST('adresse');
$codepostal=GETPOST('codepostal');
$valideur = GETPOST('valideur');
// If no nom
if (empty($nom))
{
setEventMessages($langs->trans("Pas de nom"), null, 'errors');
$error++;
$action='create';
}
// If no prénom
if (empty($prenom))
{
setEventMessages($langs->trans("Pas de prénom"), null, 'errors');
$error++;
$action='create';
}
// If no date naissance
if (empty($datenaissance))
{
setEventMessages($langs->trans("Pas de date de naissance"), null, 'errors');
$error++;
$action='create';
}
// If no adresse
if (empty($adresse))
{
setEventMessages($langs->trans("Pas d'adresse"), null, 'errors');
$error++;
$action='create';
}
// If no codepostal
if (empty($codepostal))
{
setEventMessages($langs->trans("Pas de code postal"), null, 'errors');
$error++;
$action='create';
}
// If no validator designated
if ($valideur < 1)
{
setEventMessages($langs->transnoentitiesnoconv('InvalidValidatorCP'), null, 'errors');
$error++;
}
$result = 0;
if (! $error)
{
$object->nom = $nom;
$object->prenom = $prenom;
$object->datenaissance = $datenaissance;
$object->adresse = $adresse;
$object->codepostal = $codepostal;
$result = $object->create($user);
if ($result <= 0)
{
setEventMessages($object->error, $object->errors, 'errors');
$error++;
}
}
// If no SQL error we redirect to the request card
if (! $error)
{
$db->commit();
header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id);
exit;
}
else
{
$db->rollback();
}
}
}
llxFooter();
$db->close();
?>
Dès que je clique sur mon left menu -> Formulaire Dolibarr, j’obtiens une page blanche. Serait-il possible d’avoir un petit peu d’aide sur la création des formulaires car je ne trouve quasiment rien sur le wiki, etc …’ to show if leftmenu system is selecte$
‹ enabled ›=> 1,
‹ perms ›=>‹ 1 ›, // Use ‹ perms ›=>’$user->rights->mymodule->level1->level2’ if you want your menu with a permission rules
‹ target ›=>’’,
‹ user ›=>2);
$r++;[/code]
De ce fait, dès que je clique sur Formulaire Dolibarr, je suis redirigé vers /moduletest/card.php
Par ailleurs j’ai crée spécialement une nouvelle table dans /moduletest/sql/llx_moduletest_myobject.sql :
CREATE TABLE llx_moduletest_myobject(
-- BEGIN MODULEBUILDER FIELDS
rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(255) NOT NULL,
prenom VARCHAR(255) NOT NULL,
datenaissance DATETIME NOT NULL,
adresse VARCHAR(255) NOT NULL,
codepostal INTEGER NOT NULL,
fk_country integer DEFAULT 0,
tms TIMESTAMP NOT NULL,
import_key varchar(14)
-- END MODULEBUILDER FIELDS
) ENGINE=innodb;
Enfin, j’ai mon fichier /moduletest/card.php :
// Load Dolibarr environment
$res=0;
// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
// Try main.inc.php into web root detected using web root caluclated from SCRIPT_FILENAME
$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
// Try main.inc.php using relative path
if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
if (! $res) die("Include of main fails");
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
$langs->load("mymodule@mymodule");
$id = (GETPOST('id','int'):$user->id);
$action = GETPOST('action','alpha');
$mode = GETPOST('mode','alpha');
$confirm = GETPOST('confirm','alpha');
$subaction = GETPOST('subaction','alpha');
$group = GETPOST("group","int",3);
$cancel = GETPOST('cancel');
/*
* Actions
*/
// If create a request
if ($action == 'create')
{
$object = new Moduletest($db);
$db->begin();
$nom = GETPOST('nom');
$prenom = GETPOST('prenom');
$datenaissance = dol_mktime(0, 0, 0, GETPOST('datenaissance_month'), GETPOST('datenaissance_day'), GETPOST('datenaissance_year'));
$adresse=GETPOST('adresse');
$codepostal=GETPOST('codepostal');
$valideur = GETPOST('valideur');
// If no nom
if (empty($nom))
{
setEventMessages($langs->trans("Pas de nom"), null, 'errors');
$error++;
$action='create';
}
// If no prénom
if (empty($prenom))
{
setEventMessages($langs->trans("Pas de prénom"), null, 'errors');
$error++;
$action='create';
}
// If no date naissance
if (empty($datenaissance))
{
setEventMessages($langs->trans("Pas de date de naissance"), null, 'errors');
$error++;
$action='create';
}
// If no adresse
if (empty($adresse))
{
setEventMessages($langs->trans("Pas d'adresse"), null, 'errors');
$error++;
$action='create';
}
// If no codepostal
if (empty($codepostal))
{
setEventMessages($langs->trans("Pas de code postal"), null, 'errors');
$error++;
$action='create';
}
// If no validator designated
if ($valideur < 1)
{
setEventMessages($langs->transnoentitiesnoconv('InvalidValidatorCP'), null, 'errors');
$error++;
}
$result = 0;
if (! $error)
{
$object->nom = $nom;
$object->prenom = $prenom;
$object->datenaissance = $datenaissance;
$object->adresse = $adresse;
$object->codepostal = $codepostal;
$result = $object->create($user);
if ($result <= 0)
{
setEventMessages($object->error, $object->errors, 'errors');
$error++;
}
}
// If no SQL error we redirect to the request card
if (! $error)
{
$db->commit();
header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id);
exit;
}
else
{
$db->rollback();
}
}
}
llxFooter();
$db->close();
?>
Dès que je clique sur mon left menu -> Formulaire Dolibarr, j’obtiens une page blanche. Serait-il possible d’avoir un petit peu d’aide sur la création des formulaires car je ne trouve quasiment rien sur le wiki, etc …