30require_once
'../main.inc.php';
31require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
32require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/exports/class/export.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/core/modules/export/modules_export.php';
35require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
46$langs->loadlangs(array(
'admin',
'exports',
'other',
'users',
'companies',
'projects',
'suppliers',
'products',
'bank',
'bills'));
55 'invoice_line' =>
'bill',
57 'order_line' =>
'order',
59 'propal_line' =>
'propal',
60 'intervention' =>
'intervention',
61 'inter_line' =>
'intervention',
63 'member_type' =>
'group',
64 'subscription' =>
'payment',
65 'payment' =>
'payment',
67 'tax_type' =>
'generic',
69 'account' =>
'account',
70 'product' =>
'product',
71 'virtualproduct' =>
'product',
72 'subproduct' =>
'product',
73 'product_supplier_ref' =>
'product',
75 'warehouse' =>
'stock',
77 'stockbatch' =>
'stock',
78 'category' =>
'category',
79 'securityevent' =>
'generic',
80 'shipment' =>
'sending',
81 'shipment_line' =>
'sending',
82 'reception' =>
'sending',
83 'reception_line' =>
'sending',
84 'expensereport' =>
'trip',
85 'expensereport_line' =>
'trip',
86 'holiday' =>
'holiday',
87 'contract_line' =>
'contract',
88 'translation' =>
'generic',
91 'conferenceorboothattendee' =>
'contact',
92 'inventory_line' =>
'inventory',
99 'company' =>
'Company',
100 'contact' =>
'Contact',
102 'invoice_line' =>
'InvoiceLine',
104 'order_line' =>
'OrderLine',
105 'propal' =>
'Proposal',
106 'propal_line' =>
'ProposalLine',
107 'intervention' =>
'Intervention',
108 'inter_line' =>
'InterLine',
109 'member' =>
'Member',
110 'member_type' =>
'MemberType',
111 'subscription' =>
'Subscription',
112 'tax' =>
'SocialContribution',
113 'tax_type' =>
'DictionarySocialContributions',
114 'account' =>
'BankTransactions',
115 'payment' =>
'Payment',
116 'product' =>
'Product',
117 'virtualproduct' =>
'AssociatedProducts',
118 'subproduct' =>
'SubProduct',
119 'product_supplier_ref' =>
'SupplierPrices',
120 'service' =>
'Service',
122 'movement' =>
'StockMovement',
124 'stockbatch' =>
'StockDetailPerBatch',
125 'warehouse' =>
'Warehouse',
126 'category' =>
'Category',
128 'trip' =>
'TripsAndExpenses',
129 'securityevent' =>
'SecurityEvent',
130 'shipment' =>
'Shipments',
131 'shipment_line' =>
'ShipmentLine',
132 'project' =>
'Projects',
133 'projecttask' =>
'Tasks',
134 'resource' =>
'Resource',
135 'task_time' =>
'TaskTimeSpent',
137 'expensereport' =>
'ExpenseReport',
138 'expensereport_line' =>
'ExpenseReportLine',
139 'holiday' =>
'TitreRequestCP',
140 'contract' =>
'Contract',
141 'contract_line' =>
'ContractLine',
142 'translation' =>
'Translation',
144 'bomline' =>
'BOMLine',
145 'mrp' =>
'ManufacturingOrder',
146 'mrp_line' =>
'ManufacturingOrderLine',
147 'conferenceorbooth' =>
'ConferenceOrBooth',
148 'conferenceorboothattendee' =>
'Attendee',
149 'inventory' =>
'Inventory',
150 'inventory_line' =>
'InventoryLine'
154$array_selected = isset($_SESSION[
"export_selected_fields"]) ? $_SESSION[
"export_selected_fields"] : array();
155$array_filtervalue = isset($_SESSION[
"export_filtered_fields"]) ? $_SESSION[
"export_filtered_fields"] : array();
156$datatoexport =
GETPOST(
"datatoexport",
"aZ09");
157$action =
GETPOST(
'action',
'aZ09');
158$confirm =
GETPOST(
'confirm',
'alpha');
160$export_name =
GETPOST(
"export_name",
"alphanohtml");
161$hexa =
GETPOST(
"hexa",
"alpha");
163$field = (string)
GETPOST(
"field",
"alpha");
165$objexport =
new Export($db);
166$objexport->load_arrays($user, $datatoexport);
170$form =
new Form($db);
173$sqlusedforexport =
'';
176$upload_dir =
$conf->export->dir_temp.
'/'.$user->id;
188if ($action ==
'selectfield' && $user->hasRight(
'export',
'creer')) {
189 $fieldsarray = $objexport->array_export_fields[0];
190 $fieldsentitiesarray = $objexport->array_export_entities[0];
191 $fieldsdependenciesarray = $objexport->array_export_dependencies[0];
193 if ($field ==
'all') {
194 foreach ($fieldsarray as $key => $val) {
195 if (!empty($array_selected[$key])) {
198 $array_selected[$key] = count($array_selected) + 1;
200 $_SESSION[
"export_selected_fields"] = $array_selected;
205 $array_selected[$field] = count($array_selected) + 1;
210 $listofdependencies = array();
211 if (!empty($fieldsentitiesarray[$field]) && !empty($fieldsdependenciesarray[$fieldsentitiesarray[$field]])) {
213 $tmp = $fieldsdependenciesarray[$fieldsentitiesarray[$field]];
214 if (is_array($tmp)) {
215 $listofdependencies = $tmp;
217 $listofdependencies = array($tmp);
219 } elseif (!empty($field) && !empty($fieldsdependenciesarray[$field])) {
221 $tmp = $fieldsdependenciesarray[$field];
222 if (is_array($tmp)) {
223 $listofdependencies = $tmp;
225 $listofdependencies = array($tmp);
229 if (count($listofdependencies)) {
230 foreach ($listofdependencies as $fieldid) {
231 if (empty($array_selected[$fieldid])) {
232 $array_selected[$fieldid] = count($array_selected) + 1;
233 $warnings[] = $langs->trans(
"ExportFieldAutomaticallyAdded", $langs->transnoentitiesnoconv($fieldsarray[$fieldid]));
238 $_SESSION[
"export_selected_fields"] = $array_selected;
243if ($action ==
'unselectfield' && $user->hasRight(
'export',
'creer')) {
244 if (
GETPOST(
"field") ==
'all') {
245 $array_selected = array();
246 $_SESSION[
"export_selected_fields"] = $array_selected;
248 unset($array_selected[
GETPOST(
"field")]);
250 asort($array_selected);
252 $array_selected_save = $array_selected;
253 foreach ($array_selected as $code => $value) {
255 $array_selected[$code] = $i;
258 $_SESSION[
"export_selected_fields"] = $array_selected;
263if (($action ==
'downfield' || $action ==
'upfield') && $user->hasRight(
'export',
'creer')) {
264 $pos = $array_selected[
GETPOST(
"field")];
265 if ($action ==
'downfield') {
268 if ($action ==
'upfield') {
273 foreach ($array_selected as $code => $value) {
274 if ($value == $newpos) {
281 $array_selected[
GETPOST(
"field")] = $newpos;
282 $array_selected[$newcode] = $pos;
283 $_SESSION[
"export_selected_fields"] = $array_selected;
287if ($step == 1 || $action ==
'cleanselect') {
288 $_SESSION[
"export_selected_fields"] = array();
289 $_SESSION[
"export_filtered_fields"] = array();
290 $array_selected = array();
291 $array_filtervalue = array();
294if ($action ==
'builddoc' && $user->hasRight(
'export',
'lire')) {
296 if (empty($objexport->array_export_perms[0])) {
300 $separator =
GETPOST(
'delimiter',
'alpha');
301 $max_execution_time_for_importexport =
getDolGlobalInt(
'EXPORT_MAX_EXECUTION_TIME', 300);
302 $max_time = @ini_get(
"max_execution_time");
303 if ($max_time && $max_time < $max_execution_time_for_importexport) {
304 dol_syslog(
"max_execution_time=".$max_time.
" is lower than max_execution_time_for_importexport=".$max_execution_time_for_importexport.
". We try to increase it dynamically.");
305 @ini_set(
"max_execution_time", $max_execution_time_for_importexport);
309 $result = $objexport->build_file($user,
GETPOST(
'model',
'alpha'), $datatoexport, $array_selected, $array_filtervalue,
'', $separator);
312 $sqlusedforexport = $objexport->sqlusedforexport;
315 $sqlusedforexport = $objexport->sqlusedforexport;
320if ($step == 5 && $action ==
'confirm_deletefile' && $confirm ==
'yes' && $user->hasRight(
'export',
'lire')) {
322 if (empty($objexport->array_export_perms[0])) {
326 $file = $upload_dir.
"/".
GETPOST(
'file');
334 header(
'Location: '.$_SERVER[
"PHP_SELF"].
'?step='.$step.
'&datatoexport='.$datatoexport);
338if ($action ==
'deleteprof' && $user->hasRight(
'export',
'lire')) {
340 if (empty($objexport->array_export_perms[0])) {
346 $result = $objexport->delete($user);
351if ($action ==
'add_export_model' && $user->hasRight(
'export',
'lire')) {
353 if (empty($objexport->array_export_perms[0])) {
358 asort($array_selected);
362 foreach ($array_selected as $key => $val) {
369 $hexafiltervalue =
'';
370 if (!empty($array_filtervalue) && is_array($array_filtervalue)) {
371 foreach ($array_filtervalue as $key => $val) {
372 if ($hexafiltervalue) {
373 $hexafiltervalue .=
',';
375 $hexafiltervalue .= $key.
'='.$val;
379 $objexport->model_name = $export_name;
380 $objexport->datatoexport = $datatoexport;
381 $objexport->hexa = $hexa;
382 $objexport->hexafiltervalue = $hexafiltervalue;
383 $objexport->fk_user = (
GETPOST(
'visibility',
'aZ09') ==
'all' ? 0 : $user->id);
385 $result = $objexport->create($user);
387 setEventMessages($langs->trans(
"ExportModelSaved", $objexport->model_name),
null,
'mesgs');
389 $langs->load(
"errors");
390 if ($objexport->errno ==
'DB_ERROR_RECORD_ALREADY_EXISTS') {
391 setEventMessages($langs->trans(
"ErrorExportDuplicateProfil"),
null,
'errors');
397 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"ExportModelName")),
null,
'errors');
402if ($step == 2 && $action ==
'select_model' && $user->hasRight(
'export',
'lire')) {
403 $_SESSION[
"export_selected_fields"] = array();
404 $_SESSION[
"export_filtered_fields"] = array();
406 $array_selected = array();
407 $array_filtervalue = array();
409 $result = $objexport->fetch($exportmodelid);
411 $fieldsarray = preg_split(
"/,(?! [^(]*\))/", $objexport->hexa);
413 foreach ($fieldsarray as $val) {
414 $array_selected[$val] = $i;
417 $_SESSION[
"export_selected_fields"] = $array_selected;
419 $fieldsarrayvalue = explode(
',', $objexport->hexafiltervalue);
421 foreach ($fieldsarrayvalue as $val) {
422 $tmp = explode(
'=', $val);
423 $array_filtervalue[$tmp[0]] = $tmp[1];
426 $_SESSION[
"export_filtered_fields"] = $array_filtervalue;
431if ($step == 4 && $action ==
'submitFormField' && $user->hasRight(
'export',
'lire')) {
433 if (empty($objexport->array_export_perms[0])) {
438 if (is_array($objexport->array_export_TypeFields[0])) {
439 $_SESSION[
"export_filtered_fields"] = array();
440 foreach ($objexport->array_export_TypeFields[0] as $code => $type) {
441 $newcode = (string) preg_replace(
'/\./',
'_', $code);
443 $check =
'alphanohtml';
444 $filterqualified = 1;
445 if (!GETPOSTISSET($newcode) ||
GETPOST($newcode, $check) ==
'') {
446 $filterqualified = 0;
447 } elseif (preg_match(
'/^List/', $type) && (is_numeric(
GETPOST($newcode, $check)) &&
GETPOST($newcode, $check) <= 0)) {
448 $filterqualified = 0;
450 if ($filterqualified) {
451 $objexport->array_export_FilterValue[0][$code] =
GETPOST($newcode, $check);
454 $array_filtervalue = (!empty($objexport->array_export_FilterValue[0]) ? $objexport->array_export_FilterValue[0] :
'');
455 $_SESSION[
"export_filtered_fields"] = $array_filtervalue;
464if ($step == 1 || !$datatoexport) {
465 llxHeader(
'', $langs->trans(
"NewExport"),
'EN:Module_Exports_En|FR:Module_Exports|ES:Módulo_Exportaciones',
'', 0, 0,
'',
'',
'',
'mod-exports page-export action-step1');
469 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=1';
470 $head[$h][1] = $langs->trans(
"Step").
" 1";
471 $hselected = (string) $h;
476 print
'<div class="opacitymedium">'.$langs->trans(
"SelectExportDataSet").
'</div>';
480 $nbmodulesnotautoenabled = count(
$conf->modules);
481 $listofmodulesautoenabled = array(
'user',
'agenda',
'fckeditor',
'export',
'import');
482 foreach ($listofmodulesautoenabled as $moduleautoenable) {
483 if (in_array($moduleautoenable,
$conf->modules)) {
484 $nbmodulesnotautoenabled--;
488 if ($user->admin && $nbmodulesnotautoenabled <
getDolGlobalInt(
'MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING', 1)) {
489 print
info_admin($langs->trans(
"WarningOnlyProfilesOfActivatedModules").
' '.$langs->trans(
"YouCanEnableModulesFrom"));
495 print
'<div class="div-table-responsive-no-min">';
496 print
'<table class="noborder centpercent nomarginbottom">';
497 print
'<tr class="liste_titre">';
498 print
'<td>'.$langs->trans(
"Module").
'</td>';
499 print
'<td>'.$langs->trans(
"ExportableDatas").
'</td>';
500 print
'<td> </td>';
503 if (count($objexport->array_export_module)) {
504 asort($objexport->array_export_code_for_sort);
507 foreach ($objexport->array_export_code_for_sort as $key => $value) {
508 $titleofmodule = $objexport->array_export_module[$key]->getName();
509 print
'<tr class="oddeven"><td class="tdoverflowmax200" title="'.dolPrintHTML($titleofmodule).
'">';
512 $entity = preg_replace(
'/:.*$/',
'', $objexport->array_export_icon[$key]);
513 $entityicon = strtolower(!empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity);
514 $label = $objexport->array_export_label[$key];
515 print
'<div class="twolinesmax-normallineheight minwidth200onall">';
516 print
img_object($objexport->array_export_module[$key]->getName(), $entityicon,
'class="pictofixedwidth"');
519 print
'</td><td class="right">';
520 if ($objexport->array_export_perms[$key]) {
521 print
'<a href="'.DOL_URL_ROOT.
'/exports/export.php?step=2&module_position='.$objexport->array_export_module[$key]->module_position.
'&datatoexport='.$objexport->array_export_code[$key].
'">'.
img_picto($langs->trans(
"NewExport"),
'next',
'class="fa-15"').
'</a>';
523 print
'<span class="opacitymedium">'.$langs->trans(
"NotEnoughPermissions").
'</span>';
528 print
'<tr><td class="oddeven" colspan="3">'.$langs->trans(
"NoExportableData").
'</td></tr>';
536if ($step == 2 && $datatoexport) {
538 if (empty($objexport->array_export_perms[0])) {
542 llxHeader(
'', $langs->trans(
"NewExport"),
'EN:Module_Exports_En|FR:Module_Exports|ES:Módulo_Exportaciones',
'', 0, 0,
'',
'',
'',
'mod-exports page-export action-step2');
546 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=1';
547 $head[$h][1] = $langs->trans(
"Step").
" 1";
550 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=2&datatoexport='.$datatoexport;
551 $head[$h][1] = $langs->trans(
"Step").
" 2";
552 $hselected = (string) $h;
558 print
'<div class="fichecenter">';
559 print
'<div class="underbanner clearboth"></div>';
561 print
'<table class="border tableforfield centpercent">';
564 print
'<tr><td class="titlefield">'.$langs->trans(
"Module").
'</td>';
566 print $objexport->array_export_module[0]->getName();
570 print
'<tr><td>'.$langs->trans(
"DatasetToExport").
'</td>';
572 $entity = preg_replace(
'/:.*$/',
'', $objexport->array_export_icon[0]);
573 $entityicon = strtolower(!empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity);
574 print
img_object($objexport->array_export_module[0]->getName(), $entityicon).
' ';
575 print $objexport->array_export_label[0];
586 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="post">';
587 print
'<input type="hidden" name="token" value="'.newToken().
'">';
588 print
'<input type="hidden" name="action" value="select_model">';
589 print
'<input type="hidden" name="step" value="2">';
590 print
'<input type="hidden" name="datatoexport" value="'.$datatoexport.
'">';
591 print
'<div class="valignmiddle marginbottomonly">';
592 print
'<span class="opacitymedium">'.$langs->trans(
"SelectExportFields").
'</span> ';
593 $htmlother->select_export_model((
string) $exportmodelid,
'exportmodelid', $datatoexport, 1, $user->id);
595 print
'<input type="submit" class="button small" value="'.$langs->trans(
"Select").
'">';
600 print
'<div class="div-table-responsive-no-min">';
601 print
'<table class="noborder centpercent">';
602 print
'<tr class="liste_titre">';
603 print
'<td>'.$langs->trans(
"Object").
'</td>';
604 print
'<td>'.$langs->trans(
"ExportableFields").
'</td>';
605 print
'<td width="100" class="center">';
608 if (!$user->hasRight(
'export',
'creer')) {
609 $morecss =
' disabled';
610 $moretitle = $langs->trans(
"NotAllowed");
612 print
'<a class="liste_titre commonlink'.$morecss;
613 print
'" title="'.$langs->trans(
"All").($moretitle ?
' - '.$moretitle :
'').
'" href="'.$_SERVER[
"PHP_SELF"].
'?step=2&datatoexport='.urlencode($datatoexport).
'&action=selectfield&field=all&token='.
newToken().
'">'.$langs->trans(
"All").
"</a>";
615 print
'<a class="liste_titre commonlink'.$morecss;
616 print
'" title="'.$langs->trans(
"None").($moretitle ?
' - '.$moretitle :
'').
'" href="'.$_SERVER[
"PHP_SELF"].
'?step=2&datatoexport='.urlencode($datatoexport).
'&action=unselectfield&field=all&token='.
newToken().
'">'.$langs->trans(
"None").
"</a>";
618 print
'<td width="44%">'.$langs->trans(
"ExportedFields").
'</td>';
622 $fieldsarray = $objexport->array_export_fields[0];
624 $sqlmaxforexport = $objexport->build_sql(0, array(), array());
636 foreach ($fieldsarray as $code => $label) {
637 print
'<tr class="oddeven">';
641 $entity = (!empty($objexport->array_export_entities[0][$code]) ? $objexport->array_export_entities[0][$code] : $objexport->array_export_icon[0]);
642 $entityicon = strtolower(!empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity);
643 $entitylang = (!empty($entitytolang[$entity]) ? $entitytolang[$entity] : $entity);
645 print
'<td class="nowrap">';
649 $tmparray = explode(
':', $entityicon);
650 if (count($tmparray) >= 2) {
651 $entityicon = $tmparray[0];
652 $entitylang = $tmparray[1];
654 print
img_object(
'', $entityicon).
' '.$langs->trans((
string) $entitylang);
657 $text = (empty($objexport->array_export_special[0][$code]) ?
'' :
'<i>');
658 $tmplabelarray = explode(
':', $label);
659 if (!empty($tmplabelarray[1])) {
660 $text .= $langs->trans($tmplabelarray[0]).
' - '.$langs->trans($tmplabelarray[1]);
662 $text .= $langs->trans($label);
664 $text .= (empty($objexport->array_export_special[0][$code]) ?
'' :
'</i>');
667 $htmltext =
'<b>'.$langs->trans(
"Name").
":</b> ".$text.
'<br>';
668 if (!empty($objexport->array_export_special[0][$code])) {
669 $htmltext .=
'<b>'.$langs->trans(
"ComputedField").
" -> ".$langs->trans(
"Method").
" :</b> ";
670 if (isset($objexport->array_export_special[0][$code][
'method'])) {
671 $htmltext .= $objexport->array_export_special[0][$code][
'method'];
672 } elseif (!is_array($objexport->array_export_special[0][$code])) {
673 $htmltext .= $objexport->array_export_special[0][$code];
677 $htmltext .=
'<b>'.$langs->trans(
"Table").
" -> ".$langs->trans(
"Field").
":</b> ".$tablename.
" -> ".preg_replace(
'/^.*\./',
'', $code).
"<br>";
679 if (!empty($objexport->array_export_examplevalues[0][$code])) {
680 $htmltext .=
'<b>'.$langs->trans(
"SourceExample").
':</b> '.$objexport->array_export_examplevalues[0][$code].
'<br>';
682 if (!empty($objexport->array_export_TypeFields[0][$code])) {
683 $htmltext .=
'<b>'.$langs->trans(
"Type").
':</b> '.$objexport->array_export_TypeFields[0][$code].
'<br>';
685 if (!empty($objexport->array_export_help[0][$code])) {
686 $htmltext .=
'<b>'.$langs->trans(
"Help").
':</b> '.$langs->trans($objexport->array_export_help[0][$code]).
'<br>';
689 if (isset($array_selected[$code]) && $array_selected[$code]) {
691 print
'<td> </td>';
692 print
'<td class="center"><a class="reposition'.$morecss.
'" href="'.$_SERVER[
"PHP_SELF"].
'?step=2&datatoexport='.urlencode($datatoexport).
'&action=unselectfield&token='.
newToken().
'&field='.urlencode($code).
'">'.
img_left($moretitle, 0,
'style="max-width: 20px"').
'</a></td>';
695 print $form->textwithpicto($text, $htmltext);
702 print $form->textwithpicto($text, $htmltext);
705 print
'<td class="center"><a class="reposition'.$morecss.
'" href="'.$_SERVER[
"PHP_SELF"].
'?step=2&datatoexport='.urlencode($datatoexport).
'&action=selectfield&token='.
newToken().
'&field='.urlencode($code).
'">'.
img_right($moretitle, 0,
'style="max-width: 20px"').
'</a></td>';
706 print
'<td> </td>';
718 print
'<div class="tabsAction tabsActionNoBottom">';
720 if (count($array_selected)) {
722 if ($usefilters && isset($objexport->array_export_TypeFields[0]) && is_array($objexport->array_export_TypeFields[0])) {
723 print
'<a class="butAction" href="export.php?step=3&datatoexport='.$datatoexport.
'">'.$langs->trans(
"NextStep").
'</a>';
725 print
'<a class="butAction" href="export.php?step=4&datatoexport='.$datatoexport.
'">'.$langs->trans(
"NextStep").
'</a>';
728 print
'<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans(
"SelectAtLeastOneField")).
'">'.$langs->trans(
"NextStep").
'</a>';
734if ($step == 3 && $datatoexport) {
735 if (count($array_selected) < 1) {
737 header(
"Location: ".DOL_URL_ROOT.
'/exports/export.php?step=2&datatoexport='.$datatoexport);
742 if (empty($objexport->array_export_perms[0])) {
746 llxHeader(
'', $langs->trans(
"NewExport"),
'EN:Module_Exports_En|FR:Module_Exports|ES:Módulo_Exportaciones',
'', 0, 0,
'',
'',
'',
'mod-exports page-export action-step3');
750 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=1';
751 $head[$h][1] = $langs->trans(
"Step").
" 1";
754 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=2&datatoexport='.$datatoexport;
755 $head[$h][1] = $langs->trans(
"Step").
" 2";
758 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=3&datatoexport='.$datatoexport;
759 $head[$h][1] = $langs->trans(
"Step").
" 3";
760 $hselected = (string) $h;
765 print
'<div class="fichecenter">';
766 print
'<div class="underbanner clearboth"></div>';
767 print
'<table class="border tableforfield centpercent">';
770 print
'<tr><td class="titlefield">'.$langs->trans(
"Module").
'</td>';
773 print $objexport->array_export_module[0]->getName();
777 print
'<tr><td>'.$langs->trans(
"DatasetToExport").
'</td>';
779 $entity = preg_replace(
'/:.*$/',
'', $objexport->array_export_icon[0]);
780 $entityicon = strtolower(!empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity);
781 print
img_object($objexport->array_export_module[0]->getName(), $entityicon).
' ';
782 print $objexport->array_export_label[0];
786 print
'<tr><td>'.$langs->trans(
"ExportedFields").
'</td>';
788 foreach ($array_selected as $code => $value) {
789 if (isset($objexport->array_export_fields[0][$code])) {
790 $list .= (!empty($list) ?
', ' :
'');
792 $tmplabelarray = explode(
':', $objexport->array_export_fields[0][$code]);
793 if (!empty($tmplabelarray[1])) {
794 $list .= $langs->trans($tmplabelarray[0]).
' - '.$langs->trans($tmplabelarray[1]);
796 $list .= $langs->trans($objexport->array_export_fields[0][$code]);
800 print
'<td>'.$list.
'</td></tr>';
808 print
'<span class="opacitymedium">'.$langs->trans(
"SelectFilterFields").
'</span><br><br>';
812 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'?step=4&action=submitFormField&datatoexport='.$datatoexport.
'" name="FilterField" method="post">';
813 print
'<input type="hidden" name="token" value="'.newToken().
'">';
815 print
'<div class="div-table-responsive-no-min">';
817 print
'<table class="noborder centpercent">';
818 print
'<tr class="liste_titre">';
819 print
'<td>'.$langs->trans(
"Entities").
'</td>';
822 print
'<td>'.$langs->trans(
"ExportableFields").
'</td>';
823 print
'<td width="25%">'.$langs->trans(
"FilteredFieldsValues").
'</td>';
827 $fieldsarray = $objexport->array_export_fields[0];
829 $Typefieldsarray = $objexport->array_export_TypeFields[0];
831 $ValueFiltersarray = (!empty($objexport->array_export_FilterValue[0]) ? $objexport->array_export_FilterValue[0] :
'');
833 $sqlmaxforexport = $objexport->build_sql(0, array(), array());
837 foreach ($fieldsarray as $code => $label) {
838 print
'<tr class="oddeven">';
841 $entity = (!empty($objexport->array_export_entities[0][$code]) ? $objexport->array_export_entities[0][$code] : $objexport->array_export_icon[0]);
842 $entityicon = strtolower(!empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity);
843 $entitylang = (!empty($entitytolang[$entity]) ? $entitytolang[$entity] : $entity);
845 print
'<td class="nowrap">';
847 $tmparray = explode(
':', $entityicon);
848 if (count($tmparray) >= 2) {
849 $entityicon = $tmparray[0];
850 $entitylang = $tmparray[1];
852 print
img_object(
'', $entityicon).
' '.$langs->trans((
string) $entitylang);
856 $labelName = (!empty($fieldsarray[$code]) ? $fieldsarray[$code] :
'');
857 $ValueFilter = (!empty($array_filtervalue[$code]) ? $array_filtervalue[$code] :
'');
859 $text = (empty($objexport->array_export_special[0][$code]) ?
'' :
'<i>');
860 $tmplabelarray = explode(
':', $label);
861 if (!empty($tmplabelarray[1])) {
862 $text .= $langs->trans($tmplabelarray[0]).
' - '.$langs->trans($tmplabelarray[1]);
864 $text .= $langs->trans($label);
866 $text .= (empty($objexport->array_export_special[0][$code]) ?
'' :
'</i>');
869 $htmltext =
'<b>'.$langs->trans(
"Name").
':</b> '.$text.
'<br>';
870 if (!empty($objexport->array_export_special[0][$code])) {
871 $htmltext .=
'<b>'.$langs->trans(
"ComputedField").
" -> ".$langs->trans(
"Method").
" :</b> ";
872 if (isset($objexport->array_export_special[0][$code][
'method'])) {
873 $htmltext .= $objexport->array_export_special[0][$code][
'method'];
874 } elseif (!is_array($objexport->array_export_special[0][$code])) {
875 $htmltext .= $objexport->array_export_special[0][$code];
879 $htmltext .=
'<b>'.$langs->trans(
"Table").
" -> ".$langs->trans(
"Field").
":</b> ".$tablename.
" -> ".preg_replace(
'/^.*\./',
'', $code).
"<br>";
881 if (!empty($objexport->array_export_examplevalues[0][$code])) {
882 $htmltext .=
'<b>'.$langs->trans(
"SourceExample").
':</b> '.$objexport->array_export_examplevalues[0][$code].
'<br>';
884 if (!empty($objexport->array_export_TypeFields[0][$code])) {
885 $htmltext .=
'<b>'.$langs->trans(
"Type").
':</b> '.$objexport->array_export_TypeFields[0][$code].
'<br>';
887 if (!empty($objexport->array_export_help[0][$code])) {
888 $htmltext .=
'<b>'.$langs->trans(
"Help").
':</b> '.$langs->trans($objexport->array_export_help[0][$code]).
'<br>';
892 print $form->textwithpicto($text, $htmltext);
897 if (!empty($Typefieldsarray[$code])) {
898 $szInfoFiltre = $objexport->genDocFilter($Typefieldsarray[$code]);
900 $tmp = $objexport->build_filterField($Typefieldsarray[$code], $code, $ValueFilter);
901 print $form->textwithpicto($tmp, $szInfoFiltre);
903 print $objexport->build_filterField($Typefieldsarray[$code], $code, $ValueFilter);
919 print
'<div class="tabsAction tabsActionNoBottom">';
921 print
'<a class="butAction" href="javascript:FilterField.submit();">'.$langs->trans(
"NextStep").
'</a>';
925if ($step == 4 && $datatoexport) {
926 if (count($array_selected) < 1) {
928 header(
"Location: ".DOL_URL_ROOT.
'/exports/export.php?step=2&datatoexport='.$datatoexport);
933 if (empty($objexport->array_export_perms[0])) {
937 asort($array_selected);
939 llxHeader(
'', $langs->trans(
"NewExport"),
'EN:Module_Exports_En|FR:Module_Exports|ES:Módulo_Exportaciones',
'', 0, 0,
'',
'',
'',
'mod-exports page-export action-step4');
944 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=1';
945 $head[$h][1] = $langs->trans(
"Step").
" 1";
948 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=2&datatoexport='.$datatoexport;
949 $head[$h][1] = $langs->trans(
"Step").
" 2";
953 if ($usefilters && isset($objexport->array_export_TypeFields[0]) && is_array($objexport->array_export_TypeFields[0])) {
954 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=3&datatoexport='.$datatoexport;
955 $head[$h][1] = $langs->trans(
"Step").
" 3";
960 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=4&datatoexport='.$datatoexport;
961 $head[$h][1] = $langs->trans(
"Step").
" ".(3 + $stepoffset);
962 $hselected = (string) $h;
967 print
'<div class="fichecenter">';
968 print
'<div class="underbanner clearboth"></div>';
969 print
'<table width="100%" class="border tableforfield">';
972 print
'<tr><td class="titlefield tableforfield">'.$langs->trans(
"Module").
'</td>';
975 print $objexport->array_export_module[0]->getName();
979 print
'<tr><td>'.$langs->trans(
"DatasetToExport").
'</td>';
981 $entity = preg_replace(
'/:.*$/',
'', $objexport->array_export_icon[0]);
982 $entityicon = strtolower(!empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity);
983 print
img_object($objexport->array_export_module[0]->getName(), $entityicon).
' ';
984 print $objexport->array_export_label[0];
988 print
'<tr><td>'.$langs->trans(
"ExportedFields").
'</td>';
990 foreach ($array_selected as $code => $value) {
991 if (isset($objexport->array_export_fields[0][$code])) {
992 $list .= (!empty($list) ?
', ' :
'');
994 $tmplabelarray = explode(
':', $objexport->array_export_fields[0][$code]);
995 if (!empty($tmplabelarray[1])) {
996 $list .= $langs->trans($tmplabelarray[0]).
' - '.$langs->trans($tmplabelarray[1]);
998 $list .= $langs->trans($objexport->array_export_fields[0][$code]);
1002 print
'<td>'.$list.
'</td>';
1006 if (isset($objexport->array_export_TypeFields[0]) && is_array($objexport->array_export_TypeFields[0])) {
1007 print
'<tr><td>'.$langs->trans(
"FilteredFields").
'</td>';
1009 if (!empty($array_filtervalue)) {
1010 foreach ($array_filtervalue as $code => $value) {
1011 if (preg_match(
'/^FormSelect:/', $objexport->array_export_TypeFields[0][$code])) {
1017 if (isset($objexport->array_export_fields[0][$code])) {
1018 $list .= ($list ?
', ' :
'');
1019 if (isset($array_filtervalue[$code]) && preg_match(
'/^\s*[<>]/', $array_filtervalue[$code])) {
1020 $list .=
'<span class="opacitymedium">'.$langs->trans($objexport->array_export_fields[0][$code]).
'</span>'.(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] :
'');
1022 $list .=
'<span class="opacitymedium">'.$langs->trans($objexport->array_export_fields[0][$code]).
"</span>='".(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] :
'').
"'";
1027 print
'<td>'.(!empty($list) ? $list :
'<span class="opacitymedium">'.$langs->trans(
"None").
'</span>').
'</td>';
1037 $sqlmaxforexport = $objexport->build_sql(0, array(), array());
1040 print
'<div class="marginbottomonly"><span class="opacitymedium">'.$langs->trans(
"ChooseFieldsOrdersAndTitle").
'</span></div>';
1042 print
'<div class="div-table-responsive-no-min">';
1043 print
'<table class="noborder centpercent">';
1044 print
'<tr class="liste_titre">';
1045 print
'<td>'.$langs->trans(
"Entities").
'</td>';
1046 print
'<td>'.$langs->trans(
"ExportedFields").
'</td>';
1047 print
'<td class="right" colspan="2">'.$langs->trans(
"Position").
'</td>';
1052 foreach ($array_selected as $code => $value) {
1053 if (!isset($objexport->array_export_fields[0][$code])) {
1057 print
'<tr class="oddeven">';
1059 $entity = (!empty($objexport->array_export_entities[0][$code]) ? $objexport->array_export_entities[0][$code] : $objexport->array_export_icon[0]);
1060 $entityicon = strtolower(!empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity);
1061 $entitylang = (!empty($entitytolang[$entity]) ? $entitytolang[$entity] : $entity);
1063 print
'<td class="nowrap">';
1065 $tmparray = explode(
':', $entityicon);
1066 if (count($tmparray) >= 2) {
1067 $entityicon = $tmparray[0];
1068 $entitylang = $tmparray[1];
1070 print
img_object(
'', $entityicon).
' '.$langs->trans((
string) $entitylang);
1073 $labelName = $objexport->array_export_fields[0][$code];
1075 $text = (empty($objexport->array_export_special[0][$code]) ?
'' :
'<i>');
1076 $tmplabelarray = explode(
':', $labelName);
1077 if (!empty($tmplabelarray[1])) {
1078 $text .= $langs->trans($tmplabelarray[0]).
' - '.$langs->trans($tmplabelarray[1]);
1080 $text .= $langs->trans($labelName);
1082 $text .= (empty($objexport->array_export_special[0][$code]) ?
'' :
'</i>');
1085 $htmltext =
'<b>'.$langs->trans(
"Name").
':</b> '.$text.
'<br>';
1086 if (!empty($objexport->array_export_special[0][$code])) {
1087 $htmltext .=
'<b>'.$langs->trans(
"ComputedField").
" -> ".$langs->trans(
"Method").
" :</b> ";
1088 if (isset($objexport->array_export_special[0][$code][
'method'])) {
1089 $htmltext .= $objexport->array_export_special[0][$code][
'method'];
1090 } elseif (!is_array($objexport->array_export_special[0][$code])) {
1091 $htmltext .= $objexport->array_export_special[0][$code];
1093 $htmltext .=
"<br>";
1095 $htmltext .=
'<b>'.$langs->trans(
"Table").
" -> ".$langs->trans(
"Field").
":</b> ".$tablename.
" -> ".preg_replace(
'/^.*\./',
'', $code).
"<br>";
1097 if (!empty($objexport->array_export_examplevalues[0][$code])) {
1098 $htmltext .=
'<b>'.$langs->trans(
"SourceExample").
':</b> '.$objexport->array_export_examplevalues[0][$code].
'<br>';
1100 if (!empty($objexport->array_export_TypeFields[0][$code])) {
1101 $htmltext .=
'<b>'.$langs->trans(
"Type").
':</b> '.$objexport->array_export_TypeFields[0][$code].
'<br>';
1103 if (!empty($objexport->array_export_help[0][$code])) {
1104 $htmltext .=
'<b>'.$langs->trans(
"Help").
':</b> '.$langs->trans($objexport->array_export_help[0][$code]).
'<br>';
1108 print $form->textwithpicto($text, $htmltext);
1112 print
'<td class="right" width="100">';
1114 print
'</td><td class="center nowraponall" width="40">';
1115 if ($value < count($array_selected)) {
1116 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?step='.$step.
'&datatoexport='.$datatoexport.
'&action=downfield&field='.$code.
'">'.
img_down().
'</a>';
1119 print
'<a href="'.$_SERVER[
"PHP_SELF"].
'?step='.$step.
'&datatoexport='.$datatoexport.
'&action=upfield&field='.$code.
'">'.
img_up().
'</a>';
1137 print
'<div class="tabsAction">';
1139 if (count($array_selected)) {
1140 print
'<a class="butAction" href="export.php?step='.($step + 1).
'&datatoexport='.$datatoexport.
'">'.$langs->trans(
"NextStep").
'</a>';
1147 if (count($array_selected)) {
1150 print
'<div class="marginbottomonly">';
1151 print
'<span class="opacitymedium">'.$langs->trans(
"SaveExportModel").
'</span>';
1154 print
'<form class="nocellnopadd" action="export.php" method="post">';
1155 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1156 print
'<input type="hidden" name="action" value="add_export_model">';
1157 print
'<input type="hidden" name="step" value="'.$step.
'">';
1158 print
'<input type="hidden" name="datatoexport" value="'.$datatoexport.
'">';
1159 print
'<input type="hidden" name="hexa" value="'.$hexa.
'">';
1161 print
'<div class="div-table-responsive-no-min">';
1162 print
'<table class="noborder centpercent">';
1163 print
'<tr class="liste_titre">';
1164 print
'<td>'.$langs->trans(
"ExportModelName").
'</td>';
1165 print
'<td>'.$langs->trans(
"Visibility").
'</td>';
1169 print
'<tr class="oddeven">';
1170 print
'<td><input name="export_name" value=""></td>';
1172 $arrayvisibility = array(
'private' => $langs->trans(
"Private"),
'all' => $langs->trans(
"Everybody"));
1173 print $form->selectarray(
'visibility', $arrayvisibility,
'private');
1175 print
'<td class="right">';
1176 print
'<input type="submit" class="button reposition button-save small" value="'.$langs->trans(
"Save").
'">';
1179 $tmpuser =
new User($db);
1182 $sql =
"SELECT rowid, label, fk_user, entity";
1183 $sql .=
" FROM ".MAIN_DB_PREFIX.
"export_model";
1184 $sql .=
" WHERE type = '".$db->escape($datatoexport).
"'";
1186 $sql .=
" AND fk_user IN (0, ".((int) $user->id).
")";
1188 $sql .=
" ORDER BY rowid";
1189 $resql = $db->query($sql);
1191 $num = $db->num_rows($resql);
1194 $obj = $db->fetch_object($resql);
1196 print
'<tr class="oddeven"><td>';
1200 if (empty($obj->fk_user)) {
1201 print $langs->trans(
"Everybody");
1203 $tmpuser->fetch($obj->fk_user);
1204 print $tmpuser->getNomUrl(1);
1207 print
'<td class="right">';
1208 print
'<a class="reposition" href="'.$_SERVER[
"PHP_SELF"].
'?step='.$step.
'&datatoexport='.$datatoexport.
'&action=deleteprof&token='.
newToken().
'&id='.$obj->rowid.
'">';
1225if ($step == 5 && $datatoexport) {
1226 if (count($array_selected) < 1) {
1228 header(
"Location: ".DOL_URL_ROOT.
'/exports/export.php?step=2&datatoexport='.$datatoexport);
1233 if (empty($objexport->array_export_perms[0])) {
1237 asort($array_selected);
1239 llxHeader(
'', $langs->trans(
"NewExport"),
'EN:Module_Exports_En|FR:Module_Exports|ES:Módulo_Exportaciones',
'', 0, 0,
'',
'',
'',
'mod-exports page-export action-step5');
1244 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=1';
1245 $head[$h][1] = $langs->trans(
"Step").
" 1";
1248 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=2&datatoexport='.$datatoexport;
1249 $head[$h][1] = $langs->trans(
"Step").
" 2";
1253 if ($usefilters && isset($objexport->array_export_TypeFields[0]) && is_array($objexport->array_export_TypeFields[0])) {
1254 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=3&datatoexport='.$datatoexport;
1255 $head[$h][1] = $langs->trans(
"Step").
" 3";
1260 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=4&datatoexport='.$datatoexport;
1261 $head[$h][1] = $langs->trans(
"Step").
" ".(3 + $stepoffset);
1264 $head[$h][0] = DOL_URL_ROOT.
'/exports/export.php?step=5&datatoexport='.$datatoexport;
1265 $head[$h][1] = $langs->trans(
"Step").
" ".(4 + $stepoffset);
1266 $hselected = (string) $h;
1274 if ($action ==
'remove_file') {
1275 print $form->formconfirm($_SERVER[
"PHP_SELF"].
'?step=5&datatoexport='.$datatoexport.
'&file='.urlencode(
GETPOST(
"file")), $langs->trans(
'DeleteFile'), $langs->trans(
'ConfirmDeleteFile'),
'confirm_deletefile',
'', 0, 1);
1278 print
'<div class="fichecenter">';
1279 print
'<div class="underbanner clearboth"></div>';
1281 print
'<table class="border tableforfield centpercent">';
1284 print
'<tr><td class="titlefield">'.$langs->trans(
"Module").
'</td>';
1287 print $objexport->array_export_module[0]->getName();
1291 print
'<tr><td>'.$langs->trans(
"DatasetToExport").
'</td>';
1293 $entity = preg_replace(
'/:.*$/',
'', $objexport->array_export_icon[0]);
1294 $entityicon = strtolower(!empty($entitytoicon[$entity]) ? $entitytoicon[$entity] : $entity);
1295 print
img_object($objexport->array_export_module[0]->getName(), $entityicon).
' ';
1296 print $objexport->array_export_label[0];
1300 print
'<tr><td>'.$langs->trans(
"ExportedFields").
'</td>';
1302 foreach ($array_selected as $code => $label) {
1303 if (isset($objexport->array_export_fields[0][$code])) {
1304 $list .= (!empty($list) ?
', ' :
'');
1306 $tmplabelarray = explode(
':', $objexport->array_export_fields[0][$code]);
1307 if (!empty($tmplabelarray[1])) {
1308 $list .= $langs->trans($tmplabelarray[0]).
' - '.$langs->trans($tmplabelarray[1]);
1310 $list .= $langs->trans($objexport->array_export_fields[0][$code]);
1314 print
'<td>'.$list.
'</td></tr>';
1317 if (isset($objexport->array_export_TypeFields[0]) && is_array($objexport->array_export_TypeFields[0])) {
1318 print
'<tr><td>'.$langs->trans(
"FilteredFields").
'</td>';
1320 if (!empty($array_filtervalue)) {
1321 foreach ($array_filtervalue as $code => $value) {
1322 if (preg_match(
'/^FormSelect:/', $objexport->array_export_TypeFields[0][$code])) {
1328 if (isset($objexport->array_export_fields[0][$code])) {
1329 $list .= ($list ?
', ' :
'');
1330 if (isset($array_filtervalue[$code]) && preg_match(
'/^\s*[<>]/', $array_filtervalue[$code])) {
1331 $list .=
'<span class="opacitymedium">'.$langs->trans($objexport->array_export_fields[0][$code]).
'</span>'.(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] :
'');
1333 $list .=
'<span class="opacitymedium">'.$langs->trans($objexport->array_export_fields[0][$code]).
"</span>='".(isset($array_filtervalue[$code]) ? $array_filtervalue[$code] :
'').
"'";
1338 print
'<td>'.(!empty($list) ? $list :
'<span class="opacitymedium">'.$langs->trans(
"None").
'</span>').
'</td>';
1348 $htmltabloflibs =
'<!-- Table with available export formats --><br>';
1349 $htmltabloflibs .=
'<table class="noborder centpercent nomarginbottom">';
1350 $htmltabloflibs .=
'<tr class="liste_titre">';
1351 $htmltabloflibs .=
'<td>'.$langs->trans(
"AvailableFormats").
'</td>';
1352 $htmltabloflibs .=
'<td>'.$langs->trans(
"LibraryUsed").
'</td>';
1353 $htmltabloflibs .=
'<td class="right">'.$langs->trans(
"LibraryVersion").
'</td>';
1354 $htmltabloflibs .=
'</tr>'.
"\n";
1356 $liste = $objmodelexport->listOfAvailableExportFormat($db);
1358 foreach ($listeall as $key => $val) {
1359 if (preg_match(
'/__\(Disabled\)__/', $listeall[$key])) {
1360 $listeall[$key] = preg_replace(
'/__\(Disabled\)__/',
'('.$langs->transnoentitiesnoconv(
"Disabled").
')', $listeall[$key]);
1361 unset($liste[$key]);
1364 $htmltabloflibs .=
'<tr class="oddeven">';
1365 $htmltabloflibs .=
'<td>'.img_picto_common($key, $objmodelexport->getPictoForKey($key)).
' ';
1366 $text = $objmodelexport->getDriverDescForKey($key);
1367 $label = $listeall[$key];
1369 $htmltabloflibs .= $form->textwithpicto($label, $text).
'</td>';
1370 $htmltabloflibs .=
'<td>'.$objmodelexport->getLibLabelForKey($key).
'</td>';
1371 $htmltabloflibs .=
'<td class="right">'.$objmodelexport->getLibVersionForKey($key).
'</td>';
1372 $htmltabloflibs .=
'</tr>'.
"\n";
1374 $htmltabloflibs .=
'</table><br>';
1377 print
'<span class="opacitymedium">'.$form->textwithpicto($langs->trans(
"NowClickToGenerateToBuildExportFile"), $htmltabloflibs, 1,
'help',
'', 0, 2,
'helphonformat').
'</span>';
1383 if ($sqlusedforexport && $user->admin) {
1384 print
info_admin($langs->trans(
"SQLUsedForExport").
':<br> '.$sqlusedforexport, 0, 0,
'1',
'',
'TechnicalInformation').
'<br>';
1389 if (!is_dir(
$conf->export->dir_temp)) {
1395 print $formfile->showdocuments(
'export',
'', $upload_dir, $_SERVER[
"PHP_SELF"].
'?step=5&datatoexport='.$datatoexport, $liste, 1, (
GETPOST(
'model') ?
GETPOST(
'model') :
'csv'), 1, 1, 0, 0, 0,
'',
'none',
'',
'',
'');
1414 $alias = preg_replace(
'/\.(.*)$/i',
'', $code);
1415 $regexstring =
'/([a-zA-Z_]+) as '.preg_quote($alias).
'[, \)]/i';
1417 $newsql = $sqlmaxforexport;
1418 $newsql = preg_replace(
'/^(.*) FROM /i',
'', $newsql);
1419 $newsql = preg_replace(
'/WHERE (.*)$/i',
'', $newsql);
1422 if (preg_match($regexstring, $newsql, $reg)) {
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.
Parent class for export modules.
Class to manage Dolibarr users.
getablenamefromfield($code, $sqlmaxforexport)
Return table name of an alias.
dol_delete_file($file, $disableglob=0, $nophperrors=0, $nohook=0, $object=null, $allowdotdot=false, $indexdatabase=1, $nolog=0)
Remove a file or several files with a mask.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
img_right($titlealt='default', $selected=0, $moreatt='')
Show right arrow logo.
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)
img_left($titlealt='default', $selected=0, $moreatt='')
Show left arrow logo.
img_delete($titlealt='default', $other='class="pictodelete"', $morecss='')
Show delete logo.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
dolPrintHTML($s, $allowiframe=0)
Return a string (that can be on several lines) ready to be output on a HTML page.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $allowothertags=array())
Show a picto called object_picto (generic function)
img_down($titlealt='default', $selected=0, $moreclass='')
Show down arrow logo.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
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.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='')
Show information in HTML for admin users or standard users.
img_up($titlealt='default', $selected=0, $moreclass='')
Show top arrow logo.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
dol_mkdir($dir, $dataroot='', $newmask='')
Creation of a directory (this can create recursive subdir)
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
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.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.