Merge pull request #24 from remyyounes/develop

Develop - Hooks in dict to allow dictionary customization
This commit is contained in:
Laurent Destailleur 2011-10-18 16:01:08 -07:00
commit 0b7a4b56a1
2 changed files with 116 additions and 92 deletions

View File

@ -5,6 +5,7 @@
* Copyright (C) 2005-2010 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2010 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com> * Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
* Copyright (C) 2011 Remy Younes <ryounes@gmail.com>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -37,6 +38,11 @@ $langs->load("companies");
if (!$user->admin) accessforbidden(); if (!$user->admin) accessforbidden();
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
include_once(DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php');
$hookmanager=new HookManager($db);
$hookmanager->callHooks(array('dict'));
$acts[0] = "activate"; $acts[0] = "activate";
$acts[1] = "disable"; $acts[1] = "disable";
//$actl[0] = $langs->trans("Activate"); //$actl[0] = $langs->trans("Activate");
@ -615,6 +621,7 @@ if ($_GET["id"])
// Determine le nom du champ par rapport aux noms possibles // Determine le nom du champ par rapport aux noms possibles
// dans les dictionnaires de donnees // dans les dictionnaires de donnees
$valuetoshow=ucfirst($fieldlist[$field]); // Par defaut $valuetoshow=ucfirst($fieldlist[$field]); // Par defaut
$valuetoshow=$langs->trans($valuetoshow); // try to translate
if ($fieldlist[$field]=='source') { $valuetoshow=$langs->trans("Contact"); } if ($fieldlist[$field]=='source') { $valuetoshow=$langs->trans("Contact"); }
if ($fieldlist[$field]=='price') { $valuetoshow=$langs->trans("PriceUHT"); } if ($fieldlist[$field]=='price') { $valuetoshow=$langs->trans("PriceUHT"); }
if ($fieldlist[$field]=='taux') { $valuetoshow=$langs->trans("Rate"); } if ($fieldlist[$field]=='taux') { $valuetoshow=$langs->trans("Rate"); }
@ -663,8 +670,12 @@ if ($_GET["id"])
} }
} }
$action = 'add';
$parameters=array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$_GET["id"]]);
$reshook=$hookmanager->executeHooks('editDictionaryFieldlist',$parameters, $obj, $action); // Note that $action and $object may have been modified by some hooks
$error=$hookmanager->error; $errors=$hookmanager->errors;
fieldList($fieldlist,$obj); if (empty($reshook)) fieldList($fieldlist,$obj);
print '<td colspan="3" align="right"><input type="submit" class="button" name="actionadd" value="'.$langs->trans("Add").'"></td>'; print '<td colspan="3" align="right"><input type="submit" class="button" name="actionadd" value="'.$langs->trans("Add").'"></td>';
print "</tr>"; print "</tr>";
@ -703,6 +714,7 @@ if ($_GET["id"])
// dans les dictionnaires de donnees // dans les dictionnaires de donnees
$showfield=1; // Par defaut $showfield=1; // Par defaut
$valuetoshow=ucfirst($fieldlist[$field]); // Par defaut $valuetoshow=ucfirst($fieldlist[$field]); // Par defaut
$valuetoshow=$langs->trans($valuetoshow); // try to translate
if ($fieldlist[$field]=='source') { $valuetoshow=$langs->trans("Contact"); } if ($fieldlist[$field]=='source') { $valuetoshow=$langs->trans("Contact"); }
if ($fieldlist[$field]=='price') { $valuetoshow=$langs->trans("PriceUHT"); } if ($fieldlist[$field]=='price') { $valuetoshow=$langs->trans("PriceUHT"); }
if ($fieldlist[$field]=='taux') { $valuetoshow=$langs->trans("Rate"); } if ($fieldlist[$field]=='taux') { $valuetoshow=$langs->trans("Rate"); }
@ -746,12 +758,25 @@ if ($_GET["id"])
print '<input type="hidden" name="id" value="'.GETPOST("id").'">'; print '<input type="hidden" name="id" value="'.GETPOST("id").'">';
print '<input type="hidden" name="page" value="'.$page.'">'; print '<input type="hidden" name="page" value="'.$page.'">';
print '<input type="hidden" name="rowid" value="'.$_GET["rowid"].'">'; print '<input type="hidden" name="rowid" value="'.$_GET["rowid"].'">';
fieldList($fieldlist,$obj); $action = 'edit';
$parameters=array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$_GET["id"]]);
$reshook=$hookmanager->executeHooks('editDictionaryFieldlist',$parameters,$obj, $action); // Note that $action and $object may have been modified by some hooks
$error=$hookmanager->error; $errors=$hookmanager->errors;
if (empty($reshook)) fieldList($fieldlist,$obj);
print '<td colspan="3" align="right"><a name="'.($obj->rowid?$obj->rowid:$obj->code).'">&nbsp;</a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">'; print '<td colspan="3" align="right"><a name="'.($obj->rowid?$obj->rowid:$obj->code).'">&nbsp;</a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
print '&nbsp;<input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>'; print '&nbsp;<input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
} }
else else
{ {
$action = 'display';
$parameters=array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$_GET["id"]]);
$reshook=$hookmanager->executeHooks('displayDictionaryFieldlist',$parameters,$obj, $action); // Note that $action and $object may have been modified by some hooks
$error=$hookmanager->error; $errors=$hookmanager->errors;
if (empty($reshook))
{
foreach ($fieldlist as $field => $value) foreach ($fieldlist as $field => $value)
{ {
$showfield=1; $showfield=1;
@ -776,9 +801,6 @@ if ($_GET["id"])
else if ($fieldlist[$field]=='price') { else if ($fieldlist[$field]=='price') {
$valuetoshow=price($valuetoshow); $valuetoshow=price($valuetoshow);
} }
else if ($fieldlist[$field]=='price') {
$valuetoshow=price($valuetoshow);
}
else if ($fieldlist[$field]=='libelle_facture') { else if ($fieldlist[$field]=='libelle_facture') {
$langs->load("bills"); $langs->load("bills");
$key=$langs->trans("PaymentCondition".strtoupper($obj->code)); $key=$langs->trans("PaymentCondition".strtoupper($obj->code));
@ -847,6 +869,7 @@ if ($_GET["id"])
} }
if ($showfield) print '<td>'.$valuetoshow.'</td>'; if ($showfield) print '<td>'.$valuetoshow.'</td>';
} }
}
print '<td align="center" nowrap="nowrap">'; print '<td align="center" nowrap="nowrap">';
// Est-ce une entree du dictionnaire qui peut etre desactivee ? // Est-ce une entree du dictionnaire qui peut etre desactivee ?

View File

@ -901,6 +901,7 @@ function complete_dictionnary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsq
$taborder[] = count($tabname)+1; $taborder[] = count($tabname)+1;
$tabname[] = $val; $tabname[] = $val;
} }
$langs->load($objMod->dictionnaries['langs']);
foreach($objMod->dictionnaries['tablib'] as $val) $tablib[] = $val; foreach($objMod->dictionnaries['tablib'] as $val) $tablib[] = $val;
foreach($objMod->dictionnaries['tabsql'] as $val) $tabsql[] = $val; foreach($objMod->dictionnaries['tabsql'] as $val) $tabsql[] = $val;
foreach($objMod->dictionnaries['tabsqlsort'] as $val) $tabsqlsort[] = $val; foreach($objMod->dictionnaries['tabsqlsort'] as $val) $tabsqlsort[] = $val;