www.archline.hu — clean post-compromise baseline #2
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal 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
|
||||
@ -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).
|
||||
|
||||
1
cadline/backend/common_cadline_libraries
Submodule
1
cadline/backend/common_cadline_libraries
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 423fec9b929b381339d71623fc621a998a6e3e0f
|
||||
@ -1 +0,0 @@
|
||||
constants.php
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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
@ -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}¶m={$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
1
cadline/backend/maintenance
Submodule
1
cadline/backend/maintenance
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 11f1a543340bb7a2f03c3647dca03b7bd79783d0
|
||||
5
cadline/backend/maintenance/.gitignore
vendored
5
cadline/backend/maintenance/.gitignore
vendored
@ -1,5 +0,0 @@
|
||||
serverAlive.txt
|
||||
activateServer.txt
|
||||
webform/airender
|
||||
tests/images
|
||||
serverAliveSecondary.txt
|
||||
@ -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.
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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>
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
@ -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;
|
||||
@ -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");
|
||||
@ -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>';*/
|
||||
@ -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>
|
||||
@ -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),
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -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>
|
||||
@ -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;
|
||||
@ -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';
|
||||
}
|
||||
@ -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
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
@ -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"]));
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
@ -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;
|
||||
}
|
||||
@ -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>';
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1 +0,0 @@
|
||||
<?php
|
||||
@ -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());
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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';
|
||||
@ -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']);
|
||||
@ -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';
|
||||
}
|
||||
@ -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öszönjük!");
|
||||
$text2 = utf8_encode("A hibajelentést kézbesítettük és jelenleg feldolgozásra vár.");
|
||||
$text3 = utf8_encode("Amennyiben megadta e-mail címét értesítést küldünk a jelenséget érintő bárminemű fejlemény eseté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à 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ä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üßen");
|
||||
$text5 = utf8_encode("CadLine Network Ltd.");
|
||||
} else if ('gre' == $lang) {
|
||||
$text1 = utf8_encode("Ευχαριστώ!");
|
||||
$text2 = utf8_encode("Η αναφορά του αιτήματος αυτού παραδίδεται τώρα και αναμένεται επεξεργασία.");
|
||||
$text3 = utf8_encode("Αν δώσατε τη διεύθυνση email σας, θα σας στείλουμε ένα μήνυμα μόλις υπάρξουν νέες πληροφορίες σχετικά με αυτό το θέμα.");
|
||||
$text4 = utf8_encode("Με φιλικούς χαιρετισμούς");
|
||||
$text5 = utf8_encode("CadLine Network Ltd.");
|
||||
} else if ('cz' == $lang) {
|
||||
$text1 = utf8_encode("Děkujeme!");
|
||||
$text2 = utf8_encode("Zpráva o tomto problému je nyní předána a čeká na zpracování.");
|
||||
$text3 = utf8_encode("Pokud jste poskytli svou e-mailovou adresu, pošleme vám zprávu s novými informacemi o tomto problé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štaj ovog problema je poslan i čeka na obradu.");
|
||||
$text3 = utf8_encode("Ako ste naveli Vašu e-mail adresu, poslat ćemo Vam poruku kada ćemo imati nove informacije vezane uz ovaj problem.");
|
||||
$text4 = utf8_encode("Srdačan pozdrav,");
|
||||
$text5 = utf8_encode("CadLine Network Ltd.");
|
||||
} else if ('nl' == $lang) {
|
||||
} else if ('kor' == $lang) {
|
||||
$text1 = utf8_encode("감사합니다.");
|
||||
$text2 = utf8_encode("이 문제에 대한 보고서가 전달되어 처리를 기다리고 있습니다.");
|
||||
$text3 = utf8_encode("전자 메일 주소를 제공 한 경우이 문제에 대한 새로운 정보가있을 때 메시지가 전송됩니다.");
|
||||
$text4 = utf8_encode("감사합니다.");
|
||||
$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å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 = "Őszintén sajnáljuk...";
|
||||
$text2 = "Úgy tűnik az ARCHLine.XP rendellenesen állt le.";
|
||||
$text3 = "Kérjük szánjon rá egy percet és ossza meg velünk mi történt, amikor a hiba jelentkezett. Közreműködése sokat segít!";
|
||||
$text4 = "Az Ön e-mail címe:";
|
||||
$text5 = "A megadott e-mail címen tudjuk felvenni Önnel a kapcsolatot, ha további információ szükséges és ezen tudjuk tájékoztatni is a fejleményekről. Köszönjük!";
|
||||
$text6 = "A jelenség leírása";
|
||||
$text7 = "Hibajelentés küldése";
|
||||
$text8 = "Úgy tűnik nem adott meg e-mail címet.";
|
||||
$text9 = "Az e-mail cím megadása nem kötelező";
|
||||
$text10 = "ugyanakkor számos esetben szükségünk lehet további információkra ahhoz, hogy megoldást találjunk. Amennyiben úgy dönt, hogy megadja az e-mail címét, akkor fel tudjuk venni Önnel a kapcsolatot a rendellenességgel kapcsolatos fontos részletek miatt.";
|
||||
$text11 = "Amennyiben nem szeretné megadni az e-mail címét, semmi gond, egyszerűen csak nyomja meg a \"Megerősít\" gombot.";
|
||||
$text12 = "Amennyiben meg kívánja adni e-mail címét, kérjük gépelje az alábbi mezőbe és nyomja meg a \"Megerősít\" gombot.";
|
||||
$text13 = "(Ezt az e-mail címet kizárólag az ezzel a konkrét jelenséggel kapcsolatos technikai segítségnyújtás céljára használjuk fel és nem használjuk egyéb hirdetési vagy marketing célokra, kivéve ha Ön ezt az e-mail címet máshol ilyen céllal má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 è obbligatoria";
|
||||
$text10 = "ma talvolta ci è 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à utilizzato solo per supporto tecnico correlato allo specifico problema e non verrà utilizzato ne ceduto ad altri per fini pubblicitari o marketing, tranne il caso in cui lo stesso indirizzo sia già 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ührt haben.";
|
||||
$text4 = "Ihre Email:";
|
||||
$text5 = "Wenn Sie uns Ihre Email Adresse bekanntgeben, werden wir Sie über Ä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ür eventuelle Rückfragen wichtig. Wenn Sie uns eine Email Adresse mitteilen, so können wir Sie bei weiteren Fragen zur Lösungsfindung kontaktieren.";
|
||||
$text11 = "Wenn Sie keine Email Adresse angeben wollen, so klicken Sie einfach auf die \"Bestätigen\" Schaltfläche.";
|
||||
$text12 = "Ansonsten geben Sie bitte Ihre Email Adresse im folgenden Feld ein und klicken auf \"Bestätigen\".";
|
||||
$text13 = "(Diese Email Adresse wird nur zur technischen Unterstützung in Bezug auf dieses Ticket und in keinem Fall für Werbung oder Marketing verwendet, außer Sie sind mit dieser Adresse bereits für solche Dienste gemeldet.)";
|
||||
} else if ('gre' == $lang) {
|
||||
$text1 = "Λυπούμαστε πραγματικά...";
|
||||
$text2 = "Παρουσίασε σφάλμα στο ARCHLine.XP.";
|
||||
$text3 = "Παρακαλούμε αφιερώστε λίγα λεπτά και να περιγράψετε το σφάλμα που μόλις συνάντησε. Ευχαριστούμε!";
|
||||
$text4 = "Το e-mail σας:";
|
||||
$text5 = "Αν μας δώσετε την ηλεκτρονική σας διεύθυνση e-mail, θα τη χρησιμοποιήσουμε για να σας ενημερώνουμε για τις αλλαγές και τις βελτιώσεις. Ευχαριστούμε!";
|
||||
$text6 = "Περιγραφή";
|
||||
$text7 = "Αποστολή αναφοράς";
|
||||
$text8 = "Φαίνεται να λείπει η διεύθυνση e-mail.";
|
||||
$text9 = "Η παροχή της ηλεκτρονική σας επαφής δεν είναι υποχρεωτική";
|
||||
$text10 = "ωστόσο μερικές φορές χρειάζεται να μάθετε περισσότερα σχετικά με το θέμα για να μπορέσετε να βρείτε μια λύση. Αν έχετε την καλοσύνη να μας δώσετε μια διεύθυνση e-mail, θα μπορούσαμε να την χρησιμοποιήσουμε για να σας ρωτήσουμε κάτι σχετικό με αυτό το θέμα.";
|
||||
$text11 = "Αν δεν επιθυμείτε να μας δώσετε τη διεύθυνση e-mail σας, μην ανησυχείτε, απλά πατήστε το κουμπί \"Επιβεβαίωση\".";
|
||||
$text12 = "Αν αποφασίσετε να μας δώσετε τη διεύθυνση e-mail σας, παρακαλούμε συμπληρώστε το παρακάτω πεδίο και πατήστε το κουμπί \"Επιβεβαίωση\".";
|
||||
$text13 = "(Αυτή η διεύθυνση e-mail θα χρησιμοποιηθεί μόνο για την παροχή τεχνικής υποστήριξης σε σχέση με το συγκεκριμένο θέμα και δεν θα χρησιμοποιηθεί για σκοπούς διαφήμισης και μάρκετινγκ, εκτός εάν εσείς την έχετε ήδη παράσχει την ίδια διεύθυνση για τέτοιους σκοπούς.)";
|
||||
} else if ('cz' == $lang) {
|
||||
$text1 = "Je nám opravdu líto ...";
|
||||
$text2 = "Vypadá to, že se ARCHLine.XP zhroutil.";
|
||||
$text3 = "Věnujte nám prosím chviličku a popište chybu, se kterou jste právě setkali. Děkujeme!";
|
||||
$text4 = "Váš e-mail:";
|
||||
$text5 = "Pokud nám poskytnete váš e-mail, použijeme tuto informaci, abychom vás průběžně informovali o změnách a vylepšeních. Děkujeme!";
|
||||
$text6 = "Popis";
|
||||
$text7 = "Poslat zprávu";
|
||||
$text8 = "Zdá se, že schází vaše e-mailová adresa.";
|
||||
$text9 = "Poskytnutí vašeho kontaktního e-mailu není povinné";
|
||||
$text10 = "ale někdy se musíme dozvědět více o tomto problému, aby bylo možné najít řešení. Když budete tak laskaví a poskytnete nám vaši e-mailovou adresu, mohli bychom ji použít k dotazování na důležité detaily týkajících se tohoto problému.";
|
||||
$text11 = "Pokud se rozhodnete neposkytnout svoji e-mailovou adresu, bez obav prosím jednoduše stiskněte tlačítko \"Potvrdit\".";
|
||||
$text12 = "Pokud se rozhodnete poskytnout svoji e-mailovou adresu, vyplňte prosím následující políčko a stiskněte tlačítko \"Potvrdit\".";
|
||||
$text13 = "(Tato emailová adresa bude použita pouze k poskytování technické podpory v souvislosti s tímto konkrétním problémem a nebude použita pro reklamní a marketingové účely, mimo případů, kdy jste již poskytli stejnou adresu pro tyto účely.)";
|
||||
} else if ('pol' == $lang) {
|
||||
} else if ('cr' == $lang) {
|
||||
$text1 = "Ispričavamo se...";
|
||||
$text2 = "Čini se da je ARCHLine.XP prestao s radom.";
|
||||
$text3 = "Molim Vas, odvojite nekoliko trenutaka i opišite grešku na koju ste upravo naišli. Hvala Vam!";
|
||||
$text4 = "Vaš e-mail:";
|
||||
$text5 = "Vašu e-mail adresu koristit ćemo kako bi vas obavijestili o promjenama i poboljšanjima. Hvala Vam!";
|
||||
$text6 = "Opis";
|
||||
$text7 = "Pošalji izvješće";
|
||||
$text8 = "Čini se da Vaša e-mail adresa nedostaje.";
|
||||
$text9 = "Pružanje kontakta e-mail adrese nije obavezno";
|
||||
$text10 = "no ponekad nam je potrebno više informacija o problemu kako bi mogli pronaći rješenje. Molimo Vas da nam pružite Vašu e-mail adresu kako bi je mogli koristiti za pitanja o važnim detaljima vezana uz ovaj problem.";
|
||||
$text11 = "Ako odlučite da nam ne želite dati svoju e-mail adresu, ne brinite, molimo Vas samo pritisnite gumb \"Potvrdi\".";
|
||||
$text12 = "Ako ste odlučili dati nam svoju e-mail adresu, molimo Vas da ispunite sljedeće polje i pritisnite gumb \"Potvrdi\".";
|
||||
$text13 = "(Ova e-mail adresa će se koristiti samo za pružanje tehničke podrške vezane uz ovaj specifični problem i neće se koristiti za oglašavanje i marketinške svrhe, osim ako ste već dali istu adresu za takve svrhe.)";
|
||||
} else if ('nl' == $lang) {
|
||||
} else if ('kor' == $lang) {
|
||||
$text1 = "이런 일이 벌어진 것에 대해 대단히 유감입니다.";
|
||||
$text2 = "ARCHLine.XP가 충돌 한 것 같습니다.";
|
||||
$text3 = "잠시 시간을내어 방금 만난 오류를 설명하십시오. 고맙습니다!";
|
||||
$text4 = "귀하의 e-mail:";
|
||||
$text5 = "이메일을 보내 주시면, 이 정보를 사용하여 변경 사항 및 개선 사항에 대한 정보를 알려 드리겠습니다. 대단히 감사합니다!";
|
||||
$text6 = "오류내용";
|
||||
$text7 = "보고서 보내기";
|
||||
$text8 = "귀하의 전자 메일 주소가 누락 된 것 같습니다.";
|
||||
$text9 = "전자메일을 제공하는 것은 필수는 아니지만 때로는 해결책을 찾을 수 있도록 문제에 대해 더 자세히 알아야합니다.";
|
||||
$text10 = "친절하게 우리가 사용할 수있는 전자 메일 주소를 제공하면이 문제와 관련된 중요한 세부 정보를 요청할 수 있습니다.";
|
||||
$text11 = "전자 메일 주소를 제공하지 않으려면 \"확인\"버튼을 누르십시오.";
|
||||
$text12 = "전자 메일 주소를 제공하기로 결정한 경우, 다음 필드를 채우고 \"확인\"버튼을 누르십시오.";
|
||||
$text13 = "(이 전자 메일 주소는이 특정 문제와 관련하여 기술 지원을 제공하는 데에만 사용되며 광고 및 마케팅 용도로는 사용되지 않습니다. 단, 귀하는 이미 그러한 주소로 동일한 주소를 제공 한 것입니다.)";
|
||||
} 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 å løse problemet. Hvis du kan oppgi din e-post adresse kan vi spø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ø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ørings formå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
|
||||
}
|
||||
?>
|
||||
@ -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 <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 <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
|
||||
}
|
||||
?>
|
||||
@ -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;
|
||||
@ -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
8296
cadline/backend/maintenance/css/bootstrap.min.css
vendored
8296
cadline/backend/maintenance/css/bootstrap.min.css
vendored
File diff suppressed because it is too large
Load Diff
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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");
|
||||
@ -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");
|
||||
@ -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";
|
||||
@ -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);
|
||||
@ -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>'] = 'á';
|
||||
$tomb['<27>'] = 'Á';
|
||||
$tomb['<27>'] = 'é';
|
||||
$tomb['<27>'] = 'É';
|
||||
$tomb['<27>'] = 'ó';
|
||||
$tomb['<27>'] = 'Ó';
|
||||
$tomb['<27>'] = 'ö';
|
||||
$tomb['<27>'] = 'Ö';
|
||||
$tomb['<27>'] = 'ő';
|
||||
$tomb['<27>'] = 'Ő';
|
||||
$tomb['<27>'] = 'ú';
|
||||
$tomb['<27>'] = 'Ú';
|
||||
$tomb['<27>'] = 'ü';
|
||||
$tomb['<27>'] = 'Ü';
|
||||
$tomb['<27>'] = 'ű';
|
||||
$tomb['<27>'] = 'Ű';
|
||||
$tomb['<27>'] = 'í';
|
||||
$tomb['<27>'] = 'Í';
|
||||
|
||||
$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);
|
||||
}
|
||||
}
|
||||
@ -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!";
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
error_reporting(E_ERROR | E_PARSE);
|
||||
session_start();
|
||||
|
||||
if (!isset($_SESSION['username'])) {
|
||||
header("location: login.php");
|
||||
die();
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
*/
|
||||
@ -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();
|
||||
@ -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);
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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>
|
||||
@ -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);
|
||||
@ -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();
|
||||
}
|
||||
@ -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();
|
||||
@ -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;
|
||||
@ -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'];
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -1,4 +0,0 @@
|
||||
<?php
|
||||
$session = isset($_GET['session']) ? $_GET['session'] : '';
|
||||
|
||||
echo $session + 1;
|
||||
@ -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');
|
||||
*/
|
||||
@ -1 +0,0 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
@ -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;
|
||||
@ -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'
|
||||
);
|
||||
}
|
||||
@ -1,2 +0,0 @@
|
||||
<?php
|
||||
echo 'OK';
|
||||
File diff suppressed because one or more lines are too long
@ -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() */
|
||||
|
||||
16
cadline/backend/maintenance/js/jquery.min.js
vendored
16
cadline/backend/maintenance/js/jquery.min.js
vendored
File diff suppressed because one or more lines are too long
@ -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);
|
||||
@ -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
@ -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);
|
||||
})();
|
||||
@ -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'] = "";
|
||||
@ -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'] = "";
|
||||
@ -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
|
||||
|
Gitea Version: 1.22.3 |
