dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] A propos de l'isolement des modules


From: Alain Ivars
Subject: Re: [Dolibarr-dev] A propos de l'isolement des modules
Date: Fri, 16 Apr 2010 18:34:39 +0200

Erreur, cela existe déjà pour les permissions

Le 16 avril 2010 18:31, Alain Ivars <address@hidden> a écrit :
Encore un autre point pour la séparation du système et des module, le fichier "admin.lang", je suis obliger d'y ajouter:

ModulexxxName = DI : Ordres de Mission
ModulexxxDesc = Diagnostic Immobilier : Interface de gestion des Ordres de missions
et
Permissionxxxx = Récupérer le résultat d'un export
Permissionxxxx = Créer/Modifier un export

Alors que j'ai déja données ces information dans : "modXXXXXX.class.php aux lignes:

// Module label (no space allowed), used if translation string 'ModulexxxName' not found (where xxx is value of numeric property 'numero' of module)
$this->name = preg_replace('/^mod/i','',get_class($this));
// Module description, used if translation string 'ModulexxxDesc' not found (where xxx is value of numeric property 'numero' of module)
$this->description = "(Diagnostic Immobilier) Interface de gestion des ordres de mission";

A première vue c'est en préparation mais pas encore fait, si quelqu'un travaille sur la séparation système/modules, il faudra qu'il rajoute le traitement de ces 2 items.


Le 16 avril 2010 17:51, Alain Ivars <address@hidden> a écrit :

Merci pour tes réponses :-)

Le 15 avril 2010 00:39, Laurent Destailleur (eldy) <address@hidden> a écrit :

Pour 1,2 3 tu peux créer une page d'admin des délais indépendante en attendant qu'on mette en place un systeme exploitable par tout module.

Pour 4, cela doit se faire en automatique. Pas besoin d'ajouter ces lignes.

Pour 5 et 6, tu peux utiliser ne direct ($this->global->MAIN_DELAY_DI_ODMS_TO_BILL*24*60*60) dans ton code. Les constantes dans ->warning_xxx ont été ajouté dans le conf pour des raisons historiques mais autant exploité directement ta constante.

Pour 7,8,9,13 je refléchirais a une solution apres la 2.9.

Pour 10 et 11, cela ne devrait pas etre nécessaire. La partie générique du code devrait fonctionner

Pour 12, faut que je modifie pour avoir un else finale générique qui focntionne pour tout module

Pour le 14, ce n'est pas nécessaire. tu peux deja ajouter tes propres liens vers ton propre js an mettant la liste des js dans un tableau passé en paramètre de la fonction llx_header.


PS: Avec la 2.9, de nombreuses classes dans htdocs sont déplacées dans htocs/xxx, il faudra modifier les includes pour etre compatible avec la future 2.9


Alain Ivars a écrit :
Salut à tous,

En cour de développement d'un module spécialisé pour les Diagnostiqueurs Immobilier, j'ai plusieurs points à présenter sur lesquels on devra surement faire des aménagements pour permettre une meuilleure isolation:

Dans:
******
1/ htdocs/admin/delais.php ligne 55: j'ai besoin de rajouter:
***********************************************************
 if ($_POST["di_odmsToBill"]) dolibarr_set_const($db, "MAIN_DELAY_DI_ODMS_TO_BILL",$_POST["di_odmsToBill"],'chaine',0,'',$conf->entity);

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer delais1.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

2/ htdocs/admin/delais.php ligne 172: j'ai besoin de rajouter:
********************************************************************
   if ($conf->di_odm->enabled)
   {
       $var=!$var;
       print '<tr '.$bc[$var].'>';
       print '<td width="20px">'.img_object('','propal').'</td>';
       print '<td>'.$langs->trans("di_odmDelaysOfToleranceToBill").'</td><td>';
       print '<input size="5" name="di_odmsToBill" value="'. ($conf->global->MAIN_DELAY_DI_ODMS_TO_BILL+0) . '"> ' . $langs->trans("days") . '</td></tr>';
   }
Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer delais2.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

3/ htdocs/admin/delais.php ligne 292: j'ai besoin de rajouter:
********************************************************************
   if ($conf->di_odm->enabled)
   {
       $var=!$var;
       print '<tr '.$bc[$var].'>';
       print '<td width="20px">'.img_object('','service').'</td>';
       print '<td>'.$langs->trans("di_odmDelaysOfToleranceToBill").'</td><td>' . ($conf->global->MAIN_DELAY_DI_ODMS_TO_BILL+0) . ' ' . $langs->trans("days") . '</td></tr>';
   }
Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer delais3.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

4/ htdocs/core/conf.class.php ligne 273: j'ai besoin de rajouter:
***********************************************************************
       $this->di_odm->dir_output=DOL_DATA_ROOT."/di_odm";
       $this->di_odm->dir_temp  =DOL_DATA_ROOT."/di_odm/temp";

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer conf.class1.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

5/ htdocs/core/conf.class.php ligne 407: j'ai besoin de rajouter:
***********************************************************************
       $this->di_odm->facturation->warning_delay=$this->global->MAIN_DELAY_DI_ODMS_TO_BILL*24*60*60;

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer conf.class1.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

6/ htdocs/core/conf.class.php ligne 407: j'ai besoin de rajouter:
***********************************************************************
       $this->di_odm->facturation->warning_delay=$this->global->MAIN_DELAY_DI_ODMS_TO_BILL*24*60*60;

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer conf.class2.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

7/ htdocs/product/stats/fiche.php ligne 164: j'ai besoin de rajouter:
***************************************************************************
       'di_odm'           =>array('modulepart'=>'di_odmproductstats',
       'file' => $product->id.'/di_odm12m.png',
       'label' => ($mode=='byunit'?$langs->trans("di_odmNumberOfUnits"):$langs->trans("di_odmNumberOf"))),

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer fiche1.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

8/ htdocs/product/stats/fiche.php ligne 188: j'ai besoin de rajouter:
***************************************************************************
               if ($key == 'di_odm')            $graph_data = $product->get_nb_di_odm($socid,$mode);

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer fiche2.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

9/ htdocs/product/stats/fiche.php ligne 222: j'ai besoin de rajouter:
***************************************************************************
           if ($graphfiles == 'di_odm' && ! $user->right->di_odm->lire) continue;

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer fiche3.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

10/ htdocs/commonObject.php ligne 805: j'ai besoin de rajouter:
*************************************************************************
805: if ($this->element == 'di_odm') $fieldtva='total_tva';

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer commonObject1.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

11/ htdocs/document.php ligne 805: j'ai besoin de rajouter:
*************************************************************************
   // Wrapping pour les di_odm
   if ($modulepart == 'di_odm')
   {
       $user->getrights('di_odm');
       if ($user->rights->di_odm->lire || preg_match('/^specimen/i',$original_file))
       {
           $accessallowed=1;
       }
       $original_file=$conf->di_odm->dir_output.'/'.$original_file;
       $sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."di_ordremission WHERE ref='$refname'";
   }

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer commonObject1.php qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.

12/ htdocs/html.formfile.class.php ligne 282: j'ai besoin de rajouter:
**********************************************************************
           else if ($modulepart == 'di_odm')
           {
               if (is_array($genallowed)) $modellist=$genallowed;
               else
               {
                   include_once(DOL_DOCUMENT_ROOT.'/includes/modules/di_odm/di_odm_ModelePDF.php');
                   $model=new di_odm_ModelePDF();
                   $modellist=$model->liste_modeles($this->db);
               }
           }

Je propose de faire une boucle d'include sur tout les modules et de mettre dans un répertoire htdocs/MonModule/system/ un fichier nommer html.formfile.class1.php  qui contiendra cette ligne et qui sera inclus si trouvé par la boucle d'include.


13/ htdocs/index.php ligne j'ai besoin de rajouter:
********************************************************
128:     ! empty($conf->di_odm->enabled) && $user->rights->di_odm->lire
142:     DOL_DOCUMENT_ROOT."/di_odm/di_odm.class.php"
156:                   'di_odm_model'
198:                  "di_odmTitreMenu"
212:    DOL_URL_ROOT.'/di_odm/di_odm.php?mainmenu=commercial'
226:                    "di_odm"
568 à 617:
// Nbre di_odm ouvertes (expirees)
if ($conf->di_odm->enabled && $user->rights->di_odm->lire)
{
   $langs->load("di_odm");
   include_once(DOL_DOCUMENT_ROOT."/di_odm/di_odm.class.php");
   $board=new di_odm_model($db);
   $board->load_board($user,"opened");
   $var=!$var;
   print '<tr '.$bc[$var].'><td width="16">'.img_object($langs->trans("di_odmsToClose"),"propal").'</td><td>'.$langs->trans("di_odmsToClose").'</td>';
   print '<td align="right"><a href="">    print '<td align="right">';
   print '<a href="">    print $board->nbtodolate;
   print '</a></td><td nowrap align="right">';
   print ' (>'.ceil($conf->di_odm->cloture->warning_delay/60/60/24).' '.$langs->trans("days").')';
   print '</td>';
   print '<td>';
   if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
   else print '&nbsp;';
   print '</td>';
   print '</tr>';
}
// Nbre di_odm fermees signees (a facturer)
if ($conf->di_odm->enabled && $user->rights->di_odm->lire)
{
   $langs->load("di_odm");
   include_once(DOL_DOCUMENT_ROOT."/di_odm/di_odm.class.php");
   $board=new di_odm_model($db);
   $board->load_board($user,"signed");
   $var=!$var;
   print '<tr '.$bc[$var].'><td width="16">'.img_object($langs->trans("di_odmToBill"),"propal").'</td><td>'.$langs->trans("di_odmToBill").'</td>';
   print '<td align="right"><a href="">    print '<td align="right">';
   print '<a href="">    print $board->nbtodolate;
   print '</a></td><td nowrap align="right">';
   print ' (>'.ceil($conf->di_odm->facturation->warning_delay/60/60/24).' '.$langs->trans("days").')';
   print '</td>';
   print '<td>';
   if ($board->nbtodolate > 0) { print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning"); $nboflate+=$board->nbtodolate; }
   else print '&nbsp;';
   print '</td>';
   print '</tr>';
   print "\n";
}

La je ne sais pas quoi proposer

14/ htdocs/main.inc.php lj'ai besoin de rajouter:
******************************************************
           print '<script type="text/_javascript_" src="" //TODO: Needed for di_odm
           print '<script type="text/_javascript_" src="" //TODO: Needed for di_odm
           print '<script type="text/_javascript_" src="" //TODO: Needed for di_odm

Pour ce point la c'est assez simple : jquery sera peut etre rajouter à Dolibarr, mais il faut quand même une possibilité de rajouter au moins un .js par module, peut-etre comme le .css dans le fichier modMonModule.php

Y a t'il des solutions qui existe déjà dans la 2.8 ou la 2.9 car je suis en 2.7.1 en ce moment ?
Mon module est-il le seul à avoir ce type de besoin ?


--

Alain IVARS
Diagnostiqueur Immobilier
Société Diagnostic Immobilier pour les Particuliers les Professionnels et les Administrations
http://www.DIPPA.fr
Tel: 01 30 23 97 65
Mobile: 06 79 00 77 95

------------------------------------------------------------------------


_______________________________________________
Dolibarr-dev mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev
 



_______________________________________________
Dolibarr-dev mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev



--
Alain IVARS
Groupement Diagnostiqueurs Immobilier Indépendants (www.GDII.fr)
Tel: 09 53 23 01 91 Mobile: 06 79 00 77 95
Innovativ Method Business Concept (www.IMBC.fr)
Tel: 09 53 23 01 91 Mobile: 06 79 00 77 95
Société Diagnostic Immobilier pour les Particuliers les Professionnels et les Administrations (www.DIPPA.fr)
Tel: 09 53 23 01 91 Mobile: 06 79 00 77 95




--
Alain IVARS
Groupement Diagnostiqueurs Immobilier Indépendants (www.GDII.fr)
Tel: 09 53 23 01 91 Mobile: 06 79 00 77 95
Innovativ Method Business Concept (www.IMBC.fr)
Tel: 09 53 23 01 91 Mobile: 06 79 00 77 95
Société Diagnostic Immobilier pour les Particuliers les Professionnels et les Administrations (www.DIPPA.fr)
Tel: 09 53 23 01 91 Mobile: 06 79 00 77 95




--
Alain IVARS
Groupement Diagnostiqueurs Immobilier Indépendants (www.GDII.fr)
Tel: 09 53 23 01 91 Mobile: 06 79 00 77 95
Innovativ Method Business Concept (www.IMBC.fr)
Tel: 09 53 23 01 91 Mobile: 06 79 00 77 95
Société Diagnostic Immobilier pour les Particuliers les Professionnels et les Administrations (www.DIPPA.fr)
Tel: 09 53 23 01 91 Mobile: 06 79 00 77 95


reply via email to

[Prev in Thread] Current Thread [Next in Thread]