dolibarr 21.0.0-beta
setup.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2023-2024 Laurent Destailleur <eldy@users.sourceforge.net>
3 * Copyright (C) 2023-2024 Lionel Vessiller <lvessiller@easya.solutions>
4 * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
5 * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
19 */
20
27// Load Dolibarr environment
28require_once "../../main.inc.php";
29require_once DOL_DOCUMENT_ROOT . "/core/lib/admin.lib.php";
30require_once DOL_DOCUMENT_ROOT . "/webportal/lib/webportal.lib.php";
31
40// Translations
41$langs->loadLangs(array("admin", "webportal", "website"));
42
43// Initialize a technical object to manage hooks of page. Note that conf->hooks_modules contains an array of hook context
44$hookmanager->initHooks(array('webportalsetup', 'globalsetup'));
45
46// Parameters
47$action = GETPOST('action', 'aZ09');
48$backtopage = GETPOST('backtopage', 'alpha');
49$modulepart = GETPOST('modulepart', 'aZ09'); // Used by actions_setmoduleoptions.inc.php
50
51$value = GETPOST('value', 'alpha');
52$label = GETPOST('label', 'alpha');
53$scandir = GETPOST('scan_dir', 'alpha');
54$type = 'webportal';
55
56$error = 0;
57$setupnotempty = 0;
58
59// Access control
60if (!$user->admin) {
62}
63
64// Set this to 1 to use the factory to manage constants. Warning, the generated module will be compatible with version v15+ only
65$useFormSetup = 1;
66
67if (!class_exists('FormSetup')) {
68 require_once DOL_DOCUMENT_ROOT . '/core/class/html.formsetup.class.php';
69}
70$formSetup = new FormSetup($db);
71
72
73// Add logged user
74//$formSetup->newItem('WEBPORTAL_USER_LOGGED2')->setAsSelectUser();
75// only enabled users
76$userList = $formSetup->form->select_dolusers(getDolGlobalInt('WEBPORTAL_USER_LOGGED'), 'WEBPORTAL_USER_LOGGED', 1, null, 0, '', '', '0', 0, 0, '', 0, '', '', 1, 2);
77
78$item = $formSetup->newItem('WEBPORTAL_USER_LOGGED');
79$item->setAsSelect($userList);
80$item->picto = 'user';
81$item->helpText = $langs->transnoentities('WebPortalUserLoggedHelp');
82// TODO Add a property mandatory to set style to "fieldrequired" and to add a check in submit
83
84
85// root url
86
87// @var FormSetupItem $item
88$item = $formSetup->newItem('WEBPORTAL_ROOT_URL')->setAsString();
89$item->nameText = $langs->transnoentities('UrlPublicInterfaceLabelAdmin');
90$item->fieldAttr = array('placeholder' => 'https://');
91$item->helpText = $langs->transnoentities('UrlPublicInterfaceHelpAdmin');
92require_once __DIR__ . '/../class/context.class.php';
93//$context = Context::getInstance();
94//$item->fieldOutputOverride = '<a target="_blank" href="'.Context::getRootConfigUrl().'" >'.img_picto('', 'globe', 'class="pictofixedwidth"').Context::getRootConfigUrl().'</a>';
95
96
97$formSetup->newItem('WEBPORTAL_TITLE')->defaultFieldValue = getDolGlobalString('MAIN_INFO_SOCIETE_NOM');
98
99
100// Enable access for the proposals
101if (isModEnabled('propal')) {
102 $formSetup->newItem('WEBPORTAL_PROPAL_LIST_ACCESS')->setAsYesNo();
103}
104
105// Enable access for the orders
106if (isModEnabled('order')) {
107 $formSetup->newItem('WEBPORTAL_ORDER_LIST_ACCESS')->setAsYesNo();
108}
109
110// Enable access for the invoices
111if (isModEnabled('invoice')) {
112 $formSetup->newItem('WEBPORTAL_INVOICE_LIST_ACCESS')->setAsYesNo();
113}
114
115// Enable access for the partnership record
116if (isModEnabled('partnership')) {
117 $access_list = array(
118 'hidden' => $langs->trans('WebPortalAccessHidden'),
119 'visible' => $langs->trans('WebPortalAccessVisible'),
120 );
121 $item = $formSetup->newItem('WEBPORTAL_PARTNERSHIP_CARD_ACCESS');
122 $item->setAsSelect($access_list);
123 $item->helpText = $langs->transnoentities('WebPortalPartnerShipCardAccessHelp');
124}
125
126// Enable access for the membership record
127if (isModEnabled('member')) {
128 $access_list = array(
129 'hidden' => $langs->trans('WebPortalAccessHidden'),
130 'visible' => $langs->trans('WebPortalAccessVisible'),
131 'edit' => $langs->trans('WebPortalAccessEdit'),
132 );
133 $item = $formSetup->newItem('WEBPORTAL_MEMBER_CARD_ACCESS');
134 $item->setAsSelect($access_list);
135 $item->helpText = $langs->transnoentities('WebPortalMemberCardAccessHelp');
136}
137
138
139$setupnotempty += count($formSetup->items);
140
141$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
142
143$moduledir = 'webportal';
144$myTmpObjects = array();
145$myTmpObjects['webportal'] = array('label' => 'WebPortal', 'includerefgeneration' => 0, 'includedocgeneration' => 0, 'class' => 'WebPortal');
146
147$tmpobjectkey = GETPOST('object', 'aZ09');
148if ($tmpobjectkey && !array_key_exists($tmpobjectkey, $myTmpObjects)) {
149 accessforbidden('Bad value for object. Hack attempt ?');
150}
151
152
153/*
154 * Actions
155 */
156
157include DOL_DOCUMENT_ROOT . '/core/actions_setmoduleoptions.inc.php';
158
159// Force always edit mode
160if (empty($action) || $action == 'update') {
161 $action = 'edit';
162}
163
164
165/*
166 * View
167 */
168
169$form = new Form($db);
170
171$help_url = '';
172$title = "WebPortalSetup";
173
174llxHeader('', $langs->trans($title), $help_url);
175
176// Subheader
177$linkback = '<a href="' . ($backtopage ? $backtopage : DOL_URL_ROOT . '/admin/modules.php?restore_lastsearch_values=1') . '">' . $langs->trans("BackToModuleList") . '</a>';
178
179print load_fiche_titre($langs->trans($title), $linkback, 'title_setup');
180
181// Configuration header
183print dol_get_fiche_head($head, 'settings', $langs->trans($title), -1, "webportal");
184
185print '<br>';
186
187// URL For webportal
188print img_picto('', 'globe').' <span class="opacitymedium">'.$langs->trans('WebPortalURL').'</span><br>';
189if (isModEnabled('multicompany')) {
190 $entity_qr = '?entity='.((int) $conf->entity);
191} else {
192 $entity_qr = '';
193}
194
195// Define $urlwithroot
196$urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT, '/').'$/i', '', trim($dolibarr_main_url_root));
197$urlwithroot = $urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
198//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
199
200print '<div class="urllink">';
201print '<input type="text" id="publicurlmember" class="quatrevingtpercentminusx" value="'.$urlwithroot.'/public/webportal/index.php'.$entity_qr.'">';
202print '<a target="_blank" rel="noopener noreferrer" href="'.$urlwithroot.'/public/webportal/index.php'.$entity_qr.'">'.img_picto('', 'globe', 'class="paddingleft"').'</a>';
203print '</div>';
204print ajax_autoselect('publicurlmember');
205//print '<a target="_blank" href="'.Context::getRootConfigUrl().'" >'.img_picto('', 'globe', 'class="pictofixedwidth"').Context::getRootConfigUrl().'</a>';
206
207// Setup page goes here
208print info_admin($langs->trans("UserAccountForWebPortalAreInThirdPartyTabHelp"));
209
210print '<br><br>';
211
212if ($action == 'edit') {
213 print $formSetup->generateOutput(true);
214 print '<br>';
215} elseif (!empty($formSetup->items)) {
216 print $formSetup->generateOutput();
217 print '<div class="tabsAction">';
218 print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=edit&token=' . newToken() . '">' . $langs->trans("Modify") . '</a>';
219 print '</div>';
220} else {
221 print '<br>' . $langs->trans("NothingToSetup");
222}
223
224// Page end
225print dol_get_fiche_end();
226
227llxFooter();
228$db->close();
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:71
Class to manage generation of HTML components Only common components must be here.
This class help you create setup render.
llxFooter()
Footer empty.
Definition document.php:107
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)
Show picto whatever it's its name (generic function)
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
ajax_autoselect($htmlname, $addlink='', $textonlink='Link')
Make content of an input box selected when we click into input field.
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.
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.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
Definition member.php:79
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.
webportalAdminPrepareHead()
Prepare admin pages header.