介紹T3框架布局
T3默認(rèn)支持多種布局。在每一個(gè)布局,這是與多個(gè)模塊建立(頁眉、主體、聚光燈…)。每個(gè)塊包含一個(gè)或多個(gè)模塊位置。可以將特定模塊位置分配給塊。

布局配置
在布局部分,將有2個(gè)部分進(jìn)行配置:布局結(jié)構(gòu)和布局配置。

在哪里保存布局設(shè)置?
當(dāng)你配置布局,設(shè)置將被保存到INI文件,該文件位于模板templates/t3_bs3_blank/etc/layout/
當(dāng)我改變默認(rèn)的布局設(shè)置,該設(shè)置將被保存到default.ini文件。

設(shè)置保存在INI文件的格式:
- [navhelper]
- position="navhelper"
- [footer]
- position="footer"
- [block1@spotlight-1]
- lg="col-lg-4"
- md="col-md-3"
- sm="col-sm-3"
- xs="col-xs-6"
- position="position-1"
當(dāng)你刪除INI文件,你的布局文件將被設(shè)置為默認(rèn)值(在你采取任何改變?cè)瓉淼牟季郑?/p>
創(chuàng)建新布局
有2種方法來創(chuàng)建新的布局。
保存副本
從后端配置布局時(shí),可以復(fù)制任何布局。

拷貝的布局文件將存儲(chǔ)在templates/t3_bs3_blank/tpls/
添加新的布局文件
每個(gè)布局都有自己的文件。該文件位于:templates/t3_bs3_blank/tpls
創(chuàng)建新的布局,你要拷貝一個(gè)布局文件是最簡潔明了的創(chuàng)建。

定義布局中的塊
現(xiàn)在,打開拷貝文件并自定義。如果你想自定義模板設(shè)置面板,只需打開它,一旦你添加新的布局文件,它將被加載到布局列表中的模板設(shè)置面板。
打開此文件時(shí),您會(huì)看到,有一些塊的布局包括。可以添加新塊或移除塊。
若要在布局中添加新塊,請(qǐng)使用下面的格式。
- <?php $this->loadBlock ('block_name') ?>
- <body>
- <?php $this->loadBlock ('header') ?>
- <?php $this->loadBlock ('mainnav') ?>
- <?php $this->loadBlock ('spotlight-1') ?>
- <?php $this->loadBlock ('mainbody') ?>
- <?php $this->loadBlock ('spotlight-2') ?>
- <?php $this->loadBlock ('navhelper') ?>
- <?php $this->loadBlock ('footer') ?>
- </body>
創(chuàng)建新的塊 創(chuàng)建新的塊,拷貝新的塊文件:templates/t3_bs3_blank/tpls/blocks

分配模塊位置
每個(gè)塊有一個(gè)分配給的模塊位置,您可以使用下面的代碼格式定義塊的分配模塊位置:
- <jdoc:include type="modules" name="<?php $this->_p('your_module_position_name') ?>" />
- <jdoc:include type="modules" name="<?php $this->_p($custom-position) ?>" style="JAxhtml" />
添加新的模塊位置
步驟1:添加模塊位置塊
打開要添加新模塊位置的塊文件
- <jdoc:include type="modules" name="<?php $this->_p('your_module_position_name') ?>" />
- <!-- SIDEBAR 1 -->
- <div class="ja-sidebar ja-sidebar-1 <?php echo $this->getClass($layout, $col) ?>" <?php echo $this->getData ($layout, $col++) ?>>
- <jdoc:include type="modules" name="<?php $this->_p($sidebar1) ?>" style="JAxhtml" />
- </div>
- <!-- //SIDEBAR 1 -->
步驟2:定義新創(chuàng)建的模塊位置
完成后,需要在文件中定義新創(chuàng)建的模塊位置:TemplateDetail.xml
- <positions>
- <position>your_module_position_name</position>
- </positions>
- <positions>
- <position>position-14</position>
- <position>position-15</position>
- <position>custom-position</position> <! my created module position />
- </positions>
加載特定的樣式表
你能為一個(gè)布局樣式表加載,這樣做,創(chuàng)建一個(gè)文件。在templates/t3_bs3_blank/layouts。將樣式添加到文件中。

- // VARIABLES & MIXINS
- // ------------------
- @import "../vars.less"; // Modify this for custom colors, font-sizes, etc
- // ---------------------------------------------------------
- // MAGAZINE LAYOUT
- // ---------------------------------------------------------
- // Clearfix
- // ----------------------------
- .magazine-item,
- .magazine-featured-leading,
- .magazine-featured-intro,
- .magazine-category {
- .clearfix();
- }
- //
- // Generic Magazine Elements
- // --------------------------------------------------------
- // Page Sub Header
- // ----------------------------
- .magazine .page-subheader {
- h2 {
- font-size: @font-size-h1;
- }
- }
接下來打開PHP的布局文件(templates/t3_bs3_blank/tpls/)你想負(fù)荷較少的文件創(chuàng)建。

使用格式
- <?php $this->addCss('path-to-.less-file') ?>
例子:
- <?php $this->addCss('layouts/magazine') ?>
布局定制的代碼格式
在特定的布局中加載一個(gè)塊layout/tpls
- <?php $this->loadBlock ('blockname') ?>
加載一個(gè)聚光燈
- <?php if ($this->checkSpotlight('spotlight-1', 'position-1, position-2, position-3, position-4')) : ?>
- <!-- SPOTLIGHT 1 -->
- <div class="container t3-sl t3-sl-1">
- <?php $this->spotlight('spotlight-1', 'position-1, position-2, position-3, position-4') ?>
- </div>
- <!-- //SPOTLIGHT 1 -->
- <?php endif ?>
向塊中添加新的位置
- <jdoc:include type="modules" name="<?php $this->_p('your_module_position_name') ?>" />
改變塊中的位置大小
您可以調(diào)整特定布局中的任何塊,也可以在響應(yīng)布局中設(shè)置塊大小。
在這個(gè)教程中,我們將調(diào)整主體塊。主體有3塊:主要內(nèi)容,1欄2欄。每個(gè)塊的大小:側(cè)邊欄1跨3、主要內(nèi)容6跨,2跨3欄。

如何步驟:
定義在布局中調(diào)整大小的塊
所有的塊文件位于templates/t3_bs3_blank/tpls/blocks/。打開要改變大小的塊。在這個(gè)例子中,我們將打開文件mainbody.php。
- // positions configuration
- $sidebar1 = 'sidebar-1';
- $sidebar2 = 'sidebar-2';
- $sidebar1 = $this->countModules($sidebar1) ? $sidebar1 : false;
- $sidebar2 = $this->countModules($sidebar2) ? $sidebar2 : false;
- // detect layout
- if ($sidebar1 && $sidebar2) {
- $this->loadBlock('mainbody/two-sidebar', array('sidebar1' => $sidebar1, 'sidebar2' => $sidebar2));
- } elseif ($sidebar1) {
- $this->loadBlock('mainbody/one-sidebar-left', array('sidebar' => $sidebar1));
- } elseif ($sidebar2) {
- $this->loadBlock('mainbody/one-sidebar-right', array('sidebar' => $sidebar2));
- } else {
- $this->loadBlock('mainbody/no-sidebar');
- }
主體塊負(fù)荷兩欄或左或右一個(gè)邊欄或基于側(cè)邊欄位置是否活躍或不是側(cè)邊塊。所以現(xiàn)在要調(diào)整塊的主體,我們需要調(diào)整主體塊。
調(diào)整塊
打開塊文件并自定義每個(gè)位置的大小。

- <!-- MAIN CONTENT -->
- <div id="t3-content" class="t3-content col-xs-12 col-md-8 col-md-push-2">
- <?php if($this->hasMessage()) : ?>
- <jdoc:include type="message" />
- <?php endif ?>
- <jdoc:include type="component" />
- </div>
- <!-- //MAIN CONTENT -->
- <!-- SIDEBAR 1 -->
- <div class="t3-sidebar t3-sidebar-1 col-xs-6 col-md-2 col-md-pull-8 <?php $this->_c($vars['sidebar1']) ?>">
- <jdoc:include type="modules" name="<?php $this->_p($vars['sidebar1']) ?>" style="T3Xhtml" />
- </div>
- <!-- //SIDEBAR 1 -->
- <!-- SIDEBAR 2 -->
- <div class="t3-sidebar t3-sidebar-2 col-xs-6 col-md-2 <?php $this->_c($vars['sidebar2']) ?>">
- <jdoc:include type="modules" name="<?php $this->_p($vars['sidebar2']) ?>" style="T3Xhtml" />
- </div>
- <!-- //SIDEBAR 2 -->






