forked from pi-engine/pi
-
Notifications
You must be signed in to change notification settings - Fork 0
Dev.Front Module Advance.zh_cn
lavenderli edited this page Aug 12, 2013
·
7 revisions
具体步骤
- 在src文件夹内创建
src/Controller/Admin
,src/Controller/Front
- 以Front为例,在
src/Controller/Front
创建IndexController.php
<? php
namespace Module\{module name}\Controller\Front;
use Pi;
use Pi\Mvc\Controller\ActionController;
class IndexController extends ActionController
{
public function indexAction()
{
$title = 'test';
$this->view()->assign(array(
'title' => $title
));
/* 如果模板的文件名字是对应{controller}-{action}的话,则可以去掉这段代码 */
$this->view()->setTemplate('index-index');
}
}
这个方法可以通过在客户端请求{site}/{module name}/{controller}/{action}
这个url访问到。
- controller写好后,就是view渲染了,创建
template/front/{controller}-{action}.phtml
模板。
<!-- 加载当前模块的css -->
<?php $this->css($this->assetModule('front.css')); ?>
<!-- 模板html -->
<h2><?php echo $title; ?></h2>
最后访问{site}/{module name}/{controller}/{action}
就能看到这个页面
相关文件
config/block.php
、src/Block.php
、区块模板文件
具体步骤
- 在config文件夹中创建区块的配置文件block.php,文件内容参考这里
- 在module.php文件中添加属性
'block' => 'block.php'
- 在src文件夹中创建Block.php(区块程序)
<? php
namespace Module\{module Name};
class Block
{
public static function blocka($options = array(), $module = null) {
/* options可以通过后台设置,这里获取 */
$block = array(
'caption' => __('Block A'),
'content' => "content render by $module",
'options' => $options,
);
return $block;
}
public static function blockb($options = array(), $module = null) {
...
}
}
- 在
{module name}/template/block
目录下创建block-a.phtml。
//根据这个值,进行html代码的书写。
<?php d($block); ?>
<h3><?php echo $block['content']; ?></h3>
- 将创建好的区块应用到页面上
- 通过php方法在页面中输出:
echo $this->widget('{block name}')
- 通过dress up拖拽到指定页面中去。
- 通过php方法在页面中输出:
widget模块提供了三种carousel用于图片显示,如果这三个都不满足需求,可按如下步骤定制:
- 创建
widget/template/block/__carousel-test.phtml
,注意文件的命名:必须以__carousel
开头。
//d($block)
- 在
widget/asset
创建相应的静态文件代码。