Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   проверка наличия контента в колонках (http://forum.typo3.ru/showthread.php?t=8167)

are 16.11.2009 10:10

проверка наличия контента в колонках
 
приведу сразу работающий пример :

Код:

page.headerData {
        10 = TEXT
        10.value = <link rel="stylesheet" type="text/css" href="fileadmin/design/css/layout_left.css" />
        10.if.isTrue.numRows < styles.content.getLeft
       
        20 = TEXT
        20.value = <link rel="stylesheet" type="text/css" href="fileadmin/design/css/layout_right.css" />
        20.if.isTrue.numRows < styles.content.getRight
}

если не выполнено ни одно из условий, то middle:700 - ширина центральной колонки

если в левой колонке есть контент, то в хедер пихаем layout_left.css
(left:100, middle:600 - ширина соотв. колонки)

если в в правой колонке есть контент, то в хедер пихаем layout_right.css
(middle:500, right:200 - ширина соотв. колонки)

а как проверить условие наличия контента одновременно в двух колонках, чтобы вставить layout_left_right.css
(left:100, middle:400, right:200)

мне нужно что-то типа

Код:

page.headerData {
        10 = TEXT
        10.value = <link rel="stylesheet" type="text/css" href="fileadmin/design/css/layout_left.css" />
        10.if.isTrue.numRows < styles.content.getLeft
       
        20 = TEXT
        20.value = <link rel="stylesheet" type="text/css" href="fileadmin/design/css/layout_right.css" />
        20.if.isTrue.numRows < styles.content.getRight

        30 = TEXT
        30.value = <link rel="stylesheet" type="text/css" href="fileadmin/design/css/layout_left_right.css" />
        30.if.isTrue.numRows < styles.content.getLeft && styles.content.getRight

}

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

Sergey M Nikitin 17.11.2009 08:16

Попробуйте так:

Код:


10 = COA
10.if #первое условие
10.10 = TEXT
10.10.if #второе условие

Выводиться будет если оба выражение истины, Можно еще попробовать через вложенный stdWrap, но сходу пример не лезит в голову, пробуйте, экспериментируйте.

are 27.11.2009 10:00

Спасибо!

поэкспериментировал и получил такой работающий код:

Код:

page.headerData {
        10 = TEXT
        10.value = <link href="fileadmin/design/css/layout_left_middle.css" rel="stylesheet" type="text/css" />
        10.if.isTrue.numRows < styles.content.getLeft
        10.if.isFalse.numRows < styles.content.getRight

        20 = TEXT
        20.value = <link href="fileadmin/design/css/layout_middle_right.css" rel="stylesheet" type="text/css" />
        20.if.isTrue.numRows < styles.content.getRight
        20.if.isFalse.numRows < styles.content.getLeft
       
        30 = TEXT
        30.value = <link href="fileadmin/design/css/layout_left_middle_right.css" rel="stylesheet" type="text/css" />
        30.if.isTrue.numRows < styles.content.getLeft
        30.if.isPositive.numRows < styles.content.getRight
}

предполагается, что по умолчанию одноколоночный дизайн с layout.css
(центральная колонка на всю ширину)
Если левый/правый блоки непустые - в дополнение цепляем соотв. стиль

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

page.includeCSS {
  file1 = ...
}



Часовой пояс GMT +4, время: 08:36.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot