www_archline_hu/deployed/tpl_trada/templates/trada/index.php
imre.agent 1eb05cc597 feat(archlinexp.eu): add clean deployable baseline on Joomla 3.9.2
Build the archlinexp.eu/www baseline from clean sources on a dedicated
site branch, per the web-baseline deploy model: vanilla Joomla 3.9.2 core
plus the developer-sourced own-code plus a vetted module layer, with the
Cadline core delta applied on the 3.9.2 base. The generator is reused
unchanged: build-baseline.sh is site-agnostic, only the content differs.

Layers:
- core/      vanilla Joomla 3.9.2 official package (installer removed)
- cadline/   own-code from the developer source (beiratkozas, maintenance,
             mod_al_*, mod_alusers, mod_course_list) plus 11 assets that
             the developer source lacks
- deployed/  95 third-party module slugs taken from live, YARA-vetted
- overrides/ the 5 genuine Cadline core modifications, on the 3.9.2 base

The live core carried 31 stale com_users files: the updater skipped the
customized ones, so the version string said 3.9.2 while the code did not.
Taking vanilla 3.9.2 plus the 2 real deltas fixes that silently. 289
planted paths are excluded through malware-iocs.paths.

Verification: build-baseline.sh -> out/ = 12286 files; YARA (16 rules) on
every source layer and on the built tree = 0 hits; not one IOC path
present; no disguised .json dropper; core verified as 3.9.2.

Assisted-by: claude-code@claude-opus-4-8
2026-07-17 12:13:31 +02:00

288 lines
12 KiB
PHP

<?php
/**
* @package Joomla.Site
* @subpackage Templates.protostar
*
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$user = JFactory::getUser();
$this->language = $doc->language;
$this->direction = $doc->direction;
// Getting params from template
$params = $app->getMenu()->getActive();
$params = $params ? $params->params : new JRegistry();
// Detecting Active Variables
$option = $app->input->getCmd('option', '');
$view = $app->input->getCmd('view', '');
$layout = $app->input->getCmd('layout', '');
$task = $app->input->getCmd('task', '');
$itemid = $app->input->getCmd('Itemid', '');
$skin = $this->params->get( 'templateSkin', 'light' );
$baseUrlSkin = $this->baseurl . '/templates/' . $this->template . '/skins/' . $skin . '/';
// Add favicon
if($favicon = $this->params->get('favFile')) {
$doc->addFavicon( JURI::root() . $favicon);
}
// Add JavaScript Frameworks
JHtml::_('bootstrap.framework');
foreach( $doc->_scripts as $src => $attrs )
{
if( preg_match( '/k2\.js/', $src, $matches ) )
{
unset( $doc->_scripts[ $src ] );
$doc->_scripts[ preg_replace( '/\?.+/', '', $src ) ] = $attrs;
}
if( preg_match( '/bootstrap\.min\.js/', $src, $matches ) )
{
unset( $doc->_scripts[ $src ] );
}
}
/* JQUERY:: LIGHTBOX.JS */
if( $params->get('pageclass_sfx', '' ) == 't-masonary' )
{
/* JQUERY:: PLUGIN.JS */
$doc->addScript($baseUrlSkin . 'js/masonry.min.js');
}
$doc->addScript($baseUrlSkin . 'js/lightbox-plus-jquery.min.js');
if( $params->get('pageclass_sfx', '' ) == 't-inner_page' )
{
/* JQUERY:: PLUGIN.JS */
$doc->addScript($baseUrlSkin . 'js/jquery.plugins.inner.min.js');
$doc->addScript($baseUrlSkin . 'js/custom.min.js');
}
else
{
/* JQUERY:: PLUGIN.JS */
$doc->addScript($baseUrlSkin . 'js/jquery.plugin.min.js');
/* JQUERY:: INDEX.JS **** FOR INDEX JQUERY CODE **** */
$doc->addScript($baseUrlSkin . 'js/index.min.js');
}
// Add Stylesheets
$doc->addStyleSheet($baseUrlSkin . 'css/bootstrap.min.css');
/* CSS:: ANIMATION */
$doc->addStyleSheet($baseUrlSkin . 'css/animator.css');
/* CSS:: ANIMATION */
$doc->addStyleSheet($baseUrlSkin . 'css/jquery.slider.css');
/* CSS:: FONTS */
$doc->addStyleSheet($baseUrlSkin . 'css/font-awesome.min.css');
$doc->addStyleSheet($baseUrlSkin . 'css/simple-line-icons.css');
$doc->addStyleSheet('//fonts.googleapis.com/css?family=Montserrat:400,700');
$doc->addStyleSheet('//fonts.googleapis.com/css?family=Droid+Serif:400,400italic,700');
/* CSS:: */
if( $this->countModules( 'gx' ) )
{
$doc->addStyleSheet($baseUrlSkin . 'css/sidemenu.css');
$doc->addScript($baseUrlSkin . 'js/plugin/sidemenu.js');
$doc->addScriptDeclaration("
jQuery(function($) {
$('#gx-sidemenu').gxSideMenu({
mode: isMobile.any() ? 'tiny' : 'normal', // normal | tiny
interval: 300, // animations' interval
direction: 'left', // left | right
openOnHover: false, // true | false
clickTrigger: true, // true | false
followURLs: true, // true | false
trigger: '.gx-menu-open.list', // class or id of trigger element
startFrom: 60, // start pixel from corner on hover trigger
startClosed: false, // menu opens on document load
scrolling: true, // menu scrollable (iScroll plugin needed!)
urlBase: '/', // document base URL
backText: '<<', // Back button text
onOpen: function() { }, // Open callback
onClose: function() { } // Close callback
});
});
");
}
$doc->addStyleSheet($baseUrlSkin . 'css/lightbox.css');
$doc->addStyleSheet($baseUrlSkin . 'css/reset.css');
$main_skin = 'main.css';
if( $skin == 'light' )
{
$main_skin = $this->params->get( 'templateColor', 'main.css');
}
$doc->addStyleSheet($baseUrlSkin . "css/{$main_skin}" );
?>
<!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 name="viewport" content="width=device-width, initial-scale=1.0" />
<jdoc:include type="head" />
<?php if($afterHeader = $this->params->get('afterHeader')) : ?>
<?php echo $afterHeader; ?>
<?php endif; ?>
</head>
<body class="<?php echo $skin; ?> t-overlay <?php echo $option
. ' view-' . $view
. ($layout ? ' layout-' . $layout : ' no-layout')
. ($task ? ' task-' . $task : ' no-task')
. ($itemid ? ' itemid-' . $itemid : '')
. ' ' . $params->get('pageclass_sfx', '' );
echo ($this->direction == 'rtl' ? ' rtl' : '');
?>">
<?php if( $skin != 'dark' ) : ?>
<div class="t-overlay_box">
<img src="<?php echo $this->baseurl . '/templates/' . $this->template; ?>/images/loading.gif" class="t-loading_img" alt="">
</div>
<?php endif; ?>
<!-- ******** HEADER START ******** -->
<header id="t-header" class="t-header wow fadeInDown clearfix" data-wow-duration="2s" >
<div class="col-lg-12 t-header_inner">
<div class="row">
<?php if( $this->countModules( 'gx' ) ) : ?>
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-12 t-header_nav">
<a href="javascript:" class="gx-menu-open entypo list fa fa-navicon"></a>
</div>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-12 t-header_logo">
<a href="<?php echo JUri::root(); ?>" class="t_logo">
<?php echo $this->params->get( 'logoFile', $this->params->get( 'logoText', 'Trada' ) ); ?>
</a>
</div>
<?php else : ?>
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-12 t-header_logo">
<a href="<?php echo JUri::root(); ?>" class="t_logo">
<?php echo $this->params->get( 'logoFile', $this->params->get( 'logoText', 'Trada' ) ); ?>
</a>
</div>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-12 t-header_nav">
<?php if ($this->countModules('position-0')) : ?>
<jdoc:include type="modules" name="position-0" style="none" />
<?php endif; ?>
</div>
<?php endif; ?>
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-12 t-header_social">
<?php if ($this->countModules('position-1')) : ?>
<jdoc:include type="modules" name="position-1" style="none" />
<?php endif; ?>
</div>
<div class="t-header_mobile_nav" id="t-header_mobile_nav">
<i class="fa fa-navicon"></i>
</div>
</div>
</div>
<?php if( $this->countModules( 'gx' ) ) : ?>
<jdoc:include type="modules" name="gx" style="none" />
<?php endif; ?>
</header>
<!-- ******** HEADER END ******** -->
<?php if ($this->countModules('position-2')) : ?>
<jdoc:include type="modules" name="position-2" style="none" />
<?php endif; ?>
<?php if ($this->countModules('position-5')) : ?>
<section id="t-blog_container" class="t-blog_container">
<div class="container">
<div class="row">
<div class="col-lg-9 col-md-8 col-sm-8 col-xs-12">
<div class="row">
<jdoc:include type="message" />
<jdoc:include type="component" />
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-4 col-xs-12 pull-right t-side_bar">
<div class="row"><jdoc:include type="modules" name="position-5" style="none" /></div>
</div>
</div>
</div>
</section>
<?php else : ?>
<jdoc:include type="message" />
<jdoc:include type="component" />
<?php endif; ?>
<?php if ($this->countModules('position-6')) : ?>
<jdoc:include type="modules" name="position-6" style="none" />
<?php endif; ?>
<!-- ******** FOOTER START ******** -->
<footer class="t-footer">
<div class="t-footer_inner">
<div class="container">
<div class="row clearfix">
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-6">
<div class="row">
<?php if ($this->countModules('position-12')) : ?>
<jdoc:include type="modules" name="position-12" style="none" />
<?php endif; ?>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12 t-footer_logo_text">
<a href="#" class="t_logo"><?php echo $this->params->get( 'logoFile', $this->params->get( 'logoText', 'Trada' ) ); ?></a>
<p>
<?php echo JFactory::getConfig()->get( 'MetaDesc', '' ); ?>
</p>
<div class="t-section_header">
<div class="t-section_header_arrow">
<span class="t-section_header_border">
<i class="t-section_header_arrow_dot"></i>
</span>
</div>
</div>
</div>
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-6 t-footer_location">
<div class="row">
<?php if ($this->countModules('position-13')) : ?>
<jdoc:include type="modules" name="position-13" style="none" />
<?php endif; ?>
</div>
</div>
</div>
<div class="row">
<?php if ($this->countModules('position-14')) : ?>
<jdoc:include type="modules" name="position-14" style="none" />
<?php endif; ?>
</div>
</div>
</div>
<div class="t-footer_copyright">
<p><?php echo $this->params->get( 'copyright', 'Copyright &copy;2015. All Rights Reserved.' ); ?></p>
</div>
</footer>
<!-- ******** FOOTER END ******** -->
<!-- ******** BACK TO TOP START ******** -->
<div class="t-back_to_top" id="t-back_to_top">
<i class="fa fa-angle-double-up"></i>
<span>BA <br> CK</span>
<i class="fa fa-angle-double-up"></i>
</div>
<!-- ******** BACK TO TOP END ******** -->
<?php if($afterBody = $this->params->get('afterBody')) : ?>
<?php echo $afterBody; ?>
<?php endif; ?>
<jdoc:include type="modules" name="debug" />
</body>
</html>