因为工作需要,所以今天下了决心学了这个。先说结论,学完之后感觉没有想象中的那么难,但是学之前,我的心理对他充满了很多恐惧,因为之前改过h5上传的问题,当时改了好久记得才改完。所以之后一直是同事负责,我主要负责tp5。今天直到晚上6点才下定决心面对他(可能你觉得我这些不重要,但是我真的感觉到了自己对他的恐惧),不过接下来不懂的小伙伴跟着的步骤一步步走就对了。
下面开始。
首先了解https://help.phpcms.pro/index.ht
git下载https://gitee.com/phpcms/phpcms
默认你了解完前后台和目录结构并且已经登录进去了哈。
咱们这里主要讲 创建新表,模板继承,数据渲染
当然你也可以按着这个方式https://help.phpcms.pro/html/2010/moudle_0928/85.html
下面是我的哈
第一步创建表
CREATE TABLE `v9_test` (
`t_id` int(11) NOT NULL AUTO_INCREMENT,
`t_name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`t_id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
第二步 创建对应的model类
test_model.class.php
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class test_model extends model {
public $table_name = '';
function __construct() {
$this->db_config = pc_base::load_config('database');
$this->db_setting = 'default';
$this->table_name = 'test';
parent::__construct();
}
}
?>
第三步 创建文件
先看目录结构 这几个目录都要建 需要配置一个虚拟主机哈 www.phpcms.cn
先看后台访问
mytest_admin_list.tpl.php
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>我是test后台模板</h1>
</body>
</html>
testadmin.php
<?php
defined("IN_PHPCMS") or exit("No permission resources.");
pc_base::load_app_class("admin","admin",0);
class testadmin extends admin {
//必须继承admin
//http://www.phpcms.cn/index.php?m=test&c=testadmin
//后台模板调用方法
function __construct(){
}
public function init(){
include $this->admin_tpl("mytest_admin_list");
}
}
?>
效果
然后来访问前台
index.php
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
//这是前台
class index {
private $db;
//http://www.phpcms.cn/index.php?m=test&c=index&a=mylist
function __construct(){
$this->db = pc_base::load_model("test_model");
}
//不起作用init
public function init(){
echo "2";exit;
}
//http://www.phpcms.cn/index.php?m=test&c=index&a=mylist
public function mylist(){
// echo "1";exit;
//其中$this->db中所支持的方法请参照phpcms/libs/classes/model.class.php中方法
$result = $this->db->select();
// //http://www.phpcms.cn/index.php?m=test&c=index&a=mylist
// echo "<pre>";
// print_r($result); echo "<pre>";
var_dump($result);
$a="我是变量a ";
$test_data= array("aa","bb");
//其中 test为模块名称 mytest 为模板目录下模板名称,default为风格名称,默认不填为defalut
include template('test', 'index', 'default');
}
}
// CREATE TABLE `v9_test` (
// `t_id` int(11) NOT NULL AUTO_INCREMENT,
// `t_name` varchar(45) DEFAULT NULL,
// PRIMARY KEY (`t_id`)
// ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
footer.html
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>我是尾部</h1>
</body>
</html>
header.html
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1>我是头部</h1>
</body>
</html>
index.html
{template "test","header"}
<!-- 首页 -->
<script language="javascript" src="{APP_PATH}index.php?m=poster&c=index&a=show_poster&id=10"></script>
<h2>我是test模板</h2>
字符串:{$a}
<br>
数组:遍历
{loop $test_data $key $val}
<br>{$val}
{/loop}
<script src="{JS_PATH}jquery.js"></script>
{template "test","footer"}
效果 http://www.phpcms.cn/index.php?m=test&c=index&a=mylist
最后想说需要你注意一下的是 tp5里面通常是控制器assign渲染值
但是phpcms是模板里面直接调用封装的方法获取 具体参数我上面的链接《了解》里面你应该看了哈
{pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"}
{/pc}
如何显示PC标签中的数据:
{loop $data $key $val}
<a href="{$val[url]}">{$val[title]}</a><br>
{/loop}
你会问,为什么我上面案例中也提供了控制器定义变量和数组,模板却取到了值,这是第二种方式,可以获取到,但是不推荐。
最后把我自己的一些笔记放这吧。
1,获取数据
{pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"}
{/pc}
如何显示PC标签中的数据:
{loop $data $key $val}
<a href="{$val[url]}">{$val[title]}</a><br>
{/loop}
2关联模型
$this->db = pc_base::load_model('content_model');
3,查询表对应的数据
内容模块
$this->db->table_name = $tablename.'_data';
$r2 = $this->db->get_one(array('id'=>$id));
单网页
$this->page_db = pc_base::load_model('page_model');
$r = $this->page_db->get_one(array('catid'=>$catid));
4,前台加载方式
include template('test', 'index', 'default');
不明白的可以问我。