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 = $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> &gt; </span>{catpos($catid)} 正文</div>
        <div id="Article">
            <h1>{$title}<br />
<span>{$inputtime}&nbsp;&nbsp;&nbsp;来源:{$copyfrom}&nbsp;&nbsp;&nbsp;评论:<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}

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/majin/p/3804599.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值