宠娃社区

 找回密码
 入驻
搜索
热搜: 活动 交友 discuz
查看: 708|回复: 0

PHPCMS快速建站系列之类别调用及类别显示页面

[复制链接]
发表于 2024-11-5 22:21:00 | 显示全部楼层 |阅读模式
在需要调用类别的地方,比如列表页,首先写循环前面写上一句:
  1. <?php $TYPE = getcache('type_content','commons');?>
复制代码
这句就是把类别缓存加载进来。
然后在循环里写:
  1. <a href="index.php?m=content&c=type&catid={$catid}&typeid={$r[typeid]}">{$TYPE[$r[typeid]][name]}</a>
复制代码
这样就可以调用出来类别了。
不过链接暂时无效.因为还没有做好链接文件.后面会更新这个文件的.

类别链接页面:
新增一个 type.html 文件放到 phpcms\templates\default\content\ 下:
该文件代码如下:
  1. {template "content","header"}
  2. <!--main--><?php $typeid = intval($_GET['typeid']);?>
  3. <div class="main">
  4. <div class="col-left">
  5. <div class="crumbs"><a href="{siteurl($siteid)}">首页</a><span> > </span>{catpos($catid)} 类别:<font color="red">{$TYPE[$typeid][name]}</font> 总共有 {$total} 条记录</div>
  6.         <ul class="list lh24 f14">
  7. {loop $datas $r}
  8. <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>
  9. {if $n%5==0}<li class="bk20 hr"></li>{/if}
  10. {/loop}
  11.         </ul>
  12.         <div id="pages" class="text-c">{$pages}</div>
  13.   </div>
  14.     <div class="col-auto">
  15.         <div class="box">
  16.             <h5 class="title-2">频道总排行</h5>
  17.              {pc:content action="hits" catid="$catid" num="10" order="views DESC"}
  18.             <ul class="content digg">
  19.     {loop $data $r}
  20.      <li><a href="{$r[url]}" target="_blank">{$r[title]}</a></li>
  21.     {/loop}
  22.             </ul>
  23.             {/pc}
  24.         </div>
  25.       
  26.     </div>
  27. </div>
  28. {template "content","footer"}
复制代码
新增一个 type.php 文件到 phpcms\modules\content\下,该文件代码如下:

  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. //模型缓存路径
  4. define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);
  5. pc_base::load_app_func('util','content');
  6. class type {
  7. private $db;
  8. function __construct() {
  9.   $this->db = pc_base::load_model('content_model');
  10. }
  11. /**
  12.   * 按照模型搜索
  13.   */
  14. public function init() {
  15.   if(!isset($_GET['catid'])) showmessage(L('missing_part_parameters'));
  16.   $catid = intval($_GET['catid']);
  17.   $siteids = getcache('category_content','commons');
  18.   $siteid = $siteids[$catid];
  19.   $this->categorys = getcache('category_content_'.$siteid,'commons');
  20.   if(!isset($this->categorys[$catid])) showmessage(L('missing_part_parameters'));
  21.   if(isset($_GET['info']['catid']) && $_GET['info']['catid']) {
  22.    $catid = intval($_GET['info']['catid']);
  23.   } else {
  24.    $_GET['info']['catid'] = 0;
  25.   }
  26.   if(isset($_GET['typeid']) && trim($_GET['typeid']) != '') {
  27.    $typeid = intval($_GET['typeid']);
  28.   } else {
  29.    showmessage(L('illegal_operation'));
  30.   }
  31.   $TYPE = getcache('type_content','commons');
  32.   $modelid = $this->categorys[$catid]['modelid'];
  33.   $modelid = intval($modelid);
  34.   if(!$modelid) showmessage(L('illegal_parameters'));
  35.   $CATEGORYS = $this->categorys;
  36.   $siteid = $this->categorys[$catid]['siteid'];
  37.   $siteurl = siteurl($siteid);
  38.   $this->db->set_model($modelid);
  39.   $page = $_GET['page'];
  40.   $datas = $infos = array();
  41.   $infos = $this->db->listinfo("`typeid` = '$typeid'",'id DESC',$page,20);//读取整个模型下同类别文章
  42.   //$infos = $this->db->listinfo("`typeid` = '$typeid' AND catid = '$catid'",'id DESC',$page,20);//仅仅读取当前栏目下的同类别文章,如果要启用此模式,请去掉上一行代码并将本行开头的// 两斜杠去掉.
  43.   $total = $this->db->number;
  44.   if($total>0) {
  45.    $pages = $this->db->pages;
  46.    foreach($infos as $_v) {
  47.     if(strpos($_v['url'],'://')===false) $_v['url'] = $siteurl.$_v['url'];
  48.     $datas[] = $_v;
  49.    }
  50.   }
  51.   $SEO = seo($siteid, $catid, $TYPE[$typeid]['name'],$TYPE[$typeid]['description'],$TYPE[$typeid]['name'].'类别');
  52.   include template('content','type');
  53. }
  54. }
  55. ?>
复制代码
上面的链接即可生效.
需要注意的是:
  1.   $infos = $this->db->listinfo("`typeid` = '$typeid'",'id DESC',$page,20);//读取整个模型下同类别文章
  2.   //$infos = $this->db->listinfo("`typeid` = '$typeid' AND catid = '$catid' ",'id DESC',$page,20);//仅仅读取当前栏目下的同类别文章,如果要启用此模式,请去掉上一行代码并将本行开头的// 两斜杠去掉。
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入驻

本版积分规则

手机版|小黑屋|宠娃社区 ( 苏ICP备14009121号-1 )

GMT+8, 2025-4-5 07:29 , Processed in 0.061989 second(s), 21 queries .

Powered by CWZLK.COM! DZX3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表