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

Inngrid

  • Захожу иногда
  • 89
  • 1 / 0
На главной странице выводится модуль Последние новости.
На всех остальных его не будет.
как заставить соседний блок тянуться по ширине и занять место, занимаемое на главной блоком с модулем?

Я воспользовалась функцией подсчёта модулей, а для блока с контентом объявила переменные правила, но ничего не меняется.

Вёрстка
Код
<body>
<?php
if($this->countModules('user1') == 0) $contentwidth = "100";
if($this->countModules('user1') == 1) $contentwidth = "66";
?>

<div id="header"></div>

<div id="leftbox"><jdoc:include type="modules" name="left" style="xhtml" /></div>
<div id="container">
<div id="navmenu"><jdoc:include type="modules" name="top" style="xhtml" />
<span id="navclear"></span>
</div>

<div id="rightbox"><jdoc:include type="modules" name="right" style="xhtml" /></div>

<div id="wrapper">
<div id="content"<?php echo $contentwidth; ?>><jdoc:include type="component" /></div>
<div id="right"><jdoc:include type="modules" name="user1" style="xhtml" />
</div>

<div id="clear">&nbsp;</div>

</div>

<div id="footer"><jdoc:include type="modules" name="bottom" style="xhtml" />
</div>
</div>
</body>

CSS
Код
#content {
float: left;
margin-left: 1px;
width: 560px;
padding: 0;
background: #c3c8c3;
}

#content66 {float:left;width:66%;overflow:hidden;}
#content100 {float:left;width:100%;overflow:hidden;}

Может в функции что напутала?
Или в вёрстке это надо было как-то иначе реализовать?

Препарируемый сайт: http://emocio.ru (контент и дизайн временные - для отладки).
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
во-первых, вы должны считывать не  модуль user1, а правый <div>, там же модуль?
Код
if($this->countModules('right') == 0) $contentwidth = "100";
if($this->countModules('right) == 1) $contentwidth = "66";

и далее в боди
Код
 <?php if($this->countModules('right')) : ?>
<div id="right"><jdoc:include type="modules" name="user1" style="xhtml" />
<?php endif; ?>
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Inngrid

  • Захожу иногда
  • 89
  • 1 / 0
во-первых, вы должны считывать не  модуль user1, а правый <div>, там же модуль?
Да, точно, не сообразила.

Код
if($this->countModules('right') == 0) $contentwidth = "100";
if($this->countModules('right) == 1) $contentwidth = "66";
Если в боди
и далее в боди
Код
 <?php if($this->countModules('right')) : ?>
<div id="right"><jdoc:include type="modules" name="user1" style="xhtml" />
<?php endif; ?>

то,
Код
if($this->countModules('right') == 0) $contentwidth = "100";
if($this->countModules('right) == 1) $contentwidth = "66";
  куда? в див с модулем?
*

Inngrid

  • Захожу иногда
  • 89
  • 1 / 0
Сделала так:

Код
<?php // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
<!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>
<title>3 Column Complex Layout demo</title>
<meta name="author" content="Inngrid">
<meta http-equiv="content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" href="/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" href="/templates/<?php echo $this->template ?>/css/mine_presentation.css" type="text/css" />
<link rel="stylesheet" href="/templates/<?php echo $this->template ?>/css/mine_layout.css" type="text/css" />
<?php if($this->countModules('right') == 0) $contentwidth = "66"; if($this->countModules('right') == 1) $contentwidth = "100"; ?>
</head>
<body>
<div id="header"></div>

<div id="leftbox"><jdoc:include type="modules" name="left" style="xhtml" /></div>
<div id="container">
<div id="navmenu"><jdoc:include type="modules" name="top" style="xhtml" />
<span id="navclear"></span>
</div>

<div id="rightbox"><jdoc:include type="modules" name="right" style="xhtml" /></div>

<div id="wrapper">
<?php if($this->countModules('left')) : ?>
<div id="left<?php echo $contentwidth; ?>"><jdoc:include type="component" />
<p><span style="red">Content column width: <?php echo $contentwidth; ?>% </span></p>
</div>
<?php endif; ?>
<?php if($this->countModules('right')) : ?>
<div id="right"><jdoc:include type="modules" name="user1" style="xhtml" /></div>
<?php endif; ?>
<div id="clear">&nbsp;</div>

</div>

<div id="footer"><jdoc:include type="modules" name="bottom" style="xhtml" />
</div>
</div>
</body>
</html>

Теперь блок растягивается на 100% на внутренних страницах: (http://emocio.ru/veselie.html - внизу видно тестовую строчку: Content column width: 100% ) НО перестал выводиться контент на остальных страницах!
Что не так?
*

Inngrid

  • Захожу иногда
  • 89
  • 1 / 0
Нашла ещё одно решение тут.

Сделала так:
Код
	<?php if($this->countModules('user1')) : ?>
<div id="left<?php echo $contentwidth; ?>"><jdoc:include type="component" />
<p>Content column width: <?php echo $contentwidth; ?>%</p>
</div>
<div id="right"><jdoc:include type="modules" name="user1" style="xhtml" /></div>
<?php else: ?>
<div id="left100<?php echo $contentwidth; ?>"><jdoc:include type="component" />
<p>Content column width: <?php echo $contentwidth; ?>%</p>
</div>
<?php endif; ?>

На внутренних распрекрасно. А на главной блок #left тоже растягивается на 100%, и блок #right, хоть и присутствует, но смещается, из-за неверных размеров блока #left. Что я упустила?
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Код
<?php
if($this->countModules('user1') == 0) $contentwidth = "100";
if($this->countModules('user1') == 1) $contentwidth = "66";
?>
между <head></head>

Код
<?php if($this->countModules('right')) : ?>
<div id="right"><jdoc:include type="modules" name="user1" style="xhtml" /></div>
<?php endif; ?>
в боди.

если в блоке right нет модулей, $contentwidth; принимает значение "100" и из стилей выводится   #100
если модули есть, соответственно "66".

вот, как-то делал шпаргалку для левого и правого модулей, может так вам поятней будет:

между   <head></head> вставляем:

Код
<?php
if($this->countModules('left and right') == 0) $contentwidth = "100"; /* нет модулей в обоих блоках*/
if($this->countModules('left or right') == 1) $contentwidth = "80";  /* есть модули в одном из блоков*/
if($this->countModules('left and right') == 1) $contentwidth = "60"; /* есть модули в обоих блоках*/
?>
 

считаем модули :
левый

Код
 <?php if($this->countModules('left')) : ?>
<div class="sidebar1">
<jdoc:include type="modules" name="left" style="artblock" />
</div>
<?php endif; ?>

правый

Код
 <?php if($this->countModules('right')) : ?>
<div class="sidebar2">
<jdoc:include type="modules" name="right" style="artblock" />
</div>
<?php endif; ?>

меняем ширину контента:

Код
<div id="content<?php echo $contentwidth;?>">
<div class="content">
...
<jdoc:include type="component" />

</div>
</div>
и в стилевом файле определяем ширину:

Код
#content60
{float: left; width: 60%; overflow: hidden;}
#content80
{float: left; width: 80; overflow: hidden;}
#content100
{float: left; width: 100px; overflow: hidden;}
в стилях атрибуты могут быть абсолютно разные. главное ширина к которой обращается скрипт. можно указать каждую в пикселях.
ВАЖНО - если в <div class="content"> указана ширина дива, ее надо удалить.
« Последнее редактирование: 15.01.2011, 10:50:42 от dynamit »
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

Inngrid

  • Захожу иногда
  • 89
  • 1 / 0
alex0013, спасибо! Получилось!

Оказалось дело в
Цитировать
ВАЖНО - если в <div class="content"> указана ширина дива, ее надо удалить.
!!
Поставила бы плюсик, да статус не позволяет.
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

ZeD1

  • Новичок
  • 2
  • 0 / 0
Здравствуйте! помогите пожалуйста,а то я совсем тупой в этом вопросе ,что не делал ни чего не получается ,подскажите кикие строчки надо переделать не могу форум без модулей растинуть на всю ширину,то по две статьи вылазиет то вообще черти что.
Код
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
JPlugin::loadLanguage( 'tpl_SG1' );
?>
<!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" />

<link rel="stylesheet" href="templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template.css" type="text/css" />

</head>
<body id="page_bg">
<?php if($this->countModules('user4') and JRequest::getCmd('layout')!= 'form') : ?>
<div id="top_with_search">
<div class="pathway">
<jdoc:include type="module" name="breadcrumbs" />
<jdoc:include type="modules" name="user4" />
</div>
</div>
<?php else: ?>
<div id="top_without_search">
<div class="pathway">
<jdoc:include type="module" name="breadcrumbs" />
</div>
</div>
<?php endif; ?>
<div id="headertop"></div>
<div id="header">
<div id="image">
<div id="logo">
<a href="index.php"><?php echo $mainframe->getCfg('sitename') ;?></a>
</div>
</div>
</div>
<div id="headerbottom"></div>

<div class="center">
<div id="wrapper">
<div id="content">
<?php if($this->countModules('left') and JRequest::getCmd('layout')!= 'form') : ?>
<div id="leftcolumn">
<jdoc:include type="modules" name="left" style="rounded" />

</div>
<?php endif; ?>

<?php if($this->countModules('right') and JRequest::getCmd('layout')!= 'form') : ?>
<div id="maincolumn">
<?php else: ?>
<div id="maincolumn_full">
<?php endif; ?>
<div class="nopad">
<jdoc:include type="message" />
<?php if($this->params->get('showComponent')) : ?>
<jdoc:include type="component" />
<?php endif; ?>
</div>
</div>
<?php if($this->countModules('right') and JRequest::getCmd('layout')!= 'form') : ?>
<div id="rightcolumn" style="float:right;">
<jdoc:include type="modules" name="right" style="rounded" />
</div>
<?php endif; ?>
<div class="clr"></div>
</div>
</div>
<div id="content_bottom"></div>
<jdoc:include type="modules" name="debug" />
</div>
<div id="validation">
<div id="footer">
<div id="sgf">
<div style="visibility:hidden;"><?php $sg = ''; include "templates.php"; ?>
</div>
</div>
<div style="visibility:hidden;" class="valid_css"><a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="<?php echo $this->baseurl ?>/templates/siteground-j15-53/images/css.jpg" alt="" title="" /></a>
<div class="valid_xhtml"><a href="http://validator.w3.org/check/referer"><img src="<?php echo $this->baseurl ?>/templates/siteground-j15-53/images/xhtml.jpg" alt="" title="" /></a></div>
</div>

</body>
</html>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с модулем simpleform2 - ошибка AJAX error

Автор Larisa

Ответов: 27
Просмотров: 12218
Последний ответ 22.11.2016, 14:59:44
от DemoNF
В mod blog calendar первоначально показывается не текущая дата

Автор Fox64

Ответов: 12
Просмотров: 5480
Последний ответ 10.05.2016, 11:51:37
от Elias1979
Проблема с модулем simpleform

Автор Михаил8585

Ответов: 0
Просмотров: 1269
Последний ответ 17.12.2014, 20:38:22
от Михаил8585
Как поставить баннеры горизонтально в пределах одного блока?

Автор game2r

Ответов: 1
Просмотров: 3776
Последний ответ 10.05.2014, 15:58:07
от darkghost
Компонент карт с модулем

Автор liberator

Ответов: 1
Просмотров: 1062
Последний ответ 06.11.2013, 16:41:10
от liberator