*
* 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
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
\n";
$lastname = $this->lastname;
$firstname = $this->firstname;
if (empty($lastname)) {
$lastname = (isset($this->lastname) ? $this->lastname : (isset($this->name) ? $this->name : (isset($this->nom) ? $this->nom : (isset($this->societe) ? $this->societe : (isset($this->company) ? $this->company : '')))));
}
$ret = '';
if (!empty($option) && !empty($this->civility_code)) {
if ($langs->transnoentitiesnoconv("Civility".$this->civility_code) != "Civility".$this->civility_code) {
$ret .= $langs->transnoentitiesnoconv("Civility".$this->civility_code).' ';
} else {
$ret .= $this->civility_code.' ';
}
}
$ret .= dolGetFirstLastname($firstname, $lastname, $nameorder);
return dol_trunc($ret, $maxlen);
}
/**
* Return full address for banner
*
* @param string $htmlkey HTML id to make banner content unique
* @param Object $object Object (thirdparty, thirdparty of contact for contact, null for a member)
* @return string Full address string
*/
public function getBannerAddress($htmlkey, $object)
{
global $conf, $langs, $form, $extralanguages;
$countriesusingstate = array('AU', 'US', 'IN', 'GB', 'ES', 'UK', 'TR'); // See also option MAIN_FORCE_STATE_INTO_ADDRESS
$contactid = 0;
$thirdpartyid = 0;
$elementforaltlanguage = $this->element;
if ($this->element == 'societe') {
/** @var Societe $this */
$thirdpartyid = $this->id;
}
if ($this->element == 'contact') {
/** @var Contact $this */
$contactid = $this->id;
$thirdpartyid = empty($this->fk_soc) ? 0 : $this->fk_soc;
}
if ($this->element == 'user') {
/** @var User $this */
$contactid = $this->contact_id;
$thirdpartyid = empty($object->fk_soc) ? 0 : $object->fk_soc;
}
$out = '';
$outdone = 0;
$coords = $this->getFullAddress(1, ', ', getDolGlobalInt('MAIN_SHOW_REGION_IN_STATE_SELECT'));
if ($coords) {
if (!empty($conf->use_javascript_ajax)) {
// Add picto with tooltip on map
$namecoords = '';
if ($this->element == 'contact' && !empty($conf->global->MAIN_SHOW_COMPANY_NAME_IN_BANNER_ADDRESS)) {
$namecoords .= $object->name.'
';
}
$namecoords .= $this->getFullName($langs, 1).'
'.$coords;
// hideonsmatphone because copyToClipboard call jquery dialog that does not work with jmobile
$out .= '';
$out .= img_picto($langs->trans("Address"), 'map-marker-alt');
$out .= ' ';
}
$address = dol_print_address($coords, 'address_'.$htmlkey.'_'.$this->id, $this->element, $this->id, 1, ', ');
if ($address) {
$out .= $address;
$outdone++;
}
$outdone++;
// List of extra languages
$arrayoflangcode = array();
if (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE)) {
$arrayoflangcode[] = $conf->global->PDF_USE_ALSO_LANGUAGE_CODE;
}
if (is_array($arrayoflangcode) && count($arrayoflangcode)) {
if (!is_object($extralanguages)) {
include_once DOL_DOCUMENT_ROOT.'/core/class/extralanguages.class.php';
$extralanguages = new ExtraLanguages($this->db);
}
$extralanguages->fetch_name_extralanguages($elementforaltlanguage);
if (!empty($extralanguages->attributes[$elementforaltlanguage]['address']) || !empty($extralanguages->attributes[$elementforaltlanguage]['town'])) {
$out .= "\n";
$this->fetchValuesForExtraLanguages();
if (!is_object($form)) {
$form = new Form($this->db);
}
$htmltext = '';
// If there is extra languages
foreach ($arrayoflangcode as $extralangcode) {
$s = picto_from_langcode($extralangcode, 'class="pictoforlang paddingright"');
// This also call dol_format_address()
$coords = $this->getFullAddress(1, ', ', $conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT, $extralangcode);
$htmltext .= $s.dol_print_address($coords, 'address_'.$htmlkey.'_'.$this->id, $this->element, $this->id, 1, ', ');
}
$out .= $form->textwithpicto('', $htmltext, -1, 'language', 'opacitymedium paddingleft');
}
}
}
// If MAIN_FORCE_STATE_INTO_ADDRESS is on, state is already returned previously with getFullAddress
if (!in_array($this->country_code, $countriesusingstate) && empty($conf->global->MAIN_FORCE_STATE_INTO_ADDRESS)
&& empty($conf->global->SOCIETE_DISABLE_STATE) && $this->state) {
if (!empty($conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT) && $conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT == 1 && $this->region) {
$out .= ($outdone ? ' - ' : '').$this->region.' - '.$this->state;
} else {
$out .= ($outdone ? ' - ' : '').$this->state;
}
$outdone++;
}
if ($outdone) {
$out = '