Skip to content

Dev.Front View Helper.zh_cn

adivspan edited this page Aug 6, 2013 · 7 revisions

adminNav

加载后台管理界面的导航。

$module = Pi::service('module')->current();  // 先获取到当前后台管理界面处在哪个模块下
$this->adminNav($module)->modes();           // 加载顶部的管理模式导航
$this->adminNav($module)->side();            // 加载侧边栏的模块导航
$this->adminNav($module)->top();             // 加载模块主内容里面的导航

assemble

生成页面元素,在主题模版页中使用 (第二个参数用于指定生成的 html 标签缩进多少个空格)。

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="<?php echo $charset; ?>">
    <?php echo $this->assemble('headTitle', 4); ?>
    <?php echo $this->assemble('headMeta', 4); ?>
    <?php echo $this->assemble('headLink', 4); ?>
    <?php echo $this->assemble('headStyle', 4); ?>
    <?php echo $this->assemble('headScript', 4); ?>    
</head>
<body>
    <?php echo $this->assemble('footScript', 4); ?>
</body>
</html>

asset

生成静态文件路径。

$cssUri = $this->asset('theme/default', 'css/style.css');  // 生成 default 主题下 css/style.css 路径

$jsUri = $this->asset('module/demo', 'js/demo.js');        // 生成 demo 模块下 js/demo.js 路径

assetModule

生成模块下的静态文件路径。

$cssUri = $this->assetModule('css/style.css');          // 缺省为当前模块下

$cssUri = $this->assetModule('css/style.css', 'demo');  // 第二个参数用于指定某个模块下

assetTheme

生成主题下的静态文件路径。

$cssUri = $this->assetTheme('css/style.css');            // 缺省为当前主题下

$cssUri = $this->assetTheme('css/style.css', 'default'); // 第二个参数用于指定某个主题下

backbone

加载 backbone 相关文件(文件放在 www/static/vendor/backbone/)。

$this->backbone();                                 // 缺省只加载 underscore-min.js 和 backbone.min.js 

$this->backbone('some.js');                        // 加载 underscore-min.js , backbone.min.js, some.js

$this->backbone(array( 'some.css', 'some.js', ));  // 加载 underscore-min.js , backbone.min.js, some.css , some.js

$this->backbone('some.js', array('conditional' => '...', 'position' => 'prepend'));

$this->backbone(array(
    'some.css' => array('media' => '...', 'conditional' => '...'),
    'some.js',
));

一个页面调用多次这个方法,不管是否传参,都只加载一次 underscore-min.jsbackbone.min.js

basePath

获取绝对路径。

$this->basePath();       // 缺省为获取网站首页的绝对路径

$this->basepath($file);  // 获取 $file(相对网站首页的相对地址)的绝对路径

blocks

获取 page zone 页面 10 个区域( 0 和 99, 1 到 8,0 和 99 有特殊含义)的所有区块,一般在 {theme name}/template/layout-front.phtml 使用。

<?php
    $blocks = $this->blocks();                  // 获取所有区块数据
    $blockTemplate = $this->template('block');  // 获取区块模版页路径
?>
<?php if (!empty($blocks[0])) { ?>
    <div class="pi-zone-0">
        <?php foreach ($blocks['0'] as $block) {
            include $blockTemplate;             // 加载区块模版页(通过循环来渲染 $blocks['0'] 的每个区块数据)
        } ?>
    </div>
<?php } ?>
...   // 此处省略 $blocks[1] 到 $blocks[8],$blocks[99]

bootstrap

加载 bootstrap 相关文件(文件放在 www/static/vendor/bootstrap/)。

$this->bootstrap();                                  // 缺省只加载 css/bootstrap.min.css

$this->bootstrap('css/some.css');                    // 加载 css/bootstrap.min.css, css/some.css

/* 加载 css/bootstrap.min.css, css/font-awesome.min.css 和只对 IE7 可见的 css/font-awesome-ie7.min.css */
$this->bootstrap(array(
    'css/font-awesome.min.css',
    'css/font-awesome-ie7.min.css'  => array(
        'conditional'   => 'IE 7',
    ),
));

/* 加载 css/bootstrap.min.css, js/bootstrap-transition.js, js/bootstrap-carousel.js */
$this->bootstrap(array('js/bootstrap-transition.js', 'js/bootstrap-carousel.js'));

$this->bootstrap('some.js', array('conditional' => '...', 'position' => 'prepend'));

$this->bootstrap(array(
    'some.css' => array('media' => '...', 'conditional' => '...'),
    'some.js',
));

一个页面调用多次这个方法,不管是否传参,都只加载一次 css/bootstrap.min.css

breadcrumbs

加载面包屑导航,链接之间可以设置分割线,比如:<span class="pi-divider">/</span> ,缺省为 >

<?php $breadcrumbs = $this->nav('front')->breadcrumbs()->setSeparator('<span class="pi-divider">/</span>')->render(); ?>
<?php if ($breadcrumbs) { ?>
<div class="breadcrumb">
   <?php echo $breadcrumbs; ?>
</div>
<?php } ?>

css

加载指定路径的 css 文件。

$this->css('some.css');              // 加载 some.css

// 可以通过传递一个 css 路径数组来一次性加载多个 css 文件
$this->css(array(
    $this->assetTheme('css/style.css'),
    $this->assetTheme('css/front.css'),
));

/* 加载 some.css,并把这个文件放在通过这个方法加载的 css 文件的最前面,第二个参数缺省为 append,即按调用的顺序加载
   只有当第一个参数是字符串,而不是数组的情况下,才能传第二个参数来确定加载的位置 */
$this->css('some.css', 'prepend');

escape

facebook

footScript

ga

headLink

headMeta

headScript

headStyle

headTitle

i18n

i18nModule

i18nTheme

jQuery

js

menu

nav

navMenu

navigation

paginationControl

plusone

sitemap

template

templateComponent

templateModule

templateTheme

twitter

url

widget

Clone this wiki locally