From 3ba194f638b25aac2c8b62c60fb6c8f4afdb3afd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 3 Nov 2015 15:32:16 +0100 Subject: [PATCH] NEW Can select fields to show into the contact list --- htdocs/contact/list.php | 499 +++++++++++++++++++++++++++++++--------- htdocs/societe/list.php | 7 +- 2 files changed, 389 insertions(+), 117 deletions(-) diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index ebe4c9c337d72..ee5c24f30178a 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -47,15 +47,16 @@ $search_societe=GETPOST("search_societe"); $search_poste=GETPOST("search_poste"); $search_phone=GETPOST("search_phone"); -$search_phoneper=GETPOST("search_phoneper"); -$search_phonepro=GETPOST("search_phonepro"); -$search_phonemob=GETPOST("search_phonemob"); +$search_phone_perso=GETPOST("search_phone_perso"); +$search_phone_pro=GETPOST("search_phone_pro"); +$search_phone_mobile=GETPOST("search_phone_mobile"); $search_fax=GETPOST("search_fax"); $search_email=GETPOST("search_email"); $search_skype=GETPOST("search_skype"); $search_priv=GETPOST("search_priv"); $search_categ=GETPOST("search_categ",'int'); $search_status=GETPOST("search_status",'int'); +$search_type=GETPOST('search_type','alpha'); if ($search_status=='') $search_status=1; // always display activ customer first $optioncss = GETPOST('optioncss','alpha'); @@ -77,28 +78,66 @@ $offset = $limit * $page; $langs->load("companies"); + +$contextpage='contactlist'; $titre = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("ListOfContacts") : $langs->trans("ListOfContactsAddresses")); if ($type == "p") { + $contextpage='contactprospectlist'; $titre.=' ('.$langs->trans("ThirdPartyProspects").')'; $urlfiche="card.php"; } if ($type == "c") { + $contextpage='contactcustomerlist'; $titre.=' ('.$langs->trans("ThirdPartyCustomers").')'; $urlfiche="card.php"; } else if ($type == "f") { + $contextpage='contactsupplierlist'; $titre.=' ('.$langs->trans("ThirdPartySuppliers").')'; $urlfiche="card.php"; } else if ($type == "o") { + $contextpage='contactotherlist'; $titre.=' ('.$langs->trans("OthersNotLinkedToThirdParty").')'; $urlfiche=""; } +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +$hookmanager->initHooks(array($contextpage)); +$extrafields = new ExtraFields($db); + +// fetch optionals attributes and labels +$extralabels = $extrafields->fetch_name_optionals_label('contact'); +$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_'); + +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array( + 'p.lastname'=>'Lastname', + 'p.firstname'=>'Firstname', + 'p.email'=>'EMail', + 's.nom'=>"ThirdParty", +); + + +/* + * Actions + */ + +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + +if (empty($reshook)) +{ + +} + if (GETPOST('button_removefilter_x') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter')) // All tests are required to be compatible with all browsers { $sall=""; @@ -108,41 +147,41 @@ $search_societe=""; $search_poste=""; $search_phone=""; - $search_phoneper=""; - $search_phonepro=""; - $search_phonemob=""; + $search_phone_perso=""; + $search_phone_pro=""; + $search_phone_mobile=""; $search_fax=""; $search_email=""; $search_skype=""; $search_priv=""; - $seach_status=1; + $search_status=-1; } if ($search_priv < 0) $search_priv=''; -// List of fields to search into when doing a "search in all" -$fieldstosearchall = array( - 'p.lastname'=>'Lastname', - 'p.firstname'=>'Firstname', - 'p.email'=>'EMail', - 's.nom'=>"ThirdParty", -); - /* * View */ -$title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")); -llxHeader('',$title,'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); - $form=new Form($db); $formother=new FormOther($db); +$contactstatic=new Contact($db); + +$title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")); +llxHeader('',$title,'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); $sql = "SELECT s.rowid as socid, s.nom as name,"; -$sql.= " p.rowid as cidp, p.lastname as lastname, p.statut, p.firstname, p.poste, p.email, p.skype,"; -$sql.= " p.phone as phone_pro, p.phone_mobile, p.phone_perso, p.fax, p.fk_pays, p.priv, p.tms,"; +$sql.= " p.rowid as cidp, p.lastname as lastname, p.statut, p.firstname, p.zip, p.town, p.poste, p.email, p.skype,"; +$sql.= " p.phone as phone_pro, p.phone_mobile, p.phone_perso, p.fax, p.fk_pays, p.priv, p.datec as date_creation, p.tms as date_update,"; $sql.= " co.code as country_code"; +// Add fields from extrafields +foreach ($extrafields->attribute_label as $key => $val) $sql.=",ef.".$key.' as options_'.$key; +// Add fields from hooks +$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)"; $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 @@ -190,17 +229,17 @@ { $sql .= " AND (p.phone LIKE '%".$db->escape($search_phone)."%' OR p.phone_perso LIKE '%".$db->escape($search_phone)."%' OR p.phone_mobile LIKE '%".$db->escape($search_phone)."%')"; } -if (strlen($search_phoneper)) +if (strlen($search_phone_perso)) { - $sql .= " AND p.phone_perso LIKE '%".$db->escape($search_phoneper)."%'"; + $sql .= " AND p.phone_perso LIKE '%".$db->escape($search_phone_perso)."%'"; } -if (strlen($search_phonepro)) +if (strlen($search_phone_pro)) { - $sql .= " AND p.phone LIKE '%".$db->escape($search_phonepro)."%'"; + $sql .= " AND p.phone LIKE '%".$db->escape($search_phone_pro)."%'"; } -if (strlen($search_phonemob)) +if (strlen($search_phone_mobile)) { - $sql .= " AND p.phone_mobile LIKE '%".$db->escape($search_phonemob)."%'"; + $sql .= " AND p.phone_mobile LIKE '%".$db->escape($search_phone_mobile)."%'"; } if (strlen($search_fax)) { @@ -214,7 +253,7 @@ { $sql .= " AND p.skype LIKE '%".$db->escape($search_skype)."%'"; } -if ($search_status!='') $sql .= " AND p.statut = ".$db->escape($search_status); +if ($search_status != '' && $search_status >= 0) $sql .= " AND p.statut = ".$db->escape($search_status); if ($type == "o") // filtre sur type { $sql .= " AND p.fk_soc IS NULL"; @@ -239,6 +278,24 @@ { $sql .= " AND s.rowid = ".$socid; } +// Add where from extra fields +foreach ($search_array_options as $key => $val) +{ + $crit=$val; + $tmpkey=preg_replace('/search_options_/','',$key); + $typ=$extrafields->attribute_type[$tmpkey]; + $mode=0; + if (in_array($typ, array('int'))) $mode=1; // Search on a numeric + if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit))) + { + $sql .= natural_search('ef.'.$tmpkey, $crit, $mode); + } +} +// Add where from hooks +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook +$sql.=$hookmanager->resPrint; + // Count total nb of records $nbtotalofrecords = 0; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) @@ -246,6 +303,7 @@ $result = $db->query($sql); $nbtotalofrecords = $db->num_rows($result); } + // Add order and limit if($view == "recent") { @@ -263,23 +321,39 @@ $result = $db->query($sql); if ($result) { - $contactstatic=new Contact($db); - - $param ='&begin='.htmlspecialchars($begin).'&view='.htmlspecialchars($view).'&userid='.htmlspecialchars($userid).'&contactname='.htmlspecialchars($sall); - $param.='&type='.htmlspecialchars($type).'&view='.htmlspecialchars($view).'&search_lastname='.htmlspecialchars($search_lastname).'&search_firstname='.htmlspecialchars($search_firstname).'&search_societe='.htmlspecialchars($search_societe).'&search_email='.htmlspecialchars($search_email); - if (!empty($search_categ)) $param.='&search_categ='.htmlspecialchars($search_categ); - if ($search_status != '') $param.='&search_status='.htmlspecialchars($search_status); - if ($search_priv == '0' || $search_priv == '1') $param.="&search_priv=".htmlspecialchars($search_priv); - if ($optioncss != '') $param.='&optioncss='.$optioncss; - $num = $db->num_rows($result); $i = 0; + $param ='&begin='.urlencode($begin).'&view='.urlencode($view).'&userid='.urlencode($userid).'&contactname='.urlencode($sall); + $param.='&type='.urlencode($type).'&view='.urlencode($view).'&search_lastname='.urlencode($search_lastname).'&search_firstname='.urlencode($search_firstname).'&search_societe='.urlencode($search_societe).'&search_email='.urlencode($search_email); + if (!empty($search_categ)) $param.='&search_categ='.urlencode($search_categ); + if ($search_lastname != '') $param.='&search_lastname='.urlencode($search_lastname); + if ($search_firstname != '') $param.='&search_firstname='.urlencode($search_firstname); + if ($search_zip != '') $param.='&search_zip='.urlencode($search_zip); + if ($search_town != '') $param.='&search_town='.urlencode($search_town); + if ($search_job != '') $param.='&search_job='.urlencode($search_job); + if ($search_phone_pro != '') $param.='&search_phone_pro='.urlencode($search_phone_pro); + if ($search_phone_perso != '') $param.='&search_phone_perso='.urlencode($search_phone_perso); + if ($search_phone_mobile != '') $param.='&search_phone_mobile='.urlencode($search_phone_mobile); + if ($search_fax != '') $param.='&search_fax='.urlencode($search_fax); + if ($search_email != '') $param.='&search_email='.urlencode($search_email); + if ($search_status != '') $param.='&search_status='.urlencode($search_status); + if ($search_priv == '0' || $search_priv == '1') $param.="&search_priv=".urlencode($search_priv); + if ($optioncss != '') $param.='&optioncss='.$optioncss; + // Add $param from extra fields + foreach ($search_array_options as $key => $val) + { + $crit=$val; + $tmpkey=preg_replace('/search_options_/','',$key); + if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val); + } + print_barre_liste($titre, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords,'title_companies.png'); print '
'; if ($optioncss != '') print ''; print ''; + print ''; print ''; print ''; print ''; @@ -306,75 +380,199 @@ { print '
'; print $moreforfilter; + $parameters=array('type'=>$type); + $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; print '
'; } + $arrayfields=array( + 'p.lastname'=>array('label'=>$langs->trans("Lastname"), 'checked'=>1), + 'p.firstname'=>array('label'=>$langs->trans("Firsname"), 'checked'=>1), + 'p.poste'=>array('label'=>$langs->trans("Post"), 'checked'=>1), + 'p.town'=>array('label'=>$langs->trans("Town"), 'checked'=>0), + 'p.zip'=>array('label'=>$langs->trans("Zip"), 'checked'=>0), + 'p.phone'=>array('label'=>$langs->trans("PhonePro"), 'checked'=>1), + 'p.phone_perso'=>array('label'=>$langs->trans("PhonePerso"), 'checked'=>0), + 'p.phone_mobile'=>array('label'=>$langs->trans("PhoneMobile"), 'checked'=>1), + 'p.fax'=>array('label'=>$langs->trans("Fax"), 'checked'=>1), + 'p.email'=>array('label'=>$langs->trans("Email"), 'checked'=>1), + 'p.skype'=>array('label'=>$langs->trans("Skype"), 'checked'=>1, 'enabled'=>(! empty($conf->skype->enabled))), + 'p.thirdparty'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1, 'enabled'=>empty($conf->global->SOCIETE_DISABLE_CONTACTS)), + 'p.priv'=>array('label'=>$langs->trans("ContactVisibility"), 'checked'=>1, 'position'=>200), + 'p.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500), + 'p.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500), + 'p.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000), + ); + // Extra fields + if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) + { + foreach($extrafields->attribute_label as $key => $val) + { + $arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>$extrafields->attribute_list[$key], 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>$extrafields->attribute_perms[$key]); + } + } + $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; + $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields print ''; // Ligne des titres print ''; - print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"p.lastname", $begin, $param, '', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"p.firstname", $begin, $param, '', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("PostOrFunction"),$_SERVER["PHP_SELF"],"p.poste", $begin, $param, '', $sortfield,$sortorder); - if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom", $begin, $param, '', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("Phone"),$_SERVER["PHP_SELF"],"p.phone", $begin, $param, '', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("PhoneMobile"),$_SERVER["PHP_SELF"],"p.phone_mobile", $begin, $param, '', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("Fax"),$_SERVER["PHP_SELF"],"p.fax", $begin, $param, '', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"p.email", $begin, $param, '', $sortfield,$sortorder); - if (! empty($conf->skype->enabled)) { print_liste_field_titre($langs->trans("Skype"),$_SERVER["PHP_SELF"],"p.skype", $begin, $param, '', $sortfield,$sortorder); } - print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"p.tms", $begin, $param, 'align="center"', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("ContactVisibility"),$_SERVER["PHP_SELF"],"p.priv", $begin, $param, 'align="center"', $sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut", $begin, $param, 'align="center"', $sortfield,$sortorder); - print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); + if (! empty($arrayfields['p.lastname']['checked'])) print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"p.lastname", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.firstname']['checked'])) print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"p.firstname", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.zip']['checked'])) print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"p.zip", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.town']['checked'])) print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"p.town", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.poste']['checked'])) print_liste_field_titre($langs->trans("PostOrFunction"),$_SERVER["PHP_SELF"],"p.poste", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.phone']['checked'])) print_liste_field_titre($langs->trans("Phone"),$_SERVER["PHP_SELF"],"p.phone", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.phone_perso']['checked'])) print_liste_field_titre($langs->trans("PhonePerso"),$_SERVER["PHP_SELF"],"p.phone_perso", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.phone_mobile']['checked'])) print_liste_field_titre($langs->trans("PhoneMobile"),$_SERVER["PHP_SELF"],"p.phone_mobile", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.fax']['checked'])) print_liste_field_titre($langs->trans("Fax"),$_SERVER["PHP_SELF"],"p.fax", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.email']['checked'])) print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"p.email", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.skype']['checked'])) print_liste_field_titre($langs->trans("Skype"),$_SERVER["PHP_SELF"],"p.skype", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.thirdparty']['checked'])) print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom", $begin, $param, '', $sortfield,$sortorder); + if (! empty($arrayfields['p.priv']['checked'])) print_liste_field_titre($langs->trans("ContactVisibility"),$_SERVER["PHP_SELF"],"p.priv", $begin, $param, 'align="center"', $sortfield,$sortorder); + // Extra fields + if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) + { + foreach($extrafields->attribute_label as $key => $val) + { + if (! empty($arrayfields["ef.".$key]['checked'])) + { + $align=$extrafields->getAlignFlag($key); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + } + } + } + // Hook fields + $parameters=array('arrayfields'=>$arrayfields); + $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + if (! empty($arrayfields['p.datec']['checked'])) print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); + if (! empty($arrayfields['p.tms']['checked'])) print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); + if (! empty($arrayfields['p.statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; // Lines for filter fields print ''; - print ''; - print ''; - print ''; - if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) + if (! empty($arrayfields['p.lastname']['checked'])) { print ''; } - print ''; - print ''; - print ''; - print ''; - if (! empty($conf->skype->enabled)) + if (! empty($arrayfields['p.lastname']['checked'])) { print ''; + } + if (! empty($arrayfields['p.poste']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.zip']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.town']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.phone']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.phone_perso']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.phone_mobile']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.fax']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.email']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.skype']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.thirdparty']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.priv']['checked'])) + { + print ''; + } + // Extra fields + if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) + { + foreach($extrafields->attribute_label as $key => $val) + { + if (! empty($arrayfields["ef.".$key]['checked'])) + { + print ''; + } + } + } + // Fields from hook + $parameters=array('arrayfields'=>$arrayfields); + $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (! empty($arrayfields['p.datec']['checked'])) + { + print ''; + } + // Date modification + if (! empty($arrayfields['p.tms']['checked'])) + { + print ''; + } + if (! empty($arrayfields['p.statut']['checked'])) + { + print ''; } - print ''; - print ''; - print ''; print ''; + print ''; $var=True; @@ -385,8 +583,6 @@ $var=!$var; print ""; - // Name - print ''; - + $contactstatic->zip=$obj->zip; + $contactstatic->town=$obj->town; + + // Name + if (! empty($arrayfields['p.lastname']['checked'])) + { + print ''; + } // Firstname - print ''; - - // Function - print ''; - + if (! empty($arrayfields['p.firstname']['checked'])) + { + print ''; + } + // Zip + if (! empty($arrayfields['p.zip']['checked'])) + { + print ''; + } + // Town + if (! empty($arrayfields['p.town']['checked'])) + { + print ''; + } + // Function + if (! empty($arrayfields['p.poste']['checked'])) + { + print ''; + } + // Phone + if (! empty($arrayfields['p.phone']['checked'])) + { + print ''; + } + // Phone perso + if (! empty($arrayfields['p.phone_perso']['checked'])) + { + print ''; + } + // Phone mobile + if (! empty($arrayfields['p.phone_mobile']['checked'])) + { + print ''; + } + // Fax + if (! empty($arrayfields['p.fax']['checked'])) + { + print ''; + } + // EMail + if (! empty($arrayfields['p.email']['checked'])) + { + print ''; + } + // Skype + if (! empty($arrayfields['p.skype']['checked'])) + { + if (! empty($conf->skype->enabled)) { print ''; } + } // Company - if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) + if (! empty($arrayfields['p.thirdparty']['checked'])) { print ''; } - // Phone - print ''; - // Phone mobile - print ''; - // Fax - print ''; - // EMail - print ''; - // Skype - if (! empty($conf->skype->enabled)) { print ''; } - - // Date - print ''; - - // Private/Public - print ''; - - // Status - print ''; + // Private/Public + if (! empty($arrayfields['p.priv']['checked'])) + { + print ''; + } - // Links Add action and Export vcard + // Extra fields + if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) + { + foreach($extrafields->attribute_label as $key => $val) + { + if (! empty($arrayfields["ef.".$key]['checked'])) + { + print 'getAlignFlag($key); + if ($align) print ' align="'.$align.'"'; + print '>'; + $tmpkey='options_'.$key; + print $extrafields->showOutputField($key, $obj->$tmpkey, '', 1); + print ''; + } + } + } + // Fields from hook + $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj); + $reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Date creation + if (! empty($arrayfields['p.datec']['checked'])) + { + print ''; + } + // Date modification + if (! empty($arrayfields['p.tms']['checked'])) + { + print ''; + } + // Status + if (! empty($arrayfields['p.statut']['checked'])) + { + print ''; + } + // Action column - Links Add action and Export vcard print ''; } // Date modification if (! empty($arrayfields['s.tms']['checked'])) { print ''; } // Status
'; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + $selectarray=array('0'=>$langs->trans("ContactPublic"),'1'=>$langs->trans("ContactPrivate")); + print $form->selectarray('search_priv',$selectarray,$search_priv,1); + print ''; + print ''; + print ''; + print ''; + print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')),$search_status); print ' '; - $selectarray=array('0'=>$langs->trans("ContactPublic"),'1'=>$langs->trans("ContactPrivate")); - print $form->selectarray('search_priv',$selectarray,$search_priv,1); - print ''; - print $form->selectarray('search_status', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')),$search_status); - print ''; print ''; print ''; print '
'; $contactstatic->lastname=$obj->lastname; $contactstatic->firstname=''; $contactstatic->id=$obj->cidp; @@ -395,17 +591,68 @@ $contactstatic->phone_pro=$obj->phone_pro; $contactstatic->phone_perso=$obj->phone_perso; $contactstatic->phone_mobile=$obj->phone_mobile; - print $contactstatic->getNomUrl(1,'',20); - print ''; + print $contactstatic->getNomUrl(1,'',20); + print ''.dol_trunc($obj->firstname,20).''.dol_trunc($obj->poste,20).''.dol_trunc($obj->firstname,20).''.dol_trunc($obj->zip,20).''.dol_trunc($obj->town,20).''.dol_trunc($obj->poste,20).''.dol_print_phone($obj->phone_pro,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''.dol_print_phone($obj->phone_perso,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''.dol_print_phone($obj->phone_mobile,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''.dol_print_phone($obj->fax,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''.dol_print_email($obj->email,$obj->cidp,$obj->socid,'AC_EMAIL',18).''.dol_print_skype($obj->skype,$obj->cidp,$obj->socid,'AC_SKYPE',18).''; if ($obj->socid) @@ -420,27 +667,53 @@ print ''.dol_print_phone($obj->phone_pro,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''.dol_print_phone($obj->phone_mobile,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''.dol_print_phone($obj->fax,$obj->country_code,$obj->cidp,$obj->socid,'AC_TEL').''.dol_print_email($obj->email,$obj->cidp,$obj->socid,'AC_EMAIL',18).''.dol_print_skype($obj->skype,$obj->cidp,$obj->socid,'AC_SKYPE',18).''.dol_print_date($db->jdate($obj->tms),"day").''.$contactstatic->LibPubPriv($obj->priv).''.$contactstatic->getLibStatut(3).''.$contactstatic->LibPubPriv($obj->priv).''; + print dol_print_date($db->jdate($obj->date_creation), 'dayhour'); + print ''; + print dol_print_date($db->jdate($obj->date_update), 'dayhour'); + print ''.$contactstatic->getLibStatut(3).''; print ''.img_object($langs->trans("AddAction"),"action").''; print '   '; diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index c8c25acdd24eb..3d234728a70d4 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -61,11 +61,10 @@ $search_idprof6=trim(GETPOST('search_idprof6')); $search_sale=trim(GETPOST("search_sale",'int')); $search_categ=trim(GETPOST("search_categ",'int')); -$search_type=trim(GETPOST('search_type')); $search_country=GETPOST("search_country",'int'); $search_type_thirdparty=GETPOST("search_type_thirdparty",'int'); -$search_type=GETPOST('search_type','alpha'); $search_status=GETPOST("search_status",'int'); +$search_type=GETPOST('search_type','alpha'); $search_level_from = GETPOST("search_level_from","alpha"); $search_level_to = GETPOST("search_level_to","alpha"); $search_stcomm=GETPOST('search_stcomm','int'); @@ -965,14 +964,14 @@ if (! empty($arrayfields['s.datec']['checked'])) { print ''; - print dol_print_date($obj->date_creation, 'dayhour'); + print dol_print_date($db->jdate($obj->date_creation), 'dayhour'); print ''; - print dol_print_date($obj->date_update, 'dayhour'); + print dol_print_date($db->jdate($obj->date_update), 'dayhour'); print '