www_archline_hu/cadline/backend/maintenance/banner.php
LÁZÁR Imre AI Agent edb18f07b5 feat(cadline): add common_cadline_libraries + maintenance backend
common_cadline_libraries (CRM hardlock/db/users classes; upstream cadline_web/cadcommonlib), maintenance/ (ARCHLine.XP license backend; upstream cadline_web/maintenance), maintenance2/. Vetted live files (byte-truth); upstream repos in PROVENANCE.md. NOTE: could be git submodules — kept as live files for byte-fidelity.

Signed-off-by: LÁZÁR Imre <imre@illusion.hu>
Assisted-by: claude-code@claude-opus-4-8
2026-07-16 11:34:30 +02:00

120 lines
5.0 KiB
PHP

<?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>