Dev.Front View Helper.zh_cn - pi-engine/pi GitHub Wiki

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

转义HTML内容。

$this->escape($content);

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

⚠️ **GitHub.com Fallback** ⚠️