dolibarr 25.0.0-alpha
index.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2005-2015 Laurent Destailleur <eldy@users.sourceforge.net>
3 * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <https://www.gnu.org/licenses/>.
17 */
18
25require_once '../main.inc.php';
33require_once DOL_DOCUMENT_ROOT.'/imports/class/import.class.php';
34require_once DOL_DOCUMENT_ROOT.'/exports/class/export.class.php';
35
36// Load translation files required by the page
37$langs->loadLangs(array("exports", "other"));
38
39if (!$user->socid == 0) {
41}
42
43$export = new Export($db);
44$export->load_arrays($user);
45
46$import = new Import($db);
47$import->load_arrays($user);
48
49$usercanimport = isModEnabled('import') && restrictedArea($user, 'import', 0, '', '', 'fk_soc', 'rowid', 0, 1);
50$usercanexport = isModEnabled('export') && restrictedArea($user, 'export', 0, '', '', 'fk_soc', 'rowid', 0, 1);
51if (!$usercanimport && !$usercanexport) {
53}
54
55
56/*
57 * View
58 */
59
60$form = new Form($db);
61
62$title = "ImportExportArea";
63if (isModEnabled('import') && !isModEnabled('export')) {
64 $title = "ImportArea";
65}
66if (!isModEnabled('import') && isModEnabled('export')) {
67 $title = "ExportsArea";
68}
69
70llxHeader('', $title, 'EN:Module_Imports_En|FR:Module_Imports|ES:M&oacute;dulo_Importaciones');
71
72print load_fiche_titre($langs->trans($title));
73
74
75// List of available import format
76if ($usercanimport) {
77 $out = '';
78 $out .= '<div class="div-table-responsive-no-min">';
79 $out .= '<table class="noborder centpercent nomarginbottom">';
80 $out .= '<tr class="liste_titre">';
81 $out .= '<td colspan="2">'.$langs->trans("AvailableFormats").'</td>';
82 $out .= '<td>'.$langs->trans("LibraryShort").'</td>';
83 $out .= '<td class="right">'.$langs->trans("LibraryVersion").'</td>';
84 $out .= '</tr>';
85
86 include_once DOL_DOCUMENT_ROOT.'/core/modules/import/modules_import.class.php';
87 $model = new ModeleImports();
88 $list = $model->listOfAvailableImportFormat($db);
89
90 foreach ($list as $key) {
91 $out .= '<tr class="oddeven">';
92 $out .= '<td width="16">'.img_picto_common($model->getDriverLabelForKey($key), $model->getPictoForKey($key)).'</td>';
93 $text = $model->getDriverDescForKey($key);
94 // @phan-suppress-next-line PhanPluginSuspiciousParamPosition
95 $out .= '<td>'.$form->textwithpicto($model->getDriverLabelForKey($key), $text).'</td>';
96 $out .= '<td>'.$model->getLibLabelForKey($key).'</td>';
97 $out .= '<td class="nowrap right">'.$model->getLibVersionForKey($key).'</td>';
98 $out .= '</tr>';
99 }
100
101 $out .= '</table>';
102 $out .= '</div>';
103
104 print '<div class="divsection wordwrap center">';
105 print '<br>';
106 print $form->textwithpicto($langs->trans("FormatedImportDesc1"), $out, 1, 'help', 'valignmiddle', 1, 3, 'ttimport').'<br>';
107 print '<br><br>';
108
109
110 print '<div class="center">';
111 if (count($import->array_import_code)) {
112 $params = array('forcenohideoftext' => 1);
113 print dolGetButtonTitle($langs->trans('NewImport'), '', 'fa fa-plus-circle size4x', DOL_URL_ROOT.'/imports/import.php?leftmenu=import', '', 1, $params);
114 }
115 print '</div>';
116 print '<br>';
117
118 print '</div>';
119}
120
121
122// List of available export formats
123if ($usercanexport) {
124 $out = '';
125 $out .= '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you don't need reserved height for your table
126 $out .= '<table class="noborder centpercent nomarginbottom">';
127 $out .= '<tr class="liste_titre">';
128 $out .= '<td colspan="2">'.$langs->trans("AvailableFormats").'</td>';
129 $out .= '<td>'.$langs->trans("LibraryShort").'</td>';
130 $out .= '<td class="right">'.$langs->trans("LibraryVersion").'</td>';
131 $out .= '</tr>';
132
133 include_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php';
134 $model = new ModeleExports($db);
135 $liste = $model->listOfAvailableExportFormat($db); // This is not a static method for exports because method load non static properties
136
137 foreach ($liste as $key => $val) {
138 if (preg_match('/__\‍(Disabled\‍)__/', $liste[$key])) {
139 $liste[$key] = preg_replace('/__\‍(Disabled\‍)__/', '('.$langs->transnoentitiesnoconv("Disabled").')', $liste[$key]);
140 }
141
142 $out .= '<tr class="oddeven">';
143 $out .= '<td width="16">'.img_picto_common($model->getDriverLabelForKey($key), $model->getPictoForKey($key)).'</td>';
144 $text = $model->getDriverDescForKey($key);
145 $label = $liste[$key];
146 // @phan-suppress-next-line PhanPluginSuspiciousParamPosition
147 $out .= '<td>'.$form->textwithpicto($label, $text).'</td>';
148 $out .= '<td>'.$model->getLibLabelForKey($key).'</td>';
149 $out .= '<td class="nowrap right">'.$model->getLibVersionForKey($key).'</td>';
150 $out .= '</tr>';
151 }
152
153 $out .= '</table>';
154 $out .= '</div>';
155
156
157 print '<div class="divsection wordwrap center">';
158 print '<br>';
159 print $form->textwithpicto($langs->trans("FormatedExportDesc1"), $out, 1, 'help', 'valignmiddle', 1, 3, 'ttexport').'<br>';
160 print '<br><br>';
161
162 print '<div class="center">';
163 if (count($export->array_export_code)) {
164 $params = array('forcenohideoftext' => 1);
165 print dolGetButtonTitle($langs->trans('NewExport'), '', 'fa fa-plus-circle size4x', DOL_URL_ROOT.'/exports/export.php?leftmenu=export', '', 1, $params);
166 }
167 print '</div>';
168 print '<br>';
169
170 print '</div>';
171}
172
173
174// End of page
175llxFooter();
176$db->close();
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
Definition wrapper.php:91
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.
Definition wrapper.php:73
Class to manage exports.
Class to manage generation of HTML components Only common components must be here.
Class to manage imports.
Parent class for export modules.
Parent class for import file readers.
if(!isModEnabled('ai')||!getDolGlobalString('AI_ASSISTANT_ENABLED')) global $db
API class for accounts.
isModEnabled($module)
Is Dolibarr module enabled.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
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.