- Updated formatting and structure of functions in edit_contact.inc.php for better readability and consistency. - Added comments to clarify the purpose of certain code sections, especially regarding mandant handling. - Removed the deprecated phpinfo.php file to clean up the codebase.
5181 lines
213 KiB
PHP
5181 lines
213 KiB
PHP
<?
|
|
function dcBasicAuth() {
|
|
if (isset($_SERVER['HTTP_HOST'])) {
|
|
|
|
$host_names = explode(".", $_SERVER['HTTP_HOST']);
|
|
$bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1];
|
|
|
|
if ($bottom_host_name === getenv('BASIC_AUTH_DOMAIN')) {
|
|
$authUser = array(
|
|
getenv('BASIC_AUTH_USER_INTERNAL') => getenv('BASIC_AUTH_USER_PASSWORD_INTERNAL'),
|
|
getenv('BASIC_AUTH_USER_EXTERNAL') => getenv('BASIC_AUTH_USER_PASSWORD_EXTERNAL')
|
|
);
|
|
$realm = "Restricted area";
|
|
if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
|
showBasicAuth($realm);
|
|
}
|
|
if (!isset($authUser[$_SERVER['PHP_AUTH_USER']]) || !isset($_SERVER['PHP_AUTH_PW'])) {
|
|
showBasicAuth($realm);
|
|
}
|
|
if ($authUser[$_SERVER['PHP_AUTH_USER']] !== $_SERVER['PHP_AUTH_PW']) {
|
|
showBasicAuth($realm);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param $realm
|
|
*/
|
|
function showBasicAuth($realm): void
|
|
{
|
|
header('WWW-Authenticate: Basic realm="'.$realm.'"');
|
|
header('HTTP/1.0 401 Unauthorized');
|
|
die();
|
|
}
|
|
|
|
//mysqli_result analog zu mysql_result
|
|
function mysqli_result( $res, $row = 0, $col = 0 ) {
|
|
if ($row >= 0 && @mysqli_num_rows($res) > $row) {
|
|
@mysqli_data_seek($res, $row);
|
|
$resrow = @mysqli_fetch_row($res);
|
|
if (isset($resrow[$col])) {
|
|
return $resrow[$col];
|
|
}
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
function encryptId($id)
|
|
{
|
|
$encryptedId = base64_encode($id . "EC1ibm38FI53cxmSnQUi");
|
|
return $encryptedId;
|
|
}
|
|
|
|
// Entschlüsselt eine zuvor verschlüsselte ID, um ihre ursprüngliche Form wiederherzustellen.
|
|
function decryptId($encryptedId)
|
|
{
|
|
$decryptedId = base64_decode($encryptedId);
|
|
$id = str_replace("EC1ibm38FI53cxmSnQUi", "", $decryptedId);
|
|
return $id;
|
|
}
|
|
|
|
|
|
// Verbindung mir der Datenbank herstellen
|
|
function db_connect() {
|
|
$servername = $GLOBALS['myservername'];
|
|
$login = $GLOBALS['mylogin'];
|
|
$pass = $GLOBALS['mypass'];
|
|
$db = $GLOBALS['mydb'];
|
|
|
|
$GLOBALS['mysql_con'] = mysqli_connect($servername, $login, $pass) or die (mysqli_error($GLOBALS['mysql_con']) . " - Keine Verbindung hergestellt!");
|
|
@mysqli_select_db($GLOBALS['mysql_con'], $db) or die (mysqli_error($GLOBALS['mysql_con']) . " - Keine Verbindung hergestellt!");
|
|
@mysqli_query($GLOBALS['mysql_con'], "set character set 'utf8';");
|
|
@mysqli_query($GLOBALS['mysql_con'], "set names 'utf8';");
|
|
|
|
$pdo = new PDO('mysql:host='.$servername.';dbname='.$db, $login, $pass);
|
|
$GLOBALS['pdo_conn'] = $pdo;
|
|
}
|
|
|
|
// Globales führen der Reihenfolge in der Felder angewählt werden
|
|
function tabcounter() {
|
|
$counter = $GLOBALS["tabcounter"];
|
|
$GLOBALS["tabcounter"]++;
|
|
return $counter;
|
|
}
|
|
|
|
// Funktion zum erstellen eines internen Links
|
|
function ml( $sitepart, $key1, $value1, $key2 = NULL, $value2 = NULL, $key3 = NULL, $value3 = NULL, $key4 = NULL, $value4 = NULL ) {
|
|
$newget = $_GET;
|
|
unset($newget["payment_error"], $newget["login_error"], $newget["sid"], $newget["site"], $newget["language"], $newget["level_1"], $newget["level_2"], $newget["level_3"], $newget["level_4"], $newget["level_5"], $newget["action"], $newget["action_id"], $newget["slevel_1"], $newget["slevel_2"], $newget["slevel_3"], $newget["slevel_4"], $newget["slevel_5"]);
|
|
|
|
foreach ($newget as $key => $val){
|
|
if(substr($key,0,6) === 'action' && $val === 'send'){
|
|
unset($newget[$key]);
|
|
}
|
|
}
|
|
|
|
if ($key1 <> "") {
|
|
$newget[$key1 . $sitepart["navigation_has_sitepart_id"]] = $value1;
|
|
}
|
|
if ($key2 <> "") {
|
|
$newget[$key2 . $sitepart["navigation_has_sitepart_id"]] = $value2;
|
|
}
|
|
if ($key3 <> "") {
|
|
$newget[$key3 . $sitepart["navigation_has_sitepart_id"]] = $value3;
|
|
}
|
|
if ($key4 <> "") {
|
|
$newget[$key4 . $sitepart["navigation_has_sitepart_id"]] = $value4;
|
|
}
|
|
|
|
return ("?" . http_build_query($newget));
|
|
}
|
|
|
|
function ml2( $data ) {
|
|
$newget = $_GET;
|
|
unset($newget["sid"], $newget["site"], $newget["language"], $newget["level_1"], $newget["level_2"], $newget["level_3"], $newget["level_4"], $newget["level_5"], $newget["action"], $newget["action_id"], $newget["slevel_1"], $newget["slevel_2"], $newget["slevel_3"], $newget["slevel_4"], $newget["slevel_5"]);
|
|
$newget = array_merge($newget, $data);
|
|
return ("?" . http_build_query($newget));
|
|
}
|
|
|
|
// Array vor SQL-Injection schützen
|
|
function secure_array( $bad_array, $check_strip_tags = FALSE ) {
|
|
|
|
//$keywords = ['INSERT','SELECT','DROP','SHOW','TRUNCATE','CONCAT','information_schema','substring(','version(','ascii','database(','load_file(','OUTFILE','BENCHMARK','unhex'];
|
|
$keywords = [''];
|
|
|
|
$secure_array = array();
|
|
foreach ($bad_array as $key => $value) {
|
|
if (is_array($bad_array[$key])) {
|
|
$secure_array[$key] = secure_array($bad_array[$key], $check_strip_tags);
|
|
} else {
|
|
$hex2stringValue = hexToStr($value);
|
|
foreach($keywords as $keyword) {
|
|
if ((stripos($value,$keyword) !== false) || (stripos($hex2stringValue,$keyword) !== false)) {
|
|
die();
|
|
}
|
|
}
|
|
$secure_array[$key] = secure_var($value, $check_strip_tags);
|
|
}
|
|
}
|
|
return $secure_array;
|
|
}
|
|
|
|
// Array vor SQL-Injection schützen für navconnect
|
|
function secure_array_nav( $bad_array, $check_strip_tags = FALSE ) {
|
|
|
|
$keywords = ['INSERT','SELECT','SHOW','TRUNCATE','CONCAT','information_schema','substring(','version(','ascii(','database(','load_file(','OUTFILE','BENCHMARK','unhex'];
|
|
|
|
$secure_array = array();
|
|
foreach ($bad_array as $key => $value) {
|
|
if (is_array($bad_array[$key])) {
|
|
$secure_array[$key] = secure_array($bad_array[$key], $check_strip_tags);
|
|
} else {
|
|
$hex2stringValue = hexToStr($value);
|
|
foreach($keywords as $keyword) {
|
|
if ((stripos($value,$keyword) !== false) || (stripos($hex2stringValue,$keyword) !== false)) {
|
|
die();
|
|
}
|
|
}
|
|
$secure_array[$key] = secure_var($value, $check_strip_tags);
|
|
}
|
|
}
|
|
return $secure_array;
|
|
}
|
|
|
|
function hexToStr($hex){
|
|
$string='';
|
|
for ($i=0; $i < strlen($hex)-1; $i+=2){
|
|
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
|
|
}
|
|
return $string;
|
|
}
|
|
|
|
// Variable vor SQL-Injection schützen
|
|
function secure_var( $bad_var, $check_strip_tags = FALSE ) {
|
|
if (get_magic_quotes_gpc()) {
|
|
$bad_var = stripslashes($bad_var);
|
|
}
|
|
if ($check_strip_tags) {
|
|
$bad_var = strip_tags($bad_var);
|
|
}
|
|
$secure_var = mysqli_real_escape_string($GLOBALS['mysql_con'], $bad_var);
|
|
return $secure_var;
|
|
}
|
|
|
|
// Gibt die Dc-Einstellungen zurück
|
|
function setup_get() {
|
|
// satdnardwebsite auslesen. main_setup am 1.11.2014 geloescht
|
|
$setup = array();
|
|
$query = "SELECT id FROM main_site WHERE is_standard_site = 1 LIMIT 1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$row = @mysqli_fetch_array($result);
|
|
$setup['std_main_site_id'] = $row['id'];
|
|
return $setup;
|
|
}
|
|
|
|
// keine default website gefunden, also die erstbeste nehmen
|
|
$query = "SELECT id from main_site order by id asc limit 1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$row = @mysqli_fetch_array($result);
|
|
$setup['std_main_site_id'] = $row['id'];
|
|
return $setup;
|
|
}
|
|
|
|
/**
|
|
* Seets site-code in GET if not set
|
|
*/
|
|
function set_sitecode_get()
|
|
{
|
|
if(empty($_GET['site'])) {
|
|
$site = (isset($_GET["site"]) && $_GET["site"] <> '') ? site_getbycode($_GET["site"]) : site_getbyid($GLOBALS["setup"]["std_main_site_id"]);
|
|
$_GET['site'] = $site['code'];
|
|
}
|
|
}
|
|
|
|
|
|
// Gibt den Datensatz der aktuellen Frontend-Seite zurück
|
|
|
|
function site_getbycode( $sitecode ) {
|
|
$query = ($sitecode <> '') ? "SELECT * FROM main_site WHERE code = '" . $sitecode . "'" : "SELECT * FROM main_site LIMIT 0,1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
return @mysqli_fetch_array($result);
|
|
} else {
|
|
$setup = setup_get();
|
|
return site_getbyid($setup["std_main_site_id"]);
|
|
}
|
|
}
|
|
|
|
function site_getbyid( $siteid ) {
|
|
$query = ($siteid <> 0) ? "SELECT * FROM main_site WHERE id = '" . $siteid . "'" : "SELECT * FROM main_site LIMIT 0,1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
return @mysqli_fetch_array($result);
|
|
}
|
|
}
|
|
|
|
// Realisiert einen Seitenwechsel
|
|
function site_change() {
|
|
if (($_GET["change_site"]) | ($_POST["input_site_id"] <> '')) {
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_site WHERE id = '" . $_POST["input_site_id"]."'");
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$new_site = @mysqli_fetch_array($result);
|
|
$_GET["site"] = $new_site["code"];
|
|
}
|
|
}
|
|
}
|
|
|
|
// Gibt den Datensatz der aktuellen Frontend-Sprache zurück
|
|
function language_getbycode( $languagecode, $main_site_id ) {
|
|
$query = ($languagecode <> '') ? "SELECT * FROM main_language WHERE code = '" . $languagecode . "' AND main_site_id = '" . $main_site_id . "'" : "SELECT * FROM main_language LIMIT 0,1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
return @mysqli_fetch_array($result);
|
|
}
|
|
}
|
|
|
|
function language_getbyid( $languageid ) {
|
|
$query = ($languageid <> 0) ? "SELECT * FROM main_language WHERE id = '" . $languageid . "'" : "SELECT * FROM main_language LIMIT 0,1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
return @mysqli_fetch_array($result);
|
|
}
|
|
}
|
|
|
|
// Realisiert den Wechsel der Sprache
|
|
function language_change() {
|
|
if (isset($_GET["change_language"]) && ($_GET["change_language"] <> '')) {
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_language WHERE code = '" . $_POST["change_language"] . "'");
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$new_language = @mysqli_fetch_array($result);
|
|
$_GET["language"] = $new_language["code"];
|
|
}
|
|
}
|
|
}
|
|
|
|
// Sprachen Drop-Down
|
|
function language_frontend_select( $selectname = "input_language_id", $value = NULL, $disabled = FALSE ) {
|
|
$disabled_text = ($disabled) ? " disabled=\"disabled\"" : "";
|
|
echo "<select" . $disabled_text . " style=\"height:18px;\" name=\"" . $selectname . "\" id=\"" . $selectname . "\">";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_language");
|
|
if (mysqli_num_rows($result) > 0) {
|
|
while ($language = mysqli_fetch_array($result)) {
|
|
if ($language["id"] == $value) {
|
|
echo "<option selected=\"selected\" value=\"" . $language["id"] . "\">" . $language["name"] . "</option>";
|
|
} else {
|
|
echo "<option value=\"" . $language["id"] . "\">" . $language["name"] . "</option>";
|
|
}
|
|
}
|
|
} else {
|
|
echo "<option value=\"\"> - </option>";
|
|
}
|
|
echo "</select>";
|
|
}
|
|
|
|
// Gibt den Datenbankeintrag des aktuellen Layouts zurück
|
|
function layout_getbyid( $layoutid ) {
|
|
$query = "SELECT * FROM main_layout WHERE id = '" . $layoutid . "'";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$row = mysqli_fetch_array($result);
|
|
return $row;
|
|
}
|
|
|
|
function page_getbyid( $pageid ) {
|
|
$query = "SELECT * FROM main_page where id = '" . (int)$pageid."'";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$row = mysqli_fetch_array($result);
|
|
return $row;
|
|
}
|
|
|
|
// Gibt den Datenbankeintrag des aktuellen Menübereichs zurück
|
|
function navigation_get( $site, $language ) {
|
|
$levelcode = "";
|
|
if (!empty($_GET["level_1"])) {
|
|
$levelcode = $_GET["level_1"];
|
|
}
|
|
if (!empty($_GET["level_2"])) {
|
|
$levelcode = $_GET["level_2"];
|
|
}
|
|
if (!empty($_GET["level_3"])) {
|
|
$levelcode = $_GET["level_3"];
|
|
}
|
|
if (!empty($_GET["level_4"])) {
|
|
$levelcode = $_GET["level_4"];
|
|
}
|
|
if (!empty($_GET["level_5"])) {
|
|
$levelcode = $_GET["level_5"];
|
|
}
|
|
if ($levelcode == "") {
|
|
$navigation = navigation_getbyid($language["std_main_navigation_id"]);
|
|
} else {
|
|
$query = "SELECT * FROM main_navigation WHERE main_site_id = " . $site["id"] . " AND main_language_id = " . $language["id"] . " AND code = '" . $levelcode . "'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$navigation = @mysqli_fetch_array($result);
|
|
} else {
|
|
$navigation = navigation_getbyid($language["std_main_navigation_id"]);
|
|
}
|
|
}
|
|
//$navigation = navigation_get_rek($navigation);
|
|
$i = 5;
|
|
while ($i > $navigation["level"]) {
|
|
$_GET["level_" . $i] = "";
|
|
$i--;
|
|
}
|
|
set_navigation_level_vars_rek($navigation);
|
|
return $navigation;
|
|
}
|
|
|
|
function navigation_get_rek( $navigation ) {
|
|
if (($navigation["forward_type"] == 2) && ($navigation["forward_navigation_id"] <> '')) {
|
|
$query = "SELECT * FROM main_navigation WHERE id = '" . $navigation["forward_navigation_id"] . "'";
|
|
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$navigation_temp = @mysqli_fetch_array($result);
|
|
return navigation_get_rek($navigation_temp);
|
|
}
|
|
} else {
|
|
return $navigation;
|
|
}
|
|
}
|
|
|
|
// Fälscht Navigationsvariablen für Weiterleitung
|
|
function set_navigation_level_vars_rek( $navigation ) {
|
|
$_GET["level_" . $navigation["level"]] = $navigation["code"];
|
|
if ($navigation["level"] > 1) {
|
|
$query = "SELECT * FROM main_navigation WHERE id = " . $navigation["parent_id"];
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$temp_navigation = @mysqli_fetch_array($result);
|
|
set_navigation_level_vars_rek($temp_navigation);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Gib den Datensatz einer Navigationsebene zurück
|
|
function navigation_getbyid( $navigationid ) {
|
|
$query = "SELECT * FROM main_navigation WHERE id = '" . $navigationid . "'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
return @mysqli_fetch_array($result);
|
|
}
|
|
}
|
|
|
|
function navigation_getbycode( $code, $site = '', $language = '' ) {
|
|
if ($site == '') {
|
|
$site = $GLOBALS["site"];
|
|
}
|
|
if ($language == '') {
|
|
$language = $GLOBALS["language"];
|
|
}
|
|
$query = "SELECT * FROM main_navigation WHERE main_site_id = '" . $site["id"] . "' AND main_language_id = '" . $language["id"] . "' AND code = '" . $code . "'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
return @mysqli_fetch_array($result);
|
|
}
|
|
}
|
|
|
|
// Titel der Seite zusammenstellen
|
|
function site_title( $language, $navigation ) {
|
|
if ($_GET["card"] != '') {
|
|
$item = get_item_by_card_id($GLOBALS["shop"]["company"], $GLOBALS["shop"]["code"], $language["code"], $_GET["card"]);
|
|
if (strlen($item["site_title"]) > 0) {
|
|
$title = $item["site_title"] . " | " . $GLOBALS["language"]["site_title_name"];
|
|
} else {
|
|
$title = $item["description"] . " | " . $GLOBALS["language"]["site_title_name"];
|
|
}
|
|
} else {
|
|
if ($_GET['shop_category'] == 'search') {
|
|
$title = $GLOBALS["tc"]["search"] . " | ";
|
|
} elseif ($_GET['shop_category'] == 'order') {
|
|
$title = $GLOBALS["tc"]["order"] . " | ";
|
|
} elseif ($_GET['shop_category'] == 'basket') {
|
|
$title = $GLOBALS["tc"]["shopping_basket"] . " | ";
|
|
} elseif ($GLOBALS["category"]["site_titel"] == '') {
|
|
if ($GLOBALS["category"]["name"] != '') {
|
|
$title = $GLOBALS["category"]["name"] . " | ";
|
|
} elseif ($navigation["title_name"] <> '') {
|
|
$title = $navigation["title_name"] . " | ";
|
|
}
|
|
} else {
|
|
$title = $GLOBALS["category"]["site_titel"] . " | ";
|
|
}
|
|
$title .= $GLOBALS['language']["site_title_name"];
|
|
}
|
|
return $title;
|
|
}
|
|
|
|
//Canonical infos füllen
|
|
function get_canonical() {
|
|
$url = $_SERVER["SERVER_NAME"] . $_SERVER["REDIRECT_URL"];
|
|
$domain = $_SERVER["SERVER_NAME"];
|
|
//Sonderseiten
|
|
switch ($_GET['shop_category']) {
|
|
case "search":
|
|
$path = "<link rel=\"canonical\" href=\"" . $url . "?shop_category=search\" />";
|
|
break;
|
|
case "order":
|
|
$path = "<link rel=\"canonical\" href=\"" . $url . "?shop_category=order\" />";
|
|
break;
|
|
case "basket":
|
|
$path = "<link rel=\"canonical\" href=\"" . $url . "?shop_category=basket\" />";
|
|
break;
|
|
case "account":
|
|
$path = "<link rel=\"canonical\" href=\"" . $url . "?shop_category=account\" />";
|
|
break;
|
|
case "favorites":
|
|
$path = "<link rel=\"canonical\" href=\"" . $url . "?shop_category=favorites\" />";
|
|
break;
|
|
}
|
|
//Weiterleitungen
|
|
$query = "SELECT * FROM main_navigation WHERE id = '" . $GLOBALS['navigation']['id'] . "'";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$row = mysqli_fetch_object($result);
|
|
$main_site_id = $row->main_site_id;
|
|
$main_language_id = $row->main_language_id;
|
|
// Wird später durch parent_id überschrieben
|
|
$parent_id = $row->parent_id;
|
|
$forward = $row->forward;
|
|
if ($forward) {
|
|
$parent_id = $row->forward_navigation_id;
|
|
}
|
|
$code = $row->code;
|
|
//prüft ob shop, falls nicht > weiterleitungscanonical
|
|
if ($code != 'shop') {
|
|
$path = NULL;
|
|
while ($parent_id != NULL) {
|
|
$query_2 = "SELECT * FROM main_navigation WHERE id = '" . $parent_id . "'";
|
|
|
|
$result_2 = mysqli_query($GLOBALS['mysql_con'], $query_2);
|
|
$parent_id = '0';
|
|
while ($row = mysqli_fetch_object($result_2)) {
|
|
if ($row->code != $code) {
|
|
$path = $row->code . "/" . $path;
|
|
}
|
|
if ($row->forward != "0") {
|
|
$path = "";
|
|
$parent_id = $row->forward_navigation_id;
|
|
} else {
|
|
$parent_id = $row->parent_id;
|
|
}
|
|
}
|
|
}
|
|
//canonical pfad erstellen
|
|
$path = $path . $code;
|
|
|
|
$path = "<link rel='canonical' href='https://" . $domain . "/" . $GLOBALS["site"]["code"] . "/" . $GLOBALS["language"]["code"] . "/" . $path . "/'/>";
|
|
} else {
|
|
//Artikelliste ohne Sortieroption
|
|
if (isset($GLOBALS["category"]["id"]) || isset($_GET['card'])) {
|
|
if (!isset($_GET['page'])) {
|
|
$page = 1;
|
|
} else {
|
|
$page = $_GET['page'];
|
|
}
|
|
if (!isset($_GET['card'])) {
|
|
$path = '<link rel="canonical" href="https://' . $_SERVER["SERVER_NAME"] . $_SERVER["REDIRECT_URL"] . '"/>';
|
|
} else {
|
|
$card = $_GET['card'];
|
|
|
|
$urlend = $_SERVER["REQUEST_URI"];
|
|
$urlend = explode("?", $urlend);
|
|
$urlmiddle = $urlend[0];
|
|
$canonical = "";
|
|
IF ($_GET['card'] != '') {
|
|
$itemquery = "SELECT * FROM shop_item WHERE id='" . $_GET["card"]."'";
|
|
$itemresult = @mysqli_query($GLOBALS['mysql_con'], $itemquery);
|
|
$item = @mysqli_fetch_assoc($itemresult);
|
|
if (strlen($item["parent_item_no"]) > 0) {
|
|
$parentitemquery = "SELECT * FROM shop_item WHERE company='" . $GLOBALS["shop"]["company"] . "' AND shop_code='" . $GLOBALS["shop"]["item_source"] . "' AND language_code='" . $GLOBALS["shop_language"]["code"] . "' AND item_no='" . $item["parent_item_no"] . "'";
|
|
$parentitemresult = @mysqli_query($GLOBALS['mysql_con'], $parentitemquery);
|
|
$parent_item = @mysqli_fetch_assoc($parentitemresult);
|
|
} else {
|
|
$parent_item = $item;
|
|
}
|
|
IF ($parent_item['id'] == '' || $parent_item['id'] == $item['id']) {
|
|
$canonical_card_id = $item['id'];
|
|
IF ($item['main_category_line_no'] <> 0) {
|
|
$cat_query = "SELECT code, name, parent_line_no AS plo FROM shop_category
|
|
WHERE line_no = '" . $item['main_category_line_no'] . "'
|
|
AND company = '". $GLOBALS["shop"]["company"] ."'
|
|
AND shop_code = '". $GLOBALS["shop"]["category_source"] ."'
|
|
AND language_code = '". $GLOBALS["shop_language"]["code"] ."'";
|
|
} ELSE {
|
|
$cat_query = "SELECT code, name, parent_line_no AS plo FROM shop_category
|
|
WHERE line_no =
|
|
(SELECT category_line_no FROM shop_item_has_category
|
|
WHERE item_no = '" . $item['item_no'] . "'
|
|
AND company = '". $GLOBALS["shop"]["company"] ."'
|
|
AND shop_code = '". $GLOBALS["shop"]["item_source"] ."'
|
|
AND language_code = '". $GLOBALS["shop_language"]["code"] ."'
|
|
GROUP BY category_line_no ORDER BY category_line_no ASC LIMIT 1)
|
|
AND company = '". $GLOBALS["shop"]["company"] ."'
|
|
AND shop_code = '". $GLOBALS["shop"]["category_source"] ."'
|
|
AND language_code = '". $GLOBALS["shop_language"]["code"] ."'";
|
|
}
|
|
$cat_result = @mysqli_query($GLOBALS['mysql_con'], $cat_query);
|
|
$itemcategory = @mysqli_fetch_array($cat_result);
|
|
$caturl = array();
|
|
$seek = array('ä', 'ö', 'ü', 'ß','+', '*', ' ', '.', ',', '/', '\\', '"', "''", "'");
|
|
$replace = array('ae', 'oe', 'ue', 'ss','plus', '-', '-', '-', '-', '', '', '"', '"', '');
|
|
$caturl[0] = str_replace($seek, $replace, $itemcategory["code"]);
|
|
$caturl[0] = htmlspecialchars($caturl[0], ENT_QUOTES, "UTF-8");
|
|
$caturl[0] = $caturl[0] . "/";
|
|
$i = 1;
|
|
WHILE ($itemcategory['plo'] > 0) {
|
|
$cat_query_rek = "SELECT code, name, parent_line_no AS plo
|
|
FROM shop_category
|
|
WHERE line_no = '" . $itemcategory['plo'] . "'
|
|
AND company = '". $GLOBALS["shop"]["company"] ."'
|
|
AND shop_code = '". $GLOBALS["shop"]["category_source"] ."'
|
|
AND language_code = '". $GLOBALS["shop_language"]["code"] ."'";
|
|
$cat_res_rek = @mysqli_query($GLOBALS['mysql_con'], $cat_query_rek);
|
|
$itemcategory = @mysqli_fetch_array($cat_res_rek);
|
|
IF ($itemcategory['name'] != '') {
|
|
$seek = array('ä', 'ö', 'ü', 'ß','+', '*', ' ', '.', ',', '/', '\\', '"', "''", "'");
|
|
$replace = array('ae', 'oe', 'ue', 'ss','plus', '-', '-', '-', '-', '', '', '"', '"', '');
|
|
$caturl[$i] = str_replace($seek, $replace, $itemcategory["code"]);
|
|
$caturl[$i] = htmlspecialchars($caturl[$i], ENT_QUOTES, "UTF-8");
|
|
$caturl[$i] = $caturl[$i] . "/";
|
|
} ELSE {
|
|
$caturl[$i] = '';
|
|
}
|
|
$i++;
|
|
}
|
|
$catstring = "";
|
|
DO {
|
|
$catstring .= $caturl[$i];
|
|
$i--;
|
|
} WHILE ($i >= 0);
|
|
$seek = array('ä', 'ö', 'ü', 'ß','+', '*', ' ', '.', ',', '/', '\\', '"', "''", "'");
|
|
$replace = array('ae', 'oe', 'ue', 'ss','plus', '-', '-', '-', '-', '', '', '"', '"', '');
|
|
$itemdescription = str_replace($seek, $replace, $item["description"]);
|
|
$itemdescription = htmlspecialchars($itemdescription, ENT_QUOTES, "UTF-8");
|
|
$itemdescription = str_replace("Â", "", $itemdescription);
|
|
$itemdescription = str_replace("â", "", $itemdescription);
|
|
$itemdescription = trim($itemdescription, "+");
|
|
$base_string = "https://" . $_SERVER["SERVER_NAME"] . "/";
|
|
$request_string = $GLOBALS['site']['code'] . "/" . $GLOBALS['language']['code'] . "/shop/" . $catstring . $itemdescription . "/?card=" . $canonical_card_id;
|
|
$request_string = str_replace("//", "/", $request_string);
|
|
$canonical = $base_string . $request_string;
|
|
$canonical = str_replace(" ", "-", $canonical);
|
|
$canonical = str_replace("--", "-", $canonical);
|
|
} else {
|
|
$canonical_card_id = $parent_item["id"];
|
|
IF ($parent_item['main_category_line_no'] <> 0) {
|
|
$cat_query = "SELECT code, name, parent_line_no AS plo FROM shop_category
|
|
WHERE line_no = '" . $parent_item['main_category_line_no'] . "'
|
|
AND company = '". $GLOBALS["shop"]["company"] ."'
|
|
AND shop_code = '". $GLOBALS["shop"]["category_source"] ."'
|
|
AND language_code = '". $GLOBALS["shop_language"]["code"] ."'";
|
|
} ELSE {
|
|
$cat_query = "SELECT code, name, parent_line_no AS plo FROM shop_category
|
|
WHERE line_no =
|
|
(SELECT category_line_no FROM shop_item_has_category
|
|
WHERE item_no = '" . $parent_item['item_no'] . "'
|
|
AND company = '". $GLOBALS["shop"]["company"] ."'
|
|
AND shop_code = '". $GLOBALS["shop"]["item_source"] ."'
|
|
AND language_code = '". $GLOBALS["shop_language"]["code"] ."'
|
|
GROUP BY category_line_no ORDER BY category_line_no ASC LIMIT 1)
|
|
AND company = '". $GLOBALS["shop"]["company"] ."'
|
|
AND shop_code = '". $GLOBALS["shop"]["category_source"] ."'
|
|
AND language_code = '". $GLOBALS["shop_language"]["code"] ."'";
|
|
}
|
|
$cat_result = @mysqli_query($GLOBALS['mysql_con'], $cat_query);
|
|
$itemcategory = @mysqli_fetch_array($cat_result);
|
|
$caturl = array();
|
|
IF ($itemcategory['code'] != '') {
|
|
$seek = array('ä', 'ö', 'ü', 'ß','+', '*', ' ', '.', ',', '/', '\\', '"', "''", "'");
|
|
$replace = array('ae', 'oe', 'ue', 'ss','plus', '-', '-', '-', '-', '', '', '"', '"', '');
|
|
$caturl[0] = str_replace($seek, $replace, $itemcategory["code"]);
|
|
$caturl[0] = htmlspecialchars($caturl[0], ENT_QUOTES, "UTF-8");
|
|
$caturl[0] = $caturl[0] . "/";
|
|
} ELSE {
|
|
$caturl[0] = '';
|
|
}
|
|
$i = 1;
|
|
WHILE ($itemcategory['plo'] > 0) {
|
|
$cat_query_rek = "SELECT code, name, parent_line_no AS plo
|
|
FROM shop_category
|
|
WHERE line_no = '" . $itemcategory['plo'] . "'
|
|
AND company = '". $GLOBALS["shop"]["company"] ."'
|
|
AND shop_code = '". $GLOBALS["shop"]["category_source"] ."'
|
|
AND language_code = '". $GLOBALS["shop_language"]["code"] ."'";
|
|
$cat_res_rek = @mysqli_query($GLOBALS['mysql_con'], $cat_query_rek);
|
|
$itemcategory = @mysqli_fetch_array($cat_res_rek);
|
|
IF ($itemcategory['name'] != '') {
|
|
$seek = array('ä', 'ö', 'ü', 'ß','+', '*', ' ', '.', ',', '/', '\\', '"', "''", "'");
|
|
$replace = array('ae', 'oe', 'ue', 'ss','plus', '-', '-', '-', '-', '', '', '"', '"', '');
|
|
$caturl[$i] = str_replace($seek, $replace, $itemcategory["code"]);
|
|
$caturl[$i] = htmlspecialchars($caturl[$i], ENT_QUOTES, "UTF-8");
|
|
$caturl[$i] = $caturl[$i] . "/";
|
|
} ELSE {
|
|
$caturl[$i] = '';
|
|
}
|
|
$i++;
|
|
}
|
|
$catstring = "";
|
|
DO {
|
|
$catstring .= $caturl[$i];
|
|
$i--;
|
|
} WHILE ($i >= 0);
|
|
$seek = array('ä', 'ö', 'ü', 'ß','+', '*', ' ', '.', '/', '\\', '%', ',', 'Ø', 'Ã', 'ø', 'ã', 'Õ', 'õ', '"', "''", "'");
|
|
$replace = array('ae', 'oe', 'ue', 'ss','plus', '-', '-', '-', '', '', 'proz', '+', 'Ø', 'Ã', 'ø', 'ã', 'Õ', 'õ', '"', '"', '');
|
|
$itemdescription = str_replace($seek, $replace, $item["description"]);
|
|
$itemdescription = htmlspecialchars($itemdescription, ENT_QUOTES, "UTF-8");
|
|
$itemdescription = str_replace("Â", "", $itemdescription);
|
|
$itemdescription = str_replace("â", "", $itemdescription);
|
|
$itemdescription = trim($itemdescription, "+");
|
|
$base_string = "https://" . $_SERVER["SERVER_NAME"] . "/";
|
|
$request_string = $GLOBALS['site']['code'] . "/" . $GLOBALS['language']['code'] . "/shop/" . $catstring . $itemdescription . "/?card=" . $canonical_card_id;
|
|
$request_string = str_replace("//", "/", $request_string);
|
|
$canonical = $base_string . $request_string;
|
|
$canonical = str_replace(" ", "-", $canonical);
|
|
$canonical = str_replace("--", "-", $canonical);
|
|
}
|
|
}
|
|
$canonical = strtolower($canonical);
|
|
$path = '<link rel="canonical" href="' . $canonical . '"/>';
|
|
}
|
|
}
|
|
}
|
|
if ($path != $url) {
|
|
$path = strtolower($path);
|
|
return $path;
|
|
}
|
|
}
|
|
|
|
//Facebook meta daten Infos füllen
|
|
function get_fb_meta_info() {
|
|
$card_id = (int)$_GET['card'];
|
|
if (isset($card_id)) {
|
|
$query = "SELECT * FROM shop_item WHERE id = '" . $card_id . "'";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
while ($row = mysqli_fetch_object($result)) {
|
|
$item_no = $row->item_no;
|
|
$product_name = $row->description;
|
|
$company = $row->company;
|
|
$shop_code = $row->shop_code;
|
|
$shop_language_code = $row->language_code;
|
|
//image name füllen
|
|
$query_2 = "SELECT * FROM shop_item_file WHERE item_no = '" . $item_no . "' AND company = '$company' AND shop_code = '$shop_code' AND language_code = '$shop_language_code' LIMIT 1";
|
|
$result_2 = mysqli_query($GLOBALS['mysql_con'], $query_2);
|
|
while ($row_2 = mysqli_fetch_object($result_2)) {
|
|
$product_img = $row_2->filename;
|
|
}
|
|
//produkt beschreibung füllen
|
|
$query_3 = "SELECT * FROM shop_item_description WHERE item_no = '" . $item_no . "' AND company = '$company' AND shop_code = '$shop_code' AND language_code = '$shop_language_code' AND marketplace_only = 0 LIMIT 1";
|
|
$result_3 = mysqli_query($GLOBALS['mysql_con'], $query_3);
|
|
while ($row_3 = mysqli_fetch_object($result_3)) {
|
|
$product_description = $row_3->content;
|
|
}
|
|
}
|
|
$fb_meta_data = "<meta property='og:image' content='" . $_SERVER["SERVER_NAME"] . "/userdata/dcshop/images/thumb_2/" . $product_img . "'/>";
|
|
$fb_meta_data .= "<meta property='og:title' content='" . $product_name . "'/>";
|
|
$fb_meta_data .= "<meta property='og:url' content='" . $_SERVER["SERVER_NAME"] . $_SERVER["REDIRECT_URL"] . "?card=" . $card_id . "'/>";
|
|
$fb_meta_data .= "<meta property='og:description' content='" . $product_description . "'/>";
|
|
$fb_meta_data .= "<meta property='type' content='article'/>";
|
|
|
|
return $fb_meta_data;
|
|
}
|
|
}
|
|
|
|
//Bild erstellen
|
|
function get_image( $item ,$type = 1) {
|
|
$item_no = $item['item_no'];
|
|
$parent_item_no = $item["parent_item_no"];
|
|
//image name füllen
|
|
$query = "SELECT * FROM shop_item_file WHERE (item_no = '" . $item_no . "' OR item_no = '" . $parent_item_no . "') and customization = 0 LIMIT 1";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
while ($row = mysqli_fetch_object($result)) {
|
|
$product_img = $row->filename;
|
|
}
|
|
if ($product_img == '' || !file_exists("../../" . $GLOBALS["shop_setup"]["image_config"][$type]["path"] . "/" . $product_img)) {
|
|
if ($GLOBALS['shop_language']['item_placeholder_image'] != '') {
|
|
$product_img = $GLOBALS['shop_language']['item_placeholder_image'];
|
|
} else {
|
|
$product_img = "noimage.jpg";
|
|
}
|
|
}
|
|
//$fb_review_data .= "<div class='label_article_name'>".$product_name."</div>";
|
|
$image_link = "<div id='product_img'><img src='/userdata/dcshop/images/thumb_". $type . "/" . $product_img . "' /></div>";
|
|
return $image_link;
|
|
}
|
|
|
|
|
|
//Bild erstellen
|
|
function get_customization_image( $item ,$type = 1) {
|
|
$item_no = $item['item_no'];
|
|
$parent_item_no = $item["parent_item_no"];
|
|
//image name füllen
|
|
$query = "SELECT * FROM shop_item_file WHERE ( item_no = '" . $item_no . "' OR item_no = '" . $parent_item_no . "' ) and customization = 1 LIMIT 1";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if($result->num_rows == 0)
|
|
{
|
|
return get_image($item, $type);
|
|
}
|
|
|
|
while ($row = mysqli_fetch_object($result)) {
|
|
$product_img = $row->filename;
|
|
}
|
|
if ($product_img == '' || !file_exists("../../" . $GLOBALS["shop_setup"]["image_config"][$type]["path"] . "/" . $product_img)) {
|
|
if ($GLOBALS['shop_language']['item_placeholder_image'] != '') {
|
|
$product_img = $GLOBALS['shop_language']['item_placeholder_image'];
|
|
} else {
|
|
$product_img = "noimage.jpg";
|
|
}
|
|
}
|
|
//$fb_review_data .= "<div class='label_article_name'>".$product_name."</div>";
|
|
$image_link = "<div id='product_img'><img src='/userdata/dcshop/images/thumb_". $type . "/" . $product_img . "' /></div>";
|
|
return $image_link;
|
|
}
|
|
|
|
//Facebook meta daten review erstellen
|
|
function create_fb_review( $card_id, $url ) {
|
|
if (isset($card_id)) {
|
|
$query = "SELECT * FROM shop_item WHERE id = '" . $card_id . "'";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
while ($row = mysqli_fetch_object($result)) {
|
|
$item_no = $row->item_no;
|
|
$product_name = $row->description;
|
|
$product_description = $row->summary;
|
|
//image name füllen
|
|
$query_2 = "SELECT * FROM shop_item_file WHERE item_no = '" . $item_no . "' LIMIT 1";
|
|
$result_2 = mysqli_query($GLOBALS['mysql_con'], $query_2);
|
|
while ($row_2 = mysqli_fetch_object($result_2)) {
|
|
$product_img = $row_2->filename;
|
|
}
|
|
//produkt beschreibung füllen
|
|
//$query_3 = "SELECT * FROM shop_item_description WHERE item_no = '".$item_no."' LIMIT 1";
|
|
//$result_3 = mysqli_query($GLOBALS['mysql_con'],$query_3);
|
|
//while($row_3 = mysqli_fetch_object($result_3))
|
|
//{
|
|
// $product_description = $row_3->summary;
|
|
//}
|
|
}
|
|
//$fb_review_data .= "<div class='label_article_name'>".$product_name."</div>";
|
|
$fb_review_data .= "<div id='fb_product_img' class='modal-info-image'><img src='/userdata/dcshop/images/thumb_2/" . $product_img . "' /></div>";
|
|
//$fb_review_data .= "<div id='fb_product_url'><a href='?card=".$card_id."'>".$url."?card=".$card_id."</a></div>";
|
|
$fb_review_data .= "<div id='user_queue_order_text' class='modal-info-description'><div id='fb_product_name'><strong>" . $product_name . "</strong></div><div id='fb_product_description'>" . $product_description . "</div></div>";
|
|
|
|
|
|
return $fb_review_data;
|
|
}
|
|
}
|
|
|
|
function get_modal_infobox($item) {?>
|
|
<div class="modal-item-info">
|
|
<div class="row">
|
|
<div class="col-xs-12 col-sm-6">
|
|
<div class="modal-item-image">
|
|
<?= get_image($item,2) ?>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6">
|
|
<div class="modal-item-description">
|
|
<strong><?= $item['description'] ?></strong>
|
|
<br />
|
|
<?= $item['summary'] ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?
|
|
}
|
|
|
|
//Metadaten füllen, Übergabe per call-by-reference
|
|
function get_meta_data( $navigation, &$site_title, &$meta_keywords, &$meta_description, $is_shop = TRUE ) {
|
|
// Meta-Daten aus Sprache füllen
|
|
//$meta_description = $GLOBALS["language"]["meta_description"];
|
|
//$meta_keywords = $GLOBALS["language"]["meta_keywords"];
|
|
// Meta-Daten aus Navigation füllen
|
|
if ($navigation["menu_name"] <> '') {
|
|
$site_title = $navigation["menu_name"] . " | ";
|
|
}
|
|
if ($navigation["title_name"] <> '') {
|
|
$site_title = $navigation["title_name"] . " | ";
|
|
}
|
|
if ($navigation["meta_description"] <> '') {
|
|
$meta_description = $navigation["meta_description"];
|
|
}
|
|
if ($navigation["meta_keywords"] <> '') {
|
|
$meta_keywords = $navigation["meta_keywords"];
|
|
}
|
|
// Meta-Daten für News füllen
|
|
$query = "SELECT * FROM main_navigation_has_sitepart WHERE main_navigation_id = " . $navigation["id"] . " AND main_sitepart_id = 2 LIMIT 1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$navigation_has_sitepart = @mysqli_fetch_array($result);
|
|
if ($_GET["news" . $navigation_has_sitepart["id"]] <> '') {
|
|
$query = "SELECT * FROM news_entry WHERE id = " . $_GET["news" . $navigation_has_sitepart["id"]] . " LIMIT 1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$news = @mysqli_fetch_array($result);
|
|
if ($news["headline"] <> '') {
|
|
$site_title = $news["headline"] . " | ";
|
|
}
|
|
if ($news["summary"] <> '') {
|
|
$news["summary"] = str_replace("\n", "", $news["summary"]);
|
|
$news["summary"] = str_replace("\r", "", $news["summary"]);
|
|
$meta_description = $news["summary"];
|
|
}
|
|
if ($news["meta_keywords"] <> '') {
|
|
$meta_keywords = $news["meta_keywords"];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//Metadaten nur für Shop
|
|
if ($is_shop) {
|
|
//Sonderkategorien
|
|
if ($_GET['shop_category'] == 'search') {
|
|
$site_title = $GLOBALS["tc"]["search"] . " | ";
|
|
$meta_description = '';
|
|
$meta_keywords = '';
|
|
} elseif ($_GET['shop_category'] == 'order') {
|
|
$site_title = $GLOBALS["tc"]["order"] . " | ";
|
|
$meta_description = '';
|
|
$meta_keywords = '';
|
|
} elseif ($_GET['shop_category'] == 'basket') {
|
|
$site_title = $GLOBALS["tc"]["shopping_basket"] . " | ";
|
|
$meta_description = '';
|
|
$meta_keywords = '';
|
|
} elseif ($_GET['shop_category'] == 'account') {
|
|
$site_title = $GLOBALS["tc"]["my_account"] . " | ";
|
|
$meta_description = '';
|
|
$meta_keywords = '';
|
|
} elseif ($_GET['shop_category'] == 'favorites') {
|
|
if ($GLOBALS["shop"]["shop_typ"] == 1) {
|
|
$site_title = $GLOBALS["tc"]["favorites"];
|
|
} else {
|
|
$site_title = $GLOBALS["tc"]["favorites_b2b"];
|
|
}
|
|
$meta_description = '';
|
|
$meta_keywords = '';
|
|
} else {
|
|
//Artikelkategorie oder Artikelkarte
|
|
if ($GLOBALS['category'] != '') {
|
|
if ($GLOBALS["category"]["site_titel"] != '') {
|
|
$site_title = $GLOBALS["category"]["site_titel"] . " | ";
|
|
} elseif ($GLOBALS["category"]["name"] != '') {
|
|
$site_title = $GLOBALS["category"]["name"] . " | ";
|
|
}
|
|
$meta_keywords = $GLOBALS["category"]["meta_keywords"];
|
|
$meta_description = ($GLOBALS["category"]["meta_description"] == '') ? $GLOBALS["category"]["category_description"] : $GLOBALS["category"]["meta_description"];
|
|
}
|
|
if ($_GET['card'] != '') {
|
|
if ($GLOBALS["item"]["site_title"] != "" || $GLOBALS["item"]["description"] != "") {
|
|
$site_title = ($GLOBALS["item"]["site_title"] == '') ? $GLOBALS["item"]["description"] . " | " : $GLOBALS["item"]["site_title"] . " | ";
|
|
}
|
|
if ($GLOBALS["item"]["meta_keywords"] != "" || $GLOBALS["item"]["search_query"] != "") {
|
|
$meta_keywords = ($GLOBALS["item"]["meta_keywords"] == '') ? $GLOBALS["item"]["search_query"] : $GLOBALS["item"]["meta_keywords"];
|
|
}
|
|
if ($GLOBALS["item"]["meta_description"] != "" || $GLOBALS["item"]["summary"] != "") {
|
|
$meta_description = ($GLOBALS["item"]["meta_description"] == '') ? $GLOBALS["item"]["summary"] : $GLOBALS["item"]["meta_description"];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Meta-Daten aus Sprache anfügen
|
|
$site_title .= $GLOBALS['language']["site_title_name"];
|
|
$meta_description .= substr(strip_tags($GLOBALS["language"]["meta_description"]), 0, 200);
|
|
$meta_keywords .= $GLOBALS["language"]["meta_keywords"];
|
|
}
|
|
|
|
// Gibt den Navigationspfad zurück
|
|
function curr_navigation_path( $site, $language, $navigation ) {
|
|
return curr_navigation_path_rek($site["code"], $language["code"], $navigation["parent_id"], '');
|
|
}
|
|
|
|
function curr_navigation_path_rek( $sitecode, $languagecode, $parent_id, $path ) {
|
|
if ($parent_id > 0) {
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_view_active_navigation WHERE id = '".$parent_id."'");
|
|
$nav = @mysqli_fetch_array($result);
|
|
switch ($nav["level"]) {
|
|
case 4:
|
|
$link = "/$sitecode/$languagecode/" . $_GET["level_1"] . "/" . $_GET["level_2"] . "/" . $_GET["level_3"] . "/" . $_GET["level4"] . "/";
|
|
break;
|
|
case 3:
|
|
$link = "/$sitecode/$languagecode/" . $_GET["level_1"] . "/" . $_GET["level_2"] . "/" . $_GET["level_3"] . "/";
|
|
break;
|
|
case 2:
|
|
$link = "/$sitecode/$languagecode/" . $_GET["level_1"] . "/" . $_GET["level_2"] . "/";
|
|
break;
|
|
case 1:
|
|
$link = "/$sitecode/$languagecode/" . $_GET["level_1"] . "/";
|
|
break;
|
|
}
|
|
$path = "<a href=\"$link\">" . htmlspecialchars($nav["menu_name"], ENT_QUOTES, "UTF-8") . "</a>" . $path;
|
|
$path = curr_navigation_path_rek($sitecode, $languagecode, $nav["parent_id"], $path);
|
|
}
|
|
return $path;
|
|
}
|
|
|
|
|
|
//TF: 18.09.13 für Breadcrumb redaktionell, von NBM kopiert
|
|
function cust_curr_navigation_path( $site, $language, $navigation ) {
|
|
if ((int)$navigation['id'] <> (int)$language['std_main_navigation_id'] && !isset($_GET['collection_id'])) {
|
|
return '<div class="breadcrumb"><span><a href="/' . $GLOBALS["site"]["code"] . '/' . $GLOBALS["language"]["code"] . '/">' . $GLOBALS["tc"]["homepage"] . '</a>' . cust_curr_navigation_path_rek($site["code"], $language["code"], $navigation["parent_id"], '') . " <i class=\"fa fa-angle-right\" aria-hidden=\"true\"></i> <span class='current'>" . $navigation["menu_name"] . '</span></span></div>';
|
|
} elseif(isset($_GET['collection_id'])) {
|
|
switch ($navigation["level"]) {
|
|
case 4:
|
|
$link = "/".$GLOBALS["site"]["code"]."/".$GLOBALS["language"]["code"]."/" . $_GET["level_1"] . "/" . $_GET["level_2"] . "/" . $_GET["level_3"] . "/" . $_GET["level4"] . "/";
|
|
break;
|
|
case 3:
|
|
$link = "/".$GLOBALS["site"]["code"]."/".$GLOBALS["language"]["code"]."/" . $_GET["level_1"] . "/" . $_GET["level_2"] . "/" . $_GET["level_3"] . "/";
|
|
break;
|
|
case 2:
|
|
$link = "/".$GLOBALS["site"]["code"]."/".$GLOBALS["language"]["code"]."/" . $_GET["level_1"] . "/" . $_GET["level_2"] . "/";
|
|
break;
|
|
case 1:
|
|
$link = "/".$GLOBALS["site"]["code"]."/".$GLOBALS["language"]["code"]."/" . $_GET["level_1"] . "/";
|
|
break;
|
|
}
|
|
|
|
$IOCContainer = $GLOBALS['IOC'];
|
|
$pdo = $IOCContainer->create('DynCom\mysyde\common\classes\PDOQueryWrapper');
|
|
|
|
$collectionID = filter_var($_GET['collection_id'],FILTER_SANITIZE_NUMBER_INT);
|
|
|
|
$prepStatement = "
|
|
SELECT
|
|
*
|
|
FROM main_collection
|
|
WHERE id = :collectionId
|
|
";
|
|
$params = [
|
|
[':collectionId', $collectionID, PDO::PARAM_INT],
|
|
];
|
|
$pdo->setQuery($prepStatement);
|
|
$pdo->prepareQuery();
|
|
$pdo->bindParameters($params);
|
|
$pdo->executePreparedStatement();
|
|
$resultArray = $pdo->getResultArray();
|
|
|
|
if (count($resultArray) == 1) {
|
|
return '<div class="breadcrumb">
|
|
<span><a href="/' . $GLOBALS["site"]["code"] . '/' . $GLOBALS["language"]["code"] . '/">' . $GLOBALS["tc"]["homepage"] . '</a>'
|
|
. cust_curr_navigation_path_rek($site["code"], $language["code"], $navigation["parent_id"], '')
|
|
. " <i class=\"fa fa-angle-right\" aria-hidden=\"true\"></i> <a href=\"".$link."\"><span>" . $navigation["menu_name"] . '</span></a>
|
|
<i class="fa fa-angle-right" aria-hidden="true"></i> <span class=\'current\'>'.$resultArray[0]["description"].'</span>
|
|
</span></div>';
|
|
} else {
|
|
return '<div class="breadcrumb"><span><a href="/' . $GLOBALS["site"]["code"] . '/' . $GLOBALS["language"]["code"] . '/">' . $GLOBALS["tc"]["homepage"] . '</a>' . cust_curr_navigation_path_rek($site["code"], $language["code"], $navigation["parent_id"], '') . " <i class=\"fa fa-angle-right\" aria-hidden=\"true\"></i> <span class='current'>" . $navigation["menu_name"] . '</span></span></div>';
|
|
}
|
|
|
|
|
|
} else {
|
|
return '<div class="breadcrumb"><span><a href="/' . $GLOBALS["site"]["code"] . '/' . $GLOBALS["language"]["code"] . '/">' . $GLOBALS["tc"]["homepage"] . '</a></span></div>';
|
|
}
|
|
}
|
|
|
|
function cust_curr_navigation_path_rek( $sitecode, $languagecode, $parent_id, $path ) {
|
|
if ($parent_id > 0) {
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_view_active_navigation WHERE id = '".$parent_id."'");
|
|
$nav = @mysqli_fetch_array($result);
|
|
switch ($nav["level"]) {
|
|
case 4:
|
|
$link = "/$sitecode/$languagecode/" . $_GET["level_1"] . "/" . $_GET["level_2"] . "/" . $_GET["level_3"] . "/" . $_GET["level4"] . "/";
|
|
break;
|
|
case 3:
|
|
$link = "/$sitecode/$languagecode/" . $_GET["level_1"] . "/" . $_GET["level_2"] . "/" . $_GET["level_3"] . "/";
|
|
break;
|
|
case 2:
|
|
$link = "/$sitecode/$languagecode/" . $_GET["level_1"] . "/" . $_GET["level_2"] . "/";
|
|
break;
|
|
case 1:
|
|
$link = "/$sitecode/$languagecode/" . $_GET["level_1"] . "/";
|
|
break;
|
|
}
|
|
if ($nav["level"] > 1) {
|
|
$path = " <i class=\"fa fa-angle-right\" aria-hidden=\"true\"></i> <a href=\"$link\">" . htmlspecialchars($nav["menu_name"], ENT_QUOTES, "UTF-8") . "</a>" . $path;
|
|
}
|
|
$path = cust_curr_navigation_path_rek($sitecode, $languagecode, $nav["parent_id"], $path);
|
|
}
|
|
return $path;
|
|
}
|
|
|
|
|
|
function navigation_path( $site, $language, $navigation ) {
|
|
return "/" . $site["code"] . "/" . $language["code"] . "/" . navigation_path_rek($navigation["id"], '');
|
|
}
|
|
|
|
function navigation_path_rek( $navigationid, $path ) {
|
|
if ($navigationid <> '') {
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_navigation WHERE id = '" . $navigationid."'");
|
|
$nav = @mysqli_fetch_array($result);
|
|
$path = $nav["code"] . "/" . $path;
|
|
if ($nav["level"] > 0) {
|
|
$path = navigation_path_rek($nav["parent_id"], $path);
|
|
}
|
|
}
|
|
return $path;
|
|
}
|
|
|
|
// Gibt den Link auf die Seite auf der das mitgegebene Sitepart vorkommt zurück
|
|
function get_link_to_sitepart( $sitepartid ) {
|
|
$query = "SELECT * FROM main_navigation_has_sitepart WHERE id = '" . $sitepartid."'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$sitepart = @mysqli_fetch_array($result);
|
|
$link = get_link_to_navigation($sitepart["main_navigation_id"]);
|
|
}
|
|
return $link;
|
|
}
|
|
|
|
// Gibt den Link auf eine Navigationsebene zurück
|
|
function get_link_to_navigation( $navigation_id ) {
|
|
$query = "SELECT * FROM main_navigation WHERE id = '" . $navigation_id."'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$navigation = @mysqli_fetch_array($result);
|
|
$link = navigation_path($GLOBALS["site"], $GLOBALS["language"], $navigation);
|
|
}
|
|
return $link;
|
|
}
|
|
|
|
// Funktionen zur Menüdarstellung
|
|
// fullmenu Stellt das gesamte aufgeklappte Menü dar, menu stellt das bis zur aktuell gewählten Ebene aufgeklappte Menü dar, menu_area startet auf einem beliebigen Navigationseintrag
|
|
function navigation_full_menu( $site, $language, $navigation, $from_level, $to_level ) {
|
|
navigation_fullmenu_rek($site, $language, $navigation, 0, 1, "", $from_level, $to_level);
|
|
echo "\n";
|
|
return TRUE;
|
|
}
|
|
|
|
function navigation_menu( $site, $language, $navigation, $from_level, $to_level ) {
|
|
navigation_menu_rek($site, $language, $navigation, 0, 1, "", $from_level, $to_level);
|
|
echo "\n";
|
|
return TRUE;
|
|
}
|
|
|
|
function navigation_menu_area( $site, $language, $navigation_code, $to_level = 5 ) {
|
|
$navigation = navigation_getbycode($navigation_code);
|
|
$parent_id = $navigation["id"];
|
|
$level = $navigation["level"] + 1;
|
|
$navcode = $navigation["code"] . "/";
|
|
navigation_menu_rek($site, $language, $navigation, $parent_id, $level, $navcode, 1, $to_level);
|
|
echo "\n";
|
|
return TRUE;
|
|
}
|
|
|
|
function navigation_full_menu_area( $site, $language, $navigation_code, $to_level = 5 ) {
|
|
$navigation = navigation_getbycode($navigation_code);
|
|
$parent_id = "";
|
|
$level = 1;
|
|
$navcode = "";
|
|
if (!is_null($navigation)) {
|
|
$parent_id = $navigation["id"];
|
|
$level = $navigation["level"] + 1;
|
|
$navcode = $navigation["code"] . "/";
|
|
}
|
|
navigation_fullmenu_rek($site, $language, $navigation, $parent_id, $level, $navcode, 1, $to_level);
|
|
echo "\n";
|
|
return TRUE;
|
|
}
|
|
|
|
function navigation_fullmenu_rek( $site, $language, $navigation, $parent_id, $level, $navcode, $from_level, $to_level ) {
|
|
switch ($level) {
|
|
case 1:
|
|
$levelcode = $_GET["level_1"];
|
|
break;
|
|
case 2:
|
|
$levelcode = $_GET["level_2"];
|
|
break;
|
|
case 3:
|
|
$levelcode = $_GET["level_3"];
|
|
break;
|
|
case 4:
|
|
$levelcode = $_GET["level_4"];
|
|
break;
|
|
case 5:
|
|
$levelcode = $_GET["level_5"];
|
|
break;
|
|
}
|
|
$spaces = " ";
|
|
while ($count <= $level) {
|
|
$spaces .= " ";
|
|
$count++;
|
|
}
|
|
$parent_id_query = ($parent_id == 0) ? " AND parent_id IS NULL" : " AND parent_id = '" . (int)$parent_id."'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_view_active_navigation WHERE main_site_id = '" . (int)$site["id"] . "' AND main_language_id = '" . (int)$language["id"]."'" . $parent_id_query . " ORDER BY sorting ASC");
|
|
$show_level = (($level >= $from_level) && ($level <= $to_level)) ? TRUE : FALSE;
|
|
if (@mysqli_num_rows($result) > 0) {
|
|
$show_main_level = $show_level;
|
|
if ($show_main_level) {
|
|
echo "\n" . $spaces . "<ul class=\"level_$level\">";
|
|
}
|
|
while ($nav = @mysqli_fetch_array($result)) {
|
|
if (($nav["code"] == 'Infos') & ($to_level == 1)) {
|
|
$show_level = FALSE;
|
|
}
|
|
$newnavcode = $navcode . $nav["code"] . "/";
|
|
$active = "";
|
|
if ($nav["code"] == $levelcode) {
|
|
$active = "class=\"active_tree\" ";
|
|
}
|
|
if ($nav["code"] == $navigation["code"]) {
|
|
$active = "class=\"active\" ";
|
|
}
|
|
if ($show_level) {
|
|
$addr = "/" . $site["code"] . "/" . $language["code"] . "/" . $newnavcode;
|
|
$addr = str_replace('//','/',$addr);
|
|
echo "\n" . $spaces . " <li class=\"level_$level\"><a " . $active . "href=\"" . $addr."\">" . $nav["menu_name"] . "</a>";
|
|
}
|
|
navigation_fullmenu_rek($site, $language, $navigation, $nav["id"], ($level + 1), $newnavcode, $from_level, $to_level);
|
|
if ($show_level) {
|
|
echo "</li>";
|
|
}
|
|
}
|
|
if ($show_main_level) {
|
|
echo "\n" . $spaces . "</ul>";
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
function navigation_menu_rek( $site, $language, $navigation, $parent_id, $level, $navcode, $from_level, $to_level ) {
|
|
|
|
switch ($level) {
|
|
case 1:
|
|
$levelcode = $_GET["level_1"];
|
|
break;
|
|
case 2:
|
|
$levelcode = $_GET["level_2"];
|
|
break;
|
|
case 3:
|
|
$levelcode = $_GET["level_3"];
|
|
break;
|
|
case 4:
|
|
$levelcode = $_GET["level_4"];
|
|
break;
|
|
case 5:
|
|
$levelcode = $_GET["level_5"];
|
|
break;
|
|
}
|
|
$spaces = "";
|
|
$count = 0;
|
|
while ($count <= $level) {
|
|
$spaces .= "";
|
|
$count++;
|
|
}
|
|
$parent_id_query = ($parent_id == 0) ? " AND parent_id IS NULL" : " AND parent_id = '" . $parent_id."'";
|
|
$query = "SELECT * FROM main_view_active_navigation WHERE main_site_id = '" . $site["id"] . "' AND main_language_id = '" . $language["id"]."'" . $parent_id_query . " ORDER BY sorting ASC";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$show_level = (($level >= $from_level) && ($level <= $to_level)) ? TRUE : FALSE;
|
|
if (@mysqli_num_rows($result) == 0) {
|
|
return;
|
|
}
|
|
|
|
$show_main_level = $show_level;
|
|
if ($show_main_level) {
|
|
echo "" . $spaces . "<ul class=\"level_$level\">";
|
|
}
|
|
while ($nav = @mysqli_fetch_array($result)) {
|
|
if ($nav["forward_type"] == 4) {
|
|
$show_level = FALSE;
|
|
} // platzhalter
|
|
$newnavcode = $navcode . $nav["code"] . "/";
|
|
$active = "";
|
|
if ($nav["code"] == $levelcode) {
|
|
$active = "class=\"active_tree\" ";
|
|
}
|
|
if ($nav["code"] == $navigation["code"]) {
|
|
$active = "class=\"active\" ";
|
|
}
|
|
|
|
$target = "";
|
|
$href = "/" . $site["code"] . "/" . $language["code"] . "/$newnavcode";
|
|
if ($nav["forward_type"] == 3) {
|
|
$target = 'target="_blank"';
|
|
//$href = $nav['forward_url'];
|
|
}
|
|
|
|
if ($show_level) {
|
|
echo "" . $spaces . "<li class=\"level_$level\"><a " . $target . " " . $active . "href=\"" . $href . "\">" . $nav["menu_name"] . "</a>";
|
|
}
|
|
if ($nav["code"] == $levelcode) {
|
|
navigation_menu_rek($site, $language, $navigation, $nav["id"], ($level + 1), $newnavcode, $from_level, $to_level);
|
|
}
|
|
if ($show_level) {
|
|
echo "</li>";
|
|
}
|
|
$show_level = (($level >= $from_level) && ($level <= $to_level)) ? TRUE : FALSE;
|
|
$count++;
|
|
}
|
|
if ($show_main_level) {
|
|
echo "" . $spaces . "</ul>";
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
// Erzeugt XML-Sitemap für Suchmaschinen
|
|
function navigation_xmlsitemap( $site, $language, $navigation_code, $to_level = 5 ) {
|
|
$navigation = navigation_getbycode($navigation_code);
|
|
$parent_id = $navigation["id"];
|
|
$level = $navigation["level"] + 1;
|
|
$navcode = $navigation["code"] . "/";
|
|
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
|
|
echo "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">";
|
|
navigation_fullmenu_rek($site, $language, $navigation, $parent_id, $level, $navcode, 1, $to_level);
|
|
echo "\n";
|
|
return TRUE;
|
|
}
|
|
|
|
function navigation_xmlsitemap_rek( $site, $language, $navigation, $parent_id, $level, $navcode, $from_level, $to_level ) {
|
|
$spaces = " ";
|
|
while ($count <= $level) {
|
|
$spaces .= " ";
|
|
$count++;
|
|
}
|
|
$parent_id_query = ($parent_id == 0) ? " AND parent_id IS NULL" : " AND parent_id = '" . $parent_id."'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_view_active_navigation WHERE main_site_id = '" . $site["id"] . "' AND main_language_id = " . $language["id"] . $parent_id_query . " ORDER BY sorting ASC");
|
|
$show_level = (($level >= $from_level) && ($level <= $to_level)) ? TRUE : FALSE;
|
|
if (@mysqli_num_rows($result) > 0) {
|
|
if ($show_level) {
|
|
echo "\n" . $spaces . "<ul class=\"level_$level\">";
|
|
}
|
|
while ($nav = @mysqli_fetch_array($result)) {
|
|
$newnavcode = $navcode . $nav["code"] . "/";
|
|
$active = "";
|
|
if ($nav["code"] == $navigation["code"]) {
|
|
$active = "class=\"active\" ";
|
|
}
|
|
if ($show_level) {
|
|
echo "\n" . $spaces . " <li class=\"level_$level\"><a " . $active . "href=\"/" . $site["code"] . "/" . $language["code"] . "/$newnavcode\">" . $nav["menu_name"] . "</a>";
|
|
}
|
|
navigation_fullmenu_rek($site, $language, $navigation, $nav["id"], ($level + 1), $newnavcode, $from_level, $to_level);
|
|
if ($show_level) {
|
|
echo "</li>";
|
|
}
|
|
}
|
|
if ($show_level) {
|
|
echo "\n" . $spaces . "</ul>";
|
|
}
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
// Erzeugt Dropdown mit den Sprachen
|
|
function get_language_select( $selectname = "input_language_id", $selected_id = NULL, $send_form = NULL ) {
|
|
$send_form_text = ($send_form <> "") ? " onChange=\"document." . $send_form . ".submit();\"" : "";
|
|
echo "<select" . $send_form_text . " class=\"select\" name=\"" . $selectname . "\" id=\"" . $selectname . "\">";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_language");
|
|
if (mysqli_num_rows($result) > 0) {
|
|
while ($language = mysqli_fetch_array($result)) {
|
|
if ($language["id"] == $selected_id) {
|
|
echo "<option selected=\"selected\" value=\"" . $language["id"] . "\">" . $language["name"] . "</option>";
|
|
} else {
|
|
echo "<option value=\"" . $language["id"] . "\">" . $language["name"] . "</option>";
|
|
}
|
|
}
|
|
} else {
|
|
echo "<option value=\"\"> - </option>";
|
|
}
|
|
echo "</select>";
|
|
}
|
|
|
|
// Ereugt Dropdown mit den Seiten
|
|
function get_site_select( $selectname = "input_site_id", $selected_id = NULL, $send_form = NULL ) {
|
|
$send_form_text = ($send_form <> "") ? " onChange=\"document." . $send_form . ".submit();\"" : "";
|
|
echo "<select" . $send_form_text . " class=\"select\" name=\"" . $selectname . "\" id=\"" . $selectname . "\">";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_site");
|
|
if (mysqli_num_rows($result) > 0) {
|
|
while ($site = mysqli_fetch_array($result)) {
|
|
$selected_id_text = ($site["id"] == $selected_id) ? " selected=\"selected\"" : "";
|
|
echo "<option" . $selected_id_text . " value=\"" . $site["id"] . "\">" . $site["name"] . "</option>";
|
|
}
|
|
} else {
|
|
echo "<option value=\"\"> - </option>";
|
|
}
|
|
echo "</select>";
|
|
}
|
|
|
|
// Erzeugt Dropdown mit Siteparts
|
|
function get_sitepart_select( $selectname = "input_sitepart_id", $selected_id = NULL ) {
|
|
echo "<select class=\"select\" name=\"" . $selectname . "\" id=\"" . $selectname . "\">";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_site");
|
|
if (mysqli_num_rows($result) > 0) {
|
|
while ($site = mysqli_fetch_array($result)) {
|
|
$selected_id_text = ($site["id"] == $selected_id) ? " selected=\"selected\"" : "";
|
|
echo "<option" . $selected_id_text . " value=\"" . $site["id"] . "\">" . $site["name"] . "</option>";
|
|
}
|
|
} else {
|
|
echo "<option value=\"\"> - </option>";
|
|
}
|
|
echo "</select>";
|
|
}
|
|
|
|
// Erzeugt Dropdown zum wechseln der Sprache
|
|
function get_language_change_select( $selectname = "input_language_id", $selected_id = NULL, $site ) {
|
|
echo "<select class=\"select\" name=\"" . $selectname . "\" id=\"" . $selectname . "\" onchange=\"MM_jumpMenu('parent',this,0)\">";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_language WHERE main_site_id = '" . $site["id"] . "'");
|
|
if (mysqli_num_rows($result) > 0) {
|
|
while ($language = mysqli_fetch_array($result)) {
|
|
$selected_language_text = ($language["id"] == $selected_id) ? " selected=\"selected\"" : "";
|
|
echo "<option" . $selected_language_text . " value=\"/mysyde/" . $site["code"] . "/" . $language["code"] . "/\">" . $language["name"] . "</option>";
|
|
}
|
|
} else {
|
|
echo "<option value=\"\"> - </option>";
|
|
}
|
|
echo "</select>";
|
|
}
|
|
|
|
// Erzeugt Drop-Down zum wechseln der Seite
|
|
function get_site_change_select( $selectname = "site_language_id", $selected_id = NULL, $send_form = NULL ) {
|
|
$send_form_text = ($send_form <> "") ? " onChange=\"document." . $send_form . ".submit();\"" : "";
|
|
echo "<select" . $send_form_text . " class=\"select\" name=\"" . $selectname . "\" id=\"" . $selectname . "\" onchange=\"MM_jumpMenu('parent',this,0)\">";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_site");
|
|
if (mysqli_num_rows($result) > 0) {
|
|
while ($site = mysqli_fetch_array($result)) {
|
|
$selected_id_text = ($site["id"] == $selected_id) ? " selected=\"selected\"" : "";
|
|
echo "<option" . $selected_id_text . " value=\"/mysyde/" . $site["code"] . "/\">" . $site["name"] . "</option>";
|
|
}
|
|
} else {
|
|
echo "<option value=\"\"> - </option>";
|
|
}
|
|
echo "</select>";
|
|
}
|
|
|
|
|
|
function get_site_language_menu( $_currentSite, $_currentLanguage ) {
|
|
// get all languages
|
|
|
|
$return = array();
|
|
$output = '';
|
|
$selectedSite = '';
|
|
$languages = array();
|
|
$sites = array();
|
|
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT main_language.* FROM main_language
|
|
left join main_site on main_language.main_site_id = main_site.id
|
|
order by main_site.name, main_language.name");
|
|
if (mysqli_num_rows($result) > 0) {
|
|
while ($language = mysqli_fetch_array($result)) {
|
|
$languages[] = $language;
|
|
//$selected_language_text = ($language["id"] == $selected_id) ? " selected=\"selected\"" : "";
|
|
//if($language["id"] == $selected_id)
|
|
//echo "<option" . $selected_language_text . " value=\"/mysyde/" . $site["code"] . "/" . $language["code"] . "/\">" . $language["name"] . "</option>";
|
|
}
|
|
}
|
|
|
|
|
|
$result = mysqli_query($GLOBALS['mysql_con'], "SELECT * FROM main_site order by name asc");
|
|
if (mysqli_num_rows($result) > 0) {
|
|
while ($site = mysqli_fetch_array($result)) {
|
|
$sites[$site['id']] = $site;
|
|
}
|
|
}
|
|
|
|
$query = "SELECT * FROM main_site_admin_user_link where main_admin_user_id = " . (int)$GLOBALS["admin_user"]['id'];
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$siteAdminLink = false;
|
|
$siteAdminAvailableSites = array();
|
|
if (@mysqli_num_rows($result) > 0) {
|
|
$siteAdminLink = true;
|
|
while ($row = @mysqli_fetch_array($result)) {
|
|
$siteAdminAvailableSites[] = $row['main_site_id'];
|
|
}
|
|
}
|
|
|
|
if (count($languages)) {
|
|
foreach ($languages as $language) {
|
|
|
|
if($siteAdminLink === true && !in_array($language['main_site_id'], $siteAdminAvailableSites)) {
|
|
continue;
|
|
}
|
|
|
|
if ($_currentSite['id'] == $language['main_site_id'] && $_currentLanguage['id'] == $language['id']) {
|
|
$selectedSite .= '<a href="#">' . $sites[$language['main_site_id']]['name'] . ' - ' . $language['name'] . '</a>';
|
|
}
|
|
$output .= sprintf('<li><a href="%s">%s - %s</a></li>',
|
|
"/mysyde/" . $sites[$language['main_site_id']]['code'] . "/" . $language['code'] . "/",
|
|
$sites[$language['main_site_id']]['name'],
|
|
$language['name']
|
|
);
|
|
}
|
|
} else {
|
|
$output .= '<li><a href="#">Keine Website angelegt</a></li>';
|
|
}
|
|
|
|
$return['selectedSite'] = $selectedSite;
|
|
$return['siteLanguageMenu'] = $output;
|
|
|
|
return $return;
|
|
}
|
|
/* DUP breadcrumb GmbH 20190804 */
|
|
/* Senden vom mehreren Dateien update */
|
|
// Erstellt einen Eintrag im Mail-Log, wird erst mit mail_send versendet
|
|
function mail_create($subject, $message, $from, $to, $from_name = '', $to_name = '', $html_mail = FALSE, $attachment = "", $bcc = "", $attachment_2 = '', $delayed = 0, $payment_transaction_id = '', $spid = 0) {
|
|
$html_mail = ($html_mail) ? 1 : 0;
|
|
|
|
//tut Array umwandeln zum Text
|
|
$attachments = implode(", ", $attachment);
|
|
|
|
if (($from <> '') && ($to <> '') && ($subject <> '')) {
|
|
$query = "INSERT INTO main_mail_log(create_date, subject, message, from_adress, to_adress, from_name,
|
|
to_name, html_mail, attachment,bcc_address,attachment_2, main_site_code, main_language_code, shop_code, shop_language_code,delayed_send,payment_transaction_id, spid)
|
|
VALUES (NOW(), '" . mysqli_real_escape_string($GLOBALS['mysql_con'], $subject) . "','" . mysqli_real_escape_string($GLOBALS['mysql_con'], $message) . "','" . $from . "','" . $to . "','" . $from_name . "',
|
|
'" . $to_name . "'," . $html_mail . ", '" . $attachments . "','" . $bcc . "','" . $attachment_2 . "','".$GLOBALS["site"]["code"]."','".$GLOBALS["language"]["code"]."','".$GLOBALS["shop"]["code"]."','".$GLOBALS["shop_language"]["code"]."'," .$delayed.",'".$payment_transaction_id."',
|
|
'".$spid."'
|
|
)";
|
|
|
|
|
|
if (@mysqli_query($GLOBALS['mysql_con'], $query)) {
|
|
return mysqli_insert_id($GLOBALS['mysql_con']);
|
|
}
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
// Sendet alle noch nicht gesendeten E-Mails aus dem Mail-Log
|
|
function mail_send() {
|
|
$counter = 0;
|
|
$query = "SELECT * FROM main_mail_log WHERE send_date IS NULL AND create_date >= SUBDATE(NOW(), 2) AND delayed_send = 0";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) > 0) {
|
|
while ($mail = @mysqli_fetch_array($result)) {
|
|
|
|
if (( $mail["attachment"] != "" )) {
|
|
|
|
//wandelt Text wieder in Array um
|
|
$file_array = $mail["attachment"];
|
|
$arr = explode(',', $file_array);
|
|
$arr = array_map('trim', $arr);
|
|
|
|
//Fügen ins array relevant für absoluten Pfad
|
|
foreach ($arr as $arr) {
|
|
$attachment[] = realpath("../.." . $arr);
|
|
}
|
|
|
|
$boundary = md5(date('r', time()));
|
|
$attachment_file = mail_attachment($attachment, $boundary);
|
|
$body = mail_html_body($mail["message"], $mail["html_mail"], $boundary);
|
|
$body .= $attachment_file;
|
|
} else {
|
|
$body = mail_html_body($mail["message"], $mail["html_mail"]);
|
|
}
|
|
$header = mail_html_header($mail["from_adress"], $mail["to_adress"], $mail["from_name"], $mail["to_name"], $mail["attachment"], $boundary, $mail['bcc_address']);
|
|
if (substr($mail["subject"], 0, 10) == "<TEXTMAIL>") {
|
|
if (@mail(utf8_decode($mail["to_adress"]), utf8_decode(substr($mail["subject"], 10)), utf8_decode(strip_tags($mail["message"])), "From: " . utf8_decode($mail["from_adress"]))) {
|
|
$mail_send = TRUE;
|
|
}
|
|
} else {
|
|
if (@mail(utf8_decode($mail["to_adress"]), utf8_decode($mail["subject"]), utf8_decode($body), utf8_decode($header),'-f '.$mail["from_adress"])) {
|
|
$mail_send = TRUE;
|
|
}
|
|
}
|
|
if ($mail_send) {
|
|
$query = "UPDATE main_mail_log SET send_date = now() WHERE id = " . $mail["id"];
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$counter++;
|
|
unlink($attachment_file);
|
|
}
|
|
}
|
|
}
|
|
return $counter;
|
|
}
|
|
|
|
function mail_html_body( $message, $html_mail = FALSE, $boundary = "" ) {
|
|
if ($boundary != "") {
|
|
$body = "--" . $boundary . "\n";
|
|
$body .= "Content-Type: text/html\n";
|
|
$body .= "Content-Transfer-Encoding: 8bit\n\n";
|
|
}
|
|
$body .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n";
|
|
$body .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n";
|
|
$body .= "<head>\r\n";
|
|
$body .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\r\n";
|
|
$body .= "<style type=\"text/css\">\r\n";
|
|
$body .= "body,td,th { font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #000000; }\r\n";
|
|
$body .= "h1 { font-size: 15px; color: ".$GLOBALS['shop_setup']['mail_color']."; margin: 0px; padding: 0px;}\r\n";
|
|
$body .= "h2 { font-size: 13px; color: ".$GLOBALS['shop_setup']['mail_color']."; margin: 0px; padding: 0px;}\r\n";
|
|
$body .= "h3,h4,h5 { font-size: 11px; color: ".$GLOBALS['shop_setup']['mail_color']."; margin: 0px; padding: 0px;}\r\n";
|
|
$body .= ".small { font-size: 8px; color: ".$GLOBALS['shop_setup']['mail_color']."; }\r\n";
|
|
$body .= ".order_price_total { text-align: right; }\r\n";
|
|
$body .= ".text-right { text-align: right; }\r\n";
|
|
$body .= "</style></head>\r\n";
|
|
$body .= "<body>\r\n";
|
|
if ($html_mail) {
|
|
$body .= $message . "\r\n";
|
|
} else {
|
|
$body .= nl2br($message) . "\r\n";
|
|
}
|
|
$body .= "</body>\r\n";
|
|
$body .= "</html>\r\n";
|
|
return $body;
|
|
}
|
|
|
|
function mail_html_header( $from, $to, $from_name = '', $to_name = '', $attachment = "", $boundary = "", $bcc = "" ) {
|
|
if ($from <> '') {
|
|
$header = ($from_name <> '') ? "From: " . $from_name . " <" . $from . ">\n" : "From: " . $from . "\n";
|
|
}
|
|
if ($bcc != "") {
|
|
$header .= "Bcc: " . $bcc . "\n";
|
|
}
|
|
$header .= "MIME-Version: 1.0\n";
|
|
if (($attachment != "")) {
|
|
$header .= "Content-Type: multipart/mixed; boundary=$boundary\n";
|
|
$header .= "Content-Transfer-Encoding: 8bit\n\n";
|
|
} else {
|
|
$header .= "Content-type: text/html; charset=iso-8859-1\n\n";
|
|
}
|
|
return $header;
|
|
}
|
|
|
|
function mail_attachment( $attachment, $boundary ) {
|
|
if (!is_array($attachment)) {
|
|
$attachment_file = "--" . $boundary . "\n";
|
|
$filename = basename($attachment);
|
|
$h = fopen($attachment, 'rb');
|
|
if (is_readable("../.." . $attachment)) {
|
|
$filecontents = fread($h, filesize("../.." . $attachment));
|
|
} else {
|
|
$filecontents = fread($h, filesize($attachment));
|
|
}
|
|
$file_base64 = chunk_split(base64_encode($filecontents));
|
|
|
|
$attachment_file .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$filename\"\n";
|
|
$attachment_file .= "Content-Transfer-Encoding: base64\n";
|
|
$attachment_file .= "Content-Disposition: attachment; " .
|
|
"filename=$filename\n\n";
|
|
$attachment_file .= $file_base64;
|
|
$attachment_file .= "\n";
|
|
$text .= "--$boundary--";
|
|
} else {
|
|
for ($x = 0; $x < count($attachment); $x++) {
|
|
$attachment_file .= "--" . $boundary . "\n";
|
|
$file = fopen($attachment[$x], "rb");
|
|
$data = fread($file, filesize($attachment[$x]));
|
|
$filename = basename($attachment[$x]);
|
|
fclose($file);
|
|
$data = chunk_split(base64_encode($data));
|
|
$attachment_file .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$filename\"\n" .
|
|
"Content-Disposition: attachment;\n" . " filename=\"$filename\"\n" .
|
|
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
|
|
}
|
|
}
|
|
$attachment_file .= "--" . $boundary . "--\n";
|
|
return $attachment_file;
|
|
|
|
}
|
|
|
|
|
|
// Speichert Bilder in flexibler Größe ab
|
|
function image_resize( $file, $save, $width, $height, $prop = TRUE ) {
|
|
if (file_exists($file)) {
|
|
|
|
$infos = @getimagesize($file);
|
|
// Neue Maße berechnen unter beibehaltung der Proportionen
|
|
if ($prop) {
|
|
$iWidth = $infos[0];
|
|
$iHeight = $infos[1];
|
|
$iRatioW = $width / $iWidth;
|
|
$iRatioH = $height / $iHeight;
|
|
if ($iRatioW > 1 && $iRatioH > 1) {
|
|
$iNewW = $iWidth;
|
|
$iNewH = $iHeight;
|
|
} else {
|
|
if ($iRatioW < $iRatioH) {
|
|
$iNewW = round($iWidth * $iRatioW);
|
|
$iNewH = round($iHeight * $iRatioW);
|
|
} else {
|
|
$iNewW = round($iWidth * $iRatioH);
|
|
$iNewH = round($iHeight * $iRatioH);
|
|
}
|
|
}
|
|
|
|
} else {
|
|
$iNewW = $width;
|
|
$iNewH = $height;
|
|
}
|
|
// Übergebnes Bild in Variable lesen
|
|
switch ($infos[2]) {
|
|
case 1:
|
|
if (detect_animated_gif($file)) {
|
|
$is_animated = TRUE;
|
|
} else {
|
|
$curr_img = imagecreatefromgif($file);
|
|
$set_transparency = TRUE;
|
|
}
|
|
break;
|
|
case 2:
|
|
$curr_img = imagecreatefromjpeg($file);
|
|
break;
|
|
case 3:
|
|
$curr_img = imagecreatefrompng($file);
|
|
$set_transparency = TRUE;
|
|
break;
|
|
}
|
|
if (!$is_animated) {
|
|
|
|
// Neues Bild mit den berechneten Maßen erzeugen
|
|
$new_img = imagecreatetruecolor($iNewW, $iNewH);
|
|
// Transparenz für PNG- und GIF-Bilder erhalten
|
|
if ($set_transparency) {
|
|
imagealphablending($new_img, FALSE);
|
|
imagesavealpha($new_img, TRUE);
|
|
}
|
|
|
|
// Bildgröße umwandeln
|
|
imagecopyresampled($new_img, $curr_img, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]);
|
|
|
|
// Umgewandeltes Bild abspeichern
|
|
switch ($infos[2]) {
|
|
case 1:
|
|
@unlink($save);
|
|
imagegif($new_img, $save);
|
|
break;
|
|
case 2:
|
|
@unlink($save);
|
|
imagejpeg($new_img, $save, 95);
|
|
break;
|
|
case 3:
|
|
@unlink($save);
|
|
imagepng($new_img, $save, 4);
|
|
break;
|
|
}
|
|
} else {
|
|
@unlink($save);
|
|
copy($file, $save);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
function filename_validation( $_filename, $_ending = FALSE ) {
|
|
if (!is_string($_filename)) {
|
|
return FALSE;
|
|
}
|
|
if (!is_bool($_ending) && !is_array($_ending) && !is_string($_ending)) {
|
|
return FALSE;
|
|
}
|
|
$_filename = strtolower($_filename);
|
|
$replace = array(
|
|
'/ä/' => 'ae',
|
|
'/ü/' => 'ue',
|
|
'/ö/' => 'oe',
|
|
'/ß/' => 'ss',
|
|
'/\040/' => '_',
|
|
'/[^a-z0-9_\.\-]/' => ''
|
|
);
|
|
$_filename = preg_replace(array_keys($replace), array_values($replace), $_filename);
|
|
$regex = '';
|
|
if (is_array($_ending)) {
|
|
if (!deleteArrayElement($_ending, '')) {
|
|
$regex = '(\.(' . implode('|', $_ending) . '))$';
|
|
} else {
|
|
$regex = '([\.(' . implode('|', $_ending) . ')]?)$';
|
|
}
|
|
$regex = '(\.(' . implode('|', $_ending) . '))$';
|
|
} elseif (is_string($_ending)) {
|
|
$regex = '\.' . $_ending;
|
|
} elseif ($_ending) {
|
|
$regex = '\.[a-z0-9_\.\-]+';
|
|
}
|
|
if (preg_match('/^[a-z0-9_\.\-]+' . $regex . '/', $_filename)) {
|
|
return $_filename;
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
|
|
function detect_animated_gif( $filename ) {
|
|
if ($fh = @fopen($filename, 'rb')) {
|
|
$count = 0;
|
|
while (!feof($fh) && $count < 2) {
|
|
$chunk = fread($fh, 1024 * 100); //read 100kb at a time
|
|
$count += preg_match_all('#\x00\x21\xF9\x04.{4}\x00\x2C#s', $chunk, $matches);
|
|
}
|
|
fclose($fh);
|
|
}
|
|
if ($count > 1) {
|
|
return (TRUE);
|
|
}
|
|
}
|
|
|
|
// Gibt CSS-Klasse für bestimmte Dateitypen zurück
|
|
function get_button_file_typ( $filename ) {
|
|
$filename_array = explode('.', $filename);
|
|
$file_typ = $filename_array[(count($filename_array) - 1)];
|
|
switch ($file_typ) {
|
|
case 'pdf':
|
|
return "button_pdf";
|
|
break;
|
|
case 'doc':
|
|
case 'docx':
|
|
case 'txt':
|
|
return "button_doc";
|
|
break;
|
|
case 'xls':
|
|
case 'xlsx':
|
|
case 'csv':
|
|
case 'rtf':
|
|
return "button_xls";
|
|
break;
|
|
case 'zip':
|
|
case 'rar':
|
|
return "button_zip";
|
|
break;
|
|
case 'jpg':
|
|
case 'gif':
|
|
case 'bmp':
|
|
case 'tif':
|
|
case 'eps':
|
|
case 'png':
|
|
return "button_img";
|
|
break;
|
|
default:
|
|
return "";
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Gibt CSS-Klasse für bestimmte Dateitypen zurück
|
|
function get_button_file_typ_new( $filename ) {
|
|
$filename_array = explode('.', $filename);
|
|
$file_typ = $filename_array[(count($filename_array) - 1)];
|
|
switch ($file_typ) {
|
|
case 'pdf':
|
|
return "pdf-o";
|
|
break;
|
|
case 'doc':
|
|
case 'docx':
|
|
return "word-o";
|
|
break;
|
|
case 'txt':
|
|
return "text-o";
|
|
break;
|
|
case 'xls':
|
|
case 'xlsx':
|
|
case 'csv':
|
|
case 'rtf':
|
|
return "excel-o";
|
|
break;
|
|
case 'zip':
|
|
case 'rar':
|
|
return "archive-o";
|
|
break;
|
|
case 'jpg':
|
|
case 'gif':
|
|
case 'bmp':
|
|
case 'tif':
|
|
case 'eps':
|
|
case 'png':
|
|
return "image-o";
|
|
break;
|
|
case 'mp3':
|
|
return "audio-o";
|
|
break;
|
|
case 'mp4':
|
|
case 'webm':
|
|
case 'ogg':
|
|
case 'm4v':
|
|
return "movie-o";
|
|
break;
|
|
case 'ppt':
|
|
case 'pptx':
|
|
return "powerpoint-o";
|
|
break;
|
|
default:
|
|
return "o";
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Generiert Passwort
|
|
function generate_password( $zeichen = 8 ) {
|
|
$chars = array_merge(
|
|
range(0, 9),
|
|
range('a', 'z'),
|
|
range('A', 'Z')
|
|
);
|
|
shuffle($chars);
|
|
return implode('', array_slice($chars, 0, $zeichen));
|
|
}
|
|
|
|
// Gibt den Datensatz des über die Session ermittelten Besuchers wieder
|
|
function get_visitor() {
|
|
|
|
$query = "DELETE FROM
|
|
main_visitor
|
|
WHERE
|
|
(
|
|
session_date != '0000-00-00 00:00:00'
|
|
AND
|
|
session_date IS NOT NULL
|
|
AND
|
|
valid_until != '0000-00-00 00:00:00'
|
|
AND
|
|
valid_until IS NOT NULL
|
|
AND
|
|
valid_until <= NOW()
|
|
AND
|
|
nav_login != 1
|
|
)
|
|
OR
|
|
(
|
|
session_date != '0000-00-00 00:00:00'
|
|
AND
|
|
session_date IS NOT NULL
|
|
AND
|
|
(main_user_id IS NULL OR main_user_id = 0)
|
|
AND
|
|
(main_admin_user_id IS NULL OR main_admin_user_id = 0)
|
|
AND
|
|
session_date <= DATE_SUB(NOW(),INTERVAL 90 MINUTE)
|
|
AND
|
|
nav_login != 1
|
|
)
|
|
OR
|
|
(
|
|
session_date != '0000-00-00 00:00:00'
|
|
AND
|
|
session_date IS NOT NULL
|
|
AND
|
|
(
|
|
remember_token IS NULL
|
|
OR
|
|
remember_token = ''
|
|
)
|
|
AND
|
|
session_date <= DATE_SUB(NOW(),INTERVAL 90 MINUTE)
|
|
AND
|
|
nav_login != 1
|
|
)
|
|
OR
|
|
(
|
|
nav_login = 1
|
|
AND
|
|
(session_date <= DATE_SUB(NOW(),INTERVAL 90 MINUTE) OR session_date IS NULL OR session_date = '0000-00-00 00:00:00')
|
|
)";
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if ($_GET['sid'] != '') {
|
|
$query = "SELECT * FROM main_visitor WHERE session_id = '" . mysqli_real_escape_string($GLOBALS['mysql_con'],$_GET['sid']) . "' AND (remember_token = '' OR remember_token IS NULL)";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (mysqli_num_rows($result) == 1) {
|
|
$row = mysqli_fetch_assoc($result);
|
|
$countquery = "SELECT * FROM main_visitor WHERE session_id = '" . mysqli_real_escape_string($GLOBALS['mysql_con'],session_id()) . "' AND (remember_token = '' OR remember_token IS NULL)";
|
|
$countresult = mysqli_query($GLOBALS['mysql_con'], $countquery);
|
|
if (mysqli_num_rows($countresult) > 0) {
|
|
$query = "DELETE FROM main_visitor WHERE session_id = '" . $_GET['sid'] . "' AND (remember_token = '' OR remember_token IS NULL)";
|
|
mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$oldvisitor = mysqli_fetch_assoc($countresult);
|
|
$query = "UPDATE main_visitor
|
|
SET frontend_login = TRUE, cookie_only = FALSE, session_date = NOW(), main_user_id = '" . $row['main_user_id'] . "'
|
|
WHERE id = '" . $oldvisitor['id'] . "'";
|
|
mysqli_query($GLOBALS['mysql_con'], $query);
|
|
} else {
|
|
$query = "UPDATE main_visitor SET session_id = '" . mysqli_real_escape_string($GLOBALS['mysql_con'],session_id()) . "' WHERE id = " . $row['id'];
|
|
mysqli_query($GLOBALS['mysql_con'], $query);
|
|
}
|
|
}
|
|
}
|
|
$query = "SELECT * FROM main_visitor WHERE session_id = '" . mysqli_real_escape_string($GLOBALS['mysql_con'],session_id()) . "'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if ((!empty($_POST['remember_login']) && ($_POST['remember_login'] == 'on')) || !empty($GLOBALS['visitor']['remember_token'])) {
|
|
$cookie_timeout = COOKIE_DAYS_VALID * 24 * 60 * 60;
|
|
setcookie('sid' . $GLOBALS['site']['code'], session_id(), time() + $cookie_timeout, '/');
|
|
} else {
|
|
$cookie_timeout = 90 * 60 * 60;
|
|
setcookie('sid' . $GLOBALS['site']['code'], session_id(), NULL, '/');
|
|
}
|
|
if (@mysqli_num_rows($result) != 0) {
|
|
$visitor = @mysqli_fetch_array($result);
|
|
$query = "UPDATE main_visitor SET session_date = NOW() WHERE id = '" . $visitor["id"] . "'";
|
|
$_SESSION['vid'] = $visitor['id'];
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
return $visitor;
|
|
} else {
|
|
$ip = $_SERVER['REMOTE_ADDR'];
|
|
$ipv4 = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ? $ip : '';
|
|
$regexCount = null;
|
|
$ipv4anon = preg_replace('/(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3}).*/', '$1.$2.$3.0', $ipv4, -1, $regexCount);
|
|
$ipv6 = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ? $ip : '';
|
|
$ipv6sections = [];
|
|
$ipv6anon = implode(':',explode(':',$ipv6,2));
|
|
|
|
$query = "INSERT INTO main_visitor (id,session_id,last_ipv4_anon,last_ipv6_anon,session_date,valid_until) VALUES (NULL,'" . mysqli_real_escape_string($GLOBALS['mysql_con'],session_id()) . "','".$ipv4anon."','".$ipv6anon."',NOW(),DATE_ADD(NOW(),INTERVAL 30 DAY))";
|
|
if (@mysqli_query($GLOBALS['mysql_con'], $query)) {
|
|
$id = mysqli_insert_id($GLOBALS['mysql_con']);
|
|
$query = "SELECT * FROM main_visitor WHERE id='" .$id."'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$visitor = @mysqli_fetch_assoc($result);
|
|
return $visitor;
|
|
} else {
|
|
die('Es konnte kein Besucher-Datensatz erzeugt oder ermittelt werden. Bitte wenden Sie sich an den Support. Fehler: ' . mysqli_error($GLOBALS['mysql_con']));
|
|
}
|
|
}
|
|
}
|
|
|
|
// Holt Datensatz des Admin-Benutzers anhand eines Besuchereintrags
|
|
|
|
function get_admin_user( $visitor ) {
|
|
if ($visitor["admin_login"]) {
|
|
$query = "SELECT main_admin_user.* FROM main_visitor LEFT join main_admin_user ON main_admin_user.id = main_visitor.main_admin_user_id WHERE main_visitor.id = '" . $visitor["id"] . "'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$admin_user = @mysqli_fetch_array($result);
|
|
return $admin_user;
|
|
}
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
function update_visitor_data( $_data = array() ) {
|
|
$query = "select data from main_visitor where id = " . $GLOBALS["visitor"]['id'];
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$visitordata = @mysqli_fetch_array($result);
|
|
$data = unserialize($visitordata['data']);
|
|
|
|
if (is_array($data) && count($data)) {
|
|
$_data = array_merge($data, $_data);
|
|
}
|
|
}
|
|
|
|
$data = serialize($_data);
|
|
$query = "UPDATE main_visitor set data = '" . $data . "' WHERE id = " . $GLOBALS["visitor"]['id'];
|
|
$GLOBALS["visitor"]['data'] = $data;
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
}
|
|
|
|
function get_visitor_data() {
|
|
$data = unserialize($GLOBALS["visitor"]['data']);
|
|
if ($data == "") {
|
|
return array();
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
// Ermittelt den Sprachcode anhand des Browsers des Besuchers
|
|
function lang_getfrombrowser() {
|
|
$language = language_getbyid($GLOBALS["site"]["std_main_language_id"]);
|
|
$default_language = $language["code"];
|
|
$query = "SELECT code FROM main_language";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$i = 0;
|
|
if (@mysqli_num_rows($result) > 0) {
|
|
while ($language = @mysqli_fetch_array($result)) {
|
|
$allowed_languages[$i] = $language["code"];
|
|
}
|
|
$strict_mode = FALSE;
|
|
$lang_variable = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
|
if (empty($lang_variable)) {
|
|
return $default_language;
|
|
}
|
|
$accepted_languages = preg_split('/,\s*/', $lang_variable);
|
|
$current_lang = $default_language;
|
|
$current_q = 0;
|
|
foreach ($accepted_languages as $accepted_language) {
|
|
$res = preg_match('/^([a-z]{1,8}(?:-[a-z]{1,8})*)' .
|
|
'(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i', $accepted_language, $matches);
|
|
if (!$res) {
|
|
continue;
|
|
}
|
|
$lang_code = explode('-', $matches[1]);
|
|
$lang_quality = 1.0;
|
|
if (isset($matches[2])) {
|
|
$lang_quality = (float)$matches[2];
|
|
}
|
|
while (count($lang_code)) {
|
|
if (in_array(strtolower(join('-', $lang_code)), $allowed_languages)) {
|
|
if ($lang_quality > $current_q) {
|
|
$current_lang = strtolower(join('-', $lang_code));
|
|
$current_q = $lang_quality;
|
|
break;
|
|
echo $current_lang . " " . $current_q . " - ";
|
|
}
|
|
}
|
|
if ($strict_mode) {
|
|
break;
|
|
}
|
|
array_pop($lang_code);
|
|
}
|
|
}
|
|
return $current_lang;
|
|
}
|
|
}
|
|
|
|
// Wandelt ein Deutsch formatiertes Datum in SQL-Format um
|
|
function datetosql( $date ) {
|
|
if ($date <> '') {
|
|
$newdate = date("Y-m-d", strtotime($date));
|
|
return "'" . $newdate . "'";
|
|
} else {
|
|
return "NULL";
|
|
}
|
|
}
|
|
|
|
// Wandelt ein SQL-Datum in das deutsche Format um
|
|
function datefromsql( $date ) {
|
|
if ($date <> '') {
|
|
$newdate = date("d.m.Y", strtotime($date));
|
|
return $newdate;
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
// Wandelt ein Deutsch formatiertes Datum in SQL-Format um
|
|
function datetimetosql( $date ) {
|
|
if ($date <> '') {
|
|
$newdate = date("Y-m-d H:i", strtotime($date));
|
|
return "'" . $newdate . "'";
|
|
} else {
|
|
return "NULL";
|
|
}
|
|
}
|
|
|
|
// Wandelt ein SQL-Datum in das deutsche Format um
|
|
function datetimefromsql( $date ) {
|
|
if ($date <> '') {
|
|
$newdate = date("d.m.Y H:i", strtotime($date));
|
|
return $newdate;
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
// Funktion zum anzeige eine Tabelle aus einem SQL-Query
|
|
function linklist( $result, $formname = "linklist", $format = NULL, $inputname = "input_id", $dblclick_action = "edit", $sortable = FALSE, $sortableUpdateAction = 'update_sortorder', $deleteAction = "" ) {
|
|
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
|
|
$columnsCount = 0;
|
|
if ((int)$GLOBALS['shop']['id'] > 0) {
|
|
linklist2($result, $formname, $format, $inputname);
|
|
} else {
|
|
|
|
$num_rows = @mysqli_num_rows($result);
|
|
$keyCount = 1;
|
|
if ($num_rows >= 1) {
|
|
|
|
$firstrow = TRUE;
|
|
$tbody = TRUE;
|
|
$sortableText = $sortable === TRUE ? ' sortableTable' : '';
|
|
echo " <table id='".$formname."_table' data-sortableupdateaction=\"{$sortableUpdateAction}\" cellpadding=0 cellspacing=0 border=0 class=\"linklist" . $sortableText . "\">\n";
|
|
while ($row = @mysqli_fetch_array($result, 1)) {
|
|
|
|
if ($firstrow) {
|
|
// insert header
|
|
@reset($format);
|
|
echo " <thead> <tr>\n";
|
|
$counter = 1;
|
|
foreach ($row as $key => $value) {
|
|
echo 'data ist';print_r($value);echo '<br>';
|
|
if ($key == "option") {
|
|
@next($format);
|
|
continue;
|
|
}
|
|
|
|
$curr_format = ($key <> "id") ? @current($format) : "option";
|
|
|
|
echo " " . format_key($key, $inputname, $curr_format) . "\n";
|
|
$columnsCount = $key;
|
|
if ($sortable === TRUE && $counter == 2) {
|
|
echo " " . format_key("", "") . "\n";
|
|
// $columnsCount++;
|
|
}
|
|
|
|
@next($format);
|
|
$counter++;
|
|
}
|
|
echo '<td>'.$translation->get("action").'</td>';
|
|
echo " </tr>\n";
|
|
|
|
// insert seperator
|
|
@reset($format);
|
|
// echo " <tr>\n";
|
|
// foreach ($row as $key => $value) {
|
|
// $curr_format = ($key <> "id") ? @current($format) : "option";
|
|
// echo " " . format_seperator($key) . "\n";
|
|
// @next($format);
|
|
// }
|
|
|
|
echo " </thead> <tbody>\n";
|
|
|
|
$firstrow = FALSE;
|
|
}
|
|
|
|
$markCheckedRow = FALSE;
|
|
if (isset($_REQUEST['linklist_form'])) {
|
|
if ($formname == $_REQUEST['linklist_form']) {
|
|
$markCheckedRow = TRUE;
|
|
}
|
|
} else {
|
|
$markCheckedRow = TRUE;
|
|
}
|
|
|
|
if ($markCheckedRow === TRUE) {
|
|
$checkedRow = $row['id'] == $_REQUEST[$inputname] ? 'true' : 'false';
|
|
}
|
|
|
|
echo " <tr id=\"linklistid_{$row['id']}\" class=\"linklist_content\" data-checked=\"" . $checkedRow . "\" data-inputname=\"" . $inputname . "\" data-action=\"" . $dblclick_action . "\" data-inputid=\"{$row['id']}\">\n";
|
|
@reset($format);
|
|
$counter = 1;
|
|
foreach ($row as $key => $value) {
|
|
|
|
|
|
$curr_format = ($key <> "id") ? @current($format) : "option";
|
|
if ($key == "option") {
|
|
@next($format);
|
|
continue;
|
|
}
|
|
|
|
echo " " . format_value($value, $inputname, $curr_format) . "\n";
|
|
if($key == $columnsCount){
|
|
// echo "<td width=\"100\" class=\"sorticon\"><div>" . button("delete", $translation->get("delete"), $formname, $deleteAction, "", FALSE, FALSE). "</div></td>";
|
|
|
|
loadAction($formname, $deleteAction, $dblclick_action, $keyCount);
|
|
$keyCount++;
|
|
|
|
}
|
|
|
|
if ($sortable === TRUE && $counter == 2) {
|
|
echo " " . format_value("", "sorticon", "sort") . "\n";
|
|
}
|
|
|
|
|
|
@next($format);
|
|
$counter++;
|
|
}
|
|
echo " </tr>\n";
|
|
|
|
|
|
}
|
|
echo "</tbody> </table>\n";
|
|
|
|
loadDataTable($formname.'_table');
|
|
} else {
|
|
echo "<div class=\"infobox\">" . $translation->get("no_rows_found") . "</div>";
|
|
}
|
|
}
|
|
}
|
|
function loadDataTable($formname){
|
|
// Load DT styles
|
|
echo ' <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/dt-1.11.4/datatables.min.css"/>
|
|
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.8/semantic.min.css"/>
|
|
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.11.4/css/dataTables.semanticui.min.css"/>';
|
|
// Load DT styles End
|
|
// Load DT Scripts
|
|
echo '
|
|
<script type="text/javascript" src="https://cdn.datatables.net/1.11.4/js/jquery.dataTables.min.js"></script>
|
|
<script type="text/javascript" src="https://cdn.datatables.net/1.11.4/js/dataTables.semanticui.min.js"></script>
|
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.8.8/semantic.min.js"></script>';
|
|
// Load DT Scripts End
|
|
?>
|
|
<script>
|
|
var $y = jQuery.noConflict();
|
|
$y(document).ready( function () {
|
|
|
|
$y("<?='#'.$formname;?>").DataTable({
|
|
"paging": true,
|
|
"ordering": true,
|
|
"language": {
|
|
"url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json"
|
|
},
|
|
"lengthMenu": [[5, 10, 15, 30, -1], [5, 10, 15, 30, "All"]],
|
|
"responsive": true,
|
|
'searching' : true,
|
|
"scrollX": false,
|
|
"info": true,
|
|
columnDefs: [
|
|
|
|
],
|
|
} );
|
|
});
|
|
|
|
|
|
</script>
|
|
|
|
<?}
|
|
// Funktion zum anzeige eine Tabelle aus einem SQL-Query für shop
|
|
function linklist2( $result, $formname = "linklist", $format = NULL, $inputname = "input_id" ) {
|
|
|
|
$num_rows = @mysqli_num_rows($result);
|
|
if ($num_rows >= 1) {
|
|
$firstrow = TRUE;
|
|
$input_arr_counter = 0;
|
|
echo " <div class=\"linklist table_area\">\n";
|
|
while ($row = @mysqli_fetch_array($result, 1)) {
|
|
if ($firstrow) {
|
|
@reset($format);
|
|
echo " <div class='table_row table_header'>\n";
|
|
foreach ($row as $key => $value) {
|
|
|
|
$curr_format = ($key <> "id") ? @current($format) : "option";
|
|
|
|
echo " " . format_key2($key, $inputname, $curr_format) . "\n";
|
|
@next($format);
|
|
}
|
|
echo " </div>\n";
|
|
$firstrow = FALSE;
|
|
}
|
|
$input_arr_text = ($num_rows > 1) ? "[" . $input_arr_counter . "]" : "";
|
|
echo "<div class='table_row table_body' onClick=\"document." . $formname . "." . $inputname . $input_arr_text . ".checked = true; \">\n";
|
|
$input_arr_counter++;
|
|
@reset($format);
|
|
foreach ($row as $key => $value) {
|
|
$curr_format = ($key <> "id") ? @current($format) : "option";
|
|
echo " " . format_value2($value, $inputname, $curr_format, $key) . "\n";
|
|
@next($format);
|
|
}
|
|
echo "</div>\n";
|
|
}
|
|
echo "</div>\n";
|
|
} else {
|
|
$style = ($formname == "form_sales_return_history_list" ? " style=\"margin-top: 0 !important;\"" : "");
|
|
echo "<div class=\"emptybox\"".$style.">Keine Datensätze vorhanden</div>";
|
|
}
|
|
switch ($formname) {
|
|
case "form_shipment_address_list":
|
|
$action = 'edit_shipment_address&action_id=edit';
|
|
break;
|
|
case "form_shop_user_list":
|
|
$action = 'edit_shop_user&action_id=edit';
|
|
break;
|
|
case "form_order_history_list":
|
|
$action = 'order_history&action_id=card';
|
|
break;
|
|
case "form_sales_contract_history_list":
|
|
$action = 'contract_history&action_id=card';
|
|
break;
|
|
case "form_sales_invoice_history_list":
|
|
$action = 'sales_invoice_history&action_id=card';
|
|
break;
|
|
case "form_sales_shipment_history_list":
|
|
$action = 'sales_shipment_history&action_id=card';
|
|
break;
|
|
case "form_sales_cr_memo_history_list":
|
|
$action = 'sales_cr_memo_history&action_id=card';
|
|
break;
|
|
case "form_sales_return_history_list":
|
|
$action = 'sales_return_history&action_id=card';
|
|
break;
|
|
}
|
|
?>
|
|
<script type="text/javascript">
|
|
$(document).ready(function () {
|
|
$('#<?=$formname;?> .table_body').click(function(){
|
|
$('#<?=$formname;?>').attr('action','?shop_category=account&action=<?=$action?>');
|
|
$('#<?=$formname;?>').submit();
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<?php
|
|
}
|
|
|
|
function format_value( $value, $inputname, $format = NULL ) {
|
|
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
|
|
|
|
switch ($format) {
|
|
case 'text':
|
|
return "<td class=\"" . $format . "\"><div>" . $value . "</div></td>";
|
|
break;
|
|
case 'date':
|
|
return "<td class=\"" . $format . "\"><div>" . $value . "</div></td>";
|
|
break;
|
|
case 'euro':
|
|
return "<td class=\"" . $format . "\"><div style='text-align: right;'>" . number_format($value, 2, ',', '.') . " €</div></td>";
|
|
break;
|
|
case 'decimal':
|
|
return "<td class=\"" . $format . "\"><div>" . number_format($value, 2, ',', '.') . "</div></td>";
|
|
break;
|
|
case 'integer':
|
|
return "<td class=\"" . $format . "\"><div>" . number_format($value, 0, '', '') . "</div></td>";
|
|
break;
|
|
case 'boolean':
|
|
return ($value == 1) ? "<td class=\"" . $format . "\"><div>" . $translation->get("yes") . "</div></td>" : "<td><div>" . $translation->get("no") . "</div></td>";
|
|
break;
|
|
case 'boolean_active':
|
|
return ($value == 1) ? "<td class=\"" . $format . "\"><div>" . $translation->get("active") . "</div></td>" : "<td><div>" . $translation->get("inactive") . "</div></td>";
|
|
break;
|
|
case 'option':
|
|
$checked = ($value == $_POST[$inputname]) ? " checked=\"checked\"" : "";
|
|
return "<td style=\"width: 20px;display:none;\" class=\"" . $format . "\"></td>";
|
|
break;
|
|
case 'sort':
|
|
return "<td width=\"100\" class=\"sorticon\"><div>" . $value . "</div></td>";
|
|
break;
|
|
default:
|
|
return "<td class=\"" . $format . "\"><div>" . $value . "</div></td>";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function format_value2( $value, $inputname, $format = NULL ,$key = "" ) {
|
|
if($key != "") {
|
|
$label = "<span class=\"table_cell_label\">" . $key . "</span> ";
|
|
}else{
|
|
$label = "";
|
|
}
|
|
switch ($format) {
|
|
case 'text':
|
|
return "<div class=\"table_cell " . $format . "\">".$label . "<span>".htmlspecialchars($value, ENT_QUOTES, "UTF-8") . "</span></div>";
|
|
break;
|
|
case 'date':
|
|
return "<div class=\"table_cell text-right datepicker\">" . $label . "<span>".htmlspecialchars($value, ENT_QUOTES, "UTF-8") . "</span></div>";
|
|
break;
|
|
case 'euro':
|
|
return "<div class=\"table_cell text-right " . $format . "\">" . $label . "<span>".number_format($value, 2, ',', '.') . " €</span></div>";
|
|
break;
|
|
case 'decimal':
|
|
return "<div class=\"table_cell text-right " . $format . "\">" . $label . "<span>".number_format($value, 2, ',', '.') . "</span></div>";
|
|
break;
|
|
case 'integer':
|
|
return "<div class=\"table_cell text-right " . $format . "\">" . $label . "<span>".number_format($value, 0, '', '') . "</span></div>";
|
|
break;
|
|
case 'boolean':
|
|
return ($value == 1) ? "<div class=\"table_cell " . $format . "\">".$label."<span>Ja</span></div>" : "<div class=\"table_cell " . $format . "\">".$label."<span>Nein</span></div>";
|
|
break;
|
|
case 'boolean_active':
|
|
return ($value == 1) ? "<div class=\"table_cell " . $format . "\">".$label."<span>Aktiv</span></div>" : "<div class=\"table_cell " . $format . "\">".$label."<span>Inaktiv</span></div>";
|
|
break;
|
|
case 'option':
|
|
$checked = ($value == $_POST[$inputname]) ? " checked=\"checked\"" : "";
|
|
return "<div style=\"width: 20px; display:none;\" class=\"table_cell " . $format . "\"><input id=\"" . $inputname . "\" name=\"" . $inputname . "\" type=\"radio\" value=\"" . $value . "\"" . $checked . "/></div>";
|
|
break;
|
|
default:
|
|
return "<div class=\"table_cell " . $format . "\">" . $label . "<span>".htmlspecialchars($value, ENT_QUOTES, "UTF-8") . "</span></div>";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function format_key( $key, $inputname, $format = NULL ) {
|
|
switch ($format) {
|
|
case 'option':
|
|
return "<td style=\"display:none;\" class=\"" . $format . "\"></td>";
|
|
break;
|
|
default:
|
|
return "<td class=\"" . $format . "\"><div>" . $key . "</div></td>";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function format_key2( $key, $inputname, $format = NULL ) {
|
|
switch ($format) {
|
|
case 'option':
|
|
return "<div class=\"table_cell " . $format . "\" style=\"display:none\"> </div>";
|
|
break;
|
|
case 'date' :
|
|
return "<div class=\"table_cell text-right datepicker\">" . htmlspecialchars($key, ENT_QUOTES, "UTF-8") . "</div>";
|
|
break;
|
|
case 'euro':
|
|
return "<div class=\"table_cell text-right ". $format . "\">" . htmlspecialchars($key, ENT_QUOTES, "UTF-8") . "</div>";
|
|
break;
|
|
case 'decimal':
|
|
return "<div class=\"table_cell text-right ". $format . "\">" . htmlspecialchars($key, ENT_QUOTES, "UTF-8") . "</div>";
|
|
break;
|
|
case 'integer':
|
|
return "<div class=\"table_cell text-right ". $format . "\">" . htmlspecialchars($key, ENT_QUOTES, "UTF-8") . "</div>";
|
|
break;
|
|
default:
|
|
return "<div class=\"table_cell " . $format . "\">" . htmlspecialchars($key, ENT_QUOTES, "UTF-8") . "</div>";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function format_seperator( $format ) {
|
|
switch ($format) {
|
|
case 'option':
|
|
return "<td style=\"display:none;\"><div> </div></td>";
|
|
break;
|
|
default:
|
|
return "<td class=\"linklist_seperator\"> </td>";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function button( $typ, $name, $formname, $action = "", $confirm = "", $promoted = TRUE ) {
|
|
$confirm_start_text = "";
|
|
$confirm_end_text = "";
|
|
if ($confirm <> "") {
|
|
$confirm_start_text = "if(confirm('" . $confirm . "')) { ";
|
|
$confirm_end_text = " }";
|
|
}
|
|
|
|
if ($typ == "") {
|
|
$typ = "inhalt_collection graybox";
|
|
}
|
|
|
|
$_promoted = $promoted === TRUE ? 'promoted' : 'not_promoted';
|
|
if ($GLOBALS['shop_language']['code'] != '') {
|
|
switch ($typ) {
|
|
case "reset":
|
|
echo "<a class=\"button_" . $typ . "\" href=\"javascript:void(0);\" onclick=\"" . $confirm_start_text . "document." . $formname . ".reset(); return false;" . $confirm_end_text . "\">" . htmlspecialchars($name, ENT_QUOTES, "UTF-8") . "</a>\n";
|
|
break;
|
|
default:
|
|
echo "<a class=\"button_" . $typ . "\" href=\"javascript:void(0);\" onclick=\"" . $confirm_start_text . "document." . $formname . ".action='" . $action . "'; document." . $formname . ".submit(); return false" . $confirm_end_text . ";\">" . htmlspecialchars($name, ENT_QUOTES, "UTF-8") . "</a>\n";
|
|
break;
|
|
}
|
|
} else {
|
|
switch ($typ) {
|
|
case "reset":
|
|
echo "<li class=\"" . $_promoted . "\"> <a data-formname=\"" . $formname . "\" class=\"button_" . $typ . "\" href=\"javascript:void(0);\" onclick=\"setCurrentToolbarClicked(this);" . $confirm_start_text . "document." . $formname . ".reset(); return false;" . $confirm_end_text . "\">" . $name . "</li></a>\n";
|
|
break;
|
|
case "closeoverlay":
|
|
echo "<div class=\"" . $_promoted . "\"> <a data-formname=\"" . $formname . "\" class=\"button_" . $typ . "\" href=\"javascript:void(0);\" onclick=\"setCurrentToolbarClicked(this);" . $action . ";\">" . x . "</a></div>\n";
|
|
break;
|
|
default:
|
|
echo "<li class=\"" . $_promoted . "\"> <a data-formname=\"" . $formname . "\" class=\"button_" . $typ . "\" href=\"javascript:void(0);\" onclick=\"setCurrentToolbarClicked(this);" . $action . ";\">" . $name . "</a></li>\n";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
function button2( $typ, $name, $formname, $action = "", $confirm = "" ) {
|
|
if ($confirm <> "") {
|
|
$confirm_start_text = "if(confirm('" . $confirm . "')) { ";
|
|
$confirm_end_text = " }";
|
|
}
|
|
switch ($typ) {
|
|
case "reset":
|
|
echo "<li><a class=\"button_" . $typ . "\" href=\"javascript:void(0);\" onclick=\"" . $confirm_start_text . "document." . $formname . ".reset(); return false;" . $confirm_end_text . "\">" . htmlspecialchars($name, ENT_QUOTES, "UTF-8") . "</a></li>\n";
|
|
break;
|
|
default:
|
|
echo "<li><a class=\"button_" . $typ . "\" href=\"javascript:void(0);\" onclick=\"" . $confirm_start_text . "document." . $formname . ".action='" . $action . "'; document." . $formname . ".submit(); return false" . $confirm_end_text . ";\">" . htmlspecialchars($name, ENT_QUOTES, "UTF-8") . "</a></li>\n";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function button_finish( $typ, $name, $formname, $action = "", $confirm = "" ) {
|
|
if ($confirm <> "") {
|
|
$confirm_start_text = "if(confirm('" . $confirm . "')) { ";
|
|
$confirm_end_text = " }";
|
|
}
|
|
switch ($typ) {
|
|
case "reset":
|
|
echo "<a class=\"button_" . $typ . "\" href=\"javascript:void(0);\" onclick=\"" . $confirm_start_text . " pay_other(); return false;" . $confirm_end_text . "\">" . htmlspecialchars($name, ENT_QUOTES, "UTF-8") . "</a>\n";
|
|
break;
|
|
default:
|
|
echo "<a class=\"button_" . $typ . "\" href=\"javascript:void(0);\" onclick=\"" . $confirm_start_text . " pay_other(); return false" . $confirm_end_text . ";\">" . htmlspecialchars($name, ENT_QUOTES, "UTF-8") . "</a>\n";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function set_page_link(
|
|
$sitepart_id,
|
|
$header_id,
|
|
$collection_list = 0,
|
|
$collection_id = 0,
|
|
$collection_setup_id = 0,
|
|
$collection_view_type = 0,
|
|
$collection_items = 0,
|
|
$collection_page_list_id = 0,
|
|
$main_page_group = 0,
|
|
$main_page_group_code = "",
|
|
$main_page_group_name = "",
|
|
$main_page_group_link = ""
|
|
) {
|
|
|
|
$sorting = @mysqli_fetch_array(@mysqli_query($GLOBALS['mysql_con'], "SELECT MAX(sorting)+1 AS 'newsorting' FROM main_page_link WHERE main_page_id = '" . $_REQUEST["input_page_id"] . "'"));
|
|
$sorting = ($sorting["newsorting"] <> "") ? $sorting = $sorting["newsorting"] : $sorting = 1;
|
|
|
|
$layout_area_id = 0;
|
|
$active = 0;
|
|
|
|
$sessiondata = get_visitor_data();
|
|
|
|
if (isset($sessiondata['page_options']['page_option_layoutarea'])) {
|
|
$layout_area_id = $sessiondata['page_options']['page_option_layoutarea'];
|
|
}
|
|
|
|
if (isset($sessiondata['page_options']['page_option_active'])) {
|
|
$active = $sessiondata['page_options']['page_option_active'];
|
|
}
|
|
|
|
$query = "INSERT INTO main_page_link (
|
|
main_page_id,
|
|
main_sitepart_id,
|
|
main_sitepart_header_id,
|
|
main_collection_list,
|
|
main_collection_id,
|
|
main_collection_setup_id,
|
|
main_collection_page_list_id,
|
|
main_collection_items,
|
|
main_collection_view_type,
|
|
main_page_group,
|
|
main_page_group_code,
|
|
main_page_group_name,
|
|
main_page_group_link,
|
|
modified_user,
|
|
modified_date,
|
|
layout_area_id,
|
|
active,
|
|
sorting
|
|
)
|
|
VALUES (
|
|
'" . $_REQUEST["input_page_id"] . "',
|
|
'" . $sitepart_id . "',
|
|
'" . $header_id . "',
|
|
'" . $collection_list . "',
|
|
'" . $collection_id . "',
|
|
'" . $collection_setup_id . "',
|
|
'" . $collection_page_list_id . "',
|
|
'" . $collection_items . "',
|
|
'" . $collection_view_type . "',
|
|
'" . $main_page_group . "',
|
|
'" . $main_page_group_code . "',
|
|
'" . $main_page_group_name . "',
|
|
'" . $main_page_group_link . "',
|
|
" . (int)$GLOBALS["admin_user"]['id'] . ",
|
|
" . time() . ",
|
|
" . $layout_area_id . ",
|
|
" . $active . ",
|
|
" . $sorting . "
|
|
)
|
|
";
|
|
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$input_id = mysqli_insert_id($GLOBALS['mysql_con']);
|
|
|
|
$query = "UPDATE main_page set modified_date = " . time() . ", modified_user = " . (int)$GLOBALS["admin_user"]['id'] . " where id = '" . (int)$_REQUEST["input_page_id"]."'";
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
|
|
$_REQUEST['input_id'] = $input_id;
|
|
$_REQUEST['get_real_page_link_id'] = 0;
|
|
|
|
update_visitor_data(array(
|
|
'page_options' => array()
|
|
));
|
|
}
|
|
|
|
function set_component_link( $sitepart_id, $header_id, $collection_list = 0, $collection_id = 0, $collection_setup_id = 0, $collection_view_type = 0, $collection_items = 0, $collection_page_list_id = 0 ) {
|
|
$sorting = @mysqli_fetch_array(@mysqli_query($GLOBALS['mysql_con'], "SELECT MAX(sorting)+1 AS 'newsorting' FROM main_component_link WHERE main_component_id = '" . $_REQUEST["input_component_id"]."'"));
|
|
$sorting = ($sorting["newsorting"] <> "") ? $sorting = $sorting["newsorting"] : $sorting = 1;
|
|
|
|
$query = "INSERT INTO main_component_link (
|
|
main_component_id,
|
|
main_sitepart_id,
|
|
main_sitepart_header_id,
|
|
main_collection_list,
|
|
main_collection_id,
|
|
main_collection_setup_id,
|
|
main_collection_page_list_id,
|
|
main_collection_items,
|
|
main_collection_view_type,
|
|
modified_user,
|
|
modified_date,
|
|
sorting
|
|
) VALUES (
|
|
'" . $_REQUEST["input_component_id"] . "',
|
|
'" . $sitepart_id . "',
|
|
'" . $header_id . "',
|
|
'" . $collection_list . "',
|
|
'" . $collection_id . "',
|
|
'" . $collection_setup_id . "',
|
|
'" . $collection_page_list_id . "',
|
|
'" . $collection_items . "',
|
|
'" . $collection_view_type . "',
|
|
" . (int)$GLOBALS["admin_user"]['id'] . ",
|
|
" . time() . ",
|
|
" . $sorting . "
|
|
)
|
|
";
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$input_id = mysqli_insert_id($GLOBALS['mysql_con']);
|
|
|
|
$query = "UPDATE main_component set modified_date = " . time() . ", modified_user = " . (int)$GLOBALS["admin_user"]['id'] . " where id = '" . (int)$_REQUEST["input_component_id"]."'";
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
|
|
$_REQUEST['input_id'] = $input_id;
|
|
$_REQUEST['get_real_page_link_id'] = 0;
|
|
}
|
|
|
|
function is_page_edit() {
|
|
if ($_REQUEST["input_page_id"] && $_REQUEST["input_page_id"] != "") {
|
|
return TRUE;
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
function is_component_edit() {
|
|
if ($_REQUEST["input_component_id"] && $_REQUEST["input_component_id"] != "") {
|
|
return TRUE;
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
function is_contact_edit() {
|
|
if ($_REQUEST["input_contactform_id"] && $_REQUEST["input_contactform_id"] != "") {
|
|
return TRUE;
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
function set_multi_contact_link(
|
|
$sitepart_id,
|
|
$header_id,
|
|
$collection_list = 0,
|
|
$collection_id = 0,
|
|
$collection_setup_id = 0,
|
|
$collection_view_type = 0,
|
|
$collection_items = 0,
|
|
$collection_page_list_id = 0,
|
|
$main_page_group = 0,
|
|
$main_page_group_code = "",
|
|
$main_page_group_name = "",
|
|
$main_page_group_link = "",
|
|
$input_contactform_id = 0,
|
|
$contactform_line_id = 0
|
|
) {
|
|
|
|
|
|
$sorting = @mysqli_fetch_array(@mysqli_query($GLOBALS['mysql_con'], "SELECT MAX(sorting)+1 AS 'newsorting' FROM multi_contactform_link WHERE main_section_id = '" . $_REQUEST["input_section_id"] . "'"));
|
|
$sorting = ($sorting["newsorting"] <> "") ? $sorting = $sorting["newsorting"] : $sorting = 1;
|
|
|
|
$layout_area_id = 0;
|
|
$active = 0;
|
|
if(isset($_REQUEST['input_contactform_id'])){
|
|
$input_contactform_id = $_REQUEST['input_contactform_id'];
|
|
}
|
|
if(isset($_REQUEST['contactform_line_id'])){
|
|
$contactform_line_id = $_REQUEST['contactform_line_id'];
|
|
|
|
}
|
|
if(isset($_REQUEST['input_active'])){
|
|
$active = 1;
|
|
}
|
|
$sessiondata = get_visitor_data();
|
|
if (isset($_REQUEST['input_layout_area_id'])) {
|
|
$layout_area_id = $_REQUEST['input_layout_area_id'];
|
|
}
|
|
if (isset($sessiondata['page_options']['page_option_layoutarea'])) {
|
|
$layout_area_id = $sessiondata['page_options']['page_option_layoutarea'];
|
|
}
|
|
|
|
if (isset($sessiondata['page_options']['page_option_active'])) {
|
|
$active = $sessiondata['page_options']['page_option_active'];
|
|
}
|
|
$layout_class_defined = '';
|
|
if(isset($_REQUEST['layout_class_defined'])){
|
|
$layout_class_defined = $_REQUEST['layout_class_defined'];
|
|
}
|
|
$query = "INSERT INTO multi_contactform_link (
|
|
main_section_id,
|
|
main_sitepart_id,
|
|
main_sitepart_header_id,
|
|
main_collection_list,
|
|
main_collection_id,
|
|
main_collection_setup_id,
|
|
main_collection_section_list_id,
|
|
main_collection_items,
|
|
main_collection_view_type,
|
|
main_section_group,
|
|
main_section_group_code,
|
|
main_section_group_name,
|
|
main_section_group_link,
|
|
modified_user,
|
|
modified_date,
|
|
layout_area_id,
|
|
active,
|
|
sorting,
|
|
contact_form_id,
|
|
contactform_line_id,
|
|
layout_class_defined
|
|
)
|
|
VALUES (
|
|
'" . $_REQUEST["input_section_id"] . "',
|
|
'" . $sitepart_id . "',
|
|
'" . $header_id . "',
|
|
'" . $collection_list . "',
|
|
'" . $collection_id . "',
|
|
'" . $collection_setup_id . "',
|
|
'" . $collection_page_list_id . "',
|
|
'" . $collection_items . "',
|
|
'" . $collection_view_type . "',
|
|
'" . $main_page_group . "',
|
|
'" . $main_page_group_code . "',
|
|
'" . $main_page_group_name . "',
|
|
'" . $main_page_group_link . "',
|
|
" . (int)$GLOBALS["admin_user"]['id'] . ",
|
|
" . time() . ",
|
|
" . $layout_area_id . ",
|
|
" . $active . ",
|
|
" . $sorting . ",
|
|
".$input_contactform_id.",
|
|
".$contactform_line_id.",
|
|
'".$layout_class_defined."'
|
|
)
|
|
";
|
|
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$input_id = mysqli_insert_id($GLOBALS['mysql_con']);
|
|
|
|
$query = "UPDATE contactform_header set modified_date = " . time() . ", modified_user = " . (int)$GLOBALS["admin_user"]['id'] . " where id = '" . (int)$_REQUEST["input_contactform_id"]."'";
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
|
|
$_REQUEST['input_id'] = $_REQUEST["input_contactform_id"];
|
|
$_REQUEST['data-inputid'] = $input_id;
|
|
$_REQUEST['get_real_page_link_id'] = 0;
|
|
|
|
|
|
}
|
|
function is_collection_edit() {
|
|
$sessiondata = get_visitor_data();
|
|
|
|
if ($sessiondata['collection_options']['collection_edit'] === TRUE) {
|
|
return TRUE;
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Erzeugt eine selectbox zum auswaehlen von input-typen bei einer kollektion
|
|
*
|
|
* @access public
|
|
*
|
|
* @param string $name Label
|
|
* @param string $selectname name der selectbox
|
|
*
|
|
* @return void
|
|
*/
|
|
function create_collection_select( $collections, $name, $selectname = "input_choose_collection", $input_line, $disabled = FALSE, $chooseText = FALSE, $onchange = "" ) {
|
|
|
|
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
|
|
$siteparts = \DynCom\mysyde\common\classes\Siteparts::get();
|
|
$disabledText = "";
|
|
if ($disabled === TRUE) {
|
|
$disabledText = 'disabled="disabled"';
|
|
}
|
|
|
|
echo "<div class=\"label\"><label for=\"" . $selectname . "\">" . $name . "</label></div>";
|
|
echo "<div class=\"input\"><select " . $disabledText . " onchange=\"" . $onchange . "\" class=\"bigselect\" name=\"" . $selectname . "\" id=\"" . $selectname . "\">";
|
|
|
|
if ($chooseText === TRUE) {
|
|
echo "<option value=\"\">" . $translation->get("please_choose") . "</option>";
|
|
}
|
|
|
|
foreach ($collections as $setupId => $setupData) {
|
|
$selected = '';
|
|
|
|
if ($setupId == $input_line['main_collection_setup_id'] || $_REQUEST['filter_collection_setup_id'] == $setupId) {
|
|
$selected = 'selected="selected"';
|
|
}
|
|
echo "<option " . $selected . " value=\"" . $setupId . "\">" . $setupData['description'] . "</option>";
|
|
}
|
|
|
|
echo "</select>";
|
|
}
|
|
|
|
function create_contactform_select( $contactforms, $name, $selectname = "input_choose_collection", $input_line, $disabled = FALSE ) {
|
|
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
|
|
$siteparts = \DynCom\mysyde\common\classes\Siteparts::get();
|
|
$disabledText = "";
|
|
if ($disabled === TRUE) {
|
|
$disabledText = 'style="display:none;"';
|
|
}
|
|
|
|
echo "<div " . $disabledText . " class=\"registration_select\">";
|
|
|
|
echo "<div class=\"label\"><label for=\"" . $selectname . "\">" . $name . "</label></div>";
|
|
echo "<div class=\"input\"><select class=\"bigselect\" name=\"" . $selectname . "\" id=\"" . $selectname . "\">";
|
|
|
|
foreach ($contactforms as $setupId => $setupData) {
|
|
$selected = '';
|
|
|
|
if ($setupId == $input_line['registration_contactform_id'] || $_REQUEST['registration_contactform_id'] == $setupId) {
|
|
$selected = 'selected="selected"';
|
|
}
|
|
echo "<option " . $selected . " value=\"" . $setupId . "\">" . $setupData['description'] . "</option>";
|
|
}
|
|
|
|
echo "</select>";
|
|
|
|
echo "</div></div>";
|
|
}
|
|
|
|
/**
|
|
* Erzeugt eine selectbox zum auswählen von Seiten, die eine Kollektionsliste enthalten
|
|
*
|
|
* @access public
|
|
*
|
|
* @param string $name Label
|
|
* @param string $selectname name der selectbox
|
|
*
|
|
* @return void
|
|
*/
|
|
function create_page_with_collection_select( $collection_setup_id, $name, $selectname = "input_choose_collection", $input_line, $disabled = FALSE ) {
|
|
|
|
if ((int)$collection_setup_id <= 0) {
|
|
return;
|
|
}
|
|
|
|
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
|
|
$siteparts = \DynCom\mysyde\common\classes\Siteparts::get();
|
|
$disabledText = "";
|
|
if ($disabled === TRUE) {
|
|
$disabledText = 'disabled="disabled"';
|
|
}
|
|
|
|
$pageIds = array();
|
|
$query = "SELECT main_page_id FROM main_page_link WHERE main_collection_setup_id = '" . $collection_setup_id."'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
while ($row = @mysqli_fetch_array($result, 1)) {
|
|
$pageIds[] = $row['main_page_id'];
|
|
}
|
|
|
|
if (count($pageIds) == 0) {
|
|
echo "<p class=\"bold info\">Keine Seite mit diesem Kollektionstyp gefunden.</p>";
|
|
return;
|
|
}
|
|
|
|
$pages = array();
|
|
// $query = "SELECT * FROM main_navigation WHERE forward_page_id IN (" . join(",", $pageIds) . ") AND forward_type = 1 AND main_language_id = " . $GLOBALS["language"]['id'];
|
|
$querySetup = "SELECT * FROM main_collection_setup WHERE id = ".$collection_setup_id;
|
|
$resultSetup = @mysqli_query($GLOBALS['mysql_con'], $querySetup);
|
|
$rowSetup = @mysqli_fetch_array($resultSetup);
|
|
if($rowSetup['main_language_id'] != $GLOBALS["language"]['id'] && $rowSetup['is_multidomain'] == 1){
|
|
$query = "SELECT * FROM main_navigation WHERE forward_page_id IN (" . join(",", $pageIds) . ") AND forward_type = 1 " ;
|
|
}else{
|
|
$query = "SELECT * FROM main_navigation WHERE forward_page_id IN (" . join(",", $pageIds) . ") AND forward_type = 1 AND main_language_id = " . $GLOBALS["language"]['id'];
|
|
}
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
while ($row = @mysqli_fetch_array($result, 1)) {
|
|
$pages[$row['id']] = $row;
|
|
}
|
|
|
|
if (count($pages) == 0) {
|
|
echo "<p class=\"bold info\">Keine Seite mit diesem Kollektionstyp gefunden.</p>";
|
|
return;
|
|
}
|
|
|
|
echo "<div class=\"label\"><label for=\"" . $selectname . "\">" . $name . "</label></div>";
|
|
echo "<div class=\"input\"><select " . $disabledText . " class=\"bigselect\" name=\"" . $selectname . "\" id=\"" . $selectname . "\">";
|
|
|
|
foreach ($pages as $pageId => $pageData) {
|
|
$selected = '';
|
|
// multi-setup site name
|
|
$query = "SELECT ms.name FROM main_site as ms WHERE ms.id= ".$pageData['main_site_id']." LIMIT 1";
|
|
|
|
$resultSite = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$siteData = @mysqli_fetch_array($resultSite);
|
|
$Sitename = "";
|
|
if(count($siteData) > 0){
|
|
$Sitename = ' - '.$siteData['name'];
|
|
}
|
|
// site name
|
|
|
|
if ($pageId == $input_line[$selectname]) {
|
|
$selected = 'selected="selected"';
|
|
}
|
|
echo "<option " . $selected . " value=\"" . $pageId . "\">" . $pageData['menu_name'] . $Sitename. "</option>";
|
|
}
|
|
|
|
echo "</select>";
|
|
}
|
|
|
|
function create_collection_preview_group_select( $collection_setup_id, $page_link_id, $active_groups = array() ) {
|
|
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
|
|
|
|
$query = "SELECT * FROM main_collection_setup_group WHERE main_collection_setup_id = '" . $collection_setup_id."'";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (@mysqli_num_rows($result) == 0) {
|
|
return;
|
|
}
|
|
|
|
echo "<div class=\"clearfix\"></div>";
|
|
|
|
echo "<h2>" . $translation->get("collection_groups") . "</h2>";
|
|
|
|
|
|
?>
|
|
<!-- while start -->
|
|
<div class="label"></div>
|
|
<div class="groups bc-select-ui ui fluid multiple search selection dropdown" style="clear:both;display:inline-block;">
|
|
<input type="hidden" name="select_group">
|
|
<i class="dropdown icon"></i>
|
|
<div class="default text"><?php echo $translation->get("collection_groups"); ?></div>
|
|
<div class="menu">
|
|
<?
|
|
|
|
|
|
while($row = @mysqli_fetch_array($result)) {
|
|
|
|
echo "<div class=\"item\" data-value=\"{$row['id']}\">".$row["description"]."</div>";
|
|
|
|
}
|
|
|
|
?>
|
|
</div>
|
|
</div>
|
|
<!-- While End -->
|
|
<?
|
|
?>
|
|
<script type="text/javascript" src="/plugins/jquery/jquery-3.5.1.min.js"></script>
|
|
<script type="text/javascript" src="/plugins/Semantic-UI-master/semantic.min.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/plugins/Semantic-UI-master/bc-semantic.css?time=<?= filemtime($_SERVER['DOCUMENT_ROOT'] . '/plugins/Semantic-UI-master/bc-semantic.css')?>">
|
|
<script>
|
|
var $y = jQuery.noConflict();
|
|
|
|
$y( document ).ready(function() {
|
|
$y('.groups.ui.fluid.multiple.dropdown').dropdown('set selected', <?= json_encode($active_groups) ?>);
|
|
});
|
|
|
|
|
|
</script>
|
|
<?
|
|
|
|
}
|
|
|
|
function update_sitepart_changes( $sitepartId, $headerId, $delete = FALSE ) {
|
|
|
|
$languageId = (int)$GLOBALS["language"]['id'];
|
|
|
|
if ($delete === TRUE) {
|
|
$query = "DELETE FROM main_sitepart_changes where main_language_id = " . $languageId . " and main_sitepart_id = " . (int)$sitepartId . " and main_sitepart_header_id = '" . (int)$headerId."'";
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
return;
|
|
}
|
|
|
|
// check if row exists
|
|
$query = "SELECT id from main_sitepart_changes where main_language_id = '" . $languageId . "' and main_sitepart_id = '" . (int)$sitepartId . "' and main_sitepart_header_id = '" . (int)$headerId."'";
|
|
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$num_rows = @mysqli_num_rows($result);
|
|
if ($num_rows >= 1) {
|
|
$query = "update main_sitepart_changes SET
|
|
modified_date = " . time() . ",
|
|
modified_user = " . (int)$GLOBALS["admin_user"]['id'] . "
|
|
WHERE main_language_id = " . $languageId . " and main_sitepart_id = " . (int)$sitepartId . " and main_sitepart_header_id = '" . (int)$headerId."'";
|
|
} else {
|
|
$query = "insert into main_sitepart_changes (main_language_id, main_sitepart_id, main_sitepart_header_id, modified_date, modified_user) VALUES (
|
|
" . $languageId . ",
|
|
" . $sitepartId . ",
|
|
'" . $headerId . "',
|
|
" . time() . ",
|
|
" . (int)$GLOBALS["admin_user"]['id'] . "
|
|
)";
|
|
}
|
|
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
}
|
|
|
|
|
|
//Alte Input-funktion
|
|
//function input($name,$inputname,$typ,$value = NULL,$maxlength = NULL,$disabled = FALSE) {
|
|
// echo "<div class=\"label\"><label for=\"" . $inputname . "\">" . htmlspecialchars($name, ENT_QUOTES, "UTF-8") . "</label></div>";
|
|
// $disabled_text = ($disabled) ? " disabled=\"disabled\"" : "";
|
|
// $maxlength_text = ($maxlength <> '') ? " maxlength=\"" . $maxlength . "\"" : "";
|
|
// switch($typ) {
|
|
// case "smalltextarea": echo "<div class=\"input\"><textarea name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"small\"" . $disabled_text . $maxlength_text . ">" . $value . "</textarea></div>\n"; break;
|
|
// case "textarea": echo "<div class=\"input\"><textarea name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"normal\"" . $disabled_text . $maxlength_text . ">" . $value . "</textarea></div>\n"; break;
|
|
// case "file": echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"file\" /></div>\n"; break;
|
|
// case "checkbox": $checked_text = ($value) ? "checked=\"checked\"" : ""; echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"checkbox\" type=\"checkbox\"" . $disabled_text . $checked_text . "/></div>\n"; break;
|
|
// case "checkbox_with_formreload": $checked_text = ($value) ? "checked=\"checked\"" : ""; echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"checkbox\" type=\"checkbox\"" . $disabled_text . $checked_text . " onclick=\"this.form.submit();\"/></div>\n"; break;
|
|
// case "password": echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"code\" type=\"password\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" /></div>\n"; break;
|
|
// case "input_pref_delivery_date": echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"code\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" /><img src=\"/layout/frontend/bluestar/img/calendar_icon.png\" width=\"15\" height=\"16\" onclick='fPopCalendar(\"date\")' /></div> \n"; break;
|
|
// default: echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" /></div>\n"; break;
|
|
// }
|
|
//}
|
|
|
|
function input( $name, $inputname, $typ, $value = "on", $maxlength = NULL, $disabled = FALSE, $evaluate = FALSE, $script = "", $idSuffix = '' ) {
|
|
if ($evaluate && $value == "") {
|
|
//$eval_string = "<font color=\"red\">Bitte füllen Sie dieses Feld aus</font>";
|
|
$typ = $typ . "_error";
|
|
} else {
|
|
//$eval_string = "";
|
|
}
|
|
$eval_string = "";
|
|
if ($typ != "smalltext_cc_2_error" && $typ != "hidden") {
|
|
echo "<div class=\"label\"><label for=\"" . $inputname . "\">" . $name . "</label></div>";
|
|
}
|
|
$disabled_text = ($disabled) ? " disabled=\"disabled\"" : "";
|
|
$maxlength_text = ($maxlength <> '') ? " maxlength=\"" . $maxlength . "\"" : "";
|
|
$value = htmlspecialchars($value);
|
|
if ($typ == "checkbox") {
|
|
if ($value == 1) {
|
|
$value = "on";
|
|
} else if ($value == 0) {
|
|
$value = "";
|
|
}
|
|
}
|
|
//$checked_text = "on";
|
|
|
|
switch ($typ) {
|
|
case "smalltextarea":
|
|
echo "<div class=\"input\"><textarea name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"small\"" . $disabled_text . $maxlength_text . ">" . $value . "</textarea></div>\n";
|
|
break;
|
|
case "textarea":
|
|
echo "<div class=\"input\"><textarea name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"normal\"" . $disabled_text . $maxlength_text . ">" . $value . "</textarea></div>\n";
|
|
break;
|
|
case "smalltext_cn_1_error":
|
|
echo "<div class=\"input_2\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "\n";
|
|
break;
|
|
case "smalltext_cn_1":
|
|
echo "<div class=\"input_2\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "\n";
|
|
break;
|
|
case "smalltext_cn_2_error":
|
|
echo "<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "\n";
|
|
break;
|
|
case "smalltext_cn_2":
|
|
echo "<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "\n";
|
|
break;
|
|
case "file":
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"file\" /></div>\n";
|
|
break;
|
|
case "checkbox":
|
|
$checked_text = ($value == "on") ? "checked=\"checked\"" : "";
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname.$idSuffix . "\" class=\"checkbox\" type=\"checkbox\"" . $disabled_text . $checked_text . " " . $script . "/>" . $eval_string . "</div>\n";
|
|
break;
|
|
case "checkbox_shop":
|
|
$checked_text = ($value == "on") ? "checked=\"checked\"" : "";
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"checkbox_shop\" type=\"checkbox\"" . $disabled_text . $checked_text . " " . $script . "/>" . $eval_string . "</div>\n";
|
|
break;
|
|
case "checkbox_with_formreload":
|
|
$checked_text = ($value) ? "checked=\"checked\"" : "";
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"checkbox\" type=\"checkbox\"" . $disabled_text . $checked_text . " onclick=\"this.form.submit();\"/>" . $eval_string . "</div>\n";
|
|
break;
|
|
case "checkbox_with_formreload_checked":
|
|
$checked_text = ($value) ? "checked=\"checked\"" : "";
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"checkbox\" type=\"checkbox\"" . $disabled_text . $checked_text . " onclick=\"this.form.submit();\"/></div>\n";
|
|
break;
|
|
case "password":
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"code\" type=\"password\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" /></div>\n";
|
|
break;
|
|
case "date":
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"datepicker\" type=\"text\"" . $script . $disabled_text . $maxlength_text . " value=\"" . $value . "\" /></div> \n";
|
|
break;
|
|
case "input_pref_delivery_date":
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"code\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " readonly /></div> \n";
|
|
break;
|
|
//case "input_pref_delivery_date": echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"code\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" /><img src=\"/layout/frontend/haendler/img/calendar_icon.png\" width=\"15\" height=\"16\" onclick='fPopCalendar(\"date\")' /></div> \n"; break;
|
|
case "hidden":
|
|
echo "<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"hidden\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />\n";
|
|
break;
|
|
case "number":
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"number\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " min=\"0\" />" . $eval_string . "</div>\n";
|
|
break;
|
|
default:
|
|
echo "<div class=\"input\"><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"" . $typ . "\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "</div>\n";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function input_shop($name = '', $inputname = '', $typ = '', $value = "on", $maxlength = NULL, $disabled = FALSE, $evaluate = FALSE, $script = "", $required = false) {
|
|
if ($evaluate && $value == "") {
|
|
$error = "has-danger";
|
|
}else{
|
|
$error = "";
|
|
}
|
|
$eval_string = "";
|
|
|
|
if ($typ != "smalltext_cc_2_error" && $typ != "smalltext_cn_2" && $name != "") {
|
|
$label = "<label for=\"" . $inputname . "\">" . $name . "</label>";
|
|
}else{
|
|
$label = "";
|
|
}
|
|
$disabled_text = ($disabled) ? " disabled=\"disabled\"" : "";
|
|
$maxlength_text = ($maxlength <> '') ? " maxlength=\"" . $maxlength . "\"" : "";
|
|
if ($typ == "checkbox") {
|
|
if ($value == 1) {
|
|
$value = "on";
|
|
} else if ($value == 0) {
|
|
$value = "";
|
|
}
|
|
}
|
|
$reg_val = '';
|
|
if ($required) {
|
|
$req_val = " required";
|
|
}
|
|
$error .= $req_val;
|
|
//$checked_text = "on";
|
|
switch ($typ) {
|
|
case "smalltextarea":
|
|
echo "<div class=\"input form-group ".$typ." ".$error."\">".$label."<textarea name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"small form-control\"" . $disabled_text . $maxlength_text . ">" . $value . "</textarea></div>\n";
|
|
break;
|
|
case "textarea":
|
|
$breaks = array("<br />","<br>","<br/>");
|
|
$value = str_ireplace($breaks, "\r\n", $value);
|
|
echo "<div class=\"input form-group ".$typ." ".$error."\">".$label."<textarea name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"normal form-control\"" . $disabled_text . $maxlength_text . ">" . $value . "</textarea></div>\n";
|
|
break;
|
|
case "smalltext_cn_1_error":
|
|
echo "<div class=\"input_2 form-group ".$typ." ".$error."\">".$label."<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\" form-control " . $typ . "\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "\n";
|
|
break;
|
|
case "smalltext_cn_1":
|
|
echo "<div class=\"input_2 form-group ".$typ." ".$error."\">".$label."<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\" form-control " . $typ . "\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "\n";
|
|
break;
|
|
case "smalltext_cn_2_error":
|
|
echo "<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\" form-control " . $typ . " ".$error."\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "\n";
|
|
break;
|
|
case "smalltext_cn_2":
|
|
echo "<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\" form-control " . $typ . " ".$error."\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "\n";
|
|
break;
|
|
case "file":
|
|
echo "<div class=\"input form-group ".$typ." ".$error."\">".$label."<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\" form-control " . $typ . "\" type=\"file\" /></div>\n";
|
|
break;
|
|
case "checkbox":
|
|
$checked_text = ($value == "on") ? "checked=\"checked\"" : "";
|
|
echo "<div class=\"input form-group ".$typ." ".$error." form-check ".$inputname."\"><label class='form-check-label'><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"form-check-input\" type=\"checkbox\"" . $disabled_text . $checked_text . " " . $script . "/>".$name."</label></div>\n";
|
|
break;
|
|
case "checkbox_action":
|
|
$checked_text = ($value == "on") ? "checked=\"checked\"" : "";
|
|
echo "<div class=\"input form-group ".$typ." ".$error." form-check\"><label class='form-check-label color-action'><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"form-check-input\" type=\"checkbox\"" . $disabled_text . $checked_text . " " . $script . "/>".$name."</label></div>\n";
|
|
break;
|
|
case "checkbox_shop":
|
|
$checked_text = ($value == "on") ? "checked=\"checked\"" : "";
|
|
echo "<div class=\"input form-group ".$typ." ".$error." form-check\"><label class='form-check-label'><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"form-check-input\" type=\"checkbox\"" . $disabled_text . $checked_text . " " . $script . "/>".$name."</label></div>\n";
|
|
break;
|
|
case "checkbox_with_formreload":
|
|
$checked_text = ($value) ? "checked=\"checked\"" : "";
|
|
echo "<div class=\"input form-group ".$typ." ".$error." form-check\"><label class='form-check-label'><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"form-check-input\" type=\"checkbox\"" . $disabled_text . $checked_text . " onclick=\"this.form.submit();\"/>".$name."</label></div>\n";
|
|
break;
|
|
case "checkbox_with_formreload_checked":
|
|
$checked_text = ($value) ? "checked=\"checked\"" : "";
|
|
echo "<div class=\"input form-group ".$typ." ".$error." form-check\"><label class='form-check-label'><input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"checkbox form-control\" type=\"checkbox\"" . $disabled_text . $checked_text . " onclick=\"this.form.submit();\"/>".$name."</label></div>\n";
|
|
break;
|
|
case "password":
|
|
echo "<div class=\"input form-group ".$typ." ".$error."\">".$label."<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"code form-control\" type=\"password\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" /></div>\n";
|
|
break;
|
|
case "date":
|
|
echo "<div class=\"input form-group ".$typ." ".$error."\">".$label."<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"datepicker form-control\" type=\"text\"" . $script . $disabled_text . $maxlength_text . " value=\"" . $value . "\" /></div> \n";
|
|
break;
|
|
case "input_pref_delivery_date":
|
|
echo "<div class=\"input form-group ".$typ." ".$error."\">".$label."<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"datepicker form-control\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " readonly /></div> \n";
|
|
break;
|
|
default:
|
|
echo "<div class=\"input form-group ".$typ." ".$error."\">".$label."<input name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\" form-control " . $typ . "\" type=\"text\"" . $disabled_text . $maxlength_text . " value=\"" . $value . "\" " . $script . " />" . $eval_string . "</div>\n";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function text( $name, $value ) {
|
|
echo "<div class=\"label\"><label>" . $name . "</label></div>";
|
|
echo "<div class=\"input\"><input type=\"text\" class=\"text\" disabled=\"disabled\" value=\"" . $value . "\" /></div>\n";
|
|
}
|
|
|
|
function input_select( $name, $inputname, $values, $value_names, $preselect = "", $disabled = FALSE, $auto_update = FALSE, $onchange = "" ) {
|
|
$disabled_text = ($disabled) ? " disabled=\"disabled\"" : "";
|
|
$autoupdate_text = ($auto_update) ? " onchange=\"this.form.submit();\"" : "";
|
|
echo "<div class=\"label\"><label for=\"" . $inputname . "\">" . $name . "</label></div>";
|
|
echo "<div class=\"input\">\n\t<select " . $onchange . " " . $disabled_text . $autoupdate_text . " name=\"" . $inputname . "\" id=\"" . $inputname . "\" class=\"select\">\n";
|
|
FOR ($i = 0; $i < count($values); $i++) {
|
|
echo "\t\t<option value=\"" . $values[$i] . "\"";
|
|
IF ($values[$i] == $preselect) {
|
|
echo " selected=\"selected\" ";
|
|
}
|
|
echo ">" . $value_names[$i] . "</option>\n";
|
|
}
|
|
echo "\t</select>\n</div>\n";
|
|
}
|
|
|
|
// Gibt die Meta-Tags der aktuellen Navigation als DIV-Boxen zurück
|
|
function get_search_tags( $navigation = '' ) {
|
|
if ($navigation == '') {
|
|
$navigation = $GLOBALS["navigation"];
|
|
}
|
|
if ($navigation["search_tags"] <> '') {
|
|
echo "<div class=\"search_tags\">\n";
|
|
$search_tags = explode(",", $navigation["meta_keywords"]);
|
|
foreach ($search_tags as $value) {
|
|
echo "<span>" . $value . "</span>\n";
|
|
}
|
|
echo "</div>\n";
|
|
}
|
|
}
|
|
|
|
// Prüft ob das Projekt lokal oder auf dem Webserver läuft
|
|
function local_environment() {
|
|
return ((strtoupper(substr(php_uname('s'), 0, 3)) === 'WIN'));
|
|
}
|
|
|
|
|
|
function show_ck_editor( $content, $style, $css_path, $style_path, $name = "textcontent" ) {
|
|
$path = realpath(__DIR__ . DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . 'Registry.php');
|
|
if (file_exists($path)) {
|
|
require_once($path);
|
|
}
|
|
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
|
|
if ($style == "dc") {
|
|
echo("<textarea name=$name id=$name>" . $content . "</textarea>
|
|
<script type='text/javascript'>
|
|
var editor = CKEDITOR.replace( '$name',{
|
|
customConfig: '/plugins/ckeditor/" . $style . "_config.js',
|
|
contentsCss: '/" . $css_path . "',
|
|
filebrowserBrowseUrl : '/plugins/ckfinder/ckfinder.html',
|
|
filebrowserImageBrowseUrl : '/plugins/ckfinder/ckfinder.html?type=Images',
|
|
filebrowserFlashBrowseUrl : '/plugins/ckfinder/ckfinder.html?type=Flash',
|
|
filebrowserUploadUrl :
|
|
'/plugins/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
|
|
filebrowserImageUploadUrl :
|
|
'/plugins/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
|
|
filebrowserFlashUploadUrl : '/plugins/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash',
|
|
on: {
|
|
save: function(evt) {
|
|
if(jQuery('body').hasClass(\"ckeditor_maximized\")) {
|
|
alert('" . $translation->get('ckeditor_save_error1') . "');
|
|
return false;
|
|
}
|
|
|
|
setFormname(jQuery('#textcontent').closest('form').attr('id'));
|
|
loadCard('save', true);
|
|
return false;
|
|
},
|
|
|
|
maximize: function(e) {
|
|
if(e.editor.getCommand('maximize').state == CKEDITOR.TRISTATE_ON){
|
|
jQuery('body').addClass(\"ckeditor_maximized\");
|
|
} else {
|
|
// minimized
|
|
// remove special css from body
|
|
jQuery('body').removeClass(\"ckeditor_maximized\");
|
|
}
|
|
}
|
|
}
|
|
} );
|
|
</script>");
|
|
} elseif ($style == "minimal") {
|
|
echo("<textarea name=textcontent id=textcontent>" . $content . "</textarea>
|
|
<script type='text/javascript'>
|
|
var editor = CKEDITOR.replace( 'textcontent',{
|
|
customConfig: '/plugins/ckeditor/" . $style . "_config.js',
|
|
filebrowserImageBrowseUrl : '/plugins/ckfinder/ckfinder.html?type=Images',
|
|
filebrowserImageUploadUrl :
|
|
'/plugins/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'
|
|
} );
|
|
</script>");
|
|
} else {
|
|
echo("<textarea name=textcontent id=textcontent>" . $content . "</textarea>
|
|
<script type='text/javascript'>
|
|
var editor = CKEDITOR.replace( 'textcontent',{
|
|
customConfig: '/plugins/ckeditor/" . $style . "_config.js',
|
|
stylesSet: 'my_styles:/" . $style_path . "',
|
|
contentsCss: '/" . $css_path . "'
|
|
});
|
|
editor.on('instanceReady', function (evt) { evt.editor.execCommand('maximize'); });
|
|
</script>");
|
|
}
|
|
}
|
|
|
|
//Gibt Längen- und Breitengrad als Array für als String mitgelieferte Adresse aus
|
|
function geoencode( $adress ) {
|
|
$ch = curl_init();
|
|
curl_setopt($ch, CURLOPT_URL, "http://maps.google.com/maps/api/geocode/json?address=" . urlencode($adress) . "&sensor=false");
|
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
|
|
$json_data = curl_exec($ch);
|
|
$json_array = json_decode($json_data, TRUE);
|
|
$latlng_array = $json_array['results'][0]['geometry']['location'];
|
|
|
|
return $latlng_array;
|
|
}
|
|
|
|
//Value von Checkboxen in 1 oder 0 umwandeln
|
|
function change_checkboxval_to_bool( $var ) {
|
|
if ($var == "on") {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
function create_meta_tags() {
|
|
|
|
$pageData = $GLOBALS["page"];
|
|
|
|
// Meta-Daten aus Sprache füllen
|
|
$site_title = $GLOBALS["navigation"]['menu_name'];
|
|
$meta_description = $GLOBALS["language"]["meta_description"];
|
|
$meta_keywords = $GLOBALS["language"]["meta_keywords"];
|
|
|
|
if(isset($_GET['collection_id']) && (int)$_GET['collection_id'] > 0) {
|
|
$query = "SELECT description FROM main_collection where id = '" . $_GET['collection_id']."'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
|
|
$row = @mysqli_fetch_array($result);
|
|
$pageData['subtitle'] = $row['description'];
|
|
$GLOBALS["page"]["subtitle"] = $row['description'];
|
|
}
|
|
|
|
// Meta-Daten aus Navigation füllen
|
|
if ($pageData['subtitle'] != "") {
|
|
$site_title = $pageData['subtitle'];
|
|
if ($GLOBALS["language"]["site_title_name"] <> '') {
|
|
$site_title .= ' - ' . $GLOBALS["language"]["site_title_name"];
|
|
}
|
|
}
|
|
if ($pageData["meta_description"] <> '') {
|
|
$meta_description = $pageData["meta_description"];
|
|
}
|
|
|
|
if ($pageData["meta_keywords"] <> '') {
|
|
$meta_keywords = $pageData["meta_keywords"];
|
|
}
|
|
|
|
// Meta-Daten für News füllen
|
|
/*
|
|
$query = "SELECT * FROM main_navigation_has_sitepart WHERE main_navigation_id = ". $navigation["id"] . " AND main_sitepart_id = 2 LIMIT 1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$navigation_has_sitepart = @mysqli_fetch_array($result);
|
|
if ($_GET["news" . $navigation_has_sitepart["id"]] <> '') {
|
|
$query = "SELECT * FROM news_entry WHERE id = ". $_GET["news" . $navigation_has_sitepart["id"]] . " LIMIT 1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$news = @mysqli_fetch_array($result);
|
|
if ($news["headline"] <> '') {
|
|
$site_title = $news["headline"];
|
|
if ($GLOBALS["language"]["site_title_name"] <> '') {
|
|
$site_title .= ' - ' . $GLOBALS["language"]["site_title_name"];
|
|
}
|
|
}
|
|
if ($news["summary"] <> '') {
|
|
$news["summary"] = str_replace("\n", "", $news["summary"]);
|
|
$news["summary"] = str_replace("\r", "", $news["summary"]);
|
|
$meta_description = $news["summary"];
|
|
}
|
|
if ($news["meta_keywords"] <> '') {
|
|
$meta_keywords = $news["meta_keywords"];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
//Metadaten nur für Shop
|
|
if (is_array($GLOBALS['shop'])) {
|
|
set_global_metadata_shop();
|
|
if(strlen($GLOBALS['site_title']) > 0) {
|
|
$site_title = $GLOBALS['site_title'];
|
|
}
|
|
if(strlen($GLOBALS['meta_description']) > 0) {
|
|
$meta_description = $GLOBALS['meta_description'];
|
|
$meta_description = html_entity_decode($meta_description);
|
|
$meta_description = preg_replace("!\s+!",' ',$meta_description);
|
|
$meta_description = htmlentities($meta_description);
|
|
}
|
|
if(strlen($GLOBALS['meta_keywords']) > 0) {
|
|
$meta_keywords = $GLOBALS['meta_keywords'];
|
|
}
|
|
}
|
|
if ($site_title <> '') {
|
|
echo "<title>" . $site_title . "</title>\n";
|
|
}
|
|
if ($meta_keywords <> '') {
|
|
$GLOBALS["meta_keywords"] = $meta_keywords;
|
|
echo "<meta name=\"Keywords\" content=\"" . $meta_keywords . "\" />\n";
|
|
}
|
|
if ($meta_description <> '') {
|
|
echo "<meta name=\"Description\" content=\"" . $meta_description . "\" />\n";
|
|
}
|
|
}
|
|
|
|
function set_global_meta_tag_content_site() {
|
|
|
|
$pageData = $GLOBALS["page"];
|
|
|
|
// Meta-Daten aus Sprache füllen
|
|
$site_title = $GLOBALS["navigation"]['menu_name'];
|
|
$meta_description = $GLOBALS["language"]["meta_description"];
|
|
$meta_keywords = $GLOBALS["language"]["meta_keywords"];
|
|
|
|
if(isset($_GET['collection_id']) && (int)$_GET['collection_id'] > 0) {
|
|
$query = "SELECT description FROM main_collection where id = '" . $_GET['collection_id']."'";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
|
|
$row = @mysqli_fetch_array($result);
|
|
$pageData['subtitle'] = $row['description'];
|
|
$GLOBALS["page"]["subtitle"] = $row['description'];
|
|
}
|
|
|
|
// Meta-Daten aus Navigation füllen
|
|
if ($pageData['subtitle'] != "") {
|
|
$site_title = $pageData['subtitle'];
|
|
if ($GLOBALS["language"]["site_title_name"] <> '') {
|
|
$site_title .= ' - ' . $GLOBALS["language"]["site_title_name"];
|
|
}
|
|
}
|
|
if ($pageData["meta_description"] <> '') {
|
|
$meta_description = $pageData["meta_description"];
|
|
}
|
|
|
|
if ($pageData["meta_keywords"] <> '') {
|
|
$meta_keywords = $pageData["meta_keywords"];
|
|
}
|
|
|
|
// Meta-Daten für News füllen
|
|
/*
|
|
$query = "SELECT * FROM main_navigation_has_sitepart WHERE main_navigation_id = ". $navigation["id"] . " AND main_sitepart_id = 2 LIMIT 1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$navigation_has_sitepart = @mysqli_fetch_array($result);
|
|
if ($_GET["news" . $navigation_has_sitepart["id"]] <> '') {
|
|
$query = "SELECT * FROM news_entry WHERE id = ". $_GET["news" . $navigation_has_sitepart["id"]] . " LIMIT 1";
|
|
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
|
|
if (@mysqli_num_rows($result) == 1) {
|
|
$news = @mysqli_fetch_array($result);
|
|
if ($news["headline"] <> '') {
|
|
$site_title = $news["headline"];
|
|
if ($GLOBALS["language"]["site_title_name"] <> '') {
|
|
$site_title .= ' - ' . $GLOBALS["language"]["site_title_name"];
|
|
}
|
|
}
|
|
if ($news["summary"] <> '') {
|
|
$news["summary"] = str_replace("\n", "", $news["summary"]);
|
|
$news["summary"] = str_replace("\r", "", $news["summary"]);
|
|
$meta_description = $news["summary"];
|
|
}
|
|
if ($news["meta_keywords"] <> '') {
|
|
$meta_keywords = $news["meta_keywords"];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
|
|
if ($site_title <> '') {
|
|
$GLOBALS['site_title'] = $site_title;
|
|
} else {
|
|
$GLOBALS['site_title'] = NULL;
|
|
}
|
|
if ($meta_keywords <> '') {
|
|
$GLOBALS["meta_keywords"] = $meta_keywords;
|
|
} else {
|
|
$GLOBALS["meta_keywords"] = NULL;
|
|
}
|
|
if ($meta_description <> '') {
|
|
$GLOBALS['meta_description'] = $meta_description;
|
|
} else {
|
|
$GLOBALS['meta_description'] = NULL;
|
|
}
|
|
}
|
|
|
|
//warenkorb zwischenseite "Lightbox"
|
|
function get_shadow_queue() {
|
|
|
|
$body = "";
|
|
if ($_GET["action"] == "shop_add_item_to_basket_card" || $_GET["action"] == "shop_add_item_to_basket_list" || $_GET["action"] == "shop_add_item_to_basket") {
|
|
$body = "<div id=\"shadow\" class=\"shadow_bg\" onclick='hide();return false;'></div>";
|
|
}
|
|
return $body;
|
|
}
|
|
|
|
function is_item_no( $string ) {
|
|
$pattern = '/^[0-9]+-?[0-9]*$/';
|
|
$result = preg_match($pattern, $string);
|
|
if ($result === 1) {
|
|
return TRUE;
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
function cologne_phon( $word ) {
|
|
$query = 'SELECT cologne_phon(\'' . mysqli_real_escape_string($GLOBALS['mysql_con'],trim($word)) . '\')';
|
|
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
|
|
$cologne_phon = @mysqli_result($result);
|
|
if(strlen($cologne_phon) > 0) {
|
|
$return_value = preg_replace('!\s+!', ' ', $cologne_phon);
|
|
return $return_value;
|
|
}
|
|
|
|
/**
|
|
* @param string $word string to be analyzed
|
|
*
|
|
* @return string $value represents the Kölner Phonetik value
|
|
* @access public
|
|
*/
|
|
|
|
// prepare for processing
|
|
$value = array();
|
|
$value_2 = array();
|
|
$value_3 = array();
|
|
$word = strtolower($word);
|
|
$substitution = array(
|
|
"ä" => "a",
|
|
"ö" => "o",
|
|
"ü" => "u",
|
|
"ß" => "ss",
|
|
"ph" => "f",
|
|
" " => "|"
|
|
);
|
|
foreach ($substitution as $letter => $subst) {
|
|
$word = str_replace($letter, $subst, $word);
|
|
}
|
|
|
|
$len = strlen($word);
|
|
|
|
// Rule for exeptions
|
|
$exceptionsLeading1 = array(
|
|
4 => array("ca", "ch", "ck", "cl", "co", "cq", "cu", "cx")
|
|
);
|
|
|
|
$exl1 = array("ca", "ch", "ck", "cl", "co", "cq", "cu", "cx");
|
|
|
|
$exceptionsLeading2 = array(
|
|
8 => array("dc", "ds", "dz", "tc", "ts", "tz")
|
|
);
|
|
|
|
$exl2 = array("dc", "ds", "dz", "tc", "ts", "tz");
|
|
|
|
$exceptionsLeading3 = array(
|
|
4 => array("ac,ak,ec,ek,ic,ik,oc,ok,uc,uk")
|
|
);
|
|
|
|
$exl3 = array("ac,ak,ec,ek,ic,ik,oc,ok,uc,uk");
|
|
|
|
$exceptionsFollowing = array("sc", "zc", "cx", "kx", "qx");
|
|
|
|
//Table for coding
|
|
$codingTable = array(
|
|
0 => array("a", "e", "i", "j", "o", "u", "y"),
|
|
1 => array("b", "p"),
|
|
2 => array("d", "t"),
|
|
3 => array("f", "v", "w"),
|
|
4 => array("c", "g", "k", "q"),
|
|
48 => array("x"),
|
|
5 => array("l"),
|
|
6 => array("m", "n"),
|
|
7 => array("r"),
|
|
8 => array(),
|
|
9 => Array("h")
|
|
);
|
|
|
|
for ($i = 0; $i < $len; $i++) {
|
|
$rank = "";
|
|
$sl = $word[$i];
|
|
if (isset($word[$i + 1])) {
|
|
$dl = $word[$i] . $word[$i + 1];
|
|
} else {
|
|
$dl = $word[$i];
|
|
}
|
|
|
|
//DL-Handling
|
|
if (strlen($dl) == 2) {
|
|
//Leading
|
|
if (($i == 0 && $dl == 'cr') || (in_array($dl, $exl1))) {
|
|
$value[$i] = 4;
|
|
}
|
|
|
|
if (in_array($dl, $exl2)) {
|
|
$value[$i] = 8;
|
|
}
|
|
|
|
if ($i > 0 && (in_array($dl, $exl3))) {
|
|
$value[$i] = 4;
|
|
}
|
|
|
|
//Following
|
|
if ($i > 0 && (in_array($word[$i - 1] . $word[$i], $exceptionsFollowing))) {
|
|
$value[$i] = 8;
|
|
}
|
|
}
|
|
|
|
// normal encoding
|
|
if (empty($value[$i])) {
|
|
foreach ($codingTable as $code => $letters) {
|
|
if (in_array($word[$i], $letters)) {
|
|
$value[$i] = $code;
|
|
}
|
|
}
|
|
}
|
|
if (in_array($sl, array('c', 's', 'z')) && ((isset($word[$i - 1])) && !(in_array($word[$i - 1], array('a', 'e', 'i', 'o', 'u'))))) {
|
|
$value[$i] = 8;
|
|
}
|
|
|
|
//Space
|
|
if ($word[$i] == '|') {
|
|
$value[$i] = '|';
|
|
}
|
|
}
|
|
|
|
// delete double values
|
|
$len = count($value);
|
|
|
|
for ($i = 1; $i < $len; $i++) {
|
|
if ($i > 1 && isset($value[$i - 1]) && $value[$i] == $value[$i - 1]) {
|
|
$value[$i] = "";
|
|
}
|
|
}
|
|
|
|
foreach ($value as $key => $value1) {
|
|
if (isset($value1) && ($value1 == 0 || $value1 != '')) {
|
|
$value_2[] = $value1;
|
|
}
|
|
}
|
|
|
|
$len = count($value_2);
|
|
// delete vocals
|
|
for ($i = 1; $i < $len; $i++) {
|
|
// omitting first characer code and h
|
|
if (($value_2[$i] === 0 || $value_2[$i] === 9) && ($i !== 0) && ($value_2[$i - 1] !== '|')) {
|
|
$value_2[$i] = "";
|
|
}
|
|
}
|
|
|
|
$res_arr = array();
|
|
$z = 0;
|
|
$value_3 = array();
|
|
foreach ($value_2 as $key => $value) {
|
|
if (isset($value) && $value == 0 || $value != '') {
|
|
$value_3[] = $value;
|
|
}
|
|
}
|
|
for ($i = 0; $i < count($value_3); $i++) {
|
|
if ($value_3[$i] === '|') {
|
|
$res_arr[$z] = ' ';
|
|
$z++;
|
|
} elseif (preg_match('/[0-9]/', $value_3[$i])) {
|
|
$res_arr[$z] = $value_3[$i];
|
|
if ($res_arr[$z] == 0 && $z === 0) {
|
|
$res_arr[$z] = 9;
|
|
}
|
|
$z++;
|
|
}
|
|
}
|
|
|
|
foreach ($res_arr as $key => &$value) {
|
|
if ($value == 0) {
|
|
$value = '';
|
|
}
|
|
}
|
|
unset($value);
|
|
$res_arr2 = array();
|
|
foreach ($res_arr as $key => &$value2) {
|
|
if ((int)$value > 0) {
|
|
$res_arr2[] = $value2;
|
|
}
|
|
}
|
|
unset($value2);
|
|
$res_arr2 = array_filter($res_arr2);
|
|
for ($i = 0; $i < count($res_arr2); $i++) {
|
|
if ($res_arr2[$i] == 9) {
|
|
$res_arr2[$i] = 0;
|
|
}
|
|
if ($i > 0 && $res_arr2[$i] === $res_arr2[$i - 1]) {
|
|
$res_arr2[$i] = '';
|
|
}
|
|
}
|
|
|
|
$res_arr2 = implode("", $res_arr2);
|
|
return $res_arr2;
|
|
}
|
|
|
|
function get_number_matches( $search_term ) {
|
|
$add_query_num = '';
|
|
|
|
$query = "SELECT *
|
|
FROM shop_item_cross_reference
|
|
WHERE item_reference_no like '%" . $search_term . "%'
|
|
AND (customer_no = '" . $GLOBALS["shop_customer"]["customer_no"] . "' OR customer_no='')
|
|
AND company ='" . $GLOBALS['shop']['company'] . "'
|
|
";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (mysqli_num_rows($result) != 0) {
|
|
while ($row = mysqli_fetch_assoc($result)) {
|
|
$add_query_num .= " OR shop_view_active_item.item_no LIKE '%" . $row['item_no'] . "%'";
|
|
}
|
|
}
|
|
|
|
$number_query = "
|
|
SELECT shop_view_active_item.*
|
|
FROM shop_view_active_item
|
|
WHERE
|
|
shop_view_active_item.company = '" . $GLOBALS["shop"]["company"] . "'
|
|
AND
|
|
shop_view_active_item.shop_code = '" . $GLOBALS["shop"]["code"] . "'
|
|
AND
|
|
shop_view_active_item.language_code = '" . $GLOBALS["shop_language"]["code"] . "'
|
|
AND
|
|
shop_view_active_item.item_no LIKE '%" . $search_term . "%'
|
|
OR
|
|
shop_view_active_item.ean_no LIKE '%" . $search_term . "%'
|
|
" . $add_query_num . "
|
|
GROUP BY shop_view_active_item.item_no";
|
|
|
|
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $number_query);
|
|
$search_string = "";
|
|
$sort_string = "";
|
|
if (@mysqli_num_rows($result) > 0) {
|
|
$search_string = "(";
|
|
$z = 0;
|
|
while ($item = @mysqli_fetch_assoc($result)) {
|
|
if ($z === 0) {
|
|
$search_string .= " shop_item.id=" . $item["id"];
|
|
} else {
|
|
$search_string .= " OR shop_item.id=" . $item["id"];
|
|
}
|
|
$z++;
|
|
}
|
|
$search_string .= ")";
|
|
$sort_string .= " CASE WHEN shop_item.item_no='" . $search_term . "' THEN 1 ELSE 0 END DESC, CASE WHEN shop_item.ean_no='" . $search_term . "' THEN 1 ELSE 0 END DESC,CASE WHEN shop_item_cross_reference.item_reference_no='" . $search_term . "' THEN 1 ELSE 0 END DESC,
|
|
CASE WHEN shop_item.item_no LIKE '%" . $search_term . "%' THEN 1 ELSE 0 END DESC, CASE WHEN shop_item.ean_no='%" . $search_term . "%' THEN 1 ELSE 0 END DESC,CASE WHEN shop_item_cross_reference.item_reference_no='%" . $search_term . "%' THEN 1 ELSE 0 END DESC";
|
|
}
|
|
$return["search_string"] = $search_string;
|
|
$return["sort_string"] = $sort_string;
|
|
return $return;
|
|
}
|
|
|
|
function img_size_mm( $img, $dpi ) {
|
|
|
|
|
|
function px_to_mm( $px, $dpi ) {
|
|
return in_to_mm($px / $dpi);
|
|
}
|
|
|
|
function mm_to_px( $mm, $dpi ) {
|
|
return mm_to_in($mm) * $dpi;
|
|
}
|
|
|
|
function mm_to_in( $mm ) {
|
|
return $mm * $GLOBALS["mm_per_in"];
|
|
}
|
|
|
|
function in_to_mm( $in ) {
|
|
return $in * $GLOBALS["in_per_mm"];
|
|
}
|
|
|
|
$dimensions = getimagesize($img);
|
|
$width = $dimensions[0];
|
|
$height = $dimensions[1];
|
|
|
|
if ($width > 0 && $height > 0) {
|
|
$return[0] = px_to_mm($width, $dpi);
|
|
$return[1] = px_to_mm($height, $dpi);
|
|
return $return;
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
function log_text( $newtext ) {
|
|
$file = $GLOBALS["curr_logfile"];
|
|
$current = file_get_contents($file);
|
|
$current .= "\r\n\r\n" . $newtext;
|
|
file_put_contents($file, $current);
|
|
}
|
|
|
|
function get_text_module_attachment( $company, $text_module_code, $attachment_no = 1 ) {
|
|
$query = 'SELECT attachment_' . $attachment_no . ' FROM shop_text_module WHERE company=\'' . $company . '\' AND code=\'' . $text_module_code . '\'';
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$filename = @mysqli_result($result, 0, 0);
|
|
if (strlen($filename) > 0) {
|
|
return "/userdata/dcshop/documents/" . $filename;
|
|
} else {
|
|
return '';
|
|
}
|
|
}
|
|
|
|
function get_visitor_small( $sid, $from_session = 0, $from_cookie = 0 ) {
|
|
|
|
$query = "DELETE FROM
|
|
main_visitor
|
|
WHERE
|
|
(
|
|
session_date != '0000-00-00 00:00:00'
|
|
AND
|
|
session_date IS NOT NULL
|
|
AND
|
|
valid_until != '0000-00-00 00:00:00'
|
|
AND
|
|
valid_until IS NOT NULL
|
|
AND
|
|
valid_until <= NOW()
|
|
AND
|
|
nav_login != 1
|
|
)
|
|
OR
|
|
(
|
|
session_date != '0000-00-00 00:00:00'
|
|
AND
|
|
session_date IS NOT NULL
|
|
AND
|
|
(main_user_id IS NULL OR main_user_id = 0)
|
|
AND
|
|
(main_admin_user_id IS NULL OR main_admin_user_id = 0)
|
|
AND
|
|
session_date <= DATE_SUB(NOW(),INTERVAL 90 MINUTE)
|
|
AND
|
|
nav_login != 1
|
|
)
|
|
OR
|
|
(
|
|
session_date != '0000-00-00 00:00:00'
|
|
AND
|
|
session_date IS NOT NULL
|
|
AND
|
|
(
|
|
remember_token IS NULL
|
|
OR
|
|
remember_token = ''
|
|
)
|
|
AND
|
|
session_date <= DATE_SUB(NOW(),INTERVAL 90 MINUTE)
|
|
AND
|
|
nav_login != 1
|
|
)
|
|
OR
|
|
(
|
|
nav_login = 1
|
|
AND
|
|
(session_date <= DATE_SUB(NOW(),INTERVAL 90 MINUTE) OR session_date IS NULL OR session_date = '0000-00-00 00:00:00')
|
|
)";
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
|
|
$query = 'SELECT * FROM main_visitor WHERE session_id = ?';
|
|
$stmt = mysqli_prepare($GLOBALS["mysql_con"],$query);
|
|
$stmt->bind_param("s",$sid);
|
|
$stmt->execute();
|
|
$stmt->store_result();
|
|
$assoc_array = fetchAssocStatement($stmt);
|
|
|
|
if ($stmt->num_rows == 1) {
|
|
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
|
|
/* foreach($cookies as $cookie) {
|
|
$parts = explode('=', $cookie);
|
|
$name = trim($parts[0]);
|
|
$value = trim($parts[1]);
|
|
$_SESSION[$name] = $value;
|
|
} */
|
|
if ($from_session == 1) {
|
|
$_SESSION['session_login'] = 1;
|
|
$_SESSION['cookie_login'] = 0;
|
|
} elseif ($from_cookie == 1) {
|
|
$_SESSION['session_login'] = 0;
|
|
$_SESSION['cookie_login'] = 1;
|
|
}
|
|
return $assoc_array;
|
|
}
|
|
}
|
|
|
|
|
|
function cookie_login_postprocessing( $visitor, $cookies ) {
|
|
$old_sid = $cookies['sid' . $GLOBALS['site']['code']];
|
|
$old_token = trim($cookies[$GLOBALS['site']['code'] . '_remember_login']);
|
|
$GLOBALS['test']['old_sid'] = $old_sid;
|
|
if (session_regenerate_id()) {
|
|
$newSid = session_id();
|
|
\DynCom\mysyde\common\classes\Hook::update('session_id_changed',['old_sid' => $old_sid, 'new_sid' => $newSid]);
|
|
|
|
$_SESSION['sid' . $GLOBALS['site']['code']] = $newSid;
|
|
$cookie_login = FALSE;
|
|
$cookie_removed = '';
|
|
foreach ($cookies as $name => $value) {
|
|
if (
|
|
(isset($visitor['remember_token']))
|
|
&&
|
|
(strlen($visitor['remember_token']) > 0)
|
|
&&
|
|
($name == $GLOBALS['site']['code'] . '_remember_login')
|
|
) {
|
|
$cookie_login = TRUE;
|
|
setcookie($name, '', time() - 1000);
|
|
setcookie($name, '', time() - 1000, '/');
|
|
}
|
|
}
|
|
$cookie_timeout = COOKIE_DAYS_VALID * 24 * 60 * 60;
|
|
if ((!empty($visitor['remember_token'])) && (strlen($visitor['remember_token']) > 0) && $cookie_login) {
|
|
$query = 'SELECT password FROM shop_user WHERE id=' . $visitor['main_user_id'];
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$password = @mysqli_result($result);
|
|
$remember_token_unique = md5(uniqid(session_id(), TRUE) . $password . $GLOBALS['visitor']['main_user_id']);
|
|
$query = 'UPDATE main_visitor SET session_id=\'' . session_id() . '\', cookie_only=1, frontend_login=1, remember_token=\'' . $remember_token_unique . '\' WHERE id=' . $visitor['id'];
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$visitor_query = "SELECT * FROM main_visitor WHERE id=" . $visitor['id'];
|
|
$visitor_result = @mysqli_query($GLOBALS['mysql_con'], $visitor_query);
|
|
$visitor = @mysqli_fetch_assoc($visitor_result);
|
|
if ($visitor['frontend_login']) {
|
|
$GLOBALS['visitor']['frontend_login'] = 1;
|
|
}
|
|
setcookie($GLOBALS['site']['code'] . '_remember_login', $remember_token_unique, time() + $cookie_timeout, '/');
|
|
setcookie('sid' . $GLOBALS['site']['code'], session_id(), time() + $cookie_timeout, '/');
|
|
}
|
|
}
|
|
}
|
|
|
|
function nav_login_postprocessing( &$visitor ) {
|
|
$old_sid = $visitor['session_id'];
|
|
if (session_regenerate_id()) {
|
|
$new_sid = session_id();
|
|
$_SESSION['sid' . $GLOBALS['site']['code']] = $new_sid;
|
|
$query = 'UPDATE main_visitor SET session_id = \'' . $new_sid . '\' WHERE session_id = \'' . $old_sid . '\'';
|
|
if (@mysqli_query($GLOBALS['mysql_con'], $query)) {
|
|
$delete_query = 'DELETE FROM main_visitor WHERE main_user_id = ' . $visitor['main_user_id'] . ' AND nav_login=1 AND session_id != \'' . $new_sid . '\'';
|
|
@mysqli_query($GLOBALS['mysql_con'], $delete_query);
|
|
$select_query = 'SELECT * FROM main_visitor WHERE session_id = \'' . $new_sid . '\'';
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $select_query);
|
|
if (@mysqli_num_rows($result) > 0) {
|
|
$visitor = @mysqli_fetch_assoc($result);
|
|
}
|
|
} else {
|
|
throw new Exception('NOT UPDATED: ' . $query);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
function logQuery( $datetime, $query, $file, $line, $toGlobal = NULL, $toFile = FALSE, $toHTML = TRUE, $msg = '', $includeSession = FALSE, $includeCookie = FALSE, $includePost = FALSE, $includeGet = FALSE, $includeArray = NULL ) {
|
|
$logtext = PHP_EOL . $datetime . ' - ' . $msg . PHP_EOL;
|
|
$logtext .= ' QUERY: ' . $query . PHP_EOL;
|
|
$logtext .= ' FILE: ' . $file . PHP_EOL;
|
|
$logtext .= ' LINE: ' . $line . PHP_EOL;
|
|
if ($includeSession) {
|
|
$sessiontext = print_r($_SESSION, 1);
|
|
$sessiontext = str_replace('\n(\n', '\n (\n', $sessiontext);
|
|
$logtext .= ' SESSION: ' . $sessiontext . PHP_EOL;
|
|
}
|
|
if ($includeCookie) {
|
|
$cookietext = print_r($_COOKIE, 1);
|
|
$cookietext = str_replace('\n(\n', '\n (\n', $cookietext);
|
|
$logtext .= ' COOKIE: ' . $cookietext . PHP_EOL;
|
|
}
|
|
if ($includePost) {
|
|
$posttext = print_r($_POST, 1);
|
|
$posttext = str_replace('\n(\n', '\n (\n', $posttext);
|
|
$logtext .= ' POST: ' . $posttext . PHP_EOL;
|
|
}
|
|
if ($includeGet) {
|
|
$gettext = print_r($_GET, 1);
|
|
$gettext = str_replace('\n(\n', '\n (\n', $gettext);
|
|
$logtext .= ' GET: ' . $gettext . PHP_EOL;
|
|
}
|
|
if (is_array($includeArray)) {
|
|
$arrtext = print_r($includeArray, 1);
|
|
$arrtext = str_replace('\n(\n', '\n (\n', $arrtext);
|
|
$logtext .= ' CUST-ARRAY: ' . $arrtext . PHP_EOL;
|
|
}
|
|
if (isset($toGlobals)) {
|
|
$toGlobals .= $logtext;
|
|
$GLOBALS['querylog'] .= $logtext;
|
|
} elseif ($toFile) {
|
|
|
|
}
|
|
if ($toHTML) {
|
|
echo '<!-- LOG: ' . $logtext . ' -->';
|
|
}
|
|
if ($toFile) {
|
|
$querylog = fopen(rtrim($_SERVER['DOCUMENT_ROOT'],'/') . "/userdata/logfile-visitor.txt", "a+");
|
|
fwrite($querylog, $logtext . PHP_EOL);
|
|
fclose($querylog);
|
|
}
|
|
}
|
|
|
|
function check_sid_for_login( $sid, $nav_login = FALSE ) {
|
|
$nav_login_insert = ($nav_login ? ' AND nav_login=1 ' : '');
|
|
$query = 'SELECT EXISTS(SELECT id FROM main_visitor WHERE session_id = \'' . mysqli_real_escape_string($GLOBALS['mysql_con'], $sid) . '\' AND main_user_id > 0 AND frontend_login=1 ' . $nav_login_insert . ')';
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
return (@mysqli_result($result, 0, 0) == TRUE ? TRUE : FALSE);
|
|
}
|
|
|
|
function renew_session_dates( $visitor ) {
|
|
if ((int)$visitor['id'] > 0) {
|
|
$query = '
|
|
UPDATE main_visitor SET session_date = NOW(), valid_until = DATE_ADD(NOW(),INTERVAL 30 DAY) WHERE id = ' . (int)$visitor['id'];
|
|
@mysqli_query($GLOBALS['mysql_con'], $query);
|
|
}
|
|
}
|
|
|
|
function set_shop_globals_from_site() {
|
|
if (!empty($GLOBALS['language']['company']) && !empty($GLOBALS['language']['shop_code']) && !empty($GLOBALS['language']['shop_language_code'])) {
|
|
$company = $GLOBALS['language']['company'];
|
|
$shop_code = $GLOBALS['language']['shop_code'];
|
|
$shop_language_code = $GLOBALS['language']['shop_language_code'];
|
|
|
|
if (empty($GLOBALS['shop'])) {
|
|
$shop_query = "SELECT * FROM shop_shop WHERE company = '" . $company . "' AND code = '" . $shop_code . "'";
|
|
$shop_result = @mysqli_query($GLOBALS['mysql_con'], $shop_query);
|
|
$shop = @mysqli_fetch_assoc($shop_result);
|
|
if (!empty($shop['id']) && (int)$shop['id'] > 0) {
|
|
$GLOBALS['shop'] = $shop;
|
|
}
|
|
}
|
|
|
|
if (empty($GLOBALS['shop_language'])) {
|
|
$shop_language_query = "SELECT * FROM shop_language WHERE company = '" . $company . "' AND shop_code = '" . $shop_code . "' AND code = '" . $shop_language_code . "'";
|
|
$shop_language_result = @mysqli_query($GLOBALS['mysql_con'], $shop_language_query);
|
|
$shop_language = @mysqli_fetch_assoc($shop_language_result);
|
|
if (!empty($shop_language['id']) && (int)$shop_language['id'] > 0) {
|
|
$GLOBALS['shop_language'] = $shop_language;
|
|
}
|
|
}
|
|
|
|
} else {
|
|
set_shop_globals_from_login();
|
|
}
|
|
}
|
|
|
|
function set_shop_globals_from_login() {
|
|
$query = "SELECT target_site_code, target_language_code FROM main_shop_login WHERE main_language_id = " . (int)$GLOBALS['language']['id'];
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if ((int)@mysqli_num_rows($result) === 1) {
|
|
$row = mysqli_fetch_assoc($result);
|
|
$site_code = $row['target_site_code'];
|
|
$language_code = $row['target_language_code'];
|
|
if (!empty($site_code) && !empty($language_code)) {
|
|
//Shop holen
|
|
$query = "
|
|
SELECT
|
|
shop_shop.*
|
|
FROM
|
|
main_language,
|
|
main_site,
|
|
shop_shop
|
|
WHERE
|
|
main_site.code = '" . $site_code . "'
|
|
AND
|
|
main_language.main_site_id = main_site.id
|
|
AND
|
|
main_language.code = '" . $language_code . "'
|
|
AND
|
|
shop_shop.company = main_language.company
|
|
AND
|
|
shop_shop.code = main_language.shop_code
|
|
";
|
|
$shop_result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$shop = @mysqli_fetch_assoc($shop_result);
|
|
if (!empty($shop['id']) && (int)$shop['id'] > 0) {
|
|
$GLOBALS['shop'] = $shop;
|
|
if ($language_code == 'de' || $language_code == 'DE' || $language_code == 'DEU' || $language_code == 'deu') {
|
|
$lang_snippet = " AND code IN('de','DE','DEU','deu','dea','DEA') ";
|
|
} elseif ($language_code == 'dea' || $language_code == 'DEA') {
|
|
$lang_snippet = " AND code IN('dea','DEA') ";
|
|
} elseif ($language_code == 'en' || $language_code == 'EN' || $language_code == 'ENU' || $language_code == 'enu') {
|
|
$lang_snippet = " AND code IN('en','EN','ENU','enu') ";
|
|
}
|
|
$query = "SELECT * FROM shop_language WHERE company = '" . $shop['company'] . "' AND shop_code = '" . $shop['code'] . "' " . $lang_snippet;
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if ((int)@mysqli_num_rows($result) == 1) {
|
|
$shop_language = mysqli_fetch_assoc($result);
|
|
if (!empty($shop_language['id']) && (int)$shop_language['id'] > 0) {
|
|
$GLOBALS['shop_language'] = $shop_language;
|
|
}
|
|
} else {
|
|
//echo $query;
|
|
}
|
|
} else {
|
|
//echo $query;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function get_login_fields_html( $shop ) {
|
|
$email_field = (
|
|
$show_labels_in_fields ?
|
|
"
|
|
<div>
|
|
<div class='input'>
|
|
<input type='text' name='input_email' id='input_email' value='" . $GLOBALS['shop_user']['email'] . "' />
|
|
</div>
|
|
</div>
|
|
"
|
|
:
|
|
"
|
|
<div>
|
|
<div class='label'><label for='input_email'>" . $GLOBALS['tc']['email'] . "</label></div>
|
|
<div class='input'><input type='text' name='input_email' id='input_email' value='" . $GLOBALS['shop_user']['email'] . "' /></div>
|
|
</div>
|
|
"
|
|
);
|
|
|
|
$login_field = (
|
|
$show_labels_in_fields ?
|
|
"
|
|
<div>
|
|
<div class='input'>
|
|
<input type='text' name='input_login' id='input_login' value='" . $GLOBALS['shop_user']['login'] . "' />
|
|
</div>
|
|
</div>
|
|
"
|
|
:
|
|
"
|
|
<div>
|
|
<div class='label'><label for='input_login'>" . $GLOBALS['tc']['login'] . "</label></div>
|
|
<div class='input'><input type='text' name='input_login' id='input_login' value='" . $GLOBALS['shop_user']['login'] . "' /></div>
|
|
</div>
|
|
"
|
|
);
|
|
|
|
$customer_no_field = (
|
|
$show_labels_in_fields ?
|
|
"
|
|
<div>
|
|
<div class='input'>
|
|
<input type='text' name='input_customer_no' id='input_customer_no' value='" . $GLOBALS['shop_customer']['customer_no'] . "' />
|
|
</div>
|
|
</div>
|
|
"
|
|
:
|
|
"
|
|
<div>
|
|
<div class='label'><label for='input_customer_no'>" . $GLOBALS['tc']['customer_no'] . "</label></div>
|
|
<div class='input'><input type='text' name='input_customer_no' id='input_customer_no' value='" . $GLOBALS['shop_customer']['customer_no'] . "' /></div>
|
|
</div>
|
|
"
|
|
);
|
|
|
|
$password_field = (
|
|
$show_labels_in_fields ?
|
|
"
|
|
<div>
|
|
<div class='input'>
|
|
<input type='text' name='input_password' id='input_password'/>
|
|
</div>
|
|
</div>
|
|
"
|
|
:
|
|
"
|
|
<div>
|
|
<div class='label'><label for='input_password'>" . $GLOBALS['tc']['password'] . "</label></div>
|
|
<div class='input'><input type='password' name='input_password' id='input_password'/></div>
|
|
</div>
|
|
"
|
|
);
|
|
|
|
$field_1_html = '';
|
|
$field_2_html = '';
|
|
|
|
switch ($shop['login_type']) {
|
|
case 0: //E-Mail & Passwort
|
|
$field_1_html = $email_field;
|
|
break;
|
|
case 1: //Login & Passwort
|
|
$field_1_html = $login_field;
|
|
break;
|
|
case 2: //Kunden-Nr., Login & Passwort
|
|
$field_1_html = $customer_no_field;
|
|
$field_2_html = $login_field;
|
|
break;
|
|
case 3: //Kunden-Nr., E-Mail & Passwort
|
|
$field_1_html = $customer_no_field;
|
|
$field_2_html = $email_field;
|
|
break;
|
|
case 4: //Kunden-Nr. & Passwort
|
|
$field_1_html = $customer_no_field;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
$pre_check_remember_login = (!empty($GLOBALS['visitor']['remember_token']) ? 'checked ' : '');
|
|
|
|
$fields = '<input type="hidden" name="action" value="shop_login"/>' . $field_1_html . $field_2_html . $password_field .
|
|
'<div>
|
|
<div class="label">
|
|
<label for="remember_login">' . $GLOBALS['tc']['remember_login'] . '</label>
|
|
</div>
|
|
<div class="input">
|
|
<input type="checkbox" class="checkbox" name="remember_login" id="remember_login" ' . $pre_check_remember_login . '/>
|
|
</div>
|
|
</div>';
|
|
return $fields;
|
|
}
|
|
|
|
function split_name( $name ) {
|
|
$results = array();
|
|
|
|
$r = explode(' ', $name);
|
|
$size = count($r);
|
|
|
|
//check first for period, assume salutation if so
|
|
if (mb_strpos($r[0], '.') === FALSE) {
|
|
$results['salutation'] = '';
|
|
$results['first'] = $r[0];
|
|
} else {
|
|
$results['salutation'] = $r[0];
|
|
$results['first'] = $r[1];
|
|
}
|
|
|
|
//check last for period, assume suffix if so
|
|
if (mb_strpos($r[$size - 1], '.') === FALSE) {
|
|
$results['suffix'] = '';
|
|
} else {
|
|
$results['suffix'] = $r[$size - 1];
|
|
}
|
|
|
|
//combine remains into last
|
|
$start = ($results['salutation']) ? 2 : 1;
|
|
$end = ($results['suffix']) ? $size - 2 : $size - 1;
|
|
|
|
$last = '';
|
|
for ($i = $start; $i <= $end; $i++) {
|
|
$last .= ' ' . $r[$i];
|
|
}
|
|
$results['last'] = trim($last);
|
|
|
|
return $results;
|
|
}
|
|
|
|
function validateDate( $date, $format = 'Y-m-d H:i:s' ) {
|
|
$d = DateTime::createFromFormat($format, $date);
|
|
return ($d && $d->format($format) == $date);
|
|
}
|
|
|
|
function stringEndsWith( $string, $endsWith ) {
|
|
$strlen = strlen($string);
|
|
$testlen = strlen($endsWith);
|
|
if ($testlen > $strlen) {
|
|
return FALSE;
|
|
}
|
|
return substr_compare(strtolower($string), strtolower($endsWith), $strlen - $testlen, $testlen) === 0;
|
|
}
|
|
|
|
function MySQLTypeIsText( $typestring ) {
|
|
$typestring = (string)$typestring;
|
|
return (
|
|
stringEndsWith($typestring, 'CHAR')
|
|
||
|
|
stringEndsWith($typestring, 'TEXT')
|
|
);
|
|
}
|
|
|
|
function MySQLTypeIsNumeric( $typestring ) {
|
|
$typestring = strtoupper($typestring);
|
|
return (
|
|
stringEndsWith($typestring, 'INT')
|
|
||
|
|
stringEndsWith($typestring, 'FLOAT')
|
|
||
|
|
stringEndsWith($typestring, 'DECIMAL')
|
|
);
|
|
}
|
|
|
|
function MySQLTypeIsDate( $typestring ) {
|
|
$typestring = strtoupper($typestring);
|
|
return (
|
|
$typestring == 'DATETIME'
|
|
||
|
|
$typestring == 'DATE'
|
|
||
|
|
$typestring == 'TIMESTAMP'
|
|
);
|
|
}
|
|
|
|
function array_depth( array $array ) {
|
|
$max_indentation = 1;
|
|
|
|
$array_str = print_r($array, TRUE);
|
|
$lines = explode("\n", $array_str);
|
|
|
|
foreach ($lines as $line) {
|
|
$indentation = (strlen($line) - strlen(ltrim($line))) / 4;
|
|
|
|
if ($indentation > $max_indentation) {
|
|
$max_indentation = $indentation;
|
|
}
|
|
}
|
|
|
|
return ceil(($max_indentation - 1) / 2) + 1;
|
|
}
|
|
|
|
function mysqli_fetch_all_from_executed_stmt(mysqli_stmt $stmt) {
|
|
try {
|
|
// Get metadata for field names
|
|
$meta = $stmt->result_metadata();
|
|
|
|
// initialise some empty arrays
|
|
$fields = $results = $fieldNames = array();
|
|
|
|
// This is the tricky bit dynamically creating an array of variables to use
|
|
// to bind the results
|
|
while ($field = $meta->fetch_field()) {
|
|
$fieldNames[] = $field->name;
|
|
$var = $field->name;
|
|
$$var = NULL;
|
|
$fields[$var] = &$$var;
|
|
}
|
|
|
|
$fieldCount = count($fieldNames);
|
|
|
|
// Bind Results
|
|
call_user_func_array(array($stmt,'bind_result'),$fields);
|
|
|
|
$i=0;
|
|
while ($stmt->fetch()){
|
|
for($l=0;$l<$fieldCount;$l++) {
|
|
$results[$i][$fieldNames[$l]] = $fields[$fieldNames[$l]];
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
$stmt->close();
|
|
|
|
return $results;
|
|
} catch(Exception $e) {
|
|
return array();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param $id
|
|
*
|
|
* @return bool
|
|
*/
|
|
|
|
function setMailSent( $id ) {
|
|
$query = 'UPDATE main_mail_log SET send_date = now() WHERE id = ' . (int)$id;
|
|
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
|
|
return (bool)$result;
|
|
}
|
|
|
|
|
|
function get_all_whitespace_collapsed_variants($string) {
|
|
$string = str_replace(array(' AND ',' OR '),' ',$string);
|
|
$tokens = explode(' ',$string);
|
|
$urlencodedTokens = array_map(function($str){return urlencode($str);},$tokens);
|
|
$noOfTokens = count($tokens);
|
|
if($noOfTokens === 1) { return array(); }
|
|
//$whitespaceCollapsedStrings = $tokens;
|
|
$whitespaceCollapsedStrings = array();
|
|
|
|
for($i = 0;$i <= ($noOfTokens - 1);++$i) {
|
|
$newString = '';
|
|
$newStringWildCard = '';
|
|
for($j = 1;$j <= ($noOfTokens - $i);++$j) {
|
|
$newSuffix = $tokens[(($i + $j)-1)];
|
|
if($newSuffix !== 'AND' && $newSuffix !== 'OR') {
|
|
$arrSearchStr = $newString . $newSuffix;
|
|
$newString .= urlencode($newSuffix);
|
|
$newStringWildCard .= (($newStringWildCard)?'*':'');
|
|
$newStringWildCard .= $newSuffix;
|
|
//$newString .= $newSuffix;
|
|
if(!in_array($arrSearchStr,$tokens) && !in_array($newString,$urlencodedTokens)) {
|
|
if(!in_array($newString,$whitespaceCollapsedStrings) && mb_strlen($newString,'UTF-8')>0) {
|
|
$whitespaceCollapsedStrings[] = $newString;
|
|
//$whitespaceCollapsedStrings[] = $newStringWildCard;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return $whitespaceCollapsedStrings;
|
|
}
|
|
|
|
function string_starts_with($haystack, $needle) {
|
|
// search backwards starting from haystack length characters from the end
|
|
return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== FALSE;
|
|
}
|
|
|
|
function string_ends_with($haystack, $needle) {
|
|
// search forward starting from end minus needle length characters
|
|
return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== FALSE);
|
|
}
|
|
|
|
if (!function_exists("array_column")) {
|
|
function array_column($array,$column_name)
|
|
{
|
|
return array_map(function($element) use($column_name){return $element[$column_name];}, $array);
|
|
}
|
|
}
|
|
|
|
|
|
function pad_string_to_mb_length($string,$to_length,$padChar = ' ')
|
|
{
|
|
$padChar = (string)$padChar;
|
|
$padChar = $padChar[0];
|
|
$to_length = (int)$to_length;
|
|
$currLength = mb_strlen($string);
|
|
if ($currLength < $to_length) {
|
|
while (mb_strlen($string) < $to_length) {
|
|
$string = $string . $padChar;
|
|
}
|
|
}
|
|
return $string;
|
|
}
|
|
|
|
function escapeChars($charsToEscape, $escapeSeq, &$string)
|
|
{
|
|
$charsToEscape = preg_quote($charsToEscape, '/');
|
|
$regexSafeEscapeSeq = preg_quote($escapeSeq, '/');
|
|
$escapeSeq = preg_replace('/([$\\\\])/', '\\\$1', $escapeSeq);
|
|
$stringCopy = $string;
|
|
$correctedStringCopy = (preg_replace('/(?<!'.$regexSafeEscapeSeq.')(['.$charsToEscape.'])/', $escapeSeq.'$1', $stringCopy));
|
|
$string = $correctedStringCopy;
|
|
}
|
|
|
|
|
|
function adjust_qty_by_min_max_step(&$newQty,$oldQty,$min,$max,$step)
|
|
{
|
|
$newQty = (float)$newQty;
|
|
$oldQty = (float)$oldQty;
|
|
$signMultiplier = ($newQty < $oldQty) ? -1 : 1;
|
|
$min = (float)$min;
|
|
$max = (float)$max;
|
|
$step = (float)$step;
|
|
|
|
|
|
if (($newQty % $step) !== 0) {
|
|
$stepMultiplier = abs($newQty / $step);
|
|
if ($signMultiplier > 0) {
|
|
$stepMultiplier = ceil($stepMultiplier);
|
|
} else {
|
|
$stepMultiplier = floor($stepMultiplier);
|
|
}
|
|
$newQty = $step * $stepMultiplier;
|
|
}
|
|
|
|
if ($newQty > $max) {
|
|
$newQty = $max;
|
|
} elseif($newQty < $min) {
|
|
$newQty = $min;
|
|
}
|
|
|
|
}
|
|
function normalize_search_string($string) {
|
|
$string = trim(strip_tags($string));
|
|
$string = preg_replace('/\s+/',' ',$string);
|
|
escapeChars('+-&|!(){}[]^~*?:\\/','\\',$string);
|
|
//$string = preg_replace('/\-/','*',$string);
|
|
//$string = preg_replace('/[^[:alnum:]]/','',$string);
|
|
//$string = preg_replace('/[^a-zA-Z0-9\s+\-_°&*?"]/','',$string);
|
|
$subTerms = explode(' ',$string);
|
|
$subtermCount = count($subTerms);
|
|
//if(strpos($string,' ') === FALSE) return '"' . $string . '"';
|
|
/*
|
|
$termArr = array();
|
|
|
|
$initTerm = $string;
|
|
$initPhraseTerm = '"' . $initTerm . '"';
|
|
$termArr[] = '(' . $initTerm . ')';
|
|
$itemNoIntactTerm = "(item_no_intact:($initTerm))";
|
|
$termArr[] = $itemNoIntactTerm;
|
|
$vendorItemNoIntactTerm = "(vender_item_no_intact:($initTerm))";
|
|
$termArr[] = $vendorItemNoIntactTerm;
|
|
$referenceNosTerm = "(reference_nos:($initTerm))";
|
|
$termArr[] = $referenceNosTerm;
|
|
if($subtermCount > 1) {
|
|
$fuzzyTerm = preg_replace('/(?<=^\b|\s\b)([\w]+)/','$1~2',$string);
|
|
$descriptionIntactPhraseTerm = "(description_intact:\"$initTerm\"~2)";
|
|
$termArr[] = $descriptionIntactPhraseTerm;
|
|
$mainCombinedPhraseTerm = "(main_item_desc_combined:\"$initTerm\"~2)";
|
|
$termArr[] = $mainCombinedPhraseTerm;
|
|
$descriptionPhraseTerm = "(description:\"$initTerm\"~2)";
|
|
$termArr[] = $descriptionPhraseTerm;
|
|
$didYouMeanPhraseTerm = "(did_you_mean:\"$initTerm\"~2)";
|
|
$termArr[] = $didYouMeanPhraseTerm;
|
|
} else {
|
|
$fuzzyTerm = $initTerm . '~2';
|
|
}
|
|
$descriptionIntactTerm = "(description_intact:($fuzzyTerm))";
|
|
$termArr[] = $descriptionIntactTerm;
|
|
$mainCombinedExactTerm = "(main_item_desc_combined_exact:($fuzzyTerm))";
|
|
$termArr[] = $mainCombinedExactTerm;
|
|
$didYouMeanTerm = "(did_you_mean:($fuzzyTerm))";
|
|
$termArr[] = $didYouMeanTerm;
|
|
$descriptionTerm = "(description:($initTerm))";
|
|
$termArr[] = $descriptionTerm;
|
|
$mainCombinedTerm = "(main_item_desc_combined:($initTerm))";
|
|
$termArr[] = $mainCombinedTerm;
|
|
$mainCombinedEdgeTerm = "(main_item_desc_combined_edge:($initTerm))";
|
|
$termArr[] = $mainCombinedEdgeTerm;
|
|
$mainCombinedNGramTerm = "(main_item_desc_combined_ngram:($initTerm))";
|
|
$termArr[] = $mainCombinedNGramTerm;
|
|
|
|
$termStr = implode(' AND ',$termArr);
|
|
|
|
|
|
|
|
$string = ltrim($string,' AND ');
|
|
$string = preg_replace('/\s+/',' ',$string);
|
|
*/
|
|
if($subtermCount > 1) {
|
|
$origString = $string;
|
|
}
|
|
//$string = preg_replace("/(?<=^|\"|\s)([^\s\"]+)(?=\s|\"|$)/",'$1~1',$string); $string =
|
|
|
|
//$string = preg_replace('/(?:\b\sAND\s\b)|(?:(?<!AND|OR)\s(?!AND|OR))/',' AND ',$string);
|
|
//$string = preg_replace('/(?:\b\sOR\s\b)|(?:(?<!AND|OR)\s(?!AND|OR))/',' OR ',$string);
|
|
|
|
if($subtermCount > 1) {
|
|
//$string = '("' . $origString . '" AND ' . $string . ')';
|
|
//$string = '("' . $origString . '")';
|
|
$string = "$string";
|
|
}
|
|
|
|
return '(' . urlencode($string) . ')';
|
|
}
|
|
|
|
function formatBytes($bytes, $precision = 2) {
|
|
$kilobyte = 1024;
|
|
$megabyte = 1024 * 1024;
|
|
|
|
if ($bytes >= 0 && $bytes < $kilobyte) {
|
|
return $bytes . " b";
|
|
}
|
|
|
|
if ($bytes >= $kilobyte && $bytes < $megabyte) {
|
|
return round($bytes / $kilobyte, $precision) . " kb";
|
|
}
|
|
|
|
return round($bytes / $megabyte, $precision) . " mb";
|
|
}
|
|
|
|
/**
|
|
* This file is part of the array_column library
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*
|
|
* @copyright Copyright (c) Ben Ramsey (http://benramsey.com)
|
|
* @license http://opensource.org/licenses/MIT MIT
|
|
*/
|
|
if (!function_exists('array_column')) {
|
|
/**
|
|
* Returns the values from a single column of the input array, identified by
|
|
* the $columnKey.
|
|
*
|
|
* Optionally, you may provide an $indexKey to index the values in the returned
|
|
* array by the values from the $indexKey column in the input array.
|
|
*
|
|
* @param array $input A multi-dimensional array (record set) from which to pull
|
|
* a column of values.
|
|
* @param mixed $columnKey The column of values to return. This value may be the
|
|
* integer key of the column you wish to retrieve, or it
|
|
* may be the string key name for an associative array.
|
|
* @param mixed $indexKey (Optional.) The column to use as the index/keys for
|
|
* the returned array. This value may be the integer key
|
|
* of the column, or it may be the string key name.
|
|
* @return array
|
|
*/
|
|
function array_column($input = null, $columnKey = null, $indexKey = null)
|
|
{
|
|
// Using func_get_args() in order to check for proper number of
|
|
// parameters and trigger errors exactly as the built-in array_column()
|
|
// does in PHP 5.5.
|
|
$argc = func_num_args();
|
|
$params = func_get_args();
|
|
if ($argc < 2) {
|
|
trigger_error("array_column() expects at least 2 parameters, {$argc} given", E_USER_WARNING);
|
|
return null;
|
|
}
|
|
if (!is_array($params[0])) {
|
|
trigger_error(
|
|
'array_column() expects parameter 1 to be array, ' . gettype($params[0]) . ' given',
|
|
E_USER_WARNING
|
|
);
|
|
return null;
|
|
}
|
|
if (!is_int($params[1])
|
|
&& !is_float($params[1])
|
|
&& !is_string($params[1])
|
|
&& $params[1] !== null
|
|
&& !(is_object($params[1]) && method_exists($params[1], '__toString'))
|
|
) {
|
|
trigger_error('array_column(): The column key should be either a string or an integer', E_USER_WARNING);
|
|
return false;
|
|
}
|
|
if (isset($params[2])
|
|
&& !is_int($params[2])
|
|
&& !is_float($params[2])
|
|
&& !is_string($params[2])
|
|
&& !(is_object($params[2]) && method_exists($params[2], '__toString'))
|
|
) {
|
|
trigger_error('array_column(): The index key should be either a string or an integer', E_USER_WARNING);
|
|
return false;
|
|
}
|
|
$paramsInput = $params[0];
|
|
$paramsColumnKey = ($params[1] !== null) ? (string) $params[1] : null;
|
|
$paramsIndexKey = null;
|
|
if (isset($params[2])) {
|
|
if (is_float($params[2]) || is_int($params[2])) {
|
|
$paramsIndexKey = (int) $params[2];
|
|
} else {
|
|
$paramsIndexKey = (string) $params[2];
|
|
}
|
|
}
|
|
$resultArray = array();
|
|
foreach ($paramsInput as $row) {
|
|
$key = $value = null;
|
|
$keySet = $valueSet = false;
|
|
if ($paramsIndexKey !== null && array_key_exists($paramsIndexKey, $row)) {
|
|
$keySet = true;
|
|
$key = (string) $row[$paramsIndexKey];
|
|
}
|
|
if ($paramsColumnKey === null) {
|
|
$valueSet = true;
|
|
$value = $row;
|
|
} elseif (is_array($row) && array_key_exists($paramsColumnKey, $row)) {
|
|
$valueSet = true;
|
|
$value = $row[$paramsColumnKey];
|
|
}
|
|
if ($valueSet) {
|
|
if ($keySet) {
|
|
$resultArray[$key] = $value;
|
|
} else {
|
|
$resultArray[] = $value;
|
|
}
|
|
}
|
|
}
|
|
return $resultArray;
|
|
}
|
|
}
|
|
|
|
function safe_array_dot_access(array $arr, $dotKey, $defaultValue = null) {
|
|
$keyParts = explode('.',$dotKey,100);
|
|
$lastPartIndex = count($keyParts) - 1;
|
|
$i = 0;
|
|
$currPart = $keyParts[$i];
|
|
foreach ($keyParts as $keyPart) {
|
|
$keyPartDigit = $keyPart;
|
|
if (ctype_digit($keyPart)) {
|
|
$keyPartDigit = (int)$keyPart;
|
|
}
|
|
if ($i === $lastPartIndex) {
|
|
if (isset($currPart[$keyPart])) {
|
|
return $currPart[$keyPart];
|
|
} elseif (isset($currPart[$keyPartDigit])) {
|
|
return $currPart[$keyPartDigit];
|
|
} else {
|
|
return $defaultValue;
|
|
}
|
|
}
|
|
if (array_key_exists($keyPart,$currPart)) {
|
|
$currPart = $currPart[$keyPart];
|
|
$i++;
|
|
} elseif (array_key_exists($keyPartDigit,$currPart)) {
|
|
$currPart = $currPart[$keyPartDigit];
|
|
$i++;
|
|
} else {
|
|
return $defaultValue;
|
|
}
|
|
}
|
|
return $defaultValue;
|
|
}
|
|
|
|
function universal_redirect($absoluteRedirectPath,$redirectCode = 302)
|
|
{
|
|
if (!headers_sent()) {
|
|
header('Location: ' . $absoluteRedirectPath,true,$redirectCode);
|
|
} else {
|
|
echo "
|
|
<script type=\"text/javascript\">
|
|
window.location.replace(\"$absoluteRedirectPath\");
|
|
</script>
|
|
";
|
|
|
|
}
|
|
}
|
|
|
|
function getSessionErrorMessages()
|
|
{
|
|
if (isset($_SESSION['msgBag']['errors'])) {
|
|
return $_SESSION['msgBag']['errors'];
|
|
}
|
|
return [];
|
|
}
|
|
|
|
function getSessionNotifications()
|
|
{
|
|
if (isset($_SESSION['msgBag']['notifications'])) {
|
|
return $_SESSION['msgBag']['notifications'];
|
|
}
|
|
return [];
|
|
}
|
|
|
|
function getSessionSuccessMessages()
|
|
{
|
|
if (isset($_SESSION['msgBag']['successes'])) {
|
|
return $_SESSION['msgBag']['successes'];
|
|
}
|
|
return [];
|
|
}
|
|
|
|
function printFlashMessages()
|
|
{
|
|
|
|
$wrapper = '<div class="flash_messages" style="display:none;position:static;">%s</div>';
|
|
$inner = '<div class="flash_message_%s">%s</div>';
|
|
|
|
$allInner = '';
|
|
if (array_key_exists('msgBag',$_SESSION)) {
|
|
if (array_key_exists('successes',$_SESSION['msgBag'])) {
|
|
foreach ($_SESSION['msgBag']['successes'] as $successMsg) {
|
|
$allInner .= sprintf($inner,'success',$successMsg);
|
|
}
|
|
}
|
|
if (array_key_exists('errors',$_SESSION['msgBag'])) {
|
|
foreach ($_SESSION['msgBag']['errors'] as $errorMsg) {
|
|
$allInner .= sprintf($inner,'error',$errorMsg);
|
|
}
|
|
}
|
|
if (array_key_exists('notifications',$_SESSION['msgBag'])) {
|
|
foreach ($_SESSION['msgBag']['notifications'] as $notification) {
|
|
$allInner .= sprintf($inner,'notification',$notification);
|
|
}
|
|
}
|
|
}
|
|
$html = sprintf($wrapper,$allInner);
|
|
$javascript = '
|
|
<script type="text/javascript">
|
|
$(\'.flash_messages\').fadeIn().delay(10000).fadeOut();
|
|
</script>
|
|
';
|
|
|
|
echo $html;
|
|
echo $javascript;
|
|
|
|
$_SESSION['msgBag'] = null;
|
|
unset($_SESSION['msgBag']);
|
|
|
|
}
|
|
|
|
function generateCallTrace()
|
|
{
|
|
$e = new Exception();
|
|
$trace = explode("\n", $e->getTraceAsString());
|
|
// reverse array to make steps line up chronologically
|
|
$trace = array_reverse($trace);
|
|
array_shift($trace); // remove {main}
|
|
array_pop($trace); // remove call to this method
|
|
$length = count($trace);
|
|
$result = array();
|
|
|
|
for ($i = 0; $i < $length; $i++)
|
|
{
|
|
$result[] = ($i + 1) . ')' . substr($trace[$i], strpos($trace[$i], ' ')); // replace '#someNum' with '$i)', set the right ordering
|
|
}
|
|
|
|
return "\t" . implode("\n\t", $result);
|
|
}
|
|
|
|
function get_requestbox($text, $title = "", $typ = "error", $instantLoad = true, $id = "requestbox"){
|
|
if($title == ""){
|
|
switch ($typ) {
|
|
case "success":
|
|
$title = $GLOBALS['tc']['success'];
|
|
break;
|
|
case "warning":
|
|
$title = $GLOBALS['tc']['warning'];
|
|
break;
|
|
default:
|
|
$title = $GLOBALS['tc']['error'];
|
|
break;
|
|
}
|
|
}
|
|
|
|
if ($instantLoad) {
|
|
|
|
?>
|
|
<script type="text/javascript">
|
|
$(window).load(function(){
|
|
if ($('#<?= $id ?>').parents('.modal').length == 1) {
|
|
parentModal = $('#<?= $id ?>').parents('.modal');
|
|
newModal = $('#<?= $id ?>').appendTo('body');
|
|
newModal.modal('show');
|
|
parentModal.modal('show');
|
|
} else {
|
|
$('#<?= $id ?>').modal('show');
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<? } ?>
|
|
|
|
<div class="modal fade <?=$typ;?>" id="<?= $id ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|
<h4 class="modal-title" id="myModalLabel"><?=$title?></h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<?=$text?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?
|
|
}
|
|
|
|
function get_password_options() {
|
|
$random_byte_length = 22;
|
|
$salt = '';
|
|
if (function_exists('random_bytes')) {
|
|
return [
|
|
'cost' => 11,
|
|
];
|
|
} else {
|
|
$salt = mcrypt_create_iv($random_byte_length,MCRYPT_DEV_URANDOM);
|
|
return [
|
|
'cost' => 11,
|
|
'salt' => $salt,
|
|
];
|
|
}
|
|
}
|
|
|
|
function fetchAssocStatement($stmt)
|
|
{
|
|
if($stmt->num_rows>0)
|
|
{
|
|
$result = array();
|
|
$md = $stmt->result_metadata();
|
|
$params = array();
|
|
while($field = $md->fetch_field()) {
|
|
$params[] = &$result[$field->name];
|
|
}
|
|
call_user_func_array(array($stmt, 'bind_result'), $params);
|
|
if($stmt->fetch())
|
|
return $result;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
function get_nl_coupon($sales_header = "") { //changed
|
|
|
|
$dc_code = "";
|
|
if ($sales_header != "") {
|
|
$query = "SELECT * FROM shop_language WHERE company = '".$sales_header["company"]."' AND shop_code = '".$sales_header["shop_code"]."' AND code = '".$sales_header["language_code"]."'";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$language = mysqli_fetch_array($result);
|
|
if (is_null($GLOBALS["shop_language"])) {
|
|
$GLOBALS["shop_language"] = $language;
|
|
}
|
|
$query = "SELECT * FROM shop_shop WHERE company = '".$sales_header["company"]."' AND code = '".$sales_header["shop_code"]."'";
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$shop = mysqli_fetch_array($result);
|
|
if (is_null($GLOBALS["shop"])) {
|
|
$GLOBALS["shop"] = $shop;
|
|
}
|
|
}
|
|
if ($GLOBALS["shop_language"]["nl_coupon_active"] && $GLOBALS["shop_language"]["nl_coupon_header"] != "") {
|
|
$dc_code = random_str(7);
|
|
|
|
$counter_line = 1;
|
|
$new_code = true;
|
|
|
|
while ($dc_code <> '' && $counter_line < 10 && $new_code == true)
|
|
{
|
|
$query_line = "SELECT id FROM shop_coupon_line
|
|
WHERE company = '" . $GLOBALS["shop"]["company"] . "'
|
|
AND shop_code = '" . $GLOBALS['shop']["code"] . "'
|
|
AND language_code = '" . $GLOBALS['shop_language']["code"] . "'
|
|
AND coupon_code = '" . $dc_code . "'";
|
|
$result_line = mysqli_query($GLOBALS['mysql_con'], $query_line);
|
|
|
|
if (mysqli_num_rows($result_line) > 0) {
|
|
$dc_code = random_str(7);
|
|
$new_code = true;
|
|
$counter_line++;
|
|
}
|
|
else
|
|
{
|
|
$new_code = false;
|
|
}
|
|
}
|
|
|
|
$header_code = $GLOBALS["shop_language"]["nl_coupon_header"];
|
|
$query = "SELECT * FROM shop_coupon_header
|
|
WHERE company = '".$GLOBALS["shop"]["company"]."'
|
|
AND shop_code = '".$GLOBALS["shop"]["code"]."'
|
|
AND language_code = '".$GLOBALS["shop_language"]["code"]."'
|
|
AND code = '".$header_code."'
|
|
";
|
|
|
|
$result = mysqli_query($GLOBALS['mysql_con'], $query);
|
|
if (mysqli_num_rows($result) == 1) {
|
|
|
|
$coupon_header = mysqli_fetch_array($result);
|
|
|
|
$query = "INSERT INTO shop_coupon_line
|
|
SET company = '" . $GLOBALS["shop"]["company"] . "',
|
|
shop_code = '" . $GLOBALS['shop']["code"] . "',
|
|
language_code = '" . $GLOBALS['shop_language']["code"] . "',
|
|
code = '" . $coupon_header["code"] . "',
|
|
coupon_code = '" . $dc_code . "',
|
|
times_used = 0,
|
|
max_no_of_usage = 1,
|
|
amount = '" . $coupon_header["amount"] . "',
|
|
amount_left = '" . $coupon_header["amount"] . "',
|
|
update_insert = 1,
|
|
last_date_used=CURDATE()";
|
|
mysqli_query($GLOBALS['mysql_con'], $query);
|
|
|
|
}
|
|
|
|
}
|
|
return $dc_code;
|
|
|
|
}
|
|
|
|
|
|
function random_str($length, $keyspace = '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ')
|
|
{
|
|
$str = '';
|
|
$max = mb_strlen($keyspace, '8bit') - 1;
|
|
for ($i = 0; $i < $length; ++$i) {
|
|
$str .= $keyspace[random_int(0, $max)];
|
|
}
|
|
return $str;
|
|
}
|
|
|
|
function get_client_ip_address() {
|
|
$ipAddress = '';
|
|
if (isset($_SERVER['HTTP_CLIENT_IP']))
|
|
$ipAddress = $_SERVER['HTTP_CLIENT_IP'];
|
|
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
|
|
$ipAddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
|
else if(isset($_SERVER['HTTP_X_FORWARDED']))
|
|
$ipAddress = $_SERVER['HTTP_X_FORWARDED'];
|
|
else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
|
|
$ipAddress = $_SERVER['HTTP_FORWARDED_FOR'];
|
|
else if(isset($_SERVER['HTTP_FORWARDED']))
|
|
$ipAddress = $_SERVER['HTTP_FORWARDED'];
|
|
else if(isset($_SERVER['REMOTE_ADDR']))
|
|
$ipAddress = $_SERVER['REMOTE_ADDR'];
|
|
else
|
|
$ipAddress = 'UNKNOWN';
|
|
return $ipAddress;
|
|
}
|
|
|
|
function cartesian_product(array $input) {
|
|
// filter out empty values
|
|
$input = array_filter($input);
|
|
|
|
$result = [[]];
|
|
|
|
foreach ($input as $key => $values) {
|
|
$append = array();
|
|
|
|
foreach($result as $product) {
|
|
foreach($values as $item) {
|
|
$product[$key] = $item;
|
|
$append[] = $product;
|
|
}
|
|
}
|
|
|
|
$result = $append;
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
function cartesian_product_generator(array $input)
|
|
{
|
|
if ($input) {
|
|
if ($u = array_pop($input)) {
|
|
foreach (cartesian_product_generator($input) as $p) {
|
|
foreach ($u as $v) {
|
|
yield $p + [count($p) => $v];
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
yield[];
|
|
}
|
|
}
|
|
|
|
function dropAllActionItemsOnUrlQuery():string{
|
|
$actualURL = (isset($_SERVER['HTTPS']) ? "https" : "http") . '://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
|
|
$actualURLParts = parse_url($actualURL);
|
|
$actualURLPartsQuery = explode('&',$actualURLParts["query"]);
|
|
$i = 0;
|
|
foreach ($actualURLPartsQuery as $actualUrlPartQuery){
|
|
$actualUrlPartQuery = explode('=',$actualUrlPartQuery);
|
|
if ($actualUrlPartQuery[0] === 'action' || $actualUrlPartQuery[0] === 'action_id') {
|
|
unset($actualURLPartsQuery[$i]);
|
|
}
|
|
$i++;
|
|
}
|
|
return implode('&',$actualURLPartsQuery);
|
|
}
|
|
|
|
function get_false_password_login_counter($ipHash,$loginHash)
|
|
{
|
|
$pdoHost = getenv('MAIN_MYSQL_DB_HOST');
|
|
$pdoPort = getenv('MAIN_MYSQL_DB_PORT');
|
|
$pdoUser = getenv('MAIN_MYSQL_DB_USER');
|
|
$pdoPass = getenv('MAIN_MYSQL_DB_PASS');
|
|
$pdoSchema = getenv('MAIN_MYSQL_DB_SCHEMA');
|
|
|
|
$pdo = new \DynCom\mysyde\common\classes\PDOQueryWrapper($pdoHost, $pdoPort, $pdoSchema, $pdoUser, $pdoPass);
|
|
|
|
$prepStatement = "
|
|
|
|
SELECT
|
|
false_login.*
|
|
FROM
|
|
false_login
|
|
WHERE
|
|
( false_login.ip_hash = :ip_hash OR false_login.login_hash = :login_hash )
|
|
";
|
|
$params = [
|
|
[':ip_hash', $ipHash, PDO::PARAM_STR],
|
|
[':login_hash', $loginHash, PDO::PARAM_STR],
|
|
];
|
|
$pdo->setQuery($prepStatement);
|
|
$pdo->prepareQuery();
|
|
$pdo->bindParameters($params);
|
|
$pdo->executePreparedStatement();
|
|
$result = $pdo->getResultArray();
|
|
return $result;
|
|
}
|
|
function add_false_password_loign_counter($ipHash,$loginHash, $counter = 1, $nextLoginTime, $blockCounter = 0 )
|
|
{
|
|
$pdoHost = getenv('MAIN_MYSQL_DB_HOST');
|
|
$pdoPort = getenv('MAIN_MYSQL_DB_PORT');
|
|
$pdoUser = getenv('MAIN_MYSQL_DB_USER');
|
|
$pdoPass = getenv('MAIN_MYSQL_DB_PASS');
|
|
$pdoSchema = getenv('MAIN_MYSQL_DB_SCHEMA');
|
|
|
|
$pdo = new \DynCom\mysyde\common\classes\PDOQueryWrapper($pdoHost, $pdoPort, $pdoSchema, $pdoUser, $pdoPass);
|
|
|
|
$prepStatement = "
|
|
|
|
INSERT INTO `false_login`
|
|
(`ip_hash`, `login_hash`, `total_counter`, `next_login_time`, block_counter)
|
|
VALUES
|
|
(:ip_hash ,:login_hash, :counter, :next_login_time, 0)
|
|
ON DUPLICATE KEY UPDATE block_counter = :block_counter , next_login_time = :next_login_time
|
|
|
|
";
|
|
|
|
if($counter == 1)
|
|
{
|
|
$prepStatement = "
|
|
|
|
INSERT INTO `false_login`
|
|
(`ip_hash`, `login_hash`, `total_counter`, `next_login_time`, block_counter)
|
|
VALUES
|
|
(:ip_hash ,:login_hash, :counter, :next_login_time, :block_counter)
|
|
ON DUPLICATE KEY UPDATE total_counter = total_counter + 1 , next_login_time = :next_login_time
|
|
|
|
";
|
|
}
|
|
$params = [
|
|
[':ip_hash', $ipHash, PDO::PARAM_STR],
|
|
[':login_hash', $loginHash, PDO::PARAM_STR],
|
|
[':counter', $counter, PDO::PARAM_STR],
|
|
[':next_login_time', $nextLoginTime, PDO::PARAM_STR],
|
|
[':block_counter', $blockCounter, PDO::PARAM_STR],
|
|
];
|
|
$pdo->setQuery($prepStatement);
|
|
$pdo->prepareQuery();
|
|
$pdo->bindParameters($params);
|
|
$pdo->executePreparedStatement();
|
|
}
|
|
|
|
|
|
function delete_false_password_loign_counter($ipHash,$loginhash)
|
|
{
|
|
$pdoHost = getenv('MAIN_MYSQL_DB_HOST');
|
|
$pdoPort = getenv('MAIN_MYSQL_DB_PORT');
|
|
$pdoUser = getenv('MAIN_MYSQL_DB_USER');
|
|
$pdoPass = getenv('MAIN_MYSQL_DB_PASS');
|
|
$pdoSchema = getenv('MAIN_MYSQL_DB_SCHEMA');
|
|
|
|
$pdo = new \DynCom\mysyde\common\classes\PDOQueryWrapper($pdoHost, $pdoPort, $pdoSchema, $pdoUser, $pdoPass);
|
|
|
|
$prepStatement = "
|
|
|
|
Delete From `false_login` where ip_hash = :ip_hash or login_hash = :login_hash
|
|
|
|
";
|
|
$params = [
|
|
[':ip_hash', $ipHash, PDO::PARAM_STR],
|
|
[':login_hash', $loginhash, PDO::PARAM_STR],
|
|
];
|
|
$pdo->setQuery($prepStatement);
|
|
$pdo->prepareQuery();
|
|
$pdo->bindParameters($params);
|
|
$pdo->executePreparedStatement();
|
|
}
|
|
|
|
function getUserIP()
|
|
{
|
|
$client = @$_SERVER['HTTP_CLIENT_IP'];
|
|
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
|
|
$remote = $_SERVER['REMOTE_ADDR'];
|
|
|
|
if(filter_var($client, FILTER_VALIDATE_IP))
|
|
{
|
|
$ip = $client;
|
|
}
|
|
elseif(filter_var($forward, FILTER_VALIDATE_IP))
|
|
{
|
|
$ip = $forward;
|
|
}
|
|
else
|
|
{
|
|
$ip = $remote;
|
|
}
|
|
|
|
return $ip;
|
|
}
|
|
function recaptcha() {
|
|
$query = 'SELECT * FROM google_recaptcha';
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$recaptcha = @mysqli_fetch_array($result);
|
|
$secret = $recaptcha["secretkey"];
|
|
$key = $recaptcha["websitekey"];
|
|
$GLOBALS["secret"] = $secret;
|
|
$GLOBALS["key"] = $key;
|
|
}
|
|
|
|
// FAQ MODULE
|
|
function replace_umlaut ($txt) {
|
|
|
|
//Replace String to Entities
|
|
|
|
if (strpos($txt,'Ö') !== false) {
|
|
$txt = str_replace('Ö', 'Ö', $txt);
|
|
}
|
|
if (strpos($txt,'ö') !== false) {
|
|
$txt = str_replace('ö', 'ö', $txt);
|
|
}
|
|
|
|
if (strpos($txt,'Ü') !== false) {
|
|
$txt = str_replace('Ü', 'Ü', $txt);
|
|
}
|
|
if (strpos($txt,'ü') !== false) {
|
|
$txt = str_replace('ü', 'ü', $txt);
|
|
}
|
|
|
|
if (strpos($txt,'Ä') !== false) {
|
|
$txt = str_replace('Ä', 'Ä', $txt);
|
|
}
|
|
if (strpos($txt,'ä') !== false) {
|
|
$txt = str_replace('ä', 'ä', $txt);
|
|
}
|
|
|
|
return $txt;
|
|
|
|
}
|
|
|
|
// Funktion zum Laden des benutzerdefinierten Selektor-Aktionsumschalters
|
|
function loadAction($formname, $deleteAction, $dblclick_action, $counter){
|
|
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
|
|
?>
|
|
<td >
|
|
<div class="dropdown">
|
|
<button type="button" data-count="<?=$counter;?>" onclick="myFunction(<?=$counter;?>)" class="dropbtn"><?= $translation->get("dropdown");?></button>
|
|
<div id="myDropdown<?=$counter;?>" data-count="<?=$counter;?>" class="dropdown-content contentSection dropdownContent<?=$counter;?>">
|
|
<?= '<a data-formname="'.$formname.'" class="button" href="javascript:void(0);" onclick="setCurrentToolbarClicked(this);loadCard(\''.$dblclick_action.'\');"> <span class="material-icons">edit</span></a>';?>
|
|
<?= '<a data-formname="'.$formname.'" class="button" href="javascript:void(0);" onclick="setCurrentToolbarClicked(this);'.$deleteAction.'"> <span class="material-icons">delete</span></a>';?>
|
|
</div>
|
|
</div>
|
|
|
|
</td>
|
|
<?
|
|
// <!-- echo "<td width=\"100\" class=\"sorticon\"><div>" .
|
|
// ''.
|
|
// '<a data-formname="'.$formname.'" class="button_edit" href="javascript:void(0);" onclick="setCurrentToolbarClicked(this);loadCard(\''.$dblclick_action.'\');">'.$translation->get("edit").'</a>'.
|
|
// "</div></td>"; -->
|
|
}
|