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: Sat, 17 Apr 2010 02:14:53 +0200

Le seul traitement de '@' que j'ai trouver dans lang est dans la fonction load et si je change:
$langs->load('diodm'); en $langs->load('@diodm');
en debut d'un fichier.php, alors les traductions ce font pour ce fichier.
Sinon oui en remplacent globalement les $langs->load('diodm'); en $langs->load('@diodm'); sa marche

Une chose cependant m'étonne, c'est que les tableaux de clefs soit ré-régénérer à chaque chargement de page.
Et pourquoi indiquer le fichier de lang dans dans le fichier modxxxxxxx.php si on ne charge pas se fichier de langue une fois pour toute jusqu'à la prochaine reconstruction du tableau lors de l'activation ou de la désactivation d'un module ?

Vous faite du SUPER travail, en plus le source est commenter et clair, un vrai travail de PRO et je m'y connais.
Cordialement,
Alain

Le 17 avril 2010 01:25, Alain Ivars <address@hidden> a écrit :
Je confirme : même avec :
$this->langfiles = array("@diodm");
le fichier est celui de : /htdocs/langs/fr_FR/diodm.lang
et non celui de : /htdocs/diodm/langs/fr_FR/diodm.lang
demain, je jetterai un oeil pour trouver pourquoi, mais là je ne sais pas trop ou chercher, peut tu m'indiquer la fonction qui traite cela si tu t'en souviens ?  :-)

Pour ce qui est de la page de setup du module:
$this->config_page_url = array("address@hidden");
fonctionne Nickel :-) Merci


Le 16 avril 2010 20:33, Régis Houssin <address@hidden> a écrit :


> Merci mais ca marche pas avec ma version 2.9dev d'il y à 2 jours, doit-je
> l'updater ?

Ca fonctionne chez moi

> Pour le fichier /monmodule/admin/setup_page.php cela sera pareil avec
> $this->config_page_url = array("@monmodule_setup_page.php");?

Non c'est:

$this->config_page_url = 'address@hidden';

Soit address@hidden


> Le 16 avril 2010 19:18, Régis Houssin <address@hidden> a écrit
> :
>> Non ceci tu peux le mettre dans le fichier de langue de ton module sous
>> /htdocs/mymodule/langs/fr_FR/mymodule.lang
>>
>> Et dans le fichier de conf du module tu ajoute ceci :
>>
>> $this->langfiles = array("@mymodule");
>>
>> L¹arobase détermine que le fichier de langue ³mymodule.lang² est dans le
>> répertoire en question
>>
>>
>>
>>
>>
>>
>> Le 16/04/10 18:31, « Alain Ivars » <address@hidden
>> <http://alainivars@gmail.com> > 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
>>> <http://alainivars@gmail.com> > a écrit :
>>>> Merci pour tes réponses :-)
>>>>
>>>> Le 15 avril 2010 00:39, Laurent Destailleur (eldy) <address@hidden
>>>> <http://eldy@destailleur.fr> > 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_O
>>>>>> DMS_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_O
>>>>>> DMS_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_o
>>>>>> dmNumberOf"))),
>>>>>>
>>>>>> 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_ModelePD
>>>>>> F.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=""> >>>>>> odo.'</a></td>';
>>>>>>     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=""> >>>>>> a></td>';
>>>>>>     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=""> >>>>>> \n"; //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 ?
>>>>>>

--
Régis Houssin
------------------------------------------------------
Cap-Networks
30, Quai de Verdun
71700 Tournus
Tél. +33 6 33 02 07 97
Web: http://www.cap-networks.com
Email: address@hidden

Développeur Dolibarr : address@hidden
Portail francophone : www.dolibarr.fr
Offres SaaS de Dolibarr : www.dolibox.fr
Development platform : www.dolibarr.pro
------------------------------------------------------

_______________________________________________
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


reply via email to

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