Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 2154 Просмотров
*

seofishka

  • Новичок
  • 6
  • 0 / 0
Как поправит шаблон, перенести отображение модуля в 2 месте.

Код: html4strict
<?php
/**
 # ot_winter - OT Winter Template for Joomla 2.5!
 # author OmegaTheme.com
 # copyright Copyright(C) 2012 - OmegaTheme.com. All Rights Reserved.
 # @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 # Website: http://omegatheme.com
 # Technical support: Forum - http://omegatheme.com/forum/
 **/
 /**------------------------------------------------------------------------
 * file: index.php 2.5.0 00001, November 2012 12:00:00Z OmegaTheme $
 * package: OT Winter Template
 *------------------------------------------------------------------------*/
 
//No direct access!
defined( '_JEXEC' ) or die( 'Restricted access' );

include_once(JPATH_ROOT . "/templates/" . $this->template . '/lib/layout/tpl.function.php');
include_once(JPATH_ROOT . "/templates/" . $this->template . '/lib/layout/splitmodules.php');
?>
<!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="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<jdoc:include type="head" />

</head>
<body id="ot-body" class="<?php echo $home; ?> <?php echo $this->params->get('layoutStyle'); ?> <?php echo $this->params->get('layoutType'); ?>">
<div class="ot-wrap">
<!--******************** START HEADER ********************-->
<div class="ot-header">
<div class="ot-widthTemp" id="ot-widthTemp">
<div class="header-bg">
<div class="header-leftbg"></div>
<div class="header-rightbg"></div>
<div class="ot-logo" id="ot-logo">
<div class="ot-logo-i">
<?php if($this->countModules('logo')) { ?>
<jdoc:include type="modules" name="logo" />
<?php } ?>
<?php if(!$this->countModules('logo')) { ?>
<a href="<?php echo JURI::base(); ?>" class="logo"></a>
<?php } ?>
</div>
</div>
<div class="ot-headertops">
<?php if($this->countModules('headertop-1')) { ?>
<div class="ot-headertop-1">
<jdoc:include type="modules" name="headertop-1" style="otModule" />
</div>
<?php } ?>
<?php if($this->countModules('headertop-2')) { ?>
<div class="ot-headertop-2">
<jdoc:include type="modules" name="headertop-2" style="otModule" />
</div>
<?php } ?>
</div>

<?php if($this->countModules('mainmenu + headertop-3')) { ?>
<div class="mainmenu-headertop-3">
<div class="mainmenu-headertop-3-i">
<?php if($this->countModules('mainmenu')) { ?>
<div class="ot-mainmenu">
<div id="ot-mainmenu" class="ot-mainmenu-i">
<jdoc:include type="modules" name="mainmenu" />
</div>
</div>
<?php } ?>

<?php if($this->countModules('headertop-3')) { ?>
<div class="ot-headertop-3">
<div class="ot-headertop-3-i">
<jdoc:include type="modules" name="headertop-3" />
</div>
</div>
<?php } ?>
</div>
</div>
<?php } ?>
</div>
<div class="headbottom-bg"><div class="headbottom-leftbg"></div><div class="headbottom-rightbg"></div></div>
<!--******************** START TOP BANNER ********************-->
<?php if($this->countModules('banner')) { ?>
<div class="ot-banner">
<div class="ot-banner-i">
<jdoc:include type="modules" name="banner" style="otModule" />
</div>
</div>
<?php } ?>
<!--******************** END TOP BANNER ********************-->

<!--******************** START TOP EXTEND ********************-->
<?php if($this->countModules('top-extend')) { ?>
<div class="ot-top-extend">
<div class="ot-top-extend-i">
<jdoc:include type="modules" name="top-extend" style="otModule" />
</div>
</div>
<?php } ?>
<!--******************** END TOP EXTEND ********************-->
</div>
</div>
<!--******************** END HEADER ********************-->

<!--******************** START MAINBODY ********************-->
<div class="ot-mainbody">
<div class="ot-widthTemp">
<div class="ot-mainbody-i">

<!--******************** START TOPBOXES ********************-->
<?php
$positionsTopBox = array('topbox-1','topbox-2','topbox-3','topbox-4','topbox-5');
$topBoxs = splitmodules($this,$positionsTopBox,$this->params->get('CustomWidthtopBoxes'),$this->params->get('width_topboxes'));
if($topBoxs) :
?>
<?php if($this->countModules('topbox-1 + topbox-2 + topbox-3 + topbox-4 + topbox-5')) {?>
<div class="ot-topboxes" id="ot-topboxes">
<?php if( $this->countModules('topbox-1')) {?>
<div class="top-box top-box-1<?php echo $topBoxs['topbox-1']['class']; ?> width<?php echo $topBoxs['topbox-1']['width']; ?>">
<jdoc:include type="modules" name="topbox-1" style="otModule" />
</div>
<?php } ?>
<?php if( $this->countModules('topbox-2')) {?>
<div class="top-box top-box-2<?php echo $topBoxs['topbox-2']['class']; ?> width<?php echo $topBoxs['topbox-2']['width']; ?>">
<jdoc:include type="modules" name="topbox-2" style="otModule" />
</div>
<?php }?>
<?php if( $this->countModules('topbox-3')) {?>
<div class="top-box top-box-3<?php echo $topBoxs['topbox-3']['class']; ?> width<?php echo $topBoxs['topbox-3']['width']; ?>">
<jdoc:include type="modules" name="topbox-3" style="otModule" />
</div>
<?php }?>
<?php if( $this->countModules('topbox-4')) {?>
<div class="top-box top-box-4<?php echo $topBoxs['topbox-4']['class']; ?> width<?php echo $topBoxs['topbox-4']['width']; ?>">
<jdoc:include type="modules" name="topbox-4" style="otModule" />
</div>
<?php }?>
<?php if( $this->countModules('topbox-5')) {?>
<div class="top-box top-box-5<?php echo $topBoxs['topbox-5']['class']; ?> width<?php echo $topBoxs['topbox-5']['width']; ?>">
<jdoc:include type="modules" name="topbox-5" style="otModule" />
</div>
<?php }?>
</div>
<?php } endif; ?>
<!--******************** END TOPBOXES ********************-->
<div style="clear: both;"><jdoc:include type="message" /></div>
<?php if($this->params->get('layoutType') == 'content-left-right') { ?>
<?php if($this->countModules('right')) { ?>
<div class="ot-rightcolumn">
<div class="ot-rightcolumn-i">
<jdoc:include type="modules" name="right" style="otModule" />
</div>
</div>
<?php } ?>
<?php if($this->countModules('left')) { ?>
<div class="ot-leftcolumn">
<div class="ot-leftcolumn-i">
<jdoc:include type="modules" name="left" style="otModule" />
</div>
</div>
<?php } ?>
<div class="ot-content content-<?php if(!$this->countModules('left')) echo 'full_left'; ?><?php if(!$this->countModules('right')) echo 'full_right'; ?>">

<?php if($this->countModules('top-content')) { ?>
<div class="ot-top-content">
<jdoc:include type="modules" name="top-content" style="otModule" />
</div>
<?php } ?>
<div class="ot-content-i">
<jdoc:include type="modules" name="breadcrumb" style="otModule" />
<jdoc:include type="component" />
</div>
<?php if($this->countModules('bottom-content')) { ?>
<div class="ot-bottom-content">
<jdoc:include type="modules" name="bottom-content" style="otModule" />
</div>
<?php } ?>
</div>
<?php } else { ?>
<?php if($this->countModules('left')) { ?>
<div class="ot-leftcolumn">
<div class="ot-leftcolumn-i">
<jdoc:include type="modules" name="left" style="otModule" />
</div>
</div>
<?php } ?>
<?php if($this->countModules('right')) { ?>
<div class="ot-rightcolumn">
<div class="ot-rightcolumn-i">
<jdoc:include type="modules" name="right" style="otModule" />
</div>
</div>
<?php } ?>
<div class="ot-content content-<?php if(!$this->countModules('left')) echo 'full-left'; ?><?php if(!$this->countModules('right')) echo 'full-right'; ?>">
<?php if($this->countModules('top-content')) { ?>
<div class="ot-top-content">
<jdoc:include type="modules" name="top-content" style="otModule" />
</div>
<?php } ?>
<div class="ot-content-i">
<jdoc:include type="modules" name="breadcrumb" style="otModule" />
<jdoc:include type="component" />
</div>
<?php if($this->countModules('bottom-content')) { ?>
<div class="ot-bottom-content">
<jdoc:include type="modules" name="bottom-content" style="otModule" />
</div>
<?php } ?>
</div>
<?php } ?>

<!--******************** START BOTTOM EXTEND ********************-->
<?php if($this->countModules('bottom-extend')) { ?>
<div class="ot-bottom-extend">
<div class="ot-bottom-extend-i">
<jdoc:include type="modules" name="bottom-extend" style="otModule" />
</div>
</div>
<?php } ?>
<!--******************** END BOTTOM EXTEND ********************-->
</div>
</div>
</div>
<!--******************** END MAINBODY********************-->

<!--******************** START FOOTER ********************-->
<div class="ot-footer">
<div class="ot-widthTemp">
<?php if($this->countModules('bottom-1')) { ?>
<div class="ot-bottom-1">
<div class="ot-bottom-1-i">
<jdoc:include type="modules" name="bottom-1" style="otModule" />
</div>
</div>
<?php } ?>
<?php if($this->countModules('bottom-2')) { ?>
<div class="ot-bottom-2">
<div class="ot-bottom-2-i">
<jdoc:include type="modules" name="bottom-2" style="otModule" />
</div>
</div>
<?php } ?>
</div>
</div>
<!--******************** END FOOTER ********************-->
</div>
<div style="clear: both;"><jdoc:include type="modules" name="debug" /></div>
</body>
</html>

код CSS
Код: css
/**
 # ot_winter -   OT Winter Template for Joomla 2.5!
 # author       OmegaTheme.com
 # copyright     Copyright(C) 2012 - OmegaTheme.com. All Rights Reserved.
 # @license     http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 # Website:     http://omegatheme.com
 # Technical     support: Forum - http://omegatheme.com/forum/
 **/
 /**------------------------------------------------------------------------
 * file: layout.css 2.5.0 00001, November 2012 12:00:00Z OmegaTheme $
 * package:  OT Winter Template
 *------------------------------------------------------------------------*/


@font-face {
  font-family: 'Oswald';
  src: url("fonts/Oswald.ttf");
}
@font-face {
  font-family: 'Resagokr';
  src: url("fonts/Resagokr.ttf");
}
@font-face {
  font-family: 'AlexBrush-Regular';
  src: url("fonts/AlexBrush-Regular.ttf");
}

body#ot-body{
  background: #e6edf1 url(../images/headtop-bg.jpg) no-repeat center 0;
  color: #64696d;
  font-family: Arial,Helvetica,sans-serif;
  font-size: 13px;
}
div.ot-wrap{
  background: url(../images/footer-bg.png) no-repeat center bottom;
  float: left;
  width: 100%;
  position: relative;
}
div.ot-widthTemp{
  margin: 0 auto;
  width: 960px;
}
.ot-widthTemp-i{
  position: relative;
}
form div {
  margin: 0;
}
div.ot-wrap-i,
div.ot-widthTemp-i,
div.ot-header,
div.mainmenu-search,
div.ot-top-extend,
div.ot-topboxes,
div.ot-mainbody,
div.ot-bottomboxes,
div.ot-bottom-extend,
div.ot-footer{
  float: left;
  width: 100%;
}

/* +++++++++++++++ STYLE HEADER +++++++++++++++ */
div.ot-header{
/*  background: #4e4443; */
  position: relative;
  z-index: 999;
}

.ot-logo{
    position: relative;
    right: 50px;
    width: 100%;
    z-index: 9;
}
.ot-logo-i{
  overflow: hidden;
}
.ot-logo a.logo{
  background: url(../images/logo.png) no-repeat;
  display: block;
  width: 226px;
  height: 104px;
  margin: 0 auto;
}
.ot-headertops{
  color: #66615d;
  float: right;
  padding: 1px 0px;
  width: 100%;
}
.ot-headertops ul.menu{
  margin: 10px 0;
}
.ot-headertops ul.menu li{
  background: 0;
  border-left: 1px solid #66615d;
  display: inline;
  padding: 0 10px;
}
.ot-headertops ul.menu li.first{
  border: none;
}
.ot-headertops ul.menu li a{
  color: #66615d;
}
div.ot-headertop-1,
div.ot-headertop-2{
  float: left;
  width: 48%;
}
div.ot-headertop-1{
  
}
div.ot-headertop-1-i{
  margin: 0;
}
div.ot-headertop-2{
  float: right;
}

div.ot-banner{
  float: left;
    width: 100%;
}

.header-bg{
  background: url(../images/header-mid-bg.png) no-repeat center top;
  float: left;
  width: 100%;
  position: relative;
  z-index: 999;
}
.header-leftbg,
.header-rightbg{
  width: 4px;
  height: 99px;
  position: absolute;
  bottom: 0;
}
.header-leftbg{
  background: url(../images/header-leftbg.png) no-repeat 0 0;
  left: -4px;
}
.header-rightbg{
  background: url(../images/header-rightbg.png) no-repeat 100% 0;
  right: -4px;
}

/* MAINMENU, SEARCH */
.mainmenu-headertop-3{
  background: url(../images/mainmenu-left-bg.png) 0 0;
  float: left;
  height: 50px;
  position: relative;
  width: 100%;
  z-index: 9999;
}
.mainmenu-headertop-3-i{
  background: url(../images/mainmenu-right-bg.png) no-repeat 100% 0;
  float: left;
  width: 96%;
  padding: 0 2%;
}
.ot-headertop-3{
  float: right;
}
.headbottom-bg{
  width: 100%;
  float: left;
  height: 9px;
}
.headbottom-leftbg{
  background: url(../images/headbottom-leftbg.png) no-repeat 0 0;
  width: 50%;
  float: left;
  height: 9px;
}
.headbottom-rightbg{
  background: url(../images/headbottom-rightbg.png) no-repeat 100% 0;
  width: 50%;
  float: right;
  height: 9px;
}
.mainmenu-search-custom{
  position: relative;
  z-index: 9999;
  margin-top: -60px;
}
div.ot-mainmenu{
  float: left;
    height: 50px;
    margin-top: 0;
    position: relative;
    width: 77%;
    z-index: 9999;
}
.ot-search {
  background: url(../images/search-bg.png);
  padding: 1px 0px;
  width: 300px;
  float: right;
  margin-top: 30px;
  margin-right: 10px;
}
.ot-search form{
  padding: 0;
}
.ot-search .search{
  background: url(../images/search-input.png) no-repeat;
  height: 32px;
    margin: 0 auto;
    padding: 4px;
    width: 276px;
}
.ot-search .search input.inputbox{
  margin: 3px;
}
.ot-search .search input.type-image{
  background: none;
  margin-top: 4px;
  margin-right: 10px;
  padding: 0px;
  width: 25px;
  height: 24px;
}

/* +++++++++++++++ END HEADER +++++++++++++++ */
.ot-top-extend{  
  margin: 8px 0 0 0;
  padding: 0px 0px;
}
.ot-top-extend-i{
  overflow: hidden;
  padding: 0 0px;
  margin: 0;
}
.ot-top-extend .otModule{
  float: left;
  width: 100%;
}
.ot-top-extend-i .otModule-i{
  
}
.ot-top-extend .module-saveup{
  color: #FFF;
}
.ot-top-extend .module-saveup .saveupleft{
  background: url(../images/saveup-left-bg.png) repeat-x;
  float: left;
  height: 50px;
}
.ot-top-extend .module-saveup .saveupleft p{
  padding: 0 20px;
}
.ot-top-extend .module-saveup .saveupright{
  background: url(../images/saveup-right-bg.png) repeat-x;
  float: right;
    font-size: 26px;
    font-weight: normal;
    height: 50px;
    line-height: normal;
    text-transform: uppercase;
}
.ot-top-extend .module-saveup .saveupright p{
  padding: 2px 10px;
  margin: 0;
}

span.breadcrumbs{
  background: url(../images/breadcrumb-bg.png) no-repeat 0 0;
  color: #FFFFFF;
    font-family: 'Oswald';
    font-size: 12px;
    height: 20px;
    line-height: 21px;
    padding: 10px 0 10px 33px;
    text-transform: uppercase;
}
span.breadcrumbs span.you-are-here{
  color: #FFF;
  padding-right: 20px;
}
span.breadcrumbs a.breadcrumb-arrow,
span.breadcrumbs span.breadcrumb-arrow{
  background: url(../images/breadcrumb-arrow.png) no-repeat 100% 7px;
  margin-right: 5px;
    padding-right: 10px;
}
span.breadcrumbs span{
  color: #787470;
}

/* +++++++++++++++ STYLE MAINBODY +++++++++++++++ */
div.ot-mainbody{
  margin-top: 0px;
}
div.ot-mainbody .ot-widthTemp{
  position: relative;
}
div.ot-mainbody-i{
  width: 100%;
  float: left;
  position: relative;
}
.mainbody-leftbg{
  background: url(../images/mainbody-left-bg.png) repeat-y 0 100%;
  position: absolute;
  height: 100%;
  width: 132px;
  left: -66px;
  z-index: 0;
}
.mainbody-rightbg{
  background: url(../images/mainbody-right-bg.png) repeat-y 0 100%;
  position: absolute;
  height: 100%;
  width: 80px;
  right: -40px;
  z-index: 0;
}
#system-message-container dl#system-message dd{
  padding: 0;
  float: none;
}
#system-message-container dl#system-message dd ul{
  margin: 0;
}
#system-message-container dl#system-message dd ul li{
  background: none;
  line-height: normal;
}


/* +++++++++++++++ STYLE LEFT-RIGHT COLUMN +++++++++++++++ */
div.ot-rightcolumn,
div.ot-leftcolumn{
  float: left;
  margin: 0 15px 0 0;
  padding: 0 0 0 0px;
  width: 310px;
  position: relative;
  z-index: 9;
}
div.ot-leftcolumn{
  
}
div.ot-rightcolumn{
  
}

div.ot-rightcolumn-i,
div.ot-leftcolumn-i{
  
}
div.ot-rightcolumn .otModule,
div.ot-leftcolumn .otModule{
  background: #FFF;
  float: left;
  width: 100%;
  margin: 0 0 10px 0;
  padding: 0;
}
div.ot-rightcolumn .otModule-i,
div.ot-leftcolumn .otModule-i{
  overflow: hidden;
  padding: 20px 20px;
}
div.ot-rightcolumn .module-fullwidth .otModule-i,
div.ot-leftcolumn .module-fullwidth .otModule-i{
  padding: 0;
}
div.ot-rightcolumn .otModule-i h3,
div.ot-leftcolumn .otModule-i h3{
  color: #2773A7;
    font-family: 'Oswald';
    font-size: 18px;
    font-weight: normal;
    line-height: normal;
    margin: 0;
    padding: 0;
    text-align: left;
    text-transform: uppercase;
}
div.ot-rightcolumn .module-testimonials h3,
div.ot-leftcolumn .module-testimonials h3{
  background: url(../images/blockquote-icon.png) no-repeat right top;
  padding: 5px 50px 5px 0;
}
div.ot-topboxes .top-box h3,
div.ot-top-content h3,
div.ot-bottom-content h3{
  color: #2773a7;
  font-family: 'Oswald';
  margin: 0 0 5px 0;
  padding: 0 0 5px 0;
  line-height: normal;
  text-transform: uppercase;
  font-size: 18px;
  font-weight: normal;
}
div.ot-rightcolumn .otModule-i h3 span,
div.ot-topboxes .top-box.firstbox h3 span,
div.ot-top-content h3 span,
div.ot-bottom-content h3 span{

}
div.ot-leftcolumn .otModule-i h3 span{
  padding: 0 0px;
}
div.ot-rightcolumn .otModuleContent-i,
div.ot-leftcolumn .otModuleContent-i{
  overflow: hidden;
}
div.ot-rightcolumn .otModuleContent-i{
  padding: 0px 0;
}
div.ot-rightcolumn ul li,
div.ot-leftcolumn ul li{
  background: url(../images/dotted.png) no-repeat 0 11px;
  padding: 5px 0 5px 12px;
}
div.ot-rightcolumn ul li a,
div.ot-leftcolumn ul li a{
  display: block;
  color: #333333;
  font-style: italic;
}
div.ot-rightcolumn{
  float: right;
  background: none;
  margin: 0 0 0 15px;
  padding: 0px 0px 0px 0px;
}
div.ot-rightcolumn .otModule{
  
}

/* +++++++++++++++ END LEFT-RIGHT +++++++++++++++ */

/* STYLE TOP BOXES */
.ot-topboxes {
  padding: 0px 0px;
  margin: 8px 0 0 0;
  position: relative;
  z-index: 9;
}
.ot-topboxes-i{
  float: left;
  width: 100%;
}
.ot-topboxes .top-box{
  float: left;
  margin-bottom: 10px;
}
.ot-topboxes .top-box .otModule-i{
  background: url(../images/topbox-modulebg.png) no-repeat center 0;
  margin: 0 5px;
  padding-top: 10px;
  overflow: hidden;
}
.ot-topboxes .firstbox{
  
}
.ot-topboxes .firstbox .otModule{
  margin-left: 0px;
}
.ot-topboxes .firstbox .otModule-i{
  margin-left: 0;
}
.ot-topboxes .lastbox{
  float: right;
}
.ot-topboxes .lastbox .otModule{
  margin-right: 0px;
}
.ot-topboxes .lastbox .otModule-i{
  margin-right: 0;
}
.ot-topboxes .top-box h3{
  text-transform: none;
}

/* END */

.ot-content{
  min-height: 0px;
    overflow: hidden;
    padding: 0;
  position: relative;
  z-index: 9;
}
.content-full-right{
  padding-right: 0px;
}
.content-full-left{
  padding-left: 0px;
}
.content-full-leftfull-right{
  overflow: hidden;
  padding: 0 0px;
}
div.ot-content-i{
  background: none repeat scroll 0 0 #FFFFFF;
    clear: both;
    margin-bottom: 10px;
}
body.isInnerPages div.ot-content-i{
  background: none repeat scroll 0 0 #FFFFFF;
    clear: both;
    margin-bottom: 10px;
    overflow: hidden;
    padding: 15px;
}
div.ot-top-content,
div.ot-bottom-content{
  float: left;
  width: 100%;
  clear: both;
  margin: 0px 0;
}
div.ot-top-content .otModule,
div.ot-bottom-content .otModule{
  background: #fff;
  padding: 15px 15px 15px 15px;
  margin: 0 0 10px 0;
  overflow: hidden;
}
div.ot-top-content .module-breadcrumbs{
  padding: 0;
  margin: 0;
}
div.ot-top-content .module-tabproducts{
  padding-top: 0;
}
div.ot-top-content .otModule .otModule-i,
div.ot-bottom-content .otModule .otModule-i{
  
}
div.ot-bottom-content{
  
}
/*form[name="com-login"],*/
form{
  padding: 10px 0;
}

/* +++++++++++++++ END MAINBODY +++++++++++++++ */

/* +++++++++++++++ STYLE BOTTOMBOXES +++++++++++++++ */
div.ot-bottomboxes{
  background: #4e4443;
  color: #b0a6a5;
  margin-top: 5px;
}
div.ot-bottomboxes-i{
  margin: 0;
    overflow: hidden;
    padding: 25px 0px;
}
.ot-bottomboxes .bottom-box{
  float: left;
}
.ot-bottomboxes .bottom-box .otModule-i{
  padding: 10px 10px;
}
.ot-bottomboxes .firstbox .otModule-i{
  padding-left: 0;
}
.ot-bottomboxes .lastbox{
  float: right;
}
.ot-bottomboxes .lastbox .otModule-i{
  padding-right: 0;
}
div.ot-bottomboxes .bottom-box h3{
  border-bottom: 1px solid #b0a6a5;
  color: #D2D0D0;
    font-family: "Myriad Pro","Trebuchet MS";
    font-size: 15px;
    font-weight: normal;
    line-height: normal;
    margin: 0 0 5px;
    padding: 0 0 5px;
    text-transform: none;
}

div.ot-bottomboxes .bottom-box ul{
  margin: 0;
  padding: 0;
}
div.ot-bottomboxes .bottom-box ul li{
  background: none;
  margin: 0;
  padding: 5px 0 5px 0px;
}
div.ot-bottomboxes .bottom-box ul li a{
  color: #b0a6a5;
  font-weight: normal;
  display: block;
  font-style: italic;
}
div.ot-bottomboxes .bottom-box ul li a:hover{
  
}
div.ot-bottomboxes .module-aboutus h3{
  border: medium none;
    font-size: 25px;
  
}
/* +++++++++++++++ END BOTTOMBOXES +++++++++++++++ */

.ot-bottom-extend{
  
}
.ot-bottom-extend .otModule {
  float: left;
  width: 100%;
  padding-top: 10px;
}
.ot-bottom-extend-i{
  padding: 0px 0px;
}

/* +++++++++++++++ STYLE FOOTER +++++++++++++++ */
div.ot-footer{
  background: none;
  color: #716764;
  font-size: 11px;
  padding: 0px;
  padding-bottom: 120px;
}
.ot-footer .ot-widthTemp{
  background: #fff;
  border-bottom: 10px solid #0c578b;
  overflow: hidden;
}
div.ot-bottom-1{
  float: left;
  width: 50%;
}
div.ot-bottom-2{
  float: right;
  width: 50%;
}
div.ot-bottom-1 a,
div.ot-bottom-2 a{
  font-weight: normal;
  text-transform: none;
}
div.ot-bottom-1 .otModule,
div.ot-bottom-2 .otModule{
  padding: 5px 20px;
  overflow: hidden;
}
div.ot-bottom-1 ul.menu,
div.ot-bottom-2 ul.menu{
  float: left;
  margin: 0;
}
div.ot-bottom-1 ul.menu li,
div.ot-bottom-2 ul.menu li{
  background: none;
  float: left;
  margin: 0;
  padding: 0 10px 0 0;
}
div.ot-bottom-1 ul.menu li a,
div.ot-bottom-2 ul.menu li a{
  color: #B0A6A5;
}
div.ot-bottom-1 ul.menu li.first,
div.ot-bottom-2 ul.menu li.first{
  
}
div.ot-bottom-1 ul.menu li.first{
  
}

/* +++++++++++++++ END FOOTER +++++++++++++++ */



уменя никак не получаетса, сразу шаблон на искосок идет.
включая модуль и все сразу сыплется меню вылетает и логотип тоже
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Достаточно странное условие на проверку логотипа. неужели будут страницы без логотипа. И зачем логотип модулем выводить.
Обычно это статический контент и он не меняется.
Предлагаю так
Код: html4strict
<div class="ot-logo-i">
<a href="/" class="logo" title="<?php echo JFactory::getApplication()->getCfg('sitename');?>"></a>
</div>
*

seofishka

  • Новичок
  • 6
  • 0 / 0
работает лого СПС, а как теперь вставить в шапку модуль с права?

Код: html4strict
t-headertop-2
 етот модуль чтоб коректно отображалса где логотип с права
« Последнее редактирование: 07.02.2013, 14:50:34 от seofishka »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать свой шаблон quickstart?

Автор saiskyi

Ответов: 3
Просмотров: 6780
Последний ответ 19.02.2020, 19:29:01
от Bozhkov2
Как настроить шаблон?

Автор tromba

Ответов: 2
Просмотров: 4203
Последний ответ 15.08.2018, 15:29:56
от tromba
Суффикс CSS-класса модуля - объясните пожалуйста, как правильно сделать CCS для модуля

Автор rootroot

Ответов: 19
Просмотров: 39885
Последний ответ 21.03.2018, 23:49:27
от beliyadm
Как загрузить шаблон, и сделать его только для одной страницы?

Автор Ирина Поехали

Ответов: 5
Просмотров: 2182
Последний ответ 05.06.2017, 21:15:42
от effrit
Как вставить рекламу в мобильный шаблон ja_edenite?

Автор gorbi_U

Ответов: 3
Просмотров: 1961
Последний ответ 02.06.2017, 08:43:26
от gorbi_U