在需要调用类别的地方,比如列表页,首先写循环前面写上一句:
<?php $TYPE = getcache('type_content','commons');?>
这句就是把类别缓存加载进来.
然后在循环里写:
<a href="index.php?m=content&c =type&catid={$catid}&typeid={$r[typeid]}"> {$TYPE[$r[typeid]][name]}</a>
这样就可以调用出来类别了.
不过链接暂时无效.因为还没有做好链接文件.后面会更新这个文件的.
类别链接页面:
新增一个 type.html 文件放到 phpcms\templates\default\content\ 下:
该文件代码如下:
{template "content","header"} <!--main--><?php $typeid = intval($_GET['typeid']);?> <div class="main"> <div class="col-left"> <div class="crumbs"><a href="{siteurl($siteid)}">首页</a><span> > </span> {catpos($catid)} 类别:<font color="red">{$TYPE[$typeid][name]}</font> 总共有 {$total} 条记录</div> <ul class="list lh24 f14"> {loop $datas $r} <li><span class="rt">{date('Y-m-d H:i:s',$r[inputtime])}</span>· <a href="{$r[url]}" target="_blank"{title_style($r[style])}>{$r[title]}</a></li> {if $n%5==0}<li class="bk20 hr"></li>{/if} {/loop} </ul> <div id="pages" class="text-c">{$pages}</div> </div> <div class="col-auto"> <div class="box"> <h5 class="title-2">频道总排行</h5> {pc:content action="hits" catid="$catid" num="10" order="views DESC"} <ul class="content digg"> {loop $data $r} <li><a href="{$r[url]}" target="_blank">{$r[title]}</a></li> {/loop} { </ul> {/pc} </div> </div> </div> {template "content","footer"}
新增一个 type.php 文件到 phpcms\modules\content\下,该文件代码如下:
<?php defined('IN_PHPCMS') or exit('No permission resources.'); //模型缓存路径 define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR. 'caches_data'.DIRECTORY_SEPARATOR); pc_base::load_app_func('util','content'); class type { private $db; function __construct() { $this->db = pc_base::load_model('content_model'); } /** * 按照模型搜索 */ public function init() { if(!isset($_GET['catid'])) showmessage(L('missing_part_parameters')); $catid = intval($_GET['catid']); $siteids = getcache('category_content','commons'); $siteid = $siteids[$catid]; $this->categorys = getcache('category_content_'.$siteid,'commons'); if(!isset($this->categorys[$catid])) showmessage(L('missing_part_parameters')); if(isset($_GET['info']['catid']) && $_GET['info']['catid']) { $catid = intval($_GET['info']['catid']); } else { $_GET['info']['catid'] = 0; } if(isset($_GET['typeid']) && trim($_GET['typeid']) != '') { $typeid = intval($_GET['typeid']); } else { showmessage(L('illegal_operation')); } $TYPE = getcache('type_content','commons'); $modelid = $this->categorys[$catid]['modelid']; $modelid = intval($modelid); if(!$modelid) showmessage(L('illegal_parameters')); $CATEGORYS = $this->categorys; $siteid = $this->categorys[$catid]['siteid']; $siteurl = siteurl($siteid); $this->db->set_model($modelid); $page = $_GET['page']; $datas = $infos = array(); $infos = $this->db->listinfo("`typeid` = '$typeid'",'id DESC',$page,20); $total = $this->db->number; if($total>0) { $pages = $this->db->pages; foreach($infos as $_v) { if(strpos($_v['url'],'://')===false) $_v['url'] = $siteurl.$_v['url']; $datas[] = $_v; } } $SEO = seo($siteid, $catid, $TYPE[$typeid]['name'],$TYPE[$typeid]['description'], $TYPE[$typeid]['name'].'类别'); include template('content','type'); } } ?>
上面的链接即可生效.
一、在文章内容页显示类别名称和类别链接:
比如:
<span>类别:<?php $TYPE = getcache(‘type_content’,’commons’);?><a href=”{APP_PATH}index.php?m=content&c=type&catid={$catid}&typeid={$r[typeid]}”>{$TYPE[$r[typeid]][name]}</a> 发布时间:{$inputtime} 来源:{if $copyfrom}{$copyfrom}{else}CMSYOU{/if} 点击:</span><span id=”hits”></span>
上面的代码中,{$TYPE[$r[typeid]][name]}就是类别名称,{APP_PATH}index.php?m=content&c=type&catid={$catid}&typeid={$r[typeid]}。
需要注意的是,调用{$TYPE[$r[typeid]][name]}之前,需要先调用$TYPE的缓存:<?php $TYPE = getcache(‘type_content’,’commons’);?>。
当然也可以采用下面这一个方法调用出来类别名称和链接:类型:<a href=”{APP_PATH}index.php?m=content&c=type&catid={$catid}&typeid={$typeid}”>{pc:get sql=”SELECT * FROM cmsyou_type WHERE typeid=$typeid” cache=”3600″ return=”data”}{loop $data $val}{$val[name]}{/loop}{/pc}</a>
这是通过查询类别id而得到的类别名称,注意修改数据库前缀。
二、在文章列表页前面显示类别名称:
根据文章内容页的代码,举一反三,可以调用到列表页中间。具体怎么写呢?留给大家到问答社区中间探讨下!
Ps,参考下面这个代码:<?php$arrtype = explode(‘,’,$usable_type);?>{loop $arrtype $t}<a href=”index.php?m=content&c=type&catid={$catid}&typeid={$t}”>{$TYPE[$t][name]}</a>{/loop}
多尝试,肯定可以调用出来!
以上就是今天本文的全部内容,希望对大家的学习和工作有所帮助,同时希望大家多多关注,谢谢!