在 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. 百度地图--JS版

    百度地图JS版本 ----选择关键字地图展示对应地址---- CSS body, html { width: %; height: %; margin: ; font-family: "微软 ...

  2. MongoDB官网配置项目整理

    MongoDB的配置文件共有10个项目: systemLog:processManagement:net:security:storage:operationProfiling:replication ...

  3. \t \r \n \f

    \t 的意思是 :水平制表符.将当前位置移到下一个tab位置. \r 的意思是: 回车.将当前位置移到本行的开头. \n 的意思是:回车换行.将当前位置移到下一行的开头. \f的意思是:换页.将当前位 ...

  4. python之路(9)反射、包装类、动态模块导入

    目录 反射 利用继承二次包装标准类 利用授权二次包装标准类 动态模块导入 反射 python提供自省的四个方法: hasattr(object,name)  判断object中有没有有个name字符串 ...

  5. Servlet学习笔记(1)

    Servlet:Sun公司制订的一种用来扩展Web服务功能的组间规范. 第1部分 C/S和B/S介绍 1 C/S Client Server 客户端 服务器程序: 客户端需要单独开发,用户需要下载并安 ...

  6. Oracle DB Day03(SQL)

    --day03 --创建一个包含下面信息的表,并添加一些记录待用 --EMPLOYEE_ID NOT NULL NUMBER(6) --FIRST_NAME VARCHAR2(20) --LAST_N ...

  7. 在没联网环境下,启动tomcat出错

    使用SSH框架,在联网情况下,项目可以正常运行,当一旦断网,则启动服务器报错: org.hibernate.HibernateException: Could not parse configurat ...

  8. python核心编程(多线程编程)

    1.全局解释器锁 2.threading模块 thread类

  9. 查询SQL Server执行过的SQL语句

    SELECT TOP 1000         ST.text AS '执行的SQL语句',        QS.execution_count AS '执行次数',        QS.total_ ...

  10. dubbo直连提供者 & 只订阅 & 只注册

    1.    dubbo直连提供者 在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直连方式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点 ...