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: Laurent Destailleur (eldy)
Subject: Re: [Dolibarr-dev] A propos de l'isolement des modules
Date: Thu, 15 Apr 2010 00:39:24 +0200
User-agent: Thunderbird 2.0.0.24 (Windows/20100228)

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="'.DOL_URL_ROOT.'/di_odm/di_odm_view.php?viewstatut=1">'.$board->nbtodo.'</a></td>';
    print '<td align="right">';
print '<a href="'.DOL_URL_ROOT.'/di_odm/di_odm_view.php?viewstatut=1">';
    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="'.DOL_URL_ROOT.'/comm/propal.php?viewstatut=2">'.$board->nbtodo.'</a></td>';
    print '<td align="right">';
print '<a href="'.DOL_URL_ROOT.'/di_odm/di_odm_view.php?viewstatut=2">';
    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="'.DOL_URL_ROOT.'/di_odm/js/jquery-1.4.2.js"></script>'."\n"; //TODO: Needed for di_odm print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/di_odm/js/jquery-ui-1.8.custom.min.js"></script>'."\n"; //TODO: Needed for di_odm print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/di_odm/js/imbc.js"></script>'."\n"; //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





reply via email to

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