Skip to content

Dev.Front Module Advance.zh_cn

lavenderli edited this page Aug 12, 2013 · 7 revisions

1 模块模板

具体步骤

  1. 在src文件夹内创建src/Controller/Adminsrc/Controller/Front
  2. 以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访问到。

  1. 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}就能看到这个页面

2 区块模板

相关文件
config/block.phpsrc/Block.php、区块模板文件

具体步骤

  1. 在config文件夹中创建区块的配置文件block.php,文件内容参考这里
  2. 在module.php文件中添加属性'block' => 'block.php'
  3. 在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) {
        ...
      }
    }
  1. {module name}/template/block目录下创建block-a.phtml。
//根据这个值,进行html代码的书写。
<?php d($block); ?>
<h3><?php echo $block['content']; ?></h3>
  1. 将创建好的区块应用到页面上
    • 通过php方法在页面中输出:echo $this->widget('{block name}')
    • 通过dress up拖拽到指定页面中去。

3 carousel widget定制

widget模块提供了三种carousel用于图片显示,如果这三个都不满足需求,可按如下步骤定制:

  1. 创建widget/template/block/__carousel-test.phtml,注意文件的命名:必须以__carousel开头。
//d($block)
  1. widget/asset创建相应的静态文件代码。
Clone this wiki locally