在 views 文件夹,我们创建一个跟控制器名称一样的文件夹list,新建一个index.php的视图文件。

我们讨论过多次,最后决定IBOS的视图机制还是以高效为主。因此我们没有使用模板,而是直接使用了原生的PHP。因此一个视图文件便是一个PHP文件。

为了演示方便,这次的视图使用了全局的layout,样式也是全局的。在大多数情况下应该能满足需求。当然你也可以设计模块独有的风格,使用模块独有的样式。

注:全局的layout文件放在 system\theme\default\views\layouts\main.php。这个 layout 包含了头尾,中间的部分就是index.php 里的内容。

随后,我们输入以下内容:

index.php

<!-- Mainer -->
<div class="mc clearfix">
<!-- Mainer right -->
<div>
<div class="page-list">
<div class="page-list-header">
<div class="btn-toolbar pull-left">
<div class="btn-group">
<a class="btn" <?php echo $this->createUrl( 'content/add' ); ?>>增加留言</a>
<a class="btn" <?php echo $this->createUrl( 'content/del' ); ?>>删除留言</a>
</div>
</div>
</div>
<div class="page-list-mainer">
<?php if ( count( $list ) > 0 ): ?>
<table class="table table-striped table-hover">
<thead>
<tr>
<th><label class="checkbox"><input type="checkbox" data-name="message"></label></th>
<th>留言人</th>
<th>时间</th>
<th>内容</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<?php foreach ( $list as $index => $row ): ?>
<tr>
<td width="20">
<label class="checkbox">
<input type="checkbox" name="message" value="<?php echo $row['id']; ?>">
</label>
</td>
<td><?php ?></td>
<td><?php echo ConvertUtil::formatDate( $row['time'], 'u' ); ?></td>
<td><?php echo $row['content']; ?></td>
<td>
<?php if ( $row['uid'] == Ibos::app()->user->uid ): ?>
<a class="btn btn-small" <?php echo $this->createUrl( 'content/del', array( 'id' => $row['id'] ) ); ?>>删除</a>
<a class="btn btn-small" <?php echo $this->createUrl( 'content/edit', array( 'id' => $row['id'] ) ); ?>>编辑</a>
<?php endif; ?>
<a class="btn btn-small" <?php echo $this->createUrl( 'content/reply', array( 'id' => $row['id'] ) ); ?>>回复</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<div class="page-list-footer">
<div class="pull-right">
<?php $this->widget( 'IWPage', array( 'pages' => $pages ) ); ?>
</div>
</div>
<?php else: ?>
<div class="no-data-tip"></div>
<?php endif; ?>
</div>
</div>
</div>

这个视图里的逻辑应该不难理解。

我们先跳过这个视图里出现的陌生的方法,打开浏览器,输入 {你的IBOS访问地址}/?r=messageboard/list/index,看看页面是不是出来了?

现在还没有任何内容,因为我们还没写添加及其他的方法。但是到这里,已经没有什么难题了,你基本需要了解的已经了解了。

IBOS二次开发之视图创建(PHP技术)的更多相关文章

  1. Revit二次开发-根据视图阶段(Phase)创建房间

    最近开发业务中,有一个自动创建房间的功能,很自然的想到了Document.NewRooms2方法.但是当前功能的特殊之处在于,Revit项目视图是分阶段(Phase)的,不同阶段的房间是互相独立的. ...

  2. AutoCad 二次开发 .net 之创建Table

    我使用了COM对象来在cad2018中创建table表格,需要的ObjectArx开发包可以在官网上下载,并且需要使用.netframework4.6的库才行. 项目里除了引用常规的Cad开发dll, ...

  3. NX二次开发-UFUN建模创建特征组UF_MODL_create_set_of_feature

    NX11+VS2013 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建块 UF_FEATURE_SIGN ...

  4. NX二次开发-算法篇-创建最大边界包容盒

    NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <u ...

  5. NX二次开发-通过数组创建矩阵

    函数:UF_CSYS_create_matrix() 函数说明:通过数组创建矩阵. 用法: #include <uf.h> #include <uf_csys.h> exter ...

  6. IBOS云办公系统二次开发之功能介绍(PHP技术)

    IBOS自动化办公系统是我见到的功能.架构最好的开源自动化办公系统,功能与企业需求吻合度之高.架构之灵活,让我不得不将之介绍给大家,让跟多需要学习PHP开发的朋友来了解她,拥抱她! 如果您还没有很好的 ...

  7. NX二次开发-创建(临时)坐标系

    函数:UF_CSYS_create_csys() . UF_CSYS_create_temp_csys() 函数说明:创建坐标系 .创建临时坐标系 用法: #include <uf.h> ...

  8. 最好最实用的二次开发教程 cms

    ◆二次开发 什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一 般来说都不会改变原有系统的内核. 为什么要二次开发? 随着信息化技术的不断 ...

  9. AE二次开发中几个功能速成归纳(符号设计器、创建要素、图形编辑、属性表编辑、缓冲区分析)

    /* * 实习课上讲进阶功能所用文档,因为赶时间从网上抄抄改改,凑合能用,记录一下以备个人后用. * * ----------------------------------------------- ...

随机推荐

  1. php 两个数组,若键相同,则值合并

    <?php $arr1 = array('9' => '4.08', '10' => '0.10', '11' => '4.08', '12' => '0.01'); $ ...

  2. Multi-View 3D Reconstruction with Geometry and Shading——Part-1

    From PhDTheses Multi-View 3D Reconstruction with Geometry and Shading 计算机视觉的主要任务就是利用图像信息能智能理解周围的世界. ...

  3. 处理 Vue 单页面应用 SEO

    由于在vue单页应用中title只设定在入口文件index.html,如果切换路由,title怎么更换? 在路由router中设置meta: { path:'/chooseBrand', compon ...

  4. echarts 折线图自定义颜色与修改legend颜色

    option4 = { title : { text: '', subtext: '' }, color:['#2db7f5','#ff6600','#808bc6'],      //关键加上这句话 ...

  5. P4177 [CEOI2008]order 网络流,最小割,最大权闭合子图

    题目链接 \(Click\) \(Here\) 如果没有租用机器就是一个裸的最大权闭合子图.现在有了租用机器应该怎么办呢? 单独拆点是不行的,因为会和直接买下的情况脱离关系,租借是和连边直接相关的,那 ...

  6. 二、docker的安装和基本命令

    一.docker的安装 1.安装依赖 # yum install -y yum-utils device-mapper-persistent-data 2.设置yum源 # yum-config-ma ...

  7. 2018-2019-2 《Java程序设计》第9周学习总结

    20175319 2018-2019-2 <Java程序设计>第9周学习总结 教材学习内容总结 本周学习任务: 下载安装MySQL数据库管理系统. 教材介绍在官网下载安装Mysql服务,启 ...

  8. jmeter中的参数化

    1.那些场景需要参数化? 1.登陆认证信息 2.一些和时间相关的,违反时间约束的[时间点和当前时间不一致的情况等等] 3.一些受其他字段约束的[例如字段的一些限制条件] 4.一些来自于其他数据源[例如 ...

  9. httpclient用getStatusCode

      TP 定义的状态代码的值(.net HttpWebResponse.HttpStatusCode 成员名称 说明 Continue 等效于 HTTP 状态 100.Continue 指示客户端可能 ...

  10. Fatal error encountered during command execution

    MySQL + .net + EF 开发环境,调用一处sql语句报错: Fatal error encountered during command execution[sql] view plain ...