diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php
index c916710e087..b319072dc68 100644
--- a/htdocs/contact/list.php
+++ b/htdocs/contact/list.php
@@ -218,7 +218,7 @@ $parameters=array();
$reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook
$sql.=$hookmanager->resPrint;
$sql.= " FROM ".MAIN_DB_PREFIX."socpeople as p";
-if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."contact_extrafields as ef on (p.rowid = ef.fk_object)";
+if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople_extrafields as ef on (p.rowid = ef.fk_object)";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as co ON co.rowid = p.fk_pays";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = p.fk_soc";
if (! empty($search_categ)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_contact as cs ON p.rowid = cs.fk_socpeople"; // We need this table joined to the select in order to filter by categ
diff --git a/htdocs/core/actions_extrafields.inc.php b/htdocs/core/actions_extrafields.inc.php
index b866c322158..f31e2c184d8 100644
--- a/htdocs/core/actions_extrafields.inc.php
+++ b/htdocs/core/actions_extrafields.inc.php
@@ -161,7 +161,8 @@ if ($action == 'add')
$params,
(GETPOST('alwayseditable')?1:0),
(GETPOST('perms')?GETPOST('perms'):''),
- (GETPOST('list')?1:0)
+ (GETPOST('list')?1:0),
+ (GETPOST('ishidden')?1:0)
);
if ($result > 0)
{
@@ -311,7 +312,8 @@ if ($action == 'update')
$params,
(GETPOST('alwayseditable')?1:0),
(GETPOST('perms')?GETPOST('perms'):''),
- (GETPOST('list')?1:0)
+ (GETPOST('list')?1:0),
+ (GETPOST('ishidden')?1:0)
);
if ($result > 0)
{
diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index 005f4684322..d1153a73eda 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -4085,6 +4085,7 @@ abstract class CommonObject
else
{
$csstyle='';
+ $class=(!empty($extrafields->attribute_hidden[$key]) ? 'class="hideobject" ' : '');
if (is_array($params) && count($params)>0) {
if (array_key_exists('style',$params)) {
$csstyle=$params['style'];
@@ -4092,12 +4093,12 @@ abstract class CommonObject
}
if ( !empty($conf->global->MAIN_EXTRAFIELDS_USE_TWO_COLUMS) && ($e % 2) == 0)
{
- $out .= '
';
+ $out .= '
';
$colspan='0';
}
else
{
- $out .= '
';
+ $out .= '
';
}
// Convert date into timestamp format
if (in_array($extrafields->attribute_type[$key],array('date','datetime')))
@@ -4109,7 +4110,8 @@ abstract class CommonObject
$label = ''.$label.'';
$out .= '| '.$langs->trans($label).' | ';
- $out .='';
+ $html_id = !empty($this->id) ? $this->element.'_extras_'.$key.'_'.$this->id : '';
+ $out .=' |
";
diff --git a/htdocs/core/tpl/contacts.tpl.php b/htdocs/core/tpl/contacts.tpl.php
index 638d54a62ef..de3d79a790d 100644
--- a/htdocs/core/tpl/contacts.tpl.php
+++ b/htdocs/core/tpl/contacts.tpl.php
@@ -1,7 +1,7 @@
- * Copyright (C) 2013-2015 Laurent Destailleur
- * Copyright (C) 2015 Charlie BENKE
+/* Copyright (C) 2012 Regis Houssin
+ * Copyright (C) 2013-2015 Laurent Destailleur
+ * Copyright (C) 2015-2016 Charlie BENKE
*
* 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
@@ -27,15 +27,22 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
$module = $object->element;
// Special cases
-if ($module == 'propal') { $permission=$user->rights->propale->creer; }
-elseif ($module == 'fichinter') { $permission=$user->rights->ficheinter->creer; }
+if ($module == 'propal') { $permission=$user->rights->propale->creer; }
+elseif ($module == 'fichinter') { $permission=$user->rights->ficheinter->creer; }
elseif ($module == 'invoice_supplier') { $permission=$user->rights->fournisseur->facture->creer; }
elseif ($module == 'order_supplier') { $permission=$user->rights->fournisseur->commande->creer; }
-elseif ($module == 'project') { $permission=$user->rights->projet->creer; }
-elseif ($module == 'action') { $permission=$user->rights->agenda->myactions->create; }
-elseif ($module == 'shipping') { $permission=$user->rights->expedition->creer; }
-elseif ($module == 'project_task') { $permission=$user->rights->projet->creer; }
-elseif (! isset($permission)) { $permission=$user->rights->$module->creer; } // If already defined by caller page
+elseif ($module == 'project') { $permission=$user->rights->projet->creer; }
+elseif ($module == 'action') { $permission=$user->rights->agenda->myactions->create; }
+elseif ($module == 'shipping') { $permission=$user->rights->expedition->creer; }
+elseif ($module == 'project_task') { $permission=$user->rights->projet->creer; }
+elseif (! isset($permission) && isset($user->rights->$module->creer))
+{
+ $permission=$user->rights->$module->creer;
+}
+elseif (! isset($permission) && isset($user->rights->$module->write))
+{
+ $permission=$user->rights->$module->write;
+}
$formcompany= new FormCompany($db);
$companystatic=new Societe($db);
@@ -228,4 +235,13 @@ $userstatic=new User($db);
+
+initHooks(array('contacttpl'));
+ $parameters=array();
+ $reshook=$hookmanager->executeHooks('formContactTpl',$parameters,$object,$action);
+ }
+?>
diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php
index 8b38cbc5520..f4b817b583d 100644
--- a/htdocs/core/tpl/extrafields_view.tpl.php
+++ b/htdocs/core/tpl/extrafields_view.tpl.php
@@ -45,7 +45,8 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
}
else
{
- print '| ';
+ if (!empty($extrafields->attribute_hidden[$key])) print ' |
| ';
+ else print ' |
';
print '| attribute_required[$key])) print ' class="fieldrequired"';
@@ -67,7 +68,8 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
print ' | ' . img_edit().' | ';
print ' ';
- print ' | ';
+ $html_id = !empty($object->id) ? $object->element.'_extras_'.$key.'_'.$object->id : '';
+ print ' |