Compare commits

...

2 Commits

Author SHA1 Message Date
68c1e4555f Merge pull request 'fix(helix3): restore live customization to baseline, drop cloaking backdoor' (#4) from fix/helix3-customization into main
Reviewed-on: #4
Reviewed-by: Imre Lázár <imre@illusion.hu>
2026-07-19 13:34:32 +02:00
c7a22428e5 fix(helix3): restore live customization to baseline, drop cloaking backdoor
deployed/helix3 held only a minimal 227-line variant, missing the live
docroot customization (Google Analytics gtag, warehouse-menu logic,
HTTP_HOST domain branches) — so the malware-remediation restore stripped
these from the live site. Replace with the byte-exact live version (792
lines) with the seo-cloaking backdoor line (google-UA C2 exfil) removed.

Assisted-by: claude-code@claude-opus-4-8
2026-07-19 13:13:23 +02:00

View File

@ -1,4 +1,5 @@
<?php
/**
* @package Helix3 Framework
* Template Name - Shaper Helix3
@ -20,20 +21,20 @@ unset($doc->_scripts[$this->baseurl . '/media/jui/js/bootstrap.min.js']); // Rem
$helix3_path = JPATH_PLUGINS . '/system/helix3/core/helix3.php';
if (file_exists($helix3_path)) {
require_once($helix3_path);
$this->helix3 = helix3::getInstance();
require_once($helix3_path);
$this->helix3 = helix3::getInstance();
} else {
die('Please install and activate helix plugin');
die('Please install and activate helix plugin');
}
//Coming Soon
if ($this->helix3->getParam('comingsoon_mode'))
header("Location: " . $this->baseUrl . "?tmpl=comingsoon");
header("Location: " . $this->baseUrl . "?tmpl=comingsoon");
//Class Classes
$body_classes = '';
if ($this->helix3->getParam('sticky_header')) {
$body_classes .= ' sticky-header';
$body_classes .= ' sticky-header';
}
$body_classes .= ($this->helix3->getParam('boxed_layout', 0)) ? ' layout-boxed' : ' layout-fluid';
@ -47,182 +48,746 @@ if (isset($menu) && $menu) {
//Body Background Image
if ($bg_image = $this->helix3->getParam('body_bg_image')) {
$body_style = 'background-image: url(' . JURI::base(true) . '/' . $bg_image . ');';
$body_style .= 'background-repeat: ' . $this->helix3->getParam('body_bg_repeat') . ';';
$body_style .= 'background-size: ' . $this->helix3->getParam('body_bg_size') . ';';
$body_style .= 'background-attachment: ' . $this->helix3->getParam('body_bg_attachment') . ';';
$body_style .= 'background-position: ' . $this->helix3->getParam('body_bg_position') . ';';
$body_style = 'body.site {' . $body_style . '}';
$body_style = 'background-image: url(' . JURI::base(true) . '/' . $bg_image . ');';
$body_style .= 'background-repeat: ' . $this->helix3->getParam('body_bg_repeat') . ';';
$body_style .= 'background-size: ' . $this->helix3->getParam('body_bg_size') . ';';
$body_style .= 'background-attachment: ' . $this->helix3->getParam('body_bg_attachment') . ';';
$body_style .= 'background-position: ' . $this->helix3->getParam('body_bg_position') . ';';
$body_style = 'body.site {' . $body_style . '}';
$doc->addStyledeclaration($body_style);
$doc->addStyledeclaration($body_style);
}
//Body Font
$webfonts = array();
if ($this->params->get('enable_body_font')) {
$webfonts['body'] = $this->params->get('body_font');
$webfonts['body'] = $this->params->get('body_font');
}
//Heading1 Font
if ($this->params->get('enable_h1_font')) {
$webfonts['h1'] = $this->params->get('h1_font');
$webfonts['h1'] = $this->params->get('h1_font');
}
//Heading2 Font
if ($this->params->get('enable_h2_font')) {
$webfonts['h2'] = $this->params->get('h2_font');
$webfonts['h2'] = $this->params->get('h2_font');
}
//Heading3 Font
if ($this->params->get('enable_h3_font')) {
$webfonts['h3'] = $this->params->get('h3_font');
$webfonts['h3'] = $this->params->get('h3_font');
}
//Heading4 Font
if ($this->params->get('enable_h4_font')) {
$webfonts['h4'] = $this->params->get('h4_font');
$webfonts['h4'] = $this->params->get('h4_font');
}
//Heading5 Font
if ($this->params->get('enable_h5_font')) {
$webfonts['h5'] = $this->params->get('h5_font');
$webfonts['h5'] = $this->params->get('h5_font');
}
//Heading6 Font
if ($this->params->get('enable_h6_font')) {
$webfonts['h6'] = $this->params->get('h6_font');
$webfonts['h6'] = $this->params->get('h6_font');
}
//Navigation Font
if ($this->params->get('enable_navigation_font')) {
$webfonts['.sp-megamenu-parent'] = $this->params->get('navigation_font');
$webfonts['.sp-megamenu-parent'] = $this->params->get('navigation_font');
}
//Custom Font
if ($this->params->get('enable_custom_font') && $this->params->get('custom_font_selectors')) {
$webfonts[$this->params->get('custom_font_selectors')] = $this->params->get('custom_font');
$webfonts[$this->params->get('custom_font_selectors')] = $this->params->get('custom_font');
}
$this->helix3->addGoogleFont($webfonts);
//Custom CSS
if ($custom_css = $this->helix3->getParam('custom_css')) {
$doc->addStyledeclaration($custom_css);
// TODO:
// $doc->addStyledeclaration($custom_css);
}
//Custom JS
if ($custom_js = $this->helix3->getParam('custom_js')) {
$doc->addScriptdeclaration($custom_js);
// TODO:
// $doc->addScriptdeclaration($custom_js);
}
$menuArray = array(124, 693);
//preloader & goto top
$doc->addScriptdeclaration("\nvar sp_preloader = '" . $this->params->get('preloader') . "';\n");
$doc->addScriptdeclaration("\nvar sp_gotop = '" . $this->params->get('goto_top') . "';\n");
$doc->addScriptdeclaration("\nvar sp_offanimation = '" . $this->params->get('offcanvas_animation') . "';\n");
$warehouseId = array('730', '729', '745', '744');
$isWarehouseLink = strpos($url, '/warehouse') !== false || in_array($_GET['Itemid'], $warehouseId);
?>
<!-- <?= var_dump(in_array("hu", JFactory::getLanguage()->getLocale())); ?>-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php
if ($favicon = $this->helix3->getParam('favicon')) {
$doc->addFavicon(JURI::base(true) . '/' . $favicon);
} else {
$doc->addFavicon($this->helix3->getTemplateUri() . '/images/favicon.ico');
}
?>
<!-- head -->
<jdoc:include type="head" />
<?php
$megabgcolor = ($this->helix3->PresetParam('_megabg')) ? $this->helix3->PresetParam('_megabg') : '#ffffff';
$megabgtx = ($this->helix3->PresetParam('_megatx')) ? $this->helix3->PresetParam('_megatx') : '#333333';
$preloader_bg = ($this->helix3->getParam('preloader_bg')) ? $this->helix3->getParam('preloader_bg') : '#f5f5f5';
$preloader_tx = ($this->helix3->getParam('preloader_tx')) ? $this->helix3->getParam('preloader_tx') : '#f5f5f5';
<head>
<?php if (!$isWarehouseLink) : ?>
<style>
.speasyimagegallery-image-content {
display: none;
}
// load css, less and js
$this->helix3->addCSS('bootstrap.min.css, font-awesome.min.css') // CSS Files
->addJS('bootstrap.min.js, jquery.sticky.js, main.js') // JS Files
->lessInit()->setLessVariables(array(
'preset' => $this->helix3->Preset(),
'bg_color' => $this->helix3->PresetParam('_bg'),
'text_color' => $this->helix3->PresetParam('_text'),
'major_color' => $this->helix3->PresetParam('_major'),
'megabg_color' => $megabgcolor,
'megatx_color' => $megabgtx,
'preloader_bg' => $preloader_bg,
'preloader_tx' => $preloader_tx,
))
->addLess('legacy/bootstrap', 'legacy')
->addLess('master', 'template');
@media only screen and (max-width: 900px) {
.sigFreeContainer {
width: 400px;
height: auto;
}
//RTL
if ($this->direction == 'rtl') {
$this->helix3->addCSS('bootstrap-rtl.min.css')
->addLess('rtl', 'rtl');
}
.spaceUnder>td {
width: 100%;
}
$this->helix3->addLess('presets', 'presets/' . $this->helix3->Preset(), array('class' => 'preset'));
.resp-img {
width: 300px !important;
height: auto !important;
}
//Before Head
if ($before_head = $this->helix3->getParam('before_head')) {
echo $before_head . "\n";
}
?>
</head>
.cke-resize {
height: auto !important;
}
<body class="<?php echo $this->helix3->bodyClass($body_classes); ?> off-canvas-menu-init">
.tooltiptext {
width: 280px !important;
margin-left: 0px !important;
}
<div class="body-wrapper">
<div class="body-innerwrapper">
<?php $this->helix3->generatelayout(); ?>
</div> <!-- /.body-innerwrapper -->
</div> <!-- /.body-innerwrapper -->
.modal {
height: 80% !important;
margin-top: 10% !important;
}
<!-- Off Canvas Menu -->
<div class="offcanvas-menu">
<a href="#" class="close-offcanvas" aria-label="Close"><i class="fa fa-remove" aria-hidden="true" title="<?php echo JText::_('HELIX_CLOSE_MENU'); ?>"></i></a>
<div class="offcanvas-inner">
<?php if ($this->helix3->countModules('offcanvas')) { ?>
<jdoc:include type="modules" name="offcanvas" style="sp_xhtml" />
<?php } else { ?>
<p class="alert alert-warning">
<?php echo JText::_('HELIX_NO_MODULE_OFFCANVAS'); ?>
</p>
<?php } ?>
</div> <!-- /.offcanvas-inner -->
</div> <!-- /.offcanvas-menu -->
}
<?php
if ($this->params->get('compress_css')) {
$this->helix3->compressCSS();
}
.tooltips {
position: relative;
display: inline-block;
}
$tempOption = $app->input->get('option');
// $tempView = $app->input->get('view');
#termsModal {
z-index: 10000 !important;
}
if ( $this->params->get('compress_js') && $tempOption != 'com_config' ) {
$this->helix3->compressJS($this->params->get('exclude_js'));
}
.info-tooltip>.tooltiptext {
background-color: #D1ECF1;
color: #0C5460;
}
//before body
if ($before_body = $this->helix3->getParam('before_body')) {
echo $before_body . "\n";
}
?>
.tooltips .tooltiptext {
visibility: hidden;
width: 700px;
border-radius: 6px;
padding: 20px 1000px 10px 0px;
position: absolute;
z-index: 1;
bottom: 150%;
left: 0%;
right: 50%;
margin-left: -60px;
}
<jdoc:include type="modules" name="debug" />
.tooltips:hover .tooltiptext {
visibility: visible;
}
.modal-dialog {
margin-top: 10% !important;
}
#unibox-suggest-box {
display: none !important;
}
.input-group {
position: relative;
display: flex;
flex-wrap: wrap;
align-items: stretch;
width: 100%;
}
.input-group>.form-control,
.input-group>.custom-select,
.input-group>.custom-file {
position: relative;
flex: 1 1 auto;
margin-bottom: 0;
}
.btn-file {
position: relative;
overflow: hidden;
vertical-align: middle;
}
.fileinput.input-group {
display: flex;
margin-bottom: 9px;
flex-wrap: nowrap;
}
.fileinput.input-group>* {
position: relative;
z-index: 2;
}
.fileinput .form-control {
padding: .375rem .75rem;
display: inline-block;
margin-bottom: 0px;
vertical-align: middle;
cursor: text;
}
.fileinput-filename {
display: inline-block;
overflow: hidden;
vertical-align: middle;
}
.form-control .fileinput-filename {
vertical-align: bottom;
}
.input-group>.form-control:not(:last-child),
.input-group>.custom-select:not(:last-child) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.fileinput.input-group>.btn-file {
z-index: 1;
}
.fileinput-new {
padding-right: 10px;
}
.fileinput-new.input-group .btn-file,
.fileinput-new .input-group .btn-file {
border-radius: 0 4px 4px 0;
}
.fileinput-new.input-group .btn-file,
.fileinput-new .input-group .btn-file {
border-radius: 0 .25rem .25rem 0;
}
.input-group-addon:not(:first-child) {
border-left: 0;
}
.fileinput .input-group-addon {
padding: .375rem .75rem;
width: auto;
}
.fileinput-exists .fileinput-new,
.fileinput-new .fileinput-exists {
display: none;
}
.fileinput .btn {
vertical-align: middle;
}
.fileinput .input-group-addon {
padding: .375rem .75rem;
}
.btn:not(:disabled):not(.disabled) {
cursor: pointer;
}
.fileinput.input-group>.btn-file {
z-index: 1;
}
.fileinput-new.input-group .btn-file,
.fileinput-new .input-group .btn-file {
border-radius: 0 4px 4px 0;
}
.fileinput-new.input-group .btn-file,
.fileinput-new .input-group .btn-file {
border-radius: 0 .25rem .25rem 0;
}
.btn-file>input {
position: absolute;
top: 0;
right: 0;
width: 100%;
height: 100%;
margin: 0;
font-size: 23px;
cursor: pointer;
filter: alpha(opacity=0);
opacity: 0;
direction: ltr;
}
</style>
<?php endif; ?>
<script src="https://cdn.sitesearch360.com/v13/sitesearch360-v13.min.js" async></script>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php
if ($favicon = $this->helix3->getParam('favicon')) {
$doc->addFavicon(JURI::base(true) . '/' . $favicon);
} else {
$doc->addFavicon($this->helix3->getTemplateUri() . '/images/favicon.ico');
}
?>
<!-- head -->
<jdoc:include type="head" />
<?php
$megabgcolor = ($this->helix3->PresetParam('_megabg')) ? $this->helix3->PresetParam('_megabg') : '#ffffff';
$megabgtx = ($this->helix3->PresetParam('_megatx')) ? $this->helix3->PresetParam('_megatx') : '#333333';
$preloader_bg = ($this->helix3->getParam('preloader_bg')) ? $this->helix3->getParam('preloader_bg') : '#f5f5f5';
$preloader_tx = ($this->helix3->getParam('preloader_tx')) ? $this->helix3->getParam('preloader_tx') : '#f5f5f5';
// load css, less and js
$this->helix3->addCSS('bootstrap.min.css, font-awesome.min.css') // CSS Files
->addJS('bootstrap.min.js, jquery.sticky.js, main.js') // JS Files
->lessInit()->setLessVariables(array(
'preset' => $this->helix3->Preset(),
'bg_color' => $this->helix3->PresetParam('_bg'),
'text_color' => $this->helix3->PresetParam('_text'),
'major_color' => $this->helix3->PresetParam('_major'),
'megabg_color' => $megabgcolor,
'megatx_color' => $megabgtx,
'preloader_bg' => $preloader_bg,
'preloader_tx' => $preloader_tx,
))
->addLess('legacy/bootstrap', 'legacy')
->addLess('master', 'template');
//RTL
if ($this->direction == 'rtl') {
$this->helix3->addCSS('bootstrap-rtl.min.css')
->addLess('rtl', 'rtl');
}
$this->helix3->addLess('presets', 'presets/' . $this->helix3->Preset(), array('class' => 'preset'));
//Before Head
if ($before_head = $this->helix3->getParam('before_head')) {
// TODO:
// echo $before_head . "\n";
}
?>
<?php if ($_SERVER['HTTP_HOST'] == 'www.archline.hu'): ?>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-51323892-2"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-51323892-2');
</script>
<?php else: ?>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-51323892-1"></script>
<script type="text/javascript">
window.dataLayer = window.dataLayer || [];
<!-- Preloader -->
<jdoc:include type="modules" name="helixpreloader" />
function gtag(){
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'UA-51323892-1');
jQuery( document ).ready(function() {
jQuery('.offcanvas-inner div:nth-child(2)').addClass('hidden-canvas');
});
</script>
<meta name="google-site-verification" content="pF-77P0oiVBTwM_e9a6UZWeqXj7rIlPgwT-_74iOdWs" />
<?php endif;?>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="/templates/shaper_helix3/css/custom_template.css?ver=3">
</head>
<!-- Go to top -->
<?php if ($this->params->get('goto_top')) { ?>
<a href="javascript:void(0)" class="scrollup" aria-label="<?php echo JText::_('HELIX_GOTO_TOP'); ?>">&nbsp;</a>
<body class="<?php echo $this->helix3->bodyClass($body_classes); ?> off-canvas-menu-init">
<div class="body-wrapper">
<div class="body-innerwrapper">
<?php $this->helix3->generatelayout(); ?>
</div> <!-- /.body-innerwrapper -->
</div> <!-- /.body-innerwrapper -->
<?php if (!$isWarehouseLink) : ?>
<!-- Off Canvas Menu -->
<div class="offcanvas-menu">
<a href="#" class="close-offcanvas" aria-label="Close"><i class="fa fa-remove" aria-hidden="true" title="<?php echo JText::_('HELIX_CLOSE_MENU'); ?>"></i></a>
<div class="offcanvas-inner">
<?php if ($this->helix3->countModules('offcanvas')) { ?>
<jdoc:include type="modules" name="offcanvas" style="sp_xhtml" />
<?php } else { ?>
<p class="alert alert-warning">
<?php echo JText::_('HELIX_NO_MODULE_OFFCANVAS'); ?>
</p>
<?php } ?>
</div> <!-- /.offcanvas-inner -->
</div> <!-- /.offcanvas-menu -->
<div aria-hidden="true" aria-labelledby="exampleModalLabel" class="modal fade" id="exampleModal" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<section data-ss360="true" role="search"><input class="searchBox" type="search" /><button id="searchButton"></button></section>
</div>
</div>
</div>
</div>
<div aria-hidden="true" aria-labelledby="exampleModalLabel" class="modal fade" id="exampleModal" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<section data-ss360="true" role="search"><input class="searchBox" type="search" /><button id="searchButton"></button></section>
</div>
</div>
</div>
</div>
<?php endif; ?>
<?php
if ($this->params->get('compress_css')) {
$this->helix3->compressCSS();
}
$tempOption = $app->input->get('option');
// $tempView = $app->input->get('view');
if ($this->params->get('compress_js') && $tempOption != 'com_config') {
$this->helix3->compressJS($this->params->get('exclude_js'));
}
//before body
if ($before_body = $this->helix3->getParam('before_body')) {
// TODO:
// echo $before_body . "\n";
}
?>
<jdoc:include type="modules" name="debug" />
<!-- Preloader -->
<jdoc:include type="modules" name="helixpreloader" />
<!-- Go to top -->
<?php if ($this->params->get('goto_top')) { ?>
<a href="javascript:void(0)" class="scrollup" aria-label="<?php echo JText::_('HELIX_GOTO_TOP'); ?>">&nbsp;</a>
<?php } ?>
<script type="text/javascript">
_linkedin_partner_id = "1454324";
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
</script>
<script type="text/javascript">
(function() {
var s = document.getElementsByTagName("script")[0];
var b = document.createElement("script");
b.type = "text/javascript";
b.async = true;
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
s.parentNode.insertBefore(b, s);
})();
</script> <!--<noscript> <img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=1454324&fmt=gif" /> </noscript>-->
<?php include(JPATH_SITE . "/templates/system/template.php"); ?>
<?php if (!$isWarehouseLink) : ?>
<!-- Modal -->
<div id="signinModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Sign in</h4>
</div>
<div class="modal-body">
<div class="needLogin">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div id="contactModal" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Request for student lab subscription</h4>
</div>
<div class="modal-body">
<div class="sppb-addon sppb-addon-ajax-contact ">
<div class="sppb-ajax-contact-content">
<form method="post" action="">
<div class="sppb-row">
<div class="sppb-form-group sppb-col-sm-12"><input type="text" name="name" class="sppb-form-control" placeholder="Name" required="required"></div>
<div class="sppb-form-group sppb-col-sm-12"><input type="email" name="email" class="sppb-form-control" placeholder="Email" required="required"></div>
<div class="sppb-form-group sppb-col-sm-12"><input type="text" name="subject" value="ARCHLine.XP LAB license application" class="sppb-form-control" placeholder="Subject" required="required"></div>
<div class="sppb-form-group sppb-col-sm-12"><input type="text" id="biztonsagi" name="captcha_question" class="sppb-form-control" placeholder="" required="required"></div>
<div class="sppb-form-group sppb-col-sm-12"><textarea name="message" rows="5" class="sppb-form-control" placeholder="Message" required="required"></textarea></div>
</div><input type="hidden" name="recipient" value="aW5mb0BhcmNobGluZXhwLmNvbQ=="><input type="hidden" name="from_email" value=""><input type="hidden" name="from_name" value=""><input type="hidden" name="addon_id" value="1477918584126"><input type="hidden" name="captcha_answer" value="8f14e45fceea167a5a36dedd4bea2543">
<div class="sppb-form-group">
<div class="sppb-form-check"><input class="sppb-form-check-input" type="checkbox" name="agreement" id="agreement" required="required"><label class="sppb-form-check-label" for="agreement">By submitting your information, you acknowledge you have read and you hereby acccept the <a href="http://www.archlinexp.com/legal/privacy-policy">Privacy Policy</a> under which your personal data will be processed by CADLine and third parties for its business purposes.</label></div>
</div><input type="hidden" name="captcha_type" value="default">
<div class="sppb-text-left"><button type="submit" id="btn-1477918584126" aria-label="SEND MESSAGE" class="sppb-btn sppb-btn-custom sppb-btn-lg sppb-btn-square" name="contact-btn"><i class="fa" aria-hidden="true"></i>SEND MESSAGE <span class="fa fa-mail-forward" aria-hidden="true"></span></button></div>
</form>
<div style="display:none;margin-top:10px;" class="sppb-ajax-contact-status"></div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<?php
$product = &JTable::getInstance("content");
$product->load(903);
?>
<div id="termsModal" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title"><?php echo $product->get("title"); ?></h4>
</div>
<div class="modal-body">
<?php echo $product->introtext; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div aria-hidden="true" aria-labelledby="downloadModalLabel" class="modal fade" id="downloadModal" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<div id="download-info-content">
</div>
<br>
<div class="phocadownloadfile32">
<a href="#" id="download-link-external">Letöltés</a>
</div>
</div>
</div>
</div>
</div>
<!-- Newsletter Modal Begin -->
<?php
if ($_SERVER['HTTP_HOST'] == 'www.archlinexp.com')
echo JModuleHelper::renderModule(JModuleHelper::getModule('mod_al_newsletter', 'mod_al_newsletter'));
?>
<?php /*echo JModuleHelper::renderModule(JModuleHelper::getModule('mod_al_newsletter', 'mod_al_newsletter'));*/ ?>
<!-- Newsletter Modal End -->
<!-- Modal -->
<div id="studModal" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<!-- Modal content-->
<div class="modal-content">
<form action="" method="post" enctype='multipart/form-data'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">ARCHLine.XP Student Annual Subscription</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="email">Email address:</label> <input required class="form-control" id="email" name="email" type="email" />
</div>
</div>
</div>
<div class="row">
<div class="form-group col-md-6">
<label for="fname">First name:</label>
<input type="text" class="form-control" name="fname" id="fname">
</div>
<div class="form-group col-md-6">
<label for="lname">Last name:</label>
<input type="text" class="form-control" id="lname" name="lname">
</div>
</div>
<div class="row">
<div class="form-group col-md-6">
<label for="country">Country:</label>
<select id="country" name="country" style="width:100%" required>
<option value="">Please Select a Country*</option>
<option value="-" disabled="disabled">-----</option>
<?php
$tomb = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
foreach ($tomb as $k => $v) echo '<option value="' . $k . '">' . $v . '</option>';
?>
</select>
</div>
<div class="form-group col-md-6">
<label for="education">Name of educational institution:</label>
<input type="text" id="education" name="education" required class="form-control" />
</div>
</div>
<div class="row">
<div class="col-md-6">
<label>Academic Proof</label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<input class=" form-control" id="file-txt" type="text" readonly style="width: 100%" />
</div>
<div class="col-md-2">
<label for="files" class="btn btn-default" style="width: 100%">Browse file</label>
<input id="files" type="file" name="files[]" required multiple class="btn btn-default" style="visibility:hidden;" />
</div>
<div class="col-md-6">
<a class="type-tooltip">
<div class="tooltips info-tooltip">
What kind of academic proof we need?
<div class="tooltiptext" style="width: 600px; padding: 20px 0px 20px 20px">
Examples of preferred documents:<br /><br />
Valid school ID - an ID with the full name of student or faculty member, school name, validity<br /><br />
A school-issued confirmation letter - document with school letterhead, student's or faculty member's full name, school name and date
</div>
</div>
</a>
</div>
</div>
<div class="control-group">
<div class="control-label">
<label for="jform_captcha"><strong>Captcha</strong></label>
</div>
<div class="controls">
<div id="jform_captcha" class="g-recaptcha required" data-sitekey="6LeqnB8TAAAAAJXgoIg0gtTxwsjM4d22jZIs74hS" data-theme="light" data-size="normal" required></div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="sppb-form-group">
<div class="sppb-form-check"><input class="sppb-form-check-input" type="checkbox" name="agreement" id="agreement" required="required"><label class="sppb-form-check-label" for="agreement">By submitting your information, you acknowledge you have read and you hereby acccept the <a href="http://www.archlinexp.com/legal/privacy-policy">Privacy Policy</a> under which your personal data will be processed by CADLine and third parties for its business purposes.</label></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="sppb-form-group">
<div class="sppb-form-check"><input class="sppb-form-check-input" type="checkbox" name="terms" id="terms" required="required"><label class="sppb-form-check-label" for="terms">By completing this application, you acknowledge that you have read and understood the <a href="#" data-target="#termsModal" data-toggle="modal">terms and conditions</a>.</label></div>
</div>
</div>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-success" name="apply-btn" value="Apply" />
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</form>
</div>
</div>
</div>
<script>
jQuery('#files').on("change", function() {
var extension = jQuery(this).val().substr((jQuery(this).val().lastIndexOf('.') + 1));
if (extension === 'jpg' || extension === 'png' || extension === 'gif' || extension === 'pdf') {
jQuery('#student-btn').removeAttr('disabled');
} else {
jQuery('#student-btn').attr('disabled', true);
}
var filenames = '';
var filenames2 = '';
for (var i = 0; i < jQuery(this).get(0).files.length; ++i) {
filenames += '- ' + jQuery(this).get(0).files[i].name + ' \n';
filenames2 += jQuery(this).get(0).files[i].name;
}
jQuery('#file-txt').val(filenames2);
jQuery('#file-txt').attr('title', filenames);
});
window.onload = function() {
var a;
var b;
a = Math.floor(Math.random() * 10) + 1;
b = Math.floor(Math.random() * 10) + 1;
if (document.getElementById("biztonsagi"))
document.getElementById("biztonsagi").placeholder = a + "*" + b + "=?";
};
</script>
<?php endif; ?>
<?php
?>
</body>
</body>
</html>