* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. */ /** * \file idsconnect/admin/setup.php * \ingroup idsconnect * \brief IDS Connect Konfigurationsseite */ // Dolibarr laden $res = 0; if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; } $tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) { $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; } if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) { $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php"; } if (!$res && file_exists("../../main.inc.php")) { $res = @include "../../main.inc.php"; } if (!$res && file_exists("../../../main.inc.php")) { $res = @include "../../../main.inc.php"; } if (!$res) { die("Include of main fails"); } require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php"; require_once '../lib/idsconnect.lib.php'; /** * @var Conf $conf * @var DoliDB $db * @var HookManager $hookmanager * @var Translate $langs * @var User $user */ $langs->loadLangs(array("admin", "idsconnect@idsconnect")); // Zugriffskontrolle if (!$user->admin) { accessforbidden(); } $action = GETPOST('action', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); $error = 0; /* * Actions */ if ($action == 'update' && $user->admin) { // CSRF-Schutz if (!verifCond(GETPOST('token', 'alpha') == newToken())) { accessforbidden('Bad CSRF token'); } // Öffentliche URL dolibarr_set_const($db, 'IDSCONNECT_PUBLIC_URL', trim(GETPOST('IDSCONNECT_PUBLIC_URL', 'alphanohtml')), 'chaine', 0, '', $conf->entity); // Testmodus dolibarr_set_const($db, 'IDSCONNECT_TESTMODE', GETPOSTINT('IDSCONNECT_TESTMODE'), 'chaine', 0, '', $conf->entity); // Logging dolibarr_set_const($db, 'IDSCONNECT_LOG_ENABLED', GETPOSTINT('IDSCONNECT_LOG_ENABLED'), 'chaine', 0, '', $conf->entity); // WKS-Warnschwellen dolibarr_set_const($db, 'IDSCONNECT_WKS_WARN_QTY', GETPOSTINT('IDSCONNECT_WKS_WARN_QTY'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, 'IDSCONNECT_WKS_WARN_VALUE', GETPOST('IDSCONNECT_WKS_WARN_VALUE', 'alphanohtml'), 'chaine', 0, '', $conf->entity); // WKS-PIN (nur speichern wenn neue eingegeben) $new_pin = GETPOST('IDSCONNECT_WKS_PIN', 'none'); if (!empty($new_pin)) { $pin_hash = password_hash($new_pin, PASSWORD_DEFAULT); dolibarr_set_const($db, 'IDSCONNECT_WKS_PIN', $pin_hash, 'chaine', 0, '', $conf->entity); } // Preis-Update (manuell) dolibarr_set_const($db, 'IDSCONNECT_PRICE_UPDATE_ENABLED', GETPOSTINT('IDSCONNECT_PRICE_UPDATE_ENABLED'), 'chaine', 0, '', $conf->entity); dolibarr_set_const($db, 'IDSCONNECT_PRICE_UPDATE_THRESHOLD', GETPOST('IDSCONNECT_PRICE_UPDATE_THRESHOLD', 'alphanohtml'), 'chaine', 0, '', $conf->entity); if (!$error) { setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); } $action = 'edit'; } /* * View */ $form = new Form($db); $title = "IdsconnectSetup"; llxHeader('', $langs->trans($title), '', '', 0, 0, '', '', '', 'mod-idsconnect page-admin'); $linkback = ''.$langs->trans("BackToModuleList").''; print load_fiche_titre($langs->trans($title), $linkback, 'title_setup'); $head = idsconnectAdminPrepareHead(); print dol_get_fiche_head($head, 'settings', $langs->trans($title), -1, "fa-plug"); print ''.$langs->trans("IdsconnectSetupPage").'

'; // Formular print '
'; print ''; print ''; print ''; // Überschrift: Allgemein print ''; print ''; print ''; // Öffentliche URL (für HOOKURL bei Reverse-Proxy) print ''; print ''; print ''; // Testmodus print ''; print ''; print ''; // Logging print ''; print ''; print ''; // Überschrift: Preis-Verwaltung print ''; print ''; print ''; // Preis-Update aktivieren print ''; print ''; print ''; // Preis-Update Schwellwert print ''; print ''; print ''; // Überschrift: WKS-Sicherheit print ''; print ''; print ''; // Mengen-Warnschwelle print ''; print ''; print ''; // Wert-Warnschwelle print ''; print ''; print ''; // WKS-PIN print ''; print ''; print ''; // Callback-URL anzeigen (nur lesen, berechnet aus öffentlicher URL) print ''; print ''; print ''; // Mock-Server URL anzeigen (nur lesen, immer intern) print ''; print ''; print ''; print '
'.$langs->trans("IdsconnectGeneralSettings").'
'.$langs->trans("IdsconnectPublicUrl").''; print ''; print '
'.$langs->trans("IdsconnectPublicUrlHelp").''; print '
'.$langs->trans("IdsconnectTestMode").''; print $form->selectyesno('IDSCONNECT_TESTMODE', getDolGlobalInt('IDSCONNECT_TESTMODE', 1), 1); print ' '.$langs->trans("IdsconnectTestModeHelp").''; print '
'.$langs->trans("IdsconnectLogEnabled").''; print $form->selectyesno('IDSCONNECT_LOG_ENABLED', getDolGlobalInt('IDSCONNECT_LOG_ENABLED', 1), 1); print '
'.$langs->trans("IdsconnectPriceManagement").'
'.$langs->trans("IdsconnectPriceUpdateEnabled").''; print $form->selectyesno('IDSCONNECT_PRICE_UPDATE_ENABLED', getDolGlobalInt('IDSCONNECT_PRICE_UPDATE_ENABLED', 0), 1); print ' '.$langs->trans("IdsconnectPriceUpdateEnabledHelp").''; print '
'.$langs->trans("IdsconnectPriceUpdateThreshold").''; print ''; print ' % '.$langs->trans("IdsconnectPriceUpdateThresholdHelp").''; print '
'.$langs->trans("IdsconnectWksSecuritySettings").'
'.$langs->trans("IdsconnectWksWarnQty").''; print ''; print ' '.$langs->trans("IdsconnectWksWarnQtyHelp").''; print '
'.$langs->trans("IdsconnectWksWarnValueLabel").''; print ''; print ' € '.$langs->trans("IdsconnectWksWarnValueHelp").''; print '
'.$langs->trans("IdsconnectWksPinLabel").''; print ''; $has_pin = !empty(getDolGlobalString('IDSCONNECT_WKS_PIN')); if ($has_pin) { print ' '.$langs->trans("IdsconnectWksPinSet").''; } else { print ' '.$langs->trans("IdsconnectWksPinNotSet").''; } print ' '.$langs->trans("IdsconnectWksPinHelp").''; print '
'.$langs->trans("IdsconnectCallbackUrl").''; global $dolibarr_main_url_root; $public_url = getDolGlobalString('IDSCONNECT_PUBLIC_URL'); $url_base = !empty($public_url) ? rtrim($public_url, '/') : $dolibarr_main_url_root; $callback_url = $url_base.'/custom/idsconnect/callback.php'; print ''; if (empty($public_url)) { print ' Intern - '.$langs->trans("IdsconnectPublicUrlMissing").''; } print '
'.$langs->trans("IdsconnectCallbackUrlHelp").''; print '
'.$langs->trans("IdsconnectMockServerUrl").''; $mock_url = $dolibarr_main_url_root.'/custom/idsconnect/mockserver.php'; print ''; print ' '.$langs->trans("IdsconnectMockServerHelp").''; print '
'; print '
'; print ''; print '
'; print '
'; // Sicherheitsinfo print '
'; print '
'; print ''.$langs->trans("IdsconnectSecurityInfo").'
'; print $langs->trans("IdsconnectSecurityInfoText"); print '
'; // ============================================================ // Großhändler-Schnellübersicht mit Versionscheck // ============================================================ dol_include_once('/idsconnect/class/idssupplier.class.php'); $supplierObj = new IdsSupplier($db); $allSuppliers = $supplierObj->fetchAll(0); if (is_array($allSuppliers) && count($allSuppliers) > 0) { print '
'; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; foreach ($allSuppliers as $sup) { print ''; print ''; print ''; print ''; print ''; print ''; print ''; } print '
'.$langs->trans("IdsconnectSuppliers").''.$langs->trans("IdsconnectSupplierUrl").''.$langs->trans("IdsconnectSupplierVersion").''.$langs->trans("Status").''.$langs->trans("Action").'
'; print ''; print ''.htmlspecialchars($sup->label).''; print ''; print ' ('.htmlspecialchars($sup->ref).')'; print ''.htmlspecialchars($sup->ids_url).''.htmlspecialchars($sup->ids_version).''; if ($sup->active) { print ''.$langs->trans("Enabled").''; } else { print ''.$langs->trans("Disabled").''; } if ($sup->testmode) { print ' Test'; } print ''; if ($sup->active) { print ''; print $langs->trans("IdsconnectCheckVersion"); print ''; } print '
'; } print dol_get_fiche_end(); llxFooter(); $db->close();