28require
'../../main.inc.php';
29require_once DOL_DOCUMENT_ROOT.
'/core/lib/format_cards.lib.php';
30require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
31require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
32require_once DOL_DOCUMENT_ROOT.
'/core/modules/member/modules_cards.php';
33require_once DOL_DOCUMENT_ROOT.
'/core/modules/printsheet/modules_labels.php';
45$langs->loadLangs(array(
"members",
"errors"));
52$foruserid =
GETPOST(
'foruserid',
'alphanohtml');
53$foruserlogin =
GETPOST(
'foruserlogin',
'alphanohtml');
55$modelcard =
GETPOST(
"modelcard",
'aZ09');
56$model =
GETPOST(
"model",
'aZ09');
57$modellabel =
GETPOST(
"modellabel",
'aZ09');
65$extrafields->fetch_name_optionals_label(
$object->table_element);
75if ($mode ==
'cardlogin' && empty($foruserlogin)) {
76 $mesg = $langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Login"));
79if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
80 $arrayofmembers = array();
83 $sql =
"SELECT d.rowid, d.ref, d.civility, d.firstname, d.lastname, d.login, d.societe as company, d.datefin,";
84 $sql .=
" d.address, d.zip, d.town, d.country, d.birth, d.email, d.photo,";
85 $sql .=
" t.libelle as type,";
86 $sql .=
" c.code as country_code, c.label as country";
88 if (!empty($extrafields->attributes[
$object->table_element][
'label'])) {
89 foreach ($extrafields->attributes[
$object->table_element][
'label'] as $key => $val) {
90 $sql .= ($extrafields->attributes[
$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
93 $sql .=
" FROM ".MAIN_DB_PREFIX.
"adherent_type as t, ".MAIN_DB_PREFIX.
"adherent as d";
94 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as c ON d.country = c.rowid";
95 if (isset($extrafields->attributes[
$object->table_element][
'label']) && is_array($extrafields->attributes[
$object->table_element][
'label']) && count($extrafields->attributes[
$object->table_element][
'label'])) {
96 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"adherent_extrafields as ef on (d.rowid = ef.fk_object)";
98 $sql .=
" WHERE d.fk_adherent_type = t.rowid AND d.statut = 1";
99 $sql .=
" AND d.entity IN (".getEntity(
'adherent').
")";
100 if (is_numeric($foruserid)) {
101 $sql .=
" AND d.rowid = ".(int) $foruserid;
104 $sql .=
" AND d.login = '".$db->escape($foruserlogin).
"'";
106 $sql .=
" ORDER BY d.rowid ASC";
109 $result = $db->query($sql);
111 $num = $db->num_rows($result);
114 $objp = $db->fetch_object($result);
116 if ($objp->country ==
'-') {
120 $adherentstatic->id = $objp->rowid;
121 $adherentstatic->ref = $objp->ref;
122 $adherentstatic->lastname = $objp->lastname;
123 $adherentstatic->firstname = $objp->firstname;
126 if (isset($extrafields->attributes[
$object->table_element][
'label']) && is_array($extrafields->attributes[
$object->table_element][
'label']) && count($extrafields->attributes[
$object->table_element][
'label'])) {
127 $adherentstatic->array_options = array();
128 foreach ($extrafields->attributes[
$object->table_element][
'label'] as $key => $val) {
129 $tmpkey =
'options_'.$key;
130 if (!empty($objp->$tmpkey)) {
131 $adherentstatic->array_options[$tmpkey] = $objp->$tmpkey;
146 $substitutionarray = array(
147 '__MEMBER_ID__' => $objp->rowid,
148 '__MEMBER_REF__' => $objp->ref,
149 '__MEMBER_LOGIN__' => empty($objp->login) ?
'' : $objp->login,
150 '__MEMBER_TITLE__' => empty($objp->civility) ?
'' : $langs->trans(
"Civility".$objp->civility),
151 '__MEMBER_FIRSTNAME__' => empty($objp->firstname) ?
'' : $objp->firstname,
152 '__MEMBER_LASTNAME__' => empty($objp->lastname) ?
'' : $objp->lastname,
153 '__MEMBER_FULLNAME__' => $adherentstatic->
getFullName($langs),
154 '__MEMBER_COMPANY__' => empty($objp->company) ?
'' : $objp->company,
155 '__MEMBER_ADDRESS__' => empty($objp->
address) ?
'' : $objp->
address,
156 '__MEMBER_ZIP__' => empty($objp->zip) ?
'' : $objp->zip,
157 '__MEMBER_TOWN__' => empty($objp->town) ?
'' : $objp->town,
158 '__MEMBER_COUNTRY__' => empty($objp->country) ?
'' : $objp->country,
159 '__MEMBER_COUNTRY_CODE__' => empty($objp->country_code) ?
'' : $objp->country_code,
160 '__MEMBER_EMAIL__' => empty($objp->
email) ?
'' : $objp->
email,
162 '__MEMBER_TYPE__' => empty($objp->
type) ?
'' : $objp->
type,
164 '__MONTH__' => $month,
166 '__DOL_MAIN_URL_ROOT__' => DOL_MAIN_URL_ROOT,
167 '__SERVER__' =>
"https://".$_SERVER[
"SERVER_NAME"].
"/"
169 foreach ($adherentstatic->array_options as $key => $val) {
170 $substitutionarray[
'__'.strtoupper($key).
'__'] = $val;
174 $substitutionarrayold = array(
175 '__ID__' => $objp->rowid,
176 '__REF__' => $objp->ref,
177 '__LOGIN__' => empty($objp->login) ?
'' : $objp->login,
178 '__TITLE__' => empty($objp->civility) ?
'' : $langs->trans(
"Civility".$objp->civility),
179 '__FIRSTNAME__' => empty($objp->firstname) ?
'' : $objp->firstname,
180 '__LASTNAME__' => empty($objp->lastname) ?
'' : $objp->lastname,
181 '__FULLNAME__' => $adherentstatic->
getFullName($langs),
182 '__COMPANY__' => empty($objp->company) ?
'' : $objp->company,
184 '__ZIP__' => empty($objp->zip) ?
'' : $objp->zip,
185 '__TOWN__' => empty($objp->town) ?
'' : $objp->town,
186 '__COUNTRY__' => empty($objp->country) ?
'' : $objp->country,
187 '__COUNTRY_CODE__' => empty($objp->country_code) ?
'' : $objp->country_code,
188 '__EMAIL__' => empty($objp->
email) ?
'' : $objp->
email,
190 '__TYPE__' => empty($objp->
type) ?
'' : $objp->
type,
192 $substitutionarray = array_merge($substitutionarray, $substitutionarrayold);
197 if (empty($mode) || $mode ==
'card' || $mode ==
'cardlogin') {
203 if (is_numeric($foruserid) || $foruserlogin) {
204 $nb = $_Avery_Labels[$model][
'NX'] * $_Avery_Labels[$model][
'NY'];
209 for ($j = 0; $j < $nb; $j++) {
210 $arrayofmembers[] = array(
211 'textleft' => $textleft,
212 'textheader' => $textheader,
213 'textfooter' => $textfooter,
214 'textright' => $textright,
215 'id' => $objp->rowid,
217 'photo' => $objp->photo
221 $arrayofmembers[] = array(
222 'textleft' => $textleft,
223 'textheader' => $textheader,
224 'textfooter' => $textfooter,
225 'textright' => $textright,
226 'id' => $objp->rowid,
228 'photo' => $objp->photo
234 if ($mode ==
'label') {
236 $conf->global->ADHERENT_ETIQUETTE_TEXT =
"__MEMBER_TITLE__\n__MEMBER_FULLNAME__\n__MEMBER_ADDRESS__\n__MEMBER_ZIP__ __MEMBER_TOWN__\n__MEMBER_COUNTRY__";
243 $arrayofmembers[] = array(
244 'textleft' => $textleft,
245 'textheader' => $textheader,
246 'textfooter' => $textfooter,
247 'textright' => $textright,
248 'id' => $objp->rowid,
250 'photo' => $objp->photo,
258 $outputlangs = $langs;
260 if (empty($mode) || $mode ==
'card') {
261 if (!count($arrayofmembers)) {
262 $mesg = $langs->trans(
"ErrorRecordNotFound");
264 if (empty($modelcard) || $modelcard ==
'-1') {
265 $mesg = $langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"DescADHERENT_CARD_TYPE"));
268 $result =
members_card_pdf_create($db, $arrayofmembers, $modelcard, $outputlangs,
'',
'standard_member',
'tmp_cards');
270 } elseif ($mode ==
'cardlogin') {
271 if (!count($arrayofmembers)) {
272 $mesg = $langs->trans(
"ErrorRecordNotFound");
274 if (empty($model) || $model ==
'-1') {
275 $mesg = $langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"DescADHERENT_CARD_TYPE"));
278 $result =
members_card_pdf_create($db, $arrayofmembers, $model, $outputlangs,
'',
'standard_member',
'tmp_cards_login');
280 } elseif ($mode ==
'label') {
281 if (!count($arrayofmembers)) {
282 $mesg = $langs->trans(
"ErrorRecordNotFound");
284 if (empty($modellabel) || $modellabel ==
'-1') {
285 $mesg = $langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"DescADHERENT_ETIQUETTE_TYPE"));
310$form =
new Form($db);
312$title = $langs->trans(
'MembersCards');
313$help_url =
'EN:Module_Services_En|FR:Module_Services|ES:Módulo_Servicios|DE:Modul_Mitglieder';
315llxHeader(
'', $title, $help_url,
'', 0, 0,
'',
'',
'',
'mod-member page-cards');
317print
load_fiche_titre($langs->trans(
"LinkToGeneratedPages"),
'', $adherentstatic->picto);
319print
'<span class="opacitymedium">'.$langs->trans(
"LinkToGeneratedPagesDesc").
'</span><br>';
326print
img_picto(
'',
'card').
' '.$langs->trans(
"DocForAllMembersCards",
getDolGlobalString(
'ADHERENT_CARD_TYPE', $langs->transnoentitiesnoconv(
"None"))).
' ';
327print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
328print
'<input type="hidden" name="token" value="'.newToken().
'">';
329print
'<input type="hidden" name="foruserid" value="all">';
330print
'<input type="hidden" name="mode" value="card">';
331print
'<input type="hidden" name="action" value="builddoc">';
332print $langs->trans(
"DescADHERENT_CARD_TYPE").
' ';
334$arrayoflabels = array();
335foreach (array_keys($_Avery_Labels) as $codecards) {
336 $arrayoflabels[$codecards] = $_Avery_Labels[$codecards][
'name'];
338asort($arrayoflabels);
339print $form->selectarray(
'modelcard', $arrayoflabels, (
GETPOST(
'modelcard') ?
GETPOST(
'modelcard') :
getDolGlobalString(
'ADHERENT_CARD_TYPE')), 1, 0, 0,
'', 0, 0, 0,
'',
'', 1);
340print
'<br><input type="submit" class="button small" value="'.$langs->trans(
"BuildDoc").
'">';
345print
img_picto(
'',
'card').
' '.$langs->trans(
"DocForOneMemberCards",
getDolGlobalString(
'ADHERENT_CARD_TYPE', $langs->transnoentitiesnoconv(
"None"))).
' ';
346print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
347print
'<input type="hidden" name="token" value="'.newToken().
'">';
348print
'<input type="hidden" name="mode" value="cardlogin">';
349print
'<input type="hidden" name="action" value="builddoc">';
350print $langs->trans(
"DescADHERENT_CARD_TYPE").
' ';
352$arrayoflabels = array();
353foreach (array_keys($_Avery_Labels) as $codecards) {
354 $arrayoflabels[$codecards] = $_Avery_Labels[$codecards][
'name'];
356asort($arrayoflabels);
357print $form->selectarray(
'model', $arrayoflabels, (
GETPOST(
'model') ?
GETPOST(
'model') :
getDolGlobalString(
'ADHERENT_CARD_TYPE')), 1, 0, 0,
'', 0, 0, 0,
'',
'', 1);
358print
'<br>'.$langs->trans(
"Login").
': <input class="width100" type="text" name="foruserlogin" value="'.
GETPOST(
'foruserlogin').
'">';
359print
'<br><input type="submit" class="button small" value="'.$langs->trans(
"BuildDoc").
'">';
365print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
366print
'<input type="hidden" name="token" value="'.newToken().
'">';
367print
'<input type="hidden" name="mode" value="label">';
368print
'<input type="hidden" name="action" value="builddoc">';
369print $langs->trans(
"DescADHERENT_ETIQUETTE_TYPE").
' ';
371$arrayoflabels = array();
372foreach (array_keys($_Avery_Labels) as $codecards) {
373 $arrayoflabels[$codecards] = $_Avery_Labels[$codecards][
'name'];
375asort($arrayoflabels);
376print $form->selectarray(
'modellabel', $arrayoflabels, (
GETPOST(
'modellabel') ?
GETPOST(
'modellabel') :
getDolGlobalString(
'ADHERENT_ETIQUETTE_TYPE')), 1, 0, 0,
'', 0, 0, 0,
'',
'', 1);
377print
'<br><input type="submit" class="button small" value="'.$langs->trans(
"BuildDoc").
'">';
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
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 members of a foundation.
getFullName($langs, $option=0, $nameorder=-1, $maxlen=0)
Return full name (civility+' '+name+' '+lastname)
print $script_file $mode $langs defaultlang(is_numeric($duration_value) ? " delay=". $duration_value :"").(is_numeric($duration_value2) ? " after cd cd cd description as p label as s rowid as s nom as s email
Sender: Who sends the email ("Sender" has sent emails on behalf of "From").
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
dol_now($mode='auto')
Return date for now.
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).
complete_substitutions_array(&$substitutionarray, $outputlangs, $object=null, $parameters=null, $callfunc="completesubstitutionarray")
Complete the $substitutionarray with more entries coming from external module that had set the "subst...
make_substitutions($text, $substitutionarray, $outputlangs=null, $converttextinhtmlifnecessary=0)
Make substitution into a text string, replacing keys with vals from $substitutionarray (oldval=>newva...
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
dol_htmloutput_errors($mesgstring='', $mesgarray=array(), $keepembedded=0)
Print formatted error messages to output (Used to show messages on html output).
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
div refaddress div address
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
members_card_pdf_create($db, $arrayofmembers, $modele, $outputlangs, $outputdir='', $template='standard_member', $filename='tmp_cards')
Create a document for visit card according to template defined in ADHERENT_CARDS_ADDON_PDF.
doc_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $outputdir='', $template='standardlabel', $filename='tmp_address_sheet.pdf')
Create a document onto disk according to template module.
if(preg_match('/(crypted|dolcrypt):/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.