Henry Margies <*****@*****.**> Holger Lindemann <*****@*****.**> */ function ende($txt) { echo "Abbruch: {$txt}<br>"; exit(1); } if (!$_SESSION["db"]) { $conffile = "../config/authentication.pl"; if (!is_file($conffile)) { ende("authentication.pl nicht gefunden oder kein Leserecht."); } } require "import_lib.php"; if (!anmelden()) { ende("Anmeldung fehlgeschlagen."); } /* get DB instance */ $db = $_SESSION["db"]; //new myDB($login); /* just display page or do real import? */ if ($_POST["ok"]) { require "parts_import.php"; /* display help */ if ($_POST["ok"] == "Hilfe") { echo "Importfelder:<br>"; echo "Feldname => Bedeutung<br>"; foreach ($parts as $key => $val) { echo "{$key} => {$val}<br>"; }
<label for="inputBenutzer" class="sr-only">Benutzername</label> <input type="text" id="inputBenutzer" class="form-control" placeholder="Benutzername" name="inputBenutzer" required autofocus> <label for="inputPassword" class="sr-only">Passwort</label> <input type="password" id="inputPassword" class="form-control" placeholder="Passwort" name="inputPassword" required> <br> <button class="btn btn-lg btn-primary btn-block" type="submit" name="anmelden" value="anmelden" style="font-size: 21px;font-weight: 200;">Anmelden</button> </form> </div> </div> </div> <?php if (!empty($_POST['anmelden'])) { $inputBenutzer = htmlentities(strip_tags($_POST['inputBenutzer'])); $inputPassword = htmlentities(strip_tags($_POST['inputPassword'])); anmelden($inputBenutzer, $inputPassword); } ?> <br><br><br> <div style="position:relative; margin-right: 30%; margin-left: 30%; width: 500px;" class="col-sm-4"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title" style="font-size: 21px;font-weight: 200;"><center>Registrieren</center></h3> </div> <div class="panel-body"> <form class="form-signin" method="POST"> <label for="inputVorname" class="sr-only">Vorname</label> <input type="text" id="inputVorname" class="form-control" name="inputVorname" placeholder="Vorname" required autofocus> <label for="inputNachname" class="sr-only">Nachname</label>
$_SESSION['ERPNAME'] = $_POST["erpname"]; $_SESSION['erpConfigFile'] = $_POST['erpConfigFile']; } // Beim Setzen von crmpath muss zwingend darauf geachtet werden, dass man sich nicht in einem Unterverzeichnis befindet. // Bem.: Da am Ende des von getcwd() zurück gegeben Strings kein Slash steht funktioniert dirname() hier. // aus /root/kivitendo/inc wird /root/kivitendo if (empty($_SESSION['crmpath'])) { $_SESSION['crmpath'] = substr(getcwd(), -3) == "inc" || substr(getcwd(), -6) == "jqhelp" || substr(getcwd(), -6) == "lxcars" || substr(getcwd(), -5) == "crmti" ? dirname(getcwd()) : getcwd(); } $conffile = $_SESSION['crmpath'] . "/../" . $_SESSION['ERPNAME'] . "/config/" . $_SESSION['erpConfigFile'] . ".conf"; //$conf = array('ERPNAME','erpConfigFile'); //while( list($key,$val) = each($_SESSION) ) { // if ( ! in_array($key,$conf) ) unset($_SESSION[$key]); //}; if (is_file($conffile)) { $tmp = anmelden(); $crm_exist = $_SESSION['db']->getOne("SELECT count(*) FROM information_schema.tables WHERE table_name = 'crm'"); if ($tmp) { //SQL-Fehler vermeiden wenn crm noch nicht existiert (neue DB), besser wäre es die Tabelle crm zuerst erstellen ToDo! $crm_exist = $_SESSION['db']->getOne("SELECT count(*) FROM information_schema.tables WHERE table_name = 'crm'"); if ((bool) $crm_exist['count']) { $rs = $_SESSION['db']->getOne('SELECT * FROM crm ORDER BY version DESC LIMIT 1'); } $dbver = $rs['version']; // Existiert crm nicht so kann auch ein Fehler-Objekt zurückgegeben werden if (is_object($rs) || !$rs || $dbver == "" || $dbver == false) { echo "CRM-Tabellen sind nicht (vollständig) installiert"; flush(); require "install.php"; require "inc/update_neu.php"; echo "<b>Richten Sie nun zunächst den [<a href='mandant.php'>Mandenten</a>] in der CRM ein,<br>";
function makeMenu($sess, $token) { if (!function_exists('curl_init')) { die('Curl (php5-curl) ist nicht installiert!'); } if (!isset($_SESSION['ERP_BASE_URL']) || $_SESSION['ERP_BASE_URL'] == '') { $BaseUrl = empty($_SERVER['HTTPS']) ? 'http://' : 'https://'; $BaseUrl .= $_SERVER['HTTP_HOST']; $BaseUrl .= preg_replace("^crm/.*^", "", $_SERVER['REQUEST_URI']); } else { $BaseUrl = $_SESSION['ERP_BASE_URL']; } $_SESSION['baseurl'] = $BaseUrl; $Url = $BaseUrl . 'controller.pl?action=Layout/empty&format=json'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $Url); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Connection: keep-alive", "Cookie: " . $_SESSION["cookie"] . "=" . $sess . "; " . $_SESSION["cookie"] . "_api_token=" . $token)); if (curl_errno($ch)) { echo 'Curl error: ' . curl_error($ch); } $result = curl_exec($ch); curl_close($ch); $objResult = json_decode($result); if (!is_object($objResult)) { anmelden(); } $_arr = get_object_vars($objResult); $rs['javascripts'] = ''; $rs['stylesheets'] = ''; $rs['pre_content'] = ''; $rs['start_content'] = ''; $rs['end_content'] = ''; if ($objResult) { foreach ($objResult->{'javascripts'} as $js) { if (preg_match('/jquery/', $js)) { continue; } $rs['javascripts'] .= '<script type="text/javascript" src="' . $BaseUrl . $js . '"></script>' . "\n" . ' '; } $rs['javascripts'] .= '<script type="text/javascript">'; $suche = '^,"([/a-zA-Z_0-9]+)\\.(pl|php)^'; $ersetze = ',"' . $BaseUrl . '${1}.${2}'; foreach ($objResult->{'javascripts_inline'} as $js) { $js = preg_replace($suche, $ersetze, $js); $rs['javascripts'] .= $js; //'<script type="text/javascript" src="'.$BaseUrl.$js.'"></script>'."\n".' '; } $rs['javascripts'] .= '</script>' . "\n"; foreach ($objResult->{'stylesheets'} as $style) { if ($style) { $rs['stylesheets'] .= '<link rel="stylesheet" href="' . $BaseUrl . $style . '" type="text/css">' . "\n" . ' '; } } foreach ($objResult->{'stylesheets_inline'} as $style) { if ($style) { $rs['stylesheets'] .= '<link rel="stylesheet" href="' . $BaseUrl . $style . '" type="text/css">' . "\n" . ' '; } } $suche = '^([/a-zA-Z_0-9]+)\\.(pl|php)^'; $ersetze = $BaseUrl . '${1}.${2}'; $tmp = preg_replace($suche, $ersetze, $objResult->{'pre_content'}); $tmp = str_replace('itemIcon="', 'itemIcon="' . $BaseUrl, $tmp); $rs['pre_content'] = str_replace('src="', 'src="' . $BaseUrl, $tmp); $rs['start_content'] = $objResult->{'start_content'}; $rs['end_content'] = $objResult->{'end_content'}; } return $rs; }
function makeMenu($sess, $token) { if (!function_exists('curl_init')) { die('Curl (php5-curl) ist nicht installiert!'); } if (!isset($_SESSION['ERP_BASE_URL']) || $_SESSION['ERP_BASE_URL'] == '') { $BaseUrl = empty($_SERVER['HTTPS']) ? 'http://' : 'https://'; $BaseUrl .= $_SERVER['HTTP_HOST']; $BaseUrl .= preg_replace("^crm/.*^", "", $_SERVER['REQUEST_URI']); } else { $BaseUrl = $_SESSION['ERP_BASE_URL']; } $_SESSION['baseurl'] = $BaseUrl; $Url = $BaseUrl . 'controller.pl?action=Layout/empty&format=json'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $Url); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 1); curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Connection: keep-alive", "Cookie: " . $_SESSION["cookie"] . "=" . $sess . "; " . $_SESSION["cookie"] . "_api_token=" . $token)); $result = curl_exec($ch); if ($result === false || curl_errno($ch)) { die('Curl-Error: ' . curl_error($ch) . ' </br> $ERP_BASE_URL in "inc/conf.php" richtig gesetzt??'); } curl_close($ch); $objResult = json_decode($result); if (!is_object($objResult)) { anmelden(); } $_arr = get_object_vars($objResult); $rs['javascripts'] = ''; $rs['stylesheets'] = ''; $rs['pre_content'] = ''; $rs['start_content'] = ''; $rs['end_content'] = ''; if ($objResult) { //echo "<pre>"; //print_r($objResult->{'javascripts'}); //echo "</pre"; foreach ($objResult->{'javascripts'} as $js) { //<script type="text/javascript" src="http://localhost/kivitendo-dev/crm/jquery/jquery-ui.min.js"></script> //jQuery und UI der ERP benützen //$rs['javascripts'] .= '<script type="text/javascript" src="'.$BaseUrl.$js.'"></script>'."\n".' '; //Da die ERP eine veraltete JUI benützt, aktuelle JUI aus CRM laden //ToDo: JUI aus ERP laden wenn diese >= Version 11.4 wird //Achtung!: JUI wird von der ERP nur geliefert wenn fast alle Module aktiviert sind (Menü) if (strpos($js, "jquery-ui") === false) { $rs['javascripts'] .= '<script type="text/javascript" src="' . $BaseUrl . $js . '"></script>' . "\n" . ' '; } $rs['javascripts'] .= '<script type="text/javascript" src="' . $BaseUrl . 'crm/jquery/jquery-ui.min.js"></script>' . "\n" . ' '; } foreach ($objResult->{'stylesheets'} as $style) { if ($style) { $rs['stylesheets'] .= '<link rel="stylesheet" href="' . $BaseUrl . $style . '" type="text/css">' . "\n" . ' '; } } foreach ($objResult->{'stylesheets_inline'} as $style) { if ($style) { $rs['stylesheets'] .= '<link rel="stylesheet" href="' . $BaseUrl . $style . '" type="text/css">' . "\n" . ' '; } } $suche = '^([/a-zA-Z_0-9]+)\\.(pl|php|phtml)^'; $ersetze = $BaseUrl . '${1}.${2}'; $tmp = preg_replace($suche, $ersetze, $objResult->{'pre_content'}); $tmp = str_replace('itemIcon="', 'itemIcon="' . $BaseUrl, $tmp); $rs['pre_content'] = str_replace('src="', 'src="' . $BaseUrl, $tmp); $rs['start_content'] = $objResult->{'start_content'}; $rs['start_content_ui'] = '<div class="ui-widget-content">'; //Begin UI-Look $rs['end_content'] = $objResult->{'end_content'}; $rs['end_content'] .= '<script type="text/javascript">'; //Inline-JS der ERP in den Footer (nach end_content) foreach ($objResult->{'javascripts_inline'} as $js) { $js = preg_replace($suche, $ersetze, $js); $rs['end_content'] .= $js; //'<script type="text/javascript" src="'.$BaseUrl.$js.'"></script>'."\n".' '; } $rs['end_content'] .= '</script>' . "\n"; $rs['end_content_ui'] = '</div>'; //End UI-Look } return $rs; }