Статьи

Последние посты на desiremotors.ru

Лента не найдена

Последние объявления на saledrom.ru

Лента не найдена

Настройка трёх колоночного шаблона.

Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

 

При первом создание шаблона столкнулся с таким вопросом,как сделать правильное отображение в шаблоне 3-х колонок. Колонки должны были работать следующим образом,первый вариант это когда в левой и правой колонке есть вывод модулей, а контент занимает всю среднею часть 60%.

Второй вариант когда отключена правая или левая колонка и контент растягивается на эту не используемую область,то есть на 80%. И последний вариант это когда нет ни одного используемого модуля в обоих колонках,а контент растягивается на все 100% экрана. Поискав тогда решение в интернете я ответа вполне понятного я так и не нашёл,везде всё описывалось красиво,но на деле нечего не работало как всегда.

Задав вопрос как всё же это сделать,на что мне ответили используйте генератор шаблонов,там типо есть всё. Но зачем мне все эти генераторы шаблонов,когда я сам хочу во всё разобраться. На какое то время я бросил эту затею,но совсем недавно вернулся к ней и решил всё же разобраться в ней и поделиться с вами. Всё оказалось достаточно просто,но когда не знаешь,то всё наоборот всё кажется невероятно сложно. Вот пример кода:

<?php 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>
<jdoc:include type="head" />
<link href="/<?php echo $this->baseurl ?>/templates/cmsjoom/css/template.css" rel="stylesheet" type="text/css" />

<!--Указываем нашим колонкам,что делать когда он имеет разную заполняемость страницы-->
<?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";
?>
</head>

<body>

<!--Подключаем вывод левой колонки  -->   
<?php if($this->countModules('left')) :?>
<div id="left">
<jdoc:include type="modules" name="left" style="xhtml" />
</div>
<?php endif; ?>

<!--Подключаем вывод правой колонки  -->                               
<?php if($this->countModules('right')) : ?>
<div id="
right">
<jdoc:include type="modules" name="right" style="xhtml" />
</div>
<?php endif; ?>


<!--Открываем блок вывода контента-->
<div id="content<?php echo $contentwidth; ?>">
<!--Выводим основной контент-->    
<jdoc:include type="component" />
</div>          
</body>
</html>

Знакомая вещь? Думаю кто понимает,то да. Теперь в css прописываем следующие:

#left {
margin:0;
padding:0;
background:#B6D1EC;
width:195px;
min-height:447px;
float:left;
}

/*Условия для ie-6*/
*html #left{
height:447px;
}
#rigth {
margin:0;
padding:0;
background:#B6D1EC;
width:195px;
min-height:447px;
float:right;
}

/*Условия для ie-6*/
*html #rigth{
height:447px;
}
#content60 {
margin:0 auto;
padding:0;
background: #B6D1EC;
width:520px;
min-height:447px;
float:left;
}
#content80 {
margin:0 auto;
padding:0;
background:#B6D1EC;
width:725px;
min-height:447px;
float:left;
}
#content100 {
margin:0 auto;
padding:0;
margin-bottom:10px;
background:#B6D1EC;
width:930px;
min-height:447px;
}


Данный пример я взял из своего шаблона,указывайте свои значения. Смысл кода следующий,прописываем стили для левого и правого блока,а также контента,но контент имеет 3 разных стиля,то есть если в коде всего лишь один,то тут нужно три. Данные стили будут подключаться в зависимости от того опубликован вывод правого или левого модуля или обоих. Тут нечего сложного нет,подставляйте свои значения и как не странно всё заработает,вот и всё,думаю понятно объяснил. Данный пример будем использовать в нашем шаблоне.

Оставьте свой комментарий

Оставить комментарий от имени гостя

0 / 3500 Ограничение символов
Ваш текст должен быть в пределах 3-3500 символов
правилами и условиями.

Люди, участвующие в этой беседе

  • Гость - Артем

    <?php 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 >language; ?>" lang="<?php echo $this->language; ?>" >
    <head>

    baseurl ?>/css/template.css" rel="stylesheet" type="text/css" />


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

    ?>

    Ошибка
    Parse error: syntax error, unexpected '=' in Z:\home\mysite\www\templates\site2\index.php on line 10

  • Ошибки тут нет,было проверено на нескольких шаблонах. Смотрите у себя.

  • Гость - Рам

    не работает, коментатор прав. Возможно php версии разные

Подпишитесь на наши соц группы

  1. Вконтакте
  2. Facebook
  3. Google+1
  4. Ок
  5. Твитер

Голосование в ВК

Авторизация

Последние комментарии

Гость - Саша
Поле телефон реально вывести в блочный вид?
Гость - profile
Coupons DJ-Classifieds App нас... в Материалы Joomla
Гость - profile
BuaXua Floating 3.6.0 рус в Материалы Joomla
Гость - profile
BuaXua Floating 3.6.0 рус в Материалы Joomla

Последнее на форуме

  • Нет сообщений для показа

Поддержка проекта