在 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. Educational Codeforces Round 63 (Rated for Div. 2)

    传送门 A. Reverse a Substring 题意: 给你一串 s,让你判断能否通过反转区间[l,r]的元素,使得反转后的串的字典序小于 s: 如果能,输出 "YES",并 ...

  2. Matplotlib画正弦余弦曲线

    参考1:http://www.labri.fr/perso/nrougier/teaching/matplotlib/ 参考2:https://matplotlib.org/api/artist_ap ...

  3. Django 2.0 官方文档翻译

    from django.contrib import admin from django.urls import include, path urlpatterns = [ path('polls/' ...

  4. vo类,model类,dto类的作用及划分

    1.entity里的每一个字段,与数据库相对应, 2.dto里的每一个字段,是和你前台页面相对应, 3.VO,这是用来转换从entity到dto,或者从dto到entity的中间的东西.   举个例子 ...

  5. HTML和XHTML区别

    HTML和XHTML 可扩展超文本标记语言XHTML(eXtensible HyperText Markup Language)是将超文本标记语言HTML(HyperText Markup Langu ...

  6. Java基础12-工具类;变长参数;IO

    作业解析 取出整数的16进制表示形式 \u00ff /** * int2hex * */ public static String int2hex(int i) { String str = &quo ...

  7. java 新手必看大全

    背景:c#开发人员 学习java 新手一枚.只适合新手 1:配置java环境 (win10环境参考本目录java环境配置) 2:IDEA 熟悉开发工具 (当初没学java 很大的一个原因就是工具e文 ...

  8. gitlab 随笔

    输入: $ git init $ git add . $ git commit -m 'init commit' 绿色部分为gitlab网页的项目创建后下面的ssh路径,也可以通过查看gitlab网页 ...

  9. HTTP协议详解(三)

    接着第二篇继续学习... 6 HTTP的几个重要概念 6.1连接:Connection 一个传输层的实际环流,它是建立在两个相互通讯的应用程序之间. 在http1,request和reponse头中都 ...

  10. Java中int和String类型之间转换

    int –> String int i=123; String s=""; 第一种方法:s=i+""; //会产生两个String对象 第二种方法:s=S ...