dolibarr-dev
[Top][All Lists]
Advanced

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

[Dolibarr-dev] Fractionnalisation du fichier "document.php"


From: Pierre Morin
Subject: [Dolibarr-dev] Fractionnalisation du fichier "document.php"
Date: Tue, 06 Apr 2010 15:00:29 +0200

Bonjour,

Je suis en train de travailler sur le module de gestion des livres et droits d'auteur associés et j'avais un problème pour accéder aux fichiers générés par le module.
J'ai ainsi découvert que le fichier "htdocs/document.php" avait beaucoup de données en dur et devait être modifié pour chaque ajout de module utilisant ce fichier pour que le module soit pris en charge.

Comme il semble que les développements actuels soient plutôt axés vers une meilleure modularité de Dolibarr et aussi, surtout, parce que c'est plus pérenne, j'ai décider de ne pas continuer dans la lignée de ce qui existe déjà et plutôt essayer de faire en sorte que document.php prenne en compte tous les modules, par défaut.

Je propose ainsi de remplacer les lignes 108 à 445 par les lignes suivantes :
+-CODE------------------------------------------------------------------------------------------------------------------------+
//General wrapping
if(isset($modulepart))
{
$subPermConstName = strtoupper($modulepart).'_SUBPERM_FOR_DOCUMENTS';
$subPerm = $conf->global->$subPermConstName;
if(($user->rights->$modulepart->lire) || ($user->rights->$modulepart->download) || ($user->rights->$modulepart->$subPerm->lire) || ($user->rights->$modulepart->$subPerm->download))
{
$accessallowed=1;
}
$original_file=$conf->$modulepart->dir_output.'/'.$dir.'/'.$original_file;
$sqlProtectConstName = strtoupper($modulepart).'_SQLPROTECTAGAINSTEXTERNALS_FOR_DOCUMENTS';
$sqlprotectagainstexternals = $conf->global->$sqlProtectConstName;
}
+---------------------------------------------------------------------------------------------------------------------------------+

A noter que pour qu'il fonctionne, il faudra modifier le code de certains modules actuels pour les rendre plus "normalisés".
De plus, il faudra proposer 2 nouvelles constantes de modules (optionnelles) à ajouter dans le fichier modMyModule.class.php, dont voici un exemple :

+-CODE------------------------------------------------------------------------------------------------------------------------+
$this->const = array(0=>array('BOOK_SUBPERM_FOR_DOCUMENTS','chaine','book','This is the name of the sub-permissions to use to get the documents for this module',0),
1=>array('BOOK_SQLPROTECTAGAINSTEXTERNALS_FOR_DOCUMENTS','chaine','SELECT rowid as fk_soc FROM ".MAIN_DB_PREFIX."societe WHERE rowid=\'$refname\'','This is the SQL command to execute for the basic protection against external users',0));
+---------------------------------------------------------------------------------------------------------------------------------+

Est-ce que je fait fausse route ?
Est-ce que vous avez des modifications/amélioration à proposer ?

Merci.

Bien cordialement,

-- 
Pierre Morin
address@hidden 



reply via email to

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