forked from pi-engine/pi
-
Notifications
You must be signed in to change notification settings - Fork 0
Dev.Front View Helper.zh_cn
adivspan edited this page Aug 6, 2013
·
7 revisions
加载后台管理界面的导航。
$module = Pi::service('module')->current(); // 先获取到当前后台管理界面处在哪个模块下
$this->adminNav($module)->modes(); // 加载顶部的管理模式导航
$this->adminNav($module)->side(); // 加载侧边栏的模块导航
$this->adminNav($module)->top(); // 加载模块主内容里面的导航
生成页面元素,在主题模版页中使用 (第二个参数用于指定生成的 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>
生成静态文件路径。
$cssUri = $this->asset('theme/default', 'css/style.css'); // 生成 default 主题下 css/style.css 路径
$jsUri = $this->asset('module/demo', 'js/demo.js'); // 生成 demo 模块下 js/demo.js 路径
生成模块下的静态文件路径。
$cssUri = $this->assetModule('css/style.css'); // 缺省为当前模块下
$cssUri = $this->assetModule('css/style.css', 'demo'); // 第二个参数用于指定某个模块下
生成主题下的静态文件路径。
$cssUri = $this->assetTheme('css/style.css'); // 缺省为当前主题下
$cssUri = $this->assetTheme('css/style.css', 'default'); // 第二个参数用于指定某个主题下
加载 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.js
和 backbone.min.js
。
获取绝对路径。
$this->basePath(); // 缺省为获取网站首页的绝对路径
$this->basepath($file); // 获取 $file(相对网站首页的相对地址)的绝对路径
获取 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 相关文件(文件放在 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
。
加载面包屑导航,链接之间可以设置分割线,比如:<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 文件。
$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');