www.archline.hu — clean post-compromise baseline #2

Merged
imre.agent merged 88 commits from baseline/47 into main 2026-07-16 14:40:45 +02:00
274 changed files with 35 additions and 77194 deletions
Showing only changes of commit 34c233950a - Show all commits

6
.gitmodules vendored Normal file
View File

@ -0,0 +1,6 @@
[submodule "cadline/backend/common_cadline_libraries"]
path = cadline/backend/common_cadline_libraries
url = ssh://git@git.cadline.hu:22222/cadline_web/cadcommonlib.git
[submodule "cadline/backend/maintenance"]
path = cadline/backend/maintenance
url = ssh://git@git.cadline.hu:22222/cadline_web/maintenance.git

View File

@ -18,6 +18,11 @@ log(){ printf '[build] %s\n' "$*"; }
rm -rf "$OUT"; mkdir -p "$OUT"
# Ensure the developer-controlled submodules are populated (cadcommonlib, maintenance).
git -C "$ROOT" submodule update --init \
cadline/backend/common_cadline_libraries cadline/backend/maintenance >/dev/null 2>&1 || \
log "WARN: submodule update failed — common_cadline_libraries/maintenance may be empty"
# 1) Joomla core — official 3.8.11 package (deployed form), minus demo assets and
# runtime data dirs (cache/tmp/logs/images are data, not verified code).
log "core: Joomla 3.8.11 (official package)"
@ -51,7 +56,7 @@ done
for d in "$ROOT"/cadline/*/; do
[ -d "$d" ] || continue
log "cadline: $(basename "$d")"
rsync -a --exclude='.provenance' "$d" "$OUT/"
rsync -a --exclude='.provenance' --exclude='.git' "$d" "$OUT/"
done
# 5) Cadline core modifications — live versions overlaid on the package core
@ -61,6 +66,17 @@ if [ -d "$ROOT/overrides" ]; then
rsync -a --exclude='.gitkeep' "$ROOT/overrides/" "$OUT/"
fi
# 5b) Deploy transform for the submodule-sourced dirs: the developer repos
# (cadcommonlib, maintenance) store CRLF line-endings; the deployed live form
# is LF. Normalize the text files to LF so the baseline byte-matches deployment.
log "normalize: line-endings (common_cadline_libraries, maintenance) -> LF"
for dir in "$OUT/common_cadline_libraries" "$OUT/maintenance"; do
[ -d "$dir" ] || continue
find "$dir" -type f 2>/dev/null | while IFS= read -r f; do
grep -Iq . "$f" 2>/dev/null && sed -i 's/\r$//' "$f"
done
done
# 6) Safety net — malware IOC + scan artifacts must never appear in the baseline
# (the sources above already exclude them; this is defensive, documented in
# malware-iocs.md / malware-iocs.paths).

@ -0,0 +1 @@
Subproject commit 423fec9b929b381339d71623fc621a998a6e3e0f

View File

@ -1 +0,0 @@
constants.php

View File

@ -1,100 +0,0 @@
<?php
class POfile
{
private $stream;
function __construct($lang = 'hu_HU')
{
$header = '';
// PO headers + 1
$header .= '"Project-Id-Version: LiveLanguageResources\n"' . PHP_EOL;
$header .= '"POT-Creation-Date: ' . date('Y-m-d H:i') . '\n"' . PHP_EOL;
$header .= '"Language-Team: \n"' . PHP_EOL;
$header .= '"Language: ' . $lang . '\n"' . PHP_EOL;
$header .= '"MIME-Version: 1.0\n"' . PHP_EOL;
$header .= '"Content-Type: text/plain; charset=UTF-8\n"' . PHP_EOL;
$header .= '"Content-Transfer-Encoding: 8bit\n"' . PHP_EOL . PHP_EOL;
$this->stream = $header;
}
function getStream()
{
return $this->stream;
}
function addComment($param, $value)
{
$this->stream .= '#. ' . $param . ': ' . str_replace("\r\n", ' ', $value) . PHP_EOL;
}
function addMsgctxt($msgctxt)
{
if (strpos($msgctxt, "<br />") !== false || strpos($msgctxt, "\r\n") !== false) {
$msgctxt = strpos($msgctxt, "\r\n") !== false ? explode("\r\n", $msgctxt) : explode("<br />", $msgctxt);
$this->stream .= 'msgctxt ""' . PHP_EOL;
for ($i = 0; $i < count($msgctxt); $i++) {
$msgctxt[$i] = strpos($msgctxt[$i], "\r\n") !== false ? $msgctxt[$i] : preg_replace("/\r|\n/", "", $msgctxt[$i]);
if ($i == 0) {
$this->stream .= '",' . $msgctxt[$i] . '\\n"';
} else {
if ($i == count($msgctxt) - 1)
$this->stream .= '"' . $msgctxt[$i] . '"';
else
$this->stream .= '"' . $msgctxt[$i] . '\\n"';
}
$this->stream .= PHP_EOL;
}
} else {
$this->stream .= 'msgctxt ' . '",' . $msgctxt . '"' . PHP_EOL;
}
}
function addMsgID($msgID)
{
if (strpos($msgID, "<br />") !== false || strpos($msgID, "\r\n") !== false) {
$msgID = strpos($msgID, "\r\n") !== false ? explode("\r\n", $msgID) : explode("<br />", $msgID);
$this->stream .= 'msgid ""' . PHP_EOL;
for ($i = 0; $i < count($msgID); $i++) {
$msgID[$i] = strpos($msgID[$i], "\r\n") !== false ? $msgID[$i] : preg_replace("/\r|\n/", "", $msgID[$i]);
if ($i == count($msgID) - 1)
$this->stream .= '"' . $msgID[$i] . '"';
else
$this->stream .= '"' . $msgID[$i] . '\\n"';
$this->stream .= PHP_EOL;
}
} else {
$this->stream .= 'msgid ' . '"' . $msgID . '"' . PHP_EOL;
}
}
function addMsgSTR($msgStr)
{
if (strpos($msgStr, "<br />") !== false) {
$msgStr = explode("<br />", $msgStr);
$this->stream .= 'msgstr ""' . PHP_EOL;
for ($i = 0; $i < count($msgStr); $i++) {
$msgStr[$i] = preg_replace("/\r|\n/", "", $msgStr[$i]);
if ($i == count($msgStr) - 1)
$this->stream .= '"' . $msgStr[$i] . '"';
else
$this->stream .= '"' . $msgStr[$i] . '\\n"';
$this->stream .= PHP_EOL;
}
$this->stream .= PHP_EOL;
} else {
$this->stream .= 'msgstr ' . '"' . $msgStr . '"' . PHP_EOL . PHP_EOL;
}
}
}

View File

@ -1,24 +0,0 @@
<?php
if (!class_exists('Constants')) require_once("constants.php");
if ($_SERVER['SERVER_NAME'] == 'www.archline.hu' || $_SERVER['SERVER_NAME'] == 'www.archlinexp.com' || $_SERVER['SERVER_NAME'] == 'www.archlinexp.eu') {
$config['db_host'] = Constants::DB_HOST;
$config['db_user'] = Constants::DB_USER;
$config['db_pass'] = Constants::DB_PASSWORD;
$config['db_name'] = Constants::DB_NAME;
} elseif ($_SERVER['SERVER_NAME'] == 'secondary.dev.cadline.hu') {
$config['db_host'] = Constants::DB_HOST;
$config['db_user'] = Constants::DB_USER;
$config['db_pass'] = Constants::DB_PASSWORD;
$config['db_name'] = Constants::DB_NAME;
} elseif ($_SERVER['SERVER_NAME'] == 'crm.cadline.hu') {
$config['db_host'] = Constants::DB_HOST;
$config['db_user'] = Constants::DB_USER;
$config['db_pass'] = Constants::DB_PASSWORD;
$config['db_name'] = Constants::DB_NAME;
} else {
$config['db_host'] = '127.0.0.1';
$config['db_user'] = Constants::DB_USER;
$config['db_pass'] = Constants::DB_PASSWORD;
$config['db_name'] = Constants::DB_NAME;
}

View File

@ -1,133 +0,0 @@
<?php
if (!defined('PATH_CODEGEN')) define('PATH_CODEGEN', "/usr/local/sbin/codegen");
if (!defined('_LEASE_VALID_DAYS_')) define("_LEASE_VALID_DAYS_", 60);
if (!defined('CRMADATBAZIS')) define('CRMADATBAZIS', "cl_hlusers");
if (!defined('JMLADATBAZIS')) define('JMLADATBAZIS', "www_archline_hu");
if (!defined('SYNCADATBAZIS')) define('SYNCADATBAZIS', "sync_crm");
if (!defined('_COURSE_PRICE_PRELIMINARY_')) define("_COURSE_PRICE_PRELIMINARY_", 342);
if (!defined('_COURSE_PRICE_INTERMEDIATE_')) define("_COURSE_PRICE_INTERMEDIATE_", 343);
if (!defined('_MANAGER_')) define("_MANAGER_", 36);
if (!defined('ACT_VERSION_ID')) define('ACT_VERSION_ID', 1182);
$crm_config = "true";
class Status
{
const sNormal = 0; // Semmilyen kiveteles esemeny nem erzekelheto, a program rendben fut
const sInconsistent = 2; // A backup key file-ok elterest mutatnak a fo key file-al
const sReenabled = 4; // Egy letiltott program most kapta meg a reaktivalo kodot
const sDisabled = 8; // A program le lett tiltva
const sLimited = 16; // A program korlatozott modban fut
const sUnlimited = 32; // A vedelem lekapcsolt, a program nem korlatozza a tovabbi mukodest
const sTimeBack = 64; // Oravisszaallitast erzekelt
const sTimeBackRestored = 128; // Kapott visszaallitas kiiktato kodot
const sFixTimeLimitReached = 256; // Elerte a beallitott vegleges lejarati idot
const sKilled = 512; // A program le lett allitva
const sCracked = 1024; // A program fel van torve
const sActiveRegistration = 2048; // A regisztraciorol kaptunk pozitiv visszajelzest
const sTimeCodeAppliedToFile = 4096; // Az idokod letarolasra kerult
const sTimeCodeErrorReceived = 8192; // Idokod helyett hibat kapott
const sNotCommercialProgram = 16384; // A program nem kereskedelmi valtozat
const sHW_keyOK = 32768; // A program hardware kulcsa rendben van
const sHW_keyLanForSingle = 65536; // A hardware kulcs lan-s es ezt hasznalna a program
const sHW_DriverVerinfoNotAvaliable = 131072; // Sentinel: Driver version info not avalaiable
const sHW_NotOurKey = 262144; // Sentinel: not our key
const sHW_TerminalServerEnableFailed = 524288; // Sentinel: enable running on terminal server failed
const sHW_KeyNotFound = 1048576; // Sentinel: key not found
const sHW_AESNotEnabled = 2097152; // Sentinel: AES not enabled
const sHW_SecTunNotEnabled = 4194304; // Sentinel: secure tunnel not enabled
const sHW_NoKeyInfo = 8388608; // Sentinel: unable to access key info
const sHW_CannotContact = 16777216; // Sentinel: cannot contact to server
const sHW_InitFailed = 33554432; // Sentinel: key initialization failed
const sHW_FormatPacket = 67108864; // Sentinel: format packet error
const sHW_LanServerNotFound = 134217728; // Sentinel: lan server not found
const sHW_keyKeySerialNotMatchingWithLicenseSerial = 268435456; // A hardwarekulcs sorozatszama nem passzol a licenc sorozatszamahoz
const sHW_LanServerKeyNotFound = 536870912; // A halozatos szerver program nem latja a kulcsot
const sHW_LanServerNotEnoughLicence = 1073741824; // A halozatos szerver szabad licencei elfogytak
const sHW_LicenceRemoved = 2147483648; // A licenc el lett tavolitva
const sFloatingLicenseToAnotherComputer = 4294967296; // A floating licence egy masik gephez lett rogzitve
const sFloatingLicensePINError = 8589934592; // A floating license nem kapta meg a pin kodjat
const sFloatingAnotherLicenseIsOnThisComputer = 17179869184; // Ehhez a gephez egy masik licensz van rogzitve
}
class CRM_Error
{
const serverDownEng = '1121 - The server is currently not available. Please retry the connection later. If the problem persists, contact customer support.';
const serverDownHun = '1121 - A szerver jelenleg nem elérhető. Kérjük, próbálja újra a kapcsolatot később. Ha a probléma továbbra is fennáll, lépjen kapcsolatba a terméktámogatással.';
}
class Floating_Error
{
const UNKNOWN = 0;
const DIFFERENT_LICENSE_ON_THE_SAME_COMPUTER = 1;
const LIMIT_REACHED = 2;
}
class Time
{
const sMin = 1;
const sFiveMin = 5;
const sFifteenMin = 15;
const sHour = 60;
const sThreeHour = 180;
const sSixHour = 360;
const sTwelveHour = 720;
const sDay = 1440;
}
class Hour
{
const sHour = 1;
const sThreeHour = 3;
const sSixHour = 6;
const sTwelveHour = 12;
}
class _Country
{
const Hungary = 36;
}
class _UserType
{
const Nonprofit = 2;
}
class _UserStatus
{
const StudentProbBuyer = 7;
}
class _Profession
{
const StudentIntDesinger = 11;
}
class _Manager
{
const Web = 36;
}
class _Product
{
const Professional = 1;
const Live = 2;
}
class _Hardlock
{
const Blank = 0;
const Active = 1;
const Inactive = 2;
}
class _Program
{
const CurrentVersion = 20;
const PrevVersion = 19;
const ProfType = 8;
const LiveType = 76;
const Active = 0;
const Inactive = 1;
const Nonprofit = 5;
}

View File

@ -1,616 +0,0 @@
<?php
if (!isset($config)) require_once('crm_config.db.php');
if (!isset($crm_config)) require_once('crm_config.php');
if (!defined('_DB_HOST') && isset($config['db_host'])) define('_DB_HOST', $config['db_host']);
if (!defined('_DB_NAME') && isset($config['db_name'])) define('_DB_NAME', $config['db_name']);
if (!defined('_DB_USER') && isset($config['db_user'])) define('_DB_USER', $config['db_user']);
if (!defined('_DB_PASS') && isset($config['db_pass'])) define('_DB_PASS', $config['db_pass']);
class crm_database
{
public static $msh;
public $writelog;
private $host;
private $name;
private $user;
private $pass;
private $connection;
private $queryResult;
private $queryString;
public function __construct()
{
$this->connection = false;
$this->host = '';
$this->user = '';
$this->pass = '';
$this->name = '';
$this->writelog = false;
}
public static function getInstance()
{
if (!empty(self::$msh)) {
return self::$msh;
}
self::$msh = new crm_database();
self::$msh->init();
return self::$msh;
}
public static function escapeString($str = "")
{
$ret = mysqli_real_escape_string($this->connection, $str);
return $ret;
}
public function init($host = _DB_HOST, $name = _DB_NAME, $user = _DB_USER, $pass = _DB_PASS)
{
$this->host = $host;
$this->name = $name;
$this->user = $user;
$this->pass = $pass;
}
private function connect()
{
if ($this->connection) {
return;
}
$this->connection = mysqli_connect($this->host, $this->user, $this->pass);
if (false === $this->connection) {
throw new Exception('Can\'t connect to db');
}
mysqli_select_db($this->connection, $this->name);
mysqli_query($this->connection, 'SET CHARACTER SET UTF8');
mysqli_query($this->connection, 'SET NAMES \'UTF8\' ');
mysqli_set_charset($this->connection, 'utf8');
if (mysqli_error($this->connection)) {
throw new Exception(mysqli_error($this->connection));
}
}
public function getQueryString()
{
return $this->queryString;
}
public function query($query, $getID = false)
{
$this->connect();
$this->AddSemicolonToQueryString($query);
$this->queryString = $query;
if ($this->is_write_type($query) === true) {
$boolWrite = true;
$arrSkip = array('h_aktivalas_infok', 'h_history', 'u_history', 'u_userstatus_history', 'cl_hlusers.userstats2013', 'cl_hlusers.switch', 'cl_hlusers.writelog');
foreach ($arrSkip as $tabla) {
if (strpos($query, $tabla)) {
$boolWrite = false;
break;
}
}
if ($boolWrite) {
mysqli_query($this->connection, "INSERT INTO `cl_hlusers`.`writelog` (`user`,`datum`,`ip`,`url`,`func`,`sql`) VALUES (
'" . (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'www.archlinexp.com') . "',
'" . date("Y-m-d H:i:s", time()) . "',
'" . (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1') . "',
'" . (isset($_SERVER['SERVER_NAME']) ? addslashes($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']) : '') . "',
'" . addslashes("function: " . __FUNCTION__ . " method: " . __METHOD__) . "','" . addslashes($query) . "');");
}
}
$this->queryResult = mysqli_query($this->connection, $query);
if (mysqli_error($this->connection)) {
throw new Exception(mysqli_error($this->connection) . ' Query: ' . $query);
}
if ($getID) return $this->getInsertedId();
}
public function AddSemicolonToQueryString(&$query)
{
$query = rtrim($query);
if (substr($query, -1) != ';') {
$query = $query . ";";
}
}
public function fetchNext()
{
$back = array();
if ($row = mysqli_fetch_assoc($this->queryResult)) {
foreach ($row as $key => $value) {
$row[$key] = stripslashes($value);
}
$back = $row;
return $back;
}
return false;
}
public function fetchAssoc()
{
$back = array();
while ($row = mysqli_fetch_assoc($this->queryResult)) {
foreach ($row as $key => $value) {
$row[$key] = stripslashes($value);
}
$back[] = $row;
}
return $back;
}
public function getInsertedId()
{
return mysqli_insert_id($this->connection);
}
public function select($table, $where = false, $offset = false, $limit = false, $order = false)
{
$whereStr = '';
$limitStr = '';
$orderStr = '';
if (is_array($where)) {
$whereStr = 'WHERE ' . $this->whereMakerPriv($where);
} elseif ($where) {
$whereStr = 'WHERE ' . $where;
}
if (($offset !== false and $offset !== null) && ($limit !== false and $limit !== null)) {
$limitStr = 'LIMIT ' . $offset . ', ' . $limit;
}
if (is_array($order)) {
$orderStr = 'ORDER BY ';
foreach ($order as $key => $value) {
$orderStr .= $key . ' ' . $value . ' ';
}
} elseif ($order) {
$orderStr = 'ORDER BY ' . $order;
}
return $this->query('SELECT * FROM ' . $table . ' ' . $whereStr . ' ' . $orderStr . ' ' . $limitStr . ';');
}
public function getProp($table, $func, $field, $where = false)
{
$whereStr = '';
if (is_array($where)) {
$whereStr = 'WHERE ' . $this->whereMakerPriv($where);
} elseif ($where) {
$whereStr = 'WHERE ' . $where;
}
$this->query('SELECT ' . $func . '(' . $field . ') as p FROM ' . $table . ' ' . $whereStr . ';');
$arr = $this->fetchAssoc();
return $arr[0]['p'];
}
public function getCount($table, $field = 'id', $where = false)
{
return $this->getProp($table, 'COUNT', $field, $where);
}
public function getSum($table, $field = 'id', $where = false)
{
return $this->getProp($table, 'SUM', $field, $where);
}
public function getAvg($table, $field = 'id', $where = false)
{
return $this->getProp($table, 'AVG', $field, $where);
}
public function delete($table, $where = false)
{
$whereStr = '';
if (is_array($where)) {
$whereStr = 'WHERE ' . $this->whereMakerPriv($where);
} elseif ($where) {
$whereStr = 'WHERE ' . $where;
}
return $this->query('DELETE FROM ' . $table . ' ' . $whereStr . ';');
}
public function update($table, $infoArr, $where = false)
{
if (!is_array($infoArr)) {
return false;
}
$whereStr = '';
$dataArr = array();
$data = '';
if (is_array($where)) {
$whereStr = 'WHERE ' . $this->whereMakerPriv($where);
} elseif ($where) {
$whereStr = 'WHERE ' . $where;
}
foreach ($infoArr as $key => $value) {
$dataArr[] = '`' . $key . '`="' . mysqli_real_escape_string($this->connection, $value) . '" ';
}
$data = implode(',', $dataArr);
return $this->query('UPDATE ' . $table . ' SET ' . $data . ' ' . $whereStr . ';');
}
public function insert($table, $infoArr)
{
$this->connect();
$columArr = array();
$valueArr = array();
$colums = '';
$values = '';
foreach ($infoArr as $key => $value) {
$columArr[] = '`' . $key . '`';
$valueArr[] = '"' . mysqli_real_escape_string($this->connection, $value) . '"';
}
$colums = implode(',', $columArr);
$values = implode(',', $valueArr);
return $this->query('INSERT INTO ' . $table . ' (' . $colums . ') VALUES (' . $values . ');', true);
}
public function affectedRows()
{
return mysqli_affected_rows($this->connection);
}
public function whereMakerPriv($where)
{
if (!is_array($where)) {
return 1;
}
$this->connect();
$back = '1 ';
foreach ($where as $key => $value) {
if (is_array($value)) {
$back .= 'AND `' . $key . '`' . $value[0] . '"' . $value[1] . '" ';
} else {
$back .= 'AND `' . $key . '`="' . mysqli_real_escape_string($this->connection, $value) . '" ';
}
}
return $back;
}
public static function whereMaker($where)
{
if (!is_array($where)) {
return 1;
}
$back = '1 ';
foreach ($where as $key => $value) {
if (is_array($value)) {
$back .= 'AND `' . $key . '`' . $value[0] . '"' . $value[1] . '" ';
} else {
$back .= 'AND `' . $key . '`="' . $value . '" ';
}
}
return $back;
}
public function is_write_type($sql)
{
if (!preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql)) {
return false;
}
return true;
}
public function getConnection()
{
return ($this->connection);
}
public function setConnect()
{
$this->connect();
}
}
class Database
{
private $host = _DB_HOST;
private $username = _DB_USER;
private $password = _DB_PASS;
private $queryResult;
private $queryString;
private static $msh;
protected $connection;
private static $arrSkip = array(
"cl_hlusers.h_aktivalas_infok",
"cl_hlusers.h_history",
"cl_hlusers.u_history",
"cl_hlusers.u_userstatus_history",
"cl_hlusers.userstats2013",
"cl_hlusers.switch",
"cl_hlusers.writelog",
"cl_hlusers.telemetria",
"cl_hlusers.computers",
"cl_hlusers.debug_table"
);
public function __construct()
{
if (!isset($this->connection)) {
$this->connection = new mysqli($this->host, $this->username, $this->password);
if (!$this->connection) {
echo 'Cannot connect to database!';
exit;
}
}
unset($this->queryResult);
$this->connection->set_charset("utf8");
return $this->connection;
}
public static function getInstance()
{
if (!empty(self::$msh)) return self::$msh;
self::$msh = new Database();
return self::$msh;
}
public function query($query, $params = null, $isClosed = false, $getID = false)
{
// $params = array("ss","string_1","string_2");
$this->addSemicolonToQueryString($query);
$imp = '';
if ($params != null) $imp = implode(", ", $params);
$this->queryString = "{$query} ($imp)";
if ($this->isWriteType($query)) {
$boolWrite = true;
foreach (self::$arrSkip as $tabla) {
if (strpos($query, $tabla)) {
$boolWrite = false;
break;
}
}
// A nagios test ne irja tele a cl_hlusers.writelog tablat
if (strpos($_SERVER['REQUEST_URI'], 'nagios_monitor.php') !== false || strpos($_SERVER['REQUEST_URI'], 'maintenance/test_API.php') !== false || $_SERVER['SERVER_NAME'] == 'secondary.cadline.hu')
$boolWrite = false;
// A tesztek futtatasakor ne logolja a modositasokat (majd a webformos)
if (strpos($_SERVER['REQUEST_URI'], 'maintenance/tips.php') /*&& $_SERVER['REMOTE_ADDR'] == '185.43.206.63'*/) {
$paramIndex = 5;
if ((substr($params[$paramIndex], 0, 7) == '3710018') || (substr($params[$paramIndex], 0, 7) == '3710028')
|| (substr($params[$paramIndex], 0, 7) == '3710038') || (substr($params[$paramIndex], 0, 7) == '3700078')
|| (substr($params[$paramIndex], 0, 7) == '3700018')
) {
$boolWrite = false;
}
}
$func = addslashes("function: " . __FUNCTION__ . " method: " . __METHOD__)/*.' --> '.$params[$paramIndex]*/;
if ($boolWrite) {
mysqli_query($this->connection, "INSERT INTO `cl_hlusers`.`writelog` (`user`,`datum`,`ip`,`url`,`func`,`sql`) VALUES (
'" . (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'www.archlinexp.com') . "',
'" . date("Y-m-d H:i:s", time()) . "',
'" . (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1') . "',
'" . (isset($_SERVER['SERVER_NAME']) ? addslashes($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']) : '') . "',
'" . $func . "','" . addslashes($query) . "');");
}
}
$this->queryResult = $this->connection->prepare($query);
if ($params != null) {
$tmp = array();
foreach ($params as $key => $value) $tmp[$key] = &$params[$key];
call_user_func_array(array($this->queryResult, 'bind_param'), $tmp);
}
$this->queryResult->execute();
if (mysqli_error($this->connection)) throw new Exception(mysqli_error($this->connection) . ' Query: ' . $query);
if ($getID) return $this->getInsertedId();
if ($isClosed) $this->queryResult->close();
}
public function insert($table, $infoArr, $type, $needEscape = true)
{
$columArr = array();
$bindArr = array();
$endArr = array();
$colums = '';
$values = '';
array_push($endArr, $type);
foreach ($infoArr as $key => $value) {
$columArr[] = "`{$key}`";
$bindArr[] = "?";
$string = !$needEscape && $key == 'versionInfo' ? $value : mysqli_real_escape_string($this->connection, $value);
array_push($endArr, $string);
}
$colums = implode(',', $columArr);
$values = implode(',', $bindArr);
$sql = "INSERT INTO {$table} ({$colums}) VALUES ({$values});";
return $this->query($sql, $endArr, false, true);
}
public function update($table, $infoArr, $where = false, $type, $needEscape = true)
{
if (!is_array($infoArr)) return false;
$whereStr = '';
$paramValue = array();
$bindArr = array();
$endArr = array();
$data = '';
array_push($endArr, $type);
if (is_array($where)) $whereStr = 'WHERE ' . $this->whereMakerPriv($where, $paramValue);
elseif ($where) $whereStr = "WHERE {$where}";
foreach ($infoArr as $key => $value) {
$bindArr[] = "`{$key}` = ?";
$string = !$needEscape && $key == 'versionInfo' ? $value : mysqli_real_escape_string($this->connection, $value);
array_push($endArr, $string);
}
foreach ($paramValue as $param) array_push($endArr, mysqli_real_escape_string($this->connection, $param));
$data = implode(',', $bindArr);
$query = "UPDATE {$table} SET {$data} {$whereStr};";
return $this->query($query, $endArr, true);
}
public function delete($table, $where = false, $type)
{
$whereStr = '';
$paramValue = array();
$endArr = array();
array_push($endArr, $type);
if (is_array($where)) $whereStr = 'WHERE ' . $this->whereMakerPriv($where, $paramValue);
elseif ($where) $whereStr = "WHERE {$where}";
foreach ($paramValue as $param) array_push($endArr, mysqli_real_escape_string($this->connection, $param));
$query = "DELETE FROM {$table} {$whereStr};";
return $this->query($query, $endArr, true);
}
public function fetchNext()
{
$result = $this->get_row();
$this->queryResult->free_result();
$this->queryResult->close();
return $result;
}
public function fetchAssoc()
{
$result = $this->get_result();
$this->queryResult->free_result();
$this->queryResult->close();
return $result;
}
protected function get_result()
{
$result = array();
$this->queryResult->store_result();
for ($i = 0; $i < $this->queryResult->num_rows; $i++) {
$metadata = $this->queryResult->result_metadata();
$params = array();
while ($field = $metadata->fetch_field()) $params[] = &$result[$i][$field->name];
call_user_func_array(array($this->queryResult, 'bind_result'), $params);
$this->queryResult->fetch();
}
if (!empty($result)) return $result;
else return null;
}
protected function get_row()
{
$result = array();
$this->queryResult->store_result();
if ($this->queryResult->num_rows > 0) {
for ($i = 0; $i < 1; $i++) {
$metadata = $this->queryResult->result_metadata();
$params = array();
while ($field = $metadata->fetch_field()) $params[] = &$result[$i][$field->name];
call_user_func_array(array($this->queryResult, 'bind_result'), $params);
$this->queryResult->fetch();
}
}
if (!empty($result)) return $result[0];
else return null;
}
public function getInsertedId()
{
$id = $this->queryResult->insert_id;
$this->queryResult->close();
return $id;
}
private function addSemicolonToQueryString(&$query)
{
$query = rtrim($query);
if (substr($query, -1) != ';') $query = "{$query};";
}
private function whereMakerPriv($where, &$paramValue = array())
{
if (!is_array($where)) return 1;
$back = '1 ';
foreach ($where as $key => $value) {
if (is_array($value)) {
$back .= 'AND `' . $key . '`' . $value[0] . '"' . $value[1] . '" ';
} else {
$back .= "AND `{$key}` = ? ";
array_push($paramValue, $value);
}
}
return $back;
}
private function isWriteType($sql)
{
if (!preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql)) {
return false;
}
return true;
}
public function getQueryString()
{
return $this->queryString;
}
public function getQueryResult()
{
return $this->queryResult;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,608 +0,0 @@
<?php
if (!class_exists('crm_hardlock')) require_once("crm_hardlock.class.php");
class crm_test_API extends Database
{
private $code;
private $password;
private $isid;
private $actDate;
private $actCode;
private $sellDate;
private $hlStat;
private $installCode;
public static $programYears = array(
'19', // 2019
'20', // 2020
'21', // 2021
'22', // 2022
'23' // 2023
);
public function __construct($_code, $_password)
{
error_reporting(E_ERROR);
parent::__construct();
$this->code = $_code;
$this->password = $_password;
}
public function setIsid($_isid)
{
$this->isid = $_isid;
}
public function setActDate($_actDate)
{
$this->actDate = $_actDate;
}
public function setActCode($_actCode)
{
$this->actCode = $_actCode;
}
public function setHlStat($_hlStat)
{
$this->hlStat = $_hlStat;
}
public function setSellDate($_sellDate)
{
$this->sellDate = $_sellDate;
}
public function SetInstallCode($_installCode)
{
$this->installCode = $_installCode;
}
private function encode()
{
$date = new DateTime();
$date = $date->format('Y-m-d');
$number = explode("-", $date);
$code = ((($number[0] * 4) * 555) + (($number[1] * 5) * 333) + ($number[2] * 72)) / 90;
return (int)$code;
}
public function checkCode()
{
return $this->code == $this->encode();
}
public function updateFizetve()
{
$updateQuery = "UPDATE `" . CRMADATBAZIS . "`.`h_programs` SET prFizetve = ?, prActCode = NULL WHERE prPass = ?";
$this->query($updateQuery, array('ss', $this->actDate, $this->password));
$query = "SELECT prFizetve FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prPass = ?;";
$this->query($query, array('s', $this->password));
$res = $this->fetchNext();
return $res['prFizetve'];
}
public function countFloating($floatings, &$message)
{
$floatingsCount = count($floatings);
$query = "SELECT * FROM `" . SYNCADATBAZIS . "`.`floating_licenses` WHERE hlNum = ?";
$this->query($query, array('s', substr($this->password, 0, 6)));
$floatingLicenses = $this->fetchAssoc();
if (count($floatingLicenses) != $floatingsCount) {
$message = "error: nem egyeznek meg az active floating futo licencek";
return false;
}
for ($i = 0; $i < count($floatingLicenses); $i++) {
if (!in_array($floatingLicenses[$i]['seatID'], $floatings)) {
$message = "error: nincs benne a futo program az aktiv floating licencek kozott: " . $floatingLicenses[$i]['seatID'];
return false;
}
}
return true;
}
public function countRegistration($action)
{
$query = "SELECT id FROM `" . CRMADATBAZIS . "`.`p_serial_isid` WHERE serial = ?";
if ($action == 'active') $query .= " and aktiv = 1";
elseif ($action == 'inactive') $query .= " and aktiv = 0";
$this->query($query, array('s', $this->password));
$res = $this->fetchAssoc();
return count($res);
}
public function countActivationCode()
{
$query = "SELECT * FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prPass = ? AND prActCode != '' AND prActCode IS NOT NULL";
$this->query($query, array('s', $this->password));
$res = $this->fetchAssoc();
return count($res);
}
public function checkActivationCode()
{
$query = "SELECT * FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prPass = ? AND prActCode LIKE ?";
$this->query($query, array('ss', $this->password, "%-{$this->isid}-%"));
$res = $this->fetchNext();
return !empty($res);
}
public function isFloating()
{
$hlNum = crm_hardlock::GetHlnumFromPassword($this->password);
$this->query("SELECT isFloating FROM cl_hlusers.hardlock WHERE hlNum = ?", array('s', $hlNum));
$hardlock = $this->fetchNext();
$ver8and9 = crm_hardlock::GetVer8And9FromPassword($this->password);
return !empty($hardlock) && $hardlock['isFloating'] == 1 && $ver8and9 >= 40;
}
public function clearProgram($clr_info = false)
{
$this->delete(CRMADATBAZIS . '.p_serial_isid', array('serial' => $this->password), 's');
$this->delete(CRMADATBAZIS . '.userstats2013', array('usPwd' => $this->password), 's');
$this->query("UPDATE `" . CRMADATBAZIS . "`.`h_programs` SET prActCode = '' WHERE prPass = ?", array('s', $this->password));
$this->query("SELECT * FROM `" . CRMADATBAZIS . "`.`p_serial_isid` WHERE serial = ?", array('s', $this->password));
$res = $this->fetchAssoc();
$hlNum = crm_hardlock::GetHlnumFromPassword($this->password);
if ($clr_info)
$this->delete(CRMADATBAZIS . '.h_history', array('hiHlNum' => $hlNum), 's');
$this->query("SELECT isFloating FROM cl_hlusers.hardlock WHERE hlNum = ?", array('s', $hlNum));
$hardlock = $this->fetchNext();
$ver8and9 = crm_hardlock::GetVer8And9FromPassword($this->password);
if (!empty($hardlock) && $hardlock['isFloating'] == 1 && $ver8and9 >= 40)
$this->delete(SYNCADATBAZIS . '.floating_licenses', array('hlNum' => $hlNum), 's');
return empty($res);
}
public function setDisabled($set_disabled)
{
$hlNum = crm_hardlock::GetHlnumFromPassword($this->password);
$date = date('Y-m-d');
if ($set_disabled) return crm_hardlock::DeactivateHardlock($hlNum, 36, "Test deaktiválás", $date);
else return crm_hardlock::ActivateHardlock($hlNum, 36, "Test aktiválás");
}
public function generateTimeCodeWithInstCode($isid, $isTwTw)
{
if ($this->actDate == '2050-01-01') $dayInterval = 3583;
else {
if (Codegen::IsSoftwareKey($this->password))
$installDate = crm_hardlock::GetInstallationDateFromInstallationCode($this->installCode, $isTwTw);
else {
if ($isTwTw)
$installDate = crm_hardlock::getTwTwRootTimeString();
else
$installDate = $this->sellDate;
}
$dayInterval = Codegen::GetDayInterval($installDate, $this->actDate);
}
return Codegen::GenerateTimeCode($this->password, $isid, $dayInterval);
}
public function registerUnregisterTest(&$error_string, $hlNum, $verID)
{
$this->actDate = Date('Y-m-d', strtotime('+10 days'));
$isid = 'A001';
$npid = 'Automata_test_00000000';
$comp_name = 'CRM Automata Test';
$datas = array();
$programs = crm_hardlock::getProgramsFromHardlock($hlNum, $verID);
if (empty($programs)) {
$error_string .= "error: nincs ilyen program (verzio: {$verID}) - hardlock: {$hlNum}";
return false;
}
$this->query("SELECT * FROM `cl_hlusers`.`hardlock` WHERE hlNum = ?", array('s', $hlNum));
$res = $this->fetchNext();
$this->hlStat = $res['hlStat'];
foreach ($programs as $program) {
$this->password = $program['prPass'];
$this->clearProgram(true);
$this->updateFizetve();
// TODO: A crm_hardlock::startQuery() fgv-be az elejen belefut a $crackedProgram-ba!
if (substr($this->password, 0, 6) == '371001' || substr($this->password, 0, 6) == '370001')
continue;
if (!Codegen::IsSoftwareKey($this->password)) $isid = crm_hardlock::GetIsidFromPasswordForHardwareKeys($this->password);
$softwarekey = Codegen::IsSoftwareKey($this->password);
$this->installCode = Codegen::GenerateTimeCode($this->password, $isid, 1);
$register_result = crm_hardlock::RegisterProgram($this->password, $isid, $this->installCode, $npid, $comp_name, '');
if (substr($register_result, 0, 6) == "error:") {
$error_string .= "RegisterProgram(): {$register_result} - {$this->password} <br/>";
return false;
}
$aktkod = crm_hardlock::GetOrGenerateTimeCode($this->password, $isid, $this->installCode, $npid, $comp_name);
if (substr($aktkod, 0, 6) == "error:") {
$error_string .= "GetOrGenerateTimeCode(): {$aktkod} - {$this->password} <br/>";
return false;
}
$check_date = crm_hardlock::checkActDate($this->password, $isid);
if (!$check_date) {
$error_string .= "checkActDate(): {$check_date} - {$this->password} <br/>";
return false;
}
$this->sellDate = $program['prSellDate'];
$isTwTw = ($program['twtw'] == 1 || $verID >= 21) ? 'true' : '';
$date = new DateTime();
for ($i = 0; $i <= 3; $i++) {
$tip_result = '';
if ($i <= 2 && $i != 0) {
$date->modify('+1 month');
$this->actDate = $date->format('Y-m') . '-01';
}
if ($i == 3) $this->actDate = '2050-01-01';
$this->updateFizetve();
$this->actCode = $this->generateTimeCodeWithInstCode($isid, $isTwTw);
if ($verID >= 21) $tip_result = $this->launchStartQuery($error_string, $verID, $isid, $npid);
else $tip_result = $this->launchTips($error_string, $verID, $isid, $npid, $isTwTw);
if ($tip_result == false) return false;
}
if ($softwarekey) {
$unregister_result = crm_hardlock::UnRegisterProgram($this->password, $isid, '', $comp_name);
if ($unregister_result == false) {
$activationError = crm_hardlock::GetActivationError(crm_hardlock::UNREGISTER_FAILED);
$error_string .= "UnRegisterProgram(): {$activationError} - {$this->password} <br/>";
return false;
}
}
}
return true;
}
public function launchRegisterTest(&$error_string, $verID)
{
$result = $this->registerUnregisterTest($error_string, '371001', $verID);
if ($result == false) return $result;
$result = $this->registerUnregisterTest($error_string, '370001', $verID);
if ($result == false) return $result;
return true;
}
public function generateStartQueryUrl($isid, $npid)
{
$this->query("SELECT prTypeID FROM `cl_hlusers`.`h_programs` WHERE prPass = ?", array('s', $this->password));
$program = $this->fetchNext();
$ver8and9 = crm_hardlock::GetVer8And9FromPassword($this->password);
$launchYear = crm_hardlock::GetLaunchYearFromVer8And9($ver8and9);
if ($program['prTypeID'] == 76) // LIVE
$this->query("SELECT pkgid FROM `www_archline_hu`.`version` WHERE ev = ? AND projectid LIKE '%Live' ORDER BY pkgid DESC", array('i', $launchYear));
else // Prof.
$this->query("SELECT pkgid FROM `www_archline_hu`.`version` WHERE ev = ? AND projectid NOT LIKE '%Live' AND projectid NOT LIKE '%Namirial%' ORDER BY pkgid DESC", array('i', $launchYear));
$version = $this->fetchNext();
$this->installCode = Codegen::GenerateTimeCode($this->password, $isid, 1);
$session = 'MHV5Z242S29VaEk5VyRzZWV5UE9TUQ';
$decodedSession = base64_decode($session);
$privatekey = Webform::GetWebformPrivateKey();
$param = 'serialNumber=' . $this->password;
$param .= '&winchesterAdatai=1793730914';
$param .= '&build=' . $version['pkgid'];
$param .= '&countryPhoneID=36';
$param .= '&installationCode=' . $this->installCode;
$param .= '&osMajorMinorBuild=10.0.19041';
$param .= '&vidMan=';
$param .= '&vidType=';
$param .= '&vidDrv=';
$param .= '&installationID=' . $npid;
$param .= '&partnerID=';
$param .= '&clientName=';
$param .= '&clientEmail=';
$param .= '&clientCompany=';
$param .= '&clientTelephone=';
$param .= '&newsletter=false';
$param .= '&reenabledCounter=';
$param .= '&twentyTwenty=true';
$param .= '&languageID=hun';
$param .= '&wentToGray=false';
$encoded_param = Webform::encode($privatekey, $decodedSession, $param);
return "https://www.archline.hu/maintenance/webform/startQuery.php?session={$session}&param={$encoded_param}";
}
public function generateTipUrl($isid, $npid, $isTwTw)
{
if ($isTwTw) $isTwTw = 'true';
$this->query("SELECT prTypeID FROM `cl_hlusers`.`h_programs` WHERE prPass = ?", array('s', $this->password));
$program = $this->fetchNext();
$ver8and9 = crm_hardlock::GetVer8And9FromPassword($this->password);
$launchYear = crm_hardlock::GetLaunchYearFromVer8And9($ver8and9);
if ($program['prTypeID'] == 76) // LIVE
$this->query("SELECT pkgid FROM `www_archline_hu`.`version` WHERE ev = ? AND projectid LIKE '%Live' ORDER BY pkgid DESC", array('i', $launchYear));
else // Prof.
$this->query("SELECT pkgid FROM `www_archline_hu`.`version` WHERE ev = ? AND projectid NOT LIKE '%Live' AND projectid NOT LIKE '%Namirial%' ORDER BY pkgid DESC", array('i', $launchYear));
$version = $this->fetchNext();
$this->installCode = Codegen::GenerateTimeCode($this->password, $isid, 1);
$build = $version['pkgid'];
$ctrID = 36;
$compID = 1793730914; //tipeknel nem hasznalt
$osData = "10.0.18362.1.green.848"; // tekinthetjuk konstansnak
$strCollectedInfo = "#{$this->password}#{$compID}#{$build}#{$ctrID}#{$this->installCode}#{$osData}####{$npid}######0#0#{$isTwTw}";
$keyDec = "0052";
$encoderKey = hexdec($keyDec);
$encoded = $keyDec;
$strHex = bin2hex($strCollectedInfo);
$hexArray = str_split($strHex, 2);
$arrayKeys = array_keys($hexArray);
$lastArrayKey = array_pop($arrayKeys);
for ($i = 0; $i < count($hexArray); $i++) {
if ($i % 2 == 0) {
$a = $hexArray[$i]; // "23"
$b = $hexArray[$i + 1]; // "33"
if ($i == $lastArrayKey) $b = '00';
sscanf($a, '%x', $low);
sscanf($b, '%x', $high);
$value = $high * 256 + $low; //0x3323
$encoded .= sprintf('%04X', $value ^ $encoderKey);
}
}
$encodedSession = base64_encode($encoded);
return "https://www.archlinexp.com/index.php?menu=tips2012&lang=eng&version=0&session={$encodedSession}&launched=test";
}
public function launchStartQuery(&$error_string, $verID, $isid, $npid)
{
$arrContextOptions = stream_context_create(
array(
"ssl" => array(
"verify_peer" => false,
"verify_peer_name" => false
)
)
);
$tip_url = $this->generateStartQueryUrl($isid, $npid);
$result = file_get_contents($tip_url, false, $arrContextOptions);
$result = explode('session', $result);
$result = '?session=' . $result[1];
$session = Webform::get_valueFromStringUrl($result, "session");
$result_ok = Webform::get_valueFromStringUrl($result, "result_ok");
$decodedSession = base64_decode($session);
$privateKey = Webform::GetWebformPrivateKey();
$paramAML = Webform::decode($privateKey, $decodedSession, $result_ok);
$actCode = AML::getAttribute('AC', $paramAML);
$virtualization = AML::getAttribute('VIR', $paramAML) ? 1 : 2;
$tipRegnr = AML::getAttribute('REG', $paramAML);
$utst = time();
if ($actCode == '') {
$error_string .= "launchTips(): error: nincs aktivalokod! Serial: " . $this->password;
return false;
}
if ($actCode != $this->actCode) {
$error_string .= "launchTips(): error: a program aktivalo kodja nem egyezik a tip aktivalokoddal! (Tip: {$actCode} || program: {$this->actCode})";
return false;
}
if ($virtualization != $this->hlStat) {
$error_string .= "launchTips(): error: a program letiltas erteke nem az elvart";
return false;
}
$timeCode = $this->generateTimeCodeWithInstCode($isid, true);
if ($timeCode != $actCode && $_SERVER['REMOTE_ADDR'] == '176.241.31.192') {
$error_string .= "launchTips(): error: nem jol legeneralt idokod! (Tips: {$actCode} || helyes: {$timeCode})";
return false;
}
if (Codegen::IsSoftwareKey($this->password)) {
if (crm_hardlock::IsRegistrationActive($this->password, $isid, $npid) == false && $tipRegnr == crm_hardlock::Yes($utst, 39)) {
$error_string .= "launchTips(): error: a program fut, de nem kene!";
return false;
}
if (crm_hardlock::IsRegistrationActive($this->password, $isid, $npid) && $tipRegnr == crm_hardlock::No($utst, 39)) {
$error_string .= "launchTips(): error: a program nem fut, de futnia kene!";
return false;
}
}
return true;
}
public function launchTips(&$error_string, $verID, $isid, $npid, $isTwTw)
{
$arrContextOptions = stream_context_create(
array(
"ssl" => array(
"verify_peer" => false,
"verify_peer_name" => false
)
)
);
$tip_url = $this->generateTipUrl($isid, $npid, $isTwTw);
$result = file_get_contents($tip_url, false, $arrContextOptions);
if (strstr($result, '<Tips>') === false || strstr($result, '</Tips>') === false) {
$error_string .= 'Tip test failed! Not XML returned (probably syntax error)';
return false;
}
libxml_set_streams_context($arrContextOptions);
$xml = simplexml_load_file($tip_url, "SimpleXMLElement", LIBXML_NOCDATA);
$data = json_decode(json_encode($xml), true);
$actCode = $data['actcode'];
$virtualization = $data['Virtualization'] ? 1 : 2;
$tipRegnr = $data['regnr'];
$utst = time();
if ($actCode == '') {
$error_string .= "launchTips(): error: nincs aktivalokod!";
return false;
}
if ($actCode != $this->actCode) {
$error_string .= "launchTips(): error: a program aktivalo kodja nem egyezik a tip aktivalokoddal! (Tip: {$actCode} || program: {$this->actCode})";
return false;
}
if ($virtualization != $this->hlStat) {
$error_string .= "launchTips(): error: a program letiltas erteke nem az elvart";
return false;
}
$timeCode = $this->generateTimeCodeWithInstCode($isid, $isTwTw);
if ($timeCode != $actCode) {
$error_string .= "launchTips(): error: nem jol legeneralt idokod! (Tips: {$actCode} || helyes: {$timeCode})";
return false;
}
if (Codegen::IsSoftwareKey($this->password)) {
if (crm_hardlock::IsRegistrationActive($this->password, $isid, $npid) == false && $tipRegnr == crm_hardlock::Yes($utst, 39)) {
$error_string .= "launchTips(): error: a program fut, de nem kene!";
return false;
}
if (crm_hardlock::IsRegistrationActive($this->password, $isid, $npid) && $tipRegnr == crm_hardlock::No($utst, 39)) {
$error_string .= "launchTips(): error: a program nem fut, de futnia kene!";
return false;
}
}
return true;
}
public function launchTests()
{
$error_string = '';
$test_result = true;
for ($i = 0; $test_result && $i < count(self::$programYears); $i++) $test_result = $this->launchRegisterTest($error_string, self::$programYears[$i]);
if ($test_result) $error_string = "A teszt sikeresen lefutott, hiba nelkul!<br/> {$error_string}";
return $error_string;
}
}
class Authenticate extends Database
{
private $username;
private $password;
private $authCode;
private $authSession;
private $users = array();
public function __construct()
{
parent::__construct();
}
public function setAuthCode($_authCode)
{
$this->authCode = $_authCode;
}
public function setAuthSession($_authSession)
{
$this->authSession = $_authSession;
}
public function setUsername($_username)
{
$this->username = $_username;
}
public function setPassword($_password)
{
$this->password = $_password;
}
public function setUsers($_users)
{
foreach ($_users as $user) $this->users[$user['username']] = $user['password'];
}
private function checkPassword()
{
return (sha1($this->password) == $this->users[$this->username]);
}
public function auth()
{
if ($_SERVER['HTTP_HOST'] != 'dev.cadline.hu') return true;
$sql = "SELECT m.strMail AS username, a.admPass AS password FROM `" . CRMADATBAZIS . "`.`h_admins` a
INNER JOIN `" . CRMADATBAZIS . "`.`managers` m ON m.admID = a.admID";
$this->query($sql);
$admins = $this->fetchAssoc();
$this->setUsers($admins);
$this->setUsername($_SERVER['PHP_AUTH_USER']);
$this->setPassword($_SERVER['PHP_AUTH_PW']);
if (!$this->validate() && !$this->checkCode()) {
header('WWW-Authenticate: Basic realm="Restricted area"');
header('HTTP/1.0 401 Unauthorized');
die("Not authorized");
}
return true;
}
private function checkCode()
{
if ($this->authSession == '' || $this->authCode == '') return false;
$privateKey = Webform::GetWebformPrivateKey();
$decoded = base64_decode($this->authCode);
$decoded = Webform::decode($privateKey, $this->authSession, $decoded);
return (base64_decode($decoded) == date('Y-m-d'));
}
private function validate()
{
$exist = array_key_exists($this->username, $this->users);
if ($exist && $this->checkPassword()) return true;
else return false;
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1 @@
Subproject commit 11f1a543340bb7a2f03c3647dca03b7bd79783d0

View File

@ -1,5 +0,0 @@
serverAlive.txt
activateServer.txt
webform/airender
tests/images
serverAliveSecondary.txt

View File

@ -1,183 +0,0 @@
##
# @package Joomla
# @copyright Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.
# @license GNU General Public License version 2 or later; see LICENSE.txt
##
##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's. If they work,
# it has been set by your server administrator and you do not need it set here.
##
## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks
## Mod_rewrite in use.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^archlinexp.co.uk$ [OR]
RewriteCond %{HTTP_HOST} ^www.archlinexp.co.uk$
rewriterule (.*) http://www.archlinexp.com/ [r=301,nc,l]
RewriteCond %{QUERY_STRING} ^menu=tips(.*)&lang=(.*)&version=(.*)&session=(.*)$
RewriteRule ^index\.php$ /maintenance/tips\.php?lang=%2&version=%3&session=%4 [NC,R=302,L]
RewriteCond %{QUERY_STRING} ^menu=activate_90_days_active&lang=(.*)&ser=(.*)&pwd=(.*)$
RewriteRule ^index\.php$ /maintenance/activate_90_days_active\.php?ser=%2&pwd=%3 [NC,R=302,L]
RewriteCond %{QUERY_STRING} ^option=com_project&view=category&template=category$
RewriteRule ^index\.php$ http://www.archlinexp.com/index.php?option=com_project&view=category&template=category&lang=hun [NC,R=301,L]
rewriterule ^collection/category_archlinexp/Hun$ http://www.archlinexp.com/index.php?option=com_project&view=category&template=category&lang=hun [NC,r=301,l]
rewriterule ^collection/category_archlinexp/(.*)$ http://www.archlinexp.com/index.php?option=com_project&view=category&template=category&lang=eng [NC,r=301,l]
rewriterule ^collection/upload/(.*)/(.*)/(.*)$ /index.php?option=com_showroom&view=upload&template=blankframe&file=$1&type=$2&lang=$3 [r=302,nc,l]
rewriterule ^collection/uploadgroup/(.*)/(.*)/(.*)$ /index.php?option=com_showroom&view=uploadgroup&template=blankframe&file=$1&type=$2&lang=$3 [r=302,nc,l]
rewriterule ^version/warehousedownloadlink/(.*)/(.*)$ /maintenance/warehousedownloadlink.php?link=$1&archlineversion=$2 [nc,l]
rewriterule ^version/warehousedownloadlink/(.*)$ /maintenance/warehousedownloadlink.php?link=$1 [nc,l]
rewriterule ^version/warehouseparsesource/$ /maintenance/warehouseparsesource.php [nc,l]
rewriterule ^version/warehousegetfileformat/(.*)/(.*)$ /maintenance/warehousegetfileformat.php?link=$1&archlineversion=$2 [nc,l]
rewriterule ^version/geopluginlink/$ /maintenance/geopluginlink.php [nc,l]
rewriterule ^edit-user-details(.*)$ index.php?option=com_users&view=profile&layout=edit [nc,l]
rewriterule ^public/tcexam/(.*)$ http://tcexam.archline.hu/ [r=301,nc,l]
rewriterule ^download/(.*)/(.*)/index_CSH.htm(.*)$ /public/downloads/$1/$2/index_CSH.htm$3 [r=301,nc,l]
RewriteCond %{HTTP_HOST} ^www.archlinexp.com$
rewriterule ^rss$ /news/feed/rss [r=302,nc,l]
RewriteCond %{HTTP_HOST} ^www.archlinexp.com$
rewriterule ^school/(.*)$ /iskolak/$1 [nc,l]
rewriterule ^pro_live_bundle /maintenance/pro_live_bundle.php [nc,l]
rewriterule ^hu/collection2/index/(.*)/(.*)$ /index.php?option=com_showroom&template=blankframe&lang=hun&ver=$2 [r=301,nc,l]
rewriterule ^en/collection2/index/(.*)/(.*)$ /index.php?option=com_showroom&template=blankframe&lang=eng&ver=$2 [r=301,nc,l]
rewriterule ^es/collection2/index/(.*)/(.*)$ /index.php?option=com_showroom&template=blankframe&lang=eng&ver=$2 [r=301,nc,l]
rewriterule ^it/collection2/index/(.*)/(.*)$ /index.php?option=com_showroom&template=blankframe&lang=eng&ver=$2 [r=301,nc,l]
rewriterule ^de/collection2/index/(.*)/(.*)$ /index.php?option=com_showroom&template=blankframe&lang=eng&ver=$2 [r=301,nc,l]
rewriterule ^collection2/index/hun/(.*)$ /index.php?option=com_showroom&template=blankframe&lang=hun&ver=$1 [r=301,nc,l]
rewriterule ^collection2/index/(.*)/(.*)$ /index.php?option=com_showroom&template=blankframe&lang=eng&ver=$2 [r=301,nc,l]
RewriteCond %{HTTP_HOST} ^www.archlinexp.com$
rewriterule ^collection2$ /index.php?option=com_showroom&template=blankframe&lang=eng&ver=29 [r=301,nc,l]
RewriteRule ^enrollments/courses/([^/]*)/?([^/]*)?/?([^/]*)?$ /beiratkozas/tanfolyamok.php?url=$1&id=$2&lesson=$3 [nc,l]
RewriteCond %{HTTP_HOST} ^www.archline.hu$
rewriterule ^collection2$ /index.php?option=com_showroom&template=blankframe&lang=hun&ver=29 [r=301,nc,l]
RewriteRule ^beiratkozas/tanfolyamok/([^/]*)/?([^/]*)?/?([^/]*)?$ /beiratkozas/tanfolyamok.php?url=$1&id=$2&lesson=$3 [nc,l]
rewriterule ^projects/supportupload/(.*)/(.*)$ /maintenance/supportupload.php?sn=$1&guid=$2 [nc,l]
rewriterule ^crash/(.*)/(.*)/(.*)/(.*)$ /maintenance/crash.php?guid=$1&build=$2&lang=$3&serial=$4 [nc,l]
rewriterule ^crash/(.*)/(.*)/(.*)$ /maintenance/crash.php?guid=$1&build=$2&lang=$3 [nc,l]
rewriterule ^crash/(.*)/(.*)$ /maintenance/crash.php?guid=$1&build=$2 [nc,l]
rewriterule ^crash/(.*)$ /maintenance/crash.php?guid=$1 [nc,l]
rewriterule ^version/regisztracio/(.*)/(.*)/(.*)$ /maintenance/regisztracio.php?serial=$1&isid=$2&kod=$3 [nc,l]
rewriterule ^version/regisztracio/(.*)/(.*)$ /maintenance/regisztracio.php?serial=$1&isid=$2 [nc,l]
rewriterule ^version/unregister/(.*)/(.*)$ /maintenance/unregister.php?serial=$1&isid=$2 [nc,l]
rewriterule ^version/aktivalasikod/(.*)/(.*)/(.*)$ /maintenance/aktivalasikod.php?serial=$1&isid=$2&kod=$3 [nc,l]
rewriterule ^version/update/(.*)/(.*)/(.*)$ /maintenance/update.php?projectid=$1&pkgid=$2&serial=$3 [nc,l]
rewriterule ^version/elofizkarbxml/(.*)/(.*)$ /maintenance/elofizkarbxml.php?file=$1&lang=$2 [nc,l]
rewriterule ^version/elofizkarbxml/(.*)$ /maintenance/elofizkarbxml.php?file=$1 [nc,l]
rewriterule ^version/updatexml$ /maintenance/updatexml.php [nc,l]
rewriterule ^version/getserialanddaycode/(.*)/(.*)/(.*)/(.*)$ /maintenance/getserialanddaycode.php?serial=$1&ver=$2&isid=$3&npid=$4 [nc,l]
rewriterule ^cron/startchangedhardlock$ /maintenance/startchangedhardlock.php [nc,l]
rewriterule ^cron/hibasprograminditasok$ /maintenance/hibasprograminditasok.php [nc,l]
rewriterule ^cron/elofizurites$ /maintenance/elofizurites.php [nc,l]
rewriterule ^cron/elofizexcelcheck$ /maintenance/elofizexcelcheck.php [nc,l]
rewriterule ^other/viewerlejartaktorlese$ /maintenance/viewerlejartaktorlese.php [nc,l]
rewriterule ^unsubscribe/(.*)$ /maintenance/leiratkozas.php?email=$1 [nc,l]
rewriterule ^leiratkozas/(.*)$ /maintenance/leiratkozas.php?email=$1 [nc,l]
rewriterule ^events/newclick/(.*)/(.*) /maintenance/newclick.php?alias=$1&email=$2 [nc,qsa,l]
rewriterule ^crashadmin$ /maintenance/crashadmin.php [nc,l]
rewriterule ^crashadmin/(.*)$ /maintenance/crashadmin.php?guid=$1 [nc,l]
# 404-es oldalak atiranyitasa
rewriterule ^public/support/tips/(.*)/xml/settings.xml /maintenance/empty_result.xml [nc,l]
rewriterule ^public/support/commandtips/(.*)/xml/settings.xml /maintenance/empty_result.xml [nc,l]
#rewriterule ^business/activate_30/(.*)$ /cadline-kft [r=301,nc,l]
#rewriterule ^settings/lang/(.*)$ / [r=301,nc,l]
#RewriteRule ^public/hr/ARCHLINE_XP2015_64bit_setup.exe$ /public/downloads/eng/ARCHLINE_XP2015_64bit_setup.exe [r=302,NC,L]
#rewriterule ^azure/status/(.*)/(.*)/(.*)/(.*)/(.*)$ /maintenance/azure_vm_status.php?vmname=$1&lastactivity=$2&rdppart=$3&sessionid=$4&cpuusage=$5 [nc,l]
#rewriterule ^azure/status_test/(.*)$ /maintenance/azure_vm_status_test.php?stop=$1 [nc,l]
#rewriterule ^cron/messages_email$ /maintenance/messages_email.php [nc,l]
#rewriterule ^cron/downloademail$ /maintenance/downloademail.php [nc,l]
rewriterule ^download/download-center/downloadable-projects https://www.archlinexp.com/education/workshops/workshop-application-preliminary [nc,l]
Redirect /blog/szakmai-cikkek/rendering-oktatasi-segedlet https://help.archlinexp.com/hc/hu-hu/articles/360019417997-Rendering-oktat%C3%A1si-seg%C3%A9dlet
Redirect /blog/professional-articles/rendering-tutorial https://help.archlinexp.com/hc/en-us/articles/360019417997-Rendering-Tutorial
Redirect /oktatas/rendszerkovetelmenyek https://help.archlinexp.com/hc/hu-hu/articles/360012845578-Rendszerk%C3%B6vetelm%C3%A9nyek
Redirect /education/system-requirements https://help.archlinexp.com/hc/en-us/articles/360012845578-System-requirements
Redirect /termekek/archline-xp-live/live-rendszerkovetelmenyek https://help.archlinexp.com/hc/hu-hu/articles/360012845578-Rendszerk%C3%B6vetelm%C3%A9nyek
Redirect /oktatas/faq https://help.archlinexp.com/hc/hu-hu/articles/360012793498-Mit-csin%C3%A1l-az-ARCHLine-XP-program
Redirect /education/faq https://help.archlinexp.com/hc/en-us/articles/360012793498-What-is-ARCHLine-XP-Professional-
## Begin - Tanfolyam oldalak atiranyitasa az uj oldalra.
#
Redirect /oktatas/workshopok/alapfoku-tanfolyam https://www.archline.hu/oktatas/workshopok
Redirect /oktatas/workshopok/kozepfoku-tanfolyam https://www.archline.hu/oktatas/workshopok
Redirect /oktatas/workshopok/felsofoku-tanfolyam https://www.archline.hu/oktatas/workshopok
Redirect /oktatas/workshopok/epiteszeti-tanfolyam https://www.archline.hu/oktatas/workshopok
#
## End - Tanfolyam oldalak atiranyitasa az uj oldalra.
## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.
## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects
##
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##
# RewriteBase /
## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.

View File

@ -1,284 +0,0 @@
<?php
$doc = (trim($_SERVER['DOCUMENT_ROOT']) > '' ? trim($_SERVER['DOCUMENT_ROOT']) : '..');
if (!isset($config)) require_once('common_cadline_libraries/crm_config.db.php');
if (!defined('_DB_HOST') && isset($config['db_host'])) define('_DB_HOST', $config['db_host']);
if (!defined('_DB_NAME') && isset($config['db_user'])) define('_DB_NAME', $config['db_user']);
if (!defined('_DB_USER') && isset($config['db_user'])) define('_DB_USER', $config['db_user']);
if (!defined('_DB_PASS') && isset($config['db_pass'])) define('_DB_PASS', $config['db_pass']);
class MySqlHelper
{
public static $msh;
public $writelog;
private $host;
private $name;
private $user;
private $pass;
private $connection;
private $queryString;
private $queryResult;
public function __construct()
{
$this->connection = false;
$this->host = '';
$this->user = '';
$this->pass = '';
$this->name = '';
$this->writelog = FALSE;
}
/**
* Return the instance
*
* @return MySqlHelper
*/
public static function getInstance()
{
if (!empty(self::$msh)) return self::$msh;
self::$msh = new MySqlHelper();
self::$msh->init();
return self::$msh;
}
public static function escapeString($str = "")
{
$ret = mysqli_real_escape_string($this->connection, $str);
return ($ret);
}
public function init($host = _DB_HOST, $name = _DB_NAME, $user = _DB_USER, $pass = _DB_PASS)
{
$this->host = $host;
$this->name = $name;
$this->user = $user;
$this->pass = $pass;
}
private function connect()
{
if ($this->connection) return;
$this->connection = mysqli_connect($this->host, $this->user, $this->pass);
if (false === $this->connection) throw new Exception('Can\'t connect to db');
mysqli_select_db($this->connection, $this->name);
mysqli_query($this->connection, 'SET CHARACTER SET UTF8');
mysqli_query($this->connection, 'SET NAMES \'UTF8\' ');
mysqli_set_charset($this->connection, 'utf8');
if (mysqli_error($this->connection)) throw new Exception(mysqli_error($this->connection));
}
public function query($query)
{
$this->connect();
$this->queryString = $query;
if ($this->is_write_type($query) === TRUE) {
$boolWrite = TRUE;
$arrSkip = array('h_aktivalas_infok', 'h_history', 'u_history', 'u_userstatus_history', 'cl_hlusers.userstats2013', 'cl_hlusers.switch', 'cl_hlusers.writelog');
foreach ($arrSkip as $tabla) {
if (strpos($query, $tabla)) {
$boolWrite = FALSE;
break;
}
}
if ($boolWrite == TRUE) {
mysqli_query($this->connection, "INSERT INTO `cl_hlusers`.`writelog` (`user`,`datum`,`ip`,`url`,`func`,`sql`) VALUES (
'" . (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'www.archlinexp.com') . "',
'" . date("Y-m-d H:i:s", time()) . "',
'" . (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1') . "',
'" . (isset($_SERVER['SERVER_NAME']) ? addslashes($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']) : '') . "',
'" . addslashes("function: " . __FUNCTION__ . " method: " . __METHOD__) . "','" . addslashes($query) . "');");
}
}
$this->queryResult = mysqli_query($this->connection, $query);
if (mysqli_error($this->connection)) throw new Exception(mysqli_error($this->connection) . ' Query: ' . $this->queryString);
}
public function fetchNext()
{
$back = array();
if ($row = mysqli_fetch_assoc($this->queryResult)) {
foreach ($row as $key => $value) {
$row[$key] = stripslashes($value);
}
$back = $row;
return $back;
}
return false;
}
public function fetchAssoc()
{
$back = array();
while ($row = mysqli_fetch_assoc($this->queryResult)) {
foreach ($row as $key => $value) {
$row[$key] = stripslashes($value);
}
$back[] = $row;
}
return $back;
}
public function getInsertedId()
{
return mysqli_insert_id($this->connection);
}
public function select($table, $where = false, $offset = false, $limit = false, $order = false)
{
$whereStr = '';
$limitStr = '';
$orderStr = '';
if (is_array($where)) $whereStr = 'WHERE ' . $this->whereMakerPriv($where);
elseif ($where) $whereStr = 'WHERE ' . $where;
if (($offset !== false and $offset !== null) && ($limit !== false and $limit !== null)) {
$limitStr = 'LIMIT ' . $offset . ', ' . $limit;
}
if (is_array($order)) {
$orderStr = 'ORDER BY ';
foreach ($order as $key => $value) {
$orderStr .= $key . ' ' . $value . ' ';
}
} elseif ($order) $orderStr = 'ORDER BY ' . $order;
return $this->query('SELECT * FROM ' . $table . ' ' . $whereStr . ' ' . $orderStr . ' ' . $limitStr);
}
public function getProp($table, $func, $field, $where = false)
{
$whereStr = '';
if (is_array($where)) $whereStr = 'WHERE ' . $this->whereMakerPriv($where);
elseif ($where) $whereStr = 'WHERE ' . $where;
$this->query('SELECT ' . $func . '(' . $field . ') as p FROM ' . $table . ' ' . $whereStr);
$arr = $this->fetchAssoc();
return $arr[0]['p'];
}
public function getCount($table, $field = 'id', $where = false)
{
return $this->getProp($table, 'COUNT', $field, $where);
}
public function getSum($table, $field = 'id', $where = false)
{
return $this->getProp($table, 'SUM', $field, $where);
}
public function getAvg($table, $field = 'id', $where = false)
{
return $this->getProp($table, 'AVG', $field, $where);
}
public function delete($table, $where = false)
{
$whereStr = '';
if (is_array($where)) $whereStr = 'WHERE ' . $this->whereMakerPriv($where);
elseif ($where) $whereStr = 'WHERE ' . $where;
return $this->query('DELETE FROM ' . $table . ' ' . $whereStr);
}
public function update($table, $infoArr, $where = false)
{
if (!is_array($infoArr)) {
return false;
}
$whereStr = '';
$dataArr = array();
$data = '';
if (is_array($where)) $whereStr = 'WHERE ' . $this->whereMakerPriv($where);
elseif ($where) $whereStr = 'WHERE ' . $where;
foreach ($infoArr as $key => $value) {
$dataArr[] = '`' . $key . '`="' . mysqli_real_escape_string($this->connection, $value) . '" ';
}
$data = implode(',', $dataArr);
return $this->query('UPDATE ' . $table . ' SET ' . $data . ' ' . $whereStr);
}
public function insert($table, $infoArr)
{
$this->connect();
$columArr = array();
$valueArr = array();
$colums = '';
$values = '';
foreach ($infoArr as $key => $value) {
$columArr[] = '`' . $key . '`';
$valueArr[] = '"' . mysqli_real_escape_string($this->connection, $value) . '"';
}
$colums = implode(',', $columArr);
$values = implode(',', $valueArr);
return $this->query('INSERT INTO ' . $table . ' (' . $colums . ') VALUES (' . $values . ');');
}
public function affectedRows()
{
return mysqli_affected_rows($this->connection);
}
public function whereMakerPriv($where)
{
if (!is_array($where)) return 1;
$this->connect();
$back = '1 ';
foreach ($where as $key => $value) {
if (is_array($value)) $back .= 'AND `' . $key . '`' . $value[0] . '"' . $value[1] . '" ';
else $back .= 'AND `' . $key . '`="' . mysqli_real_escape_string($this->connection, $value) . '" ';
}
return $back;
}
public static function whereMaker($where)
{
if (!is_array($where)) return 1;
$back = '1 ';
foreach ($where as $key => $value) {
if (is_array($value)) $back .= 'AND `' . $key . '`' . $value[0] . '"' . $value[1] . '" ';
else $back .= 'AND `' . $key . '`="' . $value . '" ';
}
return $back;
}
public function is_write_type($sql)
{
if (!preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql)) {
return FALSE;
}
return TRUE;
}
public function getConnection()
{
return ($this->connection);
}
public function setConnect()
{
$this->connect();
}
}

View File

@ -1,230 +0,0 @@
<?php
#
# Portable PHP password hashing framework.
#
# Version 0.5 / genuine.
#
# Written by Solar Designer <solar at openwall.com> in 2004-2006 and placed in
# the public domain. Revised in subsequent years, still public domain.
#
# There's absolutely no warranty.
#
# The homepage URL for this framework is:
#
# http://www.openwall.com/phpass/
#
# Please be sure to update the Version line if you edit this file in any way.
# It is suggested that you leave the main version number intact, but indicate
# your project name (after the slash) and add your own revision information.
#
# Please do not change the "private" password hashing method implemented in
# here, thereby making your hashes incompatible. However, if you must, please
# change the hash type identifier (the "$P$") to something different.
#
# Obviously, since this code is in the public domain, the above are not
# requirements (there can be none), but merely suggestions.
#
class PasswordHash
{
var $itoa64;
var $iteration_count_log2;
var $portable_hashes;
var $random_state;
function __construct($iteration_count_log2, $portable_hashes)
{
$this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
$iteration_count_log2 = 8;
$this->iteration_count_log2 = $iteration_count_log2;
$this->portable_hashes = $portable_hashes;
$this->random_state = microtime();
if (function_exists('getmypid'))
$this->random_state .= getmypid();
}
function PasswordHash($iteration_count_log2, $portable_hashes)
{
self::__construct($iteration_count_log2, $portable_hashes);
}
function get_random_bytes($count)
{
$output = '';
if (
@is_readable('/dev/urandom') &&
($fh = @fopen('/dev/urandom', 'rb'))
) {
$output = fread($fh, $count);
fclose($fh);
}
if (strlen($output) < $count) {
$output = '';
for ($i = 0; $i < $count; $i += 16) {
$this->random_state =
md5(microtime() . $this->random_state);
$output .= md5($this->random_state, TRUE);
}
$output = substr($output, 0, $count);
}
return $output;
}
function encode64($input, $count)
{
$output = '';
$i = 0;
do {
$value = ord($input[$i++]);
$output .= $this->itoa64[$value & 0x3f];
if ($i < $count)
$value |= ord($input[$i]) << 8;
$output .= $this->itoa64[($value >> 6) & 0x3f];
if ($i++ >= $count)
break;
if ($i < $count)
$value |= ord($input[$i]) << 16;
$output .= $this->itoa64[($value >> 12) & 0x3f];
if ($i++ >= $count)
break;
$output .= $this->itoa64[($value >> 18) & 0x3f];
} while ($i < $count);
return $output;
}
function gensalt_private($input)
{
$output = '$P$';
$output .= $this->itoa64[min($this->iteration_count_log2 +
((PHP_VERSION >= '5') ? 5 : 3), 30)];
$output .= $this->encode64($input, 6);
return $output;
}
function crypt_private($password, $setting)
{
$output = '*0';
if (substr($setting, 0, 2) === $output)
$output = '*1';
$id = substr($setting, 0, 3);
# We use "$P$", phpBB3 uses "$H$" for the same thing
if ($id !== '$P$' && $id !== '$H$')
return $output;
$count_log2 = strpos($this->itoa64, $setting[3]);
if ($count_log2 < 7 || $count_log2 > 30)
return $output;
$count = 1 << $count_log2;
$salt = substr($setting, 4, 8);
if (strlen($salt) !== 8)
return $output;
# We were kind of forced to use MD5 here since it's the only
# cryptographic primitive that was available in all versions
# of PHP in use. To implement our own low-level crypto in PHP
# would have resulted in much worse performance and
# consequently in lower iteration counts and hashes that are
# quicker to crack (by non-PHP code).
$hash = md5($salt . $password, TRUE);
do {
$hash = md5($hash . $password, TRUE);
} while (--$count);
$output = substr($setting, 0, 12);
$output .= $this->encode64($hash, 16);
return $output;
}
function gensalt_blowfish($input)
{
# This one needs to use a different order of characters and a
# different encoding scheme from the one in encode64() above.
# We care because the last character in our encoded string will
# only represent 2 bits. While two known implementations of
# bcrypt will happily accept and correct a salt string which
# has the 4 unused bits set to non-zero, we do not want to take
# chances and we also do not want to waste an additional byte
# of entropy.
$itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$output = '$2a$';
$output .= chr(ord('0') + $this->iteration_count_log2 / 10);
$output .= chr(ord('0') + $this->iteration_count_log2 % 10);
$output .= '$';
$i = 0;
do {
$c1 = ord($input[$i++]);
$output .= $itoa64[$c1 >> 2];
$c1 = ($c1 & 0x03) << 4;
if ($i >= 16) {
$output .= $itoa64[$c1];
break;
}
$c2 = ord($input[$i++]);
$c1 |= $c2 >> 4;
$output .= $itoa64[$c1];
$c1 = ($c2 & 0x0f) << 2;
$c2 = ord($input[$i++]);
$c1 |= $c2 >> 6;
$output .= $itoa64[$c1];
$output .= $itoa64[$c2 & 0x3f];
} while (1);
return $output;
}
function HashPassword($password)
{
$random = '';
if (CRYPT_BLOWFISH === 1 && !$this->portable_hashes) {
$random = $this->get_random_bytes(16);
$hash =
crypt($password, $this->gensalt_blowfish($random));
if (strlen($hash) === 60)
return $hash;
}
if (strlen($random) < 6)
$random = $this->get_random_bytes(6);
$hash =
$this->crypt_private(
$password,
$this->gensalt_private($random)
);
if (strlen($hash) === 34)
return $hash;
# Returning '*' on error is safe here, but would _not_ be safe
# in a crypt(3)-like function used _both_ for generating new
# hashes and for validating passwords against existing hashes.
return '*';
}
function CheckPassword($password, $stored_hash)
{
$hash = $this->crypt_private($password, $stored_hash);
if ($hash[0] === '*')
$hash = crypt($password, $stored_hash);
# This is not constant-time. In order to keep the code simple,
# for timing safety we currently rely on the salts being
# unpredictable, which they are at least in the non-fallback
# cases (that is, when we use /dev/urandom and bcrypt).
return $hash === $stored_hash;
}
}

View File

@ -1,201 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ARCHLine.XP</title>
<link rel="stylesheet" type="text/css" href="public/css/smoothDivScroll.css" />
<link rel="stylesheet" type="text/css" href="public/css/style.css">
<link rel="stylesheet" type="text/css" href="public/css/jquery-ui.css">
<script type="text/javascript" src="public/js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="public/js/jquery-ui-1.12.1.min.js"></script>
<script type="text/javascript" src="public/js/jquery.mousewheel.min.js" ></script>
<script type="text/javascript" src="public/js/jquery.smoothdivscroll-1.3-min.js"></script>
<script type="text/javascript" src="public/js/8132d19a66.js"></script>
</head>
<body class="pattern">
<div class="container-fluid">
<div class="row header h66">
<div style="display:inline-block;width:66%;"> <!--class="col col-8"-->
<img src="public/img/logo.png" class="img-responsive left" />
</div>
<div class="align-items-center t_social" style="display:inline-block;width:33%;height:66px;vertical-align:top;"> <!--col col-4 -->
<ul class="none right">
<li><a href="*DLGSTR8438*" class="fa fa-facebook" title="Facebook" alt="Facebook" target="_blank"></a></li>
<li><a href="*DLGSTR8437*" class="fa fa-twitter" title="Twitter" alt="Twitter" target="_blank"></a></li>
<li><a href="*DLGSTR8436*" class="fa fa-youtube" title="YouTube" alt="YouTube" target="_blank"></a></li>
<li><a href="https://www.linkedin.com/company/cadline-network-ltd" class="fa fa-linkedin" title="LinkedIn" alt="LinkedIn" target="_blank"></a></li>
</ul>
</div>
</div>
<div class="row justify-content-between header">
<div class="t_menu" style="display:inline-block;width:50%;"> <!--class="col col-4"-->
<ul class="none">
<li><a href="?NEW">*DLGSTR7201*</a></li>
<li><a href="?OPE">*DLGSTR7202*</a></li>
<li><a href="?EXI">*DLGSTR7206*</a></li>
</ul>
</div>
<div class="t_menu" style="display:inline-block;width:49%;"> <!--class="col col-4"-->
<ul class="right none pr40">
<li><a href="?SCH">*DLGSTR7205*</a></li>
<li><a href="http://www.archlinexp.com/education/video-tutorials/foundation" target="_blank">*DLGSTR3252*</a></li>
<li><a href="http://www.archlinexp.com/archline-xp/download-center/downloadable-projects" target="_blank">*DLGSTR3253*</a></li>
</ul>
</div>
</div>
<div class="row"><div class="col col-12"><p class="uppercase bold ml20">*DLGSTR3250*</p></div></div>
<div class="row justify-content-center">
<div class="col col-12">
<div id="makeMeScrollable">
<!--kiemelt projektek blokkja-->
<div class="projectContainer" id="" >
<div class="shadow">
<a href="?GID=123456"><img src="public/img/project.jpg" class="projectImg" title="*DLGSTR7213*: *DLGSTR7214*: *DLGSTR7215*: " /></a>
<a href="?REM"><span class="fa fa-minus"></span></a>
<a href="?FAV=0"><span class="fa fa-star"></span></a>
<p><a href="?GID=123456">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a></p>
</div>
</div>
<div class="projectContainer" id="" >
<div class="shadow">
<a href="?GID=123456"><img src="public/img/project.jpg" class="projectImg" title="*DLGSTR7213*: *DLGSTR7214*: *DLGSTR7215*: " /></a>
<a href="?REM"><span class="fa fa-minus"></span></a>
<a href="?FAV=0"><span class="fa fa-star"></span></a>
<p><a href="?GID=123456">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a></p>
</div>
</div>
<div class="projectContainer" id="" >
<div class="shadow">
<a href="?GID=123456"><img src="public/img/project.jpg" class="projectImg" title="*DLGSTR7213*: *DLGSTR7214*: *DLGSTR7215*: " /></a>
<a href="?REM"><span class="fa fa-minus"></span></a>
<a href="?FAV=0"><span class="fa fa-star"></span></a>
<p><a href="?GID=123456">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a></p>
</div>
</div>
<div class="projectContainer" id="" >
<div class="shadow">
<a href="?GID=123456"><img src="public/img/project.jpg" class="projectImg" title="*DLGSTR7213*: *DLGSTR7214*: *DLGSTR7215*: " /></a>
<a href="?REM"><span class="fa fa-minus"></span></a>
<a href="?FAV=0"><span class="fa fa-star"></span></a>
<p><a href="?GID=123456">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a></p>
</div>
</div>
<div class="projectContainer" id="" >
<div class="shadow">
<a href="?GID=123456"><img src="public/img/project.jpg" class="projectImg" title="*DLGSTR7213*: *DLGSTR7214*: *DLGSTR7215*: " /></a>
<a href="?REM"><span class="fa fa-minus"></span></a>
<a href="?FAV=0"><span class="fa fa-star"></span></a>
<p><a href="?GID=123456">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a></p>
</div>
</div>
<div class="projectContainer" id="" >
<div class="shadow">
<a href="?GID=123456"><img src="public/img/project.jpg" class="projectImg" title="*DLGSTR7213*: *DLGSTR7214*: *DLGSTR7215*: " /></a>
<a href="?REM"><span class="fa fa-minus"></span></a>
<a href="?FAV=0"><span class="fa fa-star"></span></a>
<p><a href="?GID=123456">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a></p>
</div>
</div>
<div class="projectContainer" id="" >
<div class="shadow">
<a href="?GID=123456"><img src="public/img/project.jpg" class="projectImg" title="*DLGSTR7213*: *DLGSTR7214*: *DLGSTR7215*: " /></a>
<a href="?REM"><span class="fa fa-minus"></span></a>
<a href="?FAV=0"><span class="fa fa-star"></span></a>
<p><a href="?GID=123456">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a></p>
</div>
</div>
<div class="projectContainer" id="" >
<div class="shadow">
<a href="?GID=123456"><img src="public/img/project.jpg" class="projectImg" title="*DLGSTR7213*: *DLGSTR7214*: *DLGSTR7215*: " /></a>
<a href="?REM"><span class="fa fa-minus"></span></a>
<a href="?FAV=0"><span class="fa fa-star"></span></a>
<p><a href="?GID=123456">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a></p>
</div>
</div>
<!--kiemelt projektek blokkja-->
</div>
</div>
</div>
<div class="row"><div class="col col-12"><hr /></div></div>
<div class="row"><div class="col col-12"><p class="uppercase bold ml20">*DLGSTR3251*</p></div></div>
<div class="row justify-content-center">
<div class="col col-11">
<div class="lastProjectsContainer">
<!--utolso projektek blokkja-->
<div class="projectContainer" id="" >
<div class="shadow">
<a href="?GID=123456"><img src="public/img/project.jpg" class="projectImg" title="*DLGSTR7213*:
*DLGSTR7214*:
*DLGSTR7215*: " /></a>
<a href="?REM"><span class="fa fa-minus"></span></a>
<a href="?FAV=0"><span class="fa fa-star-o"></span></a>
<p><a href="?GID=123456">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</a></p>
</div>
</div>
<!--utolso projektek blokkja-->
<p class="center">*DLGSTR3262*</p>
</div>
</div>
</div>
<div class="row footer">
<div class="buildinfo right">*BUILD*</div>
</div>
<!--ha nincs internetkapcsolat vagy le van tiltva, akkor ez a blokk nem kell-->
<div class="row align-items-end footer">
<div class="align-top">
<iframe src="https://www.archline.hu/maintenance/banner.php?serial=MzYwNzAwODM0MDg0MDIzOQ==&build=Mjcz" scrolling="no"></iframe>
</div>
</div>
<!--/ha nincs internetkapcsolat vagy le van tiltva, akkor ez a blokk nem kell-->
</div>
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('.projectContainer').hover(
function() {
jQuery(this).children('div').children('a').children('.fa-star').fadeIn("fast");
jQuery(this).children('div').children('a').children('.fa-star-o').fadeIn("fast");
jQuery(this).children('div').children('a').children('.fa-minus').fadeIn("fast");
},
function() {
jQuery(this).children('div').children('a').children('.fa-star').fadeOut("fast");
jQuery(this).children('div').children('a').children('.fa-star-o').fadeOut("fast");
jQuery(this).children('div').children('a').children('.fa-minus').fadeOut("fast");
});
jQuery("div#makeMeScrollable").smoothDivScroll({
mousewheelScrolling: "allDirections",
manualContinuousScrolling: false,
});
});
jQuery(window).resize(function() {
jQuery('.lastProjectsContainer').height(jQuery(window).height() - 435);
});
jQuery(window).trigger('resize');
jQuery( function() {
jQuery( document ).tooltip({ track: true });
});
</script>
</body>
</html>

View File

@ -1,84 +0,0 @@
<?php
/*******************************************************************************
* eredeti url: http://www.archlinexp.com/index.php?menu=activate_90_days_active&lang=eng&ser=3977898330182471&pwd=ita
******************************************************************************/
include("config.php");
$ser = $_GET['ser'];
$pwd = $_GET['pwd'];
//mysql_query("insert into activations2 (act_ser, act_pwd, act_version, act_date, act_host) values ('$ser','$pwd','full','".time()."','".gethostbyaddr($_SERVER["REMOTE_ADDR"])."')");
switch (substr($ser, 0, 2)) {
case 99: {
break;
} // Szandekosan nincs atallitas
case 98: {
break;
} // Szandekosan nincs atallitas
case 30: {
header("Location:http://www.archlinexp.cc/?474&ser=" . $ser);
exit;
break;
} //- gorog
case 42: {
break;
} //- cseh
case 31: {
header("Location:http://www.archlinexp.cc/?474&ser=" . $ser);
exit;
break;
} //- holland
case 43: {
header("Location:http://www.archlinexp.cc/index.php?id=177&ser=" . $ser);
exit;
break;
} //- austria
case 41: {
header("Location:http://www.archlinexp.cc/index.php?id=177&ser=" . $ser);
exit;
break;
} //- austria dealer ger:
case 49: {
header("Location:http://www.archlinexp.cc/index.php?id=177&ser=" . $ser);
exit;
break;
} //- nemet
case 39: {
header("Location:http://www.cadlinesw.com/web/servizi/supporto-utenti/richiesta-codici-archline-xp.html/?&ser=" . $ser . "&pwd=" . $pwd);
exit;
break;
} //- olasz
case 36: //- magyar
{
session_start();
$_SESSION['serial'] = $ser;
$_SESSION['request'] = $pwd;
$_SESSION['out'] = '1';
header("Location: /business/activate/" . $ser . '/' . $pwd);
exit;
break;
}
case 34: {
header("Location: http://www.archlinexp.cc/es/servicecenter/ser/" . $ser);
exit;
break;
} //- spanyol
case 52: {
header("Location: http://www.archlinexp.cc/es/servicecenter/ser/" . $ser);
exit;
break;
} //- mexiko
case 82: {
break;
} //- korea
case 81: {
break;
} //- japan
default: {
session_start();
header("Location: /business/activate/" . $ser . '/' . $pwd);
exit;
}
}

View File

@ -1,61 +0,0 @@
<?php
$http_origin = $_SERVER['HTTP_ORIGIN'];
if ($http_origin == "https://crm.cadline.hu" || $http_origin == "https://www.archline.hu" || $http_origin == "https://secondary.cadline.hu") {
header("Access-Control-Allow-Origin: $http_origin");
} else {
header('Access-Control-Allow-Origin: https://www.archline.hu');
}
header('Access-Control-Allow-Headers: X-Requested-With, Content-Type, Accept');
$name = $_POST['name'];
$serverName = $_SERVER['SERVER_NAME'];
$primaryServers = array('secondary.dev.cadline.hu', 'www.archline.hu', 'www.archlinexp.com');
$secServers = array('secondary.cadline.hu');
$txtResult = '';
switch ($name) {
case 'activateSecondary':
if (in_array($serverName, $primaryServers))
$txtResult = 'Inactive';
if (in_array($serverName, $secServers))
$txtResult = 'Active';
break;
case 'activatePrimary':
if (in_array($serverName, $primaryServers))
$txtResult = 'Active';
if (in_array($serverName, $secServers))
$txtResult = 'Inactive';
break;
default:
die();
break;
}
if ($txtResult == '')
die();
$txtString = 'Success';
$filename = $_SERVER['DOCUMENT_ROOT'] . "/activateServer.txt";
$closed = file_put_contents($filename, $txtResult);
$i = 0;
while (!$closed && $i < 10) {
$closed = file_put_contents($filename, $txtResult);
$i++;
}
if (!$closed)
$txtString = 'Failed';
$result = new stdClass();
$result->message = $txtString;
echo json_encode($result);

View File

@ -1,17 +0,0 @@
<?php
/*******************************************************************************
* eredeti url: http://www.archline.hu/version/aktivalasikod/SERIALNUMBER/ISID/IDOKOD
******************************************************************************/
error_reporting(E_ERROR | E_PARSE);
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
$serial = $_GET['serial']; // segment(3);
$isid = $_GET['isid']; // segment(4);
$kod = $_GET['kod']; // segment(5);
crm_hardlock::correctIsid($isid);
$aktkod = crm_hardlock::GetOrGenerateTimeCode($serial, $isid, $kod);
crm_hardlock::_Hibajelento("aktivalasikod", substr($serial, 0, 6), "valasz: " . $aktkod);
print $aktkod;

View File

@ -1,155 +0,0 @@
<?php
/*******************************************************************************
* bejelentkezes: www.archlinexp.com/maintenance/al.php?action=login&lang=hun|eng|ger|...
* selectprogram: www.archlinexp.com/maintenance/al.php?action=selectprogram&lang=hun|eng|ger|...
* selectprogramdialog: www.archlinexp.com/maintenance/al.php?action=selectprogramdialog&lang=hun|eng|ger|...
******************************************************************************/
error_reporting(E_ERROR | E_PARSE);
require_once('config.php');
require_once('libraries/phpmailer/PHPMailerAutoload.php');
$action = trim(strtolower($_GET['action']));
$lang = trim(strtolower($_GET['lang']));
switch ($action) {
case 'login': {
header("Location: https://www." . ($lang == 'hun' ? 'archline.hu/maintenance/al_login.php' : 'archlinexp.com/user'));
exit;
break;
}
case 'selectprogram': // xml output
{
require_once("class/selectprogram.class.php");
$sp = new SelectProgram();
$namirialNonProfit = false;
$BIMLadderNonProfit = false;
if (isset($_GET['parnterID']) && $_GET['parnterID'] == '2nt')
$namirialNonProfit = true;
else if (isset($_GET['parnterID']) && $_GET['parnterID'] == 'kbl')
$BIMLadderNonProfit = true;
$sp->getXML($_GET['pwd'], $_GET['npid'], $_GET['isid'], $namirialNonProfit, $BIMLadderNonProfit, $_GET['userid'], $_GET['commercial']);
break;
}
case 'selectprogramdialog': // html output
{
/*require_once("class/selectprogramdialog.class.php");
$spd = new SelectProgramDialog();
$spd->getPrograms($_GET['pwd'], $_GET['userid']);*/
break;
}
case 'checknonprofitexists': // xml output
{
require_once("class/selectprogram.class.php");
$sp = new SelectProgram();
$sp->checkNonProfitExists($_GET['npid'], $_GET['isid']);
break;
}
case 'email': {
if (isset($_GET["name"]) && isset($_GET["email"]) && isset($_GET["telephone"]) && isset($_GET["company"]) && isset($_GET["nonprofit"])) {
$isEmailForNamirial = true;
if (isset($_GET["parnterID"])) {
if ($_GET["parnterID"] == "2nt")
$isEmailForNamirial = true;
else if ($_GET["parnterID"] == "kbl")
$isEmailForNamirial = false;
}
$nev = base64_decode($_GET["name"]);
$email = base64_decode($_GET["email"]);
$phone = base64_decode($_GET["telephone"]);
$company = base64_decode($_GET["company"]);
$nonprofit = base64_decode($_GET["nonprofit"]);
$year = isset($_GET["year"]) ? base64_decode($_GET["year"]) : "2018";
$date = date('Y-m-d H:i:s', time());
if ($nonprofit == 0) {
if ($isEmailForNamirial)
$message = "ARCHLine.XP NamirialBIM: New trial user\n";
else
$message = "ARCHLine.XP BIMLadder: New trial user\n";
} else {
if ($isEmailForNamirial)
$message = "ARCHLine.XP NamirialBIM: New registered user\n";
else
$message = "ARCHLine.XP BIMLadder: New registered user\n";
}
$message .= $nev;
$message .= "\n";
$message .= $email;
$message .= "\n";
$message .= $phone;
$message .= "\n";
$message .= $company;
$message .= "\n";
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->CharSet = 'UTF-8';
$mail->Host = $mailconfig['Host'];
$mail->Username = $mailconfig['Username'];
$mail->Password = $mailconfig['Password'];
$mail->SMTPSecure = $mailconfig['SMTPSecure'];
$mail->Port = $mailconfig['Port'];
$mail->isHTML(TRUE);
$mail->setFrom(DEFAULT_EMAIL);
$mail->addAddress('support@cadline.hu');
if ($isEmailForNamirial) {
$mail->addBCC('register.archline@edilizianamirial.it');
$mail->addBCC('info@cadlinesw.com');
} else {
//ba biztonsagi okokbol, hogy a kesobbiekben is vissza tudjuk keresni
$mail->addCC('cadalog@gmail.com');
}
if ($nonprofit == 0) {
if ($isEmailForNamirial)
$mail->Subject = 'ARCHLine.XP NamirialBIM ' . $year . ' user registration - trial mode';
else
$mail->Subject = 'ARCHLine.XP BIMLadder ' . $year . ' user registration - trial mode';
} else {
if ($isEmailForNamirial)
$mail->Subject = 'ARCHLine.XP NamirialBIM ' . $year . ' user registration - registered mode';
else
$mail->Subject = 'ARCHLine.XP BIMLadder ' . $year . ' user registration - registered mode';
}
$mail->msgHTML($message);
$mail->AltBody = strip_tags($message);
if ($mail->send()) {
if (!$isEmailForNamirial)
print 'Sent'; //ba namirial eseten kesobb jon egy header, nem szabad kiirni semmit, kulonben nem mukodik!
}
unset($mail);
if ($isEmailForNamirial) {
$namirialAction = $nonprofit == 0 ? 'trial-version' : 'registered-version';
$url = 'https://manager.cadlinesw.com/cadline-data/';
$url .= '?msg=NamirialBIM';
$url .= '&email=' . urlencode($email);
$url .= '&name=' . urlencode($nev);
$url .= '&phone=' . urlencode($phone);
$url .= '&action=' . urlencode($namirialAction);
$url .= '&business=' . urlencode($company);
$url .= '&year=' . urlencode($year);
$ch = curl_init();
$timeout = 10;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
print "Sent";
//header("Location: ".$url);
//exit;
}
break;
}
}
}
$txt = "Időpont: " . date('Y-m-d H:i:s', time()) . " IP: " . $_SERVER['REMOTE_ADDR'] . "\n";
error_log($txt, 3, "../tmp/al_log.txt");

View File

@ -1,10 +0,0 @@
<?php
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
/*$actualPrograms = crm_hardlock::GetAllPrograms(25407, 1, 19);
//echo $actualPrograms[0]["prHlNum"];
echo '<ul>';
foreach ($actualPrograms as $result){
echo "<li>".$result["prHlNum"]."</li>";
}
echo '</ul>';*/

View File

@ -1,120 +0,0 @@
<?php
// https://www.archline.hu/maintenance/banner.php?serial=MzYwNzAwODM0MDEyMzQ1Ng==&build=MjM0&lang=eng|hun|ger
require('config.php');
$serial = base64_decode(str_replace(" ", "+", $_GET['serial']));
$build = base64_decode(str_replace(" ", "+", $_GET['build']));
$ctrCode = substr($serial, 0, 2);
$prgType = substr($serial, 6, 1);
$prgCode = substr($serial, 7, 2);
$bldCode = (int)$build;
$lngCode = (isset($_GET['lang']) ? trim(addslashes(strtolower($_GET['lang']))) : NULL);
$hlNum = substr($serial, 0, 6);
$id = (isset($_GET['bid']) && (int)base64_decode(str_replace(" ", "+", $_GET['bid'])) > 0 ? (int)base64_decode(str_replace(" ", "+", $_GET['bid'])) : NULL);
if ($id > 0) {
$sql = "SELECT * FROM `albanner` WHERE id=" . $id;
} else {
if (strpos($hlNum, "x") === FALSE) // normál ág
{
$sql = "SELECT * FROM `www_archline_hu`.`albanner` WHERE
" . ($lngCode > '' ? " `lang`='" . $lngCode . "' AND " : "") . "
" . ($bldCode > 0 ? " (`build`=" . $bldCode . " OR `build`=0 OR `build` IS NULL) AND " : "") . "
`from_datetime`<=CURRENT_TIMESTAMP AND
`end_datetime`>CURRENT_TIMESTAMP AND
`published`='Y' AND
(substring(`pattern`,1,6)='" . $ctrCode . "xxxx' OR substring(`pattern`,1,6)='xxxxxx') AND
(substring(`pattern`,7,1)='" . $prgType . "' OR substring(`pattern`,7,1)='x') AND
(substring(`pattern`,8,2)='" . $prgCode . "' OR substring(`pattern`,8,2)='xx')
ORDER BY `priority` DESC, `add_datetime` DESC
LIMIT 10;";
} else // teszteléshez!
{
$sql = "SELECT * FROM `www_archline_hu`.`albanner` WHERE
" . ($lngCode > '' ? " `lang`='" . $lngCode . "' AND " : "") . "
" . ($bldCode > 0 ? " (`build`=" . $bldCode . " OR `build`=0 OR `build` IS NULL) AND " : "") . "
`from_datetime`<=CURRENT_TIMESTAMP AND
`end_datetime`>CURRENT_TIMESTAMP AND
`published`='Y' AND
(substring(`pattern`,1,6)='" . $ctrCode . "xxxx' OR substring(`pattern`,1,6)='xxxxxx') AND
(substring(`pattern`,7,1)='" . $prgType . "' OR substring(`pattern`,7,1)='x') AND
(substring(`pattern`,8,2)='" . $prgCode . "' OR substring(`pattern`,8,2)='xx')
ORDER BY `priority` DESC, `add_datetime` DESC
LIMIT 10;";
}
}
$msh2->query($sql);
$res = $msh2->fetchAssoc();
if ($_SERVER['REMOTE_ADDR'] == '188.6.239.155' && isset($_GET['test'])) {
print "serial: " . $serial . " build: " . $bldCode . " result: " . count($res) . "<br />" . $sql;
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>ARCHLine.XP banner</title>
<meta name="description" content="ARCHLine.XP banner">
<link rel="stylesheet" type="text/css" href="css/ticker-style.css" />
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/jquery.ticker.js" type="text/javascript"></script>
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script>
<![endif]-->
<style type="text/css">
body {
color: #000000;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
}
</style>
</head>
<body>
<ul id="js-news" class="js-hidden">
<?php foreach ($res as $row) : ?>
<?php if ($row['link'] > '') : ?>
<li class="news-item"><a href="<?= $row['link'] ?>" target="_blank"><?= strip_tags($row['message'], '<i><b><strong>') ?></a></li>
<?php else : ?>
<li class="news-item"><?= strip_tags($row['message'], '<i><u><b><strong>') ?></li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<script type="text/javascript">
jQuery(function() {
jQuery('#js-news').ticker({
speed: 0.10, // The speed of the reveal
ajaxFeed: false, // Populate jQuery News Ticker via a feed
feedUrl: false, // The URL of the feed
// MUST BE ON THE SAME DOMAIN AS THE TICKER
feedType: 'xml', // Currently only XML
htmlFeed: true, // Populate jQuery News Ticker via HTML
debugMode: false, // Show some helpful errors in the console or as alerts. SHOULD BE SET TO FALSE FOR PRODUCTION SITES!
controls: false, // Whether or not to show the jQuery News Ticker controls
titleText: '', // To remove the title set this to an empty String
displayType: 'fade', // Animation type - current options are 'reveal' or 'fade'
direction: 'ltr', // Ticker direction - current options are 'ltr' or 'rtl'
pauseOnItems: <?= (count($res) > 1 ? 4000 : 600000) ?>, // The pause on a news item before being replaced
fadeInSpeed: 300, // Speed of fade in animation
fadeOutSpeed: 300 // Speed of fade out animation
});
});
</script>
</body>
</html>

View File

@ -1,95 +0,0 @@
<?php
if ($_SERVER['REMOTE_ADDR'] != '188.6.239.155') {
die();
}
error_reporting(E_ALL);
die();
mb_internal_encoding("UTF-8");
include("config.php");
$time = time();
$nManagerID = 54;
$arrFiles = array("leads/leads_imported.csv");
foreach ($arrFiles as $file) {
foreach (file($file) as $k => $sor) {
$mezo = explode(";", $sor);
if ($k == 0) continue;
if (trim($mezo[3]) == '') continue;
$emails = explode(",", strtolower(trim(utf8_decode(str_replace("'", "", $mezo[3])))));
$user = array(
"strInfo" => utf8_decode(trim($mezo[0]) . ', ' . trim($mezo[1])),
"strName" => ucwords(trim(strtolower(utf8_decode($mezo[2])))),
"strEMail" => $emails[0],
"strTel" => trim(utf8_decode($mezo[4])),
"nCtrID" => ((int)$mezo[5] > 0 ? (int)$mezo[5] : NULL),
"strZip" => strtoupper(trim(utf8_decode($mezo[6]))),
"strCity" => ucwords(trim(strtolower(utf8_decode($mezo[7])))),
"strStreet" => trim(utf8_decode($mezo[8])),
"strCompany" => ucwords(trim(strtolower(utf8_decode($mezo[9])))),
"strWeb" => strtolower(trim(utf8_decode($mezo[10]))),
"nManagerID" => $nManagerID,
"nUserStatus" => 0,
"nIsCommendatory" => 0,
"nUserType" => 0,
"nUserDebt" => 0,
"nEsely" => 0,
"dateInsert" => $time,
"deleted" => 0,
"old_db" => "clusers_eng",
);
//print_r($user); print "<br />";
$nUserID = 0;
$exist = FALSE;
foreach ($emails as $email) {
$res = array();
$msh->query("SELECT * FROM " . CRMADATBAZIS . ".u_emails WHERE LOWER(email)='" . strtolower(trim($email)) . "' LIMIT 1;");
$res = $msh->fetchAssoc();
if (!empty($res)) {
$exist = TRUE;
break;
}
}
if ($exist) {
$nUserID = $res[0]['nUserID'];
print "exist: {$nUserID}<br />\n";
} else {
$msh->insert(CRMADATBAZIS . ".`users`", $user);
$nUserID = $msh->getInsertedId();
foreach ($emails as $e => $email) {
$msh->query("SELECT * FROM " . CRMADATBAZIS . ".u_emails WHERE LOWER(email)='" . strtolower(trim($email)) . "' LIMIT 1;");
$res = $msh->fetchAssoc();
if (empty($res)) {
$msh->insert(CRMADATBAZIS . ".`u_emails`", array(
'email' => strtolower(trim($email)),
'nUserID' => $nUserID,
'default' => ($e == 0 ? 1 : 0),
'active' => 1,
'deleted' => 0,
'newsletter' => 1
));
}
}
}
$msh->insert(CRMADATBAZIS . ".`u_history`", array(
'nUserID' => $nUserID,
'nTopicID' => 339,
'dateEvent' => date("Y-m-d", $time),
'strPlace' => '',
'strInfo' => 'Tóth Zoli (Partnering) adatbázis',
'nManagerID' => $nManagerID,
'insertDate' => date("Y-m-d H:i:s", $time),
));
}
}

View File

@ -1 +0,0 @@
<div class='msgln'><i>User angel jude suarez has joined the chat session.</i><br></div><div class='msgln'><i>User angel jude suarez has joined the chat session.</i><br></div><div class='msgln'><i>User angel jude suarez has left the chat session.</i><br></div><div class='msgln'><i>User angel jude suarez has joined the chat session.</i><br></div><div class='msgln'>(8:09 AM) <b>angel jude suarez</b>: yow<br></div><div class='msgln'><i>User angel jude suarez has left the chat session.</i><br></div><div class='msgln'><i>User james has joined the chat session.</i><br></div><div class='msgln'>(8:09 AM) <b>james</b>: hi<br></div><div class='msgln'><i>User james has left the chat session.</i><br></div><div class='msgln'><i>User angel jude suarez has joined the chat session.</i><br></div><div class='msgln'><i>User angel jude suarez has joined the chat session.</i><br></div><div class='msgln'><i>User angel jude suarez has left the chat session.</i><br></div><div class='msgln'><i>User angel jude suarez has joined the chat session.</i><br></div><div class='msgln'><i>User angel jude suarez has left the chat session.</i><br></div>

View File

@ -1,21 +0,0 @@
<?php
if (!class_exists('Database')) require_once("common_cadline_libraries/crm_database.class.php");
$status = 'Success';
$msg = '';
Database::getInstance()->query("SELECT * FROM sync_crm.cron_check");
$cronFunctions = Database::getInstance()->fetchAssoc();
foreach ($cronFunctions as $function) {
$timeStamp = time() - $function['modified'];
if ($timeStamp > 120)
$status = 'Failed';
$msg .= 'Function: ' . $function['function'] . '<br>';
$msg .= 'Last run: ' . date('Y-m-d H:i:s', $function['modified']) . '<br><br>';
}
echo 'Cron status: ' . $status . '<br><br>';
echo $msg;

View File

@ -1,12 +0,0 @@
<?php
try {
if (!class_exists('Database')) require_once("common_cadline_libraries/crm_database.class.php");
$query = "SELECT prID FROM cl_hlusers.h_programs WHERE prID = 380335 LIMIT 1;";
Database::getInstance()->query($query);
$program = Database::getInstance()->fetchNext();
echo $program['prID'];
} catch (\Throwable $th) {
echo 'Failed';
}

View File

@ -1,468 +0,0 @@
<?php
/*******************************************************************************
* test old url (session has 6 parts): https://www.archlinexp.com/maintenance/al.php?action=actcode&lang=hun&version=2&session=OTA0NkEzMTlBMDcwQTE3NkE4NzRBMzc1QTc3NkEwNzJBNTc0Q0Y3NUE3NzdBMjdGQTc3RUE4NzJBNDcwQTgxOUNGNzVDRjc3QTA3NkEyNzdBMzZCQTM3MEJENzVBNTA3QkQ3MkEwN0ZBMDAzQTYxOUEyNjhBOTY4QTA3NEJFNzZCRTc3RTIyMUY1MjNCRTI4QTE3N0E4NzE=
* test new url (session has 12 parts): https://www.archlinexp.com/maintenance/al.php?action=actcode&lang=eng&version=3&session=MDA1MjM5MEQzMDY0MzA2MjM4NjMzNTYxMzM2MjM1NkIzMTY3NUY2NDMxN0YzMzY2MzE2NzM5NjczMTYyNUY2QjM1NjE1RjY3NUY2MzMwNjIzMTYyNDM3RjQ1NkIyRDEwMzYxMzJENjIzNjY1MzA2NjM2MEQzMjdDMzk3QzMwNjAyRTYyMkU2MzcyMzU2NTM3MkUzQzM4NjAzNjY3NUYwRDVGMEQzNTMwMzk2NzYyMzA2MjZBMzQ3RjY2NjQyRDYyMzY2NjY0MzczODdGNjQzMTJENjczNDZBMzM2MjM2NjE2MTZCMzc2MzM1NjYzMjBENzQzQw==
* $arrSess[empty, pwd, compID, build, ctrID, idokod, osdata, usGCMan, usGCType, usGCDriverVer, npID, partnerID]
******************************************************************************/
class ActCode
{
public static $arrEnabledLangs = array('hun', 'eng', 'jap');
public static $arrNamirialRange = array('min' => 940001, 'max' => 949999);
public static $arrBIMLadderRange = array('min' => 920001, 'max' => 929999);
private static $noAnswer = "(( nem kapott valaszt ))";
private static $arrCodeReplyEnabled = array(30, 34, 36, 38, 40, 41, 42, 43, 44, 47, 48, 49, 82, 88, 91, 92, 93, 94, 95, 97, 98, 99);
function ActCode()
{
if (!class_exists('MySqlHelper')) require_once("MySqlHelper.class.php");
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
}
public static function getActCode($lang, $version, $session)
{
if (!is_numeric($version)) {
die('Invalid version id sent: ' . $version);
}
$ctrName = IpToCountryHelper::getInstance()->getCountryName();
$arrSess = self::decodeSessionString($session);
if ($lang && is_array($arrSess) && count($arrSess)) {
if (isset($arrSess['npID']) && $arrSess['npID'] > '' && isset($arrSess['partnerID']) && $arrSess['partnerID'] == '2nt' && isset($arrSess['idokod']) && $arrSess['idokod'] > '' && isset($arrSess['pwd']) && $arrSess['pwd'] > '') {
self::namirialProcess($arrSess['npID'], $arrSess['partnerID'], $arrSess['idokod'], $arrSess['pwd']);
} else if (isset($arrSess['npID']) && $arrSess['npID'] > '' && isset($arrSess['partnerID']) && $arrSess['partnerID'] == 'kbl' && isset($arrSess['idokod']) && $arrSess['idokod'] > '' && isset($arrSess['pwd']) && $arrSess['pwd'] > '') {
self::bimLadderProcess($arrSess['npID'], $arrSess['partnerID'], $arrSess['idokod'], $arrSess['pwd']);
}
// $pass=&$arrSess['pwd'];
$pass = '9908258340388286';
$kulcs = HardlockHelper::getHardlock(substr($pass, 0, 6));
$prog = ProgramHelper::getProgram($pass);
$isid = ProgramHelper::getIsidFromPass($pass, $prog['prActCode']);
$aktivalokod = CodeGenHelper::generateTimeCode($pass, $isid, 600); // ???
$tomb = array_merge($arrSess, array('lang' => $lang, 'ctrname' => $ctrName, 'aktivalokod' => $aktivalokod, 'valasz' => (trim($aktivalokod) > "" ? trim($aktivalokod) : self::$noAnswer)));
$newUsID = self::insertUserStats($tomb); // ???
self::insertAktivalasInfok(array_merge($tomb, array('usID' => $newUsID, 'isid' => $isid)));
self::xmlOutput($kulcs['hlStat'], $prog['prLogFilter'], $aktivalokod, $newUsID); // ???
if (substr($pass, 7, 2) > 29 && substr($pass, 0, 2) != '96') // ???
{
/*
$version->ujaktivalasikod2($pass,$isid,$arrSess['idokod']);
*/
}
} else {
self::insertError("Valami hianyzik:\nlang: " . $lang . "\nverzio: " . $version . "\nssID: " . $session . "\ndecoded session: " . print_r($arrSess, TRUE), __FUNCTION__);
}
}
public static function getAnswer($pass, $isid, $idokod)
{
if (self::isCodeReplyEnabled($pass) === TRUE) {
$prog = ProgramHelper::getPrograms($pass); // a LAN-osok miatt több rekordot is visszaadhat
if (!$prog) {
return "error: nincs ilyen password";
}
$kulcs = HardlockHelper::getHardlock((int)substr($pass, 0, 6));
if (!$kulcs) {
return "error: nincs ilyen hardlock";
}
if ($kulcs['hlStat'] != 1) {
return "error: nem aktiv a program";
}
$szoftveres = CodeGenHelper::isSoftwareKey($pass);
if ($szoftveres === FALSE) {
return $prog[0]['prActCode'];
} // hardveres kulcs esetén egyből visszaadja az aktuális aktiválási kód
/*
????????????????????????????????????????????????????????????????????????????????
*/
$voltures = false;
foreach ($prog as $program) {
if ($program['prActCode'] != "") // neki megfelelő aktiválási kód
{
$this->win10creator_old_isid = substr($program['prActCode'], 5, 4);
$isidOK = (substr($program['prActCode'], 5, 4) == $isid);
if ($isidOK) {
$valasz = $program['prActCode'];
break;
} // aktuális aktiválási kód ????
if (!$isidOK && substr($program['prActCode'], 7, 2) == substr($isid, 2, 2)) {
$elteltnapok = 0;
sscanf(substr($idokod, 11, 2), '%02x', $elteltnapok);
$elteltnapok += $this->convert(substr($idokod, 10, 1)) * 256;
$engedelyezettnapok = 0;
sscanf(substr($program['prActCode'], 11, 2), '%02x', $engedelyezettnapok);
$engedelyezettnapok += $this->convert(substr($program['prActCode'], 10, 1)) * 256;
if ($engedelyezettnapok > $elteltnapok) {
$valasz = "error: win10 creator";
break;
}
}
if ($isidOK) {
$valasz = $program['prActCode']; // aktuális aktiválási kód ???
break;
} else {
$valasz = 'error: masik gep van regisztralva';
}
} else {
$valasz = "error: hianyzo kod"; // nincs beirva a kod
$voltures = TRUE;
}
}
if ($voltures === TRUE && $valasz == "error: masik gep van regisztralva") // LAN-os szoftver kulcsos liszensznél ha ezt a liszenszt nem találtuk de volt üres liszensz, akkor csinálja ezt
{
$valasz = "error: hianyzo kod";
}
/*
????????????????????????????????????????????????????????????????????????????????
*/
return $valasz;
}
}
public static function bimLadderProcess($npID = '', $partnerID = '', $idokod = '', $pwd = '')
{
if ($npID == '' || $partnerID != 'kbl' || $idokod == '' || $pwd == '') {
die('Missing parameters: |' . $npID . '|' . $partnerID . '|' . $idokod . '|' . $pwd . '|');
}
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`computers` WHERE `computer_id`='" . $npID . "' LIMIT 1;");
$res4 = MySqlHelper::getInstance()->fetchAssoc();
if (empty($res4)) {
$comp = array(
'computer_id' => $npID,
'last_mod' => date('Y-m-d', time())
);
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`computers`", $comp);
}
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`computers` WHERE `computer_id`='" . $npID . "' LIMIT 1;");
$compid = MySqlHelper::getInstance()->fetchAssoc();
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`nonprofit` WHERE computer_id='" . $compid[0]['id'] . "' AND partnerID = 'kbl' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
if (empty($res)) {
$time = time();
$hlNum = crm_hardlock::GetTheFirstNotUsedHlNumFromInterval(self::$arrBIMLadderRange['min'], self::$arrBIMLadderRange['max']);
$arrIdokod = explode("-", $idokod);
$isid = $arrIdokod[1];
$type = substr($pwd, 6, 1);
$verid = substr($pwd, 7, 2);
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`p_versions` WHERE `verPassword8and9`='" . $verid . "' LIMIT 1;");
$ver = $msh->fetchAssoc();
$ver = $ret[0];
$interval = date_diff(date_create(date('Y-m-d', $time)), date_create((string)((int)date('Y', $time) + 1) . '-12-31'));
$pass = CodeGenHelper::generatePassword($hlNum, 0, $type, $ver['verCode']); // hlNum,lan,type=8,75=2018
$aktKod = CodeGenHelper::generateTimeCode($pass, $isid, $interval->days); // pass,isid,numOfDays
$msh->query("SELECT * FROM `" . CRMADATBAZIS . "`.`computers` WHERE computer_id='" . $npID . "' LIMIT 1;");
$res = $msh->fetchAssoc();
if (empty($res)) {
$comp = array(
'computer_id' => $npID,
'last_mod' => date('Y-m-d', time())
);
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`computers`", $comp);
}
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`computers` WHERE `computer_id`='" . $npID . "' LIMIT 1;");
$compid = MySqlHelper::getInstance()->fetchAssoc();
$nonprofit = array(
'isid' => $isid,
'verid' => $verid,
'hlID' => $hlNum,
'nUserID' => 62103, //ba ez invalid! namirialnal is! nem egy Namirial usernek az idje kene hogy itt legyen? Ami most 63051..
'add_datetime' => date('Y-m-d H:i:s', $time),
'expire_datetime' => (string)((int)date('Y', $time) + 1) . '-12-31 23:59:59',
'activation_datetime' => date('Y-m-d H:i:s', $time),
'old_db' => 'clusers_eng',
'partnerID' => $partnerID,
'enabled' => 'Y',
'computer_id' => $compid[0]['id']
);
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`nonprofit`", $nonprofit);
$hardlock = array(
'hlNum' => $hlNum,
'hlCtrID' => 82,
'hlLan' => 0,
'hlStat' => 1,
'hlDateIssue' => date('Y-m-d', $time),
'hlManID' => 36,
'hlTime' => date('Y-m-d H:i:s', $time),
'hlUser' => 62103, //ba ez invalid! namirialnal is! nem egy Namirial usernek az idje kene hogy itt legyen? Ami most 63051..
'hlDealer' => 62103, //ba ez invalid! namirialnal is! nem egy Namirial usernek az idje kene hogy itt legyen? Ami most 63051..
'bUjithato' => 1,
'old_db' => 'clusers_eng'
);
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`hardlock`", $hardlock);
$program = array(
'prTypeID' => $type,
'prVerID' => $ver['verID'],
'prLan' => 0,
'prPass' => trim($pass),
'prSellDate' => date('Y-m-d', $time),
'prActDate' => (string)((int)date('Y', $time) + 1) . '-12-31',
'prFizetve' => (string)((int)date('Y', $time) + 1) . '-12-31',
'prActCode' => trim($aktKod),
'prTime' => date('Y-m-d H:i:s', $time),
'prLastMod' => date('Y-m-d H:i:s', $time),
'prContact' => 9,
'prHlNum' => $hlNum, // 99xxxx
'prManID' => 36, // web
'prStat' => 0,
'prHiType' => 1, // 1 Rendelés | 2 Típus Váltás | 3 Frissítés | 4 Auto Friss.
);
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`h_programs`", $program);
}
}
public static function namirialProcess($npID = '', $partnerID = '', $idokod = '', $pwd = '')
{
if ($npID == '' || $partnerID != '2nt' || $idokod == '' || $pwd == '') {
die('Missing parameters: |' . $npID . '|' . $partnerID . '|' . $idokod . '|' . $pwd . '|');
}
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`computers` WHERE `computer_id`='" . $npID . "' LIMIT 1;");
$res4 = MySqlHelper::getInstance()->fetchAssoc();
if (empty($res4)) {
$comp = array(
'computer_id' => $npID,
'last_mod' => date('Y-m-d', time())
);
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`computers`", $comp);
}
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`computers` WHERE `computer_id`='" . $npID . "' LIMIT 1;");
$compid = MySqlHelper::getInstance()->fetchAssoc();
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`nonprofit` WHERE computer_id='" . $compid[0]['id'] . "' AND partnerID = '2nt' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
if (empty($res)) {
$time = time();
$hlNum = crm_hardlock::GetTheFirstNotUsedHlNumFromInterval(self::$arrNamirialRange['min'], self::$arrNamirialRange['max']);
$arrIdokod = explode("-", $idokod);
$isid = $arrIdokod[1];
$type = substr($pwd, 6, 1);
$verid = substr($pwd, 7, 2);
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`p_versions` WHERE `verPassword8and9`='" . $verid . "' LIMIT 1;");
$ver = $msh->fetchAssoc();
$ver = $ret[0];
$interval = date_diff(date_create(date('Y-m-d', $time)), date_create((string)((int)date('Y', $time) + 1) . '-12-31'));
$pass = CodeGenHelper::generatePassword($hlNum, 0, $type, $ver['verCode']); // hlNum,lan,type=8,75=2018
$aktKod = CodeGenHelper::generateTimeCode($pass, $isid, $interval->days); // pass,isid,numOfDays
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`computers` WHERE `computer_id`='" . $npID . "' LIMIT 1;");
$compid = MySqlHelper::getInstance()->fetchAssoc();
$nonprofit = array(
'isid' => $isid,
'verid' => $verid,
'hlID' => $hlNum,
'nUserID' => 62103, //ba ez invalid! namirialnal is! nem egy Namirial usernek az idje kene hogy itt legyen? Ami most 63051..
'add_datetime' => date('Y-m-d H:i:s', $time),
'expire_datetime' => (string)((int)date('Y', $time) + 1) . '-12-31 23:59:59',
'activation_datetime' => date('Y-m-d H:i:s', $time),
'old_db' => 'clusers_eng',
'partnerID' => $partnerID,
'enabled' => 'Y',
'computer_id' => $compid[0]['id']
);
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`nonprofit`", $nonprofit);
$hardlock = array(
'hlNum' => $hlNum,
'hlCtrID' => 39,
'hlLan' => 0,
'hlStat' => 1,
'hlDateIssue' => date('Y-m-d', $time),
'hlManID' => 36,
'hlTime' => date('Y-m-d H:i:s', $time),
'hlUser' => 62103, //ba ez invalid! namirialnal is! nem egy Namirial usernek az idje kene hogy itt legyen? Ami most 63051..
'hlDealer' => 62103, //ba ez invalid! namirialnal is! nem egy Namirial usernek az idje kene hogy itt legyen? Ami most 63051..
'bUjithato' => 1,
'old_db' => 'clusers_eng'
);
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`hardlock`", $hardlock);
$program = array(
'prTypeID' => $type,
'prVerID' => $ver['verID'],
'prLan' => 0,
'prPass' => trim($pass),
'prSellDate' => date('Y-m-d', $time),
'prActDate' => (string)((int)date('Y', $time) + 1) . '-12-31',
'prFizetve' => (string)((int)date('Y', $time) + 1) . '-12-31',
'prActCode' => trim($aktKod),
'prTime' => date('Y-m-d H:i:s', $time),
'prLastMod' => date('Y-m-d H:i:s', $time),
'prContact' => 8, // Non-profit
'prHlNum' => $hlNum, // 99xxxx
'prManID' => 36, // web
'prStat' => 0,
'prHiType' => 1, // 1 Rendelés | 2 Típus Váltás | 3 Frissítés | 4 Auto Friss.
);
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`h_programs`", $program);
}
}
public static function decodeSessionString($str = "")
{
if ($str == "") {
die("Missing session string!");
}
$str_decoded = base64_decode($str); //decode the session string
sscanf(substr($str_decoded, 0, 4), '%04x', $keyDec);
$encoded = str_split(substr($str_decoded, 4), 4);
$decoded = '';
foreach ($encoded as $e) {
sscanf($e, '%04x', $temp);
if (strlen(substr(sprintf('%x', $temp ^ $keyDec), 2)) > 0) {
$decoded .= chr(hexdec(substr(sprintf('%04x', $temp ^ $keyDec), 2)));
$decoded .= chr(hexdec(substr(sprintf('%04x', $temp ^ $keyDec), 0, 2)));
} else {
$decoded .= chr(hexdec(substr(sprintf('%04x', $temp ^ $keyDec), 2)));
}
}
$parts = explode('_', $decoded);
$arrSess['empty'] = $parts[0];
$arrSess['pwd'] = $parts[1];
$arrSess['compID'] = $parts[2];
$arrSess['build'] = $parts[3];
$arrSess['ctrID'] = $parts[4];
$arrSess['idokod'] = $parts[5];
if (count($parts) > 6) {
if (isset($parts[6]) && trim($parts[6]) > '') $arrSess['osdata'] = $parts[6];
if (isset($parts[7]) && trim($parts[7]) > '') $arrSess['usGCMan'] = $parts[7];
if (isset($parts[8]) && trim($parts[8]) > '') $arrSess['usGCType'] = $parts[8];
if (isset($parts[9]) && trim($parts[9]) > '') $arrSess['usGCDriverVer'] = $parts[9];
if (isset($parts[10]) && trim($parts[10]) > '') $arrSess['npID'] = $parts[10];
if (isset($parts[11]) && trim($parts[11]) > '') $arrSess['partnerID'] = $parts[11];
}
return ($arrSess);
}
public static function isCodeReplyEnabled($pass = '')
{
if ($pass == '') return (FALSE);
$ret = (in_array((int)substr($pass, 0, 2), self::$arrCodeReplyEnabled) ? TRUE : FALSE);
return ($ret);
}
public static function insertUserStats($tomb = array())
{
if (empty($tomb)) return (FALSE);
$stats = array(
'usLang' => $tomb['lang'],
'usDate' => time(),
'usPwd' => $tomb['pwd'],
'usVer' => substr($tomb['pwd'], 7, 2),
'usCompID' => $tomb['compID'],
'usCtrID' => $tomb['ctrID'],
'usBuild' => $tomb['build'],
'usCtrName' => $tomb['ctrname'],
'usIP' => $_SERVER['REMOTE_ADDR'],
'usOSData' => $tomb['osdata'],
);
if (isset($tomb['usGCMan']) && trim($tomb['usGCMan']) > '' && isset($tomb['usGCType']) && trim($tomb['usGCType']) > '' && isset($tomb['usGCDriverVer']) && trim($tomb['usGCDriverVer']) > '') {
$stats['usGCMan'] = $tomb['usGCMan'];
$stats['usGCType'] = $tomb['usGCType'];
$stats['usGCDriverVer'] = $tomb['usGCDriverVer'];
}
if (substr($tomb['pwd'], 0, 1) == '9') {
if (in_array(substr($pwd, 0, 2), array('99', '98', '95'))) {
$hlRec = HardlockHelper::getHardlock(substr($pwd, 0, 6));
if (isset($hlRec['hlCtrID'])) $stats['usHlCtrID'] = $hlRec['hlCtrID'];
}
} else {
$stats['usHlCtrID'] = substr($tomb['pwd'], 0, 2);
}
if (CodeGenHelper::isSoftwareKey($tomb['pwd']) === TRUE) $stats['usISID'] = substr($tomb['idokod'], 5, 4);
MySqlHelper::getInstance()->insert("`cl_hlusers`.`userstats2013`", $stats);
$newID = MySqlHelper::getInstance()->getInsertedId();
return ($newID);
}
public static function insertAktivalasInfok($tomb = array())
{
if (empty($tomb)) return (FALSE);
$info = array(
"kulcs" => substr($tomb['pwd'], 0, 6),
"datum" => date('Y-m-d H:i:s', time()),
"ip" => $_SERVER['REMOTE_ADDR'],
"kuldo" => "tips",
"leiras" => "programinditas - pw: " . $tomb['pwd'] . ", build: " . $tomb['build'] . ", isid: " . $tomb['isid'] . ", időkód: " . $tomb['idokod'] . ", valasz: " . $tomb['valasz'],
"statusz" => "uj",
"usGCMan" => (isset($tomb['usGCMan']) && trim($tomb['usGCMan']) ? trim($tomb['usGCMan']) : NULL),
"usGCType" => (isset($tomb['usGCType']) && trim($tomb['usGCType']) ? trim($tomb['usGCType']) : NULL),
"usGCDriverVer" => (isset($tomb['usGCDriverVer']) && trim($tomb['usGCDriverVer']) ? trim($tomb['usGCDriverVer']) : NULL),
"usID" => (isset($tomb['usID']) && trim($tomb['usID']) ? trim($tomb['usID']) : NULL),
);
MySqlHelper::getInstance()->insert('`' . CRMADATBAZIS . '`.`h_aktivalas_infok`', $info);
}
public static function insertError($str = '', $fv = '')
{
if (trim($str) > '') {
MySqlHelper::getInstance()->insert("`" . JMLADATBAZIS . "`.`a_hibak`", array(
'osztaly' => __CLASS__,
'fv' => trim($fv),
'hiba' => trim($str),
'datum' => date('Y-m-d H:i:s', time()),
));
}
}
public static function getEnabledLang($lang = "")
{
return (in_array(strtolower($lang), self::$arrEnabledLangs) ? strtolower($lang) : 'eng');
}
public static function xmlOutput($hlStat, $prLogFilter, $aktivalokod, $newUsID)
{
header('Content-Type: text/xml; charset=utf-8');
header('Content-Disposition: inline; filename=response.xml');
print '<' . '?' . 'xml version="1.0" encoding="UTF-8" standalone="yes"' . '?' . '><ActCode>' .
'<actcode>' . ((isset($aktivalokod) && $aktivalokod > '') ? $aktivalokod : self::$noAnswer) . '</actcode>' . // aktivalo kod
'<Virtualization>' . ((isset($hlStat) && (int)$hlStat == 2) ? 'false' : 'true') . '</Virtualization>' . // letiltott kulcs visszajelzése a programnak
((isset($newUsID) && (int)$newUsID > 0) ? '<actid>' . (int)$newUsID . '</actid>' : '') . // userstats tabla rekord azonosito, amit a telemetria tabla is megkap, hogy ossze lehessen kapcsolni
'<logfilter>' . ((isset($prLogFilter) && (int)$prLogFilter > 0) ? $prLogFilter : 0) . '</logfilter>' . // user programjan tavolrol be lehet kapcsolni a logolast
'<loginEnabled>' . ($_SERVER['REMOTE_ADDR'] = '46.139.14.111' ? 'true' : 'false') . '</loginEnabled>' .
'</ActCode>';
}
} // end of class

View File

@ -1,79 +0,0 @@
<?php
class CodeGenHelper
{
public static $cg;
public function __construct()
{
}
public static function getInstance()
{
if (!empty(self::$cg)) return self::$cg;
self::$cg = new CodeGenHelper();
return self::$cg;
}
public static function generatePassword($hlNum, $lan, $type, $version = 64)
{
$country = substr($hlNum, 0, 2);
$number = substr($hlNum, 2, 4);
$type = (int)substr($type, 0, 1);
$command = PATH_CODEGEN . " -Password " . $country . $number . $version . $lan . $type;
$ph = popen($command, "r") or die("A 'codegen' paranccsal nem veheto fel kapcsolat");
$password = fgets($ph, 1024);
pclose($ph);
return ($password);
}
public static function generateTimeCode($pass, $isid, $numOfDays)
{
$command = PATH_CODEGEN . " -GenerateTimeCode " . $pass . " " . $isid . " " . $numOfDays;
$ph = popen($command, "r") or die("A 'codegen' paranccsal nem veheto fel kapcsolat");
$aktkod = fgets($ph, 1024);
pclose($ph);
return ($aktkod);
}
public static function generateTimeCodeForSoftwareKey($pass, $isid, $numOfDays)
{
$ret = generateTimeCode($pass, $isid, $numOfDays);
return ($ret);
}
public static function generateTimeCodeForHardwareKey($pass, $numOfDays)
{
$isid = substr($pass, 0, 2) . substr($pass, 7, 2);
$ret = generateTimeCode($pass, $isid, $numOfDays);
return ($ret);
}
public static function isSoftwareKey($pass)
{
$command = PATH_CODEGEN . " -IsSoftwareKey " . $pass;
$ph = popen($command, "r") or die("A 'codegen' paranccsal nem veheto fel kapcsolat");
$ret = fgets($ph, 1024);
pclose($ph);
return ($ret == "true" ? TRUE : FALSE);
}
public static function parseTimeCode($idokod)
{
$command = PATH_CODEGEN . " -ParseTimeCode " . $idokod;
$ph = popen($command, "r");
$elteltnap = (int)fgets($ph, 1024);
pclose($ph);
return ($elteltnap);
}
public static function diffDay($dateFrom, $dateTo)
{
$command = PATH_CODEGEN . " -DiffDay " . $dateFrom . " " . $dateTo;
$ph = popen($command, "r") or die("A 'codegen' paranccsal nem veheto fel kapcsolat");
$napok = fgets($ph, 1024);
pclose($ph);
return ($napok);
}
}

View File

@ -1,206 +0,0 @@
<?php
class crmHelper
{
public static $ch;
public function __construct()
{
}
public static function getInstance()
{
if (!empty(self::$ch)) return self::$ch;
self::$ch = new HardlockHelper();
return self::$ch;
}
public static function AddOrUpdateComputer($npID)
{
MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`computers` WHERE `computer_id`='" . $npID . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
if (empty($res)) {
$comp = array(
'computer_id' => $npID,
'last_mod' => date('Y-m-d', time())
);
MySqlHelper::getInstance()->insert("`cl_hlusers`.`computers`", $comp);
} else {
MySqlHelper::getInstance()->update("`cl_hlusers`.`computers`", array('last_mod' => date('Y-m-d', time())), array('computer_id' => $npID));
}
MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`computers` WHERE `computer_id`='" . $npID . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
return $res[0]['id'];
}
public static function GetAllPrograms($nUserID, $product_id, $verid)
{
MySqlHelper::getInstance()->query("SELECT h_programs.prPass AS prHlNum, h_programs.prActCode AS prActCode, h_programs.prTypeID AS prTypeID, h_programs.prVerID AS prVerID, h_programs.prLan AS prLan
FROM `cl_hlusers`.`hardlock`
INNER JOIN `cl_hlusers`.`h_programs` ON h_programs.prHlNum = hardlock.hlNum
WHERE (hardlock.hlUser='" . $nUserID . "' OR hardlock.borrow='" . $nUserID . "') AND hardlock.product_id='" . $product_id . "' AND hardlock.hlStat!='0' AND h_programs.prVerID='" . $verid . "'");
$res2 = MySqlHelper::getInstance()->fetchAssoc();
return $res2;
}
public static function GetVerIDFromPassword($pwd)
{
$ver = substr($pwd, 7, 2);
MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`p_versions` WHERE `verPassword8and9`='" . $ver . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
return $res[0]['verID'];
}
public static function encode($privateKey, $publicKey, $data)
{
$key = self::CalcKey($privateKey, $publicKey);
$strLen = strlen($data);
$keyLen = strlen($key);
for ($i = 0; $i < $strLen; $i++) {
$ordStr = ord(substr($data, $i, 1));
if ($j == $keyLen) {
$j = 0;
}
$ordKey = ord(substr($key, $j, 1));
$j++;
$hash .= strrev(base_convert(dechex($ordStr + $ordKey), 16, 36));
}
return $hash;
}
public static function CalcKey($privateKey, $publicKey)
{
$privateKeyLength = strlen($privateKey);
$publicKeyLength = strlen($publicKey);
if ($privateKeyLength > $publicKeyLength) {
$result = $privateKey;
for ($i = 1; $i < $publicKeyLength; $i += 2) {
$result[$i] = $publicKey[$i];
}
} else {
$result = $publicKey;
for ($i = 0; $i < $privateKeyLength; $i += 2) {
$result[$i] = $privateKey[$i];
}
}
return sha1($result);
}
public static function decode($privateKey, $publicKey, $data)
{
$key = self::CalcKey($privateKey, $publicKey);
$strLen = strlen($data);
$keyLen = strlen($key);
for ($i = 0; $i < $strLen; $i += 2) {
$ordStr = hexdec(base_convert(strrev(substr($data, $i, 2)), 36, 16));
if ($j == $keyLen) {
$j = 0;
}
$ordKey = ord(substr($key, $j, 1));
$j++;
$hash .= chr($ordStr - $ordKey);
}
return $hash;
}
public static function decode2($string, $key)
{
$key = sha1($key);
$strLen = strlen($string);
$keyLen = strlen($key);
for ($i = 0; $i < $strLen; $i += 2) {
$ordStr = hexdec(base_convert(strrev(substr($string, $i, 2)), 36, 16));
if ($j == $keyLen) {
$j = 0;
}
$ordKey = ord(substr($key, $j, 1));
$j++;
$hash .= chr($ordStr - $ordKey);
}
return $hash;
}
public static function GetVerName($verid)
{
MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`p_versions` WHERE `verID`='" . $verid . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
return $res[0]['verName'];
}
public static function GetTypeName($typeid)
{
MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`p_types` WHERE `typeCode`='" . $typeid . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
return $res[0]['typeName'];
}
public static function GetActCode($serial)
{
MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`h_programs` WHERE `prPass`='" . $serial . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
return $res[0]['prActCode'];
}
public static function GetWebformPrivateKey()
{
return "3BjGQ6fzMtHupM5V8U3l_u";
}
public static function SetWebformResult($session, $result, $encodedResult)
{
MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`webform_results` WHERE `session_id`='" . $session . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
if (empty($res)) {
$sess = array(
'session_id' => $session,
'result' => $result . '=' . $encodedResult,
'insertDate' => date("Y-m-d")
);
MySqlHelper::getInstance()->insert("`cl_hlusers`.`webform_results`", $sess);
} else {
MySqlHelper::getInstance()->update("`cl_hlusers`.`webform_results`", array('result' => $result . '=' . $encodedResult, 'insertDate' => date("Y-m-d")), array('session_id' => $session));
}
}
public static function SetWebformResource($session, $hint, $buttontext)
{
MySqlHelper::getInstance()->query("SELECT * FROM `cl_hlusers`.`webform_results` WHERE `session_id`='" . $session . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
if (empty($res)) {
$sess = array(
'session_id' => $session,
'insertDate' => date("Y-m-d"),
'message' => $hint,
'button' => $buttontext
);
MySqlHelper::getInstance()->insert("`cl_hlusers`.`webform_results`", $sess);
} else {
MySqlHelper::getInstance()->update("`cl_hlusers`.`webform_results`", array('insertDate' => date("Y-m-d"), 'message' => $hint, 'button' => $buttontext), array('session_id' => $session));
}
}
public static function get_valueFromStringUrl($url, $parameter_name)
{
$parts = parse_url($url);
if (isset($parts['query'])) {
parse_str($parts['query'], $query);
if (isset($query[$parameter_name]))
return $query[$parameter_name];
else
return null;
} else {
return null;
}
}
}

View File

@ -1,25 +0,0 @@
<?php
class HardlockHelper
{
public static $hh;
public function __construct()
{
}
public static function getInstance()
{
if (!empty(self::$hh)) return self::$hh;
self::$hh = new HardlockHelper();
return self::$hh;
}
public static function getHardlock($hlNum = 0)
{
if ((int)$hlNum == 0) return (FALSE);
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`hardlock` WHERE hlNum='" . (int)$hlNum . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
return (empty($res) ? FALSE : $res[0]);
}
} // end of class

View File

@ -1,73 +0,0 @@
<?php
class IpToCountryHelper
{
public static $ic;
public static $deprecated = 15; // days
public function __construct()
{
}
public static function getInstance()
{
if (!empty(self::$ic)) return self::$ic;
self::$ic = new IpToCountryHelper();
return self::$ic;
}
public static function getValues($ip = "")
{
if ($ip == "") $ip = $_SERVER['REMOTE_ADDR'];
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`iptocountry` WHERE IP='" . $ip . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
if (empty($res)) // ha nincs rekord, akkor insert-el egy uj rekordot
{
$tomb = self::downloadValues($ip);
self::saveRecord($tomb);
} else // ha van rekord
{
$res = $res[0];
if (substr($res['AddDateTime'], 0, 10) < date('Y-m-d', time() - 86400 * self::$deprecated)) // es elevult a rekord, akkor torli a regit es insert-el egy uj rekordot
{
self::delOldRecords();
$tomb = self::downloadValues($ip);
self::saveRecord($tomb);
} else // es nem evult el a rekord, akkor az adatbazisbol adja vissza
{
$tomb = $res;
}
}
return ($tomb);
}
public static function downloadValues($ip = "")
{
if ($ip == "") $ip = $_SERVER['REMOTE_ADDR'];
$locale = @file_get_contents("http://freegeoip.net/xml/" . $ip, FALSE, stream_context_create(array('http' => array('timeout' => 2))));
$tomb = json_decode(json_encode(simplexml_load_string($locale)), TRUE);
return ($tomb);
}
public static function saveRecord($tomb = array())
{
$tomb['AddDateTime'] = date('Y-m-d H:i:s', time());
MySqlHelper::getInstance()->insert("`" . CRMADATBAZIS . "`.`iptocountry`", $tomb);
}
public static function delOldRecords()
{
MySqlHelper::getInstance()->delete("`" . CRMADATBAZIS . "`.`iptocountry`", "DATE(`AddDateTime`)<'" . date('Y-m-d', time() - 86400 * self::$deprecated) . "'");
}
public static function getCountryName($ip = "")
{
if ($ip == "") $ip = $_SERVER['REMOTE_ADDR'];
$ret = self::getValues($ip);
if (!isset($ret["CountryName"]) || trim($ret["CountryName"]) == '') $ret["CountryName"] = 'unknown';
return (trim($ret["CountryName"]));
}
}

View File

@ -1,51 +0,0 @@
<?php
class ProgramHelper
{
public static $ph;
public function __construct()
{
}
public static function getInstance()
{
if (!empty(self::$ph)) return self::$ph;
self::$ph = new ProgramHelper();
return self::$ph;
}
public static function getProgram($pass = '')
{
if ($pass == '') return (FALSE);
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prPass='" . $pass . "' LIMIT 1;");
$res = MySqlHelper::getInstance()->fetchAssoc();
return (empty($res) ? FALSE : $res[0]);
}
public static function getPrograms($pass = '')
{
if ($pass == '') return (FALSE);
MySqlHelper::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prPass='" . $pass . "';");
$res = MySqlHelper::getInstance()->fetchAssoc();
return (empty($res) ? FALSE : $res);
}
public static function getIsidFromPass($pass = '', $actcode = '')
{
if ($pass == '') return (FALSE);
if (substr($pass, 0, 1) == '9') {
if (trim($actcode) > '') {
$isid = (substr($actcode, 5, 4) > '' ? substr($actcode, 5, 4) : FALSE);
} else {
$prg = self::getProgram($pass);
$isid = ($prg ? substr($prg['prActCode'], 5, 4) : FALSE);
}
} else {
$isid = substr($pass, 0, 2) . substr($pass, 7, 2);
}
return ($isid);
}
} // end of class

View File

@ -1,13 +0,0 @@
<?php
if (isset($_POST['prgrm'])) {
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
$actcode = crm_hardlock::GetActCode($_POST['prgrm']);
$resultXml = '<' . '?' . 'xml version="1.0"' . '?' . '><SelectedProgram>';
$resultXml .= '<Password>' . $_POST['prgrm'] . '</Password><DayCode>' . $actcode . '</DayCode>';
$resultXml .= '</SelectedProgram>';
header('Content-Type: text/xml; charset=utf-8');
header('Content-Disposition: inline; filename=response.xml');
echo $resultXml;
}

View File

@ -1,92 +0,0 @@
<?php
/*******************************************************************************
* test url: www.archline.hu/maintenance/al.php?action=selectprogram&npid=b559bb8b-46f0-46ed-8cd5-8403369a1745&pwd=9600018350430116&isid=C9EB
******************************************************************************/
class SelectProgram
{
function __construct()
{
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
}
public static function getXML($pwd = '', $npid = '', $isid = '', $namirialNonProfit = false, $BIMLadderNonProfit = false, $userid = '', $commercial = false)
{
$multiple = false;
//$resultXml = '<'.'?'.'xml version="1.0"'.'?'.'><SelectProgramResult>';
if ($pwd == '' || $npid == '' || $isid == '') return (void);
crm_database::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`computers` WHERE `computer_id`='" . $npid . "' LIMIT 1;");
$res2 = crm_database::getInstance()->fetchNext();
if (empty($res2))
$compid = crm_hardlock::AddOrUpdateComputer($npid, '');
else
$compid = $res2['id'];
$password = '';
$actcode = '';
if ($commercial) {
//ba figyelem, teszteletlen ag!!!
if (substr($pwd, 6, 1) == 'L') {
$actualPrograms = crm_hardlock::GetAllPrograms($nUserID, 2, $verid);
} else {
$actualPrograms = crm_hardlock::GetAllPrograms($nUserID, 1, $verid);
}
if (count($actualPrograms) > 1) {
$password = $actualPrograms[0]['prHlNum'];
$actcode = $actualPrograms[0]['prActCode'];
//$resultXml .= '<Password>'.$actualPrograms[0]['prHlNum'].'</Password><DayCode>'.$actualPrograms[0]['prActCode'].'</DayCode>';
} else if (count($actualPrograms) == 1) {
$password = $actualPrograms[0]['prHlNum'];
$actcode = $actualPrograms[0]['prActCode'];
//$resultXml .= '<Password>'.$actualPrograms[0]['prHlNum'].'</Password><DayCode>'.$actualPrograms[0]['prActCode'].'</DayCode>';
}
} else {
if (!$namirialNonProfit && !$BIMLadderNonProfit)
$queryString = "SELECT * FROM `" . CRMADATBAZIS . "`.`nonprofit` WHERE `computer_id`='" . $compid . "' AND `isid`='" . $isid . "' AND partnerID is null LIMIT 1;";
else if ($namirialNonProfit)
$queryString = "SELECT * FROM `" . CRMADATBAZIS . "`.`nonprofit` WHERE `computer_id`='" . $compid . "' AND `isid`='" . $isid . "' AND partnerID = '2nt' LIMIT 1;";
else if ($BIMLadderNonProfit)
$queryString = "SELECT * FROM `" . CRMADATBAZIS . "`.`nonprofit` WHERE `computer_id`='" . $compid . "' AND `isid`='" . $isid . "' AND partnerID = 'kbl' LIMIT 1;";
crm_database::getInstance()->query($queryString);
$res = crm_database::getInstance()->fetchNext();
$multiple = true;
if (count($res)) {
crm_database::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`p_versions` WHERE `verPassword8and9`='" . $res['verid'] . "' LIMIT 1;");
$ver = crm_database::getInstance()->fetchNext();
crm_database::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE `prHlNum`='" . $res['hlID'] . "' AND `prVerID`='" . $ver['verID'] . "' LIMIT 1;");
$res = crm_database::getInstance()->fetchNext();
$password = $res['prPass'];
$actcode = $res['prActCode'];
}
}
header('Content-Type: text/xml; charset=utf-8');
header('Content-Disposition: inline; filename=response.xml');
echo '<' . '?' . 'xml version="1.0"' . '?' . '><SelectProgramResult><Password>' . $password . '</Password><DayCode>' . $actcode . '</DayCode><MultiplePrograms>false</MultiplePrograms></SelectProgramResult>';
}
public static function checkNonProfitExists($npid = '', $isid = '')
{
if ($npid == '' || $isid == '') return (void);
crm_database::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`computers` WHERE `computer_id`='" . $npid . "' LIMIT 1;");
$res2 = crm_database::getInstance()->fetchNext();
$compid = $res2['id'];
crm_database::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`nonprofit` WHERE `computer_id`='" . $compid . "' AND `isid`='" . $isid . "' LIMIT 1;");
$res = crm_database::getInstance()->fetchNext();
if (!empty($res)) {
$user = $res['nUserID'];
crm_database::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`users` WHERE `nUserID`=" . $user . " LIMIT 1;");
$res = crm_database::getInstance()->fetchNext();
header('Content-Type: text/xml; charset=utf-8');
header('Content-Disposition: inline; filename=response.xml');
echo '<' . '?' . 'xml version="1.0"' . '?' . '><NonProfitDatabaseResult><Name>' . $res['strName'] . '</Name><Email>' . $res['strEMail'] . '</Email><Telephone>' . $res['strTel'] . '</Telephone><Company>' . $res['strCompany'] . '</Company></NonProfitDatabaseResult>';
}
}
}

View File

@ -1 +0,0 @@
<?php

View File

@ -1,41 +0,0 @@
<?php
define("_MAX_COMPUTERSTATION_", 3);
define("_PLACE_", 'web');
define("_MANAGER_", 36);
define("_LEASE_VALID_DAYS_", 60);
define("_RESIGN_DAYS_", 3);
define("_WORKSHOP_CRM_", 123);
define("_WORKSHOP_PRICE_", 352);
define("_COURSE_PRICE_PRELIMINARY_", 342);
define("_COURSE_PRICE_INTERMEDIATE_", 343);
define("_COURSE_EXAM_PRICE_PRELIMINARY_", 350);
define("_COURSE_EXAM_PRICE_INTERMEDIATE_", 351);
define("_TUTOR_EXAM_PRICE_", 347);
define("_TUTOR_EXAM_", 85);
define("_TUTOR_EXAM_FAIL_", 353);
define("_EXAM_PRELIMINARY_", 294);
define("_EXAM_INTERMEDIATE_", 344);
define("_EXAM_FAIL_PRELIMINARY_", 348);
define("_EXAM_FAIL_INTERMEDIATE_", 349);
define("_EXAM_APPLICATION_", 359);
define("_EXAM_APPLICATION_CANCELLED_", 360);
define("_EXAM_RETRY_", 3);
define("_EXPIRE_TIME_MINUTES_", 60);
define("_DIPLOMA_PRELIMINARY_", 354);
define("_DIPLOMA_INTERMEDIATE_", 355);
define("_LECTURER_APPLICATION_", 288);
define("_CLUB_WAITING_LIST_", 4);
define("_CLUB_APPLICATION_", 5); // ezt ne használd, inkabb az _ARCHLINE_KLUB_ -ot
define("_CALL_TO_WORKSHOP_", 122);
define("_WORKSHOP_APPLICATION_", 123);
define("_WEBINAR_HUNGARIAN_", 336);
define("_WEBINAR_ENGLISH_", 333);
define("_ARCHLINE_KLUB_", 5);
define("_EVENT_REGISTRATION_", 358);
define("_DAYS_", 7);
define("_TIME_", time());

View File

@ -1,29 +0,0 @@
<?php
if (!class_exists('Constants')) require_once("common_cadline_libraries/constants.php");
$dbCRM = array();
$dbCRM['driver'] = 'mysql';
$dbCRM['prefix'] = '';
if ($_SERVER['SERVER_NAME'] == 'www.archline.hu' || $_SERVER['SERVER_NAME'] == 'www.archlinexp.com') {
$dbCRM['host'] = Constants::DB_HOST;
$dbCRM['user'] = Constants::DB_USER;
$dbCRM['password'] = Constants::DB_PASSWORD;
$dbCRM['database'] = Constants::DB_NAME;
} elseif ($_SERVER['SERVER_NAME'] == 'secondary.dev.cadline.hu') {
$dbCRM['host'] = Constants::DB_HOST;
$dbCRM['user'] = Constants::DB_USER;
$dbCRM['password'] = Constants::DB_PASSWORD;
$dbCRM['database'] = Constants::DB_NAME;
} elseif ($_SERVER['SERVER_NAME'] == 'crm.cadline.hu') {
$dbCRM['host'] = Constants::DB_HOST;
$dbCRM['user'] = Constants::DB_USER;
$dbCRM['password'] = Constants::DB_PASSWORD;
$dbCRM['database'] = Constants::DB_NAME;
} else {
$dbCRM['host'] = Constants::DB_HOST;
$dbCRM['user'] = Constants::DB_USER;
$dbCRM['password'] = Constants::DB_PASSWORD;
$dbCRM['database'] = Constants::DB_NAME;
}

View File

@ -1,25 +0,0 @@
<?php
if (!class_exists('Constants')) require_once("common_cadline_libraries/constants.php");
// DB config
if ($_SERVER['SERVER_NAME'] == 'www.archline.hu' || $_SERVER['SERVER_NAME'] == 'www.archlinexp.com') {
$config['db_host'] = Constants::DB_HOST;
$config['db_user'] = Constants::DB_USER;
$config['db_pass'] = Constants::DB_PASSWORD;
$config['db_name'] = Constants::DB_NAME;
} elseif ($_SERVER['SERVER_NAME'] == 'secondary.dev.cadline.hu') {
$config['db_host'] = Constants::DB_HOST;
$config['db_user'] = Constants::DB_USER;
$config['db_pass'] = Constants::DB_PASSWORD;
$config['db_name'] = Constants::DB_NAME;
} elseif ($_SERVER['SERVER_NAME'] == 'crm.cadline.hu') {
$config['db_host'] = Constants::DB_HOST;
$config['db_user'] = Constants::DB_USER;
$config['db_pass'] = Constants::DB_PASSWORD;
$config['db_name'] = Constants::DB_NAME;
} else {
$config['db_host'] = Constants::DB_HOST;
$config['db_user'] = Constants::DB_USER;
$config['db_pass'] = Constants::DB_PASSWORD;
$config['db_name'] = Constants::DB_NAME;
}

View File

@ -1,8 +0,0 @@
<?php
$mailconfig['Host'] = 'localhost';
$mailconfig['Username'] = 'www.smtp@cadline.hu';
$mailconfig['Password'] = 'Chieng0t';
$mailconfig['SMTPSecure'] = 'none';
$mailconfig['Port'] = '25';
$mailconfig['from_hu'] = 'info@cadline.hu';
$mailconfig['from_com'] = 'info@archlinexp.com';

View File

@ -1,91 +0,0 @@
<?php
if (isset($_SERVER['HTTP_HOST'])) {
switch ($_SERVER['HTTP_HOST']) {
case 'archline.hu':
case 'www.archline.hu': {
define('ELES', TRUE);
define('LANG', 'hun');
define('PREFIX', 'lakber_');
define('JMLADATBAZIS', "www_archline_hu");
define('PATH_CODEGEN', "/usr/local/sbin/codegen");
break;
}
case 'archlinexp.com':
case 'www.archlinexp.com': {
define('ELES', TRUE);
define('LANG', 'eng');
define('PREFIX', 'eng_');
define('JMLADATBAZIS', "www_archline_hu");
define('PATH_CODEGEN', "/usr/local/sbin/codegen");
break;
}
case 'cadline.hu':
case 'www.cadline.hu': {
define('ELES', TRUE);
define('LANG', 'hun');
define('PREFIX', 'lakber_');
define('JMLADATBAZIS', "www_archline_hu");
define('PATH_CODEGEN', "/usr/local/sbin/codegen");
break;
}
case 'dev.cadline.hu': {
define('ELES', FALSE);
define('LANG', 'hun');
define('PREFIX', 'jml_');
define('JMLADATBAZIS', "dev_cadline_hu");
define('PATH_CODEGEN', "/var/www/tamas/codegen");
break;
}
case 'dev.archlinexp.com': {
define('ELES', FALSE);
define('LANG', 'eng');
define('PREFIX', 'eng_');
define('JMLADATBAZIS', "dev_cadline_hu");
define('PATH_CODEGEN', "/var/www/tamas/codegen");
break;
}
default: {
define('ELES', TRUE);
define('LANG', 'hun');
define('PREFIX', 'lakber_');
define('JMLADATBAZIS', "www_archline_hu");
define('PATH_CODEGEN', "/usr/local/sbin/codegen");
break;
}
}
} else {
define('ELES', TRUE);
define('LANG', 'hun');
define('PREFIX', 'lakber_');
define('JMLADATBAZIS', "www_archline_hu");
define('PATH_CODEGEN', "/usr/local/sbin/codegen");
}
$folder = (trim($_SERVER['DOCUMENT_ROOT']) > '' ? trim($_SERVER['DOCUMENT_ROOT']) : $_SERVER['DOCUMENT_ROOT']); // cron-ból futtatva a DOCUMENT_ROOT-nak nincs értéke!!!
require_once('config.mail.php');
if (class_exists('MySqlHelper') === FALSE)
require_once('MySqlHelper.class.php');
define('CRMADATBAZIS', "cl_hlusers");
define('ACT_VERSION_ID', 1182);
define('DOMAIN', 'www.archline.hu');
define('DEFAULT_EMAIL', 'info@cadline.hu');
define('DEFAULT_EMAIL_ENG', 'info@archlinexp.com');
$config['db_host'] = 'localhost'; // 217.116.46.39
$config['db_user'] = 'cadline'; //'mycadline';
$config['db_pass'] = 'Shea6hoo'; //'uf1Ohpee';
$config['db_name'] = 'cl_hlusers';
$config2['db_host'] = 'localhost'; // tanis 2 - 185.43.206.63
$config2['db_user'] = 'mycadline';
$config2['db_pass'] = 'Shea6hoo';
$config2['db_name'] = 'www_archline_hu';
$msh = new MySQLHelper(); // tanis
$msh->init($config['db_host'], $config['db_name'], $config['db_user'], $config['db_pass']);
$msh->writelog = TRUE;
$msh2 = new MySQLHelper(); // tanis 2
$msh2->init($config2['db_host'], $config2['db_name'], $config2['db_user'], $config2['db_pass']);

View File

@ -1,34 +0,0 @@
<?php
if (!class_exists('Constants')) require_once("common_cadline_libraries/constants.php");
$dbTCE = array();
$dbTCE['driver'] = 'mysql';
$dbTCE['prefix'] = '';
$dbCRM = array();
$dbTCE['driver'] = 'mysql';
$dbTCE['prefix'] = '';
if ($_SERVER['SERVER_NAME'] == 'www.archline.hu' || $_SERVER['SERVER_NAME'] == 'www.archlinexp.com') {
$dbTCE['host'] = Constants::DB_HOST;
$dbTCE['user'] = Constants::DB_USER;
$dbTCE['password'] = Constants::DB_PASSWORD;
$dbTCE['database'] = 'tcexam';
} elseif ($_SERVER['SERVER_NAME'] == 'secondary.dev.cadline.hu') {
$dbTCE['host'] = Constants::DB_HOST;
$dbTCE['user'] = Constants::DB_USER;
$dbTCE['password'] = Constants::DB_PASSWORD;
$dbTCE['database'] = 'tcexam';
} elseif ($_SERVER['SERVER_NAME'] == 'crm.cadline.hu') {
$dbTCE['host'] = Constants::DB_HOST;
$dbTCE['user'] = Constants::DB_USER;
$dbTCE['password'] = Constants::DB_PASSWORD;
$dbTCE['database'] = 'tcexam';
} else {
$dbTCE['host'] = Constants::DB_HOST;
$dbTCE['user'] = Constants::DB_USER;
$dbTCE['password'] = Constants::DB_PASSWORD;
$dbTCE['database'] = 'tcexam';
}

View File

@ -1,500 +0,0 @@
<?php
/*******************************************************************************
* eredeti url: http://www.archline.hu/crash/66556465465
******************************************************************************/
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
if (isset($_POST) && !empty($_POST)) {
$guid = $_POST["guid"];
$id = (int)$_POST["newid"];
$lang = $_POST["language"];
$email = (trim($_POST['email']) > '' ? trim($_POST["email"]) : trim($_POST['email2']));
$info = ' ' . $_POST["info"];
$serial = isset($_POST['serial']) ? $_POST['serial'] : '';
$rgn = isset($_POST['rgn']) ? strtolower($_POST['rgn']) : 'int';
$match = $rgn == 'cn' && preg_match('/^[A-Z0-9]{4}(?:-[A-Z0-9]{4}){7}$/', $serial);
if (Codegen::IsValidPassword($serial) == false && $serial != 'no_serial') {
die();
}
$query = "SELECT * FROM www_archline_hu.crash WHERE guid = ? AND id = ? AND deleted = ?;";
Database::getInstance()->query($query, array('sii', $guid, $id, 0));
$res = Database::getInstance()->fetchAssoc();
if (!empty($res)) {
$updateQuery = "UPDATE www_archline_hu.crash SET email = ?, info = ? WHERE guid = ? AND id = ? AND deleted = ? LIMIT 1;";
Database::getInstance()->query($updateQuery, array('sssii', $email, $res[0]['info'] . $info, $guid, $id, 0));
}
header('Content-Type: text/html; charset=utf-8');
//default is english
$text1 = utf8_encode("Thank you!");
$text2 = utf8_encode("The report of this issue is now delivered and awaiting processing.");
$text3 = utf8_encode("If you provided your e-mail address, we will send you a message when there is new information about this issue.");
$text4 = utf8_encode("Best regards");
$text5 = utf8_encode("CadLine Network Ltd.");
if ('hun' == $lang) {
$text1 = utf8_encode("K&#246;sz&#246;nj&#252;k!");
$text2 = utf8_encode("A hibajelent&#233;st k&#233;zbes&#237;tett&#252;k &#233;s jelenleg feldolgoz&#225;sra v&#225;r.");
$text3 = utf8_encode("Amennyiben megadta e-mail c&#237;m&#233;t &#233;rtes&#237;t&#233;st k&#252;ld&#252;nk a jelens&#233;get &#233;rint&#337; b&#225;rminem&#369; fejlem&#233;ny eset&#233;n.");
$text4 = utf8_encode("Tisztelettel");
$text5 = utf8_encode("A CADLine Kft. csapata");
} else if ('ita' == $lang) {
$text1 = utf8_encode("Grazie!");
$text2 = utf8_encode("Il report verr&#224; ora inviato, attendere il completamento.");
$text3 = utf8_encode("Se avete fornito l'indirizzo e-mail, riceverete un messaggio di conferma.");
$text4 = utf8_encode("Distinti saluti");
$text5 = utf8_encode("CadLine Network Ltd.");
} else if ('esp' == $lang) {
} else if ('ger' == $lang || 'de-DE' == $lang || 'de-AT' == $lang) {
$text1 = utf8_encode("Herzlichen Dank!");
$text2 = utf8_encode("Der Report wird nun weitergeleitet und demn&#228;chst bearbeitet.");
$text3 = utf8_encode("Wenn Sie uns eine Email Adresse bekannt gegeben haben, werden wir Sie auf diesem Wege auf dem Laufenden halten.");
$text4 = utf8_encode("Mit freundlichen Gr&#252;&#223;en");
$text5 = utf8_encode("CadLine Network Ltd.");
} else if ('gre' == $lang) {
$text1 = utf8_encode("&#917;&#965;&#967;&#945;&#961;&#953;&#963;&#964;&#974;&#33;");
$text2 = utf8_encode("&#919;&#32;&#945;&#957;&#945;&#966;&#959;&#961;&#940;&#32;&#964;&#959;&#965;&#32;&#945;&#953;&#964;&#942;&#956;&#945;&#964;&#959;&#962;&#32;&#945;&#965;&#964;&#959;&#973;&#32;&#960;&#945;&#961;&#945;&#948;&#943;&#948;&#949;&#964;&#945;&#953;&#32;&#964;&#974;&#961;&#945;&#32;&#954;&#945;&#953;&#32;&#945;&#957;&#945;&#956;&#941;&#957;&#949;&#964;&#945;&#953;&#32;&#949;&#960;&#949;&#958;&#949;&#961;&#947;&#945;&#963;&#943;&#945;&#46;");
$text3 = utf8_encode("&#913;&#957;&#32;&#948;&#974;&#963;&#945;&#964;&#949;&#32;&#964;&#951;&#32;&#948;&#953;&#949;&#973;&#952;&#965;&#957;&#963;&#951;&#32;&#101;&#109;&#97;&#105;&#108;&#32;&#963;&#945;&#962;&#44;&#32;&#952;&#945;&#32;&#963;&#945;&#962;&#32;&#963;&#964;&#949;&#943;&#955;&#959;&#965;&#956;&#949;&#32;&#941;&#957;&#945;&#32;&#956;&#942;&#957;&#965;&#956;&#945;&#32;&#956;&#972;&#955;&#953;&#962;&#32;&#965;&#960;&#940;&#961;&#958;&#959;&#965;&#957;&#32;&#957;&#941;&#949;&#962;&#32;&#960;&#955;&#951;&#961;&#959;&#966;&#959;&#961;&#943;&#949;&#962;&#32;&#963;&#967;&#949;&#964;&#953;&#954;&#940;&#32;&#956;&#949;&#32;&#945;&#965;&#964;&#972;&#32;&#964;&#959;&#32;&#952;&#941;&#956;&#945;&#46;");
$text4 = utf8_encode("&#924;&#949;&#32;&#966;&#953;&#955;&#953;&#954;&#959;&#973;&#962;&#32;&#967;&#945;&#953;&#961;&#949;&#964;&#953;&#963;&#956;&#959;&#973;&#962;");
$text5 = utf8_encode("CadLine Network Ltd.");
} else if ('cz' == $lang) {
$text1 = utf8_encode("D&#283;kujeme!");
$text2 = utf8_encode("Zpr&#225;va o tomto probl&#233;mu je nyn&#237; p&#345;ed&#225;na a &#269;ek&#225; na zpracov&#225;n&#237;.");
$text3 = utf8_encode("Pokud jste poskytli svou e-mailovou adresu, po&#353;leme v&#225;m zpr&#225;vu s nov&#253;mi informacemi o tomto probl&#233;mu.");
$text4 = utf8_encode("S pozdravem");
$text5 = utf8_encode("CadLine Network Ltd.");
} else if ('pol' == $lang) {
} else if ('cr' == $lang) {
$text1 = utf8_encode("Hvala Vam!");
$text2 = utf8_encode("Izvje&#353;taj ovog problema je poslan i &#269;eka na obradu.");
$text3 = utf8_encode("Ako ste naveli Va&#353;u e-mail adresu, poslat &#263;emo Vam poruku kada &#263;emo imati nove informacije vezane uz ovaj problem.");
$text4 = utf8_encode("Srda&#269;an pozdrav,");
$text5 = utf8_encode("CadLine Network Ltd.");
} else if ('nl' == $lang) {
} else if ('kor' == $lang) {
$text1 = utf8_encode("&#44048;&#49324;&#54633;&#45768;&#45796;&#46;");
$text2 = utf8_encode("&#51060;&#32;&#47928;&#51228;&#50640;&#32;&#45824;&#54620;&#32;&#48372;&#44256;&#49436;&#44032;&#32;&#51204;&#45804;&#46104;&#50612;&#32;&#52376;&#47532;&#47484;&#32;&#44592;&#45796;&#47532;&#44256;&#32;&#51080;&#49845;&#45768;&#45796;&#46;");
$text3 = utf8_encode("&#51204;&#51088;&#32;&#47700;&#51068;&#32;&#51452;&#49548;&#47484;&#32;&#51228;&#44277;&#32;&#54620;&#32;&#44221;&#50864;&#51060;&#32;&#47928;&#51228;&#50640;&#32;&#45824;&#54620;&#32;&#49352;&#47196;&#50868;&#32;&#51221;&#48372;&#44032;&#51080;&#51012;&#32;&#46412;&#32;&#47700;&#49884;&#51648;&#44032;&#32;&#51204;&#49569;&#46121;&#45768;&#45796;&#46;");
$text4 = utf8_encode("&#44048;&#49324;&#54633;&#45768;&#45796;&#46;");
$text5 = utf8_encode("CadLine Network Ltd.");
} else if ('chn' == $lang) {
$text1 = "感谢您!";
$text2 = "此问题报告现已提交并等待处理。";
$text3 = "如果您提供了电子邮件地址,当有关于此问题的新信息时,我们会给您发送消息。";
$text4 = "致以最诚挚的问候";
$text5 = "苏州浩辰软件股份有限公司";
} else if ('por' == $lang) {
} else if ('nor' == $lang) {
$text1 = utf8_encode("Takk!");
$text2 = utf8_encode("Rapporten er levert og avventer behandling.");
$text3 = utf8_encode("Hvis du har oppgitt din e-post adresse vil vi sende deg mail n&#229;r det er nytt om saken.");
$text4 = utf8_encode("Med vennlig hilsen");
$text5 = utf8_encode("CadLine Network Ltd.");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<script type="text/javascript" src="/public/js/jquery.js"></script>
<script type="text/javascript" src="/public/js/jquery_ui.js"></script>
<link href="/public/css/jquery.ui.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.gomb {
width: 177px;
height: 40px;
padding-bottom: 1px;
font-size: 1.1em;
border: 0px;
float: right;
margin-top: 10px;
margin-bottom: -15px;
}
textarea {
overflow: auto;
}
</style>
</head>
<body>
<div style="width: 694px; font-family: Arial,Helvetica,sans-serif; font-size: 16px;">
<div style="background: url('/public/img/bg/crash/box_main_top.png') no-repeat; width: 100%; height: 14px;"></div>
<div style="background: url('/public/img/bg/crash/box_main_repeat.png') repeat-y; width: 644px; padding: 0 30px 0 20px;">
<h1 style="margin: 0px;"><?= $text1 ?></h1>
<p style="margin-bottom: 0px;"><?= $text2 ?><br /><br /></p>
<p style="margin-bottom: 0px;"><?= $text3 ?><br /><br /></p>
<p style="margin-bottom: 0px;"><?= $text4 ?><br /></p>
<p style="margin-bottom: 0px;"><?= $text5 ?><br /><br /></p>
</div>
<div style="background: url('/public/img/bg/crash/box_main_bottom.png') no-repeat; width: 100%; height: 14px;"></div>
<img src="/public/img/bg/crash/logo.png" style="margin: 5px 15px;" />
</body>
</html>
<?php
} else {
$info = "";
$guid = $_GET['guid'];
$build = (isset($_GET['build']) ? $_GET['build'] : NULL);
$lang = (isset($_GET['lang']) ? $_GET['lang'] : NULL);
$rgn = (isset($_GET['rgn']) ? strtolower($_GET['rgn']) : 'int');
$prod = (isset($_GET['prod']) ? $_GET['prod'] : '');
$year = (isset($_GET['year']) ? $_GET['year'] : '');
if (NULL == $lang)
$lang = 'eng';
$serial = (isset($_GET['serial']) ? $_GET['serial'] : NULL);
$error = false;
$match = $rgn == 'cn' && preg_match('/^[A-Z0-9]{4}(?:-[A-Z0-9]{4}){7}$/', $serial);
if (Codegen::IsValidPassword($serial) == false && $serial != 'no_serial' && !$match) {
die();
}
if ($year != '') {
$info .= $year . " ";
} elseif ($serial) {
$year = substr($serial, 7, 2);
if ($year == "34")
$info .= "2017 ";
else if ($year == "35")
$info .= "2018 ";
else if ($year == "36")
$info .= "2019 ";
else if ($year == "37")
$info .= "2020 ";
else if ($year == "38")
$info .= "2021 ";
else if ($year == "39")
$info .= "2022 ";
else if ($year == "40")
$info .= "2023 ";
else if ($year == "41")
$info .= "2024 ";
else if ($year == "42")
$info .= "2025 ";
}
if ($build) $info .= "build: " . $build . " ";
if ($serial) $info .= " serial: " . $serial . " ";
$query = "SELECT * FROM www_archline_hu.crash WHERE guid = ? AND deleted = ?;";
Database::getInstance()->query($query, array('si', $guid, 0));
$res = Database::getInstance()->fetchNext();
if (empty($res)) {
$newID = Database::getInstance()->insert(
'www_archline_hu.crash',
array(
'guid' => $guid,
'info' => trim($info),
'datum' => date('Y-m-d H:i:s', time()),
'prod' => $prod
),
'ssss'
);
} else {
$newID = $res['id'];
}
header('Content-Type: text/html; charset=utf-8');
//default is english
$confirm = "Confirm";
if ('hun' == $lang) {
$confirm = "Megerősít";
} else if ('ita' == $lang) {
$confirm = "Conferma";
} else if ('esp' == $lang) {
} else if ('ger' == $lang || 'de-DE' == $lang || 'de-AT' == $lang) {
$confirm = "Bestätigen";
} else if ('gre' == $lang) {
$confirm = "επιβεβαιώνω";
} else if ('cz' == $lang) {
$confirm = "Potvrdit";
} else if ('pol' == $lang) {
} else if ('cr' == $lang) {
$confirm = "Potvrdi";
} else if ('nl' == $lang) {
} else if ('kor' == $lang) {
$confirm = "확인";
} else if ('chn' == $lang) {
$confirm = "确认";
} else if ('por' == $lang) {
} else if ('nor' == $lang) {
$confirm = "Bekreft";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<script type="text/javascript" src="/public/js/jquery.js"></script>
<script type="text/javascript" src="/public/js/jquery_ui.js"></script>
<link href="/public/css/jquery.ui.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.gomb {
width: 177px;
height: 40px;
padding-bottom: 1px;
font-size: 1.1em;
border: 0px;
float: right;
margin-top: 10px;
margin-bottom: -15px;
}
textarea {
overflow: auto;
}
</style>
<script type="text/javascript" charset="UTF-8">
jQuery(document).ready(function($) {
var ellenorizve = false;
$('#crashform').submit(function() {
//alert("submit volt");
var error = "";
var email = $('#email');
if (email.val() == '') {
error = "Missing e-mail address!\n";
}
// alert(error);
if (ellenorizve) {
//$('#crashform').submit();
} else if (error != "") {
ellenorizve = true;
$('#dialog').dialog('open');
return false;
}
/*else
$('#crashform').submit();*/
});
$('#dialog').dialog({
autoOpen: false,
modal: true,
width: 650,
buttons: {
'<?= $confirm ?>': function() {
myconfirm();
$('#dialog').dialog('close');
}
}
});
function myconfirm() {
ellenorizve = true;
$('#email').val($('#email2').val());
$('#crashform').submit();
}
});
</script>
<?php
//default is english
$text1 = "We are really sorry...";
$text2 = "It seems like ARCHLine.XP has crashed.";
$text3 = "Please take a few moments and describe the error you've just encountered. Thank you!";
$text4 = "Your e-mail:";
$text5 = "If you give us your email we will use this information to keep you informed about the changes and improvements. Thank you!";
$text6 = "Description";
$text7 = "Send report";
$text8 = "Your e-mail address seems to be missing.";
$text9 = "Providing your contact e-mail is not mandatory";
$text10 = "however sometimes we need to learn more about the issue to be able to find a solution. If you kindly provide an e-mail address we can use it to can ask about important details regarding this issue.";
$text11 = "If you decide not to provide your e-mail address, do not worry, please simply press the \"Confirm\" button.";
$text12 = "If you decide to provide your e-mail address, please fill up the following field and press the \"Confirm\" button.";
$text13 = "(This e-mail address will only be used to provide technical support in connection to this specific issue and will not be used for advertising and marketing purposes, except you have already provided the same address for such purposes.)";
if ('hun' == $lang) {
$text1 = "&#336;szint&#233;n sajn&#225;ljuk...";
$text2 = "&#218;gy t&#369;nik az ARCHLine.XP rendellenesen &#225;llt le.";
$text3 = "K&#233;rj&#252;k sz&#225;njon r&#225; egy percet &#233;s ossza meg vel&#252;nk mi t&#246;rt&#233;nt, amikor a hiba jelentkezett. K&#246;zrem&#369;k&#246;d&#233;se sokat seg&#237;t!";
$text4 = "Az &#214;n e-mail c&#237;me:";
$text5 = "A megadott e-mail c&#237;men tudjuk felvenni &#214;nnel a kapcsolatot, ha tov&#225;bbi inform&#225;ci&#243; sz&#252;ks&#233;ges &#233;s ezen tudjuk t&#225;j&#233;koztatni is a fejlem&#233;nyekr&#337;l. K&#246;sz&#246;nj&#252;k!";
$text6 = "A jelens&#233;g le&#237;r&#225;sa";
$text7 = "Hibajelent&#233;s k&#252;ld&#233;se";
$text8 = "&#218;gy t&#369;nik nem adott meg e-mail c&#237;met.";
$text9 = "Az e-mail c&#237;m megad&#225;sa nem k&#246;telez&#337;";
$text10 = "ugyanakkor sz&#225;mos esetben sz&#252;ks&#233;g&#252;nk lehet tov&#225;bbi inform&#225;ci&#243;kra ahhoz, hogy megold&#225;st tal&#225;ljunk. Amennyiben &#250;gy d&#246;nt, hogy megadja az e-mail c&#237;m&#233;t, akkor fel tudjuk venni &#214;nnel a kapcsolatot a rendelleness&#233;ggel kapcsolatos fontos r&#233;szletek miatt.";
$text11 = "Amennyiben nem szeretn&#233; megadni az e-mail c&#237;m&#233;t, semmi gond, egyszer&#369;en csak nyomja meg a \"Meger&#337;s&#237;t\" gombot.";
$text12 = "Amennyiben meg k&#237;v&#225;nja adni e-mail c&#237;m&#233;t, k&#233;rj&#252;k g&#233;pelje az al&#225;bbi mez&#337;be &#233;s nyomja meg a \"Meger&#337;s&#237;t\" gombot.";
$text13 = "(Ezt az e-mail c&#237;met kiz&#225;r&#243;lag az ezzel a konkr&#233;t jelens&#233;ggel kapcsolatos technikai seg&#237;ts&#233;gny&#250;jt&#225;s c&#233;lj&#225;ra haszn&#225;ljuk fel &#233;s nem haszn&#225;ljuk egy&#233;b hirdet&#233;si vagy marketing c&#233;lokra, kiv&#233;ve ha &#214;n ezt az e-mail c&#237;met m&#225;shol ilyen c&#233;llal m&#225;r megadta.)";
} else if ('ita' == $lang) {
$text1 = "Vi chiediamo scusa...";
$text2 = "Sembra che ARCHLine.XP sia terminato in modo inaspettato.";
$text3 = "Vi preghiamo di dedicarci qualche attimo per descrivere il problema riscontrato. Grazie!";
$text4 = "Vostra e-mail:";
$text5 = "Se indicate la vostra email provvederemo a informarvi su eventuali modifiche o miglioramenti. Grazie!";
$text6 = "Descrizione";
$text7 = "Invia report";
$text8 = "Manca l'indirizzo e-mail.";
$text9 = "La fornitura del contatto e-mail non &#232; obbligatoria";
$text10 = "ma talvolta ci &#232; necessario avere ulteriori informazioni per capire e risolvere il problema. Se gentilmente ci fornite l'indirizzo e-mail possiamo utilizzarlo per richiedervi ulteriori dettagli riguardanti questo problema.";
$text11 = "Se non desiderate indicare l'indirizzo e-mail, nessun problema, semplicemente premete il pulsante \"Conferma\".";
$text12 = "Se desiderate indicare l'indirizzo e-mail, scrivetelo nel campo che segue e premete il pulsante \"Conferma\".";
$text13 = "(Questo indirizzo e-mail sar&#224; utilizzato solo per supporto tecnico correlato allo specifico problema e non verr&#224; utilizzato ne ceduto ad altri per fini pubblicitari o marketing, tranne il caso in cui lo stesso indirizzo sia gi&#224; stato fornito per queste ragioni.)";
} else if ('esp' == $lang) {
} else if ('ger' == $lang || 'de-DE' == $lang || 'de-AT' == $lang) {
$text1 = "Bitte entschuldigen Sie...";
$text2 = "So wie es aussieht, wurde ARCHLine.XP unerwartet beendet.";
$text3 = "Bitte nehmen Sie sich einen Moment Zeit, und beschreiben Sie die Schritte welche dazu gef&#252;hrt haben.";
$text4 = "Ihre Email:";
$text5 = "Wenn Sie uns Ihre Email Adresse bekanntgeben, werden wir Sie &#252;ber &#196;nderungen und Fortschritte am Laufenden halten. Danke!";
$text6 = "Beschreibung";
$text7 = "Report abschicken";
$text8 = "Ihre Email Adresse fehlt.";
$text9 = "Die Angabe ist nicht verpflichtend";
$text10 = "aber f&#252;r eventuelle R&#252;ckfragen wichtig. Wenn Sie uns eine Email Adresse mitteilen, so k&#246;nnen wir Sie bei weiteren Fragen zur L&#246;sungsfindung kontaktieren.";
$text11 = "Wenn Sie keine Email Adresse angeben wollen, so klicken Sie einfach auf die \"Best&#228;tigen\" Schaltfl&#228;che.";
$text12 = "Ansonsten geben Sie bitte Ihre Email Adresse im folgenden Feld ein und klicken auf \"Best&#228;tigen\".";
$text13 = "(Diese Email Adresse wird nur zur technischen Unterst&#252;tzung in Bezug auf dieses Ticket und in keinem Fall f&#252;r Werbung oder Marketing verwendet, außer Sie sind mit dieser Adresse bereits f&#252;r solche Dienste gemeldet.)";
} else if ('gre' == $lang) {
$text1 = "&#923;&#965;&#960;&#959;&#973;&#956;&#945;&#963;&#964;&#949;&#32;&#960;&#961;&#945;&#947;&#956;&#945;&#964;&#953;&#954;&#940;...";
$text2 = "&#928;&#945;&#961;&#959;&#965;&#963;&#943;&#945;&#963;&#949;&#32;&#963;&#966;&#940;&#955;&#956;&#945;&#32;&#963;&#964;&#959;&#32;&#65;&#82;&#67;&#72;&#76;&#105;&#110;&#101;&#46;&#88;&#80;&#46;";
$text3 = "&#928;&#945;&#961;&#945;&#954;&#945;&#955;&#959;&#973;&#956;&#949;&#32;&#945;&#966;&#953;&#949;&#961;&#974;&#963;&#964;&#949;&#32;&#955;&#943;&#947;&#945;&#32;&#955;&#949;&#960;&#964;&#940;&#32;&#954;&#945;&#953;&#32;&#957;&#945;&#32;&#960;&#949;&#961;&#953;&#947;&#961;&#940;&#968;&#949;&#964;&#949;&#32;&#964;&#959;&#32;&#963;&#966;&#940;&#955;&#956;&#945;&#32;&#960;&#959;&#965;&#32;&#956;&#972;&#955;&#953;&#962;&#32;&#963;&#965;&#957;&#940;&#957;&#964;&#951;&#963;&#949;&#46;&#32;&#917;&#965;&#967;&#945;&#961;&#953;&#963;&#964;&#959;&#973;&#956;&#949;&#33;";
$text4 = "&#932;&#959;&#32;&#101;&#45;&#109;&#97;&#105;&#108;&#32;&#963;&#945;&#962;&#58;";
$text5 = "&#913;&#957;&#32;&#956;&#945;&#962;&#32;&#948;&#974;&#963;&#949;&#964;&#949;&#32;&#964;&#951;&#957;&#32;&#951;&#955;&#949;&#954;&#964;&#961;&#959;&#957;&#953;&#954;&#942;&#32;&#963;&#945;&#962;&#32;&#948;&#953;&#949;&#973;&#952;&#965;&#957;&#963;&#951;&#32;&#101;&#45;&#109;&#97;&#105;&#108;&#44;&#32;&#952;&#945;&#32;&#964;&#951;&#32;&#967;&#961;&#951;&#963;&#953;&#956;&#959;&#960;&#959;&#953;&#942;&#963;&#959;&#965;&#956;&#949;&#32;&#947;&#953;&#945;&#32;&#957;&#945;&#32;&#963;&#945;&#962;&#32;&#949;&#957;&#951;&#956;&#949;&#961;&#974;&#957;&#959;&#965;&#956;&#949;&#32;&#947;&#953;&#945;&#32;&#964;&#953;&#962;&#32;&#945;&#955;&#955;&#945;&#947;&#941;&#962;&#32;&#954;&#945;&#953;&#32;&#964;&#953;&#962;&#32;&#946;&#949;&#955;&#964;&#953;&#974;&#963;&#949;&#953;&#962;&#46;&#32;&#917;&#965;&#967;&#945;&#961;&#953;&#963;&#964;&#959;&#973;&#956;&#949;&#33;";
$text6 = "&#928;&#949;&#961;&#953;&#947;&#961;&#945;&#966;&#942;";
$text7 = "&#913;&#960;&#959;&#963;&#964;&#959;&#955;&#942;&#32;&#945;&#957;&#945;&#966;&#959;&#961;&#940;&#962;";
$text8 = "&#934;&#945;&#943;&#957;&#949;&#964;&#945;&#953;&#32;&#957;&#945;&#32;&#955;&#949;&#943;&#960;&#949;&#953;&#32;&#951;&#32;&#948;&#953;&#949;&#973;&#952;&#965;&#957;&#963;&#951;&#32;&#101;&#45;&#109;&#97;&#105;&#108;&#46;";
$text9 = "&#919;&#32;&#960;&#945;&#961;&#959;&#967;&#942;&#32;&#964;&#951;&#962;&#32;&#951;&#955;&#949;&#954;&#964;&#961;&#959;&#957;&#953;&#954;&#942;&#32;&#963;&#945;&#962;&#32;&#949;&#960;&#945;&#966;&#942;&#962;&#32;&#948;&#949;&#957;&#32;&#949;&#943;&#957;&#945;&#953;&#32;&#965;&#960;&#959;&#967;&#961;&#949;&#969;&#964;&#953;&#954;&#942;";
$text10 = "&#969;&#963;&#964;&#972;&#963;&#959;&#32;&#956;&#949;&#961;&#953;&#954;&#941;&#962;&#32;&#966;&#959;&#961;&#941;&#962;&#32;&#967;&#961;&#949;&#953;&#940;&#950;&#949;&#964;&#945;&#953;&#32;&#957;&#945;&#32;&#956;&#940;&#952;&#949;&#964;&#949;&#32;&#960;&#949;&#961;&#953;&#963;&#963;&#972;&#964;&#949;&#961;&#945;&#32;&#963;&#967;&#949;&#964;&#953;&#954;&#940;&#32;&#956;&#949;&#32;&#964;&#959;&#32;&#952;&#941;&#956;&#945;&#32;&#947;&#953;&#945;&#32;&#957;&#945;&#32;&#956;&#960;&#959;&#961;&#941;&#963;&#949;&#964;&#949;&#32;&#957;&#945;&#32;&#946;&#961;&#949;&#943;&#964;&#949;&#32;&#956;&#953;&#945;&#32;&#955;&#973;&#963;&#951;&#46;&#32;&#913;&#957;&#32;&#941;&#967;&#949;&#964;&#949;&#32;&#964;&#951;&#957;&#32;&#954;&#945;&#955;&#959;&#963;&#973;&#957;&#951;&#32;&#957;&#945;&#32;&#956;&#945;&#962;&#32;&#948;&#974;&#963;&#949;&#964;&#949;&#32;&#956;&#953;&#945;&#32;&#948;&#953;&#949;&#973;&#952;&#965;&#957;&#963;&#951;&#32;&#101;&#45;&#109;&#97;&#105;&#108;&#44;&#32;&#952;&#945;&#32;&#956;&#960;&#959;&#961;&#959;&#973;&#963;&#945;&#956;&#949;&#32;&#957;&#945;&#32;&#964;&#951;&#957;&#32;&#967;&#961;&#951;&#963;&#953;&#956;&#959;&#960;&#959;&#953;&#942;&#963;&#959;&#965;&#956;&#949;&#32;&#947;&#953;&#945;&#32;&#957;&#945;&#32;&#963;&#945;&#962;&#32;&#961;&#969;&#964;&#942;&#963;&#959;&#965;&#956;&#949;&#32;&#954;&#940;&#964;&#953;&#32;&#963;&#967;&#949;&#964;&#953;&#954;&#972;&#32;&#956;&#949;&#32;&#945;&#965;&#964;&#972;&#32;&#964;&#959;&#32;&#952;&#941;&#956;&#945;&#46;";
$text11 = "&#913;&#957;&#32;&#948;&#949;&#957;&#32;&#949;&#960;&#953;&#952;&#965;&#956;&#949;&#943;&#964;&#949;&#32;&#957;&#945;&#32;&#956;&#945;&#962;&#32;&#948;&#974;&#963;&#949;&#964;&#949;&#32;&#964;&#951;&#32;&#948;&#953;&#949;&#973;&#952;&#965;&#957;&#963;&#951;&#32;&#101;&#45;&#109;&#97;&#105;&#108;&#32;&#963;&#945;&#962;&#44;&#32;&#956;&#951;&#957;&#32;&#945;&#957;&#951;&#963;&#965;&#967;&#949;&#943;&#964;&#949;&#44;&#32;&#945;&#960;&#955;&#940;&#32;&#960;&#945;&#964;&#942;&#963;&#964;&#949;&#32;&#964;&#959;&#32;&#954;&#959;&#965;&#956;&#960;&#943; \"&#917;&#960;&#953;&#946;&#949;&#946;&#945;&#943;&#969;&#963;&#951;\".";
$text12 = "&#913;&#957;&#32;&#945;&#960;&#959;&#966;&#945;&#963;&#943;&#963;&#949;&#964;&#949;&#32;&#957;&#945;&#32;&#956;&#945;&#962;&#32;&#948;&#974;&#963;&#949;&#964;&#949;&#32;&#964;&#951;&#32;&#948;&#953;&#949;&#973;&#952;&#965;&#957;&#963;&#951;&#32;&#101;&#45;&#109;&#97;&#105;&#108;&#32;&#963;&#945;&#962;&#44;&#32;&#960;&#945;&#961;&#945;&#954;&#945;&#955;&#959;&#973;&#956;&#949;&#32;&#963;&#965;&#956;&#960;&#955;&#951;&#961;&#974;&#963;&#964;&#949;&#32;&#964;&#959;&#32;&#960;&#945;&#961;&#945;&#954;&#940;&#964;&#969;&#32;&#960;&#949;&#948;&#943;&#959;&#32;&#954;&#945;&#953;&#32;&#960;&#945;&#964;&#942;&#963;&#964;&#949;&#32;&#964;&#959;&#32;&#954;&#959;&#965;&#956;&#960;&#943; \"&#917;&#960;&#953;&#946;&#949;&#946;&#945;&#943;&#969;&#963;&#951;\".";
$text13 = "(&#913;&#965;&#964;&#942;&#32;&#951;&#32;&#948;&#953;&#949;&#973;&#952;&#965;&#957;&#963;&#951;&#32;&#101;&#45;&#109;&#97;&#105;&#108;&#32;&#952;&#945;&#32;&#967;&#961;&#951;&#963;&#953;&#956;&#959;&#960;&#959;&#953;&#951;&#952;&#949;&#943;&#32;&#956;&#972;&#957;&#959;&#32;&#947;&#953;&#945;&#32;&#964;&#951;&#957;&#32;&#960;&#945;&#961;&#959;&#967;&#942;&#32;&#964;&#949;&#967;&#957;&#953;&#954;&#942;&#962;&#32;&#965;&#960;&#959;&#963;&#964;&#942;&#961;&#953;&#958;&#951;&#962;&#32;&#963;&#949;&#32;&#963;&#967;&#941;&#963;&#951;&#32;&#956;&#949;&#32;&#964;&#959;&#32;&#963;&#965;&#947;&#954;&#949;&#954;&#961;&#953;&#956;&#941;&#957;&#959;&#32;&#952;&#941;&#956;&#945;&#32;&#954;&#945;&#953;&#32;&#948;&#949;&#957;&#32;&#952;&#945;&#32;&#967;&#961;&#951;&#963;&#953;&#956;&#959;&#960;&#959;&#953;&#951;&#952;&#949;&#943;&#32;&#947;&#953;&#945;&#32;&#963;&#954;&#959;&#960;&#959;&#973;&#962;&#32;&#948;&#953;&#945;&#966;&#942;&#956;&#953;&#963;&#951;&#962;&#32;&#954;&#945;&#953;&#32;&#956;&#940;&#961;&#954;&#949;&#964;&#953;&#957;&#947;&#954;&#44;&#32;&#949;&#954;&#964;&#972;&#962;&#32;&#949;&#940;&#957;&#32;&#949;&#963;&#949;&#943;&#962;&#32;&#964;&#951;&#957;&#32;&#941;&#967;&#949;&#964;&#949;&#32;&#942;&#948;&#951;&#32;&#960;&#945;&#961;&#940;&#963;&#967;&#949;&#953;&#32;&#964;&#951;&#957;&#32;&#943;&#948;&#953;&#945;&#32;&#948;&#953;&#949;&#973;&#952;&#965;&#957;&#963;&#951;&#32;&#947;&#953;&#945;&#32;&#964;&#941;&#964;&#959;&#953;&#959;&#965;&#962;&#32;&#963;&#954;&#959;&#960;&#959;&#973;&#962;&#46;)";
} else if ('cz' == $lang) {
$text1 = "Je n&#225;m opravdu l&#237;to ...";
$text2 = "Vypad&#225; to, &#382;e se ARCHLine.XP zhroutil.";
$text3 = "V&#283;nujte n&#225;m pros&#237;m chvili&#269;ku a popi&#353;te chybu, se kterou jste pr&#225;v&#283; setkali. D&#283;kujeme!";
$text4 = "V&#225;&#353; e-mail:";
$text5 = "Pokud n&#225;m poskytnete v&#225;&#353; e-mail, pou&#382;ijeme tuto informaci, abychom v&#225;s pr&#367;b&#283;&#382;n&#283; informovali o zm&#283;n&#225;ch a vylep&#353;en&#237;ch. D&#283;kujeme!";
$text6 = "Popis";
$text7 = "Poslat zpr&#225;vu";
$text8 = "Zd&#225; se, &#382;e sch&#225;z&#237; va&#353;e e-mailov&#225; adresa.";
$text9 = "Poskytnut&#237; va&#353;eho kontaktn&#237;ho e-mailu nen&#237; povinn&#233;";
$text10 = "ale n&#283;kdy se mus&#237;me dozv&#283;d&#283;t v&#237;ce o tomto probl&#233;mu, aby bylo mo&#382;n&#233; naj&#237;t &#345;e&#353;en&#237;. Kdy&#382; budete tak laskav&#237; a poskytnete n&#225;m va&#353;i e-mailovou adresu, mohli bychom ji pou&#382;&#237;t k dotazov&#225;n&#237; na d&#367;le&#382;it&#233; detaily t&#253;kaj&#237;c&#237;ch se tohoto probl&#233;mu.";
$text11 = "Pokud se rozhodnete neposkytnout svoji e-mailovou adresu, bez obav pros&#237;m jednodu&#353;e stiskn&#283;te tla&#269;&#237;tko \"Potvrdit\".";
$text12 = "Pokud se rozhodnete poskytnout svoji e-mailovou adresu, vypl&#328;te pros&#237;m n&#225;sleduj&#237;c&#237; pol&#237;&#269;ko a stiskn&#283;te tla&#269;&#237;tko \"Potvrdit\".";
$text13 = "(Tato emailov&#225; adresa bude pou&#382;ita pouze k poskytov&#225;n&#237; technick&#233; podpory v souvislosti s t&#237;mto konkr&#233;tn&#237;m probl&#233;mem a nebude pou&#382;ita pro reklamn&#237; a marketingov&#233; ú&#269;ely, mimo p&#345;&#237;pad&#367;, kdy jste ji&#382; poskytli stejnou adresu pro tyto &#250;&#269;ely.)";
} else if ('pol' == $lang) {
} else if ('cr' == $lang) {
$text1 = "Ispri&#269;avamo se...";
$text2 = "&#268;ini se da je ARCHLine.XP prestao s radom.";
$text3 = "Molim Vas, odvojite nekoliko trenutaka i opi&#353;ite gre&#353;ku na koju ste upravo nai&#353;li. Hvala Vam!";
$text4 = "Va&#353; e-mail:";
$text5 = "Va&#353;u e-mail adresu koristit &#263;emo kako bi vas obavijestili o promjenama i pobolj&#353;anjima. Hvala Vam!";
$text6 = "Opis";
$text7 = "Po&#353;alji izvje&#353;&#263;e";
$text8 = "&#268;ini se da Va&#353;a e-mail adresa nedostaje.";
$text9 = "Pružanje kontakta e-mail adrese nije obavezno";
$text10 = "no ponekad nam je potrebno vi&#353;e informacija o problemu kako bi mogli prona&#263;i rje&#353;enje. Molimo Vas da nam pružite Va&#353;u e-mail adresu kako bi je mogli koristiti za pitanja o važnim detaljima vezana uz ovaj problem.";
$text11 = "Ako odlu&#269;ite da nam ne želite dati svoju e-mail adresu, ne brinite, molimo Vas samo pritisnite gumb \"Potvrdi\".";
$text12 = "Ako ste odlu&#269;ili dati nam svoju e-mail adresu, molimo Vas da ispunite sljede&#263;e polje i pritisnite gumb \"Potvrdi\".";
$text13 = "(Ova e-mail adresa &#263;e se koristiti samo za pružanje tehni&#269;ke podr&#353;ke vezane uz ovaj specifi&#269;ni problem i ne&#263;e se koristiti za ogla&#353;avanje i marketin&#353;ke svrhe, osim ako ste ve&#263; dali istu adresu za takve svrhe.)";
} else if ('nl' == $lang) {
} else if ('kor' == $lang) {
$text1 = "&#51060;&#47088;&#32;&#51068;&#51060;&#32;&#48268;&#50612;&#51652;&#32;&#44163;&#50640;&#32;&#45824;&#54644;&#32;&#45824;&#45800;&#55176;&#32;&#50976;&#44048;&#51077;&#45768;&#45796;&#46;";
$text2 = "&#65;&#82;&#67;&#72;&#76;&#105;&#110;&#101;&#46;&#88;&#80;&#44032;&#32;&#52649;&#46028;&#32;&#54620;&#32;&#44163;&#32;&#44057;&#49845;&#45768;&#45796;&#46;";
$text3 = "&#51104;&#49884;&#32;&#49884;&#44036;&#51012;&#45236;&#50612;&#32;&#48169;&#44552;&#32;&#47564;&#45212;&#32;&#50724;&#47448;&#47484;&#32;&#49444;&#47749;&#54616;&#49901;&#49884;&#50724;&#46;&#32;&#44256;&#47577;&#49845;&#45768;&#45796;&#33;";
$text4 = "&#44480;&#54616;&#51032;&#32;&#101;&#45;&#109;&#97;&#105;&#108;&#58;";
$text5 = "&#51060;&#47700;&#51068;&#51012;&#32;&#48372;&#45236;&#32;&#51452;&#49884;&#47732;&#44;&#32;&#51060;&#32;&#51221;&#48372;&#47484;&#32;&#49324;&#50857;&#54616;&#50668;&#32;&#48320;&#44221;&#32;&#49324;&#54637;&#32;&#48143;&#32;&#44060;&#49440;&#32;&#49324;&#54637;&#50640;&#32;&#45824;&#54620;&#32;&#51221;&#48372;&#47484;&#32;&#50508;&#47140;&#32;&#46300;&#47532;&#44192;&#49845;&#45768;&#45796;&#46;&#32;&#45824;&#45800;&#55176;&#32;&#44048;&#49324;&#54633;&#45768;&#45796;&#33;";
$text6 = "&#50724;&#47448;&#45236;&#50857;";
$text7 = "&#48372;&#44256;&#49436;&#32;&#48372;&#45236;&#44592;";
$text8 = "&#44480;&#54616;&#51032;&#32;&#51204;&#51088;&#32;&#47700;&#51068;&#32;&#51452;&#49548;&#44032;&#32;&#45572;&#46973;&#32;&#46108;&#32;&#44163;&#32;&#44057;&#49845;&#45768;&#45796;&#46;";
$text9 = "&#51204;&#51088;&#47700;&#51068;&#51012;&#32;&#51228;&#44277;&#54616;&#45716;&#32;&#44163;&#51008;&#32;&#54596;&#49688;&#45716;&#32;&#50500;&#45768;&#51648;&#47564;&#32;&#46412;&#47196;&#45716;&#32;&#54644;&#44208;&#52293;&#51012;&#32;&#52286;&#51012;&#32;&#49688;&#32;&#51080;&#46020;&#47197;&#32;&#47928;&#51228;&#50640;&#32;&#45824;&#54644;&#32;&#45908;&#32;&#51088;&#49464;&#55176;&#32;&#50508;&#50500;&#50556;&#54633;&#45768;&#45796;&#46;";
$text10 = "&#52828;&#51208;&#54616;&#44172;&#32;&#50864;&#47532;&#44032;&#32;&#49324;&#50857;&#54624;&#32;&#49688;&#51080;&#45716;&#32;&#51204;&#51088;&#32;&#47700;&#51068;&#32;&#51452;&#49548;&#47484;&#32;&#51228;&#44277;&#54616;&#47732;&#51060;&#32;&#47928;&#51228;&#50752;&#32;&#44288;&#47144;&#46108;&#32;&#51473;&#50836;&#54620;&#32;&#49464;&#48512;&#32;&#51221;&#48372;&#47484;&#32;&#50836;&#52397;&#54624;&#32;&#49688;&#32;&#51080;&#49845;&#45768;&#45796;&#46;";
$text11 = "&#51204;&#51088;&#32;&#47700;&#51068;&#32;&#51452;&#49548;&#47484;&#32;&#51228;&#44277;&#54616;&#51648;&#32;&#50506;&#51004;&#47140;&#47732;&#32;\"&#54869;&#51064;\"&#48260;&#53948;&#51012;&#32;&#45572;&#47476;&#49901;&#49884;&#50724;&#46;";
$text12 = "&#51204;&#51088;&#32;&#47700;&#51068;&#32;&#51452;&#49548;&#47484;&#32;&#51228;&#44277;&#54616;&#44592;&#47196;&#32;&#44208;&#51221;&#54620;&#32;&#44221;&#50864;&#44;&#32;&#45796;&#51020;&#32;&#54596;&#46300;&#47484;&#32;&#52292;&#50864;&#44256;&#32;\"&#54869;&#51064;\"&#48260;&#53948;&#51012;&#32;&#45572;&#47476;&#49901;&#49884;&#50724;&#46;";
$text13 = "(&#51060;&#32;&#51204;&#51088;&#32;&#47700;&#51068;&#32;&#51452;&#49548;&#45716;&#51060;&#32;&#53945;&#51221;&#32;&#47928;&#51228;&#50752;&#32;&#44288;&#47144;&#54616;&#50668;&#32;&#44592;&#49696;&#32;&#51648;&#50896;&#51012;&#32;&#51228;&#44277;&#54616;&#45716;&#32;&#45936;&#50640;&#47564;&#32;&#49324;&#50857;&#46104;&#47728;&#32;&#44305;&#44256;&#32;&#48143;&#32;&#47560;&#52992;&#54021;&#32;&#50857;&#46020;&#47196;&#45716;&#32;&#49324;&#50857;&#46104;&#51648;&#32;&#50506;&#49845;&#45768;&#45796;&#46;&#32;&#45800;&#44;&#32;&#44480;&#54616;&#45716;&#32;&#51060;&#48120;&#32;&#44536;&#47084;&#54620;&#32;&#51452;&#49548;&#47196;&#32;&#46041;&#51068;&#54620;&#32;&#51452;&#49548;&#47484;&#32;&#51228;&#44277;&#32;&#54620;&#32;&#44163;&#51077;&#45768;&#45796;&#46;)";
} else if ('chn' == $lang) {
$text1 = "我们真的很抱歉...";
$text2 = "看来 浩辰BIM 已崩溃。";
$text3 = "请花几分钟时间描述一下您刚刚遇到的错误。感谢您!";
$text4 = "您的电子邮件:";
$text5 = "如果您向我们提供您的电子邮件,我们会利用这些信息让您了解相关变更和改进情况。感谢您!";
$text6 = "描述";
$text7 = "发送报告";
$text8 = "您的电子邮件地址似乎缺失了。";
$text9 = "提供您的电子邮箱并非强制要求";
$text10 = "不过有时我们需要了解有关此问题的更多信息才能找到解决方案。如果您能够提供一个电子邮箱地址,我们可以针对与该问题相关的重要细节向您询问。";
$text11 = "如果您决定不提供电子邮箱地址,请直接按下 “确认” 按钮即可。";
$text12 = "如果您决定提供电子邮箱地址,请填写以下字段并按下 “确认” 按钮。";
$text13 = "(此电子邮箱地址仅会用于就该特定问题提供技术支持,不会用于广告和营销目的,除非您已为这类目的提供过相同地址 。 ";
} else if ('por' == $lang) {
} else if ('nor' == $lang) {
$text1 = "Opps!";
$text2 = "Dette var flaut, det ser ut som ARCHLine har krasjet.";
$text3 = "Kan du beskrive kort hva som hendte. Takk!";
$text4 = "Din e-mail:";
$text5 = "Hvis du oppgir din e-post vil vi holde deg oppdatert om endringer og forbedringer. Takk!";
$text6 = "Beskrivelse";
$text7 = "Sende rapport";
$text8 = "Det ser ut som vi mangler din e-post.";
$text9 = "Dette er ikke obligatorisk men";
$text10 = "noen ganger trenger vi litt mere informasjon om saken for &#229; l&#248;se problemet. Hvis du kan oppgi din e-post adresse kan vi sp&#248;rre deg om viktige detaljer om saken.";
$text11 = "Det er ingen problem om du ikke vil gi oss din e-post adresse, bare klikk \"Bekreft\" knappen.";
$text12 = "Hvis du vil oppgi din e-post, fyll inn f&#248;lgene felt og klikk \"Bekreft\" knappen.";
$text13 = "(Denne e-post vil kun brukes til kontakt fra teknisk avdeling i forbindelse med saken. Den vil IKKE brukes til reklame eller markedsf&#248;rings form&#229;l med unntak av der du har tidligere oppgitt samme e-post til slik.)";
}
?>
</head>
<body>
<div style="width: 694px; font-family: Arial,Helvetica,sans-serif; font-size: 16px;">
<div style="background: url('/public/img/bg/crash/box_main_top.png') no-repeat; width: 100%; height: 14px;"></div>
<div style="background: url('/public/img/bg/crash/box_main_repeat.png') repeat-y; width: 644px; padding: 0 30px 0 20px;">
<h1 style="margin: 0px;"><?= $text1 ?></h1>
<p style="margin-bottom: 0px;"><?= $text2 ?> <?= $text3 ?><br /><br /></p>
<form action="/maintenance/crash.php" method="post" id="crashform">
<?= $text4 ?> <input type="text" name="email" id="email" value="" style="width: 200px;" /><br />
<span style="font-size: 0.8em"><?= $text5 ?></span><br />
<input type="hidden" name="guid" value="<?= $guid ?>" />
<input type="hidden" name="newid" value="<?= $newID ?>" />
<input type="hidden" name="language" value="<?= $lang ?>" />
<input type="hidden" name="serial" value="<?= $serial ?>" />
<input type="hidden" name="rgn" value="<?= $rgn ?>" />
<?= $text6 ?>: <br />
<textarea name="info" rows="15" cols="50" style="width: 100%; height: 150px;"></textarea>
<input type="submit" class="gomb" value="<?= $text7 ?>" style="background: url(/public/img/bg/crash/button_send.png); color: #FFFFFF; margin-bottom: 0px;" />
<div style="clear: both; height: 1px; margin: 0px; padding: 0px; font-size: 1px;"></div>
</form>
</div>
<div style="background: url('/public/img/bg/crash/box_main_bottom.png') no-repeat; width: 100%; height: 14px;"></div>
<img src="/public/img/bg/crash/logo.png" style="margin: 5px 15px;" />
<div id="dialog" style="display: none; font-size: 16px;" title="E-mail">
<?= $text8 ?> <strong><?= $text9 ?></strong>, <?= $text10 ?><br />
<br />
<?= $text11 ?><br />
<?= $text12 ?><br />
<br />
<input type="text" name="email2" id="email2" />
<br />
<br />
<?= $text13 ?>
</div>
</div>
</body>
</html>
<?php
}
?>

View File

@ -1,488 +0,0 @@
<?php
error_reporting(E_ERROR | E_PARSE);
if (!class_exists('Database')) require_once("common_cadline_libraries/crm_database.class.php");
session_start();
include('config.php');
if (isset($_POST['submit'])) {
if ($_POST['modId']) {
$id = $_POST['modId'];
$text = $_POST['modText'];
$updateUserQuery = "UPDATE `www_archline_hu`.`crash` SET komment = ? WHERE id = ? LIMIT 1;";
Database::getInstance()->query($updateUserQuery, array('si', $text, $id));
}
if ($_POST['listaid'] && isset($_POST['CbBoxValue'])) {
$listaid = substr($_POST['listaid'], 5);
$updateUserQuery = "UPDATE `www_archline_hu`.`crash` SET eredmeny = ? WHERE id = ? LIMIT 1;";
Database::getInstance()->query($updateUserQuery, array('ii', $_POST['CbBoxValue'], $listaid));
}
}
function downloadFile($filename)
{
if ($f = fopen($filename, "rb")) {
$content_len = (int) filesize($filename);
//@ini_set('zlib.output_compression', 'Off');
header('Pragma: public');
//header('Last-Modified: '.gmdate('D, d M Y H(idea)(worry)') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Content-Transfer-Encoding: none');
header('Content-Type: plain/text');
header('Content-Disposition: inline; filename="' . $filename . '"');
header("Content-length: $content_len");
while (!feof($f)) {
echo fread($f, 2 << 20);
}
fclose($f);
} else {
print "error opening file";
}
exit();
}
if (isset($_GET) && !empty($_GET)) {
$filepath = "/home/vendeg/crash/";
$filepath .= $_GET["guid"];
if (!file_exists($filepath))
$filepath = "../webdav/crash/" . $_GET['guid'];
downloadFile($filepath);
} else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<style>
#submit {
position: fixed;
right: 1%;
top: 1%;
}
.tr0 {
background-color: white;
}
.tr1 {
background-color: #33cc33;
}
.tr2,
.tr5,
.tr6 {
background-color: #ff5050;
}
.tr3 {
background-color: #cccccc;
}
.tr4 {
background-color: #99ff33;
}
.tr7 {
background-color: #808080;
}
.ta0 {
background-color: white;
}
.ta1 {
background-color: #33cc33;
}
.ta2,
.ta5,
.ta6 {
background-color: #ff5050;
}
.ta3 {
background-color: #cccccc;
}
.ta4 {
background-color: #99ff33;
}
.ta7 {
background-color: #808080;
}
</style>
<script>
var textId;
var CbBox;
function valtoztat(id) {
textId = id;
document.getElementById("modId").value = id;
}
function textChange() {
var x = document.getElementById(textId).value;
document.getElementById("modText").value = x;
var cbV = document.getElementById(CbBox).selectedIndex;
document.getElementById("CbBoxValue").value = cbV;
}
function cbboxid(CbId) {
var cbV = document.getElementById(CbId).selectedIndex;
document.getElementById("CbBoxValue").value = cbV;
document.getElementById("listaid").value = CbId;
CbBox = CbId;
}
</script>
</head>
<body>
<?php
$V0 = "Nem feldolgozott";
$V1 = "Javítva";
$V2 = "Nem debuggolható";
$V3 = "Nem értelmezhető";
$V4 = "Előzőleg javított";
$V5 = "Nem reprodukálható";
$V6 = "Nem javítható";
$V7 = "Nem feldolgozandó";
$V8 = "Mind";
if (isset($_POST['datemin'])) {
$_SESSION["mindate"] = $_POST['datemin'];
$_SESSION["maxdate"] = $_POST['datemax'];
$_SESSION["lista"] = $_POST['lista'];
$_SESSION['product'] = $_POST['product'];
$_SESSION['prod'] = $_POST['prod'];
}
$maxdate = date("Y-m-d");
$mindate = date("Y-m-d", strtotime("-5 days"));
echo '<form method="post" action="">';
if (isset($_SESSION["maxdate"]) || isset($_SESSION["mindate"]) || isset($_SESSION["lista"])) {
echo 'Dátum szűrés<br /> <input type="date" name="datemin" id="datemin" value="' . $_SESSION["mindate"] . '">-tól &nbsp;&nbsp;&nbsp; <input type="date" name="datemax" id="datemax" value="' . $_SESSION["maxdate"] . '">-ig';
} else {
echo 'Dátum szűrés<br /> <input type="date" name="datemin" id="datemin" value="' . $mindate . '">-tól &nbsp;&nbsp;&nbsp; <input type="date" name="datemax" id="datemax" value="' . $maxdate . '">-ig';
}
?>
<br /><br />
Eredmény szűrő:<br />
<select name="lista">
<option value="0" <?php if (isset($_SESSION['lista']) && $_SESSION['lista'] == "0") echo ' selected'; ?>><?php echo $V0; ?></option>
<option value="1" <?php if (isset($_SESSION['lista']) && $_SESSION['lista'] == "1") echo ' selected'; ?>><?php echo $V1; ?></option>
<option value="2" <?php if (isset($_SESSION['lista']) && $_SESSION['lista'] == "2") echo ' selected'; ?>><?php echo $V2; ?></option>
<option value="3" <?php if (isset($_SESSION['lista']) && $_SESSION['lista'] == "3") echo ' selected'; ?>><?php echo $V3; ?></option>
<option value="4" <?php if (isset($_SESSION['lista']) && $_SESSION['lista'] == "4") echo ' selected'; ?>><?php echo $V4; ?></option>
<option value="5" <?php if (isset($_SESSION['lista']) && $_SESSION['lista'] == "5") echo ' selected'; ?>><?php echo $V5; ?></option>
<option value="6" <?php if (isset($_SESSION['lista']) && $_SESSION['lista'] == "6") echo ' selected'; ?>><?php echo $V6; ?></option>
<option value="7" <?php if (isset($_SESSION['lista']) && $_SESSION['lista'] == "7") echo ' selected'; ?>><?php echo $V7; ?></option>
<option value="%" <?php if (isset($_SESSION['lista']) && $_SESSION['lista'] == "%") echo ' selected'; ?>><?php echo $V8; ?></option>
</select>
<select name="product">
<option value="0" <?php if (isset($_SESSION['product']) && $_SESSION['product'] == "0") echo ' selected'; ?>>Mind</option>
<option value="1" <?php if (isset($_SESSION['product']) && $_SESSION['product'] == "1") echo ' selected'; ?>>ARCHLine.XP</option>
<option value="2" <?php if (isset($_SESSION['product']) && $_SESSION['product'] == "2") echo ' selected'; ?>>LIVE</option>
</select>
<select name="prod">
<option value="" <?php if (isset($_SESSION['prod']) && $_SESSION['prod'] == "") echo ' selected'; ?>>Mind</option>
<option value="AL" <?php if (isset($_SESSION['prod']) && $_SESSION['prod'] == "AL") echo ' selected'; ?>>ARCHLine.XP</option>
<option value="Render" <?php if (isset($_SESSION['prod']) && $_SESSION['prod'] == "Render") echo ' selected'; ?>>Render</option>
</select>
<br /><br />
<input type="submit" value="Szűrés">
<br /><br />
</form>
<?php
$bind = '';
$query = "SELECT * FROM `www_archline_hu`.`crash` WHERE 1 ";
$feltetel = array();
if (isset($_POST['datemin'])) {
array_push($feltetel, $_POST['datemin']);
$query .= "AND left(datum, 10) >= ? ";
$bind .= 's';
}
if (isset($_POST['datemax'])) {
array_push($feltetel, $_POST['datemax']);
$query .= "AND left(datum, 10) <= ? ";
$bind .= 's';
}
if (isset($_POST['lista']) && $_POST['lista'] != "%") {
array_push($feltetel, $_POST['lista']);
$query .= "AND eredmeny = ? ";
$bind .= 'i';
}
if (isset($_POST['prod']) && $_POST['prod'] != "") {
array_push($feltetel, $_POST['prod']);
$query .= "AND prod = ? ";
$bind .= 's';
}
$query .= "ORDER BY id DESC LIMIT 500;";
array_unshift($feltetel, $bind);
Database::getInstance()->query($query, $feltetel);
$results = Database::getInstance()->fetchAssoc();
print "<form method='post' action='' onsubmit='textChange()'>";
print "<table border = 1>";
print "<tr>";
print "<th>Email</th>";
print "<th>Üzenet</th>";
print "<th>Dátum</th>";
print "<th>Dmp fájl</th>";
print "<th>Info fájl</th>";
print "<th>Crash fájl</th>";
print "<th>Megjegyzés</th>";
print "<th>Eredmény</th>";
print "</tr>";
foreach ($results as $result) {
$r = (object)$result;
$filepathFtp = "/home/vendeg/crash/";
$filepathFtp .= $r->guid;
$filepathFtp .= ".DMP";
$filepathWebdav = "../webdav/crash/";
$filepathWebdav .= $r->guid;
$filepathWebdav .= ".DMP";
$crashFile = "../webdav/crash/" . $r->guid . ".crh";
if (!file_exists($filepathFtp) && !file_exists($filepathWebdav) && !file_exists($crashFile))
continue;
print "<tr class='tr" . $r->eredmeny . "'>";
print "<td>";
print $r->email;
print "</td>";
print "<td style='width:300px'>";
print $r->info;
print "</td>";
print "<td>";
//print substr($r->datum,0,10);
print $r->datum;
print "</td>";
print "<td>";
if (file_exists($filepathFtp) || file_exists($filepathWebdav)) {
echo '<a href="https://archline.hu/crashadmin/' . $r->guid . '.DMP' . '">' . $r->guid . '</a>';
}
print "</td>";
print "<td>";
$infoPath = '/home/vendeg/crash/' . $r->guid . '.TXT';
$infoPathWebdav = '../webdav/crash/' . $r->guid . '.TXT';
$logPath = '/home/vendeg/crash/' . $r->guid . '.LOG';
$logPathWebdav = '../webdav/crash/' . $r->guid . '.LOG';
$crashPath = '../webdav/crash/' . $r->guid . '.crh';
$logExtension = '.LOG';
$infoExtension = '.TXT';
$crashExtension = '.crh';
if (!file_exists($infoPath) && !file_exists($infoPathWebdav)) {
$infoPath = '/home/vendeg/crash/' . $r->guid . '.XML';
$infoExtension = '.XML';
}
if (file_exists($infoPath) || file_exists($infoPathWebdav)) {
echo '<a href="https://archline.hu/crashadmin/' . $r->guid . $infoExtension . '">Info</a>';
}
if (file_exists($logPath) || file_exists($logPathWebdav)) {
echo ' <a href="https://archline.hu/crashadmin/' . $r->guid . $logExtension . '">Log</a>';
}
if (file_exists($infoPath)) {
$file = '/home/vendeg/crash/' . $r->guid . '.TXT';
if (!file_exists($file))
$file = $infoPathWebdav;
$searchfor = 'developer';
$contents = file_get_contents($file);
$pattern = preg_quote($searchfor, '/');
$pattern = "/^.*$pattern.*\$/m";
if (preg_match_all($pattern, $contents, $matches))
echo "developer";
$searchfor = 'Product: render';
$contents = file_get_contents($file);
$pattern = preg_quote($searchfor, '/');
$pattern = "/^.*$pattern.*\$/m";
if (preg_match_all($pattern, $contents, $matches)) {
echo "render";
}
}
print "</td>";
print "<td>";
if (file_exists($crashPath)) {
echo ' <a href="https://partners.staging.cadline.hu/softwarestatistic/crashReport/' . $r->guid . '" target="_blank">Crash</a>';
}
print "</td>";
print "<td>";
echo "<textarea rows='2' cols='60' class='ta" . $r->eredmeny . "' id='" . $r->id . "' onClick='valtoztat(this.id)'>" . $r->komment . "</textarea>";
print "</td>";
print "<td>";
switch ($r->eredmeny) {
case '0':
echo '
<select id="lista' . $r->id . '" onchange="cbboxid(this.id)">
<option value="0" selected>' . $V0 . '</option>
<option value="1">' . $V1 . '</option>
<option value="2">' . $V2 . '</option>
<option value="3">' . $V3 . '</option>
<option value="4">' . $V4 . '</option>
<option value="5">' . $V5 . '</option>
<option value="6">' . $V6 . '</option>
<option value="7">' . $V7 . '</option>
</select>
';
break;
case '1':
echo '
<select id="lista' . $r->id . '" onchange="cbboxid(this.id)">
<option value="0">' . $V0 . '</option>
<option value="1" selected>' . $V1 . '</option>
<option value="2">' . $V2 . '</option>
<option value="3">' . $V3 . '</option>
<option value="4">' . $V4 . '</option>
<option value="5">' . $V5 . '</option>
<option value="6">' . $V6 . '</option>
<option value="7">' . $V7 . '</option>
</select>
';
break;
case '2':
echo '
<select id="lista' . $r->id . '" onchange="cbboxid(this.id)">
<option value="0">' . $V0 . '</option>
<option value="1">' . $V1 . '</option>
<option value="2" selected>' . $V2 . '</option>
<option value="3">' . $V3 . '</option>
<option value="4">' . $V4 . '</option>
<option value="5">' . $V5 . '</option>
<option value="6">' . $V6 . '</option>
<option value="7">' . $V7 . '</option>
</select>
';
break;
case '3':
echo '
<select id="lista' . $r->id . '" onchange="cbboxid(this.id)">
<option value="0">' . $V0 . '</option>
<option value="1">' . $V1 . '</option>
<option value="2">' . $V2 . '</option>
<option value="3" selected>' . $V3 . '</option>
<option value="4">' . $V4 . '</option>
<option value="5">' . $V5 . '</option>
<option value="6">' . $V6 . '</option>
<option value="7">' . $V7 . '</option>
</select>
';
break;
case '4':
echo '
<select id="lista' . $r->id . '" onchange="cbboxid(this.id)">
<option value="0">' . $V0 . '</option>
<option value="1">' . $V1 . '</option>
<option value="2">' . $V2 . '</option>
<option value="3">' . $V3 . '</option>
<option value="4" selected>' . $V4 . '</option>
<option value="5">' . $V5 . '</option>
<option value="6">' . $V6 . '</option>
<option value="7">' . $V7 . '</option>
</select>
';
break;
case '5':
echo '
<select id="lista' . $r->id . '" onchange="cbboxid(this.id)">
<option value="0">' . $V0 . '</option>
<option value="1">' . $V1 . '</option>
<option value="2">' . $V2 . '</option>
<option value="3">' . $V3 . '</option>
<option value="4">' . $V4 . '</option>
<option value="5" selected>' . $V5 . '</option>
<option value="6">' . $V6 . '</option>
<option value="7">' . $V7 . '</option>
</select>
';
break;
case '6':
echo '
<select id="lista' . $r->id . '" onchange="cbboxid(this.id)">
<option value="0">' . $V0 . '</option>
<option value="1">' . $V1 . '</option>
<option value="2">' . $V2 . '</option>
<option value="3">' . $V3 . '</option>
<option value="4">' . $V4 . '</option>
<option value="5">' . $V5 . '</option>
<option value="6" selected>' . $V6 . '</option>
<option value="7">' . $V7 . '</option>
</select>
';
break;
case '7':
echo '
<select id="lista' . $r->id . '" onchange="cbboxid(this.id)">
<option value="0">' . $V0 . '</option>
<option value="1">' . $V1 . '</option>
<option value="2">' . $V2 . '</option>
<option value="3">' . $V3 . '</option>
<option value="4">' . $V4 . '</option>
<option value="5">' . $V5 . '</option>
<option value="6">' . $V6 . '</option>
<option value="7" selected>' . $V7 . '</option>
</select>
';
break;
}
print "</td>";
print "</tr>";
}
print '<input type="hidden" id="listaid" name="listaid" value="">';
print '<input type="hidden" id="CbBoxValue" name="CbBoxValue" value="">';
print '<input type="hidden" id="modId" name="modId" value="">';
print '<input type="hidden" id="modText" name="modText" value="">';
print '<input type="submit" value="Mentés" id="submit" name="submit">';
print "</table>";
?>
</body>
</html>
<?php
}
?>

View File

@ -1,21 +0,0 @@
<?php
if (!class_exists('Database')) require_once("common_cadline_libraries/crm_database.class.php");
$status = 'Success';
$msg = '';
Database::getInstance()->query("SELECT * FROM cl_hlusers.cron_check");
$cronFunctions = Database::getInstance()->fetchAssoc();
foreach ($cronFunctions as $function) {
$timeStamp = time() - $function['modified'];
if ($timeStamp > 180)
$status = 'Failed';
$msg .= 'Function: ' . $function['function'] . '<br>';
$msg .= 'Last run: ' . date('Y-m-d H:i:s', $function['modified']) . '<br><br>';
}
echo 'Cron status: ' . $status . '<br><br>';
echo $msg;

View File

@ -1,64 +0,0 @@
<?php
if (!class_exists('Database')) require_once("common_cadline_libraries/crm_database.class.php");
try {
$url = 'https://www.archline.hu/maintenance/check_server.php';
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_ENCODING => "", // handle compressed
CURLOPT_USERAGENT => "test", // name of client
CURLOPT_AUTOREFERER => true, // set referrer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // time-out on connect
CURLOPT_TIMEOUT => 120, // time-out on response
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
curl_close($ch);
$result = $content == 380335 ? 'Success' : 'Failed';
} catch (\Exception $e) {
$result = 'Failed';
}
$filename = $_SERVER['DOCUMENT_ROOT'] . "/serverAlive.txt";
$closed = file_put_contents($filename, $result);
$i = 0;
while (!$closed && $i < 10) {
$closed = file_put_contents($filename, $result);
$i++;
}
try {
if ($_SERVER['SERVER_NAME'] == 'secondary.cadline.hu') {
$txtResult = $result == 'Success' ? 'Inactive' : 'Active';
$filename = $_SERVER['DOCUMENT_ROOT'] . "/activateServer.txt";
$closed = file_put_contents($filename, $txtResult);
$i = 0;
while (!$closed && $i < 10) {
$closed = file_put_contents($filename, $txtResult);
$i++;
}
}
} catch (\Throwable $th) {
//throw $th;
}
try {
// Update-eli a sync_crm.cron_check tablat, hogy megnezzuk, lefut-e a cron. A check_main_server_cron.php file-ba pedig ellenorizzuk
Database::getInstance()->query("UPDATE sync_crm.cron_check SET modified = ? WHERE id = ?", array('ii', time(), 1));
} catch (\Throwable $th) {
//throw $th;
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,390 +0,0 @@
/* font */
@font-face {
font-family: 'LeagueGothicRegular';
src: url('font/League_Gothic-webfont.eot');
src: local('☺'), url('font/League_Gothic-webfont.woff') format('woff'), url('font/League_Gothic-webfont.ttf') format('truetype'), url('font/League_Gothic-webfont.svg#webfontpm5EArBj') format('svg');
font-weight: normal;
font-style: normal;
}
/*
html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
v1.4 2009-07-27 | Authors: Eric Meyer & Richard Clark
html5doctor.com/html-5-reset-stylesheet/
*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
nav ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
content: none;
}
a {
margin: 0;
padding: 0;
font-size: 100%;
outline: 0;
vertical-align: baseline;
background: transparent;
}
ins {
background-color: #ff9;
color: #000;
text-decoration: none;
}
mark {
background-color: #ff9;
color: #000;
font-style: italic;
font-weight: bold;
}
del {
text-decoration: line-through;
}
abbr[title],
dfn[title] {
border-bottom: 1px dotted;
cursor: help;
}
/* tables still need cellspacing="0" in the markup */
table {
border-collapse: collapse;
border-spacing: 0;
}
hr {
display: block;
height: 1px;
border: 0;
border-top: 1px solid #ccc;
margin: 1em 0;
padding: 0;
}
input,
select {
vertical-align: middle;
}
/* END RESET CSS */
/* Site styling */
html {
/* always force a scrollbar in non-IE */
overflow-y: scroll;
background-image: url('../images/main-red-bg.gif');
background-color: #461714;
}
body {
margin: 0 auto;
padding: 0px 70px 10px;
font-family: arial;
font-size: 1em;
width: 820px;
}
h1 {
margin: 0px 0px 0px 20px;
padding: 20px 0px 0px 0px;
color: #a81213;
font-family: 'LeagueGothicRegular', arial, san-serif;
font-size: 4.5em;
font-weight: normal;
text-align: center;
text-transform: uppercase;
text-shadow: 1px 1px 2px #000000;
filter: dropshadow(color=#000000, offx=1, offy=1);
}
h2,
h3 {
padding-top: 10px;
font-family: 'LeagueGothicRegular', arial, san-serif;
font-size: 2.25em;
font-weight: normal;
color: #a81213;
text-shadow: 1px 1px 2px #000000;
filter: dropshadow(color=#000000, offx=1, offy=1);
}
#content a {
color: #a81213;
text-shadow: 1px 1px 2px #000000;
filter: dropshadow(color=#000000, offx=1, offy=1);
}
#content a:hover {
text-decoration: none;
}
#release-history {
font-size: 0.7em;
overflow: hidden;
}
#release-history p strong {
margin-right: 5px;
font-family: 'LeagueGothicRegular', arial, san-serif;
font-size: 1.6em;
font-weight: normal;
display: block;
float: left;
}
p {
margin-top: 10px;
color: #f8f0db;
line-height: 1.5em;
}
p.copy {
margin: 0px 0px 10px;
text-align: center;
}
pre {
margin: 20px 0px 0px;
padding: 22px 40px;
background-color: #f8f0db;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
white-space: pre-wrap;
/* css-3 */
white-space: -moz-pre-wrap;
/* Mozilla, since 1999 */
white-space: -pre-wrap;
/* Opera 4-6 */
white-space: -o-pre-wrap;
/* Opera 7 */
word-wrap: break-word;
/* Internet Explorer 5.5+ */
}
pre code span.red {
color: #a81213;
}
pre code span.grey {
color: #7b7976;
}
dl {
/*margin: 10px 10px 10px 20px;*/
color: #f8f0db;
}
dt {
margin-top: 10px;
font-weight: bold;
}
dd {
margin: 5px 0px 10px 20px;
}
div#content {
/*padding: 10px 5px 0px 0px;*/
}
.content-box {
/*padding: 0px 0px 30px;*/
}
.divider-top {
padding-top: 20px;
border-top: 1px solid #70342d;
}
.divider-bottom {
padding-bottom: 30px;
border-bottom: 1px solid #1e0a09;
}
#download {
margin: 20px 0px 30px 300px;
padding: 2px;
background-color: #f8f0db;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
display: block;
width: 216px;
height: 96px;
-webkit-box-shadow: 5px 5px 15px black;
-moz-box-shadow: 5px 5px 15px black;
box-shadow: 5px 5px 15px black;
}
#download a {
font-family: 'LeagueGothicRegular', arial, san-serif;
font-size: 1.875em;
background-color: #a81213;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
display: block;
width: 100%;
height: 100%;
color: #f8f0db;
text-decoration: none;
text-transform: uppercase;
}
#download a:hover {
background-color: #000000;
}
#download a img {
margin: 0px 20px 0px 20px;
float: left;
}
#download a span.dl {
margin-top: 19px;
float: left;
display: block;
}
#download a span.sub {
display: block;
float: left;
font-size: 0.7em;
color: #e0ac9e;
}
#github img {
position: absolute;
top: 0;
right: 0;
border: 0;
}
#paypal {
margin: 20px 0px 0px 0px;
padding: 22px 40px 22px 330px;
/*width: 100%;*/
background-color: #f8f0db;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
}
::-moz-selection {
background-color: #a81213;
color: #f8f0db;
}
::selection {
background-color: #a81213;
color: #f8f0db;
}

View File

@ -1,274 +0,0 @@
/* Ticker Styling */
.ticker-wrapper.has-js {
margin: 20px 0px 20px 0px;
padding: 0px 0px;
width: 100%;
height: 32px;
display: block;
background-color: #ffffff;
}
.ticker {
width: 100%;
display: block;
position: relative;
overflow: hidden;
background-color: #ffffff;
}
.ticker-title {
color: #990000;
font-weight: bold;
background-color: #ffffff;
text-transform: uppercase;
}
.ticker-content {
margin: 0px;
position: absolute;
color: #1F527B;
font-weight: bold;
background-color: #ffffff;
overflow: hidden;
white-space: nowrap;
line-height: 1.2em;
}
.ticker-content:focus {
none;
}
.ticker-content a {
text-decoration: none;
color: #1F527B;
}
.ticker-content a:hover {
text-decoration: underline;
color: #0D3059;
}
.ticker-swipe {
position: absolute;
top: 0px;
background-color: #ffffff;
display: block;
width: 800px;
height: 23px;
}
.ticker-swipe span {
margin-left: 1px;
background-color: #ffffff;
border-bottom: 0px solid #1F527B;
height: 12px;
width: 7px;
display: block;
}
.ticker-controls {
padding: 8px 0px 0px 0px;
list-style-type: none;
float: left;
}
.ticker-controls li {
padding: 0px;
margin-left: 5px;
float: left;
cursor: pointer;
height: 16px;
width: 16px;
display: block;
}
.ticker-controls li.jnt-play-pause {
background-image: url('../images/controls.png');
background-position: 32px 16px;
}
.ticker-controls li.jnt-play-pause.over {
background-position: 32px 32px;
}
.ticker-controls li.jnt-play-pause.down {
background-position: 32px 0px;
}
.ticker-controls li.jnt-play-pause.paused {
background-image: url('../images/controls.png');
background-position: 48px 16px;
}
.ticker-controls li.jnt-play-pause.paused.over {
background-position: 48px 32px;
}
.ticker-controls li.jnt-play-pause.paused.down {
background-position: 48px 0px;
}
.ticker-controls li.jnt-prev {
background-image: url('../images/controls.png');
background-position: 0px 16px;
}
.ticker-controls li.jnt-prev.over {
background-position: 0px 32px;
}
.ticker-controls li.jnt-prev.down {
background-position: 0px 0px;
}
.ticker-controls li.jnt-next {
background-image: url('../images/controls.png');
background-position: 16px 16px;
}
.ticker-controls li.jnt-next.over {
background-position: 16px 32px;
}
.ticker-controls li.jnt-next.down {
background-position: 16px 0px;
}
.js-hidden {
display: none;
}
.no-js-news {
padding: 10px 0px 0px 45px;
color: #ffffff;
}
.left .ticker-swipe {
/*left: 80px;*/
}
.left .ticker-controls,
.left .ticker-content,
.left .ticker-title,
.left .ticker {
float: left;
}
.left .ticker-controls {
padding-left: 6px;
}
.right .ticker-swipe {
/*right: 80px;*/
}
.right .ticker-controls,
.right .ticker-content,
.right .ticker-title,
.right .ticker {
float: right;
}
.right .ticker-controls {
padding-right: 6px;
}
@media (max-width: 1024px) {
/* 0.9 */
.ticker {
height: 44px;
}
.ticker-wrapper.has-js {
font-size: 11px;
line-height: 22px;
height: 44px;
}
.ticker-title,
.ticker-content,
.ticker-swipe {
padding-top: 12px;
}
}
@media (min-width: 1025px) and (max-width: 1280px) {
/* 1.0 */
.ticker {
height: 48px;
}
.ticker-wrapper.has-js {
font-size: 12px;
line-height: 24px;
height: 48px;
}
.ticker-title,
.ticker-content,
.ticker-swipe {
padding-top: 12px;
}
}
@media (min-width: 1281px) and (max-width: 1920px) {
/* 1.2 */
.ticker {
height: 56px;
}
.ticker-wrapper.has-js {
font-size: 14px;
line-height: 28px;
height: 56px;
}
.ticker-title,
.ticker-content,
.ticker-swipe {
padding-top: 20px;
}
}
@media (min-width: 1921px) and (max-width: 2560px) {
/* 1.4 */
.ticker {
height: 72px;
}
.ticker-wrapper.has-js {
font-size: 18px;
line-height: 36px;
height: 72px;
}
.ticker-title,
.ticker-content,
.ticker-swipe {
padding-top: 16px;
}
}
@media (min-width: 2561px) {
/* 1.8 */
.ticker {
height: 104px;
}
.ticker-wrapper.has-js {
font-size: 26px;
line-height: 52px;
height: 104px;
}
.ticker-title,
.ticker-content,
.ticker-swipe {
padding-top: 26px;
}
}

View File

@ -1,128 +0,0 @@
<?php
include("config.php");
include("version.php");
include("email.php");
require_once("../configuration.php");
exit(); //ba TODO
// minden hajnal 01:30-kor - trial letöltőknek automatikus e-mail 20 nappal a letöltés után
$version = new Version();
$kiirni = "";
$log = "\n" . date('Y-m-d H:i', time()) . ":";
$elteltnap = 20;
$maxtime = time() - ($elteltnap * 24 * 60 * 60);
$mintime = time() - (($elteltnap + 1) * 24 * 60 * 60);
// azok a magyar letöltők akik nem kaptak még e-mailt
$sql = "SELECT stat_id, stat_email, stat_first, stat_country FROM download_stats ";
$sql .= " WHERE stat_pron='' AND stat_date>{$mintime} AND stat_date<{$maxtime} ";
$sql .= " AND stat_lang='hun' ";
$sql .= " GROUP BY stat_email";
$msh2->query($sql);
$letoltokhun = $msh2->fetchAssoc();
$sql = "SELECT introtext FROM jml_content WHERE id = '944'";
$msh2->query($sql);
$page = $msh2->fetchNext();
$p = (object)$page;
$pagehun = $p->introtext;
$conf = new JConfig();
foreach ($letoltokhun as $letolto) {
$l = (object)$letolto;
// felhasználónak ne küldjön levelet (van-e aktiv kulcsa)
$nUserID = $version->get_nUserIDByEmail($l->stat_email, 'hun');
if (is_numeric($nUserID) && $nUserID > 0) {
$kulcssql = "SELECT hlNum FROM " . CRMADATBAZIS . ".hardlock WHERE hlUser='{$nUserID}' AND hlStat=1";
$msh2->query($kulcssql);
$kulcs = $msh2->fetchNext();
$k = (object)$kulcs;
if (isset($k->hlNum) && $k->hlNum != "") {
$kiirni .= "\n\nnincs elkuldve: " . print_r($l, true);
$log .= "\nHUN nincs elkuldve (felhasznalo): " . $l->stat_email . " " . $l->stat_first . " " . $l->stat_id . " (hun)";
continue;
}
}
$leveltext = str_ireplace('#nev#', $l->stat_first, $pagehun);
$email = new CI_Email();
$email->initialize();
$email->setFrom($conf->mailfrom, 'CadLine');
$email->subject('ARCHLine.XP letoltes');
$email->message($leveltext);
$email->send($l->stat_email, 'smtp');
$email->clear();
$ujletolto['stat_pron'] = "1";
$msh2->update('download_stats', $ujletolto, "stat_id=" . $l->stat_id);
$kiirni .= "\n\nelkuldve: " . print_r($l, true);
$log .= "\nHUN elkuldve: " . $l->stat_email . " " . $l->stat_first . " " . $l->stat_id . " (hun)";
}
/***********************************************************************************/
// azok a NEM magyar letöltők akik nem kaptak még e-mailt
$sql = "SELECT stat_id, stat_email, stat_first, stat_country FROM download_stats ";
$sql .= " WHERE stat_pron='' AND stat_date>{$mintime} AND stat_date<{$maxtime} ";
$sql .= " AND stat_lang!='hun' ";
$sql .= " GROUP BY stat_email";
$msh2->query($sql);
$letoltokeng = $msh2->fetchAssoc();
$sql = "SELECT introtext FROM jml_content WHERE id = '945'";
$msh2->query($sql);
$page = $msh2->fetchNext();
$p = (object)$page;
$pageeng = $p->introtext;
foreach ($letoltokeng as $letolto) {
$l = (object)$letolto;
// felhasználónak ne küldjön levelet (van-e aktiv kulcsa)
$nUserID = $version->get_nUserIDByEmail($l->stat_email, 'eng');
if (is_numeric($nUserID) && $nUserID > 0) {
$kulcssql = "SELECT hlNum FROM " . CRMADATBAZIS . ".hardlock WHERE hlUser='{$nUserID}' AND hlStat=1";
$msh2->query($kulcssql);
$kulcs = $msh2->fetchNext();
$k = (object)$kulcs;
if (isset($k->hlNum) && $k->hlNum != "") {
$kiirni .= "\n\nnincs elkuldve: " . print_r($l, true) . "nUserID: " . $nUserID . ", hlnum: " . $k->hlNum;
$log .= "\nENG nincs elkuldve (felhasznalo): " . $l->stat_email . " " . $l->stat_first . " " . $l->stat_id . " (eng), hlNum: " . $kulcs->hlNum . " , user: " . $nUserID;
continue;
}
}
$leveltext = str_ireplace('#nev#', $l->stat_first, $pageeng);
$email = new CI_Email();
$email->initialize();
$email->setFrom('info@archlinexp.com', 'ARCHLine');
$email->subject('ARCHLine.XP download');
$email->message($leveltext);
$email->send($l->stat_email, 'smtp');
$email->clear();
$ujletolto['stat_pron'] = "1";
$msh2->update('download_stats', $ujletolto, "stat_id=" . $l->stat_id);
$kiirni .= "\n\nENG elkuldve: " . print_r($l, true);
$log .= "\nENG elkuldve: " . $l->stat_email . " " . $l->stat_first . " " . $l->stat_id . " (eng)";
print "<hr>elkuldve: ";
print_r($l);
}
$record['osztaly'] = "cron";
$record['fv'] = "downloademail";
$record['hiba'] = $kiirni;
$record['datum'] = date('Y-m-d H:i', time());
$msh2->insert('a_hibak', $record);
exec("echo '{$log}' >> ../public/download_email.txt");

View File

@ -1,26 +0,0 @@
<?php
// minden órában - excel feltöltések mennek-e
include("email.php");
require_once("../configuration.php");
$utolsofajl = filemtime("../fizetesek");
print "utolso: " . date("Y-m-d H:i:s", $utolsofajl);
$log = "\n" . date("Y-m-d H:i:s") . "\n\t";
if (time() - (60 * 60) > $utolsofajl) {
// már egy órája nincs feltöltés
$conf = new JConfig();
$email = new CI_Email();
$email->initialize();
$email->setFrom($conf->mailfrom, 'CadLine');
$email->subject('Hiba - Excel fizetesek feltoltes');
$email->message("Már több mint egy órája nincs feltöltés. Utolsó feltöltés időpontja: " . date("Y-m-d H:i:s", $utolsofajl));
$email->send('bodnart@cadline.hu', 'smtp');
$log .= "hiba volt, utolso: " . date("Y-m-d H:i:s", $utolsofajl);
} else {
$log .= "rendben.";
}
exec("echo '{$log}' >> ../public/log_fizetesek_excel.txt");

View File

@ -1,113 +0,0 @@
<?php
/**********************************************************************************
* eredeti url: http://www.archline.hu/version/elofizkarbxml/ + fajlnev+ / +nyelv *
**********************************************************************************/
ini_set("max_execution_time", 60);
include("version.php");
include('libraries/Excel2/reader.php');
@header("Content-Type: text/html; charset=UTF-8");
$fajl = '/var/www/hosting/archline.hu/www/fizetesek/' . $_GET['file']; // segment(3);
$nyelv = (isset($_GET['lang']) ? $_GET['lang'] : NULL); //segment(4);
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');
$data->read($fajl);
$needInsert = true;
// temp feltoltese
crm_database::getInstance()->query("TRUNCATE TABLE `" . CRMADATBAZIS . "`.`temp_excelfizetes`");
$insertStatement = "INSERT INTO " . CRMADATBAZIS . ".temp_excelfizetes (kulcs,datum,kapcs,info) VALUES";
$numrows = $data->sheets[0]['numRows'];
for ($i = 1; $i <= $numrows; $i++) {
if (!$data->sheets[0]['cells'][$i][1]) {
$needInsert = false;
continue;
}
$o1 = $data->sheets[0]['cells'][$i][1];
$o2 = $data->sheets[0]['cells'][$i][2];
$o3 = $data->sheets[0]['cells'][$i][3];
$o4 = $data->sheets[0]['cells'][$i][4];
$insertStatement = $insertStatement . "(" . $o1 . ",'" . $o2 . "','" . $o3 . "','" . $o4 . "')";
if ($i < $numrows)
$insertStatement = $insertStatement . ",";
$needInsert = true;
}
if ($needInsert || $numrows <= 0)
crm_database::getInstance()->query($insertStatement);
// valtozasok lekerese
crm_database::getInstance()->query("(SELECT t1.kulcs, t1.datum, t1.kapcs, t1.info, '' originfo
FROM " . CRMADATBAZIS . ".temp_excelfizetes t1 LEFT JOIN " . CRMADATBAZIS . ".t_excelfizetes t2 ON t1.kulcs = t2.kulcs
WHERE t1.datum!=t2.datum OR t1.kapcs!=t2.kapcs AND t1.kulcs !='')
UNION
(SELECT kulcs, datum, kapcs, 'uj elem' info, info as originfo FROM " . CRMADATBAZIS . ".temp_excelfizetes
WHERE kulcs NOT IN (SELECT kulcs FROM " . CRMADATBAZIS . ".t_excelfizetes))");
$valtozasok = crm_database::getInstance()->fetchAssoc();
foreach ($valtozasok as $el) {
$elem = (object)$el;
$utfizu = Version::_getfizhonap($elem->datum, $elem->kapcs);
$actDate = Version::_modosit($elem->kulcs, $utfizu, $elem->kapcs, $elem->info);
$tomb = array(
"kulcs" => $elem->kulcs,
"kapcs" => $elem->kapcs,
"datum" => $elem->datum,
"info" => $elem->originfo,
);
if ($elem->info == "uj elem")
crm_database::getInstance()->insert(CRMADATBAZIS . '.t_excelfizetes', $tomb);
else
crm_database::getInstance()->update(CRMADATBAZIS . '.t_excelfizetes', $tomb, array('kulcs' => $elem->kulcs));
$hiInfo = "Excel: " . $elem->kapcs . ", Dátum: " . $elem->datum . " " . $elem->originfo;
$query = "SELECT * FROM `" . CRMADATBAZIS . "`.`h_history` WHERE hiHlNum = '" . $elem->kulcs . "' AND hiInfo = '" . $hiInfo . "'";
crm_database::getInstance()->query($query);
$res = crm_database::getInstance()->fetchAssoc();
if (empty($res)) {
$history = array(
'hiHlNum' => $elem->kulcs,
'hiDate' => date('Y-m-d'),
'hiManID' => 36,
'hiTypeID' => 3,
'hiTime' => date("Y-m-d H:i:s"),
'hiInfo' => $hiInfo,
);
if ($actDate && $actDate != '') {
$history['activationDate'] = $actDate;
}
crm_database::getInstance()->query("SELECT prOrdNum, prPass FROM `" . CRMADATBAZIS . "`.`h_programs`
WHERE prVerID >=13 AND prHlNum IS NOT NULL AND prHlNum = (select hlNum FROM `" . CRMADATBAZIS . "`.`hardlock` WHERE `hlNum`='{$elem->kulcs}' AND `hlStat`=1) ORDER BY prID DESC LIMIT 1;");
$lastProgram = crm_database::getInstance()->fetchNext();
if (!empty($lastProgram) && $lastProgram['prOrdNum'] != '') {
$history['prPass'] = $lastProgram['prPass'];
crm_database::getInstance()->query("SELECT o.id AS id FROM `" . CRMADATBAZIS . "`.`o_orders` o
WHERE o.order = '" . $lastProgram['prOrdNum'] . "' AND o.output_key = '" . $lastProgram['prPass'] . "' ORDER BY o.id DESC LIMIT 1;");
$currentOrder = crm_database::getInstance()->fetchNext();
if (!empty($currentOrder)) {
$history['orderID'] = $currentOrder['id'];
}
}
crm_database::getInstance()->insert(CRMADATBAZIS . '.h_history', $history);
print "Valtozott: " . $elem->kulcs . " " . $utfizu . " " . $elem->kapcs;
}
}
print "ok";

View File

@ -1,7 +0,0 @@
<?php
include("config.php");
$sql = "TRUNCATE TABLE " . CRMADATBAZIS . ".t_excelfizetes";
$sql2 = "TRUNCATE TABLE " . CRMADATBAZIS . ".temp_excelfizetes";
$msh->query($sql);
$msh->query($sql2);

View File

@ -1,95 +0,0 @@
<?php //if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once('libraries/mmail/htmlMimeMail.php');
include("../configuration.php");
class CI_Email extends htmlMimeMail5
{
function __construct()
{
parent::__construct();
//$this->CI = &get_instance();
}
function initialize($settings = false)
{
if (!$settings) {
//$settings = $this->CI->config->item('email');
$conf = new JConfig();
$settings['host'] = $conf->smtphost;
$settings['port'] = $conf->smtpport;
$settings['helo'] = null;
$settings['auth'] = $conf->smtpauth;
$settings['user'] = $conf->smtpuser;
$settings['pass'] = $conf->smtppass;
/*$settings['host'] = 'localhost';
$settings['port'] = 25;
$settings['helo'] = null;
$settings['auth'] = true;
$settings['user'] = 'www.smtp@cadline.hu';
$settings['pass'] = 'Chieng0t';*/
}
$this->setSMTPParams($settings['host'], $settings['port'], $settings['helo'], $settings['auth'], $settings['user'], $settings['pass']);
$this->setHTMLCharset('UTF-8');
$this->setHeadCharset('UTF-8');
$this->setHTMLEncoding(new EightBitEncoding());
}
function addOfficialImages()
{
$this->addEmbeddedImage(new fileEmbeddedImage('../public/img/mail/title.jpg'));
$this->addEmbeddedImage(new fileEmbeddedImage('../public/img/mail/footer.jpg'));
}
function addImage($path)
{
$this->addEmbeddedImage(new fileEmbeddedImage('../public/img/' . $path));
}
function clear()
{
$this->is_built = false;
$this->setHTML(null);
$this->setFrom(null);
}
function message($html)
{
$tomb['<27>'] = '&aacute;';
$tomb['<27>'] = '&Aacute;';
$tomb['<27>'] = '&eacute;';
$tomb['<27>'] = '&Eacute;';
$tomb['<27>'] = '&oacute;';
$tomb['<27>'] = '&Oacute;';
$tomb['<27>'] = '&ouml;';
$tomb['<27>'] = '&Ouml;';
$tomb['<27>'] = '&#337;';
$tomb['<27>'] = '&#336;';
$tomb['<27>'] = '&uacute;';
$tomb['<27>'] = '&Uacute;';
$tomb['<27>'] = '&uuml;';
$tomb['<27>'] = '&Uuml;';
$tomb['<27>'] = '&#369;';
$tomb['<27>'] = '&#368;';
$tomb['<27>'] = '&iacute;';
$tomb['<27>'] = '&Iacute;';
$string = $html;
foreach ($tomb as $k => $v) {
$string = str_replace($k, $v, $string);
}
$this->setHTML($string);
}
function from($from)
{
$this->setFrom($from);
}
function subject($subj)
{
$this->setSubject($subj);
}
}

View File

@ -1,80 +0,0 @@
<?php
include("config.php");
require_once('libraries/phpmailer/PHPMailerAutoload.php');
//Fájl futtatásakor megadott paraméterek
$email = $_GET["email"];
$comment = $_GET["comment"];
$needscr = $_GET["needscr"];
$needsysdata = $_GET["needsysdata"];
$build = $_GET["build"];
$year = $_GET["year"];
$lang = $_GET["lang"];
$serial = $_GET["serial"];
$fileUpload = $_GET["fileUpload"];
$guid = $_GET["guid"];
$failed = $_GET["successUpload"];
$fileName = $_GET["fileName"];
$proto = isset($_GET['proto']) ? $_GET['proto'] : 'ftp';
$wasUpload = false;
if ($needscr == 1 or $needsysdata == 1) {
$contributionmsg = "A felhasználó a következő adatok feltöltéséhez járult hozzá:<ul>";
if ($needscr == 1)
$contributionmsg = $contributionmsg . "<li>A képernyőjéről készült kép</li>";
if ($needsysdata == 1)
$contributionmsg = $contributionmsg . "<li>Az általa használt rendszer leírása</li>";
$contributionmsg = $contributionmsg . "</ul>";
$wasUpload = true;
} else
$contributionmsg = "Képernyőkép és rendszeradatok küldéséhez nem járult hozzá!";
if ($fileUpload == 1) {
if ($needscr == 1 or $needsysdata == 1)
$fileUploadmsg = "Továbbá fájl feltöltést is kezdeményezett, melynek eredeti neve: " . $fileName . "<br>";
else
$fileUploadmsg = "A felhasználó fájl feltöltést kezdeményezett, melynek eredeti neve: " . $fileName . "<br>";
$contributionmsg = $contributionmsg . $fileUploadmsg;
$wasUpload = true;
}
if ($wasUpload) {
if ($proto == 'ftp')
$destination = "<br>A feltöltött fájl(ok) elérése:<br>A 'vendeg' felhasználó adataival való bejelentkezés után a tanis2.cadline.hu/uploadedProjects/" . $guid . " címen.<br>";
else
$destination = "<br>A feltöltött fájl(ok) elérése:<br>A 'webdavuser' felhasználó adataival való bejelentkezés után a https://webdav.cadline.hu/uploadedProjects/" . $guid . " címen.<br>";
if ($failed == 0)
$failOwnMsg = "<br><b>FIGYELMEZTETÉS:</b> A feltöltést a felhasználó megszakította, mielőtt az teljesen végbe ment volna! A fájlok egy része nem teljes!<br>";
else
$failOwnMsg = "";
} else {
$destination = "<br>";
$failOwnMsg = "";
}
$message = "Kedves Kollégák!<br><br>A mai napon az ARCHLine.XP " . $year . " programból az alábbi felhasználó hibajelentést küldött.<br>A felhasználó email címe: " . $email . "<br>Build: " . $build . "<br>Nyelv: " . $lang . "<br>Serial: " . $serial . "<br><br>" . $contributionmsg . $destination . $failOwnMsg . "<br>A felhasználó által megadott megjegyzés:<br><br><b>" . $comment . '</b>';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->CharSet = 'UTF-8';
$mail->Host = $mailconfig['Host'];
$mail->Username = $mailconfig['Username'];
$mail->Password = $mailconfig['Password'];
$mail->SMTPSecure = $mailconfig['SMTPSecure'];
$mail->Port = $mailconfig['Port'];
$mail->isHTML(TRUE);
$mail->setFrom(DEFAULT_EMAIL);
$mail->addAddress('support@cadline.hu');
$mail->Subject = 'Projekt feltölés - ARCHLine.XP';
$mail->msgHTML($message);
$mail->AltBody = strip_tags($message);
$mail->send();
unset($mail);
if ($lang == "hun")
print "Köszönjük a visszajelzést!";
else
print "Thank you for your report!";

View File

@ -1,97 +0,0 @@
<?php
if (!class_exists('Database')) require_once("common_cadline_libraries/crm_database.class.php");
error_reporting(E_ERROR | E_PARSE);
session_start();
if (isset($_SESSION['username'])) header("location: server_status.php");
$error = '';
if (isset($_POST['submit'])) {
require_once '../PasswordHash.php';
$query = "SELECT * FROM sync_crm.admins WHERE username = ?";
Database::getInstance()->query($query, array('s', $_POST["username"]));
$admin = Database::getInstance()->fetchNext();
$phpass = new PasswordHash(10, true);
$ok = $phpass->CheckPassword($_POST["password"], $admin['password']);
if ($ok) {
$_SESSION['username'] = $_POST["username"];
header("location: server_status.php");
} else {
$error = 'Hibás felhasználónév vagy jelszó';
}
}
?>
<html>
<head>
<style media="screen">
.col-centered {
float: none;
margin: 0 auto;
}
.alert {
margin-left: 3% !important;
}
#login-form {
margin-top: 15%;
}
.form-group {
margin-bottom: 1rem;
}
</style>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
<title>Bejelentkezés</title>
</head>
<body>
<form action="" method="POST" id="login-form">
<div class="container">
<div class="col-md-6 col-centered">
<?php if ($error != "") : ?>
<div class="alert alert-danger col-md-8" role="alert">
<?= $error ?>
</div>
<?php endif; ?>
<div class="row">
<div id="form-login-username" class="form-group col-md-9">
<input id="modlgn-username" type="text" name="username" class="form-control" tabindex="0" size="18" placeholder="Felhasználónév" required />
</div>
</div>
<div class="row">
<div id="form-login-password" class="form-group col-md-9">
<div class="controls">
<input id="modlgn-passwd" type="password" name="password" class="form-control" tabindex="0" size="18" placeholder="Jelszó" required />
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<input type="submit" value="Bejelentkezés" class="btn btn-primary" id="loginbtn" name="submit" />
</div>
</div>
</div>
</div>
</form>
<script>
document.getElementById("modlgn-username").focus();
</script>
</body>
</html>

View File

@ -1,167 +0,0 @@
<?php
include('session.php');
$ctx = stream_context_create(array(
'http' =>
array(
'timeout' => 10,
)
));
$primaryTxt = file_get_contents('https://secondary.cadline.hu/serverAlive.txt');
$secondaryTxt = file_get_contents('https://secondary.cadline.hu/serverAliveSecondary.txt');
$primaryServer = file_get_contents("https://www.archlinexp.com/maintenance/read_server_txt.php", false, $ctx);
$secondaryServer = file_get_contents("https://secondary.cadline.hu/read_server_txt.php");
$primaryActive = $primaryServer && $primaryServer != '' ? $primaryServer : 'Inactive';
$secondaryActive = $secondaryServer && $secondaryServer != '' ? $secondaryServer : 'Inactive';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<title>Server Status</title>
<style>
.server-div {
margin: 2rem 0rem;
}
.centered {
text-align: center;
}
</style>
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-md-6 server-div">
<div class="card flex-fill">
<div class="card-header">
<h2 class="card-title mb-0">Secondary szerver használatának kikényszerítése</h2>
</div>
<div class="table-responsive">
<table class="table table-hover my-0 table-striped">
<tbody>
<tr>
<td><b>Primary Server (www.archline.hu / www.archlinexp.com)</b></td>
<td>A főszerver állapota: <span class="badge text-bg-<?= $primaryTxt == 'Success' ? 'success' : 'danger' ?>"><?= $primaryTxt == 'Success' ? 'Él' : 'Nem él' ?></span></td>
<td><b><span id="primary-span"><?= $primaryActive ?></span></b></td>
</tr>
<tr>
<td><b>Secondary Server (secondary.cadline.hu)</b></td>
<td>A másodlagos szerver állapota: <span class="badge text-bg-<?= $secondaryTxt == 'Success' ? 'success' : 'danger' ?>"><?= $secondaryTxt == 'Success' ? 'Él' : 'Nem él' ?></span></td>
<td><b><span id="secondary-span"><?= $secondaryActive ?></span></b></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-md-6 server-div">
<div class="card flex-fill">
<div class="card-header">
<h2 class="card-title mb-0">Secondary szerver használatának kikényszerítése</h2>
</div>
<table class="table table-hover my-0 table-striped">
<tbody>
<tr>
<td>
<h3 class="centered">Emergency mode</h3>
<button id="activate-secondary" class="<?= $secondaryActive == 'Active' ? 'disabled' : '' ?> btn btn-primary" <?= $secondaryActive == 'Active' ? 'disabled' : '' ?>>Activate</button>
<br>
<br>
<button id="activate-primary" class="<?= $primaryActive == 'Active' ? 'disabled' : '' ?> btn btn-primary" <?= $primaryActive == 'Active' ? 'disabled' : '' ?>>Deactivate</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('#activate-secondary').click(function() {
$.post('https://secondary.cadline.hu/activate_server.php', {
name: 'activateSecondary'
}).done(function(data) {
let response = jQuery.parseJSON(data);
if (response.message == 'Success') {
$('#secondary-span').html('Active');
$('#primary-span').html('Inactive');
$('#activate-secondary').attr('disabled', true);
$('#activate-secondary').addClass('disabled');
$('#activate-primary').removeAttr('disabled');
$('#activate-primary').removeClass('disabled');
alert('A másodlagos szerver él');
} else {
alert('Error');
}
});
$.post('https://www.archlinexp.com/maintenance/activate_server.php', {
name: 'activateSecondary'
}).done(function(data) {
let response = jQuery.parseJSON(data);
if (response.message == 'Success') {
$('#secondary-span').html('Active');
$('#primary-span').html('Inactive');
} else {
alert('Error');
}
});
});
$('#activate-primary').click(function() {
$.post('https://secondary.cadline.hu/activate_server.php', {
name: 'activatePrimary'
}).done(function(data) {
let response = jQuery.parseJSON(data);
if (response.message == 'Success') {
$('#secondary-span').html('Inactive');
$('#primary-span').html('Active');
$('#activate-primary').attr('disabled', true);
$('#activate-primary').addClass('disabled');
$('#activate-secondary').removeAttr('disabled');
$('#activate-secondary').removeClass('disabled');
alert('Az elsődleges szerver él');
} else {
alert('Error');
}
});
$.post('https://www.archlinexp.com/maintenance/activate_server.php', {
name: 'activatePrimary'
}).done(function(data) {
let response = jQuery.parseJSON(data);
if (response.message == 'Success') {
$('#secondary-span').html('Inactive');
$('#primary-span').html('Active');
} else {
alert('Error');
}
});
});
});
</script>
</body>
</html>

View File

@ -1,8 +0,0 @@
<?php
error_reporting(E_ERROR | E_PARSE);
session_start();
if (!isset($_SESSION['username'])) {
header("location: login.php");
die();
}

View File

@ -1,39 +0,0 @@
<?php
//echo $_GET["key"];
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
$action = trim(strtolower($_GET['encode']));
switch ($action) {
case 'true': {
$data = crm_hardlock::encode($_GET["privateKey"], $_GET["publicKey"], "Use std::stringstream to convert integers into strings and its special");
echo $data;
break;
}
case 'false': {
//header('Content-type: text/html; charset=utf-8');
$data = crm_hardlock::decode($_GET["privateKey"], $_GET["publicKey"], $_GET["data"]);
echo $data;
//echo crmHelper::decode($_GET["privateKey"], $_GET["publicKey"], $_GET["data"]);
break;
}
}
/*
public static function encode($string,$key) {
$key = sha1($key);
$strLen = strlen($string);
$keyLen = strlen($key);
for ($i = 0; $i < $strLen; $i++) {
$ordStr = ord(substr($string,$i,1));
if ($j == $keyLen) { $j = 0; }
$ordKey = ord(substr($key,$j,1));
$j++;
$hash .= strrev(base_convert(dechex($ordStr + $ordKey),16,36));
}
return $hash;
}
*/

View File

@ -1,18 +0,0 @@
<?php
if (!class_exists('crm_users')) require_once("common_cadline_libraries/crm_users.class.php");
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
$encoded = $_GET['id'];
$decoded = base64_decode($encoded);
$email = crm_hardlock::get_valueFromStringUrl($decoded, 'email');
$alias = crm_hardlock::get_valueFromStringUrl($decoded, 'alias');
$query = "SELECT * FROM " . JMLADATBAZIS . ".followed_links WHERE alias = ? LIMIT 1";
Database::getInstance()->query($query, array('s', $alias));
$res = Database::getInstance()->fetchNext();
crm_users::levelesemeny($email, "events", "newclick", $res['esem_id'], $res['esem_cont'], $res['name']);
header('Location: ' . $res['redirect']);
exit();

View File

@ -1,87 +0,0 @@
<?php
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
if (!class_exists('crm_users')) require_once("common_cadline_libraries/crm_users.class.php");
function setUserStatus($nUserID = 0, $newStatus = 0) // Megszuntetni
{
crm_users::SetUserStatus($nUserID, $newStatus);
}
function addUser($tomb = array()) // Megszuntetni
{
crm_users::AddUser($tomb, 1);
}
function addUserHistory($tomb = array(), $newsletter = 1) // Megszuntetni
{
return crm_users::AddUserHistory($tomb, $newsletter);
}
function updateUserHistory($tomb = array(), $nEventID = 0) // Megszuntetni
{
return crm_users::UpdateUserHistory($tomb, $nEventID);
}
function getValidLease($nUserID = 0, $level = 0) // Megszuntetni
{
return crm_users::GetValidLease($nUserID, $level);
}
function tryToAlloc($min = 0, $max = 0) // Megszuntetni
{
return crm_hardlock::GetTheFirstNotUsedHlNumFromInterval($min, $max);
}
function generatePassword($hlNum, $lan, $type, $version = 64) // Megszuntetni
{
$lan = crm_hardlock::GetLanSignFromLanUserNumber($lan);
return Codegen::GeneratePassword($hlNum, $lan, $type, $version);
}
function generateTimeCode($pass, $isid, $numOfDays) // Megszuntetni
{
return Codegen::GenerateTimeCode($pass, $isid, $numOfDays);
}
function generateTimeCodeForSoftwareKey($pass, $isid, $numOfDays) // Nincs sehol se hasznalva
{
$ret = generateTimeCode($pass, $isid, $numOfDays);
return ($ret);
}
function generateTimeCodeForHardwareKey($pass, $numOfDays) // Nincs sehol se hasznalva
{
$isid = substr($pass, 0, 2) . substr($pass, 7, 2);
$ret = generateTimeCode($pass, $isid, $numOfDays);
return ($ret);
}
function conv($str) // Nincs sehol se hasznalva
{
$ret = str_replace(
array('u00e1', 'u00c1', 'u00e9', 'u00c9', 'u00ed', 'u00cd', 'u00f3', 'u00d3', 'u00f6', 'u00d6', 'u0151', 'u0150', 'u00fa', 'u00da', 'u00fc', 'u00dc', 'u0171', 'u0170', '\\', '"'),
array('á', 'Á', 'é', 'É', 'í', 'Í', 'ó', 'Ó', 'ö', 'Ö', 'ő', 'Ő', 'ú', 'Ú', 'ü', 'Ü', 'ű', 'Ű', '', '',),
$str
);
$ret = trim(iconv('latin2', 'utf-8', $ret));
return ($ret);
}
function reconv($str) // Nincs sehol se hasznalva
{
$ret = str_replace(
array('u00e1', 'u00c1', 'u00e9', 'u00c9', 'u00ed', 'u00cd', 'u00f3', 'u00d3', 'u00f6', 'u00d6', 'u0151', 'u0150', 'u00fa', 'u00da', 'u00fc', 'u00dc', 'u0171', 'u0170', '\\', '"'),
array('á', 'Á', 'é', 'É', 'í', 'Í', 'ó', 'Ó', 'ö', 'Ö', 'ő', 'Ő', 'ú', 'Ú', 'ü', 'Ü', 'ű', 'Ű', '', '',),
$str
);
return ($ret);
}
function AddOrUpdateComputer($npID) // Megszuntetni
{
crm_hardlock::AddOrUpdateComputer($npID);
}

View File

@ -1,20 +0,0 @@
<?php
if (!class_exists('Constants')) require_once("common_cadline_libraries/constants.php");
function is_bot($user_agent)
{
$botRegexPattern = "(googlebot\/|Googlebot\-Mobile|Googlebot\-Image|Google favicon|Mediapartners\-Google|bingbot|slurp|java|wget|curl|Commons\-HttpClient|Python\-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST\-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub\.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum\.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips\-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail\.RU_Bot|discobot|heritrix|findthatfile|europarchive\.org|NerdByNature\.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb\-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web\-archive\-net\.com\.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks\-robot|it2media\-domain\-crawler|ip\-web\-crawler\.com|siteexplorer\.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki\-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e\.net|GrapeshotCrawler|urlappendbot|brainobot|fr\-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf\.fr_bot|A6\-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive\.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j\-asr|Domain Re\-Animator Bot|AddThis)";
return preg_match("/{$botRegexPattern}/", $user_agent);
}
if (!is_bot($_SERVER['HTTP_USER_AGENT']) && !empty($_SERVER['REMOTE_ADDR'])) {
$apiKey = Constants::IPLOCATE_API_KEY;
$url = 'https://iplocate.io/api/lookup/' . $_SERVER['REMOTE_ADDR'] . '?apikey=' . $apiKey;
$response = file_get_contents($url);
$data = json_decode($response);
$answer = $data->latitude;
$answer .= ',';
$answer .= $data->longitude;
print $answer;
}

View File

@ -1,47 +0,0 @@
<?php
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
$serial = $_GET['serial'];
$detailed = isset($_GET['detailed']) && $_GET['detailed'] == 'true' ? true : false;
$seatID = isset($_GET['seatid']) && $_GET['seatid'] != '' ? $_GET['seatid'] : '';
$email = '';
$userID = 0;
$nUserID = 0;
$query = "SELECT hlUser FROM cl_hlusers.hardlock WHERE hlNum = ? LIMIT 1;";
Database::getInstance()->query($query, array('s', substr($serial, 0, 6)));
$hardlock = Database::getInstance()->fetchNext();
if (!empty($hardlock) && is_numeric($hardlock['hlUser'])) {
$nUserID = (int)$hardlock['hlUser'];
$query = "SELECT e.email AS email, u.id AS userID, u.nUserID AS nUserID
FROM cl_hlusers.u_emails e
LEFT JOIN www_archline_hu.jml_users u ON e.nUserID = u.nUserID
WHERE e.nUserID = ? GROUP BY e.nUserID LIMIT 1;";
Database::getInstance()->query($query, array('i', $nUserID));
$user = Database::getInstance()->fetchNext();
if (!empty($user)) {
$email = $user['email'];
$userID = $user['userID'];
$nUserID = $user['nUserID'];
}
}
if ($detailed && $seatID != '') {
$accountInfo = '';
if ($userID != null && $userID > 0 && $nUserID != null && $nUserID > 0) {
$tokenID = crm_hardlock::GetOrGenerateToken($seatID, $nUserID);
$accountInfo = '<AccountInfo>
<id>' . $nUserID . '</id>
<email>' . $email . '</email>
<token>' . $tokenID . '</token>
</AccountInfo>';
}
echo base64_encode($accountInfo);
} else {
echo $email;
}

View File

@ -1,107 +0,0 @@
<?php
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
$year = isset($_GET['year']) && $_GET['year'] > 2023 ? (int)$_GET['year'] : 2024;
$se = isset($_GET['se']) ? $_GET['se'] : '';
$isLT = $se != '' ? '_' . $se : '';
$query = "SELECT * FROM local_crm.mirror_links ORDER BY continent ASC";
Database::getInstance()->query($query);
$mirror_links = Database::getInstance()->fetchAssoc();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/public/DIAMOND_YELLOW.png" rel="shortcut icon" type="image/vnd.microsoft.icon" />
<link rel="stylesheet" href="/maintenance/css/bootstrap.min.css" />
<title>Download</title>
<style>
body {
font-family: Raleway, sans-serif;
}
.al-btn {
background-color: #F0C318;
color: #000000 !important;
font-size: 18px;
padding: 8px 16px;
border-radius: 0;
cursor: pointer !important;
font-weight: 500;
text-align: center;
border: 0;
margin-bottom: 10px;
}
.container-fluid {
margin: 30px 50px 0px 50px
}
.table th {
font-size: 22px;
}
.table td,
p {
font-size: 18px;
}
h2,
p {
text-align: center;
}
.logo {
margin-top: 30px;
margin-left: 20px;
}
</style>
</head>
<body>
<img class="logo" src="/public/Logo_corner_up.png">
<div class="container-fluid">
<h2>Choose a setup file</h2>
<br>
<p>
If the websetup could not download the installation kit, please choose the server closest to you and try to download it from there by clicking the download button.
</p>
<br>
<div class="row">
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 10%;">Location</th>
<th>Description</th>
<th style="width: 10%;">#</th>
</tr>
</thead>
<tbody>
<?php foreach ($mirror_links as $mirror_link) : ?>
<tr>
<td><?= $mirror_link['continent'] ?></td>
<td><?= $mirror_link['description'] ?></td>
<td>
<a href="<?= crm_hardlock::generateDownloadUrl($mirror_link['link'], $year, $isLT) ?>" class="btn al-btn">Download</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>

View File

@ -1,39 +0,0 @@
<?php
header("Access-Control-Allow-Origin: *");
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
$serials = "'" . implode("', '", $_POST['serials']) . "'";
$query = "SELECT p.prPass AS prPass, p.prVerID AS prVerID, h.hlLan AS hlLan, p.prTypeID AS prTypeID,
p.prFizetve AS prFizetve, p.prActCode AS prActCode, h.isFloating AS isFloating
FROM cl_hlusers.h_programs p
LEFT JOIN cl_hlusers.hardlock h ON h.hlNum = p.prHlNum
WHERE p.prPass IN ({$serials})
GROUP BY p.prPass;";
Database::getInstance()->query($query);
$programs = Database::getInstance()->fetchAssoc();
$encodedSession = isset($_POST["session"]) ? $_POST["session"] : $_GET["session"];
$session = base64_decode($encodedSession);
$privatekey = Webform::GetWebformPrivateKey();
$param = $_POST["param"];
$decoded_param = Webform::decode($privatekey, $session, $param);
$decoded_param = "?" . $decoded_param;
$isid = Webform::get_valueFromStringUrl($decoded_param, "isid");
$response = array();
foreach ($programs as $program) {
$availabelProgram = '';
$freeLic = '';
$response[$program['prPass']]['available'] = crm_hardlock::isProgramAvailable('', $program['prPass'], $program['prFizetve'], $isid, $program['hlLan'], $program['prActCode'], $availabelProgram, $freeLic, 39, $program['isFloating']);
if (!$response[$program['prPass']]['available'] || $freeLic != '') {
$response[$program['prPass']]['message'] = crm_hardlock::getInfoForProgramDialog($program['prFizetve'], $availabelProgram, $freeLic, $ctrID);
}
$response[$program['prPass']]['lan'] = $program['hlLan'];
}
echo json_encode($response);

View File

@ -1,69 +0,0 @@
<?php
require_once('config.php');
require_once('libraries/phpmailer/PHPMailerAutoload.php');
require_once("common_cadline_libraries/crm_database.class.php");
$date = new DateTime();
$date->modify('+1 month');
$nextMonth = $date->format('Y-m');
$query = "SELECT p.prPass AS prPass, p.prHlNum AS prHlNum, p.prFizetve AS prFizetve, h.hlUser AS nUserID
FROM cl_hlusers.h_programs p
LEFT JOIN cl_hlusers.hardlock h ON h.hlNum = p.prHlNum
WHERE p.prStat = 0 AND p.prOrdNum LIKE 'E-%' AND p.prFizetve LIKE '{$nextMonth}-%' AND p.prContact = 1 AND p.prStat = 0";
Database::getInstance()->query($query);
$res = Database::getInstance()->fetchAssoc();
if (!empty($res)) {
$i = 1;
$message = '<html><head></head><body style="font-family: Raleway, sans-serif; padding: 20px; line-height: 25px; font-size: 12pt;">';
foreach ($res as $value) {
$query2 = "SELECT distributors.name AS partnerName, partnerek.email AS partnerEmail, o_orders.user_name AS userName, o_orders.user_email AS userEmail,
o_orders.country AS country
FROM cl_hlusers.o_orders
LEFT JOIN cl_hlusers.distributors ON distributors.ctrID = o_orders.country
LEFT JOIN szamla_agent.partnerek ON partnerek.ország = o_orders.country
WHERE output_key = '" . $value['prPass'] . "'";
Database::getInstance()->query($query2);
$res2 = Database::getInstance()->fetchNext();
$message .= '<b>' . $i . '. ' . $res2['partnerName'] . ' (' . $res2['partnerEmail'] . ')' . ':</b> <br><br>';
$message .= '<hr style="max-width: 500px; margin-left:0;">';
$message .= '<div style="margin-left: 25px;">';
if (is_numeric($value['nUserID']))
$message .= '<b>User Name:</b> <a href="https://crm.cadline.hu/en/users/show/' . $value['nUserID'] . '">' . $res2['userName'] . '</a><br>';
else
$message .= '<b>User Name:</b> ' . $res2['userName'] . '<br>';
$message .= '<b>User Email:</b> ' . $res2['userEmail'] . '<br>';
$message .= '<b>Serial Number:</b> <a href="https://crm.cadline.hu/' . $res2['country'] . '/hardlock/show/' . $value['prHlNum'] . '">' . $value['prPass'] . '</a><br>';
$message .= '<b>Program expiration date:</b> ' . $value['prFizetve'] . '<br><br>';
$message .= '</div>';
$i++;
}
$message .= '</body></html>';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->CharSet = 'UTF-8';
$mail->Host = $mailconfig['Host'];
$mail->Username = $mailconfig['Username'];
$mail->Password = $mailconfig['Password'];
$mail->SMTPSecure = $mailconfig['SMTPSecure'];
$mail->Port = $mailconfig['Port'];
$mail->isHTML(TRUE);
$mail->setFrom(DEFAULT_EMAIL);
$mail->addAddress('office@cadline.hu');
$mail->addCC('mate.nagy@cadline.hu');
$mail->Subject = 'Lejáró weborder előfizetések';
$mail->msgHTML($message);
$mail->AltBody = strip_tags($message);
$mail->send();
}

View File

@ -1,5 +0,0 @@
<?php
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
echo 'https://www.archlinexp.com/download/download-center/downloadable-applications/drivers';
die();

View File

@ -1,50 +0,0 @@
<?php //http://www.archlinexp.com/maintenance/getdef.php?serial=3600178330000927
//if ($_SERVER['REMOTE_ADDR']!='46.139.109.235') {die('Not allowed access!');}
include("config.php");
$tomb = array();
$serial = $_GET['serial'];
$msh->query("SELECT * FROM " . CRMADATBAZIS . ".h_programs WHERE prPass='" . $serial . "' LIMIT 1;");
$prog = $msh->fetchAssoc();
if (empty($prog)) die();
$msh->query("SELECT hlUser FROM " . CRMADATBAZIS . ".hardlock WHERE hlNum='" . substr($serial, 0, 6) . "' LIMIT 1;");
$res = $msh->fetchAssoc();
if (empty($res)) die();
if ((int)$res[0]['hlUser'] > 0) {
$tomb['nUserID'] = $res[0]['hlUser'];
$msh->query("SELECT * FROM " . CRMADATBAZIS . ".u_emails WHERE nUserID='" . $tomb['nUserID'] . "';");
$res = $msh->fetchAssoc();
if (!empty($res)) {
foreach ($res as $k => $row) {
if ((int)$row['default'] == 1) {
$tomb['strEmail'] = $row['email'];
break;
}
}
if ($tomb['email'] == "") $tomb['strEmail'] = $res[0]['email'];
}
$msh->query("SELECT * FROM " . CRMADATBAZIS . ".users WHERE nUserID=" . $tomb['nUserID'] . " LIMIT 1;");
$res = $msh->fetchAssoc();
if (empty($res)) die();
$tomb['strName'] = $res[0]['strName'];
$tomb['strCompany'] = $res[0]['strCompany'];
} else {
$tomb['strName'] = $res[0]['hlUser'];
}
$strXML = '<?xml version="1.0" encoding="utf-8"' . '?' . '>
<User>
<bActive>' . ((int)$prog[0]['prStat'] == 0 ? 'TRUE' : 'FALSE') . '</bActive>
<strEmail>' . $tomb['strEmail'] . '</strEmail>
<strName>' . $tomb['strName'] . '</strName>
<strCompany>' . $tomb['strCompany'] . '</strCompany>
</User>';
print $strXML;

View File

@ -1,33 +0,0 @@
<?php
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
// 6 jegyű hardlock | segment(3);
if (isset($_GET["hlnum"])) $hlnum = $_GET["hlnum"];
else $hlnum = $_GET['serial'];
$ver = $_GET['ver']; // akt: 2016 | segment(6);
$isid = $_GET['isid'];
$npid = $_GET['npid'];
$isTwTw = $_GET['twtw'];
$seatID = $_GET['seatid'];
$build = $_GET['build'];
$isTwTw = $isTwTw == 'true';
crm_database::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`p_versions` WHERE verName LIKE '%" . $ver . "%' LIMIT 1;");
$tmp = crm_database::getInstance()->fetchNext();
$ver = $tmp;
crm_database::getInstance()->query("SELECT * FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prHlNum='" . $hlnum . "' AND prVerID='" . $ver['verID'] . "' LIMIT 1;");
$prog = crm_database::getInstance()->fetchNext();
if (empty($prog) == false) {
if ($isid != '' && isset($isid)) {
$softwarekey = Codegen::IsSoftwareKey($prog['prPass']);
if ($softwarekey == false) // A regisztracional a gepazonositot kuldi a program, ez hardware kulcsnal nem alkalmazhato
$isid = crm_hardlock::GetIsidFromPasswordForHardwareKeys($prog['prPass']);
crm_hardlock::RegisterProgram($prog['prPass'], $isid, "", $npid, "", $isTwTw, $seatID, $build);
}
print $prog['prPass'];
}

View File

@ -1,64 +0,0 @@
<?php
require_once('common_cadline_libraries/crm_users.class.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/libraries/vendor/google-api/src/Google/autoload.php');
if (!isset($_GET['state']) || !isset($_GET['code'])) exit();
$datas = json_decode(base64_decode($_GET['state']));
$client = new Google_Client();
$client->setClientId('427394287601-f5fvh3809726dah7lq7d4pkl4af8p7av.apps.googleusercontent.com');
$client->setClientSecret('_qMqFv2zuk2b0z7fazwgNuBk');
$client->setRedirectUri('https://www.archlinexp.com/maintenance/google_redirect.php');
$client->addScope('email');
$client->addScope('profile');
$client->authenticate($_GET['code']);
$objOAuthService = new Google_Service_Oauth2($client);
if ($client->getAccessToken())
$userData = $objOAuthService->userinfo->get();
$datas->userName = $userData['name'];
$datas->userEmail = $userData['email'];
switch ($datas->action) {
case 'event_registration':
$event = new Event($datas);
$success = $event->registration() ? 'success' : 'failed';
if ($datas->evt_id == '107')
$returnedURL = 'https://www.archlinexp.com/education/events/2025-update-day-march';
else
$returnedURL = 'https://www.archlinexp.com/events';
header('Location: ' . $returnedURL . '?success=' . $success);
exit;
break;
case 'win_al_live':
$event = new Event($datas);
$success = $event->registerToWinLIVE() ? 'success' : 'failed';
$returnedURL = 'https://www.archlinexp.com/win-al-live';
header('Location: ' . $returnedURL . '?success=' . $success);
exit;
break;
case 'webinar_registration':
$event = new Event($datas);
$success = $event->registrationToWebinar() ? 'success' : 'failed';
$returnedURL = $datas->crm_db == 'clusers' ? 'https://www.archline.hu/oktatas/webinariumok/regisztracio' : 'https://www.archlinexp.com/webinars/registration';
header('Location: ' . $returnedURL . '?webinar_id=' . $datas->course_id . '&success=' . $success);
exit;
break;
default:
$returnedURL = 'https://www.archlinexp.com/';
header('Location: ' . $returnedURL);
exit;
break;
}

View File

@ -1,4 +0,0 @@
<?php
$session = isset($_GET['session']) ? $_GET['session'] : '';
echo $session + 1;

View File

@ -1,145 +0,0 @@
<?php
// minden nap 6:00-kor - hibás programindítások listája
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
require_once('config.mail.php');
require_once('libraries/phpmailer/PHPMailerAutoload.php');
$tegnap = date('Y-m-d', time() - (60 * 60 * 24));
$sql = "SELECT pwd, error FROM " . CRMADATBAZIS . ".`hibajelento` WHERE substring(datum, 1, 10) = '{$tegnap}' GROUP BY pwd ORDER BY pwd ASC";
crm_database::getInstance()->query($sql);
$kulcsokobjarray = crm_database::getInstance()->fetchAssoc();
$kulcsok = array();
foreach ($kulcsokobjarray as $obj) {
$object = (object)$obj;
$ctrName = "ures";
crm_database::getInstance()->query("SELECT hlCtrID, hlUser FROM " . CRMADATBAZIS . ".hardlock WHERE hlNum='" . substr($object->pwd, 0, 6) . "'");
$hardlock = crm_database::getInstance()->fetchNext();
$h = (object)$hardlock;
if ($h->hlCtrID) {
crm_database::getInstance()->query("SELECT ctrName FROM " . CRMADATBAZIS . ".countries WHERE ctrID=" . $h->hlCtrID);
$orszag = crm_database::getInstance()->fetchNext();
$o = (object)$orszag;
$ctrName = $o->ctrName;
}
if (is_numeric($h->hlUser)) {
crm_database::getInstance()->query("SELECT strName FROM " . CRMADATBAZIS . ".users WHERE nUserID=" . $h->hlUser);
$user = crm_database::getInstance()->fetchNext();
$u = (object)$user;
$user = $u->strName;
} else
$user = $h->hlUser;
$hibahun = $hibaeng = "";
if (strstr($object->error, "error: nincs ilyen password")) {
$hibahun = "nincs ilyen Sorozatszám";
$hibaeng = "no Serial code in CRM database";
$support = "Check user figures and send order to CadLine";
} elseif (strstr($object->error, "error: nem aktiv a program")) {
$hibahun = "nem aktiv a program";
$hibaeng = "this Serial code is not active";
$support = "Check why? (Maybe prohibited, but old hardlock was not sent back to office.)";
} elseif (strstr($object->error, "error: nincs vasarlasi idopont")) {
$hibahun = "nincs vasarlasi idopont a CRM-ben";
$hibaeng = "no selling date setup in database";
$support = "Check the User payments and ask new activation code from CadLine";
} elseif (strstr($object->error, "error: hianyzo kod")) {
$hibahun = "hianyzo Aktiválási kod";
$hibaeng = "no Activation code in CRM";
$support = "Check the User payments and ask new activation code from CadLine";
} elseif (strstr($object->error, "error: masik gep van regisztralva")) {
$hibahun = "masik gep van regisztralva - Feloldás kell";
$hibaeng = "this is already registered on another PC";
$support = "Check it, maybe user tried to download more times. <b>If its OK, ask to release from CadLine (after that user can register again and can use for more 60 days!)</b> Its your decision.";
} elseif (strstr($object->error, "error: nincs kifizetve")) {
$hibahun = "nincs kifizetve, aktiválási kód lejárt";
$hibaeng = "the program is not paid in CRM system";
$support = "Check the payment and ask new activation from CadLine";
} elseif (strstr($object->error, "error: tul sok telepites")) {
$hibahun = "túl sok telepités - Feloldás kell";
$hibaeng = "the program already registered ";
$support = "Check, discuss with user why tried it twice, and <b>If its OK, ask to release from CadLine (after that user can register again and can use for more 60 days!)</b> Its your decision.";
}
preg_match('/\d{16}/', $object->error, $serialmatch);
crm_database::getInstance()->query("SELECT * FROM " . CRMADATBAZIS . ".`h_programs` WHERE `prPass` = '" . $object->pwd . "' ORDER BY `prID` DESC LIMIT 1");
$arrDealer = crm_database::getInstance()->fetchAssoc();
$ujhibaskulcs = array();
$ujhibaskulcs['kulcs'] = $object->pwd;
$ujhibaskulcs['serial'] = $serialmatch[0];
$ujhibaskulcs['ctrName'] = $ctrName;
$ujhibaskulcs['user'] = $user;
$ujhibaskulcs['hibahun'] = $hibahun;
$ujhibaskulcs['hibaeng'] = $hibaeng;
$ujhibaskulcs['support'] = $support;
$ujhibaskulcs['dealer'] = $arrDealer[0]['prDealer'];
$kulcsok[] = $ujhibaskulcs;
}
$htmlkulcsok = "<table>\n";
$htmlkulcsok .= "<tr>\n";
$htmlkulcsok .= "\t<th>Hardlock No</th>\n";
$htmlkulcsok .= "\t<th>Serial No</th>\n";
$htmlkulcsok .= "\t<th>Country</th>\n";
$htmlkulcsok .= "\t<th>Dealer</th>\n";
$htmlkulcsok .= "\t<th>User name</th>\n";
$htmlkulcsok .= "\t<th>error message</th>\n";
//$htmlkulcsok .= "\t<th>hibaüzenet</th>\n";
$htmlkulcsok .= "\t<th>How should you support ?</th>\n";
$htmlkulcsok .= "</tr>\n";
foreach ($kulcsok as $kulcs) {
$htmlkulcsok .= "<tr>\n";
$htmlkulcsok .= "\t<td>{$kulcs['kulcs']}</td>\n";
$htmlkulcsok .= "\t<td>{$kulcs['serial']}</td>\n";
$htmlkulcsok .= "\t<td>{$kulcs['ctrName']}</td>\n";
$htmlkulcsok .= "\t<td>{$kulcs['dealer']}</td>\n";
$htmlkulcsok .= "\t<td>{$kulcs['user']}</td>\n";
$htmlkulcsok .= "\t<td>{$kulcs['hibaeng']}</td>\n";
//$htmlkulcsok .= "\t<td>{$kulcs['hibahun']}</td>\n";
$htmlkulcsok .= "\t<td>{$kulcs['support']}</td>\n";
$htmlkulcsok .= "</tr>\n";
}
$htmlkulcsok .= "</table>";
// $kulcslista = implode(", ",$kulcsok);
$message = "Ez egy automatikusan generált CRM rendszer üzenet. Azokról a kulcsokról, melyeknél tegnap ({$tegnap}) olyan programindítás történt, amire hiba volt a válasz:<br /><br />
Dear Administrator,<br /><br />
According to our system report please find the errors from yesterday below." .
$htmlkulcsok .= "<br /><br />Best Regards,<br /><br />Anikó Huszár";
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->CharSet = 'UTF-8';
$mail->Host = $mailconfig['Host'];
$mail->Username = $mailconfig['Username'];
$mail->Password = $mailconfig['Password'];
$mail->SMTPSecure = $mailconfig['SMTPSecure'];
$mail->Port = $mailconfig['Port'];
$mail->isHTML(TRUE);
$mail->setFrom(DEFAULT_EMAIL);
// $mail->addAddress('webdeveloper@cadline.hu');
// $mail->addAddress('aniko.huszar@cadline.hu');
$mail->addAddress('office@cadline.hu');
$mail->Subject = 'Hibas programinditasok';
$mail->msgHTML($message);
$mail->AltBody = strip_tags($message);
$mail->send();
unset($mail);
/*
// 2017.06.07. F.Zs.: levélküldő objektum lecserélve, mert nem működött
$conf = new JConfig();
$email = new CI_Email();
$email->initialize();
$email->setFrom('info@cadline.hu', 'CadLine');
$email->subject('Hibas programinditasok');
$email->message($message);
$email->send('aniko.huszar@cadline.hu', 'smtp');
*/

View File

@ -1 +0,0 @@
<!DOCTYPE html><title></title>

View File

@ -1,57 +0,0 @@
<?php
header('Content-Type: text/xml; charset=utf-8');
header('Content-Disposition: inline; filename=response.xml');
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
$year = (int)$_GET['year'];
$npID = $_GET['compid'];
$se = $_GET['se'];
$lang = $_GET['lang'];
$url = '';
$prefAzure = '';
$prefAws = '';
$ltString = $se != '' ? '_' . $se : '';
if ($year < 2023) {
$year = 2024;
}
if ($lang == 'kor') {
$prefAzure = '<Preferred>true</Preferred>';
}
if ($lang == 'us') {
$prefAws = '<Preferred>true</Preferred>';
}
$resultXml = '';
$mirrorLinks = crm_hardlock::getMirrorLinks();
$resultXml .= "<MirrorDownloads>";
foreach ($mirrorLinks as $mirrorLink) {
$url = crm_hardlock::generateDownloadUrl($mirrorLink['link'], $year, $ltString);
$resultXml .= "<Mirror>";
if ($mirrorLink['id'] == 2) {
$resultXml .= $prefAws;
}
if ($mirrorLink['id'] == 3) {
$resultXml .= $prefAzure;
}
$resultXml .= "<Link>{$url}</Link>";
if ($mirrorLink['comment'] != '') {
$resultXml .= "<Comment>" . $mirrorLink['comment'] . "</Comment>";
}
$resultXml .= "</Mirror>";
}
$resultXml .= "</MirrorDownloads>";
echo $resultXml;

View File

@ -1,42 +0,0 @@
<?php
if (!class_exists('crm_hardlock')) require_once("common_cadline_libraries/crm_hardlock.class.php");
$npID = $_GET['compid'];
$year = (int)$_GET['year'];
$build = (int)$_GET['build'];
$param = explode("<{", $_GET['status']);
if ($npID == '' || $year == '' || $build == '' || $param == '') {
die();
}
$status = $param[0];
$instParam = '<{' . $param[1];
$mirror = '';
$encodedDownloadLink = crm_hardlock::getInstallerParam($instParam, 'downloadlink');
if ($encodedDownloadLink != '') {
$downloadLink = base64_decode($encodedDownloadLink);
$mirror = crm_hardlock::getMirrorFromUrl($downloadLink);
}
$compid = (int)crm_hardlock::AddOrUpdateComputer($npID, '');
if ($mirror != '') {
crm_hardlock::updateMirror($compid, $mirror);
}
if ($status != '') {
Database::getInstance()->insert(
'local_crm.installer_log',
array(
"compID" => $compid,
"year" => $year,
"build" => $build,
"status" => $status,
"instert_date" => date('Y-m-d H:i:s')
),
'iiiss'
);
}

View File

@ -1,2 +0,0 @@
<?php
echo 'OK';

File diff suppressed because one or more lines are too long

View File

@ -1,132 +0,0 @@
//download.js v3.0, by dandavis; 2008-2014. [CCBY2] see http://danml.com/download.html for tests/usage
// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime
// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs
// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support
// data can be a string, Blob, File, or dataURL
function download(data, strFileName, strMimeType) {
var self = window, // this script is only for browsers anyway...
u = "application/octet-stream", // this default mime also triggers iframe downloads
m = strMimeType || u,
x = data,
D = document,
a = D.createElement("a"),
z = function (a) { return String(a); },
B = self.Blob || self.MozBlob || self.WebKitBlob || z,
BB = self.MSBlobBuilder || self.WebKitBlobBuilder || self.BlobBuilder,
fn = strFileName || "download",
blob,
b,
ua,
fr;
//if(typeof B.bind === 'function' ){ B=B.bind(self); }
if (String(this) === "true") { //reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback
x = [x, m];
m = x[0];
x = x[1];
}
//go ahead and download dataURLs right away
if (String(x).match(/^data\:[\w+\-]+\/[\w+\-]+[,;]/)) {
return navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs:
navigator.msSaveBlob(d2b(x), fn) :
saver(x); // everyone else can save dataURLs un-processed
}//end if dataURL passed?
try {
blob = x instanceof B ?
x :
new B([x], { type: m });
} catch (y) {
if (BB) {
b = new BB();
b.append([x]);
blob = b.getBlob(m); // the blob
}
}
function d2b(u) {
var p = u.split(/[:;,]/),
t = p[1],
dec = p[2] == "base64" ? atob : decodeURIComponent,
bin = dec(p.pop()),
mx = bin.length,
i = 0,
uia = new Uint8Array(mx);
for (i; i < mx; ++i) uia[i] = bin.charCodeAt(i);
return new B([uia], { type: t });
}
function saver(url, winMode) {
if ('download' in a) { //html5 A[download]
a.href = url;
a.setAttribute("download", fn);
a.innerHTML = "downloading...";
D.body.appendChild(a);
setTimeout(function () {
a.click();
D.body.removeChild(a);
if (winMode === true) { setTimeout(function () { self.URL.revokeObjectURL(a.href); }, 250); }
}, 66);
return true;
}
//do iframe dataURL download (old ch+FF):
var f = D.createElement("iframe");
D.body.appendChild(f);
if (!winMode) { // force a mime that will download:
url = "data:" + url.replace(/^data:([\w\/\-\+]+)/, u);
}
f.src = url;
setTimeout(function () { D.body.removeChild(f); }, 333);
}//end saver
if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)
return navigator.msSaveBlob(blob, fn);
}
if (self.URL) { // simple fast and modern way using Blob and URL:
saver(self.URL.createObjectURL(blob), true);
} else {
// handle non-Blob()+non-URL browsers:
if (typeof blob === "string" || blob.constructor === z) {
try {
return saver("data:" + m + ";base64," + self.btoa(blob));
} catch (y) {
return saver("data:" + m + "," + encodeURIComponent(blob));
}
}
// Blob but not URL:
fr = new FileReader();
fr.onload = function (e) {
saver(this.result);
};
fr.readAsDataURL(blob);
}
return true;
} /* end download() */

File diff suppressed because one or more lines are too long

View File

@ -1,427 +0,0 @@
/*
jQuery News Ticker is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 2 of the License.
jQuery News Ticker is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with jQuery News Ticker. If not, see <http://www.gnu.org/licenses/>.
*/
(function ($) {
$.fn.ticker = function (options) {
// Extend our default options with those provided.
// Note that the first arg to extend is an empty object -
// this is to keep from overriding our "defaults" object.
var opts = $.extend({}, $.fn.ticker.defaults, options);
// check that the passed element is actually in the DOM
if ($(this).length == 0) {
if (window.console && window.console.log) {
window.console.log('Element does not exist in DOM!');
}
else {
alert('Element does not exist in DOM!');
}
return false;
}
/* Get the id of the UL to get our news content from */
var newsID = '#' + $(this).attr('id');
/* Get the tag type - we will check this later to makde sure it is a UL tag */
var tagType = $(this).get(0).tagName;
return this.each(function () {
// get a unique id for this ticker
var uniqID = getUniqID();
/* Internal vars */
var settings = {
position: 0,
time: 0,
distance: 0,
newsArr: {},
play: true,
paused: false,
contentLoaded: false,
dom: {
contentID: '#ticker-content-' + uniqID,
titleID: '#ticker-title-' + uniqID,
titleElem: '#ticker-title-' + uniqID + ' SPAN',
tickerID: '#ticker-' + uniqID,
wrapperID: '#ticker-wrapper-' + uniqID,
revealID: '#ticker-swipe-' + uniqID,
revealElem: '#ticker-swipe-' + uniqID + ' SPAN',
controlsID: '#ticker-controls-' + uniqID,
prevID: '#prev-' + uniqID,
nextID: '#next-' + uniqID,
playPauseID: '#play-pause-' + uniqID
}
};
// if we are not using a UL, display an error message and stop any further execution
if (tagType != 'UL' && tagType != 'OL' && opts.htmlFeed === true) {
debugError('Cannot use <' + tagType.toLowerCase() + '> type of element for this plugin - must of type <ul> or <ol>');
return false;
}
// set the ticker direction
opts.direction == 'rtl' ? opts.direction = 'right' : opts.direction = 'left';
// lets go...
initialisePage();
/* Function to get the size of an Object*/
function countSize(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
function getUniqID() {
var newDate = new Date;
return newDate.getTime();
}
/* Function for handling debug and error messages */
function debugError(obj) {
if (opts.debugMode) {
if (window.console && window.console.log) {
window.console.log(obj);
}
else {
alert(obj);
}
}
}
/* Function to setup the page */
function initialisePage() {
// process the content for this ticker
processContent();
// add our HTML structure for the ticker to the DOM
$(newsID).wrap('<div id="' + settings.dom.wrapperID.replace('#', '') + '"></div>');
// remove any current content inside this ticker
$(settings.dom.wrapperID).children().remove();
$(settings.dom.wrapperID).append('<div id="' + settings.dom.tickerID.replace('#', '') + '" class="ticker"><div id="' + settings.dom.titleID.replace('#', '') + '" class="ticker-title"><span><!-- --></span></div><p id="' + settings.dom.contentID.replace('#', '') + '" class="ticker-content"></p><div id="' + settings.dom.revealID.replace('#', '') + '" class="ticker-swipe"><span><!-- --></span></div></div>');
$(settings.dom.wrapperID).removeClass('no-js').addClass('ticker-wrapper has-js ' + opts.direction);
// hide the ticker
$(settings.dom.tickerElem + ',' + settings.dom.contentID).hide();
// add the controls to the DOM if required
if (opts.controls) {
// add related events - set functions to run on given event
$(settings.dom.controlsID).live('click mouseover mousedown mouseout mouseup', function (e) {
var button = e.target.id;
if (e.type == 'click') {
switch (button) {
case settings.dom.prevID.replace('#', ''):
// show previous item
settings.paused = true;
$(settings.dom.playPauseID).addClass('paused');
manualChangeContent('prev');
break;
case settings.dom.nextID.replace('#', ''):
// show next item
settings.paused = true;
$(settings.dom.playPauseID).addClass('paused');
manualChangeContent('next');
break;
case settings.dom.playPauseID.replace('#', ''):
// play or pause the ticker
if (settings.play == true) {
settings.paused = true;
$(settings.dom.playPauseID).addClass('paused');
pauseTicker();
}
else {
settings.paused = false;
$(settings.dom.playPauseID).removeClass('paused');
restartTicker();
}
break;
}
}
else if (e.type == 'mouseover' && $('#' + button).hasClass('controls')) {
$('#' + button).addClass('over');
}
else if (e.type == 'mousedown' && $('#' + button).hasClass('controls')) {
$('#' + button).addClass('down');
}
else if (e.type == 'mouseup' && $('#' + button).hasClass('controls')) {
$('#' + button).removeClass('down');
}
else if (e.type == 'mouseout' && $('#' + button).hasClass('controls')) {
$('#' + button).removeClass('over');
}
});
// add controls HTML to DOM
$(settings.dom.wrapperID).append('<ul id="' + settings.dom.controlsID.replace('#', '') + '" class="ticker-controls"><li id="' + settings.dom.playPauseID.replace('#', '') + '" class="jnt-play-pause controls"><a href=""><!-- --></a></li><li id="' + settings.dom.prevID.replace('#', '') + '" class="jnt-prev controls"><a href=""><!-- --></a></li><li id="' + settings.dom.nextID.replace('#', '') + '" class="jnt-next controls"><a href=""><!-- --></a></li></ul>');
}
if (opts.displayType != 'fade') {
// add mouse over on the content
$(settings.dom.contentID).mouseover(function () {
if (settings.paused == false) {
pauseTicker();
}
}).mouseout(function () {
if (settings.paused == false) {
restartTicker();
}
});
}
// we may have to wait for the ajax call to finish here
if (!opts.ajaxFeed) {
setupContentAndTriggerDisplay();
}
}
/* Start to process the content for this ticker */
function processContent() {
// check to see if we need to load content
if (settings.contentLoaded == false) {
// construct content
if (opts.ajaxFeed) {
if (opts.feedType == 'xml') {
$.ajax({
url: opts.feedUrl,
cache: false,
dataType: opts.feedType,
async: true,
success: function (data) {
count = 0;
// get the 'root' node
for (var a = 0; a < data.childNodes.length; a++) {
if (data.childNodes[a].nodeName == 'rss') {
xmlContent = data.childNodes[a];
}
}
// find the channel node
for (var i = 0; i < xmlContent.childNodes.length; i++) {
if (xmlContent.childNodes[i].nodeName == 'channel') {
xmlChannel = xmlContent.childNodes[i];
}
}
// for each item create a link and add the article title as the link text
for (var x = 0; x < xmlChannel.childNodes.length; x++) {
if (xmlChannel.childNodes[x].nodeName == 'item') {
xmlItems = xmlChannel.childNodes[x];
var title, link = false;
for (var y = 0; y < xmlItems.childNodes.length; y++) {
if (xmlItems.childNodes[y].nodeName == 'title') {
title = xmlItems.childNodes[y].lastChild.nodeValue;
}
else if (xmlItems.childNodes[y].nodeName == 'link') {
link = xmlItems.childNodes[y].lastChild.nodeValue;
}
if ((title !== false && title != '') && link !== false) {
settings.newsArr['item-' + count] = { type: opts.titleText, content: '<a href="' + link + '">' + title + '</a>' }; count++; title = false; link = false;
}
}
}
}
// quick check here to see if we actually have any content - log error if not
if (countSize(settings.newsArr < 1)) {
debugError('Couldn\'t find any content from the XML feed for the ticker to use!');
return false;
}
settings.contentLoaded = true;
setupContentAndTriggerDisplay();
}
});
}
else {
debugError('Code Me!');
}
}
else if (opts.htmlFeed) {
if ($(newsID + ' LI').length > 0) {
$(newsID + ' LI').each(function (i) {
// maybe this could be one whole object and not an array of objects?
settings.newsArr['item-' + i] = { type: opts.titleText, content: $(this).html() };
});
}
else {
debugError('Couldn\'t find HTML any content for the ticker to use!');
return false;
}
}
else {
debugError('The ticker is set to not use any types of content! Check the settings for the ticker.');
return false;
}
}
}
function setupContentAndTriggerDisplay() {
settings.contentLoaded = true;
// update the ticker content with the correct item
// insert news content into DOM
$(settings.dom.titleElem).html(settings.newsArr['item-' + settings.position].type);
$(settings.dom.contentID).html(settings.newsArr['item-' + settings.position].content);
// set the next content item to be used - loop round if we are at the end of the content
if (settings.position == (countSize(settings.newsArr) - 1)) {
settings.position = 0;
}
else {
settings.position++;
}
// get the values of content and set the time of the reveal (so all reveals have the same speed regardless of content size)
distance = $(settings.dom.contentID).width();
time = distance / opts.speed;
// start the ticker animation
revealContent();
}
// slide back cover or fade in content
function revealContent() {
$(settings.dom.contentID).css('opacity', '1');
if (settings.play) {
// get the width of the title element to offset the content and reveal
var offset = $(settings.dom.titleID).width() + 20;
$(settings.dom.revealID).css(opts.direction, offset + 'px');
// show the reveal element and start the animation
if (opts.displayType == 'fade') {
// fade in effect ticker
$(settings.dom.revealID).hide(0, function () {
$(settings.dom.contentID).css(opts.direction, offset + 'px').fadeIn(opts.fadeInSpeed, postReveal);
});
}
else if (opts.displayType == 'scroll') {
// to code
}
else {
// default bbc scroll effect
$(settings.dom.revealElem).show(0, function () {
$(settings.dom.contentID).css(opts.direction, offset + 'px').show();
// set our animation direction
animationAction = opts.direction == 'right' ? { marginRight: distance + 'px' } : { marginLeft: distance + 'px' };
$(settings.dom.revealID).css('margin-' + opts.direction, '0px').delay(20).animate(animationAction, time, 'linear', postReveal);
});
}
}
else {
return false;
}
};
// here we hide the current content and reset the ticker elements to a default state ready for the next ticker item
function postReveal() {
if (settings.play) {
// we have to separately fade the content out here to get around an IE bug - needs further investigation
$(settings.dom.contentID).delay(opts.pauseOnItems).fadeOut(opts.fadeOutSpeed);
// deal with the rest of the content, prepare the DOM and trigger the next ticker
if (opts.displayType == 'fade') {
$(settings.dom.contentID).fadeOut(opts.fadeOutSpeed, function () {
$(settings.dom.wrapperID)
.find(settings.dom.revealElem + ',' + settings.dom.contentID)
.hide()
.end().find(settings.dom.tickerID + ',' + settings.dom.revealID)
.show()
.end().find(settings.dom.tickerID + ',' + settings.dom.revealID)
.removeAttr('style');
setupContentAndTriggerDisplay();
});
}
else {
$(settings.dom.revealID).hide(0, function () {
$(settings.dom.contentID).fadeOut(opts.fadeOutSpeed, function () {
$(settings.dom.wrapperID)
.find(settings.dom.revealElem + ',' + settings.dom.contentID)
.hide()
.end().find(settings.dom.tickerID + ',' + settings.dom.revealID)
.show()
.end().find(settings.dom.tickerID + ',' + settings.dom.revealID)
.removeAttr('style');
setupContentAndTriggerDisplay();
});
});
}
}
else {
$(settings.dom.revealElem).hide();
}
}
// pause ticker
function pauseTicker() {
settings.play = false;
// stop animation and show content - must pass "true, true" to the stop function, or we can get some funky behaviour
$(settings.dom.tickerID + ',' + settings.dom.revealID + ',' + settings.dom.titleID + ',' + settings.dom.titleElem + ',' + settings.dom.revealElem + ',' + settings.dom.contentID).stop(true, true);
$(settings.dom.revealID + ',' + settings.dom.revealElem).hide();
$(settings.dom.wrapperID)
.find(settings.dom.titleID + ',' + settings.dom.titleElem).show()
.end().find(settings.dom.contentID).show();
}
// play ticker
function restartTicker() {
settings.play = true;
settings.paused = false;
// start the ticker again
postReveal();
}
// change the content on user input
function manualChangeContent(direction) {
pauseTicker();
switch (direction) {
case 'prev':
if (settings.position == 0) {
settings.position = countSize(settings.newsArr) - 2;
}
else if (settings.position == 1) {
settings.position = countSize(settings.newsArr) - 1;
}
else {
settings.position = settings.position - 2;
}
$(settings.dom.titleElem).html(settings.newsArr['item-' + settings.position].type);
$(settings.dom.contentID).html(settings.newsArr['item-' + settings.position].content);
break;
case 'next':
$(settings.dom.titleElem).html(settings.newsArr['item-' + settings.position].type);
$(settings.dom.contentID).html(settings.newsArr['item-' + settings.position].content);
break;
}
// set the next content item to be used - loop round if we are at the end of the content
if (settings.position == (countSize(settings.newsArr) - 1)) {
settings.position = 0;
}
else {
settings.position++;
}
}
});
};
// plugin defaults - added as a property on our plugin function
$.fn.ticker.defaults = {
speed: 0.10,
ajaxFeed: false,
feedUrl: '',
feedType: 'xml',
displayType: 'reveal',
htmlFeed: true,
debugMode: true,
controls: true,
titleText: 'Latest',
direction: 'ltr',
pauseOnItems: 3000,
fadeInSpeed: 600,
fadeOutSpeed: 300
};
})(jQuery);

View File

@ -1,121 +0,0 @@
/*!
JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
<http://stuk.github.io/jszip-utils>
(c) 2014 Stuart Knightley, David Duponchel
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
*/
!function (e) { "object" == typeof exports ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : "undefined" != typeof window ? window.JSZipUtils = e() : "undefined" != typeof global ? global.JSZipUtils = e() : "undefined" != typeof self && (self.JSZipUtils = e()) }(function () {
var define, module, exports; return (function e(t, n, r) { function s(o, u) { if (!n[o]) { if (!t[o]) { var a = typeof require == "function" && require; if (!u && a) return a(o, !0); if (i) return i(o, !0); throw new Error("Cannot find module '" + o + "'") } var f = n[o] = { exports: {} }; t[o][0].call(f.exports, function (e) { var n = t[o][1][e]; return s(n ? n : e) }, f, f.exports, e, t, n, r) } return n[o].exports } var i = typeof require == "function" && require; for (var o = 0; o < r.length; o++)s(r[o]); return s })({
1: [function (require, module, exports) {
'use strict';
var JSZipUtils = {};
// just use the responseText with xhr1, response with xhr2.
// The transformation doesn't throw away high-order byte (with responseText)
// because JSZip handles that case. If not used with JSZip, you may need to
// do it, see https://developer.mozilla.org/En/Using_XMLHttpRequest#Handling_binary_data
JSZipUtils._getBinaryFromXHR = function (xhr) {
// for xhr.responseText, the 0xFF mask is applied by JSZip
return xhr.response || xhr.responseText;
};
// taken from jQuery
function createStandardXHR() {
try {
return new window.XMLHttpRequest();
} catch (e) { }
}
function createActiveXHR() {
try {
return new window.ActiveXObject("Microsoft.XMLHTTP");
} catch (e) { }
}
// Create the request object
var createXHR = window.ActiveXObject ?
/* Microsoft failed to properly
* implement the XMLHttpRequest in IE7 (can't request local files),
* so we use the ActiveXObject when it is available
* Additionally XMLHttpRequest can be disabled in IE7/IE8 so
* we need a fallback.
*/
function () {
return createStandardXHR() || createActiveXHR();
} :
// For all other browsers, use the standard XMLHttpRequest object
createStandardXHR;
JSZipUtils.getBinaryContent = function (path, callback) {
/*
* Here is the tricky part : getting the data.
* In firefox/chrome/opera/... setting the mimeType to 'text/plain; charset=x-user-defined'
* is enough, the result is in the standard xhr.responseText.
* cf https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data_in_older_browsers
* In IE <= 9, we must use (the IE only) attribute responseBody
* (for binary data, its content is different from responseText).
* In IE 10, the 'charset=x-user-defined' trick doesn't work, only the
* responseType will work :
* http://msdn.microsoft.com/en-us/library/ie/hh673569%28v=vs.85%29.aspx#Binary_Object_upload_and_download
*
* I'd like to use jQuery to avoid this XHR madness, but it doesn't support
* the responseType attribute : http://bugs.jquery.com/ticket/11461
*/
try {
var xhr = createXHR();
xhr.open('GET', path, true);
// recent browsers
if ("responseType" in xhr) {
xhr.responseType = "arraybuffer";
}
// older browser
if (xhr.overrideMimeType) {
xhr.overrideMimeType("text/plain; charset=x-user-defined");
}
xhr.onreadystatechange = function (evt) {
var file, err;
// use `xhr` and not `this`... thanks IE
if (xhr.readyState === 4) {
if (xhr.status === 200 || xhr.status === 0) {
file = null;
err = null;
try {
file = JSZipUtils._getBinaryFromXHR(xhr);
} catch (e) {
err = new Error(e);
}
callback(err, file);
} else {
callback(new Error("Ajax error for " + path + " : " + this.status + " " + this.statusText), null);
}
}
};
xhr.send();
} catch (e) {
callback(new Error(e), null);
}
};
// export
module.exports = JSZipUtils;
// enforcing Stuk's coding style
// vim: set shiftwidth=4 softtabstop=4:
}, {}]
}, {}, [1])
(1)
});
;

File diff suppressed because it is too large Load Diff

View File

@ -1,34 +0,0 @@
$(function () {
// start the ticker
$('#js-news').ticker();
// hide the release history when the page loads
$('#release-wrapper').css('margin-top', '-' + ($('#release-wrapper').height() + 20) + 'px');
// show/hide the release history on click
$('a[href="#release-history"]').toggle(function () {
$('#release-wrapper').animate({
marginTop: '0px'
}, 600, 'linear');
}, function () {
$('#release-wrapper').animate({
marginTop: '-' + ($('#release-wrapper').height() + 20) + 'px'
}, 600, 'linear');
});
$('#download a').mousedown(function () {
_gaq.push(['_trackEvent', 'download-button', 'clicked'])
});
});
// google analytics code
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-6132309-2']);
_gaq.push(['_setDomainName', 'www.jquerynewsticker.com']);
_gaq.push(['_trackPageview']);
(function () {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

View File

@ -1,31 +0,0 @@
<?php
/*
------------------
Language: English
------------------
*/
$lang = array();
$lang['DOWNLOAD_BUTTON'] = "Download";
$lang['MESSAGE'] = "Test message";
// Errors
$lang['ERROR_CRC'] = "The file check found this file not valid.";
$lang['ERROR_PROGRAM_DISABLED'] = "This program is disabled";
$lang['ERROR_ANOTHER_COMPUTER_REGISTERED'] = "";
$lang['ERROR_TOO_MANY_INSTALLATION'] = "";
$lang['ERROR_UNKNOWN_PASSWORD'] = "";
$lang['ERROR_CODE_IS_MISSING'] = "";
$lang['ERROR_SELL_DATE_IS_MISSING'] = "";
$lang['ERROR_INACTIVE_REGISTRATION'] = "";
// Solutions
$lang['SOLUTION_CRC'] = "";
$lang['SOLUTION_PROGRAM_DISABLED'] = "";
$lang['SOLUTION_ANOTHER_COMPUTER_REGISTERED'] = "";
$lang['SOLUTION_TOO_MANY_INSTALLATION'] = "";
$lang['SOLUTION_UNKNOWN_PASSWORD'] = "";
$lang['SOLUTION_CODE_IS_MISSING'] = "";
$lang['SOLUTION_SELL_DATE_IS_MISSING'] = "";
$lang['SOLUTION_INACTIVE_REGISTRATION'] = "";

View File

@ -1,31 +0,0 @@
<?php
/*
------------------
Language: Hungarian
------------------
*/
$lang = array();
$lang['DOWNLOAD_BUTTON'] = "Letöltés";
$lang['MESSAGE'] = "Teszt szöveg";
// Errors
$lang['ERROR_CRC'] = "A fájlellenorzés alapján a fájl nem megfelelő.";
$lang['ERROR_PROGRAM_DISABLED'] = "Nem aktív a program.";
$lang['ERROR_ANOTHER_COMPUTER_REGISTERED'] = "Másik gép van regisztrálva.";
$lang['ERROR_TOO_MANY_INSTALLATION'] = "Túl sok telepítés.";
$lang['ERROR_UNKNOWN_PASSWORD'] = "Nincs ilyen szériaszám.";
$lang['ERROR_CODE_IS_MISSING'] = "Hiányzó aktiváló kód.";
$lang['ERROR_SELL_DATE_IS_MISSING'] = "Nincs vásárlási időpont.";
$lang['ERROR_INACTIVE_REGISTRATION'] = "Nem aktív regisztráció.";
// Solutions
$lang['SOLUTION_CRC'] = "";
$lang['SOLUTION_PROGRAM_DISABLED'] = "Vegye fel a kapcsolatot";
$lang['SOLUTION_ANOTHER_COMPUTER_REGISTERED'] = "";
$lang['SOLUTION_TOO_MANY_INSTALLATION'] = "";
$lang['SOLUTION_UNKNOWN_PASSWORD'] = "";
$lang['SOLUTION_CODE_IS_MISSING'] = "";
$lang['SOLUTION_SELL_DATE_IS_MISSING'] = "";
$lang['SOLUTION_INACTIVE_REGISTRATION'] = "";

View File

@ -1,223 +0,0 @@
1;Jamie Wilson;33;http://www.33interiors.com;info@33interiors.com;Tel: 020 7921 4833;35 Soho Square;London;United Kingdom;W1D 3QX
2;Abbey Emmerson;Trend Designs;http://www.trenddesigns.co.uk;info@trenddesigns.co.uk;Tel: 01932 344742;4 Starwood Close;West Byfleet;United Kingdom;KT14 6QB
3;Kirsty McMorron;Absolute Abode;http://www.absoluteabodedesign.com;hello@absoluteabode.com;Tel: 0208 090 3210;76-78 Coombe Lane;London;United Kingdom;SW20 0AX
4;Aine Mac Dermott;Pre-designer.com;http://www.pre-designer.com;aine@pre-designer.com;;;;;;
5;Alexia Osborne;Alexia Osborne Design Limited;http://alexiaosbornedesign.com;studio@alexiaosbornedesign.com;Tel: 02081274322;Studio CW18, The Cranewell Building, ;London;United Kingdom;SW6 2AD
6;Alice Constable Maxwell;ACM Interior Design Ltd;http://www.acm-interiors.com;studio@acm-interiors.com;Tel: 07956 209591;Unit 219 Westbourne Studios;London;United Kingdom;W10 5JJ
7;Alice Webster;Alice Webster Interiors Limited;http://www.alicewebsterinteriors.com;alice.webster@hotmail.co.uk;Tel: 020 8368 8982;88 Stanley Road;London;United Kingdom;N11 2LG
8;Alidad ;Alidad Limited;http://www.alidad.com;enquiries@alidad.com;Tel: 020 7384 0121;The Lighthouse, Gasworks;London;United Kingdom;SW6 2AD
9;Alison Wright;Future Proof Home Ltd t/as Easy Living Home;http://www.easylivinghome.co.uk;alison@easylivinghome.co.uk;;;;;;
10;Alix Lawson;Lawson Robb London;http://www.lawsonrobb.com;studio@lawsonrobb.com;Tel: 020 7351 9383;533 Kings Road;London;United Kingdom;SW10 0TZ
11;Amanda Meade;Amanda Meade Interior Design Ltd;http://www.amandameadedesign.com;amanda.meade@mac.com;Tel: 01636626034;Reunion Barn, 3 The Pastures;Beckingham;United Kingdom;LN5 0RR
12;Amelia Carter;Amelia Carter Ltd;http://www.ameliacarter.com;enquiries@ameliacarter.com;Tel: 07747561046 ;26 Chaldon Rd;London;United Kingdom;SW6 7NJ
13;Angela Aston;Trineire Designs;http://www.trineire.com;;Tel: 020 8297 4144;384 Lee High Road;London;United Kingdom;SE12 8RW
14;Angela Cook;Christopher Cook Designs Ltd;http://www.christophercook.co.uk;CONTACT@CHRISTOPHERCOOK.CO.UK;Tel: 020 8941 9135;29-33 Creek Road;East Molesey;United Kingdom;KT8 9BE
15;Angela O'Donnell;The Design Service (UK) Ltd;http://www.thedesignservice.com;info@thedesignservice.com;Tel: 0845 052 5281;5 Edbury Bridge Road;London;United Kingdom;SW1W 8QX
16;Anna Burles;Anna BurlesStudio AB;http://www.annaburles.com;sayhello@annaburles.com;Tel: 020 7792 6821;Studio 41, Great Western Studios;London;United Kingdom;W2 5EU
17;Anna Kalnars;Infinite Design Devon;http://www.infinitedesigndevon.co.uk;enquiries@infinitedesigndevon.co.uk;Tel: 01548 853997;Highview;Kingsbridge;United Kingdom;TQ7 1AZ
18;Annabel Hall;Annabel Hall Design Ltd;http://www.annabelhalldesign.com/;annabel@annabelhalldesign.com;Tel: 01252 850527;The Old Parsonage, Church Street;Nr Farnham;United Kingdom;GU10 5QQ
19;Annabella Nassetti;A Living Concept Ltd;http://www.abnassetti.com;;Tel: 0845 262 3456, 44 (0)7825 279 287;Chelsea Wharf, Unit 20A;London;United Kingdom;SW10 0QJ
20;Anne Hatton;Embellishments Ltd;http://www.embellishmentsltd.co.uk;anne@embellishmentsltd.co.uk;Tel: 01753 882425, 07776-171-328;3 Oval Way;Gerrards Cross;United Kingdom;SL9 8PY
21;Annie Stevens;annie stevens;http://www.anniestevens.co.uk;designs@anniestevens.co.uk;Tel: 07768 387709;The Orangery;London;United Kingdom;SW17 7DW
22;Anouska Anquetil;Gilt & Gloss Design Ltd;http://www.giltandgloss.com;info@giltstudio.com;Tel: 07801 267684;2 Kersley Mews;London;United Kingdom;SW11 4PS
23;Anthony Paine;Anthony Paine Limited;http://www.anthonypaine.com;enquiries@anthonypaine.com;Tel: 01225 331935;18 Macaulay Buildings;Bath;United Kingdom;BA2 6AT
24;Antonia Stewart;Antonia Stewart Limited;http://www.antoniastewart.com;STUDIO@ANTONIASTEWART.COM;Tel: 0207 622 9539;17 Soudan Road;London;United Kingdom;SW11 4HH
25;April Russell;April Russell Designs Ltd;http://www.aprilrussell.com;studio@aprilrussell.com;Tel: 02030550090;13 Cheyne Court;London;United Kingdom;SW3 5TP
26;Laurence Rouveure;Ardesia Design Ltd;http://www.ardesiadesign.co.uk;info@ardesiadesign.co.uk, milena@ardesiadesign.co.uk;Tel: 020 7792 4274;Flat C, 2B Shrewsbury Mews;London;United Kingdom;W2 5PN
27;Atholl Macfarlane;Remus (Edinburgh) Limited;http://www.remusinteriors.com;remus@remusinteriors.com;Tel: 0131 225 6773;16B Stafford Street;Edinburgh;United Kingdom;EH3 7AU
28;Audrey Carden;Carden Cunietti;http://www.carden-cunietti.com;cc@carden-cunietti.com;Tel: 020 7724 9679;Unit 11-12 The Tay Building;London;United Kingdom;NW10 3HA
29;Badrieh Johari;JHR Interior Architecture and Design Ltd;http://www.jhr-interiors.com/;mail@jhr-interiors.com;Tel: +44 (0) 20 7603 5916;M.E.I.C. House, 2nd Floor;London;United Kingdom;W14 8NS
30;Ben Huckerby;Ben Huckerby Design Ltd;http://www.benhuckerbydesign.co.uk;info@benhuckerbydesign.co.uk;Tel: 0113 2445446;Unit 6, Jack Lane Industrial Estate;Leeds;United Kingdom;LS11 9NP
31;Benjamin Clarke;Curve Interior Design Ltd;http://www.curveinteriordesign.co.uk;enquiries@curveinteriordesign.co.uk;Tel: 0161 237 9300;101-103 Ducie House;Manchester;United Kingdom;M1 2JW
32;Beverley Barnett;Beverley Barnett Interior Design;http://www.beverleybarnett.co.uk;beverley@beverleybarnett.co.uk;Tel: 01923 857029;20 Newlands Avenue;Radlett;United Kingdom;WD7 8EL
33;Anastasia Antonova;Blanchard Ltd;http://www.blanchard.uk.com;studio@blanchard.uk.com;Tel: 020 7722 3570;55 Regent's Park Road;London;United Kingdom;NW1 8XD
34;Rebecca Scott;Boscolo Ltd;http://www.boscolo.co.uk;hello@boscolo.co.uk;Tel: 0845 2020208;The Old Garages;London;United Kingdom;NW7 3LH
35;Brenda Gibson;Complete Interior Co. Ltd;http://www.completeinterior.co.uk;info@completeinterior.co.uk;Tel: 020 8878 2282;18 White Hart Lane;London;United Kingdom;SW13 0PY
36;Brian Lawrence;Brian Lawrence Ltd;http://www.brianlawrence.net;info@brianlawrence.net;Tel: 01732 741308;Mount Pleasant, London Road;Sevenoaks;United Kingdom;TN13 2TQ
37;Bunny Turner;Turner Pocock;http://www.turnerpocock.co.uk;info@turnerpocock.co.uk;Tel: 020 34632390;The Sheherds Building, East Entrance;London;United Kingdom;W14 0DQ
38;Sophie Brough-Orton;Camellia Interiors Ltd;http://www.camelliainteriors.co.uk;info@camelliainteriors.co.uk;Tel: 01637 854304;3E Treloggan Industrial Estate;Newquay;United Kingdom;TR7 2SX
39;Carole Roberts;No. Twelve Queen Street Ltd.;http://www.twelvedesign.co.uk;interiors@twelvedesign.co.uk;Tel: 07774 283779;12 Queen Street;Bath;United Kingdom;BA1 1HE
40;Caroline Cobbold;Caroline Cobbold Design Ltd;http://carolinecobbolddesign.com;carolinecobbold@mac.com;Tel: 07831 580172;5 Rondu Road;London;United Kingdom;NW2 3HB
41;Caroline Cooper;Caroline Cooper Interiors;http://www.carolinecooper.co.uk;design@carolinecooper.co.uk;Tel: 07711 669816;The Pagoda Studio, Pagoda Gardens;London;United Kingdom;SE3 0UZ
42;caroline Fooks;Caroline Fooks Design;http://www.carolinefooksdesign.com;caroline@carolinefooksdesign.com;Tel: 020 7386 5772;Unit 13, Sullivan Enterprise Centre;London;United Kingdom;SW6 3DJ
43;Caroline Lawson;Chelsea Decorators Ltd;http://www.chelseadecorators.com;caroline@chelseadecorators.com, caroline.lawson@btconnect.com;Tel: 01939261972;Courtyard House;Baschurch;United Kingdom;SY4 2HH
44;Caroline Palk;Ashton House Design;http://www.ashtonhousedesign.co.uk;mail@ashtonhousedesign.co.uk;Tel: 07974 427579;C2 Linhay Business Park;Ashburton;United Kingdom;TQ13 7UP
45;Carolyn Lahiff;Trevor Lahiff Architects;http://www.carolyntrevor.co.uk;info@tlastudio.co.uk, info@carolyntrevor.co.uk;Tel: 020 7737 6181;Geneva House;London;United Kingdom;SE5 9QU
46;Carolyn Parker;Carolyn Parker Interior Design;http://www.carolynparker.com;carolyn@carolynparker.com, info@carolynparker.com;Tel: 07860 881355;Whenby Grange;Whenby;United Kingdom;YO61 4SE
47;Carolyne Myers;Caz Myers Design;http://www.cazmyers.com;studio@cazmyers.com;Tel: 020 8348 6464;59 Middle Lane;London;United Kingdom;N8 8PE
48;Carolina Sandri;Casa Forma;http://www.casaforma.co.uk;info@casaforma.co.uk;Tel: 020 7584 9495;14 Stanhope Mews West;London;United Kingdom;SW7 5RB
49;Cate Burren;Angel + Blume;http://www.angelandblume.com;info@angelandblume.com;Tel: 01223 479 434;17 Emmanuel Road;Cambridge;United Kingdom;CB1 1JW
50;Catherine Henderson;Catherine Henderson Design;http://www.catherinehenderson.com;catherine@catherinehenderson.com;Tel: 0141 427 2476;53 Dalziel Drive;Glasgow;United Kingdom;G41 4NY
51;Catherine Olasky;Olasky & Sinsteden;http://o-and-s.com/;information@o-and-s.com;Tel: 020 7518 8502;4-6 Canfield Place;London;United Kingdom;NW6 4BT
52;Chanelle Rains;Gramlick Designs Ltd;http://www.gramlickdesigns.co.uk; interiors@gramlickdesigns.co.uk;Tel: 01608664573;First Floor London House;Shipston on Stour;United Kingdom;CV36 4AB
53;Chantel van den Elshout;Chantel Elshout Design Consultancy Ltd;http://www.chantelelshout.com;design@chantelelshout.com;Tel: 020 7720 7859;Unit 3, 1B Union Court;London;United Kingdom;SW4 6JP
54;Chloe Bullock;Materialise Interiors Limited;http://www.materialiseinteriors.com;chloe@materialiseinteriors.com;Tel: 01273 699 922;70 Bonchurch Road;Brighton;United Kingdom;BN2 3PH
55;Christina Fallah;Christina Fallah Designs Limited;http://www.christina-fallah-designs.com;info@christina-fallah-designs.com;Tel: 0207 584 1240;2a Cromwell Place;London;United Kingdom;SW7 2JE
56;Christine May Lewsey;Christine May Interior Design;http://www.christinemayinteriors.co.uk;;Tel: 020 8498 0950;49 Hibbert Road;London;United Kingdom;E17 8HB
57;Christopher Dezille;Honky Design Ltd;http://www.honky.co.uk;honky@wildcard.co.uk;Tel: 020 7622 7144;Unit 1, Pavement Studios;London;United Kingdom;SW4 0BG
58;Christopher Vane Percy;Christopher Vane Percy;http://www.cvpdesigns.com;cvp@cvpdesigns.com;Tel: 07889 899390;CVP Designs c/o;Godmanchester;United Kingdom;PE29 2BA
59;Christy Austin;Austin Interior Design;http://www.austindesign.co.uk;enquiries@austindesign.co.uk;Tel: 020 7581 4551;Avenue Studios;London;United Kingdom;SW3 6HN
60;Ciara Langley;Harriet Anstruther Studio Ltd;http://www.harrietanstruther.com;info@harrietanstruther.com;Tel: 020 7584 4776;27 Thurloe Street;London;United Kingdom;SW7 2LQ
61;Cinzia Moretti;Moretti Interior Design Ltd;http://www.morettiinteriordesign.com;info@morettiinteriordesign.com;Tel: 07811158493;Studio 2B Bassein Park Road;London;United Kingdom;W12 9RY
62;Claire Nelson;Nelson Design Ltd;http://www.nelsondesign.co.uk;info@nelsondesign.co.uk;Tel: 020 7935 8600;2nd Floor, 3-5 Barrett Street;London;United Kingdom;W1U 1AY
63;Claire Tull;Studio12 Designs;http://www.s12d.co.uk;clairet@s12d.co.uk;Tel: 0118 941 8203;12 Brookside Calcot;Reading;United Kingdom;RG31 7PJ
64;Clare Pascoe;Pascoe Interiors Ltd;http://www.pascoeinteriors.com/;clare@pascoeinteriors.com;Tel: 07967 666787;4 Woodhorn Business Centre, Woodhorn Lane;Chichester;United Kingdom;PO20 2BX
65;Clare Topham;Clare Topham Interior Design;http://www.claretopham.com;contact@claretopham.com;Tel: 01273 206402;31 Cambridge Grove;Hove;United Kingdom;BN3 3ED
66;Clarissa Clifford;Clarissa Clifford;;;Tel: 0777 1765 980;Ugbrooke Park;Devon;United Kingdom;TQ13 0AD
67;Colette Liebenberg;Colette Liebenberg Design;;;Tel: 07557968098;Flora Cottage;South Molton;United Kingdom;EX36 4LN
68;Colin Orchard;Colin Orchard and Company Ltd.;;;Tel: 07802 753762;219a Kings Road;London;United Kingdom;SW3 5EJ
69;Constanze von Unruh;Constanze von Unruh Interior Design;http://www.constanze.co.uk;;Tel: 44785234156;81 Mount Ararat Road;Richmond;United Kingdom;TW10 6PL
70;Cynthia Garcia;Garcia Designs;http://garciadesigns.crevado.com/;cynthia@garciadesigns.co.uk;Tel: 020 8877 3863;1 Southfields Road;London;United Kingdom;SW18 1QW
71;Dan Hopwood;Daniel Hopwood Ltd;http://www.danielhopwood.com;studio@danielhopwood.com;read;Tel: 020 7286 2004;52 Great Western Studios;London;United Kingdom;W2 5EU
72;Darshika Shah;Shah Designs Ltd;http://www.shahdesignsltd.co.uk;darshikas@shahdesignsltd.co.uk;Tel: 07985433242;8 Blenheim Court;Harrow;United Kingdom;HA3 8AP
73;David Hales;David Hales Interior Design Ltd;http://www.davidhalesinteriordesign.co.uk;design@davidhalesinteriordesign.co.uk;Tel: 01372 750290;Studio 5/6 Design House;Bookham;United Kingdom;KT23 4HB
74;Davina Merola;Space Alchemy Ltd;http://www.space-alchemy.com;info@space-alchemy.com;Tel: 020 7987 1622;Worlds End Studios;London;United Kingdom;SW10 0RJ
75;Dean Keyworth;Armstrong Keyworth Interior Design;http://www.armstrong-keyworth.co.uk;dean@armstrong-keyworth.co.uk;Tel: 020 7584 1613;Augustus Court;London;United Kingdom;SW3 4JT
76;Debbie Gee;DG Interiors;http://www.dginteriors.co.uk;;Tel: 020 8296 1965;Richmond Bridge House;Twickenham;United Kingdom;TW1 2EX
77;Deborah Bass;Base interior;http://www.baseinterior.com;design@baseinterior.com;read;Tel: 0777 9664105;1A Baker Street;London;United Kingdom;W1U 8ED
78;Debra Kacher;dk Interiors;http://www.dkinteriors.uk.com;studio@dkinteriors.uk.com;Tel: 020 8455 1254;64 Meadway;London;United Kingdom;NW11 6QE
79;Debra McQuin;McQuin Partnership Ltd;http://www.mcquinpartnership.com;;Tel: 07799 690 826;165 Oakwood Court;London;United Kingdom;W14 8JE
80;Diana Bailey;Bailey Lewis;http://www.baileylewis.co.uk/;info@baileylewis.co.uk;Tel: 01621 782002;Otter Hut;Burnham-on-Crouch;United Kingdom;CM0 8AX
81;Diana Yakeley;Yakeley Associates Ltd;http://www.yakeley.com;mail@yakeley.com;read;Tel: 020 7609 9846;13 College Cross;London;United Kingdom;N1 1YY
82;Douglas Mackie;D Mackie Design Ltd.;http://www.dmackiedesign.com; info@dmackiedesign.com;away;Tel: 020 7487 3295;123 Gloucester Place;London;United Kingdom;W1U 6JZ
83;Camilla Leech;Element Studios;http://www.elementstudios.co.uk;info@elementstudios.co.uk;Tel: 07887 407456;10 Standingford House;Oxford;United Kingdom;OX4 1BA
84;Cecilia Halling;Elicyon Limited;http://www.elicyon.com; studio@elicyon.com;unsubscribed;Tel: 020 3772 0011;Studio 8, Fairbank Studios 2;London;United Kingdom;SW10 0RN
85;Elisabeth Denny;Margaret Sheridan Interior Decoration and Design;http://www.margaretsheridan.co.uk;enquiries@margaretsheridan.co.uk;deleted;Tel: 01953 850691;The Workrooms, Gurney's Manor;Norwich;United Kingdom;NR9 4NQ
86;Eliska Sapera;Eliska Design Associates Ltd;http://www.eliskadesign.com;eliska@eliskadesign.com;Tel: 02077235521;16A New Quebec Street;London;United Kingdom;W1H 7DG
87;Emile Azan;Chameleon Designs;http://www.chameleondesignsinteriors.co.uk/;emile@chameleondesignsinteriors.co.uk;Tel: 020 8473 1363;184 Lakedale Road;London;United Kingdom;SE18 1PU
88;Emma Green;Emma Green Design;http://www.emmagreendesign.com;emma@emmagreendesign.com;Tel: 020 7738 0637;47 Nansen Road;London;United Kingdom;SW11 5NS
89;Emma Pocock;Turner Pocock;http://www.turnerpocock.co.uk;info@turnerpocock.co.uk;Tel: 020 34632390;The Shepherds Building, East Entrance;London;United Kingdom;W14 0DQ
90;Fabien Gueret;Warret & Jullion;http://www.warretjullion.co.uk; interiors@warretjullion.co.uk ;Tel: 07852798690;15 Stratton Street;London;United Kingdom;W1J 8LQ
91;Fiona Andrews;Fiona Andrews Interiors Limited;http://www.fionaandrewsinteriors.com;fiona@fandrewsdesign.com;Tel: 07885 278585;Althea Studio;London;United Kingdom;SW6 2PF
92;Fiona Applegarth;Sable Interiors;http://www.sableinteriors.com;sales@sableinteriors.com;Tel: 020 8398 9777;124 Summer Road;Thames Ditton;United Kingdom;KT7 0QR
93;Fiona Barratt-Campbell;Fiona Barratt Interiors;http://fionabarrattinteriors.com;info@fionabarrattinteriors.com;read, Sol Campbell <sol@sol23.co.uk> read;Tel: 020 3262 0320;12 Francis Street;London;United Kingdom;SW1P 1QN
94;Fiona Finlay;Fiona S. Finlay;http://www.fionasfinlay.com;enquiry@fionasfinlay.com;Tel: 01887 840 488;Grantully Castle;By Aberfeldy;United Kingdom;PH15 2EG
95;Fiona Terry;Fiona TerryFiona Terry Designs Ltd;http://www.fionaterrydesigns.com;fiona@fionaterrydesigns.com;Tel: 07767 263411;23 Ranulf Road;London;United Kingdom;NW2 2BT
96;Fiona Watkins;Fiona Watkins Design Limited;http://www.fionawatkinsdesign.com;info@fionawatkinsdesign.com;Tel: 07793 555947;23 Garden Road;Knutsford;United Kingdom;WA16 6HT
97;Frances Blackham;Trevillion Interiors Ltd;http://www.trevillion.co.uk;admin@trevillion.co.uk ;Tel: 020 8367 9494;The Old Library;Hertford;United Kingdom;SG14 1RB
98;Frances Horn;FHI Design;http://www.fhidesign.com;frances@fhidesign.com;Tel: 01264 333 642;Belmont Cottage;Andover;United Kingdom;SP11 7QL
99;Francie Readman;Francie Readman Interiors;http://www.franciereadmaninteriors.com;info@franciereadmaninteriors.com;Tel: 01255 861507;New Hall;Thorpe-le-Soken;United Kingdom;CO16 0NH
100;Gabi Da Rocha;Gabi Da Rocha Interiors Ltd;http://www.gabidarochainteriors.com;gabi@gabidarochainteriors.com;Tel: 020 8891 3908;42 Crown Road;Twickenham;United Kingdom;TW1 3EH
101;Georgina Taylor Scott;Overbury Interiors;http://www.overburyinteriors.co.uk;info@overburyinteriors.co.uk;Carol Fetherson read;Tel: 01420 590219;Overybury Court;Alton;United Kingdom;GU34 4BX
102;Geraldine Morley;GERALDINE MORLEY INTERIOR DESIGN Ltd;http://www.geraldinemorley.com;geraldine@geraldinemorley.com;Tel: 020 8341 3608;45 Langdon Park Road;London;United Kingdom;N6 5PT
103;Gillian Rogerson;GILLIAN ROGERSON DESIGN LIMITED;http://www.gillianrogerson.co.uk;enquiries@gillianrogersondesign.com;Tel: 020 7917 9594;Studio 7A;London;United Kingdom;SW10 0NS
104;Giselle Mannering;de hasse;http://www.dehasse.co.uk;giselle@dehasse.co.uk;Tel: 01892 539923;De Hasse;Tunbridge Wells;United Kingdom;TN2 5RU
105;Joanna Khabaz;Godrich Interiors;http://www.godrichinteriors.com;info@godrichinteriors.com;Tel: 0207 221 4634;Studio 3, The Peoples Hall;London;United Kingdom;W11 4BE
106;Gordon Lindsay;Gordon Lindsay Design Limited;http://www.gordonlindsay.co.uk;gordon@gordonlindsay.co.uk;Tel: 07831 213156;The Studio, Nook Cottage;Harleston;United Kingdom;IP20 0LB
107;Gregory Phillips;Gregory Phillips Interiors;http://www.gregoryphillips.com;gp@gregoryphillips.com;Tel: 020 7724 3040;17 Savile Row;London;United Kingdom;W1S 3PN
108;Gwendoline Alderton;GA Interiors;http://www.ga-interiors.co.uk;gwendoline@ga-interiors.co.uk;Tel: 07841 519802;15 Tithe Barn Close;Saint Albans;United Kingdom;AL1 2QD
109;Harriet Anstruther;Harriet Anstruther Studio Ltd;http://www.harrietanstruther.com;info@harrietanstruther.com;Tel: 020 7584 4776;27 Thurloe Street;London;United Kingdom;SW7 2LQ
110;Harriet Forde;Harriet Forde Design Ltd;http://www.hf-design.co.uk;info@hf-design.co.uk;deleted;Tel: 020 7706 7985;4th Floor, 6 London Street;London;United Kingdom;W2 1HR
111;Helen Bygraves;Hill House Interiors;http://www.hillhouseinteriors.com;design@hillhouseinteriors.com;read;Tel: 01932 858900;32-34 Baker Street;Weybridge;United Kingdom;KT13 8AT
112;Alice Wrobel;Helen Green Design Ltd;http://www.helengreendesign.com;mail@helengreendesign.com;Tel: 020 7352 3344;29 Milner Street;London;United Kingdom;SW3 2QD
113;Henrietta Spencer-Churchill;Woodstock Designs;http://www.spencerchurchilldesigns.com;;Tel: 01993811887;Unit 15, Parsons Green House;London;United Kingdom;SW6 4HH
114;DAVID MINNIS;HLM;http://www.hlmarchitects.com;david.minnis@hlmarchitects.com;Tel: 0114 263 9600;GROUND FLOOR,;SOUTHWARK,;United Kingdom;SE1 0EH 
115;Howard Clulow;M J Barrett;http://www.barrettgroup.co.uk;;Tel: 01889 564210;Brookside Business Park;Uttoxeter;United Kingdom;ST14 8AT
116;Hugh Jamieson;At Home;http://www.athome-interiors.com;;Tel: 01223 811765;7 Tunbridge Court;Cambridge;United Kingdom;CB25 9TU
117;Ian Ashworth; i-lid Design Ltd;http://www.i-lid.co.uk;info@i-lid.co.uk;Tel: 01733 396181;28-29 Maxwell Road;Peterborough;;PE2 7JE
118;Ian Smith;Ian Smith Design Ltd;http://www.iansmithdesign.co.uk; ian@iansmithdesign.co.uk;Tel: 0131 332 2500;17 North West Circus Place;Edinburgh;United Kingdom;EH3 6SX
119;Ingrid Batcup;I B Design;http://www.renoir-interiors.co.uk;;Tel: 07977 444 669;College Mill, Llangennith;Swansea;United Kingdom;SA3 1HU
120;Iona Newton;Oakeve Limited;http://www.oakeve.com;info@oakeve.com;Tel: 01494 737461;Wildacre Pollards Park;Chalfont St Giles;United Kingdom;HP8 4SN
121;Irene Gunter;Gunter and Co;http://www.gunterandco.com;info@gunterandco.com;read;Tel: 02079938583 ;75a Woodside London;London ;United Kingdom;SW19 7QL
122;Jacqueline Tate;Hafod Fabrics Ltd;http://hafodfabrics.com/;hafodfabrics@btconnect.com;read Robert West <hafodfabrics@btconnect.com>;+44 (0) 1981 540 367;Hillside House;Llanwarne;United Kingdom;HR2 8JE
123;Jamie Hempsall;Jamie Hempsall Ltd;http://www.jamiehempsall.com;;Tel: 01777 248463;North Beck;East Drayton, Retford;United Kingdom;DN22 0LN
124;Jane Dodson;KSD Design Company;http://www.ksd-design.co.uk;;Tel: 07831 458791;Bullington Lane House;Sutton Scotney;United Kingdom;SO21 3RA
125;Jane O'Connor;IOR Group Ltd;http://www.iorgroup.co.uk;info@iorgroup.co.uk;Mark Randal read: Mark.Randall@iorgroup.co.uk;Tel: 020 8614 9500;Otterman House;Richmond;United Kingdom;TW10 6UW
126;Jane Spencer-Churchill;Jane Churchill Interiors Ltd.;http://www.janechurchillinteriors.com;info@janechurchillinteriors.co.uk;Tel: 020 7730 8564;81 Pimlico Road;London;United Kingdom;SW1W 8PH
127;Janet Jones;Partners Interiors;http://www.partnersinteriors.co.uk;janet@partnersinteriors.co.uk.;undeliverable;Tel: 07957 247 602;2 Bunkers Hill;London;United Kingdom;NW11 6XA
128;Jayne Webb;Southover Design;http://www.southover.net;jaynewebb@southover.net;Tel: 01342 833600;Southover House;Lingfield;United Kingdom;RH7 6AF
129;Jean Notman;The London Furnishing Co. Ltd;http://www.tlfc.co.uk;jeann@tlfc.co.uk;read;Tel: 020 7627 0667;London House;London;United Kingdom;SW4 6BS
130;Jennifer Granville-Dixon;Granville-Dixon Designs;http://www.biid.org.uk;;Tel: 020 7731 0139;12 Edenhurst Avenue;London;United Kingdom;SW6 3PB
131;Jennifer Truman;Limited Editions Interior Design Consultants;http://www.limitededitionscom.co.uk;hi@ltded.email;Tel: 01903 744270;The Design Studio;Storrington;United Kingdom;RH20 4DZ
132;Jenny Blanc;Jenny Blanc;http://www.jennyblanc.com;design@jennyblanc.com
design@jennyblanc.com
design@jennyblanc.com
design@jennyblanc.com
design@jennyblanc.com
design@jennyblanc.com
;Tel: 020 8943 4440;London Design Practice and Showroom;Teddington;United Kingdom;TW11 8HA
133;Jenny Weiss;Hill House Interiors;http://www.hillhouseinteriors.com;design@hillhouseinteriors.com;Tel: 01932 858 900;32-34 Baker Street;Weybridge;United Kingdom;KT13 8AU
134;Jess Lavers;Jess Lavers Design;http://www.jesslaversdesign.co.uk;info@jesslaversdesign.com;Tel: 0776 525 1969;The Refinery;London;United Kingdom;SW3 4BP
135;Jesse Dilkes;Bailey Partnership;http://www.baileypartnership.co.uk;plymouth@baileyp.co.uk
plymouth@baileyp.co.uk
plymouth@baileyp.co.uk
plymouth@baileyp.co.uk
plymouth@baileyp.co.uk
plymouth@baileyp.co.uk
;Tel: 01752 229259;Lyster Court;Plymouth;United Kingdom;PL1 3JB
136;Jessica Brook;Jessica Brook Design;http://www.jessicabrookdesign.com; info@jessicabrookdesign.com;Tel: 020 7731 8745;Studio 2a2, Cooper House;London;United Kingdom;SW6 2AD
137;Jill Scholes;Jill Scholes Interior Design;http://www.jillscholes.co.uk;studio@jillscholes.co.uk;Tel: 020 8969 7001;37 Pottery Lane;London;United Kingdom;W11 4LY
138;Joanna Shore;Pennbrook Interiors Ltd;http://www.pennbrookinteriors.co.uk;enquiries@pennbrookinteriors.co.uk;read;Tel: 01993 810 710;6 Heath Lane;;United Kingdom;OX20 1SB
139;Joanna Wood;Joanna Trading Ltd;http://www.joannatrading.com;;Tel: 020 7730 0693;7 Bunhouse Place;London;United Kingdom;SW1W 8HU
140;Joanne McDonald;Luma Interiors;http://www.luma-interiors.co.uk;enquiry@luma-interiors.co.uk;undeliverable;Tel: 07967 670233;Forbes Gardens;Edinburgh;United Kingdom;EH30 9HS
141;John Amabile;Amabile Design Ltd;http://www.amabiledesign.com;info@amabiledesign.com;Tel: 0845 4502601;21 South Glassford Street;Milngavie;United Kingdom;G62 6AT
142;John Beven;Wilkinson Beven Design Ltd;http://www.wilkinsonbevendesign.com;design@wilkinsonbevendesign.com;Tel: 0121 744 1458;22-23 Old Burlington Street;London;United Kingdom;W1S 2JJ
143;John Evans;John Evans Interior Architecture & Design Ltd;http://www.johnevansdesign.com;info@johnevansdesign.com;Tel: 0121 233 9041;Victoria Works;Birmingham;United Kingdom;B1 3PE
144;John Lusk;Mrs Monro Ltd;http://design@mrsmonro.co.uk;design@mrsmonro.co.uk;Tel: 07889 604862;1.17 Worlds End Studios;London;United Kingdom;SW10 0RJ
145;John McCall;John McCall Ltd;http://www.mccalldesign.co.uk;john@mccalldesign.co.uk;read;Tel: 01635 578008;New Farm House, Coombe Road;Newbury;United Kingdom;RG20 6RQ
146;Jonathan Brunskill;Jonathan Brunskill Associates;http://www.jonathanbrunskill.co.uk;jb@jonathanbrunskill.co.uk;Tel: 020 8995 5645;131 Edensor Gardens;London;United Kingdom;W4 2RF
147;Jonathan Everitt;Orium Design Limited;http://www.oriumdesign.co.uk;studio@oriumdesign.co.uk;undeliverable;Tel: 01905 772076;46 Shirley Road;Droitwich;United Kingdom;WR9 8NR
148;Josie Partridge;Rendall & Wright;http://www.rendallandwright.com;;Tel: 07971487899;Newland House, High Street;Sudbury;United Kingdom;CO10 OAT
149;Julia Roberts;Vivette Maison Design;http://www.vivettemaisondesign.com;;Tel: 01929 558120;The Studio, Saltwinds;Swanage;United Kingdom;BH19 2HP
150;Julie Kent;Julie Kent Interiors;http://www.juliekentinteriors.com/;zoe@juliekentinteriors.com;Tel: 020 7166 7982;Chelsea London Office;London;United Kingdom;SW3 6HU
151;Juliet Marsh;Marsh & Wiesenfeld LLP;http://www.marshwiesenfeld.co.uk; info@marshwiesenfeld.co.uk;Tel: 01932 842181;4 Mayfield Road;Weybridge;United Kingdom;KT13 8XE
152;Juliet Taylor;Juliet Taylor Design Ltd;http://newlynharbourdesigncentre.com/;newlynharbourdc@btinternet.com;Tel: 01736 351 589;14 The Strand;Penzance;United Kingdom;TR18 5HN
153;Juliette Byrne;Juliette Byrne Ltd;http://www.juliettebyrne.com;office@juliettebyrne.com;Tel: 020 7352 1553;28 Old Church Street;London;United Kingdom;SW3 5BY
154;Karen McKimmie;Ambiance Interior Design;http://www.ambiance.co.uk;interiordesign@ambiance.co.uk;Tel: 01224 310 211;31A St Swithin Street;Aberdeen;United Kingdom;AB10 6XB
155;Karen White;Source Interiors Ltd.;;;Tel: 020 7243 1488;Park House;London;United Kingdom;W8 7AL
156;Karena Bouri;Colour Interiors;http://www.colourinteriors.com;info@colourinteriors.com;read;Tel: 02070991968;2 Munro Terrace;London;United Kingdom;SW10 0DL
157;Karin Verzariu;Key Interiors;http://www.keyinteriors.com;mail@keyinteriors.co.uk;Tel: 020 7351 7989;111 Design Centre East;London;United Kingdom;SW10 0XF
158;Kate Bingham;Kate Bingham Interior Design Ltd;http://www.kbidesign.co.uk;kate@kbidesign.co.uk;Tel: 07774 443467;The Granary at Gentils House;Petworth;United Kingdom;GU28 9EY
159;Kate Earle;Todhunter Earle Interiors;http://www.todhunterearle.com;interiors@todhunterearle.com;Tel: 020 7349 9999;Chelsea Reach 1st Floor;London;United Kingdom;SW10 0RN
160;Kate Gedye;RSD Interiors;http://www.rsdinteriors.net;russ@rsdinteriors.net;Tel: 0777 1970635;Unit 1B Blackwell Business Park;Shipston-on-Stour;United Kingdom;CV36 4PE
161;Kate Spence;HUB Architects and Designers Ltd;http://www.hubarchitects.co.uk;info@hubarchitects.co.uk;unsubscribed;Tel: 07525834735 ;Unit 15 Hoopers Yard;London;United Kingdom;NW6 7EJ
162;Katharine Pooley;Katharine Pooley Limited;http://www.katharinepooley.com;enquiries@katharinepooley.com;Tel: 0207 584 3223;160 Walton Street;London;United Kingdom;SW3 2JL
163;Katharine Rutherford;Gramlick Designs Ltd;http://www.gramlickdesigns.co.uk;interiors@gramlickdesigns.co.uk;Tel: 01608 664573;London House;Shipton-on-Stour;United Kingdom;CV36 4AB
164;Kathleen Barron;Barron Design;http://www.barrondesign.co.uk/;enquiries@barrondesign.co.uk;Tel: 01425 471233;28 Windmill Lane;Ringwood;United Kingdom;BH24 2DQ
165;Katie McCrum;McCrum Interior Design;http://www.mccruminteriordesign.co.uk/;office@mccruminteriordesign.co.uk;Tel: 0776 7473444;United House;London;United Kingdom;N7 9DP
166;Katy Graham;Interiorbeing Ltd;http://www.interiorbeing.com;enquiry@interiorbeing.com;Tel: 020 7407 4899;40 Trinity Church Square;London;United Kingdom;SE1 4HY
167;Peter Thomas;Kay Pilsbury Thomas;http://www.kpt.co.uk;info@kpt.co.uk;Tel: 01799 599208;Honeylands;Saffron Walden;United Kingdom;CB10 2TJ
168;Kia Stanford;Kia Designs;http://www.kiadesigns.co.uk;kia@kiadesigns.co.uk;Tel: 07912138822;We Work;London;United Kingdom;EC2A 2EX
169;Kitty Edwards-Jones;Kitty-lynne Jones Interior Design;http://www.kitty-lynnejonesinteriordesign.com;;Tel: 07973 755095;20 Fitzroy Square;London;United Kingdom;W1T 6EJ
170;Lavinia Dargie;Dargie Lewis Designs Ltd;http://www.dargielewis.com;info@dargielewis.com;Tel: 020 7736 6840;Parsons Green House;London;United Kingdom;SW6 4HH
171;Leila Corbett Elwes;Leila Corbett Limited;http://www.leila-corbett.com;;Tel: 020 7349 0000;Flat 3;London;United Kingdom;SW3 4LW
172;Rebekah Ellis;Leon Black;http://www.charlesleon.com;nicholasblack@leonblack.co.uk;Tel: 020 8747 6170;Chiswick Studios;London;United Kingdom;W4 5PY
173;Lindsey Rendall;Rendall & Wright;http://www.rendallandwright.com;;Tel: 07971487899;Newland House, High Street;Sudbury;United Kingdom;CO10 OAT
174;Liza Evans;Liza Evans Interior Design;http://www.lizaevans.com;liza@lizaevans.com;Tel: 07990908888;17 Cavendish Square;London;United Kingdom;W1G 0PH
175;Lizzie Bell;Lizzie Bell Interiors Ltd;http://www.lizziebellinteriors.com/;lizzie@lizziebellinteriors.com;Tel: 01620 844965;The Clock and House Building, Drem Airfield;North Berwick;United Kingdom;EH39 5AW
176;Looby Crean;Looby Crean Ltd;http://www.BIID.org.uk;;Tel: 07771 950 930;Latimer House;London;United Kingdom;W4 2PH
177;Lori Pinkerton-Rolet;Park Grove Design;http://www.parkgrove.co.uk;;Tel: 020 8969 0110;84 Upper North Street;Brighton;United Kingdom;BN1 3FL
178;Louis Calleja;John Nash Antiques & Interiors;http://www.johnnash.co.uk;enquiries@johnnash.co.uk;Tel: 01531 635714;Tudor House;Ledbury;United Kingdom;HR8 1DS
179;Louisa Keating;Atlantic Interior Design Ltd;http://www.atlanticinteriordesign.com;design@atlanticinteriordesign.com;Tel: 020 7243 6364;Studio 23, Shaftesbury Centre;London;United Kingdom;W10 6BN
180;Louise Bradley;Louise Bradley;http://www.louisebradley.co.uk;lisa@thenelsonconsultancy.co.uk;Tel: 020 7589 2009;Kimbolton Court;London;United Kingdom;SW3 6RL
181;Louise Hart;Atkins Limited;http://www.atkinsglobal.com;info@atkinsglobal.com;Tel: 01392 352958;The Octagon, Pynes Hill;Exeter;United Kingdom;EX2 5AZ
182;Louise Holt;Cloud Studios;http://www.cloudstudios.co.uk;mail@cloudstudios.co.uk;Tel: 01865 343526;The School House;Oxford;United Kingdom;OX44 9LT
183;Lucinda Batt;Lucinda Batt Interior Design Consultant;http://www.theinteriorlibrary.ie;design@theinteriorlibrary.ie;Tel: 00353 1 2603732;6 Eglington Square;Dublin 4;Ireland;
184;Lynne Hunt;Lynne Hunt London;http://www.lynnehunt.co.uk;lynne@lynnehunt.co.uk;Tel: 0207 352 2167;Studio 408, Design Centre East;London;United Kingdom;SW10 0XF
185;Manjiri Kulkarni;HLN Group Ltd;http://www.hlngroup.co.uk;info@hlngroup.co.uk;Tel: 0845 375 3298;Warlies Park House;Waltham Abbey;United Kingdom;EN9 3SL
186;Marianna Wilford;Marianna Wilford Interiors Ltd;http://www.mariannawilford.com;mariannawilford@btconnect.com;Tel: 07944697343;80 Old Church Street;London;United Kingdom;SW3 6EP
187;Matteo Bianchi;Matteo Bianchi Studio;http://www.matteobianchi.co.uk;info@matteobianchi.co.uk;Tel: 0203 006 2113;35 Brayards Road;London;United Kingdom;SE15 3RF
188;Matthew Chamberlain;Ayre Chamberlain Gaunt;http://acgarchitects.co.uk/;mail@acgarchitects.co.uk;Tel: 07747 043898;14A London Street;Basingstoke;United Kingdom;RG21 7NU
189;Matthew Godley;MGID Ltd;http://www.matthewgodley.co.uk;matt@matthewgodley.co.uk;Tel: 07770 920620;Embankment Studios;London;United Kingdom;SW15 1LB
190;Maurizio Pellizzoni;Maurizio Pellizzoni Design Limited;http://www.mpdlondon.co.uk; studio@mauriziopellizzoni.co.uk;Tel: 020 7352 3887;MPD London, 75-81 Burnaby Street;London;United Kingdom;SW10 0NS
191;May Fawzy;MF Design Studio;http://www.mayfawzy.co.uk;info@mf-studio.co.uk;Tel: 07972778274;St. Catherine's Court;Guildford;United Kingdom;GU2 4DU
192;Melanie Boissevain;Melanie Boissevain;http://www.melanieboissevain.com;interiors@melanieboissevain.com;Tel: 01646 661787;The Old Rectory;Pembroke;United Kingdom;SA71 5DN
193;Melanie Nelson;Addison Nelson UK;http://www.addisonnelson.com;design@addisonnelson.com;Tel: 020 8749 7627;56 Warbeck Road;London;United Kingdom;W12 8NT
194;Melissa Billen;MBD Interiors Ltd;http://www.mbdinteriors.com;info@mbdinteriors.com;Tel: 07788 598325;Unit 5 Potkins Lane;Orford;United Kingdom;IP12 2SS
195;Melissa Wyndham;Melissa Wyndham Limited;http://www.melissawyndham.com;info@melissawyndham.com;Tel: 07788 107552;6 Sydney Street;London;United Kingdom;SW3 6PP
196;Mia Karlsson-Matthews;Mia Karlsson Interior Design;http://www.miakarlsson.co.uk;info@miakarlsson.co.uk;Tel: 020 72091615;11 Pond Square;London;United Kingdom;N6 6BA
197;Michael Costley-White;MCW Associates;http://www.mcw-associates.com;Info@MCW-Associates.com;Tel: 07973 324722;Scrubditch Farm;Cirencester;United Kingdom;GL77DZ
198;Michael Nicholas;Michael Nicholas Design;http://www.michaelnicholasdesign.com;info@michaelnicholasdesign.com;Tel: 020 7498 7755;Studio;London;United Kingdom;SW4 7AF
199;Natalia Miyar;Natalia Miyar;N/A;;Tel: 07971430693;1st Floor;London;United Kingdom;SW7 3HG
200;Natalie Murray-Hurst;Murray Hurst Interiors;http://www.murrayhurstinteriors.com;info@murrayhurstinteriors.com;Tel: 07811 349241;Royal House 28;Leeds;United Kingdom;LS1 4BJ
201;Neslihan Kaplan;Kaplan Interior Design Ltd;http://www.kaplaninteriordesign.com;hello@kaplaninteriordesign.com;Tel: 07508420537;14B Essex Grove;London;United Kingdom;SE19 3SX
202;Nicola Burt;Finishing Touch Interior Design;http://www.finishingtouchlondon.com;info@finishingtouchlondon.com;Tel: 07766 133727;82 Wellfield Road;London;United Kingdom;SW16 2BP
203;Niki Schafer;Niki Schafer interior Design Ltd;http://www.nikischaferinteriordesign.co.uk;niki@nsid.co.uk;Tel: 07782 256 444;26 Deanfield Road;Henley on Thames;United Kingdom;RG9 1UG
204;Niloufar Lamakan;Nila Design;http://www.niladesign.co.uk;studio@niladesign.co.uk;Tel: 07970 308 201;32c Richmond Crescent;London;United Kingdom;N1 0LY
205;Noriko Sawayama;Noriko Sawayama Design & Associates Ltd;http://www.nsda-uk.com;info@nsda-uk.com;Tel: 07887 760 455;28 Victorian Heights;London;United Kingdom;SW8 3TE
206;Odile Granter;Granter Interiors;http://www.granterinteriors.com;;Tel: 07775 521158;2 Wetherby Place;London;United Kingdom;SW7 4ND
207;Oliver Steer;Oliver Steer: Interior Designers and Architects;http://www.oliversteer.com;london@oliversteer.com, design@oliversteer.com;Tel: 01704 565 616;264-266 Liverpool Road;Southport;United Kingdom;PR8 4PE
208;Orla Collins;Purple Design;http://www.purple-design.co.uk;info@purple-design.co.uk;Tel: 020 7736 4464;Studio CW14, The Cranewell;London;United Kingdom;SW6 2AD
209;Stefania Mazzarini;Oro Bianco Interior Design;http://www.orobiancointeriordesign.com;;Tel: 020 7591 1920;No. 1 Cromwell Place;London;United Kingdom;SW7 2JE
210;Palladian London;Palladian London;http://www.palladianlondon.com;contact@palladianlondon.com;Tel: 02073511913;Studio 10, 92 Lots Road;London;United Kingdom;SW10 0QD
211;Pamela Cox;Ham Interiors Ltd;http://www.haminteriors.com;info@haminteriors.com;Tel: 01491 579 371;10-11 Dairy Lane;Henley on Thames;United Kingdom;RG9 3AS
Internal Server Error - Gitea: Git with a cup of tea

Internal Server Error

Gitea Version: 1.22.3