首页 > 代码库 > phpcms 如何获取文章
phpcms 如何获取文章
请求地址http://127.0.0.1/phpcms/index.php?m=content&c=index&a=show&catid=6&id=8
先来判断地址对应的数据表
查阅phpcms v9 数据表结构手册 http://v9.help.phpcms.cn/html/2010/database_1228/107.html
可以获知我们要取出news,v9_news_data 两个表中的数据
下一步就要理解数据是如何取出的
相关的控制器如下
这个比较简单就是调用 content模块下index控制器的show方法 数据表结构手册
下一步介绍下show()方法如何操作数据库的
请求参数catid=6&id=6
而我们已经知道文章存储在 文章模型表 news,news_data表id=6这一行,
catid为栏目id 查询数据表结构手册 或者打开数据库 可以找到_category栏目表可以轻易发现
每个栏目的文章模型 由modelid字段定义
再查手册可以确认modelid对应表model
所以请求参数在show()转化为参数modelid=1&id=6
至此我们知道要获取表news,news_data中=6的信息
下面就是操作数据库了
$tablename = $this->db->table_name = $this->db->db_tablepre.$MODEL[$modelid][‘tablename‘]; $r = $this->db->get_one(array(‘id‘=>$id)); if(!$r || $r[‘status‘] != 99) showmessage(L(‘info_does_not_exists‘),‘blank‘); $this->db->table_name = $tablename.‘_data‘; $r2 = $this->db->get_one(array(‘id‘=>$id)); $rs = $r2 ? array_merge($r,$r2) : $r;
取出主表内容和附表内容
其中get_one方法在 mysql.class.php 数据库实现类
$content_output = new content_output($modelid,$catid,$CATEGORYS);
$data = http://www.mamicode.com/$content_output->get($rs);判断是否有缓存有的话读取缓存没有输出$rs
extract($data);这个是php本身的函数将本函数用来将变量从数组中导入到当前的符号表中
<?php/* 假定 $var_array 是 wddx_deserialize 返回的数组*/$size = "large";$var_array = array("color" => "blue", "size" => "medium", "shape" => "sphere");extract($var_array, EXTR_PREFIX_SAME, "wddx");echo "$color, $size, $shape, $wddx_size\n";?>
blue, large, sphere, medium
再去看模板文件就比较简单了
<div class="main"> <div class="col-left"> <div class="crumbs"><a href="{siteurl($siteid)}"><?php echo $title?>首页</a><span> > </span>{catpos($catid)} 正文</div> <div id="Article"> <h1>{$title}<br /><span>{$inputtime} 来源:{$copyfrom} 评论:<a href="#comment_iframe" id="comment">0</a> 点击:</span><span id="hits"></span></h1> {if $description}<div class="summary" >{$description}</div>{/if} <div class="content"> {if $allow_visitor==1} {$content}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。