25if (!defined(
'NOLOGIN')) {
28if (!defined(
'NOCSRFCHECK')) {
29 define(
"NOCSRFCHECK", 1);
31if (!defined(
'NOIPCHECK')) {
32 define(
'NOIPCHECK',
'1');
34if (!defined(
'NOBROWSERNOTIF')) {
35 define(
'NOBROWSERNOTIF',
'1');
39require
'../../main.inc.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/lib/security.lib.php';
41require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/class/vcard.class.php';
53$langs->loadLangs(array(
"companies",
"other",
"recruitment"));
56$action =
GETPOST(
'action',
'aZ09');
58$cancel =
GETPOST(
'cancel',
'alpha');
62$securekey =
GETPOST(
'securekey',
'alpha');
71$urlwithroot = DOL_MAIN_URL_ROOT;
76if ($encodedsecurekey != $securekey) {
90 if (!empty($backtopage)) {
91 header(
"Location: ".$backtopage);
106$modulepart =
'userphotopublic';
107$dir =
$conf->user->dir_output;
124if (!empty($logosmall) && is_readable($dir.
'/'.$logosmall)) {
125 $urllogo = DOL_URL_ROOT.
'/viewimage.php?modulepart='.urlencode($modulepart).($conf->entity > 1 ?
'&entity='.$conf->entity :
'').
'&securekey='.urlencode($securekey).
'&file='.urlencode($logosmall);
126 $urllogofull = $dolibarr_main_url_root.
'/viewimage.php?modulepart='.$modulepart.($conf->entity > 1 ?
'&entity='.$conf->entity :
'').
'&securekey='.urlencode($securekey).
'&file='.urlencode($logosmall);
127} elseif (!empty($logo) && is_readable($dir.
'/'.$logo)) {
128 $urllogo = DOL_URL_ROOT.
'/viewimage.php?modulepart='.urlencode($modulepart).($conf->entity > 1 ?
'&entity='.$conf->entity :
'').
'&securekey='.urlencode($securekey).
'&file='.urlencode($logo);
129 $urllogofull = $dolibarr_main_url_root.
'/viewimage.php?modulepart='.$modulepart.($conf->entity > 1 ?
'&entity='.$conf->entity :
'').
'&securekey='.urlencode($securekey).
'&file='.urlencode($logo);
139if (
getDolUserInt(
'USER_PUBLIC_HIDE_JOBPOSITION', 0, $object)) {
148if (
getDolUserInt(
'USER_PUBLIC_HIDE_OFFICE_PHONE', 0, $object)) {
151if (
getDolUserInt(
'USER_PUBLIC_HIDE_OFFICE_FAX', 0, $object)) {
154if (
getDolUserInt(
'USER_PUBLIC_HIDE_USER_MOBILE', 0, $object)) {
157if (
getDolUserInt(
'USER_PUBLIC_HIDE_SOCIALNETWORKS', 0, $object)) {
161 $listofnetworks =
$object->socialnetworks;
163 if (!empty($listofnetworks)) {
164 foreach ($listofnetworks as $key => $networkVal) {
165 if (
getDolUserInt(
'USER_PUBLIC_HIDE_SOCIALNETWORKS_'.strtoupper($key), 0, $object)) {
166 unset(
$object->socialnetworks[$key]);
190if (
getDolUserInt(
'SOCIETE_PUBLIC_HIDE_OFFICE_PHONE', 0, $object)) {
193if (
getDolUserInt(
'SOCIETE_PUBLIC_HIDE_OFFICE_FAX', 0, $object)) {
199if (
getDolUserInt(
'USER_PUBLIC_HIDE_SOCIALNETWORKS_BUSINESS', 0, $object) && is_object($company)) {
200 $company->socialnetworks = [];
203 $listofnetworks = $mysoc->socialnetworks;
205 if (!empty($listofnetworks)) {
206 foreach ($listofnetworks as $key => $networkVal) {
207 if (
getDolUserInt(
'SOCIETE_PUBLIC_HIDE_SOCIALNETWORKS_'.strtoupper($key), 0, $object)) {
208 unset($mysoc->socialnetworks[$key]);
215if ($mode ==
'vcard') {
217 $output = $v->buildVCardString($object, $company, $langs, $urllogofull);
219 $filename = trim(urldecode($v->getFileName()));
225 header(
"Content-Disposition: attachment; filename=\"".$filename.
"\"");
226 header(
"Content-Length: ".
dol_strlen($output));
227 header(
"Connection: close");
238 $head =
'<link rel="stylesheet" type="text/css" href="' .
getDolGlobalString(
'MAIN_USER_PROFILE_CSS_URL').
'?lang='.$langs->defaultlang.
'">'.
"\n";
241$conf->dol_hide_topmenu = 1;
242$conf->dol_hide_leftmenu = 1;
245 $langs->load(
"errors");
246 print
'<div class="error">'.$langs->trans(
'ErrorPublicInterfaceNotEnabled').
'</div>';
252$arrayofcss = array();
254$replacemainarea = (empty(
$conf->dol_hide_leftmenu) ?
'<div>' :
'').
'<div>';
255llxHeader($head,
$object->getFullName($langs).
' - '.$langs->trans(
"PublicVirtualCard"),
'',
'', 0, 0, $arrayofjs, $arrayofcss,
'',
'onlinepaymentbody'.(GETPOST(
'mode') ==
'preview' ?
' scalepreview cursorpointer virtualcardpreview' :
''), $replacemainarea, 1, 1);
259@media (prefers-color-scheme: dark) {
261 background-color: #CCC !important;
267print
'<span id="dolpaymentspan"></span>'.
"\n";
268print
'<div class="center">'.
"\n";
270print
'<form id="dolpaymentform" class="center" name="paymentform" action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">'.
"\n";
271print
'<input type="hidden" name="token" value="'.newToken().
'">'.
"\n";
272print
'<input type="hidden" name="action" value="dosubmit">'.
"\n";
273print
'<input type="hidden" name="securekey" value="'.$securekey.
'">'.
"\n";
274print
'<input type="hidden" name="entity" value="'.$conf->entity.
'" />';
278print
'<div class="backgreypublicpayment">';
279print
'<div class="logopublicpayment">';
282print
'<div class="double colortext">'.$object->getFullName($langs).
'</div>';
285 print
'<div class="">';
290 print
'<div class="bold">';
305 print
'<div class="backimagepublicrecruitment">';
306 print
'<img id="idUSER_IMAGE_PUBLIC_INTERFACE" src="' .
getDolGlobalString(
'USER_IMAGE_PUBLIC_INTERFACE').
'">';
310$urlforqrcode =
$object->getOnlineVirtualCardUrl(
'vcard');
316$showbarcode =
GETPOST(
'nobarcode') ? 0 : 1;
318 $outdir =
$conf->user->dir_temp;
320 $filename = $v->buildVCardString($object, $company, $langs,
'', $outdir);
323 print
'<div class="floatleft inline-block valignmiddle paddingleft paddingright">';
325 print
'<img style="max-width: 100%" src="'.$dolibarr_main_url_root.
'/viewimage.php?modulepart=barcode&entity='.((int)
$conf->entity).
'&generator=tcpdfbarcode&encoding=QRCODE&code='.urlencode(basename($filename)).
'">';
337 $usersection .=
'<div class="flexitemsmall">';
339 $usersection .=
'</div>';
344 $usersection .=
'<div class="flexitemsmall">';
345 $usersection .=
img_picto(
'',
'globe',
'class="pictofixedwidth"');
347 $usersection .=
'</div>';
352 $usersection .=
'<div class="flexitemsmall">';
353 $usersection .=
img_picto(
'',
'phone',
'class="pictofixedwidth"');
355 $usersection .=
'</div>';
359 $usersection .=
'<div class="flexitemsmall">';
360 $usersection .=
img_picto(
'',
'phoning_fax',
'class="pictofixedwidth"');
362 $usersection .=
'</div>';
366 $usersection .=
'<div class="flexitemsmall">';
367 $usersection .=
img_picto(
'',
'phoning_mobile',
'class="pictofixedwidth"');
369 $usersection .=
'</div>';
372 $usersection .=
'<div class="flexitemsmall">';
373 $usersection .=
img_picto(
'',
'calendar',
'class="pictofixedwidth"');
375 $usersection .=
'</div>';
378 $usersection .=
'<div class="flexitemsmall">';
379 $usersection .=
img_picto(
'',
'state',
'class="pictofixedwidth"');
381 $usersection .=
'</div>';
385if (!empty(
$object->socialnetworks) && is_array(
$object->socialnetworks)) {
387 $listOfSocialNetworks =
$object->socialnetworks;
388 foreach ($listOfSocialNetworks as $key => $value) {
389 if (!
getDolUserString(
'USER_HIDE_SOCIALNETWORK_'.strtoupper($key), 0, $object)) {
390 $usersection .=
'<div class="flexitemsmall">'.dol_print_socialnetworks($key, 0,
$object->id, strtolower($key), $socialnetworksdict).
'</div>';
399 print
'<img class="userphotopublicvcard" id="dolpaymentlogo" src="'.$urllogofull.
'">';
404 print
'<table id="dolpaymenttable" summary="Job position offer" class="center">'.
"\n";
407 print
'<tr><td class="left">';
409 print
'<div class="nowidthimp nopaddingtoponsmartphone" id="tablepublicpayment">';
416 print
'</td></tr>'.
"\n";
418 print
'</table>'.
"\n";
422 print
'<br><center><img class="userphotopublicvcard" style="position: unset !important;" id="dolpaymentlogo" src="'.$urllogofull.
'"></center>';
428 $companysection =
'';
431 $companysection .=
'<div class="flexitemsmall">';
432 $companysection .=
img_picto(
'',
'email',
'class="pictofixedwidth"');
434 $companysection .=
'</div>';
438 $companysection .=
'<div class="flexitemsmall">';
439 $companysection .=
img_picto(
'',
'globe',
'class="pictofixedwidth"');
440 $companysection .=
dol_print_url($mysoc->url,
'_blank', 0, 0,
'');
441 $companysection .=
'</div>';
445 $companysection .=
'<div class="flexitemsmall">';
446 $companysection .=
img_picto(
'',
'phone',
'class="pictofixedwidth"');
447 $companysection .=
dol_print_phone($mysoc->phone, $mysoc->country_code, 0, $mysoc->id,
'tel',
' ',
'',
'');
448 $companysection .=
'</div>';
451 $companysection .=
'<div class="flexitemsmall">';
452 $companysection .=
img_picto(
'',
'phoning_fax',
'class="pictofixedwidth"');
453 $companysection .=
dol_print_phone($mysoc->fax, $mysoc->country_code, 0, $mysoc->id,
'fax',
' ',
'',
'');
454 $companysection .=
'</div>';
458 if (!empty($mysoc->socialnetworks) && is_array($mysoc->socialnetworks) && count($mysoc->socialnetworks) > 0) {
459 if (!
getDolUserInt(
'USER_PUBLIC_HIDE_SOCIALNETWORKS_BUSINESS', 0, $object)) {
460 foreach ($mysoc->socialnetworks as $key => $value) {
461 if (!
getDolUserInt(
'SOCIETE_PUBLIC_HIDE_SOCIALNETWORKS_'.strtoupper($key), 0, $object)) {
462 $companysection .=
'<div class="flexitemsmall wordbreak">'.dol_print_socialnetworks($value, 0, $mysoc->id, $key, $socialnetworksdict).
'</div>';
470 $logosmall = $mysoc->logo_squarred_small ? $mysoc->logo_squarred_small : $mysoc->logo_small;
471 $logo = $mysoc->logo_squarred ? $mysoc->logo_squarred : $mysoc->logo;
472 $paramlogo =
'ONLINE_USER_LOGO_'.$suffix;
482 if (!empty($logosmall) && is_readable(
$conf->mycompany->dir_output.
'/logos/thumbs/'.$logosmall)) {
483 $urllogo = DOL_URL_ROOT.
'/viewimage.php?modulepart=mycompany'.(
$conf->entity > 1 ?
'&entity='.$conf->entity :
'').
'&file='.urlencode(
'logos/thumbs/'.$logosmall);
484 $urllogofull = $dolibarr_main_url_root.
'/viewimage.php?modulepart=mycompany'.(
$conf->entity > 1 ?
'&entity='.$conf->entity :
'').
'&file='.urlencode(
'logos/thumbs/'.$logosmall);
485 } elseif (!empty($logo) && is_readable(
$conf->mycompany->dir_output.
'/logos/'.$logo)) {
486 $urllogo = DOL_URL_ROOT.
'/viewimage.php?modulepart=mycompany'.(
$conf->entity > 1 ?
'&entity='.$conf->entity :
'').
'&file='.urlencode(
'logos/'.$logo);
487 $urllogofull = $dolibarr_main_url_root.
'/viewimage.php?modulepart=mycompany'.(
$conf->entity > 1 ?
'&entity='.$conf->entity :
'').
'&file='.urlencode(
'logos/'.$logo);
491 print
'<div class="logopublicpayment center">';
492 if (!empty($mysoc->url)) {
493 print
'<a href="'.$mysoc->url.
'" target="_blank" rel="noopener">';
495 print
'<img class="userphotopublicvcard" id="dolpaymentlogo" src="'.$urllogofull.
'">';
496 if (!empty($mysoc->url)) {
501 print
'<table id="dolpaymenttable" summary="Job position offer" class="center">'.
"\n";
504 print
'<tr><td class="left">';
506 print
'<div class="nowidthimp nopaddingtoponsmartphone" id="tablepublicpayment">';
510 print
'<div class="center bold">';
516 print $companysection;
521 print
'</td></tr>'.
"\n";
523 print
'</table>'.
"\n";
537print
'<div class="backgreypublicpayment">';
538print
'<div class="center">';
539print
'<a href="'.$urlforqrcode.
'">';
541print
img_picto($langs->trans(
"Download").
' VCF',
'add').
' ';
542print $langs->trans(
"Download").
' VCF';
549$fullexternaleurltovirtualcard =
$object->getOnlineVirtualCardUrl(
'',
'external');
550$fullinternalurltovirtualcard =
$object->getOnlineVirtualCardUrl(
'',
'internal');
553print
'jQuery(document).ready(function() {
554 jQuery(".virtualcardpreview").click(function(event) {
555 event.preventDefault();
556 console.log("We click on the card");
557 window.open("'.$fullexternaleurltovirtualcard.
'");
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Class to manage Dolibarr users.
Class to build vCard files.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_format_address($object, $withcountry=0, $sep="\n", $outputlangs=null, $mode=0, $extralangcode='')
Return a formatted address (part address/zip/town/state) according to country rules.
getDolUserInt($key, $default=0, $tmpuser=null)
Return Dolibarr user constant int value.
dol_print_phone($phone, $countrycode='', $cid=0, $socid=0, $addlink='', $separ=" ", $withpicto='', $titlealt='', $adddivfloat=0, $morecss='paddingright')
Format phone numbers according to country.
dol_print_url($url, $target='_blank', $max=32, $withpicto=0, $morecss='')
Show Url link.
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
getDolUserString($key, $default='', $tmpuser=null)
Return Dolibarr user constant string value.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_print_email($email, $cid=0, $socid=0, $addlink=0, $max=64, $showinvalid=1, $withpicto=0, $morecss='paddingrightonly')
Show EMail link formatted for HTML output.
getImageFileNameForSize($file, $extName, $extImgTarget='')
Return the filename of file to get the thumbs.
getArrayOfSocialNetworks()
Get array of social network dictionary.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dolIsAllowedForPreview($file)
Return if a file is qualified for preview.
dol_print_address($address, $htmlid, $element, $id, $noprint=0, $charfornl='')
Format address string.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart='')
Return a path to have a the directory according to object where files are stored.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
if(!defined( 'NOREQUIREMENU')) if(!empty(GETPOST('seteventmessages', 'alpha'))) if(!function_exists("llxHeader")) top_httphead($contenttype='text/html', $forcenocache=0)
Show HTTP header.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
httponly_accessforbidden($message='1', $http_response_code=403, $stringalreadysanitized=0)
Show a message to say access is forbidden and stop program.
dol_hash($chain, $type='0', $nosalt=0)
Returns a hash (non reversible encryption) of a string.